﻿// Date Validation Javascript


function stripBlanks(fld) {var result = "";var c=0;for (i=0; i<fld.length; i++) {
if (fld.charAt(i) != " " || c > 0) {result += fld.charAt(i);
if (fld.charAt(i) != " ") c = result.length;}}return result.substr(0,c);}
var numb = '0123456789';

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);}
var mth = new Array(' ','january','february','march','april','may','june','july','august','september','october','november','december');
var day = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

function validateDate(fld,fmt,rng) {
var dd, mm, yy;var today = new Date;var t = new Date;fld = stripBlanks(fld);
if (fld == '') return false;var d1 = fld.split('\/');
if (d1.length != 3) d1 = fld.split(' ');
if (d1.length != 3) return false;
if (fmt == 'u' || fmt == 'U') {
  dd = d1[1]; mm = d1[0]; yy = d1[2];}
else if (fmt == 'j' || fmt == 'J') {
  dd = d1[2]; mm = d1[1]; yy = d1[0];}
else if (fmt == 'w' || fmt == 'W'){
  dd = d1[0]; mm = d1[1]; yy = d1[2];}
else return false;
var n = dd.lastIndexOf('st');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf('nd');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf('rd');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf('th');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf(',');
if (n > -1) dd = dd.substr(0,n);
n = mm.lastIndexOf(',');
if (n > -1) mm = mm.substr(0,n);
if (!isNumber(dd)) return false;
if (!isNumber(yy)) return false;
if (!isNumber(mm)) {
  var nn = mm.toLowerCase();
  for (var i=1; i < 13; i++) {
    if (nn == mth[i] ||
        nn == mth[i].substr(0,3)) {mm = i; i = 13;}
  }
}
if (!isNumber(mm)) return false;
dd = parseFloat(dd); mm = parseFloat(mm); yy = parseFloat(yy);
if (yy < 100) yy += 2000;
if (yy < 1582 || yy > 4881) return false;
if (mm == 2 && (yy%400 == 0 || (yy%4 == 0 && yy%100 != 0))) day[mm-1]++;
if (mm < 1 || mm > 12) return false;
if (dd < 1 || dd > day[mm-1]) return false;
t.setDate(dd); t.setMonth(mm-1); t.setFullYear(yy);
if (rng == 'p' || rng == 'P') {
if (t > today) return false;
}
else if (rng == 'f' || rng == 'F') {
if (t < today) return false;
}
else if (rng != 'a' && rng != 'A') return false;
return true;
}


function dateCompare (strDate1, strDate2) 
{
     
     strDate = strDate1.split ("/");
     strDate1 = strDate[1]+"/"+strDate[0]+"/"+strDate[2];
     
     strDate = strDate2.split ("/");
     strDate2 = strDate[1]+"/"+strDate[0]+"/"+strDate[2];
     
     if (Date.parse(strDate1)<= Date.parse(strDate2))
     {
        return false;
     }
     else
     {
        return true;
     }
}



function CheckItem(chkControlId, msg)
    {     
        var options = document.getElementById(chkControlId).getElementsByTagName('input');    
        var ischecked=false;    
        for(i=0;i<options.length;i++)    
        {        
            var opt = options[i];        
            if(opt.type=="checkbox" || opt.type=="radio")        
            {            
                if(opt.checked)            
                {                
                    ischecked = true;                                          
                }        
            }     
        }
        if(ischecked==false)
        {
            alert(msg);
            return false;
        }
    }



//valid_date =validateDate(date_field,format_field,range_field) 
//You should pass the date field that is tobe validated as date_field, 
//the format_field should be U, J, or W to indicate the date format 
//and the range_field shoud be A, P, or F to indicate whether all, past or future dates are valid. 
