                var Servicetools = {
		selectBoxEntries : null,
		context : null,
		redirectUrl : "/kabelbw/redirect.do?url=",
		initializeArray : function(){
			Servicetools.selectBoxEntries = new Array();
			Servicetools.selectBoxEntries[0] = new Object();
			Servicetools.selectBoxEntries[0]["link"] = "/cms/service/Kontakt/";
			Servicetools.selectBoxEntries[0]["popup"] = "N";
			Servicetools.selectBoxEntries[0]["navigation"] = "navigationlink.emailservice.href";

			Servicetools.selectBoxEntries[1] = new Object();
			Servicetools.selectBoxEntries[1]["link"] = "/cms/service/Schnelleinstieg/Verfuegbarkeits_Check/";
			Servicetools.selectBoxEntries[1]["popup"] = "N";
			Servicetools.selectBoxEntries[1]["navigation"] = "navigationlink.verfuegbarkeit.href";

			Servicetools.selectBoxEntries[2] = new Object();
			Servicetools.selectBoxEntries[2]["link"] = "/services/programme/adresssucheIfServerPre.do";
			Servicetools.selectBoxEntries[2]["popup"] = "N";
			Servicetools.selectBoxEntries[2]["navigation"] = "navigationlink.programmbelegung.href";

			Servicetools.selectBoxEntries[3] = new Object();
			Servicetools.selectBoxEntries[3]["link"] = "http://forum.kabelbw.de";
			Servicetools.selectBoxEntries[3]["popup"] = "Y";
			Servicetools.selectBoxEntries[3]["navigation"] = " ";

			Servicetools.selectBoxEntries[4] = new Object();
			Servicetools.selectBoxEntries[4]["link"] = "/services/smselectPre.do";
			Servicetools.selectBoxEntries[4]["popup"] = "N";
			Servicetools.selectBoxEntries[4]["navigation"] = "navigationlink.stoerung.href";

			Servicetools.selectBoxEntries[5] = new Object();
			Servicetools.selectBoxEntries[5]["link"] = "/cms/service/tools/Speedtest/";
			Servicetools.selectBoxEntries[5]["popup"] = "N";
			Servicetools.selectBoxEntries[5]["navigation"] = "navigationlink.speedtest.href";

			Servicetools.selectBoxEntries[6] = new Object();
			Servicetools.selectBoxEntries[6]["link"] = "/services/faq.do";
			Servicetools.selectBoxEntries[6]["popup"] = "N";
			Servicetools.selectBoxEntries[6]["navigation"] = "navigationlink.faq.href";

			Servicetools.selectBoxEntries[7] = new Object();
			Servicetools.selectBoxEntries[7]["link"] = "/services/partnerFirmenSuchePre.do";
			Servicetools.selectBoxEntries[7]["popup"] = "N";
			Servicetools.selectBoxEntries[7]["navigation"] = "navigationlink.kabelbevorort.href";

			Servicetools.selectBoxEntries[8] = new Object();
			Servicetools.selectBoxEntries[8]["link"] = "/cms/InternetUndTelefon/DSLWechselservice";
			Servicetools.selectBoxEntries[8]["popup"] = "N";
			Servicetools.selectBoxEntries[8]["navigation"] = "navigationlink.DSL_Wechslerservice.href";

			Servicetools.selectBoxEntries[9] = new Object();
			Servicetools.selectBoxEntries[9]["link"] = "/cms/service/Infos_und_Hilfe/Downloads/";
			Servicetools.selectBoxEntries[9]["popup"] = "N";
			Servicetools.selectBoxEntries[9]["navigation"] = "navigationlink.preisliste.href";

			Servicetools.selectBoxEntries[10] = new Object();
			Servicetools.selectBoxEntries[10]["link"] = "/services/kontaktPre.do";
			Servicetools.selectBoxEntries[10]["navigation"] = "navigationlink.kontakt.href";

		},
		callLink : function(value) {
			if(Servicetools.selectBoxEntries == null || Servicetools.selectBoxEntries.length == 0){
				Servicetools.initializeArray();
			}
			if(Servicetools.selectBoxEntries[value]['popup'] == 'Y') {
				window.open(Servicetools.selectBoxEntries[value]['link'],'','');
			} else {
				window.location.href = Servicetools.redirectUrl + Servicetools.selectBoxEntries[value]['link'] + '&nav=' + Servicetools.selectBoxEntries[value]['navigation'];
			}
		}
};

