var browserName=navigator.appName;
var browserVersion=parseInt(navigator.appVersion);
var target;
var target1;
var target2;
var target3;
var IMG_URL = "/banking/image/calendar";
var bflag;
var paramNum = "";
var dragObj=null;

function getDate(formDataNameObj) {
	paramNum=1;
//	var dateVal;
	if(formDataNameObj.disabled ) return;
	// »ç¿ëÀÚÀÇ ºê¶ó¿ìÀú°¡ NETSCAPEÀÎ °æ¿ì
	if ((browserName=="Netscape" && browserVersion>=5) ||   ( browserName=="Microsoft Internet Explorer" && browserVersion>=4))
	{
		displayCal(formDataNameObj);
	}
	// IEÀÎ °æ¿ì
	else
	{
		dropdownOn(0, formDataName, null, x, y);
	}
}

//2000, 01, 01 °¢°¢input box¿¡ ³Ö´Â´Ù.
function getSelDate(formDataNameObj1,formDataNameObj2,formDataNameObj3, isNowDate)
{

	paramNum=3;
	
	var dateVal;
	
	if (isNowDate==null || isNowDate=='') isNowDate = get_CurDate(0);

	// »ç¿ëÀÚÀÇ ºê¶ó¿ìÀú°¡ NETSCAPEÀÎ °æ¿ì
	if ((browserName=="Netscape" && browserVersion>=5) ||   ( browserName=="Microsoft Internet Explorer" && browserVersion>=4))
	{
		displayCal_view(formDataNameObj1,formDataNameObj2,formDataNameObj3, isNowDate);
	}
	// IEÀÎ °æ¿ì
	else
	{
		dropdownOn(0, formDataName, null, x, y);
	}
}


// ´Þ·Â À§Ä¡Á¶Á¤ (¸¶¿ì½ºÅ¬¸¯ÇÏ´Â À§Ä¡¿¡¼­ x,y°ªÀ»ÁÖ¾î À§Ä¡º¯°æ
function DivAlign(left,top){

	document.getElementById('cal').style.left= left ;
	document.getElementById('cal').style.top= top ;

}

function displayCal(myTgt) {

	target = myTgt;
	dateVal = target.value;//alert("displayCal::dateVal::" + dateVal);
	x = (document.layers) ? loc.pageX : event.clientX;
	y = (document.layers) ? loc.pageY : event.clientY;

	cal.style.pixelTop = y-15;
	//calendar.style.pixelLeft = x-30;
	cal.style.pixelLeft = x+50;
	cal.style.display = (cal.style.display == "block") ? "none" : "block";

	if (dateVal == null || dateVal == "")
	{
		show_calendar2(dateVal);
	}
	else
	{

		new_dateVal = dateVal.split("-");
		new_yy = new_dateVal[0];
		new_mm = eval(new_dateVal[1]);
		new_dd =  eval(new_dateVal[2]);

		show_calendar2(new_yy+"/"+new_mm+"/"+new_dd);
	}

}
function displayCal_view(myTgt1,myTgt2,myTgt3, isNowDate)
{
	target1 = myTgt1;
	target2 = myTgt2;
	target3 = myTgt3;

	dateVal1 = target1.value;
	dateVal2 = target2.value;
	dateVal3 = target3.value;

	x = (document.layers) ? loc.pageX : event.clientX;
	y = (document.layers) ? loc.pageY : event.clientY;

	cal.style.pixelTop = y-15;
	cal.style.pixelLeft = x-30;
	cal.style.display = (cal.style.display == "block") ? "none" : "block";

	var newSelectDate;
	if (dateVal1 == null || dateVal1 == "" || dateVal2 == null || dateVal2 == "" ||dateVal3 == null || dateVal3 == "")
	{
		if (isNowDate!=null) newSelectDate = isNowDate.substring(0,4)+ "/" + eval(isNowDate.substring(4,6)) +"/"+ eval(isNowDate.substring(6));
		else newSelectDate="";
	}
	else
	{
		newSelectDate = dateVal1+ "/" + eval(dateVal2) +"/"+ eval(dateVal3);

}
	show_calendar2(newSelectDate);

}
var stime
function doOver() {
	var el = window.event.srcElement;
	cal_Day = el.title;

	if (cal_Day.length > 7) {
		el.style.borderTopColor = el.style.borderLeftColor = "buttonhighlight";
		el.style.borderRightColor = el.style.borderBottomColor = "buttonshadow";
	}
	window.clearTimeout(stime);
}

