function displayFlash(path, width, height)
{
	document.write('<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,22,0" WIDTH="' + width);
	document.write('" HEIGHT="' + height + '" id="FlashContent">');
	document.write('<PARAM NAME="movie" VALUE="' + path + '"><PARAM NAME="quality" VALUE="high">');
	document.write('<PARAM NAME="AllowScriptAccess" VALUE="never"><EMBED src="' + path + '"');
	document.write(' quality="high" WIDTH="' + width + '" HEIGHT="' + height + '" NAME="FlashContent"');
	document.write(' AllowScriptAccess="never" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">');
	document.write('</EMBED></OBJECT>');
}

// AJAX VARIABLES AND STUFF
var ajax = false;
var LastField = null;
ajax = createAjax();

//REGISTER POPUP
function popRegister()
{
	var obj = document.getElementById( 'signUpButton' );
	var regBox = document.getElementById( 'registerBox' );
	if ( regBox.style.visibility == 'visible' )
	{
		regBox.style.visibility = 'hidden';
		document.getElementById( 'blackOut' ).style.display = "none";
		document.getElementById( 'username' ).style.display = "none";
		document.getElementById( 'email' ).style.display = "none";
	}
	else
	{
		regBox.style.visibility = 'visible';
		document.getElementById( 'blackOut' ).style.display = "block";
		document.getElementById( 'username' ).style.display = "inline";
		document.getElementById( 'email' ).style.display = "inline";
	}
}

//HIDE THE REGISTER
function hideRegister()
{
	var regBox = document.getElementById( 'registerBox' );
	regBox.style.visibility = 'hidden';
	document.getElementById( 'blackOut' ).style.display = "none";
	document.getElementById( 'username' ).style.display = "none";
	document.getElementById( 'email' ).style.display = "none";
}

//LOGIN POPUP
function popLogin()
{
	var obj = document.getElementById( 'submitButton' );
	var loginBox = document.getElementById( 'loginBox' );
	if ( loginBox.style.visibility == 'visible' )
	{
		loginBox.style.visibility = 'hidden';
		document.getElementById( 'blackOut' ).style.display = "none";
	}
	else
	{
		loginBox.style.visibility = 'visible';
		document.getElementById( 'blackOut' ).style.display = "block";
	}
}

//HIDE THE LOGIN
function hideLogin()
{
	var loginBox = document.getElementById( 'loginBox' );
	loginBox.style.display = 'none';
	document.getElementById( 'blackOut' ).style.display = "none";
}

//CLOSE THE PRIZE BOX
function closePrize()
{
	var pid = document.getElementById( 'prizePoolId' ).value;
	document.getElementById( 'winBox' ).style.display = "none";
	document.getElementById( 'blackOut' ).style.display = "none";
	if (document.getElementById( 'game-frame' )) {
		document.getElementById( 'game-frame' ).style.display = "block";
	}
	ajax.open("GET", "../ajax/clearPrize.php?op=ajax&id="+pid);
	ajax.send(null);
}

