/****************\
 * DropDownNavi 
\*'**************/
function showItem(element){
	$(element).addClassName("hover");

	var mouse_out_event_name = Prototype.Browser.IE?'mouseleave':'mouseout';

	$(element).observe(mouse_out_event_name, function() {
		$(element).removeClassName("hover");
	});
		

	/*if ( Prototype.Browser.IE && (typeof window.XMLHttpRequest == "undefined")){
		var nodes = $('contentfolge').getElementsBySelector('select');
		nodes.each(function(s) {
			  s.addClassName("hidden");
		});
	}*/

}

function showItemSub(element){
	$(element).addClassName("hoverIE");

	var mouse_out_event_name = Prototype.Browser.IE?'mouseleave':'mouseout';

	$(element).observe(mouse_out_event_name, function() {
		$(element).removeClassName("hoverIE");
	});
		

	/*if ( Prototype.Browser.IE && (typeof window.XMLHttpRequest == "undefined")){
		var nodes = $('contentfolge').getElementsBySelector('select');
		nodes.each(function(s) {
			  s.addClassName("hidden");
		});
	}*/

}

function hideItem(element){
	//$(element).removeClassName("hover");
	
	/*if ( Prototype.Browser.IE && (typeof window.XMLHttpRequest == "undefined")){
		var nodes = $('contentfolge').getElementsBySelector('select');
		nodes.each(function(s) {
			  s.removeClassName("hidden");
		});
	}*/
}

/**
 * Methode showItemHomeHover und hideItemHomeHover nur für IE6 notwendig, da Konstrukte wie li.home.hover NICHT unterstützt werden!!!!
 */
function showItemHomeHover(element){
	$(element).addClassName("homeHover");
	
	var mouse_out_event_name = Prototype.Browser.IE?'mouseleave':'mouseout';

	$(element).observe(mouse_out_event_name, function() {
		$(element).removeClassName("homeHover");
	});	
}
function hideItemHomeHover(element){
	//$(element).removeClassName("homeHover");
}

function triggerNavigationMenu(element){
	Element.addClassName(element, 'hover');
	
	Event.observe(Element.down(element,'ul'), 'mouseout', function(e) {
		if(!Position.within(Element.down(element,'ul'),Event.pointerX(e),Event.pointerY(e))) {
			$(element).removeClassName('hover');
		}
	});
}


function showItemShopHover(element){
	$(element).addClassName("shopHover");
	
	var mouse_out_event_name = Prototype.Browser.IE?'mouseleave':'mouseout';

	$(element).observe(mouse_out_event_name, function() {
		$(element).removeClassName("shopHover");
	});	
}

function hideSelectBoxes(){
	/*
	var selectBoxes = $$("#contentfolge .center select")//.invoke('hide');
	
	for (var loop = 0; loop < selectBoxes.length; loop++) {
		selectBoxes[loop].visible = 'hidden';
	}
	*/
	
	$$("#contentfolge .center select").each(function(item) { item.style.visibility = 'hidden'; });
}

function showSelectBoxes(){
	/*var selectBoxes = $$("#contentfolge .center select");//.invoke('show');
	
	for (var loop = 0; loop < selectBoxes.length; loop++) {
		selectBoxes[loop].setOpacity(100);
	}*/
	
	$$("#contentfolge .center select").each(function(item) { item.style.visibility = 'visible'; });

}

/* Methode für Ritec*/
function hideSelectBox(){
	/*
	var selectBoxes = $$("#contentfolge .center select")//.invoke('hide');
	
	for (var loop = 0; loop < selectBoxes.length; loop++) {
		selectBoxes[loop].visible = 'hidden';
	}
	*/
	
	$$("#main_content .content_middle select").each(function(item) { item.style.visibility = 'hidden'; });
}

function showSelectBox(){
	/*var selectBoxes = $$("#contentfolge .center select");//.invoke('show');
	
	for (var loop = 0; loop < selectBoxes.length; loop++) {
		selectBoxes[loop].setOpacity(100);
	}*/
	
	$$("#main_content .content_middle select").each(function(item) { item.style.visibility = 'visible'; });

}

/****************\
* Formularfelder leeren 
\*'**************/
function clearValue(feld) {

	document.forms['searchform'].elements[feld].value = "";
	return true;
}

/****************\
* Standortkarte anzeigen
\*'**************/
function showplacesmap(element){
	$('placesmap').show();
	$(element).up('li').addClassName('act');
}

/****************\
* Standortkarte verstecken
\*'**************/
function hideplacesmap(){
	$('placesmap').hide();	

	$('places').down('li').removeClassName('act');
}