function doOut() {
	var el = window.event.fromElement;
	cal_Day = el.title;

	if (cal_Day.length > 7) {
		el.style.borderColor = "white";
	}
	stime=window.setTimeout("cal.style.display='none';", 200);
}


function doClick(selectDate) {//alert("doClick");

	if (selectDate.length > 5) {

		// ÇÑÀÚ¸®¼ö·Î ³Ñ¾î¿Â ¿ù/ÀÏÀº ¾Õ¿¡ 0À» ºÙ¿© ³ªÅ¸³»ÁÖ±â À§ÇØ¼­ ´Ù½Ã Àß¶ó Ã³¸®ÇÑ´Ù.
		calDay = selectDate.split("-");

		cal_yy = calDay[0];
		cal_mm = calDay[1];
		cal_dd = calDay[2];

		// ÇÑÀÚ¸®¼ö¿¡ "0" ´õÇÏ±â
		cal_mm = eval(cal_mm)<10? "0"+cal_mm : cal_mm;
		cal_dd   = eval(cal_dd)<10? "0"+cal_dd : cal_dd;

		if(paramNum == '1'){
			val = cal_yy+"-"+cal_mm+"-"+cal_dd;
			target.value = val;
		}else if(paramNum == '3'){
			
			// 2004.06.17 Ãß°¡ : kjb_date.js ÀÇ function È£Ãâ modified by ±èºÀ·¡ 
			doSelecteDate(cal_yy, cal_mm, target3);
			target1.value = cal_yy;
			target2.value = cal_mm;
			target3.value = cal_dd;
		}
//		document.getElementById("cal").style.visibility = "hidden";
	}


}

var weekend = [0,6];
var weekendColor = "skyblue";
var sundayColor = "pink";  // 20011007 kang
var fontface = "µ¸¿òÃ¼";
var fontsize = -1;
var gMessage = "";
var gitem = "";
var gNow = new Date();
var gArgDate;
var isNav = (navigator.appName.indexOf("Netscape") != -1) ? true : false;
var isIE = (navigator.appName.indexOf("Microsoft") != -1) ? true : false;

Calendar.Months = ["1¿ù", "2¿ù", "3¿ù", "4¿ù", "5¿ù", "6¿ù","7¿ù", "8¿ù", "9¿ù", "10¿ù", "11¿ù", "12¿ù"];

// Non-Leap year Month days..
Calendar.DOMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
// Leap year Month days..
Calendar.lDOMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

function Calendar( p_month, p_year, p_format)
{ //alert("Calendar" + p_month+ p_year+ p_format);
	if ((p_month == null) && (p_year == null))	return;
	else
	{ //alert("Calendar not null");
		this.gMonthName = Calendar.get_month(p_month);
		this.gMonth = new Number(p_month);
		this.gYearly = false;
	}

	this.gYear = p_year;
	this.gFormat = p_format;
	this.gBGColor = "white";
	this.gFGColor = "black";
	this.gTextColor = "black";
	this.gHeaderColor = "black";
}

Calendar.get_month = Calendar_get_month;
Calendar.get_daysofmonth = Calendar_get_daysofmonth;
Calendar.calc_month_year = Calendar_calc_month_year;

function Calendar_get_month(monthNo)
{//alert("Calendar_get_month");
	return Calendar.Months[monthNo];
}

function Calendar_get_daysofmonth(monthNo, p_year)
{//alert("Calendar_get_daysofmonth");
	/*
	Check for leap year ..
	1.Years divisible by four and 400 are leap years, except for...
	2.Years divisible by 100 are not leap years
	*/
	if ((p_year % 4) == 0)
	{
		if ((p_year % 100) == 0 && (p_year % 400) != 0)
			return Calendar.DOMonth[monthNo];

		return Calendar.lDOMonth[monthNo];
	}
	else	return Calendar.DOMonth[monthNo];
}

