/*JS functions for Casino Module*/

/* Hide/Show Loading...*/
function doCasinoLoading(sNoJavaText){
	//alert(support(document.applets[0].isActive()));
	g_oCasinoGameLoading = getElm('casinoGameLoading');
	g_oCasinoGame	= getElm('casinoGame');
	var isActiveSupported = (navigator.userAgent.indexOf('Gecko')>-1) ? false : true; //only supported for ie and opera
	
	if(isActiveSupported == false && g_bJavaEnabled == true){
		casinoTimerLoading();
	}
	else if(!g_bJavaEnabled){
		g_bIsLoaded = true;
		casinoSetLoadingText(sNoJavaText,"errorBoxSmall");
		casinoHideGame();
	}
	else{
		casinoLoadApplet();
	}
}
/*Recrusive loader to check when the applet is loaded*/
function casinoLoadApplet() {
	if (document.applets) {
		if(document.applets[0]){
			if (document.applets[0].isActive())
			{
				casinoSetReady();
			}
			else{
				setTimeout('casinoLoadApplet()',500);
			}
		}
		else{
			g_bIsLoaded = true;
			casinoSetLoadingText(g_sNoJavaInstalled,"errorBoxSmall");
			casinoHideGame();
		}
	}
}
/*Counter the loading with dots*/
function casinoShowLoading(){
	if(g_bIsLoaded == false){
		getElm('casinoGameLoading').style.display = "block";
		getElm('casinoGameLoading').innerHTML = getElm('casinoGameLoading').innerHTML + ".";
		setTimeout('casinoShowLoading()',1000);
	}
}
/*Set a text in the loading area with specific box design*/
function casinoSetLoadingText(sText,sType){
	var sCssClass = (sType == "undefined") ? "successBoxSmall" : sType;
	g_oCasinoGameLoading.className = sCssClass;
	g_oCasinoGameLoading.innerHTML = sText;
}
function casinoSetReady(){
	g_oCasinoGameLoading.style.display = "none";
	g_oCasinoGame.style.display = "block";
	g_bIsLoaded = true;
}
function casinoTimerLoading(){
	if(g_iLoaderCounter <= g_iLoading){
		g_iLoaderCounter += 1;
		setTimeout('casinoTimerLoading()',500);
		g_oCasinoGame.style.display = "none";
	}else{
		casinoSetReady();
	}
	
}

function casinoHideGame(){
	g_oCasinoGameLoading.style.display = "block";
	g_oCasinoGame.style.display = "none";
}

function ForfeitBonus(requestText){
	var aInput = document.getElementsByName("cashin:Game");
	var found = false;
	for(var i=0;i<aInput.length;i++)
	{
		if(aInput[i].value == "Casino" && aInput[i].checked == true)
		{
			if(document.getElementById("cashin:CasinoForfeitBonus").checked == true)
			{
				ans = confirm(requestText);
				if(ans == true)
					document.getElementById("cashin:CasinoForfeitBonus").checked = true;
				else
					document.getElementById("cashin:CasinoForfeitBonus").checked = false;
				found = true;
			}
		}
	}
	if(!found)
		{
			document.getElementById("cashin:CasinoForfeitBonus").checked = false;
		}
}

var systemTime = new Date();
var clockDiff  = new Date();
var ldTimerId = 0;

function SetTimeCasino(servertime)
{
	var time = servertime.split(',');
	systemTime.setFullYear(time[0],time[1]-1,time[2]);
	systemTime.setHours(time[3],time[4],time[5],time[6]);
	var tLocalDate = new Date();			
	clockDiff.setTime(tLocalDate.getTime() - systemTime.getTime());
}

