/* * Kendo UI v2011.3.1407 (http://kendoui.com) * Copyright 2012 Telerik AD. All rights reserved. * * Kendo UI commercial licenses may be obtained at http://kendoui.com/license. * If you do not own a commercial license, this file shall be governed by the * GNU General Public License (GPL) version 3. For GPL requirements, please * review: http://www.gnu.org/copyleft/gpl.html */ (function(a,b){function Q(a){var b=this;b.owner=a,b._draggable=new e(a.wrapper,{filter:o,group:a.wrapper.id+"-moving",dragstart:h(b.dragstart,b),drag:h(b.drag,b),dragend:h(b.dragend,b)})}function P(a){var b=this;b.owner=a,b._draggable=new e(a.wrapper,{filter:q,group:a.wrapper.id+"-resizing",dragstart:h(b.dragstart,b),drag:h(b.drag,b),dragend:h(b.dragend,b)})}function O(b,c){var d=a(b),e;c.scrollable===!1&&d.attr("style","overflow:hidden;"),c.iframe&&d.html(m.contentFrame(c)),e=a(m.wrapper(c)),c.title!==!1&&e.append(m.titlebar(i(m,c))),e.append(d).appendTo(l)}function M(a,b){return function(){var a=this,c=a.wrapper,d=c[0].style,e=a.options;if(!e.isMaximized&&!e.isMinimized){a.restoreOptions={width:d.width,height:d.height},c.find(q).hide().end().find(I).parent().hide().eq(0).before(m.action({name:"Restore"})),b.call(a);return a}}}function L(){return a(n).filter(function(){var b=a(this);return b.is(v)&&K(b).options.modal})}function K(a){return a.children(p).data("kendoWindow")}var c=window.kendo,d=c.ui.Widget,e=c.ui.Draggable,f=c.fx,g=a.isPlainObject,h=a.proxy,i=a.extend,j=a.each,k=c.template,l,m,n=".k-window",o=".k-window-titlebar",p=".k-window-content",q=".k-resize-handle",r=".k-overlay",s="k-content-frame",t="k-loading",u="k-state-hover",v=":visible",w="cursor",x="open",y="activate",z="deactivate",A="close",B="refresh",C="resize",D="dragstart",E="dragend",F="error",G="overflow",H="zIndex",I=".k-window-actions .k-minimize,.k-window-actions .k-maximize",J=c.isLocalUrl,N=d.extend({init:function(b,c){var e=this,f,i,p,q=!1,r;l=document.body,d.fn.init.call(e,b,c),c=e.options,b=e.element,r=c.content,c.animation===!1&&(c.animation={open:{show:!0,effects:{}},close:{hide:!0,effects:{}}}),g(r)||(r=c.content={url:r}),typeof c.iframe=="undefined"&&(c.iframe=r.url&&!J(r.url));if(!b.parent().is("body"))if(b.is(v))p=b.offset(),q=!0;else{var s=b.css("visibility"),t=b.css("display");b.css({visibility:"hidden",display:""}),p=b.offset(),b.css({visibility:s,display:t})}f=e.wrapper=b.closest(n);if(!b.is(".k-content")||!f[0])b.addClass("k-window-content k-content"),O(b,c),f=e.wrapper=b.closest(n),e.title(c.title),c.width&&f.width(c.width),c.height&&f.height(c.height),j(["minWidth","minHeight","maxWidth","maxHeight"],function(a,d){var e=c[d];e&&e!=Infinity&&b.css(d,e)}),c.visible||f.hide();p&&(q?f.css({top:p.top,left:p.left}):f.css({top:p.top,left:p.left,visibility:"visible",display:"none"})),f.toggleClass("k-rtl",e.wrapper.closest(".k-rtl").length).appendTo(l),e.toFront(),c.modal&&e._overlay(f.is(v)).css({opacity:.5}),f.on({mouseenter:function(){a(this).addClass(u)},mouseleave:function(){a(this).removeClass(u)},click:h(e._windowActionHandler,e)},".k-window-titlebar .k-window-action"),c.resizable&&(f.on("dblclick",o,h(e.toggleMaximization,e)),j("n e s w se sw ne nw".split(" "),function(a,b){f.append(m.resizeHandle(b))}),e.resizing=new P(e)),c.draggable&&(e.dragging=new Q(e)),f.add(f.find(".k-resize-handle,.k-window-titlebar")).on("mousedown",h(e.toFront,e)),e.bind([x,y,z,A,B,C,D,E,F],c),a(window).resize(h(e._onDocumentResize,e)),!c.iframe&&r.url?e._ajaxRequest(r):r.template&&b.html(k(r.template)({})),f.is(v)&&(e.trigger(x),e.trigger(y))},options:{name:"Window",animation:{open:{effects:{zoom:{direction:"in"},fade:{direction:"in"}},duration:350,show:!0},close:{effects:{zoom:{direction:"out",properties:{scale:.7}},fade:{direction:"out"}},duration:350,hide:!0}},title:"",actions:["Close"],modal:!1,resizable:!0,draggable:!0,minWidth:90,minHeight:50,maxWidth:Infinity,maxHeight:Infinity,visible:!0},_overlay:function(b){var c=a("body > .k-overlay"),d=a(document),e=this.wrapper;c.length==0&&(c=a("
")),c.insertBefore(e[0]).toggle(b).css(H,parseInt(e.css(H))-1);return c},_windowActionHandler:function(b){var c=a(b.target).closest(".k-window-action").find(".k-icon"),d=this;j({"k-close":d.close,"k-maximize":d.maximize,"k-minimize":d.minimize,"k-restore":d.restore,"k-refresh":d.refresh},function(a,e){if(c.hasClass(a)){b.preventDefault(),e.call(d);return!1}})},center:function(){var b=this.wrapper,c=a(window);b.css({left:c.scrollLeft()+Math.max(0,(c.width()-b.width())/2),top:c.scrollTop()+Math.max(0,(c.height()-b.height())/2)});return this},title:function(a){var b=this,c=b.wrapper,d=b.options,e=c.find(o),f=e.children(".k-window-title"),g=e.outerHeight();if(arguments.length==0)return f.text();a===!1?(c.addClass("k-window-titleless"),e.remove()):(e.length==0&&c.prepend(m.titlebar(i(m,d))),c.css("padding-top",g),e.css("margin-top",-g)),f.text(a);return b},content:function(a){var b=this.wrapper.children(p);if(!a)return b.html();b.html(a);return this},open:function(){var b=this,c=b.wrapper,d=b.options.animation.open,e=c.children(p),f=e.css(G);if(!b.trigger(x)){b.toFront();if(b.options.modal){var g=b._overlay(!1);d.duration?g.kendoStop().kendoAnimate({effects:{fade:{direction:"out",properties:{opacity:.5}}},duration:d.duration,show:!0}):g.css("opacity",.5).show()}c.is(v)||(e.css(G,"hidden"),c.show().kendoStop().kendoAnimate({effects:d.effects,duration:d.duration,complete:function(){b.trigger(y),e.css(G,f)}}))}b.options.isMaximized&&a("html, body").css(G,"hidden");return b},close:function(){var c=this,d=c.wrapper,e=c.options,f=e.animation.open,g=e.animation.close,h,i,j;d.is(v)&&!c.trigger(A)&&(h=L(),i=e.modal&&h.length==1,j=e.modal?c._overlay(!0):a(b),i?g.duration?j.kendoStop().kendoAnimate({effects:{fadeOut:{properties:{opacity:0}}},duration:g.duration,hide:!0}):j.hide():h.length&&K(h.eq(h.length-2))._overlay(!0),d.kendoStop().kendoAnimate({effects:g.effects||f.effects,reverse:g.reverse===!0,duration:g.duration,complete:function(){d.hide(),c.trigger(z)}})),c.options.isMaximized&&a("html, body").css(G,"");return c},toFront:function(){var b=this,c=b.wrapper,d=c[0],e=+c.css(H);a(n).each(function(b,c){var f=a(c),g=f.css(H),h=f.find(p);isNaN(g)||(e=Math.max(+g,e)),c!=d&&h.find("> ."+s).length>0&&h.append(m.overlay)}),c.css(H,e+2),b.element.find("> .k-overlay").remove();return b},toggleMaximization:function(){return this[this.options.isMaximized?"restore":"maximize"]()},restore:function(){var b=this,c=b.options,d=b.restoreOptions;if(!!c.isMaximized||!!c.isMinimized){b.wrapper.css({position:"absolute",left:d.left,top:d.top,width:d.width,height:d.height}).find(".k-window-content,.k-resize-handle").show().end().find(".k-window-titlebar .k-restore").parent().remove().end().end().find(I).parent().show(),a("html, body").css(G,""),c.isMaximized=c.isMinimized=!1,b.trigger(C);return b}},maximize:M("maximize",function(){var b=this,c=b.wrapper,d=c.position();i(b.restoreOptions,{left:d.left,top:d.top}),c.css({left:0,top:0,position:"fixed"}),a("html, body").css(G,"hidden"),b.options.isMaximized=!0,b._onDocumentResize()}),minimize:M("minimize",function(){var a=this;a.wrapper.css("height",""),a.element.hide(),a.options.isMinimized=!0}),_onDocumentResize:function(){var b=this,c=b.wrapper,d=a(window);!b.options.isMaximized||(c.css({width:d.width(),height:d.height()}),b.trigger(C))},refresh:function(b){g(b)||(b={url:b});var c=this,d,e=b.url=b.url||c.options.content.url;c.options.iframe?(d=a(c.element).find("."+s)[0],d&&(d.src=e||d.src)):c._ajaxRequest(b);return c},_ajaxRequest:function(b){var c=this,d=b.template,e=c.wrapper.find(".k-window-titlebar .k-refresh"),f=setTimeout(function(){e.addClass(t)},100);a.ajax(i({type:"GET",dataType:"html",cache:!1,error:h(function(a,b){c.trigger(F)},c),complete:function(){clearTimeout(f),e.removeClass(t)},success:h(function(a,b){d&&(a=k(d)(a||{})),c.element.html(a),c.trigger(B)},c)},c.options.content,b))},destroy:function(){var a=this,b,c;a.wrapper.remove(),b=L(),c=a.options.modal&&!b.length,c?a._overlay(!1).remove():b.length>0&&K(b.eq(b.length-2))._overlay(!0)}});m={wrapper:k(""),action:k(" "),titlebar:k(" "),overlay:"",contentFrame:k(""),resizeHandle:k("")},P.prototype={dragstart:function(b){var c=this.owner,d=c.wrapper;c.elementPadding=parseInt(c.wrapper.css("padding-top")),c.initialCursorPosition=d.offset(),c.resizeDirection=b.currentTarget.prop("className").replace("k-resize-handle k-resize-","").split(""),c.initialSize={width:c.wrapper.width(),height:c.wrapper.height()},d.append(m.overlay).find(q).not(b.currentTarget).hide(),a(l).css(w,b.currentTarget.css(w))},drag:function(a){var b=this.owner,c=b.wrapper,d=b.options,e=function(a,b,c){return Math.max(Math.min(a,c),b)},f={e:function(){var f=a.pageX-b.initialCursorPosition.left;c.width(e(f,d.minWidth,d.maxWidth))},s:function(){var f=a.pageY-b.initialCursorPosition.top-b.elementPadding;c.height(e(f,d.minHeight,d.maxHeight))},w:function(){var f=b.initialCursorPosition.left+b.initialSize.width,g=e(f-a.pageX,d.minWidth,d.maxWidth);c.css({left:f-g,width:g})},n:function(){var f=b.initialCursorPosition.top+b.initialSize.height,g=e(f-a.pageY,d.minHeight,d.maxHeight);c.css({top:f-g,height:g})}};j(b.resizeDirection,function(){f[this]()}),b.trigger(C)},dragend:function(b){var c=this.owner,d=c.wrapper;d.find(r).remove().end().find(q).not(b.currentTarget).show(),a(l).css(w,""),b.keyCode==27&&d.css(c.initialCursorPosition).css(c.initialSize);return!1}},Q.prototype={dragstart:function(b){var c=this.owner,d=c.element,e=d.find(".k-window-actions");c.trigger(D),c.initialWindowPosition=c.wrapper.position(),c.startPosition={left:b.pageX-c.initialWindowPosition.left,top:b.pageY-c.initialWindowPosition.top},e.length>0?c.minLeftPosition=e.outerWidth()+parseInt(e.css("right"),10)-d.outerWidth():c.minLeftPosition=20-d.outerWidth(),c.wrapper.append(m.overlay).find(q).hide(),a(l).css(w,b.currentTarget.css(w))},drag:function(b){var c=this.owner,d={left:Math.max(b.pageX-c.startPosition.left,c.minLeftPosition),top:Math.max(b.pageY-c.startPosition.top,0)};a(c.wrapper).css(d)},dragend:function(b){var c=this.owner;c.wrapper.find(q).show().end().find(r).remove(),a(l).css(w,""),b.keyCode==27?b.currentTarget.closest(n).css(c.initialWindowPosition):c.trigger(E);return!1}},c.ui.plugin(N)})(jQuery)