var counter, temp, temp2, cookieArray, cookieArray2, cookieCount, timerLeft="", timerRight="", scrollStep=5;
var topnav = new Array();
var topnav_show = new Array();

function submitFunction() {
    submitter = 1;
}

function firstStartup()
{
	//document.getElementById('load_nav').style.display='none';
	document.getElementById('main_navigation').style.display='block';
	fitNavTop();
	initHeight('def_content');
	
	var sbcount = 0;
	$$('.pdinf_cat_pd_list_desc').each(function(element) {
		sbcount++;
		makeScrollbar($('scrollbar-up' + sbcount), $('scrollbar-down' + sbcount), element, $('scrollbar' + sbcount), $('handle' + sbcount));
	});
	
	var myTips = new Tips($$('.pdinf_tip'), {
		timeOut: 700,
		maxTitleChars: 500,
		className: 'pdinf_tip_desc'
	});
}

function fitNavTop()
{
	eval('document.getElementById("main_menu").style.top = "-' + (document.getElementById("content_area").offsetHeight + 20) + 'px";');
}

function initHeight(typ) {
	if(typeof typ == "undefined")
	{
		typ = document.getElementById('content_area'); 
	} else {
		typ = document.getElementById(typ);
	}
	
	if(typ.offsetHeight > document.getElementById('nav_content').offsetHeight) {
		document.getElementById('main_menu').style.height = (typ.offsetHeight) + 20 + 'px';
	} else {
		document.getElementById('main_menu').style.height = (document.getElementById('nav_content').offsetHeight) + 100 + 'px';
	}
}

function subNav(navtree) {
	if(document.getElementById(navtree).style.display == 'none')
	{
		document.getElementById(navtree).style.display='block';
	}
	else
	{
		document.getElementById(navtree).style.display='none';
	}
	
	initHeight();
}

function toLeft(id){
  document.getElementById(id).scrollLeft=0
}

function scrollDivLeft(id){
  clearTimeout(timerRight) 
  document.getElementById(id).scrollLeft+=scrollStep
  timerRight=setTimeout("scrollDivLeft('"+id+"')",10)
}

function scrollDivRight(id){
  clearTimeout(timerLeft)
  document.getElementById(id).scrollLeft-=scrollStep
  timerLeft=setTimeout("scrollDivRight('"+id+"')",10)
}

function toRight(id){
  document.getElementById(id).scrollLeft=document.getElementById(id).scrollWidth
}

function stopMe(){
  clearTimeout(timerRight) 
  clearTimeout(timerLeft)
}

function addElement(element, type, id, attributes, style)
{
  var my_element = document.getElementById(element);
  var new_type = document.createElement(type);
  var new_id = document.createAttribute("id");
  new_id.nodeValue = id;
  new_type.setAttributeNode(new_id);
	my_element.appendChild(new_type);
	new_type.innerHTML = attributes;
	new_type.className = 'content_area_add_margin';
	
	initHeight();
}

function writeContent(addelement, name, content, style)
{
	if(document.getElementById(name))
	{
		document.getElementById(name).style.display = 'block';
		initHeight();
	}
	else
	{
		addElement(addelement, 'div', name, content, style);
	}
	
	document.getElementById('loading_splash').style.display = 'none';
	document.getElementById('loading_splash_box').style.display = 'none';
	
	if(typeof LyteBox != "undefined")
	{
		LyteBox.prototype.updateLyteboxItems();
	}
	
	var temp = document.getElementById(name);
	
	for(var q=0;q<temp.getElementsByTagName("div").length;q++)
	{
    if(temp.getElementsByTagName("div")[q].id=='category_manufactures')
		{
			temp.getElementsByTagName("div")[q].id = 'category_manufactures_' + name;
		}
	}
	for(var q=0;q<temp.getElementsByTagName("a").length;q++)
	{
    if(temp.getElementsByTagName("a")[q].id=='category_manufactures_open')
		{
			temp.getElementsByTagName("a")[q].id = 'category_manufactures_open_' + name;
		}
	}
	
	if(document.getElementById('category_manufactures_open_' + name))
	{
		$('category_manufactures_' + name).style.display = 'block';
		var mySlide = new Fx.Slide('category_manufactures_' + name);
		mySlide.hide();
		
		$('category_manufactures_open_' + name).addEvent('click', function(e) {
			e = new Event(e);
			mySlide.toggle();
			e.stop();
		});
	}
}

