//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 = '
'+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '+ ' '+ '
달력
'+ ' '+ ' '+ ' '+ '   초기화'+ '
'+ ' '+ ' '; //주 for(i=0; i<7; i++) { if(i == 0){ dateWin += ''; }else if(i == 6){ dateWin += ''; }else{ dateWin += ''; } } dateWin += ' '+ ' '; //일 for(var j=0; j<6; j++) { for(i=0; i<7; i++) { if(i == 0){ dateWin += ''; }else if(i == 6){ dateWin += ''; }else{ dateWin += ''; } } dateWin += ' '; } dateWin += '
'+week_array[i]+''+week_array[i]+''+week_array[i]+'
   
'+ ' '+ '
'; 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'+c+''; colum_name.innerHTML = ''+c+''; 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); }