// handles form validation and submission to PHP onDomReady
$(document).ready(function(){ 
	$("#supportForm").submit(function(){ 
		var hasError = false;
	
		// checking email for validity must check after for-loop checking for absence of content
		var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
		var emailToVal = $("#email").val();
		// check if email address is valid
		if(emailToVal == '') {
			//alert("enter email");
			$("#email").css("background-color", "#ff6666");
			hasError = true;
		} else if(!emailReg.test(emailToVal)) {
			//alert("Please check your email address.");
			$("#email").css("background-color", "#ff6666");
			hasError = true;
		} else if(emailReg.test(emailToVal)){
			//alert("passed reg. exp. "+emailReg.test(emailToVal));
			$("#email").css("background-color", "#ffffff");
			hasError = false;
		}
	
		// check that required fields are filled out
		var userName = $("input[name$='login']");
		var email = $("input[name$='email']");
		var firstName = $("input[name$='firstName']");
		var lastName = $("input[name$='lastName']");
		var district = $("input[name$='district']");
		var questionsAndComments = $("textarea[name$='questionsAndComments']");
		var fieldsObjArray = new Array();
		fieldsObjArray = [userName, firstName, lastName, district, questionsAndComments];

		var userNameVal = $("input[name$='login']").val();
		var firstNameVal = $("input[name$='firstName']").val();
		var lastNameVal = $("input[name$='lastName']").val();
		var districtVal = $("input[name$='district']").val();
		var questionsAndCommentsVal = $("textarea[name$='questionsAndComments']").val();
		// don't check for these
		var schoolVal = $("input[name$='school']").val();
		var phoneNumberVal = $("input[name$='phoneNumber']").val();
		var productFocusAreaVal = $("select[name$='productFocusArea']").val();
		var supportIssueVal = $("select[name$='supportIssue']").val();
		var fieldsDataArray = new Array();
		fieldsDataArray = [userNameVal, firstNameVal, lastNameVal, districtVal, questionsAndCommentsVal];
		//alert(fieldsDataArray);
		var i = 0;
		for(i; i < fieldsDataArray.length; i++){
			var errorFieldElement = fieldsObjArray[i];
			if(fieldsDataArray[i] == "") {
				$(errorFieldElement).css("background-color", "#ff6666");
				hasError = true;
				//$("#response").show();
			} else {
				$(errorFieldElement).css("background-color", "white");
			}
		}
	
		// only allow form submission if data is valid
		if(hasError == true) { 
			$('#response').html("<p>Your submission data has errors, please fix them. Please enter valid data in the red fields.</p>");
			$('#response').dialog({ buttons: { "OK": function() { $('#response').dialog('close'); } } });
			return false; 
		}
		
		// submit form data using ajax, will redirect on success
		var formdata = $("#supportForm").serialize();
		$.ajax({
			type: "POST",
			url: "php/sendmail.php",
			data: formdata,
			timeout: 2000,
			error: function (XMLHttpRequest, textStatus, errorThrown) {
				ajaxSubmitError(XMLHttpRequest, textStatus, errorThrown);
			},
			success: function (data) {
				ajaxSubmitSuccess(data);
			}
		});
		return false;
	});
}); 

// ajax callback handlers
function ajaxSubmitError(XMLHttpRequest, textStatus, errorThrown) {
	// alert("ajax error");
	$('#response').html("<p class='save_error'>Error while submitting your data.</p><p class='save_error'>Please try submitting again.</p><p class='save_error'>If error continues please contact support at...</p>");
	$('#response').dialog({ buttons: { "OK": function() { $('#response').dialog('close'); } } });
	$('#response').dialog('open');

	$("#submit").removeAttr("disabled");
	$("#submit").show();
}

function ajaxSubmitSuccess(data) {
	// alert("ajax success");
	$('#response').html(data);
	$('#response').dialog({ buttons: { "Return to Teachscape": function() { redirect(); } } });
	$('#response').dialog('open');
	$("#submit").hide();
}

function redirect() {
	// alert("redirecting");
	$(this).dialog("close");
	window.location="http://teachscape.com";
}