var FussNotenLayer = {
    _layerId        : 'custom-fn-layer',
    _options        : 0,
	_getEvent : function ( _e ) 
	{		
		var e = _e || window.event;	
		if(typeof e == 'undefined'){
			e = null;
		}
		return e;
	},
            
    _createLayer : function ( _element )
    {
        
        var _body 			= $('body'),
        	_isLayerExist 	= $('#'+FussNotenLayer._layerId, _body);
        
        if(_isLayerExist !== undefined && _isLayerExist.length > 0 )
        {
            return;
        }
        
        var _layer 			= $('<div id="'+FussNotenLayer._layerId+'" class="fussnotenLayer"></div>'),
        	_content 		= _element.html();

        _layer.html( _content );
        
        _layer.css({
            'position'  : 'absolute',
            'text-align': 'left',
            'display'   : 'none',
            'z-index'   : '50',
            'zoom'      : '1'
        });
        
        _body.append( _layer );
        
        _layer.fadeTo(800, 1, function(){
        	if($.browser.msie == true && $.browser.version <= 8) 
        	{
				_layer.css('opacity','.0');
			}
        });
        FussNotenLayer._setViewPort( _element );
        
    },
		
	_setViewPort : function( element ) 
	{
        if( element != undefined ) 
        {
            var scWidth     = $(window).width(),
                scHeight    = $(window).height(),
                elWidth 	= element.width(),
                elHeight 	= element.height(),
                screen      = $('html, body'),
                _layer      = $('#'+FussNotenLayer._layerId);
                pos         = new Object();
            
            pos.x = parseInt( (scWidth/2) - (elWidth/2) );
                
            var opt = $.extend({
                x       : pos.x,
                y       : 120,
                speed   : 1000
            }, FussNotenLayer._options);
                
            _layer.css({
                'left' : opt.x,
                'top' : opt.y
            });
                
            screen.animate({
                scrollTop : opt.y	
            }, opt.speed);
            
        }
	},
                
    _closeLayer : function () {
        var _layer = $('#'+FussNotenLayer._layerId);
        _layer.find('.flyout-closeLabel a').click(function(e){
            e.preventDefault();
            _layer.hide();
            _layer.html('');
            _layer.remove(); 
        });
    },
		
	show : function(id, _options, _e)
	{
		var e = FussNotenLayer._getEvent( _e );
		FussNotenLayer._options = _options || new Object();
		
        var element = $("#"+id);
        
        FussNotenLayer._createLayer( element );
		
        if( FussNotenLayer._options.layerParent !== undefined )
        {
        	$(FussNotenLayer._options.layerParent+" select").css("display", "none");
        }
        
        $(".jNiceSelectWrapper").css({"display" : "none"});
        
        
		if( ($.browser.msie == null || $.browser.msie == false) &&  e != null ) 
		{
            e.preventDefault();
		} 
		else 
		{
            FussNotenLayer._closeLayer();
            return false;
		} 
	},
		
	hide : function(id, _e){
		var e = FussNotenLayer._getEvent( _e ),
            _layer = $('#'+FussNotenLayer._layerId);
                        
        _layer.hide();
        _layer.html('');
        _layer.remove(); 
                    
		$("#"+id).hide();
		
		if( FussNotenLayer._options.layerParent !== undefined )
        {
			$(FussNotenLayer._options.layerParent+" select").css("display", "inline");
        }
		
		$(".jNiceSelectWrapper").css({"display" : "block"});
		
		if( ($.browser.msie == null || $.browser.msie == false) &&  e != null )
		{
            e.preventDefault();
		}
		else {
            return false;
		}
	}
};

/* -------------------------------------------------------------- */
/**
 * OpenLayer
 */
