var Els;
var DP_now		= new Date();
var DP_year		= DP_now.getYear();
var DP_month	= DP_now.getMonth();
var thisMonth	= "<a href='javascript:DP_print_cal(" + DP_year	 + "," + DP_month + ")' class=DPwhite>ÀÌ¹ø´Þ (" + DP_year + "-" + (DP_month+1) + ")</a>";

function DP_start(){

	var tmp = "<style>\
	.DP {font:8pt tahoma;color:#999999;}\
	.DPlink {font:8pt tahoma;text-decoration: none;color:#000000}\
	.DPlink:hover {font:8pt tahoma;text-decoration: none;color:#006697}\
	.DPwhite {font:8pt tahoma;text-decoration: none;color:#666666;width:30;text-align:center}\
	.DPgray {font:8pt tahoma;text-decoration: none;color:#999999;}\
	.DPwhite:hover {font:8pt tahoma;text-decoration: none;color:#ffffff}\
	</style>\
	<table id=frm border=0 cellpadding=0 cellspacing=1 bgcolor=ffffff><tr><td>\
	<table width=100% cellpadding=0 cellspacing=0>\
	<form>\
	<tr height=25 bgcolor=#ECF4EA>\
		<td><a href='javascript:DP_direc(-1)' onfocus=blur() class=DPwhite>¢¸</a></td>\
		<td nowrap>\
			<select name=yearS onChange=DP_chg_date() class=DPgray></select>\
			<select name=monthS onChange=DP_chg_date() class=DPgray>\
			<option value=0> 1¿ù\
			<option value=1> 2¿ù\
			<option value=2> 3¿ù\
			<option value=3> 4¿ù\
			<option value=4> 5¿ù\
			<option value=5> 6¿ù\
			<option value=6> 7¿ù\
			<option value=7> 8¿ù\
			<option value=8> 9¿ù\
			<option value=9> 10¿ù\
			<option value=10> 11¿ù\
			<option value=11> 12¿ù\
			</select>\
		</td>\
		<td><a href='javascript:DP_direc(1)' onfocus=blur() class=DPwhite>¢º</a></td>\
	</tr>\
	</form>\
	<tr>\
		<td colspan=3>\
		<table id=oTable width=100%>\
			<tr class=DP>\
				<th style='color:red'>S</th>\
				<th>M</th>\
				<th>T</th>\
				<th>W</th>\
				<th>T</th>\
				<th>F</th>\
				<th>S</th>\
			</tr>\
			<tbody align=center></tbody>\
		</table>\
		</td>\
	</tr>\
	<tr>\
		<td colspan=3 bgcolor=#ECF4EA>\
		<table width=100%>\
			<tr>\
				<td nowrap id=todayZ>\
				</td>\
				<td align=right>\
				<a href='javascript:DP_hidden()' class=DPwhite>close</a>\
				</td>\
			</tr>\
		</table>\
		</td>\
	</tr>\
	</table>\
	</td></tr></table>";
	document.write("<div id=calendar style='position:absolute;left:-999;display:inline;z-index:1;'>"+tmp+"</div>");
	DP_print_cal(DP_year,DP_month);
}

function DP_get_lastDate(year,month){
	var leap;
	var last = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	if (year%4==0)		leap = true;
	if (year%100==0)	leap = false;
	if (year%400==0)	leap = true;
	if (leap) last[1] = 29;
	return last[month];
}

function DP_get_firstDay(year,month){
	var ici	= new Date(year,month);
	return ici.getDay();
}

