   function CompareDates(date1, date2, comptoday, strMsg) {
      var datenow = new Date();
      var date1_arr=date1.split('/');
      var date2_arr=date2.split('/');

      datefrom=date1_arr[1]+'/'+date1_arr[0]+'/'+date1_arr[2];
      dateto=date2_arr[1]+'/'+date2_arr[0]+'/'+date2_arr[2];
      datenowstr=eval(datenow.getMonth()+eval(1))+'/'+datenow.getDate()+'/'+datenow.getFullYear();

      var datefrom = new Date(datefrom);
      var dateto = new Date(dateto);
      var newdatenow = new Date(datenowstr);

      datefrom=datefrom.getTime();
      dateto=dateto.getTime();
      datenow=newdatenow.getTime();

      if (ValidFields) {
         if (datefrom > dateto) {
            alert(strMsg);
            ValidFields = false;
         }
         else {
            if (comptoday==1) {
               if (dateto < datenow) {
                  alert(strMsg);
                  ValidFields = false;
               }
            }
         }
      }
   }

   function CheckDOB(strFieldValue, strMsg)
   {
      var d = new Date();
      var thisd = d.getDate();
      var thism = d.getMonth()+1;
      var thisy = d.getFullYear();
      var broken_dob=strFieldValue.split("/");

      if (ValidFields)
      {
         if (strFieldValue.length > 0) { if (broken_dob.length != 3) { alert(strMsg); ValidFields = false; } else { var memdobdd=broken_dob[0]; var memdobmm=broken_dob[1]; var memdobyy=broken_dob[2]; if ((memdobyy > thisy) || (memdobmm > 12) || (memdobdd > 31)) { alert(strMsg); ValidFields = false; } else { if ((memdobyy > thisy) || (( memdobyy == thisy ) && (memdobmm > thism)) || (( memdobyy == thisy ) && ((memdobmm == thism) && (memdobdd > thisd)))) { alert(strMsg); ValidFields = false; } else { if (memdobmm == 2 || memdobmm == 4 || memdobmm == 6 || memdobmm == 9 || memdobmm == 11) { if (memdobmm != 2) { if (memdobdd > 30) { alert(strMsg); ValidFields = false; } } else { if (memdobdd > 29) { alert(strMsg); ValidFields = false; } else { if (memdobdd == 29) { if (((memdobyy % 4 == 0) && (memdobyy % 100 != 0)) || (memdobyy % 400 == 0)) { ValidFields = true; } else { alert(strMsg); ValidFields = false; } } } } } } } } } else { alert(strMsg); ValidFields = false; }
      }
   }

   function CheckSpecified(minlen, maxlen, strFieldValue, strMsg)
   {
      if (strFieldValue.length < minlen)
       {
         if (ValidFields) 
         {
            alert(strMsg)
            ValidFields = false
         }
      }
      if (strFieldValue.length > maxlen)
      {
         if (ValidFields) 
         {
            alert(strMsg)
            ValidFields = false
         }
      }
   }

   function isNumberString (minlen, maxlen, curr, InString)
   {
      if (InString.length < minlen) return (false);
      if (InString.length > maxlen) return (false);
      if (curr==1) var RefString="1234567890.$,";
      else var RefString="1234567890";
      for (Count=0; Count < InString.length; Count++) { TempChar= InString.substring (Count, Count+1); if (RefString.indexOf (TempChar, 0)==-1) { return (false); } } return (true); }

   function CheckIsNumber(minlen, maxlen, curr, strFieldValue, strMsg)
   {
      TestVar = isNumberString(minlen, maxlen, curr, strFieldValue)
      if (TestVar != 1) { if (ValidFields) { alert(strMsg); ValidFields = false; } }
   }

   function CheckIsDate(strFieldValue, strMsg)
   {
      var d = new Date();
      var thisd = d.getDate();
      var thism = d.getMonth()+1;
      var thisy = d.getFullYear();
      var broken_date=strFieldValue.split("/");
      if (ValidFields) {
         if (broken_date.length != 3) {
            alert(strMsg);
            ValidFields = false;
         }
         else {
            var ddd=broken_date[0];
            var dmm=broken_date[1];
            var dyy=broken_date[2];
            if (!isNumberString(1,2,0,ddd) || !isNumberString(1,2,0,dmm) || !isNumberString(4,4,0,dyy)) {
               alert(strMsg);
               ValidFields = false;
            }
            else {
               if ((dmm > 12) || (ddd > 31)) {
                  alert(strMsg);
                  ValidFields = false;
               }
               else {
                  if (dmm == 2 || dmm == 4 || dmm == 6 || dmm == 9 || dmm == 11){
                     if (dmm != 2) {
                        if (ddd > 30)
                        {
                           alert(strMsg);
                           ValidFields = false;
                        }
                     }
                     else {
                        if (ddd > 29) {
                           alert(strMsg);
                           ValidFields = false;
                        }
                        else {
                           if (ddd == 29) {
                              if (!(((dyy % 4 == 0) && (dyy % 100 != 0)) || (dyy % 400 == 0))) {
                                 alert(strMsg);
                                 ValidFields = false;
                              }
                           }
                        }
                     }
                  }
               }
            }
         }
      }
   }

   function isEMailString(emailStr)
   {
      var checkTLD=1;
      var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|biz|tv)$/;
      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);
      if (matchArray==null) { return (false); }
      var user=matchArray[1];
      var domain=matchArray[2];
      for (i=0; i<user.length; i++) { if (user.charCodeAt(i)>127) { return (false); } }
      for (i=0; i<domain.length; i++) { if (domain.charCodeAt(i)>127) { return (false); } }
      if (user.match(userPat)==null) { return (false); }
      var IPArray=domain.match(ipDomainPat);
      if (IPArray!=null) { for (var i=1;i<=4;i++) { if (IPArray[i]>255) { 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) { return (false); } }
      if (len==2) {
         if (checkTLD && domArr[domArr.length-1].search(knownDomsPat)==-1) { return (false); }
      } else {
         if (len<2) {
            return (false);
         } else {
            if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) { return (false); }
         }
      }
      return (true);
   }

   function CheckIsEMail(strFieldValue, strMsg)
   {
      EMailVar = isEMailString(strFieldValue)
      if (EMailVar != 1)
      {
         if (ValidFields) 
         {
            alert(strMsg);
            ValidFields = false;
         }
      }
   } 

   function popupurl(url, winname) {   
     
      window.open(url,winname,'top=50,left=50,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,width=500,height=500');
     
    }
    
   function popupurlbig(url, winname) {   
     
      window.open(url,winname,'top=50,left=50,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,width=600,height=500');
     
    }
    
     function popupurlhuge(url, winname) {   
     
      window.open(url,winname,'top=50,left=50,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0, width=700,height=650');
     
    }

  
