var numb = '0123456789';
var lwr = 'abcdefghijklmnopqrstuvwxyz';
var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

function isValid(parm,val) {
//if (parm == "") return true;
for (i=0; i<parm.length; i++) {
if (val.indexOf(parm.charAt(i),0) == -1) return false;
}
return true;
}

function isNumber(parm) {return isValid(parm,numb);}
function isLower(parm) {return isValid(parm,lwr);}
function isUpper(parm) {return isValid(parm,upr);}
function isAlpha(parm) {return isValid(parm,lwr+upr);}
function isAlphanum(parm) {return isValid(parm,lwr+upr+numb);} 


function IsAlphnumeric(event)
{
    var val;
    if (navigator.appName == "Microsoft Internet Explorer")
    {
        val = window.event.keyCode;
    }
    else if(navigator.appName == "Mozilla")
    {
        val = event.keyCode;
    }
    if(val>=48 && val<=57 || val>=65 && val<=90 || val>=97 && val<=122)
    {
        var txt=obj.value;
    }
    else if(val==8)
    {
        return true;
    }
    else return false;
}

function isDate(mm,dd,yyyy) {
   var d = new Date(mm + "/" + dd + "/" + yyyy);
   return d.getMonth() + 1 == mm && d.getDate() == dd && d.getFullYear() == yyyy;
}

function detectPN(_f)
{
  /*
   * First get the object of the form "f1"->_f
   * Then get the "_string" to manipulate from the form object "start"
   */
//  var _f=document.f1;
  //alert(_f.value);
  var _string=_f.val();

  /*
   * Determine if all the () and " " and "-" are in the string.
   * Better job could be done here to validate the number is correct format.
   */
  if(_string.indexOf("(")==-1 ||
     _string.indexOf(")")==-1 ||
     _string.indexOf(" ")==-1 ||
     _string.indexOf("-")==-1)
  {
    /*
     * If not correct, show the user some feedback...
     */
//    _f.area.value="?";
//    _f.pre.value="?";
//    _f.suf.value="?";
  }
  else /* else it must be a valid formatted phone number */
  {
    /*
     * Split the phone number around the space into
     * 2 array spots: "(###)" and "###-####"
     */
    var _temp=_string.split(" ");

    /*
     * Go get the Area Code from the first "(###)"
     * as index spots 1-4:
     * (###)
     * 01234
     */
    var _areaCode=_temp[0].substring(1,4);

    /*
     * Go split the 2nd half into 2 parts around the "-"
     */
    var _prefix=_temp[1].split("-")[0];
    var _suffix=_temp[1].split("-")[1];

    /*
     * Store the results in the form.
     */

    
    return (_areaCode+_prefix+_suffix);
  }
}

