jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
phone_number = phone_number.replace(/\s+/g, "");
return this.optional(element) || phone_number.length > 9 &&
phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "Please specify a valid phone number");
jQuery.validator.addMethod("postalcodeCAN", function(postalCode, element) {
return postalCode.match(/^[a-zA-Z][0-9][a-zA-Z](-| )?[0-9][a-zA-Z][0-9]$/);
}, "Please specify a valid postal code");
jQuery.validator.addMethod("creditcard2", function(testNum, element) {
return testNum.match(/^((4\d{3})|(5[1-5]\d{2}))(-?|\040?)(\d{4}(-?|\040?)){3}|^(3[4,7]\d{2})(-?|\040?)\d{6}(-?|\040?)\d{5}$/);
}, "Please specify a valid Credit Card Num");
jQuery.validator.addMethod("creditcardtype", function(testType, element) {
var returnValue =false;
switch (Test)
{
case 'VISA':
returnValue =true;
break;
case 'MASTERCARD':
returnValue = true;
break;
case 'AMEX':
returnValue = true;
break;
default:
returnValue = false;
break;
}
return
}, "Invalid Credit Card Type");
jQuery.validator.addMethod("zipcode", function(postalcode, element) {
return this.optional(element) || postalcode.match(/(^\d{5}(-\d{4})?$)|(^[ABCEGHJKLMNPRSTVXYabceghjklmnpstvxy]{1}\d{1}[A-Za-z]{1} ?\d{1}[A-Za-z]{1}\d{1})$/);
}, "Please specify a valid postal/zip code");
jQuery.validator.addMethod(
"CCExp",
function(value, element) {
var minMonth = new Date().getMonth() + 1;
var minYear = new Date().getFullYear();
//var $month = $(params.cardExpMonth);
// var $year = $(params.cardExpYear);
// alert(value.length);
if (value.length >=4)
{
return true;
} else
{
return false;
}
}
,
"Your Credit Card Expiration date is invalid.");
var rulesUS =
{
postalcode:
{
required: true,
zipcode: true
}
,
phone:
{
required: true,
phoneUS:true
},
fax:
{
required: false,
phoneUS:true
},
provStateSelect:
{
required: true
},
province:
{
required: false
}
};
var rulesCAN = { postalcode:
{
required: true,
postalcodeCAN: true
},
phone:
{
required: true,
phoneUS:true
},
fax:
{
required: false,
phoneUS:true
},
provStateSelect:
{
required: true
},
province:
{
required: false
}
};
var rulesINT = { postalcode:
{
required: true
},
phone:
{
required: true
},
fax:
{
required: false
},
provStateSelect:
{
required: false
},
province:
{
required: true
}
};
var payByCC_RULES = {
CreditCardHolder:
{
required: true,
minlength:4
},
CreditCardNum:
{
required: true,
creditcard2: true
},
CreditCardType:
{
required: false
},
CreditCardCVV:
{
required: true,
minlength:3
},
CreditCardExpDate:
{
required: true,
CCExp: true
//minlength: 10
}
};
var payByVISA_RULES = {
CreditCardHolder:
{
required: true,
minlength:4
},
CreditCardNum:
{
required: true,
creditcard2: true
},
CreditCardType:
{
required: true
},
CreditCardCVV:
{
required: true,
minlength:3
},
CreditCardExpDate:
{
required: true,
CCExp: true
//minlength: 10
}
};
var payByINV_RULES = {CreditCardHolder:
{
required: false
},
CreditCardNum:
{
required: false
},
CreditCardType:
{
required: false
},
CreditCardCVV:
{
required: false
},
CreditCardExpDate:
{
required: false
}
};
var scannerFormRules =
{
};
$(document).ready(function()
{
var loader = jQuery('

')
.css({position: "relative", top: "1em", left: "25em"})
.appendTo("body")
.hide();
jQuery().ajaxStart(function() {
loader.show();
}).ajaxStop(function() {
loader.hide();
}).ajaxError(function(a, b, e) {
throw e;
});
// validate signup form on keyup and submit
validator = $("#scannerForm").validate
( {
rules:
{
company:
{
required: true,
minlength: 2
//or min??
},
firstName:
{
required: true,
minlength: 2
//or min??
},
city:
{
required: true,
minlength: 2,
maxlength: 20
//or min??
},
lastName:
{
required: true,
minlength: 2
},
address1:
{
required: true,
minlength: 5
},
phone:
{
required: true,
phoneUS:true
},
fax:
{
required: false,
phoneUS:true
},
country:
{
required: true
},
province:
{
required: false
},
provStateSelect:
{
required: true
},
email:
{
required: true,
email: true
},
booth:
{
required: false,
maxlength: 15
},
postalcode:
{
required: true,
postalcodeCAN: true
},
SC_PKG:
{
required: true
},
PaymentMethod:
{
required:true
},
LQ_EMAILADDRS_ADD:
{
required: false,
email: true
},
CreditCardHolder:
{
required: false
},
CreditCardNum:
{
required: false
},
CreditCardType:
{
required: false
},
CreditCardCVV:
{
required: true
},
CreditCardExpDate:
{
required: false,
CCExp: true
},
LQ_EMAILADDRS_ADD:
{
required: false,
email: true
}
},
messages:
{
firstName:
{
required: "Given name is required",
minlength: jQuery.format("Given name must be at least two characters in length"),
maxlength: jQuery.format("Given name must be at least two characters in length")
},
lastName:
{
required: "Family name is required",
minlength: jQuery.format("Family name must be at least one character in length")
},
company:
{
required: "Company name is required",
minlength: jQuery.format("Company name must be at least two characters in length")
},
city:
{
required: "City is required",
minlength: jQuery.format("City name must be at least one character in length")
},
booth:
{
maxlength: jQuery.format("Maximum 15 Characters")
},
email:
{
required: "Email is required",
email: jQuery.format("Email must be in the format xx@x.xxx")
},
phone:
{
required: "Phone number is required",
phoneUS: "Phone number format must be 8887778613 or 888-777-8613"
},
fax:
{
phoneUS: "Fax number format must be 8887778613 or 888-777-8613"
},
address1:
{
required: "Address is required",
minlength: jQuery.format("Address must be at least five characters in length")
},
postalcode:
{
required: "Postal Code is required",
postalcodeCAN: 'Postal Code is required',
zipcode: "ip Code is required"
},
country:
{
required: "Country is requierd"
},
province:
{
required: "Province/State is required"
},
provStateSelect:
{
required: "Province/State is required"
},
PaymentMethod:{
required: "Payment Method Required"
},
SC_PKG:
{
required: "Please select a package before continuing."
},
LQ_EMAILADDRS_ADD:
{
email: "emails must be in the format xx@x.xxx"
}
,
CreditCardHolder:
{
required: "Creditcard holder name is required"
},
CreditCardNum:
{
required: "Creditcard number is required",
creditcard2 : "Creditcard format is incorrect (16 digits for Visa & MasterCard, 15 digits for American Express)"
},
CreditCardCVV:
{
required: "CVD number is required",
},
AMOUNT_TO_CHARGE:
{
required: "Charge Amount Required",
min:"Must be greater than $1"
}
},
invalidHandler: function(e, validator) {
var errors = validator.numberOfInvalids();
if (errors) {
//showFormErrorDialog();
}}
,
showErrors: function(errorMap, errorList)
{
var controlID;
var controlSelector;
var msg;
var controlValue;
var controlType;
var controlName;
var tipSelector;
try
{
if (errorList.length >1)
{
this.prepareForm();
// return;
}
var myErrorList ={};
if ((this.currentElements[0] === undefined))
{
myErrorList = this.invalid;
//return;
} else
{
controlValue =this.currentElements[0].value;
controlType = this.currentElements[0].type;
controlName = this.currentElements[0].name;
//myErrorList = Array(controlName);
myErrorList[controlName] = "HOLDER";
}
for (var error in myErrorList)
{
controlID = error;
controlType = $("#"+controlID).attr("type");
if (controlType === undefined)
{
controlType = $('[name="'+controlID+'"]').attr("type");
controlID = $('[name="'+controlID+'"]').attr("name");
controlValue = $("#"+controlID).val();
$('[name="'+controlID+'"]').val;
tipSelector ="#"+controlID +'_div';
} else
{
//controlID = this.currentElements[0].id;
controlValue = $("#"+controlID).val();
tipSelector ="#"+controlID ;
}
controlSelector="#"+controlID;
msg=errorMap[controlID];
$(tipSelector).bt(
msg,
{
trigger: ['none','none'],
// clickAnywhereToClose: false,
closeWhenOthersOpen: true,
positions: ['top'],
width: 400
});
if ((!this.settings.rules[controlID].required) && (controlValue =="" ))
{
$(controlSelector).siblings('span').hide();
$(controlSelector +'_div > span').hide();
} else
{
$(controlSelector).siblings('span').show();
$(controlSelector +'_div > span').show();
}
// if ((this.numberOfInvalids() == 0) )
if ((this.invalid[controlID] === undefined) )
{
//$(controlSelector+"ValidationImg").attr('src','images/greencheck2.png');
$(controlSelector).siblings('span').children('img').attr('src','images/greencheck2.png');
$(controlSelector+"_div > span> img").attr('src','images/greencheck2.png');
$(tipSelector).btOff();
} else
{
$(controlSelector).siblings('span').children('img').attr('src','images/redx2.png');
$(tipSelector).btOn();
$(controlSelector+"_div > span> img").attr('src','images/redx2.png');
// $(controlSelector).focus();
}
}
} catch(err)
{}
}
//end validator
//validator.rules('add',scannerFormRules);
});
$('#testBtn').click(function()
{
validateTab();
validator.element("#firstName");
validator.element('[name="SC_PKG"]');
//alert(validation.element('[name="fax"]'));
});
});