// prepare the form when the DOM is ready 
$(document).ready(function() { 
    var options = { 
        beforeSubmit:  showRequest,  // pre-submit callback 
        success:       showResponse  // post-submit callback 
        //resetForm: true        // reset the form after successful submit 
 
        // $.ajax options 
        //timeout:   3000 
    }; 
 
    $('#feedbackForm').ajaxForm(options);     

}); 
 
// pre-submit callback 
function showRequest(formData, jqForm, options) { 
    //var queryString = $.param(formData); 
    //alert(queryString);
 	 var checked = validateForm();

    if(checked)
    {
    	removeSubmitBtn();
    	return true;	
    }else
    {
    	return false;
    }	
} 
 
// post-submit callback 
function showResponse(responseText, statusText)  { 

    //alert('status: ' + statusText + '\n\nresponseText: \n' + responseText); 
   $('#feedbackForm').resetForm();
	$("#feedbackForm").slideUp(1500, function() { $("#feedbackForm").remove(); });
	$("#successDisp").slideDown("slow");     
} 

function validateForm()  { 
		var allOK = true;
     	if (!isValidEmail($('input[name="email"]').val()))
     		{
				$('input[name="email"]').addClass("error");
				allOK = false;	
     		}
     	else
     		{
     			$('input[name="email"]').removeClass("error");
     		}
		if (isValidAge($('input[name="age"]').val()) || ($('input[name="age"]').val()== ''))
			{
				$('input[name="age"]').addClass("error");
				allOK = false;	
     		} 
     	else
     		{
     			$('input[name="age"]').removeClass("error");    
     		}     		
		if (isValidNumber($('input[name="name"]').val()) || ($('input[name="name"]').val()== ''))
			{
				$('input[name="name"]').addClass("error");
				allOK = false;	
     		} 
     	else
     		{
     			$('input[name="name"]').removeClass("error");    
     		}   
		if (!isValidPhone($('input[name="resPhone"]').val()))
			{
				$('input[name="resPhone"]').addClass("error");
				allOK = false;	
     		} 
     	else
     		{
     			$('input[name="resPhone"]').removeClass("error");    
     		}  
		if (!isValidPhone($('input[name="moPhone"]').val()))
			{
				$('input[name="moPhone"]').addClass("error");
				allOK = false;	
     		} 
     	else
     		{
     			$('input[name="moPhone"]').removeClass("error");    
     		}  
		if (($('input[name="address"]').val()== ''))
			{
				$('input[name="address"]').addClass("error");
				allOK = false;	
     		} 
     	else
     		{
     			$('input[name="address"]').removeClass("error");    
     		}  
		if (($('input[name="subject"]').val()== ''))
			{
				$('input[name="subject"]').addClass("error");
				allOK = false;	
     		} 
     	else
     		{
     			$('input[name="subject"]').removeClass("error");    
     		} 
		if (($('textarea[name="comments"]').val()== ''))
			{
				$('textarea[name="comments"]').addClass("error");
				allOK = false;	
     		} 
     	else
     		{
     			$('textarea[name="comments"]').removeClass("error");    
     		}      		     		   			     	
     	if (allOK)
     	{removeDisplayError();}	
     	else
     	{displayError();}     		     		     		     		     		  		
     	return allOK;		
} 
function isValidEmail(emailAddress) {
//	var pattern = /^([\w]+)(.[\w]+)*@([\w]+)(.[\w]{2,3}){1,2}$/;
        var pattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	return pattern.test(emailAddress);
}
function isValidNumber(string) {
	var pattern = new RegExp(/[0-9.,]/g);
	return pattern.test(string);
}
function isValidAge(string) {
	var pattern = /^([0-9]{1})$/;
	return pattern.test(string);
}
function isValidPhone(string) {
	var pattern = /^([0-9]{8})$/;
	return pattern.test(string);
}
function isValidDate(string) {
	var pattern = /^(\d{1,2})[./-](\d{1,2})[./-](\d{4})$/;
	return !pattern.test(string);
}

function displayError() {
	$("#errorDisp").slideDown("slow");
}
function removeDisplayError() {
	$("#errorDisp").slideUp("fast");
}
function removeSubmitBtn() {
	$('input[name="Reset"]').fadeOut(1500);
	$('input[name="Submit2"]').fadeOut(1500);
}
