/****************************************************************************
START - DATA DISPLAY FUNCTIONS 
- HM
****************************************************************************/

var display = {
	
	//MAIN CONTROLLER. shut down or enable display functions from here
	buildGameOutputData : function(dataType) {
		
		switch (dataType) {
			case ("livescores") : this.boxscoreData(); break;
			case ("pbpData") : this.pbpData(); break;
			case ("csb") : this.csb(); break;
			case ("sb") : this.sb_f(); break;
			case ("fullsb") : this.sb_f("full"); break;
		}
		
	},
	
	boxscoreData : function() {
		
		//if (livePage == "livescores") {
		this.buildGameLiveStatsBox();
		this.buildGameLiveStatsStatistics();
		this.buildGameLiveStatsTeamBox();
		//}
	},
	
	sb_f : function(type) {
		
		// all indexed game objects
		for (var x = 0; x < sb_arrOfGameIndex.length; x++) {
			var sbArray = sb_arrOfGameIndex[x];

			if (type == undefined){
				this.drawSB(sbArray["id"]+"-game");
			} else {
				this.drawFullSB(sbArray["id"]+"-game");
			}
		}
		
	},
	
	drawSB : function(gameId) {
		
		browser = navigator.appName;
		ie = "Microsoft Internet Explorer";
		ns = "Netscape";
	
		var game = sb_arrOfGameData[gameId];
		
		var sbBox =  helper.htmlElement(gameId);

		if ( browser != ie ) {
		
		
			if(!helper.checkStrUDF(sbBox)){
				sbBox.childNodes[1].innerHTML = game["vtmData"]["team_abr"];
				sbBox.childNodes[5].innerHTML = game["vtmData"]["score_final"];
				sbBox.childNodes[3].innerHTML = game["htmData"]["team_abr"];
				sbBox.childNodes[7].innerHTML = game["htmData"]["score_final"];
				
				//<div id="0020401082-clock" class="sbClock"></div>
			    if (game["gstat"]>=3){
					// finished
					sbBox.childNodes[9].innerHTML =  game["gstattxt"];
				}
				if (game["gstat"]==2) 
					sbBox.childNodes[9].innerHTML = game["clk"] +" "+game["gstattxt"];
				if (game["gstat"]==1) 
					sbBox.childNodes[9].innerHTML = game["timet"];
				
			}
		
		}  else {
			if(!helper.checkStrUDF(sbBox)){
				sbBox.childNodes[0].innerHTML = game["vtmData"]["team_abr"];
				sbBox.childNodes[2].innerHTML = game["vtmData"]["score_final"];
				sbBox.childNodes[1].innerHTML = game["htmData"]["team_abr"];	
				sbBox.childNodes[3].innerHTML = game["htmData"]["score_final"];
			    if (game["gstat"]>=3){
					sbBox.childNodes[4].innerHTML =  game["gstattxt"];
				}
				if (game["gstat"]==2) 
					sbBox.childNodes[4].innerHTML = game["clk"] +" "+game["gstattxt"];
				if (game["gstat"]==1) 
					sbBox.childNodes[4].innerHTML = game["timet"];
				
			}
		}
		
	},
	
	gamesData : function() {
		this.livescoresThinOutput();
	},
	
	pbpData : function() {
		this.livestatsPlayByPlayOutput();	
	},
	
	csb : function() {
		this.buildCourtsideBox();
	},
	
	//mini box score data with period scores
	buildGameLiveStatsBox : function() {
		
		//initialize
		var period = 0;
		var temp = 0;
		var str = "";
		var tmp = "";
		var gameInfo = "";
		var prdTitle = new Array ("", "1", "2", "3", "4", "OT", "2OT", "3OT", "4OT");
	
		//data needed
		var hmeID = "htm-" + gameID;
		var visID = "vtm-" + gameID;
		var gmeID = "game-" + gameID;
	
		var vteam = arrOfTeamData[visID];
		var hteam = arrOfTeamData[hmeID];
		var game = arrOfGameData[gmeID];
		var period = parseInt(arrOfGameData[gmeID].prd); //what period is it
	
		/*if (period < 4)
			period = 4;
		*/
		
		var hScores = hteam.scr;
		var vScores = vteam.scr;
	
		var gameStatus = new Array(game.gstat, game.gstattxt, game.clk);
		var hteamData = new Array(hteam.team_name, hteam.tcd);
		var vteamData = new Array(vteam.team_name, vteam.tcd);
	
		gameInfo = (gameStatus[0] == "2") ? helper.helperLiveGameText(game.gstattxt, game.clk) : game.gstattxt;
		
		//listen live link
		thisID = helper.htmlElement("livestatsButton");
		//if (gameStatus[0] == "2")
			str = "<a href=\"javascript:open_window_ex('http://www.nba.com/broadband/alp_schedule.html', 'AudioLeaguePass', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=428,height=505')\" ><img src=\"/images/ls_listen_btn.gif\" border=0></a>";
		//else			
			//str ="&nbsp;"; 
		
		helper.checkElementExist(thisID, str, "innerHTML");
	
		var hScoreSplit = hScores.split("|");
		var vScoreSplit = vScores.split("|");
	
		//game status text
		str = "&nbsp;&nbsp;" + gameInfo;
		thisID = helper.htmlElement("sm_gstattxt-" + gameID);
		helper.checkElementExist(thisID, str, "innerHTML");
	
		//for OT 
		if (period > 4) {
			for (x = 5; x <= period; x++) {
				otp = "";
				if (x==6) otp = "2";
				if (x==7) otp = "3";
				if (x==8) otp = "4";
			
				thisID = helper.htmlElement("titles" + x);
				thisID.innerHTML=otp + "OT";
			
			}
		}
	
		// each team
		for (tm = 1; tm <= 2; tm++) {
			var dTm = "";
			var dLink = "";
			var dNm = "";
			var tsC = "";
			var splits = "";
		
			if (tm == 1) {
				dTm = "vtm";
				dLink = vteamData[1];
				dNm = vteamData[0];
				tsC = vScoreSplit[vScoreSplit.length-1];
				splits = vScoreSplit;
			}
			else {
				dTm = "htm";
				dLink = hteamData[1];
				dNm = hteamData[0];
				tsC = hScoreSplit[hScoreSplit.length-1];
				splits = hScoreSplit;
			}
		
			//team names
			str = "/" + dLink + "/";
			thisID = helper.htmlElement("sm_" + dTm + "_name-" + gameID);
			helper.checkElementExist(thisID, str, "href");
			str = dNm;
			helper.checkElementExist(thisID, str, "innerHTML");
		
			//period scoring
			var qc = 0;
			for (x = 0; x < period; x++) {
				qc++;
			
				str = splits[x];
				if (str == "" || str == undefined)
					str = "0";
			
				thisID = helper.htmlElement("sm_" + dTm + "_sc" + qc + "-" + gameID);
				helper.checkElementExist(thisID, str, "innerHTML");
			}
		
			//total
			thisID = helper.htmlElement("sm_" + dTm + "_total-" + gameID);

			if (loadCounter > 1) {
				if (oldScrBxObj[dTm] != tsC) {
					Fat.fade_element("sm_" + dTm + "_total-" + gameID, dLink);
					
					
					//big score
					if (dTm == "vtm")
						Fat.fade_element("visitor_team_score-" + gameID, dLink);
					else
						Fat.fade_element("home_team_score-" + gameID, dLink);
					
				}
				
			}
			
			oldScrBxObj[dTm] = tsC;
			helper.checkElementExist(thisID, tsC, "innerHTML");
	
		}
	
		//links
		var sString = "";
		if (sb_arrOfGameData["series"]) {
			
			str = "";
			str = sb_arrOfGameData["series"].split("|");
			sString = (hteam["team_abr"]==str[0])?hteam["team_name"]:vteam["team_name"];
			sString = (str[1].indexOf("4")>-1)?sString + " wins":(str[0]=="tied")?"Series tied": sString + " leads"
			sString = helper.convertPORound(sb_arrOfGameData["pord"]) + " : " + sString + " <br> ";
		
		}
		str = "";
		
		var gst = parseInt(gameStatus[0]);

		if (gst == 2) {
				str += "<a class=scrLinks href=\"javascript:openCourtSideNew('"+arrOfGameData[gmeID].gcd+"');\">Flash</a>";			
			if (period > 2) {
				if ((arrOfGameData[gmeID].vid !='') && ((arrOfGameData[gmeID].vid).length>1) ){
				str+="&nbsp;|&nbsp;<a class=scrLinks href=\"javascript:nbaVideo(escape('http://broadband.nba.com/cc/playa.php?content=video&url="+arrOfGameData[gmeID].vid+"'),escape('blank'));\">Highlights</a>";		
				//str += '<a href="' + arrOfGameData[gmeID].vid + '"><!--Highlights--></a>';
				}
			}
		
		}
	
		if (gst > 2) {
			
			str = "";
			
			if (arrOfGameData[gmeID].rcp !=''){
				//str += '<a href="' + arrOfGameData[gmeID].rcp + '">Game Recap</a>&nbsp;&nbsp;|&nbsp;&nbsp;';
				  str += '<a href="recap.html">Recap</a> | ';
			}
			str += '<a href="playbyplay.html">Full Play-By-Play</a>';
			if (period > 2){
				if (arrOfGameData[gmeID].vid !='' ){
				str+=" | <a class=scrLinks href=\"javascript:nbaVideo(escape('http://broadband.nba.com/cc/playa.php?content=video&url="+arrOfGameData[gmeID].vid+"'),escape('blank'));\">Highlights</a>";		
				}
			}
		}
		
		str = sString +  str;
		
	
		thisID = helper.htmlElement("liveGameLinks");
		helper.checkElementExist(thisID, str, "innerHTML");
		
	},
	
	//statistics for the teams
	buildGameLiveStatsStatistics : function() {
		
		var str = "";
		var hmeID = "htm-" + gameID;
		var visID = "vtm-" + gameID;
		var gmeID = "game-" + gameID;
	
		var vteam =	arrOfTeamData[visID];
		var hteam = arrOfTeamData[hmeID];
	
		str = vteam.team_name;
		str = (helper.checkStrUDF(str)) ? "&nbsp;" : str;
		thisID = helper.htmlElement("ts_vteam_name-" + gameID);
		helper.checkElementExist(thisID, str, "innerHTML");
	
		str = hteam.team_name;
		str = (helper.checkStrUDF(str)) ? "&nbsp;" : str;
		thisID = helper.htmlElement("ts_hteam_name-" + gameID);
		helper.checkElementExist(thisID, str, "innerHTML");
	
		var pctData = new Array(vteam.group_fgp, hteam.group_fgp, vteam.group_3pp, hteam.group_3pp, vteam.group_ftp, hteam.group_ftp);
		var pctDataID = new Array("group_fgp_vtm", "group_fgp_htm", "group_3pp_vtm", "group_3pp_htm", "group_ftp_vtm", "group_ftp_htm");
	
		for (x = 0; x < pctData.length; x++) {
			str = pctData[x];
			if (str == "1.000") 
				str = "100%";
			else
				str = (helper.checkStrUDF(str)) ? "&nbsp;" : helper.pctDisplayConverter(str, 2) + "%";
			
			thisID = helper.htmlElement("ts_" + pctDataID[x]);
			helper.checkElementExist(thisID, str, "innerHTML");
			thisID = helper.htmlElement("bs_" + pctDataID[x]);
			helper.checkElementExist(thisID, str, "innerHTML");
			thisID = helper.htmlElement("ts_" + pctDataID[x] + "_width");
			thisID.style.width= str;
		
		}
	
		var tmData = new Array(vteam.group_to, hteam.group_to, vteam.team_fbpts, hteam.team_fbpts, vteam.team_llead, hteam.team_llead, vteam.team_upts, hteam.team_upts, vteam.team_ppts, hteam.team_ppts);
		var tmDataID = new Array("ts_stat_to_vtm", "ts_stat_to_htm", "ts_team_fbpts_vtm", "ts_team_fbpts_htm", "ts_team_llead_vtm", "ts_team_llead_htm", "ts_team_upts_vtm", "ts_team_upts_htm", "ts_team_ppts_vtm", "ts_team_ppts_htm");
	
		for (x = 0; x < tmData.length; x++) {
		
			str = tmData[x];
			str = (helper.checkStrUDF(str)) ? "&nbsp;" : str;
			thisID = helper.htmlElement(tmDataID[x]);
			helper.checkElementExist(thisID, str, "innerHTML");
		
		}
		
	},
	
	// team players' box
	buildGameLiveStatsTeamBox : function() {
		
		var playersArray = ""; // player array load
		var teamArray = ""; // team data for headers
		var teamIdent = ""; // team ident
		var varrCtr = 0; // temp counter for visitor player
		var harrCtr = 0; // home player
		var playersCtr = 0; // player data load
		var teamID = ""; // team ident
	
		//these are defined to make it easier to declare the arrays
		var hmeID = "htm-" + gameID;
		var visID = "vtm-" + gameID;
		var gmeID = "game-" + gameID;
		var vplayerID  ="pl_vtm";
		var hplayerID  ="pl_htm";
	
		var vteam =	arrOfTeamData[visID]; // get visitor team data
		var hteam = arrOfTeamData[hmeID]; // home team
	
		this.populateTeamScores(hmeID, visID);
		this.populateGameRelatedData(gmeID);
		this.populateTeamStatistics(hmeID, visID);
		this.populateOfficialsData();
		
		//store to temp array visitor and home teams
		for (x = 0; x < arrOfPlayersIndex.length; x++) {
			
			playersArray = arrOfPlayersIndex[x];
			for (var i in playersArray) {
				//teamident to check if player data is a home/visitor 
				if (i == "teamident")
					teamIdent = playersArray[i];
			}
			
			if (teamIdent == vplayerID) {
				varrCtr++;
				playersCtr = varrCtr;
				
				teamArray = vteam;
				teamID = visID;
				
			}
				
			if (teamIdent == hplayerID) {
				harrCtr++;
				playersCtr = harrCtr;
				
				teamArray = hteam;
				teamID = hmeID;
			}
			
			if (playersCtr == 1) //build team headers
				this.populateTeamHeadersAndTotals(teamID, teamArray);
			
			if (playersCtr <= 12) 
				this.populatePlayersData(teamIdent, playersCtr, playersArray);
		
		}
		
	},
	
	// team headers
	populateTeamHeadersAndTotals : function(teamID, teamArray) {
		
		var str = "";
		var arrCounter = 0;
		var include = true;
		var tArray = new Array();
		var tArrayIndex = new Array();
		var teamLink = false;
	
		for (var i in teamArray) {
			//these object variables are not being used in the headers and totals
			var noSpans = new Array ("id", "teamident", "tm", "team_id", "team_city", "team_abr", "tkt", "std", "std_conf", "std_div", "rcd", "brd", "brdcst_tv", "brdcst_rd", "scr", "score_q1", "score_q2", "score_q3", "score_q4", "score_ot1", "score_ot2", "score_ot3", "score_ot4", "score_final", "stat", "stat_eff", "stat_efa", "gstat", "tstat", "team_fbpts", "team_llead", "team_upts", "team_ppts", "timout", "to_tk", "pld", "rld", "ald", "bld", "tfoul");
				
			include = true;
			for (x = 0; x < noSpans.length; x++) {
			
				if (include)
					if (i == noSpans[x])
						include = false;
			
			}
			
			if (include) {
				tArray[i] = teamArray[i];
				tArrayIndex[arrCounter] = i;
				arrCounter++;		
			}
	
		}
	
		for (var x = 0; x < tArrayIndex.length; x++) {
		
			str = ""; //re-initialize
		
			if (tArrayIndex[x] == "team_name" || tArrayIndex[x] == "tcd") { //team name
				if (!teamLink) {
					str = '<a class="teamTitlesTwo" target="_parent" href="http://www.nba.com/' + tArray["tcd"] + '/">' + (tArray["team_name"]).toUpperCase() + '</a>';
				
					tArrayIndex[x] = "name";
					teamLink = true;
				}
			}
			else if (tArrayIndex[x] == "group_fgp" || tArrayIndex[x] == "group_3pp" || tArrayIndex[x] == "group_ftp") { //percentages
				str = tArray[tArrayIndex[x]];
			}
			else
				str = tArray[tArrayIndex[x]];
		
			if (str != "") {
			
				if (str == undefined)
					str = "";  //if undefined, just put a blank
			
				thisID = helper.htmlElement(tArrayIndex[x] + "_" + teamID);
				helper.checkElementExist(thisID, str, "innerHTML");
			}
		
		}
		
	},
	
	//team players
	populatePlayersData : function(teamIdent, counter, plyrArray) {
	
		var str = "";
		var arrCounter = 0;
		var include = true;
		var classUse = "";
		var pArray = new Array();
		var pArrayIndex = new Array();
	
		for (var i in plyrArray) {
	
			include = true;
			//this array is populated with the object variables not defined in the spans
			var noSpans = new Array ("id", "teamident", "srt", "stat", "player_id", "name", "player_status", "player_jersey", "stat_eff", "stat_efa", "fouls");
			
			for (x = 0; x < noSpans.length; x++) {
		
				if (include)
					if (i == noSpans[x])
						include = false;
			}
		
			if (include) {
		
				pArray[i] = plyrArray[i];
				pArrayIndex[arrCounter] = i;
				arrCounter++;		
			
			}
				
		}

		for (var x = 0; x < pArrayIndex.length; x++) {
		
			str = ""; //re-initialize
			//css class for the player names ( starters are bold )
			if (counter <= 5)
				classUse = "playerS";
			else
				classUse = "playerB";
	
			var playerLink = false; //boolean to do just one instance for player_code and player_name
	
			if (pArrayIndex[x] == "player_code" || pArrayIndex[x] == "player_name" || pArrayIndex[x] == "oncrt") { //player link
				if (!playerLink) {
				
					var oncourt = "";
					var gmID = "game-" + gameID;
					if (pArray["oncrt"] == "1" && parseInt(arrOfGameData[gmID]["gstat"]) < 3)
						oncourt = '<span style="margin: 0px 2px 0px 0px;"><img src="/images/livestats/arrow.gif"></span>';
					else
						oncourt = '<span style="margin: 0px 2px 0px 0px;"><img src="/images/blank.gif" width=6></span>';
					
					var pcodeLink = "";
					switch (pArray["player_code"]) {
						
						//case ("celebrity") : pcodeLink = "#"; break;
						default : pcodeLink = '/playerfile/' + pArray["player_code"] + '/index.html'; break;
					}
					
					if (parseInt(arrOfGameData[gmID]["gstat"]) > 2)
						str = '<a class=' + classUse + ' target="_parent" href="' + pcodeLink + '">' + helper.nameFix(pArray["player_name"], 1) + '</a>';
					else 
						str = oncourt + '<a class=' + classUse + ' target="_parent" href="' + pcodeLink + '">' + helper.nameFix(pArray["player_name"], 1) + '</a>';
				
					playerLink = true;
				
					//check if dnp only when game is done.
					if (parseInt(arrOfGameData[gmID]["gstat"]) > 2) {
						if ((pArray["stat_min"] == '00:00') && (helper.trimString(pArray["dnp"]).length > 0))
							str += '&nbsp;&nbsp;<img src="http://www.nba.com/images/dnp.gif" border=0 alt="Reason : ' + pArray["dnp"] + '">&nbsp;&nbsp;';
						
					}
				
					thisID = helper.htmlElement("name_" + teamIdent + "-" + gameID + "-" + counter);
					helper.checkElementExist(thisID, str, "innerHTML");
				}
			}
			else {
		
				switch (pArrayIndex[x]) {
					
					case ("player_pos") : {
						//only show position for starters
						if (counter <=5)
							str = helper.convertPosition(pArray["player_pos"]);
						else
							str = "&nbsp;";
					
						if (str == undefined) str = "&nbsp;";
					
						pArrayIndex[x] = "pos";
					
						break;
					}
					
					case ("stat_min") : {
						if (pArray["stat_min"] == ":" || pArray["stat_min"] == 0 || pArray["stat_min"] == undefined) {
							if (livePage == "boxscore") str = "&nbsp;";
							if (livePage == "livescores") str = "00:00";
						}
						else 
							str = pArray["stat_min"];
					
						break; 
					}
					
					case ("dnp") : str = "dnp"; break; // does not get any id
					
					default: { //the rest of the data
						str = pArray[pArrayIndex[x]]; 
					
						if (str == "" && livePage == "livescores") {
							if (pArrayIndex[x] == "stat_fg" || pArrayIndex[x] == "stat_3p" || pArrayIndex[x] == "stat_ft") 
								str = "-";
							else
								str = "0";
						}
						
						break; 
					} 
				}
				
				if (str != "dnp") {
				
					thisID = helper.htmlElement(pArrayIndex[x] + "_" + teamIdent + "-" + gameID + "-" + counter); 
					helper.checkElementExist(thisID, str, "innerHTML");
				}	
			}
		
		}
		
	},
	
	populateTeamScores : function(hmeID, visID) {
		
		var hTeamScore = arrOfTeamData[hmeID].score_final; //get score total
		var vTeamScore = arrOfTeamData[visID].score_final; //get score total
		var hTeamcode = arrOfTeamData[hmeID].tcd;
		var vTeamcode = arrOfTeamData[visID].tcd;
	
		hTeamcode = hTeamcode.toLowerCase();
		vTeamcode = vTeamcode.toLowerCase();
	
		var hTeamname = arrOfTeamData[hmeID].team_name;
		var vTeamname = arrOfTeamData[visID].team_name;
		
		var hTeamCity = arrOfTeamData[hmeID].team_city;
		var vTeamCity = arrOfTeamData[visID].team_city;
	
		hTeamname = hTeamname.toUpperCase();
		vTeamname = vTeamname.toUpperCase();
		
		
		var tArray = new Array();
		var str = "";
		var st = "";
		var tmCode = "";
		var tmName = "";
		var tmScore = "";
	
		tArray[0] = new Array("home", hTeamScore, hTeamcode, hTeamname, hTeamCity);
		tArray[1] = new Array("visitor", vTeamScore, vTeamcode, vTeamname, vTeamCity);
	
		for (x = 0; x < tArray.length; x++) {
		
			st = tArray[x][0];
			tmScore = tArray[x][1];
			tmCode = tArray[x][2];
			tmName = tArray[x][3];
			tmCity = tArray[x][4];

			str = "http://www.nba.com/" + tmCode + "/";
			thisID = helper.htmlElement(st +"_team-" + gameID);
			helper.checkElementExist(thisID, str, "href");
			str = tmName;
			helper.checkElementExist(thisID, str, "innerHTML");
			
			str = '<span id="printOnly">' + tmCity + '<br></span>' + tmScore;
			thisID = helper.htmlElement(st + "_team_score-" + gameID);
			helper.checkElementExist(thisID, str, "innerHTML");
			
			str = "http://www.nba.com/" + tmCode + "/";
			thisID = helper.htmlElement(st + "_team_llink-" + gameID);
			helper.checkElementExist(thisID, str, "href");
		
			str = "http://www.nba.com/media/" + tmCode + "_sm.gif";
			thisID = helper.htmlElement(st + "_team_logo-" + gameID);
			helper.checkElementExist(thisID, str, "src");
		
		}
		
		
	},
	
	populateGameRelatedData : function(gmeID) {
		
		var str = "";
			
		str = helper.boxGameDate(gameDate); // gameDate is a global variable
		thisID = helper.htmlElement("gamedate-" + gameID);
		helper.checkElementExist(thisID, str, "innerHTML");
	
		//arena information
		str = arrOfGameData[gmeID].arena_name + ", " + arrOfGameData[gmeID].arena_loc;
		str = unescape(str);
		thisID = helper.htmlElement("game_arena_info-" + gameID);
		helper.checkElementExist(thisID, str, "innerHTML");
	
		//game attendance
		str = arrOfGameData[gmeID].arena_att;
		str = helper.addNumComma(str); 
		if (str == "" || str == null || str == "0")
			str = "&nbsp;";
		else
			str = "<br><b>ATTENDANCE:</b>&nbsp;" + str;
		//duration
		var str2 = arrOfGameData[gmeID].dur;
		if (str2 == "" || str2 == null || str2 == "0:00")
			str2 = str + "&nbsp;";
		else
			str2 = "&nbsp;<b>DURATION:</b>&nbsp;" + str2;	
		
		str = str + str2;
		
		thisID = helper.htmlElement("game_arena_att-" + gameID);
		helper.checkElementExist(thisID, str, "innerHTML");
		
		//leads and ties
		str = arrOfGameData[gmeID].ldchg;
		thisID = helper.htmlElement(gameID+"-ldchg");
		helper.checkElementExist(thisID, str, "innerHTML");

		str = arrOfGameData[gmeID].tie;
		thisID = helper.htmlElement(gameID+"-tie");
		helper.checkElementExist(thisID, str, "innerHTML");		
		
		
		
		
	},
	
	populateTeamStatistics : function(hmeID, visID) {
		
		var str = "";
	
		var tmStatData = new Array(arrOfTeamData[hmeID].team_name, arrOfTeamData[hmeID].team_fbpts, arrOfTeamData[hmeID].team_ppts, arrOfTeamData[hmeID].team_llead, arrOfTeamData[visID].team_name, arrOfTeamData[visID].team_fbpts, arrOfTeamData[visID].team_ppts, arrOfTeamData[visID].team_llead);
		var tmStatDataID = new Array("hteam_name-", "hteam_fbpts-", "hteam_ppts-", "hteam_llead-", "vteam_name-", "vteam_fbpts-", "vteam_ppts-", "vteam_llead-");
	
		for (var x = 0; x < tmStatData.length; x++) {
		
			str = tmStatData[x];
			str = (helper.checkStrUDF(str)) ? "" : str;
	
			thisID = helper.htmlElement(tmStatDataID[x] + gameID);
			helper.checkElementExist(thisID, str, "innerHTML");
		
		}
		
		this.populateTechFouls(hmeID,visID);
		
	},
	
	populateTechFouls : function(hmeID,visID) {

		//technical fouls
		var tchFoulArr = null;
		tchFoulArr = new Array();
		if(arrOfTeamData[visID].tfoul !=''){
		var visTmTechFoul = arrOfTeamData[visID].tfoul.split("^");
		 for (i=0; i< visTmTechFoul.length; i++){
					var visTmTechFoulArr = visTmTechFoul[i].split("|");
					tchFoulArr[tchFoulArr.length] = { team:visTmTechFoulArr[0], time:visTmTechFoulArr[1], name:helper.nameFix(visTmTechFoulArr[2],3)};
		 }
		}
		if(arrOfTeamData[hmeID].tfoul !=''){
		var hmeTmTechFoul = arrOfTeamData[hmeID].tfoul.split("^");
		 for (i=0; i<hmeTmTechFoul.length; i++){
					var hmTmTechFoulArr = hmeTmTechFoul[i].split("|");
					tchFoulArr[tchFoulArr.length] = { team:hmTmTechFoulArr[0], time:hmTmTechFoulArr[1], name:helper.nameFix(hmTmTechFoulArr[2],3)};
		  }
		 }
		 
		thisID = helper.htmlElement("tFoulHdr");
		var dd = document.getElementById("tFoul").getElementsByTagName("dd");
		if (tchFoulArr.length > 0){
		// clear old dd
		for(i=0;i<dd.length;i++){
			dd[i].parentNode.removeChild(dd[i]);
		}
		//var ddElem = helper.getNextElement(thisID.nextSibling);
		//var str ="";
		for (i=0;i<tchFoulArr.length;i++){
			var str = document.createTextNode(tchFoulArr[i].team +' '+ tchFoulArr[i].time +' '+tchFoulArr[i].name);			
			var newDD = document.createElement("DD");//appendChild(document.createTextNode(str));
			newDD.appendChild(str);
			//helper.htmlElement("tFoul").firstChild.appendChild(newDD);
			  helper.insertAfter(newDD,helper.htmlElement("tFoulHdr"));
			}
			
		}
		tchFoulArr = null;
		//helper.checkElementExist(ddElem, str, "innerHTML");
	},

	populateOfficialsData : function() {
		
		var str = "";
	
		
		var names = arrOfOfficialsData["officials-" + gameID].nm;
	
		if (names != "" || names != null) {
	
			var officials = names.split("^");
	
			for (var x = 0; x < officials.length; x++) {
		
				var splitOff = officials[x].split("|");
				var offName = splitOff[0];
				var offNum = splitOff[1];
			
				if (x > 0) str += ", "; //add comma;
		
				str += " #" + offNum + " " + offName;
			
			}
		}
	
		thisID = helper.htmlElement("game_officials-" + gameID);
		helper.checkElementExist(thisID, str, "innerHTML");
		
	},
	
	livestatsPlayByPlayOutput : function() {
		
		try {
			var pbpArray = new Array();
			var arrCount = 0;
			var pbp = "";
			var z = 0;
			var str = "";
		
			//count limit to whatever you want
			var limit = 15;
			arrCount = (arrOfPBPIndex.length > limit) ? limit : arrOfPBPIndex.length;
			
			
		
			for (var x = 0; x < arrCount; x++) {
			
				pbp = arrOfPBPIndex[x];
		
				for (var i in pbp) {
					switch (i) {
						case "pbptext" : pbpArray[1] = pbp[i]; break;
					}
				}
		
				z++;
				thisID = helper.htmlElement("pbp_time_" + z);
				str = helper.pbpTextData(pbpArray[1], 1);
				
				helper.checkElementExist(thisID, str, "innerHTML");
		
				thisID = helper.htmlElement("pbp_text_" + z);
				str = helper.pbpTextData(pbpArray[1], 3);
				if (str.search("PTS")>1) 
					str = "<strong>" + str + "</strong>";
				thisID.innerHTML = str;
				helper.checkElementExist(thisID, str, "innerHTML");
				
			}
			
			//alert(pbpLiveOld.length);
			
	
		}
		catch (e) { 
			helpererrorLogger("Display class error", "livestatsPlayByPlayOutput", "none", e.message);
		}
		
	},
	
	showPBPLine : function (div, line, row) {
		
		if (row.length < 1) {
						
			div.appendChild(line);
						
		}
		else{
			div.insertBefore(line, row[0]);
		}
		
		Fat.fade_element("newLinePBP");
		
		
	},
	
	pause : function () {
		
		return;
		
	},
	
	/************* FULL SCOREBOARD ***********************************/
	
	drawFullSB : function(gameId) {
		
		var game = sb_arrOfGameData[gameId];
		
		this.fullSBLeaders(game);
		this.drawScoreboard(game);
		
	},
	
	fullSBLeaders : function(gameObj) {
		
		var str = "";
		var gameId = gameObj["id"];
		var thisId = null;
		var h = helper;
		
		var hTeamObj = gameObj["htmData"];
		var vTeamObj = gameObj["vtmData"];
		
		var tmArray = new Array(hTeamObj,vTeamObj);

		for(i=0;i<tmArray.length;i++){
			
			if (typeof(tmArray[i].pld_playercode) != "undefined") {
			
				thisID = h.htmlElement(gameId+"-"+tmArray[i]["teamident"]+"-pld");
				str = '<a class=scrLinkP href="/playerfile/' + tmArray[i]["pld_playercode"] + '/index.html">' + h.nameFix(tmArray[i]["pld_playername"], 1) + '</a>&nbsp;' + tmArray[i]["pld_stat"];
				h.checkElementExist(thisID, str, "innerHTML");
			
			}
			
			if (typeof(tmArray[i].rld_playercode) != "undefined") {
			
				thisID = h.htmlElement(gameId+"-"+tmArray[i]["teamident"]+"-rld");
				str = '<a class=scrLinkP href="/playerfile/' + tmArray[i]["rld_playercode"] + '/index.html">' + h.nameFix(tmArray[i]["rld_playername"], 1) + '</a>&nbsp;' + tmArray[i]["rld_stat"];		
				h.checkElementExist(thisID, str, "innerHTML");
			
			}
			
			if (typeof(tmArray[i].ald_playercode) != "undefined") {
				
				thisID = h.htmlElement(gameId+"-"+tmArray[i]["teamident"]+"-ald");
				str = '<a class=scrLinkP href="/playerfile/' + tmArray[i]["ald_playercode"] + '/index.html">' + h.nameFix(tmArray[i]["ald_playername"], 1) + '</a>&nbsp;' + tmArray[i]["ald_stat"];		
				h.checkElementExist(thisID, str, "innerHTML");
				
			}
			
		}
		
	},
	
	drawScoreboard : function(game) {
		
		var thisId = null;
		var sbScore = null;
		var str = "";
		var score = null;
		var qtrs = new Array("scr1","scr2","scr3","scr4","scrOT","scr2OT","scr3OT","scr4OT","scrTOT");
		var xmlqtr = new Array("score_q1","score_q2","score_q3","score_q4","score_ot1","score_ot2","score_ot3","score_ot4","score_final");
		var qtrsOT = new Array("OT","2OT","3OT","4OT");
		var colName = new Array("hdr","spc","vtm-scr","vtm-spc2","htm-scr","htm-spc2");
		var visClassName = new Array("teamTitlesTwo","bA","dFont","wH","dFont","wH");	
		var hidIDName = new Array("hdr","spc", "scr","spc2", "scr","spc2");
	
		try {
			// header
			var gamestatus = parseInt(game["gstat"]); 
			var gameId = game["id"];
			var period=game["prd"];
			var vTeamObj = game["vtmData"];	
			var hTeamObj = game["htmData"];
			var tmArray = new Array(vTeamObj,hTeamObj);
			
			//title bar color change on game status 
			
			thisId = helper.htmlElement(gameId + "-miniBoxscore");
			
			if (thisId != undefined) {
				
				if (gamestatus == 2)
					thisId.className ="miniBoxscoreLive";
				if (gamestatus > 2)
					thisId.className ="miniBoxscoreFinal";
				
			}
		
			thisId = helper.htmlElement(gameId+"-clk");
			
			if(thisId != undefined){
				if (gamestatus>=3) {
					if (!helper.checkStrUDF(thisId))
					
					thisId = helper.htmlElement(gameId+"-clk");
					if (!helper.checkStrUDF(thisId))
						thisId.innerHTML =  game["gstattxt"].toUpperCase();
				}
				
				if (gamestatus==2) {
					if (!helper.checkStrUDF(thisId))
						thisId.innerHTML = game["clk"] +" "+game["gstattxt"].toUpperCase();
				
					thisId = helper.htmlElement(gameId+"-clk");
					if (!helper.checkStrUDF(thisId)) {
					
						if (game["gstattxt"].indexOf("Tipoff")>-1 || game["gstattxt"].indexOf("Halftime")>-1 || game["gstattxt"].indexOf("Final")>-1) 
							thisId.innerHTML =  game["gstattxt"];
						/*else 
							thisId.innerHTML =  game["clk"];
						*/
					}
				}
			
				if (gamestatus==1) {
					if (!helper.checkStrUDF(thisId))
					thisId.innerHTML = game["gstattxt"].toUpperCase(); //+ " ET";
					
					thisId = helper.htmlElement(gameId+"-clk");
					if (!helper.checkStrUDF(thisId)) {
						thisId.style.fontSize = "12px";
						thisId.innerHTML = game["gstattxt"].toUpperCase();
					}
				}
			}
		
			// OT
			if (period > 4) {
		
				for (var o = 1; o <= period-4; o++) {
					if (o == 1) {
						thisId = helper.htmlElement(gameId+ "-hdr-OT");
						if (!helper.checkStrUDF(thisId))
							thisId.innerHTML = "OT";
					}
					else {
						thisId = helper.htmlElement(gameId+ "-hdr-" + o + "OT");
						if (!helper.checkStrUDF(thisId))
							thisId.innerHTML = o + "OT";
					}
				}
			}
		
			// draw scores all scores!
			// for each team
			for(i=0;i<tmArray.length;i++){
			
				// for each quarter	
				for(x=0;x<qtrs.length;x++){
			
					sbScore = tmArray[i][xmlqtr[x]];
					if (qtrs[x] == "scrTOT" || period >= (x+1) ) {
					
						thisId = helper.htmlElement(gameId+"-"+tmArray[i]["teamident"]+"-"+qtrs[x]);
						if (!helper.checkStrUDF(thisId)) {
							if (sb_loadCounter>1){		
						
								if (oldScrObj[gameId+"-"+tmArray[i].teamident][tmArray[i][xmlqtr[x]]] != sbScore){
									Fat.fade_element(gameId+"-"+tmArray[i]["teamident"]+ "-" + qtrs[x], tmArray[i]["tcd"]);
									Fat.fade_element(gameId+"-"+tmArray[i]["teamident"]+"-scrTOT", tmArray[i]["tcd"]);
									//Fat.fade_element(gameId+"-"+tmArray[i]["teamident"]+"-scrTOT-Top");
									//Fat.fade_element(gameId+"-"+tmArray[i]["teamident"]+"-name");
								}
								
								
								
							
							}
							thisId.innerHTML = sbScore;		
							oldScrObj[gameId+"-"+tmArray[i].teamident][tmArray[i][xmlqtr[x]]] = sbScore;
						}
					
					}
					/*
					//TOTAL ON TOP
					if (qtrs[x] == "scrTOT-Top") {
						thisId = helper.htmlElement(gameId+"-"+tmArray[i]["teamident"]+"-"+qtrs[x]);
						if (!helper.checkStrUDF(thisId)) {
							if (tmArray[i][xmlqtr[x-1]] == "") 
								thisId.innerHTML = "&nbsp;";
							else 
								thisId.innerHTML = tmArray[i][xmlqtr[x-1]];
						}
					}
					*/
				
				}
			}		
			
			// links
			
			//initialize not to show ticketlink
			tktstr = "";
			thisId = helper.htmlElement(gameId+"-tkt");
			helper.checkElementExist(thisId, tktstr, "innerHTML");
					
						
			if (gamestatus == 1){
				
				str = "";
				if (showNotesLink)
					str="&nbsp;&nbsp;<a class=scrLinks href=\"/"+vTeamObj["tcd"]+"/news/notes.html\">"+vTeamObj["team_abr"]+"&nbsp;Notes</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a class=scrLinks href=\"/"+hTeamObj["tcd"]+"/news/notes.html\">"+hTeamObj["team_abr"]+"&nbsp;Notes</a>&nbsp;&nbsp;|";
				
				str += "&nbsp;&nbsp;<a class=scrLinks href=\"/games/"+game["gcd"]+"/preview.html\">Preview</a>";
				
				
				//show ticketlink
				if (hTeamObj["tkt"].length>1) {
					
						tktstr = "&nbsp;<a target=\"_blank\" href=\"" + hTeamObj["tkt"] + "\"><img border=0 src=\"http://www.nba.com/media/ticket_icon.gif\"></a>";
						thisId = helper.htmlElement(gameId+"-tkt");
						helper.checkElementExist(thisId, tktstr, "innerHTML");
					
				}
				
			}
			
			if  (gamestatus ==2){
				str="&nbsp;&nbsp;<a class=scrLinks href=\"javascript:open_window_ex('http://www.nba.com/broadband/alp_schedule.html', 'AudioLeaguePass', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=428,height=505')\">Listen Live</a>&nbsp;&nbsp;|&nbsp;&nbsp;Livestats:&nbsp;";
				str += "&nbsp;<a class=scrLinks href=\"javascript:openCourtSideNew('"+game["gcd"]+"');\">Flash</a>&nbsp;";			
				str+="&nbsp;|&nbsp;<a class=scrLinks href=\"/games/"+game["gcd"]+"/boxscore.html\">HTML</a>";
				//str+="&nbsp;&nbsp;<a class=scrLinks href=\"/games/"+game["gcd"]+"/livestats.html\">HTML</a>";
				//str+="&nbsp;-&nbsp;<a class=scrLinks href=\"#\" onclick=\"openCourtSideLS('"+vTeamObj["team_abr"]+hTeamObj["team_abr"]+"');return false;\">FLASH</a>&nbsp;";
		        	if ((game["vid"]!='') && (game["vid"].length>1) && (period >2)){
						str+="&nbsp;|&nbsp;&nbsp;<a class=scrLinks href=\"javascript:nbaVideo(escape('http://broadband.nba.com/cc/playa.php?content=video&url="+game["vid"]+"'),escape('blank'));\">Highlights</a>";
					}
			}
			
			if ((gamestatus>2)&&(gamestatus!=5)){
				
				if (game["rcp"]!='' ){
					str="&nbsp;&nbsp;<a  class=scrLinks href=\"/games/"+game["gcd"]+"/recap.html\">Recap</a>&nbsp;&nbsp;|";
				}
				str+="&nbsp;&nbsp;<a class=scrLinks href=\"/games/"+game["gcd"]+"/boxscore.html\">Box Score</a>";
		        if ((game["vid"]!='')&& (period >2)){
					str+="&nbsp;|&nbsp;&nbsp;<a class=scrLinks href=\"javascript:nbaVideo(escape('http://broadband.nba.com/cc/playa.php?content=video&url="+game["vid"]+"'),escape('blank'));\">Highlights</a>";
				}
			}
			
			if (gamestatus==5){
				if(game["rcp"]!='' ){
					str="&nbsp;&nbsp;<a  class=scrLinks href=\"/games/"+game["gcd"]+"/recap.html\">Recap</a>&nbsp;&nbsp;|";
				}
				str+="&nbsp;&nbsp;<a class=scrLinks href=\"/games/"+game["gcd"]+"/boxscore.html\">Box Score</a>";
		        if ((game["vid"]!='')&& (period >2)) {
					str+="&nbsp;|&nbsp;&nbsp;<a class=scrLinks href=\"javascript:nbaVideo(escape('http://broadband.nba.com/cc/playa.php?content=video&url="+game["vid"]+"'),escape('blank'));\">Highlights</a>";
				}
			
			}
			
			thisId = helper.htmlElement(gameId+"-links");
			helper.checkElementExist(thisId, str, "innerHTML");

			// series information
			
			if (game["series"]) {
				thisId = helper.htmlElement(gameId+"-series");
				str = game["series"].split("|");
				//alert(str[1].indexOf("4"));
				var tmString = (hTeamObj["team_city"]==str[0])?hTeamObj["team_name"]:vTeamObj["team_name"];
				tmString = (str[1].indexOf("4")>-1)?tmString + " wins":(str[0]=="tied")?"Series tied": tmString + " leads"
				tmString = helper.convertPORound(game["pord"]) + " : " + tmString;
				//display it
				helper.checkElementExist(thisId, tmString + " " +str[1], "innerHTML");
			}
			
			
			//Win arrow
			if (parseInt(gamestatus) > 2) {
				if (parseInt(vTeamObj["score_final"]) > parseInt(hTeamObj["score_final"])) {
					thisId = helper.htmlElement(gameId + "-vtm-name");
					str = '<img src="/images/livestats/arrow_win.gif" border=0>&nbsp;<a href="/' + vTeamObj["tcd"] + '/">' + vTeamObj["team_name"] + '</a>';
					helper.checkElementExist(thisId, str, "innerHTML");
					thisId = helper.htmlElement(gameId + "-htm-name");
					str = '&nbsp;<a href="/' + hTeamObj["tcd"] + '/">' + hTeamObj["team_name"] + '</a>';
					helper.checkElementExist(thisId, str, "innerHTML");
				}
				else {
					thisId = helper.htmlElement(gameId + "-htm-name");
					str = '<img src="/images/livestats/arrow_win.gif" border=0>&nbsp;<a href="/' + hTeamObj["tcd"] + '/">' + hTeamObj["team_name"] + '</a>';
					helper.checkElementExist(thisId, str, "innerHTML");
					thisId = helper.htmlElement(gameId + "-vtm-name");
					str = '&nbsp;<a href="/' + vTeamObj["tcd"] + '/">' + vTeamObj["team_name"] + '</a>';
					helper.checkElementExist(thisId, str, "innerHTML");
				}
			}
			
		
		}
		catch (e) {
			helper.errorLogger("Render error", "drawScoreboard", "game="+game.id+"","", e.message);
		}
		
	}
	
	/************* FULL SCOREBOARD **********************************/
	
}



/****************************************************************************
END - DATA DISPLAY FUNCTIONS 
****************************************************************************/


