calendar.js
资源名称:SunShine.rar [点击查看]
上传用户:tjxpgg
上传日期:2017-05-14
资源大小:2244k
文件大小:29k
源码类别:
SilverLight
开发平台:
ASP/ASPX
- /*****************************************************
- * My97 DatePicker Ver 3.0.1
- * BLOG: http://blog.csdn.net/my97/
- * MAIL: smallcarrot@163.com
- ****************************************************/
- if(navigator.product=='Gecko')
- {Document.prototype.attachEvent=function(sType,fHandler){var shortTypeName=sType.replace(/on/,"");
- fHandler._ieEmuEventHandler=function(e){window.event=e;return fHandler();};
- this.addEventListener(shortTypeName,fHandler._ieEmuEventHandler,false);};
- Event.prototype.__defineSetter__("returnValue",function(value){if(!value){this.preventDefault();}return value;});
- Event.prototype.__defineGetter__("srcElement",function(){var node=this.target;
- while(node.nodeType!=1){node=node.parentNode;}
- return node;});
- HTMLElement.prototype.attachEvent=function(sType,fHandler)
- {var shortTypeName=sType.replace(/on/,"");
- fHandler._ieEmuEventHandler=function(e){window.event=e;return fHandler();};
- this.addEventListener(shortTypeName,fHandler._ieEmuEventHandler,false);};
- HTMLElement.prototype.insertAdjacentElement=function(where,parsedNode){switch(where){case"beforeBegin":
- this.parentNode.insertBefore(parsedNode,this);
- break;
- case"afterBegin":
- this.insertBefore(parsedNode,this.firstChild);
- break;
- case"beforeEnd":
- this.appendChild(parsedNode);
- break;
- case"afterEnd":
- if(this.nextSibling){this.parentNode.insertBefore(parsedNode,this.nextSibling);}
- else{this.parentNode.appendChild(parsedNode);}
- break;}};}
- $BindAsEventListener=function(sender,listener){var __method=sender;
- return function(event){return __method.call(listener,event||window.event);}}
- function __sb()
- {this.s=new Array();
- this.i=0;
- this.a=function(t){this.s[this.i++]=t;};
- this.j=function(){return this.s.join('');};}
- if(!window.$){$ = function(){var elements = new Array();for (var i=0;i<arguments.length;i++){var element=arguments[i];
- if (typeof element=='string'){element=document.getElementById(element);}if (arguments.length==1){return element;}elements.push(element);}return elements;}}
- var $d=null;
- function My97DatePicker(){if(parent==window)return;
- if(navigator.product!='Gecko'){
- if(location.href.substring(location.href.length-3).toLowerCase()=='#97'){location.replace(location.href.substring(0,location.href.length-3));
- return;}
- else{location.replace(location.href+"#97");}
- history.go(-1);}
- this.init();
- this.dd=document.createElement("DIV");
- this.dd.style.cssText='position:absolute;z-index:197;display:block;';
- this.dd.obj=this;
- this.dd.className="WdateDiv";
- this.dd.innerHTML=this._createPickerHTML();
- var tmpImgs=this.dd.getElementsByTagName('img');
- this.dd.navLeftImg=tmpImgs[0];
- this.dd.leftImg=tmpImgs[1];
- this.dd.rightImg=tmpImgs[2];
- this.dd.navRightImg=tmpImgs[3];
- this.dd.navLeftImg.onclick=function(){$d.yInput.value=parseInt($d.yInput.value)-1;
- $d.obj.redraw();}
- this.dd.leftImg.onclick=function(){if(parseInt($d.mInput.getAttribute("realValue"))>1){$d.mInput.setAttribute("realValue",parseInt($d.mInput.getAttribute("realValue"))-1);}
- else{$d.mInput.setAttribute("realValue",12);
- $d.yInput.value=parseInt($d.yInput.value)-1;}
- $d.mInput.value=dpcfg.aMonStr[parseInt($d.mInput.getAttribute("realValue"))-1];
- $d.obj.redraw();}
- this.dd.rightImg.onclick=function(){if(parseInt($d.mInput.getAttribute("realValue"))<12){$d.mInput.setAttribute("realValue",parseInt($d.mInput.getAttribute("realValue"))+1);}
- else{$d.mInput.setAttribute("realValue",1);
- $d.yInput.value=parseInt($d.yInput.value)+1;}
- $d.mInput.value=dpcfg.aMonStr[parseInt($d.mInput.getAttribute("realValue"))-1];
- $d.obj.redraw();}
- this.dd.navRightImg.onclick=function(){$d.yInput.value=parseInt($d.yInput.value)+1;
- $d.obj.redraw();}
- var tmpInputs=this.dd.getElementsByTagName('input');
- this.dd.mInput=tmpInputs[0];
- this.dd.yInput=tmpInputs[1];
- this.dd.mInput.setAttribute('realValue',this.month);
- this.dd.mInput.value=dpcfg.aMonStr[this.month-1];
- this.dd.yInput.value=this.year;
- var tmpDivs=this.dd.getElementsByTagName('div');
- this.dd.titleDiv=tmpDivs[0];
- this.dd.mDiv=tmpDivs[3];
- this.dd.yDiv=tmpDivs[5];
- this.dd.dDiv=tmpDivs[7];
- this.dd.tDiv=tmpDivs[8].firstChild;
- this.dd.bDiv=tmpDivs[10];
- this.dd.dDiv.innerHTML=this._createDateTable();
- this._inputKeydown=function(){var evt=event;
- var k=(evt.which==undefined)?evt.keyCode:evt.which;
- if(!((k>=48&&k<=57)||(k>=96&&k<=105)||k==8||k==46||k==37||k==39||k==9)){evt.returnValue=false;}};
- this.dd.mInput.attachEvent('onkeydown',function(){var evt=event;
- var k=(evt.which==undefined)?evt.keyCode:evt.which;
- if(k==9){$d.mDiv.style.display='none';}
- if(event.srcElement.value.length-document.selection.createRange().text.length==2){event.returnValue=false;};});
- this.dd.yInput.attachEvent('onkeydown',function(){var evt=event;
- var k=(evt.which==undefined)?evt.keyCode:evt.which;
- if(k==9){$d.yDiv.style.display='none';}});
- this.dd.mInput.attachEvent('onkeydown',this._inputKeydown);
- this.dd.yInput.attachEvent('onkeydown',this._inputKeydown);
- this.dd.yInput.onblur=function(){var v=parseInt(this.value);
- if(v<$d.obj.minDate.year){this.value=$d.obj.minDate.year;}
- else if(v>$d.obj.maxDate.year){this.value=$d.obj.maxDate.year;}
- if(v!=$d.obj.year){$d.obj.redraw();}
- this.className='yminput';};
- this.dd.mInput.onblur=function(){if(parseInt(this.value)>12){this.value='12';}
- else if(v<1){this.value='1';}
- var tmpYM=$d.obj.year*100+parseInt(this.value)*1;
- if(tmpYM<($d.obj.minDate.year*100+$d.obj.minDate.month*1)){this.value=$d.obj.minDate.month;}
- else if(tmpYM>($d.obj.maxDate.year*100+$d.obj.maxDate.month*1)){this.value=$d.obj.maxDate.month;}
- var v=parseInt(this.value);
- this.setAttribute('realValue',v);
- this.value=dpcfg.aMonStr[v-1]
- if(v!=$d.obj.month){$d.obj.redraw();}
- this.className='yminput';};
- this.dd.mInput.onfocus=function(){this.className='yminputfocus';
- this.value=this.getAttribute("realValue");
- this.select();
- if($d.obj.hasDate){$d.obj._fillmonth();
- $d.mDiv.style.display='block';}};
- this.dd.yInput.onfocus=function(){this.className='yminputfocus';
- this.select();
- if($d.obj.hasDate){$d.obj._fillyear();
- $d.yDiv.style.display='block';}};
- this.dd.hhInput=tmpInputs[2];
- this.dd.hmSplitInput=tmpInputs[3];
- this.dd.mmInput=tmpInputs[4];
- this.dd.msSplitInput=tmpInputs[5];
- this.dd.ssInput=tmpInputs[6];
- this.dd.clearInput=tmpInputs[7];
- this.dd.todayInput=tmpInputs[8];
- this.dd.okInput=tmpInputs[9];
- this.dd.hhInput.onfocus=this.dd.mmInput.onfocus=this.dd.ssInput.onfocus=function(){this.select();$d.obj.currFocus=this;};
- this.dd.hhInput.onblur=function(){if(parseInt(this.value)>23){this.value='23';}
- else if(parseInt(this.value)<0){this.value='0';}};
- this.dd.mmInput.onblur=this.dd.ssInput.onblur=function(){if(parseInt(this.value)>59){this.value='59';}
- else if(parseInt(this.value)<0){this.value='0';}};
- this.dd.hmSplitInput.attachEvent('onfocus',function(){$d.mmInput.focus();});
- this.dd.msSplitInput.attachEvent('onfocus',function(){$d.ssInput.focus();});
- this.dd.ssInput.attachEvent('onkeydown',function(){var evt=event;
- var k=(evt.which==undefined)?evt.keyCode:evt.which;
- if(k==9){$d.downButton.focus();}});
- this.dd.hhInput.attachEvent('onkeydown',this._inputKeydown);
- this.dd.mmInput.attachEvent('onkeydown',this._inputKeydown);
- this.dd.ssInput.attachEvent('onkeydown',this._inputKeydown);
- var tmpBtn=this.dd.getElementsByTagName('button');
- this.dd.upButton=tmpBtn[0];
- this.dd.downButton=tmpBtn[1];
- this.dd.upButton.onclick=function(){if($d.obj.currFocus==undefined){$d.obj.currFocus=$d.mmInput;}
- if(($d.obj.currFocus==$d.hhInput&&parseInt($d.obj.currFocus.value)<23)||($d.obj.currFocus!=$d.hhInput&&parseInt($d.obj.currFocus.value)<59)){$d.obj.currFocus.value=parseInt($d.obj.currFocus.value)+1;}
- else{$d.obj.currFocus.value='0';}
- $d.obj.currFocus.focus();};
- this.dd.downButton.onclick=function(){if($d.obj.currFocus==undefined){$d.obj.currFocus=$d.mmInput;}
- if(parseInt($d.obj.currFocus.value)>0){$d.obj.currFocus.value=parseInt($d.obj.currFocus.value)-1;}
- else{if($d.obj.currFocus==$d.hhInput){$d.obj.currFocus.value='23';}
- else{$d.obj.currFocus.value='59';}}
- $d.obj.currFocus.focus();};
- $d=this.dd;
- document.body.insertAdjacentElement('beforeEnd',this.dd);
- this._setOkInput();
- this._setShowAndHide();}
- My97DatePicker.prototype.init=function(){this._todayDate=new Date();
- this.t_year=this._todayDate.getFullYear();
- this.t_month=this._todayDate.getMonth()+1;
- this.t_date=this._todayDate.getDate();
- this.t_hour=this._todayDate.getHours();
- this.t_minute=this._todayDate.getMinutes();
- this.t_sec=this._todayDate.getSeconds();
- var tmpdd=parent.$dp;
- this.eCont=tmpdd.obj.eCont;
- this.dateFmt=tmpdd.obj.dateFmt||dpcfg.dateFmt;
- this.showTime=(tmpdd.obj.showTime==true)?tmpdd.obj.showTime:dpcfg.showTime;
- this.skin=tmpdd.obj.skin||dpcfg.skin;
- this.onPicked=new parent.$dp.obj.win.Function(this.eCont.getAttribute("ONPICKED"));
- this.onPicked=$BindAsEventListener(this.onPicked,this.eCont);
- this.hasYear=(this.dateFmt.indexOf('%Y')==-1)?false:true;
- this.hasMonth=(this.dateFmt.indexOf('%M')==-1)?false:true;
- this.hasDate=(this.dateFmt.indexOf('%D')==-1)?false:true;
- this.hasHour=(this.dateFmt.indexOf('%h')==-1)?false:true;
- this.hasMin=(this.dateFmt.indexOf('%m')==-1)?false:true;
- this.hasSec=(this.dateFmt.indexOf('%s')==-1)?false:true;
- this.minDate=this._doCustomDate(this.eCont.getAttribute("MINDATE"),dpcfg.realValueShortFmt,"min");
- this.maxDate=this._doCustomDate(this.eCont.getAttribute("MAXDATE"),dpcfg.realValueShortFmt,"max");
- if((this.minDate.year*10000+this.minDate.month*100+this.minDate.date*1)>(this.maxDate.year*10000+this.maxDate.month*100+this.maxDate.date*1)){alert('u6700u5C0Fu65E5u671Fu4E0Du80FDu5927u4E8Eu6700u5927u65E5u671F(MinDate Cannot be bigger than MaxDate)!')
- parent.$dp.obj.eCont.onfocus=function(){};
- parent.$dp.obj.eCont.onclick=function(){alert('u6700u5C0Fu65E5u671Fu4E0Du80FDu5927u4E8Eu6700u5927u65E5u671F(MinDate Cannot be bigger than MaxDate)!')};}
- this._setActiveCSS();
- this._initDate(this.eCont.value,this.dateFmt);
- if(this.eCont.value!=''&&this.eCont.getAttribute("REALVALUE")==null&&this._judgeCorrectDateTime(this.eCont.value)){this._setRealValue();}
- this.s_year=this.year;
- this.s_month=this.month;
- this.s_date=this.date;
- this.eCont.getValue=function(){if(this.value==''){return'';}
- else{return this.getAttribute("REALVALUE");}};};
- My97DatePicker.prototype._setShowAndHide=function(){if(!(this.hasYear||this.hasMonth)){this.dd.titleDiv.style.display='none';}
- else{this.dd.titleDiv.style.display='';}
- if(!this.hasYear){this.dd.yInput.style.display=this.dd.navLeftImg.style.display=this.dd.navRightImg.style.display='none';}
- else{this.dd.yInput.style.display=this.dd.navLeftImg.style.display=this.dd.navRightImg.style.display='';}
- if(!this.hasMonth){this.dd.mInput.style.display=this.dd.leftImg.style.display=this.dd.rightImg.style.display='none';}
- else{this.dd.mInput.style.display=this.dd.leftImg.style.display=this.dd.rightImg.style.display='';}
- if(!this.hasDate){this.dd.dDiv.style.display='none';}
- else{this.dd.dDiv.style.display='';}
- if(!this.hasHour){this.dd.hhInput.disabled='disabled';}
- else{this.dd.hhInput.disabled='';}
- if(!this.hasMin){this.dd.mmInput.disabled='disabled';}
- else{this.dd.mmInput.disabled='';}
- if(!this.hasSec){this.dd.ssInput.disabled='disabled';}
- else{this.dd.ssInput.disabled='';}}
- My97DatePicker.prototype._setActiveCSS=function(){var i,a,main;
- for(i=0;(a=document.getElementsByTagName("link")[i]);i++){if(a.getAttribute("rel").indexOf("style")!=-1&&a.getAttribute("title")){a.disabled=true;
- if(a.getAttribute("title")==this.skin)a.disabled=false;}}};
- My97DatePicker.prototype.redraw=function(){this.year=this.dd.yInput.value;
- this.month=this.dd.mInput.getAttribute("realValue");
- this.dd.dDiv.innerHTML=this._createDateTable();
- autoSizeIframe();};
- My97DatePicker.prototype._initDate=function(str,fmt)
- {this.year=this.month=this.date=this.hour=this.minute=this.sec=-1;
- var v=str.split(/W+/);
- var f=fmt.match(/%./g);
- for(var i=0;i<f.length;i++){if(v[i]){if(f[i].toLowerCase()=='%y'){this.year=parseInt(v[i],10);
- if(isNaN(this.year)){this.year=this.t_year;}}
- else if(f[i]=='%M'){this.month=parseInt(v[i],10);
- if(isNaN(this.month)){this.month=this.t_month;}}
- else if(f[i].toLowerCase()=='%d'){this.date=parseInt(v[i],10);
- if(isNaN(this.date)){this.date=this.t_date;}}
- else if(f[i].toLowerCase()=='%h'){this.hour=parseInt(v[i],10);
- if(isNaN(this.hour)){this.hour=this.t_hour;}}
- else if(f[i]=='%m'){this.minute=parseInt(v[i],10);
- if(isNaN(this.minute)){this.minute=this.t_minute;}}
- else if(f[i].toLowerCase()=='%s'){this.sec=parseInt(v[i],10);
- if(isNaN(this.sec)){this.sec=this.t_sec;}}}}
- if(!this._isDate(this.year+'-'+this.month+'-'+this.date)){this.year=this.t_year;this.month=this.t_month;this.date=this.t_date;}
- if((this.hour<0)||(this.hour>23)){this.hour=this.t_hour;}
- if((this.minute<0)||(this.minute>59)){this.minute=this.t_minute;}
- if((this.sec<0)||(this.sec>59)){this.sec=this.t_sec;}};
- My97DatePicker.prototype._isDate=function(sDate){return sDate.match(/^((d{2}(([02468][048])|([13579][26]))[-/s]?((((0?[13578])|(1[02]))[-/s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[-/s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[-/s]?((0?[1-9])|([1-2][0-9])))))|(d{2}(([02468][1235679])|([13579][01345789]))[-/s]?((((0?[13578])|(1[02]))[-/s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[-/s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[-/s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(s(((0?[0-9])|([1-2][0-3])):([0-5]?[0-9])((s)|(:([0-5]?[0-9])))))?$/);};
- My97DatePicker.prototype._createPickerHTML=function()
- {var s=new __sb();
- s.a("<div id=dpTitle>");
- s.a("<div style='float:left;margin:2px;width:45px'><img style='cursor:pointer;' src='skin/"+this.skin+"/navLeft.gif' width=14 height=16 /><img style='cursor:pointer;' src='skin/"+this.skin+"/left.gif' width=14 height=16 /></div>");
- s.a("<div style='float:left;margin:2px;'><div style='margin-left:0px;width:62px' class='ymsel'></div><input class='yminput' style='margin-top:1px;width:30px;' maxlength=3></div>");
- s.a("<div style='float:left;margin:2px'><div style='margin-left:0px' class='ymsel'></div><input class='yminput' style='margin-top:-1px;width:40px;' maxlength=4></div>");
- s.a("<div style='float:right;margin:2px'><img style='cursor:pointer;' src='skin/"+this.skin+"/right.gif' width=14 height=16 /><img style='cursor:pointer;' src='skin/"+this.skin+"/navRight.gif' width=14 height=16 /></div></div>");
- s.a("<div></div>");
- s.a("<div>");
- s.a(this._createTimeTable());
- s.a("</div>");
- return s.j();};
- My97DatePicker.prototype._createDateTable=function(){var tempYear,tempMonth;
- if((this.year*100+this.month*1)<(this.minDate.year*100+this.minDate.month*1)){this.dd.yInput.value=tempYear=this.minDate.year;
- tempMonth=this.minDate.month;
- this.dd.mInput.value=dpcfg.aMonStr[tempMonth-1];
- this.dd.mInput.setAttribute('realValue',tempMonth);}
- else if((this.year*100+this.month*1)>(this.maxDate.year*100+this.maxDate.month*1)){this.dd.yInput.value=tempYear=this.maxDate.year;
- tempMonth=this.maxDate.month;
- this.dd.mInput.value=dpcfg.aMonStr[tempMonth-1];
- this.dd.mInput.setAttribute('realValue',tempMonth);}
- else{tempYear=this.year;
- tempMonth=this.month;}
- var firstDay,firstDate,lastDay,lastDate;
- var s=new __sb();
- var i,j,k;
- firstDay=new Date(tempYear,tempMonth-1,1).getDay();
- firstDate=1-firstDay;
- lastDay=new Date(tempYear,tempMonth,0).getDay();
- lastDate=new Date(tempYear,tempMonth,0).getDate();
- s.a("<table id=dpDayTable width=100% border=0 cellspacing=0 cellpadding=0>");
- s.a("<tr id=dpWeekTitle align=center>");
- var ss=new Array();
- for(i=0;i<7;i++){s.a("<td>"+dpcfg.aWeekStr[i]+"</td>");}
- var classStr='';
- var chassOnStr='';
- var isThisMonth=((tempYear==this.t_year)&&(tempMonth==this.t_month));
- var isSelMonth=((tempYear==this.s_year)&&(tempMonth==this.s_month));
- var needCompareMinDate=((tempYear*100+tempMonth*1)==(this.minDate.year*100+this.minDate.month));
- var needCompareMaxDate=((tempYear*100+tempMonth*1)==(this.maxDate.year*100+this.maxDate.month));
- var needCompareBoth=needCompareMinDate&&needCompareMaxDate;
- var isValidDate=!needCompareMinDate&&!needCompareMaxDate;
- for(i=1,j=firstDate;i<7;i++){s.a("<tr>");
- for(k=0;k<7;k++){if(j>=1&&j<=lastDate){if(isSelMonth&&(j==this.s_date)){classStr='Wselday';}
- else if(isThisMonth&&(j==this.t_date)){classStr='Wtoday';}
- else{classStr=((dpcfg.highLineWeekDay&&(k==0||k==6))?'Wwday':'Wday');}
- classOnStr=((dpcfg.highLineWeekDay&&(k==0||k==6))?'WwdayOn':'WdayOn');
- s.a("<td align=center ");
- if(isValidDate||(!needCompareBoth&&((needCompareMinDate&&j>=this.minDate.date)||(needCompareMaxDate&&j<=this.maxDate.date)))||(needCompareBoth&&(j>=this.minDate.date)&&(j<=this.maxDate.date))){s.a("onclick="$d.obj.pickDate(null,null,"+j+");" ");
- s.a("onmouseover="this.className='"+classOnStr+"'" ");
- s.a("onmouseout="this.className='"+classStr+"'" ");}
- else{classStr='WinvalidDay';}
- s.a("class='"+classStr+"'");
- s.a("><span>"+j+"</span>");}
- else{s.a("<td><span></span>");}
- j++;
- s.a("</td>");}
- s.a("</tr>");}
- s.a("</table>");
- return s.j();};
- My97DatePicker.prototype._createTimeTable=function(){var s=new __sb();
- s.a("<div id=dpTime style='"+((this.showTime)?'':'display:none;')+"float:left;margin-top:3px'><table cellspacing=0 cellpadding=0 border=0><tr><td rowspan=2><span id=dpTimeStr>"+dpcfg.timeStr+"</span>");
- s.a(" <input class=tB maxlength=2 value="+this.hour+"><input value=':' class=tm readonly>");
- s.a("<input class=tE maxlength=2 value="+this.minute+"><input value=':' class=tm readonly>");
- s.a("<input class=tE maxlength=2 value="+this.sec+"></td><td>");
- s.a("<button id=dpTimeUp></button></td></tr><tr><td><button id=dpTimeDown></button></td></tr></table></div>");
- s.a("<div id=dpButton style='float:right;margin-top:3px;text-align:right;'>");
- s.a("<input id=dpClearInput type=button value='"+dpcfg.clearStr+"'> <input id=dpTodayInput type=button value='"+dpcfg.todayStr+"'> <input id=dpOkInput type=button value='"+dpcfg.okStr+"'>");
- s.a("</div>");
- return s.j();};
- My97DatePicker.prototype._fillmonth=function()
- {var s=new __sb();
- s.a("<table cellspacing=0 cellpadding=2 border=0>");
- var i,n=0,v=parseInt(this.dd.mInput.getAttribute("realValue"));
- var aMonStrT=new Array(12);
- var aMonStrV=new Array(12);
- for(i=0;i<11;i++){if(i+1==v){n=1;}
- aMonStrT[i]=dpcfg.aMonStr[n+i];
- aMonStrV[i]=n+i+1;}
- this.year=parseInt(this.dd.yInput.value);
- var needCompareMinMonth=this.year==this.minDate.year;
- var needCompareMaxMonth=this.year==this.maxDate.year;
- var needCompareBoth=needCompareMinMonth&&needCompareMaxMonth;
- var validMonth=(this.year>this.minDate.year&&this.year<this.maxDate.year);
- var isValidMonth;
- for(i=0;i<6;i++){s.a("<tr><td ");
- isValidMonth=(validMonth)||(!needCompareBoth&&((needCompareMinMonth&&aMonStrV[i]>=this.minDate.month)||(needCompareMaxMonth&&aMonStrV[i]<=this.maxDate.month)))||(needCompareBoth&&(aMonStrV[i]>=this.minDate.month&&aMonStrV[i]<=this.maxDate.month));
- s.a((isValidMonth)?"class='Wym' onmouseover="this.className='WdayOn'" onmouseout="this.className='Wym'" onmousedown="$d.mInput.value="+aMonStrV[i]+";$d.mDiv.style.display='none';$d.mInput.blur();"":"class='Winvalidym'");
- s.a(">"+aMonStrT[i]+"</td>");
- if(i==5){break;}
- s.a("<td ");
- isValidMonth=(validMonth)||(!needCompareBoth&&((needCompareMinMonth&&aMonStrV[i+6]>=this.minDate.month)||(needCompareMaxMonth&&aMonStrV[i+6]<=this.maxDate.month)))||(needCompareBoth&&(aMonStrV[i+6]>=this.minDate.month&&aMonStrV[i+6]<=this.maxDate.month));
- s.a((isValidMonth)?"class='Wym' onmouseover="this.className='WymOn'" onmouseout="this.className='Wym'" onmousedown="$d.mInput.value="+aMonStrV[i+6]+";$d.mDiv.style.display='none';$d.mInput.blur();"":"class='Winvalidym'");
- s.a(">"+aMonStrT[i+6]+"</td></tr>");}
- s.a("<td align=center onmouseover="this.className='WymOn'" onmouseout="this.className='Wym'" onmousedown="$d.mDiv.style.display='none';">×</td></tr>");
- s.a("</table>");
- this.dd.mDiv.innerHTML=s.j();};
- My97DatePicker.prototype._fillyear=function(minV,maxV)
- {if(minV==null||maxV==null){var v=parseInt(this.dd.yInput.value);
- minV=v-5;maxV=v+4;}
- var i;
- var a=new Array(maxV-minV);
- for(i=minV;i<=maxV;i++){a[i-minV]=i;}
- var n=(a.length/2);
- var s=new __sb();
- var isValidYear;
- s.a("<table cellspacing=0 cellpadding=2 border=0>");
- for(i=0;i<n;i++){isValidYear=(a[i]>=this.minDate.year&&a[i]<=this.maxDate.year);
- s.a("<tr><td ");
- s.a((isValidYear)?"class='Wym' onmouseover="this.className='WymOn'" onmouseout="this.className='Wym'" onmousedown="$d.yInput.value='"+a[i]+"';$d.yDiv.style.display='none';$d.yInput.blur();"":"class='Winvalidym'");
- s.a(">"+a[i]+"</td><td ");
- isValidYear=(a[i+n]>=this.minDate.year&&a[i+n]<=this.maxDate.year);
- s.a((isValidYear)?"class='Wym' onmouseover="this.className='WymOn'" onmouseout="this.className='Wym'" onmousedown="$d.yInput.value='"+a[i+n]+"';$d.yDiv.style.display='none';$d.yInput.blur();"":"class='Winvalidym'");
- s.a(">"+a[i+n]+"</td></tr>");}
- s.a("</table>");
- s.a("<table cellspacing=0 cellpadding=3 border=0><tr><td ");
- s.a((this.minDate.year<minV)?"class='Wym' onmouseover="this.className='WymOn'" onmouseout="this.className='Wym'" onmousedown='$d.obj._fillyear("+(minV-10)+","+(maxV-10)+")'":"class='Winvalidym'");
- s.a(">u2190</td><td class='Wym' onmouseover="this.className='WymOn'" onmouseout="this.className='Wym'" onmousedown="$d.yDiv.style.display='none';$d.yInput.blur();">×</td><td ");
- s.a((this.maxDate.year>maxV)?"class='Wym' onmouseover="this.className='WymOn'" onmouseout="this.className='Wym'" onmousedown='$d.obj._fillyear("+(minV+10)+","+(maxV+10)+")'":"class='Winvalidym'");
- s.a(">u2192</td></tr></table>");
- this.dd.yDiv.innerHTML=s.j();};
- My97DatePicker.prototype._setOkInput=function(){this.dd.clearInput.onclick=function(){$d.obj.eCont.value='';};
- this.dd.todayInput.onclick=function(){var d=$d.obj;d.pickDate(d.t_year,d.t_month,d.t_date,d.t_hour,d.t_minute,d.t_sec);};
- this.dd.okInput.onclick=function(){$d.obj.modifyDate();};
- if(this.eCont.value==""&&this.hasDate){if(((this.t_year*10000+this.t_month*100+this.t_date*1)>=(this.minDate.year*10000+this.minDate.month*100+this.minDate.date*1))&&((this.t_year*10000+this.t_month*100+this.t_date*1)<=(this.maxDate.year*10000+this.maxDate.month*100+this.maxDate.date*1))){this.dd.todayInput.style.display='inline';
- this.dd.clearInput.style.display=this.dd.okInput.style.display='none';}
- else{this.dd.okInput.style.display='inline';
- this.dd.todayInput.style.display=this.dd.clearInput.style.display='none';}
- this.dd.bDiv.onmouseover=function(){};
- this.dd.bDiv.onmouseout=function(){};}
- else{this.dd.okInput.style.display='inline';
- this.dd.clearInput.style.display=this.dd.todayInput.style.display='none';
- this.dd.bDiv.onmouseover=function(){$d.tDiv.style.display='none';
- $d.clearInput.style.display='inline';
- if((($d.obj.t_year*10000+$d.obj.t_month*100+$d.obj.t_date*1)>=($d.obj.minDate.year*10000+$d.obj.minDate.month*100+$d.obj.minDate.date*1))&&(($d.obj.t_year*10000+$d.obj.t_month*100+$d.obj.t_date*1)<=($d.obj.maxDate.year*10000+$d.obj.maxDate.month*100+$d.obj.maxDate.date*1))){$d.obj.dd.todayInput.style.display='inline';}
- else{$d.obj.dd.todayInput.style.display='none';}};
- this.dd.bDiv.onmouseout=function(){if($d.obj.showTime){$d.tDiv.style.display='inline';}
- $d.clearInput.style.display=$d.todayInput.style.display='none';};}};
- My97DatePicker.prototype._returnDateStr=function(Y,M,D,h,m,s,fmt)
- {if(Y==null){Y=this.year;}
- if(M==null){M=this.month;}
- if(D==null){D=this.date;}
- if(h==null){h=this.hour;}
- if(m==null){m=this.minute;}
- if(s==null){s=this.sec;}
- if(fmt==null){fmt=this.dateFmt;}
- var sDate=fmt.replace(/%[Yy]/,this._doStr(Y,4)).replace(/%[M]/,this._doStr(M,2)).replace(/%[Dd]/,this._doStr(D,2));
- if(this.showTime){sDate=sDate.replace(/%[Hh]/,this._doStr(h,2)).replace(/%[m]/,this._doStr(m,2)).replace(/%[Ss]/,this._doStr(s,2));}
- return sDate;};
- My97DatePicker.prototype._doStr=function(s,len){s=s+'';
- for(var i=s.length;i<len;i++){s='0'+s;}
- return s;};
- My97DatePicker.prototype._setRealValue=function(Y,M,D,h,m,s){if(this.showTime){this.eCont.setAttribute("REALVALUE",this._returnDateStr(Y,M,D,h,m,s,dpcfg.realValueLongFmt));}
- else{this.eCont.setAttribute("REALVALUE",this._returnDateStr(Y,M,D,null,null,null,dpcfg.realValueShortFmt));}};
- My97DatePicker.prototype.pickDate=function(Y,M,D,h,m,s){if(Y==null){Y=this.dd.yInput.value;}
- if(M==null){M=this.dd.mInput.getAttribute("realValue");}
- if(D==null){D=this.date;}
- this.year=Y;this.month=M;this.date=D;
- if(this.showTime){if(h==null){h=this.dd.hhInput.value;}
- if(m==null){m=this.dd.mmInput.value;}
- if(s==null){s=this.dd.ssInput.value;}
- this.hour=h;this.minute=m;this.sec=s;
- this.eCont.value=this._returnDateStr(Y,M,D,h,m,s);}
- else{this.eCont.value=this._returnDateStr(Y,M,D);}
- this._setRealValue(Y,M,D,h,m,s);
- $d.obj._markValue(true);
- parent.document.dateDiv.style.display='none';
- this.onPicked();};
- My97DatePicker.prototype.modifyDate=function(Y,M,D,h,m,s){if(Y==null){Y=this.dd.yInput.value;}
- if(M==null){M=this.dd.mInput.getAttribute("realValue");}
- if(D==null){D=this.date;}
- this.year=Y;this.month=M;this.date=D;
- if(this.showTime){if(h==null){h=this.dd.hhInput.value;}
- if(m==null){m=this.dd.mmInput.value;}
- if(s==null){s=this.dd.ssInput.value;}
- this.hour=h;this.minute=m;this.sec=s;
- this.eCont.value=this._returnDateStr(Y,M,D,h,m,s);}
- else{this.eCont.value=this._returnDateStr(Y,M,D);}
- if((Y*10000+M*100+D*1)<(this.minDate.year*10000+this.minDate.month*100+this.minDate.date*1)){Y=this.minDate.year;
- M=this.minDate.month;
- D=this.minDate.date;}
- else if((Y*10000+M*100+D*1)>(this.maxDate.year*10000+this.maxDate.month*100+this.maxDate.date*1)){Y=this.maxDate.year;
- M=this.maxDate.month;
- D=this.maxDate.date;}else{while(!this._isDate(Y+'-'+M+'-'+D)&&D>0){D--;}}
- this.pickDate(Y,M,D);}
- My97DatePicker.prototype._markValue=function(bValue){if(bValue){this.eCont.className=this.eCont.className.replace(/ WdateFmtErr/,'');}
- else{var tempMode=dpcfg.errDealMode;
- while(true){switch(tempMode){case 0:
- if(!confirm(dpcfg.errAlertMsg)){tempMode=2;
- continue;}
- case 1:
- if(this.eCont.getAttribute("REALVALUE")){this._judgeCorrectDateTime(this.eCont.getAttribute("REALVALUE"));}else{this.eCont.value="";}
- this.eCont.className=this.eCont.className.replace(/ WdateFmtErr/,'');
- break;
- case 2:
- this.eCont.className=this.eCont.className.replace(/ WdateFmtErr/,'');
- this.eCont.className=this.eCont.className.replace(/Wdate/,'Wdate WdateFmtErr');
- break;}
- break;}}};
- My97DatePicker.prototype._judgeCorrectDateTime=function(sDateTime){var Y,M,D,h,m,s;
- var v=sDateTime.split(/W+/);
- var f=this.dateFmt.match(/%./g);
- for(var i=0;i<f.length;i++){if(f[i].toLowerCase()=='%y'){Y=Number(v[i]);
- if(isNaN(Y)){return false;}}
- else if(f[i]=='%M'){M=Number(v[i]);
- if(isNaN(M)){return false;}}
- else if(f[i].toLowerCase()=='%d'){D=Number(v[i]);
- if(isNaN(D)){return false;}}
- else if(f[i].toLowerCase()=='%h'){h=Number(v[i]);
- if(isNaN(h)){return false;}}
- else if(f[i]=='%m'){m=Number(v[i]);
- if(isNaN(m)){return false;}}
- else if(f[i].toLowerCase()=='%s'){s=Number(v[i]);
- if(isNaN(s)){return false;}}}
- Y=Y||this.minDate.year;
- M=M||this.minDate.month;
- D=D||this.minDate.date;
- if(this._isDate(Y+'-'+M+'-'+D)&&(h==undefined||(h>=0)&&(h<=23))&&(s==undefined||(m>=0)&&(h<=59))&&(s==undefined||(s>=0)&&(s<=59))){this.eCont.value=this._returnDateStr(Y,M,D,h,m,s);
- if(((Y*10000+M*100+D*1)>=(this.minDate.year*10000+this.minDate.month*100+this.minDate.date*1))&&((Y*10000+M*100+D*1)<=(this.maxDate.year*10000+this.maxDate.month*100+this.maxDate.date*1))){return true;}}
- return false;};
- My97DatePicker.prototype._doCustomDate=function(str,fmt,dvType){var defaultValue=(dvType=="min")?dpcfg.minDate:dpcfg.maxDate;
- if(!str||str==''){str=defaultValue;}
- var re=/{(.*?)}/
- var year,month,day;
- var arr;
- var tmpEval="";
- var hasLastDay=(str.indexOf('#lastDay#')>=0);
- str=str.replace(/#Year#/g,this.t_year).replace(/#Month#/g,this.t_month).replace(/#Day#/g,this.t_date).replace(/#lastDay#/,'0');
- if(str.substring(0,3)=="#F{"){if((arr=re.exec(str))!=null){str=parent.$dp.obj.win.eval(arr[1]);}
- else{alert("Function error!");
- return;}}
- else{var i=0;
- while((arr=re.exec(str))!=null){if(i++==97){break;}
- arr.lastIndex=arr.index+arr[1].length+1;
- tmpEval=parseInt(eval(arr[1]),10);
- if(tmpEval<0){tmpEval='19700'+(-tmpEval);}
- str=str.substring(0,arr.index)+tmpEval+str.substring(arr.lastIndex);}}
- if(str==''){str=defaultValue;}
- var v=str.split(/W+/);
- var f=fmt.match(/%./g);
- for(var i=0;i<f.length;i++){if(v[i]){if(f[i].toLowerCase()=='%y'){year=parseInt(v[i],10);}
- else if(f[i]=='%M'){month=parseInt(v[i],10);}
- else if(f[i].toLowerCase()=='%d'){day=parseInt(v[i],10);}}}
- year=(""+year).replace(/^19700/,"-");
- month=(""+month).replace(/^19700/,"-");
- day=(""+day).replace(/^19700/,"-");
- if(!hasLastDay){month-=1;}
- var tmp=new Date();
- tmp=new Date(year,month,day);
- year=tmp.getFullYear();
- month=tmp.getMonth()+1;
- day=tmp.getDate();
- if(isNaN(year)||isNaN(month)||isNaN(day)){alert('u65E5u671Fu8303u56F4u683Cu5F0Fu9519u8BEF(Invalid MINDATE or MAXDATE)!nnYear:'+year+' Month:'+month+' Day:'+day);}
- return{'year':year,'month':month,'date':day};}
- function hideYMSel(){$d.yDiv.style.display=$d.mDiv.style.display='none';}
- function autoSizeIframe(){if(window!=parent){var ifs=parent.document.getElementsByTagName("IFRAME");
- for(var i=0;i<ifs.length;i++){try
- {if(ifs[i].contentWindow==window){var tmp=document.getElementsByTagName('div')[0];
- ifs[i].style.width=tmp.offsetWidth+"px";
- ifs[i].style.height=tmp.offsetHeight+"px";}}
- catch(e){continue;}}}}