var globalBADSchoolCode = true;

/*_________________________________________________________________________________*/

	function tabNext (obj,strNext)	{
		if(obj.value.length >= obj.maxLength)	{
			document.getElementById(strNext).focus();
		}
	}

/*_________________________________________________________________________________*/

	function checkSchoolCode () {
		var strSchoolCode = document.getElementById("stSchoolCode1").value.replace(/^\s+|\s+$/g,"") + "-" + document.getElementById("stSchoolCode2").value.replace(/^\s+|\s+$/g,"");
		DWREngine._execute(_ajaxConfig.studentAjaxCFC,null,'checkSchoolCode',strSchoolCode,resultCheckSchoolCode);
	}

	function resultCheckSchoolCode (r) {
		document.getElementById("spanstSchoolCode2").className  = "invalid";
		if (r.blninvalid == "true") {
			document.getElementById("spanstSchoolCode2").className  = "invalid";
			document.getElementById("spanCodeMessage").innerHTML = r.strmessage;
			globalBADSchoolCode = true;	// set global var
		}
		else {
			document.getElementById("spanstSchoolCode2").className  = "valid";
			document.getElementById("spanCodeMessage").innerHTML = r.strmessage;
			globalBADSchoolCode = false;	// set global var
		}
	}


/*_________________________________________________________________________________*/


/*_________________________________________________________________________________*/

	function checkUserNameAjax (strUN) {
		DWREngine._execute(_ajaxConfig.studentAjaxCFC,null,'checkUserName',strUN,resultCheckUserNameAjax);
	}

	function resultCheckUserNameAjax (r) {
		if (r.blninvalid == "true") {
			document.getElementById("spanstrUsername").className  = "invalid";
		}
		else {
			document.getElementById("spanstrUsername").className  = "valid";	
		}
		document.getElementById("spanUsernameMessage").innerHTML = r.strmessage;
	}


/*_________________________________________________________________________________*/

	function validatePassword (str) {
		if (str.replace(/^\s+|\s+$/g,"") == "")	{
			document.getElementById("spanPassMessage").innerHTML = "No Password.";
			document.getElementById("spanstrPassword").className  = "invalid";
			document.getElementById("strPassword").focus();
			return "passwordError";
		}
		else if (str.replace(/^\s+|\s+$/g,"").length < 4)	{
			document.getElementById("spanPassMessage").innerHTML = "Too short.";
			document.getElementById("spanstrPassword").className  = "invalid";
			document.getElementById("strPassword").focus();
			return "passwordError";
		}
		else if (str.replace(/^\s+|\s+$/g,"") == document.getElementById("strUsername").value)	{
			document.getElementById("spanPassMessage").innerHTML = "Can't match Username.";
			document.getElementById("spanstrPassword").className  = "invalid";
			document.getElementById("strPassword").focus();
			return "passwordError";
		}
		else {
			var blnErr = false
			var strListCantUser = "user,username,test,pass,password,free,blank";	// can't use these words for a password
			var valueArray = strListCantUser.split(",");
			for(var z=0; z<valueArray.length; z++)	{
				if (valueArray[z] == str) 	{
					blnErr = true
				}
			}
			if (blnErr == true)	{
				document.getElementById("spanPassMessage").innerHTML = "Too simple.";
				document.getElementById("spanstrPassword").className  = "invalid";
				document.getElementById("strPassword").focus();
				return "passwordError";
			}
			else {
				document.getElementById("spanstrPassword").className  = "";
				document.getElementById("spanPassMessage").innerHTML = " ";
				return "ok";
			}
		}
	}

	function validateConfirmPassword () {
		if (document.getElementById("strConfirmPassword").value.replace(/^\s+|\s+$/g,"") != "")	{
			if (document.getElementById("strPassword").value.replace(/^\s+|\s+$/g,"") != document.getElementById("strConfirmPassword").value.replace(/^\s+|\s+$/g,"")) {
				document.getElementById("spanPassMessage").innerHTML = "Not match.";
				document.getElementById("spanstrPassword").className  = "invalid";
				document.getElementById("strPassword").focus();
				return "passwordError";
			}
			else {
				document.getElementById("spanstrConfirmPassword").className  = "";
				return "ok";	
			}
		}
		else {
			return "passwordError";	
		}
	}
