/* 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; }