function signUpClicked() {
    if (formCheck()) {
      registerSignUp();
    }
}
function getOnlyValueFromXml(oDomDoc, tagName) {
	if (oDomDoc == null) {
		return null;
	}
	if (oDomDoc.getElementsByTagName(tagName) == null) {
		return null;
	}
	if (oDomDoc.getElementsByTagName(tagName)[0] == null) {
		return null;
	}
	if (oDomDoc.getElementsByTagName(tagName)[0].firstChild == null) {
		return null;
	}
	return oDomDoc.getElementsByTagName(tagName)[0].firstChild.data;
}

function processUserRegistrationXml(userRegistrationXml) {
	log(userRegistrationXml);
	var oDomDoc = Sarissa.getDomDocument();
    oDomDoc = (new DOMParser()).parseFromString(userRegistrationXml, "text/xml");
    var thankyou = getOnlyValueFromXml(oDomDoc, 'thankyou');
    var partnerId = getOnlyValueFromXml(oDomDoc, 'partnerID');
    var partnerUrl = getOnlyValueFromXml(oDomDoc, 'partnerURL');
    if (thankyou == "true" && partnerId != null && trim(partnerId) != "") {
	    thankYouWindow(partnerId, partnerUrl);
	}
}

function registerSignUp() {
  document.getElementById('signUpButton').disabled = true;
  document.getElementById('errorsDiv').innerHTML ="Checking...";
  var xmlhttp = new XMLHttpRequest();
  var newHref = window.location.href.replace("register.jsp", "register_ajax.jsp");
  newHref = newHref.replace("register2.jsp", "register_ajax.jsp");
  newHref = newHref.replace("registerRaf.jsp", "register_ajax.jsp");
  xmlhttp.open('POST', newHref, true);
  xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) {
      if (xmlhttp.status == 200) {
        var ajaxResponse = trim(xmlhttp.responseText);
        if (/^<xmlresponse/.test(ajaxResponse)) {
          document.getElementById('errorsDiv').innerHTML ="Registering...";
          setScreenNameAndEmail(document.signUpForm.screenName.value, document.signUpForm.email.value);
          processUserRegistrationXml(ajaxResponse);
          noteUserHasRegistered();
          checkIfGoodToGo();
        } else {
    	  document.getElementById('errorsDiv').innerHTML   = "<font color=red>"+ajaxResponse+"</font>"; 
    	  document.getElementById('signUpButton').disabled = false;
        }       
      }
    }
  }
  xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  var registerParams = trim(window.location.search);
  if (registerParams.length > 0) {
  	registerParams = registerParams + '&';
  	registerParams = registerParams.replace(/^\?/,""); //remove the ? at the beginning
  }
  registerParams = registerParams + 'screenName=' + document.signUpForm.screenName.value + '&email=' + document.signUpForm.email.value + '&passwordTry1=' + document.signUpForm.passwordTry1.value;
  xmlhttp.send(registerParams);

}
function isEmpty(formField) {
  return (formField == null || formField.value == null || formField.value == "");
}
function formCheck() {
	// checks if the e-mail address is valid
	if (isEmpty(document.signUpForm.screenName) 
	      || isEmpty(document.signUpForm.email)
	      || isEmpty(document.signUpForm.passwordTry1)) {
      document.getElementById('errorsDiv').innerHTML = "<font color=red>Please fill in all required fields.</font>";
	  return false;
	}
	var emailPat = /^(\".+\"|\w[\.\w\-]*)@(\[\d{1,3}(\.\d{1,3}){3}\]|[A-Za-z0-9][\w\-]*(\.[\w\-]+)+)$/;
	var matchArray = document.signUpForm.email.value.match(emailPat);
	if (matchArray == null)
	{
        document.getElementById('errorsDiv').innerHTML = "<font color=red>Your email address appears to be incorrect. Please try again!</font>";
		return false;
	}
	if (document.signUpForm.passwordTry1.value.length < 6)
	{
        document.getElementById('errorsDiv').innerHTML = "<font color=red>Your password must be at least 6 characters.  Please try again.</font>";
		return false;
	}
	return true;
}
var isAppDownloaded = true; //true for now since we are not downloading in the background
var givenUpWaitingForApp = true;
var hasUserBeenRegistered = false;
function liftLoaderCover() {
   isAppDownloaded = true;
   isCoverLifted = true;
   log("liftLoaderCover");
   checkIfGoodToGo();
}

function thankYouImageHasLoaded() {
	log("register.js thankYouImageHasLoaded");
    waitingForThankYouImageToLoad = false;
    checkIfGoodToGo();
}

function checkIfGoodToGo() {
  if ((isAppDownloaded || givenUpWaitingForApp) && hasUserBeenRegistered && !waitingForThankYouImageToLoad) {
    goToGames();
  }
}

function noteUserHasRegistered() {
	hasUserBeenRegistered = true;
	setTimeout("giveUpWaitingForApp()",5000);
}

function giveUpWaitingForApp() {
	givenUpWaitingForApp = true;
	checkIfGoodToGo();
}

function forceHasBeenRegisteredClicked() {
  noteUserHasRegistered();
  givenUpWaitingForApp = true;
  checkIfGoodToGo();
}

function goToGames() {;
  var newHref = window.location.href.replace("register.jsp", "playit.jsp");
  newHref = newHref.replace("register2.jsp", "playit.jsp");
  newHref = newHref.replace("landingRaf.jsp", "playit.jsp");
  newHref = newHref.replace("registerRaf.jsp", "playit.jsp");
  window.location.href = newHref;
}

function checkForEnter(evt) {
  evt = (evt) ? evt : (window.event) ? event : null;
  if (evt) {
    var charCode = (evt.charCode) ? evt.charCode :
                   ((evt.keyCode) ? evt.keyCode :
                   ((evt.which) ? evt.which : 0));
    if (charCode == 13) signUpClicked();
  }    
  return true;
}