//Regular Expression for Validation.
var alphaString=/^[a-zA-Z]+$/;
var numericString=/^[0-9]+$/;
var numericDecimalString=/^[0-9]+\.([0-9]{2})$/;
var first_nameString=/^[A-Za-z0-9\-\'\s]{1,32}$/
var last_nameString=/^[A-Za-z0-9\-\'\s]{1,64}$/
var addressString=/^([A-Za-z0-9_\-\.\'\/\s]{1,100})$/
var cityString=/^([A-Za-z0-9_\-\.\'\s]{1,100})$/
var postalCodeString=/^[ABCEGHJKLMNPRSTVXY]{1}\d{1}[A-Z]{1} *\d{1}[A-Z]{1}\d{1}$/;
var zipString=/^\d{5}(-\d{4})?$/
var emailString=/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{1,9})$/;

function checkCountry() {
	var lc=document.getElementById('lc').value;
	var sel_state=document.getElementById('chooseState');
	if (lc=="CHOOSE") {
		$("#lc").css("background","#fcc");
	}
	else {
		if (lc=='CA') {
			$(".state_display").css("display","block");
			$(".ca_province").css("display","block");
			$(".us_state").css("display","none");
			$("#lc").css("background","#cfc");
			$("#non_na_state_display").css("display","none");
			sel_state.selected=true;
		}
		else if (lc=='US'){
			$(".state_display").css("display","block");
			$(".ca_province").css("display","none");
			$(".us_state").css("display","block");
			$("#lc").css("background","#cfc");
			$("#non_na_state_display").css("display","none");
			sel_state.selected=true;
		}
		else {
			$(".state_display").css("display","none");
			$("#lc").css("background","#cfc");
			$("#non_na_state_display").css("display","block");
			document.getElementById('non_na').selected=true;
			
		}
	}
}
function checkState() {
	var state=document.getElementById('state').value;
	var sel_state=document.getElementById('chooseState');
	if (state=="CHOOSE") {
		$("#state").css("background","#fcc");
	}
	else {
		$("#state").css("background","#cfc");
	}
}

function checkForm(a) {
	var mistakes="";
	var save="";
	
	//Objects to check
	var other=document.getElementById('other');
	var otheramt=document.getElementById('otheramt').value;
	var first_name=document.getElementById('first_name').value;
	var last_name=document.getElementById('last_name').value;
	var email=document.getElementById('email').value;
	var address1=document.getElementById('address1').value;
	var address2=document.getElementById('address2').value;
	var city=document.getElementById('city').value;
	var state=document.getElementById('state').value;
	var non_na_state=document.getElementById('non_na_state').value;
	var zip=document.getElementById('zip').value;
	var lc=document.getElementById('lc').value;


	//Check Other Amount
	if(other.checked==true) {
		document.getElementById('otheramt').disabled=false;
		if(otheramt.match(numericString)||otheramt.match(numericDecimalString)) {
			other.value=otheramt;
			$("#otheramt").css("background","#cfc");
			save=save+"Amount: $"+otheramt+ "\n";
		}
		else {
			$("#otheramt").css("background","#fcc");
			mistakes=mistakes+"Other Amount: "+otheramt+ "\n";
		}
	}
	//Check Radio Amount
	else {
		var amount="";
		$("#otheramt").css("background","#eee");
		document.getElementById('otheramt').disabled=true;
		len=document.generaldonation.amount.length;

		for (i = 0; i <len; i++) {
			if (document.generaldonation.amount[i].checked) {
				amount=document.generaldonation.amount[i].value
			}
		}
			if (amount == "") {
				mistakes=mistakes+"Amount: $"+amount+ "\n";
			}
			else {
				save=save+"Amount: $"+amount+ "\n";
			}
	}
	//Check First Name
	if (first_name=="") {
		$("#first_name").css("background","#eee");
		mistakes=mistakes+"First Name: "+first_name+ "\n";
	}
	else {
		if (first_name.match(first_nameString)) {
			save=save+"First Name: "+first_name+ "\n";
			$("#first_name").css("background","#cfc");
		}
		else {
			mistakes=mistakes+"First Name: "+first_name+ "\n";
			$("#first_name").css("background","#fcc");
		}
	}
	//Check Last Name
	if (last_name=="") {
		$("#last_name").css("background","#eee");
		mistakes=mistakes+"Last Name: "+last_name+ "\n";
	}
	else {
		if (last_name.match(last_nameString)) {
			save=save+"Last Name: "+last_name+ "\n";
			$("#last_name").css("background","#cfc");
		}
		else {
			mistakes=mistakes+"Last Name: "+last_name+ "\n";
			$("#last_name").css("background","#fcc");
		}
	}
	//Check Address1
	if (address1=="") {
		$("#address1").css("background","#eee");
		mistakes=mistakes+"Address 1: "+address1+ "\n";
	}
	else {
		if (address1.match(addressString)) {
			save=save+"Address 1: "+address1+ "\n";
			$("#address1").css("background","#cfc");
		}
		else {
			mistakes=mistakes+"Address 1: "+address1+ "\n";
			$("#address1").css("background","#fcc");
		}
	}
	//Check Address2
	if (address2==""){
		$("#address2").css("background","#eee");
	}
	else {
		if (address2.match(addressString)) {
			save=save+"Address 2: "+address2+ "\n";
			$("#address2").css("background","#cfc");
			}
		else {
			mistakes=mistakes+"Address 2 "+address2+ "\n";
			$("#address2").css("background","#fcc");
			}
	}
	//Check City
	if (city=="") {
		$("#city").css("background","#eee");
		mistakes=mistakes+"City: "+city+ "\n";
	}
	else {
		if (city.match(cityString)) {
			save=save+"City: "+city+ "\n";
			$("#city").css("background","#cfc");
		}
		else {
			mistakes=mistakes+"City: "+city+ "\n";
			$("#city").css("background","#fcc");
		}
	}
	//Check Zip
	if (zip=="") {
		$("#zip").css("background","#eee");
		if (lc!='CA'||lc!='US') {
		save=save+"Postal Code: "+zip+ "\n";
		}
		else{
		mistakes=mistakes+"Postal Code "+zip+ "\n";
		}
	}
	else {
		if (lc=='CA') {
			zip=zip.toUpperCase();
			//Check Postal Code
			if (zip.match(postalCodeString)) {
				save=save+"Postal Code: "+zip+ "\n";
				$("#zip").css("background","#cfc");
			}
			else {
				mistakes=mistakes+"Postal Code "+zip+ "\n";
				$("#zip").css("background","#fcc");
			}
			
		}
		else if (lc=='US'){	
			//Check Zip
			if (zip.match(zipString)) {
				save=save+"Zip: "+zip+ "\n";
				$("#zip").css("background","#cfc");
			}
			else {
				mistakes=mistakes+"Zip: "+zip+ "\n";
				$("#zip").css("background","#fcc");
			}
		}
		else {
			save=save+"Postal Code: "+zip+ "\n";
			$("#zip").css("background","#cfc");
		}
	}
	//Check State
	if (state=="CHOOSE") {
		mistakes=mistakes+"State/Province: Please choose"+"\n";
		//$("#state").css("background","#fcc");
	}
	else if(state=="non_na") {
		document.getElementById('non_na').value=non_na_state;
	}
	else {
		save=save+"State/Province: "+state+ "\n";
		//$("#state").css("background","#cfc");
	}
	//Check Country
	if (lc=="CHOOSE") {
		mistakes=mistakes+"Country: Please choose"+"\n";
	}
	else {
		save=save+"Country: "+lc+ "\n";
	}
	//Check Email
	if (email=="") {
		$("#email").css("background","#eee");
		mistakes=mistakes+"E-Mail: "+email+ "\n";
	}
		else {
		if (email.match(emailString)) {
			save=save+"E-Mail: "+email+ "\n";
			$("#email").css("background","#cfc");
		}
		else {
			mistakes=mistakes+"E-Mail: "+email+ "\n";
			$("#email").css("background","#fcc");
		}
	}
	//Checks if any mistakes exist
	if (mistakes=="") {
		//Comment out alert for deployment
		//alert("Form Valid"+"\n"+save);
		a=true
		return a;
	}
	else {
		a=false
		return "Please correct the following fields: "+"\n"+mistakes;
	}
}
function submitForm() {
	var a
	//Checks if any mistakes exist, if not form will be submitted.
	if (checkForm(a)==true) {
		document.generaldonation.submit(); 
	}
	else {
		alert(checkForm(a));
	}
}
