//** Custom code for this page

var loginPanelEffect;
var uploadPanelEffect;
var signupPanelEffect;

//uploadPanelEffect = new fx.Height('uploadPanel', {duration: 1500});
//loginPanelEffect = new fx.Height('loginPanel', {duration: 1500});
//signupPanelEffect = new fx.Height('signupPanel', {duration: 1500});

//////////////////

/**
 * This function checks whether the user is already logged in. If
 * the result XML will be in the form:
 *   <result>
 *     <login>[REJECTED | DIRECT_ACCESS | OK]</login>
 *   </result>
 */
function myCheckLogin(request) {

	uploadPanelEffect = new fx.Height('uploadPanel', {duration: 1500});
	loginPanelEffect = new fx.Height('loginPanel', {duration: 1500});
	signupPanelEffect = new fx.Height('signupPanel', {duration: 1500});

	//uploadPanelEffect.hide();

	if ( (typeof (request.responseXML) == undefined) || (request.responseXML == undefined) ) {
		document.getElementById('uploadPanel').style.display = 'none';
		document.getElementById('signupPanel').style.display = 'none';
		uploadPanelEffect.hide();
		signupPanelEffect.hide();
	} else {

		var respRoot = request.responseXML.documentElement;

		if ( ( respRoot != undefined ) && ( respRoot.nodeName == "result") ) {
			var login = respRoot.getElementsByTagName("user").item(0);

			if (login.childNodes[0].nodeValue != null) {
				//alert("there is a valid session");
				
				document.getElementById('signupPanel').style.display = 'none';
				document.getElementById('loginPanel').style.display = 'none';
				document.getElementById('uploadPanel').style.display = 'block';
				
				//loginPanelEffect.hide();
				//signupPanelEffect.hide();
				
				document.uploadFile.username.value = login.childNodes[0].nodeValue;
			} else {
				//document.getElementById('uploadPanel').style.display = 'none';
				//document.getElementById('signupPanel').style.display = 'none';
				uploadPanelEffect.hide();
				signupPanelEffect.hide();

			}
		} else {
			//document.getElementById('uploadPanel').style.display = 'none';
			//document.getElementById('signupPanel').style.display = 'none';
			uploadPanelEffect.hide();
			signupPanelEffect.hide();
		}
	}
}

//////////////

function printChildNodeNames(element) {

	var buffer = "Child Names: ";

	for (var i=0; i < element.childNodes.length; i++) {
		buffer += element.childNodes[i].nodeName + ",";
	}

	alert (buffer);

}

//////////////////

/**
 * This function checks whether the user is already logged in. If
 * the result XML will be in the form:
 *   <result>
 *     <login>[REJECTED | DIRECT_ACCESS | OK]</login>
 *   </result>
 */
