var LimitYear 	= 0;
var LimitMonth 	= 0;
var LimitDay 	= 0;

var Tcolor1 			= "#FFFFFF";
var Tcolor2 			= "#000000";
var SundayColor 		= "#FF0000";
var SaturdayColor 		= "#0000FF";
var HolidayBackColor 	= "#FFDFDF";
var SaturdayBackColor 	= "#B9D5FF";
var toDayColor 			= "#D71920";
var deleteDayColor 		= "#A9A9A9";

function setStayDate(nYear, nMonth, nDay, oj1, oj2) 
{
	var dateobj = Util.getInstance(oj1);
	dateobj.setDate(new Date(nYear,nMonth-1,nDay));
	dateobj.changeSyncDate();
	document.getElementById("cal").style.display="none";
	document.getElementById("mask").style.display="none";
}

function hideCal() 
{
	document.getElementById("cal").style.display="none";
	document.getElementById("mask").style.display="none";
}

function ShowCalender(nYear, nMonth, oj1, oj2)
{
	var strCalString;
	var dtCal = new Date;
	var strYear;
	var strMonth;
	var strDate;
	var nRemain;
	var weekCnt;
	var monDayCnt;
	var syuku;
	var furikae;
	var fullYear;
	var Limit;
	var trFlg=0;
	var weekCnt2=0;
	//var strDay = new Array("SUN","MON","TUE","WED","THU","FRI","SAT");
	//var monthArray = new Array("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC");
	var strDay 		= new Array("ÀÏ","¿ù","È­","¼ö","¸ñ","±Ý","Åä");
	var monthArray 	= new Array("1¿ù","2¿ù","3¿ù","4¿ù","5¿ù","6¿ù","7¿ù","8¿ù","9¿ù","10¿ù","11¿ù","12¿ù");
	var nMonthCount = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

	getStrYear 		= dtCal.getYear();
	fullYear 		= dtCal.getFullYear();
	getStrMonth 	= dtCal.getMonth();
	getStrDate 		= dtCal.getDate();
	
	strYear 		= nYear;
	strMonth 		= nMonth - 1;

	dtCal.setYear(strYear);
	dtCal.setDate(1);
	dtCal.setMonth(strMonth);
	strTodaysMonth 	= dtCal.getMonth()+1;
	var nDayCount 	= nMonthCount[strMonth];
	
	if ((strMonth == 1)&&(((strYear%4 == 0)&&(strYear%100 != 0))||(strYear%400 == 0))) {
		nDayCount = 29;
	}

	strCalString = "<TABLE border='0' border='0' cellpadding='1' cellspacing='1' bgcolor='#FFFFFF' width='148'>";
	strCalString = strCalString + "<TR><TD ALIGN='center'><strong>";
	strCalString = strCalString + strYear +"³â "+monthArray[dtCal.getMonth()];
	strCalString = strCalString + "</strong></TD></TR>";
	strCalString = strCalString + "</TABLE>";
	strCalString = strCalString + "<TABLE border='0' border='0' cellpadding='1' cellspacing='1' bgcolor='#999999'>";
	strCalString = strCalString + "<TR align='center' bgcolor='#E4E4E4'>";
	for(nLoop=0; nLoop < 7; nLoop++) {
		strCalString = strCalString + "<TD height='22' width='20' BGCOLOR='#DCDCDC'>";
		if(nLoop == 0){
			strCalString = strCalString + "<FONT COLOR='" + SundayColor + "'><strong>" + strDay[nLoop] + "</strong></FONT>";
		}else if(nLoop == 6){
			strCalString = strCalString + "<FONT COLOR='" + SaturdayColor + "'><strong>" + strDay[nLoop] + "</strong></FONT>";
		}else{
			strCalString = strCalString + "<strong>" + strDay[nLoop] + "</strong>";
		}
		strCalString = strCalString + "</TD>";
	}
	strCalString = strCalString + "</TR>";

	weekCnt = 0;
	monDayCnt = 0;
	furikae = 0;
	for(nLoop = 0; nLoop < dtCal.getDay(); nLoop++) {
		strCalString = strCalString + "<TD BGCOLOR='#FFFFFF'><BR></TD>";
		if(weekCnt == 0){
			weekCnt = weekCnt + 1;
		}
	}
	for(nLoop = 0; nLoop < nDayCount; nLoop++) {
		if(dtCal.getDate() > nLoop) {
			if (dtCal.getDay() == 0) {
				strCalString = strCalString + "<TR>";
				weekCnt = weekCnt + 1;
			}


			if (dtCal.getDay() != 7) {
				syuku = 0;
				if(dtCal.getDay() == 1){
					monDayCnt = monDayCnt + 1;
				}
				if(furikae == 0){
					if (dtCal.getDay() == 0) {
						strCalString = strCalString + "<TD BGCOLOR='" +HolidayBackColor+"' ALIGN='CENTER'>";
						if(syuku == 1){
							furikae = 1;
						}
					}else if (dtCal.getDay() == 6) {
						if(syuku == 1){
							strCalString = strCalString + "<TD BGCOLOR='" +HolidayBackColor+"' ALIGN='CENTER'>";
						}else{
							strCalString = strCalString + "<TD BGCOLOR='" + SaturdayBackColor +"' ALIGN='CENTER'>";
						}
					}else{
						if(syuku == 1){
							strCalString = strCalString + "<TD BGCOLOR='" +HolidayBackColor+"' ALIGN='CENTER'>";
						}else{
							strCalString = strCalString + "<TD  BGCOLOR='#FFFFFF' ALIGN='CENTER'>";
						}
					}
				}else{
					strCalString = strCalString + "<TD BGCOLOR='"+HolidayBackColor+"' ALIGN='CENTER'>";
					furikae = 0;
				}

				Limit = 0;
				if(LimitYear > 0){
					if(LimitMonth > 0 ){
						if(LimitDay > 0){
							var LimitDate = new Date(LimitYear, LimitMonth, LimitDay);
							var LimitToDay = new Date(strYear, strTodaysMonth, dtCal.getDate());
							if(LimitDate < LimitToDay){
								Limit = 1;
							}
						}
					}
				}

				if(Limit == 0){
					if(getStrYear == dtCal.getYear()){
						if(getStrMonth == dtCal.getMonth()){
							if(getStrDate == dtCal.getDate()){
								strCalString = strCalString + '<A HREF="javaScript:setStayDate(' + strYear + ',' + strTodaysMonth + ',' 
								                            + dtCal.getDate() +',\'' + oj1 + '\',\''+oj2+'\')"><FONT COLOR="'+toDayColor+'" ><B>'
								                            +dtCal.getDate()+'</B></FONT></A></TD>';
							}else if(getStrDate > dtCal.getDate()){
								strCalString = strCalString + "<FONT COLOR='"+deleteDayColor+"'>"+dtCal.getDate()+"</FONT></TD>";
							}else{
								strCalString = strCalString + '<A HREF="javaScript:setStayDate(' + strYear + ',' + strTodaysMonth + ',' 
								                            + dtCal.getDate() +',\'' + oj1 + '\',\''+oj2+'\')">'
								                            +dtCal.getDate()+'</A></TD>';
							}
						} else {
							if(getStrMonth >= dtCal.getMonth()){
								strCalString = strCalString + "<FONT COLOR='"+deleteDayColor+"'>"+dtCal.getDate()+"</FONT></TD>";
							}else{
								strCalString = strCalString + '<A HREF="javaScript:setStayDate(' + strYear + ',' + strTodaysMonth + ',' 
								                            + dtCal.getDate() +',\'' + oj1 + '\',\''+oj2+'\')">'
								                            +dtCal.getDate()+'</A></TD>';
							}
						}
					}else{
						if(getStrYear >= dtCal.getYear()){
							strCalString = strCalString + "<FONT COLOR='"+deleteDayColor+"'>"+dtCal.getDate()+"</FONT></TD>";
						}else{
							strCalString = strCalString + '<A HREF="javaScript:setStayDate(' + strYear + ',' + strTodaysMonth + ',' 
							                            + dtCal.getDate() +',\'' + oj1 + '\',\''+oj2+'\')">'
							                            +dtCal.getDate()+'</A></TD>';
						}
					}
				}else{
					if(getStrYear == dtCal.getYear()){
						if(getStrMonth == dtCal.getMonth()){
							if(getStrDate == dtCal.getDate()){
								strCalString = strCalString + "<FONT COLOR='"+toDayColor+"' ><B>"+dtCal.getDate()+"</B></FONT></TD>";
							}else{
								strCalString = strCalString + "<FONT COLOR='"+deleteDayColor+"'>"+dtCal.getDate()+"</FONT></TD>";
							}
						} else {
							strCalString = strCalString + "<FONT COLOR='"+deleteDayColor+"'>"+dtCal.getDate()+"</FONT></TD>";
						}
					}else{
						strCalString = strCalString + "<FONT COLOR='"+deleteDayColor+"'>"+dtCal.getDate()+"</FONT></TD>";
					}
				}
			trFlg=1;
			}
			if (dtCal.getDay() == 7) {
				trFlg=0;
				strCalString = strCalString + "</TR>";
			}
		}
		dtCal.setDate(dtCal.getDate()+1);
		nRemain = 7-dtCal.getDay();
	}
	if(dtCal.getDay()>0 && dtCal.getDay()<7){

	for(nLoop = dtCal.getDay() ; nLoop < 7 ; nLoop++) {
		strCalString = strCalString + "<TD BGCOLOR='#FFFFFF'><BR></TD>";
	}

		strCalString = strCalString + "</TR>";
	}
	strCalString = strCalString + "</TABLE>";
	return strCalString;
}

