/* CONSTANTS */
/* Will need to be reset if tbRole changes */
var MFG_ADMIN = 2;
var MFG_SALES_ADMIN = 3;
var MFG_SERVICE_ADMIN = 4;
var DEALER_ADMIN = 5;
var DEALER_REP = 6;
/* from tbBusiness */
var MFG = 1;
// VALIDATOR FUNCTIONS //
var problems;
function v_business_names(el){
var t = el.value;
var pat = /[^\w^\s^(-`',.!$|@%#’)]/;
var v = new RegExp(pat);
var tt = v.exec(t);
if(!(!(tt))){
problems += el.name + " shouldn't contain disallowed character "+tt+"\n";
}
if(!t.length){
problems += el.name + "\n";
}
}
function v_optional_numbers(el){ // is a number or comma
var str = el.value;
var PAT = new RegExp(/[^,\d]/);
if (PAT.test(str)){
problems += el.name + " must be a number\n";
}
}
function v_addresses_mandatory(el){
var str = el.value;
if (!str.length){
problems += el.name + "\n";
}
var PAT = new RegExp(/[^\w^'^-^.^\s]/);
var tt = PAT.exec(str);
if (tt){
problems += el.name + " should not contain " + tt +"\n";
}
}
function v_addresses(el){
var str = el.value;
var PAT = new RegExp(/[^\w^'^-^.^\s]/);
var tt = PAT.exec(str);
if (tt){
problems += el.name + " should not contain " + tt;
}
}
function v_numbers(el){ // is a number or comma
var str = el.value;
if (!str.length){
problems += el.name + " must be entered\n";
}
var PAT = new RegExp(/[^,\d]/);
if (PAT.test(str)){
problems += el.name + " must be a number\n";
}
}
function v_floats(el){ // is a number or comma
var str = el.value;
if (!str.length){
problems += el.name + " must be entered\n";
}
var PAT = new RegExp(/[^,.\d]/);
if (PAT.test(str)){
problems += el.name + " must be a number\n";
}
}
function v_gtzero(el){// greater than zero
t = el.value;
if(!(t>0)){
problems += el.name +" must be selected\n";
}
}
function v_notnull(el){
t = el.value;
if (!(t)){
problems += el.name +" must be selected\n";
}
}
function v_has_value(el){// greater than zero
t = el.value;
if(!(t.length > 0)){
problems += el.name +" must be filled in\n";
}
}
function v_zipcode(el){// is a zipcode
var pat = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
var validator = new RegExp(pat);
var t = el.value;
if (! validator.test(t)){
problems += el.name + " isn't a valid zipcode\n";
}
}
function v_zipcode_mandatory(el){
var str = el.value;
var pat = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
var validator = new RegExp(pat);
if (! validator.test(str)){
problems += el.name + " isn't a valid zipcode\n";
}
}
function v_postal(el){// is a zipcode or canadian
var pat = /(^\d{5}$)|[A-Z]\d[A-Z] \d[A-Z]\d/;
// var pat = "(^\d{5}$)|(^\d{5}-\d{4}$)";
var validator = new RegExp(pat);
var t = el.value;
if (! validator.test(t)){
problems += el.name + " isn't a valid zip or postal code\n";
}
}
function v_special(el){// special case for role/business conflicts
var elArray = el.form;
var lim = elArray.length;
for(var i = 0; i < lim; i++){
if ((elArray[i].validator)&&(elArray[i].validator == "special")){
if(elArray[i].value){
if(!(t > 0)){
problems += elArray[i].name + " must be selected\n";
}
if((elArray[i-1].value == MFG_SALES_ADMIN)||(elArray[i-1].value == MFG_SERVICE_ADMIN)){
if(elArray[i].value != MFG ){
problems += "role and business combination conflict\n";
}
} else {
if((elArray[i-1].value == DEALER_ADMIN)||(elArray[i-1].value == DEALER_REP)){
if(elArray[i].value == MFG){
problems += "role and business combination conflict\n";
}
}
}
}
}
}
}
function v_names(el){// names - works for o'brian, zeta-jones
var t = el.value;
var pat = /[^\w^'^-]/;
var v = new RegExp(pat);
var tt = v.exec(t);
if(!(!(tt))){
problems += el.name + " shouldn't contain disallowed character "+tt+"\n";
}
if(!t.length){
problems += el.name + "\n";
}
}
function v_names_mandatory(el){// names - works for o'brian, zeta-jones
var t = el.value;
var pat = /[^\w^'^-]/;
var v = new RegExp(pat);
var tt = v.exec(t);
if(!(!(tt))){
problems += el.name + " shouldn't contain disallowed character "+tt+"\n";
}
if(!t.length){
problems += el.name + "\n";
}
}
function v_names2_mandatory(el){// names - works for o'brian, zeta-jones
var t = el.value;
var pat = /[^\w^'^-^\s]/;
var v = new RegExp(pat);
var tt = v.exec(t);
if(!(!(tt))){
problems += el.name + " shouldn't contain disallowed character "+tt+"\n";
}
if(!t.length){
problems += el.name + "\n";
}
}
function v_alphanumeric(el){// alphanumeric - show disallowed characters
var t = el.value;
var pat = /\W/g;
var v = new RegExp(pat);
if(t.length){
var tt = v.exec(t);
if(!(!(tt))){
problems += el.name + " shouldn't contain disallowed character "+tt+"\n";
}
} else {
problems += el.name +"\n";
}
}
function v_optional(el){// optional - allows anything but parentheses, brackets and curly brackets
var t = el.value; // max length of 128 characters
var pat = /[\)\(\{\}\[\]]/;
var v = new RegExp(pat);
var tt = v.exec(t);
if(!(!(tt))){
problems += "disallowed character \" " + tt + " \" in " + el.name+"\n";
}
if (t.length > 128){
problems += el.name +" entry is longer than allowable ";
}
}
function v_phone(el){//
var t = el.value; //
if(t.length > 0){
var pat = /^\(\d\d\d\) \d\d\d-\d\d\d\d$/;
var v = new RegExp(pat);
var tt = v.exec(t);
if(!(tt)){
problems += el.name +" - Phone numbers must be entered in this format: (NNN) NNN-NNNN\n";
}
}
}
function v_phone_mandatory(el){//
var t = el.value; //
if(t.length > 0){
var pat = /^\(\d\d\d\) \d\d\d-\d\d\d\d$/;
var v = new RegExp(pat);
var tt = v.exec(t);
if(!(tt)){
problems += el.name +" - Phone numbers must be entered in this format: (NNN) NNN-NNNN\n";
}
} else {
problems += el.name +"\n"
}
}
function v_email(el){
var t = el.value;
if(t.length > 0){
var pat = /^(.+)@(.+)$/;
// var pat = /[^\w^'^-]/;
var v = new RegExp(pat);
var tt = v.exec(t);
if(!(tt)){
problems += "not a valid email address\n";
}
if (t.length > 128){
problems += el.name +" entry is longer than allowable\n ";
}
}
}
function v_email_mandatory(el){
var t = el.value;
if(t.length > 0){
var pat = /^(.+)@(.+)$/;
// var pat = /[^\w^'^-]/;
var v = new RegExp(pat);
var tt = v.exec(t);
if(!(tt)){
problems += "not a valid email address\n";
}
if (t.length > 128){
problems += el.name +" entry is longer than allowable ";
}
} else {
problems += el.name + " must be entered\n";
}
}
function v_minimum5(el){// passwords and usernames no funny characters, size defined
var t = el.value;
var pat = /\w{5,}/;
var v = new RegExp(pat);
if((!(v.exec(t)))||(t.length > 13)){
problems += el.name + " must be at between 5 and 13 characters\n";
}
}
function v_vin(el){
var t= el.value;
var pat = /\w{17}/;
var v = new RegExp(pat);
if((!(v.exec(t)))||(t.length > 17)){
problems += el.name + " must be 17 characters\n";
}
}
// function to call above v_funcs as neccessary
function validateForm(ob){
var e;
problems = "";
var msg = "Please correct or fill in:\n";
// Call the form an array for clarity
elArray = ob.form;
for(var i = 0; i < elArray.length; i++){
if(elArray[i].title){
f = "v_" + elArray[i].title +"(elArray[i]);";
try{
eval(f);
}
catch (e){
}
finally{
if(e){
problems += elArray[i].title + " validator is missing";
}
}
}
}
if(problems.length){
alert(msg + problems);
return false;
} else {
return true;
}
}
function makeValidatorArray(ob){
var valblock = "";
for(var i = 0; i < ob.length;i++){
valblock +=" \n";
}
return valblock;
}