// Template: $RCSfile: functions.js,v $
// $Author: skrug $
// $Revision: 1.17 $ - $Date: 2012/01/05 10:00:34 $

/*########## 
	BITTE hier KEINE jQuery Funktionalitaet einbauen da aus Performancegründen 
	auf einigen Seiten das JavaScript-Framework nicht eingebettet wird 
##########*/



/********************* BEGIN / trim, ltrim, rtrim (http://www.evocomp.de/beispiele/javascript/trim.html) *********************/
/*
	Beispiele:
	-------------------------------------------
	var s1 = '   vor und hinter mir sind Leerzeichen    ';
	var s2 = '..--.--..vor und hinter mir sind zu loeschende Zeichen..--.--..';

	// Test der JavaScript trim Function
	document.write( trim(s1) );
	// Test der Methode String.ltrim
	document.write( s2.ltrim('.-') );
	// Test der Methode String.rtrim
	document.write( s2.rtrim('.-') );
	// Test der Trim-Methode des String-Objekts (String.trim)
	document.write( s2.trim('.-') );
	// starts with
	document.write( s2.startsWith('.') );
	// ends with
	document.write( s2.endsWith('.') );
*/
String.prototype.ltrim = function (clist) {
	if (clist){
		return this.replace (new RegExp ('^[' + clist + ']+'), '');
	}
	return this.replace(/^\s+/, '');
}

String.prototype.rtrim = function (clist) {
	if (clist){
		return this.replace (new RegExp ('[' + clist + ']+$'), '');
	}
	return this.replace(/\s+$/, '');
}

String.prototype.trim = function (clist) {
	if (clist){
		return this.ltrim(clist).rtrim (clist);
	}
	return this.ltrim().rtrim ();
}

String.prototype.startsWith = function(str) {
	return (this.match("^"+str)==str);
}

String.prototype.endsWith = function(str) {
	return (this.match(str+"$")==str);
}

String.prototype.contains = function(str) { 
	return this.indexOf(str) != -1; 
}

/********************* END / trim, ltrim, rtrim (http://www.evocomp.de/beispiele/javascript/trim.html) *********************/



/************************ browser check / BEGIN ************************/
var checkBrowserType = navigator.appVersion.toLowerCase();
var checkBrowserAgent = navigator.userAgent.toLowerCase();
if(checkBrowserType.indexOf("msie") != -1 && checkBrowserType.indexOf("6.0") != -1){
	browserType = "ie6";
} else if(checkBrowserType.indexOf("msie") != -1 && checkBrowserType.indexOf("7.0") != -1){
	browserType = "ie7";
} else if(checkBrowserType.indexOf("safari") != -1 && checkBrowserType.indexOf("3") != -1){
	browserType = "safari3";
} else if(checkBrowserAgent.indexOf("firefox") != -1 && checkBrowserAgent.indexOf("2.") != -1){
	browserType = "firefox2";
} else if(checkBrowserAgent.indexOf("firefox") != -1 && checkBrowserAgent.indexOf("3.") != -1){
	browserType = "firefox3";
} else if(checkBrowserAgent.indexOf("k-meleon") != -1){
	browserType = "kmeleon";
} else {
	browserType = "";
}
/************************ browser check / END ************************/
var popupWin = null;

//Funktion zum oeffnen des neuen Katalogbestellprozess-Popups
//url= urlex-Link zur Katalogartikelnummer
//url2 = urlex-Link, welcher im Hauptfenster geladen werden soll (optional)
function orderCatalog(url,url2){
	OpenPipelinePopUp('500', '600',url,'yes');
	if (url2) location.href=url2;
}

function orderCatalogExternal(url,url2){
	OpenPipelinePopUp('500', '600',url,'yes');
	if (url2) location.href=url2;
	window.focus();
}

/////////////////////////////////////////
// Cookies
/////////////////////////////////////////

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}



