You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
247 lines
8.2 KiB
247 lines
8.2 KiB
//var dateWin; |
|
|
|
function showSetWin(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; |
|
|
|
// 달력 컨트롤 레이어 팝업 호출시 전달되는 파라미터 형식이 [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; |
|
|
|
if (inputDateValue == "") { |
|
// 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="170" border="0" bgcolor="CCD9E3">'+ |
|
' <tr width="100%" style="cursor:hand;" 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]);">'; |
|
//년 |
|
for(i=1900; i<3000; i++) { |
|
if(show_date.getYear() != 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>'+ |
|
' <a style="cursor:hand;" 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> </b></font></td>'; |
|
}else if(i == 6){ |
|
dateWin += '<td class="kecttep_cal" align="center" id="d'+i+'r'+j+'"><font color="#3333CC"><b> </b></font></td>'; |
|
}else{ |
|
dateWin += '<td class="kecttep_cal" align="center" id="d'+i+'r'+j+'"><b> </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) { |
|
var begin_day = new Date (show_date.getYear(),show_date.getMonth(),1); |
|
begin_day_date = begin_day.getDay(); |
|
var end_day = new Date (show_date.getYear(),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:hand;" 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; |
|
show_date = new Date(show_date.getYear(),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); |
|
} |