/**
* Methode selektiert den Knoten mit dem Namen <code>prefix+nodeName</code> und setzt dort das Attribut
* selected = "select".
* Dadurch kann man das selektierte Feld in einer DropDown Liste vorselektieren, sollte �ber TMailForm ein Fehler aufgetreten sein und das
* Formular erneut geladen werden.
*
* @param string		ein Prefix f�r die aktuelle Option zur Erzeugung einer eindeutigen ID (z.B. M1_)
* @param string		Name Knoten ohne Prefix
*/
function select (prefix, nodeName) {
	if (nodeName) {
		var node = document.getElementsByName(prefix+nodeName)[0];
		if (node) node.selected = "select";
	}
}


/* Funktionen um den Footer immer am Browser Ende auszurichten. fix= footerhöhe(165px)+headerhöhe(96px)+content_bootomhöhe(170px) */

function getWindowHeight() {
			var windowHeight = 0;
			if (typeof(window.innerHeight) == 'number') {
				windowHeight = window.innerHeight;
			}
			else {
				if (document.documentElement && document.documentElement.clientHeight) {
					windowHeight = document.documentElement.clientHeight;
				}
				else {
					if (document.body && document.body.clientHeight) {
						windowHeight = document.body.clientHeight;
					}
				}
			}

			return windowHeight;
			
			
		}
		function setFooter(node, fix) {
			if (document.getElementById) {
				var windowHeight = getWindowHeight();
				if (windowHeight > 0) {
					var contentElem = document.getElementById(node);
					var contentHeight = contentElem.offsetHeight;
					var heightDiff = windowHeight - (contentHeight + fix);
					var newHeight = heightDiff + contentHeight;
					if (heightDiff > 0) {
						contentElem.style.height = newHeight+'px';
						/*footerElement.style.position = 'relative';
						footerElement.style.top = ((windowHeight - (contentHeight + 165 + 96))) + 'px';*/
						
						//alert(footerElement.style.top);
					}
/*					else {
						/*footerElement.style.position = 'static';*/
/*						footerElement.style.position = 'relative';
						footerElement.style.top = 0;
						alert(footerElement.style.top);
					}*/
				}
			}
		}


/****************\
* Suchformular
\*'**************/

/**
* Methode fügt das Suchwort noch als Parameter ga_sword an die URL an für das GA-Tracking
*
* @param node		der Formularknoten
* @param string		ID des Suchworteingabefeldes
*
* @return bool		true
*/
	function postProcessSearchFormUrl(node, id) {
		// normales FormZiel
		actionUrl = node.action;  
		// cleanUp actionUrl
		pos = actionUrl.indexOf('ga_sword');
		if(0 < pos) {
			actionUrl = actionUrl.substr(0,pos-1);
		}
		
		// Suchwort
		val = Form.Element.serialize($(id));	
		pos = 0;
		if (val) {
			pos = val.indexOf('=')+1;
		}
		
		if (pos) {
			// Test, ob schon Parameter vorliegen
			if (-1 != actionUrl.indexOf('?')) {
				actionUrl += '&ga_sword=';
			} else {
				actionUrl += '?ga_sword=';
			}
			actionUrl += val.substr(pos);	
			node.action = actionUrl;
		}
		return true;
	}
	

/****************\
* Allgemein
\*'**************/	

	/**
	* Methode fügt die Funktion <code>func</code> an das window.onload-Event an
	*
	* @param func		Funktion die angefügt werden soll
	*/
	function addLoadEvent(func) { 
		var oldonload = window.onload; 
		if (typeof window.onload != 'function') { 
			window.onload = func; 
		} else { 
			window.onload = function() { 
				if (oldonload) { 
					oldonload(); 
				} 
				func(); 
			} 
		} 
	} 



//-------------------------------------------------------------
// Methoden für automatischen DownloadtrackingLink
//-------------------------------------------------------------

/**
 * Methode liefert alles zwischen Domain und Parameterstring der aktuellen URL
 *
 * @return	string	'' oder String
 */
function getURLString() {
	ret = '';
	url = String(window.location);
	// test auf Protokol
	pos = url.indexOf('://');
	if (-1 < pos) {
		pos = url.indexOf('/', pos+3);
		// wenn Ende von Domain gefunden und noch Zeichen vorhanden sind suche weiter
		if (-1 < pos && pos+1 < url.length) {
			ret = url.substr(pos+1);
							
			// Parameter abschneiden
			pos = ret.indexOf('?');
			if (-1 < pos) {
				ret = ret.substr(0, pos-1);
				//Ausgabe wenn noch was da ist
				if (2 > ret.length) {
					ret = '';
				}
			}
		}
	}
	
	// abschließender Slash
	if(0 < ret.length) {
		ret += '/';
	}
	
	return ret;
}
