// JavaScript Document
var onlySpace = /^\s[\s]*\s$/; //Any space that is not surrounded by non-whitespace characters 
var email = /^\w+[\w-\.]*\@\w+((-\w+)|(\w*))\.\w{2,3}$/; //match e-mail address


$(document).ready(validLoader);

function validLoader()
{
	$('#description').keyup(textLimit);
	$('input.required, textarea.required').blur(txtValidate);
	$('form').submit(ajSubmit);

}



//limit text size to 700 characters
function textLimit()
{
	var text = $(this).val();
	text = text.substr(0, 700); 
	$(this).val(text);
}



function txtValidate()
{
	var isValid = true; 
	var thisParent = $(this).parent();
	var errorSpan = $('span.error', thisParent);
	
	if(isBlank($(this)))
	{
		errorSpan.text('This is a required field');
		isValid = false; 
	}
	
	if(this.name == 'email' && !email.test(this.value))
	{
		errorSpan.text('Please be sure and use a valid e-mail address');
		isValid = false;
	}
	
	if(isValid) errorSpan.empty();
	
	
	$(this).data('isValid', isValid);
	
}

function isBlank($textField)
{
	if($textField.val().length == 0 || onlySpace.test($textField.val()))
	{
		return true;
	}
	else return false; 
}

function testFields()
{
	var validFields = true; 
	var formFields = $('.required'); 
	formFields.blur();
	
	formFields.each(function() 
						    {
							    var thisData = $(this).data('isValid');
							    if(thisData == false) validFields = false; 
						    });
	return validFields;
}

function ajSubmit(e)
{
	if(testFields())
	{
		var data = $(this).serialize();
		var formDiv = $('div#form');
		formDiv.slideUp('normal', 
			function()
			{
				formDiv.html('<p>Processing...</p>'); 
				formDiv.slideDown('normal', function() 
													 {
														 $.post("mail.php", data, ajReturn); 
													  }
													  );		
			}
		);
	}
	return false;
	
}

function ajReturn(data)
{
	$('div#form').html('<p>' + data + "</p>");
}

