function fnIsDate(r_strMsg,r_varCtrl)
{
    if (r_varCtrl.value == "") return false

    if (r_varCtrl.value.length > 10)
    {
        alert("Date length cannot exceed 10 characters");
        r_varCtrl.focus()
        return true
    }

    if ((r_varCtrl.value.charAt(2) != "/") || (r_varCtrl.value.charAt(5) != "/"))
    {
        alert("Enter Date in (DD/MM/YYYY) format");
        r_varCtrl.focus()
        return true
    }

    var l_intDay
    var l_intMonth
    var l_intYear

    l_intMonth= r_varCtrl.value.charAt(3)+r_varCtrl.value.charAt(4)
    l_intDay  = r_varCtrl.value.charAt(0)+r_varCtrl.value.charAt(1)
    l_intYear = r_varCtrl.value.charAt(6)+r_varCtrl.value.charAt(7) + r_varCtrl.value.charAt(8)+r_varCtrl.value.charAt(9)

    if (l_intYear.length < 4)
    {
        alert("Year format is YYYY")
        r_varCtrl.focus()
        return true
    }

    if (!fnIsVal("Day value in date",l_intDay))
    {
        r_varCtrl.focus()
        return true
    }

    if (!fnIsVal("Month value in date",l_intMonth))
    {
        r_varCtrl.focus()
        return true
    }

    if (!fnIsVal("Year value in date",l_intYear))
    {
        r_varCtrl.focus()
        return true
    }

    l_intDay = parseInt(l_intDay,10)
    l_intMonth = parseInt(l_intMonth,10)
    l_intYear = parseInt(l_intYear,10)

    if (isNaN(l_intDay) || isNaN(l_intMonth) || isNaN(l_intYear))
    {
        alert("Invalid Date");
        r_varCtrl.focus()
        return true
    }

    if ((l_intDay < 0) || (l_intMonth < 0) || (l_intYear < 0))
    {
        alert("Invalid character in Date");
        r_varCtrl.focus()
        return true
    }
if(l_intYear<=1752)
{
        alert("Year should be greater than 1752");
        r_varCtrl.focus()
        return true

}

    if ((l_intDay == 0) || (l_intMonth == 0) || (l_intYear == 0))
    {
        alert("Invalid Date");
        r_varCtrl.focus()
        return true
    }

    if (l_intMonth > 12)
    {
        alert("Month can not be greater than 12");
        r_varCtrl.focus()
        return true
    }

    if (l_intDay > 31 )
    {
        alert("Day can not be greater than 31")
        r_varCtrl.focus()
        return true
    }
    if ((l_intMonth==4)||(l_intMonth==6)||(l_intMonth==9)||(l_intMonth==11))
    {
        if (l_intDay > 30 )
        {
            alert("Day can not be greater than 30")
            r_varCtrl.focus()
            return true;
        }
    }
    if (l_intMonth==2)
    {
        if  ((l_intYear % 4 == 0) && ( (!(l_intYear % 100 == 0)) || (l_intYear % 400 == 0) ) )
        {
            if (l_intDay > 29)
            {
                alert("Day can not be greater than 29 for a Leap Year")
                r_varCtrl.focus()
                return true;
            }
        }
        else
        {
            if (l_intDay > 28)
            {
                alert("Day can not be greater than 28 for a non-leap year")
                r_varCtrl.focus()
                return true;
            }
        }
    }
    return false
}