//DL Validation

       function ValidateDriverLicenseByState(state, DLNumber)
       {
           var sErrorMsg='';
           switch (state)
           {
                case "AL": 
                    if(!RegExp("^\\d{7}$|^[A-Za-z]{1}\\d{6}$").test(DLNumber))
                    {
                        sErrorMsg="Alabama - 7 Numeric, or 1 Alpha + 6 Numeric";
                    }
                   break;
                case "AR":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^(?:[A-Za-z]\\d{8}|\\d{9})$"))
//                                      ? string.Empty
//                                      : "DL Number: Arkansas (AR) - 8 Numeric with zero in front, or 9 Numeric.";
                    if(!RegExp("^0\\d{8}$|^\\d{9}$").test(DLNumber))
                    {
                        sErrorMsg="Arkansas - 9 Numeric.";
                    }                                      
                   break;
                case "AZ":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^(?:[A-Za-z]\\d{8}|\\d{9})$"))
//                                      ? string.Empty
//                                      : "DL Number: Arizona (AZ) - 9 Numeric, or 1 Alpha + 8 Numeric.";
                    if(!RegExp("^(?:[A-Za-z]\\d{8}|\\d{9})$").test(DLNumber))
                    {
                        sErrorMsg="Arizona - 9 Numeric, or 1 Alpha + 8 Numeric.";
                    } 
                    break;
                case "CO":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{9}$|^[A-Za-z]{1}\\d{1,6}$"))
//                                      ? string.Empty
//                                      : "DL Number: Colorado (CO) - 9 Numeric, or 1 Alpha + up to 6 Numeric.";
                    if(!RegExp("^\\d{9}$|^[A-Za-z]{1}\\d{1,6}$").test(DLNumber))
                    {
                        sErrorMsg="Colorado - 9 Numeric, or 1 Alpha + up to 6 Numeric.";
                    }
                    break;
                case "CT":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{9}$"))
//                                      ? string.Empty
//                                      : "DL Number: Connecticut (CT) - 9 Numeric.";
                    if(!RegExp("^\\d{9}$").test(DLNumber))
                    {
                        sErrorMsg="Connecticut - 9 Numeric.";
                    }
                    break;
                case "DE":                   
                    if(!RegExp("^\\d{1,7}$").test(DLNumber))
                    {
                        sErrorMsg="Delaware - 1 to 7 Numeric.";
                    }
                    break;
                case "DC":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{7}$|^\\d{9}$"))
//                                      ? string.Empty
//                                      : "DL Number: Washington (DC) - 7 Numbers or 9 Numbers.";
                    if(!RegExp("^\\d{7}$|^\\d{9}$").test(DLNumber))
                    {
                        sErrorMsg="Washington - 7 Numbers or 9 Numbers.";
                    }
                    break;                
                case "FL":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^[A-Za-z]{1}\\d{12}$"))
//                                      ? string.Empty
//                                      : "DL Number: Florida (FL) - 1 Alpha + 12 Numeric.";
                    if(!RegExp("^[A-Za-z]{1}\\d{12}$").test(DLNumber))
                    {
                        sErrorMsg="Florida - 1 Alpha + 12 Numeric.";
                    }
                    break;  
                case "ID":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^[A-Za-z]{2}\\d{6}[A-Za-z]{1}$|^\\d{9}$"))
//                                      ? string.Empty
//                                      : "DL Number: Idaho (ID) - 2 Alpha + 6 Numeric + 1 Alpha, or 9 Numeric.";
                    if(!RegExp("^[A-Za-z]{2}\\d{6}[A-Za-z]{1}$|^\\d{9}$").test(DLNumber))
                    {
                        sErrorMsg="Idaho - 2 Alpha + 6 Numeric + 1 Alpha, or 9 Numeric.";
                    }
                    break;
                case "IN":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{10}$|^[A-Za-z]{1}\\d{9}$"))
//                                      ? string.Empty
//                                      : "DL Number: Indiana (IN) - 10 Numeric, or 1 Alpha + 9 Numeric";
                    if(!RegExp("^\\d{10}$|^[A-Za-z]{1}\\d{9}$").test(DLNumber))
                    {
                        sErrorMsg="Indiana - 10 Numeric, or 1 Alpha + 9 Numeric.";
                    }
                    break;
                case "IA":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{9}$|^\\d{3}[A-Za-z]{2}\\d{4}$"))
//                                      ? string.Empty
//                                      : "DL Number: Iowa (IA) - 9 Numeric, or 3 Numeric + 2 Alpha + 4 Numeric.";
                    if(!RegExp("^\\d{9}$|^\\d{3}[A-Za-z]{2}\\d{4}$").test(DLNumber))
                    {
                        sErrorMsg="Iowa - 9 Numeric, or 3 Numeric + 2 Alpha + 4 Numeric.";
                    }
                    break;
                case "KS":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{9}$|^[Kk]\\d{8}$"))
//                                      ? string.Empty
//                                      : "DL Number: Kansas (KS) - 9 Numeric, or 'K' + 8 numeric.";
                    if(!RegExp("^\\d{9}$|^[Kk]\\d{8}$").test(DLNumber))
                    {
                        sErrorMsg="Kansas - 9 Numeric, or 'K' + 8 numeric.";
                    }
                    break;
                case "KY":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^[A-Za-z]{1}\\d{8}$"))
//                                      ? string.Empty
//                                      : "DL Number: Kentucky (KY) - 1 Alpha + 8 Numeric.";
                    if(!RegExp("^[A-Za-z]{1}\\d{8}$").test(DLNumber))
                    {
                        sErrorMsg="Kentucky - 1 Alpha + 8 Numeric.";
                    }
                    break;
                case "LA":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{9}$"))
//                                      ? string.Empty
//                                      : "DL Number: Louisiana (LA) - 9 Numeric.";
                    if(!RegExp("^\\d{9}$").test(DLNumber))
                    {
                        sErrorMsg="Louisiana - 9 Numeric.";
                    }
                    break;
                case "ME":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{7}$"))
//                                      ? string.Empty
//                                      : "DL Number: Maine (ME) - 7 Numeric.";
                    if(!RegExp("^\\d{7}$").test(DLNumber))
                    {
                        sErrorMsg="Maine - 7 Numeric.";
                    }
                    break;
                case "MD":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^[A-Za-z]{1}\\d{12}$"))
//                                      ? string.Empty
//                                      : "DL Number: Maryland (MD) - 1 Alpha + 12 Numeric.";
                    if(!RegExp("^[A-Za-z]{1}\\d{12}$").test(DLNumber))
                    {
                        sErrorMsg="Maryland - 1 Alpha + 12 Numeric.";
                    }
                    break;
                case "MA":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{9}$|^[Ss]\\d{8}$"))
//                                      ? string.Empty
//                                      : "DL Number: Massachusetts (MA) - 9 Numeric, or “S” + 8 Numeric.";
                    if(!RegExp("^\\d{9}$|^[Ss]\\d{8}$").test(DLNumber))
                    {
                        sErrorMsg="Massachusetts - 9 Numeric, or “S” + 8 Numeric.";
                    }
                    break;
                case "MI":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^[A-Za-z]{1}\\d{12}$"))
//                                      ? string.Empty
//                                      : "DL Number: Michigan (MI) - 1 Alpha + 12 Numeric.";
                    if(!RegExp("^[A-Za-z]{1}\\d{12}$").test(DLNumber))
                    {
                        sErrorMsg="Michigan - 1 Alpha + 12 Numeric.";
                    }
                    break;
                case "MN":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^[A-Za-z]{1}\\d{12}$"))
//                                      ? string.Empty
//                                      : "DL Number: Minnesota (MN) - 1 Alpha + 12 Numeric.";
                    if(!RegExp("^[A-Za-z]{1}\\d{12}$").test(DLNumber))
                    {
                        sErrorMsg="Minnesota - 1 Alpha + 12 Numeric.";
                    }
                    break;
                case "MS":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{9}$"))
//                                      ? string.Empty
//                                      : "DL Number: Mississippi (MS) - 9 Numeric.";
                    if(!RegExp("^\\d{9}$").test(DLNumber))
                    {
                        sErrorMsg="Mississippi - 9 Numeric.";
                    }
                    break;
                case "MO":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{9}$|^[A-Za-z]{1}\\d{5,9}$"))
//                                      ? string.Empty
//                                      : "DL Number: Missouri (MO) - 9 Numeric, or 1 Alpha + 5-9 Numeric.";
                    if(!RegExp("^\\d{9}$|^[A-Za-z]{1}\\d{5,9}$").test(DLNumber))
                    {
                        sErrorMsg="Missouri - 9 Numeric, or 1 Alpha + 5-9 Numeric.";
                    }
                    break;
                case "MT":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{13}$|^[A-Za-z0-9]{9}$"))
//                                      ? string.Empty
//                                      : "DL Number: Montana (MT) - 13 Numeric, or 9 alpha-numeric.";
                    if(!RegExp("^\\d{13}$|^[A-Za-z0-9]{9}$").test(DLNumber))
                    {
                        sErrorMsg="Montana - 13 Numeric, or 9 alpha-numeric.";
                    }
                    break;
                case "NE":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^[A-Za-z]{1}\\d{3,8}$"))
//                                      ? string.Empty
//                                      : "DL Number: Nebraska (NE) - 1 Alpha + 3-8 Numeric.";
                    if(!RegExp("^[A-Za-z]{1}\\d{3,8}$").test(DLNumber))
                    {
                        sErrorMsg="Nebraska - 1 Alpha + 3-8 Numeric.";
                    }
                    break;
                case "NV":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{10}$|^\\d{12}$|^[Xx]\\d{8}$"))
//                                      ? string.Empty
//                                      : "DL Number: Nevada (NV) - 10 Numeric, or 12 Numeric, or “X“ + 8 Numeric.";
                    if(!RegExp("^\\d{10}$|^\\d{12}$|^[Xx]\\d{8}$").test(DLNumber))
                    {
                        sErrorMsg="Nevada - 10 Numeric, or 12 Numeric, or “X“ + 8 Numeric.";
                    }
                    break;
                case "NJ":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^[A-Za-z]{1}\\d{14}$"))
//                                      ? string.Empty
//                                      : "DL Number: New Jersey (NJ) - 1 Alpha + 14 Numeric";
                    if(!RegExp("^[A-Za-z]{1}\\d{14}$").test(DLNumber))
                    {
                        sErrorMsg="New Jersey - 1 Alpha + 14 Numeric.";
                    }
                    break;
                case "NM":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{9}$"))
//                                      ? string.Empty
//                                      : "DL Number: New Mexico (NM) - 9 Numeric.";
                    if(!RegExp("^\\d{9}$").test(DLNumber))
                    {
                        sErrorMsg="New Mexico - 9 Numeric.";
                    }
                    break;
                case "NY":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{9}$|^[A-Za-z]{1}\\d{18}$"))
//                                      ? string.Empty
//                                      : "DL Number: New York (NY) - 9 Numeric, or 1 Alpha + 18 Numeric.";
                    if(!RegExp("^\\d{9}$|^[A-Za-z]{1}\\d{18}$").test(DLNumber))
                    {
                        sErrorMsg="New York - 9 Numeric, or 1 Alpha + 18 Numeric.";
                    }
                    break;
                case "ND":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{9}$|^[A-Za-z]{3}\\d{6}$"))
//                                      ? string.Empty
//                                      : "DL Number: North Dakota (ND)- 9 Numeric, or 3 Alpha + 6 Numeric.";
                    if(!RegExp("^\\d{9}$|^[A-Za-z]{3}\\d{6}$").test(DLNumber))
                    {
                        sErrorMsg="North Dakota - 9 Numeric, or 3 Alpha + 6 Numeric.";
                    }
                    break;
                case "OK":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^(?!000)([0-6]\\d{2}|7([0-6]\\d|7[012]))([ -]?)(?!00)\\d\\d\\3(?!0000)\\d{4}$|^\\d{9}$|^[A-Za-z]{1}\\d{9}$"))
//                                      ? string.Empty
//                                      : "DL Number: Oklahoma (OK) - 9 Numeric or 1 Alpha 9 Numeric.";
                    if(!RegExp("^(?!000)([0-6]\\d{2}|7([0-6]\\d|7[012]))([ -]?)(?!00)\\d\\d\\3(?!0000)\\d{4}$|^\\d{9}$|^[A-Za-z]{1}\\d{9}$").test(DLNumber))
                    {
                        sErrorMsg="Oklahoma - 9 Numeric or 1 Alpha 9 Numeric.";
                    }
                    break;
                case "RI":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{7}$|^[Vv]\\d{6}$"))
//                                      ? string.Empty
//                                      : "DL Number: Rhode Island (RI) - 7 Numeric, or “V” and six numbers for disabled veterans.";
                    if(!RegExp("^\\d{7}$|^[Vv]\\d{6}$").test(DLNumber))
                    {
                        sErrorMsg="Rhode Island - 7 Numeric, or “V” and six numbers for disabled veterans.";
                    }
                    break;
                case "SC":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{1,10}$"))
//                                      ? string.Empty
//                                      : "DL Number: South Carolina (SC) - 1 to 10 Numeric.";
                    if(!RegExp("^\\d{1,10}$").test(DLNumber))
                    {
                        sErrorMsg="South Carolina - 1 to 10 Numeric.";
                    }
                    break;
                case "SD":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^(?!000)([0-6]\\d{2}|7([0-6]\\d|7[012]))([ -]?)(?!00)\\d\\d\\3(?!0000)\\d{4}$|^\\d{6}$|^\\d{8}$"))
//                                      ? string.Empty
//                                      : "DL Number: South Dakota (SD) - SSN, or 6 Numbers or 8 Numbers.";
                    if(!RegExp("^(?!000)([0-6]\\d{2}|7([0-6]\\d|7[012]))([ -]?)(?!00)\\d\\d\\3(?!0000)\\d{4}$|^\\d{6}$|^\\d{8}$").test(DLNumber))
                    {
                        sErrorMsg="South Dakota - SSN, or 6 Numbers or 8 Numbers.";
                    }
                    break;
                case "TN":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{7,9}$"))
//                                      ? string.Empty
//                                      : "DL Number: Tennessee (TN) - 7 to 9 Numbers.";
                    if(!RegExp("^\\d{7,9}$").test(DLNumber))
                    {
                        sErrorMsg="Tennessee - 7 to 9 Numbers.";
                    }
                    break;
                case "TX":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{8}$"))
//                                      ? string.Empty
//                                      : "DL Number: Texas (TX) - 8 Numbers.";
                    if(!RegExp("^\\d{8}$").test(DLNumber))
                    {
                        sErrorMsg="Texas - 8 Numbers.";
                    }
                    break;
                case "UT":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{4,9}$"))
//                                      ? string.Empty
//                                      : "DL Number: Utah (UT) - 4 to 9 Numeric.";
                    if(!RegExp("^\\d{4,9}$").test(DLNumber))
                    {
                        sErrorMsg="Utah - 4 to 9 Numeric.";
                    }
                    break;
                case "VT":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{8}$|^\\d{7}[A-Za-z]{1}$"))
//                                      ? string.Empty
//                                      : "DL Number: Vermont (VT) - 8 Numbers, or 7 Numbers and 1 Alpha.";
                    if(!RegExp("^\\d{8}$|^\\d{7}[A-Za-z]{1}$").test(DLNumber))
                    {
                        sErrorMsg="Vermont  - 8 Numbers, or 7 Numbers and 1 Alpha.";
                    }
                    break;
                case "VA":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^\\d{9}$|^[A-Za-z]{1}\\d{8}$"))
//                                      ? string.Empty
//                                      : "DL Number: Virginia (VA) - 9 Numeric, or 1 Alpha and 8 Numeric.";
                    if(!RegExp("^\\d{9}$|^[A-Za-z]{1}\\d{8}$").test(DLNumber))
                    {
                        sErrorMsg="Virginia - 9 Numeric, or 1 Alpha and 8 Numeric.";
                    }
                    break;
                case "WV":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^[A-Za-z0-9]{7}$"))
//                                      ? string.Empty
//                                      : "DL Number: West Virginia (WV) - 7 Alpha/Numeric.";
                    if(!RegExp("^[A-Za-z0-9]{7}$").test(DLNumber))
                    {
                        sErrorMsg="West Virginia - 7 Alpha/Numeric.";
                    }
                    break;
                case "WI":
//                   sErrorMsg = (Regex.IsMatch(DLNumber, "^[A-Za-z]{1}\\d{13}$"))
//                                      ? string.Empty
//                                      : "DL Number: Wisconsin (WI) - 1 Alpha + 13 Numeric.";
                    if(!RegExp("^[A-Za-z]{1}\\d{13}$").test(DLNumber))
                    {
                        sErrorMsg="Wisconsin - 1 Alpha + 13 Numeric.";
                    }
                    break;
                default:
                   sErrorMsg = "State not found for DL validation:";
                   break;
           }
           return sErrorMsg;
       }

