template_rotatepic.js
上传用户:wenllgg125
上传日期:2020-04-09
资源大小:7277k
文件大小:87k
源码类别:

SCSI/ASPI

开发平台:

Others

  1. window.System = function(){this.setHashCode();}
  2. System.debug=false; //false
  3. System._codebase={};
  4. try
  5. {
  6.   if (window!=parent && parent.System && parent.System._codebase)
  7.     System._codebase = parent.System._codebase;
  8.   else if ("undefined"!=typeof opener&&opener.System&&opener.System._codebase)
  9.     System._codebase = opener.System._codebase;
  10.   else if ("undefined"!=typeof dialogArguments && dialogArguments.System)
  11.     System._codebase = dialogArguments.System._codebase;
  12. }
  13. catch(ex){}
  14. System.MISSING_ARGUMENT="Missing argument";
  15. System.ARGUMENT_PARSE_ERROR="The argument cannot be parsed";
  16. System.NOT_SUPPORTED_XMLHTTP="Your browser do not support XMLHttp";
  17. System.FILE_NOT_FOUND="File not found";
  18. System.MISCODING="Maybe file encoding is not ANSI or UTF-8";
  19. System.NAMESPACE_ERROR=" nonstandard namespace";
  20. System.hashCounter=0;
  21. System.currentVersion="20070228_2";
  22. var t=document.getElementsByTagName("SCRIPT");
  23. t=(System.scriptElement=t[t.length-1]).src.replace(/\/g, "/");
  24. System.extend=function(d,s){for(var i in s)d[i]=s[i];return d;};
  25. System.path=(t.lastIndexOf("/")<0)?".":t.substring(0, t.lastIndexOf("/"));
  26. System.resourcePath=System.path +"/System/_resource";
  27. System.getUniqueId=function(){return "mz_"+(System.hashCounter++).toString(36);};
  28. System.toHashCode=function(e)
  29. {
  30.   if("undefined"!=typeof e.hashCode) return e.hashCode;
  31.   return e.hashCode=System.getUniqueId();
  32. };
  33. System.supportsXmlHttp=function()
  34. {
  35.   return "object"==typeof(System._xmlHttp||(System._xmlHttp=new XMLHttpRequest()));
  36. };
  37. System._getPrototype=function(namespace, argu)
  38. {
  39.   if("undefined"==typeof System._prototypes[namespace])return new System();
  40.   for(var a=[], i=0; i<argu.length; i++) a[i]="argu["+ i +"]";
  41.   return eval("new (System._prototypes['"+namespace+"'])("+a.join(",")+")");
  42. };
  43. System.ie=navigator.userAgent.indexOf("MSIE")>0 && !window.opera;
  44. System.ns=navigator.vendor=="Netscape";
  45. System.alert=function(msg){if(System.debug)alert(msg);};
  46. System._parseResponseText=function(s)
  47. {
  48.   if(null==s||"uFFFD"==s.charAt(0)){System.alert(System.MISCODING);return "";}
  49.   if("xef"==s.charAt(0))s=s.substr(3); //for firefox
  50.   return s.replace(/(^|n)s*//+s*((Using|Import|Include)(("|'))/g,"$1$2");
  51. };
  52. if(!window.XMLHttpRequest && window.ActiveXObject)
  53. {
  54.   window.XMLHttpRequest = function()
  55.   {
  56.     var msxmls=['MSXML3','MSXML2','Microsoft'];
  57.     for(var i=0;i<msxmls.length;i++)
  58.       try{return new ActiveXObject(msxmls[i]+'.XMLHTTP')} catch(ex){}
  59.     System._xmlHttp="mz"; throw new Error(System.NOT_SUPPORTED_XMLHTTP);
  60.   }
  61. }
  62. System.load = function(namespace, path)
  63. {
  64.   try
  65.   {
  66.     if(System.supportsXmlHttp()){path=System._mapPath(namespace, path);
  67.     var x=System._xmlHttp; x.open("GET",path,false); x.send(null);
  68.     if (x.readyState==4){if(x.status==0||/^file:/i.test(path))
  69.       return System._parseResponseText(x.responseText);
  70.     else if(x.status==200)return System._parseResponseText(x.responseText);
  71.     else if(x.status==404)System.alert(namespace+"n"+System.FILE_NOT_FOUND);
  72.     else throw new Error(x.status +": "+ x.statusText);}}
  73.     else System.alert(System.NOT_SUPPORTED_XMLHTTP);
  74.   }
  75.   catch(ex){System.alert(namespace+"n"+ex.message);}return "";
  76. };
  77. System._exist = function(namespace, path)
  78. {
  79.   if("undefined"==typeof System._existences[namespace]) return false;
  80.   return System._existences[namespace]==System._mapPath(namespace,path);
  81. };
  82. System._mapPath = function(namespace, path)
  83. {
  84.   if("string"==typeof path && path.length>3) return path;
  85.   var p=System.path +"/"+ namespace.replace(/./g,"/") +".js";
  86.   return p +(("undefined"==typeof path||path) ? "" : "?t="+ Math.random());
  87. };
  88. window.Using = function(namespace, path, rename)
  89. {
  90.   var N=namespace, C=N.substr(N.lastIndexOf(".")+1), code=N+".";
  91.   if(System._exist(N,path)){window[C]=System._prototypes[N];return}
  92.   if(!/((^|.)[w$]+)+$/.test(N))throw new Error(N+System.NAMESPACE_ERROR);
  93.   for(var s,e,i=code.indexOf("."); i>-1; i=code.indexOf(".", i+1)){
  94.   e=code.substring(0,i);s=(e.indexOf(".")==-1)?"window[""+e+""]":e;
  95.   if(e&&"undefined"==typeof(s)){eval(s+"=function(){return "
  96.     +"System._getPrototype(""+e+"", arguments)}");}}
  97.   if("string"!=typeof System._codebase[N]&&(code=System.load(N,path)))
  98.     System._codebase[N]=code+";rnSystem._prototypes['"+
  99.     N+"']=window['"+(rename||C)+"']="+C;code="";
  100.   System._existences[N]=System._mapPath(N, path);
  101.   if("string"==typeof (s=System._codebase[N]))try{(new Function(s))()}
  102.   catch(e){System.alert("Syntax error on load "+ N +"n"+ e.message);}
  103.   //alert(System._codebase[namespace])
  104. };
  105. window.Import=function(namespace,path,rename){Using(namespace,path,rename)};
  106. window.Instance=function(hashCode){return System._instances[hashCode]};
  107. window.Include=function(namespace, path)
  108. {
  109.   var N=namespace,code; if(System._exist(N, path)) return;
  110.   if(!/((^|.)[w$]+)+$/.test(N))throw new Error(N+System.NAMESPACE_ERROR);
  111.   if("string"!=typeof System._codebase[N])if(System.supportsXmlHttp()
  112.     && (code=System.load(N, path))) System._codebase[N]=code;
  113.   System._existences[N]=System._mapPath(N, path);
  114.   var B=("string"==typeof(System._codebase[N]));try{
  115.   if(window.execScript&&B)window.execScript(System._codebase[N]);else
  116.   {
  117.     var s=document.createElement("SCRIPT");s.type="text/javascript";
  118.     if(B)s.innerHTML="eval(System._codebase['"+N+"']);";
  119.     else s.src=System._existences[N]=System._mapPath(N,path);
  120.     document.getElementsByTagName("HEAD")[0].appendChild(s);
  121.     setTimeout(function(){s.parentNode.removeChild(s)},99);}
  122.   }catch(B){System.alert("Syntax error on include "+N+"n"+B.message);}
  123. };
  124. Function.READ=1;Function.WRITE=2;Function.READ_WRITE=3;
  125. Function.prototype.addProperty=function(name,initValue,r_w)
  126. {
  127.   var capital=name.charAt(0).toUpperCase()+name.substr(1);
  128.   r_w=r_w||Function.READ_WRITE; name="_"+name; var p=this.prototype;
  129.   if("undefined"!=typeof initValue) p[name]=initValue;
  130.   if(r_w&Function.READ) p["get"+ capital]=function(){return this[name];};
  131.   if(r_w&Function.WRITE) p["set"+ capital]=function(v){this[name]=v;};
  132. };
  133. Function.prototype.Extends=function(SuperClass,ClassName)
  134. {
  135.   var op=this.prototype, i, p=this.prototype=new SuperClass();
  136.   if(ClassName)p._className=ClassName; for(i in op)p[i]=op[i];
  137.   if(p.hashCode)delete System._instances[p.hashCode];return p;
  138. };
  139. System._instances={};
  140. System._prototypes=
  141. {
  142.   "System":System,
  143.   "System.Object":System,
  144.   "System.Event":System.Event
  145. };
  146. System._existences=
  147. {
  148.   "System":System._mapPath("System"),
  149.   "System.Event":System._mapPath("System.Event"),
  150.   "System.Object":System._mapPath("System.Object")
  151. };
  152. t=System.Extends(Object, "System"); System.Object = System;
  153. t.decontrol=function(){var t;if(t=this.hashCode)delete System._instances[t]};
  154. t.addEventListeners=function(type, handle)
  155. {
  156.   if("function"!=typeof handle)
  157.     throw new Error(this+" addEventListener: "+handle+" is not a function");
  158.   if(!this._listeners) this._listeners={};
  159.   var id=System.toHashCode(handle), t=this._listeners; 
  160.   if("object"!=typeof t[type]) t[type]={}; t[type][id]=handle;
  161. };
  162. t.removeEventListener=function(type, handle)
  163. {
  164.   if(!this._listeners)this._listeners={};var t=this._listeners;
  165.   if(!t[type]) return; var id=System.toHashCode(handle);
  166.   if( t[type][id])delete t[type][id];if(t[type])delete t[type];
  167. };
  168. t.dispatchEvent=function(evt)
  169. {
  170.   if(!this._listeners)this._listeners={};
  171.   var i, t =this._listeners, p =evt.type;
  172.   evt.target=evt.srcElement=evt.target||evt.srcElement||this;
  173.   evt.currentTarget=this; if(this[p])this[p](evt);
  174.   if("object"==typeof t[p]) for(i in t[p]) t[p][i].call(null, evt);
  175.   delete evt.target;delete evt.currentTarget;delete evt.srcElement;
  176.   return evt.returnValue;
  177. };
  178. t.setHashCode=function()
  179. {
  180.   System._instances[(this.hashCode=System.getUniqueId())]=this;
  181. };
  182. t.getHashCode=function()
  183. {
  184.   if(!this.hashCode)this.setHashCode(); return this.hashCode;
  185. };
  186. t.toString=function(){return "[object "+(this._className||"Object")+"]";};
  187. System.getType=function(e)
  188. {
  189.   if("object"!=typeof(e))return typeof(e);
  190.   if("[object Object]"==e)return "object";
  191.   if(/[objects+([^s]]+)]/.test(e))return RegExp.$1;
  192.   else return "object";
  193. };
  194. System.Event=function(type){this.type=type;};
  195. t=System.Event.Extends(System,"System.Event");
  196. t.returnValue=true;t.cancelBubble=false;
  197. t.target=t.currentTarget=t.srcElement=null;
  198. t.stopPropagation=function(){this.cancelBubble=true;};
  199. t.preventDefault =function(){this.returnValue=false;};
  200. if(System.ie && !System.debug) Include("System.Plugins.IE");//IE UserData
  201. if(window.opera) Include("System.Plugins.Opera"); //Opera support
  202. //Include("System.Global");
  203. //Include("Csdn.Common");
  204. /***  Global.js  ***/
  205. /*-=< base function >=-*/
  206. //HTMLElement.getElementById extend
  207. if(document && !document.getElementById){document.getElementById=function(id){
  208. if(document.all) return document.all(id); return null;}}
  209. /*-=< HTMLElement >=-*/
  210. if(typeof(HTMLElement)!="undefined" && !window.opera)
  211. {
  212.   var t=HTMLElement.prototype;
  213.   t.contains=function(e){do if(e==this)return true;while(e=e.parentNode);return false;};
  214.   t.__defineGetter__("outerHTML",function()
  215.   {
  216.     var a=this.attributes, str="<"+this.tagName, i=0;for(;i<a.length;i++)
  217.     if(a[i].specified) str+=" "+a[i].name+'="'+a[i].value+'"';
  218.     if(!this.canHaveChildren) return str+" />";
  219.     return str+">"+this.innerHTML+"</"+this.tagName+">";
  220.   });
  221.   t.__defineSetter__("outerHTML",function(s)
  222.   {
  223.     var r = this.ownerDocument.createRange();
  224.     r.setStartBefore(this);
  225.     r = r.createContextualFragment(s);
  226.     this.parentNode.replaceChild(r, this);
  227.     return s;
  228.   });
  229.   t.__defineGetter__("canHaveChildren",function()
  230.   {
  231.     switch(this.tagName.toLowerCase())
  232.     {
  233.       case "area": case "base":  case "basefont":
  234.       case "col":  case "frame": case "hr":
  235.       case "img":  case "br":    case "input":
  236.       case "link": case "meta":  case "isindex":
  237.       case "param":return false;
  238.     } return true;
  239.   });
  240.   t.__defineGetter__("currentStyle", function()
  241.   {
  242.     return this.ownerDocument.defaultView.getComputedStyle(this,null);
  243.   });
  244.   t.__defineGetter__("children",function()
  245.   {
  246.     for(var a=[],j=0,n,i=0; i<this.childNodes.length; i++){
  247.     n=this.childNodes[i];if(n.nodeType==1){a[j++]=n;if(n.name){
  248.     if(!a[n.name])a[n.name]=[]; a[n.name][a[n.name].length]=n;}
  249.     if(n.id) a[n.id]=n;}}return a;
  250.   });
  251.   t.insertAdjacentHTML=function(where, html)
  252.   {
  253.     var e=this.ownerDocument.createRange();
  254.     e.setStartBefore(this);
  255.     e=e.createContextualFragment(html);
  256.     switch (where)
  257.     {
  258.       case 'beforeBegin': this.parentNode.insertBefore(e, this);break;
  259.       case 'afterBegin': this.insertBefore(e, this.firstChild); break;
  260.       case 'beforeEnd': this.appendChild(e); break;
  261.       case 'afterEnd':
  262.         if(!this.nextSibling) this.parentNode.appendChild(e);
  263.         else this.parentNode.insertBefore(e, this.nextSibling); break;
  264.     }
  265.   };
  266. };
  267. if(!window.attachEvent && window.addEventListener)
  268. {
  269.   Window.prototype.attachEvent = HTMLDocument.prototype.attachEvent=
  270.   t.attachEvent=function(en, func, cancelBubble)
  271.   {
  272.     var cb = cancelBubble ? true : false;
  273.     this.addEventListener(en.toLowerCase().substr(2), func, cb);
  274.   };
  275.   Window.prototype.detachEvent = HTMLDocument.prototype.detachEvent=
  276.   t.detachEvent=function(en, func, cancelBubble)
  277.   {
  278.     var cb = cancelBubble ? true : false;
  279.     this.removeEventListener(en.toLowerCase().substr(2), func, cb);
  280.   };
  281. }
  282. if(typeof Event!="undefined" && !System.ie && !window.opera)
  283. {
  284.   var t=Event.prototype;
  285.   t.__defineSetter__("returnValue", function(b){if(!b)this.preventDefault();  return b;});
  286.   t.__defineSetter__("cancelBubble",function(b){if(b) this.stopPropagation(); return b;});
  287.   t.__defineGetter__("offsetX", function(){return this.layerX;});
  288.   t.__defineGetter__("offsetY", function(){return this.layerY;});
  289.   t.__defineGetter__("srcElement", function(){var n=this.target; while (n.nodeType!=1)n=n.parentNode;return n;}); 
  290. }
  291. /*-=< Function >=-*/
  292. //apply and call
  293. if(typeof(Function.prototype.apply)!="function")
  294. {
  295.   Function.prototype.apply = function(obj, argu)
  296.   {
  297.     if(obj) obj.constructor.prototype.___caller = this;
  298.     for(var a=[], i=0; i<argu.length; i++) a[i] = "argu["+ i +"]";
  299.     var t = eval((obj ? "obj.___caller" : "this") +"("+ a.join(",") +");");
  300.     if(obj) delete obj.constructor.prototype.___caller; return t;};
  301.     Function.prototype.call = function(obj){
  302.     for(var a=[], i=1; i<arguments.length; i++) a[i-1]=arguments[i];
  303.     return this.apply(obj, a);
  304.   }; 
  305. }
  306. /*-=< Array >=-*/
  307. var t = Array.prototype;
  308. //[extended method] push  insert new item
  309. if(typeof(t.push)!="function")
  310. {
  311.   t.push = function()
  312.   {
  313.     for (var i=0; i<arguments.length; i++)
  314.       this[this.length] = arguments[i];
  315.     return this.length; 
  316.   };
  317. }
  318. //[extended method] shift  delete the first item
  319. if(typeof(t.shift)!="function")
  320. {
  321.   t.shift = function()
  322.   {
  323.     var mm = null;
  324.     if(this.length>0)
  325.     {
  326.       mm = this[0]; for(var i=1; i<this.length; i++)
  327.       this[i-1]=this[i]; this.length=this.length -1;
  328.     }
  329.     return mm;
  330.   };
  331. }
  332. //[extended method] unique  Delete repeated item
  333. t.unique = function()
  334. {
  335.   for(var a={}, i=0; i<this.length; i++)
  336.   {
  337.     if(typeof(a[this[i]])=="undefined") a[this[i]] = 1;
  338.   }
  339.   this.length=0;
  340.   for(i in a) this[this.length] = i; return this;
  341. };
  342. //[extended method] indexOf
  343. if(typeof(t.indexOf)!="function")
  344. {
  345.   t.indexOf=function(item, start)
  346.   {
  347.     start=start||0; if(start<0)start=Math.max(0,this.length+start);
  348.     for(var i=start;i<this.length;i++){if(this[i]===item)return i;}
  349.     return -1;
  350.   };
  351. }
  352. t.include=function(e){return this.indexOf(e)!=-1};
  353. t.remove=function(e)
  354. {
  355.   for(var i=0,n=this.length,a=[]; i<n; i++) if(this[i]!=e) a[a.length]=this[i];
  356.   return a;
  357. }
  358. /*-=< Date >=-*/
  359. //datetime format
  360. Date.prototype.format = function(format)
  361. {
  362.   var o = {
  363.     "M+" : this.getMonth()+1, //month
  364.     "d+" : this.getDate(),    //day
  365.     "h+" : this.getHours(),   //hour
  366.     "m+" : this.getMinutes(), //minute
  367.     "s+" : this.getSeconds(), //second
  368.     "q+" : Math.floor((this.getMonth()+3)/3),  //quarter
  369.     "S" : this.getMilliseconds() //millisecond
  370.   }
  371.   if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
  372.     (this.getFullYear()+"").substr(4 - RegExp.$1.length));
  373.   for(var k in o)if(new RegExp("("+ k +")").test(format))
  374.     format = format.replace(RegExp.$1,
  375.       RegExp.$1.length==1 ? o[k] : 
  376.         ("00"+ o[k]).substr((""+ o[k]).length));
  377.   return format;
  378. };
  379. /*-=< Number >=-*/
  380. if(typeof(Number.prototype.toFixed)!="function")
  381. {
  382.     Number.prototype.toFixed = function(d)
  383.     {
  384.         var s=this+"";if(!d)d=0;
  385.         if(s.indexOf(".")==-1)s+=".";s+=new Array(d+1).join("0");
  386.         if (new RegExp("^(-|\+)?(\d+(\.\d{0,"+ (d+1) +"})?)\d*$").test(s))
  387.         {
  388.             var s="0"+ RegExp.$2, pm=RegExp.$1, a=RegExp.$3.length, b=true;
  389.             if (a==d+2){a=s.match(/d/g); if (parseInt(a[a.length-1])>4)
  390.             {
  391.                 for(var i=a.length-2; i>=0; i--) {a[i] = parseInt(a[i])+1;
  392.                 if(a[i]==10){a[i]=0; b=i!=1;} else break;}
  393.             }
  394.             s=a.join("").replace(new RegExp("(\d+)(\d{"+d+"})\d$"),"$1.$2");
  395.         }if(b)s=s.substr(1);return (pm+s).replace(/.$/, "");} return this+"";
  396.     };
  397. }
  398. /*-=< Global >=-*/
  399. if("undefined"==typeof(encodeURIComponent))encodeURIComponent=function(s){return escape(s);}
  400. /*-=< String >=-*/
  401. var t=String.prototype;
  402. t.trim=function(){return this.replace(/(^[stxa0u3000]+)|([u3000xa0st]+$)/g, "")};
  403. t.capitalize=function(){return this.charAt(0).toUpperCase() + this.substr(1);};
  404. t.getByteLength=function(){return this.replace(/[^x00-xff]/g, "mm").length;};
  405. t.getAttribute = function(attribute)
  406. {
  407.   if(new RegExp("(^|;)\s*"+attribute+"\s*:\s*([^;]*)\s*(;|$)","i").test(this))
  408.   return RegExp.$2.replace(/%3B/gi,";").replace(/%25/g,"%"); return null;
  409. };
  410. t.setAttribute = function(attribute, value)
  411. {
  412.   value=(""+value).replace(/%/g,"%25").replace(/;/g,"%3B").replace(/r|n/g,"");
  413.   return (attribute +":"+ value +";" + this);
  414. };
  415. t.deleteAttribute = function(attribute)
  416. {
  417.   return this.replace(new RegExp("\b\s*"+attribute+"\s*:\s*([^;]*)\s*(;|$)","gi"),"");
  418. };
  419. t.getQueryString = function(name)
  420. {
  421.   var reg = new RegExp("(^|&|\?)"+ name +"=([^&]*)(&|$)"), r;
  422.   if (r=this.match(reg)) return unescape(r[2]); return null;
  423. };
  424. t.sub = function(n)
  425. {
  426.   var r = /[^x00-xff]/g;
  427.   if(this.replace(r, "mm").length <= n) return this;
  428.   n = n - 3;
  429.   var m = Math.floor(n/2);
  430.   for(var i=m; i<this.length; i++)
  431.   {
  432.     if(this.substr(0, i).replace(r, "mm").length>=n)
  433.     {
  434.       return this.substr(0, i) +"...";
  435.     }
  436.   }
  437.   return this;
  438. };
  439. t.format=function()
  440. {
  441.   if(arguments.length==0) return this;
  442.   for(var s=this, i=0; i<arguments.length; i++)
  443.     s=s.replace(new RegExp("\{"+i+"\}","g"), arguments[i]);
  444.   return s;
  445. };
  446. String.format=function(str)
  447. {
  448.   if("string"!=typeof(str)||arguments.length<=1) return str;
  449.   for(var i=1; i<arguments.length; i++)
  450.     str=str.replace(new RegExp("\{"+(i-1)+"\}","g"), arguments[i]);
  451.   return str;
  452. };
  453. /*-=< Meizz Class >=-*/
  454. //NameSpace: System.MzBrowser
  455. System.MzBrowser=window["MzBrowser"]={};(function()
  456. {
  457.   if(MzBrowser.platform) return;
  458.   var ua = window.navigator.userAgent;
  459.   MzBrowser.platform = window.navigator.platform;
  460.   MzBrowser.firefox = ua.indexOf("Firefox")>0;
  461.   MzBrowser.opera = typeof(window.opera)=="object";
  462.   MzBrowser.ie = !MzBrowser.opera && ua.indexOf("MSIE")>0;
  463.   MzBrowser.mozilla = window.navigator.product == "Gecko";
  464.   MzBrowser.netscape= window.navigator.vendor=="Netscape";
  465.   MzBrowser.safari  = ua.indexOf("safari")>-1&&window.Dom;
  466.   if(MzBrowser.firefox) var re = /Firefox(s|/)(d+(.d+)?)/;
  467.   else if(MzBrowser.ie) var re = /MSIE( )(d+(.d+)?)/;
  468.   else if(MzBrowser.opera) var re = /Opera(s|/)(d+(.d+)?)/;
  469.   else if(MzBrowser.netscape) var re = /Netscape(s|/)(d+(.d+)?)/;
  470.   else if(MzBrowser.mozilla) var re = /rv(:)(d+(.d+)?)/;
  471.   if("undefined"!=typeof(re)&&re.test(ua))
  472.     MzBrowser.version = parseFloat(RegExp.$2);
  473. })();
  474. //alert(MzBrowser.version);
  475. /*-=< Extend >=-*/
  476. System.loadCssFile=function(cssPath, uniqueId)
  477. {
  478.   if(/w+.w+(?|$)/.test(cssPath))
  479.   {
  480.     if(!("string"==typeof uniqueId && uniqueId!=""))
  481.     uniqueId = "MzCss_"+ cssPath.replace(/W/g, "");
  482.     if(document.getElementById(uniqueId)) return;
  483.     var link  = document.createElement("LINK");
  484.     link.href = cssPath;
  485.     link.id   = uniqueId;
  486.     link.type = "text/css";
  487.     link.rel  = "Stylesheet";
  488.     uniqueId  = document.getElementsByTagName("HEAD")[0];
  489.     uniqueId.insertBefore(link, uniqueId.firstChild);
  490.   }
  491. };
  492. System.zIndexBase=
  493. {
  494.    "MzForm": 52000 //foused 56000-60000
  495.   ,"dragLayer": 65000
  496. };
  497. System.disabledList={};
  498. var t=window.MzElement=System.MzElement={};
  499. var $=t.check=function()
  500. {
  501.   for(var i=0, a=[]; i<arguments.length; i++)
  502.   {
  503.     var e=arguments[i]; a[i]=null
  504.     if("object"==typeof(e) && e.tagName && e!=window) a[i]=e;
  505.     if("string"==typeof(e) &&(e=document.getElementById(e)))a[i]=e;
  506.   }
  507.   return a.length<2 ? a[0] : a;
  508. };
  509. t.hide=function()
  510. {
  511.   for (var e=null, n=arguments.length, i=0; i<n; i++)
  512.   if(e=MzElement.check(arguments[i])) e.style.display="none";
  513. };
  514. t.show=function()
  515. {
  516.   for (var e=null, n=arguments.length, i=0; i<n; i++)
  517.   if(e=MzElement.check(arguments[i])) e.style.display="";
  518. };
  519. t.remove=function()
  520. {
  521.   for (var e=null, n=arguments.length, i=0; i<n; i++)
  522.   if(e=MzElement.check(arguments[i])) e.parentNode.removeChild(e);
  523. };
  524. t.realOffset=function(o)
  525. {
  526.   if(!o) return null; var e=o, x=y=l=t=0, doc=MzElement.body();
  527.   do{l+=e.offsetLeft||0; t+=e.offsetTop||0; e=e.offsetParent;}while(e);
  528.   do{x+=o.scrollLeft||0; y+=o.scrollTop||0; o=o.parentNode;}while(o);
  529.   return {"x":l-x+doc.scrollLeft, "y":t-y+doc.scrollTop};
  530. };
  531. t.searchByTagName=function(e, TAG)
  532. {
  533.   do if(e.tagName==TAG.toUpperCase())return e;
  534.   while (e=e.parentNode); return null;
  535. }
  536. t.body=function()
  537. {
  538.   var W, H, SL, ST;
  539.   var w=window, d=document, dd=d.documentElement;
  540.   if(w.innerWidth) W=w.innerWidth;
  541.   else if(dd&&dd.clientWidth) W=dd.clientWidth;
  542.   else if(d.body) W=d.body.clientWidth;
  543.   if(w.innerHeight) H=w.innerHeight;
  544.   else if(dd&&dd.clientHeight) H=dd.clientHeight; 
  545.   else if(d.body) H=d.body.clientHeight;
  546.   if(w.pageXOffset) SL=w.pageXOffset;
  547.   else if(dd&&dd.scrollLeft) SL=dd.scrollLeft;
  548.   else if(d.body) SL=d.body.scrollLeft;
  549.   if(w.pageYOffset) ST=w.pageYOffset;
  550.   else if(dd&&dd.scrollTop) ST=dd.scrollTop;
  551.   else if(d.body) ST=d.body.scrollTop;
  552.   return {"scrollTop":ST,"scrollLeft":SL,"clientWidth":W,"clientHeight":H};
  553. }
  554. t.hasClassName=function(element, className)
  555. {
  556.   if(!(element=MzElement.check(element))) return;
  557.   return element.className.split(" ").include(className);
  558. };
  559. t.addClassName=function(element, className)
  560. {
  561.   if(!(element=MzElement.check(element))) return;
  562.   var a=element.className.split(" ");
  563.   if(!a.include(className))a=a.concat(className);
  564.   element.className = a.join(" ").trim(); a=null;
  565. };
  566. t.removeClassName=function(element, className)
  567. {
  568.   if(!(element=MzElement.check(element))) return;
  569.   var r=new RegExp("(^| )"+ className +"( |$)", "g");
  570.   element.className=element.className.replace(r, "$2");
  571. };t=null;
  572. /*** MzDataProvider.js ***/
  573. /*---------------------------------------------------------------------------*
  574. |  Subject:    DataProvider for Meizz WebControl
  575. |  NameSpace:  System.Data.MzDataProvider
  576. |  Author:     meizz
  577. |  Created:    2005-12-28
  578. |  Version:    2007-02-07
  579. *---------------------------------------------------------------------------*/
  580. //text,description,icon,url,target,JSData,XMLData,ULData
  581. function MzDataProvider(){System.call(this);}
  582. t=MzDataProvider.Extends(System, "MzDataProvider");
  583. t.__="x0f";
  584. t.rootId="-1";
  585. t.dividerEncoding=t.divider="_";
  586. t.indexes=t.jsDataPath=t.xmlDataPath="";
  587. t.appendIndexes=function(s){this.indexes += this.__+ s +this.__;}
  588. t.getUniqueId=function(){return "MzDataProvider"+(MzDataProvider.nodeCounter++).toString(36);};
  589. MzDataProvider.nodeCounter=0;
  590. t.nodePrototype=window.MzDataNode = function()
  591. {
  592.   this.index= (MzDataProvider.nodeCounter++).toString(36);
  593.   this.childNodes=[];
  594. };
  595. t=MzDataNode.Extends(System, "MzDataNode");
  596. t.text = t.path = t.sourceIndex="";
  597. t.isLoaded = t.hasChild= false;
  598. t.parentNode = t.$$caller = null;  //instance of System.Data.MzDataProvider
  599. //public
  600. MzDataProvider.prototype.setDivider=function(d)
  601. {
  602.   this.divider=d; for(var a="", i=0; i<d.length; i++)
  603.   a+=("'^{[(\-|+.*?)]}$"".indexOf(d.charAt(i))>-1?"\":"")+d.charAt(i);
  604.   this.dividerEncoding = a;
  605. };
  606. MzDataProvider.prototype.setAsyncJsDataPath=function(path)
  607. {
  608.   if(path.length>0) this.jsDataPath = path.replace(/[\/]*$/, "/");
  609. }
  610. MzDataProvider.prototype.setAsyncXmlDataPath=function(path)
  611. {
  612.   if(path.length>0) this.xmlDataPath = path.replace(/[\/]*$/, "/");
  613. }
  614. MzDataProvider.prototype.render=function(){this.dataInit();};
  615. //private: initialize data node
  616. MzDataProvider.prototype.dataInit = function()
  617. {
  618.   if(this._dataInitialized) return;
  619.   if("object"!=typeof(this.nodes)) this.nodes={};
  620.   if("object"!=typeof(this.dataSource)) this.dataSource={};
  621.   if("object"!=typeof(this.indexMapping)) this.indexMapping={};
  622.   var _=this.__, d=this.dividerEncoding, a=[], i;
  623.   for(i in this.dataSource)a[a.length]=i;this.appendIndexes(a.join(_));
  624.   this.dataSource.length=(this.dataSource.length||0)+ a.length;
  625.   a=(MzDataProvider.nodeCounter++).toString(36);
  626.   var node=this.nodes[a]=this.rootNode = new this.nodePrototype; //this.imaginaryNode
  627.   node.$$caller=this;node.index=a;node.virgin=this.rootId=="-1";
  628.   if(node.virgin)
  629.   {
  630.     node.id=node.path="-1";
  631.     node.loadChildNodes();
  632.     node.hasChildNodes();
  633.   }
  634.   else
  635.   {
  636.     a=new RegExp("([^"+_+d+"]+)"+ d +"("+ this.rootId +")("+_+"|$)");
  637.     if(a.test(this.indexes))
  638.     {
  639.       a=RegExp.$1 + this.divider + this.rootId;
  640.       node.childNodes[0]=node.DTO(this.nodePrototype, a);
  641.       node.isLoaded=true; node.hasChild=true;
  642.     }
  643.   }
  644.   this._dataInitialized=true;
  645. };
  646. //public: append data onafterload
  647. MzDataProvider.prototype.appendData = function(data, override) //param data: json
  648. {
  649.   if("object"!=typeof this.dataSource) this.dataSource={}; var a=[],i;
  650.   for(i in data)if(!this.dataSource[i]){this.dataSource[i]=data[i];a[a.length]=i}
  651.   if(this._dataInitialized) this.appendIndexes(a.join(this.__));
  652.   this.dataSource.length=(this.dataSource.length||0)+a.length;data=null;a=null;
  653. };
  654. //public: getNode (has Builded) by sourceId
  655. MzDataProvider.prototype.getNodeById = function(id)
  656. {
  657.   if(id==this.rootId&&this.rootNode.virgin) return this.rootNode;
  658.   var _=this.__, d = this.dividerEncoding;
  659.   var reg=new RegExp("([^"+_+ d +"]+"+ d + id +")("+_+"|$)");
  660.   if(reg.test(this.indexes)){var s=this.indexMapping[RegExp.$1];
  661.   //alert(s);
  662.   if("string"==typeof(s)) return this.nodes[s.getAttribute("index_"+this.hashCode)];
  663.   //if(reg.test(this.indexes)){var s=this.dataSource[RegExp.$1];
  664.   //if("string"==typeof(s)) return this.nodes[s.getAttribute("index_"+this.hashCode)];
  665.   //else if("object"==typeof(s)) return this.nodes[s["index_"+this.hashCode]];
  666.   else{System.alert("The node isn't initialized!"); return null;}}
  667.   alert("sourceId="+ id +" is nonexistent!"); return null;
  668. };
  669. //public: asynchronous get childNodes from JS File
  670. MzDataProvider.prototype.loadJsData = function(JsFileUrl)
  671. {
  672.   var js; try{if(js = System.load("",JsFileUrl)){var d=eval(js);
  673.   if("object"!=d && "object"==typeof(data) && null!=data)d=data;
  674.   this.appendData(d); data=d=null;}}catch(e){}
  675. };
  676. //public: asynchronous get childNodes from Json File
  677. MzDataProvider.prototype.loadJsonData = function(JsonFileUrl)
  678. {
  679.   MzDataProvider.instance=this;
  680.   if("undefined"==typeof(MzJson))Using("System.Net.MzJson");
  681.   var e=new MzJson();  e.cache = /.js$/i.test(JsonFileUrl);
  682.   e.request(JsonFileUrl); e=null;
  683. };
  684. window.MzJsonDataLoad=function(json)
  685. {
  686.   if(MzDataProvider.instance) MzDataProvider.instance.appendData(json);
  687.   MzDataProvider.instance=null;
  688. }
  689. //public: asynchronous get childNodes from XML File
  690. MzDataProvider.prototype.loadXmlData = function(url, parentId, mapping)
  691. {
  692.   if(System.supportsXmlHttp())
  693.   {
  694.     //Using("System.Xml.MzXmlDocument");
  695.     if("undefined"==typeof parentId) parentId=this.rootId;
  696.     var x=new MzXmlDocument(); x.async=false; x.load(url);
  697.     if(x.readyState==4)
  698.     {
  699.       if(!x.documentElement)
  700.         alert("xmlDoc.documentElement = null, Please update your browser");
  701.       this._loadXmlNodeData(x.documentElement, parentId, mapping);
  702.     }
  703.   }
  704. };
  705. //public: asynchronous get childNodes from XML String
  706. MzDataProvider.prototype.loadXmlDataString = function(xmlString, parentId, mapping)
  707. {
  708.   if(System.supportsXmlHttp())
  709.   {
  710.     //Using("System.Xml.MzXmlDocument");
  711.     if("undefined"==typeof parentId) parentId=this.rootId;
  712.     var x=new MzXmlDocument(); x.loadXML(xmlString);
  713.     this._loadXmlNodeData(x.documentElement, parentId, mapping);
  714.   }
  715. };
  716. MzDataProvider.prototype._loadXmlNodeData = function(xmlNode, parentId, mapping)
  717. {
  718.   if(!(xmlNode && xmlNode.hasChildNodes())) return;
  719.   for(var k,id,i=0,data={},n=xmlNode.childNodes; i<n.length; i++)
  720.   {
  721.     if(n[i].nodeType==1){id=n[i].getAttribute("id")||this.getUniqueId();
  722.     if(n[i].hasChildNodes()){for(k=0,nic=n[i].childNodes;k<nic.length;k++)
  723.     {
  724.       if(nic[k].nodeType==1){this._loadXmlNodeData(n[i], id, mapping);break;}}
  725.     }
  726.     for(var k=0,s="",a=n[i].attributes; k<a.length; k++)
  727.     {
  728.       if(mapping) s=s.setAttribute(mapping[a[k].name.toLowerCase()]||a[k].name, a[k].value);
  729.       else s=s.setAttribute(a[k].name, a[k].value);
  730.     }
  731.     if(!s.getAttribute("text")) s="text:;"+ s;
  732.     a=parentId + this.divider + id; data[a]=s;}
  733.   }
  734.   this.appendData(data);
  735. };
  736. //public
  737. MzDataProvider.prototype.loadUlData=function(HtmlUL, parentId)
  738. {
  739.   if("undefined"==typeof parentId) parentId=this.rootId; var ul;
  740.   if("string"==typeof HtmlUL&&(ul=document.getElementById(HtmlUL)));
  741.   else if("object"==typeof HtmlUL&&(ul=HtmlUL.tagName)&&
  742.     "UL OL".indexOf(ul.toUpperCase())>-1) ul=HtmlUL;
  743.   if("object"==typeof ul)
  744.   {
  745.     var data={}; for(var i=0, n=ul.childNodes; i<n.length; i++)
  746.     {
  747.       if(n[i].nodeType==1 && n[i].tagName=="LI")
  748.       {
  749.         var id=n[i].getAttribute("sourceid")||this.getUniqueId(),txt="",link="";
  750.         for(var k=0; k<n[i].childNodes.length; k++)
  751.         {
  752.           var node=n[i].childNodes[k];
  753.           if(node.nodeType==3) txt += node.nodeValue;
  754.           if(node.nodeType==1)
  755.           {
  756.             switch(node.tagName)
  757.             {
  758.               case "UL":
  759.               case "OL": this.loadUlData(node, id); break;
  760.               case "A" : if(!link) link=node; break;
  761.             }
  762.           }
  763.         }
  764.         var str="";
  765.         if(link)
  766.         {
  767.           str=str.setAttribute("target", link.target);
  768.           str=str.setAttribute("url", link.href);
  769.           str=str.setAttribute("text", link.innerHTML);
  770.         }
  771.         else str = str.setAttribute("text", txt);
  772.         var a=n[i].attributes; //<li>.attributes
  773.         for(var k=0; k<a.length; k++)
  774.         {
  775.           if(a[k].specified && a[k].name!="style")
  776.             str = str.setAttribute(a[k].name, a[k].value);
  777.         }
  778.         a=parentId + this.divider + id;
  779.         data[a]=str;
  780.       }
  781.     }
  782.     this.appendData(data);
  783.   }
  784. }
  785. //public: check node has child
  786. MzDataNode.prototype.hasChildNodes = function()
  787. {
  788.   var $=this.$$caller;
  789.   this.hasChild=$.indexes.indexOf($.__+ this.id + $.divider)>-1
  790.   ||(this.sourceIndex&&(this.get("JSData")!=null||this.get("XMLData")!=null
  791.   || this.get("ULData")!=null)); return this.hasChild;
  792. };
  793. //public: get node attribute
  794. MzDataNode.prototype.get = function(attribName)
  795. {
  796.   if("undefined"!=typeof(this[attribName]))return this[attribName]; else
  797.   {
  798.     var s=this.$$caller.dataSource[this.sourceIndex];
  799.     if("string"==typeof(s)) return s.getAttribute(attribName);
  800.     else if("object"==typeof(s)) return s[attribName];
  801.   }
  802. };
  803. //public: set node attribute
  804. MzDataNode.prototype.set = function(attribName, value)
  805. {
  806.   if("undefined"!=typeof(this[attribName])) this[attribName]=value; else
  807.   {
  808.     var s=this.$$caller.dataSource[this.sourceIndex];
  809.     if("string"==typeof(s))
  810.       this.$$caller.dataSource[this.sourceIndex]=s.setAttribute(attribName,value);
  811.     else if("object"==typeof(s)) s[attribName]=value;
  812.   }
  813. };
  814. //private: load all node's node and init
  815. MzDataNode.prototype.loadChildNodes = function(DataNodeClass)
  816. {
  817.   var $=this.$$caller,r=$.dividerEncoding,_=$.__, i, cs;
  818.   var tcn=this.childNodes;tcn.length=0;if(this.sourceIndex){
  819.   if((i=this.get("JSData"))) $.loadJsData((/^w+.js(s|?|$)/i.test(i)?$.jsDataPath:"")+i);
  820.   if((i=this.get("ULData"))) $.loadUlData(i, this.id);
  821.   if((i=this.get("XMLData")))$.loadXmlData((/^w+.xml(s|?|$)/i.test(i)?$.xmlDataPath:"")+i,this.id);}
  822.   var reg=new RegExp(_ + this.id + r +"[^"+ _ + r +"]+", "g"); 
  823.   if((cs=$.indexes.match(reg))){for(i=0;i<cs.length;i++){
  824.     tcn[tcn.length]=this.DTO(DataNodeClass, cs[i].substr(_.length));}}
  825.   this.isLoaded = true;
  826. };
  827. MzDataNode.prototype.DTO=function(DataNodeClass, sourceIndex)
  828. {
  829.   var C=DataNodeClass||MzDataNode,$=this.$$caller,d=$.divider,n=new C,s;
  830.   n.$$caller=this.$$caller; s=$.dataSource[n.sourceIndex=sourceIndex];
  831.   n.id=sourceIndex.substr(sourceIndex.indexOf(d)+d.length);
  832.   n.hasChildNodes(); n.parentNode=this; $.nodes[n.index]=n;
  833.   n.path=this.path+d+n.id;
  834.   if("string"!=typeof($.indexMapping[n.sourceIndex])) $.indexMapping[n.sourceIndex]="";
  835.   $.indexMapping[n.sourceIndex]=$.indexMapping[n.sourceIndex].setAttribute("index_"+ $.hashCode,n.index);
  836.   n.set("index_"+ $.hashCode,n.index);
  837.   if("string"==typeof(s)) n.text=s.getAttribute("text");
  838.   else if("object"==typeof(s)) n.text=s.text; return n;
  839. };
  840. String.prototype.getAttribute = function(attribute)
  841. {
  842.   if(new RegExp("(^|;)\s*"+attribute+"\s*:\s*([^;]*)\s*(;|$)","i").test(this))
  843.   return RegExp.$2.replace(/%3B/gi,";").replace(/%25/g,"%"); return null;
  844. };
  845. String.prototype.setAttribute = function(attribute, value)
  846. {
  847.   value=(""+value).replace(/%/g,"%25").replace(/;/g,"%3B").replace(/r|n/g,"");
  848.   return (attribute +":"+ value +";" + this);
  849. };
  850. String.prototype.deleteAttribute = function(attribute)
  851. {
  852.   return this.replace(new RegExp("\b\s*"+attribute+"\s*:\s*([^;]*)\s*(;|$)","gi"),"");
  853. };
  854. /*** MzEffect.js ***/
  855. /*---------------------------------------------------------------------------*
  856. |  Subject:    Html Element effect base
  857. |  NameSpace:  System.Web.Forms.MzEffect
  858. |  Author:     meizz
  859. |  Created:    2006-07-07
  860. |  Version:    2007-04-13
  861. *---------------------------------------------------------------------------*/
  862. /*/Interface
  863. Required: initialize() render() finish() restore()
  864. abort() end() cancel() dispose()
  865. op.onbeforestart() op.onbeforeupdate() op.onafterupdate() op.onafterfinish()
  866. /*/
  867. //op{interval, duration, overlap, trend, continual}
  868. function MzEffect()
  869. {
  870.   System.call(this);this.readyState=1;
  871.   this.element=MzElement.check(arguments[0]);
  872.   if(!this.element) return; var t;
  873.   this.terminative=false;  //true for terminate effect
  874.   var op=this.options=System.extend({
  875.      "interval": 10   //milliseconds
  876.     ,"duration": 800  //milliseconds
  877.     ,"overlap":  false
  878.     ,"continual": true
  879.     ,"trend": "strengthen" //strengthen|weaken true|false
  880.   },
  881.     arguments[1]||{}
  882.   );
  883.   op["trend"]= ("boolean"==typeof(op["trend"]) && op["trend"]) ||
  884.     ("string"==typeof(op["trend"])&&op["trend"].toLowerCase()=="strengthen");
  885.   //prevent repeated effect
  886.   if(!op.overlap){this.attribName="att_"+this._className.replace(/W/g, "_");
  887.   if(t=this.element.getAttribute(this.attribName))if(t=Instance(t))t.cancel();
  888.   this.element.setAttribute(this.attribName, this.hashCode, 0);}
  889.   this.beginTime = new Date().getTime();
  890.   this.endTime = this.beginTime + op.duration;
  891.   if(this.initialize) this.initialize();
  892.   /*_onbeforestart*/ MzEffect.attachEvent(this, "_onbeforestart");
  893.   /*onbeforestart*/  MzEffect.attachEvent(this, "onbeforestart");
  894.   /*onbeforeupdate*/ MzEffect.attachEvent(this, "onbeforeupdate");
  895.   /*onafterupdate*/  MzEffect.attachEvent(this, "onafterupdate");
  896.   /*onafterfinish*/  MzEffect.attachEvent(this, "onafterfinish");
  897.   this.dispatchEvent(new System.Event("_onbeforestart"));
  898.   this.dispatchEvent(new System.Event("onbeforestart"));
  899.   this.readyState=2;if(op.continual) this._process();else
  900.   if(!this.restore){this.restore=function(){};this.dispose();}
  901. };
  902. t=MzEffect.Extends(System, "MzEffect");
  903. t._process=function()
  904. {
  905.   var now = new Date().getTime(), me = this, op=this.options;
  906.   if (now>=this.endTime)
  907.   {
  908.     if(this.render) this.render((op.trend==true ? 1 : 0));
  909.     if(this.finish) this.finish(); this.readyState=4;
  910.     this.dispatchEvent(new System.Event("onafterfinish"));
  911.     this.dispose(); return;
  912.   } if(op){
  913.   var schedule = Math.sqrt((now-this.beginTime)/op.duration);
  914.   if(op.trend!=true) schedule = Math.pow((this.endTime-now)/op.duration, 2);
  915.   this.schedule = schedule;
  916.   this.dispatchEvent(new System.Event("onbeforeupdate"));
  917.   if(this.render)this.render(schedule);
  918.   this.dispatchEvent(new System.Event("onafterupdate"));
  919.   if(!this.terminative)
  920.   this.timer=setTimeout(function(){me._process()},op.interval); else
  921.   try{this.element.removeAttribute(this.attribName);}catch(ex){}}
  922.   me.readyState=3; 
  923. };
  924. t.abort=function(){if(this.timer)clearTimeout(this.timer);};
  925. t.end=function()
  926. {
  927.   if(this.readyState==4) return;
  928.   if(this.timer) clearTimeout(this.timer);
  929.   this.endTime = this.beginTime; this._process();
  930. }
  931. t.cancel=function()
  932. {
  933.   this.endTime = this.beginTime;
  934.   if(this.timer)  clearTimeout(this.timer);
  935.   if(this.restore) this.restore();
  936.   this.dispose();
  937. };
  938. t.dispose=function()
  939. {
  940.   if(this.element)this.element.removeAttribute(this.attribName);
  941.   //System.prototype.dispose.call(this);
  942.   if(System.ie) CollectGarbage();
  943. };
  944. MzEffect.attachEvent=function(T, type)
  945. {
  946.   //if(T.options&&typeof(T.options[type])=="function")
  947.   //  T.addEventListener(type, function(e){T.options[type](e)});
  948. };
  949. MzEffect.formatColor=function(color)
  950. {
  951.   if(/^#[da-z]{6}$/i.test(color)) return color;
  952.   else if(color.indexOf("rgb(")==0)
  953.   {
  954.     var cs=color.substring(4, color.length-1).split(",");
  955.     for(var i=0, color="#"; i<cs.length; i++)
  956.     {
  957.       var s = parseInt(cs[i]).toString(16);
  958.       color+= ("00"+ s).substr(s.length);
  959.     }
  960.     return color;
  961.   }
  962.   return "";
  963. };
  964. /*--====== core effect ======--*/
  965. //op{interval, duration, trend}
  966. MzEffect.Opacity=function(element, op)
  967. {
  968.   op = System.extend({interval: 20}, op||{});
  969.   op.simple = (System.ie && MzBrowser.version<5.5)
  970.     || (MzBrowser.opera  && MzBrowser.version<8.5);
  971.   MzEffect.apply(this, [element, op]);
  972. };
  973. MzEffect.Opacity.Extends(MzEffect, "MzEffect.Opacity").initialize=function()
  974. {
  975.   var op=this.options, obj=this.element, me=this;
  976.   this.render=function(schedule)
  977.   {
  978.     schedule = me.schedule || schedule;
  979.     if(op.simple){me.endTime-=op.duration; return;}
  980.     if(!System.ie)
  981.     {
  982.       obj.style.opacity = schedule;
  983.       obj.style.MozOpacity = schedule;
  984.       obj.style.KHTMLOpacity = schedule;
  985.     }
  986.     else obj.style.filter = "alpha(opacity:"+Math.round(schedule*100)+")";
  987.   };
  988.   if (System.ie)op.originalFilter = obj.style.filter; else
  989.   {
  990.     op.originalOpacity = obj.style.opacity;
  991.     op.originalMozOpacity = obj.style.MozOpacity;
  992.     op.originalKHTMLOpacity = obj.style.KHTMLOpacity;
  993.   }
  994.   this.restore=function()
  995.   {
  996.     if(System.ie) obj.style.filter = op.originalFilter; else
  997.     {
  998.       obj.style.opacity = op.originalOpacity;
  999.       obj.style.MozOpacity = op.originalMozOpacity;
  1000.       obj.style.KHTMLOpacity = op.originalKHTMLOpacity;
  1001.     }
  1002.   };
  1003. };
  1004. //op{interval, duration, trend}
  1005. MzEffect.MoveBy=function(element, x, y, op)
  1006. {
  1007.   if("undefined"==typeof x || "undefined"==typeof y) return;
  1008.   this.offsetX=parseFloat(x);
  1009.   this.offsetY=parseFloat(y);
  1010.   op=System.extend({duration: 400}, op||{});
  1011.   MzEffect.apply(this, [element, op]);
  1012. };
  1013. MzEffect.MoveBy.Extends(MzEffect, "MzEffect.MoveBy").initialize=function()
  1014. {
  1015.   var me=this, obj=me.element, op=me.options;
  1016.   op.originalTop  = obj.style.top;
  1017.   op.originalLeft = obj.style.left;
  1018.   op.originalPosition = obj.style.position;
  1019.   me.originalY = parseFloat(obj.style.top  || '0');
  1020.   me.originalX = parseFloat(obj.style.left || '0');
  1021.   if(obj.style.position == "") obj.style.position = "relative";
  1022.   this.render=function(schedule)
  1023.   {
  1024.     schedule = me.schedule || schedule;
  1025.     obj.style.left = (me.offsetX * schedule + me.originalX) +"px";
  1026.     obj.style.top  = (me.offsetY * schedule + me.originalY) +"px";
  1027.   };
  1028.   this.setPosition=function(x, y)
  1029.   {
  1030.     obj.style.top  = y +"px";
  1031.     obj.style.left = x +"px";
  1032.   };
  1033.   this.restore=function()
  1034.   {
  1035.     obj.style.top  = op.originalTop;
  1036.     obj.style.left = op.originalLeft;
  1037.     obj.style.position = op.originalPosition;
  1038.   };
  1039. };
  1040. //op{interval, duration, trend}
  1041. MzEffect.MoveTo=function(element, op)
  1042. {
  1043.   if(!op&&("undefined"==typeof op.x||"undefined"==typeof op.y)) return;
  1044.   this.x=parseFloat(op.x);this.y=parseFloat(op.y);
  1045.   op=System.extend({duration: 300}, op||{});
  1046.   MzEffect.apply(this, [element, op]);
  1047. };
  1048. MzEffect.MoveTo.Extends(MzEffect, "MzEffect.MoveTo").initialize=function()
  1049. {
  1050.   var me=this, obj=me.element, op=me.options;
  1051.   op.originalTop  = obj.style.top;
  1052.   op.originalLeft = obj.style.left;
  1053.   op.originalPosition = obj.style.position;
  1054.   me.originalY = parseFloat(obj.style.top  || '0');
  1055.   me.originalX = parseFloat(obj.style.left || '0');
  1056.   me.offsetX = me.x - me.originalX;
  1057.   me.offsetY = me.y - me.originalY;
  1058.   if((obj.currentStyle && obj.currentStyle.position== "static")
  1059.     || obj.style.position == "") obj.style.position = "relative";
  1060.   this.render=function(schedule)
  1061.   {
  1062.     schedule = me.schedule || schedule;
  1063.     obj.style.left = (me.offsetX * schedule + me.originalX) +"px";
  1064.     obj.style.top  = (me.offsetY * schedule + me.originalY) +"px";
  1065.   };
  1066.   this.setPosition=function(x, y)
  1067.   {
  1068.     obj.style.top  = y +"px";
  1069.     obj.style.left = x +"px";
  1070.   };
  1071.   this.restore=function()
  1072.   {
  1073.     obj.style.top  = op.originalTop;
  1074.     obj.style.left = op.originalLeft;
  1075.     obj.style.position = op.originalPosition;
  1076.   };
  1077. };
  1078. //op{interval, duration, trend, color, beginColor, endColor, finalColor}
  1079. MzEffect.Highlight=function(element, op){MzEffect.apply(this, arguments);};
  1080. MzEffect.Highlight.Extends(MzEffect, "MzEffect.Highlight").initialize=function()
  1081. {
  1082.   var op=this.options, obj=this.element, endColor="#FFFFFF";
  1083.   var backColor = (obj.currentStyle||obj.style).backgroundColor;
  1084.   op.originalBgColor = obj.style.backgroundColor;
  1085.   op.originalColor = obj.style.color;
  1086.   if(backColor) endColor = MzEffect.formatColor(backColor);
  1087.   op.beginColor = op.beginColor || "#FFFF00";
  1088.   op.endColor   = op.endColor || endColor;
  1089.   op.finalColor = op.finalColor || obj.style.backgroundColor;
  1090.   this.colors_base=[
  1091.     parseInt(op.beginColor.substring(1,3),16),
  1092.     parseInt(op.beginColor.substring(3,5),16),
  1093.     parseInt(op.beginColor.substr(5),16)];
  1094.   this.colors_var=[
  1095.     parseInt(op.endColor.substring(1,3),16)-this.colors_base[0],
  1096.     parseInt(op.endColor.substring(3,5),16)-this.colors_base[1],
  1097.     parseInt(op.endColor.substr(5),16)-this.colors_base[2]];
  1098.   this.finish=function()
  1099.   {
  1100.     if(op.color) obj.style.color = op.color;
  1101.     obj.style.backgroundColor = op.finalColor;
  1102.   };
  1103.   function n2h(s){s=parseInt(s).toString(16);return ("00"+ s).substr(s.length)}
  1104.   this.render=function(schedule)
  1105.   {
  1106.     schedule = this.schedule || schedule;
  1107.     var colors=[
  1108.       n2h(Math.round(this.colors_base[0]+(this.colors_var[0]*schedule))),
  1109.       n2h(Math.round(this.colors_base[1]+(this.colors_var[1]*schedule))),
  1110.       n2h(Math.round(this.colors_base[2]+(this.colors_var[2]*schedule)))];
  1111.     obj.style.backgroundColor = "#"+ colors.join("");
  1112.   };
  1113.   this.restore=function()
  1114.   {
  1115.     obj.style.color = op.originalColor;
  1116.     obj.style.backgroundColor = op.originalBgColor;
  1117.   };
  1118. };
  1119. MzEffect.Curtain=function(element, op)
  1120. {
  1121.   op = System.extend(
  1122.   {
  1123.     direction: "",
  1124.     scaleContent: false
  1125.   }, op||{});
  1126.   MzEffect.apply(this, [element, op]);
  1127. }
  1128. MzEffect.Curtain.Extends(MzEffect, "MzEffect.Mask").initialize=function()
  1129. {
  1130.   var me=this, op=me.options, obj=me.element;
  1131.   op.direction = op.direction.toLowerCase();
  1132.   op.originalWidth  = obj.style.width;
  1133.   op.originalHeight = obj.style.height;
  1134.   op.originalOverflow = obj.style.overflow;
  1135.   op.originalPosition = obj.style.position;
  1136.   op.originalVisibility = obj.style.visibility;
  1137.   op.originalMarginTop = (obj.currentStyle || obj.style).marginTop;
  1138.   op.originalOffsetWidth  = obj.offsetWidth;
  1139.   op.originalOffsetHeight = obj.offsetHeight;
  1140.   obj.style.overflow = "hidden";
  1141.   this.restore=function()
  1142.   {
  1143.     obj.style.width = op.originalWidth;
  1144.     obj.style.height = op.originalHeight;
  1145.     obj.style.overflow = op.originalOverflow;
  1146.     obj.style.position = op.originalPosition;
  1147.     obj.style.marginTop = op.originalMarginTop;
  1148.     obj.style.visibility = op.originalVisibility;
  1149.   };
  1150.   this.finish=function(){this.restore();};
  1151.   this.render=function(schedule){};
  1152. };
  1153. //op{interval, duration, trend, direction, opacity}
  1154. MzEffect.Mask=function(element, op)
  1155. {
  1156.   op=System.extend({direction: "box"}, op||{});
  1157.   MzEffect.apply(this, [element, op]);
  1158. };
  1159. MzEffect.Mask.Extends(MzEffect, "MzEffect.Mask").initialize=function()
  1160. {
  1161.   var me=this, op=me.options, obj=me.element;
  1162.   if(!op.trend && obj.style.display=="none"){me.endTime-=op.duration; return;}
  1163.   op.direction = op.direction.toLowerCase();
  1164.   if(op.direction=="random")
  1165.   {
  1166.     var a=["box","center-up-down", "center-right-left", "top", "bottom",
  1167.       "left", "right", "top-right", "top-left", "right-top", "left-top"];
  1168.     var n=Math.floor(Math.random() * a.length);
  1169.     op.direction = (n>=a.length) ? "box" : a[n];
  1170.   }
  1171.   op.originalTop  = obj.style.top;
  1172.   op.originalLeft = obj.style.left;
  1173.   op.originalClip = obj.style.clip;
  1174.   op.originalWidth= obj.style.width;
  1175.   op.originalHeight= obj.style.height;
  1176.   op.originalPosition = obj.style.position;
  1177.   if (op.trend){op.originalVisibility = obj.style.visibility;
  1178.   obj.style.visibility = "hidden"; MzElement.show(obj);}
  1179.   op._offsetWidth  = obj.offsetWidth;
  1180.   op._offsetHeight = obj.offsetHeight;
  1181.   if(System.ie || window.opera)
  1182.   {
  1183.     obj.style.width = op._offsetWidth +"px";
  1184.     obj.style.height= op._offsetHeight+"px";
  1185.   }
  1186.   else
  1187.   {
  1188.     obj.style.width = (op._offsetWidth
  1189.       - parseInt((obj.currentStyle || obj.style).borderLeftWidth||0)
  1190.       - parseInt((obj.currentStyle || obj.style).borderRightWidth||0)) +"px";
  1191.     obj.style.height= (op._offsetHeight
  1192.       - parseInt((obj.currentStyle || obj.style).borderTopWidth||0)
  1193.       - parseInt((obj.currentStyle || obj.style).borderBottomWidth||0)) +"px";
  1194.   }
  1195.   if (op.trend) obj.style.visibility = op.originalVisibility;
  1196.   //for opacity 20070114
  1197.   if (System.ie)op.originalFilter = obj.style.filter; else
  1198.   {
  1199.     op.originalOpacity = obj.style.opacity;
  1200.     op.originalMozOpacity = obj.style.MozOpacity;
  1201.     op.originalKHTMLOpacity = obj.style.KHTMLOpacity;
  1202.   }
  1203.   if((obj.currentStyle || obj.style).position!="absolute")
  1204.   {
  1205.     obj.style.position = "absolute";
  1206.     var input = document.createElement("INPUT");
  1207.     input.type="text";   input.style.border="none";
  1208.     input.readOnly=true; input.style.fontSize="1px";
  1209.     input.style.margin=input.style.padding=0;
  1210.     input.id = "MzEffectMaskStuffing"+ this.hashCode;
  1211.     input.style.backgroundColor = "transparent";//"red";
  1212.     var a=(obj.currentStyle||obj.style).marginLeft ||0;a=a=="auto"?0:parseInt(a);
  1213.     var b=(obj.currentStyle||obj.style).marginRight||0;b=b=="auto"?0:parseInt(b);
  1214.     input.style.width = (op._offsetWidth  + a + b-(System.ie?2:0)) +"px";
  1215.     a=(obj.currentStyle||obj.style).marginTop   ||0;a=a=="auto"?0:parseInt(a);
  1216.     b=(obj.currentStyle||obj.style).marginBottom||0;b=b=="auto"?0:parseInt(b);
  1217.     input.style.height= (op._offsetHeight + a + b-(System.ie?2:0)) +"px";
  1218.     obj.parentNode.insertBefore(input, obj.nextSibling);
  1219.   }
  1220.   this.restore=function()
  1221.   {
  1222.     obj.style.clip  = op.originalClip||"rect(auto, auto, auto, auto)";
  1223.     obj.style.top   = op.originalTop;
  1224.     obj.style.left  = op.originalLeft;
  1225.     obj.style.width = op.originalWidth;
  1226.     obj.style.height= op.originalHeight;
  1227.     if((obj.currentStyle || obj.style).position!="absolute")
  1228.       MzElement.remove("MzEffectMaskStuffing"+ this.hashCode);
  1229.     obj.style.position = op.originalPosition;
  1230.     if(System.ie) obj.style.filter = op.originalFilter; else
  1231.     {
  1232.       obj.style.opacity = op.originalOpacity;
  1233.       obj.style.MozOpacity = op.originalMozOpacity;
  1234.       obj.style.KHTMLOpacity = op.originalKHTMLOpacity;
  1235.     }
  1236.   };
  1237.   this.finish=function(){if(!op.trend)MzElement.hide(obj); me.restore();};
  1238.   this.render=function(schedule)
  1239.   {
  1240.     schedule = me.schedule || schedule;
  1241.     if(op.opacity)
  1242.     {
  1243.       if(!System.ie){obj.style.opacity = schedule;
  1244.         obj.style.MozOpacity = schedule; obj.style.KHTMLOpacity = schedule;}
  1245.       else obj.style.filter = "alpha(opacity:"+Math.round(schedule*100)+")";
  1246.     }
  1247.     switch(op.direction)
  1248.     {
  1249.       case "box":
  1250.         var halfW = Math.ceil(op._offsetWidth /2);
  1251.         var halfH = Math.ceil(op._offsetHeight/2);
  1252.         var right = Math.ceil(halfW * schedule);
  1253.         var bottom =Math.ceil(halfH * schedule);
  1254.         obj.style.clip = "rect("+ (halfH-bottom) +"px "+ (halfW+right) +"px "+
  1255.           (halfH+bottom) +"px "+ (halfW-right) +"px)";
  1256.         break;
  1257.       case "center-up-down":
  1258.       case "center-down-up":
  1259.       case "center-top-bottom":
  1260.       case "center-bottom-top":
  1261.         var halfH = Math.ceil(op._offsetHeight/2);
  1262.         var bottom =Math.ceil(halfH * schedule);
  1263.         obj.style.clip = "rect("+ (halfH-bottom) +"px "+
  1264.           op._offsetWidth +"px "+ (halfH+bottom) +"px 0)";
  1265.         break;
  1266.       case "center-right-left":
  1267.       case "center-left-right":
  1268.         var halfW = Math.ceil(op._offsetWidth /2);
  1269.         var right = Math.ceil(halfW * schedule);
  1270.         obj.style.clip = "rect(0 "+ (halfW+right) +"px "+
  1271.           op._offsetHeight +"px "+ (halfW-right) +"px)";
  1272.         break;
  1273.       case "top":
  1274.       case "top-bottom":
  1275.         var bottom =op._offsetHeight * schedule +"px";
  1276.         obj.style.clip="rect(0 "+ op._offsetWidth +"px "+ bottom +" 0)";
  1277.         break;
  1278.       case "bottom":
  1279.       case "bottom-top":
  1280.         var top = op._offsetHeight * (1 - schedule) +"px";
  1281.         obj.style.clip = "rect("+ top +" "+ op._offsetWidth +"px "+
  1282.           op._offsetHeight +"px 0)";
  1283.         break;
  1284.       case "left":
  1285.       case "left-right":
  1286.         var right = op._offsetWidth  * schedule +"px";
  1287.         obj.style.clip="rect(0 "+ right +" "+ op._offsetHeight +"px 0)";
  1288.         break;
  1289.       case "right":
  1290.       case "right-left":
  1291.         var left =op._offsetWidth  * (1 - schedule) +"px";
  1292.         obj.style.clip = "rect(0 "+ op._offsetWidth +"px "+
  1293.           op._offsetHeight +"px "+ left +")";
  1294.         break;
  1295.       case "top-right":
  1296.       case "left-bottom":
  1297.         var right = op._offsetWidth  * schedule +"px";
  1298.         var bottom =op._offsetHeight * schedule +"px";
  1299.         obj.style.clip = "rect(0 "+ right +" "+ bottom +" 0)";
  1300.         break;
  1301.       case "top-left":
  1302.       case "right-bottom":
  1303.         var bottom = op._offsetHeight * schedule +"px";
  1304.         var left =op._offsetWidth  * (1 - schedule) +"px";
  1305.         obj.style.clip = "rect(0 "+ op._offsetWidth +"px "+
  1306.           bottom +" "+ left +")";
  1307.         break;
  1308.       case "right-top":
  1309.       case "bottom-left":
  1310.         var top = op._offsetHeight * (1 - schedule) +"px";
  1311.         var left =op._offsetWidth  * (1 - schedule) +"px";
  1312.         obj.style.clip = "rect("+ top +" "+ op._offsetWidth +"px "+
  1313.           op._offsetHeight +"px "+ left +")";
  1314.         break;
  1315.       case "left-top":
  1316.       case "bottom-right":
  1317.         var top = op._offsetHeight * (1 - schedule) +"px";
  1318.         var right=op._offsetWidth  * schedule +"px";
  1319.         obj.style.clip = "rect("+ top  +" "+ right +" "+
  1320.           op._offsetHeight +"px 0)";
  1321.         break;
  1322.     }
  1323.   };
  1324. };
  1325. //op{interval, duration, trend}
  1326. MzEffect.Combo=function(effects, element, op)
  1327. {
  1328.   this.effects=effects||[];
  1329.   if(this.effects.length==0) return;
  1330.   MzEffect.apply(this,[element,op]);
  1331. };
  1332. t=MzEffect.Combo.Extends(MzEffect, "MzEffect.Combo");
  1333. t.render=function(schedule)
  1334. {
  1335.   schedule = this.schedule || schedule;
  1336.   for(var i=0; i<this.effects.length; i++)
  1337.   {
  1338.     var e = this.effects[i];
  1339.     if (e.timer) clearTimeout(e.timer);
  1340.     e.render(schedule);
  1341.   }
  1342. };
  1343. t.finish=function()
  1344. {
  1345.   for(var i=0; i<this.effects.length; i++)
  1346.   {
  1347.     if(this.effects[i].finish) this.effects[i].finish();
  1348.     this.effects[i].dispose();
  1349.   }
  1350. };
  1351. /*--====== meizz effects ======--*/
  1352. MzEffect.Shake=function(element){MzEffect.call(this, element)};
  1353. MzEffect.Shake.Extends(MzEffect, "MzEffect.Shake").initialize=function()
  1354. {
  1355.   var me=this, obj=me.element, os=obj.style;
  1356.   var top =os.top, left=os.left, position=os.position;
  1357.   this.restore=function(){os.top=top; os.left=left; os.position=position;}
  1358.   this._process=function()
  1359.   {
  1360.     var a=[0, 0];
  1361.     if(me._scheduledIndex>=me._scheduledArray.length)
  1362.     {
  1363.       this._process=function()
  1364.       {
  1365.         me.restore();
  1366.         me.dispose();
  1367.         delete me._scheduledIndex;
  1368.         delete me._scheduledArray;
  1369.       };
  1370.     }
  1371.     else
  1372.     {
  1373.       a=me._scheduledArray[me._scheduledIndex];
  1374.       me._scheduledIndex++;
  1375.     }
  1376.     MzEffect.moveBy(obj, a[0], a[1],{
  1377.       duration: 40,
  1378.       interval: 20,
  1379.       onafterfinish: function(e){me._process();}});
  1380.   };
  1381. };
  1382. MzEffect.Shake.prototype._scheduledIndex=0;
  1383. MzEffect.Shake.prototype._scheduledArray=
  1384. [
  1385.    [20, -5]
  1386.   ,[-40,-5]
  1387.   ,[40, 10]
  1388.   ,[-40, 5]
  1389.   ,[40, -9]
  1390.   ,[-35, 8]
  1391.   ,[35, -7]
  1392.   ,[-30, 6]
  1393.   ,[20, -5]
  1394.   ,[-15, 4]
  1395.   ,[10, -3]
  1396.   ,[-8,  2]
  1397.   ,[6,  -1]
  1398.   ,[-5,  0]
  1399.   ,[3,   0]
  1400.   ,[-1,  0]
  1401. ];
  1402. MzEffect.Fadein=function(element, op)
  1403. {
  1404.   var obj=MzElement.check(element);
  1405.   if(!obj) return; if(System.ie 
  1406.     &&!obj.style.width
  1407.     &&!obj.style.height
  1408.     &&obj.style.position!="absolute"
  1409.     &&obj.currentStyle
  1410.     &&obj.currentStyle.position!="absolute"
  1411.     &&obj.currentStyle.width=="auto"
  1412.     &&obj.currentStyle.height=="auto")
  1413.   { MzElement.show(obj); return;}
  1414.   op=System.extend({"_onbeforestart": function(e)
  1415.   {
  1416.     MzElement.show(e.target.element);e.target.render(0.01);
  1417.   }}, op||{});
  1418.   obj=new MzEffect.Opacity(element, op);
  1419.   obj.addEventListener("onafterfinish",function(e){e.target.restore();});
  1420.   return obj;
  1421. };
  1422. MzEffect.Fadeout=function(element, op)
  1423. {
  1424.   var obj=MzElement.check(element);
  1425.   if(!obj) return; if(System.ie 
  1426.     &&!obj.style.width
  1427.     &&!obj.style.height
  1428.     &&obj.style.position!="absolute"
  1429.     &&obj.currentStyle
  1430.     &&obj.currentStyle.position!="absolute"
  1431.     &&obj.currentStyle.width=="auto"
  1432.     &&obj.currentStyle.height=="auto")
  1433.   { MzElement.hide(obj); return;}
  1434.   op=System.extend({"trend": "weaken"}, op||{});
  1435.   obj=new MzEffect.Opacity(element, op);
  1436.   obj.addEventListener("onafterfinish",function(e)
  1437.   {
  1438.     MzElement.hide(e.target.element); e.target.restore();
  1439.   });
  1440.   return obj;
  1441. };
  1442. MzEffect.Appear=function(element, op){return new MzEffect.Fadein(element, op);}
  1443. MzEffect.Fade  =function(element, op){return new MzEffect.Fadeout(element, op);}
  1444. //op{loop, interval, dynamic}
  1445. MzEffect.Pulsate=function(element, op)
  1446. {
  1447.   this.element=MzElement.check(element); if(!this.element) return;
  1448.   op=this.options=System.extend({loop:5,interval:360,dynamic:true},op||{});
  1449.   if(!op.dynamic || op.loop<0 || op.loop>5) op.interval += 160;
  1450.   var a=this.attribName = "att_"+ this._className.replace(/W/g, "_");
  1451.   if((t=this.element.getAttribute(a)) && (t=Instance(t))){
  1452.   System.extend(t.options, this.options); t.times=0; return t;}
  1453.   System.call(this);
  1454.   MzEffect.attachEvent(this, "onbeforestart");
  1455.   MzEffect.attachEvent(this, "onafterfinish");
  1456.   this.element.setAttribute(this.attribName, this.hashCode, 0);
  1457.   this.timer=null; this.initialize();
  1458.   this.dispatchEvent(new System.Event("onbeforestart"));
  1459.   this.render();
  1460. };
  1461. t=MzEffect.Pulsate.Extends(System, "MzEffect.Pulsate");
  1462. t.times=0;
  1463. t.status=true;
  1464. t.initialize=function()
  1465. {
  1466.   var me=this, op=me.options, obj=me.element;
  1467.   op.visibility=obj.style.visibility;
  1468.   this.render=function()
  1469.   {
  1470.     if(me.terminative) return me.stop();
  1471.     if(op.loop>-1 && me.times>=op.loop) return me.stop();
  1472.     if(me.status)
  1473.     {
  1474.       if(!op.dynamic || op.loop<0 || op.loop>5)
  1475.       {
  1476.         obj.style.visibility="hidden";
  1477.         me.timer = setTimeout(me.render, op.interval);
  1478.       }
  1479.       else
  1480.       {
  1481.         MzEffect.fadeout(obj, {
  1482.           interval: 40,
  1483.           duration: 160,
  1484.           onafterfinish: function(e)
  1485.           {
  1486.             obj.style.visibility="hidden";
  1487.             e.target.restore();
  1488.             me.timer = setTimeout(me.render, op.interval);
  1489.           }
  1490.         });
  1491.       }
  1492.     }
  1493.     else
  1494.     {
  1495.       if(!op.dynamic || op.loop<0 || op.loop>5)
  1496.       {
  1497.         obj.style.visibility="";
  1498.         me.timer = setTimeout(me.render, op.interval);
  1499.       }
  1500.       else
  1501.       {
  1502.         MzEffect.fadein(obj,{
  1503.           interval: 40,
  1504.           duration: 160,
  1505.           onbeforestart: function(e){obj.style.visibility=""; me.render(0.01);},
  1506.           onafterfinish: function(e){me.restore(); me.timer=setTimeout(me.render, op.interval);}
  1507.         });
  1508.       }
  1509.     }
  1510.     me.status = !me.status; if(me.status) me.times++;
  1511.   };
  1512.   this.stop=function()
  1513.   {
  1514.     obj.style.visibility=op.visibility;
  1515.     if(me.finish) me.finish();
  1516.     me.dispatchEvent(new System.Event("onbeforestart"));
  1517.     clearTimeout(me.timer);
  1518.     me.dispose();
  1519.   }
  1520.   this.dispose=function()
  1521.   {
  1522.     if(me.element) me.element.removeAttribute(me.attribName);
  1523.     System.prototype.dispose.call(this);
  1524.   };
  1525. };
  1526. MzEffect.Pulsate.stop=function(element)
  1527. {
  1528.   if(element=MzElement.check(element))
  1529.   {
  1530.     var t = "att_"+ "MzEffect.Pulsate".replace(/W/g, "_");
  1531.     if(t=element.getAttribute(t))if(t=Instance(t))t.terminative=true;
  1532.   }
  1533. }
  1534. //op{interval, duration}
  1535. MzEffect.BlindDown=function(element, op){MzEffect.apply(this, arguments);};
  1536. MzEffect.BlindDown.Extends(MzEffect, "MzEffect.Mask").initialize=function()
  1537. {
  1538.   var op=this.options, obj=this.element;
  1539.   op.originalHeight = obj.style.height;
  1540.   op.originalOverflow = obj.style.overflow;
  1541.   op.visibility = obj.style.visibility;
  1542.   obj.style.visibility="hidden"; MzElement.show(obj);
  1543.   op._offsetHeight = obj.offsetHeight;
  1544.   if(!System.ie||(System.ie&&MzBrowser.version<7)){
  1545.   var t; if(t=(obj.currentStyle||obj.style).paddingTop) t=parseFloat(t);
  1546.   if(typeof(t)=="number") op._offsetHeight -= t;
  1547.   var b; if(b=(obj.currentStyle||obj.style).paddingBottom) b=parseFloat(b);
  1548.   if(typeof(b)=="number") op._offsetHeight -= b;}
  1549.   obj.style.height = "1px"; obj.style.overflow = "hidden";
  1550.   setTimeout(function(){obj.style.visibility = op.visibility;}, op.interval);
  1551.   this.finish=this.restore=function()
  1552.   {
  1553.     obj.style.overflow = op.originalOverflow;
  1554.     obj.style.height = op.originalHeight;
  1555.   };
  1556.   this.render=function(schedule)
  1557.   {
  1558.     schedule = this.schedule || schedule;
  1559.     obj.style.height = parseInt(schedule * op._offsetHeight) +"px";
  1560.   };
  1561. };
  1562. //op{interval, duration}
  1563. MzEffect.BlindUp=function(element, op)
  1564. {
  1565.   op = System.extend({trend: "weaken"}, op||{});
  1566.   MzEffect.apply(this, [element, op]);
  1567. };
  1568. MzEffect.BlindUp.Extends(MzEffect, "MzEffect.Mask").initialize=function()
  1569. {
  1570.   var op=this.options, obj=this.element;
  1571.   op.originalHeight = obj.style.height;
  1572.   op.originalOverflow = obj.style.overflow;
  1573.   op._offsetHeight = obj.offsetHeight;
  1574.   if(!System.ie||(System.ie&&MzBrowser.version<7)){
  1575.   var t; if(t=(obj.currentStyle||obj.style).paddingTop) t=parseFloat(t);
  1576.   if(typeof(t)=="number") op._offsetHeight -= t;
  1577.   var b; if(b=(obj.currentStyle||obj.style).paddingBottom) b=parseFloat(b);
  1578.   if(typeof(b)=="number") op._offsetHeight -= b;}
  1579.   obj.style.overflow = "hidden";
  1580.   this.finish=function()
  1581.   {
  1582.     MzElement.hide(obj);
  1583.     obj.style.overflow = op.originalOverflow;
  1584.     obj.style.height = op.originalHeight;
  1585.   };
  1586.   this.restore=function()
  1587.   {
  1588.     obj.style.overflow = op.originalOverflow;
  1589.     obj.style.height = op.originalHeight;
  1590.   };
  1591.   this.render=function(schedule)
  1592.   {
  1593.     schedule = this.schedule || schedule;
  1594.     if(schedule<=0.05) MzElement.hide(obj);
  1595.     obj.style.height = parseInt(schedule * op._offsetHeight) +"px";
  1596.   };
  1597. };
  1598. //op{interval, duration}
  1599. MzEffect.SlideUp=function(element, op)
  1600. {
  1601.   return MzEffect.collapse(element, System.extend(
  1602.   {
  1603.     onafterupdate: function(e){e.target.element.scrollTop=e.target.options.offsetHeight;}
  1604.   }, op||{}))
  1605. };
  1606. //op{interval, duration}
  1607. MzEffect.SlideDown=function(element, op)
  1608. {
  1609.   return MzEffect.expand(element, System.extend(
  1610.   {
  1611.     onafterupdate: function(e){e.target.element.scrollTop=e.target.options.offsetHeight;}
  1612.   }, op||{}))
  1613. };
  1614. //op{interval, duration}
  1615. MzEffect.Fall=function(){MzEffect.Curtain.apply(this, arguments);};
  1616. MzEffect.Fall.Extends(MzEffect.Curtain).initialize=function()
  1617. {
  1618.   MzEffect.Curtain.prototype.initialize.call(this);
  1619.   var me=this, op=me.options, obj=me.element;
  1620.   this.finish=function(){this.hide(9);};
  1621.   this.hide=function(n)
  1622.   {
  1623.     if(n<0){MzElement.hide(obj); me.restore(); return;}
  1624.     obj.style.height = "1px"; obj.style.visibility = "hidden";
  1625.     obj.style.marginTop=(n/10)*op.originalOffsetHeight + parseFloat(op.originalMarginTop||0) +"px";
  1626.     this.timer=setTimeout(function(){me.hide(--n);}, 10);
  1627.   }
  1628.   this.render=function(schedule)
  1629.   {
  1630.     schedule = Math.ceil(op.originalOffsetHeight * (this.schedule || schedule));
  1631.     obj.style.marginTop = (schedule + parseFloat(op.originalMarginTop||0)) +"px";
  1632.     obj.style.height= (op.originalOffsetHeight - schedule) +"px";
  1633.   };
  1634. };
  1635. //op{interval, duration}
  1636. MzEffect.Rise=function(){MzEffect.Curtain.apply(this, arguments);};
  1637. MzEffect.Rise.Extends(MzEffect.Curtain).initialize=function()
  1638. {
  1639.   MzEffect.Curtain.prototype.initialize.call(this);
  1640.   var me=this, op=me.options, obj=me.element;
  1641.   obj.style.height="1px"; MzElement.show(obj);
  1642.   op.originalOffsetHeight = obj.offsetHeight;
  1643.   obj.style.marginTop = op.originalOffsetHeight + parseFloat(op.originalMarginTop||0);
  1644.   this.render=function(schedule)
  1645.   {
  1646.     schedule = Math.ceil(op.originalOffsetHeight * (this.schedule || schedule));
  1647.     obj.style.height = schedule +"px";
  1648.     obj.style.marginTop = (op.originalOffsetHeight - schedule + parseFloat(op.originalMarginTop||0)) +"px";
  1649.   };
  1650. };
  1651. //2007-04-13
  1652. //[static method]
  1653. //op{interval, duration, trigger}
  1654. MzEffect.fold=function(element, op)
  1655. {
  1656.   element=MzElement.check(element); if(!element) return;
  1657.   op=System.extend({"interval":20, "duration":600},op||{});
  1658.   if(element.style.display=="none")
  1659.   {
  1660.     var ef=MzEffect.expand(element, {"interval":op.interval, "duration":op.duration});
  1661.     if(e=MzElement.check(op.trigger)) MzElement.addClassName(e, "expand");
  1662.   }
  1663.   else
  1664.   {
  1665.     var ef=MzEffect.collapse(element, {"interval":op.interval, "duration":op.duration});
  1666.     if(e=MzElement.check(op.trigger)) MzElement.removeClassName(e, "expand");
  1667.   }
  1668.   return ef;
  1669. };
  1670. //[static method]
  1671. MzEffect.opacity  =function(element, op){return new MzEffect.Opacity(element, op);};
  1672. MzEffect.moveBy   =function(element, x, y, op){return new MzEffect.MoveBy(element, x, y, op);};
  1673. MzEffect.moveTo   =function(element, op){return new MzEffect.MoveTo(element, op);};
  1674. MzEffect.highlight=function(element, op){return new MzEffect.Highlight(element, op);};
  1675. MzEffect.mask     =function(element, op){return new MzEffect.Mask(element, op);};
  1676. MzEffect.combo    =function(element, op){};
  1677. MzEffect.shake    =function(element, op){return new MzEffect.Shake(element, op);};
  1678. MzEffect.fadein   =function(element, op){return new MzEffect.Fadein(element, op);};
  1679. MzEffect.fadeout  =function(element, op){return new MzEffect.Fadeout(element, op);};
  1680. MzEffect.pulsate  =function(element, op){return new MzEffect.Pulsate(element, op);};
  1681. MzEffect.expand   =function(element, op){return new MzEffect.BlindDown(element, op);};
  1682. MzEffect.collapse =function(element, op){return new MzEffect.BlindUp(element, op);};
  1683. MzEffect.remove   =function(element, op){return new MzEffect.Fadeout(element, System.extend(op||{}, {onafterfinish: function(){MzElement.remove(element)}}));};
  1684. /*** MzBehavior.js ***/
  1685. /*---------------------------------------------------------------------------*
  1686. |  Subject:    Html Element behavior base
  1687. |  NameSpace:  System.Web.Forms.MzBehavior
  1688. |  Author:     meizz
  1689. |  Created:    2006-08-05
  1690. |  Version:    2007-05-21
  1691. *---------------------------------------------------------------------------*/
  1692. //Using("System.Web.Forms.MzEffect");
  1693. //op{interval, duration, dynamic}
  1694. function MzBehavior()
  1695. {
  1696.   this.element=MzElement.check(arguments[0]);
  1697.   if(!this.element) return; System.call(this);
  1698.   this.options=System.extend({
  1699.     interval: 20,   //milliseconds
  1700.     duration: 360,  //milliseconds
  1701.     dynamic:  true
  1702.   },arguments[1]||{}); var t;
  1703.   //prevent repeated behavior
  1704.   this.attributeName = "att_"+ this._className.replace(/W/g, "_");
  1705.   if(t=this.element.getAttribute(this.attributeName)) return;
  1706.   this.element.setAttribute(this.attributeName, this.hashCode, 0);
  1707.   if("function"==typeof(this.initialize)) this.initialize();
  1708. }
  1709. MzBehavior.Extends(System, "MzBehavior");
  1710. //op{color, beginColor, backgroundColor, backgroundImage}
  1711. MzBehavior.Highlight=function(obj,op)
  1712. {
  1713.   op=System.extend({backgroundColor: "#D4D0C8"}, op||{});
  1714.   MzBehavior.apply(this, [obj, op]);
  1715. };
  1716. t=MzBehavior.Highlight.Extends(MzBehavior, "MzBehavior.Highlight");
  1717. t.initialize=function()
  1718. {
  1719.   var me=this, op=me.options, obj=me.element;
  1720.   op._color = obj.style.color;
  1721.   op._backgroundColor = obj.style.backgroundColor;
  1722.   op._backgroundImage = obj.style.backgroundImage; if(!op.beginColor){
  1723.   op.beginColor=(obj.currentStyle||obj.style).backgroundColor;
  1724.   if(!op.beginColor || op.beginColor=="transparent")op.beginColor="#FFFFFF";}
  1725.   op.beginColor = MzEffect.formatColor(op.beginColor);
  1726.   this.mouseover=function()
  1727.   {
  1728.     if(me.outer) return;
  1729.     if(op.color) obj.style.color=op.color;
  1730.     if(op.dynamic)
  1731.     {
  1732.       MzEffect.highlight(obj, {
  1733.         interval:   op.interval,
  1734.         duration:   op.duration,
  1735.         beginColor: op.beginColor,
  1736.         endColor:   op.backgroundColor,
  1737.         finalColor: op.backgroundColor,
  1738.         onafterfinish: function(e)
  1739.         {
  1740.           if(op.color) obj.style.color=op.color;
  1741.           if(op.backgroundImage) obj.style.backgroundImage=op.backgroundImage;
  1742.         }});
  1743.     }
  1744.     else
  1745.     {
  1746.       if(op.color)
  1747.       obj.style.color=op.color;if(op.backgroundImage)
  1748.       obj.style.backgroundImage = op.backgroundImage;
  1749.       obj.style.backgroundColor = op.backgroundColor;
  1750.     }
  1751.     me.outer=true;
  1752.   };
  1753.   this.mouseout=function()
  1754.   {
  1755.     if(me.inner) return; obj.style.color=op._color;
  1756.     if(op.dynamic)
  1757.     {
  1758.       MzEffect.highlight(obj, {
  1759.         interval:   op.interval,
  1760.         duration:   op.duration,
  1761.         beginColor: op.backgroundColor,
  1762.         endColor:   op.beginColor,
  1763.         finalColor: op.beginColor,
  1764.         onafterfinish: function(e)
  1765.         {
  1766.           obj.style.color=op._color;if(op.backgroundImage)
  1767.           obj.style.backgroundImage = op._backgroundImage;
  1768.           obj.style.backgroundColor = op._backgroundColor;
  1769.         }});
  1770.     }
  1771.     else
  1772.     {
  1773.       obj.style.color=op._color;if(op.backgroundImage)
  1774.       obj.style.backgroundImage = op._backgroundImage;
  1775.       obj.style.backgroundColor = op._backgroundColor;
  1776.     }
  1777.     me.outer=false;
  1778.   };
  1779.   this.mouseoverHandler=function()
  1780.   {
  1781.     clearTimeout(me.timer); me.inner=true;
  1782.     setTimeout(me.mouseover, 1);
  1783.   };
  1784.   this.mouseoutHandler =function()
  1785.   {
  1786.     me.outer=!(me.inner=false);
  1787.     me.timer=setTimeout(me.mouseout, 1);
  1788.   };
  1789.   this.restore=function()
  1790.   {
  1791.     this.inner=false; this.mouseout();
  1792.     obj.removeAttribute(me.attributeName);
  1793.     obj.detachEvent("onmouseover",this.mouseoverHandler);
  1794.     obj.detachEvent("onmouseout", this.mouseoutHandler);
  1795.   };
  1796.   obj.attachEvent("onmouseover", this.mouseoverHandler);
  1797.   obj.attachEvent("onmouseout",  this.mouseoutHandler);
  1798. };
  1799. //op{dark,light,color,backgroundColor,backgroundImage,condition(e)}
  1800. MzBehavior.Emboss=function(element, op)
  1801. {
  1802.   op = System.extend({
  1803.     dark: "#808080",
  1804.     light:"#F5F5F5",
  1805.     borderWidth: 1,
  1806.     continual: false,
  1807.     condition: function(e){return true;}
  1808.   },op||{});
  1809.   MzBehavior.apply(this, [element, op]);
  1810. };
  1811. t=MzBehavior.Emboss.Extends(MzBehavior, "MzBehavior.Emboss");
  1812. t.initialize=function()
  1813. {
  1814.   var me=this, obj=this.element; op=this.options, bw = op.borderWidth;
  1815.   var borderStyle = bw==1 ? "solid " : "outset ";
  1816.   op._color = obj.style.color;
  1817.   op._backgroundColor = obj.style.backgroundColor;
  1818.   op._backgroundImage = obj.style.backgroundImage;
  1819.   this.especial=false;
  1820.   /MSIE (d+(.d+)?)/.test(navigator.userAgent);
  1821.   if(System.ie)this.especial=parseFloat(RegExp.$1)<7;
  1822.   this.especial = this.especial || window.opera;
  1823.   if(this.especial)
  1824.   {
  1825.     var es = obj.currentStyle || obj.style;
  1826.     var PT = ((op._PT=es.paddingTop)   =="auto"?0:parseInt(op._PT))+bw;
  1827.     var PL = ((op._PL=es.paddingLeft)  =="auto"?0:parseInt(op._PL))+bw;
  1828.     var PR = ((op._PR=es.paddingRight) =="auto"?0:parseInt(op._PR))+bw;
  1829.     var PB = ((op._PB=es.paddingBottom)=="auto"?0:parseInt(op._PB))+bw;
  1830.     var es = obj.style;
  1831.     this._pristine=function()
  1832.     {
  1833.       es.paddingTop =PT +"px"; es.paddingBottom=PB +"px";
  1834.       es.paddingLeft=PL +"px"; es.paddingRight =PR +"px";
  1835.       es.border="none";   es.color=op._color;
  1836.       es.backgroundColor=op._backgroundColor;
  1837.       es.backgroundImage=op._backgroundImage;
  1838.     };
  1839.     this.mouseover=function()
  1840.     {
  1841.       if(!op.condition(me)){me._pristine(); return;}
  1842.       es.borderTop = es.borderLeft    = borderStyle + bw +"px "+ op.light;
  1843.       es.borderRight = es.borderBottom= borderStyle + bw +"px "+ op.dark;
  1844.       es.paddingTop=(PT-bw) +"px"; es.paddingBottom=(PB-bw) +"px";
  1845.       es.paddingLeft=(PL-bw) +"px"; es.paddingRight=(PR-bw) +"px";
  1846.       if(op.color) es.color=op.color;
  1847.       if(op.backgroundColor) es.backgroundColor=op.backgroundColor;
  1848.       if(op.backgroundImage) es.backgroundImage=op.backgroundImage;
  1849.     };
  1850.     this.mousedown=function()
  1851.     {
  1852.       if(!op.condition(me)){me._pristine(); return;}
  1853.       es.borderTop = es.borderLeft = "inset "+ bw +"px "+ op.dark;
  1854.       es.borderRight=es.borderBottom="inset "+ bw +"px "+ op.light;
  1855.       es.paddingTop=(PT-bw) +"px"; es.paddingBottom=(PB-bw) +"px";
  1856.       es.paddingLeft=(PL-bw) +"px"; es.paddingRight=(PR-bw) +"px";
  1857.       if(op.color) es.color=op.color;
  1858.       if(op.backgroundColor) es.backgroundColor=op.backgroundColor;
  1859.       if(op.backgroundImage) es.backgroundImage=op.backgroundImage;
  1860.     };
  1861.   }
  1862.   else
  1863.   {
  1864.     var es=obj.style;
  1865.     op._BT=es.borderTop;   op._BL=es.borderLeft;
  1866.     op._BR=es.borderRight; op._BB=es.borderBottom;
  1867.     es.borderTop = es.borderLeft = "solid "+ bw +"px transparent";
  1868.     es.borderRight = es.borderBottom = "solid "+ bw +"px transparent";
  1869.     this._pristine=function()
  1870.     {
  1871.       es.borderTop = es.borderLeft = "solid "+ bw +"px transparent";
  1872.       es.borderRight = es.borderBottom = "solid "+ bw +"px transparent";
  1873.       es.color=op._color;
  1874.       es.backgroundColor=op._backgroundColor;
  1875.       es.backgroundImage=op._backgroundImage;
  1876.     };
  1877.     this.mouseover=function()
  1878.     {
  1879.       if(!op.condition(me)){me._pristine(); return;}
  1880.       es.borderTop = es.borderLeft     = borderStyle + bw +"px "+ op.light;
  1881.       es.borderRight = es.borderBottom = borderStyle + bw +"px "+ op.dark;
  1882.       if(op.color) es.color=op.color;
  1883.       if(op.backgroundColor) es.backgroundColor=op.backgroundColor;
  1884.       if(op.backgroundImage) es.backgroundImage=op.backgroundImage;
  1885.     };
  1886.     this.mousedown=function()
  1887.     {
  1888.       if(!op.condition(me)){me._pristine(); return;}
  1889.       es.borderTop = es.borderLeft = "inset "+ bw +"px "+ op.dark;
  1890.       es.borderRight = es.borderBottom = "inset "+ bw +"px "+ op.light;
  1891.       if(op.color) es.color=op.color;
  1892.       if(op.backgroundColor) es.backgroundColor=op.backgroundColor;
  1893.       if(op.backgroundImage) es.backgroundImage=op.backgroundImage;
  1894.     };
  1895.   }
  1896.   this._pristine();
  1897.   obj.attachEvent("onmouseover", this.mouseover);
  1898.   obj.attachEvent("onmouseout",  this._pristine);
  1899.   obj.attachEvent("onmousedown", this.mousedown);
  1900.   obj.attachEvent("onclick",     this.mouseover);
  1901.   this.restore=function()
  1902.   {
  1903.     if(this.especial)
  1904.     {
  1905.       es.paddingTop=op._PT; es.paddingBottom=op._PB;
  1906.       es.paddingLeft=op._PL; es.paddingRight=op._PR;
  1907.     }
  1908.     else
  1909.     {
  1910.       es.borderTop=op._BT; es.borderBottom=op._BB;
  1911.       es.borderLeft=op._BL; es.borderRight=op._BR;
  1912.     }
  1913.     obj.removeAttribute(me.attributeName);
  1914.     obj.detachEvent("onmouseover", this.mouseover);
  1915.     obj.detachEvent("onmouseout",  this._pristine);
  1916.     obj.detachEvent("onmousedown", this.mousedown);
  1917.     obj.detachEvent("onclick",     this.mouseover);
  1918.   };
  1919. };
  1920. //2006-11-29
  1921. //op{interval,duration,direction,dynamic,continual,binding,width,height,increased,controls,selectedClassName}
  1922. MzBehavior.Rotate=function(element, op)
  1923. {
  1924.   op = System.extend(
  1925.   {
  1926.     interval: 3000,
  1927.     duration: 2000,
  1928.     continual: true,
  1929.     direction: "random",
  1930.     binding: "onmouseover"
  1931.   },op||{});
  1932.   MzBehavior.apply(this, [element, op]);
  1933. };
  1934. MzBehavior.Rotate.Extends(MzBehavior, "MzBehavior.Rotate");
  1935. MzBehavior.Rotate.prototype.initialize=function()
  1936. {
  1937.   var me=this, obj=me.element, op=me.options;
  1938.   me.interval = op.duration + op.interval;
  1939.   me.nodes = obj.children;
  1940.   me.timer = null;
  1941.   me.activeIndex = 1;
  1942.   me.currentIndex = 0;
  1943.   obj.style.position = "relative"; //20061208
  1944.   if (me.nodes.length<=1) return; n=op.controls;
  1945.   for(var i=1; i<me.nodes.length; i++) MzElement.hide(me.nodes[i]);
  1946.   if("undefined"!=typeof(n)&& n.length&&"object"==typeof(n[0])&&n[0].tagName)
  1947.   {
  1948.     System.call(me);
  1949.     for(var i=0;i<n.length;i++)if(n[i].tagName)
  1950.     {
  1951.       var f=new Function("Instance('"+ me.hashCode +"').focus("+ i +")");
  1952.       n[i].onclick = f; if(op.binding) n[i][op.binding] = f;
  1953.     }
  1954.     n[me.currentIndex].className=op.selectedClassName||"selected";
  1955.   }
  1956.   if(this.options.continual) me.timer=
  1957.   setTimeout(function(){me.change();}, me.interval);
  1958.   setTimeout(function()
  1959.   {
  1960.     var w = parseFloat(op.width);
  1961.     var h = parseFloat(op.height);
  1962.     op.width = op.width ? (isNaN(w) ? "" : w) : "";
  1963.     op.height= op.height? (isNaN(h) ? "" : h) : "";
  1964.     w=parseFloat(obj.currentStyle.width);
  1965.     h=parseFloat(obj.currentStyle.height);
  1966.     op.width = op.width || (isNaN(w) ? "" : w);
  1967.     op.height= op.height|| (isNaN(h) ? "" : h);
  1968.     op.width = op.width || me.nodes[0].offsetWidth;
  1969.     op.height= op.height|| me.nodes[0].offsetHeight;
  1970.     obj.style.width = op.width +"px";
  1971.     obj.style.height= op.height+"px";
  1972.     obj.style.overflow = "hidden";
  1973.   }, 1);
  1974. };
  1975. MzBehavior.Rotate.prototype.change=function()
  1976. {
  1977.   if (this.dispatchEvent(new System.Event("onchange"))) this.mask();
  1978.   var me = this, op=me.options, n=op.controls;
  1979.   if("undefined"!=typeof(n)&& n.length&&"object"==typeof(n[0])&&n[0].tagName)
  1980.   {
  1981.     for(var i=0; i<n.length; i++) n[i].className = "";
  1982.     n[me.currentIndex].className= op.selectedClassName || "selected";
  1983.   }
  1984.   if(this.options.continual) this.timer=
  1985.   setTimeout(function(){me.change();}, me.interval);
  1986. };
  1987. MzBehavior.Rotate.prototype.mask=function()
  1988. {
  1989.   var me=this, L=me.nodes.length, I=me.currentIndex, N=me.activeIndex;
  1990.   this.currentIndex = N;  this.activeIndex = N+1>=L ? 0 : N+1;
  1991.   if(!this.options.dynamic)
  1992.   {
  1993.     for(var i=0;i<this.nodes.length;i++)MzElement.hide(this.nodes[i]);
  1994.     MzElement.show(this.nodes[N]); return;
  1995.   }
  1996.   if("boolean"==typeof me.options.increased) var B=me.options.increased; else
  1997.   var B  = Math.ceil(Math.random()* 1000) % 2 == 0; //true: strengthen
  1998.   var maskIndex = B ? N : I, oldIndex  = B ? I : N;
  1999.   MzElement.show(me.nodes[I]);
  2000.   var region = me.nodes[maskIndex]; MzElement.show(region);
  2001.   var originalWidth = region.style.width || "";
  2002.   var originalHeight= region.style.height|| "";
  2003.   var ow=region.offsetWidth, oh=region.offsetHeight;
  2004.   function mm(s){var n=parseFloat(region[s]); return isNaN(n)?0:n;}
  2005.   if(!System.ie) //hack for moz opera
  2006.   {
  2007.     ow -= mm("padding-left");
  2008.     ow -= mm("padding-right");
  2009.     ow -= mm("border-left-width");
  2010.     ow -= mm("border-right-width");
  2011.     oh -= mm("padding-top");
  2012.     oh -= mm("padding-bottom");
  2013.     oh -= mm("border-top-width");
  2014.     oh -= mm("border-bottom-width");
  2015.   }
  2016.   with(region.style)
  2017.   {
  2018.     zIndex = 1;
  2019.     top = left= "0px";
  2020.     position = "absolute";
  2021.     width = ow +"px";
  2022.     height = oh +"px";
  2023.   }
  2024.   MzElement.show(me.nodes[oldIndex]);
  2025.   this.effect = MzEffect.mask(region, 
  2026.   {
  2027.     trend: B,
  2028.     duration: me.options.duration,
  2029.     direction: me.options.direction,
  2030.     onafterfinish: function(e)
  2031.     {
  2032.       if(B) MzElement.hide(me.nodes[oldIndex]);
  2033.       with(region.style)
  2034.       {
  2035.         position="";zIndex="";
  2036.         top = left = "";
  2037.         width = originalWidth;
  2038.         height = originalHeight;
  2039.       }
  2040.     }
  2041.   });
  2042. };
  2043. MzBehavior.Rotate.prototype.focus=function(n)
  2044. {
  2045.   var L=this.nodes.length,I=this.currentIndex;
  2046.   if(n>=L) n=L-1; if(L<=1 || n==I) return;
  2047.   for(var i=0;i<this.nodes.length; i++) MzElement.hide(this.nodes[i]);
  2048.   clearTimeout(this.timer);
  2049.   if(this.effect)this.effect.end();
  2050.   this.activeIndex=n<0?0:n;this.change();
  2051. };
  2052. //2006-11-29
  2053. //op{interval, duration, direction}
  2054. MzBehavior.Marquee=function(element, op)
  2055. {
  2056.   op = System.extend(
  2057.   {
  2058.     interval: 3000,
  2059.     duration: 2000,
  2060.     direction: "random"
  2061.   },op||{});
  2062.   MzBehavior.apply(this, [element, op]);
  2063. };
  2064. MzBehavior.Marquee.Extends(MzBehavior, "MzBehavior.Marquee");
  2065. MzBehavior.Marquee.prototype.initialize=function()
  2066. {
  2067.   var me=this, obj=me.element, op=me.options, a=obj.childNodes;
  2068.   obj.style.overflow = "hidden";
  2069.   var div = document.createElement("DIV");
  2070.   obj.insertBefore(div, obj.firstChild);
  2071.   div.style.backgroundColor="green";
  2072.   for(var i=a.length-1; i>=0; i--) div.insertBefore(a[i], div.firstChild);
  2073. };
  2074. //20070514
  2075. //op{}
  2076. MzBehavior.Fixed=function()
  2077. {
  2078. };
  2079. //20070514
  2080. //op{}
  2081. MzBehavior.LockWindow=function(bool)
  2082. {
  2083. };
  2084. //2007-05-21
  2085. //op{trigger}
  2086. MzBehavior.Drag=function(element, op)
  2087. {
  2088.   if(!MzBehavior.dragLayer) MzBehavior.Drag.createLayer();
  2089.   MzBehavior.apply(this, [element, op]);
  2090. }
  2091. MzBehavior.Drag.Extends(MzBehavior, "MzBehavior.Drag");
  2092. MzBehavior.Drag.prototype.initialize=function()
  2093. {
  2094.   var me=this, obj=me.element, op=me.options, layer=MzBehavior.dragLayer;
  2095.   if("undefined"!=typeof(op.trigger))op.trigger=MzElement.check(op.trigger);
  2096.   if("object"!=typeof(op.trigger) || !op.trigger.tagName) op.trigger=obj;
  2097.   this.mouseupHandler=function()
  2098.   {
  2099.     MzBehavior.Drag.mouseupHandler();
  2100.     document.detachEvent("onmouseup", me.mouseupHandler);
  2101.     document.detachEvent("onmousemove", MzBehavior.Drag.mousemoveHandler);
  2102.     if(me.options.onfinish) me.options.onfinish(me);
  2103.   };
  2104.   this.mousedownHandler=function(e)
  2105.   {
  2106.     if(System.disabledList[me.hashCode]) return;
  2107.     e = window.event || e; var body=MzElement.body();
  2108.     var x = (e.pageX || e.clientX) + body.scrollLeft;
  2109.     var y = (e.pageY || e.clientY) + body.scrollTop;
  2110.     var xy = MzElement.realOffset(obj);
  2111.     MzBehavior.Drag.offsetX = x - xy.x;
  2112.     MzBehavior.Drag.offsetY = y - xy.y;
  2113.     layer.style.cursor = "move";
  2114.     layer.style.left = xy.x +"px";
  2115.     layer.style.top  = xy.y +"px";
  2116.     layer.style.width  = obj.offsetWidth  +"px";
  2117.     layer.style.height = obj.offsetHeight +"px";
  2118.     MzElement.show(layer);
  2119.     MzBehavior.Drag.instance=me;
  2120.     if(layer.setCapture) layer.setCapture(); else
  2121.     if(window.captureEvents)window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
  2122.     document.attachEvent("onmousemove", MzBehavior.Drag.mousemoveHandler);
  2123.     document.attachEvent("onmouseup",   me.mouseupHandler);
  2124.   }
  2125.   op.trigger.attachEvent("onmousedown", this.mousedownHandler);
  2126. }
  2127. MzBehavior.Drag.prototype.restore=function()
  2128. {
  2129.   this.element.removeAttribute(this.attributeName);
  2130.   this.element.detachEvent("onmousedown", this.mousedownHandler);
  2131.   this.dispose();
  2132. };
  2133. MzBehavior.Drag.createLayer=function()
  2134. {
  2135.   if(MzBehavior.dragLayer && MzBehavior.dragLayer.tagName) return;
  2136.   var layer=document.createElement("DIV");
  2137.   layer.id="MzBehaviorDragLayer";
  2138.   with(layer.style)
  2139.   {
  2140.     zIndex = System.zIndexBase.dragLayer;
  2141.     border = "none";
  2142.     cursor = "move";
  2143.     display = "none";
  2144.     position = "absolute";
  2145.     margin = padding = "0px";
  2146.     width = height = "20px";
  2147.     backgroundImage = "url("+ System.resourcePath +"/blank.gif)";
  2148.   }
  2149.   var str = new Array(); var border = "3px";
  2150.   str.push("<table border='0' cellpadding='0' cellspacing='0' style='");
  2151.   str.push("width:100%; height:100%; {0} repeat-x left bottom'><tr>");
  2152.   str.push("<td style='{0} repeat-y left top; {1}'>&nbsp;</td>");
  2153.   str.push("<td style='{0} repeat-x left top;'>&nbsp;</td>");
  2154.   str.push("<td style='{0} repeat-y right top; {1}'>&nbsp;</td>");
  2155.   str.push("</tr></table>"); str=str.join("");
  2156.   layer.innerHTML = str.format("background:url("+ System.resourcePath
  2157.     +"/dashed.gif)", "width:2px; font-size:1px;");
  2158.   document.body.insertBefore(layer, document.body.firstChild);
  2159.   layer = null;
  2160.   MzBehavior.dragLayer=MzElement.check("MzBehaviorDragLayer");
  2161. };
  2162. MzBehavior.Drag.mousemoveHandler=function(e)
  2163. {
  2164.   var SLT = MzElement.body();
  2165.   var D=MzBehavior.Drag, layer=MzBehavior.dragLayer;
  2166.   var BSL = SLT.scrollLeft, BST = SLT.scrollTop;
  2167.   var BCW = SLT.clientWidth, BCH = SLT.clientHeight;
  2168.   e = window.event || e;
  2169.   var  x = (e.pageX || e.clientX) + BSL;
  2170.   var  y = (e.pageY || e.clientY) + BST;
  2171.   D.left= Math.min(x - D.offsetX, BSL+BCW-layer.offsetWidth);
  2172.   D.top = Math.min(y - D.offsetY, BST+BCH-layer.offsetHeight);
  2173.   D.left= Math.max(0+BSL,  D.left);
  2174.   D.top = Math.max(0+BST,  D.top);
  2175.   layer.style.top  = D.top +"px";
  2176.   layer.style.left = D.left+"px";
  2177. };
  2178. MzBehavior.Drag.mouseupHandler=function()
  2179. {
  2180.   var layer = MzBehavior.dragLayer, e=MzBehavior.Drag.instance.element;
  2181.   e.style.left = layer.style.left;  e.style.top  = layer.style.top;
  2182.   if (layer.releaseCapture) layer.releaseCapture(); else
  2183.   if(window.captureEvents) window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
  2184.   MzElement.hide(layer);
  2185. };
  2186. //[static method]
  2187. MzBehavior.highlight=function(e, op){return new MzBehavior.Highlight(e, op);}
  2188. MzBehavior.emboss   =function(e, op){return new MzBehavior.Emboss(e, op);}
  2189. MzBehavior.rotate   =function(e, op){return new MzBehavior.Rotate(e, op);}
  2190. MzBehavior.marquee  =function(e, op){return new MzBehavior.Marquee(e, op);}
  2191. MzBehavior.fixed    =function(e, op){return new MzBehavior.Fixed(e, op);}
  2192. MzBehavior.drag     =function(e, op){return new MzBehavior.Drag(e, op);}
  2193. MzBehavior.lockWindow=function(bool){return     MzBehavior.LockWindow(bool);}
  2194. /*** MzRotateImage.js ***/
  2195. /*---------------------------------------------------------------------------*
  2196. |  Subject:    Rotate AD
  2197. |  NameSpace:  System.Web.UI.WebControls.MzRotateImage
  2198. |  Author:     meizz
  2199. |  Created:    2006-11-11
  2200. |  Version:    2006-12-06
  2201. *---------------------------------------------------------------------------*/
  2202. //Using("System.Data.MzDataProvider");
  2203. //Using("System.Web.Forms.MzBehavior");
  2204. //node{url, target, summary, img, alt}
  2205. function MzRotateImage()
  2206. {
  2207.   MzDataProvider.call(this); this.stateChangeHandle(1);
  2208.   this.width = 280;
  2209.   this.height= 187;
  2210.   this.timer = null;
  2211.   this.interval = 3000;
  2212.   this.duration = 2000;
  2213.   this.activeIndex = 1;
  2214.   this.currentIndex = 0;
  2215.   this.floatControlBar = false;
  2216.   this.useFilter = System.ie && MzBrowser.version>=5.5;
  2217. }
  2218. MzRotateImage.Extends(MzDataProvider, "MzRotateImage");
  2219. //System.loadCssFile(System.resourcePath +"/MzRotateImage.css", "MzRotateImage_CSS");
  2220. MzRotateImage.prototype.render=function()
  2221. {
  2222.   this.dataInit();  this.images=new Array();
  2223.   var d = this.nodes = this.rootNode.childNodes;
  2224.   for(var i=0; i<d.length; i++)
  2225.   {
  2226.     this.images[i] = new Image();
  2227.     this.images[i].src = d[i].get("img");
  2228.   }
  2229.   var id=this.id="MzRotateImage_"+this.hashCode,s=[];
  2230.   var width  = this.width  = parseInt(this.width);
  2231.   var height = this.height = parseInt(this.height);
  2232.   s.push("<div id='"+id+"' style='width:"+width+"px;' class='MzRotateImage'>");
  2233.   s.push("<div id='"+id+"_ImageBox' class='MzRotateImage_ImageBox' style='height:"+ height +"px'>");
  2234.   if(this.useFilter) { if(d.length>0) //filter: revealTrans
  2235.   {
  2236.     var alt = d[0].get("alt"), src = this.images[0].src;
  2237.    // var titlecontent = ;
  2238.     s.push("<a href='#'><img alt='"+ alt +"' src='"+src+"' ");if(d.length>1)
  2239.     s.push("style='filter:revealTrans(duration="+(this.duration/1000)+")'");
  2240.     s.push(" width="+width+" height="+height+" id='"+ id +"_img'  /></a>");}
  2241.   }
  2242.   else
  2243.   { 
  2244.     for(i=0; i<d.length; i++) //new MzBehavior.Rotate()
  2245.     {
  2246.         var alt2=d[i].get("alt");
  2247.         s.push("<div id='"+id+"_item_"+i+"' style='width: "+width+"px;");
  2248.         if (i>0) s.push(" display: none;");
  2249.         s.push(" height: "+ height +"px; overflow: hidden;'>");
  2250.         s.push("<a href='"+ (d[i].get("url") || "#")+"'");
  2251.         s.push(" target='"+ (d[i].get("target") || "_self") +"'>");
  2252.         s.push("<img alt='"+(d[i].get("alt") || "") +"'");
  2253.         s.push(" width="+width+" height="+height+"  src='"+ this.images[i].src +"'  /></a></div>");
  2254.         //s.push(" width=320 height=187 src='"+ this.images[i].src +"'  /></a><h3>"+ (d[i].get("titlecontent") || "") +"</h3></div>");
  2255.      }
  2256.   }
  2257.   s.push("</div><div class="active" style="display:block"><h3><span id="titlecontent">"+d[0].get("titlecontent")+"</span></h3></DIV><div style='width: "+ width +"px; ");
  2258.   s.push((this.floatControlBar?"margin-top: -16px":"") +"' ");
  2259.   s.push(" id='"+id+"_ControlBar' class='MzRotateImage_ControlBar'>");
  2260.   for(i=0;i<d.length;i++)s.push("<input type='button' value='"+(i+1)+"'/>");
  2261.   s.push("</div>"); s.push("</div>"); s = s.join("");
  2262.   this.stateChangeHandle(2); this._onload();
  2263.   return s;
  2264. };
  2265. MzRotateImage.prototype.stateChangeHandle=function(n)
  2266. {
  2267.   this.readyState = n||0;
  2268.   this.dispatchEvent(new System.Event("onreadystatechange"));
  2269. };
  2270. MzRotateImage.prototype._onload=function()
  2271. {
  2272.   var me=this;
  2273.   if(MzElement.check(this.id))
  2274.   {
  2275.     this.stateChangeHandle(4);
  2276.     
  2277.     if(this.useFilter) this.timer=
  2278.       setTimeout(function(){me.filter();}, me.interval+me.duration);
  2279.     else
  2280.     {
  2281.        
  2282.       this._rotate = new MzBehavior.Rotate(me.id +"_ImageBox",
  2283.         {interval:me.interval,duration:me.duration});
  2284.       this._rotate.addEventListeners("onchange", function(e)
  2285.       {
  2286.       
  2287.         me.activeIndex  = e.target.activeIndex;
  2288.         me.currentIndex = e.target.currentIndex;
  2289.         document.getElementById('titlecontent').innerHTML = me.nodes[me.activeIndex].get("titlecontent");
  2290.       
  2291.         e= new System.Event("onchange"); e.target=me;
  2292.         me.dispatchEvent(e);
  2293.        
  2294.  
  2295.       });
  2296.     }
  2297.     
  2298.     var A = MzElement.check(this.id+"_ControlBar").getElementsByTagName("INPUT");
  2299.     A[this.currentIndex].className = "active";
  2300.     this.addEventListeners("onchange", function(e)
  2301.     {
  2302.       if(A.length > 1)
  2303.       {
  2304.          for(var i=0; i<A.length; i++)
  2305.          {  
  2306.             A[i].className="";
  2307.          }
  2308.       
  2309.          A[e.target.activeIndex].className = "active";
  2310.       }
  2311.     });
  2312.     for(var i=0; i<A.length; i++)
  2313.     {
  2314.       var f=new Function("Instance('"+ this.hashCode +"').focus("+ i +")");
  2315.       A[i].onmouseover = f; A[i].onclick = f;
  2316.     }
  2317.   }
  2318.   else setTimeout(function(){me._onload();}, 10);
  2319. };
  2320. MzRotateImage.prototype.focus=function(n)
  2321. {
  2322.   clearTimeout(this.timer);
  2323.   if(this.useFilter){this.activeIndex=n; this.filter();}
  2324.   else if(this._rotate) this._rotate.focus(n);
  2325. };
  2326. MzRotateImage.prototype.filter=function()
  2327. {
  2328.   var me = this;
  2329.   if(me.dispatchEvent(new System.Event("onchange")))
  2330.   {
  2331.     var img; 
  2332.     if(img=MzElement.check(me.id +"_img"))
  2333.     {
  2334.         if(me.nodes.length > 1)
  2335.         {
  2336.               img.filters.revealTrans.Transition=23;
  2337.               img.filters.revealTrans.apply();
  2338.     
  2339.               var a = img.parentNode;
  2340.               var N=me.activeIndex;
  2341.               this.currentIndex = N;
  2342.               this.activeIndex = N+1>=me.nodes.length ? 0 : N+1;
  2343.               a.href = (me.nodes[N].get("url") || "#");
  2344.               a.target = (me.nodes[N].get("target") || "_self");
  2345.               img.src=me.images[N].src;
  2346.               img.alt=me.nodes[N].get("alt");
  2347.               img.width=me.width;//imgwidth;
  2348.               img.height=me.height;//imgheight;
  2349.               document.getElementById('titlecontent').innerHTML = me.nodes[N].get("titlecontent");
  2350.               //a.parentNode.innerHTML = a.parentNode.innerHTML + ;
  2351.               // alert(me.nodes[N].get("text"));
  2352.               img.filters.revealTrans.play();
  2353.         }
  2354.     }
  2355.   }
  2356.   this.timer=setTimeout(function(){me.filter();}, me.interval+me.duration);
  2357. };
  2358. window.onerror=function(){return false}