
var g_iExpansionH=240;
var g_iStepSize=10;
var g_iStepDelay=20;
var g_bMenuResizeInProgress=false;
var g_sHelpTarget="";
var g_sScoreTableType="mraisedlist";

function trim(s){return(s?''+s:'').replace(/^\s*|\s*$/g,'');};

function SetScoreTable(p_sTableType)
{	
	g_sScoreTableType=p_sTableType;
};

function SetHelpTarget(p_iT,p_xSucc)
{
	var xRPC=new VXHR();
	xRPC.SetURL("htw.xrq");
	xRPC.SetFunction("setht");
	xRPC.SetParam("t",p_iT);
	xRPC.OnSucceed=function(){
		if(p_xSucc) {p_xSucc();};
	};
	xRPC.Send();	
	g_sHelpTarget=p_iT;
	g_xUserInfo.ht=p_iT;
};

function GetHelpTarget()
{
	return g_sHelpTarget;
};

function SlideMenu(p_iX,p_iY,p_iW,p_iH,p_sMode,p_xParent,p_funcOnClick)
{
	var xThis = this;
	this.m_iX=p_iX;
	this.m_iY=p_iY;
	this.m_iW=p_iW;
	this.m_iH=p_iH;
	
	this.m_iDefaultX=-(p_iW-33);
	this.m_iExpandedX=0;
	this.m_iX=this.m_iDefaultX;
	
	this.m_xParent=p_xParent;
	this.m_iState=0;
	
	this.m_xWnd=null;
	this.m_xHead=null;
	this.m_xBody=null;
	
	this.OnClickFunction=function()
	{
		p_funcOnClick(true);
	};

	this.Init=function()
	{
		this.m_xWnd=document.createElement("div");
		this.m_xWnd.className="slidemenu";
		
		this.m_xParent.appendChild(this.m_xWnd);

		this.m_xHead=document.createElement("div");
		this.m_xHead.className="slidemenuhead";
		//this.m_xHead.style.backgroundImage="url('/images/lbox_"+p_sMode+".png')";
		
		this.m_xBody=document.createElement("div");
		this.m_xBody.className="slidemenubody";
		this.m_xBody.style.width=this.m_iW + "px";
		this.m_xBody.style.backgroundImage="url('/images/lbox_"+p_sMode+".png')";
		
		if(p_sMode=="ra")
		{
			this.m_xBody.style.backgroundImage="url('/gfxgen.xrq?s=lbox&t="+g_L.slide_rankingall+"')";
		};
		
		
		this.m_xWnd.appendChild(this.m_xBody);
		this.m_xWnd.appendChild(this.m_xHead);
		
		this.m_xHead.onmousedown=function()
		{	
			if(xThis.m_iState==0)
			{	
				//xThis.Expand();
				xThis.OnClickFunction();
			}
			if(xThis.m_iState==1)
			{
				return;
			}
			if(xThis.m_iState==2)
			{
				xThis.Collapse();
			}
		};
		
		this.RefreshAttributes();
	}
	
	this.RefreshAttributes=function()
	{
		if(this.m_xWnd==null){return;};
		this.m_xWnd.style.top=this.m_iY+"px";
		this.m_xWnd.style.left=this.m_iX+"px";
		this.m_xWnd.style.width=this.m_iW+"px";
		this.m_xWnd.style.height=this.m_iH+"px";
	};
	
	this.SetTitle=function(p_sTitle)
	{
		if(this.m_xWnd==null){return;};
		//this.m_xHead.innerHTML="<img src=\"/gfxgen.xrq?s=text&m=-29&t="+p_sTitle+"&p1=11450120&p2=1\">";
	}
	
	this.SetBody=function(p_xEl)
	{
		if(this.m_xWnd==null){return;};
		this.m_xBody.innerHTML="";
		this.m_xBody.appendChild(p_xEl);
	}
	
	this.Collapse=function()
	{
		this.m_iTimeout=null;
		
		if(this.m_iX>this.m_iDefaultX)
		{
			this.m_iState=1;
			this.m_iX-=g_iStepSize;
			if(this.m_iX<this.m_iDefaultX) {this.m_iX=this.m_iDefaultX;};
			this.RefreshAttributes();
			this.m_iTimeout=setTimeout(function(){xThis.Collapse()},g_iStepDelay);
		}
		else
		{
			clearTimeout(this.m_iTimeout);
			this.m_iState=0;
		}
	};
	
	this.Expand=function()
	{
		this.m_iTimeout=null;
		
		if(this.m_iX<this.m_iExpandedX)
		{
			this.m_iState=1;
			this.m_iX+=g_iStepSize;
			if(this.m_iX>this.m_iExpandedX) {this.m_iX=this.m_iExpandedX;};
			this.RefreshAttributes();
			this.m_iTimeout=setTimeout(function(){xThis.Expand()},g_iStepDelay);
		}
		else
		{
			clearTimeout(this.m_iTimeout);
			this.m_iState=2;
		}
	};
};

