Event.observe(window, 'load', init, false);

// Initialize Variables
var disableForm = false;
var sendMessage = false;

// Initialize the AJAX stuff
function init () {
	// Disable submit button
	$('btnSubmit').disabled = true;

	// Setup the text field AJAX functions
	Event.observe('txtName', 'keyup', function (event) { if (nameValidate($F('txtName'))) { swapImage($('imgNameInvalid'),$('imgNameValid')); } else { swapImage($('imgNameValid'),$('imgNameInvalid')); } showPreview(); }, false);
	Event.observe('txtEmail', 'keyup', function (event) { if (emailValidate($F('txtEmail'))) { swapImage($('imgEmailInvalid'),$('imgEmailValid')); } else { swapImage($('imgEmailValid'),$('imgEmailInvalid')); } showPreview(); }, false );
	Event.observe('txtURL', 'keyup', function (event) { if (urlValidate($F('txtURL'))) { swapImage($('imgURLInvalid'),$('imgURLValid')); } else { swapImage($('imgURLValid'),$('imgURLInvalid')); } showPreview(); }, false);
	Event.observe('txtMessage', 'keyup', function (event) { if (messageValidate($('txtMessage').value)) { swapImage($('imgMessageInvalid'),$('imgMessageValid')); } else { swapImage($('imgMessageValid'),$('imgMessageInvalid')); } showPreview(); }, false);

	// Setup the submit button AJAX functions
	Event.observe('btnSubmit', 'click', function (event) { sendMessage = true; showPreview(); $('btnSubmit').disabled = true; sendMessage = false; disableForm = true; }, false);
}

// AJAX updater functions for updating the Message Preview
function showPreview() {
	// Show wait image
	$('imgWait').style.display = "";
	
	// Disable/Enable Submit button
	if ( (messageValidate($('txtMessage').value) && emailValidate($F('txtEmail')) && nameValidate($F('txtName'))) && (disableForm != true) ) {
		$('btnSubmit').disabled = false;
	} else {
		 $('btnSubmit').disabled = true;
	}

	var url = 'http://www.dansway.info/allnews/contact/';
	var pars = 'sendMessage='+sendMessage+'&txtEmail='+escape($F('txtEmail'))+'&txtName='+escape($F('txtName'))+'&txtURL='+escape($F('txtURL'))+'&txtMessage='+escape($('txtMessage').value);
	var target = 'lc_preview';
	var myAjax = new Ajax.Updater(target, url, {onComplete: function() {$('imgWait').style.display = "none"; }, method: 'get', parameters: pars});
}

// Helper function for swapping out images
function swapImage (replaceeImage, replacerImage) {
	replaceeImage.style.display = "none";
	replacerImage.style.display = "";
}

// Validation function for the name field
function nameValidate (name) {
	return (name.length >= 2);
}

// Validation function for the email field
function emailValidate (email) {
	var regExpr = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	return regExpr.test(email);
}

// Validation function for the url field
function urlValidate (url) {
	var regExpr = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/i;
	return regExpr.test(url) && url.length >= 10;
}

// Validation function for the message field
function messageValidate (message) {
	return (message.length >= 4);
}
