/*
 * External Javascript from www.obi.de
 * used for obi teaser "projektdatenbank"
 * will be included via cms and checked into trunk for versioning
 * 2009-08-19 Frank Berlin
 */


var renovierenForm = {

	switchCheckbox: function (obj) {		
		with(obj = obj.parentNode.getElementsByTagName('IMG')[0]) {
			if(src.indexOf('_act')>-1) { 
				src = src.replace(/_act/, '_pas'); 
			} else { 
				src = src.replace(/_pas/, '_act'); 
			}
		}
	}
}


//-----------------------------------------------------------------------
// Reiternavigation Angebote + Einkaufsliste
//-----------------------------------------------------------------------
var px = 10;//mehr=schneller
var timer = new Array();

var columnBoxes = {
	changeContent:function(obj, urlString) {
		ulObj = obj.parentNode.parentNode;
		for(i=0;i<ulObj.getElementsByTagName('li').length;i++) {
			if(ulObj.getElementsByTagName('li')[i] != obj.parentNode) {
				ulObj.getElementsByTagName('li')[i].className = "";
			} else {
				obj.parentNode.className = "active";
			}
		}
		if(urlString) {
		    vspace = $(obj).parent().parent().parent().find("div")[0].offsetHeight / 2 - 20;
		    $(obj).parent().parent().parent().find("div")[0].innerHTML = "<center><img vspace=" + vspace + " src=\"images/icon/loading.gif\" align=\"center\" width=\"40\" height=\"40\"></center>";
			$.ajax({
			  url: urlString,
			  cache: false,
			  success: function(html){
				$(obj).parent().parent().parent().find("div")[0].innerHTML = html;
			  }
			});
		} else {
			myCards = $(obj).parent().parent().parent().find("div.card");
			for(i=0; i<myCards.length; i++) {
				if($(myCards[i]).hasClass(obj.className)) {
					myCards[i].style.display = 'block';
				} else {
					myCards[i].style.display = 'none';
				}
			}
		}
		return false;
	}
}


//Funktionen fuer die Gewinnspiel Layer

function openPopupLayer(url,breite,hoehe,iframetitle) {

	var dummyContent = '<div id="PopupLayer">'+
		'<div id="DragPopup">'+
			'<h3 id="PopupLayerBar"><span>Titel des Popupfensters</span></h3>'+
			'<a class="close-icon" href="#" onclick="return closePopupLayer();" title="Fenster schlie&szlig;en"><span>Fenster schliessen</span></a>'+
		'</div>'+
		'<div id="Overlap" style="width:'+breite+';height:'+hoehe+';"></div>'+
		'<div id="Nondragable">'+
			'<iframe src="' + url + '" id="PopupFrame" class="popup-frame-object" name="PopupFrame" frameborder="0" scrolling="no" border="0"></iframe>'+
		'</div>'+
	'</div>';

	$('body').append(dummyContent);


	$('div#Overlap').css({height: hoehe + 'px' });
	$('div#Overlap').css({width: breite + 'px' });
	$('#PopupFrame').css({height: hoehe + 'px' });
	$('#PopupFrame').css({width: breite + 'px' });


	$("#PopupLayer").mousemove(function(event) {
		$('#PopupLayer').draggable();

		//console.log(event.target.id);

		if(event.target.id == 'DragPopup') {
			$('#PopupLayer').draggable('enable');
		}
		else if(event.target.id == 'Nondragable') {
			$('#PopupLayer').draggable('disable');
		}
	});

	var popLayer = document.getElementById('PopupLayer');
	popLayer.getElementsByTagName('h3')[0].childNodes[0].innerHTML = iframetitle;
	y = ($(document).scrollTop() - Math.ceil($('#PopupLayer').height()/2)  + ($(window).height()/2));
	x = ($(document).width()/2) -  Math.ceil($('#PopupLayer').width() / 2);
	$('div#PopupLayer').css({top: y + 'px',left: x +'px'});
	popLayer.style.display = 'block';
}

function closePopupLayer() {
		$('div#PopupLayer').remove();
		return false;
}

function switchCat (obj) {
	myList = obj.parentNode;
	while(myList.nodeName != 'UL')
		myList = myList.parentNode;
	if(myList.className == 'subCategories')	{
		myList.className = 'noSubCategories';
		//obj.innerHTML = 'Alle Kategorien';
		obj.title = 'Nur aktuelle Kategorie mit Unterpunkten einblenden';
	} else {
		myList.className = 'subCategories';
		//obj.innerHTML = 'Nur aktiver Men&uuml;punkt';
		obj.title = 'Alle Kategorien ohne Unterpunkte einblenden';
	}
	return false;
}

var dragElement = null;
var dragy = 0;
var posy = 0;


function dragInit() {
  document.onmousemove = drag;
  document.onmouseup = dragstop;
}


function dragstart(element) {
  dragElement = element;
  dragy = posy - dragElement.offsetTop;
  document.onmousedown = function (e) {
	 if(e) e.preventDefault();
  }
}


function dragstop() {
  dragElement=null;
  document.onmousedown = null;
}


