
function initCalendar(source_form, day_column, month_column, year_column, day_column_value, month_column_value, year_column_value)
{//	day_column to set day data
//document.write (day_column_value);
	//alert(day_column_value+'-'+month_column_value+'-'+year_column_value);
	redrawCalendar(source_form, day_column, month_column, year_column, day_column_value, month_column_value, year_column_value);
	setDateValue(source_form, day_column, month_column, year_column, day_column_value, month_column_value, year_column_value);
}


function refreshCalendar(source_form, day_column, month_column, year_column)
{//	day_column to set day data

	cfm = eval(source_form['From_Month'].value);
	cfy = eval(source_form['From_Year'].value);
	ctm = eval(source_form['To_Month'].value);
	cty = eval(source_form['To_Year'].value);


	//alert(cfd + ' ' + cfm + ' ' + cfy);
	//alert(ctd + ' ' + ctm + ' ' + cty);

	day_column_index = findFormIndex(source_form, day_column);
	day_column_value =  source_form[day_column_index].value;
	month_column_index = findFormIndex(source_form, month_column);
	month_column_value =  source_form[month_column_index].value;
	year_column_index = findFormIndex(source_form, year_column);
	year_column_value =  source_form[year_column_index].value;

	redrawCalendar(source_form, day_column, month_column, year_column, day_column_value, month_column_value, year_column_value);

	if(cfy > cty) {
		day_column = "To_Date";
		month_column = "To_Month";
		year_column = "To_Year";
		year_column_value = cfy;
		redrawCalendar2(source_form, day_column, month_column, year_column, day_column_value, month_column_value, year_column_value);
	}

	if(cfm > ctm && cfy == cty) {
		day_column = "To_Date";
		month_column = "To_Month";
		year_column = "To_Year";
		month_column_value = cfm;
		redrawCalendar2(source_form, day_column, month_column, year_column, day_column_value, month_column_value, year_column_value);
	}

	/*if(cfd > ctd) {
		day_column = "To_Date";
		month_column = "To_Month";
		year_column = "To_Year";
		day_column_value = cfd;
		redrawCalendar2(source_form, day_column, month_column, year_column, day_column_value, month_column_value, year_column_value);
	}*/
}

function refreshCalendar2(source_form, day_column, month_column, year_column)
{//	day_column to set day data

	cfm = eval(source_form['From_Month'].value);
	cfy = eval(source_form['From_Year'].value);
	ctm = eval(source_form['To_Month'].value);
	cty = eval(source_form['To_Year'].value);

	day_column_index = findFormIndex(source_form, day_column);
	day_column_value =  source_form[day_column_index].value;
	month_column_index = findFormIndex(source_form, month_column);
	month_column_value =  source_form[month_column_index].value;
	year_column_index = findFormIndex(source_form, year_column);
	year_column_value =  source_form[year_column_index].value;

	redrawCalendar2(source_form, day_column, month_column, year_column, day_column_value, month_column_value, year_column_value);

	if(cfy > cty) {
		day_column = "From_Date";
		month_column = "From_Month";
		year_column = "From_Year";
		year_column_value = cty;
		redrawCalendar(source_form, day_column, month_column, year_column, day_column_value, month_column_value, year_column_value);
	}

	if(cfm > ctm && cfy == cty) {
		day_column = "From_Date";
		month_column = "From_Month";
		year_column = "From_Year";
		month_column_value = ctm;
		redrawCalendar(source_form, day_column, month_column, year_column, day_column_value, month_column_value, year_column_value);
	}
}

/*
function refreshCalendar(source_form, day_column, month_column, year_column)
{//	day_column to set day data
	day_column_index = findFormIndex(source_form, day_column);
	day_column_value =  source_form[day_column_index].value;
	month_column_index = findFormIndex(source_form, month_column);
	month_column_value =  source_form[month_column_index].value;
	year_column_index = findFormIndex(source_form, year_column);
	year_column_value =  source_form[year_column_index].value;

	redrawCalendar(source_form, day_column, month_column, year_column, day_column_value, month_column_value, year_column_value);
}
*/

