var m_objItems = new Object();

function Highlight()
{
	var m_content = document.getElementById("content_Highlight");
	var m_lastGameImg = null;

	var m_programList = new ProgramList(9,3);
	
	this.m_firstEvent = null;

	this.display = function()
		{
			this.showPlayers();
			_console.lastReloadComponent = this;
		}
		
	this.showPlayers = function()
		{
			document.getElementById("highlight_Players").style.display = "";
			document.getElementById("highlight_Player").style.display = "none";
		}
	
	this.displayPlayer = function(playerId, eventId)
		{
			if(eventId!=null)
				this.getPlayer(playerId, null, true, eventId);
			else
				this.getPlayer(playerId, null, true);
			_console.lastReloadComponent = this;
		}
	
	this.reload = function()
		{
		}

	this.getPlayer = function(id, pn, playFirst, eventId)
		{
			var args = new Object();
			args.xml = 2;
			args.id = id;

			if(pn==null)
				pn = 1;
			m_programList.setURLParams(args, pn);

			document.getElementById("highlight_player_tbl").setAttribute("pid",id);
			if(playFirst)
			{
				this.m_firstEvent = eventId;
				_console.getComponentContent("highlights", args, this.getPlayerCallBackPlayFirst, true);
			}
			else
				_console.getComponentContent("highlights", args, this.getPlayerCallBack, true);
		}
	
	this.getPlayerCallBackPlayFirst = function(result)
		{
			_highlight.getPlayerCallBack(result);
			var playerType=_util.selectSingleNodeText(result, "type", true);
			var xmlNode = null;
			if (playerType=="goalie")
				xmlNode=_util.selectNodes(result, "/player/saves/save")[0];
			else
				xmlNode=_util.selectNodes(result, "/player/goals/goal")[0];
			var path = _util.selectSingleNodeText(xmlNode, "video-clip", true);
			var type = (path.indexOf(".flv")>0)?Console.VIDEO_HIGHLIGHT_F:Console.VIDEO_HIGHLIGHT_W;
			var anchor = document.getElementById("highlight_player_goals_tbl").getElementsByTagName("A")[0];
			
			if(_highlight.m_firstEvent!=null)
			{
				var anchors = document.getElementById("highlight_player_goals_tbl").getElementsByTagName("A");
				for(var i=0;i<anchors.length;i++)
				{
					if(_highlight.m_firstEvent==anchors[i].getAttribute("objItem"))
					{
						path = m_objItems[_highlight.m_firstEvent].videoClip;
						anchor = anchors[i];
						break;
					}
				}
				_highlight.m_firstEvent = null;
			}
			
			_console.playVideo(type,anchor,path,0);
		}
	this.getPlayerCallBack = function(result)
		{
			document.getElementById("highlight_Players").style.display = "none";
			document.getElementById("highlight_Player").style.display = "";
			
			var	tbl=document.getElementById("highlight_player_tbl");
			_util.removeTableRows(tbl);
			_highlight.createPlayerRow(tbl,result);
			
			var	tbl=document.getElementById("highlight_player_goals_tbl");
			_util.removeTableRows(tbl);

			var playerType=_util.selectSingleNodeText(result, "type", true);
			var playerId=_util.selectSingleNodeText(result, "player-id", true)
			if (playerType=="goalie")
			{
				document.getElementById("highlight_player_goals_tbl_label").innerHTML=getLocalizedString("highlight_recent_saves");
				var saves=_util.selectNodes(result, "/player/saves/save");
				for (var i=0; i<saves.length; i++)
					_highlight.createPlayerSaveRow(tbl, saves[i], playerId);
			}
			else
			{
				document.getElementById("highlight_player_goals_tbl_label").innerHTML=getLocalizedString("highlight_recent_goals");
				var goals=_util.selectNodes(result, "/player/goals/goal");
				for (var i=0; i<goals.length; i++)
					_highlight.createPlayerGoalRow(tbl, goals[i], playerId);
			}

			var currentPage=Number(_util.selectSingleNodeText(result,"paging/current-page", true));
			var totalPages=Number(_util.selectSingleNodeText(result,"paging/total-pages", true));
			var div=document.getElementById("highlight_player_goals_tbl_paging");
			_highlight.createPagingLinks(div, currentPage, totalPages);
		}

	this.createPagingLinks = function(div, currentPage, totalPages)
		{
			div.innerHTML="";

			if (totalPages <= 1)
				return;

			var playerId=document.getElementById("highlight_player_tbl").getAttribute("pid");
										
	        var startCount, endCount;
	        
	        if (currentPage < 4)
	        { startCount = 1;
	          endCount = 7;
	        }
	        else
	        { startCount=currentPage-3;
	          endCount = startCount + 6;
	        }
	          
	        if (currentPage > totalPages - 4)
	        { endCount = totalPages;
	          startCount = endCount - 6;
	        }
	        
	        if (startCount < 1)
	           startCount = 1;
	           
	        if (endCount > totalPages)
	           endCount = totalPages;
	        
	        if (currentPage==1)
	        {
	        	var span=div.appendChild(document.createElement("span"));
	        	span.innerHTML=getLocalizedString("prev_link");
	        	span.className="pagingLink";
	        }
	        else
	        {
	        	var a=div.appendChild(document.createElement("a"));
	        	a.innerHTML=getLocalizedString("prev_link");
	        	a.className="pagingLink";
	        	a.href="javascript:void(0)";
	        	a.setAttribute("pid", playerId);
	        	a.setAttribute("pg", currentPage-1);
	        	a.onclick=function(){_highlight.getPlayer(this.getAttribute("pid"),this.getAttribute('pg'));}
	        }

        	var span=div.appendChild(document.createElement("span"));
        	span.innerHTML="&#xa0;";

			for (var i=startCount; i<=endCount; i++)
			{
	        	var span=div.appendChild(document.createElement("span"));
	        	span.innerHTML="&#xa0;";

				if (i==currentPage)
				{
		        	var span=div.appendChild(document.createElement("span"));
		        	span.className="pagingLink";
		        	span.innerHTML=i;
				}
				else
				{
		        	var a=div.appendChild(document.createElement("a"));
		        	a.innerHTML=i;
		        	a.className="pagingLink";
		        	a.href="javascript:void(0)";
		        	a.setAttribute("pid", playerId);
		        	a.setAttribute("pg", i);
		        	a.onclick=function(){_highlight.getPlayer(this.getAttribute("pid"),this.getAttribute('pg'));}
				}
			}

        	var span=div.appendChild(document.createElement("span"));
        	span.innerHTML="&#xa0;&#xa0;";

	        if (currentPage<totalPages)
	        {
	        	var a=div.appendChild(document.createElement("a"));
	        	a.innerHTML=getLocalizedString("next_link");
	        	a.className="pagingLink";
	        	a.href="javascript:void(0)";
	        	a.setAttribute("pid", playerId);
	        	a.setAttribute("pg", currentPage+1);
	        	a.onclick=function(){_highlight.getPlayer(this.getAttribute("pid"),this.getAttribute('pg'));}
	        }
	        else
	        {
	        	var span=div.appendChild(document.createElement("span"));
	        	span.innerHTML=getLocalizedString("next_link");
	        	span.className="pagingLink";
	        }
	        
    	}
							    		
	this.formatDateText = function(strDate)
		{
			var date=new Date(strDate);
			var day=date.getDate();
			var month=getLocalizedString("month"+date.getMonth());
			var year=date.getFullYear();

			if (g_locale=="fr_CA")
				return day+" "+month+" "+year;
			else
				return month+" "+day+", "+year;
		}
	
	this.formatGameStateText = function(strText)
		{
			var strRet=strText;
			
			if (strText=="FINAL OT")
				strRet=getLocalizedString("highlights_final_ot");
			else if (strText=="FINAL SO")
				strRet=getLocalizedString("highlights_final_so");
			else if (strText=="FINAL")
				strRet=getLocalizedString("highlights_final");

			return strRet;
		}
	this.formatCategoryText = function(strCategory)
		{
			var strRet="";
			switch (strCategory)
			{
				case "goal":
				case "playergoal":
					strRet=getLocalizedString("highlight_goals");
					break;
				case "hit":
					strRet=getLocalizedString("highlight_hits");
					break;
				case "save":
				case "playersave":
					strRet=getLocalizedString("highlight_saves");
					break;
				case "game":
					strRet=getLocalizedString("highlight_games");
					break;
				default:
					strRet="";
			}
			return strRet;
		}

	this.createPlayerRow = function(tblDest, xmlNode)
		{
			var tbl,tr,td,img,div,a;
			
			var objItem=new Object();
			objItem.firstName=_util.selectSingleNodeText(xmlNode, "first-name", true);
			objItem.lastName=_util.selectSingleNodeText(xmlNode, "last-name", true);
			objItem.thumbnailUrl=_util.selectSingleNodeText(xmlNode, "thumbnail-url", true);
			objItem.teamCity=_util.selectSingleNodeText(xmlNode, "current-team/city", true);
			objItem.teamName=_util.selectSingleNodeText(xmlNode, "current-team/name", true);
			objItem.teamImg=_util.selectSingleNodeText(xmlNode, "current-team/logo-38px", true);
			objItem.playerId=_util.selectSingleNodeText(xmlNode, "player-id", true);
			
			tr=tblDest.insertRow(-1);
			td=tr.appendChild(document.createElement("td"));

			img=td.appendChild(document.createElement("img"));
			img.src=objItem.thumbnailUrl;

			td=tr.appendChild(document.createElement("td"));
			td.vAlign="top";
			td.style.padding="10px";
			img=td.appendChild(document.createElement("img"));
			img.style.backgroundColor = "white";
			img.src=objItem.teamImg;

			td=tr.appendChild(document.createElement("td"));
			td.width="100%";
			td.vAlign="top";
			td.style.padding="10px";

			var strPlayerInfo="<b>" + objItem.firstName + "&#xa0;" + objItem.lastName + "</b>";
			if (objItem.teamCity!=null)
				strPlayerInfo+="<br/>" + objItem.teamCity + "&#xa0;"+objItem.teamName;
			td.innerHTML=strPlayerInfo;

			td=tr.appendChild(document.createElement("td"));

			a=td.appendChild(document.createElement("a"));
			a.className="description";
			a.title=getLocalizedString("highlight_play_all");
			a.innerHTML=getLocalizedString("play");
			
			var path = _util.selectSingleNodeText(xmlNode, "video-clip", true);
			if (path)
			{
				var type = (path.indexOf(".flv")>0)?Console.VIDEO_HIGHLIGHT_F:Console.VIDEO_HIGHLIGHT_W;
				a.href="javascript:void(0)";
				a.onclick=function(){_console.playVideo(type,a,path,0)};
			}
			else
				td.style.display = "none";
		}	

	this.createPlayerGoalRow = function(tblDest, xmlNode, playerId)
		{
			var tbl,tr,td,img,div,span,a;

			var objItem=new Object();
			objItem.highlightType="playergoal";
			objItem.eventId=_util.selectSingleNodeText(xmlNode, "event-id", true);
			objItem.gameDate=_util.selectSingleNodeText(xmlNode, "game-date", true);
			objItem.awayTeam=_util.selectSingleNodeText(xmlNode, "away-team/team-abbreviation", true);
			objItem.homeTeam=_util.selectSingleNodeText(xmlNode, "home-team/team-abbreviation", true);
			objItem.strength=_util.selectSingleNodeText(xmlNode, "strength", true);
			objItem.time=_util.selectSingleNodeText(xmlNode, "time", true);
			objItem.period=_util.selectSingleNodeText(xmlNode, "period", true);
			objItem.videoClip=_util.selectSingleNodeText(xmlNode, "video-clip", true);
			objItem.homeTeamImg=_util.selectSingleNodeText(xmlNode, "home-team/logo-25px", true);
			objItem.homeTeamCity=_util.selectSingleNodeText(xmlNode, "home-team/city", true);
			objItem.homeTeamName=_util.selectSingleNodeText(xmlNode, "home-team/name", true);
			objItem.awayTeamImg=_util.selectSingleNodeText(xmlNode, "away-team/logo-25px", true);
			objItem.awayTeamCity=_util.selectSingleNodeText(xmlNode, "away-team/city", true);
			objItem.awayTeamName=_util.selectSingleNodeText(xmlNode, "away-team/name", true);
			objItem.playerId=playerId;
			
			tr=tblDest.insertRow(-1);
			td=tr.appendChild(document.createElement("td"));

			tbl=td.appendChild(document.createElement("table"));
			tbl.cellPadding="3";
			tbl.cellSpacing="0";
			tbl.border="0";
			tbl.width="100%";
			tbl.className="border";

			tr=tbl.insertRow(-1);
			td=tr.appendChild(document.createElement("td"));
			
			a=td.appendChild(document.createElement("a"));
			a.className="description";
			a.title=getLocalizedString("title_play");
			a.innerHTML=getLocalizedString("play");

			m_objItems[objItem.eventId]=objItem;
			a.setAttribute("objItem",objItem.eventId);
			///img.setAttribute("player_id", objItem.scoringPlayerId);
			var path = _util.selectSingleNodeText(xmlNode, "video-clip", true);
			var type = (path.indexOf(".flv")>0)?Console.VIDEO_HIGHLIGHT_F:Console.VIDEO_HIGHLIGHT_W;
			a.href="javascript:void(0)";
			a.onclick=function(){_console.playVideo(type,a,path,0)};
			td=tr.appendChild(document.createElement("td"));
			td.width="100%";

			span=td.appendChild(document.createElement("span"));
			var strText=objItem.gameDate+"&#xa0;("+objItem.awayTeam+" @ "+objItem.homeTeam+") ";
			if (objItem.strength!="")
				strText+=objItem.strength+", ";
			strText+=objItem.time+"&#xa0;"+getLocalizedString("in")+"&#xa0;"+this.formatPeriodText(objItem.period);
			span.innerHTML=strText;
		}

	this.createPlayerSaveRow = function(tblDest, xmlNode, playerId)
		{
			var tbl,tr,td,img,div,span,a,a1;

			var objItem=new Object();
			objItem.highlightType="playersave";
			objItem.eventId=_util.selectSingleNodeText(xmlNode, "event-id", true);
			objItem.gameDate=_util.selectSingleNodeText(xmlNode, "game-date", true);
			objItem.shooterName=_util.selectSingleNodeText(xmlNode, "shooter-name", true);
			objItem.shooterId=_util.selectSingleNodeText(xmlNode, "shooter-id", true);
			objItem.time=_util.selectSingleNodeText(xmlNode, "time", true);
			objItem.period=_util.selectSingleNodeText(xmlNode, "period", true);
			objItem.videoClip=_util.selectSingleNodeText(xmlNode, "video-clip", true);
			objItem.homeTeamImg=_util.selectSingleNodeText(xmlNode, "home-team/logo-25px", true);
			objItem.homeTeamCity=_util.selectSingleNodeText(xmlNode, "home-team/city", true);
			objItem.homeTeamName=_util.selectSingleNodeText(xmlNode, "home-team/name", true);
			objItem.awayTeamImg=_util.selectSingleNodeText(xmlNode, "away-team/logo-25px", true);
			objItem.awayTeamCity=_util.selectSingleNodeText(xmlNode, "away-team/city", true);
			objItem.awayTeamName=_util.selectSingleNodeText(xmlNode, "away-team/name", true);
			objItem.playerId=playerId;
			
			tr=tblDest.insertRow(-1);
			td=tr.appendChild(document.createElement("td"));

			tbl=td.appendChild(document.createElement("table"));
			tbl.cellPadding="3";
			tbl.cellSpacing="0";
			tbl.border="0";
			tbl.width="100%";
			tbl.className="border";

			tr=tbl.insertRow(-1);
			td=tr.appendChild(document.createElement("td"));

			a=td.appendChild(document.createElement("a"));
			a.className="description";
			a.title=getLocalizedString("title_play");
			a.innerHTML=getLocalizedString("play");
			
			m_objItems[objItem.eventId]=objItem;
			a.setAttribute("objItem",objItem.eventId);
			var path = _util.selectSingleNodeText(xmlNode, "video-clip", true);
			var type = (path.indexOf(".flv")>0)?Console.VIDEO_HIGHLIGHT_F:Console.VIDEO_HIGHLIGHT_W;
			a.href="javascript:void(0)";
			a.onclick=function(){_console.playVideo(type,a,path,0)};
			td=tr.appendChild(document.createElement("td"));
			td.width="100%";

			span=td.appendChild(document.createElement("span"));
			span.innerHTML=objItem.gameDate+"&#xa0;"+getLocalizedString("on")+"&#xa0;"+objItem.shooterName;

			span=td.appendChild(document.createElement("span"));
			span.innerHTML="&#xa0;("+objItem.time+"&#xa0;"+getLocalizedString("in")+"&#xa0;"+this.formatPeriodText(objItem.period)+")";
		}
	
	this.createDetailsGameTable=function(strCategory, item)
		{
			var tblDest=document.createElement("table");
	
			var tbl,tr,tr1,td,img,div;
			var objItem=null;

			if (strCategory=="playergoal" || strCategory=="playersave" || strCategory=="game")
				objItem=item;
			else
				objItem=item.gameObjItem;
	
			tr1=tblDest.insertRow(-1);
			td=tr1.appendChild(document.createElement("td"));
				
			tbl=td.appendChild(document.createElement("table"));
			tbl.cellPadding="0";
			tbl.cellSpacing="0";
			tbl.border="0";
			tbl.className="description border";
			tbl.style.backgroundColor="white";
			tbl.style.width="78px";
			tbl.style.height="60px";
	
			tr=tbl.insertRow(-1);
			td=tr.appendChild(document.createElement("td"));
			td.style.paddingLeft="5px";
			td.style.paddingRight="2px";
			img=td.appendChild(document.createElement("img"));
			img.src=objItem.awayTeamImg;
	
			td=tr.appendChild(document.createElement("td"));
			td.className="description";
			td.style.color="#333333";
			td.innerHTML="&#xa0;"+getLocalizedString("at")+"&#xa0;";
	
			td=tr.appendChild(document.createElement("td"));
			td.style.paddingLeft="2px";
			td.style.paddingRight="5px";
			img=td.appendChild(document.createElement("img"));
			img.src=objItem.homeTeamImg;
	
			td=tr1.appendChild(document.createElement("td"));
			tbl=td.appendChild(document.createElement("table"));
			tbl.cellPadding="0";
			tbl.cellSpacing="3";
			tbl.border="0";
			tr=tbl.insertRow(-1);
			td=tr.appendChild(document.createElement("td"));
			td.innerHTML="<b>"+getLocalizedString("highlight_game_highlight_video")+"</b>" + " <span class='description'>(" + objItem.gameDate + ")</span>"; ///
	
			tr=tbl.insertRow(-1);
			td=tr.appendChild(document.createElement("td"));
			td.innerHTML=getLocalizedString("title_label")+" <b>"+objItem.awayTeamCity+" "+objItem.awayTeamName+" @ "+objItem.homeTeamCity+" "+objItem.homeTeamName + "</b>";  ///
	
			tr=tbl.insertRow(-1);
			td=tr.appendChild(document.createElement("td"));
			td.innerHTML=getLocalizedString("category_label")+" <b>"+_highlight.formatCategoryText(strCategory)+"</b>";

			tr=tblDest.insertRow(-1);
			td=tr.appendChild(document.createElement("td"));
			td.colSpan="2";
			td.className="description";

			switch (strCategory)
			{
				case "goal":
					_highlight.createGoalInfo(td, item);
					break;
				case "hit":
					_highlight.createHitInfo(td, item);
					break;
				case "save":
					_highlight.createSaveInfo(td, item);
					break;
			}				
			return tblDest;
		}
	
	this.formatPeriodText = function(period)
		{
			var strFormatted="";

			switch (String(period))
			{
				case "1":
					strFormatted="1st";
					break;
				case "2":
					strFormatted="2nd";
					break;
				case "3":
					strFormatted="3rd";
					break;
				case "4":
					strFormatted="OT";
					break;
				case "5":
					strFormatted="SO";
					break;
				default:
					strFormatted=period;
					break;
			}
			
			return strFormatted;
		}
}