function drag(e) {
  posy = (e) ? e.pageY : window.event.clientY;
  if(dragElement != null) {
	 with(dragElement) {
	  	if((posy - dragy) < 0) {
			parentNode.parentNode.scrollTop = 0;
			parentNode.style.top = 0;
			style.top = 0;
		} else {
			if((posy - dragy) > parentNode.parentNode.scrollLimit) {
				parentNode.parentNode.scrollTop = parentNode.parentNode.scrollHt;
				parentNode.style.top = parentNode.parentNode.scrollHt - parentNode.offsetHeight + "px";
				style.top = parentNode.parentNode.scrollLimit  + "px";
			} else {
				parentNode.parentNode.scrollTop = Math.ceil(offsetTop / (parentNode.parentNode.offsetHeight - offsetHeight) * parentNode.parentNode.scrollLimit);
				parentNode.style.top = parentNode.parentNode.scrollTop + "px";
				style.top = (posy - dragy) + "px";
			}
		}
	 }
  }
}


function absTop (obj) {
    absHt = obj.offsetTop;
    while(obj.offsetParent) {
        obj = obj.offsetParent;
        absHt += obj.offsetTop;
    }
    return absHt;
}

function measureWinHt () {
   var winHt;

   if (self.innerHeight)  {
      winHt = self.innerHeight;
   } else if (document.documentElement && document.documentElement.clientHeight) {
      winHt = document.documentElement.clientHeight;
   } else if (document.body) {
      winHt = document.body.clientHeight;
   }
   return winHt;
}

function measureScrollTop () {
   var scrollTop;
   if (self.pageYOffset) {
      scrollTop = self.pageYOffset;
   } else if (document.documentElement && document.documentElement.scrollTop) {
      scrollTop = document.documentElement.scrollTop;
   } else if (document.body) {
      scrollTop = document.body.scrollTop;
   }
   return scrollTop;
}


function positionOptionBox (obj) {
	var container = obj.parentNode.optionBoxes[1];
	var containerHt = container.offsetHeight;

    if(((absTop(obj) + containerHt) > measureWinHt()) && (absTop(obj) - containerHt > measureScrollTop())) {
      container.className = 'optionsBoxUp';
	  //container.style.paddingTop = '';
	  if(!document.getElementById('Content').className || document.getElementById('Content').className == 'door')
	  	obj.parentNode.style.zIndex = eval(myFakeSelects.length+1 + obj.parentNode.idx);
    } else {
      container.className = 'optionsBoxDwn';
	  if(!document.getElementById('Content').className || document.getElementById('Content').className == 'door')
	  	obj.parentNode.style.zIndex = eval(myFakeSelects.length+1 - obj.parentNode.idx);
    }
}


var focussedID = "";

function closeCustomSelect (strg) {
   if(document.getElementById(strg) && (myContainer = document.getElementById(strg).parentNode))
   myContainer.optionBoxes[1].style.visibility = '';
   //myContainer.style.zIndex = 2;
}

function adaptSliderHeight (theSlider) {
	with(theSlider) {

		if (parentNode.parentNode.scrollHeight == parentNode.parentNode.offsetHeight) {
			parentNode.parentNode.style.overflow = 'auto';
			parentNode.parentNode.style.visibility = '';
			parentNode.parentNode.removeChild(parentNode);
			var myOptions = parentNode.parentNode.getElementsByTagName('A');
			for(i=0; i< myOptions.length; i++) {
				myOptions[i].style.marginRight = 0;
			}
			return false;
		}
	    var scrollDistance = parentNode.parentNode.scrollHeight - parentNode.parentNode.offsetHeight;
		var ht = parentNode.parentNode.offsetHeight - (parentNode.parentNode.scrollDistance - parentNode.parentNode.offsetHeight);
		style.height = (ht > 19) ? (ht + 'px') : '19px';
		parentNode.style.top = parentNode.parentNode.scrollTop + 'px';
		parentNode.parentNode.scrollHt = parentNode.parentNode.scrollHeight;
		parentNode.parentNode.scrollLimit = parentNode.parentNode.offsetHeight - offsetHeight;

	}
}

