var calendar_box = null;
var calendar_id = "";
var calendar_value = "";

function OnCalendarOK()
{
	var d = document.getElementById(calendar_id);
	if (d) d.value = calendar_value;
}
function Calendar(obj_id)
{
	var d = document.getElementById(obj_id);
	if (!d) return;
	calendar_id = obj_id;
	calendar_value = d.value.replace(/(^\s*)|(\s*$)/g,'');
	
	var year, month, day;
	if (calendar_value.length > 0) {
		year = parseInt(calendar_value.substr(0,4), 10);
		month = parseInt(calendar_value.substr(5,2), 10);
		day = parseInt(calendar_value.substr(8,4), 10);
	}
	else {
		d = new Date();
		year = d.getFullYear();
		month = d.getMonth()+1;
		day = d.getDate();
	}
	
	calendar_value = "" + year + "-" + ((""+month).length>1?month:("0"+month)) + "-" + ((""+day).length>1?day:("0"+day));
	
	calendar_box = new DialogBox();
	calendar_box.ShowCalendar = ShowCalendar;
	calendar_box.SetCalendar = SetCalendar;
	calendar_box.box_styles.push(URL_STYLE+'calendar.css');
	ShowCalendar(year, month);
	calendar_box.box_btn_ok = CalendarTitle[1];
	calendar_box.box_btn_cancel = CalendarTitle[2];
	calendar_box.box_event_ok = OnCalendarOK;
	calendar_box.show(CalendarTitle[0], 300, 400);
}
function ShowCalendar(year, month)
{
	var d, firstweekday, lastday, i, j, c, html = '';
	d = new Date();
	d.setFullYear(year, month-1, 1);
	firstweekday = d.getDay();
	if (firstweekday < 1) firstweekday = 7;
	d.setMonth(month,0);
	lastday = d.getDate();
	
	var c_year, c_month, c_day;
	c_year = parseInt(calendar_value.substr(0,4), 10);
	c_month = parseInt(calendar_value.substr(5,2), 10);
	c_day = parseInt(calendar_value.substr(8,4), 10);
	
	var year_select = '';
	year_select += '<select id="dialog-calendar-year" onchange="dialogArguments.ShowCalendar(this.value,'+month+')">';
	for (i=1900; i<=2010; i++) year_select += '<option value="'+i+'"'+((i==year)?' selected':'')+'>'+i+'</option>';
	year_select += '</select>';
	
	html += '<table class="calendar">';
	html += '<tr class="header">';
	html += ' <td class="nav"><a href="javascript:dialogArguments.ShowCalendar('+((month>1)?year:(year-1))+','+((month>1)?(month-1):'12')+');">&lt;</a></td>';
	html += ' <td class="head" colspan="5">'+year_select+'<br/>'+MonthTitle[month]+'</td>';
	html += ' <td class="nav"><a href="javascript:dialogArguments.ShowCalendar('+((month<12)?year:(year+1))+','+((month<12)?(month+1):'1')+');">&gt;</a></td>';
	html += '</tr>';
	html += '<tr class="row">';
	html += ' <td>H</td><td>K</td><td>S</td><td>C</td><td>P</td><td>S</td><td>V</td>';
	html += '</tr>';
	
	html += '<tr class="row">';
	for (i=1,j=0; i<firstweekday; i++) {
		j++;
		html += '<td>&nbsp;</td>';
	}
	for (i=1; i<=lastday; i++) {
		j++;
		if ((c_year == year)&&(c_month == month)&&(c_day == i)) c = ' class="selected"';
		else c = '';
		html += '<td'+c+'><a href="javascript:dialogArguments.SetCalendar('+year+','+month+','+i+');">'+i+'</a></td>';
		if ((i<lastday) && (j % 7 == 0)) html += '</tr><tr class="row">';
	}
	if (j%7>0) for (i=j%7; i<7; i++) html += '<td>&nbsp;</td>';
	html += '</tr>';
	html += '</table>';
	
	calendar_box.box_content = html;
	if (calendar_box.box_refresh_content) calendar_box.box_refresh_content();
}
function SetCalendar(year, month, day)
{
	calendar_value = "" + year + "-" + ((""+month).length>1?month:("0"+month)) + "-" + ((""+day).length>1?day:("0"+day));
	ShowCalendar(year, month);
	OnCalendarOK();
	calendar_box.box_close_dialog();
}

