function validateCheckoutForm() {

	var fields = [
			{	name:'orderaddress-firstname',	required:true,	regex:''	},
			{	name:'orderaddress-lastname',	required:true,	regex:''	},
			{	name:'orderaddress-street',	required:true,	regex:''	},
			{	name:'orderaddress-suburb',	required:true,	regex:''	},
			{	name:'orderaddress-state',	required:true,	regex:''	},
			{	name:'orderaddress-postcode',	required:true,	regex:''	},
			{	name:'orderaddress-country',	required:true,	regex:''	},
			{	name:'orderaddress-email',	required:true,	regex:/^.+@.+\..+$/	},
			{	name:'orderaddress-email-confirm',	required:true,	regex:new RegExp('^'+$('#orderaddress-email').val()+'$')	},
			
			{	name:'deliveryaddress-firstname',	required:true,	regex:''	},
			{	name:'deliveryaddress-lastname',	required:true,	regex:''	},
			{	name:'deliveryaddress-street',	required:true,	regex:''	},
			{	name:'deliveryaddress-suburb',	required:true,	regex:''	},
			{	name:'deliveryaddress-state',	required:true,	regex:''	},
			{	name:'deliveryaddress-postcode',	required:true,	regex:''	},
			{	name:'deliveryaddress-country',	required:true,	regex:''	}
	];
	return checkFields(fields);

}

function validateLoyaltyForm() {
	var fields = [
			{	name:'GivenName',	required:true,	regex:''	},
			{	name:'FamilyName',	required:true,	regex:''	},
			{	name:'email',	required:true,	regex:''	},
			{	name:'confirmemail',	required:true,	regex:new RegExp('^'+$('#email').val()+'$')	}
	];
	return checkFields(fields);
}

function validatePaymentForm() {

	var fields = [
			{	name:'card_number',	required:true,	regex:''	},
			{	name:'cardholder_name',	required:true,	regex:''	},
			{	name:'cvv',	required:true,	regex:/^[0-9]{3,4}$/	},
			{	name:'expiry_date',	required:true,	regex:/^[01]?[0-9]\/[0-9]{2}$/	},
	];
	return checkFields(fields);

}

function validateCustomPaymentForm() {

	var fields = [
			{	name:'name',	required:true,	regex:''	},
			{	name:'email',	required:true,	regex:''	},
			{	name:'amount',	required:true,	regex:/^[0-9]+(\.[0-9]{0,2})?$/	},
	];
	return checkFields(fields);

}

function validateRegisterForm() {

	var fields = [
			{	name:'registeration_form_name',	required:true,	regex:''	},
			{	name:'registeration_form_email',	required:true,	regex:/^.+@.+\..+$/		},
			{	name:'registeration_form_email2',	required:true,	regex:new RegExp('^'+$('#registeration_form_email').val()+'$')},
			{	name:'registeration_form_password',	required:true,	regex:''		},
			{	name:'registeration_form_password2',	required:true,	regex:new RegExp('^'+$('#registeration_form_password').val()+'$')	},
	];
	return checkFields(fields);
}

function validateCustomerAddressForm() {


	var fields = [
			{	name:'customer_address_form_firstname',	required:true,	regex:''	},
			{	name:'customer_address_form_lastname',	required:true,	regex:''	},
			{	name:'customer_address_form_street',	required:true,	regex:''	},
			{	name:'customer_address_form_suburb',	required:true,	regex:''	},
			{	name:'customer_address_form_state',	required:true,	regex:''	},
			{	name:'customer_address_form_postcode',	required:true,	regex:''	},
			{	name:'customer_address_form_email',	required:true,	regex:/^.+@.+\..+$/	},
			{	name:'customer_address_form_email2',	required:true,	regex:new RegExp('^'+$('#customer_address_form_email').val()+'$')	}
	];
	return checkFields(fields);
}

function checkFields(fields) {

	var formValid = true;
	var focus = false;
	var field = null;
	for (var i in fields) {
		field = fields[i];
		el = $('#'+field.name);
		if(field.required && el.val().length==0) {
			formValid=false;
			el.parents('li').addClass('invalid');
			if(!focus) {
				el.focus();
				focus = true;	
			}
		} else {
			if(field.regex!='') {
				if(el.val().length>0 && !el.val().match(field.regex)) {
					formValid=false;
					el.parents('li').addClass('invalid');
					if(!focus) {
						el.focus();
						focus = true;	
					}
				} else {
				el.parents('li').removeClass('invalid');
				
				}
				
			} else {
				el.parents('li').removeClass('invalid');
			}
		
		}
	}
	return formValid;

}