// check valid date for the dropdownd
function fnIsDPValidDate(r_strMsg,strValue)
{
    if (strValue == "") return false;

    if (strValue.length > 10)
    {
        alert("Date length cannot exceed 10 characters");
        return true
    }

    if ((strValue.charAt(2) != "/") || (strValue.charAt(5) != "/"))
    {
        alert("Enter Date in (DD/MM/YYYY) format");
        return true
    }

    var l_intDay
    var l_intMonth
    var l_intYear

    l_intMonth= strValue.charAt(3)+strValue.charAt(4)
    l_intDay  = strValue.charAt(0)+strValue.charAt(1)
    l_intYear = strValue.charAt(6)+strValue.charAt(7) + strValue.charAt(8)+strValue.charAt(9)

    if (l_intYear.length < 4)
    {
        alert("Year format is YYYY")
        return true
    }

    if (!fnIsVal("Day value in date",l_intDay))
    {
        return true
    }

    if (!fnIsVal("Month value in date",l_intMonth))
    {
        return true
    }

    if (!fnIsVal("Year value in date",l_intYear))
    {
        return true
    }

    l_intDay = parseInt(l_intDay,10)
    l_intMonth = parseInt(l_intMonth,10)
    l_intYear = parseInt(l_intYear,10)

    if (isNaN(l_intDay) || isNaN(l_intMonth) || isNaN(l_intYear))
    {
        alert("Invalid Date");
        return true
    }

    if ((l_intDay < 0) || (l_intMonth < 0) || (l_intYear < 0))
    {
        alert("Invalid character in Date");
        return true
    }
if(l_intYear<=1752)
{
        alert("Year should be greater than 1752");
        return true

}

    if ((l_intDay == 0) || (l_intMonth == 0) || (l_intYear == 0))
    {
        alert("Invalid Date");
        return true
    }

    if (l_intMonth > 12)
    {
        alert("Month can not be greater than 12");
        return true
    }

    if (l_intDay > 31 )
    {
        alert("Day can not be greater than 31")
        return true
    }
    if ((l_intMonth==4)||(l_intMonth==6)||(l_intMonth==9)||(l_intMonth==11))
    {
        if (l_intDay > 30 )
        {
            alert("Day can not be greater than 30")
            return true;
        }
    }
    if (l_intMonth==2)
    {
        if  ((l_intYear % 4 == 0) && ( (!(l_intYear % 100 == 0)) || (l_intYear % 400 == 0) ) )
        {
            if (l_intDay > 29)
            {
                alert("Day can not be greater than 29 for a Leap Year")
                return true;
            }
        }
        else
        {
            if (l_intDay > 28)
            {
                alert("Day can not be greater than 28 for a non-leap year")
                return true;
            }
        }
    }
    return false
}


// Purpose      :   Validates From Date not greater than to     -->
// Parameter    :   r_strMsg1 a String holds Prefix for From Dt.-->
//                  r_strMsg2 a String holds Prefix for To Date -->
//                  r_varCtrl1 holds the HTML Control From Date -->
//                  r_varCtrl2 holds the HTML Control To Date   -->
//                  r_varFocusCtrl holds the HTML Control Where -->
//                                  focus has to be placed      -->


function fnIsFromGtTo(r_varCtrl1,r_varCtrl2,r_strMsg1,r_strMsg2, r_varFocusCtrl)
 {
    var l_intFrDay
    var l_intFrMonth
    var l_intFrYear
    var l_intToDay
    var l_intToMonth
    var l_intToYear

    l_intFrMonth = parseInt(r_varCtrl1.value.charAt(3)+r_varCtrl1.value.charAt(4), 10)
    l_intFrDay = parseInt(r_varCtrl1.value.charAt(0)+r_varCtrl1.value.charAt(1), 10)
    l_intFrYear = parseInt(r_varCtrl1.value.charAt(6)+ r_varCtrl1.value.charAt(7) +  	r_varCtrl1.value.charAt(8)+r_varCtrl1.value.charAt(9), 10)

    l_intToMonth = parseInt(r_varCtrl2.value.charAt(3)+r_varCtrl2.value.charAt(4), 10)
    l_intToDay = parseInt(r_varCtrl2.value.charAt(0)+r_varCtrl2.value.charAt(1), 10)
    l_intToYear = parseInt(r_varCtrl2.value.charAt(6)+ r_varCtrl2.value.charAt(7) + r_varCtrl2.value.charAt(8)+r_varCtrl2.value.charAt(9), 10)

	
	

    if (l_intFrYear > l_intToYear)
      {

        var l_strErr
        l_strErr = r_strMsg1 + " can not be less than " + r_strMsg2
        alert(l_strErr)
        r_varFocusCtrl.focus()
        return true;
      }
    if (l_intToYear == l_intFrYear)
      {

        if (l_intFrMonth > l_intToMonth)
          {
            var l_strErr
            l_strErr = r_strMsg1 + " can not be less than " + r_strMsg2
            alert(l_strErr)
            r_varFocusCtrl.focus()
            return true;
          }
         if  (l_intFrMonth == l_intToMonth)
          {
            if (l_intFrDay > l_intToDay)
            {
                var l_strErr
                l_strErr = r_strMsg1 + " can not be less than " + r_strMsg2
                alert(l_strErr)
                r_varFocusCtrl.focus()
                return true;
            }
          }
      }
  return false;
 }
 function fnIsVal(r_strMsg,r_strVal)
{
    var l_intFlag
    var l_intPrevFlag
    var l_strCtrlValue
    var l_inti

    l_intFlag=0
    l_intPrevFlag = 0
    l_strCtrlValue = " "

    if (r_strVal.length > 0)
    {
        if (r_strVal != "0")
        {
            for (l_inti=0;l_inti<r_strVal.length;l_inti++)
            {
                l_strCtrlValue = r_strVal.substring(l_inti,l_inti+1)
                if (l_strCtrlValue != "0")
                {
                    if ((parseInt(r_strVal.substring(l_inti,l_inti+1))==0) || (isNaN(parseInt(r_strVal.substring(l_inti,l_inti+1)))))
                    {
                        l_intFlag= 1
                        break
                    }
                }
            }

            if (l_intFlag == 1 )
            {
                var l_strErr

                l_strErr = r_strMsg + " has to be numeric"
                alert(l_strErr)
                return false
            }
        }
    }
    return true
}

