﻿var targetdate;                                                                 // 호출한 Object의 저장
var targetyy;                                                                   // 호출한 Object의 저장
var targetmm;                                                                   // 호출한 Object의 저장
var targetdd;                                                                   // 호출한 Object의 저장
var gtWeekDay;
var target_action_function;
document.write("<div id=\"minical\" oncontextmenu='return false' ondragstart='return false' onselectstart='return false' style=\"width:180px;display:none;position: absolute; z-index: 99\"></div><div id=\"minicalf\" style=\"height:170;display:none;position: absolute; z-index: 98\"></div>");

//요일구하기
function getWeek(year,month,date){
    arrWeekname = new Array("일","월","화","수","목","금","토");
    wDate = new Date();
    wDate.setYear(year);
    wDate.setMonth(month-1);
    wDate.setDate(date);
    if(gtWeekDay!=null){
        eval(gtWeekDay).value = arrWeekname[wDate.getDay()];//+"요일";
    }
}

function Calendar(objyy, objmm, objdd, objdate) {      // jucke

	target_action_function = null;//초기화
	var now = false;
	var mm = objmm.value;
	var dd = objdd.value;
	if (objmm.value.length ==2 && objmm.value.substring(0,1) == "0")
	{
		mm = objmm.value.substring(1,2);
	}
	if (objdd.value.length ==2 && objdd.value.substring(0,1) == "0")
	{
		dd = objdd.value.substring(1,2);
	}

	if (objyy.value.length == 4 && objmm.value.length != 0 && objdd.value.length != 0)
	{
		now = true;
	}

	targetyy = objyy;                                                               // Object 저장;
	targetmm = objmm;                                                               // Object 저장;
	targetdd = objdd;                                                               // Object 저장;
	targetdate = objdate;                                                               // Object 저장;

	var iscrollTop = 0;
	if( document.body.scrollTop == 0 ){
		iscrollTop = document.documentElement.scrollTop;
	}else{
		iscrollTop = document.body.scrollTop;
	}		
	
	var evt = window.event;
	
	document.getElementById("minical").style.pixelTop  = evt.y+10 + iscrollTop;
	//document.getElementById("minical").style.pixelTop  = evt.y+10;
	document.getElementById("minical").style.pixelLeft = evt.x-80;
	document.getElementById("minical").style.display = (document.getElementById("minical").style.display == "block") ? "none" : "block";

	document.getElementById("minicalf").style.pixelTop  = evt.y+10 + iscrollTop;
	//document.getElementById("minicalf").style.pixelTop  = evt.y+10;
	document.getElementById("minicalf").style.pixelLeft = evt.x-80;
	document.getElementById("minicalf").style.display = (document.getElementById("minicalf").style.display == "block") ? "none" : "block";
	
	if (now) {                                                      // 정확한지 검사
	  Show_cal(objyy.value, mm, dd);                                           // 넘어온 값을 년월일로 분리
	} else {
	  now = new Date();
	  Show_cal(now.getFullYear(), now.getMonth()+1, now.getDate());         // 현재 년/월/일을 설정하여 넘김.
	}
}


function CalendarLayer(objyy, objmm, objdd, objdate) {      // jucke

	target_action_function = null;//초기화
	var now = false;
	var mm = objmm.value;
	var dd = objdd.value;
	if (objmm.value.length ==2 && objmm.value.substring(0,1) == "0")
	{
		mm = objmm.value.substring(1,2);
	}
	if (objdd.value.length ==2 && objdd.value.substring(0,1) == "0")
	{
		dd = objdd.value.substring(1,2);
	}

	if (objyy.value.length == 4 && objmm.value.length != 0 && objdd.value.length != 0)
	{
		now = true;
	}

	targetyy = objyy;                                                               // Object 저장;
	targetmm = objmm;                                                               // Object 저장;
	targetdd = objdd;                                                               // Object 저장;
	targetdate = objdate;                                                               // Object 저장;
	
	var iscrollTop = 0;
	if( document.body.scrollTop == 0 ){
		iscrollTop = document.documentElement.scrollTop;
	}else{
		iscrollTop = document.body.scrollTop;
	}		
	
	var evt = e ? e : window.event;
	
	document.getElementById("minical").style.pixelTop  = evt.clientY+10 + iscrollTop;
	document.getElementById("minical").style.pixelLeft = evt.clientX-80;
	document.getElementById("minical").style.display = (document.getElementById("minical").style.display == "block") ? "none" : "block";

	document.getElementById("minicalf").style.pixelTop  = evt.clientY+10 + iscrollTop;
	document.getElementById("minicalf").style.pixelLeft = evt.clientX-80;
	document.getElementById("minicalf").style.display = (document.getElementById("minicalf").style.display == "block") ? "none" : "block";

	if (now) {                                                      // 정확한지 검사
	  Show_cal(objyy.value, mm, dd);                                           // 넘어온 값을 년월일로 분리
	} else {
	  now = new Date();
	  Show_cal(now.getFullYear(), now.getMonth()+1, now.getDate());         // 현재 년/월/일을 설정하여 넘김.
	}
}

