var _year_obj_ = new Array(), _month_obj_ = new Array(), _day_obj_ = new Array(); function is_leap(year){ if(year%400==0) return true; else if(year%100==0) return false; else if(year%4==0) return true; else return false; } function calanderChange(idx){ if(idx==null){ idx = 0; while( _year_obj_[idx]!=event.srcElement&& _month_obj_[idx]!=event.srcElement ) if(++idx>_year_obj_.length) return; } if(_year_obj_[idx].selectedIndex < 0) return; if(_month_obj_[idx].selectedIndex < 0) return; var days = new Array(31,28,31,30,31,30,31,31,30,31,30,31); var year = _year_obj_[idx].options(_year_obj_[idx].selectedIndex).text; var month = _month_obj_[idx].selectedIndex + 1; var day = _day_obj_[idx].selectedIndex + 1; var day_num = (month==2&&is_leap(year))? 29 : days[month-1]; while(_day_obj_[idx].length < day_num){ var objEntry = document.createElement("OPTION"); objEntry.text=(_day_obj_[idx].length + 1); _day_obj_[idx].add(objEntry); } while(_day_obj_[idx].length > day_num) _day_obj_[idx].remove(_day_obj_[idx].length-1); _day_obj_[idx].selectedIndex = (day > day_num)? day_num-1:day-1; } function initClock(hour, minute, init){ var hobj = document.all(hour); var mobj = document.all(minute); while(hobj.length > 0) hobj.remove(0); for(var i = 0; i < 24; i++){ var tmp_i = i<10? "0"+i:i; var objEntry = document.createElement("OPTION"); objEntry.text = tmp_i; hobj.add(objEntry); } while(mobj.length > 0) mobj.remove(0); for(var i = 0; i < 60; i++){ var tmp_i = i<10? "0"+i:i; var objEntry = document.createElement("OPTION"); objEntry.text = tmp_i; mobj.add(objEntry); } if(init==null) init = new Date(); hobj.selectedIndex = init.getHours(); mobj.selectedIndex = init.getMinutes(); } function initYear(year, start, end, target){ var yobj = document.all(year); while(yobj.length > 0) yobj.remove(0); for(var i = start; i<=end; i++){ var objEntry = document.createElement("OPTION"); objEntry.text = i; yobj.add(objEntry); } var cur_year = target==null ? new Date().getYear():target; yobj.selectedIndex = (cur_year>=start&&cur_year<=end)? cur_year-start:-1; } function initCalander(name, start, end, init){ var year = name + "_year"; var month = name + "_month"; var day = name + "_day"; idx = _year_obj_.length; _year_obj_[idx] = document.all(year); _month_obj_[idx] = document.all(month); _day_obj_[idx] = document.all(day); while(_year_obj_[idx].length > 0) _year_obj_.remove(0); for(var i = start; i<=end; i++){ var objEntry = document.createElement("OPTION"); objEntry.text=i; _year_obj_[idx].add(objEntry); } while(_month_obj_[idx].length > 0) _month_obj_.remove(0); for(var i=1;i<=12;i++){ var tmp_i = i<10? "0"+i:i; var objEntry = document.createElement("OPTION"); objEntry.text=tmp_i; _month_obj_[idx].add(objEntry); } while(_day_obj_[idx].length > 0) _day_obj_.remove(0); for(var i=1;i<=31;i++){ var tmp_i = i<10? "0"+i:i; var objEntry = document.createElement("OPTION"); objEntry.text=tmp_i; _day_obj_[idx].add(objEntry); } _year_obj_[idx].onchange=calanderChange; _month_obj_[idx].onchange=calanderChange; if(init==null) init = new Date(); if(init.getFullYear()>=start&&init.getFullYear()<=end){ _year_obj_[idx].selectedIndex = init.getFullYear()-start; _month_obj_[idx].selectedIndex = init.getMonth(); _day_obj_[idx].selectedIndex = init.getDate()-1; }else{ _year_obj_[idx].selectedIndex = -1; _month_obj_[idx].selectedIndex = -1; _day_obj_[idx].selectedIndex = -1; } calanderChange(idx); }