function OnClickRanking(p_bShrinkIfExpanded)
{	
	var xThis=g_xRankMenu;
	if(typeof(xThis)=="undefined"){return;};
	if(xThis.m_xWnd==null){return;};
	
	xThis.m_xBody.innerHTML="";
	if(xThis.m_iState!=1)
	{	
		xThis.Expand();
		
			var xRPCA=new PitRPC("htw.xrq",g_sScoreTableType);
			if(g_sScoreTableType=="mraisedlist")
			{
				xRPCA.SetParam("s",6);
			}
			else
			{
				xRPCA.SetParam("gchksum",GetGameID());
				xThis.SetTitle(g_sCurrentGameName);
			}
			
			xRPCA.OnSucceed=function()
			{
				var xHL = new HighScoreList(0,8,xThis.m_iW-20,xThis.m_iH-14,xThis.m_xBody,true);
				xHL.Open(xRPCA.m_xResults);
			};
			xRPCA.Send();
	};
};

function DoFriendAdd(p_sFriend,p_bGoProf)
{
	var xRPC = new PitRPC("htw.xrq","addfriend");
	xRPC.SetParam("n",p_sFriend);
	xRPC.OnSucceed=function()
	{
		if(p_bGoProf)
		{
			window.location.href="/community_viewprofile.html?"+p_sFriend;
			return;
		};
		window.location.reload();
	};
	xRPC.Send();
};

function ShowHelpTargetInfo(p_sName)
{
	var sDescInfoPath="/Helptargets/"+Name2Dir(p_sName)+"/desc.js";
		
	var xRPCb = new PitRPC(sDescInfoPath);
	xRPCb.name=this.name;
	xRPCb.OnSucceed=function()
	{	
		var xR=eval("("+xRPCb.m_sResultText+")");
		var sP="<div style='margin:10px;font-size:14px;'>"+xR.desc+"</div>";
		var xPop=new InfoPopup2(426,502,1);
		xPop.Show(sP,xR.name);
	};
	xRPCb.Send();
};

