// JavaScript Document
if ( ! window.Prototype )
	throw new Exception('Can\'t work without prototype');

if ( ! window.hensam )
	var hensam = { Projects : { mehrdafon : {} } };
else if ( ! (hensam.Projects ) )
	hensam.Projects = { mehrdafon : {} } ;
else if ( ! hensam.Projects.mehrdafon  )
	hensam.Projects.mehrdafon = {};
	
hensam.Projects.mehrdafon.Features = Class.create({
	containerId : 'featurelist',
	openLinkPath : 'tr.featureTeaser a',
	hiddenClassName : 'hidden',
	contentClassName : 'featureListing',
	holderElementType : 'tr',
	
	toggleListingVisibility : function(indicator) {
		var holder = this.holderElementType;
		var currentTr = indicator.up(holder);
		currentTr = currentTr.next(holder);
		
		do
		{
			currentTr.toggleClassName(this.hiddenClassName);
			currentTr = currentTr.next(holder);
			doLoop = currentTr && currentTr.hasClassName(this.contentClassName);
		}
		while ( currentTr && currentTr.hasClassName(this.contentClassName) );
		
		var newText = indicator.hasClassName('hideThem') ? 'anzeigen' : 'ausblenden';
		
		indicator.toggleClassName('hideThem');
		indicator.update('Features '+newText);
	},
	
	toggleListingClicked_EventHandler : function(event) {
		event.stop();
		indicator = event.element();
		this.toggleListingVisibility(indicator);
	},
	
	domLoaded_EventHandler : function(event) {
		if ( ! $(this.containerId) )
		{
			return;
		}
		$$(this.openLinkPath).each(function(indicator) {
			indicator.observe('click', this.toggleListingClicked_EventHandler.bindAsEventListener(this));
		}, this);
		var contents = this.holderElementType+'.'+this.contentClassName;
		$$(contents).each(function(holder) {
			holder.addClassName(this.hiddenClassName);
		}, this);
	},
	
	initialize : function() {
		Event.observe(document, 'dom:loaded', this.domLoaded_EventHandler.bindAsEventListener(this));
	}
});

new hensam.Projects.mehrdafon.Features();
