/**********************************************
**  Browser Kings Contact Form Error Processing
**	
**  Created By: Ken Dunlap
**
**
**
**		Make a container with id="reciever" in the html file -- it will hold the main messages (welcome, error, success)
**		Add <p id="err_*****"></p> where ***** id of each form element -- this will hold the specific field error messages
**		
**		### Style these accordingly ### -- applied to #reciever text
**		.message = default display message
**		.error = general you have an error message
**		.success = successful submission message
**
**
**		Add additional checks to fields not included in the validate.php file
**********************************************/

var HOSTNAME = "http://abellastone.com";
//var HOSTNAME = "http://dev.abella.com";

jQuery(document).ready(function(){

	jQuery("body").click(function(){
	
		if(jQuery("#reciever").hasClass('visible') ){
			add_remove_class('visible', 'hidden', 'reciever');
			jQuery("#reciever").hide();
		
		}
	
	});

});

function handleForm(form){
	//lockScreen();
	jQuery('#message').html("<p>Submitting &hellip;</p>");	
	jQuery('#reciever').fadeIn('slow');
	
	jQuery.ajax({
		type: "POST",
   		url: HOSTNAME + "/wp-content/themes/abella-stone/validate.php",			//**** Path to the php validation file ****//
	    data: jQuery('#' + form).serialize(),
		dataType: "html",
		success: function(html){			
			
			processErrors(html)
		},
		error: function(){
			alert("There was an error in your request");
		}
			
	});
	
}


function processErrors(html){

	// split error messages to their own line
	var errorInLines = html.split("\n");
	
	// Remove initial blue formatting
	//if (jQuery('#reciever').hasClass("message")){
	//	jQuery('#reciever').removeClass("message");
	//}
	jQuery('#message').html("");
	
	var hasErrors = false;
	

	for ( var i in errorInLines )
	{
		
	  if(typeof(errorInLines[i]) == 'string'){		
		var explode_again = errorInLines[i].split("|");
		if (explode_again[0]=='error'){
		    hasErrors = true;
			jQuery('#err_' + explode_again[1]).html(explode_again[2]);
			jQuery('#err_' + explode_again[1]).show('slow');
			
			
			jQuery('#' + explode_again[1]).addClass("error");
			
		}
		else if (explode_again[0]=='ok') {
			jQuery('#err_' + explode_again[1]).hide('slow');
			jQuery('#err_' + explode_again[1]).html("");
			
			if(jQuery('#' + explode_again[1]).hasClass("error")){
				jQuery('#' + explode_again[1]).removeClass("error");
			}
			
		}
	  }	
	}
		
	if ( !hasErrors ){		// No errors in form, process form
		
		if(html != ""){

			add_remove_class('hidden', 'visible', 'reciever');
			
			jQuery('#message').html("<p>Thanks for filling out our form!</p>\n<p>Your information has been sent and you should be hearing from us soon.</p>");		
				
			//clear form, message sent
			clearContactForm();	
		}
		else{
			// no response from the validation script - do nothing with form
			
			add_remove_class('hidden', 'visible', 'reciever');
			jQuery('#message').html('<p>Our form is currently under maintenance. Please try again soon, or you can still reach us via email at info@abellastone.com</p>');
		}		
	}
	else {
		jQuery("#errorHolder").show();
		add_remove_class('hidden', 'visible', 'reciever');
		
		jQuery('#message').html('<p>Please correct the errors below before we can submit your form.</p>');
				
	}
			
	req = null;
			
			
}





// remove class "search" if exists and add "replace"
function add_remove_class(search,replace,element_id)
{
	if (jQuery('#' + element_id).hasClass(search)){
		jQuery('#' + element_id).removeClass(search);
	}
	jQuery('#' + element_id).addClass(replace);
}


// Clear all fields of the form meaning successful submission
function clearContactForm(){
	
	document.getElementById("name").value="";
	document.getElementById("zip").value="";
	document.getElementById("phone").value="";
	document.getElementById("email").value="";
	document.getElementById("comment").value="";
	
}



