var g_xUserInfo = null;
var g_xGlobalScore = new GlobalScore();

var g_sCurrentGameID=null;
var g_sCurrentGameName=null;

var g_xTime=new Date();
var g_xCDEnd=new Date();
var g_bHasSyncedTime=false;
var g_iCDH=0;function CountDownGetH() {return g_iCDH;};
var g_iCDM=0;function CountDownGetM() {return g_iCDM;};

function UpdateTime()
{
	if(!g_bHasSyncedTime)
	{
		var xRPC = new PitRPC("htw.xrq","time");
		xRPC.OnSucceed=function()
		{		
			g_bHasSyncedTime=true;
			g_xTime.setTime(this.m_xResults.time*1000);
			g_xCDEnd.setTime(this.m_xResults.time*1000);
			
			g_xCDEnd.setUTCHours(23);
			g_xCDEnd.setUTCMinutes(59);
			g_xCDEnd.setUTCSeconds(59,999);
			g_xCDEnd.setTime(g_xCDEnd.getTime()-(this.m_xResults.tzo*1000));
		}
		xRPC.Send();
	}
	else
	{
		g_xTime.setTime(g_xTime.getTime()+1000);
	}
};

setInterval(function()
{
	UpdateTime();
},1000);

function GetLocale()
{
	return "en";	
};

function GetUserInfo(p_xSucc)
{
	var xRPC=new VXHR();
	xRPC.SetURL("htw.xrq");
	xRPC.SetFunction("uinfo");
	xRPC.OnSucceed=function()
	{
		g_xUserInfo=xRPC.m_xResults;
		var sTD=g_xUserInfo.td;
		var xEl=$("totdon");
		xEl.src="/gfxgen.xrq?s=text_smp&m=-20&p1=-1,,,6c&t="+sTD+"€";
		xEl.style.cursor="pointer";
		xEl.onclick=ShowDonationInfo;
		if(p_xSucc!=null) {p_xSucc();};
	}
	xRPC.Send();
};

function ShowLoginBox()
{
	/*var xEl=$('mainframe');
	if(!xEl) {return;};
	var sH="";
	sH+="<div class='subnav_box' style='font-size:12px;color:white;'>";
	sH+="test";
	sH+="</div>";
	xEl.innerHTML+=sH;*/
};

function GlobalScore()
{	
	this.m_asScoreList=new Array();
	this.m_asNameList=new Array();
	var xThis=this;
	
	this.GetScore=function()
	{
		var xRPC=new VXHR();
		xRPC.SetURL("htw.xrq");
		xRPC.SetFunction("hiscore");
		xRPC.OnSucceed=function()
		{
			g_sUserNick=xRPC.m_sResultText;
			xThis.m_sNameList=xRPC.m_xResult.names.splice(0,xRPC.m_xResult.names.length);
			xThis.m_sScoreList=xRPC.m_xResult.scores.splice(0,xRPC.m_xResult.scores.length);
		};
		xRPC.Send();
	};
};

function SetGame()
{
	var xRPC=new VXHR();
	xRPC.SetURL("htw.xrq");
	xRPC.SetFunction("setugame");
	xRPC.SetParam("g",g_sCurrentGameID);
	xRPC.SetParam("gn",g_sCurrentGameName);
	xRPC.Send();
};

function GetCurrentGameID() {return g_sCurrentGameID;};
function OnScoreSubmitted() {OnClickRanking(false);};

function SubmitScore(p_sScore)
{	
	var xRPC = new PitRPC();
	xRPC.SetURL("htw.xrq");
	xRPC.SetFunction("reggamescore");
	xRPC.SetParam("s",p_sScore);
	xRPC.SetParam("gid",g_sCurrentGameID);
	xRPC.OnSucceed=function()
	{
		OnClickRanking(false);
	};
	xRPC.Send();
};

function GoHREF(p_sName, p_xEvt)
{
/*
	if((typeof(p_xEvt)!="undefined")&&p_xEvt.ctrlKey)
	{
		window.open(p_sName,"_blank");
	}
	else
	{
	*/
		window.location.href=p_sName;
	//}
};