//// Tabbox auf Einstiegsseiten und Storefront
function changeImage(id, image, obj)
{
	var url = obj.href;
	var tag = document.getElementById(id);
	
	if (tag)
	{
		
		if (tag.src.indexOf(image)==-1)
		{
			tag.src=image;
			var link = document.getElementById("link");
			link.href=url;
			if(typeof(setCarouselForabTest)=="function"){
				setCarouselForabTest(image);
			}
			/*if ((typeof testgruppe_hebeltest) != "undefined" && testgruppe_hebeltest == "VKP+EK-Korb-Besteckset-Glaeserset")
			{
				setCarouselForabTest(image); //Funktion wird auf Storefront beschrieben
			}*/
		}
	}
	//für nk-Banner-Hebeltest Testgruppe 2
	
}
//// END Tabbox auf Einstiegsseiten und Storefront


/*~~~~~ base64Encoding / BEGIN ~~~~~*/
function changeLoc(address, winobj){
	if ( ( typeof winobj == "undefined" ) || ( winobj == null ) ){
		window.location.href = address;
	} else {
		winobj.location.href = address;
	}
}

function goToURL(encodedURL,trackingValue){//Die Methode goToURL() dekodiert die in Base64 kodierte URL und ruft diese URL auf.
	
	decodedURL = base64Decode(encodedURL);
	
	//ARGUS-Tracking der Layernavi
	if (typeof trackingValue != "undefined"){
		setLandmark( "Navigation", "&Layer-Navi=" + trackingValue );
	}
	
	changeLoc(decodedURL);
}

function goToURLWithTracking(url,trackingValue,winobj){
	
	var currentSessionID = jQuery.cookies.get('sid');
	currentSessionID = ( (currentSessionID == "" || currentSessionID == null) ? getSessionIdFromUrl(uriDynamicTemplate) : currentSessionID );
	
	var url = (( url.indexOf("http://") != -1 || url.indexOf("https://") != -1 ) ? /*if*/url : /*else*/( currentSessionID != "" ) ? /*if*/addUrlSeperator({ 
		url : base64Decode(url), 
		addUrlParam : 'sid=' + currentSessionID,
		seperatorCustom : ';'
	}) : /*else*/base64Decode(url) );
	
	//ARGUS-Tracking der Layernavi
	if (typeof(trackingValue) != "undefined"){
		
		var attributes = "&Layer-Navi=" + trackingValue;
		var trackingValueArray = trackingValue.split("_");
		
		if (trackingValueArray.length>0){
			attributes = attributes + "&Layer-Navi-Sortiment=" + trackingValueArray[0];
		}
		
		setClickoutLandmarkFunction( "Navigation", attributes, changeLoc(url,winobj));
		
	} else {
		changeLoc(url,winobj);
	}
}

/*~~~~~ base64Encoding / END ~~~~~*/

function goToURLWithSSLCheck(http_url, https_url, winobj, trackingValue)
{
	//ARGUS-Tracking der HeadNavi (Warenkorb, Anmelden, ...)
	if (typeof trackingValue != "undefined")
	{
		setLandmark( "Navigation", "&Header-Navi=" + trackingValue );
	}
	
	if (typeof winobj == "undefined" || winobj == null) changeLoc(getURLWithSSLCheck(http_url, https_url));
	else changeLoc(getURLWithSSLCheck(http_url, https_url), winobj);
}

function getURLWithSSLCheck(http_url, https_url)
{	
	if (getCookie("BV_SSL") == "1")
		return https_url;
	else 
		return http_url;
}



function openRechner() {
	
	var urlCalculater = addUrlSeperator({ 
		url : uriDynamicTemplateSessionless, // is defined in: "\bv_shop\staticfiles\cartridge\templates\de\inc\head.isml"
		addUrlParam : 'Template=popup/pop_calc_cont'
	});
	
	OpenPopUpScroll('480','400', urlCalculater);
}


