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

//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>'+
' &nbsp;&nbsp;<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>&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) {
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);
}