(function(A){A.ui=A.ui||{};A.fn.extend({dialog:function(C,D){var B=Array.prototype.slice.call(arguments,1);return this.each(function(){if(typeof C=="string"){var E=A.data(this,"ui-dialog")||A.data(A(this).parents(".ui-dialog:first").find(".ui-dialog-content")[0],"ui-dialog");E[C].apply(E,B)}else{if(!A(this).is(".ui-dialog-content")){new A.ui.dialog(this,C)}}})}});A.ui.dialog=function(D,L){this.options=L=A.extend({},A.ui.dialog.defaults,L);this.element=D;var K=this;A.data(this.element,"ui-dialog",this);A(D).bind("setData.dialog",function(N,M,O){L[M]=O}).bind("getData.dialog",function(N,M){return L[M]});var E=A(D).addClass("ui-dialog-content");if(!E.parent().length){E.appendTo("body")}E.wrap(document.createElement("div")).wrap(document.createElement("div"));var H=E.parent().addClass("ui-dialog-container").css({position:"relative"});var J=this.uiDialog=H.parent().hide().addClass("ui-dialog").css({position:"absolute",width:L.width,height:L.height,overflow:"hidden"});var B=E.attr("className").split(" ");A.each(B,function(M,N){if(N!="ui-dialog-content"){J.addClass(N)}});if(L.resizable&&A.fn.resizable){J.append('<div class="ui-resizable-n ui-resizable-handle"></div>').append('<div class="ui-resizable-s ui-resizable-handle"></div>').append('<div class="ui-resizable-e ui-resizable-handle"></div>').append('<div class="ui-resizable-w ui-resizable-handle"></div>').append('<div class="ui-resizable-ne ui-resizable-handle"></div>').append('<div class="ui-resizable-se ui-resizable-handle"></div>').append('<div class="ui-resizable-sw ui-resizable-handle"></div>').append('<div class="ui-resizable-nw ui-resizable-handle"></div>');J.resizable({maxWidth:L.maxWidth,maxHeight:L.maxHeight,minWidth:L.minWidth,minHeight:L.minHeight})}H.prepend('<div class="ui-dialog-titlebar"></div>');var C=A(".ui-dialog-titlebar",H);var I=(L.title)?L.title:(E.attr("title"))?E.attr("title"):"";C.append('<span class="ui-dialog-title">'+I+"</span>");C.append('<a class="ui-dialog-titlebar-close"></a>');this.uiDialogTitlebarClose=A(".ui-dialog-titlebar-close",C).hover(function(){A(this).addClass("ui-dialog-titlebar-close-hover")},function(){A(this).removeClass("ui-dialog-titlebar-close-hover")}).mousedown(function(M){M.stopPropagation()}).click(function(){K.close();return false}).keydown(function(M){var N=27;M.keyCode&&M.keyCode==N&&K.close()});var F=0;A.each(L.buttons,function(){F=1;return false});if(F==1){J.append('<div class="ui-dialog-buttonpane"></div>');var G=A(".ui-dialog-buttonpane",J);A.each(L.buttons,function(M,O){var N=A(document.createElement("button")).text(M).click(O);G.append(N)})}if(L.draggable&&A.fn.draggable){J.draggable({handle:".ui-dialog-titlebar",start:function(){K.activate()}})}J.mousedown(function(){K.activate()});C.click(function(){K.activate()});L.bgiframe&&A.fn.bgiframe&&J.bgiframe();this.open=function(){this.overlay=L.modal?new A.ui.dialog.overlay(K):null;J.appendTo("body");var O=A(window),R=A(document),Q=R.scrollTop(),P=R.scrollLeft();if(L.position.constructor==Array){Q+=L.position[1];P+=L.position[0]}else{switch(L.position){case"center":Q+=(O.height()/2)-(J.height()/2);P+=(O.width()/2)-(J.width()/2);break;case"top":Q+=0;P+=(O.width()/2)-(J.width()/2);break;case"right":Q+=(O.height()/2)-(J.height()/2);P+=(O.width())-(J.width());break;case"bottom":Q+=(O.height())-(J.height());P+=(O.width()/2)-(J.width()/2);break;case"left":Q+=(O.height()/2)-(J.height()/2);P+=0;break;default:Q+=(O.height()/2)-(J.height()/2);P+=(O.width()/2)-(J.width()/2)}}Q=Q<R.scrollTop()?R.scrollTop():Q;J.css({top:Q,left:P});J.fadeIn(150);K.moveToTop();K.activate();var M=null;var N={options:L};this.uiDialogTitlebarClose.focus();A(this.element).triggerHandler("dialogopen",[M,N],L.open)};this.activate=function(){!L.modal&&this.moveToTop()};this.moveToTop=function(){var M=L.zIndex;A(".ui-dialog:visible").each(function(){M=Math.max(M,parseInt(A(this).css("z-index"),10)||L.zIndex)});this.overlay&&this.overlay.$el.css("z-index",++M);J.css("z-index",++M)};this.close=function(){this.overlay&&this.overlay.destroy();J.fadeOut(200);var N=null;var M={options:L};A(this.element).triggerHandler("dialogclose",[N,M],L.close)};if(L.autoOpen){this.open()}};A.extend(A.ui.dialog,{defaults:{autoOpen:true,bgiframe:true,buttons:[],draggable:true,height:200,minHeight:240,minWidth:320,modal:false,overlay:{},position:"center",resizable:true,width:300,zIndex:1000},overlay:function(B){this.$el=A.ui.dialog.overlay.create(B)}});A.extend(A.ui.dialog.overlay,{instances:[],events:A.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(B){return B+".ui-dialog-overlay"}).join(" "),create:function(B){if(this.instances.length===0){this.selects=this.ie6&&A("select:visible").css("visibility","hidden");A("a, :input").bind(this.events,function(){var D=false;var F=A(this).parents(".ui-dialog");if(F.length){var C=A(".ui-dialog-overlay");if(C.length){var E=parseInt(C.css("z-index"),10);C.each(function(){E=Math.max(E,parseInt(A(this).css("z-index"),10))});D=parseInt(F.css("z-index"),10)>E}else{D=true}}return D});A(document).bind("keydown.ui-dialog-overlay",function(C){var D=27;C.keyCode&&C.keyCode==D&&B.close()});A(window).bind("resize.ui-dialog-overlay",A.ui.dialog.overlay.resize)}$el=A("<div/>").appendTo(document.body).addClass("ui-dialog-overlay").css(A.extend({borderWidth:0,margin:0,padding:0,position:"absolute",top:0,left:0,width:this.width(),height:this.height()},B.options.overlay));B.uiDialog.is(".ui-draggable")&&B.uiDialog.data("stop.draggable",A.ui.dialog.overlay.resize);B.uiDialog.is(".ui-resizable")&&B.uiDialog.data("stop.resizable",A.ui.dialog.overlay.resize);this.instances.push($el);return $el},destroy:function(B){this.instances.splice(A.inArray(this.instances,B),1);if(this.instances.length===0){A("a, :input").add([document,window]).unbind(".ui-dialog-overlay");this.ie6&&this.selects.css("visibility","visible")}B.remove()},height:function(){return A(document).height()+"px"},width:function(){return A(document).width()+"px"},resize:function(){var B=A([]);A.each(A.ui.dialog.overlay.instances,function(){B=B.add(this)});B.css({width:0,height:0}).css({width:A.ui.dialog.overlay.width(),height:A.ui.dialog.overlay.height()})},ie6:A.browser.msie&&A.browser.version<7,selects:null});A.extend(A.ui.dialog.overlay.prototype,{destroy:function(){A.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);