/**
 * Logging: log to Firebug console if present
 */
function consolelog(string) {
	if(typeof console == 'object') {
		console.log(string);
	}
}

function openBrWindow(theURL,winName,features) {
  window.open(theURL,winName,features);
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}


var lastX = -1; 
var lastY = -1;
var lastWidth = -1;

var footer = null;

function scrollbarHeight() {

	// Scrollbalken im Body ausschalten
	document.body.style.overflow = 'hidden';
	var height = document.body.clientHeight;

	// Scrollbalken
	document.body.style.overflow = 'scroll';

	height -= document.body.clientHeight;

	// Der IE im Standardmode
	if(!height) height = document.body.offsetHeight-document.body.clientHeight;

	// ursprüngliche Einstellungen wiederherstellen
	document.body.style.overflow = '';

	return height;
}

function moveFooter() {
	
		
	if (footer == null) {
			footer = document.getElementById('footer');
	}
	
	if (footer != null) {
		var offset_x = 0;
		var offset_y = 0;
		var currentWidth = 0;
		if (window.opera) { // Opera
				var window_width = window.innerWidth;
				var window_height = window.innerHeight;
				var scroll_left = window.pageXOffset;
				var scroll_top = window.pageYOffset;
				offset_y = 3;
		} else {
			if (window.innerWidth) { // NS4, NS6
				var window_width = window.innerWidth;
				var window_height = window.innerHeight;
				var scroll_left = window.pageXOffset;
				var scroll_top = window.pageYOffset;
				if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {
					// kein offset versatz
					//var isVerticalScrollbar= document.body.scrollHeight>document.body.clientHeight;
					var isHorizontalScrollbar= document.body.scrollWidth>document.body.clientWidth;
					if(isHorizontalScrollbar == true){
						offset_y = offset_y_FF;
					}
					
				} else {
					offset_y = 2;
				}
		} else if (document.documentElement && document.documentElement.clientWidth) { // IE6 in standards compliant mode
				var window_width = document.documentElement.clientWidth; 
				var window_height = document.documentElement.clientHeight; 
				var scroll_left = document.documentElement.scrollLeft; 
				var scroll_top = document.documentElement.scrollTop;
		} else if (document.body) { // IE4+
				var window_width =  document.body.clientWidth; 
				var window_height = document.body.clientHeight; 
				var scroll_left = document.body.scrollLeft; 
				var scroll_top = document.body.scrollTop; 
		} else {
			return ;
		}
		}
		
			//var currentX = scroll_left;
			var currentX = 0;
			var currentY = scroll_top + window_height - footer.offsetHeight;
		
			//if (lastX != currentX) {
			//		if (footer.style) {
			//			footer.style.left = currentX - offset_x;
			//		} else {
			//			footer.left = currentX - offset_x;
			//		}
					
			//		lastX = currentX;
			//}
			if (footer.style) {
						footer.style.left = 0;
					} else {
						footer.left = 0;
					}
			
			//if browser is FF, specific Horizontal Scroll handle must be executed
			//AG 26.08.08: Nicht mehr noetig. Schuld war aufklappbares Menue der 3 Ebene
			/*if (window.innerWidth && (navigator.userAgent.toLowerCase().indexOf('firefox') > -1)) { 
				currentWidth = document.body.clientWidth;
				
				if (lastWidth != currentWidth) { //Body's Width has been changed
					if(currentWidth < 770){ //Default Body Width = 770
						document.body.style.overflowX = "auto";
						offset_y = 15;
					}else{
						document.body.style.overflowX = "hidden";
						offset_y = 0;
					}
					
					if (lastY == currentY) {
						if (footer.style) {
							footer.style.top = currentY - offset_y ;
						} else {
							footer.top = currentY - offset_y ;
						}
					}
				}
				lastWidth = currentWidth;
			}*/
			
			if ((lastY != currentY) || (lastWidth != currentWidth)) {
					if (footer.style) {
						footer.style.top = currentY - offset_y ;
					} else {
						footer.top = currentY - offset_y ;
					}
					
					lastY = currentY;
			}
  
   		footer.style.visibility = 'visible';
	}

	setTimeout('moveFooter()',10);
}


   
     /*
        Set background color of Blue Buttons
     */ 
      function setBgColor(id, color) 
			{
         if (document.getElementById(id) !=null)
         {
            document.getElementById(id).style.backgroundColor = color;
             document.getElementById(id).style.color = '#ffffff';
         }
			}
     
       
    /*
     Set an image  src of an Element  
     */ 
      function setImage(id, src) 
			{
         if (document.getElementById(id) !=null)
         {
            document.getElementById(id).src = src;
         }
			}

		  /*
         Hide the Footer while scrolling   
         see body event  onscroll="hideFooter()"
     */ 	
		
    function hideFooter () 
    {	
	     if(document.getElementById("footer") !=null  &&
          document.getElementById("footer").style.visibility != "hidden" )
        {
          document.getElementById("footer").style.visibility = 'hidden'; 
        }  
		}	  
			



 /*
         find Position X  of Element
     */ 

     function findPosX(obj)
      {
      var curleft = 0;
       if (obj.offsetParent)
       {
        while (obj.offsetParent)
        {
         curleft += obj.offsetLeft
          obj = obj.offsetParent;
         }
       }
       else if (obj.x)
        curleft += obj.x;
       return curleft;
       }
     
 
 
     /*
         find Position Y  of Element
     */ 
     
      function findPosY(obj)
      {
      var curtop = 0;
       if (obj.offsetParent)
       {
       while (obj.offsetParent)
       {
       curtop += obj.offsetTop
       obj = obj.offsetParent;
       }
       }
       else if (obj.y)
       curtop += obj.y;
      return curtop;
      }




            
     /*
        Ab jetzt  Menugeraffel 
     */ 
     
    var headMenu = new Array (); 
    var sLastLayer = ""; 
        
        


      /*
        Set the Menu Array  build in Header.isml 
     */ 

      function   setMenuArray(newMenuArray)
      {
        headMenu =  newMenuArray;
       
      } 
     /*
        Get the Menu Array  build in Header.isml 
     */ 

     function   getMenuArray()
      {
        return headMenu;
      }
      

   /*
         move the Layer 
     */ 
    
	function moveLayer(aLayer, iParentTop, iParentHeight, iParentLeft, iLevel) {
		if(iLevel < 2){
			var _layer = document.getElementById("layer_" + aLayer[0]);
			var DIVstyle = _layer.style;
			var iTop = iParentTop + iParentHeight;
			DIVstyle.top = iTop;
			DIVstyle.left = iParentLeft;
			var childs = aLayer[1];
			if (isArray(childs)) {
				var j = 0;
				var iChildCounter = childs.length;
				for (j = 0; j < iChildCounter ; j++) {
					moveLayer(
						childs[j], 
						iTop, 
						20, 
						findPosX(document.getElementById("menu_td_" + childs[j][0])), 
						iLevel+1);
				}
			}
			document.getElementById("layer_0").style.visibility = "visible";
		}
	}
     
      /*
         move the Layer To Position
     */     
     	
        function moveLayersToPos() 
           {
           
             var  layers =  getMenuArray(); 
              if (isArray(layers)) 
              {
                var i = 0;
                var iTop = findPosY(document.getElementById("layer_0"));
                var iLeft = findPosX(document.getElementById("layer_0"));
                var iHeight = 20;
                for (i = 0; i < layers.length; i++) 
                {
                 moveLayer(layers[i], iTop, iHeight, iLeft, 0);
                }
            }
          }

		var lastNaviItemLvl1 = "";
	    var lastNaviItemLvl2 = "";
	    var newNaviItemLvl1 = "";
	    var newNaviItemLvl2 = "";
		
		/*
		* Find Navigation path from the current point
		*/
	    function findNaviPath(itemID){
			var navi = getMenuArray();
			
			for (i=0; i<navi.length; i++){ //Level 1
				if (navi[i][0] == itemID){
					newNaviItemLvl1 = "";
	    			newNaviItemLvl2 = "";
					break;
				}
				
				var naviLvl2 = menu[i][1];
				
				if(isArray(naviLvl2)) {
					for(j=0; j<naviLvl2.length; j++){ //Level 2
						
						if(naviLvl2[j][0] == itemID){
							newNaviItemLvl1 = navi[i][0];
							newNaviItemLvl2 = "";
							//alert("lvl1 = " + newNaviItemLvl1 + "; lvl2 = " + newNaviItemLvl2);
							break;
						}
						
						var naviLvl3 = naviLvl2[j][1];
						if(isArray(naviLvl3)) {
							for(t=0; t<naviLvl3.length; t++){ //Level 3
								if(naviLvl3[t][0] == itemID){
									newNaviItemLvl1 = navi[i][0];
									newNaviItemLvl2 = naviLvl2[j][0];
									//alert("lvl1 = " + newNaviItemLvl1 + "; lvl2 = " + newNaviItemLvl2);
									break;
								}
							}//EO Lvl3
						}
						
					}//EO Lvl2
				}
				
			}//EO Lvl1
			//alert("lvl1 = " + newNaviItemLvl1 + "; lvl2 = " + newNaviItemLvl2);	    	
	    		
	    }
	    
	    /*
	    * Highlight Navigation Path
	    */
	    function highlightNaviPath(itemID) {
	    	findNaviPath(itemID);
	    	
	    	//clearLastHighlight();
		    		
	    	if(newNaviItemLvl1!=""){
	    		if(document.getElementById("menu_text_" + newNaviItemLvl1).className.indexOf("unselectable") > 0)
	    			document.getElementById("menu_text_" + newNaviItemLvl1).className = "arial_11_orange unselectable";
	    		else
	    			document.getElementById("menu_text_" + newNaviItemLvl1).className = "arial_11_orange";
	    	}
	    	if(newNaviItemLvl2!="") {
	    		if(document.getElementById("menu_text_" + newNaviItemLvl2).className.indexOf("unselectable") > 0)
	    			document.getElementById("menu_text_" + newNaviItemLvl2).className = "arial_11_orange unselectable";
	    		else
	    			document.getElementById("menu_text_" + newNaviItemLvl2).className = "arial_11_orange";
	    	}
	    	
	    	lastNaviItemLvl1 = newNaviItemLvl1;
	    	lastNaviItemLvl2 = newNaviItemLvl2;
	    	
	    	newNaviItemLvl1 = "";
	    	newNaviItemLvl2 = "";
	    }
	    
	    function highlightLast() {
	    	if(lastNaviItemLvl1!=""){
	    		if(document.getElementById("menu_text_" + lastNaviItemLvl1).className.indexOf("unselectable") > 0)
	    			document.getElementById("menu_text_" + lastNaviItemLvl1).className = "arial_11_orange unselectable";
	    		else
	    			document.getElementById("menu_text_" + lastNaviItemLvl1).className = "arial_11_orange";
	    	}
	    	if(lastNaviItemLvl2!="") {
	    		if(document.getElementById("menu_text_" + lastNaviItemLvl2).className.indexOf("unselectable") > 0)
	    			document.getElementById("menu_text_" + lastNaviItemLvl2).className = "arial_11_orange unselectable";
	    		else
	    			document.getElementById("menu_text_" + lastNaviItemLvl2).className = "arial_11_orange";
	    	}
	    }
	    
	    /*
	    * Clear Last HightLight
	    */
	    function clearLastHighlight() {
	    	if(document.getElementById("menu_text_" + lastNaviItemLvl1) != null){
	    		if(document.getElementById("menu_text_" + lastNaviItemLvl1).className.indexOf("unselectable") > 0)
	    			document.getElementById("menu_text_" + lastNaviItemLvl1).className = "arial_11_anthracite unselectable";
	    		else
		    		document.getElementById("menu_text_" + lastNaviItemLvl1).className = "arial_11_anthracite";
	    	}
		    if(document.getElementById("menu_text_" + lastNaviItemLvl2) != null) {
		    	if(document.getElementById("menu_text_" + lastNaviItemLvl2).className.indexOf("unselectable") > 0)
	    			document.getElementById("menu_text_" + lastNaviItemLvl2).className = "arial_11_anthracite unselectable";
	    		else
		    		document.getElementById("menu_text_" + lastNaviItemLvl2).className = "arial_11_anthracite";
		    }
		 
	    }
	    
     
    /*
         show the Layer 
     */      
       function showLayer (sLayer, init) 
      {
      	//clearLastHighlight();
      	
         var  layers =  getMenuArray(); 
         
         if (sLastLayer == sLayer) 
         {
         	if (document.getElementById("menu_td_" + sLayer) != null)
         	{
         		var className = document.getElementById("menu_td_" + sLayer).className;
	         	var isOver = (className.indexOf("menuTD_lvl1_over") > 0);
         		if (init)
        	 	{
    	          	if (isOver)
	              	{
              			document.getElementById("menu_td_" + sLayer).className = className.replace(/ menuTD_lvl1_over/, '');
            	  		isOver = false;
        	      	}
    	     	}
	         	if (isOver) return;
         	}
         }
         
         sLastLayer = sLayer;
         var i = 0;
         var j = 0;
         if (isArray(layers)) 
         {
          for (i = 0; i < layers.length; i++) 
          {
            if (checkVisibility(layers[i], sLayer)) 
            {
              if (!layers[i][2]) 
              {
              	if (!init)
              	{
	              	var className = document.getElementById("menu_td_" + layers[i][0]).className;
	              	if (className.indexOf("menuTD_lvl1_over") < 0)
	              	{
	              		document.getElementById("menu_td_" + layers[i][0]).className = className + " menuTD_lvl1_over";
	              	}
	            }
              }        
              else 
              {
                 document.getElementById("menu_td_" + layers[i][0]).className = "menuTD_lvl1_active";
              }
            } 
            else 
            {
              if (layers[i][2]) 
              {
               document.getElementById("menu_td_" + layers[i][0]).className = "menuTD_lvl1_active";
              } 
              else 
              {
               		var className = document.getElementById("menu_td_" + layers[i][0]).className;
	              	if (className.indexOf("menuTD_lvl1_over") < 0)
	              	{
	              		if (className.indexOf("menuTD_lvl1_active") < 0)
	              		{
	              			document.getElementById("menu_td_" + layers[i][0]).className = "menuTD_lvl1_inactive";
	              		}
	              	}
               		else
               		{
               			document.getElementById("menu_td_" + layers[i][0]).className = className.replace(/ menuTD_lvl1_over/, '');
               		}
              }
            }
          }
        }
      }
         
          /*
             check the visibility
         */   
          function checkVisibility(aLayer, sLayer) {
          var i = 0;
          var bVisible = (aLayer[0] == sLayer);
          var childs = aLayer[1];
          if (isArray(childs)) {
          var iChildCounter = childs.length;
          for (i = 0; i < iChildCounter ; i++) {
          bVisible = ((checkVisibility(childs[i], sLayer)) || (bVisible));
          }
          }
          if(document.getElementById("layer_" + aLayer[0])!=null){
          		var currentLayer = document.getElementById("layer_" + aLayer[0]);
	          if (typeof currentLayer != "undefined") {
    	    	  if (bVisible) {
        	  		currentLayer.style.visibility = "visible";
          		  } else {
          			currentLayer.style.visibility = "hidden" ;
          		  }
          	  }
          }
          
          return bVisible;
          }
          
        /*
             check is Array
         */     
          function isArray(aToCheck)
          {
            if (isObject(aToCheck)) 
            {
             return aToCheck.constructor == Array;
            }
          }
          
          
      
          function isObject(a)
          {
          return (typeof a == "object" && !!a) || isFunction(a);
          }
          function isFunction(a)
          {
          return typeof a == "function";
          }


       function afterOnLoad(showTopSeller)
      {    
       /*
          Head Menu  position  etc
       */ 
        showDefaultLayer();
        moveLayersToPos();
        setTimeout('moveLayersToPos();', 10); 
      
        /*
          Resize Window width 
       */  
      /*if (!(document.styleSheets && document.all)) {
      window.innerWidth = 795;
      }*/
    
       /*
          Show  Topseller Splash Product
       */ 
       if (showTopSeller)
        	showNextTopSeller();
       
       /*
       Move Footer to visible foot position 
       */ 
       moveFooter();
     
      /*
       Set the right height of Left Section : Under Headline
       get the height of Headline Element and set the headlinedistance Element i LeftSection   
      */
          if (document.getElementById("headline") !=null )
          {
             var  yheight = document.getElementById("headline").offsetHeight ;
            if (document.getElementById("headlinedistance") !=null && yheight !=0  && yheight < 400  )
            {  
             yheight=yheight+"px";
             document.getElementById("headlinedistance").style.height = yheight;
            }
          }

    }
    