function ShowDonationInfo(p_iTime) 
{
	var xRPC = new PitRPC("htw.xrq","donationstats")
	xRPC.SetParam("time",p_iTime);
	xRPC.OnSucceed=function()
	{
		var xR=this.m_xResults;
		var sPop="<div style='margin-left:12px;margin-top:12px;margin-bottom:4px;color:#516155;font-size:14px;'>";
		sPop+="<img style='height:20px;margin-left:-2px;' src='/gfxgen.xrq?s=text_smp&h=20&m=-16&p1=xff516155,,cc,cb&t="+g_L.totdonstat_all+"' style='left:20px;top:12px;'><br>";
		sPop+=g_L.totdonstat_all_sum+" <span style='color:#a82814;'>"+FmtNumber(xR.tt)+"€</span><br>";
		sPop+=g_L.totdonstat_all_month+" <span style='color:#a82814;'>"+FmtNumber(xR.tm)+"€</span><br>";
		sPop+=g_L.totdonstat_all_day+" <span style='color:#a82814;'>"+FmtNumber(xR.td)+"€</span><br>";
		//sPop+=g_L.totdonstat_all_hour+" <span style='color:#a82814;'>"+FmtNumber(xR.th)+"€</span><br>";
		sPop+="<br><br>";
		sPop+="<img style='height:20px;margin-left:-2px;' src='/gfxgen.xrq?s=text_smp&h=20&m=-16&p1=xff516155,,cc,cb&t="+g_L.totdonstat_you+"' style='left:20px;top:12px;'><br>";
		sPop+=g_L.totdonstat_you_sum+" <span style='color:#a82814;'>"+FmtNumber(xR.pt)+"€</span><br>";
		sPop+=g_L.totdonstat_you_month+" <span style='color:#a82814;'>"+FmtNumber(xR.pm)+"€</span><br>";
		sPop+=g_L.totdonstat_you_day+" <span style='color:#a82814;'>"+FmtNumber(xR.pd)+"€</span><br>";
		sPop+="<br><br>";
		
		if(xR.games.length>0)
		{
			sPop+="<img style='height:20px;margin-left:-2px;' src='/gfxgen.xrq?s=text_smp&h=20&m=-16&p1=xff262f29,,cc,cb&t="+g_L.totdonstat_you_curgames+"' style='left:20px;top:12px;'><br>";
			sPop+="<div style='font-size:12px;color:#262f29;'>";
			for(var i=0;i<xR.games.length;i++)
			{
				var sName=xR.games[i][0];
				var iRank=xR.games[i][1];
				var fEstDon=FmtNumber(xR.games[i][2]);
				var iLeaderScore=xR.games[i][3];
				var iPlayerScore=xR.games[i][4];
				
				sPop+="<a style='color:#a82814;text-decoration:none;' href='/games.html?g="+sName+"'>"+sName+"</a>";
				sPop+=" ("+g_L.totdonstat_you_grank+" <span style='color:#a82814;'>#"+iRank+"</span> // ";
				sPop+=g_L.totdonstat_you_gsum+": <span style='color:#a82814;'>"+fEstDon+"€</span>)<br>";
	
				sPop+=g_L.totdonstat_you_gscore+": <span style='color:#a82814;'>"+FmtNumber(iPlayerScore)+"</span> (";
				sPop+=g_L.totdonstat_you_gtop+": <span style='color:#a82814;'>"+FmtNumber(iLeaderScore)+"</span>)";
				sPop+="<div style='width:350px;height:1px;margin-top:2px;margin-bottom:4px;background-color:#8b9488;'></div>";
			};
			sPop+="</div>";
		};
		sPop+="</div>";
		var xPop=new InfoPopup2(426,502,1); 
		xPop.Show(sPop,g_L.totdonstat_title);
	}
	xRPC.Send();
};