function setDateValue(source_form, day_column, month_column, year_column, day_column_value, month_column_value, year_column_value)
{
	if (day_column_value > endOfMonth(month_column_value, year_column_value)) { day_column_value = 2; }

	day_column_index = findFormIndex(source_form, day_column);
	source_form[day_column_index].value = day_column_value ; 

	month_column_index = findFormIndex(source_form, month_column);
	source_form[month_column_index].selectedIndex = (month_column_value - 1);
 
	defaultFormSelect(source_form, year_column, year_column_value);
}
function selectCalendarDay(source_form, day_column, day_column_value, span_id, obj_id, diff_time)
{//	day_column to set day data
	
	cfm = eval(source_form['From_Month'].value);
	cfy = eval(source_form['From_Year'].value);
	cfd = eval(source_form['From_Date'].value);
	ctm = eval(source_form['To_Month'].value);
	cty = eval(source_form['To_Year'].value);
	ctd = eval(source_form['To_Date'].value);

	//alert(span_id + ' ' + obj_id + ' ' + diff_time);
	//alert(cfd + ' ' + ctd + ' [' + day_column_value + ']');
	
	day_column_index = findFormIndex(source_form, day_column);

	source_form[day_column_index].value = day_column_value  ;
	
	//alert(span_id + ' ' + obj_id);
	for(i=0;i<=41;i++) {
		
		var objid = obj_id + i;
		var Obj = document.getElementById(objid);
		
		//alert(objid);
		
		if(diff_time) {
			
			if(i==span_id) {
				//alert(span_id + ' ' + obj_id);
				Obj.style.backgroundColor="#FF9900";
				Obj.style.fontWeight = "bold";
				Obj.style.textDecoration = "underline";
				Obj.style.color = "#0000FF";
			} else {
				//alert(span_id + ' ' + obj_id);
				Obj.style.backgroundColor="#EFDFC0";
				Obj.style.fontWeight = "normal";				
				Obj.style.textDecoration = "none";
				Obj.style.color = "#000000";
			}
			
		} else {
			
			if(i==span_id) {
				document.getElementById(objid).className = "";
			} else {
				document.getElementById(objid).style.fontWeight = "normal";
				document.getElementById(objid).style.textDecoration = "none";
			}
			
		}
		
	}

	if(day_column=="From_Date") {
		if(day_column_value > ctd && cfm >= ctm && cfy == ctm) {
			selectCalendarDay(source_form, "To_Date", day_column_value, span_id, "calDatee", diff_time)
		}
	} else {
		if(day_column_value < cfd && ctm <= cfm && cfy == cty) {
			selectCalendarDay(source_form, "From_Date", day_column_value, span_id, "calDate", diff_time)
		}
	}
	
}

function isCurrent2(day, month, year)
{//	return +1, ==0, -1
	today=new Date();
	today.setFullYear(2008,11,05);

	if (year > today.getUTCFullYear())
		return 1;
	else if (year < today.getUTCFullYear())
		return -1;
	else
	{
		if (month > (today.getUTCMonth() + 1))
			return 1;
		else if (month < (today.getUTCMonth() + 1))
			return -1;
		else
		{
			if (day > today.getUTCDate())
				return 1;
			else if (day < today.getUTCDate())
				return -1;
			else if (day == today.getUTCDate())
				return 0;
			else
				return -1;	// error
		}
	}
}

function redrawCalendar(source_form, day_column, month_column, year_column, day_column_value, month_column_value, year_column_value)
{//	calendar size = 7 x 7
//	first row start from id = 'calHeadText0'  - 'calHeadText6'
//	other rows start from id = 'calDateText0'  - 'calDateText41'
	
	aCalendar = createCalendar(month_column_value, year_column_value, 1);
	for (d = 0; d < 7; d++)
	{
		id = 'calHeadText'+d;
		document.getElementById(id).innerHTML = '<font class="text-verdana10">'+aCalendar[0][d]+'</font>';
//		calHeadText[d].innerText = aCalendar[0][d];
	}

	for (w = 1; w < 7 ; w++) 
	{
		for (d = 0; d < 7; d++)
		{
			if (!isNaN(aCalendar[w][d]))
			{
				diff_time = isCurrent2(aCalendar[w][d], month_column_value, year_column_value);
				//alert(diff_time);
				span_id = ((7*w)+d)-7;
				//alert(span_id);
				//alert(document.getElementById(obj_id).className);
				if (diff_time > 0)
				{
					document.getElementById('calDateText' + (((7*w)+d)-7)).innerHTML = 
						'<a href="javascript:void(0)" class="booking_calendar"  onclick="selectCalendarDay(' + source_form.name + ",'" +  day_column + "'," + aCalendar[w][d] + ',' + span_id + ', \'calDate\', ' + diff_time + ');">' + 
						aCalendar[w][d] + '</a>';
				}
				else if (diff_time == 0)
				{ 
					document.getElementById('calDatee' + (((7*w)+d)-7)).style.backgroundColor = '#CFBFA0';
					document.getElementById('calDateText' + (((7*w)+d)-7)).innerHTML = 
						'<a href="javascript:void(0)"  class="booking_select"  onclick="selectCalendarDay(' + source_form.name + ",'" +  day_column + "'," + aCalendar[w][d] + ',' + span_id + ', \'calDate\', ' + diff_time + ');">' + 
						aCalendar[w][d] + '</a>';
				}
				else	//	diff_time < 0
				{
					document.getElementById('calDateText' + (((7*w)+d)-7)).innerHTML = '<font class="text-calendar">'+aCalendar[w][d];+'</font>';
				}

//				calDateText[((7*w)+d)-7].innerText = aCalendar[w][d];
			} 
			else 
			{
				document.getElementById('calDateText' + (((7*w)+d)-7)).innerHTML = '<font class="booking_calendar"></font>';
//				calDateText[((7*w)+d)-7].innerText = " ";
			}
		}
	}

	setDateValue(source_form, day_column, month_column, year_column, day_column_value, month_column_value, year_column_value);
}







