4adb0d5187fb62b48af514e3b27cd30be7ec7dd0.svn-base 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. /**
  2. * jQuery EasyUI 1.3.6
  3. *
  4. * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved.
  5. *
  6. * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt
  7. * To use it on other terms please contact us at info@jeasyui.com
  8. *
  9. */
  10. (function($){
  11. function _1(_2,_3){
  12. var _4=$.data(_2,"window").options;
  13. if(_3){
  14. $.extend(_4,_3);
  15. }
  16. $(_2).panel("resize",_4);
  17. };
  18. function _5(_6,_7){
  19. var _8=$.data(_6,"window");
  20. if(_7){
  21. if(_7.left!=null){
  22. _8.options.left=_7.left;
  23. }
  24. if(_7.top!=null){
  25. _8.options.top=_7.top;
  26. }
  27. }
  28. $(_6).panel("move",_8.options);
  29. if(_8.shadow){
  30. _8.shadow.css({left:_8.options.left,top:_8.options.top});
  31. }
  32. };
  33. function _9(_a,_b){
  34. var _c=$.data(_a,"window");
  35. var _d=_c.options;
  36. var _e=_d.width;
  37. if(isNaN(_e)){
  38. _e=_c.window._outerWidth();
  39. }
  40. if(_d.inline){
  41. var _f=_c.window.parent();
  42. _d.left=(_f.width()-_e)/2+_f.scrollLeft();
  43. }else{
  44. _d.left=($(window)._outerWidth()-_e)/2+$(document).scrollLeft();
  45. }
  46. if(_b){
  47. _5(_a);
  48. }
  49. };
  50. function _10(_11,_12){
  51. var _13=$.data(_11,"window");
  52. var _14=_13.options;
  53. var _15=_14.height;
  54. if(isNaN(_15)){
  55. _15=_13.window._outerHeight();
  56. }
  57. if(_14.inline){
  58. var _16=_13.window.parent();
  59. _14.top=(_16.height()-_15)/2+_16.scrollTop();
  60. }else{
  61. _14.top=($(window)._outerHeight()-_15)/2+$(document).scrollTop();
  62. }
  63. if(_12){
  64. _5(_11);
  65. }
  66. };
  67. function _17(_18){
  68. var _19=$.data(_18,"window");
  69. var _1a=_19.options.closed;
  70. var win=$(_18).panel($.extend({},_19.options,{border:false,doSize:true,closed:true,cls:"window",headerCls:"window-header",bodyCls:"window-body "+(_19.options.noheader?"window-body-noheader":""),onBeforeDestroy:function(){
  71. if(_19.options.onBeforeDestroy.call(_18)==false){
  72. return false;
  73. }
  74. if(_19.shadow){
  75. _19.shadow.remove();
  76. }
  77. if(_19.mask){
  78. _19.mask.remove();
  79. }
  80. },onClose:function(){
  81. if(_19.shadow){
  82. _19.shadow.hide();
  83. }
  84. if(_19.mask){
  85. _19.mask.hide();
  86. }
  87. _19.options.onClose.call(_18);
  88. },onOpen:function(){
  89. if(_19.mask){
  90. _19.mask.css({display:"block",zIndex:$.fn.window.defaults.zIndex++});
  91. }
  92. if(_19.shadow){
  93. _19.shadow.css({display:"block",zIndex:$.fn.window.defaults.zIndex++,left:_19.options.left,top:_19.options.top,width:_19.window._outerWidth(),height:_19.window._outerHeight()});
  94. }
  95. _19.window.css("z-index",$.fn.window.defaults.zIndex++);
  96. _19.options.onOpen.call(_18);
  97. },onResize:function(_1b,_1c){
  98. var _1d=$(this).panel("options");
  99. $.extend(_19.options,{width:_1d.width,height:_1d.height,left:_1d.left,top:_1d.top});
  100. if(_19.shadow){
  101. _19.shadow.css({left:_19.options.left,top:_19.options.top,width:_19.window._outerWidth(),height:_19.window._outerHeight()});
  102. }
  103. _19.options.onResize.call(_18,_1b,_1c);
  104. },onMinimize:function(){
  105. if(_19.shadow){
  106. _19.shadow.hide();
  107. }
  108. if(_19.mask){
  109. _19.mask.hide();
  110. }
  111. _19.options.onMinimize.call(_18);
  112. },onBeforeCollapse:function(){
  113. if(_19.options.onBeforeCollapse.call(_18)==false){
  114. return false;
  115. }
  116. if(_19.shadow){
  117. _19.shadow.hide();
  118. }
  119. },onExpand:function(){
  120. if(_19.shadow){
  121. _19.shadow.show();
  122. }
  123. _19.options.onExpand.call(_18);
  124. }}));
  125. _19.window=win.panel("panel");
  126. if(_19.mask){
  127. _19.mask.remove();
  128. }
  129. if(_19.options.modal==true){
  130. _19.mask=$("<div class=\"window-mask\"></div>").insertAfter(_19.window);
  131. _19.mask.css({width:(_19.options.inline?_19.mask.parent().width():_1e().width),height:(_19.options.inline?_19.mask.parent().height():_1e().height),display:"none"});
  132. }
  133. if(_19.shadow){
  134. _19.shadow.remove();
  135. }
  136. if(_19.options.shadow==true){
  137. _19.shadow=$("<div class=\"window-shadow\"></div>").insertAfter(_19.window);
  138. _19.shadow.css({display:"none"});
  139. }
  140. if(_19.options.left==null){
  141. _9(_18);
  142. }
  143. if(_19.options.top==null){
  144. _10(_18);
  145. }
  146. _5(_18);
  147. if(!_1a){
  148. win.window("open");
  149. }
  150. };
  151. function _1f(_20){
  152. var _21=$.data(_20,"window");
  153. _21.window.draggable({handle:">div.panel-header>div.panel-title",disabled:_21.options.draggable==false,onStartDrag:function(e){
  154. if(_21.mask){
  155. _21.mask.css("z-index",$.fn.window.defaults.zIndex++);
  156. }
  157. if(_21.shadow){
  158. _21.shadow.css("z-index",$.fn.window.defaults.zIndex++);
  159. }
  160. _21.window.css("z-index",$.fn.window.defaults.zIndex++);
  161. if(!_21.proxy){
  162. _21.proxy=$("<div class=\"window-proxy\"></div>").insertAfter(_21.window);
  163. }
  164. _21.proxy.css({display:"none",zIndex:$.fn.window.defaults.zIndex++,left:e.data.left,top:e.data.top});
  165. _21.proxy._outerWidth(_21.window._outerWidth());
  166. _21.proxy._outerHeight(_21.window._outerHeight());
  167. setTimeout(function(){
  168. if(_21.proxy){
  169. _21.proxy.show();
  170. }
  171. },500);
  172. },onDrag:function(e){
  173. _21.proxy.css({display:"block",left:e.data.left,top:e.data.top});
  174. return false;
  175. },onStopDrag:function(e){
  176. _21.options.left=e.data.left;
  177. _21.options.top=e.data.top;
  178. $(_20).window("move");
  179. _21.proxy.remove();
  180. _21.proxy=null;
  181. }});
  182. _21.window.resizable({disabled:_21.options.resizable==false,onStartResize:function(e){
  183. _21.pmask=$("<div class=\"window-proxy-mask\"></div>").insertAfter(_21.window);
  184. _21.pmask.css({zIndex:$.fn.window.defaults.zIndex++,left:e.data.left,top:e.data.top,width:_21.window._outerWidth(),height:_21.window._outerHeight()});
  185. if(!_21.proxy){
  186. _21.proxy=$("<div class=\"window-proxy\"></div>").insertAfter(_21.window);
  187. }
  188. _21.proxy.css({zIndex:$.fn.window.defaults.zIndex++,left:e.data.left,top:e.data.top});
  189. _21.proxy._outerWidth(e.data.width);
  190. _21.proxy._outerHeight(e.data.height);
  191. },onResize:function(e){
  192. _21.proxy.css({left:e.data.left,top:e.data.top});
  193. _21.proxy._outerWidth(e.data.width);
  194. _21.proxy._outerHeight(e.data.height);
  195. return false;
  196. },onStopResize:function(e){
  197. $.extend(_21.options,{left:e.data.left,top:e.data.top,width:e.data.width,height:e.data.height});
  198. _1(_20);
  199. _21.pmask.remove();
  200. _21.pmask=null;
  201. _21.proxy.remove();
  202. _21.proxy=null;
  203. }});
  204. };
  205. function _1e(){
  206. if(document.compatMode=="BackCompat"){
  207. return {width:Math.max(document.body.scrollWidth,document.body.clientWidth),height:Math.max(document.body.scrollHeight,document.body.clientHeight)};
  208. }else{
  209. return {width:Math.max(document.documentElement.scrollWidth,document.documentElement.clientWidth),height:Math.max(document.documentElement.scrollHeight,document.documentElement.clientHeight)};
  210. }
  211. };
  212. $(window).resize(function(){
  213. $("body>div.window-mask").css({width:$(window)._outerWidth(),height:$(window)._outerHeight()});
  214. setTimeout(function(){
  215. $("body>div.window-mask").css({width:_1e().width,height:_1e().height});
  216. },50);
  217. });
  218. $.fn.window=function(_22,_23){
  219. if(typeof _22=="string"){
  220. var _24=$.fn.window.methods[_22];
  221. if(_24){
  222. return _24(this,_23);
  223. }else{
  224. return this.panel(_22,_23);
  225. }
  226. }
  227. _22=_22||{};
  228. return this.each(function(){
  229. var _25=$.data(this,"window");
  230. if(_25){
  231. $.extend(_25.options,_22);
  232. }else{
  233. _25=$.data(this,"window",{options:$.extend({},$.fn.window.defaults,$.fn.window.parseOptions(this),_22)});
  234. if(!_25.options.inline){
  235. document.body.appendChild(this);
  236. }
  237. }
  238. _17(this);
  239. _1f(this);
  240. });
  241. };
  242. $.fn.window.methods={options:function(jq){
  243. var _26=jq.panel("options");
  244. var _27=$.data(jq[0],"window").options;
  245. return $.extend(_27,{closed:_26.closed,collapsed:_26.collapsed,minimized:_26.minimized,maximized:_26.maximized});
  246. },window:function(jq){
  247. return $.data(jq[0],"window").window;
  248. },resize:function(jq,_28){
  249. return jq.each(function(){
  250. _1(this,_28);
  251. });
  252. },move:function(jq,_29){
  253. return jq.each(function(){
  254. _5(this,_29);
  255. });
  256. },hcenter:function(jq){
  257. return jq.each(function(){
  258. _9(this,true);
  259. });
  260. },vcenter:function(jq){
  261. return jq.each(function(){
  262. _10(this,true);
  263. });
  264. },center:function(jq){
  265. return jq.each(function(){
  266. _9(this);
  267. _10(this);
  268. _5(this);
  269. });
  270. }};
  271. $.fn.window.parseOptions=function(_2a){
  272. return $.extend({},$.fn.panel.parseOptions(_2a),$.parser.parseOptions(_2a,[{draggable:"boolean",resizable:"boolean",shadow:"boolean",modal:"boolean",inline:"boolean"}]));
  273. };
  274. $.fn.window.defaults=$.extend({},$.fn.panel.defaults,{zIndex:9000,draggable:true,resizable:true,shadow:true,modal:false,inline:false,title:"New Window",collapsible:true,minimizable:true,maximizable:true,closable:true,closed:false});
  275. })(jQuery);