function DP_print_cal(year,month){

	DP_del();
	DP_year = year;
	DP_month = month;
	todayZ.innerHTML = thisMonth;

	document.forms[0].yearS.length = 7;
	for (i=0;i<7;i++){
		document.forms[0].yearS.options[i].value = year - 3 + i;
		document.forms[0].yearS.options[i].text = year - 3 + i + "³â";
	}
	document.forms[0].yearS.selectedIndex = 3;
	document.forms[0].monthS.selectedIndex = month;

	var firstDay = DP_get_firstDay(year,month);
	var lastDate = DP_get_lastDate(year,month);
	var cnt = 0;
	if (firstDay){
		oTr = oTable.insertRow();
		for (i=0;i<firstDay;i++) oTr.insertCell();
		cnt = i;
	}
	for (i=0;i<lastDate;i++){
		if (cnt%7==0) oTr = oTable.insertRow();
		oTd = oTr.insertCell();
		oTd.style.backgroundColor = "#f7f7f7";	
		oTd.innerHTML = (DP_now.getYear()==year && DP_now.getMonth()==month && DP_now.getDate()==i+1) ? "<table width=100% height=100% border=1 bordercolor=#000000 style='border-collapse:collapse'><tr><td align=center bgcolor=#ffffff><a href=\"javascript:DP_set(" + year + "," + (month+1) + "," + (i+1) +")\" class=DPlink><b>" + (i+1) + "</b></a></td></tr></table>" : "<a href=\"javascript:DP_set(" + year + "," + (month+1) + "," + (i+1) +")\" class=DPlink>" + (i+1) + "</a>";
		cnt++;
	}
}

function DP_del(){ 
    for (i=oTable.rows.length;i>1;i--) oTable.deleteRow(i-1); 
}

function DP_direc(x){
	DP_month = DP_month + x;
	if (DP_month>11){
		DP_month = DP_month - 12;
		DP_year++;
	} else if (DP_month<0){
		DP_month = DP_month + 12;
		DP_year--;
	}
	DP_print_cal(DP_year,DP_month);
}

function DP_set(year,month,date){
	if (month<10) month = "0" + month;
	if (date<10) date = "0" + date;
	Els.value = year + "-" + month + "-" + date;
	DP_hidden();
}

function get_objectTop(obj){
	if (obj.offsetParent == document.body) return obj.offsetTop;
	else return obj.offsetTop + get_objectTop(obj.offsetParent);
}

function get_objectLeft(obj){
	if (obj.offsetParent == document.body) return obj.offsetLeft;
	else return obj.offsetLeft + get_objectLeft(obj.offsetParent);
}

function DP_use(El){
	show_elements("select", calendar);
	Els = El;
	calendar.style.pixelTop = document.body.clientTop + get_objectTop(El) + El.offsetHeight;
	calendar.style.pixelLeft = document.body.clientLeft + get_objectLeft(El);
	calendar.style.display = "inline";
	hide_elements("select", calendar);
}

function DP_hidden(){
	show_elements("select", calendar);
	calendar.style.display = "none";
}

function DP_chg_date(){
	DP_year = parseInt(document.forms[0].yearS.value);
	DP_month = parseInt(document.forms[0].monthS.value);
	DP_print_cal(DP_year,DP_month);
}

function hide_elements(tagName, menu){
	windowed_element_visibility(tagName, -1, menu)
}

function show_elements(tagName, menu){
	windowed_element_visibility(tagName, +1, menu)
}

function windowed_element_visibility(tagName, change, menu){
	var els = document.getElementsByTagName(tagName);
	var rect = new element_rect(menu)
	for (i=0; i < els.length; i++){
		var el = els.item(i);
		if (elements_overlap(el, rect)){
			if (change==-1){
				if (el.name!='yearS' && el.name!='monthS') el.style.visibility = "hidden";
			} else el.style.visibility = "visible";
		}
	}
}

function element_rect(el){
	var left = 0
	var top = 0
	this.width = el.offsetWidth
	this.height = el.offsetHeight
	while (el){
		left += el.offsetLeft
		top += el.offsetTop
		el = el.offsetParent
	}
	this.left = left;
	this.top = top;
}

function elements_overlap(el, rect){
	var r = new element_rect(el);
	return ((r.left < rect.left + rect.width) && (r.left + r.width > rect.left) && (r.top < rect.top + rect.height) && (r.top + r.height > rect.top))
}
DP_start();