//// Popup-Funktionen

function closePopup() 
{
	if( popupWin != null && !popupWin.closed )
	{
		popupWin.close();
		popupWin = null;
	}
}

function OpenPopUpScroll(breite,hoehe,Ziel) 
{
    options ="left=0,top=0,screenX=0,screenY=0,width="+breite+",height="+hoehe+",toolbar=no,locationbar=no,directories=no,scrollbars=yes,status=yes,menubar=no,resizable=yes";
	popupWin = open(Ziel,'PopUp',options);
	popupWin.focus();
}

function OpenPopUpZoom(breite,hoehe,Ziel) {

	if (screen.height>=700) 
	{
		hoehe = eval(hoehe*1 + 13);
	}

	options ="left=0,top=0,left=0,top=0,screenX=0,screenY=0,width="+breite+",height="+hoehe+",toolbar=no,locationbar=no,directories=no,scrollbars=auto,status=yes,menubar=no,resizable=yes";
	popupWin = open(Ziel,'PopUp',options);
	popupWin.focus();
}

function OpenPipelinePopUp(breite,hoehe,Ziel,scrollbar) {
	options ="left=0,top=0,screenX=0,screenY=0,width="+breite+",height="+hoehe+",toolbar=no,locationbar=no,directories=no,scrollbars=yes,status=yes,menubar=no,resizable=yes";
	popupWin = open(Ziel,'PopUp',options);
}

function OpenPrintPopUpScroll(breite,hoehe,Ziel) {
    options ="width="+breite+",height="+hoehe+",toolbar=no,locationbar=yes,directories=no,scrollbars=yes,status=yes,menubar=yes,resizable=yes";
   	popup = open(Ziel,'PopUp',options);
}
  
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function trackURLCLickWithSpecialLandmark(url, landmarkName, trackingParameter, trackingValue, winobj )
{
	setClickoutLandmarkFunction( landmarkName, "&" + trackingParameter + "=" + trackingValue, changeLoc(url,winobj));
}

/// cookie funktionen

function getCookie( name ) {
   name += "=";
   var len = name.length;
   var cookie_len = document.cookie.length;
   var i = 0;
   while ( i < cookie_len ) {
     var j = i + len;
	 if ( document.cookie.substring(i,j) == name ) return getCookieValue(j);
	 i = document.cookie.indexOf( " ", i ) + 1;
	 if ( i == 0 ) break;
   }
   return null;
}
	 
function getCookieValue( position ) {
   var end = document.cookie.indexOf(";", position );
   if ( end == -1 ) end = document.cookie.length;
   return unescape( document.cookie.substring( position, end ) );
}

function setCookie(name, value, expires, path) {
   var exp = new Date();
   exp.setTime(exp.getTime() + expires);
   document.cookie = name + "=" + value + "; expires=" + exp.toGMTString() +
     ((path == null ) ? "" : ("; path=" + path ));
}
	 
function setCookieBaur(name, value, expires, path) {
   var exp = new Date();
   exp.setTime(exp.getTime() + expires);
   document.cookie = name + "=" + value + "; expires=" + exp.toGMTString() +
     ((path == null ) ? "" : ("; path=" + path ));
}
	 
function setTempCookie(name, value, path) {
   document.cookie = name + "=" + value + ((path == null ) ? "" : ("; path=" + path ));
}
	 
function deleteCookie(cookieName, path) {
	var exp = new Date();
	exp.setTime(exp.getTime() - 100*24*60*60*1000);
	document.cookie = cookieName +"=0; expires=" + exp.toGMTString() + ";path=" + path;
}

