(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",{init:function(){var j=this,k=this.options,d=typeof k.resizable=="string"?k.resizable:"n,e,s,w,se,sw,ne,nw",e=this.element.addClass("ui-dialog-content").wrap("<div/>").wrap("<div/>"),g=(this.uiDialogContainer=e.parent().addClass("ui-dialog-container").css({position:"relative",width:"100%",height:"100%"})),h=k.title||e.attr("title")||"",c=(this.uiDialogTitlebar=b('<div class="ui-dialog-titlebar"/>')).append('<span class="ui-dialog-title">'+h+"</span>").append('<a href="#" class="ui-dialog-titlebar-close"><span>X</span></a>').prependTo(g),i=(this.uiDialog=g.parent()).appendTo(document.body).hide().addClass("ui-dialog").addClass(k.dialogClass).addClass(e.attr("className")).removeClass("ui-dialog-content").css({position:"absolute",width:k.width,height:k.height,overflow:"hidden",zIndex:k.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(l){if(k.closeOnEscape){var m=27;(l.keyCode&&l.keyCode==m&&j.close())}}).mousedown(function(){j.moveToTop()}),f=(this.uiDialogButtonPane=b("<div/>")).addClass("ui-dialog-buttonpane").css({position:"absolute",bottom:0}).appendTo(i);this.uiDialogTitlebarClose=b(".ui-dialog-titlebar-close",c).hover(function(){b(this).addClass("ui-dialog-titlebar-close-hover")},function(){b(this).removeClass("ui-dialog-titlebar-close-hover")}).mousedown(function(l){l.stopPropagation()}).click(function(){j.close();return false});this.uiDialogTitlebar.find("*").add(this.uiDialogTitlebar).each(function(){b.ui.disableSelection(this)});if(b.fn.draggable){i.draggable({cancel:".ui-dialog-content",helper:k.dragHelper,handle:".ui-dialog-titlebar",start:function(m,l){j.moveToTop();(k.dragStart&&k.dragStart.apply(j.element[0],arguments))},drag:function(m,l){(k.drag&&k.drag.apply(j.element[0],arguments))},stop:function(m,l){(k.dragStop&&k.dragStop.apply(j.element[0],arguments));b.ui.dialog.overlay.resize()}});(k.draggable||i.draggable("disable"))}if(b.fn.resizable){i.resizable({cancel:".ui-dialog-content",helper:k.resizeHelper,maxWidth:k.maxWidth,maxHeight:k.maxHeight,minWidth:k.minWidth,minHeight:k.minHeight,start:function(){(k.resizeStart&&k.resizeStart.apply(j.element[0],arguments))},resize:function(m,l){(k.autoResize&&j.size.apply(j));(k.resize&&k.resize.apply(j.element[0],arguments))},handles:d,stop:function(m,l){(k.autoResize&&j.size.apply(j));(k.resizeStop&&k.resizeStop.apply(j.element[0],arguments));b.ui.dialog.overlay.resize()}});(k.resizable||i.resizable("disable"))}this.createButtons(k.buttons);this.isOpen=false;(k.bgiframe&&b.fn.bgiframe&&i.bgiframe());(k.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);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)},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",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);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);