var categories = new Array();	
// hardcoded link zu obi - sonst keine möglichkeit das zu setzen..
         categories[0] = new Category ("Garten|http://www.obi.de/ratgeber/de/ideenwelt/garten/index.html"

                            ,"B&auml;ume schneiden|http://www.obi.de/ratgeber/garten/baeume_schneiden/index.html"  
                                            ,"Bew&auml;sserungstechnik|http://www.obi.de/ratgeber/garten/bewaesserungstechnik/index.html"  
                                ,"Dachbegr&uuml;nung|http://www.obi.de/ratgeber/garten/dachbegruenung/index.html"  
                                                        ,"Gartenmauer anlegen|http://www.obi.de/ratgeber/garten/Gartenmauer_anlegen/index.html"  
                                            ,"Gartentipps August|http://www.obi.de/ratgeber/garten/Gartentipps_August/index.html"  
                                ,"Gartentipps November|http://www.obi.de/ratgeber/garten/Gartentipps_November/index.html"  
                                ,"Gartentipps Oktober|http://www.obi.de/ratgeber/garten/Gartentipps_Oktober/index.html"  
                                ,"Gartentipps September|http://www.obi.de/ratgeber/garten/Gartentipps_September/index.html"  
                                                                                ,"Kompost anlegen|http://www.obi.de/ratgeber/garten/Kompost_anlegen/index.html"  
                                ,"Obst- & Ziergeh&ouml;lze pflanzen|http://www.obi.de/ratgeber/garten/Obst-_und_Ziergehoelze_pflanzen/index.html"  
                                      ,"Poolpflege|http://www.obi.de/ratgeber/garten/Poolpflege/index.html"  
                                            ,"Rosen pflanzen|http://www.obi.de/ratgeber/garten/rosen/index.html"  
                                            ,"Zimmerpflanzen|http://www.obi.de/ratgeber/garten/Zimmerpflanzen/index.html"  
                );	

         categories[1] = new Category ("Holz und Bauen|http://www.obi.de/ratgeber//de/ideenwelt/holz_und_bauen/index.html"

                            ,"Arbeitsplatte einbauen|http://www.obi.de/ratgeber/holz_und_bauen/Arbeitsplatten/index.html"  
                                ,"Dach d&auml;mmen|http://www.obi.de/ratgeber/holz_und_bauen/Dach_daemmen/index.html"  
                                      ,"Fassade streichen|http://www.obi.de/ratgeber/holz_und_bauen/fassade_streichen/index.html"  
                                      ,"Innent&uuml;ren einbauen|http://www.obi.de/ratgeber/holz_und_bauen/Innentueren_einbauen/index.html"  
                                ,"Wand einziehen|http://www.obi.de/ratgeber/holz_und_bauen/wand_einziehen/index.html"  
                );

         categories[2] = new Category ("Farben und Dekoration|http://www.obi.de/ratgeber/de/ideenwelt/farben_und_dekoration/index.html"

                            ,"Deckenpaneele anbringen|http://www.obi.de/ratgeber/farben_und_dekoration/Deckenpaneel_anbringen/index.html"  
                                ,"Dekorputz anbringen|http://www.obi.de/ratgeber/farben_und_dekoration/dekorputz_anbringen/index.html"  
                                ,"Lackieren & lasieren|http://www.obi.de/ratgeber/farben_und_dekoration/Lackieren_und_lasieren/index.html"  
                                ,"M&ouml;bel restaurieren|http://www.obi.de/ratgeber/farben_und_dekoration/Moebel_restaurieren/index.html"  
                                ,"Teppich & PVC verlegen|http://www.obi.de/ratgeber/farben_und_dekoration/Teppich_und_PVC_verlegen/index.html"  
                                ,"W&auml;nde tapezieren|http://www.obi.de/ratgeber/farben_und_dekoration/Waende_tapezieren/index.html"  
                );


         categories[3] = new Category ("Leuchten und Elektro|http://www.obi.de/ratgeber/de/ideenwelt/leuchten_und_elektro/index.html"

                            ,"Au&szlig;enbeleuchtung|http://www.obi.de/ratgeber/leuchten_und_elektro/aussenbeleuchtung/index.html"  
                                      ,"Innenbeleuchtung|http://www.obi.de/ratgeber/leuchten_und_elektro/innenbeleuchtung/index.html"  
                                ,"Solarenergie|http://www.obi.de/ratgeber/leuchten_und_elektro/solarenergie/index.html"  
                );

         categories[4] = new Category ("Sanit&auml;r und Fliesen|http://www.obi.de/ratgeber/de/ideenwelt/sanitaer_und_fliesen/index.html"

                            ,"Brandschutz|http://www.obi.de/ratgeber/sanitaer_und_fliesen/brandschutz/index.html"  
                                ,"Dusche einbauen|http://www.obi.de/ratgeber/sanitaer_und_fliesen/Dusche_einbauen/index.html"  
                                                  ,"Heizk&ouml;rper montieren|http://www.obi.de/ratgeber/sanitaer_und_fliesen/Heizkoerper_montieren/index.html"  
                                      ,"Klimatechnik|http://www.obi.de/ratgeber/sanitaer_und_fliesen/klimatechnik/index.html"  
                                ,"K&uuml;chensp&uuml;le montieren|http://www.obi.de/ratgeber/sanitaer_und_fliesen/Kuechenspuele_montieren/index.html"  
                                            ,"Wanne einbauen|http://www.obi.de/ratgeber/sanitaer_und_fliesen/Wanne_einbauen/index.html"  
                                ,"WC mit Sp&uuml;lkasten einbauen|http://www.obi.de/ratgeber/sanitaer_und_fliesen/WC_mit_Spuelkasten_einbauen/index.html"  
                );


         categories[5] = new Category ("Eisenwaren und Maschinen|http://www.obi.de/ratgeber/de/ideenwelt/eisenwaren_und_maschinen/index.html"

                            ,"Sicherheit zu Hause|http://www.obi.de/ratgeber/eisenwaren_und_maschinen/sicherheit_zuhause/index.html"  
                );

         categories[6] = new Category ("Haushalt und Auto|http://www.obi.de/ratgeber/de/ideenwelt/haushalt_und_auto/index.html"

                            ,"Auto Rundum-Check|http://www.obi.de/ratgeber/haushalt_und_auto/Auto_Rundum-Check/index.html"  
                                ,"Sicheres Fahrrad|http://www.obi.de/ratgeber/haushalt_und_auto/Sicheres_Fahrrad/index.html"  
                                ,"Umzugsratgeber|http://www.obi.de/ratgeber/haushalt_und_auto/Umzugsratgeber/index.html"  
                );


var myFakeSelects = new Array();

