var frmField, frmValue;
var minYear = 2007, maxYear = 2050;


var bgcalender = "#333";
var bgheaderdate = "#CC0000";  //  
var fontheaderdate = "#FFFFFF";  //

//var strstm = "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec";
var strstm = "01,02,03,04,05,06,07,08,09,10,11,12";
//var strstm = "มกราคม,กุมภาพันธ์,มีนาคม,เมษายน,พฤษภาคม,มิถุนายน,กรกฎาคม,สิงหาคม,กันยายน,ตุลาคม,พฤศจิกายน,ธันวาคม";
var arrMnt = strstm.split(',');

document.write('<table id="tblCalender" cellpadding="1" cellspacing="1" border="0"'
	+'style="position:absolute;visibility:hidden;font-family:sans-serif;font-size:8pt;font-weight:;border:thin  ;background-color:'+bgcalender+';">');
document.write('<tr style="background-color:#CCC">');
document.write('<td colspan="7" align="center">');

document.write('<table width="100%" height="22" cellpadding="0" cellspacing="0" border="0"><tr><td><select name="optCalenderMonth" onchange="updateMenu();" style="color:#CC0000;font-size:8pt;font-weight:;">');
for (i=0; i<12; i++){
	document.write('<option value="' + i + '">' + getMonths(i) + '</option>');
}
document.write('</select>&nbsp;&nbsp;');

document.write('<select name="optCalenderYear" onchange="updateMenu();" style="color:#CC0000;font-size:8pt;font-weight:;">');

thisYea_r = new Date();
yea_r = thisYea_r.getFullYear();
//alert(yea_r);
for (i=minYear; i<=maxYear; i++){	
	if ( i == yea_r )
	{
		document.write('<option value="' + i + '" selected>' + i + '</option>');
	}
	else{
		document.write('<option value="' + i + '">' + i + '</option>');
	}
}
document.write('</select></td>');
document.write('<td align="right" valign="top"><span style="cursor:hand;font-size:8px;text-align:center;" '
	+ 'onmouseover="closeOver();" '
	+ 'onmouseout="closeOut();" '
	+ 'onclick="closeClick();">&nbsp;X&nbsp;</span></td>');
document.write('</select></td></tr></table>');
document.write('</td>');
document.write('</tr>');

document.write('<tr>');
var str = "Sun,Mon,Tue,Wed,Thu,Fri,Sat";
var arr = str.split(',');
for (i=0; i<7; i++){
	document.write('<th style="background-color:'+bgheaderdate+';color:'+fontheaderdate+'">' + arr[i] + '</th>');
}
document.write('</tr>');
// Grid
for (i = 0; i < 6; i++) { // 6 weeks
	document.write('<tr>');
	for (j = 0; j < 7; j++) { // 7 days per week
		if (true)
		{
		document.write('<td id="tdCalender" style="text-align:center;vertical-align:top;width:25px;cursor:hand;background-color:#fff;" '
			+ 'onmouseover="calOver();" '
			+ 'onmouseout="calOut();" '
			+ 'onclick="calClick();">');
		document.write('</td>');
		}
		else{			
		document.write('<td id="tdCalender" style="text-align:center;vertical-align:top;width:25px;cursor:hand;background-color:#fff;color:#CCC" '
			+ 'onmouseover="calOver();" '
			+ 'onmouseout="calOut();" ');
		document.write('</td>');
		}
		
	}
	document.write('</tr>');
}
document.write('</table>');