function doClick( cal_Day ) {                                                            // 날자를 선택하였을 경우
	if(targetyy == undefined){
		if (cal_Day.length > 7) {                                                   // 날자 값이있으면
			if (arraymode == 1){													//	Array 일경우에 입력한다.
			  target[arrayindex].value=cal_Day;                                                  // 값 설정
			}
			else{
			  target.value=cal_Day;                                                  // 값 설정
			}
		}
		minical.style.display='none';                                               // 화면에서 지움
		minicalf.style.display='none';                                               // 화면에서 지움
	}
	else{	
		if (cal_Day.length > 7) {                                                   // 날자 값이있으면
		  targetyy.value=cal_Day.substring(0,4);                                                 // 값 설정
		  targetmm.value=cal_Day.substring(5,7);                                                 // 값 설정
		  targetdd.value=cal_Day.substring(8,10);                                                // 값 설정
		  if(targetdate!=null){
			  targetdate.value = targetyy.value + '-' +  targetmm.value + '-' + targetdd.value;
		  };
		}
		
		minical.style.display='none';                                               // 화면에서 지움
		
		minicalf.style.display='none';                                               // 화면에서 지움

        if(target_action_function != null){			
            eval(target_action_function+"('"+cal_Day+"')");
        }
    }
	getWeek(targetyy.value,targetmm.value,targetdd.value);
}

function day2(d) {                                                              // 2자리 숫자료 변경
	var str = new String();
	
	if (parseInt(d) < 10) {
	  str = "0" + parseInt(d);
	} else {
	  str = "" + parseInt(d);
	}
	return str;
}

