/*
	Copyright (c) 2004-2007, The Dojo Foundation
	All Rights Reserved.

	Licensed under the Academic Free License version 2.1 or above OR the
	modified BSD license. For more information on Dojo licensing, see:

		http://dojotoolkit.org/book/dojo-book-0-9/introduction/licensing
*/


if(!dojo._hasResource["dojox.layout.FloatingPane"]){dojo._hasResource["dojox.layout.FloatingPane"]=true;dojo.provide("dojox.layout.FloatingPane");dojo.experimental("dojox.layout.FloatingPane");dojo.require("dojox.layout.ContentPane");dojo.require("dijit._Templated");dojo.require("dijit._Widget");dojo.require("dojo.dnd.move");dojo.require("dojox.layout.ResizeHandle");dojo.declare("dojox.layout.FloatingPane",[dojox.layout.ContentPane,dijit._Templated],{closable:true,dockable:true,resizable:false,maxable:false,resizeAxis:"xy",title:"",dockTo:null,duration:400,_showAnim:null,_hideAnim:null,_dockNode:null,iconSrc:null,contentClass:"dojoxFloatingPaneContent",templateString:null,templateString:"<div class=\"dojoxFloatingPane\" id=\"${id}\">\n\t<div tabindex=\"0\" waiRole=\"button\" class=\"dojoxFloatingPaneTitle\" dojoAttachPoint=\"focusNode\">\n\t\t<span dojoAttachPoint=\"closeNode\" dojoAttachEvent=\"onclick: close\" class=\"dojoxFloatingCloseIcon\"></span>\n\t\t<span dojoAttachPoint=\"maxNode\" dojoAttachEvent=\"onclick: maximize\" class=\"dojoxFloatingMaximizeIcon\"></span>\n\t\t<span dojoAttachPoint=\"restoreNode\" dojoAttachEvent=\"onclick: _restore\" class=\"dojoxFloatingRestoreIcon\"></span>\t\n\t\t<span dojoAttachPoint=\"dockNode\" dojoAttachEvent=\"onclick: minimize\" class=\"dojoxFloatingMinimizeIcon\"></span>\n\t\t<span dojoAttachPoint=\"titleNode\" class=\"dijitInline dijitTitleNode\"></span>\n\t</div>\n\t<div dojoAttachPoint=\"canvas\" class=\"dojoxFloatingPaneCanvas\">\n\t\t<div dojoAttachPoint=\"containerNode\" waiRole=\"region\" tabindex=\"-1\" class=\"${contentClass}\">\n\t\t</div>\n\t\t<span dojoAttachPoint=\"resizeHandle\" class=\"dojoxFloatingResizeHandle\"></span>\n\t</div>\n</div>\n",_restoreState:{},_allFPs:[],postCreate:function(){this.setTitle(this.title);this.inherited("postCreate",arguments);var _1=new dojo.dnd.Moveable(this.domNode,{handle:this.focusNode});if(!this.dockable){this.dockNode.style.display="none";}if(!this.closable){this.closeNode.style.display="none";}if(!this.maxable){this.maxNode.style.display="none";this.restoreNode.style.display="none";}if(!this.resizable){this.resizeHandle.style.display="none";}else{var _2=dojo.marginBox(this.domNode);this.domNode.style.width=_2.w+"px";}this._allFPs.push(this);},startup:function(){this.inherited("startup",arguments);if(this.resizable){if(dojo.isIE){this.canvas.style.overflow="auto";}else{this.containerNode.style.overflow="auto";}var _3=new dojox.layout.ResizeHandle({targetId:this.id,resizeAxis:this.resizeAxis},this.resizeHandle);}if(this.dockable){tmpName=this.dockTo;if(this.dockTo){this.dockTo=dijit.byId(this.dockTo);}else{this.dockTo=dijit.byId("dojoxGlobalFloatingDock");}if(!this.dockTo){if(tmpName){var _4=tmpName;var _5=dojo.byId(tmpName);}else{var _5=document.createElement("div");dojo.body().appendChild(_5);dojo.addClass(_5,"dojoxFloatingDockDefault");var _4="dojoxGlobalFloatingDock";}this.dockTo=new dojox.layout.Dock({id:_4,autoPosition:"south"},_5);this.dockTo.startup();}if((this.domNode.style.display=="none")||(this.domNode.style.visibility=="hidden")){this.minimize();}}this.connect(this.focusNode,"onmousedown","bringToTop");this.connect(this.domNode,"onmousedown","bringToTop");},setTitle:function(_6){this.titleNode.innerHTML=_6;},close:function(){if(!this.closable){return;}dojo.unsubscribe(this._listener);this.hide(dojo.hitch(this,"destroy"));},hide:function(_7){dojo.fadeOut({node:this.domNode,duration:this.duration,onEnd:dojo.hitch(this,function(){this.domNode.style.display="none";this.domNode.style.visibility="hidden";if(this.dockTo){this.dockTo._positionDock(null);}if(_7){_7();}})}).play();},show:function(_8){var _9=dojo.fadeIn({node:this.domNode,duration:this.duration,beforeBegin:dojo.hitch(this,function(){this.domNode.style.display="";this.domNode.style.visibility="visible";this.dockTo._positionDock(null);if(this.dockTo){this.dockTo._positionDock(null);}if(typeof _8=="function"){_8();}this._isDocked=false;if(this._dockNode){this._dockNode.destroy();this._dockNode=null;}})}).play();this.resize(dojo.coords(this.domNode));},minimize:function(){if(!this._isDocked){this.hide(dojo.hitch(this,"_dock"));}},maximize:function(){if(this._maximized){return;}this._naturalState=dojo.coords(this.domNode);if(this._isDocked){this.show();setTimeout(dojo.hitch(this,"maximize"),this.duration);}dojo.addClass(this.focusNode,"floatingPaneMaximized");this.resize(dijit.getViewport());this._maximized=true;},_restore:function(){if(this._maximized){this.resize(this._naturalState);dojo.removeClass(this.focusNode,"floatingPaneMaximized");this._maximized=false;}},_dock:function(){if(!this._isDocked){this._dockNode=this.dockTo.addNode(this);this._isDocked=true;}},resize:function(_a){this._currentState=_a;var _b=this.domNode.style;_b.top=_a.t+"px";_b.left=_a.l+"px";_b.width=_a.w+"px";this.canvas.style.width=_a.w+"px";_b.height=_a.h+"px";this.canvas.style.height=(_a.h-this.focusNode.offsetHeight)+"px";},_startZ:100,bringToTop:function(){var _c=dojo.filter(this._allFPs,function(i){return i!==this;},this);_c.sort(function(a,b){return a.domNode.style.zIndex-b.domNode.style.zIndex;});_c.push(this);dojo.forEach(_c,function(w,x){w.domNode.style.zIndex=(this._startZ+x*2);dojo.removeClass(w.domNode,"dojoxFloatingPaneFg");},this);dojo.addClass(this.domNode,"dojoxFloatingPaneFg");},destroy:function(){this._allFPs.splice(dojo.indexOf(this._allFPs,this),1);this.inherited("destroy",arguments);}});dojo.declare("dojox.layout.Dock",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"dojoxDock\"><ul dojoAttachPoint=\"containerNode\" class=\"dojoxDockList\"></ul></div>",_docked:[],_inPositioning:false,autoPosition:false,addNode:function(_12){var div=document.createElement("li");this.containerNode.appendChild(div);var _14=new dojox.layout._DockNode({title:_12.title,paneRef:_12},div);_14.startup();return _14;},startup:function(){if(this.id=="dojoxGlobalFloatingDock"||this.isFixedDock){dojo.connect(window,"onresize",this,"_positionDock");dojo.connect(window,"onscroll",this,"_positionDock");if(dojo.isIE){dojo.connect(this.domNode,"onresize",this,"_positionDock");}}this._positionDock(null);this.inherited("startup",arguments);},_positionDock:function(e){if(!this._inPositioning){if(this.autoPosition=="south"){setTimeout(dojo.hitch(this,function(){this._inPositiononing=true;var _16=dijit.getViewport();var s=this.domNode.style;s.left=_16.l+"px";s.width=(_16.w-2)+"px";s.top=(_16.h+_16.t)-this.domNode.offsetHeight+"px";this._inPositioning=false;}),500);}}}});dojo.declare("dojox.layout._DockNode",[dijit._Widget,dijit._Templated],{title:"",paneRef:null,templateString:"<li dojoAttachEvent=\"onclick: restore\" class=\"dojoxDockNode\">"+"<span dojoAttachPoint=\"restoreNode\" class=\"dojoxDockRestoreButton\" dojoAttachEvent=\"onclick: restore\"></span>"+"<span class=\"dojoxDockTitleNode\" dojoAttachPoint=\"titleNode\">${title}</span>"+"</li>",restore:function(){this.paneRef.show();this.paneRef.bringToTop();this.destroy();}});}