function getDates(y, m) {
	var dates = new Array(42);
	var first = new Date(y, m, 1).getDay();
	var days = 32 - new Date(y, m, 32).getDate();
	var i = 1;
	for (j = first; j <first+days; j++) {
		dates[j] = i;
		i++;
	}
	return dates;
}
function getMonths(i){
	//var sMonths = "มกราคม,กุมภาพันธ์,มีนาคม,เมษายน,พฤษภาคม,มิถุนายน,กรกฎาคม,สิงหาคม,กันยายน,ตุลาคม,พฤศจิกายน,ธันวาคม";
	var sMonths = "January,February,March,April,May,June,July,August,September,October,November,December";
	var aMonth = sMonths.split(',');
	return aMonth[i];
}
function updateMenu(){
	//alert(document.getElementById('optCalenderYear').value +','+ document.getElementById('optCalenderMonth').value);
	temp = document.getElementById('optCalenderYear').value;
	updateCalender(temp, document.getElementById('optCalenderMonth').value);
}
function updateCalender(y, m) {
	var arr = getDates(y, m);	

	for (i=0; i<document.getElementById('optCalenderYear').options.length; i++) {
		if (document.getElementById('optCalenderYear').options[i].value == y) {
			document.getElementById('optCalenderYear').options.selectedIndex = i;
		}
	}
	for (i=0; i<document.getElementById('optCalenderMonth').options.length; i++) {
		if (document.getElementById('optCalenderMonth').options[i].value == m) {
			document.getElementById('optCalenderMonth').options.selectedIndex = i;
		}
	}
	for (i=0; i<arr.length; i++) {
		if (!isNaN(arr[i])) tdCalender[i].innerText = arr[i];
		else tdCalender[i].innerText = "";
	}
}
function popupCalender(field){
	//for (i=0;i<document.forms.length;i++) {
	//	for (j=0;j<document.forms[i].elements.length;j++)
	//		if (document.forms[i].elements[j].type == "select-one")
	//		document.forms[i].elements[j].style.visibility = "hidden";
	//}
   
	frmField = document.getElementById(field);
	frmValue = frmField.value;
	var sThisMonth;
	var thisDate, thisYear, thisMonth;
	with (document.getElementById('tblCalender')){
		style.visibility = "visible";
		style.top = event.clientY + 6 + document.body.scrollTop;
		style.left = event.clientX + 6 + document.body.scrollLeft;
	}
	
	var reDate = /^\d{2}\/\w{3}\/\d{4}$/;
	
	if (reDate.test(frmValue)) {
		thisDate = frmValue.split('/');
		thisYear = thisDate[2];
		//thisMonth = thisDate[0]-1;
		//thisMonth = thisDate[1]-1;
		sThisMonth = thisDate[1];
		for (i=0; i<12; i++){
			if (arrMnt[i] == sThisMonth) thisMonth = i;
		}
	}
	else {
		thisDate = new Date();
		thisYear = thisDate.getFullYear();
		thisMonth = thisDate.getMonth();
	}
	//alert(thisYear+','+ thisMonth);
	updateCalender(thisYear, thisMonth);
} 
function calOver() {
	if (!isNaN(parseInt(event.srcElement.innerText))) {
		event.srcElement.style.color = "#CC0000";
	}
}
function calOut() {
	if (!isNaN(parseInt(event.srcElement.innerText))) {
		event.srcElement.style.color = "#000";
	}
}
function calClick() {
	if (!isNaN(parseInt(event.srcElement.innerText))) {
		var strDate = "";
		//var strMonth = parseInt(document.getElementById('optCalenderMonth').options[document.getElementById('optCalenderMonth').selectedIndex].value)+1;
		var strMonth = parseInt(document.getElementById('optCalenderMonth').options[document.getElementById('optCalenderMonth').selectedIndex].value);
		var strYear = document.getElementById('optCalenderYear').options[document.getElementById('optCalenderYear').selectedIndex].value;

		//-------------------------------------------------------------------------------
		//			Check วันที่ ห้ามเลือกวันย้อนหลัง
		//-------------------------------------------------------------------------------
		var now = new Date();
		var current_y = now.getYear();
		var current_m = now.getMonth();
		var current_d= now.getDate();

		var obj_date = new Date(current_y,current_m,current_d);
		var checkdate = new Date(strYear*1,strMonth*1,event.srcElement.innerText*1);

		/*if ( obj_date > checkdate)
		{
				alert('Date Expired');
				return false;
		}*/
		//---------------------------------------------------------------------------------


		//if (strMonth < 10) strDate += "0";
		//strDate += strMonth + '/';
		//if (parseInt(event.srcElement.innerText) < 10) strDate += "0";
		//strDate += event.srcElement.innerText + '/' + strYear;
		if (parseInt(event.srcElement.innerText) < 10) strDate += "0";
		strDate += event.srcElement.innerText + '' 
		//if (strMonth < 10) strDate += "0";
		//strDate +=  strMonth + '/' + strYear;
		strDate =  strYear + '-' + arrMnt[parseInt(strMonth)] + '-' + strDate ;
		
		frmField.value = strDate;
		document.getElementById('tblCalender').style.visibility = "hidden";
		//for (i=0;i<document.forms.length;i++) {
		//	for (j=0;j<document.forms[i].elements.length;j++)
		//		if (document.forms[i].elements[j].type == "select-one")
		//		document.forms[i].elements[j].style.visibility = "visible";
		//}
	}
}
function closeOver() {
	event.srcElement.style.backgroundColor = "#006";
	event.srcElement.style.color = "#fff";
}
function closeOut() {
	event.srcElement.style.backgroundColor = "#ccc";
	event.srcElement.style.color = "#000";
}
function closeClick() {
	frmField.value = frmValue;
	document.getElementById('tblCalender').style.visibility = "hidden";
	//for (i=0;i<document.forms.length;i++) {
	//	for (j=0;j<document.forms[i].elements.length;j++)
	//		if (document.forms[i].elements[j].type == "select-one")
	//		document.forms[i].elements[j].style.visibility = "visible";
	//}
}