jQuery.fn.extend({
	openLayer : function ( options ) {
		var Overlayer 				= $('<div class="page-overlayer"></div>').css({"display":"none"});
		var overLayerLoader			= $('<div class="page-layer-loader"><span class="loader-icon">&nbsp;</span><br />wird geladen ...</div>').css({"display":"none"});
		var layerContainer 			= $('<div class="page-layer-container"></div>').css({"display":"none"});
		var leyerContentBorder		= $('<div class="info-layer-container"><div class="product-close-button-container header"><h3>&nbsp;</h3><div class="item-inner"><a href="#" class="close-button close-layer" title="Schlie&szlig;en">Schlie&szlig;en</a></div></div><div class="content"></div><div class="footer"></div></div>');
		var leyerContentTrailershow = $('<div class="info-layer-container trailershow-teaser"><div class="product-close-button-container header"><h3>&nbsp;</h3><div class="item-inner"><a href="#" class="close-button close-layer" title="Schlie&szlig;en">Schlie&szlig;en</a></div></div><div class="content"></div><div class="footer"></div></div>');
		var layerContentIframe 		= $('<iframe id="layer-iframe" class="layer-iframe" src="#" frameborder="no" scrolling="no" noresize width="100%" height="100%" ></iframe>');
		var pos 					= new Object();
		var opener					= this.each(function(){return $(this);});
		var linkAttr 				= new Object();
		var oneOpener				= this;
        var imageRegExp             = /\.(jpg|gif|png|bmp|jpeg)(.*)?$/i;
        var isLayerOpen				= false;

		options = $.extend({
			overlayerBg 		: "#000",
			overlayerOpacity 	: "0.5",
			createLayer			: false,
			createLayerIframe   : false,
			showLayer			: false,
            removeLayer         : true,
			swfContent			: false,
			swfFallback			: '<h2>F&uuml;r diesen Inhalt wird Flash ben&ouml;tigt!</h2><p>Um diesen Inhalt korrekt anzuzeigen, muss JavaScript in Ihrem Browser aktiviert sein. Ausserdem ben&ouml;tigen Sie den aktuellen <a href="http://get.adobe.com/de/flashplayer/">Flash Player</a>.</p><p class="caption"><a href="http://get.adobe.com/de/flashplayer/">Laden Sie den kostenlosen Flash Player herunter!</a></p><a href="/go/getflashplayer_de" class="noHover"><img src="/kabelbw/export/sites/default/resources/images/get_flash_player.gif" alt="Flash Player herunterladen" border="0" /></a>',
			frameHeight			: '100%',
			frameWidth			: '100%',
			contentLeft			: '-15px',
			overlayerCssPosition: 'absolute',
			layerCssPosition	: 'absolute',
			contentTop			: '0',
			layerTitle			: '',
			openSpeed			: (this.openSpeed!='') ? this.openSpeed : config.animationSpeed,
			closeSpeed			: (this.closeSpeed!='') ? this.closeSpeed : config.animationSpeed,
			onLoadOpen			: false,
			showLoader			: true,
			/*
			 * onBeforeOpen wird ausgeführt, bevor irgendwas gemacht wird. Die init-Methode wird als
			 * Callback übergeben, um Chains machen zu können.
			 */
			onBeforeOpen		: '',
			onRemoveOverlayer	: function(){},
			onOpen			    : function(){},
			onClose			    : function(){},
			onLoad				: function(){},
			onScroll			: function(){},
			scroll				: true,
			resize 				: true,
			getOpener			: '',
			preLoaderLeft		: null,
			preLoaderTop		: null,
			getPosition			: null,
			layerAlign			: 'left',
			layerParent			: '#content'
		}, options);


		var getLinkAttr = function ( el ) {
			var r = el.attr("href").split("?");
			if(r[1] != undefined ) {
				r = r[1].split('&');
				if(r.length>0) {
					for (var i = 0; i < r.length; i++) {
						var op = r[i].split('=');
						linkAttr[op[0]] = op[1];
					}
				}
			}
		};

		var init = function ( el ) {
			getPosition();
			el.bind("click",function (e1){
				/*
				 * Hier wird aus der eigentlichen Methode ein Callback gemacht, um onBeforeOpen
				 * noch Chains machen zu können.
				 */
				var init2 = function(e2) {
					$(options.layerParent).css({"position":"relative","overflow":"visible"});
					createOverlayer();
					createLayerContainer(el);

					Overlayer.bind("click",function(e3) {
						var init3 = function(e4) {
							removeLoader();
							removeLayer();
						};
						if(typeof(options.onRemoveOverlayer) == "function") 
						{
							options.onRemoveOverlayer(layerContainer,e3,init3);
						} 
						else 
						{
							init3(e3);
						};
					});
					setLayerStyle();
					//Alle IEs haben Probleme mit Events in Callbacks. Daher hier im Zweifel abfangen.
					try {e2.preventDefault(e2);} catch(ex) {};
					options.getOpener = this;
					
				};
				if(typeof(options.onBeforeOpen) == "function") {
					options.onBeforeOpen(el,e1,init2);
				} else {
					init2(e1);
				};
				return false;
			});
		};

		var createLayerContainer = function (el) {

			$(options.layerParent).append(layerContainer);
			getLinkAttr(el);
			if( options.createLayer	=== true || options.createLayerIframe === true){
				if(options.createLayerIframe === true) {
					layerContainer.append(layerContentIframe);
					layerContentIframe.attr("src",loadContent(el)).css({'width':options.frameWidth,'height':options.frameHeight});

					setAnimation(layerContainer);
				}
				else {
					layerContainer.append(leyerContentBorder);
					if ( options.layerTitle ) {
						leyerContentTrailershow.find(".header").prepend($(options.layerTitle));
					}

                          if(loadContent(el).match(imageRegExp)) {
                                var _image = new Image();
                                _image.src = loadContent(el);
                                layerContainer.append(_image);
                                setAnimation(layerContainer);

                          }else {
                                leyerContentBorder.find(".content").load(loadContent(el), function ( e ){
                                      setAnimation(layerContainer);
                                });
                          }
					}
			}
			else if (options.showLayer === true) {
				var containerID = loadContent(el).split('#')[1];
				var inlineContent = $('#'+containerID).css({'display':'block'});
				layerContainer.append( inlineContent );
				setAnimation(layerContainer);
                                $(window).scrollTop(0);
			}
			else if (options.swfContent === true ) {
				var swfData = $('<div id="swfcontent"></div>');
				swfData.html('<div class="no-flash">'+options.swfFallback+'</div>');
				layerContainer.append(leyerContentTrailershow);
				leyerContentTrailershow.find(".content").css({'padding':'0'}).append(swfData);
				if ( options.layerTitle ) {
					leyerContentTrailershow.find(".header h3").html(options.layerTitle);
				}

				var flashvars 	= {};
				var params 		= {};
				var attributes 	= {};
				params.wmode 	= "opaque";
				params.loop 	= "false";
				params.quality 	= "high";
				params.menu 	= "false";
				params.scale 	= "noscale";
				swfobject.embedSWF(opener.attr("href"), swfData.attr("id"), (linkAttr.width > 0) ? linkAttr.width : 700, (linkAttr.height > 0) ? linkAttr.height : 440, "8", "F16701", flashvars, params, attributes);
				swfData.css({'width': ( (linkAttr.width > 0) ? linkAttr.width : 700 )+'px','margin':'0 auto','padding':'1.5em 0'});
				setAnimation(layerContainer);
			}
			else 
			{
                if(loadContent(el).match(imageRegExp)) {
                      var _image = new Image();
                      _image.src = loadContent(el);
                      layerContainer.append(_image);
                      setAnimation(layerContainer);

                }else {

                      layerContainer.load(loadContent(el), function ( e ){
                            setAnimation($(this));
                      });
                }
			}
			delete linkAttr;
		};

		var setAnimation = function ( el ) {
			el.css({'display':'block','opacity':'0'}).animate(
				{
					opacity: 1
				},
				options.openSpeed, 
				function ( e ) {
					isLayerOpen = true;	
					if( isLayerOpen === true )
					{
						options.onOpen( opener, el );
					}
					closeLayer( el );
					removeLoader();
					
					if($.browser.msie == true) 
					{
						if($.browser.version <= 8)
						{
							$(this).css('opacity','.0');
						}
						if($.browser.version < 7) {	
							$(this).find(".product-close-button-container .close-button").css({
								'filter':'none',
								'position':'absolute',
								'right':'10px'
							});
						}
					}
					
					if(options.resize === true)
					{
						$(window).resize(function(){
							if(isLayerOpen === true )
							{	
								getPosition();
								setLayerStyle();
							}
						});
					}
					
					if(options.scroll === true)
					{
						$(window).scroll(function(){
							if(isLayerOpen === true )
							{
								getPosition();
								setLayerStyle();
								options.onScroll( el );
							}
						});
					}

				}
			);

		};

		var removeLoader = function () {
			$(".page-layer-loader").remove();
		};

		var createOverlayer = function (){

			$(options.layerParent).append(Overlayer);
			if ( options.showLoader === true ){
				$(options.layerParent).append(overLayerLoader);
			}
			if ($.browser.msie == true && $.browser.version < 7) {
				if ( options.showLoader === true ) {
					overLayerLoader.css({'display':'block'});
				}
				Overlayer.css({'display':'block',"filter":"alpha(opacity=30)"});
			} else {
				if ( options.showLoader === true ) {
					overLayerLoader.fadeTo(options.openSpeed, 100);
				}
				Overlayer.fadeTo(options.openSpeed, options.overlayerOpacity);
			}
			if ($.browser.msie === true && $.browser.version <= 7) {
				
				$("#header").css({
					"z-index" : "1",
					"position" : "static"
				});

				$("#page").css({
					"position" : "relative"
				});

				$(".footer-navigation, .company-navigation").css({
					"position" : "static"
				});

				$("#column-container").css({
					"z-index" : "2"
				});
				
				$("#footer").css({
					"visibility" : "hidden"
				});
			}
		};

		var setLayerStyle = function () {
			Overlayer.css({
				"position":options.overlayerCssPosition,
				"background-color":options.overlayerBg,
				"left":-pos.cLeft+"px",
				"right":"0",
				"top":-pos.cTop+"px",
				"bottom":"0",
				"height":pos.oHeight+"px",
				"width":pos.oWidth+"px",
				"z-index":"9"
			});
			$(".page-layer-loader").css({

				"top": (  ( options.preLoaderTop != null) ? options.preLoaderTop : (pos.cTop/2) )+"px",
				"left": (  ( options.preLoaderLeft != null) ? options.preLoaderLeft : (pos.cLeft/2) ) +"px",
				"z-index":"10"
			});


			if(options.layerAlign === 'center') {
				options.contentLeft = centerLayer();
			}


			layerContainer.css({
				"position":options.layerCssPosition,
				"left":options.contentLeft,
				"top":options.contentTop,
				"z-index":"10"
			});
		};

		var centerLayer = function() {

		    var navColumnWidth = 0;
		    var navColumnPadding = 0;

		    if($("#navigation-column") !== undefined) {
				navColumnWidth =  $("#navigation-column").outerWidth() || 0;
				navColumnPadding = parseInt( $("#navigation-column").css("marginRight") ) || 0;
		    }
		    var offsetLeft = (($("#page").width() - $(".page-layer-container").width()) / 2) - (navColumnWidth + navColumnPadding);
			return offsetLeft;
		};

		var removeLayer = function () {
			Overlayer.fadeOut(options.closeSpeed,function() {
				$(this).remove();
			});
			layerContainer.fadeOut(options.closeSpeed,function() {
                if(options.removeLayer === true){
					$(this).find('.content').html("");
					$(this).remove();
				}
                else
                {
					$(this).css("display", "none");
					          
                }
				options.onClose();
			});

			$("#header").css({
				"z-index" : "5",
				"position" : "relative"
			});

			$("#column-container").css({
				"z-index" : "1"
			});

			$(".footer-navigation").css({
				"position" : "relative"
			});

			$(".company-navigation").css({
				"position" : "absolute"
			});
			$("#footer").css({
				"visibility" : "visible"
			});
			
			isLayerOpen = false;
			delete pos;
		};

		var getPosition = function() {
			if( typeof options.getPosition === 'function')
			{
				pos = options.getPosition();
			}
			else 
			{
				pos.oWidth  = $(window).width();
				pos.oHeight = $(document).height();
				pos.wHeight = $(window).height();
	
				pos.cLeft   = $(options.layerParent).offset().left;
				pos.cTop    = $(options.layerParent).offset().top;
			}
		};

		var loadContent = function( el ) {
			var url = el.attr("href");
			return url;
		};

		var closeLayer = function () {
			$(".close-layer, .close-layer-powerline-set").bind("click",function( e ){
				removeLayer();
				e.preventDefault(e);				
				
				delete linkAttr;
				return false;
			});
		};

		/**
		 * Onload
		 */
		if( options.onLoadOpen === true ) {
			getPosition();
			$(options.layerParent).css({"position":"relative","overflow":"visible"});
			createOverlayer();
			options.onLoad( opener );
			/**
			 * Layer oeffnen
			 */
			$(options.layerParent).append(layerContainer);
			if( options.showLayer === true ) {
				var containerElement = $(oneOpener);
				var inlineContent = containerElement.css({'display':'block'});

				layerContainer.append( inlineContent );
				setAnimation( layerContainer );
			}

			Overlayer.bind("click",function(e) {
				removeLoader();
				removeLayer();
			});
			setLayerStyle();
		}
		
		return this.each(function(){
			init($(this));
		});
	}
});

