Toggler={
	boxClassName:'toggler',
	
	controllerClassName:'controller',
	controllerCollapsedClassName:'controller-collapsed',
	controllerInitCollapsedClassName:'init-collapsed',
	
	containerClassName:'container',
	containerInitCollapsedClassName:'init-collapsed',

	init:function(){
		Toggler.initTogglers();
	},
	
	initTogglers:function(){
		var togglers=YAHOO.util.Dom.getElementsByClassName(Toggler.boxClassName);
		for(var i=0;i<togglers.length;i++){
			Toggler.initControllers(togglers[i]);
		}
	},
	
	initControllers:function(toggler){
		var controllers=YAHOO.util.Dom.getElementsByClassName(Toggler.controllerClassName, null, toggler);
		for(var i=0;i<controllers.length;i++){
			Toggler.initContainers(controllers[i]);
		}
	},
	
	initContainers:function(controller){
		var container=YAHOO.util.Dom.getNextSiblingBy(controller, function(element){
			return YAHOO.util.Dom.hasClass(element, Toggler.containerClassName);
		});
		
		if(container){
			YAHOO.util.Event.addListener(controller, 'click', Toggler.toggle, {controller:controller, container:container});
			
			if(YAHOO.util.Dom.hasClass(controller, Toggler.controllerInitCollapsedClassName) 
				|| YAHOO.util.Dom.hasClass(container, Toggler.containerInitCollapsedClassName)){
				YAHOO.util.Dom.removeClass(controller, Toggler.controllerInitCollapsedClassName);
				YAHOO.util.Dom.removeClass(container, Toggler.containerInitCollapsedClassName);
				Toggler.hide(controller, container);
			}
		}
	},
	
	toggle:function(e, o){
		if(YAHOO.util.Dom.hasClass(o.controller, Toggler.controllerCollapsedClassName)){
			Toggler.reveal(o.controller, o.container);
		}else{
			Toggler.hide(o.controller, o.container);
		}
	},
	
	reveal:function(controller, container){
		YAHOO.util.Dom.removeClass(controller, Toggler.controllerCollapsedClassName);
		container.style.display='';
	},
	
	hide:function(controller, container){
		YAHOO.util.Dom.addClass(controller, Toggler.controllerCollapsedClassName);
		container.style.display='none';
	}
}

YAHOO.util.Event.onDOMReady(Toggler.init);
