/*
** Blätterkatalog Integration Script
** *********************************
** 
** 2) 	blaetterkatalogflip(newPage)
**	Blättert auf die gegebene Seite
**	Wird bei Linktyp "Gehe zu Seite" verwendet.
**
**	TODO: Kann optional verwendet werden
**	      um mittels 
**	
**	<a href="javascript:blaetterkatalogflip(5)">Gehe zu Seite 5</a>
**
**	den Blätterkatalog umzublättern.
**	(Beispiel: Auf Kapitel-Startseite blättern)
**
** 3)   gotoURL(myURL)
**   	Wird bei Linktyp "Externer Link" und
**	von addToCart aufgerufen
**
*/
	
	// modify eCataloge settings for Easy link CD
	var easyCdMode = false;
	var eCatCdMode = false;
	
	
	/**
	*  blättert auf die entsprechende seite um
	*  setzt voraus, dass der blätterkatalog in
	*  dem fenster noch geladen ist
	*/
	function blaetterkatalogflip(newPage) {
		flashCommand('jump_to_id', newPage)
	}
	
	function isSafariOnWin () {
		return (navigator.platform.indexOf("Win") != -1 && navigator.userAgent.indexOf("Safari") != -1) ? true : false;
	}
	
	/**
	 * zeigt den Meldungslayer an wenn eine Meldung definiert ist
	 * ist keine Meldung definiert wird der Layer ausgeblendet
	 **/
	function showMessageLayer(message) {
		var msgLayer = document.getElementById('eCatMsgBox');
		var flashLayer = document.getElementById('flashcontent');
		// zeigt nur eine AlertBox-Nachricht an, wenn diese auch definiert ist
		if (msgLayer && flashLayer && isSafariOnWin()) {
			if (typeof message == 'undefined' || message === undefined || message == null  || message == '') {
				msgLayer.style.display = "none";
				flashLayer.style.top = "0px";
			} else {
				var msgP = document.getElementById('eCatMsgBoxText');
				if (msgP) { msgP.innerHTML = message };
				msgLayer.style.display = "block";
				flashLayer.style.top = msgLayer.offsetHeight() + "px"; //"200px";
				if (msgOk && msgOk != '') {
					var btnOk = document.getElementById('eCatMsgBoxOk');
					if (btnOk) { btnOk.value = msgOk; };
				}
			}
		} else {
			if (!(typeof message == 'undefined' || message === undefined || message == null  || message == '')) {
				alert (message);
			}
		}
	}
	
	
	/**
	* springt zu einer URL
	* Ziel: Shop-Fenster (oder neues Fenster, wenn Original-Fenster, alias opener, geschlossen oder den Inhalt gewechselt hat)
	* Param myURL: URL die aufgerufen wird
	* Param alertMessage: wenn beim Aufruf gesetzt, wird dieser Text in einer Alert-Box angezeigt
	*/
	var shopFenster;
	function gotoURL( myURL, alertMessage, useCurrentWindow) {
		if (typeof (disableWebLinksOnCD) != 'undefined' && disableWebLinksOnCD == true && (easyCdMode == true || eCatCdMode == true)) {
			// disable external links for offline usage
			if (
			  myURL.indexOf(shopBase)!=0 && (
			    myURL.indexOf("http://")==0 
			    || myURL.indexOf("https://")==0 
			    || myURL.indexOf("mailto:")==0 
			    || myURL.indexOf("webcode://")==0)
			  ) {
				return;
			}
		}
		myURL = myURL.replace(/#/, "%23"); // workaround for BK- Flash; Mail from 486/2011-05-19
		if (myURL.indexOf("webcode://")==0) {
			// build webcode URL
			var webCode = myURL.replace('webcode://', '');
			if (myURL.indexOf("http://")!=0 && myURL.indexOf("https://")!=0 && myURL.indexOf("mailto:")!=0) {
				var webCodeHost =  (easyCdMode||eCatCdMode) ? webCodeDomain : shopBase;
				myURL = webCodeHost + webCodeUrl + webCode;
			}
		} else if (myURL.indexOf("http://")!=0 && myURL.indexOf("https://")!=0 && myURL.indexOf("mailto:")!=0) {
			myURL = "http://"+myURL;
		}
		if (useCurrentWindow) {
			// open URL in current window (window used by eCatalogue)
			opener = null;
			alertMessage = null;
			shopFenster = window;
		}
		var setFocusTo;
		try {
			if ( typeof( opener ) == "undefined" || typeof( opener ) == "unknown" 
			  || typeof( opener.name ) == "undefined" || typeof( opener.name ) == "unknown" ) {
			  
				if ( typeof(shopFenster) == "undefined" || shopFenster.closed ) {
					shopFenster = window.open( myURL, "shop", "" );
					if (shopTargetFocus == true) {
						if ( typeof(shopFenster) != "undefined" ) { setFocusTo = shopFenster }
					} else {
						setFocusTo = window; //KB eroom 333 + 137
					}
				} else {
					shopFenster.location.href = myURL;
					if (shopTargetFocus == true) {
						if ( typeof(shopFenster) != "undefined" ) { setFocusTo = shopFenster }
					} else {
						setFocusTo = window; //KB eroom 333 + 137
					}
				}
			} else {
				opener.location.href = myURL;
				opener.blatterkatalogPopup = window;
				if (shopTargetFocus == true) {
					setFocusTo = opener;
				} else {
					setFocusTo = window; //KB eroom 333 + 137
				}
			}
		} catch ( Exception ) {
			if( opener && !opener.closed ) {
				opener.location.href = myURL;
				if (shopTargetFocus == true) {
					setFocusTo = opener;
				} else {
					setFocusTo = window; //KB eroom 333 + 137
				}
			} else {
				try {
					if ( typeof(shopFenster) == "undefined" || shopFenster.closed ) {
						shopFenster = window.open( myURL, "shop", "" );
						if (shopTargetFocus == true) {
							if ( typeof(shopFenster) != "undefined" ) { setFocusTo = shopFenster }
						} else {
							setFocusTo = window; //KB eroom 333 + 137
						}
					} else {
						shopFenster.location.href = myURL;
						if (shopTargetFocus == true) {
							if ( typeof(shopFenster) != "undefined" ) { setFocusTo = shopFenster }
						} else {
							setFocusTo = window; //KB eroom 333 + 137
						}
					}
				} catch ( Exception ) {
					shopFenster = window.open( myURL, "shop", "" );
					if (shopTargetFocus == true) {
						if ( typeof(shopFenster) != "undefined" ) { setFocusTo = shopFenster }
					} else {
						setFocusTo = window; //KB eroom 333 + 137
					}
				}
			}
		}
		if (setFocusTo) { setFocusTo.focus() };
		
		showMessageLayer (alertMessage);
	}
	
	
	/**
	 * getFlashPath() ermittelt das Flash-Objekt
	 */
	function getFlashPath() {
		if ( document.all ) {
			//ie
			return document.bkflash;
		} else {
			//safari
			var ffilm = document.getElementById( "bkflash" );
			try {
				flashfilm.SetVariable( "tst", "1" );
			} catch ( Exception ) {
				//firefox
				ffilm = document.embeds["bkflash"];
			}
			return ffilm;
		}
	}
	
	
	
	/////////////////////////////////////
	// Funktion zum externen Aufruf der Flash-Commands
	// id => 'jump_to_id'
	// par => pageid
	// aufruf mit z.b. flashCommand('jump_to_id', 5)
	/////////////////////////////////////
	function flashCommand( id, par ) {
		try {
		    var movie = getFlashPath();
		       movie.SetVariable( "jscommand", id + "|" + par );
		} catch( Exception ) {
	      	document.getElementById("bkflash").SetVariable( "jscommand", id + "|" + par );		
	    }	
	}
	
	
	function getURLParam( strParamName, defaultBKValue ) {
		var strReturn = " ";
		var strHref = window.location.href;
		
		var i = strHref.indexOf( strParamName );
		if ( i > 0 ) {
			var j = strHref.indexOf( "=", i + 1 );
			if ( j > 0 ) {
				var endPos = strHref.length;
				var k = strHref.indexOf( "?", j + 1 );
				var l = strHref.indexOf( "&", j + 1 );
				if ( k > 0 && l > 0 ) {
					if ( k < l ) {
						endPos = k;
					} else {
						endPos = l;
					}
				} else if ( k > 0 ) {
					endPos = k;
				} else if ( l > 0 ) {
					endPos = l;
				}
				
				strReturn = strHref.substring( j + 1 , endPos );
			}
		}
		
		if (strReturn == " " || strReturn == "") {
			if (defaultBKValue) {
				return defaultBKValue;
			} else {
				switch (strParamName) {
					case 'clientID':		strReturn = "HUK";
						break;
					case 'fork':			strReturn = "Prod";
						break;
					case 'locale':			strReturn = "en_GB";
						break;
					case 'currency':		strReturn = "NONE";
						break;
					case 'catalogname':		strReturn = "TCH2010";
						break;
					case 'startpage':		strReturn = "0.1";
						break;
					case 'useClipboard':	strReturn = (eCatCdMode) ? "TRUE" : '';
						break;
				}
			}
		}
		
		return strReturn;
	}

	window.onerror = stoperror;

	function stoperror( a ) {
		return false;
	}

	function getCatalogName() {
		var catName = getURLParam("catalogname");
		if (catName != "" && catName != " ") { return catName };
		var bkpath =  window.location.pathname;
		var lastSlash = bkpath.lastIndexOf("/");
		bkpath = bkpath.substring(0,lastSlash);
		var  newLastSlash = bkpath.lastIndexOf("/");
		bkpath = bkpath.substring(newLastSlash + 1);
		return bkpath;
	}


	// for Easy link CD  version (556 20080527)
	function getHRefPort() {
		var strHref = window.location.href;
		var bg = strHref.indexOf (':', 6);
		var ed = strHref.indexOf ('/', bg+1);
		if (bg > 0 && ed > bg) {
			return strHref.substr (bg ,ed - bg);
		}
		return ':53192';
	}
	

	///*** START BK ***///
	function startBk () {
		//get page
		var p;
		try { 
			p = getURLParam("startpage");
		} catch (Exception) { p = "0.1";}
		
		var clientID     = getURLParam('clientID');
		var fork         = getURLParam('fork');
		var locale       = getURLParam('locale');
		var currency     = getURLParam('currency');
		var useClipboard = getURLParam('useClipboard');
		if (easyCdMode) {
			// mods for Easy link CD version
			shopBase                   = "http://" + getURLParam('serverlocation');
			shopURL                    = getHRefPort ();
			shopSessionIDParameterName = "/?sessionid=";
			shopArticleIDParameterName = "&articleId=";
			shopURLPostfix             = "\&classByName=addToBasketFromPagingCatalog";
			shopURLTracking            = '';
			protocolErrorMessage       = '';
		}
		
		var shopsession="";
		try { 
			shopsession = getURLParam(easyCdMode ? "sessionid" : "SID");
		} catch (Exception) { shopsession = 0;}
		
		//sid='+shopsession+'&pagenr='+page+'&catalog_config=blaetterkatalog/xml/&lang='+ lang +'" 
		var so = new SWFObject("blaetterkatalog/swf/blaetterkatalog.swf", "blaetterkatalog", "100%", "100%", "8", "#FFFFFF");
		so.addVariable("catalog_config", "blaetterkatalog/xml/");
		so.addVariable("locale", locale);
		if (easyCdMode) {
			so.addVariable("sessionid", shopsession);
			so.addVariable("sid", shopsession);
		}
		so.addVariable("currency", currency);
		so.addVariable("add2clipboard", useClipboard);
		so.addVariable("clientID", clientID);
		so.addVariable("mandant", clientID);
		so.addVariable("pagenr", p);
		so.addVariable("catName", getCatalogName());
		so.addParam("allowFullscreen", "true");
		so.addParam("scale", "scale");
		so.addParam("menu", "false");
		so.addParam("allowScriptAccess","always");
		
		//*** TRACKING ***
		if (!easyCdMode && !eCatCdMode) {
			if (fork.toLowerCase() == "prod" && typeof(googleAnalyticsTrackId) !== "undefined" && googleAnalyticsTrackId != "") {
				so.addVariable("bktrack", "true");
			} else {
				switch (clientID) {
					case 'HDE':
						so.addVariable("bktrack", "true");
						googleAnalyticsTrackId = "UA-2290365-2";
						break;
					case 'HDE-INT':
						so.addVariable("bktrack", "true");
						googleAnalyticsTrackId = "UA-2290365-3";
						break;
					default:
						googleAnalyticsTrackId = "";
				}
			}
		}
		
		so.write("flashcontent");
	}
	
	
	///*** TRACKING ***///
	var writeGaScript = (!easyCdMode && !eCatCdMode);
	var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
	if (writeGaScript) {
		document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
	}

	var lastPage = 0;
	
	function bktrack(bkaction, bkpage) {
		if ("flip"==bkaction && bkpage==lastPage) return;
		lastPage = bkpage;
		
		var catname = getCatalogName();
		var trackPageviewParam = "/blaetterkatalog/" + clientID + "/" + locale + "/" + catname  + "/page-" + bkpage + "/" + bkaction;
		
		try {
			var pageTracker = _gat._getTracker(googleAnalyticsTrackId);
			if (typeof (trackPageviewParam) != "undefined") {
				pageTracker._trackPageview(trackPageviewParam);
			}
			else {
				//pageTracker._trackPageview();
			}
		} catch (err) { }
	}

