var
	p = 'images/salesperson/', // path
	db = document.getElementById("downloadButton"),
	sb = document.getElementById("submitButton"),
	errorMessage,
	BAD_COLOR = "tomato",
	GOOD_COLOR = "white";
	//city = "",
	//stateProvince = "",
	//zipPostalCode = "";

function miDownload() { db.src = p + "DownloadDarkUp.png"; }
function moDownload() { db.src = p + "DownloadBrightUp.png"; }
function mdDownload() { db.src = p + "DownloadDarkDown.png"; }

function miSubmit() { sb.src = p + "SubmitDarkUp.png"; }
function moSubmit() { sb.src = p + "SubmitBrightUp.png"; }
function mdSubmit() { sb.src = p + "SubmitDarkDown.png"; }

function submitClicked() {
	// verify required fields
	errorMessage = "";
	if(!required([["userName", "A unique user name"], ["password",
		"A password"], ["retypePassword", "A retyped password"], ["firstName",
		"A first name"], ["lastName", "A Last Name"], ["emailAddress",
		"An email address"], ["address1", "At least one address line"],
		["city", "A city "], ["stateProvince", "A state "],
		["zipPostalCode", "A zip"], ["phoneNumber", "A phone number"],
		["customerNumber", "A unique customer number"]])) return;
	if(!uniqueUserName()) return;
	// passwords need to match
	var
		p = document.getElementById("password"),
		rp = document.getElementById("retypePassword");
	if(p.value != rp.value) {
		p.style.color = rp.style.color = BAD_COLOR;
		p.value = rp.value = "";
		alert("Your passwords did not match");
		return;
	}
	if(!validEmailAddress()) return;
	if(!existingCustomerNumber()) return;	
	// passed all tests?  Insert into database.
	insert();
}

function insert() {
     
  var request = HTTP.newRequest();
  
  request.open("POST", "addSalesperson2.php", false); // syncronous
  request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	request.send(
		HTTP.encodeFormData(
			{
				"userName":document.getElementById("userName").value,
				"password":calcMD5(document.getElementById("password").value),
				"firstName":document.getElementById("firstName").value,
				"lastName":document.getElementById("lastName").value,
				"emailAddress":document.getElementById("emailAddress").value,
				"address1":document.getElementById("address1").value,
				"address2":document.getElementById("address2").value,
				"address3":document.getElementById("address3").value,
				"city":document.getElementById("city").value,
				"stateProvince":document.getElementById("stateProvince").value,
				"zipPostalCode":document.getElementById("zipPostalCode").value,
				"phoneNumber":document.getElementById("phoneNumber").value,
				"customerNumber":document.getElementById("customerNumber").value
			}
		)
	);
	// alert(request.status+": res :"+request.responseText);
  if(request.status == 200) {
    var response = request.responseText.replace(/^\s+|\s+$/g, "");
    if(response == 'good') {
			clear(["userName", "password", "retypePassword", "firstName", "lastName",
				"emailAddress", "address1", "address2", "address3", "city", "stateProvince",
				"zipPostalCode", "phoneNumber", "customerNumber"]
			);
			alert("Thank you for creating your salesperson account.");
    } else {
			alert("There was a problem with the submission.  An email has been " +
				"sent to someone who can fix the problem.  Contact your SpaceCo " +
				"representative to be notified when the problem is solved.  Sorry " +
				"for the inconvenience.");
		}
  }
}

function validEmailAddress() {
	var ea = document.getElementById("emailAddress");
	var r = ea.value.match(/[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]/);
	if(r != null) {
		ea.style.color = GOOD_COLOR;
		return true; // test failed
	} else {
		ea.style.color = BAD_COLOR;
		alert("You need to fix your email address.");
		return false; // test failed
	}
}

function clear(a) {
	for(var key in a) {
		document.getElementById(a[key]).value = "";
	}
}

function required(aa) { // Array of arrays
	for(var key in aa) { // Array
		element = document.getElementById(aa[key][0]); // The id of the element
		if(element.value == "") {
			errorMessage += "  - " + aa[key][1] + "\n"; // The error display string
			element.style.color = BAD_COLOR;
		} else { element.style.color = GOOD_COLOR; }
	}
	if(errorMessage != "") {
		alert("You need to enter:\n" + errorMessage);
		return false; // did not pass test
	} else { return true; } // passed test
}

function uniqueUserName() {
	var e = document.getElementById("userName");
	var request = HTTP.newRequest();
	request.open("POST", "checkUniqueUserName.php", false); // syncronous
	request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	request.send(HTTP.encodeFormData({ "username":e.value }));
	if(request.status == 200) {
		var response = request.responseText.replace(/^\s+|\s+$/g, "");
		if(response == 'found') {
			e.style.color = BAD_COLOR;
			//alert("That user name is already being used.");
			alert("user name in use, please select a new username");
			return false; // test failed
		} else {
			e.style.color = GOOD_COLOR;
			return true; // test passed
		}
	}
}

function existingCustomerNumber() {
  var e = document.getElementById("customerNumber");
	var request = HTTP.newRequest();
  request.open("POST", "checkExistingCustomerNumber.php", false); // syncronous
  request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  request.send(HTTP.encodeFormData({ "customernumber":e.value }));
  if(request.status == 200) {
    var response = request.responseText.replace(/^\s+|\s+$/g, "");
    if(response == 'found') {
			e.style.color = GOOD_COLOR;
			return true; // test passed
		}
    else {
			e.style.color = BAD_COLOR;
      alert("Customer number was not found.");
			return false; // test failed
		}
  }
}

