/*  
/   marketingQED Limited
/   forms.js
/   Created by Enovate Design
*/

$(document).ready(function() {
	
	$('form').live('submit', function() {
		
		var errors = 0;
		
		$('.error').remove();
		
		$('.req', this).each(function() {
			if(!checkRequired($(this))) errors = 1;
		});
		
		$('.email', this).each(function() {
			if(!checkEmail($(this))) errors = 1;
		});
		
		$('.nmbr', this).each(function() {
			if(!checkNumber($(this))) errors = 1;
		});
		
		
		var isfancybox = $(this).closest('#fancybox-wrap').length;
			
		if(!isfancybox) {
			if(errors==1) return false;
			else return true;
		}
		else {
			if(errors==1) {
				$.fancybox.resize();
			}
			else {
				$.fancybox.showActivity();
				var formaction = $(this).attr('action');
				var formdata = $(this).serialize();
				var eventTracking = '';
				$('fieldset legend:contains(Brochures)').parent().children('p').children('label').children('input[type=checkbox]:checked').each(function() {
					eventTracking += $(this).next('span').text();
					eventTracking += ', ';
				});
				if(eventTracking != '') {
					eventTracking = eventTracking.slice(0, - 2);
					_gaq.push(['_trackEvent', 'Form', 'RequestBrochure', eventTracking]);
					//console.log(eventTracking);
				}
				$.ajax({type: "POST", url: formaction, data: formdata, 
					success: function(msg){ 
						$('#fancybox-content').html(msg);
						$.fancybox.hideActivity();
					} 
				});	
				$.fancybox.resize();	
			}
			return false;
		}
		
	});
	
	$('.errorcontainer input, .errorcontainer select, .errorcontainer textarea').live('focus', function() {
		$(this).closest('p').removeClass('errorcontainer');
		$(this).siblings('.error').remove();
	});
	
});

function checkRequired($el) {
	if($el.val() == "") {
		addError($el, 'is required');
		return false;
	}
	else return true;
}

function checkNumber($el) {
	var nmbrreg = /^([0-9\- ])+$/;
	if($el.val() != "") {
		if(!nmbrreg.test($el.val())) {
			addError($el, 'is not a number');
			return false;
		}
		else return true;
	}
	else return true;
}

function checkEmail($el) {
   var emailreg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   if($el.val() != "") {
	   if(!emailreg.test($el.val())) {
		   addError($el, 'is not a valid email address');
		   return false;
	   }
	   else return true;
   }
   else return true;
}

function addError($el, msg) {
	label = $el.closest('p').find('label').text().replace(' *', '');
	$el.closest('p').addClass('errorcontainer');
	$el.closest('p').append('<span class="error"><strong>' + label + '</strong> ' + msg + '<b>&nbsp;</b></span>');		
}
