/*


 Copyright (c) 2008 Paul Bakaus
 Dual licensed under the MIT (MIT-LICENSE.txt)
 and GPL (GPL-LICENSE.txt) licenses.

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