function fnIsDateCheck(r_strMsg,r_varCtrl)
{
    if (r_varCtrl == "") return false

    if ((r_varCtrl.charAt(2) != "/") || (r_varCtrl.charAt(5) != "/"))
    {
        alert("Enter Date in (DD/MM/YYYY) format");
        return true
    }

    var l_intDay
    var l_intMonth
    var l_intYear

    l_intMonth= r_varCtrl.charAt(3)+r_varCtrl.charAt(4)
    l_intDay  = r_varCtrl.charAt(0)+r_varCtrl.charAt(1)
    l_intYear = r_varCtrl.charAt(6)+r_varCtrl.charAt(7) + r_varCtrl.charAt(8)+r_varCtrl.charAt(9)

    if (l_intYear.length < 4)
    {
        alert("Year format is YYYY")
         return true
    }

    if (!fnIsVal("Day value in date",l_intDay))
    {
          return true
    }

    if (!fnIsVal("Month value in date",l_intMonth))
    {
        return true
    }

    if (!fnIsVal("Year value in date",l_intYear))
    {
         return true
    }

    l_intDay = parseInt(l_intDay,10)
    l_intMonth = parseInt(l_intMonth,10)
    l_intYear = parseInt(l_intYear,10)

    if (isNaN(l_intDay) || isNaN(l_intMonth) || isNaN(l_intYear))
    {
        alert("Invalid Date");
         return true
    }

    if ((l_intDay < 0) || (l_intMonth < 0) || (l_intYear < 0))
    {
        alert("Invalid character in Date");
         return true
    }
if(l_intYear<=1752)
{
        alert("Year should be greater than 1752");
         return true

}

    if ((l_intDay == 0) || (l_intMonth == 0) || (l_intYear == 0))
    {
        alert("Invalid Date");
         return true
    }

    if (l_intMonth > 12)
    {
        alert("Month can not be greater than 12");
        return true
    }

    if (l_intDay > 31 )
    {
        alert("Day can not be greater than 31")
        return true
    }
    if ((l_intMonth==4)||(l_intMonth==6)||(l_intMonth==9)||(l_intMonth==11))
    {
        if (l_intDay > 30 )
        {
            alert("Day can not be greater than 30")
            return true;
        }
    }
    if (l_intMonth==2)
    {
        if  ((l_intYear % 4 == 0) && ( (!(l_intYear % 100 == 0)) || (l_intYear % 400 == 0) ) )
        {
            if (l_intDay > 29)
            {
                alert("Day can not be greater than 29 for a Leap Year")
                return true;
            }
        }
        else
        {
            if (l_intDay > 28)
            {
                alert("Day can not be greater than 28 for a non-leap year")
                 return true;
            }
        }
    }
    return false
}