jQuery.extend({
	closeLayer : function (options) {
		options = $.extend({
			openSpeed			: (this.openSpeed!='')?this.openSpeed:config.animationSpeed,
			closeSpeed			: (this.closeSpeed!='')?this.closeSpeed:config.animationSpeed,
			onClose			    : function(){},
			//Notwendig für die Verkettung von Layern
			onBeforeRemove		: function(){}
		}, options);
		var removeLayer = function () {
			$(".page-overlayer").fadeOut(options.closeSpeed,function() {
				$(this).remove();
				$(".page-layer-loader").remove();
			});
			$(".page-layer-container").fadeOut(options.closeSpeed,function() {
				options.onBeforeRemove(this);
                $(this).find('.content').html('');
                $(this).remove();
				$(this).css("display", "none");
				options.onClose(this);
			});

			return false;
		};
		return removeLayer();
	}
});

var HomePageFlyOut = {
	timer : false,
	state : "close",
	open : function(){
		window.clearTimeout(HomePageFlyOut.timer);
		HomePageFlyOut.state = "close";
		var element = $(".main-navigation .internet_telefon img");
		if(element.attr("class") !== "selected"){
			if(!/_active/.test(element.attr("src"))){
				element.attr("src", element.attr("src").split(".png")[0] + "_active.png" );
			}
			element.attr("src", element.attr("src").replace(".png.png", ".png"));
			element.attr("src", element.attr("src").replace("_active_active", "_active"));
		}
		$('.homepage-flyout').slideDown("fast", function(){
			HomePageFlyOut.state = "open"
		})
	},
	close : function(){
		if(HomePageFlyOut.state === "open"){
			HomePageFlyOut.timer = window.setTimeout(function(){
				$('.homepage-flyout').slideUp("fast", function(){
					var element = $(".main-navigation .internet_telefon img");
					if( element.attr("class") !== "selected" ){
						if(/_active/.test(element.attr("src"))){
							element.attr("src", element.attr("src").split("_active.png")[0] + ".png" );
							element.attr("src", element.attr("src").replace(".png.png", ".png"));
						}
					}
				});
			}, 100)
		}
	}
};