function setDomainCookie(name, value, expires, path, domain) {
	   if ( domain == null ) {
			if (document.domain.indexOf("baur.de")>-1) domain=".baur.de";
			else if (document.domain.indexOf("imwalking.de")>-1) domain=".imwalking.de";
			else if (document.domain.indexOf("universal.at")>-1) domain=".universal.at";
			else if (document.domain.indexOf("ackermann.ch")>-1) domain=".ackermann.ch";
			else if (document.domain.indexOf("quelle.ch")>-1) domain=".quelle.ch";
			else if (document.domain.indexOf("quelle.at")>-1) domain=".quelle.at";
			else if (document.domain.indexOf("otto.de")>-1) domain=".otto.de";
			else if (document.domain.indexOf("localhost")>-1) domain="localhost";
			else if (document.domain.indexOf("weikatec.com")>-1) domain=".weikatec.com";
	   }
	  
	   var exp = new Date();
	   if ( expires != null ) { 
		   exp.setTime(exp.getTime() + expires);
		   expires = "; expires="+exp.toGMTString();
	   }
	   else expires = "";
	   //alert('Name: ' + name + "\n" + "Value: " + value + "\n" + "Domain: " + domain + "\n" + "expires: " + expires);
	   if (path == null)
	   	   path = "/";	
	   var pfad = ((path == null ) ? "" : ("; path=" + path ))
	   document.cookie = name + "=" + value + expires + pfad + ";domain=" + domain;
}
	 
function setTempDomainCookie(name, value, path, domain) {
 	setDomainCookie( name, value, null, path, domain );
}


// diverses
 
// extracts sessionId from URL, beginning with sid= ending at the end or at an "?" char, "=" are killed
function getSessionIdFromUrl( URL ) {
  var startTag = "sid=";
  var pos = URL.indexOf( startTag );
  if ( pos != -1 ) URL = URL.substring( pos + startTag.length );
  pos = URL.indexOf( "?" );
  if ( pos != -1 ) URL = URL.substring( 0, pos );
  URL = URL.replace( /=/, '' );
  return URL;
}


/* für sich selbst verändernde iframes */	
function setFrameHeight( name, h ){	 
	if( document.getElementById( name ) != null ) 
		document.getElementById( name ).height = h;
}	

function openPrintMyAccount() {
	url = location.href + "&drucken=1";
	OpenPrintPopUpScroll('630','510', url);
} 

/* get value of group of radio buttons */
function getRadioValue( radioGroup ) 
{
    if( radioGroup.length === undefined )
		return radioGroup.value;
	for ( i = 0; i < radioGroup.length; i++ )
	  if ( radioGroup[i].checked )
	  	return radioGroup[i].value;
	return null;  	
}

/* sets select box to a new option */
function selectOption( select, value ) {
	for( i = 0; i < select.length; i++ ) {
		if ( select.options[i].value == value) {
			select.options.selectedIndex = i;
		}
	}	
}			

/* deletes the sid from a given URL */
function filterSid( url ) {
  var pos = url.indexOf( ';sid=' );
  var pos2 = url.indexOf( '?' );
  if ( pos > 0 && pos2 > 0 )
	url = url.substring( 0, pos ) + url.substring( pos2 );
  return url;
}

// Funktion für Artikelnummerndirekteingabe bei Schuhen ( halbe Größen! )
function convertShoeSize( size ) {
    size = size.replace( /\.5/,",5");
	size = size.replace( / 1\/2/,",5");
	size = size.replace( /1\/2$/,",5");
	return size;
}

// Willkommensnachricht im header.isml
function getCookieFirstName() {

	var cookieFName = "BV_FName";
	var prefixFName = cookieFName + "=";
	var myCookie = "cookie";

	if (document.cookie) {
		myCookie = document.cookie;
	}

	var beginFName = myCookie.indexOf(prefixFName);
	var endFName;
	var vFName;

	if (beginFName != -1) {
		var tmp = myCookie.substring(beginFName + prefixFName.length);
		if(tmp.indexOf(';') != -1) {endFName = beginFName + prefixFName.length + tmp.indexOf(';');} else {endFName = myCookie.length;}
		vFName = unescape(myCookie.substring(beginFName + prefixFName.length, endFName));
	} else {
		vFName = "";
	}
	return vFName;
}