function Show_cal(sYear, sMonth, sDay) {
	var Months_day = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31)
	var Weekday_name = new Array("일", "월", "화", "수", "목", "금", "토");
	var intThisYear = new Number(), intThisMonth = new Number(), intThisDay = new Number();
	document.getElementById("minical").innerHTML = "";
	datToday = new Date();                                                  // 현재 날자 설정

	intThisYear = parseInt(sYear);
	intThisMonth = sMonth;
	intThisDay = sDay;
	if (intThisYear == 0) intThisYear = datToday.getFullYear();             // 값이 없을 경우
	if (intThisMonth == 0) intThisMonth = parseInt(datToday.getMonth())+1;  // 월 값은 실제값 보다 -1 한 값이 돼돌려 진다.
	if (intThisDay == 0) intThisDay = datToday.getDate();

	switch(intThisMonth) {
	  case 1:
		intPrevYear = intThisYear -1;
		intPrevMonth = 12;
		intNextYear = intThisYear;
		intNextMonth = 2;
		break;
	  case 12:
		intPrevYear = intThisYear;
		intPrevMonth = 11;
		intNextYear = intThisYear + 1;
		intNextMonth = 1;
		break;
	  default:
		intPrevYear = intThisYear;
	  intPrevMonth = parseInt(intThisMonth) - 1;
	  intNextYear = intThisYear;
	  intNextMonth = parseInt(intThisMonth) + 1;
	  break;
	}

	NowThisYear = datToday.getFullYear();                                       // 현재 년
	NowThisMonth = datToday.getMonth()+1;                                       // 현재 월
	NowThisDay = datToday.getDate();                                            // 현재 일

	datFirstDay = new Date(intThisYear, intThisMonth-1, 1);                     // 현재 달의 1일로 날자 객체 생성(월은 0부터 11까지의 정수(1월부터 12월))
	intFirstWeekday = datFirstDay.getDay();                                     // 현재 달 1일의 요일을 구함 (0:일요일, 1:월요일)

	intSecondWeekday = intFirstWeekday;
	intThirdWeekday = intFirstWeekday;

	datThisDay = new Date(intThisYear, intThisMonth, intThisDay);               // 넘어온 값의 날자 생성
	intThisWeekday = datThisDay.getDay();                                       // 넘어온 날자의 주 요일

	varThisWeekday = Weekday_name[intThisWeekday];                              // 현재 요일 저장

	intPrintDay = 1                                                             // 달의 시작 일자
	secondPrintDay = 1
	thirdPrintDay = 1

	Stop_Flag = 0

	if ((intThisYear % 4)==0) {                                                 // 4년마다 1번이면 (사로나누어 떨어지면)
	  if ((intThisYear % 100) == 0) {
		if ((intThisYear % 400) == 0) {
		  Months_day[2] = 29;
		}
	  } else {
		Months_day[2] = 29;
	  }
	}
	intLastDay = Months_day[intThisMonth];                                      // 마지막 일자 구함
	Stop_flag = 0

	var Cal_HTML;
	Cal_HTML = '<div id="calendarLayer" class="calendarLayer">';
	Cal_HTML += '<div id="Cal_Table" class="calendarCnt">';
	Cal_HTML += '<p class="calSeldate">';
	Cal_HTML += get_Yearinfo(intThisYear,intThisMonth,intThisDay);
	Cal_HTML += get_Monthinfo(intThisYear,intThisMonth,intThisDay);
	Cal_HTML += '</p>';
	Cal_HTML += '<table class="calTbl">';
	Cal_HTML += '<tr>';
	Cal_HTML += '<th class="sun"><img src="/static_root/image/shop/common/tbl/th_sun.gif" alt="일" /></th>';
	Cal_HTML += '<th><img src="/static_root/image/shop/common/tbl/th_mon.gif" alt="월" /></th>';
	Cal_HTML += '<th><img src="/static_root/image/shop/common/tbl/th_tue.gif" alt="화" /></th>';
	Cal_HTML += '<th><img src="/static_root/image/shop/common/tbl/th_wed.gif" alt="수" /></th>';
	Cal_HTML += '<th><img src="/static_root/image/shop/common/tbl/th_thu.gif" alt="목" /></th>';
	Cal_HTML += '<th><img src="/static_root/image/shop/common/tbl/th_fri.gif" alt="금" /></th>';
	Cal_HTML += '<th class="sat"><img src="/static_root/image/shop/common/tbl/th_sat.gif" alt="토" /></th>';
	Cal_HTML += '</tr>';	

	for (intLoopWeek=1; intLoopWeek < 7; intLoopWeek++) {                       // 주단위 루프 시작, 최대 6주
		Cal_HTML += '<tr>';
		for (intLoopDay=1; intLoopDay <= 7; intLoopDay++) {                     // 요일단위 루프 시작, 일요일 부터
		  if (intThirdWeekday > 0) {                                            // 첫주 시작일이 1보다 크면
			Cal_HTML += '<td>';
			intThirdWeekday--;
		  } else {
			if (thirdPrintDay > intLastDay) {                               // 입력 날짝 월말보다 크다면
			  Cal_HTML += '<td>';
			} else {                                                        // 입력날짜가 현재월에 해당 되면
			  Cal_HTML += '<td';
	
			  if (intThisYear == intThisYear && intThisMonth==intThisMonth && thirdPrintDay==intThisDay) {
				Cal_HTML += ' class="now"'; // 오늘
			  }
	
			  switch(intLoopDay) {
				case 1:                                                 
				  Cal_HTML += ' class="sun"'; // 일요일
				  break;
				case 7:
				  Cal_HTML += ' class="sat"'; // 토요일
				  break;
			  }
			  
			  var thisDate = intThisYear+'-'+day2(intThisMonth).toString()+'-'+day2(thirdPrintDay).toString();
	
			  Cal_HTML += '><a href="javascript:doClick(\''+thisDate+'\');">'+thirdPrintDay+'</a>';
			}
			thirdPrintDay++;
	
			if (thirdPrintDay > intLastDay) {                               // 만약 날짜 값이 월말 값보다 크면 루프문 탈출
			  Stop_Flag = 1;
			}
		  }
		  Cal_HTML += '</td>';
		}
		Cal_HTML += '</tr>';
		if (Stop_Flag==1) break;
	}
	Cal_HTML += '</table>';	
	Cal_HTML += '<p class="btnClose">';
		Cal_HTML += '<img src="/static_root/image/shop/common/btn/i_close2.gif" class="cPointer" onclick="document.getElementById(\'minical\').style.display = \'none\';" alt="닫기" />';
	Cal_HTML += '</p>';
	Cal_HTML += '</div>';
	
	document.getElementById("minical").innerHTML = Cal_HTML;
}

function get_Yearinfo(year,month,day) {                                         // 년 정보를 콤보 박스로 표시
var min = parseInt(year) - 100;
var max = parseInt(year) + 10;
var i = new Number();
var str = new String();

str = "<SELECT class='mgls' onChange='Show_cal(this.value,"+month+","+day+");'>";
for (i=min; i<=max; i++) {
  if (i == parseInt(year)) {
    str += "<OPTION VALUE="+i+" selected>"+i+"</OPTION>";
  } else {
    str += "<OPTION VALUE="+i+">"+i+"</OPTION>";
  }
}
str += "</SELECT>";
return str;
}


function get_Monthinfo(year,month,day) {                                        // 월 정보를 콤보 박스로 표시
var i = new Number();
var str = new String();

str = "<SELECT onChange='Show_cal("+year+",this.value,"+day+");'>";
for (i=1; i<=12; i++) {
  if (i == parseInt(month)) {
    str += "<OPTION VALUE="+i+" selected>"+i+"</OPTION>";
  } else {
    str += "<OPTION VALUE="+i+">"+i+"</OPTION>";
  }
}
str += "</SELECT>";
return str;
}
