var tmpDay				= "";

var gThisMonth			= "";
var gThisYear			= "";
var gLastMonth			= "";
var gLastYear			= "";
var gNextMonth			= "";
var gNextYear			= "";
var calHTML				= "";

var lastFocus			=	"";

var activeCal			=	0;


// KW: Fixed The Calender Close Issue
var gImgID			=	"";
// End of Changes

var	todayDay	= new Date().getDate();
var todayYear	= new Date().getFullYear();
var todayMonth	= new Date().getMonth();

var cal_on			= new Image();
var cal_left		= new Image();
var cal_left_off	= new Image();
var cal_right		= new Image();
var cal_right_off	= new Image();
var cal_exit		= new Image();

cal_on.src			= imgPath + "icn_calender.gif";
cal_left.src		= imgPath + "btn_page_prev_active.gif";
cal_right.src		= imgPath + "btn_page_next_active.gif";
cal_left_off.src	= imgPath + "btn_page_prev_inactive.gif";
cal_right_off.src	= imgPath + "btn_page_next_inactive.gif";
cal_exit.src		= imgPath + "btn_cal_close_window.gif";

//*---------------------------------------------------------------------*//
function genCalendar(mo, yr) {
	
	args	= new Array();
	calHTML	= "";

	setGlobals(mo, yr);
	
	begintable();
	gentableHeader(mo, yr);
	makeMonth(mo, yr);
	gentableFooter()
	endtable();
	
	return calHTML;
	
}

//*---------------------------------------------------------------------*//
function makeMonth(mo, yr) {

//mo=6;
//alert(mo)
	var monthDateObj	= new Date(yr, mo, 01);
	var lastDay			= daysInMonth(monthDateObj);
	var	firstDay		= monthDateObj.getDay();
	var calPos			= 0;
	var	calDate			= 0;
	
	while (calDate < lastDay) {

		beginRow();
		for (var i=0;i<7;i++) {
			if ((calPos < firstDay) || (calDate > lastDay - 1)) {
				gentableCell();
			} else {
				calDate++;
				if (isToday(yr, mo, calDate)) {
					gentableCell(calDate, false);
				} else {
					gentableCell(calDate, false);
				}
			}
			calPos++;
		}
		endRow();

	}

}

//*---------------------------------------------------------------------*//
function getLinkArgs(mo, yr) {

	argsArray				= new Array();
	lastArray				= new Array();
	nextArray				= new Array();
	
	var monthDateObj		= new Date(yr, mo, 01);
	lastArray				= monthAddSimple(monthDateObj, -1);
	nextArray				= monthAddSimple(monthDateObj, 1);
		
	argsArray[0]			= lastArray[0];
	argsArray[1]			= lastArray[1];
	argsArray[2]			= nextArray[0];
	argsArray[3]			= nextArray[1];
	
	return argsArray;
}

//*---------------------------------------------------------------------*//
function setGlobals(mo, yr) {
	args				= getLinkArgs(mo, yr);
	gThisMonth			= mo;
	gThisYear			= yr;
	gLastMonth			= args[0];
	gLastYear			= args[1];
	gNextMonth			= args[2];
	gNextYear			= args[3];	
}