//CLAIM PRIZE
function claimPrize()
{
	var contentType = "application/x-www-form-urlencoded; charset=UTF-8";
	var pid = document.getElementById( 'prizePoolId' ).value;
	var prize_id=document.getElementById('prizeId').value;
	var first = document.getElementById('first').value;
	var last = document.getElementById('last').value;
	var adr1 = document.getElementById('adr1').value;
	var adr2 = document.getElementById('adr2').value;
	var city = document.getElementById('city').value;
	var state = document.getElementById('state').value;
	var country = document.getElementById('country').value;
	//alert(document.getElementById('pemail'));
	var email = document.getElementById('pemail').value;
	//alert(email);
	var phone = document.getElementById('phone').value;
	document.getElementById( 'winBox' ).style.display = "none";
	document.getElementById( 'blackOut' ).style.display = "none";
	if (document.getElementById( 'game-frame' )) {
		document.getElementById( 'game-frame' ).style.display = "block";
	}
	//alert(pid);
	var params = "op="+encodeURIComponent("ajax")+"&id="+encodeURIComponent(pid)+"&prize_id="+encodeURIComponent(prize_id)+"&first="+encodeURIComponent(first)+"&last="+encodeURIComponent(last);
	params += "&adr1="+encodeURIComponent(adr1)+"&adr2="+encodeURIComponent(adr2)+"&city="+encodeURIComponent(city);
	params += "&state="+encodeURIComponent(state)+"&country="+encodeURIComponent(country)+"&email="+encodeURIComponent(email);
	params += "&phone="+encodeURIComponent(phone);
	ajax.open("POST", "../ajax/claimPrize.php");
	ajax.setRequestHeader("Content-Type", contentType);
	ajax.onreadystatechange = processPrizeClaim;
	ajax.send(params);
}
function processPrizeClaim() {
	if (ajax.readyState == 4) {
		if(ajax.responseText == 1) {
			alert("The admin will send you a message soon");
		} else {
			alert("There was an error.");
		}
	}
}


function doLogin() {
	var loginUsername = document.getElementById( 'logUsername' );
	var loginPass = document.getElementById( 'logPass' );
	var loginButton = document.getElementById( 'loginButton' );
	loginButton.value = "Logging in...";
	ajax.open("GET", "../ajax/doLogin.php?op=ajax&username=" +loginUsername.value+"&password=" + loginPass.value);
	ajax.onreadystatechange = processLogin;
	ajax.send(null);
}

//AJAX RETURN FOR LOGIN
function processLogin() {
	if (ajax.readyState == 4) {
		if (ajax.responseText == 1) {
			window.location.reload( false );
		} else {
			var loginButton = document.getElementById( 'loginButton' );
			loginButton.value = "Failed, try again";
		}
	}
}


//TAG REDIRECTS
function browse(tag) {
	window.location = "/browse/"+tag;
}

var LastField;
// CHECKING IF USERNAME ALREADY EXISTS
function checkExists(item, obj) {
	field = document.getElementById(item);
	if (field.value != "") {
		if (ajax.readyState == 0 || ajax.readyState == 4) {
			LastField = obj;
			ajax.open("GET", "/ajax/signUpCheck.php?op=ajax&field=" +field.name+"&value=" + field.value);
			ajax.onreadystatechange = processCheckExists;
			ajax.send(null);
		}
	}
	else {
		var res = document.getElementById(obj);
		res.style.visibility = "hidden";
	}
}

//AJAX RETURN FOR checkEXISTS
function processCheckExists() {
	if (ajax.readyState == 4) {
		var resu = document.getElementById(LastField);
		resu.innerHTML = ajax.responseText;
		resu.style.visibility = "visible";
	}
}

