//var dateWin;

function showSetWin(objName){
	console.log(objName);
	//SetWin.style.zIndex=10;
	//SetWin.style.top = window.event.y + document.body.scrollTop;
	//SetWin.style.top = 60 + document.body.scrollTop;

	//SetWin.style.left = window.event.x + document.body.scrollLeft - SetWin.offsetWidth;
	//SetWin.style.left = 60 + document.body.scrollLeft;
        //SetWin.style.left = window.event.x + document.body.scrollLeft;

        // 2014.08.21 by YoungJun Cho. 달력 선택 레이어 팝업 위치 조절
		//SetWin.style.top = window.event.clientY + document.body.scrollTop;
		//SetWin.style.left = window.event.clientX + document.body.scrollLeft;
		// 2019.03.05 by SHIN HTML5반영으로 달력 선택 레이어 팝업 위치 조절 수정 
        $("#SetWin").css({
        	   "position" : "absolute",
        	   "top" : window.event.clientY + document.body.scrollTop+"px",
        	   "left" : window.event.clientX + document.body.scrollLeft+"px"
        	});

        //ie10,11 호환성 크기 문제 수정
        SetWin.style.width='auto';
        SetWin.style.height='auto';

        // 달력 컨트롤 레이어 팝업 호출시 전달되는 파라미터 형식이 [form name].[input name] 와 같다.
        // . 으로 split 하여 input name 값을 확인한다.
        var objNames = objName.split(".");
        //alert(objNames.length);

        //var formObjName = objNames[0];
        var inputObjName = objNames[1];

        // 동일한 name input 이 여러개가 존재하므로 배열로 input element 를 확인한다.
        var arrInputDates = document.getElementsByName(inputObjName);
        var inputDateValue;

        // 달력 선택 일자가 입력될 input 의 type 이 text 인 것만 체크한다.(hidden type 은 일자 선택에서는 불필요하다.)
        for (var i = 0 ; i < arrInputDates.length ; i++) {
            if (arrInputDates[i].type == "text") {
                inputDateValue = arrInputDates[i].value;
            }
        }

        var arrInputDates;
        var year;
        var month;
        var day;
        var validDate = /^(19|20)\d{2}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[0-1])$/;

        if (inputDateValue == "" || !validDate.test(arrInputDates)) {
            // input element 가 빈문자열일 경우 현재일자로 설정한다.
            show_date = new Date();
        } else {
            // input element 가 빈문자열이 아닐 경우 입력되어있는 일자를 - 로 split 하여 년,월,일을 확인한다.
            arrInputDates = inputDateValue.split("-");
            year = eval(arrInputDates[0]);
            month = eval(arrInputDates[1]); // 01~09 월을 parseInt 로 변환시 0 으로 변환되므로 eval 을 사용한다.( IE 9 버전 부터 parseInt 시 접두사 '0'을 처리하지 않는다. - microsoft 공식홈에서 확인. )
            day = eval(arrInputDates[2]);   // 01~09 일을 parseInt 로 변환시 0 으로 변환되므로 eval 을 사용한다.( IE 9 버전 부터 parseInt 시 접두사 '0'을 처리하지 않는다. - microsoft 공식홈에서 확인. )

            show_date = new Date(year,month-1,day); // 확인한 년,월,일 로 날짜 객체를 생성한다.
        }

	var sDateWin = startDate(objName);  //show_date을 기준으로 설정
	SetWin.innerHTML = sDateWin;

        set_cal(objName, show_date);
	SetWin.style.visibility='visible';
}

