// Copyright (C) 2006 BlueGolf, LLC. All Rights Reserved
var contestant;var contestantId;var contestType;var display;var action;var contestantRow;var leaderTbl;function expand(newContestant,newContestType,newDisplay,newAction,newRow)
{var isCustom=newRow.id.indexOf("_x")==newRow.id.length-2;contestant=newContestant;contestantId=isCustom?contestant+'_x':contestant;contestType=!newContestType?'player':newContestType;display=!newDisplay?'scorecard':newDisplay;action=!newAction?'expand':newAction;contestantRow=newRow;var tblId=isCustom?"cLbBody":"lbBody";leaderTbl=getEl(tblId);var btn=getEl("btn_"+contestantId);var result=tracker();if(result=="expand")
{var rnd=getEl("rnd_"+contestantId).value;var url="contestant/"+contestant+"/"+display+".xml";if(rnd)
{url+="?r="+rnd;}
if(window.XMLHttpRequest)
{req=new XMLHttpRequest();}
else if(window.ActiveXObject)
{req=new ActiveXObject("Microsoft.XMLHTTP");}
if(req!=undefined)
{req.onreadystatechange=function(){expandDone(url);doGreybox();};req.open("GET",url,true);req.send("");}
btn.src="/_img/smallbtn/contract.gif";}
else
{btn.src="/_img/smallbtn/expand.gif";}}
function expandDone(url)
{if(req.readyState==4)
{scorecard=new Scorecard(contestType,contestant);if(req.status==200)
{scorecard.parseXml(req.responseXML);}
else
{document.getElementById("td_"+contestantId).innerHTML="expand error:\n"+req.statusText;}
scorecard.createHtml();}}
function getEl(el)
{if(document.getElementById&&document.getElementById(el))
{return document.getElementById(el);}
else if(document.all&&document.all[el])
{return document.all[el];}
return false;}
function tracker()
{var expandRowId='te_'+contestantId;if(getEl(expandRowId)==false)
{addRow(expandRowId);return"expand";}
else
{deleteRow();return"delete";}}
function addRow(expandRowId)
{var firstRow=leaderTbl.firstChild;var expandCols=Number(getEl("columns").value);expandCols--;var nextEl=contestantRow.nextSibling;var nextRow;while(nextEl)
{if(nextEl.nodeName=='TR'||nextEl.nodeName=='tr')
{nextRow=nextEl;break;}
nextEl=nextEl.nextSibling;}
var newR=document.createElement('tr');newR.id=expandRowId;newR.vAlign="top";newR.className=contestantRow.className;var cell_a=document.createElement('td');cell_a.className="empty";cell_a.height="92px";cell_a.innerHTML="&nbsp;";newR.appendChild(cell_a);var expCol=document.createElement('td');expCol.colSpan=expandCols;expCol.id='td_'+contestantId;expCol.innerHTML="Loading data...";newR.appendChild(expCol);try
{if(nextRow){leaderTbl.insertBefore(newR,nextRow);}
else{leaderTbl.appendChild(newR);}}
catch(ex)
{leaderTbl.appendChild(newR);}
buildExpRowShell();newR=cell_a=expCol=null;}
function buildExpRowShell()
{var myId=getEl('td_'+contestantId);myId.innerHTML='';var myT=document.createElement('table');myT.className="lbsub";myT.cellSpacing="0px";myT.cellPadding="0px";myT.align="left";var myTB=document.createElement('tbody');var myR=document.createElement('tr');myR.align="left";if(contestType=="player")
{var myC=document.createElement('td');myC.id='tdImg_'+contestantId;myC.align="center";myC.width="90px";myC.className="noborder";myR.appendChild(myC);}
myC=document.createElement('td');myC.id='exp_'+contestantId;myC.className="noborder";myR.appendChild(myC);myTB.appendChild(myR);myT.appendChild(myTB);myId.appendChild(myT);myT=myId=myTB=myT=myR=myC=null;}
function deleteRow()
{var expRowName='te_'+contestantId;var killRow=getEl(expRowName);leaderTbl.removeChild(killRow);}
function Scorecard()
{var self=(this.constructor==Scorecard)?this:{};var doc=document;var thumbnailUrl;var profileUrl;var hcapUrl;var videoUrl;var roundSeq;var courseName;var teeColor;var teeDescrip;var arrHole=Array();var arrPar=Array();var arrStrokes=Array();var arrRelative=Array();var partnerNames;var partnerHcapUrls;self.createHtml=function()
{if(thumbnailUrl&&thumbnailUrl!="")
{var myImgId=getEl('tdImg_'+contestantId);var myImgDiv=document.createElement('div');var myImg=document.createElement('img');myImg.id='expImg'+contestantId;myImg.src=thumbnailUrl;myImgDiv.appendChild(myImg);myImgId.appendChild(myImgDiv);}
var myId=getEl('exp_'+contestantId);var links="<a href=\"contestant/"+contestant+"/scorecard.htm\">Full Scorecard</a>";if(contestType=="player")
{if(profileUrl!="")
{links+=" | <a href=\""+profileUrl+"\">Profile</a>";}
if(hcapUrl!="")
{links+=" | <a href=\""+hcapUrl+"\" class=\"greybox\">Handicap</a>";}
if(videoUrl!="")
{links+=" | <a href=\""+videoUrl+"\">Swing Video</a>";}}
else
{if(partnerHcapUrls&&partnerHcapUrls.length>0)
{links+=" | Handicap:";var count=0;for(var p=0;p<partnerHcapUrls.length;p++)
{var partnerHcapUrl=partnerHcapUrls[p];if(partnerHcapUrl&&partnerHcapUrl!="")
{var partnerName=partnerNames[p];if(count++>0)
{links+=",";}
links+=" <a href=\""+partnerHcapUrl+"\" class=\"greybox\" title=\"Handicap\">"+partnerName+"</a>";}}}}
myId.innerHTML="<table width=\"100%\" class=\"leadersub\"><tr><td class=\"noborder\">"+links+"</td></tr></table>";var myDiv=document.createElement('div');myDiv.id="exp_scorecard_"+contestantId;var myT=document.createElement('table');myT.className="scorecardwhitesmall";myT.cellPadding="0px";myT.cellSpacing="0px";var myTB=document.createElement('tbody');var myR,myC;var rows=Array();rows[0]=arrHole;rows[1]=arrPar;rows[2]=arrStrokes;var noScore=999;for(var row=0;row<rows.length;row++)
{var data=rows[row];myR=document.createElement('tr');myR.vAlign="top";myR.align="center";if(row!=2)
{myR.className="scorecardlight";}
else
{myR.className="scores";}
for(var col=0;col<data.length;col++)
{myC=document.createElement('td');if(col==0)
{myC.align="left"
myC.className="title";}
var val=data[col];if(row==2&&col!=0)
{if(val==noScore)
{val="";}
else if(arrRelative[col]!=0)
{var toPar=parseInt(arrRelative[col]);if(toPar<=-2)
{myC.className="eagle";}
else if(toPar==-1)
{myC.className="birdie";}
else if(toPar==1)
{myC.className="bogey";}
else if(toPar>=2)
{myC.className="dbl";}}}
myC.innerHTML=val;myR.appendChild(myC);}
myTB.appendChild(myR);}
myT.appendChild(myTB);myDiv.appendChild(myT);myId.appendChild(myDiv);};self.parseXml=function(dom)
{var scorecard=getFirstElementByTagName(dom,'scorecard');var details=getFirstElementByTagName(scorecard,'details');roundSeq=getElementText(getFirstElementByTagName(details,'roundseq'));courseName=getElementText(getFirstElementByTagName(details,'coursename'));teeColor=getElementText(getFirstElementByTagName(details,'teecolor'));teeDescrip=getElementText(getFirstElementByTagName(details,'teedescrip'));var holes=getFirstElementByTagName(scorecard,'holes').getElementsByTagName('hole');arrHole[0]="Hole";arrPar[0]="Par";arrStrokes[0]="Rnd&nbsp;"+roundSeq;for(var k=1;k<=holes.length;k++)
{var hole=holes[(k-1)];var cnodes=hole.childNodes;arrHole[k]=getElementText(getFirstElementByTagName(hole,'number'));arrPar[k]=getElementText(getFirstElementByTagName(hole,'par'));arrStrokes[k]=getElementText(getFirstElementByTagName(hole,'strokes'));arrRelative[k]=getElementText(getFirstElementByTagName(hole,'topar'));}
if(contestType=="player")
{var userDetails=getFirstElementByTagName(scorecard,'userdetails');if(userDetails)
{thumbnailUrl=getElementText(getFirstElementByTagName(userDetails,'photourl'));profileUrl=getElementText(getFirstElementByTagName(userDetails,'profileurl'));hcapUrl=getElementText(getFirstElementByTagName(userDetails,'hcapurl'));videoUrl=getElementText(getFirstElementByTagName(userDetails,'videourl'));}
else
{thumbnailUrl="";profileUrl="";hcapUrl="";videoUrl="";}}
else
{var partnerDetails=getFirstElementByTagName(scorecard,'partnerdetails');partnerNames=Array();partnerHcapUrls=Array();if(partnerDetails)
{var partners=partnerDetails.getElementsByTagName('partner');for(var p=0;p<partners.length;p++)
{var partner=partners[p];var tmpHcapUrl=getElementText(getFirstElementByTagName(partner,'hcapurl'));if(tmpHcapUrl&&tmpHcapUrl!="")
{partnerHcapUrls[p]=tmpHcapUrl;partnerNames[p]=getElementText(getFirstElementByTagName(partner,'nameshort'));}}}}}
return self;}
function getFirstElementByTagName(element,name)
{var list=element.getElementsByTagName(name);return(list==null||list.length==0)?null:list.item(0);}
function appendElementText(element,text)
{var result=text;if(element!=null)
{if(element.nodeType==3)
{result=result+element.nodeValue;}
if(element.hasChildNodes())
{for(var i=0;i<element.childNodes.length;i++)
{var child=element.childNodes.item(i);result=appendElementText(child,result);}}}
return result;}
function getElementText(element)
{return appendElementText(element,'');}