function CMS_TimeCountdown(librarykey,ObjectcountdownItem,year, month, day, hour, minute, second ,format)
{	
	var countdownItem	=	document.getElementById(ObjectcountdownItem); 	

	var tLocalDate = new Date();
	//Diff the 
	systemTime.setTime(tLocalDate.getTime() - clockDiff.getTime()); 
	//Convert both today's date and the target date into miliseconds.                           
	
	Todays_Date = (new Date(systemTime.getFullYear(),systemTime.getMonth(), systemTime.getDate(), 
							systemTime.getHours(), systemTime.getMinutes(), systemTime.getSeconds())).getTime();                                 

	
	Target_Date = (new Date(year, month - 1, day, hour, minute, second)).getTime();                  
	var flag = false;
	//Find their difference, and convert that into seconds.                  
	Time_Left = Math.round((Target_Date - Todays_Date) / 1000);

	if(Time_Left < 0)
		Time_Left = 0;					
	        		
	switch(format)
	{
	case 0:
			//The simplest way to display the time left.
			//countdownItem.innerHTML = Time_Left + ' seconds';
			countdownItem.innerHTML = countdownItem.innerHTML;
			break;
	case 1:	
		
			//More datailed.
			days = Math.floor(Time_Left / (60 * 60 * 24));
			
			Time_Left %= (60 * 60 * 24);
			hours = Math.floor(Time_Left / (60 * 60));
			Time_Left %= (60 * 60);
			minutes = Math.floor(Time_Left / 60);
			Time_Left %= 60;
			seconds = Time_Left;			
	        
			dps = 's'; hps = 's'; mps = 's'; sps = 's';
			//ps is short for plural suffix.
			if(days == 1) dps ='';
			if(hours == 1) hps ='';
			if(minutes == 1) mps ='';
			if(seconds == 1) sps ='';
			
			//Set 0 two the interface variables when they are lower then 10.
			if(hours < 10){		hours = '0'+hours;		}
			if(minutes < 10){	minutes = '0'+minutes ;			}
			if(seconds < 10){	seconds = '0'+seconds;			}
			
			var text =librarykey+ ' '+hours + ':';
			text += minutes + ':';
			text += seconds;
			
			//The last 20 seconds we swift the class of the div to highlight it
			if(hours == 0 && minutes == 0 && seconds < 30)
			{	
				if( 'casinoTurneyTimeLeftEndHighlight' != countdownItem.className){
					countdownItem.className = 'casinoTurneyTimeLeftEndHighlight';//Set new class the last 20 seconds
				}
			}
			else
			{
				if('casinoTurneyTimeLeft' != countdownItem.className){
					countdownItem.className = 'casinoTurneyTimeLeft';//Set default class
				}
			}			
			countdownItem.innerHTML = text;  
			
			break;
	default: 
			countdownItem.innerHTML = countdownItem.innerHTML;
	}
	            
	//Recursive call, keeps the clock ticking.
	clearTimeout(ldTimerId);
	ldTimerId = setTimeout('CMS_TimeCountdown(\''+librarykey+'\',\''+ObjectcountdownItem+'\',' + year + ',' + month + ',' + day + ',' + hour + ',' + minute + ',' + second + ',' + format + ');', 1000);
}



