// JScript File

//Function used for passing the control to calender control
var strCtrlName
var strFormName
/*
function getNewDate(pstrCtrlName, pstrFormName)//, lstrDateLocked) 
{
    getNewDate(pstrCtrlName, pstrFormName, "../Common/date.htm")
}
*/

function getNewDate(pstrCtrlName, pstrFormName, pstrDestinationFile)//, lstrDateLocked) 
{
//alert("pstrDestinationFile" + pstrDestinationFile + " null check " + (pstrDestinationFile == null))
//alert("pstrCtrlName " + pstrCtrlName + " pstrFormName " + pstrFormName)
    
    strCtrlName=pstrCtrlName
    strFormName=pstrFormName
    var objCtrl = null;
    
    var objName = document.createElement("input")
    objName.type = "hidden"
    objName.id = "hidObjCtrl"
    objName.name = "hidObjCtrl"

    document.body.insertAdjacentElement("afterBegin", objName)
    
    var strCtrl="document." + strFormName + "." + strCtrlName
    
    var parameterString = new String("");

    var collDateFields = document.all.tags("INPUT");
   
    for (counter=0;counter < collDateFields.length; counter++)
    {
            var str = new String("" + collDateFields[counter].name);

            if (str.indexOf(strCtrlName) >= 0  )
            {
                objCtrl = collDateFields[counter]
                strCtrlName = collDateFields[counter].name
            }
    }   
    if (objCtrl == null)
    {
        alert("Control specified not found " )
        return;
    }
    //var objCtrl=eval(strCtrl)
    
    strCtrl = "document.all('" + strCtrlName + "')"
    
    //var vWinCal = window.open("", "Calendar","width=215,height=210,status=no,resizable=no,top=250,left=350");
    //document.frmNavigate.hidDateCtrl.value=strCtrl
    objName.value = strCtrl
    
    var vWinCal
    //alert("pstrDestinationFile " + pstrDestinationFile)
    if (pstrDestinationFile != null)
    {
       vWinCal = window.open(pstrDestinationFile, "PrismCal","width=215,height=210,status=no,resizable=no,top=250,left=350");
    }
    else
    {
       
       vWinCal = window.open("Common/date.htm", "PrismCal","width=215,height=210,status=yes,resizable=yes,top=250,left=350");
    }
    if(vWinCal)
        vWinCal.focus()
    //show_calendar2(strCtrl, objCtrl.value);
}
function getStartDate(){
//
}

function AllowCharInDate(ctrl)
{
    var str=window.event.keyCode
    if(str>46 && str<58)    
        return true;
        
    return false;
}