function getCookieLastName() {

	var cookieLName = "BV_LName";
	var prefixLName = cookieLName + "=";
	var myCookie = "cookie";

	if (document.cookie) {
		myCookie = document.cookie;
	}

	var beginLName = myCookie.indexOf(prefixLName);
	var endLName;
	var vLName;

	if (beginLName != -1) {
		var tmp = myCookie.substring(beginLName + prefixLName.length);
		if(tmp.indexOf(';') != -1) {endLName = beginLName + prefixLName.length + tmp.indexOf(';');} else {endLName = myCookie.length;}
		vLName = unescape(myCookie.substring(beginLName + prefixLName.length, endLName));
	} else {
		vLName = "";
	}
	return vLName;
}

/*HTML-Sonderzeichen-Decodierung*/
function DecodeString(wert) {
	var result = wert;
	if ((typeof result) !="undefined")
	{
		var maxi = result.length;
		var i = 0;
		while ((result.search("&") != -1) && (i < maxi)) {
			result = result.replace(/\&nbsp\;/," ");
			result = result.replace(/\&auml\;/,"ä");
			result = result.replace(/\&Auml\;/,"Ä");
			result = result.replace(/\&ouml\;/,"ö");
			result = result.replace(/\&Ouml\;/,"Ö");
			result = result.replace(/\&uuml\;/,"ü");
			result = result.replace(/\&Uuml\;/,"Ü");
			result = result.replace(/\&szlig\;/,"ß");
			result = result.replace(/\&raquo\;/,"»");
			result = result.replace(/\&laquo\;/,"«");
			result = result.replace(/\&frac12\;/,"½");
			result = result.replace(/\&frac14\;/,"¼");
			result = result.replace(/\&frac34\;/,"¾");
			result = result.replace(/\&quot\;/,"\"");
			result = result.replace(/\&ordm\;/,"°");
			result = result.replace(/\&rdquo\;/,"");
			result = result.replace(/\&ldquo\;/,"");
			result = result.replace(/\&acute\;/,"´");
			result = result.replace(/\&amp\;/,"&");
			result = result.replace(/\&ecirc\;/,"ê");
			result = result.replace(/\&eacute\;/,"é");
			result = result.replace(/\&egrave\;/,"è");
			result = result.replace(/\&euml\;/,"ë");
			result = result.replace(/\&agrave\;/,"à");
			result = result.replace(/\&aacute\;/,"á");
			result = result.replace(/\&acirc\;/,"â");
			result = result.replace(/\&Oslash\;/,"Ø");
			result = result.replace(/\&\#150\;/,"-");
			result = result.replace(/\&\#151\;/,"-");
			result = result.replace(/\&\#128\;/,"EUR");
			result = result.replace(/\&sup2\;/,"²");
			result = result.replace(/\&sup3\;/,"³");
			result = result.replace(/\&reg\;/,"®");
			i++;
		}
		return result;
	}
	else
	{
		return "";
	}
}

/* add parameter to url */
function addParameter( url, pmeter ) {
	if ( url.indexOf("?") == -1 ) 
		url += "?";
	else
		url += "&";	  
	url += pmeter;
	return url;
}
  
/* add parameter and value to url */
function addValueToUrl( url, pmeter, value ) {
	if ( url.indexOf("?") == -1 ) 
		url += "?";
	else
		url += "&";	  
	url += pmeter + "=";
	url += encodeURIComponent( value );
	return url;
}


/************ Ehemaliges inc_mailversenden.isml ************/

// ToDo: ISML-Links als globale variable im header setzten. ISML wird in JS-Dateien nicht gerendert.

	function SendEMail(address)
	{
		if (navigator.userAgent.indexOf('MSIE') != -1)
		{
			//OpenPopUpScrollAuto('480','635','#urlex('http','',action('BV_ViewTemplate-ViewData'), Parameter('Template', 'popup/pop_email'), Parameter('ls',ls))#' + '&address=' + address);
		}
		else
		{
			//OpenPopUpScrollAuto('480','635','#urlex('http','',action('BV_ViewTemplate-ViewData'), Parameter('Template', 'popup/pop_email'), Parameter('ls',ls))#' + '&address=' + address);
		}
	}
	
	function SendWiderspruch(address)
	{
		if (navigator.userAgent.indexOf('MSIE') != -1)
		{
			//OpenPipelinePopUp('480','700','#urlex('http','',action('BV_ViewTemplate-ViewData'), Parameter('Template', 'popup/pop_email_widerspruch'), Parameter('ls',ls))#' + '&address=' + address);
		}
		else
		{
			//OpenPipelinePopUp('480','720','#urlex('http','',action('BV_ViewTemplate-ViewData'), Parameter('Template', 'popup/pop_email_widerspruch'), Parameter('ls',ls))#' + '&address=' + address);
		}
	}	

	function prepareUrl( url ) {
	    var pos = url.indexOf( ';sid=' );
	    var pos2 = url.indexOf( '?' );
	    if ( pos > 0 && pos2 > 0 ) 
	  		url = url.substring( 0, pos ) + url.substring( pos2 );
	    pos = url.indexOf( '&ls=' );
	    pos2 = url.indexOf( '&', pos + 1 );
	    if ( pos > 0 && pos2 > 0 ) 
	  		url = url.substring( 0, pos ) + url.substring( pos2 ); 
	  	return escape( url );
	}
	
	function SendEMailEmpfehlung()
	{
		if (navigator.userAgent.indexOf('MSIE') != -1)
		{
			//OpenPipelinePopUp('480','542','#urlex('http','',action('BV_ViewTemplate-ViewData'), Parameter('Template', 'popup/pop_email_empfehlung'), Parameter('ls',ls))#' + '&address=empfehlung' + '&PageURL=' + prepareUrl( document.URL ));
		}
		else
		{
			//OpenPipelinePopUp('480','542','#urlex('http','',action('BV_ViewTemplate-ViewData'), Parameter('Template', 'popup/pop_email_empfehlung'), Parameter('ls',ls))#' + '&address=empfehlung' + '&PageURL=' + prepareUrl( document.URL ));
		}
	}
	
	function SendEMailKuechen( neu )
	{
		var height = 700;
		if (navigator.userAgent.indexOf('MSIE') != -1) height = 720;
		//OpenPipelinePopUp('540',height,'#urlex('http','',action('BV_ViewTemplate-ViewData'), Parameter('Template', 'popup/pop_email'), Parameter('ls',ls))#' + '&address=kuechenteam' + '&kuechenname=#kuechenname#' + ( neu == 1 ? '&aktion=neu' : '' ) );
	}
/************ Ehemaliges inc_mailversenden.isml - END ************/




/************ Google-Query ermitteln - BEGIN ************/

function getQueryFromUrl( ref, pmeter ) {
	var query = "";
    var StartPos = ref.indexOf( "&" + pmeter + "=");
    if ( StartPos == -1 ) 
	    StartPos = ref.indexOf( "?" + pmeter + "=");
    if ( StartPos == -1 ) return query;
    var subStr1 = ref.substr(StartPos + 2 + pmeter.length );
	var EndPos = subStr1.indexOf("&");
	if (EndPos <0) EndPos=subStr1.length;
	query = subStr1.substring(0,EndPos);
	if ( query.indexOf("%") > -1 ) 
		query = decodeURIComponent( query );
	return query;
}	

function getGoogleQuery(referrer){
	
	// Wird für die Sucheweiterleitungen benutzt
	
	var ref = referrer; //"http://www.google.de/search?hl=de&client=firefox-a&rls=org.mozilla%3Ade%3Aofficial&hs=XO6&q=buffalo+schuhe&sdf=s"
	var query = "";
	
	/*  kein SEO-Plugin bei SEM if (ref.indexOf(".google.") == -1 && ref.indexOf(".yahoo.") == -1 && ref.indexOf(".bing.") == -1 && ref.indexOf("suche.t-online.de") == -1 && ref.indexOf("suche.aol.de") == -1 ) {
		if ( getCookie( "semReferrer" ) != null ) {
			ref = getCookie( "semReferrer" );
		    setTempDomainCookie( "semReferrer", "", "/" );
		}    
	} */	
		
	if (ref.indexOf(".google.")>-1)
	{
		query = getQueryFromUrl( ref, "q" );
		if (location.href.indexOf("quelle.at")>=0 && query.length==0) query = "quelle";
		if (location.href.indexOf("quelle.ch")>=0 && query.length==0) query = "quelle";
		if (location.href.indexOf("ackermann.ch")>=0 && query.length==0) query = "ackermann";
		if (location.href.indexOf("universal.at")>=0 && query.length==0) query = "universal";
	}
	
	if (ref.indexOf(".yahoo.")>-1)
	{
		query = getQueryFromUrl( ref, "p" );
	}
	
	if (ref.indexOf(".bing.")>-1)
	{
		query = getQueryFromUrl( ref, "q" );
	}
	
	if (ref.indexOf("suche.t-online.de")>-1)
	{
		query = getQueryFromUrl( ref, "q" );
	}
	
	if (ref.indexOf("search.msn.")>-1)
	{
		query = getQueryFromUrl( ref, "q" );
	}
	
	if (ref.indexOf("suche.aol.de")>-1)
	{
		query = getQueryFromUrl( ref, "q" );
		if ( query = "" )
			query = getQueryFromUrl( ref, "query" );
	}
	
	return query;
}

function trim( str ) {  
	return str.replace(/^\s+|\s+$/g, '');  
}
  
/* remove irrelevant words */  
function cleanGoogleQuery(query) {
	query = query.toLowerCase();
	query = query.replace( /baur/g, "" );
	query = query.replace( /bauer/g, "" );
	query = query.replace( /baure/g, "" );
	query = query.replace( /buar/g, "" );
	query = query.replace( /online/g, "" );
	query = query.replace( /shop/g, "" );
	query = query.replace( /versand/g, "" );
	query = query.replace( /handel/g, "" );
	query = query.replace( /burgkunstadt/g, "" );
	query = query.replace( /universal\.at/g, "" );
	query = query.replace( /quelle\.at/g, "" );
	query = query.replace( /quelle\.ch/g, "" );
	query = query.replace( /quelle/g, "" );
	query = query.replace( /ackermann\.ch/g, "" );
	query = query.replace( /ackermann/g, "" );
	query = trim( query );
	return query;
}

/************ Google-Query ermitteln - END ************/


/* functions to work with location.search */
function getLocationSearch() {
  var uebergabe=location.search.substring(1,location.search.length);
  uebergabe=unescape(uebergabe);
  var angabenTemp=uebergabe.split("&");
  var angaben=new Array();
  for(z in angabenTemp) {
	var paar=angabenTemp[z].split("=");
	// assoziatives Arrayfeld bilden
	angaben[paar[0]]=paar[1];
  }
  return angaben;
  // access values with angaben[<AttributeName>]
}

/************************ prohibit ie6 link flicker bug / BEGIN ************************/
if( browserType === "ie6" || browserType === "ie7" ){
	try {
		document.execCommand("BackgroundImageCache", false, true);
	} catch(err){}
}
/************************ prohibit ie6 link flicker bug / END ************************/

/*Openglossar */
var pop_gl;
function OpenGlossar(EintragNr)
{
	if(pop_gl)
	{
		if(!pop_gl.closed)
		{
			pop_gl.close();
		}
	}
	options ="width=435,height=400,toolbar=no,locationbar=no,directories=no,scrollbars=no,status=yes,menubar=no,resizable=yes";
	Ziel = webRoot + "/glossar.html?fremdWortId=" + EintragNr; 
	pop_gl = open(Ziel,'PopUp',options);
	pop_gl.focus();
}


/************************ Funktion, um Scripts in nachgeladenem html ausführen ***********************/
function evalScript(scripts)
{	try
	{	
		if(scripts != '')	
		{	var script = "";
			scripts = scripts.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){
	       	                         if (scripts !== null) script += arguments[1] + '\n';
 	        	                        return '';});
			if(script) (window.execScript) ? window.execScript(script) : window.setTimeout(script, 0);
		}
		return false;
	}
	catch(e)
	{	
		alert(e)
	}
}

/************************ Funktion, um Code für Tackingpixel nach dem Laden auszuführen ***********************/
/************
 * Bsp:
 * jQuery(window).load(function(){
 * code = '<div id=\"cto_se_7709077_ac\" style=\"display:none\">'
						+ '<div class=\"ctoWidgetServer\">http:\/\/widget.criteo.com\/pac\/<\/div>'
						+ '<div class=\"ctoDataType\">sendEvent<\/div>'
						+ '<div class=\"ctoParams\">wi=7709077&pt1=2&i=#pad(Article:ArticleNo,6)#<\/div>'
						+ '<\/div>';				
				addTrackingPixel(code);
			});
 * 
 * 
 */
function addTrackingPixel(code)
{
	
	if (!jQuery('#externalPixelTracking').is('div'))
	{
		jQuery('<div class="skipElement" id="externalPixelTracking">empty TrackingPixel Container</div>').appendTo( 'body' );
						
	}
	var content = jQuery('#externalPixelTracking').html();
	content = content + code;
	jQuery('#externalPixelTracking').html(content);
}


function loadFallbackImage( img ) {
	var src = img.src;
	var parts = src.split("/");
	var hasPoolAt = -1;
	var format = "";
	var imgName = "";
	for ( i = 0; i < parts.length; i++ ) {
		if ( hasPoolAt == -1 && parts[i] == "pool" )
			hasPoolAt = i;
		if( hasPoolAt == i-1 )
			format = parts[i];	
		if( hasPoolAt == i-2 )
			imgName = parts[i];	
	}
	if ( hasPoolAt > -1 && format != "" && imgName != "" ) {
		var width = "";
		var height = "";
		// dv
		if ( format == "baur_format_p" ) {
			width = "323";
			height = "461";
		}
		// dv thumb
		else if ( format == "baur_format_t" ) {
			width = "60";
			height = "85";
		}
		// prod list
		else if ( format == "baur_format_m" ) {
			width = "185";
			height = "265";
		}
		// prod list furniture
		else if ( format == "baur_formatQ" ) {
			width = "186";
			height = "128";
		}
		//Mantis #67574: in case the fallback image (=> formata) was also not available (thus, this method is called a second time with 'formata' as format) ...
		else if ( format == "formata" ){
			// and the current picture is a thumbnail (it is in the thumbnail carousel) ...
			if(jQuery(img).parent().parent().attr('id') == "mycarousel_thumpnail_dv"){
				// .... remove the image from the list.
				jQuery(img).parent().remove();
			}			
		}
		if ( width != "" || height != "" ) {
			//use 'formata' in the needed size as fallback
			var fallbackUrl = "http://baur.zoomoviewer.com/servlet/GetImage?clientId=47&image=" + imgName + 
								"&width=" + width + 
								"&height=" + height +
								"&url=http://bilder.baur.de/pool/formata/" + imgName;
			img.src = fallbackUrl;
		}	
	}
}

function getProtocol() {
	if ( location.href.indexOf( "https" ) == 0 )
		return "https://";
	else
		return "http://";
}

