// 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 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
	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;
}