function Calendar_calc_month_year(p_Month, p_Year, incr)
{ //alert("Calendar_calc_month_year");
	/*
	Will return an array with 1st element being the calculated month
	and second being the calculated year
	after applying the month increment/decrement as specified by 'incr' parameter.
	'incr' will normally have 1/-1 to navigate thru the months.
	*/
	var ret_arr = new Array();

	if (incr == -1)
	{
		if (p_Month == 0) 		// B A C K W A R D
		{
			ret_arr[0] = 11;
			ret_arr[1] = parseInt(p_Year) - 1;
		}
		else
		{
			ret_arr[0] = parseInt(p_Month) - 1;
			ret_arr[1] = parseInt(p_Year);
		}
	}
	else if (incr == 1)
	{
		if (p_Month == 11) 		// F O R W A R D
		{
			ret_arr[0] = 0;
			ret_arr[1] = parseInt(p_Year) + 1;
		}
		else
		{
			ret_arr[0] = parseInt(p_Month) + 1;
			ret_arr[1] = parseInt(p_Year);
		}
	}

	return ret_arr;
}

// This is for compatibility with Navigator 3, we have to create and discard one object before the prototype object exists.
new Calendar();

Calendar.prototype.show = function()
{	//alert("show");
	var vCode = "";

	var prevMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, -1);
	var prevMM = parseInt(prevMMYYYY[0]) + 1;
	var prevYYYY = parseInt(prevMMYYYY[1]);

	var nextMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, 1);
	var nextMM = parseInt(nextMMYYYY[0]) + 1;
	var nextYYYY = parseInt(nextMMYYYY[1]);


            
 	Cal_HTML = "";
	Cal_HTML=Cal_HTML+"<table width=165 border=0 cellspacing=1 cellpadding=0 bgcolor=7B824C onmouseover='javascript:doOver()' onmouseout='javascript:doOut()'>";
	Cal_HTML=Cal_HTML+"<tr bgcolor=#FFFFFF> ";
	Cal_HTML=Cal_HTML+"<td> ";
	Cal_HTML=Cal_HTML+"<table width=163 border=0 cellspacing=0 cellpadding=1>";
	Cal_HTML=Cal_HTML+"<tr> ";
	Cal_HTML=Cal_HTML+"<td> ";
	Cal_HTML=Cal_HTML+"<table width=161 border=0 cellspacing=0 cellpadding=0> ";
	Cal_HTML=Cal_HTML+"<tr bgcolor=E2DCD0 align=center> ";

	var giMonth = parseInt(this.gMonth)+1;
	var gMonth=(giMonth.toString().length < 2)?"0"+giMonth:giMonth;
	var giDate = gArgDate.getDate();
	var gDate=(giDate.toString().length < 2)?"0"+giDate:giDate;

	var nniMonth = parseInt(this.gMonth)+1;
	var nnMonth=(giMonth.toString().length < 2)?"0"+nniMonth:nniMonth;
	var nniDate = gArgDate.getDate();
	var nnDate=(nniDate.toString().length < 2)?"0"+nniDate:nniDate;


	var pMonth=(prevMM.toString().length < 2)?"0"+prevMM:prevMM;
	var piDate = gArgDate.getDate();
	var pDate=(giDate.toString().length < 2)?"0"+giDate:giDate;
	
	Cal_HTML=Cal_HTML+"<td width=46 align=right><A HREF=\"#\" onclick=\"javascript:show_calendar2('"+prevYYYY+"/"+pMonth+"/"+pDate+"');\"><img src=/banking/image/cal_arrow01.gif width=21 height=19 border=0></a></td> ";
	Cal_HTML=Cal_HTML+"<td width=74><b><font color=8F8366>"+this.gYear + "³â " + this.gMonthName + "</font></b></td>";


	var nMonth=(nextMM.toString().length < 2)?"0"+nextMM:nextMM;
	var niDate = gArgDate.getDate();
	var nDate=(niDate.toString().length < 2)?"0"+niDate:niDate;
		
	Cal_HTML=Cal_HTML+"<td width=41 align=left bgcolor=E2DCD0 height=25><A HREF=\"#\" onclick=\"javascript:show_calendar2('"+nextYYYY+"/" + nMonth + "/" + nDate+"');\"><img src=/banking/image/cal_arrow02.gif width=21 height=19 border=0></a></td>";
	Cal_HTML=Cal_HTML+"</tr>";
	Cal_HTML=Cal_HTML+"</table>";
	Cal_HTML=Cal_HTML+"</td>";
	Cal_HTML=Cal_HTML+"</tr>";
	Cal_HTML=Cal_HTML+"<tr>";
	Cal_HTML=Cal_HTML+"<td>";
	
	
	this.wwrite(Cal_HTML);

	var vHeader_Code = "";
	var vData_Code = "";

	vHeader_Code = this.cal_header();
	vData_Code = this.cal_data();
	vCode = vCode + vHeader_Code + vData_Code;

	vCode = vCode + "</TABLE></td></tr></table>";
	this.wwrite(vCode);

	return gMessage;
}