function fillQuickSearch () {

	if(document.getElementById('QuickSearchBar'))
		mySpans = document.getElementById('QuickSearchBar').getElementsByTagName('SPAN');
	else {
		mySpans = document.getElementById('QuickSearchBarRatgeber').getElementsByTagName('SPAN');
		var ratgeber = 1;
		}

	var curr = 0;
	for (i=0; i<mySpans.length; i++) {
		if(mySpans[i].className == 'obiSelect') {
			myFakeSelects[curr] = mySpans[i];
			myFakeSelects[curr].optionBoxes = myFakeSelects[curr].getElementsByTagName('SPAN');
			//myFakeSelects[curr].optionBoxes[1].style.width = myFakeSelects[curr].offsetWidth -2 +'px'; //Obi default IS24 set to fix value fpr width
			myFakeSelects[curr].optionBoxes[1].style.width = "202px";
			myFakeSelects[curr].optionBoxes[1].style.paddingTop = '0';
			myFakeSelects[curr].optionBoxes[0].id = 'preselect' + curr;
			myFakeSelects[curr].idx = curr;
			myFakeSelects[curr].optionBoxes[0].getElementsByTagName('A')[0].href = '#';


			myFakeSelects[curr].optionBoxes[0].getElementsByTagName('A')[0].onfocus = function () {
				this.parentNode.style.backgroundColor = '#333333';
				this.style.color = '#FFFFFF';
				this.onkeydown = function (e) {
					e = e || window.event;
					if(e.preventDefault) e.preventDefault();
					var key = e.keyCode || e.which;

					if((key == 38) || (key == 40)) var increment = key - 39;
					else var increment = 0;

					var optionsBox = this.parentNode.parentNode.optionBoxes[1];
					var fakeOptions = optionsBox.getElementsByTagName('A');
					var track = optionsBox.getElementsByTagName('SPAN')[0];
					var slider = optionsBox.getElementsByTagName('SPAN')[1];

					for(i=0; i<fakeOptions.length; i++) {
						if( (i+increment > -1) && (fakeOptions[i].className == 'selected')  && fakeOptions[i+increment]) {
							fakeOptions[i].className = '';
							fakeOptions[i+increment].className = 'selected';
							this.innerHTML = fakeOptions[i+increment].innerHTML;
							optionsBox.scrollTop = fakeOptions[i+increment].offsetTop;
							if(track) {
								track.style.top = optionsBox.scrollTop + 'px';
								slider.style.top = parseInt(optionsBox.scrollTop * track.offsetHeight / optionsBox.scrollHt) + 'px';
							}
							break;
						}
						optionsBox.scrollTop = 0;

					}
					if(track) {
						track.style.top = optionsBox.scrollTop + 'px';
						slider.style.top = parseInt(optionsBox.scrollTop * optionsBox.offsetHeight / (optionsBox.scrollHt - optionsBox.scrollLimit) ) + 'px';
						if(parseInt(slider.style.top) > optionsBox.scrollLimit) slider.style.top = optionsBox.scrollLimit + 'px';
					}
					return false;
				}
			}
			myFakeSelects[curr].optionBoxes[0].getElementsByTagName('A')[0].onblur = function () {
				this.parentNode.style.backgroundColor = '';
				this.style.color = '';
				this.onkeydown = null;
			}


			myFakeSelects[curr].optionBoxes[0].onclick = function (e) {

				if (focussedID) closeCustomSelect(focussedID);
				if (focussedID == this.id) {
					focussedID = "";
					return false;
				}
				focussedID = this.id;


				var myDependantLinks = this.parentNode.optionBoxes[1].getElementsByTagName('A');
				if(myDependantLinks[0]) {
					this.parentNode.optionBoxes[1].style.visibility = 'visible';
				}


				if (myDependantLinks.length > 6) {
					var track = this.parentNode.optionBoxes[1].getElementsByTagName('SPAN')[0];
					var slider = this.parentNode.optionBoxes[1].getElementsByTagName('SPAN')[1];
					this.parentNode.optionBoxes[1].style.height = '10.5em';
					for(i=0; i<myDependantLinks.length; i++) {
						myDependantLinks[i].style.marginRight = '20px';
					}

					for(i=0; i<myDependantLinks.length; i++) {
						if(myDependantLinks[i].className == 'selected') {
							myDependantLinks[i].parentNode.scrollTop = myDependantLinks[i].offsetTop;
							if(track)
								if(myDependantLinks[i].offsetTop < (this.parentNode.optionBoxes[1].scrollHeight - track.offsetHeight)){
									track.style.top = myDependantLinks[i].offsetTop + 'px';
								} else {
									track.style.top = (this.parentNode.optionBoxes[1].scrollHeight - track.offsetHeight) + 'px';
								}
							if(slider) {
								slider.style.top = parseInt(myDependantLinks[i].offsetTop / (this.parentNode.optionBoxes[1].scrollHeight + slider.offsetHeight) * track.offsetHeight) + 'px';
								if(slider.offsetTop > (track.offsetHeight - slider.offsetHeight))
							   		slider.style.top = (track.offsetHeight - slider.offsetHeight) + 'px';
							}
							break;
						}
						myDependantLinks[i].parentNode.scrollTop = 0;

					}
					if(track) {
					    //alert(track.parentNode.scrollTop + '\n' + track.parentNode.scrollLimit);
					    track.style.top = track.parentNode.scrollTop + track.parentNode.scrollLimit + 'px';
						if(slider) adaptSliderHeight(slider);
						this.parentNode.optionBoxes[1].style.visibility = 'visible';
					}

				} else {
					this.parentNode.optionBoxes[1].style.height = 'auto';
					for(i=0; i<myDependantLinks.length; i++) {
						myDependantLinks[i].style.marginRight = 0;
					}
				}
				positionOptionBox(this);
				if(e) e.stopPropagation();
				else window.event.cancelBubble = true;
				return false;
			}
			if (curr) myFakeSelects[curr-1].dependant = myFakeSelects[curr];
			curr++;
		}

	}

	for(i=0; i<categories.length; i++) {
		var myOption = document.createElement('A');
		myOption.innerHTML = categories[i].mainCat[0];
		myOption.href =  categories[i].mainCat[1];
		myOption.index = i;
		myOption.onclick = function () {
			this.parentNode.style.paddingTop = '';
			myFakeSelects[0].optionBoxes[0].getElementsByTagName('A')[0].innerHTML = this.innerHTML;
			var mySiblings = this.parentNode.getElementsByTagName('A');
			for(i=0; i<mySiblings.length; i++) {
				if(mySiblings[i]==this)	this.className = 'selected';
				else mySiblings[i].className = '';
			}
			findForm(this).action = this.href; // setzen der action des formulars
		    with(myFakeSelects[1].optionBoxes[1]) {
				while(firstChild) {
					removeChild(firstChild);
				}
			}
			if(ratgeber) {
				if(categories[this.index].subCats.length > 1) {
					myFakeSelects[1].optionBoxes[0].getElementsByTagName('A')[0].innerHTML = 'Bitte w&auml;hlen Sie ein Projekt';
				} else {
					myFakeSelects[1].optionBoxes[0].getElementsByTagName('A')[0].innerHTML = 'Alle Produkte';
				}
			}
			else {
				if(categories[this.index].subCats.length > 1) {
					myFakeSelects[1].optionBoxes[0].getElementsByTagName('A')[0].innerHTML = 'Suche verfeinern';
				} else {
					myFakeSelects[1].optionBoxes[0].getElementsByTagName('A')[0].innerHTML = 'Alle Produkte';
				}
			}

			for(i=1; i<categories[this.index].subCats.length; i++) {
				var mySubOption = document.createElement('A');
				mySubOption.innerHTML = categories[this.index].subCats[i][0];
				mySubOption.href = categories[this.index].subCats[i][1];

				mySubOption.onclick = function () {
					myFakeSelects[1].optionBoxes[0].getElementsByTagName('A')[0].innerHTML = this.innerHTML;
					var mySiblings = this.parentNode.getElementsByTagName('A');
					for(i=0; i<mySiblings.length; i++) {
						if(mySiblings[i]==this)	this.className = 'selected';
						else mySiblings[i].className = '';
					}
					findForm(this).action = this.href;
					closeCustomSelect(focussedID);
					focussedID = "";
					return false;
				}
				this.parentNode.parentNode.dependant.optionBoxes[1].appendChild(mySubOption);
			}

			if (i>6) {
				this.parentNode.parentNode.dependant.optionBoxes[1].style.height = '9.3em';

				var track = document.createElement('SPAN');
				track.className = 'track';
				track.onclick = function (e) {
					if(e) e.stopPropagation();
					else window.event.cancelBubble = true;
				}
				track.onmousedown = function (e) {
		            var e = e || window.event;
		            var mousePos = e.clientY || e.pageY;
					var scrollDistance = this.parentNode.scrollHeight - this.parentNode.offsetHeight;
					if ( (mousePos - absTop(this.parentNode) < parseInt(this.slider.style.top) ) ) {
						this.parentNode.scrollTop -= this.offsetHeight;
					} else {
						this.parentNode.scrollTop += this.offsetHeight;
					}
					this.style.top = this.parentNode.scrollTop + 'px';
					this.slider.style.top = parseInt(this.parentNode.scrollTop / scrollDistance * (this.offsetHeight - this.slider.offsetHeight)) + 'px';
				}
				track.slider = document.createElement('SPAN');
				track.slider.className = 'slider';
				track.slider.onclick = function (e) {
					if(e) e.stopPropagation();
					else window.event.cancelBubble = true;
					return false;
				}
				track.slider.onselectstart = function () { return false; };
				track.slider.onmousedown = function (e) {
					dragstart(this);
					if(e) {
						e.stopPropagation();
						e.preventDefault();
					} else window.event.cancelBubble = true;
				}
				track.appendChild(track.slider);
				this.parentNode.parentNode.dependant.optionBoxes[1].appendChild(track);
				this.parentNode.parentNode.dependant.optionBoxes[1].scrollDistance = this.parentNode.parentNode.dependant.optionBoxes[1].scrollHeight - this.parentNode.parentNode.dependant.optionBoxes[1].offsetHeight;
				adaptSliderHeight(track.slider);
			}

			closeCustomSelect(focussedID);
			focussedID = "";
			return false;

		}
		myFakeSelects[0].optionBoxes[1].appendChild(myOption);
		if (i>6) {
			myFakeSelects[0].optionBoxes[1].style.height = '9.3em';
			var track = document.createElement('SPAN');
			track.className = 'track';
			track.onclick = function (e) {
				if(e) e.stopPropagation();
				else window.event.cancelBubble = true;
			}
			track.onmousedown = function (e) {
	            var e = e || window.event;
	            var mousePos = e.clientY || e.pageY;
				var scrollDistance = this.parentNode.scrollHeight - this.parentNode.offsetHeight;
				if ( (mousePos - absTop(this.parentNode) < parseInt(this.slider.style.top) ) ) {
					this.parentNode.scrollTop -= this.offsetHeight;
				} else {
					this.parentNode.scrollTop += this.offsetHeight;
				}
				this.style.top = this.parentNode.scrollTop + 'px';
				this.slider.style.top = parseInt(this.parentNode.scrollTop / scrollDistance * (this.offsetHeight - this.slider.offsetHeight)) + 'px';
			}
			track.slider = document.createElement('SPAN');
			track.slider.className = 'slider';
			track.slider.onclick = function (e) {
				if(e) e.stopPropagation();
				else window.event.cancelBubble = true;
				return false;
			}
			track.slider.onselectstart = function () { return false; };
			track.slider.onmousedown = function (e) {
				dragstart(this);
				if(e) {
					e.stopPropagation();
					e.preventDefault();
				} else window.event.cancelBubble = true;
			}
			track.appendChild(track.slider);
			myFakeSelects[0].optionBoxes[1].appendChild(track);
			myFakeSelects[0].optionBoxes[1].scrollDistance =  myFakeSelects[0].optionBoxes[1].scrollHeight - myFakeSelects[0].optionBoxes[1].offsetHeight;
			adaptSliderHeight(track.slider);
		}
	}
}




