function generateCal(fieldid, divid, dateval) {
	divloc = document.getElementById(divid);
	field = document.getElementById(fieldid);
	var monthArray = new Array(12);
		monthArray[0] = "January";
		monthArray[1] = "February";
		monthArray[2] = "March";
		monthArray[3] = "April";
		monthArray[4] = "May";
		monthArray[5] = "June";
		monthArray[6] = "July";
		monthArray[7] = "August";
		monthArray[8] = "September";
		monthArray[9] = "October";
		monthArray[10] = "November";
		monthArray[11] = "December";
	
	var caltext = '';
	var regExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2,4}$/;
	if(!dateval)
		dateval = "";

	if (dateval != "") {
		var date = new Date(dateval);
	} else if(regExp.test(field.value)) {
		var date = new Date(field.value);
	} else {
		var date = new Date();
	}
	caltext = "<table width='150' cellpadding='0' cellspacing='0' border='0' style='border: 1px solid #999999; background: #FFFFFF' class='cal_table'>";
	caltext += "<tr>";
	caltext += "<td colspan='1' style='font: \'Arial\' 12px white; padding: 2px; text-align: center;' class='cal_header'><a href='#' onClick='generateCal(\"" + fieldid + "\",\"" + divid + "\",\"" + (date.getMonth()) + "/1/" + date.getYear() + "\"); return false;'>&lt;&lt;</a></td>";
	caltext += "<td colspan='5' style='font: \'Arial\' 12px white; padding: 2px; text-align: center;' class='cal_header'>" + monthArray[date.getMonth()] + " " + date.getYear() + "</td>";
	caltext += "<td colspan='1' style='font: \'Arial\' 12px white; padding: 2px; text-align: center;' class='cal_header'><a href='#' onClick='generateCal(\"" + fieldid + "\",\"" + divid + "\",\"" + (date.getMonth()+2) + "/1/" + date.getYear() + "\"); return false;'>&gt;&gt;</a></td>";
	caltext += "</tr>";
	caltext += "<tr style='font: \'Arial\' 12px white; padding: 2px; text-align: center;' class='cal_header'><td width='15%'>S</td><td width='14%'>M</td><td width='14%'>T</td><td width='14%'>W</td><td width='14%'>Th</td><td width='14%'>F</td><td width='15%'>Sa</td></tr>";

	tempDate = new Date((date.getMonth()+1) + '/1/' + date.getYear());
	startDay = tempDate.getDay()+1;
	currentDay=1;
	totalDays = getDaysInMonth(date.getMonth(), date.getYear());

	caltext += '<tr>';
	while(currentDay<startDay) {
		caltext += '<td></td>';
		currentDay++;
	}
	for(i=1;i<=totalDays;i++) {
		if(i==(date.getDate())) 
			className = 'cal_dates_sel';
		else
			className = 'cal_dates';
			
		caltext += "<td style='font: \'Arial\' 12px white; text-align: center;' class='" + className + "'><a href='#' onClick='setCalValue(\"" + fieldid + "\",\"" + (date.getMonth()+1) + "/" + i + "/" + date.getYear() + "\"); closeCalWin(\"" + divid + "\"); return false;'>" + i + "</a></td>";
		if(currentDay % 7 == 0) {
			caltext += '</tr><tr>';
			currentDay = 1;
		} else {
			currentDay++;
		}
	}
	while(currentDay % 7 != 0) {
		caltext += '<td></td>';
		currentDay++;
	}
	caltext += "</tr>";

	caltext += "<tr><td colspan='7' style='height: 5px;'></td></tr>";
	caltext += "<tr><td colspan='7' style='font: \'Arial\' 12px black; border-top: 1px solid #999999; padding: 4px; text-align: center;' class='cal_footer'><a href='#' onClick='closeCalWin(\"" + divid + "\"); return false;'>Close</a>&nbsp;&nbsp;</td></tr>";
	caltext += "</table>";

	divloc.innerHTML = caltext;
	divloc.style.display='block';
	return true;
}
function closeCalWin(id) {
	document.getElementById(id).style.display='none'
}
function setCalValue(fieldid, value) {
	document.getElementById(fieldid).value=value;
}
function getDaysInMonth(monthVal, yearVal) {
	var monthArray = new Array(12);
		monthArray[0] = 31;
		(yearVal % 4) == 0 ? monthArray[1] = 29 : monthArray[1] = 28;
		monthArray[2] = 31;
		monthArray[3] = 31;
		monthArray[4] = 31;
		monthArray[5] = 31;
		monthArray[6] = 31;
		monthArray[7] = 31;
		monthArray[8] = 31;
		monthArray[9] = 31;
		monthArray[10] = 30;
		monthArray[11] = 31;
	return monthArray[monthVal];
}