$.fn.noSpam = function() {
	at = '@';
	return this.each(function(){
		e = null;
		$(this).find('span').replaceWith(at);
		e = $(this).text();
		$(this).attr('href', 'mailto:' + e);
	});
};

/**
 * @author Alexander Farkas
 * v. 1.02
 */
(function(jQuery) {
	jQuery.extend(jQuery.fx.step,{
	    backgroundPosition: function(fx) {
            if (fx.state === 0 && typeof fx.end == 'string') {
                var start = jQuery.curCSS(fx.elem,'backgroundPosition');
                start = toArray(start);
                fx.start = [start[0],start[2]];
                var end = toArray(fx.end);
                fx.end = [end[0],end[2]];
                fx.unit = [end[1],end[3]];
			}
            var nowPosX = []; 
            nowPosX[0] = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit[0];
            nowPosX[1] = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit[1];
            fx.elem.style.backgroundPosition = nowPosX[0]+' '+nowPosX[1];

           function toArray(strg){
               strg = strg.replace(/left|top/g,'0px');
               strg = strg.replace(/right|bottom/g,'100%');
               strg = strg.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");
               var res = strg.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);
               return [parseFloat(res[1],10),res[2],parseFloat(res[3],10),res[4]];
           }
        }
	});
})(jQuery);

function fadenavi(el,elWidth){

	jQuery(el).css( {backgroundPosition: elWidth+" 0"} ).mouseover(function(){
			jQuery(this).stop().animate({backgroundPosition:"("+elWidth+" -35px)"}, {duration:400})
	}).mouseout(function(){
			jQuery(this).stop().animate({backgroundPosition:"("+elWidth+" 0)"}, {duration:400})
	})

	jQuery(el+" span").css( {backgroundPosition: elWidth+" -35px"} ).mouseover(function(){
			jQuery(this).stop().animate({backgroundPosition:"("+elWidth+" -35px)"}, {duration:400})
	}).mouseout(function(){
			jQuery(this).stop().animate({backgroundPosition:"("+elWidth+" -35px)"}, {duration:400})
	})
};

$(document).ready(function(){
	$('body').removeClass('noJS').addClass('hasJS');
	$('a.escape').noSpam();
	$('a[rel*="lightbox"]').fancybox();
	fadenavi("ul#navi a.n1",0);
	fadenavi("ul#navi a.n2",-69);
	fadenavi("ul#navi a.n3",-169);
	fadenavi("ul#navi a.n4",-257);
	fadenavi("ul#navi a.n5",-509);
	fadenavi("ul#navi a.n6",-711);
	fadenavi("ul#navi a.n7",-886);
	fadenavi("ul#navi a.n2b",-0);
});


// JavaScript Document

var naviTriggers = new Array();
var trigger;

// Hier die IDs der Buttons eintragen, die zum Auf- und Zuklappen dienen sollen.
// Wenn es nur ein einziges aufklappbares Menü gibt, muß auch nur eine ID angegeben werden.

naviTriggers[0] = 'sub1';


// ------------ Initialisierung der Event-Handler
function initNavi() {

	var trigger;
	
	/* ------------------------------------------------- */

	for (var i = 0; i < naviTriggers.length; i++) {
		var element = naviTriggers[i];
		trigger = document.getElementById(element);
		
		// Die folgende Zeile läßt das Menü per Klick öffnen und schließen:
		//trigger.onclick = triggerNavi;

		// Diese beiden Zeilen lassen das Menü auf Mouseover reagieren:
		trigger.onmouseover = openNavi;
		trigger.onmouseout = closeNavi;
 	}

}

// ------------ Funktion für automatisches Schließen aller geöffneten Navigationen

function naviClose(triggers) {

	for (var i = 0; i < triggers.length; i++) {
		var element = triggers[i];
		var elem = document.getElementById(element);
					
			var child = elem.childNodes[2];
		
			if (child.tagName == 'UL') {

				if (child.style.display == "block") {
					child.style.display = "none";
				}
		
			}
 	}
	
}

// ------------ Funktion für das Öffnen und Schließen der Navigation (onclick)
function triggerNavi(event) {
	
	naviClose(naviTriggers);
	
	var child = this.childNodes[2];

	if (child.tagName == 'UL') {

		if (child.style.display == "block") {
			child.style.display = "none";
		} else {
			child.style.display = "block";
		}

	}

}


// ------------ Funktionen für das Öffnen und Schließen der Navigation (onmouseover)
function openNavi(event) {
	
	var child = this.childNodes[2];
	
	if (child.tagName == 'UL') {
		child.style.display = "block";
	} 
	
}

function closeNavi(event) {

	var child = this.childNodes[2];

	if (child.tagName == 'UL') {
		child.style.display = "none";
	}

}


window.onload = initNavi;

