$(document).ready
( 
 	function() 
	{ 
		frmContactInit();
	} 
);

function frmContactInit()
{
	var defaultMessage = $('#frm-contact-message-label').val();
	$('#frm-contact-message').focus
	(
	 	function()
		{
			if($.trim($(this).val()) == defaultMessage) 
				$(this).val('');
		}
	).blur
	(
	 	function()
		{
			if($.trim($(this).val()) == '' || $.trim($(this).val()) == defaultMessage) 
				$(this).val(defaultMessage);
		}
	); 
	$('#frm-contact').submit
	(
	 	function()
		{
			return frmContactValidate();
		}
	);
}

function frmContactValidate()
{
	var firstname = $('#frm-contact-firstname').val();
	var lastname = $('#frm-contact-lastname').val();
	var email = $('#frm-contact-email').val();
	var username = $('#frm-contact-username').val();
	var defaultMessage = $('#frm-contact-message-label').val();
	var message = $.trim($('#frm-contact-message').val()); 
	var keystring = $.trim($('#frm-contact-keystring').val()); 
	if(firstname.length == 0)
	{
		window.alert(frmContactValidateMsg.error_firstname_empty);
		$('#frm-contact-firstname').get(0).focus();
		return false;
	}
	if(lastname.length == 0)
	{
		window.alert(frmContactValidateMsg.error_lastname_empty);
		$('#frm-contact-lastname').get(0).focus();
		return false;
	}
	if(email.length == 0)
	{
		window.alert(frmContactValidateMsg.error_email_empty);
		$('#frm-contact-email').get(0).focus();
		return false;
	}
	if(email.search(/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/) == -1 || email.length > 128)
	{
		window.alert(frmContactValidateMsg.error_email_invalid);
		$('#frm-contact-email').get(0).focus();
		return false;
	}
	if(trashDomainsRegexp.test(email) == true)
	{
		window.alert(frmContactValidateMsg.error_email_forbidden);
		$('#frm-contact-email').val('');
		$('#frm-contact-email').get(0).focus();
		return false;
	}
	if(username.length > 32 || username.length < 3 || username.search(/^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$/i) == -1)
	{
		window.alert(frmContactValidateMsg.error_username_invalid);
		$('#frm-contact-username').val('');
		$('#frm-contact-username').get(0).focus();
		return false;
	}
	if(message.length == 0 || message == defaultMessage)
	{
		window.alert(frmContactValidateMsg.error_message_empty);
		$('#frm-contact-message').get(0).focus();
		return false;
	}
	if(message.length > 2048)
	{
		window.alert(frmContactValidateMsg.error_message_too_long);
		$('#frm-contact-message').get(0).focus();
		return false;
	}
	if(keystring.length == 0)
	{
		window.alert(frmContactValidateMsg.error_keystring_empty);
		$('#frm-contact-keystring').get(0).focus();
		return false;
	}
	return true;
}