if (typeof(AC) == "undefined") { AC = {}; }


AC.ShingleDrawer = Class.create();
Object.extend(Object.extend(AC.ShingleDrawer.prototype, AC.Drawer.prototype), {
	openedOffset: 0,
	closedOffset: 0,
	previousDrawer: null,
	nextDrawer: null,
	isVisible: false,
	trigger: 			function(){if(!this.isVisible){this.open(true);this.indicateVisible();}},
	toggle: 			function(){if(!this.isOpen){this.open();this.indicateVisible();} else {this.close();}},
	open: 				function(force) 
						{
							if(this.isOpen && !force){return;}
							if(this.previousDrawer !== null){this.previousDrawer.close();this.previousDrawer.indicateObscured();}
							if(this.nextDrawer !== null) {this.nextDrawer.open();this.nextDrawer.indicateObscured();}
							this.indicateVisible();
							this.isOpen = true;
							this.bureau.moveDrawer(this.contentElement, 0, this.openedOffset);
						},
	
	close: 				function(force) 
						{
							if(!this.isOpen) {return;}
							if(this == this.bureau.getLastDrawer()){return;}
							if(this.previousDrawer !== null){this.previousDrawer.close();}
							this.bureau.moveDrawer(this.contentElement, 0, this.closedOffset);
							this.indicateObscured();
							this.isOpen = false;
						},
	setPreviousDrawer:  function(drawer) 
						{
							this.previousDrawer = drawer;
							this.indicateObscured();
							this.openedOffset = this.previousDrawer.openedOffset + this.previousDrawer.getHandleHeight() - 10;
							Element.setStyle(this.contentElement, {top: this.openedOffset + "px"});
						},
	setNextDrawer: 		function(drawer) 
						{
							this.nextDrawer = drawer;
							Element.removeClassName(this.contentElement, 'last');
							if(this.previousDrawer != null){this.previousDrawer.setNextDrawer(this);}
							zIndex = parseInt(Element.getStyle(this.contentElement, 'zIndex'));
							Element.setStyle(this.contentElement, {'zIndex': zIndex + 1});
						},
	indicateObscured: 	function(){Element.addClassName(this.contentElement, 'obscured');this.isVisible = false;},
	indicateVisible: 	function(){this.isVisible = true;Element.removeClassName(this.contentElement, 'obscured');},
	getHandleWidth: 	function(){return Element.getWidth(this.handle);},
	getHandleHeight: 	function(){return Element.getHeight(this.handle);},
	getWidth: 			function(){return Element.getWidth(this.contentElement);},
	getHeight: 			function(){return Element.getHeight(this.contentElement);}
});