//*---------------------------------------------------------------------*//
function gentableHeader(mo, yr) {
//alert(mo)


	calHTML = calHTML + "<tr>\n";
	calHTML = calHTML + "<td background=\""+ imgPath +"bkg_rapid_res_header.gif\" ><img src=\"" + imgPath + "spacer.gif\" width=\"216\" alt=\"\" height=\"1\" border=\"0\" /></td>";		
	calHTML = calHTML + "</tr>\n";
	calHTML = calHTML + "<tr>\n";
	calHTML = calHTML + "<td align=\"center\" valign=\"top\">";
	calHTML = calHTML + "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" bgcolor=\"#FFEBC2\" style=\"background: url(" + imgPath + "bkg_rapid_res.gif);\">\n";
	calHTML = calHTML + "<tr>\n";
	calHTML = calHTML + "<td height=\"10\" colspan=\"5\"><img src=\"" + imgPath + "spacer.gif\" alt=\"\" height=\"10\" border=\"0\" /></td>";		
	calHTML = calHTML + "</tr>\n";
	calHTML = calHTML + "<tr>\n";
	calHTML = calHTML + "<td align=\"left\" class=\"calHeader\" width=\"10\"><img src=\"" + imgPath + "spacer.gif\" border=\"0\" width=\"10\"></td>\n";
	
	tempmonthyear= new Array();
	tempmonthyear= monthAddSimple(today, 23);
	var tempmonth=tempmonthyear[0];
	var tempyear=tempmonthyear[1];
		
	//For Disabling Year prior to current year.
	dt = new Date();
	mnth = dt.getMonth();
	if ((gThisYear == todayYear)&& (gThisMonth < mnth +1 )){
		calHTML = calHTML + "<td align=\"left\" class=\"calHeader\"><img src=\"" + imgPath + "btn_page_prev_inactive.gif\" border=\"0\"></td>\n";
	} else {
		calHTML = calHTML + "<td align=\"left\" class=\"calHeader\"><a href=\"javascript:lastMonth();\" title=\"Last Month\"><img src=\"" + imgPath + "btn_page_prev_active.gif\" border=\"0\"></a></td>\n"
	}
	
		
	if(locale == "ja_JP")
	{
	calHTML = calHTML + "<td align=\"center\" class=\"txtModuleTitlecal\">" + yr + japaneseYearChar + " " + monthAsString(mo)  + "</td>\n";
	}
	else
	{
	calHTML = calHTML + "<td align=\"center\" class=\"txtModuleTitlecal\">" + monthAsString(mo) + " " + yr  + "</td>\n";
	}
	
	//For Disabling Year 2 years following current year.
	//if ((gThisYear == tempyear) && (gThisMonth == tempmonth)){
	//if ((gThisYear > (todayYear+1))&& (gThisMonth >= todayMonth)){
		//alert(gThisYear)
	if ((gThisYear == todayYear+2)&& (gThisMonth == endMonth)){
	calHTML = calHTML + "<td align=\"right\" class=\"calHeader\"><img src=\"" + imgPath + "btn_page_next_inactive.gif\" border=\"0\"></td>\n";
	} else {
		calHTML = calHTML + "<td align=\"right\" class=\"calHeader\"><a href=\"javascript:nextMonth();\" title=\"Next Month\"><img src=\"" + imgPath + "btn_page_next_active.gif\" border=\"0\"></a></td>\n";
	}
	
	calHTML = calHTML + "<td align=\"left\" class=\"calHeader\" width=\"10\"><img src=\"" + imgPath + "spacer.gif\" border=\"0\" width=\"10\"></td>\n";
	calHTML = calHTML + "</tr>\n";
	calHTML = calHTML + "<tr>\n";
	calHTML = calHTML + "<td height=\"8\" colspan=\"5\"><img src=\"" + imgPath + "spacer.gif\" alt=\"\" height=\"8\" border=\"0\" /></td>";		
	calHTML = calHTML + "</tr>\n";
	calHTML = calHTML + "</table>\n";
	calHTML = calHTML + "<table  border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" bgcolor=\"#FFEBC2\" style=\"background: url(" + imgPath + "bkg_calendar_shadow.gif);\" height=\"2\">\n";
	calHTML = calHTML + "<tr>\n";
	calHTML = calHTML + "<td><img src=\"" + imgPath + "spacer.gif\" alt=\"\" height=\"2\" border=\"0\" /></td>";		
	calHTML = calHTML + "</tr>\n";
	calHTML = calHTML + "</table>\n";
	calHTML = calHTML + "</td>\n";
	calHTML = calHTML + "</tr>\n";
	calHTML = calHTML + "<tr>\n";
	calHTML = calHTML + "<td align=\"center\" valign=\"top\"   style=\"background: url(" + imgPath + "bkg_res_white.gif);\" >";
	calHTML = calHTML + "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"180\" bgcolor=\"white\"><tr>\n";
	calHTML = calHTML + "<tr>\n";
	calHTML = calHTML + "<td height=\"4\" colspan=\"7\"><img src=\"" + imgPath + "spacer.gif\" alt=\"\" height=\"4\" border=\"0\" /></td>";		
	calHTML = calHTML + "</tr>\n";
	for (var i=0;i<7;i++) {
		calHTML = calHTML + "<td  align=\"center\" valign=\"top\"><b>" + daysArray[i] + "</b></td>";
	}
	calHTML = calHTML + "\n</tr>\n";
	calHTML = calHTML + "<tr>\n";
	calHTML = calHTML + "<td height=\"4\" colspan=\"7\"><img src=\"" + imgPath + "spacer.gif\" alt=\"\" height=\"4\" border=\"0\" /></td>";		
	calHTML = calHTML + "</tr>\n";
	calHTML = calHTML + "<tr>\n";
	calHTML = calHTML + "<td colspan=\"7\" height=\"1\" background=\""+ imgPath +"bkg_dotted_line_blue_calendar.gif\">";
	calHTML = calHTML + "<img src=\"" + imgPath + "spacer.gif\" alt=\"\" height=\"1\" border=\"0\" /></td>\n";
	calHTML = calHTML + "</tr>\n";
	calHTML = calHTML + "<tr>\n";
	calHTML = calHTML + "<td height=\"10\" colspan=\"7\"><img src=\"" + imgPath + "spacer.gif\" alt=\"\" height=\"10\" border=\"0\" /></td>";		
	calHTML = calHTML + "</tr>\n";
}

