/*
<script type="text/javascript" src="calendar.js"></script>

<input type="text" name="a" id="a" />
<a href="javascript:void(0)" onclick="pCalendar(this, 'a')">Click</a>
<input type="text" name="b" id="b" />
<a href="javascript:void(0)" onclick="pCalendar(this, 'b')">Click</a>
<div id="pcalendar"></div>
*/
var Days  = new Array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
var Month = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
var Feb   = new Array (31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var input;

function pCalendar(obj, id)
{
	dt = new Date();
	m = dt.getMonth();
	y = dt.getFullYear();
	
	showCalendar(obj);
	makeCalendar(m, y);
	setInput(id);
}

function setInput(id)
{
	input = document.getElementById(id);	
}

function makeCalendar(intMonth, intYear)
{
	//เก็บค่าเดือนปี
	intMonth = parseInt(intMonth);
	intYear  = parseInt(intYear);
	
	//วันสิ้นสุดเดือนกุมภา
	Feb[1] = (intYear % 4 == 0) ? 29 : 28;
		
	str  = '<table id="popup-calendar">';
	str += '<tr><td colspan="7" aling="center">';
	
	//สร้างตัวเลือกเดือน
	str += '<select name="month" id="month" onchange="change()">';
	for(i = 0; i < 12; i++)
	{
		if(i == intMonth)
		{
			str += '<option value="' + i + '" selected="selected">' + Month[i] + '</option>';
		}
		else
		{
			str += '<option value="' + i + '">' + Month[i] + '</option>';
		}
	}
	
	str += '</select>&nbsp;';
	
	//สร้างตัวเลือกปี
	str += '<select name="year" id="year" onchange="change()">';
	dt = new Date();
	thisYear = dt.getFullYear();
	
	startYear = thisYear;
	for(i = startYear; i <= (thisYear + 10); i++)
	{
		if(i == intYear) 
		{
			str += '<option value="' + i + '" selected="selected">' + i + '</option>';
		}
		else
		{
			str += '<option value="' + i + '">' + i + '</option>';
		}
	}	
	
	//รายชื่อวัน
	str += '</select></td></tr>';
	str += '<tr class="days">';
	for(i = 0; i < 7; i++)
	{
		str += '<td>' + Days[i] + '</td>';
	}
	str += '</tr>';
	
	//หาวันที่เดือนก่อนหน้า และเดือนถัดไป
	lastMonth = intMonth - 1;
	lastYear  = intYear;
	if(lastMonth == -1)
	{
		lastMonth = 11;
		lastYear  = lastYear - 1; 
	}
	lastDay = Feb[lastMonth];

	dt = new Date(intYear, intMonth, 1);
	startDay = dt.getDay();
	intColumn = 0;
	for(i = 0; i < startDay; i++, intColumn++)
	{
		str += '<td class="gray">' + (lastDay - startDay + i + 1) + '</td>';
	}
	//แสดงวันที่เดือนที่แสดง
	dt = new Date();
	nowDate  = dt.getDate();
	nowMonth = dt.getMonth();
	nowYear  = dt.getFullYear();
	
	for(i = 1; i <= Feb[intMonth]; i++, intColumn++)
	{
		if(i == nowDate && intMonth == nowMonth && intYear == nowYear)
		{
			str += '<td class="bg-lightblue"><a href="javascript:changeDay(' + i + ')"><b>' + i + '</b></a></td>';
		}
		else if(intColumn == 0)
		{
			str += '<td><a class="red" href="javascript:changeDay(' + i + ')">' + i + '</a></td>';
		}
		else if(intColumn == 6)
		{
			str += '<td><a class="blue" href="javascript:changeDay(' + i + ')">' + i + '</a></td>';
		}
		else
		{
			str += '<td><a href="javascript:changeDay(' + i + ')">' + i + '</a></td>';
		}
		
		if(intColumn == 6)
		{
			str += '</tr><tr>';
			intColumn = -1;
		}
	}
	
	//แสดงวันที่ของเดือนถัดไป
	for(i = 1; intColumn < 7; i++, intColumn++)
	{
		str += '<td class="gray">' + i + '</td>';	
	}
	
	str += '</tr></table>';
	
	//แสดงปฏิทินในออบเจ็ก pCalendar
	document.getElementById('pcalendar').innerHTML = str;
}

//นำค่าวัน เดือน ปี มาใส่ลงใน textbox
function changeDay(d)
{
	m = document.getElementById('month').value;
	y = document.getElementById('year').value;
	
	++m;
	
	input.value = y + '-' + m + '-' + d;
	document.getElementById('pcalendar').style.visibility = 'hidden';
}

//แสดง ซ่อนปฏิทิน
function showCalendar(btn)
{
	if(btn.offsetParent)
	{
		Left = btn.offsetLeft;
		Top  = btn.offsetTop;
		while(btn = btn.offsetParent)
		{
			Left += btn.offsetLeft;
			Top  += btn.offsetTop;
		}
	}

	obj = document.getElementById('pcalendar');
	obj.style.visibility = (obj.style.visibility == 'visible') ? 'hidden' : 'visible';
	obj.style.left = Left + 20 + 'px';
	obj.style.top  = Top + 'px';
}

//สร้างเดือนใหม่
function change()
{
	m = parseInt(document.getElementById('month').value);	
	y = parseInt(document.getElementById('year').value);	
	makeCalendar(m, y);
}
