var m_iDatePickerCount=0; var cl_dpMaxYear=9999; var cl_dpMaxMonth=11; var cl_dpMaxDay=31; var cl_dpMinYear=1600; var cl_dpMinMonth=0; var cl_dpMinDay=1; var isFlag = true; function createDatePicker(txtName,lYear,lMonth,lDay,layout,isTime) { //plus 参数=1,出现一个复选框 zbq var dpID="dp_"+(m_iDatePickerCount++); var dt=dp_getValidDate(lYear,lMonth,lDay); var dpName = "dpN_" + txtName; if(dt==null) dt=new Date(); //if(plus!=null) //{ // if(plus==1) // { // document.write(""); // } // else // { // document.write(""); // } // } var yearName = txtName+"_year"; var monthName = txtName+"_month"; var dayName = txtName+"_day"; document.write(""); document.write(""); document.write("-"); document.write(""); document.write("-"); document.write(""); document.write(""); document.write(""); if("popup"==layout) { document.write(""); }else{ document.write(""); } if(typeof(txtName)=="string" && txtName.length>0) { if ((isTime != null) && (isTime != 'undefined') && (isTime == true)){ document.write(""); }else { document.write(""); } document.write(""); } document.write(""); var dp=document.all(dpID); dp_initDatePicker(dp,dt); return dp; } function dtp_vs(chk,dtp,hdtpname) { if(chk.checked==1) { document.all[dtp].style.visibility = ""; document.all[hdtpname].value=document.all[hdtpname+"2"].value; } else { document.all[dtp].style.visibility = "hidden"; document.all[hdtpname+"2"].value=document.all[hdtpname].value; document.all[hdtpname].value=""; } } function dp_getValidDate(lYear,lMonth,lDay) { var dt=new Date(); if(lYear==null || isNaN(parseInt(lYear,10))) lYear=dt.getFullYear(); else lYear=parseInt(lYear,10); if(lMonth==null || isNaN(parseInt(lMonth,10))) lMonth=dt.getMonth(); else lMonth=parseInt(lMonth,10)-1; if(lDay==null || isNaN(parseInt(lDay,10))) lDay=dt.getDate(); else lDay=parseInt(lDay,10); dt=new Date(lYear,lMonth,lDay); var cdMax=new Date(cl_dpMaxYear,cl_dpMaxMonth,cl_dpMaxDay); var cdMin=new Date(cl_dpMinYear,cl_dpMinMonth,cl_dpMinDay); if(dt.compare(cdMax)>0 || dt.compare(cdMin)<0) dt=null; return dt; } function dp_initDatePicker(dp,dt) { if(dp) { //Private Property dp.curDate=dt; dp.dpEnabled=true; dp.maxDay=cl_dpMaxDay; dp.maxMonth=cl_dpMaxMonth; dp.maxYear=cl_dpMaxYear; dp.minDay=cl_dpMinDay; dp.minMonth=cl_dpMinMonth; dp.minYear=cl_dpMinYear; dp.oldDate=dt.clone(); //Private Method dp.getDropDownTable=dp_getDropDownTable; dp.getMonthName=dp_getMonthName; dp.hideDropDown=dp_hideDropDown; dp.initDropDown=dp_initDropDown; dp.onDateChange=dp_onDateChange; dp.refreshPostText=dp_refreshPostText; dp.showDropDown=dp_showDropDown; //Public Property //All Span Properties can be used; dp.offsetHor=0; //Public Method dp.setFocus=dp_setFocus; dp.format=dp_format; dp.getDateContent=dp_getDateContent; dp.getDay=dp_getDay; dp.getEnabled=dp_getEnabled; dp.getMonth=dp_getMonth; dp.getYear=dp_getYear; dp.refreshView=dp_refreshView; dp.setAccessKey=dp_setAccessKey; dp.setCurDate=dp_setCurDate; dp.setDateDes=dp_setDateDes; dp.setEnabled=dp_setEnabled; dp.setFormat=dp_setFormat; dp.setMaxDate=dp_setMaxDate; dp.setMinDate=dp_setMinDate; dp.setTabIndex=dp_setTabIndex; dp.setWeekName=dp_setWeekName; dp.setDateNull=dp_setDateNull; //Event dp.dateChanged=null; //Init View dp.refreshView(); } } function dp_createDropDown() { var ddt=getDropDownTable(); if(ddt) return ddt; document.body.insertAdjacentHTML("BeforeEnd", ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ "
<<<-->>>
"); ddt=getDropDownTable(); if(ddt) { var row=null; var cell=null; for(var i=2; i<8; i++) { row=ddt.insertRow(i); if(row) { for(var j=0; j<7; j++) { cell=row.insertCell(j); // if(cell) // { // } } } } } if(ddt.rows.length!=8) ddt=null; return ddt; } function dp_getYear() { var dp=this; return dp.curDate.getFullYear(); } function dp_getMonth() { var dp=this; return dp.curDate.getMonth()+1; } function dp_getDay() { var dp=this; return dp.curDate.getDate(); } function dp_format(sFormat) { var dp=this; return dp.curDate.format(sFormat); } function dp_setAccessKey(sKey) { var dp=this; var src=dp.children[0]; if(src && src.tagName=="INPUT") { src.accessKey=sKey; } } function dp_getEnabled() { var dp=this; var val=false; if(dp.dpEnabled) val=true; else val=false; return val; } function dp_setEnabled(val) { var dp=this; var hr=false; var src=dp.children[0]; if(src && src.tagName=="INPUT") { src.disabled=!val; src=dp.children[2]; if(src && src.tagName=="INPUT") { src.disabled=!val; src=dp.children[4]; if(src && src.tagName=="INPUT") { src.disabled=!val; dp.dpEnabled=val; hr=true; } } } return hr; } function dp_setFocus() { var dp=this; var src=dp.children[0]; if(src && src.tagName=="INPUT" && !src.disabled) { src.focus(); } } function dp_getDateContent() { var dp=this; var con=""; var sYearDes=""; var sMonthDes=""; var sDayDes=""; var src=dp.children[1]; if(src && src.tagName=="FONT") { sYearDes=src.innerText; src=dp.children[3]; if(src && src.tagName=="FONT") { sMonthDes=src.innerText; src=dp.children[5]; if(src && src.tagName=="FONT") { sDayDes=src.innerText; var dt=dp.curDate; con=dt.getFullYear()+sYearDes+(dt.getMonth()+1)+sMonthDes+dt.getDate()+sDayDes; } } } return con; } function dp_setFormat(sFormat) { this.formatString=sFormat; this.refreshPostText(); } function dp_refreshPostText() { var dp=this; var sFormat="yyyy-mm-dd"; if(typeof(dp.formatString)=="string") sFormat=dp.formatString; var txt=dp.children[8]; if(txt && txt.tagName=="INPUT") txt.value=dp.format(sFormat); } function dp_initDropDown() { var dp=this; var ddt=dp.getDropDownTable(); if(ddt) { ddt.curCell=null; var cell=null; var dt=new Date(dp.curDate.getFullYear(),dp.curDate.getMonth(),1); cell=ddt.rows[0].cells[2]; if(cell) { cell.innerText=dp.getMonthName(dt.getMonth())+" "+dt.getFullYear(); } var wd=dt.getDay(); dt=new Date(dt.getFullYear(),dt.getMonth(),1-wd); var day=dt.getDate(); for(var i=2; i<8; i++) { for(var j=0; j<7; j++) { cell=ddt.rows[i].cells[j]; if(cell) { if(dp.curDate.getMonth()!=dt.getMonth()) cell.className="DPCellOther"; else if(dp.curDate.getDate()!=dt.getDate()) cell.className="DPCell"; else { cell.className="DPCell"; dp_onCell(cell); } cell.innerText=day; cell.year=dt.getFullYear(); cell.month=dt.getMonth(); dt.setDate(day+1); day=dt.getDate(); } } } } } function dp_getMonthName(lMonth) { var mnArr=new Array("一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"); return mnArr[lMonth]; } function dp_setWeekName() { var dp=this; var ddt=dp.getDropDownTable(); if(ddt) { var cell=null; for(var j=0; j<7; j++) { cell=ddt.rows[1].cells[j]; if(cell) { cell.innerText=arguments[j]; } } } } function dp_showDropDown() { var dp=this; var ddt=dp.getDropDownTable(); // alert(ddt.innerHTML); if(ddt) { if(ddt.style.display=="block") { dp.hideDropDown(); } else { dp.initDropDown(); if(ddt.clientWidth==0) { ddt.style.pixelLeft=-500; ddt.style.pixelTop=-500; ddt.style.display="block"; } var ddtWidth=ddt.clientWidth==0?266:ddt.clientWidth; var ddtHeight=ddt.clientHeight==0?133:ddt.clientHeight; var lLeft=getOffsetLeft(dp); var lTop=getOffsetTop(dp)+dp.offsetHeight; if((lTop+ddtHeight)>(document.body.clientHeight+document.body.scrollTop)) { lTop-=(ddtHeight+dp.offsetHeight+2); } if((lLeft+ddtWidth)>(document.body.clientWidth+document.body.scrollLeft)) { lLeft=document.body.clientWidth+document.body.scrollLeft-ddtWidth-2; } var off=parseInt(dp.offsetHor,10); if(isNaN(off)) off=0; ddt.style.pixelLeft=lLeft+off; ddt.style.pixelTop=lTop; ddt.dpOldDocClick=document.onclick; ddt.dpOldDocKeyDown=document.onkeydown; event.cancelBubble=true; event.returnValue=false; document.onclick=dp_sub_docClick; document.onkeydown=dp_sub_dockeydown; ddt.style.display="block"; } } } function getDropDownTable() { var ddt=document.all("dpDropDownTable"); if(!(ddt && ddt.tagName=="TABLE")) ddt=null; return ddt; } function dp_hideDropDown() { var ddt=getDropDownTable(); if(ddt) { ddt.style.display="none"; document.onclick=ddt.dpOldDocClick; document.onkeydown=ddt.dpOldDocKeyDown; showElement("SELECT"); } } function dp_getDropDownTable() { var dp=this; dp.dropDownTable=dp_createDropDown(); if(dp.dropDownTable && dp.dropDownTable.tagName=="TABLE") { dp.dropDownTable.dp=dp; return dp.dropDownTable; } else return null; } function dp_onDateChange() { var dp=this; if(dp.curDate.compare(dp.oldDate)!=0){ dp.oldDate=dp.curDate.clone(); dp.refreshView(); dp.refreshPostText(); if(typeof(dp.dateChanged)=="function") dp.dateChanged(dp.curDate.getFullYear(),dp.curDate.getMonth()+1,dp.curDate.getDate()); }else { isFlag = false; dp.refreshView(); dp.refreshPostText(); isFlag = true; } } function dp_refreshView() { var dp=this; var hr=false; if(dp && dp.curDate) { var src=dp.children[0]; if(src && src.tagName=="INPUT"){ src.value=dp.curDate.getFullYear(); src=dp.children[2]; if(src && src.tagName=="INPUT"){ src.value=dp.curDate.getMonth()+1; src=dp.children[4]; if(src && src.tagName=="INPUT"){ src.value=dp.curDate.getDate(); hr=true; } } } } return hr; } function dp_setTabIndex(lTabIndex) { var dp=this; var hr=false; if(dp) { var src=dp.children[0]; if(src && src.tagName=="INPUT") { src.tabIndex=lTabIndex; src=dp.children[2]; if(src && src.tagName=="INPUT") { src.tabIndex=lTabIndex; src=dp.children[4]; if(src && src.tagName=="INPUT") { src.tabIndex=lTabIndex; src=dp.children[7]; if(src && src.tagName=="A") { src.tabIndex=lTabIndex; hr=true; } } } } } return hr; } function dp_setDateDes(sYearDes,sMonthDes,sDayDes) { if(sYearDes==null) sYearDes="-"; if(sMonthDes==null) sMonthDes="-"; if(sDayDes==null) sDayDes=""; var dp=this; var hr=false; var src=dp.children[1]; if(src && src.tagName=="FONT") { src.innerText=sYearDes; src=dp.children[3]; if(src && src.tagName=="FONT") { src.innerText=sMonthDes; src=dp.children[5]; if(src && src.tagName=="FONT") { src.innerText=sDayDes; hr=true; } } } return hr; } function dp_setMaxDate(lYear,lMonth,lDay) { var dp=this; var hr=false; if(dp) { lYear=parseInt(lYear,10); lMonth=parseInt(lMonth,10); lDay=parseInt(lDay,10); if(!(isNaN(lYear) || isNaN(lMonth) || isNaN(lDay))) { lMonth--; var dt=new Date(lYear,lMonth,lDay); var dMin=new Date(dp.minYear,dp.minMonth,dp.minDay); var cdMax=new Date(cl_dpMaxYear,cl_dpMaxMonth,cl_dpMaxDay); if(dt.compare(cdMax)<=0 && dt.compare(dMin)>=0) { dp.maxYear=dt.getFullYear(); dp.maxMonth=dt.getMonth(); dp.maxDay=dt.getDate(); hr=true; } } } return hr; } function dp_setMinDate(lYear,lMonth,lDay) { var dp=this; var hr=false; if(dp) { lYear=parseInt(lYear,10); lMonth=parseInt(lMonth,10); lDay=parseInt(lDay,10); if(!(isNaN(lYear) || isNaN(lMonth) || isNaN(lDay))) { lMonth--; var dt=new Date(lYear,lMonth,lDay); var dMax=new Date(dp.maxYear,dp.maxMonth,dp.maxDay); var cdMin=new Date(cl_dpMinYear,cl_dpMinMonth,cl_dpMinDay); if(dt.compare(dMax)<=0 && dt.compare(cdMin)>=0) { dp.minYear=dt.getFullYear(); dp.minMonth=dt.getMonth(); dp.minDay=dt.getDate(); hr=true; } } } return hr; } function dp_setCurDate(lYear,lMonth,lDay) { var dp=this; var hr=false; lYear=parseInt(lYear,10); lMonth=parseInt(lMonth,10); lDay=parseInt(lDay,10); if(!(isNaN(lYear) || isNaN(lMonth) || isNaN(lDay))) { var dt=new Date(lYear,lMonth-1,lDay); var dMax=new Date(dp.maxYear,dp.maxMonth,dp.maxDay); var dMin=new Date(dp.minYear,dp.minMonth,dp.minDay); if(dt.compare(dMax)<=0 && dt.compare(dMin)>=0) { dp.curDate=dt; dp.onDateChange(); hr=true; } } if(!hr) dp.refreshView(); return hr; } function dp_DropClick() { var src=event.srcElement; var dp=getParentFromSrc(src,"SPAN") if(dp && dp.className=="DPFrame" && dp.dpEnabled) { dp.showDropDown(); } hideElement("SELECT"); } function dp_focus(srcType) { var src=event.srcElement; if(src && src.tagName=="INPUT") { switch(srcType) { case 'year': break; case 'month': break; case 'day': break; default:; } src.select(); } return true; } function dp_blur(srcType) { var src=event.srcElement; var dp=getParentFromSrc(src,"SPAN") if(src && src.tagName=="INPUT" && dp && dp.className=="DPFrame") { var lYear=dp.curDate.getFullYear(); var lMonth=dp.curDate.getMonth()+1; var lDay=dp.curDate.getDate(); var val=parseInt(src.value,10); if(isNaN(val)){ val=-1; var txt=dp.children[8]; txt.value=""; return true; } switch(srcType) { case 'year': lYear=val==-1?lYear:val; break; case 'month': lMonth=val==-1?lMonth:val; break; case 'day': lDay=val==-1?lDay:val; break; default:; } dp.setCurDate(lYear,lMonth,lDay); if(val==-1) dp.refreshView(); } return true; } function dp_keyDown(srcType) { var src=event.srcElement; var dp=getParentFromSrc(src,"SPAN") var bRefresh=true; if(dp && dp.className=="DPFrame") { var lYear=dp.curDate.getFullYear(); var lMonth=dp.curDate.getMonth(); var lDay=dp.curDate.getDate(); var lStep=0; switch(event.keyCode) { case 38: lStep=1; break; case 40: lStep=-1; break; case 13: event.keyCode=9; break; default: bRefresh=false; } switch(srcType) { case 'year': lYear+=lStep; break; case 'month': lMonth+=lStep; break; case 'day': lDay+=lStep; break; default:; } if(bRefresh) dp.setCurDate(lYear,lMonth+1,lDay); } return true; } function dp_monthChange(lStep) { var src=event.srcElement; if(src) { var ddt=getDropDownTable(); if(ddt && ddt.dp) { var dt=ddt.dp.curDate.clone(); var lOldMonth=dt.getMonth(); var lOldDay=dt.getDate(); dt.setDate(1); dt.setMonth(lOldMonth+lStep+1); dt.setDate(0); if(dt.getDate()>lOldDay) dt.setDate(lOldDay); if(ddt.dp.setCurDate(dt.getFullYear(),dt.getMonth()+1,dt.getDate())) ddt.dp.initDropDown(); } } } function dp_ddt_click() { var src=event.srcElement; if(src && src.tagName=="TD") { var ddt=getDropDownTable(); if(ddt && ddt.dp) { var lOldMonth=ddt.dp.curDate.getMonth(); if(ddt.dp.setCurDate(src.year,parseInt(src.month,10)+1,parseInt(src.innerText,10))) { if(src.month!=lOldMonth) ddt.dp.initDropDown(); else dp_onCell(src); } } } } function dp_onCell(src) { var row=src.parentElement; if(row && row.tagName=="TR" && row.rowIndex>1) { var ddt=getDropDownTable(); if(ddt) { if(ddt.curCell) ddt.curCell.className=ddt.curCellOldClass; ddt.curCellOldClass=src.className; src.className="DPCellSelect"; ddt.curCell=src; } } } function dp_ddt_dblclick() { var src=event.srcElement; if(src && src.tagName=="TD") { var ddt=getDropDownTable(); if(ddt && ddt.dp) { var lOldMonth=ddt.dp.curDate.getMonth(); if(ddt.dp.setCurDate(src.year,parseInt(src.month,10)+1,parseInt(src.innerText,10))) { ddt.dp.hideDropDown(); //showElement("SELECT"); } } } } function dp_sub_docClick() { var src=event.srcElement; var ddt=getParentFromSrc(src,"TABLE"); if(!ddt || ddt.id!="dpDropDownTable") { dp_hideDropDown(); } event.cancelBubble=true; event.returnValue=false; return false; } function dp_sub_dockeydown() { dp_hideDropDown(); return true; } function KeyFilter(type) { var berr=false; switch(type) { case 'date': if (!(event.keyCode == 45 || event.keyCode == 47 || (event.keyCode>=48 && event.keyCode<=57))) berr=true; break; case 'number': if (!(event.keyCode>=48 && event.keyCode<=57)) berr=true; break; case 'cy': if (!(event.keyCode == 46 || (event.keyCode>=48 && event.keyCode<=57))) berr=true; break; case 'long': if (!(event.keyCode == 45 || (event.keyCode>=48 && event.keyCode<=57))) berr=true; break; case 'double': if (!(event.keyCode == 45 || event.keyCode == 46 || (event.keyCode>=48 && event.keyCode<=57))) berr=true; break; default: if (event.keyCode == 35 || event.keyCode == 37 || event.keyCode==38) berr=true; } return !berr; } function getParentFromSrc(src,parTag) { if(src && src.tagName!=parTag) src=getParentFromSrc(src.parentElement,parTag); return src; } function switchToOption(sel,newOption,byWhat) { newOption=newOption.toString(); if(newOption && sel && sel.tagName=="SELECT") { newOption=trim(newOption); var opts=sel.options; for(var i=0;i=left && x=top && y=0) { i1=navigator.appVersion.indexOf(" ",i0+1); if(i1>=0) { i0=i1; i1=navigator.appVersion.indexOf(";",i0+1); if(i1>=0) { ver=parseFloat(navigator.appVersion.substring(i0+1,i1)); if(isNaN(ver)) ver=0; } } } return (navigator.userAgent.indexOf("MSIE")!= -1 && navigator.userAgent.indexOf("Windows")!=-1 && ((ver<(version+1) && ver>=version) || version==0)); } function getValidDate(str) { var sDate=str.replace(/\//g,"-"); var vArr=sDate.split("-"); var sRet=""; if(vArr.length>=3) { var year=parseInt(vArr[0],10); var month=parseInt(vArr[1],10); var day=parseInt(vArr[2],10); if(!(isNaN(year) || isNaN(month) || isNaN(day))) if(year>=1900 && year<9999 && month>=1 && month<=12) { var dt=new Date(year,month-1,day); year=dt.getFullYear(); month=dt.getMonth()+1; day=dt.getDate(); sRet=year+"-"+(month<10?"0":"")+month+"-"+(day<10?"0":"")+day; } } return sRet; } function getSafeValue(val,def) { if(typeof(val)=='undefined' || val==null) return def; else return val; } function initDateObject() { Date.prototype.compare=date_compare; Date.prototype.clone=date_clone; Date.prototype.format=date_format; } function date_format(sFormat) { var dt=this; if(sFormat==null || typeof(sFormat)!="string") sFormat=""; sFormat=sFormat.replace(/yyyy/ig,dt.getFullYear()); var y=""+dt.getYear(); if(y.length>2) { y=y.substring(y.length-2,y.length); } sFormat=sFormat.replace(/yy/ig,y); sFormat=sFormat.replace(/mm/ig,add2bit(dt.getMonth()+1)); sFormat=sFormat.replace(/dd/ig,add2bit(dt.getDate())); return sFormat; } function date_clone() { return new Date(this.getFullYear(),this.getMonth(),this.getDate()); } function date_compare(dtCompare) { var dt=this; var hr=0; if(dt && dtCompare) { if(dt.getFullYear()>dtCompare.getFullYear()) hr=1; else if(dt.getFullYear()dtCompare.getMonth()) hr=1; else if(dt.getMonth()dtCompare.getDate()) hr=1; else if(dt.getDate() (objLeft + obj.offsetWidth) || objLeft > (ddt.offsetLeft + ddt.offsetWidth)) ; else if (objTop > ddt.offsetTop+ddt.offsetHeight) ; else if (objTop< ddt.offsetTop) ; else obj.style.visibility = "hidden"; } } //显示下拉框等控件 function showElement(elmID) { for (i = 0; i < document.all.tags(elmID).length; i++) { obj = document.all.tags(elmID)[i]; if (! obj || ! obj.offsetParent) continue; obj.style.visibility = ""; } } //Call the initialize function initDateObject(); //////////////////////////////////////////// function dp_DropClick1(element){ //alert("element:"+element); elements = new Array (element,self); var e = window.event; // 140px为硬编码的宽度 var dialogTop = e.screenY+23; var dialogLeft = e.screenX-140; //window.showModalDialog(ctx+"/js/unieap/DatePanel.htm",elements,"dialogHeight: 180px; dialogWidth: 140px; dialogTop: 200px; dialogLeft: 250px; edge: Raised; center: Yes; help: Yes; resizable: Yes; status: no;scroll:no;"); var dialogProp = "dialogHeight: 180px; dialogWidth: 140px; dialogTop: " + dialogTop + "px; dialogLeft: " + dialogLeft + "px; edge: Raised; center: Yes; help: Yes; resizable: Yes; status: no;scroll:no;" window.showModalDialog(ctx+"/js/unieap/DatePanel.htm",elements, dialogProp); } function show_calendar() { p_item = arguments[0]; subWin = arguments[1]; objWinCal = subWin; objWinCal.opener = self; var p_month,p_year,p_format; // p_month = new String(gNow.getMonth()); // p_year = new String(gNow.getFullYear().toString()); // p_format = "yyyy-MM-dd"; Build(); } function Build() { objWinCal.document.open(); // Setup the page... objWinCal.document.write(""); objWinCal.document.write(""); //objWinCal.document.write(""); objWinCal.document.write(""); objWinCal.document.write(""); objWinCal.document.write(""); objWinCal.document.write( ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""+ "
<<<-->>>
"); var row=null; var cell=null; var ddt = objWinCal.document.all("dpDropDownTable"); for(var i=2; i<8; i++) { row=ddt.insertRow(i); if(row) { for(var j=0; j<7; j++) { cell=row.insertCell(j); } } } objWinCal.document.write(""); objWinCal.document.close(); dp_initDropDown1(); } function dp_initDropDown1(){ var dp=p_item; var ddt= objWinCal.document.all("dpDropDownTable"); if (ddt) { ddt.curCell=null; var cell=null; var dt=new Date(dp.curDate.getFullYear(),dp.curDate.getMonth(),1); cell=ddt.rows[0].cells[2]; if(cell) { cell.innerText=dp.getMonthName(dt.getMonth())+" "+dt.getFullYear(); } var wd=dt.getDay(); dt=new Date(dt.getFullYear(),dt.getMonth(),1-wd); var day=dt.getDate(); for(var i=2; i<8; i++) { for(var j=0; j<7; j++) { cell=ddt.rows[i].cells[j]; if(cell) { if(dp.curDate.getMonth()!=dt.getMonth()) cell.className="DPCellOther"; else if(dp.curDate.getDate()!=dt.getDate()) cell.className="DPCell"; else { cell.className="DPCell"; dp_onCell1(cell); } cell.innerText=day; cell.year=dt.getFullYear(); cell.month=dt.getMonth(); // alert(cell.year+":"+cell.month+":"+cell.innerText); dt.setDate(day+1); day=dt.getDate(); } } } } } function dp_ddt_dblclick1() { var src=objWinCal.event.srcElement; if(src && src.tagName=="TD") { var dp=p_item; var ddt= objWinCal.document.all("dpDropDownTable"); if(ddt && dp) { var lOldMonth=dp.curDate.getMonth(); if(dp.setCurDate(src.year,parseInt(src.month,10)+1,parseInt(src.innerText,10))) { objWinCal.close(); //showElement("SELECT"); } } } } function dp_ddt_click1() { var src=objWinCal.event.srcElement; if(src && src.tagName=="TD") { var dp=p_item; var ddt= objWinCal.document.all("dpDropDownTable"); if(ddt && dp) { var lOldMonth=dp.curDate.getMonth(); if(dp.setCurDate(src.year,parseInt(src.month,10)+1,parseInt(src.innerText,10))) { if(src.month!=lOldMonth) dp_initDropDown1(); else dp_onCell1(src); } } } } function dp_onCell1(src) { var row=src.parentElement; if(row && row.tagName=="TR" && row.rowIndex>1) { var ddt= objWinCal.document.all("dpDropDownTable"); if(ddt) { if(ddt.curCell) ddt.curCell.className=ddt.curCellOldClass; ddt.curCellOldClass=src.className; src.className="DPCellSelect"; ddt.curCell=src; } } } function dp_monthChange1(lStep) { var src=objWinCal.event.srcElement; if(src) { var ddt= objWinCal.document.all("dpDropDownTable"); var dp=p_item; if(ddt && dp) { var dt=dp.curDate.clone(); var lOldMonth=dt.getMonth(); var lOldDay=dt.getDate(); dt.setDate(1); dt.setMonth(lOldMonth+lStep+1); dt.setDate(0); if(dt.getDate()>lOldDay) dt.setDate(lOldDay); if(dp.setCurDate(dt.getFullYear(),dt.getMonth()+1,dt.getDate())) dp_initDropDown1(); } } } function setInputValueToDateValue(obj) { if (isFlag == false) return false; var strRes = getValidDate(obj.value); var strArray = strRes.split("-"); var lYear = strArray[0]; var lMonth = strArray[1]; var lDay = strArray[2]; var dp=getParentFromSrc(obj,"SPAN"); if (strRes != "") { dp.setCurDate(lYear,lMonth,lDay); }else{ dp.setDateNull(); } } function dp_setDateNull() { var dp=this; var hr=false; if(dp && dp.curDate){ var src=dp.children[0]; if(src && src.tagName=="INPUT"){ src.value=""; src=dp.children[2]; if(src && src.tagName=="INPUT"){ src.value=""; src=dp.children[4]; if(src && src.tagName=="INPUT"){ src.value=""; hr=true; } } } } return hr; } //把值补成2位 function add2bit(value){ if(value.toString().length==1){ return "0"+value; } return value; } //时间控件带有时分秒的控件 var bMoveable=true; var strFrame; document.writeln(''); strFrame=''; strFrame+=''; strFrame+='var datelayerx,datelayery;'; strFrame+='var bDrag;'; strFrame+='function document.onmousemove()'; strFrame+='{if(bDrag && window.event.button==1)'; strFrame+=' {var DateLayer=parent.document.all.endDateLayer.style;'; strFrame+=' DateLayer.posLeft += window.event.clientX-datelayerx;'; strFrame+=' DateLayer.posTop += window.event.clientY-datelayery;}}'; strFrame+='function DragStart()'; strFrame+='{var DateLayer=parent.document.all.endDateLayer.style;'; strFrame+=' datelayerx=window.event.clientX;'; strFrame+=' datelayery=window.event.clientY;'; strFrame+=' bDrag=true;}'; strFrame+='function DragEnd(){'; strFrame+=' bDrag=false;}'; strFrame+=''; strFrame+='
'; strFrame+=''; strFrame+=''; strFrame+=''; strFrame+=''; strFrame+=''; strFrame+=''; strFrame+=' '; strFrame+='
'; strFrame+=' '; strFrame+=' '; strFrame+=' '; strFrame+=''; strFrame+=''; strFrame+=''; strFrame+='
'; strFrame+='
 日 一 二 三 四 五 六
'; strFrame+=' '; var n=0; for (j=0;j<5;j++){ strFrame+= ' '; for (i=0;i<7;i++){ strFrame+='';n++;} strFrame+='';} strFrame+=' '; for (i=35;i<37;i++)strFrame+=''; strFrame+=' '; strFrame+='
置空  当前  关闭 
'; strFrame+=' '; strFrame+='
2){alert("对不起!傳入本控件的参数太多!");return;} if (arguments.length == 0){alert("对不起!您沒有傳回本控件任何参数");return;} var dads = document.all.endDateLayer.style; var th = tt; var ttop = tt.offsetTop; //TT控件的定位点高 var thei = tt.clientHeight; //TT控件本身的高 var tleft = tt.offsetLeft; //TT控件的定位点宽 var ttyp = tt.type; //TT控件的类型 while (tt = tt.offsetParent){ttop+=tt.offsetTop; tleft+=tt.offsetLeft;} dads.top = (ttyp=="image") ? ttop+thei : ttop+thei+6; dads.left = tleft; outObject = (arguments.length == 1) ? th : obj; outButton = (arguments.length == 1) ? null : th; //设定外部点击的按钮 //根据当前输入框的日期显示日历的年月 var reg = /^(\d+)-(\d{1,2})-(\d{1,2})/; //不含时间 var r = outObject.value.match(reg); if(r!=null){ r[2]=r[2]-1; var d=new Date(r[1],r[2],r[3]); if(d.getFullYear()==r[1] && d.getMonth()==r[2] && d.getDate()==r[3]) { outDate=d; parent.meizzTheYear = r[1]; parent.meizzTheMonth = r[2]; parent.meizzTheDate = r[3]; } else { outDate=""; } meizzSetDay(r[1],r[2]+1); } else { outDate=""; meizzSetDay(new Date().getFullYear(), new Date().getMonth() + 1); } dads.display = ''; //判断初始化时是否使用时间,非严格验证 if (outObject.value.length>10) { bUseTime=true; bImgSwitch(); odatelayer.bUseTimeLayer.innerHTML=bImg; meizzWriteHead(meizzTheYear,meizzTheMonth); } else { bUseTime=false; bImgSwitch(); odatelayer.bUseTimeLayer.innerHTML=bImg; meizzWriteHead(meizzTheYear,meizzTheMonth); } try { event.returnValue=false; } catch (e) { //此处排除错误,错误原因暂未找到。 } } var MonHead = new Array(12); //定义阳历中每个月的最大天数 MonHead[0] = 31; MonHead[1] = 28; MonHead[2] = 31; MonHead[3] = 30; MonHead[4] = 31; MonHead[5] = 30; MonHead[6] = 31; MonHead[7] = 31; MonHead[8] = 30; MonHead[9] = 31; MonHead[10] = 30; MonHead[11] = 31; var meizzTheYear=new Date().getFullYear(); //定义年的变量的初始值 var meizzTheMonth=new Date().getMonth()+1; //定义月的变量的初始值 var meizzTheDate=new Date().getDate(); //定义日的变量的初始值 var meizzTheHour=new Date().getHours(); //定义小时变量的初始值 var meizzTheMinute=new Date().getMinutes();//定义分钟变量的初始值 var meizzTheSecond=new Date().getSeconds();//定义秒变量的初始值 var meizzWDay=new Array(37); //定义写日期的数组 document.onclick=function() //任意点击时关闭该控件 //ie6的情况可以由下面的切换焦点处理代替 { with(window.event) { if (srcElement != outObject && srcElement != outButton) closeLayer(); } } document.onkeyup =function() //按Esc键关闭,切换焦点关闭 { if (window.event.keyCode==27){ if(outObject)outObject.blur(); closeLayer(); } else if(document.activeElement) { if(document.activeElement != outObject && document.activeElement != outButton) { closeLayer(); } } } function meizzWriteHead(yy,mm,ss) //往 head 中写入当前的年与月 { odatelayer.meizzYearHead.innerText = yy + " 年"; odatelayer.meizzMonthHead.innerText = format(mm) + " 月"; //插入当前小时、分 odatelayer.meizzHourHead.innerText=bUseTime?(meizzTheHour+" 时"):""; odatelayer.meizzMinuteHead.innerText=bUseTime?(meizzTheMinute+" 分"):""; odatelayer.meizzSecondHead.innerText=bUseTime?(meizzTheSecond+" 秒"):""; } function tmpSelectYearInnerHTML(strYear) //年份的下拉框 { if (strYear.match(/\D/)!=null){alert("年份输入参数不是数字!");return;} var m = (strYear) ? strYear : new Date().getFullYear(); if (m < 1000 || m > 9999) {alert("年份值不在 1000 到 9999 之间!");return;} var n = m - 50; if (n < 1000) n = 1000; if (n + 101 > 9999) n = 9974; var s = " "; odatelayer.tmpSelectYearLayer.style.display=""; odatelayer.tmpSelectYearLayer.innerHTML = selectInnerHTML; odatelayer.tmpSelectYear.focus(); } function tmpSelectMonthInnerHTML(strMonth) //月份的下拉框 { if (strMonth.match(/\D/)!=null){alert("月份输入参数不是数字!");return;} var m = (strMonth) ? strMonth : new Date().getMonth() + 1; var s = "   "; odatelayer.tmpSelectMonthLayer.style.display=""; odatelayer.tmpSelectMonthLayer.innerHTML = selectInnerHTML; odatelayer.tmpSelectMonth.focus(); } /***** 增加 小时、分钟 ***/ function tmpSelectHourInnerHTML(strHour) //小时的下拉框 { if (!bUseTime){return;} if (strHour.match(/\D/)!=null){alert("小时参数不是数字!");return;} var m = (strHour) ? strHour : new Date().getHours(); var s = ""; odatelayer.tmpSelectHourLayer.style.display=""; odatelayer.tmpSelectHourLayer.innerHTML = selectInnerHTML; odatelayer.tmpSelectHour.focus(); } function tmpSelectMinuteInnerHTML(strMinute) //分钟的下拉框 { if (!bUseTime){return;} if (strMinute.match(/\D/)!=null){alert("分钟输入数字不是数字!");return;} var m = (strMinute) ? strMinute : new Date().getMinutes(); var s = ""; odatelayer.tmpSelectMinuteLayer.style.display=""; odatelayer.tmpSelectMinuteLayer.innerHTML = selectInnerHTML; odatelayer.tmpSelectMinute.focus(); } function tmpSelectSecondInnerHTML(strSecond) //秒的下拉框 { if (!bUseTime){return;} if (strSecond.match(/\D/)!=null){alert("秒钟输入不是数字!");return;} var m = (strSecond) ? strSecond : new Date().getMinutes(); var s = ""; odatelayer.tmpSelectSecondLayer.style.display=""; odatelayer.tmpSelectSecondLayer.innerHTML = selectInnerHTML; odatelayer.tmpSelectSecond.focus(); } function closeLayer() //这个层的关闭 { var o = document.getElementById("endDateLayer"); if (o != null) { o.style.display="none"; } } function showLayer() //这个层的关闭 { document.all.endDateLayer.style.display=""; } function IsPinYear(year) //判断是否闰平年 { if (0==year%4&&((year%100!=0)||(year%400==0))) return true;else return false; } function GetMonthCount(year,month) //闰年二月为29天 { var c=MonHead[month-1];if((month==2)&&IsPinYear(year)) c++;return c; } function GetDOW(day,month,year) //求某天的星期几 { var dt=new Date(year,month-1,day).getDay()/7; return dt; } function meizzPrevY() //往前翻 Year { if(meizzTheYear > 999 && meizzTheYear <10000){meizzTheYear--;} else{alert("年份超出范围(1000-9999)!");} meizzSetDay(meizzTheYear,meizzTheMonth); } function meizzNextY() //往后翻 Year { if(meizzTheYear > 999 && meizzTheYear <10000){meizzTheYear++;} else{alert("年份超出范围(1000-9999)!");} meizzSetDay(meizzTheYear,meizzTheMonth); } function setNull() { outObject.value = ''; closeLayer(); } function meizzToday() //Today Button { parent.meizzTheYear = new Date().getFullYear(); parent.meizzTheMonth = new Date().getMonth()+1; parent.meizzTheDate = new Date().getDate(); parent.meizzTheHour = new Date().getHours(); parent.meizzTheMinute = new Date().getMinutes(); parent.meizzTheSecond = new Date().getSeconds(); var meizzTheSecond = new Date().getSeconds(); if (meizzTheMonth<10 && meizzTheMonth.length<2) //格式化成两位数字 { parent.meizzTheMonth="0"+parent.meizzTheMonth; } if (parent.meizzTheDate<10 && parent.meizzTheDate.length<2) //格式化成两位数字 { parent.meizzTheDate="0"+parent.meizzTheDate; } //meizzSetDay(meizzTheYear,meizzTheMonth); if(outObject) { if (bUseTime) { outObject.value= parent.meizzTheYear + "-" + format( parent.meizzTheMonth) + "-" + format(parent.meizzTheDate) + " " + format(parent.meizzTheHour) + ":" + format(parent.meizzTheMinute) + ":" + format(parent.meizzTheSecond); //注:在这里你可以输出改成你想要的格式 } else { outObject.value= parent.meizzTheYear + "-" + format( parent.meizzTheMonth) + "-" + format(parent.meizzTheDate); //注:在这里你可以输出改成你想要的格式 } } closeLayer(); } function meizzPrevM() //往前翻月份 { if(meizzTheMonth>1){meizzTheMonth--}else{meizzTheYear--;meizzTheMonth=12;} meizzSetDay(meizzTheYear,meizzTheMonth); } function meizzNextM() //往后翻月份 { if(meizzTheMonth==12){meizzTheYear++;meizzTheMonth=1}else{meizzTheMonth++} meizzSetDay(meizzTheYear,meizzTheMonth); } // TODO: 整理代码 function meizzSetDay(yy,mm) //主要的写程序********** { meizzWriteHead(yy,mm); //设置当前年月的公共变量为传入值 meizzTheYear=yy; meizzTheMonth=mm; for (var i = 0; i < 37; i++){meizzWDay[i]=""}; //将显示框的内容全部清空 var day1 = 1,day2=1,firstday = new Date(yy,mm-1,1).getDay(); //某月第一天的星期几 for (i=0;i"; da.title=(mm==1?12:mm-1) +"月" + meizzWDay[i] + "日"; da.onclick=Function("meizzDayClick(this.innerText,-1)"); if(!outDate) da.style.backgroundColor = ((mm==1?yy-1:yy) == new Date().getFullYear() && (mm==1?12:mm-1) == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate()) ? "#5CEFA0":"#f5f5f5"; else { da.style.backgroundColor =((mm==1?yy-1:yy)==outDate.getFullYear() && (mm==1?12:mm-1)== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate())? "#84C1FF" : (((mm==1?yy-1:yy) == new Date().getFullYear() && (mm==1?12:mm-1) == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate()) ? "#5CEFA0":"#f5f5f5"); //将选中的日期显示为凹下去 if((mm==1?yy-1:yy)==outDate.getFullYear() && (mm==1?12:mm-1)== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate()) { da.borderColorLight="#FFFFFF"; da.borderColorDark="#63A3E9"; } } } else if (i>=firstday+GetMonthCount(yy,mm)) //下个月的部分 { da.innerHTML="" + meizzWDay[i] + ""; da.title=(mm==12?1:mm+1) +"月" + meizzWDay[i] + "日"; da.onclick=Function("meizzDayClick(this.innerText,1)"); if(!outDate) da.style.backgroundColor = ((mm==12?yy+1:yy) == new Date().getFullYear() && (mm==12?1:mm+1) == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate()) ? "#5CEFA0":"#f5f5f5"; else { da.style.backgroundColor =((mm==12?yy+1:yy)==outDate.getFullYear() && (mm==12?1:mm+1)== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate())? "#84C1FF" : (((mm==12?yy+1:yy) == new Date().getFullYear() && (mm==12?1:mm+1) == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate()) ? "#5CEFA0":"#f5f5f5"); //将选中的日期显示为凹下去 if((mm==12?yy+1:yy)==outDate.getFullYear() && (mm==12?1:mm+1)== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate()) { da.borderColorLight="#FFFFFF"; da.borderColorDark="#63A3E9"; } } } else //本月的部分 { da.innerHTML="" + meizzWDay[i] + ""; da.title=mm +"月" + meizzWDay[i] + "日"; da.onclick=Function("meizzDayClick(this.innerText,0)"); //给td赋予onclick事件的处理 //如果是当前选择的日期,则显示亮蓝色的背景;如果是当前日期,则显示暗黄色背景 if(!outDate) da.style.backgroundColor = (yy == new Date().getFullYear() && mm == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate())? "#5CEFA0":"#f5f5f5"; else { da.style.backgroundColor =(yy==outDate.getFullYear() && mm== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate())? "#84C1FF":((yy == new Date().getFullYear() && mm == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate())? "#5CEFA0":"#f5f5f5"); //将选中的日期显示为凹下去 if(yy==outDate.getFullYear() && mm== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate()) { da.borderColorLight="#FFFFFF"; da.borderColorDark="#63A3E9"; } } } da.style.cursor="hand" } else { da.innerHTML="";da.style.backgroundColor="";da.style.cursor="default"; } } } function meizzDayClick(n,ex) //点击显示框选取日期,主输入函数************* { parent.meizzTheDate=n; var yy=meizzTheYear; var mm = parseInt(meizzTheMonth)+ex; //ex表示偏移量,用于选择上个月份和下个月份的日期 var hh=meizzTheHour; var mi=meizzTheMinute; var se=meizzTheSecond; //判断月份,并进行对应的处理 if(mm<1){ yy--; mm=12+mm; } else if(mm>12){ yy++; mm=mm-12; } if (mm < 10) {mm = "0" + mm;} if (hh<10) {hh="0" + hh;} //时 if (mi<10) {mi="0" + mi;} //分 if (se<10) {se="0" + se;} //秒 if (outObject) { if (!n) { //outObject.value=""; return;} if ( n < 10){n = "0" + n;} WriteDateTo(yy,mm,n,hh,mi,se); closeLayer(); if (bUseTime) { try { outButton.click(); } catch (e) { setday(outObject); } } } else {closeLayer(); alert("您所要输出的控件对象并不存在!");} closeLayer(); } function format(n) //格式化数字为两位字符表示 { var m=new String(); var tmp=new String(n); if (n<10 && tmp.length<2) { m="0"+n; } else { m=n; } return m; } function evaSetTime() //设置用户选择的小时、分钟 { odatelayer.meizzHourHead.innerText=meizzTheHour+" 时"; odatelayer.meizzMinuteHead.innerText=meizzTheMinute+" 分"; odatelayer.meizzSecondHead.innerText=meizzTheSecond+" 秒"; WriteDateTo(meizzTheYear,meizzTheMonth,meizzTheDate,meizzTheHour,meizzTheMinute,meizzTheSecond) } function evaSetTimeNothing() //设置时间控件为空 { odatelayer.meizzHourHead.innerText=""; odatelayer.meizzMinuteHead.innerText=""; odatelayer.meizzSecondHead.innerText=""; WriteDateTo(meizzTheYear,meizzTheMonth,meizzTheDate,meizzTheHour,meizzTheMinute,meizzTheSecond) } function evaSetTimeNow() //设置时间控件为当前时间 { odatelayer.meizzHourHead.innerText=new Date().getHours()+" 时"; odatelayer.meizzMinuteHead.innerText=new Date().getMinutes()+" 分"; odatelayer.meizzSecondHead.innerText=new Date().getSeconds()+" 秒"; meizzTheHour = new Date().getHours(); meizzTheMinute = new Date().getMinutes(); meizzTheSecond = new Date().getSeconds(); WriteDateTo(meizzTheYear,meizzTheMonth,meizzTheDate,meizzTheHour,meizzTheMinute,meizzTheSecond) } function UseTime(ctl) { bUseTime=!bUseTime; if (bUseTime) { bImgSwitch(); ctl.innerHTML=bImg; evaSetTime(); //显示时间,用户原来选择的时间 //evaSetTimeNow(); //显示当前时间 } else { bImgSwitch(); ctl.innerHTML=bImg; evaSetTimeNothing(); } } function WriteDateTo(yy,mm,n,hh,mi,se) { if (bUseTime) { outObject.value= yy + "-" + format(mm) + "-" + format(n) + " " + format(hh) + ":" + format(mi) + ":" + format(se); //注:在这里你可以输出改成你想要的格式 } else { outObject.value= yy + "-" + format(mm) + "-" + format(n); //注:在这里你可以输出改成你想要的格式 } } function bImgSwitch() { if (bUseTime) { bImg="关闭"; } else { bImg="开启"; } }