function createCalendar(iMonth, iYear, iDayStyle)
{
	var aMonth = new Array();
	aMonth[0] = new Array(7);
	aMonth[1] = new Array(7);
	aMonth[2] = new Array(7);
	aMonth[3] = new Array(7);
	aMonth[4] = new Array(7);
	aMonth[5] = new Array(7);
	aMonth[6] = new Array(7);
	var dCalDate = new Date(iYear, iMonth-1, 1);
	var iDayOfFirst = dCalDate.getDay();
	var iDaysInMonth = endOfMonth(iMonth, iYear);
	var iVarDate = 1;
	var i, d, w;

	if (iDayStyle == 2) 
	{
		aMonth[0][0] = "<b>ÍÒ·ÔµÂì</b>";
		aMonth[0][1] = "<b>¨Ñ¹·Ãì</b>";
		aMonth[0][2] = "<b>ÍÑ§¤ÒÃ</b>";
		aMonth[0][3] = "<b>¾Ø¸</b>";
		aMonth[0][4] = "<b>¾ÄËÑÊº´Õ</b>";
		aMonth[0][5] = "<b>ÈØ¡Ãì</b>";
		aMonth[0][6] = "<b>àÊÒÃì</b>";
	} 
	else 
	{
		aMonth[0][0] = "<b>ÍÒ</b>";
		aMonth[0][1] = "<b>¨</b>";
		aMonth[0][2] = "<b>Í</b>";
		aMonth[0][3] = "<b>¾</b>";
		aMonth[0][4] = "<b>¾Ä</b>";
		aMonth[0][5] = "<b>È</b>";
		aMonth[0][6] = "<b>Ê</b>";
	}

	for (d = iDayOfFirst; d < 7; d++) 
	{
		aMonth[1][d] = iVarDate;
		iVarDate++;
	}

	for (w = 2; w < 7; w++) 
	{
		for (d = 0; d < 7; d++) 
		{
			if (iVarDate <= iDaysInMonth) 
			{
				aMonth[w][d] = iVarDate;
				iVarDate++;
			}
		}
	}
	return aMonth;
}

function initCalendar2(source_form, day_column, month_column, year_column, day_column_value, month_column_value, year_column_value)
{//	day_column to set day data
	redrawCalendar2(source_form, day_column, month_column, year_column, day_column_value, month_column_value, year_column_value);
	setDateValue(source_form, day_column, month_column, year_column, day_column_value, month_column_value, year_column_value);
}

function redrawCalendar2(source_form, day_column, month_column, year_column, day_column_value, month_column_value, year_column_value)
{//	calendar size = 7 x 7
//	first row start from id = 'calHeadText0'  - 'calHeadText6'
//	other rows start from id = 'calDateText0'  - 'calDateText41'

	aCalendar = createCalendar(month_column_value, year_column_value, 1);
	for (d = 0; d < 7; d++)
	{
		document.getElementById('calHeadTextt' + d).innerHTML = '<font class="bgheader">'+aCalendar[0][d];+'</font>';
//		calHeadText[d].innerText = aCalendar[0][d];
	}

	for (w = 1; w < 7; w++) 
	{
		for (d = 0; d < 7; d++)
		{
			if (!isNaN(aCalendar[w][d]))
			{
				diff_time = isCurrent2(aCalendar[w][d], month_column_value, year_column_value);
				span_id = ((7*w)+d)-7;
				if (diff_time > 0)
				{
					document.getElementById('calDateTextt' + (((7*w)+d)-7)).innerHTML = 
						'<a href="javascript:void(0)" class="booking_calendar"  onclick="selectCalendarDay(' + source_form.name + ",'" +  day_column + "'," + aCalendar[w][d] + ',' + span_id + ', \'calDatee\', ' + diff_time + ');">' + 
						aCalendar[w][d] + '</a>';
				}
				else if (diff_time == 0)
				{
					document.getElementById('calDate' + (((7*w)+d)-7)).style.backgroundColor = '#CFBFA0';
					document.getElementById('calDateTextt' + (((7*w)+d)-7)).innerHTML = 
						'<a href="javascript:void(0)"  class="booking_select"  onclick="selectCalendarDay(' + source_form.name + ",'" +  day_column + "'," + aCalendar[w][d] + ',' + span_id + ', \'calDatee\', ' + diff_time + ');">' + 
						aCalendar[w][d] + '</a>';
				}
				else	//	diff_time < 0
				{
					document.getElementById('calDateTextt' + (((7*w)+d)-7)).innerHTML = '<font class="text-calendar">'+aCalendar[w][d];+'</font>';
				}

//				calDateText[((7*w)+d)-7].innerText = aCalendar[w][d];
			} 
			else 
			{
				document.getElementById('calDateTextt' + (((7*w)+d)-7)).innerHTML = '<font class="booking_calendar"></font>';
//				calDateText[((7*w)+d)-7].innerText = " ";
			}
		}
	}

	setDateValue(source_form, day_column, month_column, year_column, day_column_value, month_column_value, year_column_value);
}