function findForm(obj) {
	while(obj.parentNode.nodeName != 'FORM') {
		obj = obj.parentNode;
	}
	return obj.parentNode;
}

function initSelect (fakeSelect) {
	fakeSelect.optionBoxes = fakeSelect.getElementsByTagName('SPAN');
	fakeSelect.dependantLinks = fakeSelect.optionBoxes[1].getElementsByTagName('A');
	for(i=0; i<fakeSelect.dependantLinks.length; i++) {
		var myString = fakeSelect.dependantLinks[i].href;
		if(myString.substring(myString.indexOf('#')+1, myString.length)== fakeSelect.getElementsByTagName('INPUT')[0].value) {
			fakeSelect.dependantLinks[i].className = 'selected';
		}
	}



	fakeSelect.optionBoxes[0].getElementsByTagName('A')[0].onfocus = function () {
		this.parentNode.style.backgroundColor = '#333333';
		this.style.color = '#FFFFFF';
		this.onkeydown = function (e) {
			e = e || window.event;
			if(e.preventDefault) e.preventDefault();
			var key = e.keyCode || e.which;

			if((key == 38) || (key == 40)) var increment = key - 39;
			else var increment = 0;

			var optionsBox = this.parentNode.parentNode.optionBoxes[1];
			var fakeOptions = optionsBox.getElementsByTagName('A');
			var track = optionsBox.getElementsByTagName('SPAN')[0];
			var slider = optionsBox.getElementsByTagName('SPAN')[1];

			for(i=0; i<fakeOptions.length; i++) {
				if( (i+increment > -1) && (fakeOptions[i].className == 'selected')  && fakeOptions[i+increment]) {
					fakeOptions[i].className = '';
					fakeOptions[i+increment].className = 'selected';
					this.innerHTML = fakeOptions[i+increment].innerHTML;
					optionsBox.scrollTop = fakeOptions[i+increment].offsetTop;
					if(track) {
						track.style.top = optionsBox.scrollTop + 'px';
						slider.style.top = parseInt(optionsBox.scrollTop * optionsBox.offsetHeight / (optionsBox.scrollHt - optionsBox.scrollLimit) ) + 'px';
						if(parseInt(slider.style.top) > optionsBox.scrollLimit) slider.style.top = optionsBox.scrollLimit + 'px';
					}
					break;
				}
				//optionsBox.scrollTop = 0;
				if(track) {
					track.style.top = optionsBox.scrollTop + 'px';
					slider.style.top = parseInt(optionsBox.scrollTop * optionsBox.scrollLimit / optionsBox.scrollHt) + 'px';
				}
			}

			return false;
		}
	}
	fakeSelect.optionBoxes[0].getElementsByTagName('A')[0].onblur = function () {
		this.parentNode.style.backgroundColor = '';
		this.style.color = '';
		this.onkeydown = null;
	}





	fakeSelect.optionBoxes[0].onclick = function (e) {

		if (focussedID) closeCustomSelect(focussedID);
		if (focussedID == this.id) {
			focussedID = "";
			return false;
		}
		focussedID = this.id;
		this.parentNode.optionBoxes[1].style.visibility = 'visible';
		var myDependantLinks = this.parentNode.dependantLinks;
		if (myDependantLinks.length > 6) {
			var mySlider = this.parentNode.optionBoxes[1].getElementsByTagName('SPAN')[1];
			for(i=0; i<myDependantLinks.length; i++) {
				if(myDependantLinks[i].className == 'selected') {
					myDependantLinks[i].parentNode.scrollTop = myDependantLinks[i].offsetTop;
					if(myTrack = this.parentNode.optionBoxes[1].getElementsByTagName('SPAN')[0])
						if(myDependantLinks[i].offsetTop < (this.parentNode.optionBoxes[1].scrollHeight - myTrack.offsetHeight)){
							myTrack.style.top = myDependantLinks[i].offsetTop + 'px';
						} else {
							myTrack.style.top = (this.parentNode.optionBoxes[1].scrollHeight - myTrack.offsetHeight) + 'px';
						}
					if(mySlider) {
					   mySlider.style.top = parseInt(myDependantLinks[i].offsetTop / (this.parentNode.optionBoxes[1].scrollHeight + mySlider.offsetHeight) * myTrack.offsetHeight) + 'px';
					   if(mySlider.offsetTop > (myTrack.offsetHeight - mySlider.offsetHeight))
					   	mySlider.style.top = (myTrack.offsetHeight - mySlider.offsetHeight) + 'px';
					}
					break;
				}
				myDependantLinks[i].parentNode.scrollTop = 0;
				if(myTrack = this.parentNode.optionBoxes[1].getElementsByTagName('SPAN')[0])
				   myTrack.style.top = 0;
			}
		}

		var container = this.parentNode.optionBoxes[1];
		var containerHt = container.offsetHeight;

        if(((absTop(this) + containerHt) > measureWinHt()) && (absTop(this) - containerHt > measureScrollTop())) {
        	container.className = 'optionsBoxUp';
	    } else {
	        container.className = 'optionsBoxDwn';
        }
		if(e) e.stopPropagation();
		else window.event.cancelBubble = true;
		return false;
	}

	var myOptions = fakeSelect.optionBoxes[1].getElementsByTagName('A');
	for(i=0; i<myOptions.length; i++) {
		myOptions[i].myValue = myOptions[i].href.split('#')[1];
		myOptions[i].href = '#';
		myOptions[i].onclick = function () {
			var mySiblings = this.parentNode.getElementsByTagName('A');
			var position="";
			for(i=0; i<mySiblings.length; i++) {
				if (mySiblings[i] == this)	this.className = 'selected';
				else mySiblings[i].className = '';
			}
			with(this.parentNode.parentNode.optionBoxes[0]){
				getElementsByTagName('A')[0].innerHTML = this.innerHTML;
				getElementsByTagName('INPUT')[0].value = this.myValue;
			}
			closeCustomSelect(focussedID);
			focussedID = "";
			findForm(this).submit();
			return false;
		}
	}
	if (i>6) {
		fakeSelect.optionBoxes[1].style.height = '9.3em';
		var track = document.createElement('SPAN');
		track.className = 'track';
		track.onclick = function (e) {
			if(e) e.stopPropagation();
			else window.event.cancelBubble = true;
			return false;
		}
		track.onmousedown = function (e) {
            var e = e || window.event;
            var mousePos = e.clientY || e.pageY;
			var scrollDistance = this.parentNode.scrollHeight - this.parentNode.offsetHeight;
			if ( (mousePos - absTop(this.parentNode) < parseInt(this.slider.style.top) ) ) {
				this.parentNode.scrollTop -= this.offsetHeight;
			} else {
				this.parentNode.scrollTop += this.offsetHeight;
			}
			this.style.top = this.parentNode.scrollTop + 'px';
			this.slider.style.top = parseInt(this.parentNode.scrollTop / scrollDistance * (this.offsetHeight - this.slider.offsetHeight)) + 'px';
		}
		track.slider = document.createElement('SPAN');
		track.slider.className = 'slider';
		track.slider.onclick = function (e) {
			if(e) e.stopPropagation();
			else window.event.cancelBubble = true;
		}
		track.slider.onselectstart = function () { return false; };

		track.slider.onmousedown = function (e) {
			dragstart(this);
			if(e) {
				e.stopPropagation();
				e.preventDefault();
			} else window.event.cancelBubble = true;
		}
		track.appendChild(track.slider);
		fakeSelect.optionBoxes[1].appendChild(track);
		fakeSelect.optionBoxes[1].scrollDistance = fakeSelect.optionBoxes[1].scrollHeight - fakeSelect.optionBoxes[1].offsetHeight;
        adaptSliderHeight(track.slider);
    }
	return false;
}