function nextShowMnoth(nYear, nMonth, oj1,oj2) 
{
	strMonthString = "";
	strMonthString = "<FONT SIZE='2'><a href='javascript:void(0);' onClick='changeCal(\"next\","+nYear+","+nMonth+")'>´ÙÀ½´Þ·Î &gt;&gt;</a></FONT>";

	return strMonthString;
}

function changeCal(action,nYear,nMonth){
	var dateObjName = "date1"
	if(action=="next"){
	  	if(!isInternetExplorer){
			document.getElementById("cal").innerHTML =  ShowTwoCalender(getNxetYaer(nYear,nMonth), getNextMonth(nMonth), dateObjName,dateObjName);
	  	} else {
			var element = document.createElement("div");
			element.innerHTML = ShowTwoCalender(getNxetYaer(nYear,nMonth), getNextMonth(nMonth), dateObjName, dateObjName);
			if (document.getElementById("cal").children[0]){
				document.getElementById("cal").removeChild(document.getElementById("cal").children[0]);
			}	
			document.getElementById("cal").appendChild(element);
		}	
	} else {
		if(!isInternetExplorer){
			document.getElementById("cal").innerHTML =  ShowTwoCalender(getPrevYear(nYear,nMonth), getPrevMonth(nMonth), dateObjName,dateObjName) ;
		}else{
			var element = document.createElement("div");
			element.innerHTML = ShowTwoCalender(getPrevYear(nYear,nMonth), getPrevMonth(nMonth), dateObjName, dateObjName);
			if (document.getElementById("cal").children[0]){
				document.getElementById("cal").removeChild(document.getElementById("cal").children[0]);
			}	
			document.getElementById("cal").appendChild(element);	
		}	
	} 
}