//AJAX START UP
function createAjax() {
	var ro;
	if(window.XMLHttpRequest){
		ro = new XMLHttpRequest();
	}else if (window.ActiveXObject) {
		ro = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return ro;
}


//ERROR POPUP
function showError(err) {
	var divid = document.getElementById("errPop");
	var popTop = (document.body.clientHeight - divid.offsetHeight) / 2;
	var popLeft = (document.body.clientWidth - divid.offsetWidth) / 2;
	divid.style.left=popLeft + document.body.scrollLeft;
	divid.style.top=popTop + document.body.scrollTop;
	divid.innerHTML = err+"<br><a href='javascript:closeError()'>CLOSE</a>";
	divid.style.visibility = "visible";
}

function closeError() {
	var divid = document.getElementById("errPop");
	divid.style.visibility = "hidden";
}


//GAME UPLOAD POPUP
function showUpload() {
	var obj = document.getElementById( 'submitButton' );
	var loginBox = document.getElementById( 'uploadPop' );
	if ( loginBox.style.visibility == 'visible' )
	{
		loginBox.style.visibility = 'hidden';
		document.getElementById( 'blackOut' ).style.display = "none";
	}
	else
	{
		loginBox.style.visibility = 'visible';
		document.getElementById( 'blackOut' ).style.display = "block";
	}
}

function closeUpload() {
	var divid = document.getElementById("uploadPop");
	divid.style.visibility = "hidden";
	document.getElementById( 'blackOut' ).style.display = "none";
}

//VALIDATE THE UPLOAD FORM
function validateUpload(uploadForm){
	var err;
	if (!uploadForm.game.value.match(/^.+\.swf$/)){
	//showError("Please select a valid .swf file");
	document.getElementById("gameSelect").style.backgroundColor = "red";
	err = 1;
}
else if (!uploadForm.name.value.length > 0){
	//showError("Please name your game.");
	document.getElementById("gameName").style.backgroundColor = "red";
	err = 1;
}
else if (!uploadForm.tags.value.length > 0){
	//showError("Please add some secondary tags.");
	document.getElementById("gameSecondTags").style.backgroundColor = "red";
	err = 1;
}

if (err > 0) {
	return false;
} else {
	var uploadGo = document.getElementById("uploadGo");
	uploadGo.style.display = "block";
	uploadGo.style.paddingBottom = "4000px";
	return true;
}
}


//VALIDATE THE REGISTER FORM
function validateRegForm() {
	var usr = document.getElementById("regUser").value;
	if (usr.length<3) {
		document.getElementById("regError").innerHTML = "Username must be more than 3 characters.";
		return false;
	}

	var eml = document.getElementById("regEmail").value;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (!filter.test(eml) || eml == "") {
		document.getElementById("regError").innerHTML = "Not a valid email.";
		return false;
	}

	var pwd = document.getElementById("regPwd").value;
	var cPwd = document.getElementById("regCheckPwd").value;
	if (!pwd == cPwd || !(pwd == "")) {
		document.getElementById("regError").innerHTML = "Passwords do not match.";
		return false;
	}
}





//CHANGE VIEW AND PAGING ON BROWSE PAGE
function changeView(newValue) {
	
	document.getElementById("loadingMsg").style.display = "block";
	var tId = document.getElementById("tagId").value;
	var viewType = document.getElementById("viewType").value;
	
	if (newValue < 5) {
		document.getElementById("viewType").value = newValue;
		viewType = newValue;
	} else {
		document.getElementById("numRows").value = newValue;
		numRows = newValue;
	}
	var numRows = document.getElementById("numRows").value;

	document.getElementById("pageNum").value = 1;
	document.getElementById("viewing").innerText = "1 to "+numRows;
	ajax.open("GET", "../ajax/changeView.php?op=ajax&numRows=" +numRows+"&tId=" + tId+"&page=" + 1+"&type=" + viewType);
	ajax.onreadystatechange = processChange;
	ajax.send(null);
}

//GET THE NEXT PAGE OF RESULTS
function nextPage() {
	document.getElementById("loadingMsg").style.display = "block";
	var type=document.getElementById("viewType").value;
	var tId = document.getElementById("tagId").value;
	var pageNum = parseInt(document.getElementById("pageNum").value) + 1;
	var numRows = document.getElementById("numRows").value;
	document.getElementById("pageNum").value = pageNum;
	//document.getElementById('rowContainer').innerHTML = "";
	document.getElementById("viewing").innerText = ((pageNum-1)*(numRows))+" to "+(numRows*pageNum);
	//alert("numRows=" +numRows+"&tId=" + tId+"&page=" + pageNum);
	ajax.open("GET", "../ajax/changeView.php?op=ajax&numRows=" +numRows+"&tId=" + tId+"&page=" + pageNum+"&type="+type);
	ajax.onreadystatechange = processChange;
	ajax.send(null);
}
//PREVIOUS PAGE
function prePage() {
	document.getElementById("loadingMsg").style.display = "block";
	var tId = document.getElementById("tagId").value;
	var pageNum = parseInt(document.getElementById("pageNum").value) - 1;
	var calcPage = (pageNum-1)*(numRows);
	var type=document.getElementById("viewType").value;
	if (pageNum < 2) {
		pageNum = 1;
		calcPage = 1;
	}
	var numRows = document.getElementById("numRows").value;
	// document.getElementById('rowContainer').innerHTML = "";
	document.getElementById("viewing").innerText = calcPage+" to "+(numRows*pageNum);
	document.getElementById("pageNum").value = pageNum;
	ajax.open("GET", "../ajax/changeView.php?op=ajax&numRows=" +numRows+"&tId=" + tId+"&page=" + pageNum+"&type="+type);
	ajax.onreadystatechange = processChange;
	ajax.send(null);
}

//AJAX RETURN FOR BROWSE PAGE
function processChange() {
	if (ajax.readyState == 4) {
		var res = document.getElementById('rowContainer');
		res.innerHTML = ajax.responseText;
		document.getElementById("loadingMsg").style.display = "none";
	}
}





//CHANGE VIEW ON FRONT PAGE
function changeFrontPageView(type) {
	var viewType = document.getElementById("viewType").value;
	var numRows = document.getElementById("numRows").value;
	var viewSpan = document.getElementById("viewSpan").value;

	if (type == 1 || type == 2 || type == 3) { //SIDE MENU
	document.getElementById("_a_img1").src="images/but_new.gif";
	document.getElementById("_a_img2").src="images/but_pop.gif";
	document.getElementById("_a_img3").src="images/but_high.gif";
	switch(type) {
		case 1:
		document.getElementById("_a_img1").src="images/but_new_on.gif";
		break;
		case 2: 
		document.getElementById("_a_img2").src="images/but_pop_on.gif";
		break;
		case 3: 
		document.getElementById("_a_img3").src="images/but_high_on.gif";
		break;
	}
	document.getElementById("viewType").value = type;
	viewType = type;
	} else if (type == 5 || type == 10 || type == 15) { //ROWS
	numRows = type;
	document.getElementById("numRows").value = type;
	} else if (type == 0 || type == 7 || type == 30) { //DAYS
	document.getElementById("viewSpan").value = type;
	viewSpan = type;
	}

	document.getElementById("loadingMsg").style.display = "block";
	ajax.open("GET", "../ajax/changeView.php?op=ajax&numRows=" +numRows+"&type=" + viewType + "&span=" + viewSpan + "&front=true");
	ajax.onreadystatechange = processFrontPageChange;
	ajax.send(null);
}

//AJAX RETURN FOR FRONT PAGE
function processFrontPageChange() {
	if (ajax.readyState == 4) {
		var res = document.getElementById('gameBrowser');
		res.innerHTML = ajax.responseText;
		document.getElementById("loadingMsg").style.display = "none";
	}
}




//GAME PLAY TIMER
var timerID = null;
var secs = 0;

function startTimer()
{
	document.getElementById('gameTime').value = secs;
	secs = secs + 1;
	setTimeout("startTimer()", 1000);
}

function saveTime() {
	var gameTime = document.getElementById('gameTime').value;
	ajax.open("GET", "../ajax/saveTime.php?op=ajax&time="+gameTime);
	ajax.send(null);
}


var info = 0;

//SHOW INFO BOX
function showInfo(gid) {
	if (ajax.readyState == 4 || ajax.readyState == 0) {
		info = 1;
		document.getElementById('infobox').style.display = "block";
		document.getElementById('prizeBox').style.display = "none";
		ajax.open("GET", "../ajax/getGameInfo.php?op=ajax&gid="+gid);
		ajax.onreadystatechange = processInfo;
		ajax.send(null);
	}
}

//KEEP INFO SHOWING
function keepInfo() {
	if (info == 1) {
		document.getElementById('infobox').style.display = "block";
		document.getElementById('prizeBox').style.display = "none";
	}
}

//AJAX RETURN FOR INFO BOX
function processInfo() {
	if (ajax.readyState == 4) {
		var res = document.getElementById('infobox');
		res.innerHTML = ajax.responseText;
	}
}

//HIDE INFO BOX
function hideInfo() {

	document.getElementById('infobox').style.display = "none";
	document.getElementById('prizeBox').style.display = "block";
}




//UPDATE GAME INFO RATING
function updateGameInfo(id, num) {
	if (ajax.readyState == 4 || ajax.readyState == 0) {
		ajax.open("GET", "../ajax/updateGameInfo.php?op=ajax&id="+id+"&num="+num);
		ajax.send(null);
		alert(id+"-"+num);
	}
}


//RATING FOR WHITE BACKGROUND
function changeRate(num) {
	clearWhiteRate();
	document.getElementById('whiteRate1').src = "../images/rateOnWhite.gif";
	if (num > 1) {document.getElementById('whiteRate2').src = "../images/rateOnWhite.gif";}
	if (num > 2) {document.getElementById('whiteRate3').src = "../images/rateOnWhite.gif";}
	if (num > 3) {document.getElementById('whiteRate4').src = "../images/rateOnWhite.gif";}
	if (num > 4) {document.getElementById('whiteRate5').src = "../images/rateOnWhite.gif";}
}

function clearWhiteRate() {
	document.getElementById('whiteRate1').src = "../images/rateOffWhite.gif";
	document.getElementById('whiteRate2').src = "../images/rateOffWhite.gif";
	document.getElementById('whiteRate3').src = "../images/rateOffWhite.gif";
	document.getElementById('whiteRate4').src = "../images/rateOffWhite.gif";
	document.getElementById('whiteRate5').src = "../images/rateOffWhite.gif";
}


function refreshRate() {
	document.getElementById('starRating').innerHTML = document.getElementById('starRatingHidden').innerHTML;
}

//SAVE RATING
function rateGame(num) {
	gid = document.getElementById('gameId').value;
	ajax.open("GET", "../ajax/rateGame.php?gid="+gid+"&num="+num);
	ajax.onreadystatechange = refreshRate;
	ajax.send(null);
}


//MESSAGE USER
function messageUser() {
	document.getElementById('messageUser').style.display = "block";
	document.getElementById('up-info').style.display = "none";
}

//VIEW PROFILE
function viewProfile() {
	document.getElementById('messageUser').style.display = "none";
	document.getElementById('up-info').style.display = "block";
}

//EDIT INFO
function showEditInfo() {
	document.getElementById('editInfo').style.display = "block";
}

//CANCEL EDIT INFO
function cancelEditInfo() {
	document.getElementById('editInfo').style.display = "none";
}

//SAVE EDIT INFO
function saveEditInfo() {
	var contentType = "application/x-www-form-urlencoded; charset=UTF-8";
	var email = document.getElementById('editInfoEmail').value;
	var password = document.getElementById('editPassword').value;
	//alert("email:"+email+"|Password:"+password);
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (!filter.test(email) || email == "") {
		document.getElementById('editInfoErr').innerHTML = "Not a valid email.";
	} else {
		var params = "email="+email;
		if (password != "") {
			params += "&password="+password;
		}
		//alert(params);
		ajax.open("POST","../ajax/editUserInfo.php");
		ajax.setRequestHeader("Content-Type", contentType);
		//ajax.onreadystatechange = processAdiCustom;
		ajax.send(params);
		document.getElementById('editInfo').style.display = "none";
		document.getElementById('editInfoErr').innerHTML = "";
	}
}

function processAdiCustom() {
	if (ajax.readyState == 4) {
		alert(ajax.responseText);
	}
}

//GAME INFO ACTIONS ON PLAY GAME PAGE
function showAction() {
	var actionSelect = document.getElementById('actionSelect');
	selection = actionSelect.options[actionSelect.selectedIndex].value;
	document.getElementById('subHtp').style.display = "none";
	document.getElementById('subTip').style.display = "none";
	document.getElementById('reportGame').style.display = "none";
	document.getElementById(selection).style.display = "block";
}

var action;
//SUBMIT GAME INFO
function doAction(type) {
	action = type;
	gid = document.getElementById('gameId').value;
	if (type == 0) {
		text = document.getElementById('htp').value;
	} else if (type == 1) {
		text = document.getElementById('tipInput').value;
	} else if (type == 3) {
		text = document.getElementById('report').value;
	}
	ajax.open("GET", "../ajax/doAction.php?type="+type+"&text="+text+"&gid="+gid);
	ajax.onreadystatechange = processAction;
	ajax.send(null);
}

//AJAX RETURN FOR SUBMIT GAME INFO
function processAction() {
	if (ajax.readyState == 4) {
		if (action == 0) {
			document.getElementById('subHtp').innerHTML = "Your how to play was submitted, thank you.";
		} else if (action == 1) {
			document.getElementById('subTip').innerHTML = "Your tip was submitted, thank you.";
		} else if (action == 3) {
			document.getElementById('reportGame').innerHTML = "This game has been reported.";
		}
	}
}


//EXPAND AND COLLAPSE HTP and TIPS
function expand(img, obj) {
	if (document.getElementById(obj).style.display == "block") {
		document.getElementById(obj).style.display = "none";
		img.src = "../images/expand.gif";
	} else {
		document.getElementById(obj).style.display = "block";
		img.src = "../images/collapse.gif";
	}
}



//ADD TO FAVORITES
function addToFavorites() {
	var gid = document.getElementById('gameId').value;
	ajax.open("GET", "../ajax/addFavorite.php?gid="+gid);
	ajax.onreadystatechange = processFavorite;
	ajax.send(null);
}

//AJAX RETURN FOR ADD TO FAVORITES
function processFavorite() {
	if (ajax.readyState == 4) {
		document.getElementById('favImgDiv').innerHTML = "<img src='../images/fav.gif' alt='In Favorites'/>";
	}
}


//SWITCH GAME LIST
function switchGameList(type) {
	document.getElementById('related').style.display = "none";
	document.getElementById('newest').style.display = "none";
	document.getElementById('popular').style.display = "none";
	document.getElementById('relatedImg').src = "/images/but_g_rel.gif";
	document.getElementById('newestImg').src = "/images/but_g_new.gif";
	document.getElementById('popularImg').src = "/images/but_g_pop.gif";
	if (type == 1) {
		document.getElementById('related').style.display = "block";
		document.getElementById('relatedImg').src = "/images/but_g_rel_on.gif";
	} else if (type == 2) {
		document.getElementById('newest').style.display = "block";
		document.getElementById('newestImg').src = "/images/but_g_new_on.gif";
	} else if (type == 3) {
		document.getElementById('popular').style.display = "block";
		document.getElementById('popularImg').src = "/images/but_g_pop_on.gif";
	}

}

//ADVANCED SEARCH POPUP
function showAdvancedSearch() {
	//var obj = document.getElementById( 'submitButton' );
	var advancedSearchBox = document.getElementById( 'advancedSearchBox' );
	if ( advancedSearchBox.style.visibility == 'visible' )
	{
		advancedSearchBox.style.visibility = 'hidden';
		document.getElementById( 'blackOut' ).style.display = "none";
	}
	else
	{
		advancedSearchBox.style.visibility = 'visible';
		document.getElementById( 'blackOut' ).style.display = "block";
	}
}

function closeAdvancedSearch() {
	var divid = document.getElementById("advancedSearchBox");
	divid.style.visibility = "hidden";
	document.getElementById( 'blackOut' ).style.display = "none";
}
