
var g_iHScoreListIdx=0;
function HighScoreList(p_iX,p_iY,p_iW,p_iH,p_xWnd, p_bTitle)
{
	var xThis=this;
	this.m_xWnd=p_xWnd;
	this.m_xScrollBox=null;
	this.m_axValueList = new Array();
	this.m_axNameList = new Array();
	this.m_xOutput=null;
	
	this.m_iIdx=g_iHScoreListIdx++;
	this.m_iX=p_iX;
	this.m_iY=p_iY;
	this.m_iWidth=p_iW;
	this.m_iHeight=p_iH;
	this.m_bTitle=p_bTitle;
	this.m_xPlayerRank=null;
	
	this.m_bHighlightUser=true;
	
	this.Open=function(p_xData)
	{
		if(g_xUserInfo==null) {setTimeout(function(){xThis.Open(p_xData);},10);return;};
		
		var i;
		var sUnit;
		var sDesc;
		var bViewProfileOnClick=false;
		if(p_xData.type=="score")
		{
			sUnit="";
			sDesc="Score";
			bViewProfileOnClick=true;
			//this.m_bTitle=true;
		}
		else if(p_xData.type=="value")
		{
			sUnit="€";
			sDesc="Money Raised";
			bViewProfileOnClick=true;
			this.m_bTitle=false;
		}
		else if(p_xData.type=="gamelist")
		{
			sUnit="";
			sDesc="Sessions Played"; 
			bViewProfileOnClick=false;
		}
		
		if(p_xData.type=="gamelist")
		{
			for(i=0;i<p_xData.count;i++)
			{
				var xEntry=p_xData["Entry_"+(i+1)];
				if(xEntry==undefined){continue;};
				
				this.m_axNameList.push(xEntry.name);
				this.m_axValueList.push(xEntry.numplayed);
			};
		}
		else if(p_xData.entries)
		{
			for(i=0;i<p_xData.entries.length;i++)
			{
				var xEntry=p_xData.entries[i];
				this.m_axNameList.push(xEntry[0]);
				this.m_axValueList.push(FmtNumber(xEntry[1]));
			};
		}
		else
		{
			for(i=0;i<p_xData.count;i++)
			{
				var xEntry=p_xData["Entry_"+(i+1)];
				if(xEntry==undefined){continue;};
				
				this.m_axNameList.push(xEntry.n);
				this.m_axValueList.push(FmtNumber(xEntry.v));
			};
		};
		
		xThis.m_xScrollBox=new PitCtrlPanel(0,0,this.m_iWidth,this.m_iHeight);
		xThis.m_xOutput=new PitCtrlScrollPanel(g_xPitStyleDef.AboutHP.ScrollStyle,this.m_iX+10,this.m_iY+2,this.m_iWidth-20,this.m_iHeight-9,"",0,"",1);
		xThis.m_xOutput.AddChild(xThis.m_xScrollBox);
		xThis.m_xWnd.appendChild(xThis.m_xOutput.MakeEl());	
		
		var iTRW=xThis.m_iWidth-33;
		xThis.m_xPlayerRank=document.createElement("div");
		xThis.m_xPlayerRank.style.position="absolute";
		xThis.m_xPlayerRank.style.top=(p_iH+35)+"px";
		xThis.m_xPlayerRank.style.width=(iTRW)+"px";
		xThis.m_xPlayerRank.style.height="16px";
		xThis.m_xPlayerRank.style.left="10px";
		xThis.m_xPlayerRank.className="highlight";
		
		xThis.m_xWnd.appendChild(xThis.m_xPlayerRank);
		var sHTML="<table class=\"hscorelist\" cellpadding='0' border=0 width='"+(iTRW)+"px'>";
		if(xThis.m_bTitle)
		{
			//sHTML+="<tr><td><img style='height:27px;' src='/gfxgen.xrq?s=text&m=20&p1=11450120&p2=2&p3=-3&t=Scorelist'></td></tr>";
			xThis.m_xWnd.style.backgroundImage="url('/gfxgen.xrq?s=lbox&t="+g_L.slide_scorehour+"')";
		};
		
		//var iCellH=16;
		var iPlayerListPosition=-1;
		if(bViewProfileOnClick)
		{
			for(i=0;i<this.m_axValueList.length;i++)
			{
				var sName=this.m_axNameList[i];
				if(xThis.m_bHighlightUser&&sName==g_xUserInfo.nick)
				{
					iPlayerListPosition=i;
					sHTML+="<tr id='ppos"+this.m_iIdx+"' class='highlight'><td><a href=\"community_viewprofile.html?"+this.m_axNameList[i] + "\">";

					var sPlayerRankHTML="<table cellpadding='0' style='width:100%;'><tr>";
					sPlayerRankHTML+="<td style='width:50%'>"+(i+1)+". "+this.m_axNameList[i]+"</td>"; 
					sPlayerRankHTML+="<td style='color:#9EE11F;text-Align:right;'>";
					sPlayerRankHTML+=this.m_axValueList[i]+sUnit+"</td></tr></table>";
					xThis.m_xPlayerRank.innerHTML=sPlayerRankHTML;
				}	
				else
				{
					sHTML+="<tr><td><a href=\"community_viewprofile.html?"+this.m_axNameList[i] + "\">";
				};
				
				sHTML+=""+(i+1)+". "+this.m_axNameList[i]+"</a></td>"; 
				sHTML+="<td style='color:#9EE11F;text-align:right;'>"+this.m_axValueList[i]+sUnit+"&nbsp;</td></tr>";
			};
		}
		else
		{
			for(i=0;i<this.m_axValueList.length;i++)
			{
				sHTML+="<tr class=\"blacktext\"><td>"+(i+1)+".</td><td>"+this.m_axNameList[i]+"</td><td>"+this.m_axValueList[i]+sUnit+"</td></tr>";	
			};
		}

		sHTML+="</table>";
		xThis.m_xScrollBox.MakeEl().innerHTML+=sHTML;
		xThis.m_xScrollBox.SetAutoHeight(18);
		xThis.m_xOutput.RefreshAttributes();
		
		xThis.m_xOutput.OnSetScrollPos=function(p_iPos,p_iRange)
		{
			if(typeof(p_iPos)=="undefined"){p_iPos=0;};
			if(typeof(p_iRange)=="undefined"){p_iRange=0;};
			var iScrollPos=p_iPos;
			var iPlayerOffsetPos=-1;
			var xP=$("ppos"+xThis.m_iIdx);
			if(xP){iPlayerOffsetPos=xP.offsetTop;};		
			
			var iH=xThis.m_xOutput.GetEl().offsetHeight;
			
			if((iPlayerOffsetPos!=-1&&(iPlayerOffsetPos+20)>iScrollPos&&iPlayerOffsetPos<(iScrollPos+iH))||iPlayerOffsetPos==-1)
			{
				xThis.m_xPlayerRank.style.visibility="hidden";
				//xThis.m_xPlayerRank.style.visibility="visible";
			}
			else
			{
				xThis.m_xPlayerRank.style.visibility="visible";
			}
		};
		xThis.m_xOutput.OnSetScrollPos();
		setTimeout(function(){
			xThis.m_xScrollBox.SetAutoHeight(18);
			xThis.m_xOutput.RefreshAttributes();
		},1000);	
	};
};

