/*
 *
 * Wijmo Library 1.0.1
 * http://wijmo.com/
 *
 * Copyright(c) ComponentOne, LLC.  All rights reserved.
 * 
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * licensing@wijmo.com
 * http://www.wijmo.com/license
 *
 **/
(function(a){"use strict";var b="ui-state-hover",c="wijmo-wijdialog-defaultdockingzone";a.widget("wijmo.wijdialog",a.ui.dialog,{options:{captionButtons:{},collapsingAnimation:null,expandingAnimation:null,contentUrl:"",minimizeZoneElementId:""},_create:function(){var b=this;a.ui.dialog.prototype._create.apply(b,arguments);b.uiDialog.addClass("wjimo-wijdialog");b._initWijWindow();b._bindWindowResize()},_initWijWindow:function(){var b=this;b._createCaptionButtons();b._checkUrl();b.uiDialogButtonPane=a(".ui-dialog-buttonpane",b.uiDialog)},_checkUrl:function(){var b=this,e=b.options,d=e.contentUrl,c=a('<iframe style="width:100%;height:99%;" frameborder="0"></iframe>');if(typeof d==="string"&&d.length>0){b.element.addClass("wijmo-wijdialog-hasframe");c.attr("src",d);b.element.append(c);b.innerFrame=c}b.contentWrapper=b.element},_createCaptionButtons:function(){var c=[],b=this,h=b.options,d,f={pin:{visible:true,click:b.pin,iconClassOn:"ui-icon-pin-w",iconClassOff:"ui-icon-pin-s"},refresh:{visible:true,click:b.refresh,iconClassOn:"ui-icon-refresh"},toggle:{visible:true,click:b.toggle,iconClassOn:"ui-icon-carat-1-n",iconClassOff:"ui-icon-carat-1-s"},minimize:{visible:true,click:b.minimize,iconClassOn:"ui-icon-minus"},maximize:{visible:true,click:b.maximize,iconClassOn:"ui-icon-extlink"},close:{visible:true,click:b.close,iconClassOn:"ui-icon-close"}},g=h.captionButtons,e=b.uiDialogTitlebar;a.extend(f,g);e.children(".ui-dialog-titlebar-close, .wijmo-wijdialog-captionbutton").remove();a.each(f,function(b,a){c.push({button:b,info:a})});b._trigger("buttoncreating",null,c);for(d=0;d<c.length;d++)b._createCaptionButton(c[d],e)},_createCaptionButton:function(f,g,k){var j=this,d,h="wijmo-wijdialog-titlebar-"+f.button,i=g.children("."+h),c=f.info,e=a("<span></span>");if(c.visible){if(i.size()===0){e.addClass("ui-icon "+c.iconClassOn).text(f.button);d=a('<a href="#"></a>').append(e).addClass(h+" ui-corner-all wijmo-wijdialog-captionbutton").attr("role","button").hover(function(){d.addClass(b)},function(){d.removeClass(b)}).click(function(b){if(e.hasClass(c.iconClassOff))e.removeClass(c.iconClassOff);else e.addClass(c.iconClassOff);a.isFunction(c.click)&&c.click.apply(j,arguments);b.preventDefault();return false});if(k)return d;else d.appendTo(g)}j[f.button+"Button"]=d}else i.remove()},pin:function(){var a=this.uiDialog,b=a.draggable("option","disabled");a.draggable({disabled:!b});!b&&a.removeClass("ui-state-disabled")},refresh:function(){var a=this.innerFrame;a!==undefined&&a.attr("src",a.attr("src"))},toggle:function(){var a=this,b=a.toggleButton.children("span");if(!a.minimized)if(a.collapsed===undefined||!a.collapsed){a.collapsed=true;!b.hasClass("ui-icon-carat-1-s")&&b.addClass("ui-icon-carat-1-s");a._collapseDialogContent(true)}else{a.collapsed=false;b.hasClass("ui-icon-carat-1-s")&&b.removeClass("ui-icon-carat-1-s");a._expandDialogContent(true)}},_expandDialogContent:function(d){var b=this,e=b.options,c=e.expandingAnimation;b.uiDialog.height("auto");if(d&&c!==null)b.contentWrapper.show(c.effect,c.options,c.speed,function(d){b.uiDialog.css("height",b._toggleHeight);a.isFunction(c.callback)&&c.callback(d);b._enableDisableResizer(false)});else{b.contentWrapper.show();b._enableDisableResizer(false);b.uiDialog.css("height",b.toggleHeight)}},_collapseDialogContent:function(c){var a=this,d=a.options,b=d.collapsingAnimation;a._enableDisableResizer(true);a._toggleHeight=a.uiDialog[0].style.height;a.uiDialog.height("auto");if(c&&b!==null)a.contentWrapper.hide(b.effect,b.options,b.speed);else a.contentWrapper.hide()},_enableDisableResizer:function(a){var b=this.uiDialog;b.resizable({disabled:a});a&&b.removeClass("ui-state-disabled")},_enableDisableDragger:function(a){var b=this.uiDialog;b.draggable({disabled:a});a&&b.removeClass("ui-state-disabled")},minimize:function(){var b=this,j=b.uiDialog,o=b.options,e=null,g=a("<div></div>"),i=a("<div></div>"),d,l,n,k,f={},m,h={};if(!b.minimized){k=b.uiDialog.position();f.width=b.uiDialog.width();f.height=b.uiDialog.height();if(b.maximized){b.maximized=false;b.restoreButton.remove();a(window).unbind(".onWinResize")}else{b.collapsed&&b._expandDialogContent(false);b._saveNormalState()}b._enableDisableResizer(true);b.collapsed&&b._collapseDialogContent(false);g.appendTo(document.body).css({top:b.uiDialog.offset().top,left:b.uiDialog.offset().left,height:b.uiDialog.innerHeight(),width:b.uiDialog.innerWidth(),position:"absolute"});b.contentWrapper.hide();b.uiDialogButtonPane.length&&b.uiDialogButtonPane.hide();j.height("auto");j.width("auto");b._doButtonAction(b.minimizeButton,"hide");b._restoreButton(true,b.minimizeButton,"After");b._doButtonAction(b.pinButton,"hide");b._doButtonAction(b.refreshButton,"hide");b._doButtonAction(b.toggleButton,"hide");b._doButtonAction(b.maximizeButton,"show");a.browser.webkit&&a(".wijmo-wijdialog-captionbutton").css("float","left");if(o.minimizeZoneElementId.length>0)e=a("#"+o.minimizeZoneElementId);if(e!==null&&e.size()>0)e.append(b.uiDialog);else{d=a("."+c);if(d.size()===0){d=a('<div class="'+c+'"></div>');a(document.body).append(d)}d.append(b.uiDialog).css("z-index",j.css("z-index"))}b.uiDialog.css("position","static");b.uiDialog.css("float","left");if(a.browser.msie&&a.browser.version==="6.0"){l=a(document).scrollTop();n=document.documentElement.clientHeight-d.height()+l;d.css({position:"absolute",left:"0px",top:n})}i.appendTo(document.body).css({top:b.uiDialog.offset().top,left:b.uiDialog.offset().left,height:b.uiDialog.innerHeight(),width:b.uiDialog.innerWidth(),position:"absolute"});b.uiDialog.hide();g.effect("transfer",{to:i,className:"ui-widget-content"},100,function(){g.remove();i.remove();b.uiDialog.show();m=b.uiDialog.position();h.width=b.uiDialog.width();h.height=b.uiDialog.height();b._trigger("resize",null,{originalPosition:k,originalSize:f,position:m,size:h})});b.minimized=true}},_doButtonAction:function(a,c){if(a!==undefined){a.removeClass(b);a[c]()}},maximize:function(){var b=this,g=a(window),e,c={},f,d={};if(!b.maximized){b.maximized=true;e=b.uiDialog.position();c.width=b.uiDialog.width();c.height=b.uiDialog.height();if(b.minimized)b.restore();else{b.collapsed&&b._expandDialogContent(false);b._saveNormalState()}if(b.maximizeButton!==undefined){b.maximizeButton.hide();b._restoreButton(true,b.maximizeButton,"Before")}a.browser.webkit&&a(".wijmo-wijdialog-captionbutton").css("float","");b._onWinResize(b,g);b.collapsed&&b._collapseDialogContent(false);b._enableDisableDragger(true);b.uiDialog.resizable({disabled:true});b.uiDialog.removeClass("ui-state-disabled");f=b.uiDialog.position();d.width=b.uiDialog.width();d.height=b.uiDialog.height();b._trigger("resize",null,{originalPosition:e,originalSize:c,position:f,size:d})}},_bindWindowResize:function(){var b=this,d=a(window),f,e,c;d.resize(function(){b.maximized&&b._onWinResize(b,d)});a.browser.msie&&a.browser.version==="6.0"&&d.bind("scroll.wijdialog resize.wijdialog",function(){if(b.minimized){e=a(document).scrollTop();c=b.uiDialog.parent();f=document.documentElement.clientHeight-c.height()+e;c.css({top:f})}})},_saveNormalState:function(){var a=this,b=a.uiDialog,c=a.element;a.normalWidth=b.css("width");a.normalLeft=b.css("left");a.normalTop=b.css("top");a.normalHeight=b.css("height");a.normalInnerHeight=c.css("height");a.normalInnerWidth=c.css("width");a.normalInnerMinWidth=c.css("min-width");a.normalInnerMinHeight=c.css("min-height")},_onWinResize:function(a,b){a.uiDialog.css("top",b.scrollTop());a.uiDialog.css("left",b.scrollLeft());a.uiDialog.setOutWidth(b.width());a.uiDialog.setOutHeight(b.height());a._resizeDialog(a)},_restoreButton:function(c,f,e){var a=this,d={button:"restore",info:{visible:c,click:a.restore,iconClassOn:"ui-icon-newwin"}},b=a._createCaptionButton(d,a.uiDialogTitlebar,true);if(c){b["insert"+e](f);a.restoreButton=b}},restore:function(){var b=this,i=b.uiDialog,e,c={},f,d={},g=a("<div></div>"),h=a("<div></div>");if(b.minimized){b.minimized=false;e=b.uiDialog.position();c.width=b.uiDialog.width();c.height=b.uiDialog.height();g.appendTo(document.body).css({top:b.uiDialog.offset().top,left:b.uiDialog.offset().left,height:b.uiDialog.innerHeight(),width:b.uiDialog.innerWidth(),position:"absolute"});i.css("position","absolute");i.css("float","");i.appendTo(document.body);b._enableDisableResizer(false);b._enableDisableDragger(false);b._restoreToNormal();b.contentWrapper.show();b.uiDialogButtonPane.length&&b.uiDialogButtonPane.show();h.appendTo(document.body).css({top:b.uiDialog.offset().top,left:b.uiDialog.offset().left,height:b.uiDialog.innerHeight(),width:b.uiDialog.innerWidth(),position:"absolute"});b.uiDialog.hide();g.effect("transfer",{to:h,className:"ui-widget-content"},150,function(){b.uiDialog.show();f=b.uiDialog.position();d.width=b.uiDialog.width();d.height=b.uiDialog.height();b._trigger("resize",null,{originalPosition:e,originalSize:c,position:f,size:d});g.remove();h.remove()});b.collapsed&&b._collapseDialogContent();b._doButtonAction(b.minimizeButton,"show");b._doButtonAction(b.restoreButton,"remove");b._doButtonAction(b.pinButton,"show");b._doButtonAction(b.refreshButton,"show");b._doButtonAction(b.toggleButton,"show");a.browser.webkit&&a(".wijmo-wijdialog-captionbutton").css("float","")}else if(b.maximized){b.maximized=false;e=b.uiDialog.position();c.width=b.uiDialog.width();c.height=b.uiDialog.height();a(window).unbind(".onWinResize");b.collapsed&&b._expandDialogContent();b._enableDisableResizer(false);b._enableDisableDragger(false);b._restoreToNormal();b.contentWrapper.show();b.collapsed&&b._collapseDialogContent();if(b.maximizeButton!==undefined){b.maximizeButton.show();b._restoreButton(false,b.maximizeButton,"before")}f=b.uiDialog.position();d.width=b.uiDialog.width();d.height=b.uiDialog.height();b._trigger("resize",null,{originalPosition:e,originalSize:c,position:f,size:d})}},open:function(){var b=this;if(!b.minimized){a.ui.dialog.prototype.open.apply(b,arguments);!b.maximized&&b._restoreToNormal()}else b.uiDialog.show();b.collapsed&&b._collapseDialogContent()},_resizeDialog:function(a){a.options.width=a.uiDialog.width();a.options.height=a.uiDialog.height();a._size()},_restoreToNormal:function(){var a=this,b=a.uiDialog,c=a.element;b.css("width",a.normalWidth);b.css("left",a.normalLeft);b.css("top",a.normalTop);b.css("height",a.normalHeight);c.css("height",a.normalInnerHeight);c.css("width",a.normalInnerWidth);c.css("min-width",a.normalInnerMinWidth);c.css("min-height",a.normalInnerMinHeight);a.options.width=a.uiDialog.width();a.options.height=a.uiDialog.height()}})})(jQuery);
