// 530

var ViewClass = function() {
	var banner_ord;


	this.initView = function(){
		this.initBannerAds();
	};


	this.initBannerAds = function(){
		var date = new Date();
		var timestamp = date.getTime();
		var randomnumber = Math.floor(Math.random()*10000000000001);
		
		banner_ord = timestamp +""+randomnumber;
	};	


	this.renderBrandConfig = function() {
		var brand = Model.App.config.brand;

		// Default title of "TV Companion" already in HTML
		if (brandConfig['page_title']) {
			document.title = brandConfig['page_title'];
		}

		// Apply brand color to main clock background and PBP scrollpane thumb background
		if (teamConfigs[brand].color) {
			$j('#time_indicator').css('background-color', '#'+teamConfigs[brand].color);
			// Adding bg-color for PBP scrollpane thumb to DOM stylesheet so that we don't have to set an inline style everytime jScrollPane is re-initialized
			Utils.addStyles("#playbyplay_screen_table_holder div.jScrollPaneDrag { background-color: #"+ teamConfigs[brand].color +"; }");
		}

		// Interact Module
		if (brandConfig['cil_alt_cast_code'] && brandConfig['cil_blurb']) {
			$j("#interact_tab").find(".interact_quote").prepend(brandConfig['cil_blurb']).show();
		}
		if (brandConfig['gigya_iframe_src']) {
			$j("#connect").show();
		}
		
		// Background layers, consisting of solid "fade-to" color, fancy middle image, and the x-repeating slice of dots pattern 
		if (brandConfig['team_background']) {
			$j("body").css("background-color", "#"+brandConfig['background_color']);

			if ($j.browser.msie && $j.browser.version=="6.0")
				$j("#site_container").css("background-image", "url(image/assets/backgrounds/"+ brand +"_ie_bg.jpg)");
			else
				$j("#site_container").css("background-image", "url(image/assets/backgrounds/"+ brand +"_bg.png)");
			
			$j("body").css("background-image", "url(image/assets/backgrounds/"+ brand +"_dots.gif)");
		}

		// Top-Left Logo Image
		if (brandConfig['team_logo_area']) {
			$j("#team_logo").children('a').html('<img src="image/assets/teamlogos/'+ brand+'.png" />');
		}
		// Top-Left Logo Link
		if (brandConfig['continue_link']) {
			$j("#team_logo").children('a').attr("href", brandConfig['continue_link']);
		}

		// Top Bar
		switch (Model.App.config.brand) {
                     case "EST":
			case "WST":
			case "RKE":
			case "SPH":
			case "NBA":
			case "NBATV":
			case "TNT":
			case "ABC":
			case "ESPN":
			case "ESPN2":
				$j('#eyebrow').hide();
				$j('#nbaChromeNav').show();
				$j('#site_container').css('background-position', 'center 5px');
				break;
			default:
				$j('#nbaChromeNav').hide();
				// Eyebrow
				if (brandConfig['continue_image']) {
					$j('#eyebrow_logo').html('<img src="'+ brandConfig['continue_image'] +'" />');
				}
				if (brandConfig['continue_link']) {
					$j('#eyebrow').children('a').attr("href", brandConfig['continue_link']);
				}
				$j("#eyebrow").show();
				$j('#loading_screen').css('top', '216px');
				break;
		}			

		
		// =======
		// = ADS =
		// =======
		
		// Use JS ads
		if (brandConfig['use_js_ads']) {
			if (brandConfig['banner_code_728x90'])
				$j('#footer_ad').children('iframe').attr('src', 'banner_ad.html?src='+encodeURIComponent(brandConfig['banner_code_728x90'])+'&ord='+banner_ord).show().end().show();

			if (brandConfig['banner_code_scoreboard'])
				$j('#sponsor').children('iframe.ad_iframe').attr('src', 'banner_ad.html?src='+encodeURIComponent(brandConfig['banner_code_scoreboard'])+'&ord='+banner_ord).show();

			if (brandConfig['banner_code_shotchart'])
				$j('#scorer_table').find('iframe.ad_iframe').attr('src', 'banner_ad.html?src='+encodeURIComponent(brandConfig['banner_code_shotchart'])+'&ord='+banner_ord).show();
			
			if (brandConfig['banner_code_pregame'])
				$j('#pregame_screen').find('iframe.ad_iframe').attr('src', 'banner_ad.html?src='+encodeURIComponent(brandConfig['banner_code_pregame'])+'&ord='+banner_ord).show();
			
			if (brandConfig['banner_code_halftime'])
				$j('#halftime_screen').find('iframe.ad_iframe').attr('src', 'banner_ad.html?src='+encodeURIComponent(brandConfig['banner_code_halftime'])+'&ord='+banner_ord).show();
		
			if (brandConfig['banner_code_postgame'])
				$j('#postgame_screen').find('iframe.ad_iframe').attr('src', 'banner_ad.html?src='+encodeURIComponent(brandConfig['banner_code_postgame'])+'&ord='+banner_ord).show();
		
			if (brandConfig['banner_code_interact'])
				$j('#interact_screen').find('iframe.ad_iframe').attr('src', 'banner_ad.html?src='+encodeURIComponent(brandConfig['banner_code_interact'])+'&ord='+banner_ord).show();
			
			if (brandConfig['banner_code_playbyplay'])
				$j('#playbyplay_screen').find('iframe.ad_iframe').attr('src', 'banner_ad.html?src='+encodeURIComponent(brandConfig['banner_code_playbyplay'])+'&ord='+banner_ord).show();
		
			if (brandConfig['banner_code_stats'])
				$j('#stats_screen').find('iframe.ad_iframe').attr('src', 'banner_ad.html?src='+encodeURIComponent(brandConfig['banner_code_stats'])+'&ord='+banner_ord).show(); 

			if (brandConfig['banner_code_boxscore'])
				$j('#boxscore_screen').find('iframe.ad_iframe').attr('src', 'banner_ad.html?src='+encodeURIComponent(brandConfig['banner_code_boxscore'])+'&ord='+banner_ord).show();
		}
		// Use normal HTML ads
		else {
			if (brandConfig['banner_code_728x90'])
				$j('#footer_ad').html(brandConfig['banner_code_728x90']).show();

			if (brandConfig['banner_code_scoreboard'])
				$j('#sponsor').html(brandConfig['banner_code_scoreboard']);

			if (brandConfig['banner_code_shotchart'])
				$j('#scorer_table').html(brandConfig['banner_code_shotchart']);

			if (brandConfig['banner_code_pregame'])
				$j('#pregame_screen').find('.mini_banner').html(brandConfig['banner_code_pregame']);

			if (brandConfig['banner_code_halftime'])
				$j('#halftime_screen').find('.mini_banner').html(brandConfig['banner_code_halftime']);

			if (brandConfig['banner_code_postgame'])
				$j('#postgame_screen').find('.mini_banner').html(brandConfig['banner_code_postgame']);

			if (brandConfig['banner_code_interact'])
				$j('#interact_screen').find('.mini_banner').html(brandConfig['banner_code_interact']);

			if (brandConfig['banner_code_playbyplay'])
				$j('#playbyplay_screen').find('.poweredby_ad').html(brandConfig['banner_code_playbyplay']);

			if (brandConfig['banner_code_stats'])
				$j('#stats_screen').find('.mini_banner').html(brandConfig['banner_code_stats']); 

			if (brandConfig['banner_code_boxscore'])
				$j('#boxscore_screen').find('.mini_banner').html(brandConfig['banner_code_boxscore']);
		}
	};


	this.renderTeamConfig = function() {
		var vtm_color = Model.Teams.vtm.config.color; 
		var vtm_abbrev = Model.Teams.vtm.config.abbrev;
		var htm_color = Model.Teams.htm.config.color;
		var htm_abbrev = Model.Teams.htm.config.abbrev;

		var htm_wordmark = "image/assets/wordmarks/"+ htm_abbrev +"_wordmark.png"; // Should build URL by convention
		var vtm_wordmark = "image/assets/wordmarks/"+ vtm_abbrev +"_wordmark.png"; // Should build URL by convention
		
		$j("#court").css("background-image", "url(image/assets/courts/"+ htm_abbrev +"_court.png)");

		$j("#htm_team_logotype").children("a").attr("href", "http://www.nba.com/"+Model.Teams.htm.config.code+"/");
		$j("#htm_team_logotype").children("a").html('<img src="'+ htm_wordmark +'" />');
		$j("#vtm_team_logotype").children("a").attr("href", "http://www.nba.com/"+Model.Teams.vtm.config.code+"/");
		$j("#vtm_team_logotype").children("a").html('<img src="'+ vtm_wordmark +'" />');
		
		$j("#htm_stats").find("p.initials").html(htm_abbrev);
		$j("#vtm_stats").find("p.initials").html(vtm_abbrev);
		$j("#htm_boxscore").find("div.initials").html(htm_abbrev);
		$j("#vtm_boxscore").find("div.initials").html(vtm_abbrev);
		$j("#qbyq_htm_abbrev").html(htm_abbrev);
		$j("#qbyq_vtm_abbrev").html(vtm_abbrev);

		// Team Colors
		var $content_area = $j('#content_area');
		$content_area.find('.htm_bgcolor').css('background-color', '#'+htm_color);
		$content_area.find('.htm_color').css('color', '#'+htm_color);
		$content_area.find('.vtm_bgcolor').css('background-color', '#'+vtm_color);
		$content_area.find('.vtm_color').css('color', '#'+vtm_color);

		// Shotchart Timeline Markers
		var $timeline_q1 = $j('#timeline_q1');
		$timeline_q1.find('div.shot_miss_template_htm').html('<img src="image/assets/timelinemarkers/'+htm_abbrev+'_X.png" />');
		$timeline_q1.find('div.shot_make_template_htm').html('<img src="image/assets/timelinemarkers/'+htm_abbrev+'_O.png" />');
		$timeline_q1.find('div.shot_miss_template_vtm').html('<img src="image/assets/timelinemarkers/'+vtm_abbrev+'_X.png" />');
		$timeline_q1.find('div.shot_make_template_vtm').html('<img src="image/assets/timelinemarkers/'+vtm_abbrev+'_O.png" />');
	};


	this.showCurrentScreen = function(prev_screen) {
		var new_screen = Model.App.state.screen; 

		if (prev_screen != new_screen) {
			// $j("#"+ new_screen +"_screen").siblings(".screen").hide();

			$j("#"+ prev_screen +"_screen").hide();
			$j("#"+ new_screen +"_screen").show(); 
		}
	};


	this.updateScreen = function() {
		switch (Model.App.state.screen) {
			case 'stats':
				this.updateStatsScreen();
				break;
			case 'boxscore':
				this.updateBoxscoreScreen();
				break;
		}
	};

	
	this.retractDropdowns = function() {
		$j('#main').find('div.app_dropdown').hide();
	};

	
	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// =========================
	// = MAIN JUMBOTRON SECTION =
	// =========================

	this.updateJumbotron = function() {
		var vtm_score = Model.Teams.vtm.data.score;
		var htm_score = Model.Teams.htm.data.score;

		this.updateMainScoreForTeam("vtm", vtm_score.total);
		this.updateMainScoreForTeam("htm", htm_score.total);

		this.updateMainPeriodAndClock();

		this.updateMainFoulsAndTimeouts();
		
		this.updateHighlightsLink();
		
		// Update quarter by quarter scores
		// 
		$j("#qbyq_vtm_score_qtr1").html(vtm_score.qtr1);
		$j("#qbyq_htm_score_qtr1").html(htm_score.qtr1);
		$j("#qbyq_vtm_score_qtr2").html(vtm_score.qtr2);
		$j("#qbyq_htm_score_qtr2").html(htm_score.qtr2);
		$j("#qbyq_vtm_score_qtr3").html(vtm_score.qtr3);
		$j("#qbyq_htm_score_qtr3").html(htm_score.qtr3);
		$j("#qbyq_vtm_score_qtr4").html(vtm_score.qtr4);
		$j("#qbyq_htm_score_qtr4").html(htm_score.qtr4);
		$j("#qbyq_vtm_score_total").html(vtm_score.total);
		$j("#qbyq_htm_score_total").html(htm_score.total);
		
		
		// OVERTIME
		if (Model.Game.data.period > 4){
			var prev_sb_ots_shown = Model.App.state.sb_ots_shown;
			
			switch (Model.Game.data.period){
				case 5:
					if (Model.App.state.sb_ots_shown < 1){
						$j('#qbyq_quarters').width(98);
						$j("#qbyq_qtr5, #qbyq_vtm_score_qtr5, #qbyq_htm_score_qtr5").show();
						Model.App.state.sb_ots_shown = 1;
					}
					$j("#qbyq_vtm_score_qtr5").html(vtm_score.ot1);
					$j("#qbyq_htm_score_qtr5").html(htm_score.ot1);
					break;

				case 6:
					if (Model.App.state.sb_ots_shown < 2){
						$j('#qbyq_quarters').width(118);
						$j("#qbyq_qtr5, #qbyq_vtm_score_qtr5, #qbyq_htm_score_qtr5").show();
						$j("#qbyq_qtr6, #qbyq_vtm_score_qtr6, #qbyq_htm_score_qtr6").show();
						Model.App.state.sb_ots_shown = 2;
					}
					$j("#qbyq_vtm_score_qtr5").html(vtm_score.ot1);
					$j("#qbyq_htm_score_qtr5").html(htm_score.ot1);
					$j("#qbyq_vtm_score_qtr6").html(vtm_score.ot2);
					$j("#qbyq_htm_score_qtr6").html(htm_score.ot2);
					break;

				case 7:
					if (Model.App.state.sb_ots_shown < 3){
						$j('#qbyq_quarters').width(138);
						$j("#qbyq_qtr5, #qbyq_vtm_score_qtr5, #qbyq_htm_score_qtr5").show();
						$j("#qbyq_qtr6, #qbyq_vtm_score_qtr6, #qbyq_htm_score_qtr6").show();
						$j("#qbyq_qtr7, #qbyq_vtm_score_qtr7, #qbyq_htm_score_qtr7").show();
						Model.App.state.sb_ots_shown = 3;
					}
					$j("#qbyq_vtm_score_qtr5").html(vtm_score.ot1);
					$j("#qbyq_htm_score_qtr5").html(htm_score.ot1);
					$j("#qbyq_vtm_score_qtr6").html(vtm_score.ot2);
					$j("#qbyq_htm_score_qtr6").html(htm_score.ot2);
					$j("#qbyq_vtm_score_qtr7").html(vtm_score.ot3);
					$j("#qbyq_htm_score_qtr7").html(htm_score.ot3);
					break;
					
				case 8:
					if (Model.App.state.sb_ots_shown < 4){
						$j('#qbyq_quarters').width(158);
						$j("#qbyq_qtr5, #qbyq_vtm_score_qtr5, #qbyq_htm_score_qtr5").show();
						$j("#qbyq_qtr6, #qbyq_vtm_score_qtr6, #qbyq_htm_score_qtr6").show();
						$j("#qbyq_qtr7, #qbyq_vtm_score_qtr7, #qbyq_htm_score_qtr7").show();
						$j("#qbyq_qtr8, #qbyq_vtm_score_qtr8, #qbyq_htm_score_qtr8").show();
						Model.App.state.sb_ots_shown = 4;
					}
					$j("#qbyq_vtm_score_qtr5").html(vtm_score.ot1);
					$j("#qbyq_htm_score_qtr5").html(htm_score.ot1);
					$j("#qbyq_vtm_score_qtr6").html(vtm_score.ot2);
					$j("#qbyq_htm_score_qtr6").html(htm_score.ot2);
					$j("#qbyq_vtm_score_qtr7").html(vtm_score.ot3);
					$j("#qbyq_htm_score_qtr7").html(htm_score.ot3);
					$j("#qbyq_vtm_score_qtr8").html(vtm_score.ot4);
					$j("#qbyq_htm_score_qtr8").html(htm_score.ot4);
					break;
			}
			// Re-initialize jScrollHorizontalPane to account for more overtimes
			if (prev_sb_ots_shown != Model.App.state.sb_ots_shown){
				$j("#quarters_holder").jScrollHorizontalPane({scrollbarHeight: 7, scrollbarMargin: 0, minimumWidth: 75, dragMinWidth: 39, dragMaxWidth: 39});
				$j("#quarters_holder").siblings(".jScrollHorizontalPaneDrag").css("background-color", "#"+teamConfigs[Model.App.config.brand].color);
			}
		}
	};
	
	
	// Updates main team scores by modifying sprite CSS classes 
	this.updateMainScoreForTeam = function(team, score) {
		var $digits = $j("#"+ team +"_score_total").find("div.jumbo_digit");
		
		if (score < 10) {
			$digits.eq(2).attr("class", "jumbo_digit none");
			$digits.eq(1).attr("class", "jumbo_digit none");
			$digits.eq(0).attr("class", "jumbo_digit digit"+ score);
		}
		else if (score < 100) {
			$digits.eq(2).attr("class", "jumbo_digit none");
			$digits.eq(1).attr("class", "jumbo_digit digit"+ score.charAt(0));
			$digits.eq(0).attr("class", "jumbo_digit digit"+ score.charAt(1));
		}
		else if (score > 99) {
			$digits.eq(2).attr("class", "jumbo_digit digit"+ score.charAt(0));
			$digits.eq(1).attr("class", "jumbo_digit digit"+ score.charAt(1));
			$digits.eq(0).attr("class", "jumbo_digit digit"+ score.charAt(2));
		}
	};
	
	this.updateMainFoulsAndTimeouts = function() {
		var htm_data = Model.Teams.htm.data;
		var vtm_data = Model.Teams.vtm.data;
		
		$j("#htm_pfouls").html(htm_data.pfouls);
		$j("#vtm_pfouls").html(vtm_data.pfouls);
		$j("#htm_full_to").html(htm_data.full_to);
		$j("#vtm_full_to").html(vtm_data.full_to);
		$j("#htm_twentysec_to").html(htm_data.twentysec_to);
		$j("#vtm_twentysec_to").html(vtm_data.twentysec_to);
	};
	
	this.updateMainPeriodAndClock = function() {
		var game_state = Model.Game.state;
		var period = Model.Game.data.period;
		var clock = Model.Game.data.clock;
		var period_html = "";
		var clock_text = "";

		if (game_state == "pregame") {
			period_html = "--";
			clock_text = "--";
		}
		else if (game_state == "live") {
			switch (period) {
				case 1: period_html = "1<sup>ST</sup>"; break;
				case 2: period_html = "2<sup>ND</sup>"; break;
				case 3: period_html = "3<sup>RD</sup>"; break;
				case 4: period_html = "4<sup>TH</sup>"; break;
				case 5: period_html = "1OT"; break;
				case 6: period_html = "2OT"; break;
				case 7: period_html = "3OT"; break;
				case 8: period_html = "4OT"; break;
			}
			
			// Trim off leading zero in case of 05:23
			if (clock.length == "5" && clock.charAt(0) == "0") { 
				clock_text = clock.substring(1);
			}
			// Explicitly show full period clock at the beginning of the period since "clock" attr is empty  
			else if (!clock && (Model.Game.data.status_text.indexOf("Start") !== -1 || Model.Game.data.status_text.indexOf("Tipoff") !== -1)) {
				if (period > 4)
					clock_text = "5:00";
				else
					clock_text = "12:00";
			}
			else if (!clock) {
				clock_text = "0.0";
			}
			else {
				clock_text = clock;
			}
		}
		else if (game_state == "halftime") {
			period_html = "HALF";
			clock_text = "--";
		}
		else if (game_state == "postgame") {
			period_html = "FINAL";
			clock_text = "--";
		}
		
		$j("#quarter_indicator").html(period_html);
		$j("#time_indicator").html(clock_text);
	};


	// ARENA STATS //
	this.populateArenaStatsDropdown = function() {
		var game_data = Model.Game.data;
		var arena_html, official, officials_html = "";

		arena_html = game_data.arena_name + "<br/><span>"+ game_data.arena_city_state +"</span>";
		$j("#arena").children("p").html(arena_html);
	
		for (var i = 0; i < game_data.officials.length; i++) {
			official = game_data.officials[i];
			officials_html += (official.number == true) ? official.name +" #"+ official.number + "<br/>" : official.name + "<br/>";
		};
		$j("#officials").children("p").html(officials_html);

		if (game_data.arena_attendance == "0")
			$j("#attendance").children("p").html('--');
		else
			$j("#attendance").children("p").html(game_data.arena_attendance);
	};

	this.toggleArenaStatsDropdown = function() {
		var $header = $j('#header');
		if ($header.hasClass('header_zindex')) {
			$j('#arena_dropdown').fadeOut(200, function(){
				$j("#header").removeClass("header_zindex");	
			});
		}
		else {
			$j("#header").addClass("header_zindex");
			$j('#arena_dropdown').fadeIn(200);
		}
	};


	this.updateHighlightsLink = function() {
		if (Model.Game.state == "postgame") {
			$j("#game_highlights").unbind("click").bind("click", function(){ CSL.onScreenLoad('postgame'); }).show();
			$j("#back_to_pregame").hide();
		}
		else if (Model.Game.state == "halftime" || Model.Game.data.period > 2) {
			$j("#game_highlights").unbind("click").bind("click", function(){ CSL.onScreenLoad('halftime'); }).show();
			$j("#back_to_pregame").hide();
		}
		else {
			$j("#game_highlights").hide();
		}
	};
	
	
	// GAME NOTES //
	this.toggleGameNotesDropdown = function() {
		var $header = $j('#header');
		if ($header.hasClass('header_zindex')){
			$j('#notes_dropdown').fadeOut(200, function(){
				$header.removeClass("header_zindex");	
			});
		}
		else {
			$header.addClass("header_zindex");
			$j('#notes_dropdown').fadeIn(200);
		}
	};

	this.populateGameNotes = function() {
		var vtm_config = Model.Teams.vtm.config;
		var htm_config = Model.Teams.htm.config;
		var $notes_content_div = $j("#notes_content").children("div");

		 $notes_content_div.eq(0).children("a")
			.html(vtm_config.abbrev)
			.attr("href", "http://www.nba.com/"+ vtm_config.code +"/news/notes.pdf");
		 $notes_content_div.eq(1).children("a")
			.html(htm_config.abbrev)
			.attr("href", "http://www.nba.com/"+ htm_config.code +"/news/notes.pdf");
	};


	// Only for top-right Broadcasters section
	this.populateBroadcasters = function() {
		var vtm = Model.Teams.vtm;
		var htm = Model.Teams.htm;
		var brand = Model.App.config.brand;
		
		var national_tv_brd_text = Model.Game.data.national_tv_broadcaster;
		national_tv_brd_text = (national_tv_brd_text) ? national_tv_brd_text.replace(/ /g, "") : ""; //remove spaces
		
		var local_tv_brd_text;
		var local_radio_brd_text;

		if (Model.Game.state != "postgame") {
			if (vtm.config.abbrev == brand) {
				local_radio_brd_text = vtm.data.local_radio_broadcaster;
				local_tv_brd_text = vtm.data.local_tv_broadcaster;
			}
			else if (htm.config.abbrev == brand) {
				local_radio_brd_text = htm.data.local_radio_broadcaster;
				local_tv_brd_text = htm.data.local_tv_broadcaster;
			}
			else {
				local_radio_brd_text = '';
				local_tv_brd_text = '';
			}
		}
		
		var $coverage_rows = $j('#coverage_table').find('tr');
		
		if (national_tv_brd_text)
			$j('#tv_logo').html('<img src="image/bc_'+ national_tv_brd_text +'.png" />').css('visibility', 'visible');
	
		if (local_tv_brd_text)
			$coverage_rows.eq(0).children("td").html(local_tv_brd_text).end()
								.css('visibility', 'visible');
			
		if (local_radio_brd_text) {
			$coverage_rows.eq(1).children("td").html(local_radio_brd_text).end()
								.css('visibility', 'visible');
			$coverage_rows.eq(2).css('visibility', 'visible');
		}
		 // TODO: Add id to this td
		// $j("#coverage_table").find("tr").eq(1).find("td").html(national_tv_brd_text); // TODO: Add id to this td
	};





	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// ================
	// = STATS SCREEN =
	// ================
	
	this.updateStatsScreen = function() {
		this.updateStatsForTeam("vtm");
		this.updateStatsForTeam("htm");
		$j("#loading_screen").hide();
	};
	
	this.updateStatsForTeam = function(team_type) {
		var current_statset, player_hash, player, stat, player_name, $player_row, $stat_td, headshot_url;
		current_statset = Model.App.state[team_type +"_statset"];
		var team = Model.Teams[team_type];
		
		if (current_statset == "leaders") {
			var leaders = Model.Leaders;
			$leaders_table = $j('#'+team_type+'_stats').children('.leaders_table');

			
			for (var i=0; i<4; i++){
				stat = Model.StatSets["leaders"][i];
				var leader_stat = leaders[team_type][stat];
				var $leaders_row = $leaders_table.find('.leaders_row_'+stat);

				// Single leader
				if (leader_stat.length == 1){
					var player_number = Model.getPlayerByCode(team_type, leader_stat[0].code).number;
					headshot_url = appConfig['headshots_base_url'].replace("@@PLAYERCODE@@", leader_stat[0].code);
					
					$leaders_row.children('.headshot').children('div').html('<img src="'+headshot_url+'" />');
					$leaders_row.children('.player_name').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ team.config.color +'">'+leader_stat[0].firstlastname+'<br /><span class="player_number">#'+player_number+'</span></a>');
					$leaders_row.children('.player_stat').html(leader_stat[0].stat_val);
				}
				// Multiple players tied
				else if (leader_stat.length > 1) {
					$leaders_row.children('.headshot').children('div').empty();
					$leaders_row.children('.player_name').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ team.config.color +'">'+leader_stat.length + " Players Tied</a>");
					$leaders_row.children('.player_stat').html(leader_stat[0].stat_val);	
				}
				// No Leaders for stat
				else {
					$leaders_row.children('.headshot').children('div').empty();
					$leaders_row.children('.player_name').html("N/A");
					$leaders_row.children('.player_stat').empty();
				}
			}
		}
		else {
			// Clear out any background colors that might've not faded out completely
			$j("#"+ team_type +"_stats").find("td.bold_stat").css("background-color", "#fff");
			
			for (var i = 0; i < 5; i++) {
				if (i < team.active.length){
					player_hash = team.active[i];
					player = Model.Players[team_type][player_hash];
		
					$j("#"+ team_type +"_stats").find("tr").eq(i+1).attr("id", team_type +"_player_"+ player_hash);
					$player_row = $j("#"+ team_type +"_player_"+ player_hash);
					
					if (player.code) {
						headshot_url = appConfig['headshots_base_url'].replace("@@PLAYERCODE@@", player.code);
						$player_row.children(".headshot").children("div").html('<img src="'+headshot_url+'" />');
					}
					else {
						$player_row.children(".headshot").children("div").empty();
					}
					
					$player_row.children(".player_name").html('<span style="color:#'+ team.config.color +'">'+ player.firstlastname +'</span><br />#'+ player.number);
					$player_row.children(".min_played").html(player.min_played);

					for (var j = 0, num_stats = Model.StatSets[current_statset].length; j < num_stats; j++) {
						stat = Model.StatSets[current_statset][j];
						$stat_td = $player_row.children("."+current_statset+"_"+stat);
						if ($stat_td.html() != player[stat]) {
							$stat_td.html(player[stat]);
							if (Model.App.state.stat_animations_on) {
								$stat_td.animate({ backgroundColor: "#"+team.config.color}, 250, 'linear', 
									function(){
										$j(this).animate({ backgroundColor: "#fff" }, 1250);
									}
								);
							}
						}
					}

				}
				else {
					player_hash = "empty_"+i;
					
					$j("#"+ team_type +"_stats").find("tr").eq(i+1).attr("id", team_type +"_player_"+ player_hash);
					$player_row = $j("#"+ team_type +"_player_"+ player_hash);
					
					$player_row.children(".headshot").children("div").empty();
					$player_row.children(".player_name").empty();
					$player_row.children(".min_played").empty();
				
					for (var j = 0, num_stats = Model.StatSets[current_statset].length; j < num_stats; j++) {
						stat = Model.StatSets[current_statset][j];
						$stat_td = $player_row.children("."+current_statset+"_"+stat);
						$stat_td.empty();
					}
				}
			}
		}
	};
	
	
	this.cycleStatTables = function(p_sCurrentStatTable, p_sHomeOrAway) {
		var l_sStartingPoint;
		
		var l_aStatTables = ["basic", "shooting", "rebounds", "x-factor", "leaders"];
		
		for (var i=0; i<l_aStatTables.length; i++){
			if (p_sCurrentStatTable == l_aStatTables[i])	
				l_sStartingPoint = i;
		}

		this.cycleToTable(l_sStartingPoint, l_aStatTables, p_sHomeOrAway);
	};
	
	
	this.cycleToTable = function(p_nIndex, p_aStatTables, p_sHomeOrAway) {
		switch (p_sHomeOrAway) {
			case 'vtm':
				if (Model.App.state.vtm_stats_auto == true) {
					if (p_nIndex >= p_aStatTables.length)
						p_nIndex = 0;
				
					Model.App.state.vtm_statset = $j.trim(p_aStatTables[p_nIndex].toLowerCase());
					setTimeout(function(){ View.cycleToTable(p_nIndex+1, p_aStatTables, p_sHomeOrAway); }, 3000);
					$j('#'+p_sHomeOrAway+'_stat_sets').parent().siblings('span').html(p_aStatTables[p_nIndex]);
					this.showStatTable(p_aStatTables[p_nIndex], p_sHomeOrAway);
				}
				break;
				
			case 'htm':
				if (Model.App.state.htm_stats_auto == true) {
					if (p_nIndex >= p_aStatTables.length)
						p_nIndex = 0;
					
					Model.App.state.htm_statset = $j.trim(p_aStatTables[p_nIndex].toLowerCase());
					setTimeout(function(){ View.cycleToTable(p_nIndex+1, p_aStatTables, p_sHomeOrAway); }, 3000);
					$j('#'+p_sHomeOrAway+'_stat_sets').parent().siblings('span').html(p_aStatTables[p_nIndex]);
					this.showStatTable(p_aStatTables[p_nIndex], p_sHomeOrAway);
				}
				break;
		}
	};

	
	this.showStatTable = function(p_sTableName, p_sHomeOrAway) {
		Model.App.state.stat_animations_on = false;
		this.updateStatsForTeam(p_sHomeOrAway);
		Model.App.state.stat_animations_on = true;
		var l_sTableName = p_sTableName.toLowerCase();
		var $l_xStatTable = $j('#'+p_sHomeOrAway+'_stats').children('table.stats_table');
		var $l_xLeadersTable = $j('#'+p_sHomeOrAway+'_stats').children('table.leaders_table');
		var $l_xDynamicCols = $l_xStatTable.find('td.dynamic_col');
		
		switch(l_sTableName){
			case "basic":
				$l_xLeadersTable.hide();
				$l_xStatTable.show().removeClass('three_col_table').addClass('four_col_table').find('.fourth_col').show();
				$l_xDynamicCols.eq(0).children('div').css('backgroundPosition', '13px -24px'); //Points
				$l_xDynamicCols.eq(1).children('div').css('backgroundPosition', '12px -32px'); //Rebounds
				$l_xDynamicCols.eq(2).children('div').css('backgroundPosition', '14px -40px'); //Assists
				$l_xDynamicCols.eq(3).children('div').css('backgroundPosition', '16px -64px'); //Fouls
				break;
			case "shooting":
				$l_xLeadersTable.hide();
				$l_xStatTable.show().removeClass('three_col_table').addClass('four_col_table').find('.fourth_col').show();
				$l_xDynamicCols.eq(0).children('div').css('backgroundPosition', '11px -72px'); //FGM
				$l_xDynamicCols.eq(1).children('div').css('backgroundPosition', '10px -80px'); //3PM
				$l_xDynamicCols.eq(2).children('div').css('backgroundPosition', '11px -88px'); //FTM
				$l_xDynamicCols.eq(3).children('div').css('backgroundPosition', '14px -96px'); //BA
				break;
			case "rebounds":
				$l_xLeadersTable.hide();
				$l_xStatTable.show().removeClass('four_col_table').addClass('three_col_table').find('.fourth_col').hide();
				$l_xDynamicCols.eq(0).children('div').css('backgroundPosition', '20px -104px'); //OFF
				$l_xDynamicCols.eq(1).children('div').css('backgroundPosition', '21px -112px'); //DEF
				$l_xDynamicCols.eq(2).children('div').css('backgroundPosition', '19px -120px'); //TOT
				break;
			case "x-factor":
				$l_xLeadersTable.hide();
				$l_xStatTable.show().removeClass('three_col_table').addClass('four_col_table').find('.fourth_col').show();
				$l_xDynamicCols.eq(0).children('div').css('backgroundPosition', '13px -128px'); //STL
				$l_xDynamicCols.eq(1).children('div').css('backgroundPosition', '12px -136px'); //BLK
				$l_xDynamicCols.eq(2).children('div').css('backgroundPosition', '14px -144px'); //TO
				$l_xDynamicCols.eq(3).children('div').css('backgroundPosition', '13px -152px'); //+/-
				break;
			case "leaders":
				$l_xStatTable.hide();
				$l_xLeadersTable.show();
				break;
		}
	};

	




	
	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// =====================
	// = SHOT CHART SCREEN =
	// =====================

	this.populateShotchartScreen = function(period) {
		period = period || Model.Game.data.period;
		
		this.showTimelineMarkers();
		this.updateScrubberPosition();
		this.updateMarkersAgainstFilters(period);

		$j("#loading_screen").hide();
	};

	this.updateShotchartScreen = function() {
		this.showTimelineMarkers();
		this.updateScrubberPosition();
		var current_period_shown = (Model.App.state.sc_prd_shown == Model.Game.data.period);
	
		if (current_period_shown)
			this.updateMarkersAgainstFilters();

		$j("#loading_screen").hide();
		if (current_period_shown)
			View.showShotTooltips();
	};
	

	this.showNewShotMarkers = function(show_markers) {
		show_markers = show_markers || true;
		var evt;
		
		for (var i = 0; i < Model.Shots.markers.length; i++) {
			evt = Model.Shots.markers[i];
			if (!$j("#shot_marker_"+evt.id).length) { // Check that the marker doesn't already exist
				this.createShotMarker(evt, show_markers);
			}
		};

		var $markers_shown = $j("#court_overlay").children("div.shot_marker:visible");

		if ($markers_shown.length > Model.App.state.sc_shots_to_show) {
			var index = $markers_shown.length - Model.App.state.sc_shots_to_show;
		}  

		$markers_shown.eq(index).prevAll().remove();
	};
	
	
	this.createShotMarker = function(evt, show_marker) {
		show_marker = show_marker || true;

		if ($j("#shot_marker_"+evt.id).length && show_marker) {
			$j("#shot_marker_"+evt.id).show();
			return;
		}

		var x, y, leftright_css_prop, name_text, name_number_text, made_missed_text, $shot, $shot_tooltip, headshot_url = "";
		
		y = evt.fixed_y;
		x = (evt.fixed_x > 217) ? 217 : evt.fixed_x; // NOTE: Temporarily fixing shots which would appear out of bounds on lower baseline

		// Adding a random slight offset to shots under basket so that they're not right on top of each other
		if (evt.x == 0 && evt.y == 0) {
			y += Math.random() * 10 - 5;
			x += Math.random() * 10 - 5;
		}
		
		leftright_css_prop = (evt.team == "htm") ? "left" : "right"; // Home team shoots on the left basket
		name_text = (evt.player_firstname) ? evt.player_firstname +" "+ evt.player_lastname +", " : evt.player_lastname +", ";
		name_number_text = name_text +"#"+ evt.player_number;
		name_number_text = (name_number_text == ", #") ? "" : name_number_text;
		
		if (evt.player_code) {
			headshot_url = appConfig['headshots_base_url'].replace("@@PLAYERCODE@@", evt.player_code);
		}
		
		$shot = $j('#shot_marker_template').clone(true).attr("id", "shot_marker_"+ evt.id);
		$shot_tooltip = $shot.children("div.shot_tooltip").attr("id", "shot_tooltip_"+ evt.id);

		$shot.find("div.tooltip_headshot").html('<img src="'+ headshot_url +'" />');
		$shot_tooltip.find("p.tooltip_name").html(name_number_text);
		$shot_tooltip.find("p.tooltip_time").html("Time: " + evt.time_text);
		$shot_tooltip.find("p.tooltip_type").html(evt.action_text +" "+ evt.result_text);
		
		$shot.children("div.shot_color").css("background-color", "#"+Model.Teams[evt.team].config.color);
		$shot.css(leftright_css_prop, y+'px').css('top', x+'px');
		if (evt.type == 1)
			$shot.children('#shot_ring').addClass('make_ring').attr('id', '');
		else if (evt.type == 2)
			$shot.children('#shot_ring').addClass('miss_ring').attr('id', '');

		$shot.appendTo('#court_overlay');
		
		if (show_marker)
			$shot.show(); // Otherwise left hidden in the DOM
	};
	
	
	this.showShotTooltips = function() {
		if (Model.Shots.tooltip_queue.length < 1) return;
		
		$j('#court_overlay').find("div.shot_tooltip").hide();
		
		var evt = Model.Shots.tooltip_queue.shift();
		var $shot_tooltip = $j("#shot_tooltip_"+evt.id);
		
		$shot_tooltip.parent().addClass('more_zindex');
		$shot_tooltip.fadeIn(750, function() { 
			$shot_tooltip.fadeOut(1000, function() { 
				View.showShotTooltips();
				$shot_tooltip.parent().removeClass('more_zindex');
			});
		});
		$shot_tooltip.siblings('div.tooltip_headshot').fadeIn(750, function() { $j(this).fadeOut(1000); }); //headshots fade in/out separately from tooltips, bc of IE6
		
		// setTimeout(function() { $shot_tooltip.fadeOut(1000, function(){ thisObj.showShotTooltips(); }); }, 2000);
	};
	
	
	this.updateMarkersAgainstFilters = function(period) {
		period = period || Model.App.state.sc_prd_shown;
		var period_evts = Model.Shots.events["prd"+period];
		var num_shots = period_evts.length;
		var team_filter = Model.App.state.shotchart_filters.team; 
		var player_filter = Model.App.state.shotchart_filters.player; 
		var shot_filter = Model.App.state.shotchart_filters.shot; 
		var passes_filters, shots_matched = 0;
		
		$j('#court_overlay').children("div.shot_marker").hide();
		
		for (var i = num_shots; i--;) {
			if (!period_evts[i]) break;
			
			passes_filters = true;

			if (team_filter && period_evts[i].team != team_filter) {
				passes_filters = false;
			}
			if (player_filter && period_evts[i].player_code != player_filter) {
				passes_filters = false;
			}
			if (shot_filter && period_evts[i].shot_group != shot_filter) {
				passes_filters = false;
			}
			
			if (passes_filters) {
				View.createShotMarker(period_evts[i]);
				shots_matched++;
			}
			
			if (shots_matched == Model.App.state.sc_shots_to_show) break;
		}
		
	};	


	this.updateScrubberPosition = function() {
		var shotchart_clock = Model.Shots.clock;

		if (shotchart_clock && shotchart_clock != " ") {
			var tenths = Utils.getDecisecondsForDisplayTime(shotchart_clock) || 0;
			var pct = 100 - Math.floor(tenths / 72);

			$j('#timeline_q'+Model.Game.data.period).find(".slider_bar").slider('value', pct);
		}
	};

	
	this.showTimelineMarkers = function() {
		var evt;
		for (var i = 0, new_shots = Model.Shots.timeline_queue.length; i < new_shots; i++) {
			evt = Model.Shots.timeline_queue.shift();
			this.plotTimelineMarker(evt);
		}
	};


	this.showPrevTimelineMarkers = function(period) {
		var evt;
		for (var i = 0, shots = Model.Shots.events["prd"+period].length; i < shots; i++) {
			evt = Model.Shots.events["prd"+period][i];
			this.plotTimelineMarker(evt);
		}
	};

	this.plotTimelineMarker = function(evt) { 
		var shot_team = evt.team;
		var shot_type = (evt.type == 1) ? "make" : "miss";
		
		var $template_to_clone = $j('#timeline_q1').find('div.shot_'+shot_type+'_template_'+shot_team);
		
		var quarter = evt.period;
		var $quarter_timeline = $j('#timeline_q'+quarter).children('div.shot_timeline');
		
		$template_to_clone.clone().css("left", evt.timeline_position).removeClass('shot_'+shot_type+'_template_'+shot_team).appendTo($quarter_timeline).show();
	};


	this.openQuarterTimeline = function($quarter_tab) {
		$j('#shotchart_timeline_tabs').find('div.timeline_open').animate({width: "hide"}, 500, function(){ 
			$j('#shotchart_timeline_tabs').find('div.timeline_quarter_tab').removeClass('selected_tab');
			$j(this).removeClass('timeline_open');
			$quarter_tab.addClass('selected_tab');
			$quarter_tab.siblings('div.shot_timeline').animate({width: "show"}, 300, function(){ $j(this).addClass('timeline_open'); Model.App.state.sc_timeline_opening = false; }); 
			
			// Avoid width issues in Safari which lead to timelines being pushed below timeline area
			if ($j.browser.safari)
				$quarter_tab.parent('div.timeline_quarter').width(800).siblings('div.timeline_quarter').width(20);
		});
	};



	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// ================
	// = PLAY BY PLAY =
	// ================
	
	this.populatePlaybyplayScreen = function(period) {
		period = period || Model.Game.data.period;
		var evt, index, initial_plays = [], initial_plays_html = "";
		var num_plays_to_show = Model.App.config.num_plays_to_show;
		var plays = Model.Plays;
		var period_evts = plays.events["prd"+period];

		if (period_evts.length < 1) {
			$j("#pbp_table_q"+period)
				.siblings("table").hide().end()
				.find("tr.no_period_plays").show().end()
				.show();
			return;
		}

		// Concatenate play html from oldest to most recent
		for (var i=0; i < num_plays_to_show; i++) {
			index = (period_evts.length-1) - i;

			if (period_evts[index]) { 
				initial_plays.push(this.getPlayHtml(period_evts[index], true));
			}
		};

		initial_plays_html = initial_plays.join('');
		$j("#pbp_table_q"+period).children(".pbp_initial").html(initial_plays_html);

		if (period_evts.length > num_plays_to_show) {
		 	$j("#pbp_table_q"+period).children(".pbp_more").html(this.getLoadMoreHtml(period), true);
		}

		$j("#pbp_table_q"+period)
			.siblings("table").hide().end()
			.show();

		setTimeout(function(){ View.updatePbpScrollpane(); $j('#playbyplay_screen_table')[0].scrollTo(0); }, 0 );
		$j("#loading_screen").hide();

		if (period == Model.Game.data.period) {
			plays.last_index_shown = period_evts.length-1;
		}
	};


	this.populateMorePlays = function(period) {
		period = period || Model.Game.data.period;
		var evt, index, passes_filters, prev_plays = [], prev_plays_html = "";
		var team_filter = Model.App.state.pbp_filters.team; 
		var player_filter = Model.App.state.pbp_filters.player; 
		var num_plays_to_show = Model.App.config.num_plays_to_show;
		var period_evts = Model.Plays.events["prd"+period];

		if (period_evts.length < num_plays_to_show) return;

		var load_more_start_index = period_evts.length - num_plays_to_show;

		for (var i = load_more_start_index; i--;) {
			if (period_evts[i]) { 
				passes_filters = true;

				if (team_filter && period_evts[i].team != team_filter) {
					passes_filters = false;
				}
				if (player_filter && period_evts[i].player_code != player_filter) {
					passes_filters = false;
				}
		
				prev_plays.push(this.getPlayHtml(period_evts[i], passes_filters));
			}
		};
		
		prev_plays_html = prev_plays.join('');
		
		$j("#pbp_table_q"+period).children("tbody.pbp_more").html(prev_plays_html);
		
		// Hide "No Plays for this Player" msg if "Load More Plays" was clicked with Player filter active, and there were plays shown for the selected player
		if (player_filter && $j("#pbp_table_q"+period).children("tbody.pbp_more").children("tr:visible").length)
			$j("#pbp_table_q"+period).find("tr.no_player_plays").hide();
		
		setTimeout("View.updatePbpScrollpane()", 0);
		$j("#loading_screen").hide();
	};


	/*
	 * Add's new plays to the Play By Play Screen 
    *
	 * Each quarter is an HTML table and each play 
	 * is represented by a TR which is PREPENDED to the
	 * table. All new play tr's are hidden by default.
	 *
	 * Only plays that pass current filters are shown.
	 * Plays that don't pass still exist in the DOM, just hidden
	 */

	this.updatePlaybyplayScreen = function() {

		var team_filter = Model.App.state.pbp_filters.team; 
		var player_filter = Model.App.state.pbp_filters.player; 
		var plays_queue = Model.Plays.queue;
		var num_plays = plays_queue.length;
		var $pbp_table = $j("#pbp_table_q"+Model.Game.data.period);

		$j("#loading_screen").hide();

		if (num_plays < 1) return; 

		for (var i = 0; i < num_plays; i++) {
			var evt = plays_queue[i];
			var play_html = this.getPlayHtml(evt, false);
			$pbp_table.children("tbody.pbp_new").prepend(play_html); 
			if ((team_filter && evt.team != team_filter) || (player_filter && evt.player_code != player_filter)) { continue; }
			$pbp_table.find("tr.no_player_plays").hide().remove();
			$j("#play_id_"+evt.id).fadeIn("slow");
		}
		
		setTimeout("View.updatePbpScrollpane()", 0);
		if (plays_queue[num_plays-1]) { Model.Plays.last_index_shown = plays_queue[num_plays-1].index; }
		
		Model.Plays.queue = [];

	};
	

	this.updatePbpScrollpane = function() {
		$j('#playbyplay_screen_table').jScrollPane({dragMaxHeight: 40, dragMinHeight: 40, scrollbarWidth: 15});
	};
	

	this.getPlayHtml = function(evt, is_visible) {
		is_visible = is_visible || false;
		var html = "";
		var period_text = (evt.period < 5) ? "Q"+ evt.period : (evt.period - 4) + "OT";
		var team_config = Model.Teams[evt.team].config;
		var display_style = (!is_visible) ? 'style="display:none"' : '';
		
		switch (evt.type) {
			case "player":
				var player = Model.getPlayerByCode(evt.team, evt.player_code);
				var headshot_url = (evt.player_code) ? appConfig['headshots_base_url'].replace("@@PLAYERCODE@@", evt.player_code) : "";
				var play_html = (evt.msg_type == 1) ? "<strong>"+evt.stripped_text+"</strong>" : evt.stripped_text; 
				
				html += '<tr '+ display_style +' id="play_id_'+ evt.id +'" class="pbp_player_row pbp_team_'+ evt.team +' pbp_player_'+ evt.player_code +'">';
				html += '	<td class="pbp_c1"><div>'+ period_text +'</div>'+ evt.time_text +'</td>';
				html += '	<td class="pbp_c2">';
				html += '		<div class="pbp_player_headshot"><img src="'+ headshot_url +'" /></div>';
				html += (player) ? '       <p class="pbp_player_name"><span style="color:#'+ team_config.color +'">'+ player.firstlastname +'</span></p>' : '';
				html += (player) ? '       <p class="pbp_player_number"><span class="pbp_number">#'+ player.number +'</span> '+ player.position +'</p>' : '';
				html += '	</td>';
				html += '   <td class="pbp_c3"><img src="image/assets/minilogos/'+ team_config.abbrev + '.jpg" /></td>';
				html += '   <td class="pbp_c4">'+ play_html +'</td>';
				html += '</tr>';
			break;
			
			case "team":
				html += '<tr '+ display_style +' id="play_id_'+ evt.id +'" class="pbp_team_row pbp_team_'+ evt.team +'">';
				html += '	<td class="pbp_c1"><div>'+ period_text +'</div>'+ evt.time_text +'</td>';
				html += '   <td class="pbp_c2"><span class="pbp_city" style="color:#'+ team_config.color +'">'+ team_config.city +'</span></td>';
				html += '   <td class="pbp_c3">';
				html += '	    <img src="image/assets/minilogos/'+ team_config.abbrev + '.jpg" />';
				html += '	</td>';
				html += '   <td class="pbp_c4">'+ evt.stripped_text +'</td>';
				html += '</tr>';		
			break;
			
			case "neutral":
			break;
		}
		
		return html;
	};
	
	
	this.getLoadMoreHtml = function(period) {
		var html = "";
		html += '<tr class="pbp_load_more_row">';
		html += '    <td colspan="5"><span class="load_more_link" onclick="CSL.onLoadMorePlaysClick('+period+');">Load More Plays »</span></td>';
	    html += '</tr>';
		
		return html;
	};


	
	this.showPlaysForQuarter = function(prd_to_show) {
		prd_to_show = prd_to_show || Model.Game.data.period;

		// Re-populate current quarter's play tables when navigating back to it from previous quarter (if current quarter has plays) 
		if (prd_to_show == Model.Game.data.period && Model.Plays.events["prd"+prd_to_show].length > 0) {
			$j("#pbp_table_q"+ prd_to_show).children("tbody").empty();
		}
		View.populatePlaybyplayScreen(prd_to_show);

		$j("#pbp_table_q"+prd_to_show)
			.siblings("table").hide().end()
			.show();
		// $j('#playbyplay_screen_table')[0].scrollTo(0);
		View.updatePbpScrollpane();

		Model.App.state.pbp_prd_shown = prd_to_show;
	};



	this.showOvertimeTabs = function(screen) {
		var id_prefix = "";
		
		if (screen == "shotchart") 
			id_prefix = "timeline";
		else if (screen == "playbyplay") 
			id_prefix = "pbp";
		else
			return;
		
		switch (Model.Game.data.period){
			case 5:
				$j('#'+ id_prefix +'_q5').show();
				break;
			case 6:
				$j('#'+ id_prefix +'_q5').show();
				$j('#'+ id_prefix +'_q6').show();
				break;
			case 7:
				$j('#'+ id_prefix +'_q5').show();
				$j('#'+ id_prefix +'_q6').show();
				$j('#'+ id_prefix +'_q7').show();
				break;
			case 8:
				$j('#'+ id_prefix +'_q5').show();
				$j('#'+ id_prefix +'_q6').show();
				$j('#'+ id_prefix +'_q7').show();
				$j('#'+ id_prefix +'_q8').show();
				break;
		}		
	};




	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// ===========
	// = FILTERS =
	// ===========
	

	this.populateTeamFilter = function(dropdown_ul_id) {
		var $team_lis;
		var teams = Model.Teams;
		
		$team_lis = $j("#"+dropdown_ul_id).children();
		$team_lis.eq(0).html("<em>ALL TEAMS</em>").data("team", false);
		$team_lis.eq(1).html(teams.vtm.config.name).data("team", "vtm");
		$team_lis.eq(2).html(teams.htm.config.name).data("team", "htm");
	};


	this.populatePlayerFilter = function(dropdown_ul_id) {
		var player, $dropdown_li_template;
		var vtm_players_sorted = Model.Players.vtm_codes;
		var htm_players_sorted = Model.Players.htm_codes;

		// Alphabetically sorting player codes for each team
		vtm_players_sorted.sort();
		htm_players_sorted.sort();

		$dropdown_li_template = $j("#"+dropdown_ul_id).children("li").eq(0);

		// Adding "ALL" entry to beginning of dropdown list to allow filter to be reset
		$dropdown_li_template
			.clone(true)
			.html("<em>ALL PLAYERS</em>")
			.data("code", false)
			.appendTo("#"+dropdown_ul_id);

		for (var i = 0; i < vtm_players_sorted.length; i++) {
			player = Model.getPlayerByCode("vtm", vtm_players_sorted[i]);
			if (player && !player.dnp) { // Don't show DNP players in filter
				$dropdown_li_template
					.clone(true)
					.addClass("player_filter_vtm")
					.html(player.firstlastname)
					.data("code", player.code)
					.data("team", "vtm")
					.appendTo("#"+dropdown_ul_id);
			}
		}

		for (i = 0; i < htm_players_sorted.length; i++) {
			player = Model.getPlayerByCode("htm", htm_players_sorted[i]);
			if (player && !player.dnp) { // Don't show DNP players in filter
				$dropdown_li_template
					.clone(true)
					.addClass("player_filter_htm")
					.html(player.firstlastname)
					.data("code", player.code)
					.data("team", "htm")
					.appendTo("#"+dropdown_ul_id);
			}
		};
		
		$dropdown_li_template.remove();
	};
	

	this.populateShotFilter = function() {
		var $dropdown_li_template = $j("#sc_shot_filter_dropdown").children("li").eq(0);

		// Adding "ALL" entry to beginning of dropdown list to allow filter to be reset
		$dropdown_li_template
			.clone(true)
			.html("<em>ALL SHOTS</em>")
			.data("group", false)
			.appendTo("#sc_shot_filter_dropdown");

		for (var i = 0, num_shot_groups = Model.ShotGroups.length; i < num_shot_groups; i++) {
			shot_group = Model.ShotGroups[i];
			if (shot_group) {
				$dropdown_li_template
					.clone(true)
					.html(shot_group)
					.data("group", shot_group)
					.appendTo("#sc_shot_filter_dropdown");
			}
		};
		
		$dropdown_li_template.remove();
	};





	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// ===================
	// =  BOXSCORE SCREEN =
	// ===================
	
	// Clones the necessary number of player rows for each team, using the same number of rows for both teams for symmetrical heights
	this.createBoxscoreRows = function(max_num_players) {
		var players = Model.Players;
		var vtm_player_row_template = $j("#vtm_boxscore").find("tr.bs_player_row_template");
		var htm_player_row_template = $j("#htm_boxscore").find("tr.bs_player_row_template");
		
		var empty_row = '<td></td><td colspan="16"></td>';
		
		for (var i = 0; i < max_num_players; i++) {
			if ((i+1) > players.vtm_count)
				vtm_player_row_template.clone().html(empty_row).attr("class", "bs_empty_row").insertBefore(vtm_player_row_template).show();
			else
				vtm_player_row_template.clone().removeClass('bs_player_row_template').insertBefore(vtm_player_row_template).show();
		}
		
		for (var j = 0; j < max_num_players; j++) {
			if ((j+1) > players.htm_count)
				htm_player_row_template.clone().html(empty_row).attr("class", "bs_empty_row").insertBefore(htm_player_row_template).show();
			else
				htm_player_row_template.clone().removeClass('bs_player_row_template').insertBefore(htm_player_row_template).show();
		}
		
		if ($j.browser.msie && $j.browser.version == "6.0") {
			this.bindBoxscoreRowHover();
		}
	};
	
	// Should only be bound for IE6; CSS :hover pseudo-class used otherwise
	this.bindBoxscoreRowHover = function() {
		$j('#boxscore_screen').find('.bs_player_row').hover(
			function(){ $j(this).addClass('bs_player_row_hover'); },
			function(){ $j(this).removeClass('bs_player_row_hover'); }
		);
	};

	// Populate View with static data for teams only *once*
	this.populateStaticBoxscoreData = function() {
		this.populateStaticDataForTeam("vtm");
		this.populateStaticDataForTeam("htm");
	};

	this.populateStaticDataForTeam = function(team) {
		var player, player_hash, player_name, $player_row, player_dnp_html;
		var team_players = Model.Players[team];
		var i = 1; // Start <tr> index at 1 since 1st row (0) is the heading row

		// Apply unique player-based DOM id's to each row and populate with static data (name, number, position)
		for (player_hash in team_players) {
			if (team_players.hasOwnProperty(player_hash)) { // Make sure this isn't an inherited object property
				player = team_players[player_hash];

			
				$j("#"+team+"_boxscore").find("tr").eq(i).attr("id", team +"_boxscore_player_"+ player_hash);
				$player_row = $j("#"+ team +"_boxscore_player_"+ player_hash);
			
				player_name = (player.firstname) ? player.firstname.charAt(0) +". "+ player.lastname : player.lastname;
				if (!player.dnp) {
					$player_row.children(".bs_player_name").html('<a href="http://www.nba.com/playerfile/'+player.code+'/index.html" target="_blank" style="color:#'+ Model.Teams[team].config.color +'">'+ player_name +'</a>&nbsp;#'+ player.number);
					$player_row.children(".bs_position").html(player.position);
				}
				else {
					player_dnp_html = '<td class="bs_player_name dnp">'+ player_name +'&nbsp;#'+ player.number +'</td><td class="dnp" colspan="16">'+ player.dnp +'</td>';
					$player_row.html(player_dnp_html);
				}
				i++;
			}
		}
		
		// Team Records
		//
		var vtm_data = Model.Teams.vtm.data;
		var htm_data = Model.Teams.htm.data;

		// Boxscore Screen
		$j("#vtm_boxscore").find(".record").html("("+ vtm_data.wins +"-"+ vtm_data.losses +")");
		$j("#htm_boxscore").find(".record").html("("+ htm_data.wins +"-"+ htm_data.losses +")");

		// Stats Screen
		$j("#vtm_stats").find(".record").html("("+ vtm_data.wins +"-"+ vtm_data.losses +")");
		$j("#htm_stats").find(".record").html("("+ htm_data.wins +"-"+ htm_data.losses +")");
	};


	this.updateBoxscoreScreen = function() {
		this.updateBoxscoreForTeam("vtm");
		this.updateBoxscoreForTeam("htm");
		$j("#loading_screen").hide();
	};


	this.updateBoxscoreForTeam = function(team){
		// PLAYER Stats
		//
		var player_hash, player, stat_name, $player_row, $stat_td;
		var boxscore_categories = [ "min_played", "fgma", "threepma", "ftma", "plusminus", "off_reb", "def_reb", 
								    "rebounds", "assists", "fouls", "steals", "turnovers", "blocks", "blocks_against", "points" ];
		var team_players = Model.Players[team];

		for (player_hash in team_players) {
			if (team_players.hasOwnProperty(player_hash)) { // Make sure this isn't an inherited object property
				player = team_players[player_hash];
			
				$player_row = $j("#"+ team +"_boxscore_player_"+player_hash);
			
				for (var j = 0, num_stats = boxscore_categories.length; j < num_stats; j++) {
					stat_name = boxscore_categories[j];
					$stat_td = $player_row.children(".bs_"+ stat_name);

					if ($stat_td.html() != player[stat_name]) { // Don't update if previous value is the same
						$stat_td.html(player[stat_name]);
					
						if (Model.App.state.stat_animations_on && stat_name != "min_played") {
							$stat_td.animate({ backgroundColor: "#"+Model.Teams[team].config.color}, 250, 'linear', function(){
										$j(this).animate({ backgroundColor: "#fff" }, 500, 'linear', function(){
											$j(this).attr('style', '');																					  
										});
							});
						}
					}
				}
			
				if (player.oncrt == "1") {
					$player_row.children('.bs_player_name').addClass('active_player');
				}
				else {
					$player_row.children('.bs_player_name').removeClass('active_player');
				}
			}
		}
		
		// TEAM Stats
		//
		var team_stat_name, team_stat_val, team_data;
		var team_totals_categories = [ "min_played", "fg_ma", "threep_ma", "ft_ma", "off_reb", "def_reb", "total_reb", "assists", "pfouls", "steals", 
									  "turnovers", "blocks", "blocks_against", "total_points" ];
		var team_bottom_categories = [ "tfouls", "fg_pct", "threep_pct", "ft_pct", "team_reb", "turnovers"];
				
		team_data = Model.Teams[team].data;
		
		for (var t = 0, num_team_stats = team_totals_categories.length; t < num_team_stats; t++) {
			team_stat_name = team_totals_categories[t];
			team_stat_val = team_data[team_stat_name];
			$j("#"+ team +"_boxscore_totals_"+ team_stat_name).html(team_stat_val);
		}
		
		for (var b = 0, num_team_stats = team_bottom_categories.length; b < num_team_stats; b++) {
			team_stat_name = team_bottom_categories[b];
			team_stat_val = team_data[team_stat_name];
			$j("#"+ team +"_boxscore_bottom_"+ team_stat_name).html(team_stat_val);
		}
	};

	
	this.toggleBoxscoreView = function(team) {
		var $team_boxscore = $j('#'+team+'_boxscore');
		var $expand_link = $team_boxscore.find('div.expand');
		
		if ($team_boxscore.hasClass('full_boxscore')) {
			$team_boxscore.removeClass('full_boxscore').siblings('.team_container').fadeIn("fast");
			$team_boxscore.find('div.mini_banner').hide();
			$expand_link.html("Expand");
		}
		else {
			$team_boxscore.siblings('.team_container').fadeOut("fast", function(){ 
				$team_boxscore.siblings('.team_container').hide(); //extra hide (after fadeOut), for case where user is navigating to boxscore screen (can't fadeOut because nothing is visible)
				$team_boxscore.addClass('full_boxscore').find('.mini_banner').show(); 
			});
			$expand_link.html("Side-by-Side");
		}
		
		$expand_link.toggleClass('close');	
	};

	
	this.openBoxscoreForTeam = function(team) {
		if (team == 'both'){
			$j('#boxscore_screen').find('.close').trigger('click');
		}
		else{
			$team_boxscore = $j('#'+team+'_boxscore');
			
			if ($team_boxscore.hasClass('full_boxscore')) 
				return; //boxscore is already open... do nothing
			else {
				$team_boxscore.siblings('.team_container').find('.close').trigger('click');
				$team_boxscore.find('.expand').trigger('click');
			}
		}
	};





	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// ===============================================
	// = BOTTOM BAR (NBA TICKER & LEAGUE SCOREBOARD) =
	// ===============================================

	this.updateNbaTicker = function() {
		var ticker_text = Model.LeagueScoreboard.ticker_text;
		var ellipsis = '';
		
		if (ticker_text.length > 130)
			ellipsis = '...';
			
		var truncated_ticker_text = ticker_text.substr(0, 130)+ellipsis;
		$j("#nba_ticker").attr('title', ticker_text).html(truncated_ticker_text);
	};

	this.createLeagueScoreboardGames = function() {
		var games, date, day_name, month, day, date_html, $game_table, game;
		
		games = Model.LeagueScoreboard.games;
		date = Model.LeagueScoreboard.date;
        
		day_name = Utils.day_names[date.getDay()].toUpperCase();
		month = Utils.month_names[date.getMonth()].toUpperCase();
		day = date.getDate();
		date_html = day_name +" <br/> "+ month +" "+ day;
		$j("#scoreboard_date").children("span").html(date_html);

		$j("#game_count").html(games.length + " games");

		for (var i = 0, num_games = games.length; i < num_games; i++) {
			game = games[i];
			
			$game_table = $j("#scoreboard_game_template").clone();
			$game_table.attr("id", "scoreboard_game_"+ i);
			$game_table.find("td.sb_vtm_abbrev").html(game.vtm.abbrev);
			$game_table.find("td.sb_htm_abbrev").html(game.htm.abbrev);

			$j("#scoreboard_games").append($game_table);
			$game_table.show('normal', this.bindLeagueScoreboardGameClick($game_table, game));
		}
	};
	
	this.bindLeagueScoreboardGameClick = function($game_table, game){
		var app_config = Model.App.config;
		var qs = "";
		
		$game_table.click(function(){
			// Allows bottom League Scoreboard games to link properly in simulation/testing environments
			if (app_config.sim) qs = "&#8764;=1";
			else if (app_config.live) qs = "&live=1";
			
			// Open in same window if NBA/Broadcaster-branded; otherwise, open with NBA brand in new window
			switch (app_config.brand) {
				case "NBA":
				case "NBATV":
				case "TNT":
				case "ABC":
				case "ESPN":
				case "ESPN2":
					window.location.href = '?gamecode='+game.game_code+'&brand=NBA'+qs;
					break;
				default:
					window.open('?gamecode='+game.game_code+'&brand=NBA'+qs, "_blank");					   
					break;
			}
			
		});
	};	
	
	this.setLeagueScoreboardWidths = function() {
		var lsb_display = Model.LeagueScoreboard.display;
		var lsb_num_games = Model.LeagueScoreboard.games.length;
		
		lsb_display.total_width = lsb_num_games * 68; //width of one table is 65px
	
		lsb_display.viewable_width = $j('#scoreboard_games_wrapper').width();
		lsb_display.extra_width = lsb_display.total_width - lsb_display.viewable_width;
		$j('#scoreboard_games').width(lsb_display.total_width);
		 
		if (lsb_display.extra_width <= 0)
			$j('#scoreboard_arrow_right').addClass('arrow_inactive');
	};
	
	this.updateLeagueScoreboard = function() {
		var game, $game_table, top_html, bottom_text, period_text, clock;
		var games = Model.LeagueScoreboard.games;

		for (var i = 0, num_games = games.length; i < num_games; i++) {
			game = games[i];

			$game_table = $j("#scoreboard_game_"+ i).children('table');

			switch (game.status) {
				case "1": // Not Started Yet
					$game_table.addClass("preview");
					top_html = game.status_text.toUpperCase(); // Start Time
					bottom_text = "PREVIEW";
				break;

				case "2": // Live
					$game_table.addClass("live");
					if (game.status_text.indexOf("Halftime") !== -1) {
						top_html = "<strong>HALF</strong>";
					}
					else { // Show clock
						period_text = (game.period > 4) ? (game.period - 4) + "OT" : game.period +"Q";

						if (!game.clock) { 
							if (game.status_text.indexOf("Start") !== -1 || game.status_text.indexOf("Tipoff") !== -1) {
								clock = (game.period > 4) ? "5:00" : "12:00";
							}
							else {
								clock = "0.0";
							}
						}
						else { 
							clock = game.clock;
						}
					
						top_html = "<strong>"+ period_text +"</strong> - "+ clock;
					}

					$game_table.find(".sb_vtm_score").html(game.vtm.score);
					$game_table.find(".sb_htm_score").html(game.htm.score);

					bottom_text = "LIVE NOW";
				break;
				
				case "3": // Over
				case "4": 
				case "5":
					$game_table.addClass("final");
					top_html = "FINAL";
					$game_table.find(".sb_vtm_score").html(game.vtm.score);
					$game_table.find(".sb_htm_score").html(game.htm.score);
					bottom_text = "RECAP";
				break;
			}
			
			$game_table.find(".sb_top").html(top_html);
			$game_table.find(".footer_cell").html(bottom_text);
			
			// Highlighting leading score
			if (game.vtm.score > game.htm.score) {
				$game_table.find(".sb_htm_score").removeClass("leading_score");
				$game_table.find(".sb_vtm_score").addClass("leading_score");
			}
			else if (game.htm.score > game.vtm.score) {
				$game_table.find(".sb_vtm_score").removeClass("leading_score");
				$game_table.find(".sb_htm_score").addClass("leading_score");
			}
			else if (game.htm.score == game.vtm.score) {
				$game_table.find(".sb_vtm_score").removeClass("leading_score");
				$game_table.find(".sb_htm_score").removeClass("leading_score");
			}

		}

	};







	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// =========================================
	// = PREGAME / HALFTIME / POSTGAME SCREENS =
	// =========================================

	this.populatePregameScreen = function(feed_name) {
		var start_time_eastern, officials_html, national_tv_brd, local_tv_brd = '', local_radio_brd = '';
		var game_data = Model.Game.data;
		var vtm_data = Model.Teams.vtm.data;
		var htm_data = Model.Teams.htm.data;
		var vtm_config = Model.Teams.vtm.config;
		var htm_config = Model.Teams.htm.config;
		var brand = Model.App.config.brand;

		if (feed_name == "simplescoreboard") {
			this.populatePregameScreenForTeam("vtm", feed_name);
			this.populatePregameScreenForTeam("htm", feed_name);
		}

		// Populate Pregame screen Arena & Officials 
		// NOTE: Allowing Boxscore feed to populate this in case Pregame feed wasn't available for some reason
		if (feed_name == "pregame" || feed_name == "boxscore") {
			if (game_data.arena_name) {
				$j('#pg_arena').html(game_data.arena_name+'<br /><span>'+game_data.arena_city_state+'</span>');
			}
	
			if (game_data.officials.length) { 
				officials_html = "";
				for (var i = 0, num_officials = game_data.officials.length; i < num_officials; i++) {
					var temp_official = game_data.officials[i];
					officials_html += (temp_official.number == "true") ? temp_official.name +' #'+ temp_official.number : temp_official.name;

					if (i < num_officials-1) {
						officials_html += ', ';
					}
				}

				$j('#pg_officials').html(officials_html);
			}
		}

		// National TV Broadcaster
		national_tv_brd = game_data.national_tv_broadcaster;
		national_tv_brd = (national_tv_brd) ? national_tv_brd.replace(/ /g, "") : ""; //remove spaces

		if (national_tv_brd)
			$j('#pregame_tv_logo').html('<img src="image/bc_big_'+national_tv_brd+'.png" />').css('display', 'inline');

		// Local TV & Radio Broadcasters
		if (vtm_config.abbrev == brand){
			local_radio_brd = vtm_data.local_radio_broadcaster;
			local_tv_brd = vtm_data.local_tv_broadcaster;
		}
		else if (htm_config.abbrev == brand){
			local_radio_brd = htm_data.local_radio_broadcaster;
			local_tv_brd = htm_data.local_tv_broadcaster;
		}

		var $coverage_rows = $j('#pregame_coverage').find('tr');
	
		if (local_tv_brd)

			$coverage_rows.eq(0).children("td").html(local_tv_brd).end().show();
			
		if (local_radio_brd) {
			$coverage_rows.eq(1).children("td").html(local_radio_brd).end().show();
			$coverage_rows.eq(2).show();
		}
		
		// Simplescoreboard only has National TV Broadcaster data
		if (feed_name == "simplescoreboard") {
			if (national_tv_brd && !local_radio_brd && !local_tv_brd) {
				$j('#pregame_league_pass').css('width', '68px');
				$j('#pregame_tv_logo').css('marginLeft', '60px');
			}
		}

		if (feed_name == "boxscore") {
			// Adjusting League Pass logo and National TV logo CSS after potential Local Broadcaster comes in 
			if (!national_tv_brd && !local_radio_brd && !local_tv_brd) //center the league pass img if radio and tv broadcasters are empty
				$j('#pregame_league_pass').width(235);
			else if (!national_tv_brd && (local_radio_brd || local_tv_brd))
				$j('#pregame_league_pass').width(130);
			else if (national_tv_brd && !local_radio_brd && !local_tv_brd) {
				$j('#pregame_tv_logo').css('marginLeft', '60px');
				$j('#pregame_league_pass').css('width', '68px');
			}
			else {
				$j('#pregame_league_pass').css('width', '68px');
			}
		}
		
		// Showing LIVE text for Pregame screen once game has started
		if (Model.Game.state == "live") {
			$j("#pregame_start_time").html("LIVE");
		}
		else {
			start_time_eastern = Utils.convertMilitaryTimeToDisplayTime(game_data.start_time_eastern);
			$j('#pregame_start_time').html(start_time_eastern +' ET');
		}
		
	};

	this.populatePregameScreenForTeam = function(team) {
		var team_config = Model.Teams[team].config;
		var team_data = Model.Teams[team].data;
				
		var $team_area = $j('#pregame_'+ team);

		var game_notes_url = '/frags/rssTemp/csl_'+ team_config.code +'.html';
		$j("#pregame_"+ team +"_game_notes").load(game_notes_url);

		var div_seed_text = (team_data.div_seed != 0) ? team_data.div_seed + Utils.getSuffixForNumber(team_data.div_seed) +', ' : '';
		var conf_seed_text = (team_data.conf_seed != 0) ? team_data.conf_seed + Utils.getSuffixForNumber(team_data.conf_seed) +', ' : '';
		
		$team_area.children('.pregame_team_header').html(team_config.abbrev);
		$team_area.find('.pregame_notes').children('a').attr('href', "http://www.nba.com/"+ team_config.code +"/news/notes.pdf");
		$team_area.find('.pg_record').html(team_data.wins +'-'+ team_data.losses);
		$team_area.find('.pg_div').html(div_seed_text + team_data.div);
		$team_area.find('.pg_conf').html(conf_seed_text + team_data.conf);
		$team_area.find('.pg_div_record').html(team_data.div_standings);
		$team_area.find('.pg_conf_record').html(team_data.conf_standings);
		
		var $team_links = $team_area.find('.pregame_team_bottom').children('a');
		$team_links.attr('href', function(){ return $j(this).attr("href").replace("@@TEAMCODE@@", team_config.code); });
	};


	this.populateHalftimeScreen = function() {
		var htm_config = Model.Teams.htm.config;
		var vtm_config = Model.Teams.vtm.config;
		var htm_data = Model.Teams.htm.data;
		var vtm_data = Model.Teams.vtm.data;
		
		// Populating Highlights Video
		var highlights_link = Model.Game.data.vid_link;
		if (highlights_link) {
			document.domain='nba.com';

			//Check if the global team variable is set.
			if (nbaOmCurrentTeam) {
				var cvp_player_frame = 'team';
			} else {
				var cvp_player_frame = 'league';
			}

			var fixed_highlights = 'http://www.nba.com/video/cvp/' + cvp_player_frame + 'articleplayer.html?videoID=' + highlights_link.replace("/index.html", "&width=416&height=234");

			var iframe01 = document.createElement('iframe');
			iframe01.setAttribute('id', 'nbaTeamArticlePlayer200912716380');
			iframe01.setAttribute('name', 'nbaTeamArticlePlayer200912716380');
			iframe01.setAttribute('src', fixed_highlights);
			iframe01.setAttribute('width', '416');
			iframe01.setAttribute('height', '265');
			iframe01.setAttribute('frameBorder', '0');
			iframe01.setAttribute('scrolling', 'no');
					          
			$j('#half_video').html(iframe01);
					
			if (document.getElementById('half_video_soon')) { document.getElementById('half_video_soon').style.display='none' }

    }		
	
		//AT A GLANCE TABLE
		var $vtm_glance_row = $j("#halftime_screen").find(".glance_table").find("tr").eq(1);
		var $htm_glance_row = $j("#halftime_screen").find(".glance_table").find("tr").eq(2);

		var $vtm_glance_cells = $vtm_glance_row.children('td');
		$vtm_glance_cells.eq(0).html(vtm_config.abbrev);
		$vtm_glance_cells.eq(1).html(vtm_data.fg_pct+"%");
		$vtm_glance_cells.eq(2).html(vtm_data.ft_pct+"%");
		$vtm_glance_cells.eq(3).html(vtm_data.threep_pct+"%");
		$vtm_glance_cells.eq(4).html(vtm_data.assists);
		$vtm_glance_cells.eq(5).html(vtm_data.total_reb);
		$vtm_glance_cells.eq(6).html(vtm_data.turnovers);
		
		var $htm_glance_cells = $htm_glance_row.children('td');
		$htm_glance_cells.eq(0).html(htm_config.abbrev);
		$htm_glance_cells.eq(1).html(htm_data.fg_pct+"%");
		$htm_glance_cells.eq(2).html(htm_data.ft_pct+"%");
		$htm_glance_cells.eq(3).html(htm_data.threep_pct+"%");
		$htm_glance_cells.eq(4).html(htm_data.assists);
		$htm_glance_cells.eq(5).html(htm_data.total_reb);
		$htm_glance_cells.eq(6).html(htm_data.turnovers);
		
		
		//LEADERS TABLE 	
		var vtm_leaders = Model.Leaders.vtm;
		var htm_leaders = Model.Leaders.htm;
		
		$j('#vtm_half_header').html(vtm_config.abbrev);
		$j('#htm_half_header').html(htm_config.abbrev);
		
		var $half_leaders_table = $j('#half_leaders_table');
		var $points_row = $half_leaders_table.find('.half_leader_points');
		var vtm_points_leader = vtm_leaders.points;
		var htm_points_leader = htm_leaders.points;
		
		var $reb_row = $half_leaders_table.find('.half_leader_rebounds');
		var vtm_reb_leader = vtm_leaders.rebounds;
		var htm_reb_leader = htm_leaders.rebounds;
		
		var $ast_row = $half_leaders_table.find('.half_leader_assists');
		var vtm_ast_leader = vtm_leaders.assists;
		var htm_ast_leader = htm_leaders.assists;
		
		// TODO: DRY
		if(vtm_points_leader.length == 1){
			var vtm_pts_leader_num = (Model.getPlayerByCode("vtm", vtm_points_leader[0].code)) ? '#' + Model.getPlayerByCode("vtm", vtm_points_leader[0].code).number : '';
			var vtm_pts_leader_name = (vtm_points_leader[0].firstname) ? vtm_points_leader[0].firstname.charAt(0)+'. '+vtm_points_leader[0].lastname : vtm_points_leader[0].lastname;
			$points_row.children('.vtm_half_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ vtm_config.color+'">'+vtm_pts_leader_name+'</a> ' + vtm_pts_leader_num);
			$points_row.children('.vtm_half_stat').html(vtm_points_leader[0].stat_val);
		}
		else if(vtm_points_leader.length > 1){
			$points_row.children('.vtm_half_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ vtm_config.color+'">'+vtm_points_leader.length+' Players Tied</a>');
			$points_row.children('.vtm_half_stat').html(vtm_points_leader[0].stat_val);
		}
		else{
			$points_row.children('.vtm_half_leader').html('<span style="color:#'+ vtm_config.color+'">N/A</span>');
			$points_row.children('.vtm_half_stat').empty();
		}
		
		if(htm_points_leader.length == 1){
			var htm_pts_leader_num = (Model.getPlayerByCode("htm", htm_points_leader[0].code)) ? '#' + Model.getPlayerByCode("htm", htm_points_leader[0].code).number : '';
			var htm_pts_leader_name = (htm_points_leader[0].firstname) ? htm_points_leader[0].firstname.charAt(0)+'. '+htm_points_leader[0].lastname : htm_points_leader[0].lastname;
			$points_row.children('.htm_half_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ htm_config.color+'">'+htm_pts_leader_name+'</a> ' + htm_pts_leader_num);
			$points_row.children('.htm_half_stat').html(htm_points_leader[0].stat_val);
		}
		else if(htm_points_leader.length > 1){
			$points_row.children('.htm_half_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ htm_config.color+'">'+htm_points_leader.length+' Players Tied</a>');
			$points_row.children('.htm_half_stat').html(htm_points_leader[0].stat_val);
		}
		else{
			$points_row.children('.htm_half_leader').html('<span style="color:#'+ htm_config.color+'">N/A</span>');
			$points_row.children('.htm_half_stat').empty();
		}
		
		// Rebounds
		if(vtm_reb_leader.length == 1){
			var vtm_reb_leader_num = (Model.getPlayerByCode("vtm", vtm_reb_leader[0].code)) ? '#' + Model.getPlayerByCode("vtm", vtm_reb_leader[0].code).number : '';
			var vtm_reb_leader_name = (vtm_reb_leader[0].firstname) ? vtm_reb_leader[0].firstname.charAt(0)+'. '+vtm_reb_leader[0].lastname : vtm_reb_leader[0].lastname ;
			$reb_row.children('.vtm_half_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ vtm_config.color+'">'+vtm_reb_leader_name+'</a> ' + vtm_reb_leader_num);
			$reb_row.children('.vtm_half_stat').html(vtm_reb_leader[0].stat_val);
		}
		else if(vtm_reb_leader.length > 1){
			$reb_row.children('.vtm_half_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ vtm_config.color+'">'+vtm_reb_leader.length+' Players Tied</a>');
			$reb_row.children('.vtm_half_stat').html(vtm_reb_leader[0].stat_val);
		}
		else{
			$reb_row.children('.vtm_half_leader').html('<span style="color:#'+ vtm_config.color+'">N/A</span>');
			$reb_row.children('.vtm_half_stat').empty();
		}
		
		if(htm_reb_leader.length == 1){
			var htm_reb_leader_num = (Model.getPlayerByCode("htm", htm_reb_leader[0].code)) ? '#' + Model.getPlayerByCode("htm", htm_reb_leader[0].code).number : '';
			var htm_reb_leader_name = (htm_reb_leader[0].firstname) ? htm_reb_leader[0].firstname.charAt(0)+'. '+htm_reb_leader[0].lastname : htm_reb_leader[0].lastname;
			$reb_row.children('.htm_half_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ htm_config.color+'">'+htm_reb_leader_name+'</a> ' + htm_reb_leader_num);
			$reb_row.children('.htm_half_stat').html(htm_reb_leader[0].stat_val);
		}
		else if(htm_reb_leader.length > 1){
			$reb_row.children('.htm_half_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ htm_config.color+'">'+htm_reb_leader.length+' Players Tied</a>');
			$reb_row.children('.htm_half_stat').html(htm_reb_leader[0].stat_val);
		}
		else{
			$reb_row.children('.htm_half_leader').html('<span style="color:#'+ htm_config.color+'">N/A</span>');
			$reb_row.children('.htm_half_stat').empty();
		}
		
		
		if(vtm_ast_leader.length == 1){
			var vtm_ast_leader_num = (Model.getPlayerByCode("vtm", vtm_ast_leader[0].code)) ? '#' + Model.getPlayerByCode("vtm", vtm_ast_leader[0].code).number : '';		
			var vtm_ast_leader_name = (vtm_ast_leader[0].firstname) ? vtm_ast_leader[0].firstname.charAt(0)+'. '+vtm_ast_leader[0].lastname : vtm_ast_leader[0].lastname;
			$ast_row.children('.vtm_half_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ vtm_config.color+'">'+vtm_ast_leader_name+'</a> ' + vtm_ast_leader_num);
			$ast_row.children('.vtm_half_stat').html(vtm_ast_leader[0].stat_val);
		}
		else if(vtm_ast_leader.length > 1){
			$ast_row.children('.vtm_half_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ vtm_config.color+'">'+vtm_ast_leader.length+' Players Tied</a>');
			$ast_row.children('.vtm_half_stat').html(vtm_ast_leader[0].stat_val);
		}
		else{
			$ast_row.children('.vtm_half_leader').html('<span style="color:#'+ vtm_config.color+'">N/A</span>');
			$ast_row.children('.vtm_half_stat').empty();
		}
		
		if(htm_ast_leader.length == 1){
			var htm_ast_leader_num = (Model.getPlayerByCode("htm", htm_ast_leader[0].code)) ? '#' + Model.getPlayerByCode("htm", htm_ast_leader[0].code).number : '';		
			var htm_ast_leader_name = (htm_ast_leader[0].firstname) ? htm_ast_leader[0].firstname.charAt(0)+'. '+htm_ast_leader[0].lastname : htm_ast_leader[0].lastname;
			$ast_row.children('.htm_half_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ htm_config.color+'">'+htm_ast_leader_name+'</a> ' + htm_ast_leader_num);
			$ast_row.children('.htm_half_stat').html(htm_ast_leader[0].stat_val);
		}
		else if(htm_ast_leader.length > 1){
			$ast_row.children('.htm_half_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ htm_config.color+'">'+htm_ast_leader.length+' Players Tied</a>');
			$ast_row.children('.htm_half_stat').html(htm_ast_leader[0].stat_val);
		}
		else{
			$ast_row.children('.htm_half_leader').html('<span style="color:#'+ htm_config.color+'">N/A</span>');
			$ast_row.children('.htm_half_stat').empty();
		}
	};


	this.populatePostgameScreen = function() {
		var htm_config = Model.Teams.htm.config;
		var vtm_config = Model.Teams.vtm.config;
		var htm_data = Model.Teams.htm.data;
		var vtm_data = Model.Teams.vtm.data;
		
		// Populating Highlights Video
		var highlights_link = Model.Game.data.vid_link;
		if (highlights_link) {

			document.domain='nba.com';

			//Check if the global team variable is set.
			if (nbaOmCurrentTeam) {
				var cvp_player_frame = 'team';
			} else {
				var cvp_player_frame = 'league';
			}

			var fixed_highlights = 'http://www.nba.com/video/cvp/' + cvp_player_frame + 'articleplayer.html?videoID=' + highlights_link.replace("/index.html", "&width=416&height=234");
			
			var iframe01 = document.createElement('iframe');
			iframe01.setAttribute('id', 'nbaTeamArticlePlayer200912716380');
			iframe01.setAttribute('name', 'nbaTeamArticlePlayer200912716380');
			iframe01.setAttribute('src', fixed_highlights);
			iframe01.setAttribute('width', '416');
			iframe01.setAttribute('height', '265');
			iframe01.setAttribute('frameBorder', '0');
			iframe01.setAttribute('scrolling', 'no');
			          
	
			var $pgVid = $j('#nbaTeamArticlePlayer200912716380');
			if ($pgVid.length==0) {
				$j('#post_video').append(iframe01);
			} else { 
				$pgVid.replaceWith(iframe01);
			}

	

			if (document.getElementById('post_video_soon')) { document.getElementById('post_video_soon').style.display='none' }
    }		
	
		//AT A GLANCE TABLE
		var $vtm_glance_row = $j("#postgame_screen").find(".glance_table").find("tr").eq(1);
		var $htm_glance_row = $j("#postgame_screen").find(".glance_table").find("tr").eq(2);

		var $vtm_glance_cells = $vtm_glance_row.children('td');
		$vtm_glance_cells.eq(0).html(vtm_config.abbrev);
		$vtm_glance_cells.eq(1).html(vtm_data.fg_pct+"%");
		$vtm_glance_cells.eq(2).html(vtm_data.ft_pct+"%");
		$vtm_glance_cells.eq(3).html(vtm_data.threep_pct+"%");
		$vtm_glance_cells.eq(4).html(vtm_data.assists);
		$vtm_glance_cells.eq(5).html(vtm_data.total_reb);
		$vtm_glance_cells.eq(6).html(vtm_data.turnovers);
		
		var $htm_glance_cells = $htm_glance_row.children('td');
		$htm_glance_cells.eq(0).html(htm_config.abbrev);
		$htm_glance_cells.eq(1).html(htm_data.fg_pct+"%");
		$htm_glance_cells.eq(2).html(htm_data.ft_pct+"%");
		$htm_glance_cells.eq(3).html(htm_data.threep_pct+"%");
		$htm_glance_cells.eq(4).html(htm_data.assists);
		$htm_glance_cells.eq(5).html(htm_data.total_reb);
		$htm_glance_cells.eq(6).html(htm_data.turnovers);
		
		
		//LEADERS TABLE 	
		var vtm_leaders = Model.Leaders.vtm;
		var htm_leaders = Model.Leaders.htm;
		
		$j('#vtm_post_header').html(vtm_config.abbrev);
		$j('#htm_post_header').html(htm_config.abbrev);
		
		var $post_leaders_table = $j('#post_leaders_table');
		var $points_row = $post_leaders_table.find('.post_leader_points');
		var vtm_points_leader = vtm_leaders.points;
		var htm_points_leader = htm_leaders.points;
		
		var $reb_row = $post_leaders_table.find('.post_leader_rebounds');
		var vtm_reb_leader = vtm_leaders.rebounds;
		var htm_reb_leader = htm_leaders.rebounds;
		
		var $ast_row = $post_leaders_table.find('.post_leader_assists');
		var vtm_ast_leader = vtm_leaders.assists;
		var htm_ast_leader = htm_leaders.assists;
		
		// TODO: DRY
		if (vtm_points_leader.length == 1){
			var vtm_pts_leader_num = (Model.getPlayerByCode("vtm", vtm_points_leader[0].code)) ? '#' + Model.getPlayerByCode("vtm", vtm_points_leader[0].code).number : '';
			var vtm_pts_leader_name = (vtm_points_leader[0].firstname) ? vtm_points_leader[0].firstname.charAt(0)+'. '+vtm_points_leader[0].lastname : vtm_points_leader[0].lastname;
			$points_row.children('.vtm_post_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ vtm_config.color+'">'+vtm_pts_leader_name+'</a> ' + vtm_pts_leader_num);
			$points_row.children('.vtm_post_stat').html(vtm_points_leader[0].stat_val);
		}
		else if(vtm_points_leader.length > 1){
			$points_row.children('.vtm_post_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ vtm_config.color+'">'+vtm_points_leader.length+' Players Tied</a>');
			$points_row.children('.vtm_post_stat').html(vtm_points_leader[0].stat_val);
		}
		else{
			$points_row.children('.vtm_post_leader').html('<span style="color:#'+ vtm_config.color+'">N/A</span>');
			$points_row.children('.vtm_post_stat').empty();
		}
		
		if (htm_points_leader.length == 1){
			var htm_pts_leader_num =  (Model.getPlayerByCode("htm", htm_points_leader[0].code)) ? '#' + Model.getPlayerByCode("htm", htm_points_leader[0].code).number : '';
			var htm_pts_leader_name = (htm_points_leader[0].firstname) ? htm_points_leader[0].firstname.charAt(0)+'. '+htm_points_leader[0].lastname : htm_points_leader[0].lastname;
			$points_row.children('.htm_post_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ htm_config.color+'">'+htm_pts_leader_name+'</a> ' + htm_pts_leader_num);
			$points_row.children('.htm_post_stat').html(htm_points_leader[0].stat_val);
		}
		else if(htm_points_leader.length > 1){
			$points_row.children('.htm_post_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ htm_config.color+'">'+htm_points_leader.length+' Players Tied</a>');
			$points_row.children('.htm_post_stat').html(htm_points_leader[0].stat_val);
		}
		else{
			$points_row.children('.htm_post_leader').html('<span style="color:#'+ htm_config.color+'">N/A</span>');
			$points_row.children('.htm_post_stat').empty();
		}
		
		
		if (vtm_reb_leader.length == 1){
			var vtm_reb_leader_num = (Model.getPlayerByCode("vtm", vtm_reb_leader[0].code)) ? '#' + Model.getPlayerByCode("vtm", vtm_reb_leader[0].code).number : '';
			var vtm_reb_leader_name = (vtm_reb_leader[0].firstname) ? vtm_reb_leader[0].firstname.charAt(0)+'. '+vtm_reb_leader[0].lastname : vtm_reb_leader[0].lastname;
			$reb_row.children('.vtm_post_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ vtm_config.color+'">'+vtm_reb_leader_name+'</a> ' + vtm_reb_leader_num);
			$reb_row.children('.vtm_post_stat').html(vtm_reb_leader[0].stat_val);
		}
		else if(vtm_reb_leader.length > 1){
			$reb_row.children('.vtm_post_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ vtm_config.color+'">'+vtm_reb_leader.length+' Players Tied</a>');
			$reb_row.children('.vtm_post_stat').html(vtm_reb_leader[0].stat_val);
		}
		else{
			$reb_row.children('.vtm_post_leader').html('<span style="color:#'+ vtm_config.color+'">N/A</span>');
			$reb_row.children('.vtm_post_stat').empty();
		}
		
		if (htm_reb_leader.length == 1){
			var htm_reb_leader_num = (Model.getPlayerByCode("htm", htm_reb_leader[0].code)) ? '#' + Model.getPlayerByCode("htm", htm_reb_leader[0].code).number : '';
			var htm_reb_leader_name = (htm_reb_leader[0].firstname) ? htm_reb_leader[0].firstname.charAt(0)+'. '+htm_reb_leader[0].lastname : htm_reb_leader[0].lastname;
			$reb_row.children('.htm_post_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ htm_config.color+'">'+htm_reb_leader_name+'</a> ' + htm_reb_leader_num);
			$reb_row.children('.htm_post_stat').html(htm_reb_leader[0].stat_val);
		}
		else if(htm_reb_leader.length > 1){
			$reb_row.children('.htm_post_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ htm_config.color+'">'+htm_reb_leader.length+' Players Tied</a>');
			$reb_row.children('.htm_post_stat').html(htm_reb_leader[0].stat_val);
		}
		else{
			$reb_row.children('.htm_post_leader').html('<span style="color:#'+ htm_config.color+'">N/A</span>');
			$reb_row.children('.htm_post_stat').empty();
		}
		
		
		if (vtm_ast_leader.length == 1){
			var vtm_ast_leader_num = (Model.getPlayerByCode("vtm", vtm_ast_leader[0].code)) ? '#' + Model.getPlayerByCode("vtm", vtm_ast_leader[0].code).number : '';
			var vtm_ast_leader_name = (vtm_ast_leader[0].firstname) ? vtm_ast_leader[0].firstname.charAt(0)+'. '+vtm_ast_leader[0].lastname : vtm_ast_leader[0].lastname;
			$ast_row.children('.vtm_post_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ vtm_config.color+'">'+vtm_ast_leader_name+'</a> ' + vtm_ast_leader_num);
			$ast_row.children('.vtm_post_stat').html(vtm_ast_leader[0].stat_val);
		}
		else if (vtm_ast_leader.length > 1){
			$ast_row.children('.vtm_post_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ vtm_config.color+'">'+vtm_ast_leader.length+' Players Tied</a>');
			$ast_row.children('.vtm_post_stat').html(vtm_ast_leader[0].stat_val);
		}
		else{
			$ast_row.children('.vtm_post_leader').html('<span style="color:#'+ vtm_config.color+'">N/A</span>');
			$ast_row.children('.vtm_post_stat').empty();
		}
		
		if (htm_ast_leader.length == 1){
			var htm_ast_leader_num = (Model.getPlayerByCode("htm", htm_ast_leader[0].code)) ? '#' + Model.getPlayerByCode("htm", htm_ast_leader[0].code).number : '';
			var htm_ast_leader_name = (htm_ast_leader[0].firstname) ? htm_ast_leader[0].firstname.charAt(0)+'. '+htm_ast_leader[0].lastname : htm_ast_leader[0].lastname;
			$ast_row.children('.htm_post_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ htm_config.color+'">'+htm_ast_leader_name+'</a> ' + htm_ast_leader_num);
			$ast_row.children('.htm_post_stat').html(htm_ast_leader[0].stat_val);
		}
		else if(htm_ast_leader.length > 1){
			$ast_row.children('.htm_post_leader').html('<a href="javascript: void(0);" onclick="View.openBoxscoreForTeam(\'both\'); CSL.onScreenLoad(\'boxscore\')" style="color:#'+ htm_config.color+'">'+htm_ast_leader.length+' Players Tied</a>');
			$ast_row.children('.htm_post_stat').html(htm_ast_leader[0].stat_val);
		}
		else{
			$ast_row.children('.htm_post_leader').html('<span style="color:#'+ htm_config.color+'">N/A</span>');
			$ast_row.children('.htm_post_stat').empty();
		}
	};





	// ===========
	// = HELPERS =
	// ===========

	this.renderError = function(msg) {
		$j("#site_container").hide();
		$j("body").css("background", "none").append('ERROR: '+msg);
	};

	this.showLoadingScreen = function() {
		$j("#loading_screen").show();
	};

};

