
     var path_picture_exp = /^[A-Z?](:\\)[A-Z_a-z_0-9,'-._!?&$,\ \\\.]+\.(jpg)$/i;
     var size_exp = /^[0-9]+(([\s,'".,0-9]){0,})$/i;
     var inch_exp = /^([0-9]{1,2}[']{1}[0-9]{1,2}(["]{1}|[']{2}))$/i;
     var date_exp = /^((((2|02)(\/)((\d)|(0[1-9])|(1\d)|(2[0-8])))|(((04)|(4)|(06)|(6)|(09)|(9)|(11))(\/)(((\d))|(0[1-9])|(1\d)|(2\d)|(30)))|(((01)|(03)|(05)|(07)|(08)|(10)|(12)|(1)|(3)|(5)|(7)|(8))(\/)(((\d))|(0[1-9])|(1\d)|(2\d)|([3][0-1]))))(\/)\d{4})|((2|02)(\/)29(\/)(((([02468][048])|([13579][26]))00)|(\d{2}(([02468][48])|([2468][048])|([13579][26])))))$/i;
     var arrValidationErr = new Array();
     function validateField(pattern, str) {
       return pattern.test(str);
     }
     function addErrMsg(errMsg) { 
       arrValidationErr[arrValidationErr.length] = errMsg;
     }
     function displayErrMsg() {
       var s = "";
       for (var i = 0; i < arrValidationErr.length; i++)
          s += arrValidationErr[i] + "\n";
       if (s != "") {
         alert(s);
         return false;
       }
       return true;
     }


function CheckEmail(f, ff, emailStr) {
    emailStr = emailStr.replace(" ", "");
    var checkTLD = 1;
    var knownDomsPat = /^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
    var emailPat = /^(.+)@(.+)$/;
    var specialChars = "\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
    var validChars = "\[^\\s" + specialChars + "\]";
    var quotedUser = "(\"[^\"]*\")";
    var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
    var atom = validChars + '+';
    var word = "(" + atom + "|" + quotedUser + ")";
    var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
    var domainPat = new RegExp("^" + atom + "(\\." + atom +")*$");
    var matchArray = emailStr.match(emailPat);
    ff.style.background = "#FFFFFF";    
    
    if (matchArray == null) {
        ff.style.background = "#FFEDED";
        alert("Email address seems incorrect (check @ and .'s)");
        return false;
    }

    var user = matchArray[1].toLowerCase();
    var domain = matchArray[2].toLowerCase();
    
    for (i = 0; i < user.length; i++) {
        if (user.charCodeAt(i) > 127) {
            ff.style.background = "#FFEDED";
            alert("Your email contains invalid characters.");
            return false;
        }
    }
    
    for (i = 0; i < domain.length; i++) {
        if (domain.charCodeAt(i) > 127) {
            ff.style.background = "#FFEDED";
            alert("Your email contains invalid characters.");
            return false;
        }
    }
    
    if (user.match(userPat) == null) {
        ff.style.background = "#FFEDED";
        alert("Your email username doesn't seem to be valid.");
        return false;
    }
    
    var IPArray = domain.match(ipDomainPat);
    if (IPArray != null) {
        for (var i = 1; i <= 4; i++) {
            if (IPArray[i] > 255) {
                ff.style.background = "#FFEDED";
                alert("Destination email IP address is invalid.");
                return false;
            }
        }
        return true;
    }
    
    var atomPat = new RegExp("^" + atom + "$");
    var domArr = domain.split(".");
    var len = domArr.length;
    
    for (i = 0; i < len; i++) {
        if (domArr[i].search(atomPat) == -1) {
            ff.style.background = "#FFEDED";
            alert("Your email address domain name does not seem to be valid.");
            return false;
        }
    }
    
    if (checkTLD && domArr[domArr.length-1].length != 2 && domArr[domArr.length-1].search(knownDomsPat) == -1) {
        ff.style.background = "#FFEDED";
        alert("Your email address must end in a well-known domain or two letter country.  Example:  .com  .net  .org  .cc");
        return false;
    }
    
    if (len < 2) {
        ff.style.background = "#FFEDED";
        alert("Your email address is missing a hostname.");
        return false;
    }

    return true;
}


function ValChk(frm, chkName) {
  trk = 0;
  for (i = 0; i < frm.elements.length; i++) {
    e = frm.elements[i];
    if (e.type == "checkbox" && e.name == chkName)
       if (e.checked) trk++;
  }
  if (trk == 0) {
    alert("Please select a Types Of Bookings.");
    return false;
  }
  return true;
}


  function CheckEmpty(frmName, FieldNames) { 
    var args = CheckEmpty.arguments, frm, field;
    frm = document.forms[frmName];
    for (i = 1; i < args.length; i++) {
      field = frm.elements[args[i]];
      field.style.background = "#FFFFFF";
      if (field.value == "") {
         field.style.background = "#FFEDED";
         field.focus();   
         alert("Please, fill in the obligatory fields."); 
         return false; 
      }
    }
    if (frmName != "frmChange") 
      if (!ValChk(frm, "typesOfBookID[]")) return false;
    if (frm.password1.value != frm.password2.value) {
      alert("The passwords you typed do not match. Type the password in both text boxes.");
      frm.password1.style.background = "#FFEDED"; 
      frm.password2.style.background = "#FFEDED"; 
      frm.password1.focus();
      return false;
    }
    if (frmName != "frmChange") 
      return CheckEmail(frm, frm.email_address, frm.email_address.value);
    return true;
  }

  function CheckEmptyEdit(frmName, FieldNames) { 
    var args = CheckEmpty.arguments, frm, field;
    frm = document.forms[frmName];
    for (i = 1; i < args.length; i++) {
      field = frm.elements[args[i]];
      field.style.background = "#FFFFFF";
      if (field.value == "") {
         field.style.background = "#FFEDED";
         field.focus();   
         alert("Please, fill in the obligatory fields."); 
         return false; 
      }
    }
    if (!ValChk(frm, "typesOfBookID[]")) return false;
    return true;
  }

  
  function OpenPhoto(photo) {
    window.open(photo, "_blank", "Toolbar=0,Location=0,Directories=0,Status=0,Menubar=0,Scrollbars=1,Resizable=1");
  }

  function LoadPopup(TheLayer, Seconds, xOffset, yOffset) { 
    var lv_Left = 0, lv_Top = 0, lv_SetToLeft = 0;
    if (xOffset == null) xOffset = 0;
    if (yOffset == null) yOffset = 0;
    if (document.all) {
      lv_Left = document.body.scrollLeft;
      lv_Top = document.body.scrollTop;
    } else {
      lv_Left = window.pageXOffset;
      lv_Top = window.pageYOffset;
    }
    lv_SetToLeft = (window.event.x-419+lv_Left)+60+xOffset;
    if (lv_SetToLeft < 5) lv_SetToLeft = 5;
    document.getElementById(TheLayer).style.left = lv_SetToLeft;
    document.getElementById(TheLayer).style.top = (110 + lv_Top) + yOffset;
    document.getElementById(TheLayer).style.visibility = "visible";
    if (Seconds != null) {
      setTimeout('document.getElementById("'+TheLayer+'").style.visibility = "hidden";', Seconds);
    }
    return true;
}

