var cF=document.all.CalFrame;
var cW=window.frames.CalFrame;
var g_tid=0;var g_cP,g_eD,g_eDP,g_dmin,g_dmax,g_htm;

function SCal(cP,eD,eDP,dmin,dmax,htm)
{
	clearTimeout(g_tid);
	var s=(g_eD==eD);
	g_cP=cP;
	g_eD=eD;
	g_eDP=eDP;
	g_dmin=dmin;
	g_dmax=dmax;
	g_htm=htm;
	WaitCal(true,s);
}
function WaitCal(i,s)
{
	
	if(null==cW.g_fCL||false==cW.g_fCL)
	{
		if(i)
		{
		
		if(s&&"block"==cF.style.display){cF.style.display="none";return;}
	
		cW.location.replace(g_htm);
		PosCal(g_cP);
		cF.style.display="block";
		
		}
		g_tid=setTimeout("WaitCal()", 200);
	}
	else {		
	cW.DoCal(g_cP,g_eD,g_eDP,g_dmin,g_dmax);	
	}
}
function PosCal(cP)
{
	var dB=document.body;var eL=0;var eT=0;
	for(var p=cP;p&&p.tagName!='BODY';p=p.offsetParent){eL+=p.offsetLeft;eT+=p.offsetTop;}
	var eH=cP.offsetHeight;var dH=cF.style.pixelHeight;var sT=dB.scrollTop;
	if(eT-dH>=sT&&eT+eH+dH>dB.clientHeight+sT)eT-=dH;else eT+=eH;
	cF.style.left=eL;cF.style.top=eT;
}
function GetDowStart() 
{
	return 0;
}
function GetDateFmt() 
{
	return "mmddyy";
}
function GetDateSep() 
{
	return "/";
}
function ShowCalendar(eP,eD,eDP)
{
	//Bocz min,max values are not passing
	//,dmin,dmax	
	var gCurrentDate = new Date();	
	var dmin,dmax,valMonth,valMaxYear,valMaxMonth,valMaxDay;
	var htm="cal.htm";
	
	var currDate = new Date();
	valMonth = currDate.getMonth()+1;
	
	dmin = valMonth + "/" + currDate.getDate()+ "/" + currDate.getYear();
	
	/*
	valMaxMonth = valMonth+12;
	valMaxYear = currDate.getYear()+1;
	dmax = '1/31/' + valMaxYear;
	*/
	
	var tempMaxDate = DateAdd(gCurrentDate,330,0,0);
	
	valMaxMonth = tempMaxDate.getMonth()+1; 
	valMaxYear = tempMaxDate.getYear(); 
	valMaxDay = tempMaxDate.getDate();
	
	
	dmax = valMaxMonth + "/" + valMaxDay + "/" + valMaxYear;
	
	var strEdDate;
	var stringArray = eD.value.split("/");
	//var strMonth = ;
	
	/*
	document.frmEmailUs.cmbDepDay.value = stringArray[1]
	document.frmEmailUs.cmbDepMonth.value = 
 	document.frmEmailUs.cmbDepYear.value = stringArray[2]
	*/
	
	if(stringArray[0] == "")
	{
		alert("Please select currect month.");
		return;
	}
	
	if(stringArray[1] == "")
	{
		alert("Please select currect day of the month.");
		return;
	}
	
	
	if(eval(stringArray[0])< eval(valMonth))
	{
		eD.value = stringArray[0] + '/' + stringArray[1] + '/' + valMaxYear;
	}	
	else
	{
		eD.value = eD.value;
	}
	
	var blnDate = isDateVal(eD.value);	
	if(blnDate)
	{
		SCal(eP,eD,eDP,dmin,dmax,htm);
	}
	else
	{
		alert("Please Select Valid Date.");
	}	
	
}

function isDateVal(dtStr){
	
	
	var daysInMonth = DaysArrayVal(12)
	
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	
	var strMonth=dtStr.substring(0,pos1);
	var strDay=dtStr.substring(pos1+1,pos2);
	var strYear=dtStr.substring(pos2+1);
	var strYr=strYear;
	
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	
	month=parseInt(strMonth)
	
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
	
		return false
	}
	
	if (strMonth.length<1 || month<1 || month>12){
	
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
	
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
	
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
	
		return false
	}
return true
}

function DaysArrayVal(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}



function DateAdd(startDate, numDays, numMonths, numYears)
{
	var returnDate = new Date(startDate.getTime());
	var yearsToAdd = numYears;
	
	var month = returnDate.getMonth()	+ numMonths;
	if (month > 11)
	{
		yearsToAdd = Math.floor((month+1)/12);
		month -= 12*yearsToAdd;
		yearsToAdd += numYears;
	}
	returnDate.setMonth(month);
	returnDate.setFullYear(returnDate.getFullYear()	+ yearsToAdd);
	
	returnDate.setTime(returnDate.getTime()+60000*60*24*numDays);
	
	return returnDate;
}


function ifblank(a,b) 
{
if (a == null || a.value == '')
return b;
return a;
}
function CancelCal()
{
	clearTimeout(g_tid);cF.style.display="none";
}