function InfoPopup2(p_iW,p_iH,p_iStyle/*,p_bScroll*/)
{
	var xThis = this;
	this.m_xParentWnd=null;
	this.m_xContainer=null;

	this.m_xWnd=null;
	this.m_xScrollPanel=null;
	this.m_sTitle="";
	
	this.m_iW=p_iW?p_iW:400;
	this.m_iH=p_iH?p_iH:300;
	//this.m_bScroll=p_bScroll;
	this.m_iStyle=p_iStyle?p_iStyle:0;
	this.m_bScroll=true;
	
	this.Init=function()
	{
		this.m_xParentWnd=$("body");
		this.m_xParentWnd=this.m_xParentWnd.appendChild(document.createElement("div"));
		var sID="info_popup_"+Math.floor(Math.random()*100000);
		var iW=this.m_iW;
		var iH=this.m_iH;
		var iS=this.m_iStyle;
		var iBT=55;
		var iBB=30;
		
		var sH="<div id='"+sID+"_bg' class='popupbg'></div>";
		sH+="<div id='"+sID+"_cont' style='position:fixed;left:50%;top:50%;z-index:101;'>";
		sH+="<img style='position:absolute;left:"+(-iW/2-15)+"px;top:"+(-iH/2-15)+"px;' src='/gfxgen.xrq?s=popup&w="+(iW+30)+"&h="+(iH+30)+"&p1="+iBT+","+iBB+"&m="+iS+"'>";
			sH+="<div id='"+sID+"_top' style='position:absolute;left:"+(-iW/2+1)+"px;top:"+(-iH/2+1)+"px;width:"+(iW-2)+"px;height:"+iBT+"px;_background-color:green;'>";
				sH+="<img id='"+sID+"_close' style='cursor:pointer;position:absolute;right:10px;top:8px;' title='"+g_L.generic_close+"' src='/images/popupclose.png'>";
				sH+="<img id='"+sID+"_caption' style='position:absolute;left:20px;top:12px;'>";
			sH+="</div>";
			sH+="<div id='"+sID+"_btm' style='position:absolute;left:"+(-iW/2+1)+"px;bottom:"+(-iH/2+1)+"px;width:"+(iW-2)+"px;height:"+iBB+"px;_background-color:blue;'></div>";
		sH+="</div>";
		
		
		this.m_xParentWnd.innerHTML=sH;
		$(sID+'_close').onclick=$(sID+'_bg').onclick=function() {xThis.Close();};
		this.m_xCaption=$(sID+'_caption');
		this.m_xBottom=$(sID+'_btm');
		
		this.m_xContainer=$(sID+'_cont');
		this.m_xScrollPanel=new PitCtrlPanel(0,0,iW-(this.m_bScroll?14:0),iH-(iBT+iBB+2),'');
		
		if(this.m_bScroll)
		{
			this.m_xWnd=new PitCtrlScrollPanel(g_xPitStyleDef.AboutHP.ScrollStyle,-(iW/2)+1,-(iH/2)+1+iBT,iW-2,iH-2-(iBT+iBB),"",0,"",1);
			this.m_xWnd.GetEl();
			this.m_xWnd.m_xBar.m_bAutoHide=true;
		}
		else
		{
			this.m_xWnd=new PitCtrlPanel(-(iW/2)+1,-(iH/2)+1+iBT,iW-2,iH-2-(iBT+iBB),"");
		};
		
		this.m_xWnd.AddChild(this.m_xScrollPanel);		
		var xEl=xEl=this.m_xWnd.GetEl();
		xEl.id="HTpopup";
		xEl.className="HTpopup";
		this.m_xContainer.appendChild(xEl);
	};
	
	this.Close=function()
	{
		if(this.OnClose) {this.OnClose();};
		$("body").removeChild(xThis.m_xParentWnd);xThis.m_xParentWnd=null;
	};
	
	this.Show=function(p_xEl,p_sTitle,p_xBtns)
	{
		if(p_xEl==null){p_xEl=document.createElement("div");}; //dummy
		if(typeof(p_xEl)=="string")
		{
			var sH=p_xEl;
			p_xEl=document.createElement("div");
			p_xEl.className=this.m_iStyle==0?"popup_txt":"popup_txt1";
			p_xEl.innerHTML=sH;
		};

		if(p_xBtns==null){p_xBtns=document.createElement("div");}; //dummy
		if(typeof(p_xBtns)=="string")
		{
			var sH=p_xBtns;
			p_xBtns=document.createElement("div");
			p_xBtns.innerHTML=sH;
		};
		
		if(typeof(p_sTitle)=="undefined"){p_sTitle="";};
		this.Init();
		
		if(p_sTitle.length>0)
		{
			this.m_xCaption.src="/gfxgen.xrq?s=text_smp&m=-20&p1=xffedf0ed,,cc,cb&t="+p_sTitle;
		};
		this.m_xBottom.appendChild(p_xBtns);
		this.m_xScrollPanel.MakeEl().appendChild(p_xEl);
		
		
		this.AutoHeight();
		
		//sometimes some browsers report incorrect values with offsetHeight/width
		//this timeout is a workaround
		setTimeout(function(){xThis.AutoHeight();},10);
		setTimeout(function(){xThis.AutoHeight();},1000);
		
	};

	this.AutoHeight=function()
	{
		this.m_xScrollPanel.SetAutoHeight(0);
		this.m_xScrollPanel.RefreshAttributes();
		this.m_xWnd.RefreshAttributes();
	};

};

