var Els;
var DP_now		= new Date();
var DP_year		= DP_now.getFullYear();
var DP_month	= DP_now.getMonth();

var bNets4plus = (navigator.appName == "Netscape" && navigator.appVersion.substring(0,1) >= "4");
var bExpl4plus = (navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.substring(0,1) >= "4");

function DP_start(){
	var tmp = "";
	tmp += "<div id='mcalendar' style='margin:0; padding:0;'>";
	tmp += "<p class='close' style='margin:0 0 0.1em 0;'><a href='javascript:;' onClick='DP_hidden();return false;'><img src='/images/common/mcalendar_close.gif' alt='´Ý±â' /></a></p>";
	tmp += "<ul class='month' style='margin:0; padding:0;'>";
	tmp += "<li><a href='javascript:;' onClick='DP_chg_date(0);return false;'><img src='/images/common/calendar_prew.gif' alt='ÀÌÀü´Þ' /></a></li>";
	tmp += "<li class='date'><span id='ymd'>"+DP_year+"."+(DP_month+1)+"</span></li>";
	tmp += "<li><a href='javascript:;' onClick='DP_chg_date(1);return false;'><img src='/images/common/calendar_next.gif' alt='´ÙÀ½´Þ' /></a></li>";
	tmp += "</ul>";
	tmp += "<p style='margin:0 0 0.1em 0;' class='week_text'><img src='/images/common/mcalendar_weekbar.gif' alt='' /></p>";
	tmp += "<table class='week_day' id='oTable' name='oTable' style='border-collapse:collapse;margin:0; padding:0;'>";
	tmp += "<tr></tr>";
	tmp += "</table>";
	tmp += "</div>";
	document.write("<div id='cal_layer' name='cal_layer' style='position:absolute;left:-999;display:none;z-index:1000000;margin:0; padding:0;'>"+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;
	var firstDay = DP_get_firstDay(year,month);
	var lastDate = DP_get_lastDate(year,month);
	var cnt = 0;
	if (firstDay){
		oTr = document.getElementById('oTable').insertRow(1);
		for (i=0;i<firstDay;i++) oTr.insertCell(0);
		cnt = i;
	}
	var cht2 = 2;
	for (i=0;i<lastDate;i++){

		if (cnt%7==0) {
			if (i == 0) cht2--;
			oTr = document.getElementById('oTable').insertRow(cht2);
			cht2++;
		}
		oTd = oTr.insertCell(cnt%7);


		if((cnt%7) == 0) {
			oTd.className = "sunday";
		} else if((cnt%7) == 6) {
			oTd.className = "Saturday";
		}

		if (DP_now.getFullYear()==year && DP_now.getMonth()==month && DP_now.getDate()==i+1) {
			oTd.className = "on";
			oTd.innerHTML = "<span onClick=\"DP_set(" + year + "," + (month+1) + "," + (i+1) +")\">" + (i+1) + "</span>"
		} else {
			oTd.innerHTML = "<span onClick=\"DP_set(" + year + "," + (month+1) + "," + (i+1) +")\">" + (i+1) + "</span>";
		}
		cnt++;
	}
}

function DP_del(){
    for (i=document.getElementById('oTable').rows.length;i>1;i--) document.getElementById('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){	
	Els = El;

	if (bNets4plus) {
		document.getElementById("cal_layer").style.top = window.pageYOffset + get_objectTop(El)// + El.pageYOffset;
		document.getElementById("cal_layer").style.left = window.pageXOffset + get_objectLeft(El);
		document.getElementById("cal_layer").style.display = "inline";
	} else if (bExpl4plus) {
		document.getElementById("cal_layer").style.pixelTop = document.documentElement.clientTop + get_objectTop(El) + El.offsetHeight;
		document.getElementById("cal_layer").style.pixelLeft = document.documentElement.clientLeft + get_objectLeft(El);
		document.getElementById("cal_layer").style.display = "inline";
	}
}

function DP_hidden(){
	document.getElementById("cal_layer").style.display = "none";
}

function DP_chg_date(gu){
	var da = null;
	if(gu == 0) {
		da = new Date(DP_year, (DP_month-1), 1);
	} else {
		da = new Date(DP_year, (DP_month+1), 1);
	}
	document.getElementById("ymd").innerHTML = da.getFullYear()+"."+parseInt(da.getMonth()+1);
	DP_print_cal(da.getFullYear(),da.getMonth());
}

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();
