/*
Author Name : Abdullah Ibrahim
Author Website : http://www.dc-interactive.net

Please don't use contents from this script. I have worked late night to write these functions.
If you want your own Ajax based website, please visit http://www.dc-interactive.net
*/

function showHideReportDiv(objid)
{
	if(objid == '')
		return;
	
	var obj = $(objid);
	if(obj.visible())
	{
		new Effect.Fade(obj);
		new Effect.SlideUp(obj, {duration:0.6});
	}
	else
	{
		new Effect.SlideDown(obj, {duration:0.6});
		new Effect.Appear(obj);
	}
}

function makeGameSlider(objid, imgObj)
{
	if(objid == '')
		return;
	
	obj = $(objid);
	
	if(obj.visible())
	{
		//new Effect.BlindUp(obj, {queue:{scope:'makeGameSliderScope_'+obj, position:'end', limit: 1},duration:0.6});
		obj.hide();
		createCookie(objid+"-display", "none", '100000');
		//new Effect.Fade(obj);
		imgObj.className = "plus";
	}
	else
	{
		//new Effect.BlindDown(obj, {queue:{scope:'makeGameSliderScope_'+obj, position:'end', limit: 1},duration:0.6});
		obj.show();
		createCookie(objid+"-display", "block", '100000');
		//new Effect.Appear(obj);
		imgObj.className = "minus";
	}
}

function validateEmail(email)
{
	if (email == "")
		return false;
	else if(email.indexOf('@') < 1)
		return false;
	else if(email.indexOf('.') < 1)
		return false;
	
	return true;
}

function selectAll(id)
{
	obj = $(id);
	obj.focus();
	obj.select();
}

var FrameSourceSet = false;
function setFrameSrc(frameId, src)
{
	if(!FrameSourceSet)
	{
		document.getElementById(frameId).src = src;
		FrameSourceSet = true;
	}
}


function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}






function doAddStuff()
{
	$('addrefstuff').startWaiting('bigBlackWaiting');
	form = document.addrefstuff;
	
	new Ajax.Request("/ajax/ajaxtasks.php", {
						onSuccess : function(resp)
						{
							$('addrefstuff').stopWaiting();
							if(resp.responseText == "Yep")
							{
								document.getElementById("phase1").style.display = "none";
								document.getElementById("phase2").style.display = "block";
								canSubmitForm = true;
							}
							else
							{
								alert("Your website is not listed in our top referer list, so you can not submit contents.");
								return false;
								canSubmitForm = false;
							}
						},
						parameters : "act=checkwebsiteexist&url=" + form.website.value,
						method : 'get'
						});
	
}



function loadFavGames()
{
	
	var Wrapper = $("myFavGameListWrapper");
	Wrapper.show();
	Wrapper.startWaiting();
	
	var obj = $("myFavGameList");
	obj.innerHTML = "Loading Favorite Games.....";
	
	if(obj.visible())
	{
		toggleGrow(obj);
		Wrapper.hide();
	}
	else
	{
		obj.show();
		getFavGameResponse(obj);
	}
}

function getFavGameResponse(obj)
{
	new Ajax.Request("/ajax/favgames.php", {
						onSuccess : function(resp)
						{
							$("myFavGameListWrapper").stopWaiting();
							obj.hide();
							obj.innerHTML = "";
							Appear(obj);
							obj.innerHTML = resp.responseText;
						}
						});
}

function deleteGame(gameID)
{
	var ask = confirm('Are you sure?');
	if(ask)
	{
		if(String(gameID) == 'undefined')
			gameID = '';
			
		//$('myFavGameList').startWaiting();
		new Ajax.Request('/ajax/delcookie.php', {
						onSuccess : function(resp)
						{
							//$('myFavGameList').stopWaiting();
							if(resp.responseText == 'OK')
								getFavGameResponse($('myFavGameList'));
						},
						parameters : 'requestVia=ajax&gameId='+gameID,
						method : 'get'
						});
		
		
	}
	return false;
}

function addGameToFav(gid, objId)
{ 
	obj = $(objId);
	obj.startWaiting();
	new Ajax.Request('/ajax/addcookie.php', {
					onSuccess : function(resp)
					{
						obj.stopWaiting();
						alert(resp.responseText);
					},
					parameters : 'gid=' + gid,
					method : 'get'
					});
}








function loadEmailThisGame(gameName, gameUrl)
{
	var Wrapper = $("sharediv");
	var obj = $("sharedivChild");
	
	if(obj.visible())
		Appear(Wrapper, "sharedivChild");
	else
	{
		Wrapper.show();
		Wrapper.startWaiting();
		
		
		obj.innerHTML = "Loading .....";
		obj.show();
		
		new Ajax.Request('/ajax/emailgame.php', {
					onSuccess : function(resp)
					{
						Wrapper.stopWaiting();
						obj.hide();
						obj.innerHTML = resp.responseText;
						Appear("sharedivChild");
					},
					parameters : 'gameName='+gameName+'&gameUrl='+gameUrl,
					method : 'get'
					});
	}
}









function loadReportBroken(gameId)
{
	var Wrapper = $("reportdiv");
	var obj = $("reportdivChild");
	
	if(obj.visible())
		Appear(Wrapper, "reportdivChild");
	else
	{
		Wrapper.show();
		Wrapper.startWaiting();
		
		
		obj.innerHTML = "Loading .....";
		obj.show();
		
		new Ajax.Request('/ajax/reportgame.php', {
					onSuccess : function(resp)
					{
						Wrapper.stopWaiting();
						obj.hide();
						obj.innerHTML = resp.responseText;
						Appear("reportdivChild");
					},
					parameters : 'gid='+gameId,
					method : 'get'
					});
	}
}