//fM=String(fM).replace(/\./,g_L.dec_pnt);

function FmtMoney(p_fVal)
{
	var sVal=String(p_fVal);
	var iDP=sVal.search(/\./);
	if(iDP==-1) {return FmtNumber(p_fVal);};
	var iN=sVal.length-iDP;
	while(iN<3) {sVal+='0';iN++;};
	if(iN>3) {sVal=sVal.substr(0,iDP+3);};
	return FmtNumber(sVal);
};

function FmtNumber(p_fVal)
{
	var sSep=g_L.thou_sep;
	var sPre="";
	if(p_fVal<0) {sPre="-";p_fVal=-p_fVal;};
	p_iVal=parseInt(p_fVal);
	var sRem="";
	var iDP=String(p_fVal).search(/\./);
	if(iDP!=-1)
	{
		sRem=g_L.dec_pnt+String(p_fVal).substr(iDP+1);
	};
	
	var sTxt=""+p_iVal;
	var sTxtD="";
	var iL=sTxt.length;
	
	while(sTxt.length>0)
	{
		var iS=iL-3;if(iS<0){iS=0;};			
		sTxtD=sTxt.substr(iS,3)+sTxtD;
		sTxt=sTxt.substr(0,iS);
		iL=sTxt.length;
		if(iL>0)
		{
			sTxtD=sSep+sTxtD;
		};
	};
	return sPre+sTxtD+sRem;
};
