$(function(){
    $("#form").submit(function(){
        var good = true;
        $(".required").remove();
		if (good) {
			$(".vol_required").each(function(){
				if (!$(this).val() || $(this).val()=='-1') {
					$(this).after('<span class="required"> Required<\/span>');
					this.focus();
					good = false;
					return false;
				}
			});
		}
		if (good && $('#sameasbilling').length > 0 && !$('#sameasbilling').attr('checked')) {
			$('.vol_shipping_required').each(function(){
				if (!$(this).val()) {
					$(this).after('<span class="required"> Required<\/span>');
					this.focus();
					good = false;
					return false;
				}
			});
		}
        if (good) {
            var filter = /^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|AERO|ARPA|ASIA|BIZ|CAT|COM|COOP|EDU|GOV|INFO|INT|JOBS|MIL|MOBI|MUSEUM|NAME|NET|ORG|PRO|TEL|TRAVEL)$/i;
            $(".val_email").each(function(){
                if (!filter.test($(this).val())) {
                    $(this).after('<span class="required"> Email is not valid</span>');
                    false_check = 1;
                    this.focus();
                    good = false;
                    return false;
                }
            });
        }
        if (good) {
            var filter = /^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/;
            $(".val_phone").each(function(){
                if ($(this).val().length > 0 && !filter.test($(this).val())) {
                    $(this).after('<span class="required"> Phone number is not valid</span>');
                    false_check = 1;
                    this.focus();
                    good = false;
                    return false;
                }
            });
        }
        if (good) {
            $(".val_number").each(function(){
                var number = parseInt($(this).val(), 10);
                if (isNaN(number) || number <= 0) {
                    $(this).after('<span class="required"> Must be a number greater than 0</span>');
                    false_check = 1;
                    this.focus();
                    good = false;
                    return false;
                }
            });
        }
        return good;
    });
});
