(function(b){var a={dragStart:"start.draggable",drag:"drag.draggable",dragStop:"stop.draggable",maxHeight:"maxHeight.resizable",minHeight:"minHeight.resizable",maxWidth:"maxWidth.resizable",minWidth:"minWidth.resizable",resizeStart:"start.resizable",resize:"drag.resizable",resizeStop:"stop.resizable"};b.widget("ui.dialog",{maximized:false,init:function(){var c=this,e=this.options,d=typeof e.resizable=="string"?e.resizable:"e,s,w,se,sw,ne,nw",f=this.element.addClass("ui-dialog-content").wrap("<div/>").wrap("<div/>"),i=(this.uiDialogContainer=f.parent().addClass("ui-dialog-container").css({position:"relative",width:"100%",height:"100%"})),h=e.title||f.attr("title")||"",g=(this.uiDialogTitlebar=b('<div class="ui-dialog-titlebar"/>')).append('<span class="ui-dialog-title">'+h+"</span>");if(this.options.closable){g.append('<a href="#" class="ui-dialog-titlebar-close"><span>X</span></a>')}g.append('<a href="#" class="ui-dialog-titlebar-stack"><span>S</span></a>');g.prepend('<div class="ui-dialog-titlebar-fill"></div>');g.prependTo(i),uiDialog=(this.uiDialog=i.parent()).appendTo(document.body).hide().addClass("ui-dialog").addClass(e.dialogClass).addClass(f.attr("className")).removeClass("ui-dialog-content").css({position:"absolute",width:e.width,height:e.height,overflow:"hidden",zIndex:e.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(j){if(e.closeOnEscape&&e.closable){var k=27;(j.keyCode&&j.keyCode==k&&c.close())}}).mousedown(function(){c.moveToTop()}),uiDialogButtonPane=(this.uiDialogButtonPane=b("<div/>")).addClass("ui-dialog-buttonpane").css({position:"absolute",bottom:5}).appendTo(uiDialog);this.uiDialogTitlebarClose=b(".ui-dialog-titlebar-close",g).hover(function(){b(this).addClass("ui-dialog-titlebar-close-hover")},function(){b(this).removeClass("ui-dialog-titlebar-close-hover")}).mousedown(function(j){j.stopPropagation()}).click(function(){c.close();return false});this.uiDialogTitlebar.find("*").add(this.uiDialogTitlebar).each(function(){b.ui.disableSelection(this)});if(e.maximize){g.append('<a href="#" id="dialog-restore" class="ui-dialog-titlebar-rest"><span>Min</span></a>');this.uiDialogTitlebarMin=b("#dialog-restore",g).hover(function(){b(this).addClass("ui-dialog-titlebar-rest-hover")},function(){b(this).removeClass("ui-dialog-titlebar-rest-hover")}).mousedown(function(j){j.stopPropagation()}).click(function(){c.restore();return false}).hide();g.append('<a href="#" id="dialog-maximize" class="ui-dialog-titlebar-max"><span>Max</span></a>');this.uiDialogTitlebarMax=b("#dialog-maximize",g).hover(function(){b(this).addClass("ui-dialog-titlebar-max-hover")},function(){b(this).removeClass("ui-dialog-titlebar-max-hover")}).mousedown(function(j){j.stopPropagation()}).click(function(){c.maximize();return false});g.bind("dblclick",function(){if(c.maximized){c.restore()}else{c.maximize()}})}if(b.fn.draggable){uiDialog.draggable({cancel:".ui-dialog-content",helper:e.dragHelper,handle:".ui-dialog-titlebar",start:function(k,j){c.moveToTop();(e.dragStart&&e.dragStart.apply(c.element[0],arguments))},drag:function(k,j){(e.drag&&e.drag.apply(c.element[0],arguments))},stop:function(k,j){(e.dragStop&&e.dragStop.apply(c.element[0],arguments));b.ui.dialog.overlay.resize()},containment:e.containment||"document"});(e.draggable||uiDialog.draggable("disable"))}if(b.fn.resizable){uiDialog.resizable({cancel:".ui-dialog-content",helper:e.resizeHelper,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:e.minHeight,start:function(){(e.resizeStart&&e.resizeStart.apply(c.element[0],arguments))},resize:function(k,j){(e.autoResize&&c.size.apply(c));(e.resize&&e.resize.apply(c.element[0],arguments))},handles:d,stop:function(k,j){(e.autoResize&&c.size.apply(c));(e.resizeStop&&e.resizeStop.apply(c.element[0],arguments));b.ui.dialog.overlay.resize()}});(e.resizable||uiDialog.resizable("disable"))}this.createButtons(e.buttons);this.isOpen=false;(e.bgiframe&&b.fn.bgiframe&&uiDialog.bgiframe());(e.autoOpen&&this.open())},setData:function(c,d){(a[c]&&this.uiDialog.data(a[c],d));switch(c){case"buttons":this.createButtons(d);break;case"draggable":this.uiDialog.draggable(d?"enable":"disable");break;case"height":this.uiDialog.height(d);break;case"position":this.position(d);break;case"resizable":(typeof d=="string"&&this.uiDialog.data("handles.resizable",d));this.uiDialog.resizable(d?"enable":"disable");break;case"title":b(".ui-dialog-title",this.uiDialogTitlebar).text(d);break;case"width":this.uiDialog.width(d);break}b.widget.prototype.setData.apply(this,arguments)},position:function(h){var d=b(window),e=b(document),f=e.scrollTop(),c=e.scrollLeft(),g=f;if(b.inArray(h,["center","top","right","bottom","left"])>=0){h=[h=="right"||h=="left"?h:"center",h=="top"||h=="bottom"?h:"middle"]}if(h.constructor!=Array){h=["center","middle"]}if(h[0].constructor==Number){c+=h[0]}else{switch(h[0]){case"left":c+=0;break;case"right":c+=d.width()-this.uiDialog.width();break;default:case"center":c+=(d.width()-this.uiDialog.width())/2}}if(h[1].constructor==Number){f+=h[1]}else{switch(h[1]){case"top":f+=0;break;case"bottom":f+=d.height()-this.uiDialog.height();break;default:case"middle":f+=(d.height()-this.uiDialog.height())/2}}f=Math.max(f,g);this.uiDialog.css({top:f,left:c})},size:function(){var d=this.uiDialogContainer,g=this.uiDialogTitlebar,e=this.element,f=parseInt(e.css("margin-top"),10)+parseInt(e.css("margin-bottom"),10),c=parseInt(e.css("margin-left"),10)+parseInt(e.css("margin-right"),10);e.height(d.height()-g.outerHeight()-f-8);e.width(d.width()-c)},open:function(){if(this.isOpen){return}this.overlay=this.options.modal?new b.ui.dialog.overlay(this):null;(this.uiDialog.next().length>0)&&this.uiDialog.appendTo("body");this.position(this.options.position);this.uiDialog.show(this.options.show);this.options.autoResize&&this.size();this.moveToTop(true);var c=null;var d={options:this.options};this.uiDialogTitlebarClose.focus();this.element.triggerHandler("dialogopen",[c,d],this.options.open);this.isOpen=true},moveToTop:function(e){if((this.options.modal&&!e)||(!this.options.stack&&!this.options.modal)){return this.element.triggerHandler("dialogfocus",[null,{options:this.options}],this.options.focus)}var d=this.options.zIndex,c=this.options;b(".ui-dialog:visible").each(function(){d=Math.max(d,parseInt(b(this).css("z-index"),10)||c.zIndex)});(this.overlay&&this.overlay.$el.css("z-index",++d));this.uiDialog.css("z-index",++d);this.element.triggerHandler("dialogfocus",[null,{options:this.options}],this.options.focus)},adjustScrollContent:function(){b(".ui-dialog-content").css("width",this.uiDialog.width()-16,"height",this.uiDialog.height()-16)},restore:function(){this.maximized=false;this.uiDialog.css({width:this.options.width,height:this.options.height});this.size();this.adjustScrollContent();this.position(this.options.position);b("#dialog-maximize").show();b("#dialog-restore").hide()},maximize:function(){this.maximized=true;this.uiDialog.css({left:0,top:0,width:b(window.body).width(),height:b(window).height()});this.size();this.adjustScrollContent();b("#dialog-restore").show();b("#dialog-maximize").hide()},close:function(){(this.overlay&&this.overlay.destroy());this.uiDialog.hide(this.options.hide);var d=null;var c={options:this.options};this.element.triggerHandler("dialogclose",[d,c],this.options.close);b.ui.dialog.overlay.resize();this.isOpen=false},destroy:function(){(this.overlay&&this.overlay.destroy());this.uiDialog.hide();this.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content").hide().appendTo("body");this.uiDialog.remove()},createButtons:function(f){var e=this,c=false,d=this.uiDialogButtonPane;d.empty().hide();b.each(f,function(){return !(c=true)});if(c){d.show();b.each(f,function(g,h){b("<button/>").text(g).click(function(){h.apply(e.element[0],arguments)}).appendTo(d)})}}});b.extend(b.ui.dialog,{defaults:{autoOpen:true,autoResize:true,bgiframe:false,buttons:{},closeOnEscape:true,draggable:true,height:200,minHeight:100,minWidth:150,modal:false,overlay:{},position:"center",closable:true,maximize:true,resizable:true,stack:true,width:300,zIndex:1000},overlay:function(c){this.$el=b.ui.dialog.overlay.create(c)}});b.extend(b.ui.dialog.overlay,{instances:[],events:b.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(c){return c+".dialog-overlay"}).join(" "),create:function(d){if(this.instances.length===0){setTimeout(function(){b("a, :input").bind(b.ui.dialog.overlay.events,function(){var f=false;var h=b(this).parents(".ui-dialog");if(h.length){var e=b(".ui-dialog-overlay");if(e.length){var g=parseInt(e.css("z-index"),10);e.each(function(){g=Math.max(g,parseInt(b(this).css("z-index"),10))});f=parseInt(h.css("z-index"),10)>g}else{f=true}}return f})},1);if(d.options.closable){b(document).bind("keydown.dialog-overlay",function(f){var g=27;(f.keyCode&&f.keyCode==g&&d.close())})}b(window).bind("resize.dialog-overlay",b.ui.dialog.overlay.resize)}var c=b("<div/>").appendTo(document.body).addClass("ui-dialog-overlay").css(b.extend({borderWidth:0,margin:0,padding:0,position:"absolute",top:0,left:0,width:this.width(),height:this.height()},d.options.overlay));(d.options.bgiframe&&b.fn.bgiframe&&c.bgiframe());this.instances.push(c);return c},destroy:function(c){this.instances.splice(b.inArray(this.instances,c),1);if(this.instances.length===0){b("a, :input").add([document,window]).unbind(".dialog-overlay")}c.remove()},height:function(){if(b.browser.msie&&b.browser.version<7){var d=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);var c=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);if(d<c){return b(window).height()+"px"}else{return d+"px"}}else{return b(document).height()+"px"}},width:function(){if(b.browser.msie&&b.browser.version<7){var c=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);var d=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);if(c<d){return b(window).width()+"px"}else{return c+"px"}}else{return b(document).width()+"px"}},resize:function(){var c=b([]);b.each(b.ui.dialog.overlay.instances,function(){c=c.add(this)});c.css({width:0,height:0}).css({width:b.ui.dialog.overlay.width(),height:b.ui.dialog.overlay.height()})}});b.extend(b.ui.dialog.overlay.prototype,{destroy:function(){b.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);