function mySignupUser(request) {

//clear error messages
document.getElementById("invalidpassword").innerHTML = "";
document.getElementById("invalidbirthdate").innerHTML = "";
document.getElementById("invalidemail").innerHTML = "";
document.getElementById("invalidname").innerHTML = "";
document.getElementById("invalidgender").innerHTML = "";
document.getElementById("invalidconnection").innerHTML = "";
document.getElementById("tryagain").innerHTML = "";
document.getElementById("emailinuse").innerHTML = "";

if ( (typeof (request.responseXML) == undefined) || (request.responseXML == undefined) ) {
		
	//do nothing
	} else {
		
		var respRoot = request.responseXML.documentElement;


		var opresult = respRoot.getElementsByTagName("opresult").item(0);

				if ( opresult.childNodes[0].nodeValue == "OK" ) {
					//document.getElementById("createsuccess").innerHTML = "Congratulations. Your Sega City Account has been created. An email has been sent to you.";

					document.getElementById('loginPanel').style.display = 'none';
					//document.getElementById('signupPanel').style.display = 'none';
					document.getElementById('uploadPanel').style.display = 'block';


					//loginPanelEffect.hide();
					document.uploadFile.username.value = (document.getElementById("signupID")).value;
					
					uploadPanelEffect.toggle('232');
					signupPanelEffect.toggle('232');


				} else {
				var errors = respRoot.getElementsByTagName("errors").item(0);

					for (var i=0; i<errors.childNodes.length; i++ ) {

						if ( errors.childNodes[i].firstChild.nodeValue == "INVALID_PASSWORD" ) {
							document.getElementById("invalidpassword").innerHTML = localize["INVALID_PASSWORD"];
							document.getElementById("invalidpassword").style.display = 'block';
						}
						if ( errors.childNodes[i].firstChild.nodeValue == "INVALID_BIRTHDATE" ) {
							document.getElementById("invalidbirthdate").innerHTML = localize["INVALID_DOB"];
							document.getElementById("invalidbirthdate").style.display = 'block';
						}
						if ( errors.childNodes[i].firstChild.nodeValue == "INVALID_EMAIL" ) {
							document.getElementById("invalidemail").innerHTML = localize["INVALID_EMAIL_ADDRESS"];
							document.getElementById("invalidemail").style.display = 'block';
						}
						if ( errors.childNodes[i].firstChild.nodeValue == "INVALID_NAME" ) {
							document.getElementById("invalidname").innerHTML = localize["ENTER_NAME"];
							document.getElementById("invalidname").style.display = 'block';
						}
						if ( errors.childNodes[i].firstChild.nodeValue == "INVALID_GENDER" ) {
							document.getElementById("invalidgender").innerHTML = localize["INVALID_GENDER"];
							document.getElementById("invalidgender").style.display = 'block';
						}
						if ( errors.childNodes[i].firstChild.nodeValue == "INVALID_CONNECTION" ) {
							document.getElementById("invalidconnection").innerHTML = localize["INVALID_CONNECTION"];
							document.getElementById("invalidconnection").style.display = 'block';
						}
						if ( errors.childNodes[i].firstChild.nodeValue == "TRY_AGAIN" ) {
							document.getElementById("tryagain").innerHTML = localize["TRY_AGAIN"];
							document.getElementById("tryagain").style.display = 'block';
						}
						if ( errors.childNodes[i].firstChild.nodeValue == "EMAIL_IN_USE" ) {
							document.getElementById("emailinuse").innerHTML = localize["EMAIL_IN_USE"];
							document.getElementById("emailinuse").style.display = 'block';
						}
						
						document.getElementById("signupbtn").disabled=false;

					}
				}

	}
}

function signupSegaCity() {

	uploadPanelEffect = new fx.Height('uploadPanel', {duration: 1500});
	loginPanelEffect = new fx.Height('loginPanel', {duration: 1500});
	signupPanelEffect = new fx.Height('signupPanel', {duration: 1500});

	//document.getElementById('uploadPanel').style.display = 'none';
	//document.getElementById('loginPanel').style.display = 'none';
	document.getElementById('signupPanel').style.display = 'block';
	
	//uploadPanelEffect.hide();
	//loginPanelEffect.hide();
	//signupPanelEffect,show();
	
	loginPanelEffect.toggle('232');
	//uploadPanelEffect.toggle();
	
	signupPanelEffect.toggle();


}


/**
 * This function ascertains the outcome of the request to the login servlet. If
 * the result XML will be in the form:
 *   <result>
 *     <login>[REJECTED | DIRECT_ACCESS | OK]</login>
 *   </result>
 */
function myFunction(request) {

	uploadPanelEffect = new fx.Height('uploadPanel', {duration: 1500});
	loginPanelEffect = new fx.Height('loginPanel', {duration: 1500});
	signupPanelEffect = new fx.Height('signupPanel', {duration: 1500});

	var respRoot = request.responseXML.documentElement;

	if (respRoot.nodeName == "result") {
		var login = respRoot.getElementsByTagName("login").item(0);

		if (login.childNodes[0].nodeValue == "OK") {
		
		
		//document.getElementById('loginPanel').style.display = 'none';
			//document.getElementById('signupPanel').style.display = 'none';
			document.getElementById('uploadPanel').style.display = 'block';
			
			loginPanelEffect.toggle('232');
			uploadPanelEffect.toggle();
			//signupPanelEffect.toggle('232');
		} else if (login.childNodes[0].nodeValue == "DIRECT_ACCESS") {
			//alert ("Session timeout");
		} else {
			document.getElementById("loginError").innerHTML = localize["LOGIN_REJECTED"];
		}
	}
}