function startDate(objName){
	var dateWin =
		'<form name="date_list">'+
		'	<table width="190" border="0" bgcolor="CCD9E3">'+
		'		<tr width="100%" style="cursor:pointer;" id="ForDrag"> '+
		'			<td class="kecttep_cal"  height="15" align="left"><font color="#990000"><b>달력</b></font></td>'+
		'			<td class="kecttep_cal"  height="15" align="right"><a href="#" onclick="SetWin.style.visibility=\'hidden\';" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage(\'close\',\'\',\'/totsys/common/images/close1.gif\',1)"><img name="close" border="0" src="/totsys/common/images/close.gif" width="16" height="17"></a></td>'+
		'		</tr>'+
		'		<tr>'+
		'			<td class="kecttep_cal"  align="center">'+
		'				<select name="year" onchange="change_year(\''+objName+'\', this.options[this.options.selectedIndex]);">';
	//년
	//ie10,11 호환성 수정
	var year=show_date.getYear();
	if(year<1900){
		year=show_date.getFullYear();
	}
	for(i=1900; i<3000; i++) {
		if(year != i) {
			dateWin +=
		'					<option value="'+i+'">'+i;
		} else {
			selectYear = i;
			dateWin +=
		'					<option value="'+i+'" selected>'+i;
		}
	}

	dateWin +=
		'				</select>'+
		'			</td>'+
		'			<td class="kecttep_cal" >'+
		'				<select name="month" onchange="change_month(\''+objName+'\', this.options.selectedIndex);">';
	//월
	for(i=0; i<month_array.length; i++) {
		if(show_date.getMonth() != i) {
			dateWin +=
		'					<option value="'+i+'">'+month_array[i];
		} else {
			selectMonth = i+1;
			dateWin +=
		'					<option value="'+i+'" selected>'+month_array[i];
		}
	}

	dateWin +=
		'				</select>'+
                '                               &nbsp;&nbsp;<a style="cursor:pointer;" onclick="SetWin.style.visibility=\'hidden\';gfn_SetValue('+objName+',\''+'\');"><font color="#990000"><b>초기화<b></font></a>'+
		'			</td>'+
		'		</tr>'+
		'		<tr>'+
		'			<td class="kecttep_cal"  colspan="2" align="center">'+
		'				<table bgcolor="#ffffff" border="0" cellspacing="0" cellpading="0" width="100%">'+
		'					<tr bgcolor="#999999" align="center" style="color:#eeeeee;">';
	//주
	for(i=0; i<7; i++) {
		if(i == 0){
			dateWin += '<td class="kecttep_cal"><font color="#D50D30"><b>'+week_array[i]+'</b></font></td>';
		}else if(i == 6){
					dateWin += '<td class="kecttep_cal"><font color="#3333CC"><b>'+week_array[i]+'</b></font></td>';
		}else{
					dateWin += '<td class="kecttep_cal"><font color="white"><b>'+week_array[i]+'</b></font></td>';
		}
	}

	dateWin +=
		'					</tr>'+
		'					<tr>';
	//일
	for(var j=0; j<6; j++) {
		for(i=0; i<7; i++) {
			if(i == 0){
				dateWin += '<td class="kecttep_cal"  align="center" id="d'+i+'r'+j+'"><font color="#D50D30"><b>&nbsp;</b></font></td>';
			}else if(i == 6){
				dateWin += '<td class="kecttep_cal"  align="center" id="d'+i+'r'+j+'"><font color="#3333CC"><b>&nbsp;</b></font></td>';
			}else{
				dateWin += '<td class="kecttep_cal"  align="center" id="d'+i+'r'+j+'"><b>&nbsp;</b></td>';
			}
		}
		dateWin +=
		'					</tr>';
	}
	dateWin +=
		'				</table>'+
		'			</from>'+
		'		</td>'+
		'	</tr>'+
		'</table>';

        return dateWin;
}


function hiddenDate(){
	SetWin.style.visibility="hidden";
}

var now = new Date();
var month_array = new Array();

for(var i=0; i<12; i++) {
	month_array[i] = i+1+'월';
}

var week_array = new Array('일', '월','화','수','목','금','토');
var show_date = new Date();

var selectYear;
var selectMonth;
var objectName;

function set_cal(objName, show_date) {
	//ie 10,11 호환성 보기 수정
	var year=show_date.getYear();
	if(year<1900){
		year=show_date.getFullYear();
	}
	var begin_day = new Date (year,show_date.getMonth(),1);
	begin_day_date = begin_day.getDay();
	var end_day = new Date (year,show_date.getMonth()+1, 1);
	var count_day = (end_day - begin_day)/1000/60/60/24;
	input_table(objName, begin_day_date,count_day);
}

function input_table(objName, begin, count) {
	initCalendar();
	j=0;

	if(begin != 0) {
		i = begin;
	} else {
		i = 0;
	}

	//alert("i: "+i +" j: "+j);

	for (var c=1; c<count+1; c++) {
		var colum_name = eval("d"+i+"r"+j);

		//if((now.getDate() == c) && (show_date.getMonth() == now.getMonth()) && (show_date.getYear() == now.getYear())) {
        if(show_date.getDate() == c) {
			colum_name.style.backgroundColor = '#CECECE';
			//colum_name.style.color = '#000000';
		}

		//colum_name.innerHTML = '<a style="cursor:hand;" onclick="SetWin.style.visibility=\'hidden\';'+objName+'.value=\''+changeNumber(selectYear)+'-'+changeNumber(selectMonth)+'-'+changeNumber(c)+'\';">'+c+'</a>';
        colum_name.innerHTML = '<a style="cursor:pointer;" onclick="SetWin.style.visibility=\'hidden\';gfn_SetValue('+objName+',\''+changeNumber(selectYear)+'-'+changeNumber(selectMonth)+'-'+changeNumber(c)+'\');">'+c+'</a>';

		i++;

		if(i==7) {
			i = 0;
			j++;
		}
	}
}

function initCalendar() {
	for(j=0; j<6; j++) {
		for(i=0;i<7;i++) {
			if(i == 0){
				colum_name = eval("d"+i+"r"+j);
				colum_name.innerText = '';
				colum_name.style.backgroundColor = '';
				colum_name.style.color = '#D50D30';
			}else if(i == 6){
				colum_name = eval("d"+i+"r"+j);
				colum_name.innerText = '';
				colum_name.style.backgroundColor = '';
				colum_name.style.color = '#3333CC';
			}else{
				colum_name = eval("d"+i+"r"+j);
				colum_name.innerText = '';
				colum_name.style.backgroundColor = '';
				colum_name.style.color = '';
			}
		}
	}
}

function change_month(objName, sel_month) {
	selectMonth = sel_month+1;
	//ie10,11 호환성 수정
	var year=show_date.getYear();
	if(year<1900){
		year=show_date.getFullYear();
	}
	show_date = new Date(year,sel_month,1);
	set_cal(objName, show_date);
}

function change_year(objName, sel_year) {
	sel_year = sel_year.value;
	selectYear = sel_year;
	show_date = new Date(sel_year,show_date.getMonth(),1);
	set_cal(objName, show_date);
}

function gfn_SetValue(obj, value) {
    obj.value = value;

    if( typeof(fn_CalSetValue) == "function" ) fn_CalSetValue(obj, value);
}