function openMyWindow (adress, myScroll, myWidth, myHeight ) {
  myWindow  = window.open(adress, "", "scrollbars="+myScroll+",width="+myWidth+",height="+myHeight);
  myWindow.focus();
}

// These functions provide a clean method of dealing with cookies
function setDocumentCookie( oDoc, sName, sValue ) {
    if ( sName.length < 1 ) {
        return;
    }

    //if ( 0 < sValue.length ) {
        // create a date for a year from now
        var expDate = new Date();
        expDate.setTime( expDate.getTime() + 365*24*60*60*1000 );
        oDoc.cookie = ""
                        + sName + "=" + sValue + "; "
                        + "expires=" + expDate.toGMTString() + " ;path=/";
    /*}
    else {
        //  this will cause the named cookie to be deleted.
        alert("setDocumentCookie1" + oDoc.cookie);
        oDoc.cookie = sName + "=";
        alert("setDocumentCookie2" + oDoc.cookie);
    }*/
}

function setNamedCookie( sName, sValue ) {
    setDocumentCookie( document, sName, sValue );
}

function deleteDocumentCookie( oDoc, sName ) {
    oDoc.cookie = sName + "=";
}

function deleteCookie( sName ) {
    deleteDocumentCookie( document, sName );
}

//
//  This function will fetch a named cookie
//
function fetchDocumentCookie( oDoc, sName ) {
    var sValue = "";
    var index = 0;

    //  The "cookie" property on the document is actually a
    //  single string of the form "name=value; name2=value2; ..."
    //  As a result we must search through the cookie string
    //  to find the name=value pair that we are looking for.
    //
    if( oDoc.cookie )
        index = oDoc.cookie.indexOf( sName + "=" );
    else
        index = -1;

    if ( index < 0 ) {
        sValue = "";
    }
    else {
        var countbegin = (oDoc.cookie.indexOf( "=", index ) + 1);
        if ( 0 < countbegin ) {
            var countend = oDoc.cookie.indexOf( ";", countbegin );
            if ( countend < 0 )
                countend = oDoc.cookie.length;
            sValue = oDoc.cookie.substring( countbegin, countend );
        }
        else {
            sValue = "";
        }
    }
    return sValue;
}

function fetchNamedCookie( sName ) {
    return fetchDocumentCookie( document, sName );
}

function removeFormParams(formName, paramName) {
	var paramSet = document[formName][paramName];
	if (paramSet == null) return;
	if (paramSet.length == null) {
		paramSet.removeAttribute('name');
	} else {
		for (i=paramSet.length; i>0; i--) {
			paramSet[i-1].removeAttribute('name');
		}
	} 
}