function lastShowMnoth(nYear, nMonth, oj1,oj2) 
{
	strMonthString = "";
	strMonthString = "<FONT SIZE='2'><a href='javascript:void(0);' onClick='changeCal(\"prev\","+nYear+","+nMonth+")'>&lt;&lt; Áö³­´Þ·Î</a></FONT>";
	return strMonthString;
}

function ShowTwoCalender(nYear, nMonth, oj1,oj2) 
{
	var strCalString;
	var dtCal 		= new Date;
	Year 			= dtCal.getYear();
	Month 			= dtCal.getMonth()+1;

	strCalString	= "";
	strYear 		= nYear;
	strMonth 		= nMonth;
	strNextMonth 	= getNextMonth(nMonth);
	strNextYaer 	= getNxetYaer(nYear, nMonth);

	strThreeMonth 	= getNextMonth(strNextMonth);
	strThreeYaer 	= getNxetYaer(strNextYaer,strThreeMonth);
	
	strCalString = strCalString + "<table width='318' border='0' align='center' cellpadding='0' cellspacing='0' BGCOLOR='#59B23C'>";
	strCalString = strCalString + "<tr><td>";
	//strCalString = strCalString + "<table width='316' height='20' border='0' align='center' cellpadding='0' cellspacing='0' BGCOLOR='#59B23C'>";
	strCalString = strCalString + "<table width='316' height='20' border='0' align='center' cellpadding='0' cellspacing='0'>";
	//strCalString = strCalString + "<tr><td background='/images/small/bar_c_top.jpg' width='298' style='cursor:move;' onmousedown='down(event)' onmouseup='release(event)' onmousemove='move(event)' onmouseout='release(event);'></td>";
	strCalString = strCalString + "<tr><td background='/images/small/bar_c_top.jpg' width='298' style='cursor:move;'></td>";
	strCalString = strCalString + "<td background='/images/small/btn_c_close.jpg' width='21' style='cursor:pointer;' onclick='javscript:hideCal();'></td></tr>";
	strCalString = strCalString + "</table>";
	strCalString = strCalString + "</td></tr>";
	strCalString = strCalString + "<tr><td>";
	strCalString = strCalString + "<table width='316' border='0' align='center' cellpadding='0' cellspacing='0' BGCOLOR='#FFFFFF'>";
	strCalString = strCalString + "<tr><td><table><tr><td>";
	if(Year != nYear){
		strCalString = strCalString + lastShowMnoth(nYear, nMonth, oj1,oj2);
	}else{
		if(Month != nMonth){
			strCalString = strCalString + lastShowMnoth(nYear, nMonth, oj1,oj2);
		}else{
			strCalString = strCalString + "<br>";
		}
	}
	strCalString = strCalString + "</TD><td width='20'>&nbsp;</td><TD VALIGN='TOP' ALIGN='RIGHT'>";

	if(getNxetYaer(nYear,nMonth+1) == LimitYear){
		if(getNextMonth(getNextMonth(nMonth)) < LimitMonth){
			strCalString = strCalString + nextShowMnoth(nYear, nMonth, oj1,oj2);
		}else if(getNextMonth(getNextMonth(nMonth)) == LimitMonth){
			strCalString = strCalString + nextShowMnoth(nYear, nMonth, oj1,oj2);
		}else{
			strCalString = strCalString + "<BR>";
		}
	}else if(getNxetYaer(nYear,nMonth+1) < LimitYear){
		strCalString = strCalString + nextShowMnoth(nYear, nMonth, oj1,oj2);
	}else{
		if(LimitYear == 0){
			strCalString = strCalString + nextShowMnoth(nYear, nMonth, oj1,oj2);
		}else{
			strCalString = strCalString + "<br>";
		}
	}
	strCalString = strCalString + "</td></tr>";
	strCalString = strCalString + "<TR><TD VALIGN='TOP' width='148'>";
	strCalString = strCalString + ShowCalender(strYear, strMonth, oj1,oj2);
	strCalString = strCalString + "</TD><td width='20'>&nbsp;</td><TD VALIGN='TOP' width='148'>";
	strCalString = strCalString + ShowCalender(strNextYaer, strNextMonth, oj1,oj2);
	strCalString = strCalString + "</TD></TR></TABLE>";
	strCalString = strCalString + "</TD></TR><tr><td height='1' background='/images/small/bar_c_top.png'></td></tr></TABLE>";
	return strCalString;
}
function getNextMonth(nMonth) 
{
	n_mon = eval(nMonth)+1 ;
	if( n_mon > 12 ){
	    n_mon = 1;
	}
	return n_mon;
}
function getNxetYaer(nYear, nMonth) 
{
	n_mon = eval(nMonth) + 1 ;
	if( n_mon > 12 ){
	    n_year = eval(nYear) + 1;
	}else{
	    n_year = nYear;
	}
	return n_year;
}

