/**
 * @author beffy
 */
var currSubNav = -1;
var startSubNav = 0;
var initCalled = false;
var g_prevSize = [800, 600];

/* IE6 flickering background images fix! */
try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}

lib_bwcheck = function(){ 
  this.ver=navigator.appVersion
  this.agent=navigator.userAgent
  this.dom=document.getElementById?1:0
  this.opera5=this.agent.indexOf("Opera 5")>-1
  this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
  this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
  this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
  this.ie=this.ie4||this.ie5||this.ie6
  this.mac=this.agent.indexOf("Mac")>-1
  this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
  this.ns4=(document.layers && !this.dom)?1:0;
  this.bw=(this.ie6||this.ie5||this.ie4||this.ns4||this.ns6||this.opera5)
  return this
};
bw=new lib_bwcheck() //Browsercheck object

// get parameter auslesen
Werteliste = function (querystring) {
  if (querystring == '') return;
  var wertestring = querystring.slice(1);
  var paare = wertestring.split("&");
  var paar, name, wert;
  for (var i = 0; i < paare.length; i++) {
    paar = paare[i].split("=");
    name = paar[0];
    wert = paar[1];
    name = unescape(name).replace("+", " ");
    wert = unescape(wert).replace("+", " ");
    this[name] = wert;
  }
};

getUrlParam = function(pname,numchars) {
	var pval = -1;
	var murl = location.href;
	var spos = murl.indexOf(pname);
	var plen = pname.length;
	if(spos > 0)
	{
		pval = murl.substr(spos+plen+1,numchars); 
	}
	if(pval == "")
		pval = -1;
	return pval;
};

//this function will get the current/computed style in IE and Moz/FF
getStyle = function (obj,cAttribute){
	//if IE
	if (obj.currentStyle){
		var curVal=eval('obj.currentStyle.'+cAttribute)
	}
	else{
		//if Mozilla/FF
		var curVal=eval('document.defaultView.getComputedStyle(obj, null).'+cAttribute)
	}
	alert('style attribute '+cAttribute+' = ' + curVal)
};
whereAmI = function(who,wch) {
	var L=0, R=0;
	var pa=document.getElementById(who);
	while(pa.parentNode)
	{
		L+= ( pa.offsetLeft)? pa.offsetLeft: 0;
		R+= (pa.offsetTop)? pa.offsetTop: 0;
		
		if(pa==document.body || wch===false)break;
		pa= pa.parentNode;
	}
	var A=[L,R];
	return(wch===1 || wch=== 2)? A[wch]: A;
};
moveIt = function(elemName,left,top){
	var elem = document.getElementById(elemName);	
	if(left > -1)
		elem.style.left = left + "px";
	if(top > -1)
		elem.style.top = top + "px";
};
showIt = function(elemName){
	var elem = document.getElementById(elemName);	
	elem.style.visibility = "visible";	
};
hideIt = function(elemName){
	var elem = document.getElementById(elemName);	
	elem.style.visibility = "hidden";	
};
positionAbsDivs = function(){
	var menuPos = whereAmI("maincontent", true);
	moveIt("topbuttons", menuPos[0] + 750,-1);	
	showIt("topbuttons");	
	moveIt("logodummy", menuPos[0],0);	
	showIt("logodummy");	
	moveIt("searchspan", menuPos[0] + 50,90);	
	showIt("searchspan");	
};

/**
 * setzt beim Laden der Seite einen speziellen Hauptpunkt aktiv
 * @param {Object} num - Nummer des Containers / der Navigation
 */
setStartSubNav = function(num) {
	startSubNav	= num;
};

/**
 * Custom window resize handling because of onresize bugs in IE(7)!
 */
resizeCheck = function (){
	var currentSize = getViewportSize();
	if (currentSize[0] != g_prevSize[0] || currentSize[1] != g_prevSize[1])
	{
		g_prevSize = currentSize;
		handleResize();
		/*alert('the window was resized: ' +
		           document.documentElement.clientWidth + ', ' +
		           document.documentElement.clientHeight);*/
	}
	// konstant aufrufen:
	window.setTimeout("resizeCheck()", 100);
};
handleResize = function() {
	initCalled = false;
	myInit();
};
getViewportSize = function()
{
	var size = [0, 0];
	if (typeof window.innerWidth != 'undefined')
	{
		size = [ window.innerWidth, window.innerHeight ];
	}
	else if (typeof document.documentElement != 'undefined' &&
	         typeof document.documentElement.clientWidth != 'undefined' &&
	         document.documentElement.clientWidth != 0)
	{
		size = [ document.documentElement.clientWidth, document.documentElement.clientHeight ];
	}
	else
	{
		size = [ document.getElementsByTagName('body')[0].clientWidth,
		      document.getElementsByTagName('body')[0].clientHeight ];
	}
	return size;
};

/**
 * Set menu positions and start everything
 */
myInit = function() {
	if(!initCalled)
	{
		// aktuell gewaehlte Kategorie aus URL auslesen:
		//var wliste = new Werteliste(location.search);
		var selcat = getUrlParam("selcat",1);
		if(selcat > -1 && startSubNav != "999")
			startSubNav = selcat;
		positionAbsDivs();
		showSubNav(startSubNav);
		setTabs();
		initCalled = true;
		
		// check for resize start - IE7 is buggy and handles DIV size changes as resizes!
		// see http://blog.stchur.com/2006/09/06/the-ie-resize-bug-revisited/
		g_prevSize = getViewportSize();
    	window.setTimeout("resizeCheck()", 100);
	}
};