function submitReport(gid)
{
	if(gid == "")
	{
		alert("Opps the game you have trying to access is not here...");
		return;
	}
	
	new Ajax.Request('/ajax/reportgame.php', {
					onSuccess : function(resp)
					{
						Appear("reportdiv", "reportdivChild");
						alert(resp.responseText);
					},
					parameters : "act=reportGame&gid=" + gid + "&imgCode=" + document.getElementById("report_verify").value,
					method : 'get'
					});
	
	return false;
}








function rateGame(gid, optionid, ip)
{
	if(gid == "")
	{
		alert("Opps the game you have trying to access is not here...");
		return;
	}
	$('rateGameWrapper').startWaiting('bigWaiting');
	new Ajax.Request('/ajax/rategame.php', {
					onSuccess : function(resp)
					{
						$('rateGameWrapper').stopWaiting();
						alert(resp.responseText);
					},
					parameters : "act=rate&gid=" + gid + "&optionid=" + optionid + "&ip=" + ip,
					method : 'get'
					});
	
	return false;
}















function shareFavGame(formObj, gameList)
{
	var senderName		= formObj.name.value;
	var senderEmail		= formObj.email.value;
	var friendName		= formObj.frndName.value;
	var friendEmail		= formObj.frndEmail.value;
	var message			= formObj.message.value;
	
	if(senderName == "" || senderEmail == "" || !validateEmail(senderEmail) || friendName == "" || friendEmail == "" || !validateEmail(friendEmail) || message == "")
	{
		alert("Please fill all fields properly, then try to submit");
		return false;
	}
	else
	{
		Form.disable(formObj);
		$('myFavGameListWrapper').startWaiting('bigBlackWaiting');
		new Ajax.Request('/ajax/sharegame.php', {
					onSuccess : function(resp)
					{
						$('myFavGameListWrapper').stopWaiting();
						Form.enable(formObj);
						Form.reset(formObj);
						alert(resp.responseText);
					},
					parameters : "sn=" + senderName + "&se=" + senderEmail + "&fn=" + friendName + "&fe=" + friendEmail + "&msg=" + message + "&gameList=" + gameList,
					method : 'get'
					});
	}
	
	return false;
}




function shareThisGame(formObj)
{
	var senderName		= formObj.name.value;
	var senderEmail		= formObj.email.value;
	var friendName		= formObj.frndName.value;
	var friendEmail		= formObj.frndEmail.value;
	var message			= formObj.message.value;
	var gameName		= formObj.gameName.value;
	var gameUrl			= formObj.gameUrl.value;
	
	if(senderName == "" || senderEmail == "" || !validateEmail(senderEmail) || friendName == "" || friendEmail == "" || !validateEmail(friendEmail) || message == "")
	{
		alert("Please fill all fields first, then try to submit");
		return false;
	}
	else
	{
		Form.disable(formObj);
		$('sharediv').startWaiting('bigBlackWaiting');
		new Ajax.Request('/ajax/emailgame.php', {
					onSuccess : function(resp)
					{
						$('sharediv').stopWaiting();
						Form.enable(formObj);
						//Form.reset(formObj);
						alert(resp.responseText);
					},
					parameters : "act=sendgame&sn=" + senderName + "&se=" + senderEmail + "&fn=" + friendName + "&fe=" + friendEmail + "&msg=" + message + "&gameName=" + gameName + "&gameUrl=" + gameUrl,
					method : 'get'
					});
	}
	
	return false;
}








/////////////////////////////////////////////// EFFECTS WRAPPERS ///////////////////////////////////////////////
function Appear(objId, callBack)
{
	var obj = $(objId);
	if(String(callBack) != 'undefined')
		doCallBack = true;
	else
		doCallBack = false;
	
	if(obj.visible())
	{
		if(doCallBack)
		{
			obj2 = $(callBack);
			new Effect.Fade(obj, {queue:{scope:'1myscope_'+obj, position:'end', limit: 1},duration:0.6,afterFinish: function(){Appear(obj2);}});
		}
		else
			new Effect.Fade(obj, {queue:{scope:'1myscope_'+obj, position:'end', limit: 1},duration:0.6});
		//new Effect.SlideUp(obj, {queue:{scope:'2myscope_'+obj, position:'end', limit: 1},duration:0.6});
	}
	else
	{
		if(doCallBack)
		{
			obj2 = $(callBack);
			new Effect.Appear(obj, {queue:{scope:'2myscope_'+obj, position:'end', limit: 1},duration:0.6,afterFinish: function(){Appear(obj2);}});
		}
		else
		{
			//new Effect.SlideDown(obj, {queue:{scope:'1myscope_'+obj, position:'end', limit: 1},duration:0.6});
			new Effect.Appear(obj, {queue:{scope:'2myscope_'+obj, position:'end', limit: 1},duration:0.6});
		}
	}
}

function toggleGrow(id)
{
	var obj = $(id);
	if(obj.visible())
		Shrink(obj);
	else
		Grow(obj);
}

function Grow(obj)
{
	new Effect.Grow(obj,{queue:{scope:'myscope_'+obj, position:'end', limit: 1},direction:"top-left"});
}

function Shrink(obj)
{
	new Effect.Shrink(obj,{queue:{scope:'myscope_'+obj, position:'end', limit: 1},direction:"top-left"});
}