//Ajax Progress Display
function progDisplay(status) {
	try {
		initHTML = '<p style="font-weight:bold;" align="center">Form is processing. Please wait.<br /><img src="/img/ajaxcircle.gif" /><br />';
		switch(status) {
			case 1: progHTML = "Initialized."; break;
			case 2: progHTML = "Request Sent."; break;
			case 3: progHTML = "Receiving Response."; break;
			case 4: progHTML = "Processing Response."; break;
			default: progHTML = "..."; break;
		}
		initHTML += progHTML; $('ajax-submit').innerHTML = initHTML+"</p>";
	} catch(e) { }
}
function resetForm(keys) {
	keys.each(function(s, i) {
		$(s).setStyle({ backgroundColor: '#fff', borderColor: '#ccc' });
	});
}
//AJAX Post Form
function postForm(){
	try {
		var submitHTML = $('ajax-submit').innerHTML;
		progDisplay(1);
		var value = Form.serialize($('ajaxform'));
		var url = '/inc/post-count.php?'+value;
		var keys = new Ajax.Request(url, { method:'get',
			onSuccess: function(transport) { 
				keys = transport.responseText;
				keys = keys.evalJSON();
				postFormPost(submitHTML);
				resetForm(keys);
			}
		});
	} catch(e){
			
	}
}
function postFormPost(submitHTML){
	try {
		var formValidate = true;
		if(formValidate == true){	
			var value = Form.serialize($('ajaxform'));
			var url = '/inc/post-internal.php?'+value;
			var data = new Ajax.Request(url, { method:'post',
				onCreate: function() { progDisplay(1); },
				onLoaded: function() { progDisplay(2); },
				onInteractive: function() { progDisplay(3); },
				onSuccess: function(transport) { progDisplay(4); 
					postFormResponse(transport.responseText, submitHTML); 
				},
				onFailure: function(transport) { 
					$('ajax-submit').innerHTML = submitHTML;
					alert("Response: "+transport.responseText+"\nServer Status: "+transport.status);
				}
			});
		}
	} catch(e){
		
	}
}
//AJAX Form Post Response Handler
function postFormResponse(response, submitHTML){
	try { 
		var response = response.evalJSON();
		var result = parseFloat(response.result);
		var message = response.message;
		if(result == 1) {
			$('ajaxcont').submit();
			//$('ajax-submit').innerHTML = submitHTML;
		} 
		else if(result == 2) {
			var errors = response.errors;
			errors.each(function(s, i) {
				$(s).setStyle({ backgroundColor: '#fff6f6', borderColor: '#f00' });
			});
			$('ajax-submit').innerHTML = submitHTML;
			alert('There was a problem submitting your quote.\n'+message);
		} else {
			$('ajax-submit').innerHTML = submitHTML;
			alert('There was a problem submitting your quote.\n'+message);
		}
	}
	catch(e){
		$('ajax-submit').innerHTML = submitHTML;
		alert(e);	
	}
}