Calendar.prototype.wwrite = function(wtext) { //alert("wwrite");
	gMessage = gMessage + wtext ;
	document.all.cal.innerHTML=gMessage;
}

// ¿äÀÏÀ» º¸¿©ÁÖ´Â ÇÑ ÁÙ
Calendar.prototype.cal_header = function() { //alert("cal_header");
	var vCode = "";
	
	vCode = vCode + " <table width=161 border=0 cellspacing=0 cellpadding=1 bgcolor=E2DCD0 height=20>";
	vCode = vCode + "<tr align=center> ";
	vCode = vCode + "<td bgcolor=DAC2A6 width=23><font color=6E5004>ÀÏ</font></td>";
	vCode = vCode + "<td width=23><font color=6E5004>¿ù</font></td>";
	vCode = vCode + "<td width=23><font color=6E5004>È­</font></td>";
	vCode = vCode + "<td width=23><font color=6E5004>¼ö</font></td>";
	vCode = vCode + "<td width=23><font color=6E5004>¸ñ</font></td>";
	vCode = vCode + "<td width=23><font color=6E5004>±Ý</font></td>";
	vCode = vCode + "<td width=23><font color=6E5004>Åä</font></td>";
	vCode = vCode + "</tr>";
	vCode = vCode + "</table>";
	vCode = vCode + "</td>";
	vCode = vCode + "</tr>";	
	return vCode;
  
}

Calendar.prototype.cal_data = function() { //alert("cal_data");
	var vDate = new Date();//alert("cal_data::" + vDate);
	vDate.setDate(1);
	vDate.setMonth(this.gMonth);
	vDate.setFullYear(this.gYear);

	var vFirstDay=vDate.getDay();
	var vDay=1;
	var vLastDay=Calendar.get_daysofmonth(this.gMonth, this.gYear);
	var vOnLastDay=0;
	var vCode = "";
	var vBackColor = "";



	vCode = "<tr>";
	vCode = vCode + "<td> ";
	vCode = vCode + "<table width=161 border=0 cellspacing=0 cellpadding=1 height=20> ";
	// Ã¹¹øÂ° ÁÖ ½ÃÀÛÀÏ ÀüÀº BLANK·Î ³²°ÜµÎ±â.
	vCode = vCode + "<tr class=cal> ";
	for (i=0; i<vFirstDay; i++) {
		vCode = vCode + "<td width=23></td>";
	}

	// Ã¹¹øÂ° ÁÖÀÇ ½ÃÀÛ¿äÀÏÀ» ¾Ë ¼ö ¾øÀ¸¹Ç·Î µû·Î Ã³¸®ÇÏ¿© º¸¿©ÁÖ±â.
	for (j=vFirstDay; j<7; j++) {
		if( vDay == gNow.getDate() && this.gMonth == gNow.getMonth() && this.gYear == gNow.getFullYear())		vBackColor = " BGCOLOR=navyblue ";
	  else vBackColor = "";
		vCode = vCode + "<td width=23 align=center"+ vBackColor +"><a href='#' onclick=\"doClick('"+vDate.getFullYear()+"-"+(eval(vDate.getMonth())+1)+"-"+vDay+"')\" ><font color=6E5004>" + vDay+	"</a></font></td>";
		vDay=vDay + 1;
	}
	vCode = vCode + "</TR>";



	// µÎ¹øÂ° ~ ¸¶Áö¸·ÁÖ±îÁö º¸¿©ÁÖ±â
	for (k=2; k<7; k++) {

		vCode = vCode + " <tr class=cal>";

		for (j=0; j<7; j++) {
			if( vDay == gNow.getDate() && this.gMonth == gNow.getMonth() && this.gYear == gNow.getFullYear())		vBackColor = " BGCOLOR=navyblue ";
			else vBackColor = "";
			vCode = vCode + "<td width=23 align=center"+ vBackColor +"><a href='#' onclick=\"doClick('"+vDate.getFullYear()+"-"+(eval(vDate.getMonth())+1)+"-"+vDay+"')\"  ><font color=6E5004>" + vDay+	"</a></font></td>";

			vDay=vDay + 1;

			if (vDay > vLastDay)
			{
				vOnLastDay = 1;
				break;
			}
		}

		if (j == 6)						vCode = vCode + "</TR>";
		if (vOnLastDay == 1)	break;
	}
/*
	// ´ÙÀ½´ÞÀÇ ³¯Â¥´Â º¸¿©ÁÖµÇ ±Û¾¾ »ö±òÀ» È¸»öÀ¸·Î ÇÏ¿© ¼û°ÜÁø ´À³¦À¸·Î ÇÑ´Ù.
	for (m=1; m<(7-j); m++) {

		if (this.gYearly)
			vCode = vCode + "<td height=23 align=center><FONT COLOR='gray'> </FONT></TD>";
		else
			vCode = vCode + "<td height=23 ALIGN=center><FONT COLOR='gray'>" + m + "</FONT></TD>";
	}
*/
	return vCode;
}