//*---------------------------------------------------------------------*//
function gentableFooter() {
	calHTML = calHTML + "<tr>\n";
	calHTML = calHTML + "<td align=\"right\" valign=\"top\" colspan=\"7\">";
	calHTML = calHTML + "<a href=\"javascript:closeCal();\"><img src=\"" + imgPath + "btn_cal_close_window.gif\" border=\"0\"></a>";
	calHTML = calHTML + "</td>\n";
	calHTML = calHTML + "</tr>\n";
	calHTML = calHTML + "<tr>\n";
	calHTML = calHTML + "<td height=\"3\" colspan=\"7\"><img src=\"" + imgPath + "spacer.gif\" alt=\"\" height=\"3\" border=\"0\" /></td>";		
	calHTML = calHTML + "</tr>\n";
	calHTML = calHTML + "</table></td></tr>\n";
	
}

//*---------------------------------------------------------------------*//
function gentableCell(num, todayFlag) {
		
		tdclass		= "txtBody";
		tdclassdisabled		= "txtBodydisabled";
		preA		= "";
		postA		= "";
		if((num == todayDay) && (gThisMonth == todayMonth) && (gThisYear == todayYear)){
			var aclass  = "classToday";
		}
		else {
			aclass 		= "";
		}
	
	if (!num) {
		num		= "&nbsp;";
		beginA	= "";
		endA	= "";
	} else {
		beginA	= "<a href=\"javascript:void setSelectedDate(" + num +"); closeCal();\"  noneclass=\"" + aclass + "\">";
		endA	= "</a>";
	}
	
	// ################# changed here for enabling href  31st of jan 2004 ##########################
	dt = new Date();
	date = dt.getDate();
	
	
	if ((num < date) && (gThisMonth == todayMonth) && (gThisYear == todayYear)){
			calHTML = calHTML + "<td  align=\"right\" valign=\"top\" width=\"20\" class=\"" + tdclassdisabled + "\" id=\"day_" + num + "\">" + num + "</td>";
	}
	else{
	calHTML = calHTML + "<td align=\"right\" valign=\"top\" width=\"20\" class=\"" + tdclass + "\" id=\"day_" + num + "\" >" + beginA + preA + num + postA + endA + "</td>";
	}
}

//*---------------------------------------------------------------------*//
function begintable() {
	calHTML = calHTML + "<table border=0 width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n";
}

//*---------------------------------------------------------------------*//
function endtable() {
	calHTML = calHTML + "</table>\n";
}

//*---------------------------------------------------------------------*//
function beginRow() {
	calHTML = calHTML + "<tr>\n";
}

//*---------------------------------------------------------------------*//
function endRow() {
	calHTML = calHTML + "</tr>\n";
	calHTML = calHTML + "<tr>\n";
	calHTML = calHTML + "<td height=\"4\" colspan=\"7\"><img src=\"" + imgPath + "spacer.gif\" alt=\"\" height=\"4\" border=\"0\" /></td>";		
	calHTML = calHTML + "</tr>\n";
	
}

//*---------------------------------------------------------------------*//
function showLayer(layername, layerContent) {

	document.getElementById(layername).innerHTML	= layerContent;
}

//*---------------------------------------------------------------------*//
function doCalendar(mo, yr) {
	var newHTML	= "";
	newHTML	= genCalendar(mo, yr);
	showLayer("calendarLayer", newHTML);
}

//*---------------------------------------------------------------------*//
function lastMonth() {
	doCalendar(gLastMonth, gLastYear);
}

//*---------------------------------------------------------------------*//
function nextMonth() {
	doCalendar(gNextMonth, gNextYear);
}