/*_________________________________________________________________________________*/
	/* Validate form */

	function validateForm (docForm) {
		var blnError=false;
		var strRadioList = "";
		var strRadioErrList = "";
		var strRadioID = "";
		var strCheckList = "";
		var strCheckErrList = "";
		var strCheckID = "";

		document.getElementById("btnSubmit").value="Wait ...";
		document.getElementById("btnSubmit").disabled=true;
		document.getElementById("imgWait").style.display = "";

		if ((document.getElementById("stSchoolCode1").value.replace(/^\s+|\s+$/g,"") == "") || (document.getElementById("stSchoolCode2").value.replace(/^\s+|\s+$/g,"") == ""))	{
			document.getElementById("spanstSchoolCode2").className  = "invalid";
			document.getElementById("stSchoolCode1").focus();			
			document.getElementById("tdErrMsg").style.display = "";
			blnError=true;
		}
		else {
			blnError = globalBADSchoolCode;	//global var set at top of this js file
		}
		
		for (var i=0; i < docForm.elements.length; i++) {
			if (docForm.elements[i].type == 'text' || docForm.elements[i].type == 'select-one' || docForm.elements[i].type == 'textarea' || docForm.elements[i].type == 'password') {
				if (docForm.elements[i].value.replace(/^\s+|\s+$/g,"") == "")	{
					if (document.getElementById("span" + docForm.elements[i].id)) {
						document.getElementById("span" + docForm.elements[i].id).className  = "invalid";	// no user data provide, show error graphic for this element
						blnError=true;
						
						if (docForm.elements[i].id == "strUsername")	{
							document.getElementById("spanUsernameMessage").innerHTML = "";
						}
						if (docForm.elements[i].id == "strPassword")	{
							document.getElementById("spanPassMessage").innerHTML = "";
						}
					}
				}
				else {
					if (document.getElementById("span" + docForm.elements[i].id)) {	// user provided info for this element, so hide error graphic
						// - nothing right now
					}
				}
			}
			else if ( docForm.elements[i].type == 'radio') {
				if (strRadioID != docForm.elements[i].name) {	// just make a list of Radio button names for now
					strRadioID = docForm.elements[i].name;
					strRadioList = strRadioList + docForm.elements[i].name + ",";
				}
			}
			else if (docForm.elements[i].type == 'checkbox') {
				if (strCheckID != docForm.elements[i].name) {	// just make a list of Checkbox names for now
					strCheckID = docForm.elements[i].name;
					strCheckList = strCheckList + docForm.elements[i].name + ",";
				}
			}
		}
	//end of loop

	if (blnError == true) 	{
		document.getElementById("btnSubmit").value=" continue ";
		document.getElementById("btnSubmit").disabled=false;
		document.getElementById("imgWait").style.display = "none";
		document.getElementById("tdErrMsg").style.display  = "";
		window.scrollTo(0,0);
	}

	// radio button section
	var valueArray = strRadioList.split(",");
	for(var j=0; j<valueArray.length; j++){
	  blnChecked=false;
	  for (var k=0; k < document.getElementsByName(valueArray[j]).length; k++) {
		if (document.getElementsByName(valueArray[j])[k].checked == true) {
			/*if (document.getElementById("span" + valueArray[j])) {
				document.getElementById("span" + valueArray[j]).style.display = "none"; // no user data provide, show error graphic for this element
			}*/
			blnChecked=true;
		}
	  }

	  if (blnChecked == false)	{
		strRadioErrList = strRadioErrList + valueArray[j] + ",";
	  }
	}

	var valueArray = strRadioErrList.split(",");
	for(var m=0; m<valueArray.length; m++)	{
		if (document.getElementById("span" + valueArray[m])) {
			document.getElementById("span" + valueArray[m]).className  = "invalid";		// user provided info for this element, so hide error graphic
		}
		if (valueArray[m] != "") {
			blnError=true;
		}
	}
// end of - radio button section

// check box section
	var valueArray = strCheckList.split(",");
	for(var n=0; n<valueArray.length; n++){
	  blnChecked=false;
	  for (var p=0; p < document.getElementsByName(valueArray[n]).length; p++) {
		if (document.getElementsByName(valueArray[n])[p].checked == true) {
			/*if (document.getElementById("span" + valueArray[n])) {
				document.getElementById("span" + valueArray[n]).style.display = "none";	// no user data provide, show error graphic for this element
			}*/
			blnChecked=true;
		}
	  }

	  if (blnChecked == false)	{
		strCheckErrList = strCheckErrList + valueArray[n] + ",";
	  }
	}

	var valueArray = strCheckErrList.split(",");
	for(var q=0; q<valueArray.length; q++)	{
		if (document.getElementById("span" + valueArray[q])) {
			document.getElementById("span" + valueArray[q]).className  = "invalid";		// user provided info for this element, so hide error graphic
		}
		if (valueArray[q] != "") {
			blnError=true;
		}
	}
// end of - check box section

	var validPassword = validatePassword(document.getElementById("strPassword").value.replace(/^\s+|\s+$/g,""));
	if (validPassword != "ok") {blnError=true;}
	var validConfirmPassword = validateConfirmPassword();
	if (validConfirmPassword != "ok") {blnError=true;}

	if (blnError == true) 	{
		document.getElementById("btnSubmit").value=" continue ";
		document.getElementById("btnSubmit").disabled=false;
		document.getElementById("imgWait").style.display = "none";
		document.getElementById("tdErrMsg").style.display  = "";
		window.scrollTo(0,0);
	}
	else {
		// CHECK USERNAME
		if (document.getElementById("strUsername").value.replace(/^\s+|\s+$/g,"") == "") {
			document.getElementById("btnSubmit").value=" continue ";
			document.getElementById("btnSubmit").disabled=false;
			document.getElementById("imgWait").style.display = "none";
			document.getElementById("tdErrMsg").style.display  = "";
			document.getElementById("spanUsernameMessage").innerHTML = "Missing Username.";
			document.getElementById("spanstrUsername").className  = "invalid";
			document.getElementById("strUsername").focus();
			window.scrollTo(0,0);

		}
		else {
			DWREngine._execute(_ajaxConfig.studentAjaxCFC,null,'checkUserName',document.getElementById("strUsername").value.replace(/^\s+|\s+$/g,""),resultSubmitcheckUserNameAjax);
		}
	}

}

	function resultSubmitcheckUserNameAjax (r) {
		if (r.blninvalid != "true")	{
			document.getElementById("spanstrUsername").className  = "valid";
			document.getElementById("spanUsernameMessage").innerHTML = r.strmessage;
			DWREngine._execute(_ajaxConfig.studentAjaxCFC,null,'createStudentUserViaSchoolCode',DWRUtil.serializeForm(document.getElementById("frmCreateUser")),resultCreateStudentUser);
		}
		else {
			document.getElementById("btnSubmit").value=" continue ";
			document.getElementById("btnSubmit").disabled=false;
			document.getElementById("imgWait").style.display = "none";
			document.getElementById("tdErrMsg").style.display  = "";
			document.getElementById("spanUsernameMessage").innerHTML = r.strmessage;
			document.getElementById("spanstrUsername").className  = "invalid";
			document.getElementById("strUsername").focus();
			window.scrollTo(0,0);
		}
	}

	function resultCreateStudentUser (r) {
		if (r.blnerror == "true")	{
		// error
			alert("An error has occured while trying to Save User Info.");
			document.getElementById("tdErrMsg").style.display = "";
			document.getElementById("tdErrMsg").innerHTML = r.strmessage;
		}
		else {
			// SUCCESS !!!! User info saved ... now foward to index page
			location.href = r.returnurl;
		}
	}