var HomePageFlyOutMobil = {
	timer : false,
	state : "close",
	open : function(){
		window.clearTimeout(HomePageFlyOutMobil.timer);
		HomePageFlyOutMobil.state = "close";
		var element = $(".main-navigation .mobil img");
		if(element.attr("class") !== "selected"){
			if(!/_active/.test(element.attr("src"))){
				element.attr("src", element.attr("src").split(".png")[0] + "_active.png" );
			}
			element.attr("src", element.attr("src").replace(".png.png", ".png"));
			element.attr("src", element.attr("src").replace("_active_active", "_active"));
		}
		$('.homepage-flyout-mobil').slideDown("fast", function(){
			HomePageFlyOutMobil.state = "open"
		})
	},
	close : function(){
		if(HomePageFlyOutMobil.state === "open"){
			HomePageFlyOutMobil.timer = window.setTimeout(function(){
				$('.homepage-flyout-mobil').slideUp("fast", function(){
					var element = $(".main-navigation .mobil img");
					if( element.attr("class") !== "selected" ){
						if(/_active/.test(element.attr("src"))){
							element.attr("src", element.attr("src").split("_active.png")[0] + ".png" );
							element.attr("src", element.attr("src").replace(".png.png", ".png"));
						}
					}
				});
			}, 100)
		}
	}
};