//*---------------------------------------------------------------------*//
function setSelectedDate(theDay) {
	dateString	= (gThisMonth + 1) + "/" + theDay + "/" + gThisYear;
	
	// Set the color of the selected date to some contrasting color.
	strEval	= "document.getElementById(\"day_" + theDay + "\").style.fontWeight ='bold'";
	eval(strEval);
	
	//	Change the color if the other selected square back to white.
	if (tmpDay != "") {
		strEval	= "document.getElementById(\"day_" + tmpDay + "\").style.fontWeight ='normal'";
		//alert(strEval);
		//eval(strEval);
	}
	tmpDay	= theDay;
	//alert(formName);
	setFields(dateString);

}

//*------------------------------------------------------------------------*//
function setFields(dateString) {
	setDateField(dateString);
}

//*------------------------------------------------------------------------*//
function setDateField(dateString) {
		
	passedDay=tmpDay;
	var tmpMonth=gThisMonth+1;
	var tmpYear=gThisYear;
	tmpMonth=makeTwoDigit(tmpMonth); // function for appending 0 for single digit month
	passedDate= tmpYear + "" + tmpMonth;
	
	/*var monthsArray	= new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
	var mmm = monthsArray[gThisMonth];
	formatPassedDate = mmm + " " + tmpYear;*/
	
	passedDay=passedDay*1;
	var outMonthYear = eval("document." + formName + ".MonthYear" + activeCal);
	
	var outMonthDay = eval("document."+ formName + ".Day" + activeCal);
	
	
	var outMonthYearLength=outMonthYear.options.length;
	for(i=0;i < outMonthYearLength;i++){
	//alert(i+"\n"+passedDate+"\n"+outMonthYear.options[i].value)
		if(passedDate==outMonthYear.options[i].value){
		outMonthYear.selectedIndex=i;
		//outMonthYear.options[outMonthYearLength]=null;
		//var funcchange= eval("changeDays"+activeCal+"()");
		//alert(funcchange);
		//return false;
		}
	}	
	
	for(i=0;i < outMonthDay.options.length;i++){
	
		if(passedDay==outMonthDay.options[i].value){
		outMonthDay.selectedIndex=i;
		}
	}
	
}

//*------------------------------------------------------------------------*//
function openCal(fieldNum) {



	var locArray	= new Array();
	var currentImg	= "calendar" + fieldNum;
	var lastImg		= "calendar" + activeCal;
	var tempval;
	tempval="none";
	// KW: Fixed The Calender Close Issue
	gImgID = currentImg;
	// End of Changes
	
	
	
	if (activeCal != fieldNum) {
		if (activeCal != 0) {
			closeCal();
			
			document.getElementById(lastImg).title	= showCalendarText;
		}
		
		if (jsPathToUtils == "") {
					locArray	= getObjectCoords("calendar" + fieldNum);
			
			setObjectCoords("hiddenCalendar", locArray[0]+20, locArray[1],tempval,fieldNum);
		} else {
			locArray	= jsPathToUtils.getObjectCoords("calendar" + fieldNum, jsPathToCal);
			
			jsPathToUtils.setObjectCoords("hiddenCalendar", locArray[0]+20, locArray[1], jsPathToCal,fieldNum);
		}
//		alert(startMonth)
//		alert(startYear)
		
		
		
		startMonth=startMonth;
		
//		startYear=kyear;


		
		doCalendar(startMonth, startYear);
		
	
		/*if (startDay) {
			eval("document.getElementById(\"day_" + startDay + "\").style.fontWeight ='bold'");
		}*/

		document.getElementById("hiddenCalendar").style.visibility	= "visible";
		// KW: Fixed for: Bug ID 14280
		document.getElementById("hiddenCalendar").style.display	= "inline";
		// End of Changes
		
		document.getElementById(currentImg).title	= hideCalendarText;
		
		activeCal	= fieldNum;
		
	} else {
		// KW: Fixed The Calender Close Issue
		document.getElementById(currentImg).title	= showCalendarText;
		activeCal	= 0;
		// End of Changes
		closeCal();
	}
}

//*------------------------------------------------------------------------*//
function closeCal() {
//alert(activeCal);
//chkcls()
//###########  Start of Updating the date2 = date1 + 1  using gui #############
if (activeCal==1)
{
devlopdate();
}
//########### End  of Updating the date2 = date1 + 1  using gui #############



//	devlopdate();
//alert(currentImg)
	// KW: Fixed The Calender Close Issue
	activeCal	= 0;
	document.getElementById(gImgID).title	= showCalendarText;
	// End of Changes
	document.getElementById("hiddenCalendar").style.visibility	= "hidden";
	// KW: Fixed for: Bug ID 14280
	document.getElementById("hiddenCalendar").style.display	= "none";
	// End of Changes
}

//*------------------------------------------------------------------------*//

