﻿var thisEvent;
var obj;
var today;
var year;
var month;
var date;
var dayIndex;
var lastDate;
var calWin;
var windowName;

function calendar(e, inputObj, calendarFormDiv) { 
	thisEvent = e || window.event; 
	obj = inputObj; 
	
	today = new Date(); 
	year = today.getFullYear(); 
	month = today.getMonth(); 
	date = 1; 

	dayIndex = new Array('일','월','화','수','목','금','토'); 
	lastDate = new Array(31,  28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); 

	calWin = $('calendarForm');
	calWin.style.display = 'block';
	calWin.style.left = thisEvent.clientX + 'px';
	calWin.style.top = thisEvent.clientY + 'px';
	
	windowName = calendarFormDiv;
	
	makeCal(); 
}

function makeCal(type, addSub) { 
	newDate = new Date(year, month, date); 
	if(type && addSub) { 
		if(type == 'year') { 
			if(addSub == 'add') newDate.setFullYear(newDate.getFullYear()+1); else newDate.setFullYear(newDate.getFullYear()-1); 
		} else if(type == 'month') { 
			if(addSub == 'add') newDate.setMonth(newDate.getMonth()+1); else newDate.setMonth(newDate.getMonth()-1); 
		} 
	} 

	year = newDate.getFullYear(); 
	month = newDate.getMonth(); 
	day = newDate.getDay(); 

	if(((year%4 == 0) && (year%100 != 0)) || (year%400 ==0)) { 
		lastDate[1] = 29; 
	} else { 
		lastDate[1] = 28; 
	} 

	_cal = this; 

	calsrc = "<table border='0' cellpadding='0' cellspacing='1' borderColor='#eeeeee' width='100%'>\n"; 
	calsrc += "<tr>\n"; 
	calsrc += "<td><span onClick=makeCal('year','sub')><<</span>"
	calsrc += "<span onClick=makeCal('month','sub')><</span></td>\n"; 
	calsrc += "<td>"+newDate.getFullYear()+"년 "+(month+1)+"월</td>\n"; 
	calsrc += "<td><span onClick=makeCal('month','add')>></span>"
	calsrc += "<span onClick=makeCal('year','add')>>></span></td>\n"; 
	calsrc += "</tr>\n"; 
	calsrc += "</table>\n"; 
	calsrc += "<table border='0' cellpadding='0' cellspacing='1' borderColor='#eeeeee' width='100%'>\n"; 
	calsrc += "<tr>\n"; 
	for(i=0; i<dayIndex.length; i++) { 
		calsrc += "<td>"+dayIndex[i]+"</td>\n"; 
	} 
	calsrc += "</tr>\n"; 
	for(i=0; i<day+lastDate[newDate.getMonth()];i++) { 
		if(!(i%7)) { 
			calsrc += "</tr>\n"; 
			calsrc += "<tr>\n"; 
		} 

		if(i >= day) { 
			calsrc += "<td><span onClick=setDate('"+((i-day)+1)+"')>"+((i-day)+1)+"</td>\n"; 
		} else { 
			calsrc += "<td></td>\n"; 
		} 
	} 
	calsrc += "</tr>\n"; 
	calsrc += "</table>\n"; 

	calWin.innerHTML = calsrc;
}

function fillZero(len, value) { 
	var value = value.toString(); 
	var addLen = len - value.length; 
	for(i=0; i<addLen; i++) { 
		value = "0"+value; 
	} 
	return value; 
}

function setDate(day) { 
	$(obj).value = year+'-'+fillZero(2,month+1)+'-'+fillZero(2,day); 
	calWin.style.display = 'none';
} 