﻿// Validation JScript File

function ValidateDate(oSrc, args)
{     
    if(args.Value != "__/__/____" && args.Value != "")
    {
        var iDay, iMonth, iYear;
        var arrValues;
        arrValues = args.Value.split("/");

        iDay = arrValues[0];
        iMonth = arrValues[1];
        iYear = arrValues[2];

        var testDate = new Date(iYear, iMonth - 1, iDay);
        
        if ((testDate.getDate() != iDay) || 
        (testDate.getMonth() != iMonth - 1) ||
        (testDate.getFullYear() != iYear))
        { 
            args.IsValid = false;
            return;
        }
    }
    return true;
} 

function IsDate(DateToCheck)
{
   //var pattern = new RegExp([0-3][0-9]-(0|1)[0-9]-(19|20)[0-9]{2});
   var pattern = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
   if(DateToCheck.value.match(pattern))
   {
      var date_array = DateToCheck.value.split("/");
      
      var day = date_array[0];
      var month = date_array[1] - 1;
      var year = date_array[2];

      source_date = new Date(year,month,day);

      if(year != source_date.getFullYear())
      {
         return false;
      }

      if(month != source_date.getMonth())
      {
         return false;
      }

      if(day != source_date.getDate())
      {
         return false;
      }
   }
   else
   {
      return false;
   }
   return true;
}

function SetupDate(obj,e)
{
    var keyCode;

    if (window.event) 
    {
        e = window.event;
        keyCode = e.keyCode;
    } 
    else 
    {
        if (e.keyCode == e.which) keyCode = null;
        else if (e.charCode != e.which) keyCode = null;
        else keyCode = e.which;
    }

    if(keyCode!=null)
    {
        if(IsNumeric(String.fromCharCode(keyCode)))
        {
            var iDay, iMonth, iYear;
            var arrValues;
            arrValues = obj.value.split("/");

            iDay = arrValues[0];

            iMonth = arrValues[1];
            
            iYear = arrValues[2];

            if(iMonth==null)
            {
                iMonth="__";
            }
            
            if(iYear==null)
            {
                iYear="__";
            }
            
            iDay.replace("_","");
            iMonth.replace("_","");
            iYear.replace("_","");
            
            obj.value = padright(iDay,2,"_") + "/" + padright(iMonth,2,"_") + "/" + padright(iYear,4,"_");
        }
        else
        {
            obj.value = obj.value.toUpperCase().replace(String.fromCharCode(keyCode).toUpperCase(),"");
        }
        var indexStart = obj.value.indexOf("_");
        
        if(indexStart>=1)
        {
            if (obj.createTextRange) 
            {
                var oRange = obj.createTextRange();
                oRange.moveStart("character", indexStart);
                oRange.moveEnd("character", 1);
                oRange.select();
            } 
            else if (obj.setSelectionRange) 
            {
                obj.setSelectionRange(caretPos.text.length + 1, caretPos.text.length + 2);
            } 
        }
        obj.focus();
    }
}

function IsNumeric(strString)
   {
   var strValidChars = "0123456789.-";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   for (i = 0; i < strString.length && blnResult == true; i++)
   {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
      {
         blnResult = false;
      }
   }
   return blnResult;
}