function CountDown()
{
	var xThis = this;
	this.m_xWnd=null;
	this.m_iIntervalID=0;
	this.m_xTime = new Date();
	
	this.m_xDigH0=null;
	this.m_xDigH1=null;
	this.m_xDigC0=null;
	this.m_xDigM0=null;
	this.m_xDigM1=null;
	this.m_xParentWnd;
	this.m_sStyle=null;
	this.m_bFakeCD=false;	
	this.m_xAudio=null;
	
	this.m_iMins=0;
	
	this.GetEl=function()
	{
		return this.m_xWnd;
	}
	
	this.LoadAudio=function()
	{	
		return;
		//html5 audio
		this.m_xAudio = document.createElement("audio");
		if(this.m_xAudio.canPlayType("audio/mp3")=="no"){return;};
		
		this.m_xAudio = new Audio("/audio/countdown_message.mp3");		
		this.m_xAudio.autoplay="false";
		this.m_xAudio.autobuffer="true";
	};
	
	this.Open=function(p_xParent)
	{	
		try
		{
			this.LoadAudio();
		}	
		catch(e){};
			
		this.m_xParentWnd=p_xParent;
	
		this.m_xWnd=document.createElement("div");
		this.m_xParentWnd.style.visibility="hidden";
		
		this.m_sStyle="countdown";
		
		this.m_xWnd.className=this.m_sStyle;
		this.m_xParentWnd.appendChild(this.m_xWnd);
		
		this.m_xDigH0=document.createElement("img");
		this.m_xDigH0.src="gfxgen.xrq?s=digit&m=0";
		this.m_xDigH0.style.marginTop="0px";
		this.m_xDigH0.style.marginLeft="4px";
		
		this.m_xWnd.appendChild(this.m_xDigH0);
		this.m_xDigH1=document.createElement("img");
		this.m_xDigH1.src="gfxgen.xrq?s=digit&m=0";
		this.m_xWnd.appendChild(this.m_xDigH1);
		this.m_xDigC0=document.createElement("img");
		this.m_xDigC0.src="gfxgen.xrq?s=digit&m=-1";
		this.m_xWnd.appendChild(this.m_xDigC0);
		this.m_xDigM0=document.createElement("img");
		this.m_xDigM0.src="gfxgen.xrq?s=digit&m=0";
		this.m_xWnd.appendChild(this.m_xDigM0);
		this.m_xDigM1=document.createElement("img");
		this.m_xDigM1.src="gfxgen.xrq?s=digit&m=0";
		this.m_xWnd.appendChild(this.m_xDigM1);
		
		setInterval(function(){xThis.Update();},1000);
		setInterval(function(){xThis.Blink();},500);
	};
	
	this.Blink=function()
	{
		this.m_xDigC0.style.visibility=(this.m_xDigC0.style.visibility=="hidden")?"visible":"hidden";
	};
	
	this.Update=function()
	{
		xThis.m_xParentWnd.style.visibility="visible";
		
		var iTRemS=Math.floor((g_xCDEnd.getTime()-g_xTime.getTime())/1000);
		var iTRemM=Math.floor(iTRemS/60)+1;
		
		var iSecs=iTRemM%60;
		var iMins=Math.floor(iTRemM/60);
		
		g_iCDH=iMins;
		g_iCDM=iSecs;
		
		//var iSecs=(59-g_xTime.getSeconds());
		//var iMins=(59-g_xTime.getMinutes());
		
		var iD=Math.floor(iMins/10);if(iD<0) {iD=0;};if(iD>9) {iD=9;};
		xThis.m_xDigH0.src="gfxgen.xrq?s=digit&m="+iD;
		iD=Math.floor(iMins%10);if(iD<0) {iD=0;};if(iD>9) {iD=9;};
		xThis.m_xDigH1.src="gfxgen.xrq?s=digit&m="+iD;

		iD=Math.floor(iSecs/10);if(iD<0) {iD=0;};if(iD>9) {iD=9;};
		xThis.m_xDigM0.src="gfxgen.xrq?s=digit&m="+iD;
		iD=Math.floor(iSecs%10);if(iD<0) {iD=0;};if(iD>9) {iD=9;};
		xThis.m_xDigM1.src="gfxgen.xrq?s=digit&m="+iD;
	};
};

function GetGameTypeString(p_iType)
{
	var sTypes="";
	if(p_iType&(1<<0)) {sTypes+="Color ";}; //1
	if(p_iType&(1<<1)) {sTypes+="Quiz ";};  //2
	if(p_iType&(1<<2)) {sTypes+="Sports ";};//4
	if(p_iType&(1<<3)) {sTypes+="Puzzle ";};//8
	if(p_iType&(1<<4)) {sTypes+="Action ";};//16
	if(p_iType&(1<<5)) {sTypes+="Skills ";};//32
	if(sTypes.length>0) {sTypes=sTypes.substr(0,sTypes.length-1);};
	sTypes=sTypes.replace(/ /g,"-");

	return sTypes;
};

function SetTip(p_sTip)
{
	var xEl=$("tipbox");if(!xEl) {return;};
	if(!p_sTip||p_sTip.length<1) {xEl.innerHTML="";return;};
	
	xEl.innerHTML='<p style="color:#444444">tip:</p>';
	xEl.innerHTML+='<p style="color:#323D36;font-size:13px;">'+p_sTip+'</p>';
};



