
	$(function() {
		// Set the default state of the form and supporting tags
		/*$("#Results").bind("ajaxError", function(){
			$('#Results').html( "<p>Error validating the form.</p>" ).show() ;
		});*/
		//$("#Results").bind('ajaxError', ajaxErrorHandler);

		
	// validate signup form on keyup and submit
	var validator = $("#ContactUsForm").validate({

		invalidHandler: function(e, validator) {
			var errors = validator.numberOfInvalids();
			if (errors) {
				var message = errors == 1
					? 'You missed 1 field. It has been highlighted below.'
					: 'You have ' + errors + ' errors in fields.  They have been highlighted below.';
				$("div#Results").html('<div class="ui-state-error ui-corner-all"><ul>' + message + '</ul></div>').show();
			} else {
				$("div#Results").hide();
			}
		},
		focusCleanup: true ,

	
		rules: {
			YourName: {
				required: true,
				rangelength: [2, 255]
			},
			Company: {
				required: false,
				rangelength: [2, 255]
			},
			Phone:{
				required: false,
				rangelength: [2, 35]
			},
			Email:{
				required: true,
				maxlength: 255,      
				email: true
			},
			Comment:{
				required: true,
				rangelength: [2, 25500]
			}
		},
		messages: {
			YourName: "Please enter your name.",
			Company: "Please enter your company name.",
			Phone: "Please enter your phone number.",
			Email: "Please enter your email address.",
			Comment: "Please leave a comment."
		},
		// specifying a submitHandler prevents the default submit
		submitHandler: function( form ) {
			$('#datainput').fadeTo("slow",0.33);
			$('#btnsubmit').attr("disabled", true); 
				
			$(form).ajaxError(ajaxErrorHandler).ajaxStart(function() 
			//{
				
				//$('#datainput').fadeTo("slow",1.0);
				//$('#btnsubmit').removeAttr("disabled"); 
			//	throw e;
			//}).ajaxStart(function() 
			{
			}).ajaxStop(function()
			{
				$('#Results').show() ;
				$('#datainput').hide();
				$('#btnsubmit').removeAttr("disabled"); 
				$('html, body').animate({scrollTop:0}, 'slow'); 
			}).ajaxSubmit({
				target: "#Results",
				url:    "/contactusajax.php"
			});
		},
		// set this class to error-labels to indicate valid fields
		success: function(label) {
			// set &nbsp; as text for IE
			label.html("&nbsp;").addClass("checked");
		}
		});
		
	});

	var errorHandleCount=0;
//$('#UpdateProgressIndicator').bind('ajaxError', ajaxErrorHandeler);
function ajaxErrorHandler(a, b, e) {
	//$('#UpdateProgressIndicator').unbind('ajaxError', ajaxErrorHandeler);
	$("#Results").unbind('ajaxError', ajaxErrorHandler);
	$('#Results').html( "<div class='ui-state-error ui-corner-all'><ul>An error has occurred and our technical support team has been notified.</ul></div>" + b.responseText ).show() ;
	$('#results').html( "<div class='ui-state-error ui-corner-all'><ul>An error has occurred and our technical support team has been notified.</ul></div>" + b.responseText ).show() ;

	//var str = 'event: ' + a.text  + ' response: ' +b.responseText + b.responseXML + b.statusTest  + e.text;
	var strEvent = '' ;
	 for(var p in a){
	   strEvent = strEvent + "&event[" + p + "]=" + a[p] + "    " ;
	 }
	var strXMLHttpRequest= '' ;
	 for(var p in b){ 
		if( p == 'channel' || p == 'null'){
		}
		else{
		strXMLHttpRequest = strXMLHttpRequest + "&XMLHttpRequest[" + p + "]=" + b[p] + "    " ;
		}
	 }
	 var strAjaxOptions = '';
	 for(var p in e){ 
		strAjaxOptions = strAjaxOptions + "&AjaxOptions[" + p + "]=" + e[p] + "    " ;
	 }
	 
	AjaxCounter = 0;
	
	if(errorHandleCount == 0){
		errorHandleCount++;
		$.post( '/ajax/errorHandle.php' , { Event:strEvent, XMLHttpRequest:strXMLHttpRequest, AjaxOption:strAjaxOptions} ,
		function(){
			$("#Results").bind('ajaxError', ajaxErrorHandler);
			errorHandleCount = 0;
		//$('#UpdateProgressIndicator').bind('ajaxError', data);
		});
	}
}

