//Create xmlHttp Object via external file
ajaxobject();


// make asynchronous HTTP request using the XMLHttpRequest object
function Register(){
	// proceed only if the xmlHttp object isn't busy
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0){
		// retrieve the name typed by the user on the form
		//name = encodeURIComponent(document.getElementById("action").value);
		var FirstName = document.getElementById('FirstName').value;
		var LastName = document.getElementById('LastName').value;
		var RegUserName = document.getElementById('RegUserName').value;
		var RegPass = document.getElementById('RegPass').value;
		var RegPassVerify = document.getElementById('RegPassVerify').value;
		var RegEmail = document.getElementById('RegEmail').value;
		var RegEmailVerify = document.getElementById('RegEmailVerify').value;
		var BirthMonth = document.getElementById('BirthMonth').value;
		var BirthDay = document.getElementById('BirthDay').value;
		var BirthYear = document.getElementById('BirthYear').value;
		var Gender = document.getElementById('Gender').value;
		
		var sender = 'FirstName=' + FirstName + '&LastName=' + LastName + '&RegUserName=' + RegUserName + '&RegPass=' + RegPass + '&RegPassVerify=' + RegPassVerify + '&RegEmail=' + RegEmail + '&RegEmailVerify=' + RegEmailVerify + '&BirthMonth=' + BirthMonth + '&BirthDay=' + BirthDay + '&BirthYear=' + BirthYear + '&Gender=' + Gender + '&LogOrReg=3';
		
		// execute the form.php page from the server
		xmlHttp.open("POST", "logreg.php", true);
		// Defines type of data sent via POST method
		xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
		// define the method to handle server responses
		xmlHttp.onreadystatechange = handleServerResponse;
		// make the server request
		xmlHttp.send(sender);
		document.getElementById('RegisterButton').value="Loading...";
	}
	else{
	// if the connection is busy, try again after one second
	setTimeout('Register()', 1000);
	}
	
	// executed automatically when a message is received from the server
	function handleServerResponse(){
		// move forward only if the transaction has completed
		if (xmlHttp.readyState == 4){
			// status of 200 indicates the transaction completed successfully
			if (xmlHttp.status == 200){
				//Get XML response from server
				xmlResponse = xmlHttp.responseXML;
				// Get the document element (the root element) of the XML structure
				xmlDocumentElement = xmlResponse.documentElement;
				// Get the data fromt he desired element
				RegisterSuccess = xmlDocumentElement.getElementsByTagName("registersuccess")[0].childNodes[0].nodeValue;
				registernameformaterror = xmlDocumentElement.getElementsByTagName("registernameformaterror")[0].childNodes[0].nodeValue;
				RegUNFormatErr = xmlDocumentElement.getElementsByTagName("registerusernameformaterror")[0].childNodes[0].nodeValue;
				RegPWFormatErr = xmlDocumentElement.getElementsByTagName("registerpasswordformaterror")[0].childNodes[0].nodeValue;
				RegPWFormatMatchErr = xmlDocumentElement.getElementsByTagName("registerpasswordmatcherror")[0].childNodes[0].nodeValue;
				RegEmailFormatErr = xmlDocumentElement.getElementsByTagName("registeremailformaterror")[0].childNodes[0].nodeValue;
				RegEmailMatchErr = xmlDocumentElement.getElementsByTagName("registeremailmatcherror")[0].childNodes[0].nodeValue;
				// If login is successful
				if(RegisterSuccess == 1){
					// Close register screen
					LogReg(0);
				}
				else {
					document.getElementById('RegisterButton').value="Register";
				}
			}
			// a HTTP status different than 200 signals an error
			else{
			alert("There was a problem accessing the server: " + xmlHttp.statusText);
			}
		}
	}
}
