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.
 
 
 
 
 

58 lines
10 KiB

/*
* My97 DatePicker 4.8
* License: http://www.my97.net/license.asp
*/
var $dp,WdatePicker;(function(){var l={
$langList:[
{name:"en",charset:"UTF-8"},
{name:"zh-cn",charset:"gb2312"},
{name:"zh-tw",charset:"GBK"}
],
$skinList:[
{name:"default",charset:"gb2312"},
{name:"whyGreen",charset:"gb2312"},
{name:"blue",charset:"gb2312"},
{name:"green",charset:"gb2312"},
{name:"simple",charset:"gb2312"},
{name:"ext",charset:"gb2312"},
{name:"blueFresh",charset:"gb2312"},
{name:"twoer",charset:"gb2312"},
{name:"YcloudRed",charset:"gb2312"}],
$wdate:true,
$crossFrame:false,
$preLoad:false,
$dpPath:"",
doubleCalendar:false,
enableKeyboard:true,
enableInputMask:true,
autoUpdateOnChanged:null,
weekMethod:"MSExcel",
position:{},
lang:"auto",
skin:"default",
dateFmt:"yyyy-MM-dd",
realDateFmt:"yyyy-MM-dd",
realTimeFmt:"HH:mm:ss",
realFullFmt:"%Date %Time",
minDate:"0001-01-01 00:00:00",
maxDate:"9999-12-31 23:59:59",
minTime:"00:00:00",
maxTime:"23:59:59",
startDate:"",
alwaysUseStartDate:false,
yearOffset:1911,
firstDayOfWeek:0,
isShowWeek:false,
highLineWeekDay:true,
isShowClear:true,
isShowToday:true,
isShowOK:true,
isShowOthers:true,
readOnly:false,
errDealMode:0,
autoPickDate:null,
qsEnabled:true,
autoShowQS:false,
hmsMenuCfg:{H:[1,6],m:[5,6],s:[15,4]},
opposite:false,specialDates:null,specialDays:null,disabledDates:null,disabledDays:null,onpicking:null,onpicked:null,onclearing:null,oncleared:null,ychanging:null,ychanged:null,Mchanging:null,Mchanged:null,dchanging:null,dchanged:null,Hchanging:null,Hchanged:null,mchanging:null,mchanged:null,schanging:null,schanged:null,eCont:null,vel:null,elProp:"",errMsg:"",quickSel:[],has:{},getRealLang:function(){var d=l.$langList;for(var e=0;e<d.length;e++){if(d[e].name==this.lang){return d[e]}}return d[0]}};WdatePicker=g;var n=window,i={innerHTML:""},z="document",B="documentElement",H="getElementsByTagName",E,u,h,f,D;var v=navigator.appName;if(v=="Microsoft Internet Explorer"){h=true}else{if(v=="Opera"){D=true}else{f=true}}u=l.$dpPath||q();if(l.$wdate){m(u+"skin/WdatePicker.css")}E=n;if(l.$crossFrame){try{while(E.parent!=E&&E.parent[z][H]("frameset").length==0){E=E.parent}}catch(y){}}if(!E.$dp){E.$dp={ff:f,ie:h,opera:D,status:0,defMinDate:l.minDate,defMaxDate:l.maxDate}}b();if(l.$preLoad&&$dp.status==0){k(n,"onload",function(){g(null,true)})}if(!n[z].docMD){k(n[z],"onmousedown",s,true);n[z].docMD=true}if(!E[z].docMD){k(E[z],"onmousedown",s,true);E[z].docMD=true}k(n,"onunload",function(){if($dp.dd){r($dp.dd,"none")}});function b(){try{E[z],E.$dp=E.$dp||{}}catch(I){E=n;$dp=$dp||{}}var w={win:n,$:function(e){return(typeof e=="string")?n[z].getElementById(e):e},$D:function(J,e){return this.$DV(this.$(J).value,e)},$DV:function(J,e){if(J!=""){this.dt=$dp.cal.splitDate(J,$dp.cal.dateFmt);if(e){for(var L in e){if(this.dt[L]===undefined){this.errMsg="invalid property:"+L}else{this.dt[L]+=e[L];if(L=="M"){var M=e.M>0?1:0;var K=new Date(this.dt.y,this.dt.M,0).getDate();this.dt.d=Math.min(K+M,this.dt.d)}}}}if(this.dt.refresh()){return this.dt}}return""},show:function(){var K=E[z].getElementsByTagName("div"),J=100000;for(var e=0;e<K.length;e++){var L=parseInt(K[e].style.zIndex);if(L>J){J=L}}this.dd.style.zIndex=J+2;r(this.dd,"block");r(this.dd.firstChild,"")},unbind:function(e){e=this.$(e);if(e.initcfg){t(e,"onclick",function(){g(e.initcfg)});t(e,"onfocus",function(){g(e.initcfg)})}},hide:function(){r(this.dd,"none")},attachEvent:k};for(var d in w){E.$dp[d]=w[d]}$dp=E.$dp}function k(I,J,w,d){if(I.addEventListener){var e=J.replace(/on/,"");w._ieEmuEventHandler=function(K){return w(K)};I.addEventListener(e,w._ieEmuEventHandler,d)}else{I.attachEvent(J,w)}}function t(w,I,e){if(w.removeEventListener){var d=I.replace(/on/,"");e._ieEmuEventHandler=function(J){return e(J)};w.removeEventListener(d,e._ieEmuEventHandler,false)}else{w.detachEvent(I,e)}}function C(w,e,d){if(typeof w!=typeof e){return false}if(typeof w=="object"){if(!d){for(var I in w){if(typeof e[I]=="undefined"){return false}if(!C(w[I],e[I],true)){return false}}}return true}else{if(typeof w=="function"&&typeof e=="function"){return w.toString()==e.toString()}else{return w==e}}}function q(){var I,w,d=n[z][H]("script");for(var e=0;e<d.length;e++){I=d[e].getAttribute("src")||"";I=I.substr(0,I.toLowerCase().indexOf("wdatepicker.js"));var w=I.lastIndexOf("/");if(w>0){I=I.substring(0,w+1)}if(I){break}}return I}function m(w,I,J){var d=n[z][H]("HEAD").item(0),e=n[z].createElement("link");if(d){e.href=w;e.rel="stylesheet";e.type="text/css";if(I){e.title=I}if(J){e.charset=J}d.appendChild(e)}}function p(I){I=I||E;var L=0,d=0;while(I!=E){var N=I.parent[z][H]("iframe");for(var J=0;J<N.length;J++){try{if(N[J].contentWindow==I){var K=o(N[J]);L+=K.left;d+=K.top;break}}catch(M){}}I=I.parent}return{leftM:L,topM:d}}function o(I,w){if(I.getBoundingClientRect){return I.getBoundingClientRect()}else{var J={ROOT_TAG:/^body|html$/i,OP_SCROLL:/^(?:inline|table-row)$/i};var e=false,M=null,P=I.offsetTop,K=I.offsetLeft,d=I.offsetWidth,O=I.offsetHeight;var L=I.offsetParent;if(L!=I){while(L){K+=L.offsetLeft;P+=L.offsetTop;if(c(L,"position").toLowerCase()=="fixed"){e=true}else{if(L.tagName.toLowerCase()=="body"){M=L.ownerDocument.defaultView}}L=L.offsetParent}}L=I.parentNode;while(L.tagName&&!J.ROOT_TAG.test(L.tagName)){if(L.scrollTop||L.scrollLeft){if(!J.OP_SCROLL.test(r(L))){if(!D||L.style.overflow!=="visible"){K-=L.scrollLeft;P-=L.scrollTop}}}L=L.parentNode}if(!e){var N=F(M);K-=N.left;P-=N.top}d+=K;O+=P;return{left:K,top:P,right:d,bottom:O}}}function x(e){e=e||E;var J=e[z],I=(e.innerWidth)?e.innerWidth:(J[B]&&J[B].clientWidth)?J[B].clientWidth:J.body.offsetWidth,d=(e.innerHeight)?e.innerHeight:(J[B]&&J[B].clientHeight)?J[B].clientHeight:J.body.offsetHeight;return{width:I,height:d}}function F(e){e=e||E;var J=e[z],d=J[B],I=J.body;J=(d&&d.scrollTop!=null&&(d.scrollTop>I.scrollTop||d.scrollLeft>I.scrollLeft))?d:I;return{top:J.scrollTop,left:J.scrollLeft}}function s(d){try{var w=d?(d.srcElement||d.target):null;if($dp.cal&&!$dp.eCont&&$dp.dd&&w!=$dp.el&&$dp.dd.style.display=="block"){$dp.cal.close()}}catch(d){}}function A(){$dp.status=2}var G,j;function g(M,d){if(!$dp){return}b();var J={};for(var L in M){J[L]=M[L]}for(var L in l){if(L.substring(0,1)!="$"&&J[L]===undefined){J[L]=l[L]}}if(d){if(!w()){j=j||setInterval(function(){if(E[z].readyState=="complete"){clearInterval(j)}g(null,true)},50);return}if($dp.status==0){$dp.status=1;J.el=i;a(J,true)}else{return}}else{if(J.eCont){J.eCont=$dp.$(J.eCont);J.el=i;J.autoPickDate=true;J.qsEnabled=false;a(J)}else{if(l.$preLoad&&$dp.status!=2){return}var I=N();if(n.event===I||I){J.srcEl=I.srcElement||I.target;I.cancelBubble=true}J.el=J.el=$dp.$(J.el||J.srcEl);if(J.el==null){alert("WdatePicker:el is null!\nexample:onclick=\"WdatePicker({el:this})\"");return;}try{if(!J.el||J.el.My97Mark===true||J.el.disabled||($dp.dd&&r($dp.dd)!="none"&&$dp.dd.style.left!="-970px")){if(J.el.My97Mark){J.el.My97Mark=false}return}}catch(K){}if(I&&J.el.nodeType==1&&!C(J.el.initcfg,M)){$dp.unbind(J.el);k(J.el,I.type=="focus"?"onclick":"onfocus",function(){g(M)});J.el.initcfg=M}a(J)}}function w(){if(h&&E!=n&&E[z].readyState!="complete"){return false}return true}function N(){if(f){try{func=N.caller;while(func!=null){var O=func.arguments[0];if(O&&(O+"").indexOf("Event")>=0){return O}func=func.caller}}catch(P){}return null}return event}}function c(e,d){return e.currentStyle?e.currentStyle[d]:document.defaultView.getComputedStyle(e,false)[d]}function r(e,d){if(e){if(d!=null){e.style.display=d}else{return c(e,"display")}}}function a(e,d){var K=e.el?e.el.nodeName:"INPUT";if(d||e.eCont||new RegExp(/input|textarea|div|span|p|a/ig).test(K)){e.elProp=K=="INPUT"?"value":"innerHTML"}else{return}if(e.lang=="auto"){e.lang=h?navigator.browserLanguage.toLowerCase():navigator.language.toLowerCase()}if(!e.eCont){for(var J in e){$dp[J]=e[J]}}if(!$dp.dd||e.eCont||($dp.dd&&(e.getRealLang().name!=$dp.dd.lang||e.skin!=$dp.dd.skin))){if(e.eCont){w(e.eCont,e)}else{$dp.dd=E[z].createElement("DIV");$dp.dd.style.cssText="position:absolute";E[z].body.appendChild($dp.dd);w($dp.dd,e);if(d){$dp.dd.style.left=$dp.dd.style.top="-970px"}else{$dp.show();I($dp)}}}else{if($dp.cal){$dp.show();$dp.cal.init();if(!$dp.eCont){I($dp)}}}function w(V,P){var O=E[z].domain,S=false,M='<iframe hideFocus=true width=9 height=7 frameborder=0 border=0 scrolling=no src="about:blank"></iframe>';V.innerHTML=M;var L=l.$langList,U=l.$skinList,T;try{T=V.lastChild.contentWindow[z]}catch(Q){S=true;V.removeChild(V.lastChild);var N=E[z].createElement("iframe");N.hideFocus=true;N.frameBorder=0;N.scrolling="no";N.src="javascript:(function(){var d=document;d.open();d.domain='"+O+"';})()";V.appendChild(N);setTimeout(function(){T=V.lastChild.contentWindow[z];R()},97);return}R();function R(){var Y=P.getRealLang();V.lang=Y.name;V.skin=P.skin;var X=["<head><script>","","var doc=document, $d, $dp, $cfg=doc.cfg, $pdp = parent.$dp, $dt, $tdt, $sdt, $lastInput, $IE=$pdp.ie, $FF = $pdp.ff,$OPERA=$pdp.opera, $ny, $cMark = false;","if($cfg.eCont){$dp = {};for(var p in $pdp)$dp[p]=$pdp[p];}else{$dp=$pdp;};for(var p in $cfg){$dp[p]=$cfg[p];}","doc.oncontextmenu=function(){try{$c._fillQS(!$dp.has.d,1);showB($d.qsDivSel);}catch(e){};return false;};","<\/script><script src=",u,"lang/",Y.name,".js charset=",Y.charset,"><\/script>"];if(S){X[1]='document.domain="'+O+'";'}for(var W=0;W<U.length;W++){if(U[W].name==P.skin){X.push('<link rel="stylesheet" type="text/css" href="'+u+"skin/"+U[W].name+'/datepicker.css" charset="'+U[W].charset+'"/>')}}X.push('<script src="'+u+'calendar.js"><\/script>');X.push('</head><body leftmargin="0" topmargin="0" tabindex=0></body></html>');X.push('<script>var t;t=t||setInterval(function(){if((typeof(doc.ready)=="boolean"&&doc.ready)||doc.readyState=="complete"){new My97DP();$cfg.onload();$c.autoSize();$cfg.setPos($dp);clearInterval(t);}},20);<\/script>');P.setPos=I;P.onload=A;T.write("<html>");T.cfg=P;T.write(X.join(""));T.close()}}function I(O){var M=O.position.left,V=O.position.top,L=O.el;if(L==i){return}if(L!=O.srcEl&&(r(L)=="none"||L.type=="hidden")){L=O.srcEl}var T=o(L),P=p(n),U=x(E),Q=F(E),N=$dp.dd.offsetHeight,S=$dp.dd.offsetWidth;if(isNaN(V)){V=0}if((P.topM+T.bottom+N>U.height)&&(P.topM+T.top-N>0)){V+=Q.top+P.topM+T.top-N-2}else{V+=Q.top+P.topM+T.bottom;var R=V-Q.top+N-U.height;if(R>0){V-=R}}if(isNaN(M)){M=0}M+=Q.left+Math.min(P.leftM+T.left,U.width-S-5)-(h?2:0);O.dd.style.top=V+"px";O.dd.style.left=M+"px"}}})();