//This function is written to check the Date Format (DD/MM/YYYY)
function funcChkDateFormat(objDateCtrl)
{
    var lintSlashIndex;
    var lstrMonth;
    var lstrDay;
    var lstrYear;
    var intLoopCounter=0;
    var ValidChar="0123456789/";
    
    if(objDateCtrl.value!="")
    {
        for(intLoopCounter=0;intLoopCounter<objDateCtrl.value.length;intLoopCounter++)
        {
            if(ValidChar.indexOf(objDateCtrl.value.charAt(intLoopCounter))==-1)
            {
                alert("Please enter date in DD/MM/YYYY")
                //objDateCtrl.focus()
                return false;
                break;
            }
        }
    
        lintSlashIndex = objDateCtrl.value.indexOf('/');
        if (lintSlashIndex == -1 || lintSlashIndex == objDateCtrl.value.length)
        {
            alert("Please enter date in DD/MM/YYYY")
            //objDateCtrl.focus()
            return false;
        }
    
        lstrDay = objDateCtrl.value.substring(0, lintSlashIndex);   
        if (Number(lstrDay) <1 || Number(lstrDay) >31 || isNaN(lstrDay))
        {
            alert("Please enter date in DD/MM/YYYY")
            //objDateCtrl.focus()
            return false;
        }  
    
        lintSlashIndex = objDateCtrl.value.indexOf('/', lintSlashIndex + 1);
        if (lintSlashIndex == -1 || (lintSlashIndex + 1 ) == objDateCtrl.value.length)
        {
            alert("Please enter date in DD/MM/YYYY")
            //objDateCtrl.focus()
            return false;
        }
     
        lstrMonth = objDateCtrl.value.substring((lstrDay.length + 1), lintSlashIndex);
        if( Number(lstrMonth) < 1 || Number(lstrMonth) > 12)
        {
            alert("Please enter Month > 0 and < 13")
            //objDateCtrl.focus()
            return false;
        }   
        if(isNaN(lstrMonth))
        {
            alert("Please enter date in DD/MM/YYYY")
            //objDateCtrl.focus()
            return false;
        
        }
        lstrYear = objDateCtrl.value.substring(lintSlashIndex + 1);
        if (Number(lstrDay) <1 || Number(lstrDay) >31)
        {
            alert("Please enter Day > 0 and < 32")
            //objDateCtrl.focus()
            return false;
        }   
        if(isNaN(lstrMonth))
        {
            alert("Please enter date in DD/MM/YYYY")
            //objDateCtrl.focus()
            return false;
        
        }
        if (Number(lstrYear) < 1900 || Number(lstrYear) > 9999)
        {
            alert("Please enter date > 1900 and < 9999")
            //objDateCtrl.focus()
            return false;
        }    
        if (isNaN(lstrYear))
        {
            alert("Please enter date in DD/MM/YYYY")
            //objDateCtrl.focus()
            return false;
        
        }
        
        if (!funcValidateDay(lstrYear, lstrMonth, lstrDay))
        {
            alert("Please enter date in DD/MM/YYYY")
            //objDateCtrl.focus()
            return false;
        }  
        else
            return true;
    }
    else
        return true;
}

//This function is written to check the Date Format (DD/MM/YYYY)
function funcChkDateFormatNoMessage(objDateValue)
{
    var lintSlashIndex;
    var lstrMonth;
    var lstrDay;
    var lstrYear;
    var intLoopCounter=0;
    var ValidChar="0123456789/";
    var returnMessage = ""
    
    if(objDateValue!="")
    {
        for(intLoopCounter=0;intLoopCounter<objDateValue.length;intLoopCounter++)
        {
            if(ValidChar.indexOf(objDateValue.charAt(intLoopCounter))==-1)
            {
                return false;
            }
        }
    
        lintSlashIndex = objDateValue.indexOf('/');
        if (lintSlashIndex == -1 || lintSlashIndex == objDateValue.length)
        {
            return false;
        }
    
        lstrDay = objDateValue.substring(0, lintSlashIndex);    
        if (Number(lstrDay) <1 || Number(lstrDay) >31 || isNaN(lstrDay))
        {
            return false;
        }  
    
        lintSlashIndex = objDateValue.indexOf('/', lintSlashIndex + 1);
        if (lintSlashIndex == -1 || (lintSlashIndex + 1 ) == objDateValue.length)
        {
            return false;
        }
     
        lstrMonth = objDateValue.substring((lstrDay.length + 1), lintSlashIndex);
        if( Number(lstrMonth) < 1 || Number(lstrMonth) > 12)
        {
            return false;
        }   
        if(isNaN(lstrMonth))
        {
            return false;
        }
        lstrYear = objDateValue.substring(lintSlashIndex + 1);
        if (Number(lstrDay) <1 || Number(lstrDay) >31)
        {
            return false;
        }   
        if(isNaN(lstrMonth))
        {
            return false;
        }
        if (Number(lstrYear) < 1900 || Number(lstrYear) > 9999)
        {
            return false;
        }    
        if (isNaN(lstrYear))
        {
            return false;
        }
        
        if (!funcValidateDay(lstrYear, lstrMonth, lstrDay))
        {
            return false;
        }  
        else
            return true;
    }
    else
        return true;
}