function getPrevMonth(nMonth) 
{
	n_mon = eval(nMonth)-1 ;
	if( n_mon < 1 ){
	    n_mon = eval(nMonth) + 11;
	}
	return n_mon;
}
function getPrevYear(nYear, nMonth) 
{
	n_mon = eval(nMonth)-1 ;
	if( n_mon < 1 ){
	    n_year = eval(nYear) - 1;
	}else{
	    n_year = nYear;
	}
	return n_year;
}

function getLastMonth(nYear, nMonth) 
{
	l_mon = nMonth - 1 ;
	if( l_mon == 0 ){
	    l_mon = 12;
	    l_year = nYear -1 ;
	}else{
	    l_year = nYear;
	}
	return l_mon;
}
function getLastYear(nYear, nMonth) 
{
	l_mon = nMonth - 1 ;
	if( l_mon == 0 ){
	    l_mon = 12;
	    l_year = nYear -1 ;
	}else{
	    l_year = nYear;
	}
	return l_year;
}
var locked = false;
var initX = 0;
var initY = 0;
function down(e){
	locked = true;
	initX = e.clientX;
	initY = e.clientY;
}
function release(e){
	locked = false;
}

function move(e){
	if(locked){
	document.getElementById("cal").style.left =( e.pageX || (e.clientX +(document.documentElement.scrollLeft || document.body.scrollLeft))) - 20 ;
	document.getElementById("cal").style.top = (e.pageY || (e.clientY + (document.documentElement.scrollTop || document.body.scrollTop))) - 10 ;
    document.getElementById("mask").style.left = document.getElementById("cal").style.left;
    document.getElementById("mask").style.top  = document.getElementById("cal").style.top;
    document.getElementById("mask").style.height = document.getElementById("cal").style.height;
    document.getElementById("mask").style.width  = document.getElementById("cal").style.width;
    window.status = ""+document.getElementById("mask").style.height+","+document.getElementById("cal").style.height+","
                  + document.getElementById("mask").style.width  +"," +document.getElementById("cal").style.width;
    }
}
