if(typeof (AC)=="undefined"){AC={}

}

 

 AC.Bureau=Class.create();Object.extend(AC.Bureau.prototype,Event.Listener);Object.extend(AC.Bureau.prototype,{drawers:null,container:null,triggerTimeout:null,initialize:function(A){this.drawers=[];this.container=$(A)}

 ,addDrawer:function(A){}

 ,getDrawerCount:function(){return this.drawers.length}

 ,hasDrawers:function(){return(this.drawers.length>0)}

 ,getFirstDrawer:function(){return this.drawers[0]||null}

 ,getLastDrawer:function(){return this.drawers[this.drawers.length-1]||null}

 ,scheduleTrigger:function(B,A){this.triggerTimeout=setTimeout(B,A)}

 ,clearTrigger:function(){clearTimeout(this.triggerTimeout)}

 }

 );AC.Drawer=Class.create();Object.extend(AC.Drawer.prototype,Event.Publisher);Object.extend(AC.Drawer.prototype,{bureau:null,contentElement:null,handle:null,indicator:null,isOpen:true,beforeOpen:null,afterOpen:null,beforeClose:null,afterClose:null,transitionDuration:0.3,triggerDelay:0,initialize:function(F,D,B,C){this.contentElement=$(F);this.handle=$(D);this.bureau=B;var E="click";if(C!==null&&typeof (C)!="undefined"){this.beforeOpen=C.beforeOpen;this.afterOpen=C.afterOpen;this.beforeClose=C.beforeClose;this.afterClose=C.afterClose;if(typeof (C.triggerEvent)!="undefined"){E=C.triggerEvent}

 if(typeof (C.triggerDelay)!="undefined"){this.triggerDelay=C.triggerDelay}

 if(typeof (C.transitionDuration)!="undefined"){this.transitionDuration=C.transitionDuration}

 }

 if(AC.Detector.isiPhone()){this.transitionDuration=0;E="click"}

 Element.addClassName(this.contentElement,"last");var A=function(G){if(AC.Detector.isiPhone()&&(this.isOpen&&(this.isVisible===true))&&this.handle.tagName.match(/a/i)){return }

 Event.stop(G);if(this.triggerDelay>0){var H=this.trigger.bind(this);B.scheduleTrigger(H,this.triggerDelay)}

 else{this.trigger()}

 }

 ;Event.observe(this.handle,E,A.bind(this),false);Event.observe(this.handle,"mouseout",B.clearTrigger.bind(B),false)}

 ,toggle:function(){}

 ,open:function(){}

 ,close:function(){}

 }

 );AC.SlidingBureau=Class.create();Object.extend(AC.SlidingBureau.prototype,AC.Bureau.prototype);Object.extend(AC.SlidingBureau.prototype,{isLocked:false,addDrawer:function(B){
	 
	 Element.addClassName(B.contentElement,"last");
	 Element.addClassName(B.handle,"last");
	 if(this.hasDrawers()){var A=this.getLastDrawer();A.setNextDrawer(B);B.setPreviousDrawer(A)}

 else{Element.addClassName(B.contentElement,"first");Element.addClassName(B.handle,"first")}
 

 this.listenForEvent(B,"beforeOpen",false,function(C){var D=C.event_data.data;this.open(D)}

 );this.listenForEvent(B,"afterOpen",false,function(C){var D=C.event_data.data;this.acknowledgeOpened(D)}

 );this.listenForEvent(B,"beforeClose",false,function(C){var D=C.event_data.data;

 //if(!Element.hasClassName(this.contentElement,"stayopen"))
 this.close(D)
 }

 );this.listenForEvent(B,"afterClose",false,function(C){var D=C.event_data.data;this.acknowledgeClosed(D)}

 );if(!Element.hasClassName(B.contentElement,"open")){B.initiateClose()}

 else{this.currentDrawer=B}

 this.drawers.push(B)}

 ,open:function(A){if(this.isLocked){return }

 this.isLocked=true;var C=0;if(Element.getStyle(this.container,"position")=="relative"){var B=Element.getDimensions(this.container);Element.setStyle(this.container,{height:B.height+"px"}

 );this.wedgeDrawersAfter(A);C=Element.getStyle(A.contentElement,"min-height");if(C){Element.setStyle(A.contentElement,{"min-height":"0px",height:C}

 )}

 }

 if(this.currentDrawer){
	 //alert(this.currentDrawer.contentElement.className);
	 //alert(Element.hasClassName(this.currentDrawer.contentElement,"stayopen"));
	 this.currentDrawer.initiateClose()}

 A.open(C)}

 ,acknowledgeOpened:function(A){this.currentDrawer=A;if(Element.getStyle(this.container,"position")=="relative"){if(!AC.Detector.isIEStrict()){Element.setStyle(this.container,{height:"auto"}

 )}

 this.unwedgeDrawers()}

 this.isLocked=false}

 ,close:function(A){

	 var B=0;
	 if(!Element.hasClassName(A.contentElement,"stayopen")){
		 if(Element.getStyle(this.container,"position")=="relative"){
			 B=Element.getStyle(A.contentElement,"min-height");
			 if(B){
				 Element.setStyle(A.contentElement,{height:B,"min-height":"0px"})
			 }
		  }
	
		  A.close(B)
	 }
	
	
	 
 }

 ,acknowledgeClosed:function(A){if(A==this.currentDrawer){this.currentDrawer=null}

 }

 ,wedgeDrawersAfter:function(D){var A=function(E,F){Element.setStyle(E.handle,{position:"absolute",bottom:F+"px"}

 )}

 ;var B=this.getLastDrawer();var C=0;while(B!=this.currentDrawer&&B!=D){A(B,C);C+=B.handle.getHeight();B=B.previousDrawer}

 }

 ,unwedgeDrawers:function(){for(var A=this.drawers.length-1;A>=0;A--){Element.setStyle(this.drawers[A].handle,{position:"static"}

 )}

 }

 }

 );AC.SlidingDrawer=Class.create();Object.extend(AC.SlidingDrawer.prototype,AC.Drawer.prototype);Object.extend(AC.SlidingDrawer.prototype,{isOpen:true,isTransitioning:false,setNextDrawer:function(A){this.nextDrawer=A;Element.removeClassName(this.contentElement,"last");Element.removeClassName(this.handle,"last")}

 ,setPreviousDrawer:function(A){this.previousDrawer=A}

 ,trigger:function(){this.toggle()}

 ,toggle:function(){if(!this.isOpen){this.initiateOpen()}

 }

 ,initiateOpen:function(){if(this.isTransitioning||this.isOpen){return }

 this.dispatchEvent("beforeOpen",this)}

 ,open:function(C){this.isTransitioning=true;if(typeof (this.beforeOpen)=="function"){this.beforeOpen(this)}

 Element.addClassName(this.contentElement,"open");Element.addClassName(this.handle,"open");var B=function(){this.isOpen=true;if(C){Element.setStyle(this.contentElement,{"min-height":C}

 );if(!AC.Detector.isIEStrict()){Element.setStyle(this.contentElement,{"height":"auto"}

 )}

 }

 this.dispatchEvent("afterOpen",this);this.isTransitioning=false;if(typeof (this.afterOpen)=="function"){this.afterOpen(this)}

 }

 .bind(this);if(AC.Detector.isiPhone()){this.contentElement.show();B()}

 else{var A=new Effect.BlindDown(this.contentElement,{duration:this.transitionDuration,afterFinish:B}

 )}

 }

 ,initiateClose:function(A)
 {
	if(this.isTransitioning||!this.isOpen)
	{return }

	this.dispatchEvent("beforeClose",this)
 }

	,close:function(C){
		this.isTransitioning=true;
		if(typeof (this.beforeClose)=="function")
		{this.beforeClose(this)}

	var B=function(){
		//if(!Element.hasClassName(this.contentElement,"stayopen")){
		this.isOpen=false;
		Element.removeClassName(this.contentElement,"open");
		Element.removeClassName(this.handle,"open");
		if(C){Element.setStyle(this.contentElement,{"min-height":C});
		
		if(!AC.Detector.isIEStrict()){Element.setStyle(this.contentElement,{"height":"auto"}
		
		)}



}
this.dispatchEvent("afterClose",this);
this.isTransitioning=false;if(typeof (this.afterClose)=="function"){this.afterClose(this)}
}
//}

.bind(this);if(AC.Detector.isiPhone()){this.contentElement.hide();B()
}else{
	var A=new Effect.BlindUp(this.contentElement,{duration:this.transitionDuration,afterFinish:B})
}

}

	

 }

 );AC.ShingleBureau=Class.create();Object.extend(Object.extend(AC.ShingleBureau.prototype,AC.Bureau.prototype),{drawerDuration:0.5,addDrawer:function(B){if(this.hasDrawers()){var A=this.getLastDrawer();A.setNextDrawer(B);B.setPreviousDrawer(A);B.closedOffset=A.closedOffset+A.getHandleHeight()-10}

 else{Element.addClassName(B.contentElement,"first");B.closedOffset=0-B.getHeight()+B.getHandleHeight()-10;B.indicateVisible()}

 this.drawers.push(B)}

 ,getWidth:function(){return Element.getWidth(this.container)}

 ,getHeight:function(){return Element.getHeight(this.container)}

 ,moveDrawer:function(C,A,D){var B=new Effect.Move(C,{x:A,y:D,mode:"absolute",transition:Effect.Transitions.sinoidal,duration:this.drawerDuration}

 )}

 }

 );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(A){if(this.isOpen&&!A){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(A){
	 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(A){this.previousDrawer=A;this.indicateObscured();this.openedOffset=this.previousDrawer.openedOffset+this.previousDrawer.getHandleHeight()-10;Element.setStyle(this.contentElement,{top:this.openedOffset+"px"}

 )}

 ,setNextDrawer:function(A){this.nextDrawer=A;Element.removeClassName(this.contentElement,"last");if(this.previousDrawer!==null){this.previousDrawer.setNextDrawer(this)}

 zIndex=parseInt(Element.getStyle(this.contentElement,"zIndex"),10);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)}

 }

 );AC.SectionBureau=Class.create();Object.extend(AC.SectionBureau.prototype,AC.Bureau.prototype);Object.extend(AC.SectionBureau.prototype,{currentDrawer:null,locked:false,addDrawer:function(A){this.drawers.push(A);Element.addClassName(A.handle,"obscured");Element.hide(A.contentElement)}

 ,openingDrawer:function(A){if(this.currentDrawer!==null){this.currentDrawer.close()}

 this.currentDrawer=A}

 }

 );AC.SectionDrawer=Class.create();Object.extend(AC.SectionDrawer.prototype,AC.Drawer.prototype);Object.extend(AC.SectionDrawer.prototype,{isOpen:false,trigger:function(){this.toggle()}

 ,toggle:function(){if(!this.isOpen){this.open()}

 }

 ,open:function(){if(this.bureau.locked){return }

 var B=function(){Element.show(this.contentElement)}

 .bind(this);if(typeof (this.afterOpen)=="function"){this.bureau.locked=true;B=this.afterOpen.bind(this)}

 this.bureau.openingDrawer(this);if(typeof (this.beforeOpen)=="function"){this.beforeOpen()}

 this.isOpen=true;Element.removeClassName(this.handle,"obscured");var A=new Effect.Appear(this.contentElement,{afterFinish:B,duration:this.transitionDuration,queue:{scope:"sectionalscope"}

 }

 )}

 ,close:function(){if(typeof (this.beforeClose)=="function"){this.beforeClose()}

 this.isOpen=false;Element.addClassName(this.handle,"obscured");var A=function(){if(typeof (this.afterClose)=="function"){this.afterClose()}

 }

 .bind(this);var B=new Effect.Fade(this.contentElement,{afterFinish:A,duration:this.transitionDuration,queue:{scope:"sectionalscope"}

 }

 )}

 ,reportFinishedOpening:function(){this.bureau.locked=false}

 }

 )