setLeaderBoard = function( transport )
{
	var rObj = transport.responseJSON;
	
	if(document.getElementById("ldbRef")){
		document.getElementById("ldbRef").innerHTML = rObj.Info.Name;}
	
	if (rObj.Info.Status=='0')
	{
		document.getElementById("ldbStatus0").style.display = '';
		document.getElementById("ldbStatus1").style.display = 'none';
		document.getElementById("ldbStatus2").style.display = 'none';
		for(i = 0; i < 10 ;i++)
		{
			document.getElementById("ldbPos" + (i+1)).style.display = 'none';
			document.getElementById("ldbPosUser").style.display = 'none';	
		}
	}
	else
	{
		if (rObj.Info.Status=='2')
		{
			document.getElementById("ldbStatus0").style.display = 'none';
			document.getElementById("ldbStatus1").style.display = 'none';
			document.getElementById("ldbStatus2").style.display = '';
		}
		else
		{
			document.getElementById("ldbStatus0").style.display = 'none';
			document.getElementById("ldbStatus1").style.display = '';
			document.getElementById("ldbStatus2").style.display = 'none';
		}
			
		if (rObj.Results!=null)
		{
			var i = 0;
			while (i<rObj.Results.length && i < maxRows && i < 10)
			{
				document.getElementById("ldbPos" + (i+1)).style.display = '';				
				
				document.getElementById("ldbPos" + (i+1) + "Pos").innerHTML = rObj.Results[i].Place + ".";
				document.getElementById("ldbPos" + (i+1) + "User").innerHTML = rObj.Results[i].User;
				document.getElementById("ldbPos" + (i+1) + "Rounds").innerHTML = "(" + rObj.Results[i].Rounds + ")";
				document.getElementById("ldbPos" + (i+1) + "Score").innerHTML = rObj.Results[i].Score;
				
				//Set style
				if (rObj.Results[i].User==rObj.Info.CurrentUser)
				{
					if (rObj.Results[i].Qualified=='1')
					{
						document.getElementById("ldbPos" + (i+1) + "Pos").className = "currentUserMetTourneyReqInLeaderBoard";
						document.getElementById("ldbPos" + (i+1) + "User").className = "currentUserMetTourneyReqInLeaderBoard";
						document.getElementById("ldbPos" + (i+1) + "Rounds").className = "currentUserMetTourneyReqInLeaderBoard";
						document.getElementById("ldbPos" + (i+1) + "Score").className = "currentUserMetTourneyReqInLeaderBoard";
					}
					else
					{
						document.getElementById("ldbPos" + (i+1) + "Pos").className = "currentUserNotMetTourneyReqInLeaderBoard";
						document.getElementById("ldbPos" + (i+1) + "User").className = "currentUserNotMetTourneyReqInLeaderBoard";
						document.getElementById("ldbPos" + (i+1) + "Rounds").className = "currentUserNotMetTourneyReqInLeaderBoard";
						document.getElementById("ldbPos" + (i+1) + "Score").className = "currentUserNotMetTourneyReqInLeaderBoard";
					}							
				}
				else
				{
					if (rObj.Results[i].Qualified=='1')
					{
						document.getElementById("ldbPos" + (i+1) + "Pos").className = "metTourneyReqInLeaderBoard";
						document.getElementById("ldbPos" + (i+1) + "User").className = "metTourneyReqInLeaderBoard";
						document.getElementById("ldbPos" + (i+1) + "Rounds").className = "metTourneyReqInLeaderBoard";
						document.getElementById("ldbPos" + (i+1) + "Score").className = "metTourneyReqInLeaderBoard";
					}
					else
					{
						document.getElementById("ldbPos" + (i+1) + "Pos").className = "notMetTourneyReqInLeaderBoard";
						document.getElementById("ldbPos" + (i+1) + "User").className = "notMetTourneyReqInLeaderBoard";
						document.getElementById("ldbPos" + (i+1) + "Rounds").className = "notMetTourneyReqInLeaderBoard";
						document.getElementById("ldbPos" + (i+1) + "Score").className = "notMetTourneyReqInLeaderBoard";
					}	
				}
																	
				i++;
			}
			while (i < 10)
			{
				
				document.getElementById("ldbPos" + (i+1)).style.display = 'none';
				document.getElementById("ldbPos" + (i+1) + "Pos").innerHTML = "";
				document.getElementById("ldbPos" + (i+1) + "User").innerHTML = "";
				document.getElementById("ldbPos" + (i+1) + "Rounds").innerHTML = "";
				document.getElementById("ldbPos" + (i+1) + "Score").innerHTML = "";
				i++;
			}																								
		}
		
		if (rObj.UserResult!=null && rObj.UserResult[0].Place > maxRows)
		{
			document.getElementById("ldbPosUserPos").innerHTML = rObj.UserResult[0].Place + ".";
			document.getElementById("ldbPosUserUser").innerHTML = rObj.UserResult[0].User;
			document.getElementById("ldbPosUserRounds").innerHTML = "(" + rObj.UserResult[0].Rounds + ")";
			document.getElementById("ldbPosUserScore").innerHTML = rObj.UserResult[0].Score;
			document.getElementById("ldbPosUser").style.display = '';
			
			if (rObj.UserResult[0].Qualified=='1')
			{
				document.getElementById("ldbPosUserPos").className = "currentUserMetTourneyReqInLeaderBoard";
				document.getElementById("ldbPosUserUser").className = "currentUserMetTourneyReqInLeaderBoard";
				document.getElementById("ldbPosUserRounds").className = "currentUserMetTourneyReqInLeaderBoard";
				document.getElementById("ldbPosUserScore").className = "currentUserMetTourneyReqInLeaderBoard";
			}
			else
			{
				document.getElementById("ldbPosUserPos").className = "currentUserNotMetTourneyReqInLeaderBoard";
				document.getElementById("ldbPosUserUser").className = "currentUserNotMetTourneyReqInLeaderBoard";
				document.getElementById("ldbPosUserRounds").className = "currentUserNotMetTourneyReqInLeaderBoard";
				document.getElementById("ldbPosUserScore").className = "currentUserNotMetTourneyReqInLeaderBoard";							
			}		
		}
		else
		{
			//Remove
			document.getElementById("ldbPosUser").style.display = 'none';
			document.getElementById("ldbPosUserPos").innerHTML = "";
			document.getElementById("ldbPosUserUser").innerHTML = "";
			document.getElementById("ldbPosUserRounds").innerHTML = "";
			document.getElementById("ldbPosUserScore").innerHTML = "";
		}
	}				

	if (rObj.Info.Status=="1")
	{
		document.getElementById("ldbMinRounds").innerHTML = MinRoundsText.replace("{0}", rObj.Info.MinRounds);
		document.getElementById("ldbUpdate").innerHTML = RefreshTime.replace("{0}", rObj.Info.UpdateTime);
		setTimeout("AJAX_GetLeaderBoard()", rObj.Info.UpdateTime*1000);
		SetTimeCasino(rObj.EndDate.servertime);
		CMS_TimeCountdown(librarykeyTimeLeft,"ldbTimeLeft",rObj.EndDate.year, rObj.EndDate.month, rObj.EndDate.day, rObj.EndDate.hour, rObj.EndDate.minute, rObj.EndDate.second ,1)
	}
	
	document.getElementById("divAjaxTable").style.display = '';
}
function ChangeRatioFullscreen() {
    var paramWidth = 0;
    var paramHeight = 100; //Set the Taskbar
    var docWidth = document.documentElement.clientWidth;
    var docHeight = document.documentElement.clientHeight;
    docWidth = docWidth - paramWidth;
    docHeight = docHeight - paramHeight;
    var docXRatio = docWidth / 1024
    var docYRatio = docHeight / 768
    var newWidth = docWidth;
    var newHeight = docHeight;

    if (docYRatio < docXRatio) { newWidth = Math.round(1024 * (docYRatio)); }
    if (docYRatio > docXRatio) { newHeight = Math.round(768 * (docXRatio)); }
    if (document.all || document.getElementById) {
        if (document.all) {
            document.getElementById("casinoGame").style.width = newWidth;
            document.getElementById("casinoGame").style.height = newHeight;
            document.getElementById("divFullScreenPositionWrapper").style.width = newWidth;
        }
        else {
            document.getElementById("casinoGame").style.width = newWidth + 'px';
            document.getElementById("casinoGame").style.height = newHeight + 'px';
            document.getElementById("divFullScreenPositionWrapper").style.width = newWidth + 'px';
        }
    } else {
        document.layers[casinoGame].width = newWidth;
        document.layers[casinoGame].height = newHeight;
        document.layers[divFullScreenPositionWrapper].width = newWidth;
    }
}