/**
 * 
 * @param int num - Nummer des Hauptmenues, 
 * Spezialfaelle 888 fuer die Suchergebnisse und 999 fuer Detailseite und Checkout (niedrigeres DIV)
 * @param {Object} overwrite - flag, ob man von den Suchergebnissen zur Haupt-Auswahl zurueckgehen will
 */
showSubNav = function(num, overwrite) {

	var numsave = num;
	
	//var selcat = getUrlParam("selcat",1);
	var selcat = startSubNav;
	// Suchergebnisse anzeigen?
	if(selcat > 0 && selcat < 999 && selcat == num &&! overwrite)
	{
		num = 888;
	}
		
	var menuPos = whereAmI("maincontent", true);
	if(currSubNav > -1)
	{
		var currsubm = "subnavcont" + currSubNav;
		hideIt(currsubm);	
	}
	
	// Sonderfall - zurueckschalten bei Klick auf Info
	if(currSubNav == 0 && num == 0 && document.getElementById("subnavcont999"))
	{
		//alert("switching back...");
		num = 999;
	}
	
	var subm = "subnavcont" + num;
	if(document.getElementById(subm) && (typeof document.getElementById(subm) != "undefined"))
	{
		if(num == 999)
		{
			moveIt(subm, menuPos[0],menuPos[1]-101);	
			showIt(subm);	
		}
		else
		{
			moveIt(subm, menuPos[0],menuPos[1]-88);	
			showIt(subm);	
		}
		currSubNav = num;
	}	
	document.getElementById("pagebody").className = "home0"+numsave;
	window.setTimeout("resizeContent("+num+")",10);
};

/**
 * aendert die Groesse des Hauptnavigations-DIVs fuer Detail-Seite
 * @param {Object} num
 */
resizeContent = function(num)
{
	if(num == 999) // Spezialfall - niedrigeres DIV fuer Checkout und Detailseite!
	{
		document.getElementById("maincontent").className = "maincontent_small";
		//document.getElementById("maincontent").setAttribute("className","maincontent_small");
	}
	else
	{
		document.getElementById("maincontent").className = "maincontent_high";
	}
	//window.clearTimeout();
	return false;
};

/**
 * setzt Tabs für Warenkorb / Service
 */
setTabs = function() {
	var tab1 = document.getElementById("hotline01");
	var tab2 = document.getElementById("hotline02");
	var tabcontent1 = document.getElementById("hotline_content");
	var tabcontent2 = document.getElementById("basket_content");
	// is tab1 active?
	if(tab1 == null || typeof tab1 == "undefined")
	{
		tab1 = document.getElementById("hotline01_active");
		changeTabs(1);
	}
	// is tab2 active?
	if(tab2 == null || typeof tab2 == "undefined")
	{
		tab2 = document.getElementById("hotline02_active");
		changeTabs(2);
	}
	//alert(tab1 + " - " + tab2);
};
changeTabs = function(num)
{
	var tab1 = document.getElementById("hotline01");
	var tab2 = document.getElementById("hotline02");
	// is tab1 active?
	if(tab1 == null || typeof tab1 == "undefined")
	{
		tab1 = document.getElementById("hotline01_active");
	}
	// is tab2 active?
	if(tab2 == null || typeof tab2 == "undefined")
	{
		tab2 = document.getElementById("hotline02_active");
	}
	var tabcontent1 = document.getElementById("hotline_content");
	var tabcontent2 = document.getElementById("basket_content");
	var tabfooter1 = document.getElementById("hotline_bottom");
	var tabfooter2 = document.getElementById("basket_bottom");
	if(num == 1)
	{
		tab1.style.backgroundPosition = "0px 0px";
		tab2.style.backgroundPosition = "-110px -29px";
		tabcontent1.style.visibility = "visible";
		tabcontent2.style.visibility = "hidden";
		tabfooter1.style.visibility = "visible";
		tabfooter2.style.visibility = "hidden";
	}
	else
	{
		tab1.style.backgroundPosition = "0px -29px";
		tab2.style.backgroundPosition = "-110px 0px";
		tabcontent1.style.visibility = "hidden";
		tabcontent2.style.visibility = "visible";
		tabfooter1.style.visibility = "hidden";
		tabfooter2.style.visibility = "visible";
	}
};
changeMainTabs = function(num)
{
	var tab = document.getElementById("naviitem0" + num);
	// is tab1 active?
	if(tab == null || typeof tab == "undefined")
	{
		tab = document.getElementById("naviitem0" + num + "_active");
	}
};
toggleLayer = function( whichLayer )
{
  var elem, vis;
  if( document.getElementById ) // this is the way the standards work
    elem = document.getElementById( whichLayer );
  else if( document.all ) // this is the way old msie versions work
      elem = document.all[whichLayer];
  else if( document.layers ) // this is the way nn4 works
    elem = document.layers[whichLayer];
  vis = elem.style;
  // if the style.display value is blank we try to figure it out here
  if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)
    vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
  vis.display = (vis.display==''||vis.display=='block')?'none':'block';
};

window.onload=myInit;
