/*
	Copyright (c) 2004-2008, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojox.layout.ResizeHandle"]){dojo._hasResource["dojox.layout.ResizeHandle"]=true;dojo.provide("dojox.layout.ResizeHandle");dojo.experimental("dojox.layout.ResizeHandle");dojo.require("dijit._Widget");dojo.require("dijit._Templated");dojo.require("dojo.fx");dojo.declare("dojox.layout.ResizeHandle",[dijit._Widget,dijit._Templated],{targetId:"",targetContainer:null,resizeAxis:"xy",activeResize:false,activeResizeClass:"dojoxResizeHandleClone",animateSizing:true,animateMethod:"chain",animateDuration:225,minHeight:100,minWidth:100,templateString:"<div dojoAttachPoint=\"resizeHandle\" class=\"dojoxResizeHandle\"><div></div></div>",postCreate:function(){this.connect(this.resizeHandle,"onmousedown","_beginSizing");if(!this.activeResize){this._resizeHelper=dijit.byId("dojoxGlobalResizeHelper");if(!this._resizeHelper){var _1=document.createElement("div");_1.style.display="none";dojo.body().appendChild(_1);dojo.addClass(_1,this.activeResizeClass);this._resizeHelper=new dojox.layout._ResizeHelper({id:"dojoxGlobalResizeHelper"},_1);this._resizeHelper.startup();}}else{this.animateSizing=false;}if(!this.minSize){this.minSize={w:this.minWidth,h:this.minHeight};}this._resizeX=this._resizeY=false;switch(this.resizeAxis.toLowerCase()){case "xy":this._resizeX=this._resizeY=true;dojo.addClass(this.resizeHandle,"dojoxResizeNW");break;case "x":this._resizeX=true;dojo.addClass(this.resizeHandle,"dojoxResizeW");break;case "y":this._resizeY=true;dojo.addClass(this.resizeHandle,"dojoxResizeN");break;}},_beginSizing:function(e){if(this._isSizing){return false;}this.targetWidget=dijit.byId(this.targetId);this.targetDomNode=this.targetWidget?this.targetWidget.domNode:dojo.byId(this.targetId);if(this.targetContainer){this.targetDomNode=this.targetContainer;}if(!this.targetDomNode){return false;}if(!this.activeResize){var c=dojo.coords(this.targetDomNode,true);this._resizeHelper.resize({l:c.x,t:c.y,w:c.w,h:c.h});this._resizeHelper.show();}this._isSizing=true;this.startPoint={"x":e.clientX,"y":e.clientY};var mb=(this.targetWidget)?dojo.marginBox(this.targetDomNode):dojo.contentBox(this.targetDomNode);this.startSize={"w":mb.w,"h":mb.h};this._pconnects=[];this._pconnects.push(dojo.connect(document,"onmousemove",this,"_updateSizing"));this._pconnects.push(dojo.connect(document,"onmouseup",this,"_endSizing"));e.preventDefault();},_updateSizing:function(e){if(this.activeResize){this._changeSizing(e);}else{var _6=this._getNewCoords(e);if(_6===false){return;}this._resizeHelper.resize(_6);}e.preventDefault();},_getNewCoords:function(e){try{if(!e.clientX||!e.clientY){return false;}}catch(e){return false;}this._activeResizeLastEvent=e;var dx=this.startPoint.x-e.clientX;var dy=this.startPoint.y-e.clientY;var _a=(this._resizeX)?this.startSize.w-dx:this.startSize.w;var _b=(this._resizeY)?this.startSize.h-dy:this.startSize.h;if(this.minSize){if(_a<this.minSize.w){_a=this.minSize.w;}if(_b<this.minSize.h){_b=this.minSize.h;}}return {w:_a,h:_b};},_changeSizing:function(e){var _d=this._getNewCoords(e);if(_d===false){return;}if(this.targetWidget&&typeof this.targetWidget.resize=="function"){this.targetWidget.resize(_d);}else{if(this.animateSizing){var _e=dojo.fx[this.animateMethod]([dojo.animateProperty({node:this.targetDomNode,properties:{width:{start:this.startSize.w,end:_d.w,unit:"px"}},duration:this.animateDuration}),dojo.animateProperty({node:this.targetDomNode,properties:{height:{start:this.startSize.h,end:_d.h,unit:"px"}},duration:this.animateDuration})]);_e.play();}else{dojo.style(this.targetDomNode,"width",_d.w+"px");dojo.style(this.targetDomNode,"height",_d.h+"px");}}},_endSizing:function(e){dojo.forEach(this._pconnects,dojo.disconnect);if(!this.activeResize){this._resizeHelper.hide();this._changeSizing(e);}this._isSizing=false;this.onResize(e);},onResize:function(e){}});dojo.declare("dojox.layout._ResizeHelper",dijit._Widget,{startup:function(){if(this._started){return;}this.inherited(arguments);},show:function(){dojo.fadeIn({node:this.domNode,duration:120,beforeBegin:dojo.hitch(this,function(){this.domNode.style.display="";})}).play();},hide:function(){dojo.fadeOut({node:this.domNode,duration:250,onEnd:dojo.hitch(this,function(){this.domNode.style.display="none";})}).play();},resize:function(dim){dojo.marginBox(this.domNode,dim);}});}