//Display confirmation dialog box with Yes/No buttons.
function ConfirmDlg(sMessage) {
  var go = confirm(sMessage);

  if (go == true) 
        return true;
  return false;  
}

function isEmpty(str) {
  if (str==null || str=="") 
    return true; 
  return false; 
} 

function isAlpha(str){
   //Name fields should only contain alpha chars and allow for "'"                
   var nstr="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'-. "
   isvalid=true;
   
   for(var i=0;i<str.length;i++){
           var cc=str.substring(i, i+1)
              
              for(var j=0;j<nstr.length;j++) {
                var isvalid=false;
                      var dd = nstr.substring(j,j+1)
                 
                 if(cc == dd){
                      isvalid = true;
                      break;
                    }
        }
     
             if(isvalid==false) return false;
   }
   return true;
}

function isMonetary(str) {
 var pattern = "0123456789." 
  var i = 0; 
  
  do {
    var pos = 0; 
    for (var j=0; j<pattern.length; j++) 
      if (str.charAt(i)==pattern.charAt(j)) {
        pos = 1; 
              break; 
      } 
    i++; 
  } while (pos==1 && i<str.length) 
  
  if (pos==0 && str.length>0) {          return false;  }
  
  return true; 
} 

function isNumeric(str) {
 var pattern = "0123456789" 
  var i = 0; 
  
  do {
    var pos = 0; 
    for (var j=0; j<pattern.length; j++) 
      if (str.charAt(i)==pattern.charAt(j)) {
        pos = 1; 
              break; 
      } 
    i++; 
  } while (pos==1 && i<str.length) 
  
  if (pos==0 && str.length>0) {          return false;  }
  
  return true; 
} 


function isAlphaNumeric(str){
   //Name fields should only contain alpha chars and numbers                
   var nstr="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.'-!()/ "
   isvalid=true;
   
   if (str==null || str=="") return true; 
    
   for(var i=0;i<str.length;i++){
           var cc=str.substring(i, i+1)
              
              for(var j=0;j<nstr.length;j++) {
                var isvalid=false;
                      var dd = nstr.substring(j,j+1)
                 
                 if(cc == dd){
                      isvalid = true;
                      break;
                  }
        }
     
             if(isvalid==false) return false;
   }
   return true;
}

function isValidPhoneNo(str) {
  var pattern = "0123456789( )- " 
  var i = 0; 
  
  do {
    var pos = 0; 
    for (var j=0; j<pattern.length; j++) 
      if (str.charAt(i)==pattern.charAt(j)) {
        pos = 1; 
              break; 
      } 
    i++; 
  } while (pos==1 && i<str.length) 
  
  if (pos==0 && str.length>0) {          return false;  }
  
  return true; 
} 

function isValidEmail(str) {
        var at="@"
        var dot="."
        var lat=str.indexOf(at)
        var lstr=str.length
        var ldot=str.indexOf(dot)
        
        if (str==null || str=="")    return true; 
        
        if (str.indexOf(at)==-1){
                return false;
        }
        
        if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
                return false;
        }
        
        if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
                return false;
        }
        
        if (str.indexOf(at,(lat+1))!=-1){
                return false;
        }
        
        if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
                return false;
        }
        
        if (str.indexOf(dot,(lat+2))==-1){
                return false;
        }
        
        if (str.indexOf(" ")!=-1){
                return false;
        }
        
        return true;                                        
}

function isDate(ctrl){
   var DateToCheck=ctrl.value;        
   if(DateToCheck==""){return true;}
 
   var m_strDate = FormatDate(DateToCheck);
   if(m_strDate==""){        return false;   }

   ctrl.value=m_strDate;
   return true;
}


function FormatDate(DateToFormat){
   if(DateToFormat==""){return"";}
   FormatAs="dd/mmm/yyyy";

   var strReturnDate;
   FormatAs = FormatAs.toLowerCase();
   DateToFormat = DateToFormat.toLowerCase();
   var arrDate
   var arrMonths = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
   var strMONTH;
   
   if(DateToFormat.indexOf("-")>-1){
        Separator = "-";
   }

   if(DateToFormat.indexOf("/")>-1){
        Separator = "/";
   }

   if(DateToFormat.indexOf(" ")>-1){
        Separator = " ";
   }

   arrDate = DateToFormat.split(Separator);
 
   DateToFormat = "";
   for(var iSD = 0;iSD < arrDate.length;iSD++){
        if(arrDate[iSD]!=""){
        DateToFormat += arrDate[iSD] + Separator;
        }
   }
   DateToFormat = DateToFormat.substring(0,DateToFormat.length-1);
   arrDate = DateToFormat.split(Separator);

   if(arrDate.length < 3) {        
        return "";
   }

   var DAY = arrDate[0];
   var MONTH = arrDate[1];
   var YEAR = arrDate[2];

   if(parseFloat(arrDate[1]) > 12){
        DAY = arrDate[1];
        MONTH = arrDate[0];
   }

   if(parseFloat(DAY) && DAY.toString().length==4){
        YEAR = arrDate[0];
        DAY = arrDate[2];
        MONTH = arrDate[1];
   }

   for(var iSD = 0;iSD < arrMonths.length;iSD++){
        var ShortMonth = arrMonths[iSD].substring(0,3).toLowerCase();
        var MonthPosition = DateToFormat.indexOf(ShortMonth);
        
        if(MonthPosition > -1){
                MONTH = iSD + 1;
                if(MonthPosition == 0){
                   DAY = arrDate[1];
                   YEAR = arrDate[2];
                }
                break;
        }
   }

   var strTemp = YEAR.toString();
   if(strTemp.length==2){
        if(parseFloat(YEAR)>40){
           YEAR = "19" + YEAR;
        }
        else{
           YEAR = "20" + YEAR;
        }
   }
   var strTemp = YEAR.toString();
   if(strTemp.length!=4) {
           alert("err2");
           return false;           
   }


   var iDay=parseFloat(DAY);
   var iMth=parseFloat(MONTH);
   var iYear=parseFloat(YEAR);   

   if (isNaN(iDay))  return false;
   if (isNaN(iMth))  return false;
   if (isNaN(iYear)) return false;
   
   if (iMth>12 || iMth<1) return false;
   
   if ((iMth == 1 || iMth == 3 || iMth == 5 || iMth == 7 || iMth == 8 || iMth == 10 || iMth == 12) && (iDay > 31 || iDay < 1)) {
           return false;
   }
   if ((iMth == 4 || iMth == 6 || iMth == 9 || iMth == 11) && (iDay > 30 || iDay < 1)) {
           return false;
   }

   if (iMth == 2) {
           if (iDay < 1) {  return false;        }
        if (LeapYear(iYear) == true) {
           if (iDay > 29) {  return false;  }
        }
           else {
           if (iDay > 28) {  return false;  }
          }
   }

   if(parseInt(MONTH)< 10 && MONTH.toString().length < 2){
        MONTH = "0" + MONTH;
   }
   if(parseInt(DAY)< 10 && DAY.toString().length < 2){
        DAY = "0" + DAY;
   }

   //return DAY + " " + arrMonths[MONTH -1].substring(0,3) + " " + YEAR;   
   return DAY + "-" + MONTH + "-" + YEAR;              
}

function LeapYear(intYear) {
   if (intYear % 100 == 0) {
        if (intYear % 400 == 0) { return true; }
   }
   else {
        if ((intYear % 4) == 0) { return true; }
   }
   return false;
}