function OnClickHelpTarget(p_bShrinkIfExpanded)
{	
	var xThis=g_xHTMenu;
	if(typeof(xThis)=="undefined"){return;};
	var sT=GetHelpTarget();
	if(!sT)
	{
		if(g_xUserInfo)
		{
			sT=g_xUserInfo.ht;
		}
		else
		{
			GetUserInfo();
			return;
			//setTimeout(OnClickHelpTarget,500);
		}
	};
	
	if(!sT){return;};
	if(xThis.m_iState==1) {return;};
	
	xThis.Expand();
	
	var xRPC=new VXHR();
	xRPC.SetURL("htw.xrq");
	xRPC.SetFunction("htinfo");
	xRPC.SetParam("t", sT);
	xRPC.OnSucceed=function()
	{
		var sName=xRPC.m_xResults.name;
		var iNumPlayed=xRPC.m_xResults.nplayed;
		var iMoneyRaised=xRPC.m_xResults.mraised;
		var iMoneyGoal=xRPC.m_xResults.mgoal;
		var iTimesFilled=xRPC.m_xResults.timesfilled;
		var xTarget=$("HTinfo");
		if(xTarget) {xThis.SetBody(xTarget);return;};
		
		var xInfo = document.createElement("div");

		xTarget=document.createElement("div");
		xTarget.ID="HTinfo";
		xTarget.style.position="absolute";
		xTarget.style.top="10px";
		xTarget.style.left="10px";
		xTarget.style.width="220px";
		xTarget.style.height="200px";
		
		xTarget.innerHTML="<span style='position:absolute;'>"+GetHTNameLoc(sName)+" ("+iMoneyGoal+"€)</span>";
		var sImgUrl="gfxgen.xrq?s=helptarget_progress&t="+encodeURIComponent(sName)+"&w="+Math.round(100*(iMoneyRaised/iMoneyGoal*100))/100;
		var xImg=document.createElement("img");
		xImg.src=sImgUrl;
		xImg.width=153;
		//xImg.height=110;
		xImg.style.position="absolute";
		xImg.style.top="20px";
		xTarget.appendChild(xImg);
		
		var xInfoBtn=document.createElement("img");
		xInfoBtn.style.position="absolute";
		xInfoBtn.style.left="128px";
		xInfoBtn.style.top="155px";
		xInfoBtn.style.cursor="pointer";
		xInfoBtn.src="images/htinfo.png";
		xInfoBtn.onclick=function() 
		{
			ShowHelpTargetInfo(sName);
		};
		
		var xTextBlock = document.createElement("div");
		xTextBlock.style.position="absolute";
		xTextBlock.style.top="105px";
		var xTbl = document.createElement("table");
		var xRow = document.createElement("tr");
		var xCell =document.createElement("td");
		xTbl.appendChild(xRow);
		
		//money raised
		var xImgText = document.createElement("span");
		xImgText.innerHTML=g_L.community_mraised+":";
		xCell.appendChild(xImgText);
		xRow.appendChild(xCell);
		xCell=document.createElement("td");
		xImgText=document.createElement("span");
		xImgText.innerHTML=iMoneyRaised+"€";
		xCell.appendChild(xImgText);
		xRow.appendChild(xCell);
		xTextBlock.appendChild(xTbl);
		xTarget.appendChild(xTextBlock);
		
		//units donated
		xRow = document.createElement("tr");
		xTbl.appendChild(xRow);
		xCell=document.createElement("td");
		xRow.appendChild(xCell);
		
		xImgText = document.createElement("span");
		xImgText.innerHTML=g_L.community_uraised+":";
		xCell.appendChild(xImgText);					
		xCell=document.createElement("td");
		xImgText=document.createElement("span");
		xImgText.innerHTML=iTimesFilled;
		xCell.appendChild(xImgText);
		xRow.appendChild(xCell);
		
		//num played
		xRow = document.createElement("tr");
		xTbl.appendChild(xRow);
		xCell=document.createElement("td");
		xRow.appendChild(xCell);
		
		xImgText = document.createElement("span");
		xImgText.innerHTML=g_L.community_numplays+":";
		xCell.appendChild(xImgText);
		xCell=document.createElement("td");
		xImgText=document.createElement("span");
		xImgText.innerHTML=iNumPlayed;
		xCell.appendChild(xImgText);
		xRow.appendChild(xCell);
		
		xTextBlock.appendChild(xTbl);
		xTarget.appendChild(xTextBlock);
		xTarget.appendChild(xInfoBtn);
		
		xTextBlock.innerHTML+="<a style='color:#49590e;' href='/about_helptargets.html'>&gt;&gt;select Help Target</a>";
		xThis.SetBody(xTarget);
	};		
	xRPC.Send();		
};

var g_xChat=null;
function OnClickChat(p_bShrinkIfExpanded)
{
	var xThis=g_xCHMenu;
	if(typeof(xThis)=="undefined"){return;};
	xThis.Expand();
	
	if(xThis.m_xBody.childNodes.length<1)
	{
		g_xChat=new PitPTOCtrlChat(-2,-20,236,260,"chat");
		g_xChat.m_iWOrg=g_xChat.m_iW;
		g_xChat.m_iHOrg=g_xChat.m_iH;
		g_xChat.AddTopLevelBehaviour(false,false,false,false,false);
		g_xChat.RefreshAttributes();
		g_xChat.OpenChat("/chat.xrq","chawa");

		xThis.m_xBody.appendChild(g_xChat.MakeEl());
		g_xChat.Activate();
		
		//
		var xMax=document.createElement("div");
		xMax.innerHTML="<img style='position:absolute;left:210px;top:4px;cursor:pointer;' onclick='OnMaximizeChat();' src='/images/btn_maximize.png'>";
		xThis.m_xBody.appendChild(xMax);
	};
};