function getCall(reqfile, mode, name, navtree)
{
	if(typeof navtree != "undefined")
	{
		if(document.getElementById(navtree).style.display == 'block')
		{
			return false;
		}
	}
	
// mode: 1=write nav cookie, 2=write category content, 3=write top navi
	if (window.XMLHttpRequest) {
		request = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		request = new ActiveXObject("Microsoft.XMLHTTP");
	}
	//alert(name);
	if (request != null) {
		if(mode == 3)
		{
			request.open("GET", (reqfile.search("nshow=true") >= 0 ? reqfile + "&nshow_check=true" : reqfile), true);
		}
		else if(mode == 2 && document.getElementById(name))
		{
			var nav_key = 'nav' + name.substr(3);
			if(document.getElementById(nav_key))
			{
				if(document.getElementById(nav_key).style.display == 'block')
				{
					return false;
				}
			}
			for(var i=0; i < document.getElementById('content_area').getElementsByTagName("div").length; i++)
			{
				//document.getElementById('content_area').getElementsByTagName("div")[i].style.zIndex = 0;
				document.getElementById('content_area').getElementsByTagName("div")[i].style.display = 'none';			
			}
			
			for(var i=0; i < document.getElementById(name).getElementsByTagName("div").length; i++)
			{
				document.getElementById(name).getElementsByTagName("div")[i].style.display = 'block';
			}
			document.getElementById(name).style.display = 'block';
			//document.getElementById(name).style.zIndex = 99;
			//initHeight(name);
			//document.getElementById(name).style.height = '500px';
			
			return false;
		}
		else
		{
			request.open("GET", (reqfile.search("nshow=true") >= 0 ? reqfile + "&nshow_check=true" : reqfile), true);
		}
		request.onreadystatechange = request_handle;
		request.send(null);
		switch (mode)
		{
			case 2:
				for(var i=0; i < document.getElementById('content_area').getElementsByTagName("div").length; i++)
				{
					document.getElementById('content_area').getElementsByTagName("div")[i].style.display = 'none';
				}
				document.getElementById('loading_splash').style.display = 'block';
				document.getElementById('loading_splash_box').style.display = 'block';
				break;
		}
	}
	
	function request_handle()
	{
		if (request.readyState == 4) {
			switch (mode)
			{
				case 1:
					return false;
					break;
					
				case 2:
					pageTracker._trackPageview(reqfile + " - AJAX");
					writeContent('content_area', name, request.responseText, 'content_sub_area');
					break;
					
				default:
					return false;
					break;
			}
		}
	}
}

function initiate(type, top_type, topnav_show) {
  cookieCount=0;
  if(nav_param){
    cookieArray=nav_param.split(";");
    cookieArray2=new Array();
    for(i in cookieArray){
    	if(typeof(cookieArray[i])!='function')
    	{
      	cookieArray2[cookieArray[i].split("=")[0].replace(/ /g,"")]=cookieArray[i].split("=")[1].replace(/ /g,"");
      }
    }
  }
  cookieArray=(nav_param.indexOf("state"+top_type+"=")>=0)?cookieArray2["state"+top_type].split(","):new Array();
	
	document.getElementById("nav"+top_type).style.display='none';
	
  temp=document.getElementById("containerul"+type);
  for(var o=0;o<temp.getElementsByTagName("li").length;o++){
    if(temp.getElementsByTagName("li")[o].getElementsByTagName("ul").length>0){
      temp2 = document.createElement("span");
      temp2.className = "symbols";
      if(typeof topnav_show != "undefined" && topnav_show == true && document.getElementById("nav"+top_type).style.display == 'none') //cookieArray[cookieCount]=="true"
      {
      	document.getElementById("nav"+top_type).style.display='block';
      }
      if(temp.getElementsByTagName("li")[o].id.search("M") >= 0) {
      	temp2.style.backgroundImage = (cookieArray.length>0)?((cookieArray[cookieCount]=="true")?"url(templates/bnshop/img/treenav/minus_m.gif)":"url(templates/bnshop/img/treenav/plus_m.gif)"):"url(templates/bnshop/img/treenav/plus_m.gif)";
      	temp2.style.backgroundImage = "url(templates/bnshop/img/treenav/plus_m.gif)";
      } else {
      	temp2.style.backgroundImage = (cookieArray.length>0)?((cookieArray[cookieCount]=="true")?"url(templates/bnshop/img/treenav/minus.gif)":"url(templates/bnshop/img/treenav/plus.gif)"):"url(templates/bnshop/img/treenav/plus.gif)";
      	temp2.style.backgroundImage = "url(templates/bnshop/img/treenav/plus.gif)";
      }
      temp2.onclick=function(){
        showhide(this.parentNode);
        writeCookie(top_type);
      }
      temp.getElementsByTagName("li")[o].insertBefore(temp2,temp.getElementsByTagName("li")[o].firstChild)
      temp.getElementsByTagName("li")[o].getElementsByTagName("ul")[0].style.display = "none";
      if(cookieArray[cookieCount]=="true"){
        showhide(temp.getElementsByTagName("li")[o]);
      }
      cookieCount++;
    }
    else{
      temp2 = document.createElement("span");
      temp2.className = "symbols";
      temp2.style.backgroundImage = "url(templates/bnshop/img/treenav/page.gif)";
      temp.getElementsByTagName("li")[o].insertBefore(temp2,temp.getElementsByTagName("li")[o].firstChild);
    }
  }
}