var HomePageFlyOutTV = {
	timer : false,
	state : "close",
	open : function(){
		window.clearTimeout(HomePageFlyOutTV.timer);
		HomePageFlyOutTV.state = "close";
		var element = $(".main-navigation .tv_radio img");
		if(element.attr("class") !== "selected"){
			if(!/_active/.test(element.attr("src"))){
				element.attr("src", element.attr("src").split(".png")[0] + "_active.png" );
			}
			element.attr("src", element.attr("src").replace(".png.png", ".png"));
			element.attr("src", element.attr("src").replace("_active_active", "_active"));
		}
		$('.homepage-flyout-tv').slideDown("fast", function(){
			HomePageFlyOutTV.state = "open"
		})
	},
	close : function(){
		if(HomePageFlyOutTV.state === "open"){
			HomePageFlyOutTV.timer = window.setTimeout(function(){
				$('.homepage-flyout-tv').slideUp("fast", function(){
					var element = $(".main-navigation .tv_radio img");
					if( element.attr("class") !== "selected" ){
						if(/_active/.test(element.attr("src"))){
							element.attr("src", element.attr("src").split("_active.png")[0] + ".png" );
							element.attr("src", element.attr("src").replace(".png.png", ".png"));
						}
					}
				});
			}, 100)
		}
	}
};

var HomePageFlyOutKundenservice = {
	timer : false,
	state : "close",
	open : function(){
		window.clearTimeout(HomePageFlyOutKundenservice.timer);
		HomePageFlyOutKundenservice.state = "close";
		var element = $(".main-navigation .kundenservice img");
		if(element.attr("class") !== "selected"){
			if(!/_active/.test(element.attr("src"))){
				element.attr("src", element.attr("src").split(".png")[0] + "_active.png" );
			}
			element.attr("src", element.attr("src").replace(".png.png", ".png"));
			element.attr("src", element.attr("src").replace("_active_active", "_active"));
		}
		$('.homepage-flyout-kundenservice').slideDown("fast", function(){
			HomePageFlyOutKundenservice.state = "open"
		})
	},
	close : function(){
		if(HomePageFlyOutKundenservice.state === "open"){
			HomePageFlyOutKundenservice.timer = window.setTimeout(function(){
				$('.homepage-flyout-kundenservice').slideUp("fast", function(){
					var element = $(".main-navigation .kundenservice img");
					if( element.attr("class") !== "selected" ){
						if(/_active/.test(element.attr("src"))){
							element.attr("src", element.attr("src").split("_active.png")[0] + ".png" );
							element.attr("src", element.attr("src").replace(".png.png", ".png"));
						}
					}
				});
			}, 100)
		}
	}
};

var B2BHomePageFlyOutSuF = {
	timer : false,
	state : "close",
	open : function(){
		window.clearTimeout(B2BHomePageFlyOutSuF.timer);
		B2BHomePageFlyOutSuF.state = "close";
		var element = $(".main-navigation .SuF img");
		if(element.attr("class") !== "selected"){
			if(!/_active/.test(element.attr("src"))){
				element.attr("src", element.attr("src").split(".png")[0] + "_active.png" );
			}
			element.attr("src", element.attr("src").replace(".png.png", ".png"));
			element.attr("src", element.attr("src").replace("_active_active", "_active"));
		}
		$('.homepage-flyout-SuF').slideDown("fast", function(){
			B2BHomePageFlyOutSuF.state = "open"
		})
	},
	close : function(){
		if(B2BHomePageFlyOutSuF.state === "open"){
			B2BHomePageFlyOutSuF.timer = window.setTimeout(function(){
				$('.homepage-flyout-SuF').slideUp("fast", function(){
					var element = $(".main-navigation .SuF img");
					if( element.attr("class") !== "selected" ){
						if(/_active/.test(element.attr("src"))){
							element.attr("src", element.attr("src").split("_active.png")[0] + ".png" );
							element.attr("src", element.attr("src").replace(".png.png", ".png"));
						}
					}
				});
			}, 100)
		}
	}
};

var B2BHomePageFlyOutGeschaefspartner = {
	timer : false,
	state : "close",
	open : function(){
		window.clearTimeout(B2BHomePageFlyOutGeschaefspartner.timer);
		B2BHomePageFlyOutGeschaefspartner.state = "close";
		var element = $(".main-navigation .geschaeftspartner img");
		if(element.attr("class") !== "selected"){
			if(!/_active/.test(element.attr("src"))){
				element.attr("src", element.attr("src").split(".png")[0] + "_active.png" );
			}
			element.attr("src", element.attr("src").replace(".png.png", ".png"));
			element.attr("src", element.attr("src").replace("_active_active", "_active"));
		}
		$('.homepage-flyout-geschaeftspartner').slideDown("fast", function(){
			B2BHomePageFlyOutGeschaefspartner.state = "open"
		});
	},
	close : function(){
		if(B2BHomePageFlyOutGeschaefspartner.state === "open"){
			B2BHomePageFlyOutGeschaefspartner.timer = window.setTimeout(function(){
				$('.homepage-flyout-geschaeftspartner').slideUp("fast", function(){
					var element = $(".main-navigation .geschaeftspartner img");
					if( element.attr("class") !== "selected" ){
						if(/_active/.test(element.attr("src"))){
							element.attr("src", element.attr("src").split("_active.png")[0] + ".png" );
							element.attr("src", element.attr("src").replace(".png.png", ".png"));
						}
					}
				});
			}, 100);
		}
	}
};

