sbh_Nav = Class.create();

sbh_Nav.sloganPath = '/_templates/sbh-1.1/media/saetze/';
sbh_Nav.navImgPath = '/_templates/sbh-1.1/media/navigation/';
sbh_Nav.navItems   = new Object();
sbh_Nav.images     = new Object();

/** Zeigt Satz des aufrufenden Elements an */
sbh_Nav.showSlogan = function(ev, itemId) {
	if (sbh_Nav.navItems[itemId] && sbh_Nav.navItems[itemId].length > 0) {
		var itm = $(itemId);
		if (itm) {
			var img = document.createElement("img");
			img.src = sbh_Nav._getImgSrc(itemId);
					
			if (sbh_Nav.images[itemId]) { // Img-Element ersetzen	
				// Vergleich muss über src-Eigenschaft gemacht werden. Mit String nicht möglich.
				while(img.src == sbh_Nav.images[itemId].src) {
					img.src = sbh_Nav._getImgSrc(itemId);
				}
				itm.replaceChild(img, sbh_Nav.images[itemId]);
			} else { // Img-Element neu erstellen
				itm.appendChild(img);
			}
			sbh_Nav.images[itemId] = img;
			img.className = 'sloganShow';
			img = null;
		}
		itm = null;
	}
}

sbh_Nav.hideSlogan = function(ev, itemId) {
	if (sbh_Nav.images[itemId]) {
		sbh_Nav.images[itemId].className = 'sloganHide';
	}
}

sbh_Nav.loTitle = function() {	
	sbh_Nav._setTitleClassname('niStahlb', 'passive');
	sbh_Nav._setTitleClassname('niImSchilf', 'passive');	
}


sbh_Nav.hiTitle = function() {
	sbh_Nav._setTitleClassname('niStahlb', 'active');
	sbh_Nav._setTitleClassname('niImSchilf', 'active');
}

sbh_Nav._setTitleClassname = function(id, className) {
	var elem = $(id);
	if (elem) {
		var div = elem.getElementsByTagName('div')[0];
		if (div) {
			div.className = className;
		}
		div = null;
	}
	elem = null;	
}

/** Iteriert über NavItems und fügt onmouseover/onmouseout-Event an. */
sbh_Nav._registerEvents = function() {
	var ni;
	for (var niId in sbh_Nav.navItems) {
		ni = $(niId);
		if (ni) {
			var a = ni.getElementsByTagName('a')[0];
			if (a) {			
				Event.observe(a, 'mouseover', sbh_Nav.showSlogan.bindAsEventListener(this, niId));
				Event.observe(a, 'mouseout', sbh_Nav.hideSlogan.bindAsEventListener(this, niId));				

				// Deaktiviert
				//Event.observe(a, 'mouseover', sbh_Nav.loTitle);
				//Event.observe(a, 'mouseout', sbh_Nav.hiTitle);
			}
			a = null;
		}
		ni = null;
	}
}

/** Gibt zum Item gehörende ImgSrc per Zufall zurück */
sbh_Nav._getImgSrc = function(itemId) {
	if (sbh_Nav.navItems[itemId]) {
		var index = sbh_Nav._rand(sbh_Nav.navItems[itemId].length) - 1;
		return sbh_Nav.sloganPath + sbh_Nav.navItems[itemId][index];
	}
}

/** Gibt Zahl zwischen 0 und range zurück */
sbh_Nav._rand = function(range) {
	return (Math.floor( Math.random()*range + 1 ));
}

/** Initialisierung */
sbh_Nav.init = function() {
	// Navigation Items
	sbh_Nav.navItems['niText']    = new Array('text_01.png', 'text_02.png', 'text_03.png', 'text_04.png', 'text_05.png');
	sbh_Nav.navItems['niBilder']  = new Array('bilder_01.png', 'bilder_02.png', 'bilder_03.png', 'bilder_04.png', 'bilder_05.png');
	sbh_Nav.navItems['niTour']    = new Array('tour_01.png', 'tour_02.png', 'tour_03.png', 'tour_04.png', 'tour_05.png');
	sbh_Nav.navItems['niShop']    = new Array('shop_01.png', 'shop_02.png', 'shop_03.png', 'shop_04.png', 'shop_05.png');
	sbh_Nav.navItems['niKontakt'] = new Array('kontakt_01.png', 'kontakt_02.png', 'kontakt_03.png', 'kontakt_04.png', 'kontakt_05.png');
	sbh_Nav.navItems['niUnterst'] = new Array();

	sbh_Nav._registerEvents();
	
	// Preload
	var navPreloads = new Array(
		'stahlbergerheuss.png', 'im-schilf.png', 'aktiv/bilder.png', 'aktiv/kontakt.png',
		'aktiv/shop.png', 'aktiv/text.png', 'aktiv/tour.png', 'aktiv/unterst.png'
	);
	var preloads = new Object();
	for (var i = 0; i < navPreloads.length; i++) {
		preloads[i] = new Image();
		preloads[i].src = sbh_Nav.navImgPath + navPreloads[i];
	}
	var preloads = null;
}

Event.observe(window, 'load', sbh_Nav.init);