function makeScrollbar(arrowup,arrowdown,content,scrollbar,handle,horizontal,ignoreMouse,sbcount) {
	var steps = (horizontal?(content.getSize().scrollSize.x - content.getSize().size.x):(content.getSize().scrollSize.y - content.getSize().size.y))
	
	var slider = new Slider(scrollbar, handle, {
		steps: (steps == 0 ? 1 : steps),
		mode: (horizontal?'horizontal':'vertical'),
		onChange: function(step){
			// Scrolls the content element in x or y direction.
			var x = (horizontal?step:0);
			var y = (horizontal?0:step);
			content.scrollTo(x,y);
		}
	}).set(0);
	if( !(ignoreMouse) ){
		// Scroll the content element when the mousewheel is used within the 
		// content or the scrollbar element.
		$$(content, scrollbar).addEvent('mousewheel', function(e){
			e = new Event(e).stop();
			var step = slider.step - e.wheel * 30;	
			slider.set(step);
		});
	}
	// Stops the handle dragging process when the mouse leaves the document body.
	$(document.body).addEvent('mouseleave',function(){slider.drag.stop()});
	
	$(arrowup).addEvent('click', function(e){
		e = new Event(e).stop();
		var step = slider.step - 25;	
		slider.set(step);
	});
	
	$(arrowdown).addEvent('click', function(e){
		e = new Event(e).stop();
		var step = slider.step + 25;	
		slider.set(step);
	});
}

function showhide(el, main_parent) {
	//if (el.id.search(/nvl.+/) != -1) {
	//	delete elid;
	//	var elid = el.id.split("_");
	//	var main_parent = parseInt(elid[0].substring(3));
	//}
	if(el.getElementsByTagName("ul")[0].style.display=="block") {
		el.getElementsByTagName("ul")[0].style.display="none";
	} else {
		el.getElementsByTagName("ul")[0].style.display="block";
	}
	if(el.getElementsByTagName("span")[0].parentNode.id.search("M") >= 0) {
		el.getElementsByTagName("span")[0].style.backgroundImage=(el.getElementsByTagName("ul")[0].style.display=="block")?"url(templates/bnshop/img/treenav/minus_m.gif)":"url(templates/bnshop/img/treenav/plus_m.gif)";
	} else {
  	el.getElementsByTagName("span")[0].style.backgroundImage=(el.getElementsByTagName("ul")[0].style.display=="block")?"url(templates/bnshop/img/treenav/minus.gif)":"url(templates/bnshop/img/treenav/plus.gif)";
  }
  
	if(typeof main_parent != "undefined") {
		writeCookie(main_parent);
	}
}