var B2BHomePageFlyOutService = {
	timer : false,
	state : "close",
	open : function(){
		window.clearTimeout(B2BHomePageFlyOutService.timer);
		B2BHomePageFlyOutService.state = "close";
		var element = $(".main-navigation .service img");
		if(element.attr("class") !== "selected"){
			if(!/_active/.test(element.attr("src"))){
				element.attr("src", element.attr("src").split(".png")[0] + "_active.png" );
			}
			element.attr("src", element.attr("src").replace(".png.png", ".png"));
			element.attr("src", element.attr("src").replace("_active_active", "_active"));
		}
		$('.homepage-flyout-service').slideDown("fast", function(){
			B2BHomePageFlyOutService.state = "open"
		});
	},
	close : function(){
		if(B2BHomePageFlyOutService.state === "open"){
			B2BHomePageFlyOutService.timer = window.setTimeout(function(){
				$('.homepage-flyout-service').slideUp("fast", function(){
					var element = $(".main-navigation .service img");
					if( element.attr("class") !== "selected" ){
						if(/_active/.test(element.attr("src"))){
							element.attr("src", element.attr("src").split("_active.png")[0] + ".png" );
							element.attr("src", element.attr("src").replace(".png.png", ".png"));
						}
					}
				});
			}, 100);
		}
	}
};

var B2BHomePageFlyOutFirmenkunden = {
	timer : false,
	state : "close",
	open : function(){
		window.clearTimeout(B2BHomePageFlyOutFirmenkunden.timer);
		B2BHomePageFlyOutFirmenkunden.state = "close";
		var element = $(".main-navigation .firmenkunden img");
		if(element.attr("class") !== "selected"){
			if(!/_active/.test(element.attr("src"))){
				element.attr("src", element.attr("src").split(".png")[0] + "_active.png" );
			}
			element.attr("src", element.attr("src").replace(".png.png", ".png"));
			element.attr("src", element.attr("src").replace("_active_active", "_active"));
		}
		$('.homepage-flyout-firmenkunden').slideDown("fast", function(){
			B2BHomePageFlyOutFirmenkunden.state = "open"
		});
	},
	close : function(){
		if(B2BHomePageFlyOutFirmenkunden.state === "open"){
			B2BHomePageFlyOutFirmenkunden.timer = window.setTimeout(function(){
				$('.homepage-flyout-firmenkunden').slideUp("fast", function(){
					var element = $(".main-navigation .firmenkunden img");
					if( element.attr("class") !== "selected" ){
						if(/_active/.test(element.attr("src"))){
							element.attr("src", element.attr("src").split("_active.png")[0] + ".png" );
							element.attr("src", element.attr("src").replace(".png.png", ".png"));
						}
					}
				});
			}, 100);
		}
	}
};

var metaB2bLayer = {
	_layerId 		: "customB2bLayer",
	_cookieId		: '_b2bLayer',
	_header 		: 0,
	_layerData 		: 0,
	_createLayer : function () {
		var data = '';
		data += '<div class="box-col-3 header-custom-layer" id="' + this._layerId + '">';
		data += '	<div class="box-3">';
		data += '		<div class="head"> </div>';
		data += '		<div class="content">';
		data += '			<div class="inner-content">';				
		data += '				<h2 class="box-h2 cufon-topic orange">Neu: Business Produkte</h2>';				
		data += '				<ul class="grey-plus cufon-topic">';
		data += '					<li>Feste IP-Adresse</li>';
		data += '					<li>H&ouml;here Uploadgeschwindigkeit</li>';
		data += '					<li>Exklusiver Service</li>';
		data += '				</ul>';
		data += '				<a class="arrow-orange-middle orange" href="/kabelbw/cms/b2b/Startseite/" title="mehr Info" >mehr Info</a>';
		data += '				<a href="#" class="close-layer" title="schlie&szlig;en">close</a>';
		data += '				<img src="/kabelbw/cms/resources/images/custom-b2b-layer-img.png" class="box-visual" alt="" />';
		data += '			</div>';
		data += '		</div>';
		data += '		<div class="foot"> </div>';
		data += '	</div>';
		data += '</div>';
		this._layerData = $( data );
	},
	
	setCookie : function ( name, value, _expires, _path, _domain, _secure )
	{
		var expires = _expires 	|| '',
			path	= _path 	|| '', 
			domain	= _domain 	|| '',
			secure	= _secure 	|| '';
		
		var today = new Date();
		
		today.setTime( today.getTime() );

		if ( expires )
		{
			expires = expires * 1000 * 60 * 60 * 24;
		}
		var expires_date = new Date( today.getTime() + (expires) );

		document.cookie = name + "=" +escape( value ) + ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
						  ( ( path ) ? ";path=" + path : "" ) +
						  ( ( domain ) ? ";domain=" + domain : "" ) +
						  ( ( secure ) ? ";secure" : "" );
	},

	getCookie : function ( name ) {
		var allCookies = document.cookie.split(';');
		
		for( var i = 0; i < allCookies.length; i++)
		{
			var tmpData = allCookies[i];
			if( typeof tmpData != 'function') {
				var data = tmpData.split('=');
				if( data[0] != undefined && data[1] != undefined) {
					var cookieName = data[0].replace(/^\s+|\s+$/g, '');
					var cookieVal  = data[1].replace(/^\s+|\s+$/g, '');
					if( cookieName == name){
						var val = ( cookieVal.toLowerCase() == 'true' ) ? true : ( (cookieVal.toLowerCase() == 'false') ? false : cookieVal ); 
						return val;
						break;
					}
				}
			}
		}
		return null;
	},
	
	init : function () {
		var _url 		= window.location.href,
			_findMatch 	= _url.match( /InternetUndTelefon/ ),
			_theCookie   = this.getCookie( this._cookieId );			
		this._header = $('#header');
		
		this._createLayer();
	
		if( _findMatch != null && _findMatch.length > 0) {
			var _layer = this._header.find('#' + this._layerId );
	
			if( _theCookie == null || _theCookie != true ) 
			{
				if( _layer == undefined || _layer == null || _layer.length <= 0 )
				{
					var _this = this;
					this._header.append( this._layerData );
					
					this._layerData.fadeIn(500);
					
					this._layerData.find('.close-layer').bind('click', function( e ) {
						e.preventDefault();
						var _layerData = $('#' + _this._layerId );
						
						_layerData.fadeOut(700,function(){
							_layerData.remove();
							_this.setCookie( _this._cookieId, true, '', '/');
						});
					});
				}
			}
		}
	}
};

