// <script>
/* Bereiche
 *
 * @version 2.2
 * @author Matthias Viehweger <kronn@kronn.de>
 */
var Bereiche = {
	count: 0,
	fieldlist: new Array(),
	helpfield: '',
	init: function() {
		// auf Funktionen pr�fen
		if (!document.getElementsByTagName) return;
		if (!document.getElementById) return;

		// alle Unterhilfetexte verstecken.
		Bereiche.helpfield = $('adminhelp');
		Bereiche.hideAllHelp();

		// alle Felder finden und verstecken
		var fields = document.getElementsByTagName('fieldset');
		for (var i = 0; i < fields.length; i++ ) {
			// individuell einstellbare Textbereiche anzeigen oder verstecken
			if ( Element.hasClassName(fields[i], 'bereich_indiv') ) {
				if ( !Element.hasClassName(fields[i], 'unsichtbar') && !Element.hasClassName(fields[i], 'sichtbar') ) {
					Bereiche.show(fields[i]);
				}
				base.addEvent(fields[i].firstChild, 'click', Bereiche.toggleIndiv, false);
			// statische Textbereiche anzeigen
			} else if ( Element.hasClassName(fields[i], 'bereich_static') ) {
				Bereiche.show(fields[i]);
				Element.addClassName(fields[i], 'spalte2');
			}

			if ( Element.hasClassName(fields[i], 'bereich_static') || Element.hasClassName(fields[i], 'bereich_indiv') ) continue;

			if ( fields[i].id != '' ) {
				Bereiche.hide(fields[i]);
				base.addEvent(fields[i].firstChild, 'click', Bereiche.getToggle, false);
				Bereiche.fieldlist.push(fields[i]);
			}
		}
		Bereiche.count = Bereiche.count + Bereiche.fieldlist.length;
		// ggf. ausgewähltes Feld anzeigen
		var chosen = window.location.hash;
		if( chosen.length > 1 ) {
			window.scrollTo(0,0);
			chosen = document.getElementById(chosen.substr(1,chosen.length));
			Bereiche.show(chosen);
		} else if( Bereiche.fieldlist.length > 0 ) {
			Bereiche.show(Bereiche.fieldlist[0]);
		}
	},

	getToggle: function(e) {
		var target = window.event ? window.event.srcElement : e ? e.target : null;
		if (!target) return;

		target = target.parentNode;
		Bereiche.doToggle(target);
	},
	toggle: function(targetid) {
		target = $(targetid);
		Bereiche.doToggle(target);
	},
	doToggle: function(target) {
		// wenn sichtbar, dann verstecken und Funktion verlassen
		if ( Element.hasClassName(target, 'sichtbar') ) {
			Bereiche.hide(target);
			Bereiche.count--;
			return true;
		}

		// ggf. offene Bereiche verstecken
		if ( Bereiche.count >= 1 ) {
			for( var i = 0; i < Bereiche.fieldlist.length; i++ ) {
				if ( Element.hasClassName(Bereiche.fieldlist[i], 'unsichtbar') ) continue;

				Bereiche.hide( Bereiche.fieldlist[i] );
				Bereiche.count--;
			}
		}

		// gewählten Bereich zeigen
		Bereiche.show(target);
		Bereiche.count++;
	},
	toggleIndiv: function(e) {
		var target = window.event ? window.event.srcElement : e ? e.target : null;
		if (!target) return;
		target = target.parentNode;
		// verstecken oder anzeigen
		if ( !Element.hasClassName(target, 'sichtbar') ) {
			Bereiche.show(target);
		} else {
			Bereiche.hide(target);
		}
	},

	hide: function(field) {
		if ( Element.hasClassName(field, 'sichtbar') ) {
			Element.removeClassName(field, 'sichtbar');
		}
		Element.addClassName(field, 'unsichtbar');

		// evtl. Hilfetexte verstecken
		// Bereiche.hideAllHelp();
	},
	show: function(field) {
		if ( Element.hasClassName(field, 'unsichtbar') ) {
			Element.removeClassName(field, 'unsichtbar');
		}
		Element.addClassName(field, 'sichtbar');

		// passende Hilfe anzeigen
		Bereiche.showHelp(field.id);
	},

	showHelp: function(helpid) {
		var returnval = false;
		if ( !Bereiche.helpfield ) return returnval;
		Bereiche.hideAllHelp();
		// nur einen bestimmten Text im Feld "hilfe" anzeigen
		var helpfields = Bereiche.helpfield.getElementsByTagName('div');
		for (var i = 0; i < helpfields.length; i++) {
			if ( helpfields[i].className == 'hidden' &&
			     (' ' + helpfields[i].getAttribute('rel') + ' ').indexOf(' '+helpid+' ') != -1 ) {
				helpfields[i].className = '';
				new Effect.Appear(helpfields[i]);
				returnval = true;
			}
		}
		return returnval;
	},
	hideAllHelp: function() {
		// alle Hilfetexte verstecken
		if ( !Bereiche.helpfield ) return;
		var helpfields = Bereiche.helpfield.getElementsByTagName('div');
		for ( var i = 0; i < helpfields.length; i++ ) {
			if ( helpfields[i].className == '' ) helpfields[i].className = 'hidden';
		}
		var helpheadings = Bereiche.helpfield.getElementsByTagName('h4');
		for ( var i = 0; i < helpheadings.length; i++ ) {
			if ( helpheadings[i].className == '' ) helpheadings[i].style.display = 'none';
		}
	}
}
base.addEvent(window, 'load', Bereiche.init, false);
if( window.location.hash != '' ) { window.scrollTo(0,0) }