function writeCookie(top_type) {
	for(j in topnav) {
		if(topnav[j] == top_type)	{
			temp=document.getElementById("containerul"+j);
		}
	}
  cookieArray=new Array()
  for(var q=0;q<temp.getElementsByTagName("li").length;q++){
    if(temp.getElementsByTagName("li")[q].childNodes.length>0){
      if(temp.getElementsByTagName("li")[q].childNodes[0].nodeName=="SPAN" && temp.getElementsByTagName("li")[q].getElementsByTagName("ul").length>0){
        cookieArray[cookieArray.length]=(temp.getElementsByTagName("li")[q].getElementsByTagName("ul")[0].style.display=="block");
      }
    }
  }
  
  if(nav_param)
  {
  	var tmp_new = '';
  	if(nav_param.search("state"+top_type) >= 0)
  	{
  		var tmp_nav = nav_param.split(";");
  		var frun = false;
  		
  		for(var i = 0; i < tmp_nav.length; i++)
  		{
  			if(tmp_nav[i].search("state"+top_type) < 0)
  			{
  				if(frun) { tmp_new += ';'; } 
  				tmp_new += tmp_nav[i];
  				frun = true;
  			}
  		}
  		//nav_param = nav_param.replace(/"state"+top_type\S*/g, "");
  	}
  	else
  	{
  		tmp_new = nav_param;
  	}
  	nav_param = (tmp_new != '') ? tmp_new+";state"+top_type+"="+cookieArray.join(",") : tmp_new+"state"+top_type+"="+cookieArray.join(",");
  }
  else
  {
  	nav_param = "state"+top_type+"="+cookieArray.join(",");
  }
  getCall("?nav_param="+nav_param, 1, false);
  //document.cookie="state"+top_type+"="+cookieArray.join(",")+";expires="+new Date(new Date().getTime() + 365*24*60*60*1000).toGMTString();
}

/*----------------------------Suggest Code-------------------------
	Copyright 2006 Ryan Smith / 345 Technical / 345 Group.	
	
	Auf XT-Commerce portiert von TechWay (Steffen Decker) mit Unterstützung von Purecut (aus dem ecombase.de Forum)
	Copyright 2006 @ TechWay, Steffen Decker
*/
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
}

var searchReq = getXmlHttpRequestObject();

function searchSuggest() {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(document.getElementById('input_qsearch').value);
		searchReq.open("GET", 'searchSuggest.php?search=' + str, true);
		searchReq.onreadystatechange = handleSearchSuggest; 
		searchReq.send(null);
	}		
}

function handleSearchSuggest() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('search_suggest')
		ss.innerHTML = '';
		var str = searchReq.responseText.split("\n");
		for(i=0; i < str.length - 1; i++) {
			var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearch(this.innerHTML);" ';
			suggest += 'class="suggest_link">' + str[i] + '</div>';
			ss.innerHTML += suggest;
		}
		if (i==0) {
			ss.style.visibility  = "hidden";
		} else {
			ss.style.visibility  = "visible";
		}
		ss.innerHTML += '<p align="right"><a onmouseover="javascript:suggestOver(this);" onmouseout="javascript:suggestOut(this);" onClick="javascript:suggestClose(this);" class="suggest_link"><b>Fenster schließen</b></a></p>';
	}
}

function suggestClose (div_value) {
	document.getElementById('search_suggest').innerHTML = '';
	document.getElementById('search_suggest').style.visibility  = "hidden";
}


function suggestOver(div_value) {
	div_value.className = 'suggest_link_over';
}

function suggestOut(div_value) {
	div_value.className = 'suggest_link';
}

function setSearch(value) {
  var newvalue = value.replace(/<.*?>/gi, '');
	var Suche =	newvalue.indexOf("&nbsp;");
	var produktname = newvalue.substring(0,Suche);
	document.getElementById('input_qsearch').value = produktname;
	document.getElementById('search_suggest').innerHTML = '';
	document.getElementById('search_suggest').style.visibility  = "hidden";
	top.location.href = "advanced_search_result.php?keywords=" + produktname; 
}
/*----------------------------Suggest Code-------------------------*/

function selectOption(el, option) {
  for (var i=0; i<el.options.length; i++) {
    if (el.options[i].value == option) {
      el.options[i].selected = true;
      break;
    }
  }
}

function setSelRes() {
  $i = 0;
  $$('.pdinf_cat_pd_list').each(function(el) {
    if(el.getStyle('display') == 'block') {
      $i++;
    }
  });
  
  $('conf_res').innerHTML = $i;
}