var ProduktUebersichtToggle = {
    showStoerer : function(selector){
	if($(selector) != null){
	   $(selector).css("display", "block");
	   ProduktUebersichtToggle._setStoererPosition(selector);
	}
    },
    hideStoerer : function(selector){
	if($(selector) != null){
	   $(selector).css("display", "none");
	}
    },
    _setStoererPosition : function(selector){
	$(selector).css("top", $(".event-pos-stoerer").position().top + $(".event-pos-stoerer").height());
    },
    setGarantienBoxHeight : function(){	
	$("#garantie-container .inner-content").css("height", $("#product-container").height() - 20);
    },
    up : function(element){	
	$(element).parents("#product-container").append($(element).clone(false).addClass("toggle-panel"));

	//IE6 - IE8, damit Cufon richtig funktioniert
	$("#product-container .toggle-panel h3.cufon-topic").html("").html($("#product-container .toggle-panel h3.cufon-topic").attr("alt"));

	var index = $(element).closest("tr").index();
	$(element).closest("tr").parent().children("tr").each(function(i){
	    if(i >= index){
		$(this).addClass("hide");
	    }
	});

	$(element).parents(".fancy-table").find(".foot").css("display", "none");	
	$(element).css("display", "none");
	$(element).closest("tr").removeClass("hide");		

	
	$(".toggle-panel").click(function(){
	    ProduktUebersichtToggle.down(this);	   
	});
	
	ProduktUebersichtToggle.hideStoerer(".speed-stoerer");
	
	Cufon.refresh();

    },
    down : function(element){
	$(element).parents("#product-container").find(".business-table .priceArea").next("tr").find("td .box").css("display", "");
	$(element).parents("#product-container").find(".business-table .priceArea").nextAll().removeClass("hide");
	$(element).parents(".fancy-table").find(".foot").css("display", "block");
	$(element).parents("#product-container").find(".toggle-panel").remove();
	ProduktUebersichtToggle.showStoerer(".speed-stoerer");	
    }
    
};

/**
 * Bilder vorladen
 */
jQuery.extend({
	kbwImagesPreloader : function (images, onLoad,  _callback)
	{
		var body   = $('body'),
			_this  = this,
			loadedImage = 0,
			callback =_callback;

		
		var preloaderComplete = function( totalImage ) {
			loadedImage +=1;
	        //var status = ( 0.5 + ((loadedImage/totalImage) * 100) ) << 0;
	        if( loadedImage === totalImage )
	        {
	            if( typeof ( callback ) === 'function' )
	            {
	                callback.call(_this);
	            }
	        }
		};
		
		if (this.isArray( images ) === true )
		{
			if( typeof ( onLoad ) === 'function')
			{
				onLoad.call(this);
			}
			if(images.length <= 0)
			{
				if( typeof ( callback ) === 'function' )
	            {
	                callback.call(this);
	            }
			}
			
			
			for (var i = 0, ii = images.length; i < ii; i++)
            {
                var img     = $('<img />');

                img.attr({
                    'id':'image_preload_'+i
                })
                .css({
                    'display'     : 'none',
                    'position'    : 'absolute',
                    'width'       : '1px',
                    'height'      : '1px'
                });

                body.append( img );
                
                

                img.unbind('load');
                img.bind('load', function(){
                    preloaderComplete( ii );
                });

                img.attr('src', images[i]);
            }
		}
	}
});

