﻿var errArr = new Array();

function populateCountries() {
	Register.PopulateCountries(populateCountries_callback);
} //end popualteCountries



function populateCountries_callback(res) {
	if (res.error != null) {
		triggerAlert(document.getElementById('registerError'), "ERROR", "Error Populating Countries Pulldowns. Please try again later.");
	} else {
		document.getElementById('countryCell').innerHTML = res.value;
	} //end if
} //end populateCountries



function changeCaptcha() {
	Register.ChangeCaptcha(changeCaptcha_callback);
} //end changeCaptcha



function changeCaptcha_callback(res) {
	if (res.error != null) {
		document.getElementById('C').style.backgroundColor = "#FF0000";
		document.getElementById('CError').innerHTML = "Server Error. Refresh Page; Try Again";
	} else if (res.value) {
		document.getElementById('captchaCell').innerHTML = "";
		document.getElementById('captchaCell').innerHTML = "<img src='/hidden/JpegImage.aspx?" + (new Date().getTime()) + "' alt='' />"
	} //end if
} //end changeCaptcha_callback


function changeTermsStatus() {
	if (document.getElementById('tosAgree').value != "true") {
		document.getElementById('tosAgree').value = "true";
		document.getElementById('tos_agreeImg').src = "/images/generic/input_checkBox_true.jpg";
	} else {
		document.getElementById('tosAgree').value = "false";
		document.getElementById('tos_agreeImg').src = "/images/generic/input_checkBox_false.jpg";
	} //end if
} //end changeTermsStatus


function register() {
	triggerAlert(document.getElementById('registerError'), "INFO", "Processing Request. Please Wait...");
	var verifyOnly = true;
	
	//clear any previous error DOM mutations
	for (var i = 0; i < errArr.length; i++) {
		var errorLoc = errArr[i].charAt(0);
		
		if (errorLoc != "G") {
			document.getElementById(errArr[i].charAt(0)).style.backgroundColor = "#FFFFFF";
			document.getElementById(errArr[i].charAt(0) + "Error").innerHTML = "";
		} else {
			document.getElementById(errArr[i].substring(0, 3)).style.backgroundColor = "#FFFFFF";
			document.getElementById("G" + errArr[i].charAt(2) + errArr[i].charAt(1)).style.backgroundColor = "#FFFFFF";
			document.getElementById(errArr[i].charAt(1) + "Error").innerHTML = "";
		} //end if
	} //end for
	
	//we must check for password length here, since pws are sent to server as hashes.
	if (document.getElementById('password').value.length > 5) {
		verifyOnly = false;
	} //end if
	
	Register.Submit(document.getElementById('username').value,
					document.getElementById('firstName').value, 
					document.getElementById('lastName').value,
					document.getElementById('email').value,
					document.getElementById('retypeEmail').value,
					hex_sha1(document.getElementById('password').value),
					hex_sha1(document.getElementById('retypePassword').value),
					verifyOnly,
					document.getElementById('company').value,
					document.getElementById('country').options[document.getElementById('country').selectedIndex].value,
					document.getElementById('phone').value, ValidatePhone(document.getElementById('phone')),
					document.getElementById('fax').value,
					document.getElementById('captcha').value,
					document.getElementById('tosAgree').value,
					register_callback);
} //end submit


function register_callback(res) {
	if (res.error != null) {
		triggerAlert(document.getElementById('registerError'), "ERROR", "Internal Server Error: The Server was unable to complete your request. Please try again later. " + res.error.description);
	} else if (res.value[0] != null) {
		errArr = res.value;
		triggerAlert(document.getElementById('registerError'), "WARNING", "Could Not Register. Please fix input errors before proceeding.");
		document.getElementById('captcha').value = "";
		changeCaptcha();
		
		for (var i = 0; i < res.value.length; i++) {
			var errorLoc = res.value[i].charAt(0);
			var errorMsg;
			
			if (errorLoc != "G") {
				errorMsg = res.value[i].substring(1, res.value[i].length);
				document.getElementById(errorLoc).style.backgroundColor = "#FFFE91";
				document.getElementById(errorLoc.toString() + "Error").innerHTML = errorMsg;
			} else {
				//case for group inputs
				errorLoc = res.value[i].substring(0, 3);
				errorMsg = res.value[i].substring(3, res.value[i].length);
				
				//message on group parent, color parent
				document.getElementById(errorLoc).style.backgroundColor = "#FFFE91";
				document.getElementById(errorLoc.charAt(1) + "Error").innerHTML = errorMsg;
				
				//color sub
				document.getElementById("G" + errorLoc.charAt(2) + errorLoc.charAt(1)).style.backgroundColor = "#FFFE91";
			} //end if
		} //end for
	} else {
		window.location = "/Default.aspx?msg=regsuc";
	} //end if
} //end submit_callback


populateCountries();