function global_onload() {
	if(window.categories && window.categories[0]) fillQuickSearch();
	if(document.getElementById('ProductCategories')) {
		initSelect (document.getElementById('ProductCategories'));
	}
	if(document.getElementById('SortModes')) {
		initSelect (document.getElementById('SortModes'));
	}
	dragInit();
}

window.onload = function() {
    // globale Inits
    global_onload();
    writeCSSToHead();
    // Init einzelner Module (kÃƒÂ¶nnen fehlen)
    //if (plzsearch_kuechenstudios_onload) {
     //   plzsearch_kuechenstudios_onload();
   // }
}

window.onresize = function () {
	if(myFakeSelects[0]) {
		for(i=0; i<myFakeSelects.length; i++) {
			positionOptionBox(myFakeSelects[i].optionBoxes[0]);
		}
	}
}

window.onclick = function () {
   closeCustomSelect(focussedID);
}

document.onclick = window.onclick;

// Category definition
function Category () {
	if(arguments) {
		this.mainCat = arguments[0].split('|');
		this.subCats = new Array();
		this.subCats[0] = "Bitte w&auml;hlen Sie ein Projekt";
		for(i=1; i<arguments.length; i++) {
			this.subCats[i] = arguments[i].split('|');
		}
	}
} 

function writeCSSToHead(){
	var cssString = "";
	
	cssString = "#QuickSearchBar {"
	+"height:auto;"
	+"overflow:visible !important;"
	+"position:relative;"
	+"z-index:2;"
+"}"
+"#QuickSearchBarRatgeber {"
+"	height:auto;"
+"	overflow:visible !important;"
+"	position:relative;"
+"	z-index:2;"
+"}"
+".halfTeaser {"
+"	display:inline;"
+"	float:left;"
//+"	margin:0 4px 4px 0;"
//+"	padding-bottom:5px;"
+"	width:348px;"
+"}"
+".halfTeaser p {"
+"	font-size:12px;"
+"	margin:0 11px 12px;"
+"	padding:0;"
+"	line-height:16px;"
+"	font-family: Arial,Verdana,Sans-Serif;"
+"}"
+".obiSelect {"
+"	float:left;"
+"	position:relative;"
+"	margin-right:11px;"
+"}"
+".obiselect span {"
+"	font-size:12px;"
+"	line-height:16px;"
+"	margin:0;"
+"}"
+".currentSelect {"
+"    background:url(http://www.obi.de/de/images/structure/buttons/btn_fake_select.gif) no-repeat 100% 0 #F4F4F4;"
+"	display:block;"
+"	border:solid 1px #c4c4c4;"
+"	border-left-color: #f4f4f4;"
+"	border-top-color: #f4f4f4;"
+"	position:relative;"
+"	overflow:hidden;"
+"	height:16px;"
+"}"
+".door .currentSelect {"
+"    background:url(http://www.obi.de/de/images/structure/buttons/btn_fake_select_dark.gif) no-repeat 100% 0 #E1E1E1;"
+"	border-left-color: #E1E1E1;"
+"	border-top-color: #E1E1E1;"
+"}"
+".obiSelect .currentSelect a:hover,"
+".obiSelect a {"
+"    background-color:transparent;"
+"	display:block;"
+"	padding-left:3px;"
+"	cursor:default;"
+"	color:#333333;"
+"	font-weight:normal;"
+"}"
+".obiSelect a.selected,"
+".obiSelect a:hover {"
+"	color:#FFFFFF;"
+"	background-color:#333333;"
+"	text-decoration:none;"
+"}"
+".obiSelect .currentSelect a {"
+"	height:15px;"
+"	display:block;"
+"}"
+".optionsBoxDwn {"
+"	width: 202px;"	
+"	position:absolute;"
+"  *top:17px;"
+"	background-color:#F4F4F4;"
+"	visibility:hidden;"
+"	overflow:hidden;"
+"	z-index:3;"
+"	border:solid 1px #c4c4c4;"
+"	border-left-color: #f4f4f4;"
+"	border-top:none;"
+"	width:100%;"
+"	height:auto;"
+"}"
+".optionsBoxUp {"
+"background-color:#F4F4F4;"
+"border-color:#C4C4C4 #C4C4C4 #C4C4C4 #F4F4F4;"
+"border-style:solid;"
+"border-width:1px;"
+"bottom:16px;"
+"height:auto;"
+"overflow:hidden;"
+"position:absolute;"
+"visibility:hidden;"
+"width:100%;"
+"z-index:3;"
+"}"
+".door .optionsBoxDwn,"
+"door .optionsBoxUp {"
+"	background-color: #E1E1E1;"
+"	border-left-color: #E1E1E1;"
+"}"
+""
+".door .optionsBoxUp {"
+"	bottom:17px;"
+"}"
+".door .optionsBoxDwn {"
+"    /*padding-top:18px;*/"
+"}"
+""
+".track {"
+"	position:absolute;"
+"	display:block;"
+"	right:0;"
+"	height:100%;"
+"	width:20px;"
+"	background:url(http://www.obi.de/de/images/structure/background/scrolltrack_v.gif) repeat-y 100% 0;"
+"}"
+".door .track {"
+"	background:url(http://www.obi.de/de/images/structure/background/scrolltrack_v_dark.gif) repeat-y 100% 0;"
+"}"
+".slider {"
+"	position:absolute;"
+"	display:block;"
+"	top:0;"
+"	right:0;"
+"	height:19px;"
+"	width:18px;"
+"	background:url(http://www.obi.de/de/images/structure/buttons/btn_scrollslider.gif) no-repeat #F3F3F3 0 50%;"
+"	border: solid 1px #FFFFFF;"
+"	border-bottom-color: #c4c4c4;"
+"	border-right:none;"
+"}"
+".door .slider {"
+"	background:url(http://www.obi.de/de/images/structure/buttons/btn_scrollslider_dark.gif) no-repeat #E1E1E1 0 50%;"
+"}"
+".gradientH120 {"
+"	-moz-background-clip:border;"
+"	-moz-background-inline-policy:continuous;"
+"	-moz-background-origin:padding;"
+"	float:left;"
+"	height:120px;"
+"	width:348px;"
+"	font-family:Arial,Verdana,Sans-Serif;"
+"	}"
+".obiSelect .currentSelect a {"
+"	height:16px;"
+"}"
+"	.obiSelect .currentSelect a {"
+"	display:block;"
+"	height:15px;"
+"	text-decoration:none;"
+"}"
+"	.obiSelect a.selected, .obiSelect a:hover {"
+"	background-color:#333333;"
+"	color:#FFFFFF;"
+"	text-decoration:none;"
+"	}"
+"	.obiSelect .currentSelect a:hover, .obiSelect a {"
+"	background-color:transparent;"
+"	color:#333333;"
+"	cursor:default;"
+"	display:block;"
+"	font-weight:normal;"
+"	padding-left:3px;"
+"	}"
+"	.optionsBoxUp a {"
+"	text-decoration:none;"
+"	}"
+".door .optionsBoxDwn, .door .optionsBoxUp {"
+"	background-color:#E1E1E1;"
+"	border-left-color:#E1E1E1;"
+"}"
;

	var styleElement = document.createElement("style");
	styleElement.type = "text/css";
	try {
		styleElement.appendChild(document.createTextNode(cssString));
	} 
	catch (e) {
		// specific IE method
		styleElement.styleSheet.cssText = cssString;
	}
	document.getElementsByTagName("head")[0].appendChild(styleElement);
}

// nedstat tracking for clicks on "arrow" images
function is24_trackForms(){
	var names = ["obi_newsletter", "obi_categories", "obi_marktsuche"];
	for (var i = 0, a = names.length; i < a; i++) {
		if(document.getElementById(names[i])){
		var bild = document.getElementById(names[i]);
				YAHOO.util.Event.addListener(bild, "click", function(){
					if(typeof sitestat != "undefined"){
						sitestat(TRACKING_PREFIX + "&ns_type=hidden&ns_event=28&count="+this.id+"&dg1="+dg1+"&category="+category+"&mpl="+mpl+"&mpln="+mpln);
					}
				});
		}
	}
}	
is24_trackForms();