function OnMaximizeChat()
{
	g_xChat.SetSize(650,430);
	g_xChat.OnResize();

	var xPIC=g_xChat.GetEl();
	var xPop=new InfoPopup2(650,500);
	xPop.m_bScroll=false;
	xPop.OnClose=function(){
		g_xChat.SetSize(g_xChat.m_iWOrg,g_xChat.m_iHOrg);
		g_xChat.OnResize();
		var xThis=g_xCHMenu;
		xThis.m_xBody.insertBefore(xPIC,xThis.m_xBody.firstChild);
	};
	xPop.Show(xPIC,"Chat");
};

function Name2Dir(p_sName)
{
	return p_sName.replace(/\s+/g,"_").replace(/[.,'()]+/g,"")
	.replace(/ü/g,"u").replace(/ä/g,"a").replace(/ö/g,"o")
	.replace(/Ü/g,"U").replace(/Ä/g,"A").replace(/Ö/g,"O")
	.replace(/ß/g,"s")
	;
}

function DoTopLinks(p_sName,p_bActive,p_sSubPage,p_sTLs,p_sLocs)
{
	var asTL=p_sTLs.split(";");
	var asLocs=p_sLocs.split(";");
	//alert(p_sTLs);
	//var iX=96-14*asTL.length;
	var iX=26;
	var sT="<div style='position:relative;top:"+iX+"px;left:4px;width:87px;text-align:center;'>";
	var sTN=sT;
	for(var i=0;i<asTL.length;i++)
	{
		var sTL=asTL[i];
		var sLoc=asLocs[i];
		
		var sURL=p_sName+"_";
		sURL+=sTL;
		sURL=sURL.replace(" ","");
		sURL+=".html";

		if(sTL==p_sSubPage)
		{
			sT+="<image style='position:relative;top:-"+(i*2)+"px;height:17px;' src='/gfxgen.xrq?s=text_smp&m=-12&w=-4&h=-1&p1=xffffff00,,cc&p3=str,2,xff323D36,1;&t="+encodeURIComponent(sLoc)+"'><br>";
			sTN+="<image style='position:relative;top:-1px;' src='/gfxgen.xrq?s=text_smp&m=-10&w=-4&h=-1&p1=xff323d36,,cc,cb&t="+encodeURIComponent(sLoc)+"'><br>";
		}
		else
		{
			var sCol=(p_bActive!=0)?"black":"white";
			sT+="<a style='color:"+sCol+";position:relative;top:-"+(i*2)+"px;' href='"+sURL+"'>"+sLoc+"</a><br>";
		};
	};
	sT+="</div>";
	
	g_axTopLinks[p_sName]={m_bShow:false};

	var xEl=$("toplinks_"+p_sName);if(!xEl) {return;};
	xEl.innerHTML+=sTN;
	xEl.onmouseover=function(){
		TopLinkVisStart(p_sName,true);
	};
	xEl.onmouseout=function(){
		TopLinkVisStart(p_sName,false);
	};

	var xElH=$("toplinkshov_"+p_sName);if(!xElH) {return;};
	xElH.innerHTML=sT;
	xElH.onmouseout=function(){
		TopLinkVisStart(p_sName,false);
	};
};

var g_bTopLinkVisRunning=false;
var g_axTopLinks={};
function TopLinkVisStart(p_sName,p_bShow)
{
	g_axTopLinks[p_sName].m_bShow=p_bShow;
	
	if(!g_bTopLinkVisRunning)
	{
		g_bTopLinkVisRunning=true;
		setTimeout(TopLinkVisHandle,50);
	};
};
function TopLinkVisHandle()
{
	for(sName in g_axTopLinks)
	{
		var bShow=g_axTopLinks[sName].m_bShow;
		
		var xEl=$("toplinkshov_"+sName);if(!xEl) {continue;};
		var fO=xEl.style.opacity;
		fO=Number(fO);

		if(!bShow&&fO==0) {continue;}; //done
		if(bShow&&fO==1) {continue;}; //done

		var fChange=0.2;
		if(bShow) {fO+=fChange;} else {fO-=fChange;};
		if(fO<=0.001) {fO=0;xEl.style.visibility="hidden";};
		if(fO>=0.999) {fO=1;};
		if(fO>0) {xEl.style.visibility="";};
		xEl.style.opacity=fO;
	};	
	setTimeout(TopLinkVisHandle,50);
};

function ShowImprint()
{
	var xPIC=document.createElement("div");
	xPIC.innerHTML="<div style='margin:10px;' id='impd'></div>";
	xPIC.style.position="relative";
	var xPop=new InfoPopup2(600,450);
	
    var xRPC=new PitRPC("/help/imprint.html");
    xRPC.OnSucceed=function()
    {
		xPop.Show(xPIC,g_L.index_footer_imprint);
      	var xEl=$("impd");
	  	xEl.innerHTML=xRPC.m_sResultText;
    };
    xRPC.Send();
};

function ShowTOS()
{
	var xPIC=document.createElement("div");
	xPIC.innerHTML="<div style='margin:10px;overflow:auto;' id='impd'></div>";
	xPIC.style.position="relative";
	var xPop=new InfoPopup2(600,450);
	
    var xRPC=new PitRPC("/help/tos.html");
    xRPC.OnSucceed=function()
    {
		xPop.Show(xPIC,encodeURIComponent(g_L.index_footer_tos));
      	var xEl=$("impd");
	  	xEl.innerHTML=xRPC.m_sResultText;
    };
    xRPC.Send();
};

function ShowPriv()
{
	var xPIC=document.createElement("div");
	xPIC.innerHTML="<div style='margin:10px;overflow:auto;' id='impd'></div>";
	xPIC.style.position="relative";
	var xPop=new InfoPopup2(600,450);
	
    var xRPC=new PitRPC("/help/priv.html");
    xRPC.OnSucceed=function()
    {
		xPop.Show(xPIC,encodeURIComponent(g_L.index_footer_priv));
      	var xEl=$("impd");
	  	xEl.innerHTML=xRPC.m_sResultText;
    };
    xRPC.Send();
};

function ShowWhats()
{
	var xPIC=document.createElement("div");
	xPIC.innerHTML="<div style='margin:10px;overflow:auto;' id='impd'></div>";
	xPIC.style.position="relative";
	var xPop=new InfoPopup2(600,450);
	
    var xRPC=new PitRPC("/help/whats.html");
    xRPC.OnSucceed=function()
    {
		xPop.Show(xPIC,encodeURIComponent(g_L.register_whats));
      	var xEl=$("impd");
	  	xEl.innerHTML=xRPC.m_sResultText;
    };
    xRPC.Send();
};

function ShowPartner()
{
	var xPIC=document.createElement("div");
	xPIC.innerHTML="<div style='margin:10px;overflow:auto;' id='impd'></div>";
	xPIC.style.position="relative";
	var xPop=new InfoPopup2(720,350);
	xPop.m_bScroll=false;
	
    var xRPC=new PitRPC("/help/partner.html");
    xRPC.OnSucceed=function()
    {
		xPop.Show(xPIC,encodeURIComponent(g_L.register_whats));
      	var xEl=$("impd");
	  	xEl.innerHTML=xRPC.m_sResultText;
    };
    xRPC.Send();
};

var g_iLastMFHeight=0;
function ResizeMainFrame()
{
	var xMF=$("main_frame");if(!xMF) {return;};
	//xMF=xMF.parentNode;
	var iH=xMF.offsetHeight+xMF.offsetTop;
	if(xMF.parentNode) {iH+=xMF.parentNode.offsetTop;};
	
	if(g_iLastMFHeight!=iH)
	{
		g_iLastMFHeight=iH;
		//xMF.style.backgroundImage="url('/gfxgen.xrq?s=mainframe&m=0&w="+(800+32)+"&h="+iH+"')";
		
		var xF=$("footer");
		if(xF)
		{
			xF.style.top=(iH-5)+"px";
			xF.style.display="block";
		};
	};
};

		

