var ContentToggle = {
	init: function(frontEls,backEls,closeEls){
		ContentToggle.fronts = frontEls;
		ContentToggle.backs = backEls;
		ContentToggle.closers = closeEls;
		
		
		ContentToggle.closers.addEvent('click', ContentToggle.closeBlock);
		
		ContentToggle.fronts.addEvent('click', ContentToggle.toggle);
		ContentToggle.backs.addEvent('click', ContentToggle.toggle);
	},
	
	toggle:function(e){
		if(e.target.tagName == 'A' && !e.target.hasClass('front-trigger')){
			return;
		}
		e.stop();
		var element = this;
		
		
		if(this.hasClass('front')){
			
			//turn off all backs
			for(var i = 0; i < ContentToggle.backs.length;i++){
				if(!ContentToggle.backs[i].hasClass('hide')){
					ContentToggle.backs[i].addClass('hide');
				}
				
				if(ContentToggle.fronts.hasClass('hide')){
					ContentToggle.fronts.removeClass('hide');
					ContentToggle.fronts.setStyle('opacity',1);
				}
				
			}
			
			
			for(var i = 0; i < ContentToggle.fronts.length;i++){
				if(ContentToggle.fronts[i] == this) {
					var targetNum = i;	
				}
			}
			
			var targetBack = ContentToggle.backs[targetNum];
			targetBack.setStyle('opacity', 0);
			var fadeOut = new Fx.Morph(this,{duration:300, onComplete:function(){
				element.addClass('hide');
				targetBack.removeClass('hide');
				new Fx.Morph(targetBack, {duration:300}).start({'opacity': 1});
			}});
			
			fadeOut.start({'opacity': 0});
		} else {
			
			for(var i = 0; i < ContentToggle.fronts.length;i++){
				if(ContentToggle.backs[i] == this) {
					var targetNum = i;	
				}
			}
			
			var targetFront = ContentToggle.fronts[targetNum];
			var fadeOut = new Fx.Morph(this,{duration:300, onComplete:function(){
				for(var i = 0; i < ContentToggle.backs.length;i++){
					ContentToggle.backs[i].addClass('hide');	
				}
				targetFront.removeClass('hide');
				new Fx.Morph(targetFront, {duration:300}).start({'opacity': 1});
			}});
			
			fadeOut.start({'opacity': 0});
		}
	},
	
	closeBlock: function(e){
		e.stop();
		var elToClose = this.getParent().getParent();
		for(var i = 0; i < ContentToggle.backs.length;i++){
			if(ContentToggle.backs[i] == elToClose){
				var targetEl = ContentToggle.fronts[i];
			}	
		}
		
		var fadeOut = new Fx.Morph(targetEl,{duration:400, onComplete:function(){
				
				elToClose.addClass('hide');	
				
				targetEl.removeClass('hide');
				new Fx.Morph(targetEl, {duration:400}).start({'opacity': 1});
			}});
			
			fadeOut.start({'opacity': 0});
	}
}
		