/**
 * This function ascertains the outcome of the request for a password reminder
 * email.  The result XML will be in the form:
 *   <result>[OK | DIRECT_ACCESS | NOT_FOUND | ERROR]</result>
 */
function sentPassword(request) {
	var respRoot = request.responseXML.documentElement;

	if (respRoot.nodeName == "result") {
		var result = respRoot.childNodes[0].nodeValue;
		if (result == "OK") {
			document.getElementById("loginError").innerHTML = localize["PASSWORD_REMINDER_SENT"];
		} else if (result == "DIRECT_ACCESS") {
			// redirect to the root of the website to establish a session.
			window.location = "/";
		} else if (result == "ERROR") {
			document.getElementById("loginError").innerHTML = localize["ERROR_OCCURED"];
		} else if (result == "NOT_FOUND") {
			document.getElementById("loginError").innerHTML = localize["EMAIL_NOT_IN_DB"];
		}
	}

}

function checkLogin () {

	var url = "/soegamesite/protected/status.xml";


	new ajax (url, {onComplete:myCheckLogin});
}

function login () {
	var username = (document.getElementById("emailId")).value;
	var password = (document.getElementById("passwordId")).value;

	var url = "/soegamesite/authenticate.xml?username=" + username + "&password=" + password;
	document.uploadFile.username.value = username;

	new ajax (url, {onComplete:myFunction});
}


function setupUser () {

			if ( validate() != false ) {

			var language = (document.getElementById("language")).value;
			var email = (document.getElementById("signupID")).value;
			var password = (document.getElementById("signupPasswd")).value;
			var name = (document.getElementById("signupName")).value;
			var connection = (document.getElementById("signupConnection")).value;

			var yearbox = document.getElementById("signupYear");
			var year = yearbox.options[yearbox.selectedIndex].value;

			var monthbox = document.getElementById("signupMonth");
			var month = monthbox.options[monthbox.selectedIndex].value;

			var daybox = document.getElementById("signupDay");
			var day = daybox.options[daybox.selectedIndex].value;

			var gender = (document.getElementById("signupGender")).value;

var url = "/soegamesite/signup.xml?email=" + email + "&password=" + password
							+ "&name=" + name
							+ "&connection=" + connection
							+ "&year=" + year
							+ "&month=" + month
							+ "&day=" + day
						+ "&language=" + language
							+ "&gender=" + gender;


	new ajax (url, {onComplete:mySignupUser});

	}

}

function sendPassword() {
	var username = (document.getElementById("emailId")).value;

	if (username == '') {
		alert (localize["FORGOTTEN_PASSWORD"]);
	} else {
		var url = "/soegamesite/sendpassword.xml?email=" + username;

		new ajax (url, {onComplete:sentPassword});
	}
}

function validateTerms () {

	var terms = document.uploadFile.checkterms.checked;

	if ( terms == true ) {
		return true;
	} else {
		alert(localize["CONFIRM_TERMS_AND_CONDITIONS"]);
		return false;
	}
}

function submitPhotoFunction () {

		var usrname = document.uploadFile.username.value;
		document.uploadFile.action = "/soegamesite/photocomp/addEntry.html?username=" + usrname;
		
		alert(validate());

		if ( validatePhoto() == true ) {
			document.uploadFile.submit();
		}
}

function validatePhoto() {

	var terms = document.uploadFile.checkterms.checked;
		var toupload = document.uploadFile.filetoupload.value;
	
		if ( toupload.length == 0) {
			alert(localize["PLEASE_SELECT_FILE"]);
			return false;
		}
	
		if (terms == false) {
			alert(localize["CONFIRM_TERMS_AND_CONDITIONS"]);
			return false;
	}

}

function printBirthDateOptionTags()
{

// define our variable i
var i;
var max = 10;
var message = "This is our message to be printed";

	for (i = 2006; i > 1959; i--) {
		//print the below with each loop
        document.write("<option value=\""+i+"\">"+i+"</option>");
    }
}

function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=420,height=450,left = 50,top = 50');");
}
