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/InfoUndService/E_Mail_Service/";
			Servicetools.selectBoxEntries[0]["popup"] = "N";
			Servicetools.selectBoxEntries[0]["navigation"] = "navigationlink.emailservice.href";
		
			Servicetools.selectBoxEntries[1] = new Object();
			Servicetools.selectBoxEntries[1]["link"] = "/services/produktverfuegbarkeitPre.do";
			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/InfoUndService/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/InfoUndService/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 OnlineBeratung = {		
		 optiRealPersonLoad : function(queryString){
		   	try{
				var optiRealPersonScript = document.createElement("script");
				optiRealPersonScript.setAttribute('type','text/javascript');
				if(queryString != null && queryString.length > 0){
					optiRealPersonScript.setAttribute('src','https://realperson39.net/system/scripts/rp_status.php?systemurl=https://realperson39.net/system&project=kabelbw&aspid=1&' + queryString);
				}else{
					optiRealPersonScript.setAttribute('src','https://realperson39.net/system/scripts/rp_status.php?systemurl=https://realperson39.net/system&project=kabelbw&aspid=1&deptid=11&');
				}					
				document.getElementById("optiRealPersonContent").appendChild(optiRealPersonScript);
		   	}catch(e){}
		},
		changeSessionParameters : function(vpNummerOnlineberatung){
			 var html = $.ajax({
				type: "GET",
				url: "/kabelbw/ajax/changeshopparams?wmid=10&vpid=" + vpNummerOnlineberatung,
			  	async: false
			 }).responseText;		    
		}
};

var FussNotenLayer = {
		show : function(id){
			var element = $("#"+id);			
			element.css('left', $(window).width()/2-element.width()/2).show();
            $("select").css("visibility", "hidden");
		},
		hide : function(id){
			$("#"+id).hide();
            $("select").css("visibility", "visible");
		}
};

/* -------------------------------------------------------------- */
/**
 * 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;

		options = $.extend({
			overlayerBg 		: "#000",
			overlayerOpacity 	: "0.5",
			createLayer			: false,
			createLayerIframe   : false,
			showLayer			: false,
			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',
			contentTop			: '0',
			layerTitle			: '',
			openSpeed			: (this.openSpeed!='') ? this.openSpeed : config.animationSpeed,
			closeSpeed			: (this.closeSpeed!='') ? this.closeSpeed : config.animationSpeed,
			onLoadOpen			: false,
			showLoader			: true,
			onOpen			    : function(){},
			onClose			    : function(){},
			onLoad				: function(){},
			getOpener			: ''
		}, 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 ( e ){
				$("#content").css({"position":"relative","overflow":"visible"});
				createOverlayer();
				createLayerContainer(el);
				Overlayer.bind("click",function(e) {
					removeLoader();
					removeLayer();
				});
				setLayerStyle();
				e.preventDefault(e);
				options.getOpener = this;
				return false;
			});
		};
		
		var createLayerContainer = function (el) {
			$("#content").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));
					}
					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);
			}
			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 {
				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 ) {
					options.onOpen( opener, e );
					closeLayer( e );
					removeLoader();
					if($.browser.msie == true) {
						$(this).css('opacity','.0');
						if($.browser.version < 7) {
							
							$(this).find(".product-close-button-container .close-button").css({
								'filter':'none',
								'position':'absolute',
								'right':'10px'
							});
						}
					}
				}
			);
			
		};
		
		var removeLoader = function () {
			$(".page-layer-loader").remove();
		};
		
		var createOverlayer = function (){
			$("#content").append(Overlayer);
			if ( options.showLoader === true ){ 
				$("#content").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);
			}
		};
		
		var setLayerStyle = function () {
			Overlayer.css({
				"position":"absolute",
				"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":"5"
			});
			$(".page-layer-loader").css({
				
				"top":(pos.cTop/2)+"px",
				"left":(pos.cLeft/2)+"px",
				"z-index":"6"
			});
			
			layerContainer.css({
				"position":"absolute",
				"left":options.contentLeft,
				"top":options.contentTop,
				"z-index":"10"
			});
		};
		
		var removeLayer = function () {
			Overlayer.fadeOut(options.closeSpeed,function() {
				$(this).remove();
			});
			layerContainer.fadeOut(options.closeSpeed,function() {
				$(this).find('.content').html("");
				$(this).remove();
				
				options.onClose();
			});
			delete pos;
		};
		
		var getPosition = function() {
			pos.oWidth  = $(window).width();
			pos.oHeight = $(document).height();
			pos.wHeight = $(window).height();
			pos.cLeft   = $("#content").offset().left;
			pos.cTop    = $("#content").offset().top;
		};
		
		var loadContent = function( el ) {
			var url = el.attr("href");
			return url;
		};
		
		var closeLayer = function () {
			$(".close-layer").bind("click",function( e ){
				removeLayer();
				e.preventDefault(e);
				delete linkAttr;
				return false;
			});
		};
		
		/**
		 * Onload
		 */
		if( options.onLoadOpen === true ) {
			getPosition();
			$("#content").css({"position":"relative","overflow":"visible"});
			createOverlayer();
			options.onLoad( opener );
			/**
			 * Layer oeffnen
			 */
			$("#content").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();
		}
		
		
		

		$(window).resize(function(){
			getPosition();
			setLayerStyle();
		});
		
		$(window).scroll(function(){
			getPosition();
			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(){}
		}, options);
		var removeLayer = function () {
			$(".page-overlayer").fadeOut(options.closeSpeed,function() {
				$(this).remove();
				$(".page-layer-loader").remove();
			});
			$(".page-layer-container").fadeOut(options.closeSpeed,function() {
				$(this).find('.content').html('');
				$(this).remove();
				options.onClose();
			});
			
			return false;
		};
		return removeLayer();
	}
});