jQuery(document).ready(function(){
	jQuery('.jacForm').submit(submitForm);
}); 
function submitForm() {
	var form = jQuery(this).attr("id");
	var url = jQuery(this).attr("action");
	jQuery("#emailStatus").addClass("hidden").empty().parent().attr("class","").addClass("information").fadeIn('slow'); // initialize form feedback
	jQuery("#loadBar").removeClass("hidden").parent().removeClass("hidden"); //show processing...
	var str = jQuery("#"+form).serialize();	
	jQuery.ajax({
		type:		"POST",
		url:		url,
		data:		str,
		dataType:	"json",
		success:	function(json) {
			formResponse(json,form);
		}
	});
	return false;
}
function formResponse(json, form) {
	jQuery("#loadBar").addClass("hidden").parent().addClass("hidden"); //hide processing...	
	jQuery("#emailStatus").removeClass("hidden").parent().removeClass("hidden"); //show msg for success, warnings, or errors	
	if(!json.success) { // there are errors or warnings
		if(json.msg) { // there are warnings
			var output = "<ol>\n";			
			jQuery.each(json.msg,function(i,val) {
				output += "\t<li>"+this+"</li>\n";
			});			
			output +="</ol>\n";
			jQuery("#loadBar").parent().attr("class","").addClass("warning");
		} else { // errors
			jQuery("#loadBar").parent().attr("class","").addClass("errors");	
			output='';
		}		
	} else { // success
		jQuery("#loadBar").parent().removeClass("errors").removeClass("warning").addClass("success");
		output='';
		window.setTimeout(function() { 
			jQuery("#emailStatus").parent().fadeOut('slow');
			jQuery("#"+form).reset();
		}, 5000);
	}	
	jQuery("#emailStatus").html("<h3>"+json.msgHeader+"</h3>\n\t"+output);	
}
jQuery.fn.extend({ reset: function() {
    return this.each(function() {
        jQuery(this).is('form') && this.reset();
    });
} });