window.addEvent('domready', function() {

  if($('conf_main_att_tbl')) {
		$('conf_main_att_tbl').getElements('img').each(function(el) {
		  el.addEvent('click', function() {
		    $('conf_main_att').setStyle('display', 'none');
		    $('conf_att_choose').setStyle('display', 'block');
		    $('conf_box_frame').setStyle('height', $('conf_att_choose').offsetHeight + 60 + 'px');
		    $('conf_line').setStyle('top', (($('conf_att_cnt').offsetHeight / 2) - 5) + 'px');
		    melid = el.id.split('_');
		    $('conf_att_pic').setStyle('background', 'url(images/configurator/' + melid[1] + '/' + melid[2] + '.jpg) 0 center no-repeat');
		    var elop = $('a_' + melid[1]);
		    selectOption(elop, melid[2]);
        for (var i=0; i<elop.options.length; i++) {
          $$('.a' + melid[1] + '_' + elop.options[i].value).each(function(el2) {
            el2.setStyle('display', (elop.options[i].selected == true ? 'block' : 'none'));
          });
        }
        $('iha_' + melid[1]).value = melid[2];
        setSelRes();
        $('cfts_' + melid[1]).innerHTML = elop.options[elop.selectedIndex].innerHTML;
        $('cft_' + melid[1]).setStyle('display', (elop.options[elop.selectedIndex].value == 0 ? 'none' : 'block'));
        $('conf_ai_' + melid[1]).setStyle('display', 'block');
		  });
		});
		$('conf_att_cnt_c').getElements('select').each(function(el) {
		  var elid = el.id.split('_');
		  el.addEvent('change', function() {
  		  if(elid[1] == melid[1]) {
          $('conf_att_pic').setStyle('background', 'url(images/configurator/' + melid[1] + '/' + el.options[el.selectedIndex].value + '.jpg) 0 center no-repeat');
  		  }
  		  $('iha_' + elid[1]).value = el.options[el.selectedIndex].value;
        for (var i=0; i<el.options.length; i++) {
          $$('.a' + elid[1] + '_' + el.options[i].value).each(function(el2) {
            var goon = true;
            $$('.conf_iha').each(function(el3) {
              var ihaid = el3.id.split('_');
              if(ihaid[1] != elid[1]) {
                if(el3.value != 0) {
                  var el2name = el2.className;
                  if(el2name.search('a' + ihaid[1] + '_') > 0) {
                    if(el2name.search('a' + ihaid[1] + '_' + el3.value) == -1) {
                      goon = false;
                    }
                  }
                }
              }
            });
            if(goon == true) {
              el2.setStyle('display', (el.options[i].selected == true || el.options[el.selectedIndex].value == 0 ? 'block' : 'none'));
            }
          });
        }
        setSelRes();
        $('cfts_' + elid[1]).innerHTML = el.options[el.selectedIndex].innerHTML;
        $('cft_' + elid[1]).setStyle('display', (el.options[el.selectedIndex].value == 0 ? 'none' : 'block'));
		  });
		  
		  el.addEvent('mouseover', function() {
        $$('.conf_ai').each(function(el3) {
          el3.setStyle('display', 'none');
        });
		    $('conf_ai_' + elid[1]).setStyle('display', 'block');
		  });
		});
		
		setSelRes();
		
		$('cft').getElements('img').each(function(el) {
		  el.addEvent('click', function() {
        var eldiv = el.getParent('div').id;
        $(eldiv).setStyle('display', 'none');
        eid = eldiv.split('_');
        $('a_' + eid[1]).options[0].selected = true;
        $('a_' + eid[1]).fireEvent('change');
		  });
    });
    
    $('conf_att_choose_btn1').addEvent('click', function(event) {
      $('conf_main_att').setStyle('display', 'block');
	    $('conf_att_choose').setStyle('display', 'none');
	    $('conf_box_frame').setStyle('height', '135px');
	    $$('.conf_ai').setStyle('display', 'none');
	    $('conf_att_cnt_c').getElements('select').each(function(el) {
	      var elid = el.id.split('_');
        $('a_' + elid[1]).options[0].selected = true;
        $('a_' + elid[1]).fireEvent('change');
      });
    });
    
    $('conf_att_choose_btn2').addEvent('click', function(event) {
      var scroll = new Fx.Scroll(window, { wait: false, duration: 500, transition: Fx.Transitions.Quad.easeInOut });
      scroll.toElement('conf_hdl');
    });
    
    new SmoothScroll({}, window);
		
  }
  
});