// ÁÖ¸»Àº ±Û¾¾ »ö±òÀ» ´Ù¸£°Ô ( ÇöÀç navyblue·Î setting )
Calendar.prototype.write_weekend_string = function(vday) { //alert("write_weekend_string and vday::" + vday + "::weekend.len::" + weekend.length);
	var i;

	for (i=0; i<weekend.length; i++) {
		if (vday == weekend[i]) //|| vday == weekend[i + 1])
			return (" BGCOLOR=\"" + sundayColor + "\"");
		else if (vday == weekend[i + 1])
			return (" BGCOLOR=\"" + weekendColor + "\"");
	}
	return "";
}

/* ³¯Â¥¸¦ ÀÔ·Â ¹Þ¾Æ ÀüÃ¼ ´Þ·Â FORM º¸¿©ÁÖ±â **********************/
function show_calendar2(selectDate) {

	//alert("show calendar2::selectdate::" + selectDate );
	if( selectDate== "" || selectDate == null ){

		p_month = new String(gNow.getMonth());
		p_year = new String(gNow.getFullYear());
		gArgDate = gNow;

	} else {

		var sTmp;
		var sTmpLen	= selectDate.indexOf("/");
		var sNowYear	= selectDate.substring(0, sTmpLen);
		sTmp	= selectDate.substring(sTmpLen+1);
		sTmpLen	= sTmp.indexOf("/");
		var sNowMonth = sTmp.substring(0, sTmpLen);
		var sNowDay=sTmp.substring(sTmpLen+1);

		gNow.setFullYear(sNowYear);
		gNow.setMonth(parseInt(sNowMonth)-1);
		gNow.setDate(sNowDay);

		gArgDate = new Date(selectDate);//alert("show calendar2::gArgDate::" + gArgDate );
		p_month = new String(gArgDate.getMonth());
		p_year =  new String(gArgDate.getFullYear());
	}


	gMessage = "";
	gCal = new Calendar( p_month, p_year, "YYYY.MM.DD");

	// Customize your Calendar here..
	gCal.gBGColor="white";
	gCal.gLinkColor="blue";
	gCal.gTextColor="black";
	gCal.gHeaderColor="brown";

	// Choose appropriate show function
	return (gCal.show());

}
function getNowDay(){
	var nowDay = eval(gNow.getDate())<10?"0"+gNow.getDate():gNow.getDate();
	return nowDay;
}
function getNowMonth(){
	var nowMonth = parseInt(gNow.getMonth())+1 < 10 ? "0" + (parseInt(gNow.getMonth())+1) : parseInt(gNow.getMonth())+1;
	return nowMonth;
}
function getNowYear(){
	var nowYear = gNow.getFullYear();
	return nowYear;
} 
