var panel=(function(){
	
	var groups=[];
	
	var getActive=function(key){
		
		return groups[key].active;
		
	};
	
	var closeActive=function(key, e){
		
		var activePanel=getActive(key);
		
		if(!!activePanel){
			
			utils.replaceClass(activePanel, 'open', 'closed');
			groups[key].active=null;
			
		}
		
		if(typeof e != 'undefined'){
			
			utils.stopPropagation(e);
			
		}
		
	};
	
	var open=function(key, thePanel, e){
		
		closeActive(key, e);
		utils.replaceClass(thePanel, 'closed', 'open');
		groups[key].active=thePanel;
		
	};
	
	var setup=function(key, thePanel, closeHit, openHit){
		
		utils.addEvent(thePanel, 'mousedown', utils.stopPropagation, false);
		
		if(typeof groups[key] == 'undefined'){
			
			utils.addEvent(closeHit, 'mousedown', function(e){
				
				closeActive(key, e);
				
			}, false);
			
			groups[key]={};
			
		}
		
		if(typeof openHit != 'undefined'){
			
			utils.addEvent(openHit, 'mousedown', function(e){
				
				open(key, thePanel, e);
				
			}, false);
			
		}
		
	};
	
	return {
		
		getActive: getActive, closeActive: closeActive, open: open, setup: setup
		
	};
	
}());
