(function ($) {	
	$(function () {		
		var validateContactForm = function (e) {			
			var frm = $(e.target).is('form') ? $(e.target) : $(this).parents('form');
			var validated = true;
			var emlRE = /^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$/;
			frm.find(':input:visible').each(function () {
				var elm = $(this);
				switch (elm.attr('id')) {
					case 'frmContactFirstName':
						if ($.trim(elm.val()).length === 0) {
							addErrorMessage(elm, 'CF_FIRSTNAME_EMPTY'.translate());
							validated = false;
						}
						else {
							removeErrorMessage(elm);
						}
						break;
					case 'frmContactLastName':
						if ($.trim(elm.val()).length === 0) {
							addErrorMessage(elm, 'CF_LASTNAME_EMPTY'.translate());
							validated = false;
						}
						else {
							removeErrorMessage(elm);
						}
						break;
					case 'frmContactFunction':
						if ($.trim(elm.val()).length === 0) {
							addErrorMessage(elm, 'CF_FUNCTION_EMPTY'.translate());
							validated = false;
						}
						else {
							removeErrorMessage(elm);
						}
						break;
					case 'frmContactCompany':
						if ($.trim(elm.val()).length === 0) {
							addErrorMessage(elm, 'CF_COMPANY_EMPTY'.translate());
							validated = false;
						}
						else {
							removeErrorMessage(elm);
						}
						break;
					case 'frmContactStreet':
						if ($.trim(elm.val()).length === 0) {
							addErrorMessage(elm, 'CF_STREET_EMPTY'.translate());
							validated = false;
						}
						else {
							removeErrorMessage(elm);
						}
						break;
					case 'frmContactZipCity':
						if ($.trim(elm.val()).length === 0) {
							addErrorMessage(elm, 'CF_ZIP_CITY_EMPTY'.translate());
							validated = false;
						}
						else {
							removeErrorMessage(elm);
						}
						break;
					case 'frmContactEmail':
						if ($.trim(elm.val()).length === 0) {
							addErrorMessage(elm, 'CF_EMAIL_EMPTY'.translate());
							validated = false;
						}
						else if (!emlRE.test($.trim(elm.val()))) {
							addErrorMessage(elm, 'CF_EMAIL_INVALID'.translate());
							validated = false;
						}
						else {
							removeErrorMessage(elm);
						}
						break;
				}
			});
			return validated;
		};	
		var addErrorMessage = function (elm, msg) {
			var errCnt = elm.prevAll('span.f-err');
			if (errCnt.length === 0) {
				elm.before('<span class="f-err">' + msg + '</span>');
			}
			else {
				errCnt.html(msg);
			}
		};
		var removeErrorMessage = function (elm) {
			var errCnt = elm.prevAll('span.f-err');
			if (errCnt.length > 0) {
				errCnt.remove();
			}
		};
		$('#frmContact').submit(validateContactForm);
	});	
})(jQuery);