//This function is written to check the Valid entry of the date. Means April
//month can't have 31st, leap year can have feb as 29, non leap year can't have 
//29th in Feb month so on.
function funcValidateDay(strYear,strMonth,strDay)
{
    var lintmaxDay;
    
    if (strMonth == 1 || strMonth == 3 || strMonth == 5 || strMonth == 7 || strMonth == 8 || strMonth == 10 || strMonth == 12)
        lintmaxDay = 31;
    if (strMonth == 4 || strMonth == 6 || strMonth == 9 || strMonth == 11)
        lintmaxDay = 30;
    if (strMonth == 2)
    {
        if (strYear%4 ==0 && ((strYear%100 == 0 && strYear%400 == 0) || strYear%100 != 0))
            lintmaxDay = 29;
        else
            lintmaxDay = 28;    
    }
    if (strDay <= lintmaxDay)
        return true;
    return false;       
}

function funcFutureDate(lobjCtrl,lstrCurrDate)
{
    var lstrCurrDate=lstrCurrDate.split("/");
    var lstrStDate=lobjCtrl.value.split("/");
    if (Date.UTC(lstrCurrDate[2],(lstrCurrDate[1]-1),lstrCurrDate[0]) >= Date.UTC(lstrStDate[2],(lstrStDate[1]-1),lstrStDate[0]))
        return true
    else
        return false
}

function chkPastEffExpDate(lobjCtrl,lstrCurrDate)
{
    var lstrCurrDate=lstrCurrDate.split("/");
    var lstrStDate=lobjCtrl.value.split("/");
    if (Date.UTC(lstrCurrDate[2],lstrCurrDate[1],lstrCurrDate[0]) > Date.UTC(lstrStDate[2],lstrStDate[1],lstrStDate[0]))
        return false
    else
        return true
}

function funcCompareDate(objStDateCtrl,objEndDateCtrl)
{
    var lstrStDate;
    var lstrEndDate;
    lstrStDate = objStDateCtrl.value.split("/");    
    if(objEndDateCtrl.value.length>0)
    {
        lstrEndDate = objEndDateCtrl.value.split("/");
        if (Date.UTC(lstrEndDate[2],lstrEndDate[1]-1,lstrEndDate[0]) >= Date.UTC(lstrStDate[2],lstrStDate[1]-1,lstrStDate[0]))
            return true;
        else
            return false
    }
    return true;
}

function funcEndDtGreater(objStDateCtrl,objEndDateCtrl)
{
    var lstrStDate;
    var lstrEndDate;
    lstrStDate = objStDateCtrl.value.split("/");    
    if(objEndDateCtrl.value.length>0)
    {
        lstrEndDate = objEndDateCtrl.value.split("/");
        if (Date.UTC(lstrEndDate[2],lstrEndDate[1]-1,lstrEndDate[0]) > Date.UTC(lstrStDate[2],lstrStDate[1]-1,lstrStDate[0]))
            return true;
        else
            return false
    }
    return true;
}

function funcBetweenDates(objStDateCtrl,objEndDateCtrl,objDateCtrl)
{
    var lstrStDate;
    var lstrEndDate;
    var lstrDate;
    
    lstrStDate = objStDateCtrl.value.split("/");
    lstrDate=objDateValue.split("/");   
    
    if(objEndDateCtrl.value.length>0)
    {
        lstrEndDate = objEndDateCtrl.value.split("/");
        if ((Date.UTC(lstrEndDate[2],lstrEndDate[1]-1,lstrEndDate[0]) >= Date.UTC(lstrDate[2],lstrDate[1]-1,lstrDate[0])) &&
           (Date.UTC(lstrDate[2],lstrDate[1]-1,lstrDate[0]) >= Date.UTC(lstrStDate[2],lstrStDate[1]-1,lstrStDate[0])))
        {
            return true;
        }
        else
            return false
    }
    return true;
}


