(function() { 
	var Dom = YAHOO.util.Dom;
	var Event = YAHOO.util.Event;
	
	var image_zoom_init = function() {
		var zoombutton = Dom.getElementsByClassName('zoom', null, 'productimage');
		Event.addListener(zoombutton, "click", openZoom);
		var groessenbutton = Dom.getElementsByClassName('groessentabelle');
		Event.addListener(groessenbutton, "click", openGroessen);
	}
	
	var openGroessen = function(e) {
		createMask();
		jQuery('#groessentabelle').show();
		position4Div('groessentabelle', 0, 42);
	}

	var openZoom = function(e) {
		Event.preventDefault(e);
		var box = openBox('productzoom');
		// Headline für die Box erstellen
		var headline = document.createElement("h1");
		var h1text = document.getElementsByTagName('h1')[0].firstChild.nodeValue;
		headline.innerHTML = h1text;
		box.appendChild(headline);
		// Image-Container erstellen
		var zoomImageContainer = document.createElement("div");
		zoomImageContainer.id = "zoomimagecontainer";
		box.appendChild(zoomImageContainer);
		// aktives Image ermitteln und Zoom-Version in den Container laden
		var activeImage = getActiveImage();
		var zoomImage = document.createElement("img");
		zoomImage.src = activeImage.src.replace(/\/info_images\//, "/popup_images/");
		zoomImage.id = 'loupeImg';
		zoomImageContainer.appendChild(zoomImage);
		// Thumbnail-Box erstellen und Thumbnails für Zoom-Ansicht kopieren
		var thumbs = Dom.getChildren('info_thumbs');
		
		if(thumbs.length > 1) {
		var thumbbox = document.createElement("div");
			thumbbox.id = "zoom_thumbs";
			
			for(img in thumbs) {
				var newThumb = document.createElement("img");
				newThumb.src = thumbs[img].src;
				if(Dom.hasClass(thumbs[img], "selected")) {
					Dom.addClass(newThumb, "selected");
				}
				thumbbox.appendChild(newThumb);
			}
			box.appendChild(thumbbox);
		}
		// Close-Button erstellen
		var closebutton = document.createElement("a");
		closebutton.innerHTML = "Weiter shoppen";
		closebutton.id = "closebutton";
		box.appendChild(closebutton);
		Event.addListener(closebutton, "click", closeZoom);
		var closebutton2 = document.createElement("a");
		closebutton2.innerHTML = "&nbsp;";
		closebutton2.id = "closebutton2";
		box.appendChild(closebutton2);
		Event.addListener(closebutton2, "click", closeZoom);
		position4Div('productzoom', 0, 42);
		zoom_thumb_init();
		var img = new Image();
		img.src = zoomImage.src;
		jQuery('#loupeImg').loupe();
		// Event.addListener(window, "resize", function() { alert("resize"); });
	}
	
	var closeZoom = function(e) {
		Event.preventDefault(e);
		closeGroessentabelle();
		var bodyel = Dom.getElementBy(function(el) {
			return el.nodeName == "BODY";
		});
		bodyel.removeChild(Dom.get('productzoom'));
		bodyel.removeChild(Dom.get('mask'));
	}
	
	var createMask = function() {
		// Hintergrundmaske für das "Popup" erstellen
		var mask = document.createElement("div");
		mask.id = "mask";
		var docHeight = document.getElementsByTagName('html')[0].offsetHeight;
		var bodyel = Dom.getElementBy(function(el) {
			return el.nodeName == "BODY";
		});
		bodyel.appendChild(mask);
		Dom.setStyle("mask", "position", "absolute");
		Dom.setStyle("mask", "top", "0px");
		Dom.setStyle("mask", "left", "0px");
		Dom.setStyle("mask", "zIndex", "100");
		Dom.setStyle("mask", "width", "100%");
		Dom.setStyle("mask", "height", docHeight + "px");
		Dom.setStyle("mask", "backgroundColor", "white");
		Dom.setStyle("mask", "opacity", "0.8");
		Event.addListener(mask, "click", closeZoom);
	}
	
	var position4Div = function(divID, offsetLeft, offsetTop) {
		// Das Div wird mittig positioniert 
		var docWidth = Dom.getViewportWidth();
		var docHeight = document.getElementsByTagName('html')[0].offsetHeight;
		var scrolledDown = Dom.getDocumentScrollTop();
		var winHeight = Dom.getViewportHeight();
		var divWidth = Dom.get(divID).offsetWidth;
		var divHeight = Dom.get(divID).offsetHeight;
		var divLeft = parseInt((docWidth - divWidth)/2);
		var divTop = parseInt((winHeight-divHeight)/2) + scrolledDown;
		
		Dom.setStyle(divID, "position", "absolute");
		Dom.setStyle(divID, "left", divLeft + "px");
		Dom.setStyle(divID, "top", divTop + "px");
	}
	
	var openBox = function(divID) {
		createMask();
		// Box erstellen
		var box = document.createElement("div");
		box.id = divID;
		
		// Box in die Seite einfügen
		var bodyel = Dom.getElementBy(function(el) {
			return el.nodeName == "BODY";
		});
		bodyel.appendChild(box);
		Dom.setStyle(divID, "zIndex", "101");
		return box;
	}
	
	var getInfoImages = function() {
		var infoImages = new Array();
		if(Dom.inDocument("imagecontainer")) {
			var infoImages = Dom.getChildren("imagecontainer");
		}
		return infoImages;
	}
	
	var getZoomImages = function() {
		var zoomImages = new Array();
		if(Dom.inDocument("zoomimagecontainer")) {
			var zoomImages = Dom.getChildren("zoomimagecontainer");
		}
		return zoomImages;
	}
	
	var getActiveImage = function() {
		var infoImages = getInfoImages();
		var activeImage = new Array();
		for(img in infoImages) {
			if(Dom.getStyle(infoImages[img], "display") != "none") {
				activeImage.push(infoImages[img]);
			}
		}
		return activeImage[0];
	}
	
	var info_thumb_init = function() {
		if(Dom.inDocument('info_thumbs')) {
			var thumbs = Dom.getChildren('info_thumbs');
			if(thumbs.length > 1) {
				Event.addListener(thumbs, "mouseover", function(e) {
					var caller = Event.getTarget(e);
					Dom.addClass(caller, "active");
				});
				Event.addListener(thumbs, "mouseout", function(e) {
					var caller = Event.getTarget(e);
					Dom.removeClass(caller, "active");
				});
				Event.addListener(thumbs, "click", changeActiveInfoImage);
			} else {
				Dom.setStyle(thumbs, "display", "none");
			}
		}
	}
	
	var changeActiveInfoImage = function(e) {
		var caller = Event.getTarget(e);
		setActiveInfoImage(caller);
	}
	
	var setActiveInfoImage = function(infothumb, zoomImage) {
		var infoImages = getInfoImages();

		for(img in infoImages) {
			if(infothumb.src == infoImages[img].src) {
				Dom.setStyle(infoImages, "display", "none");
				Dom.setStyle(infoImages[img], "display", "inline");
				var thumbs = Dom.getChildren('info_thumbs');
				Dom.removeClass(thumbs, "selected");
				Dom.addClass(infothumb, "selected");
			}
		}
		
		if(Dom.inDocument("selectorFarbe")) {
			var options = Dom.getChildren("selectorFarbe");
			for(var i=0;i<options.length;i++) {
				articleID = options[i].title.replace("-", "_");
				if(infothumb.src.lastIndexOf(articleID) != -1) {
					Dom.get("selectorFarbe").selectedIndex = i;
					//jQuery('.preisinfo').html(jQuery("#selectorFarbe option:selected").text());
				}
			}
		}
		
		if(Dom.inDocument("selectorThema")) {
			var options = Dom.getChildren("selectorThema");
			for(var i=0;i<options.length;i++) {
				articleID = options[i].title.replace("-", "_");
				if(infothumb.src.lastIndexOf(articleID) != -1) {
					Dom.get("selectorThema").selectedIndex = i;
				}
			}
		}
		var img = new Image();
//		img.src = zoomImage.src;
		jQuery('#loupeImg').unbind();
		jQuery('#loupeImg').loupe();
	}
	
	var zoom_thumb_init = function() {
		if(Dom.inDocument('zoom_thumbs')) {
			var thumbs = Dom.getChildren('zoom_thumbs');
			Event.addListener(thumbs, "mouseover", function(e) {
				var caller = Event.getTarget(e);
				Dom.addClass(caller, "active");
			});
			Event.addListener(thumbs, "mouseout", function(e) {
				var caller = Event.getTarget(e);
				Dom.removeClass(caller, "active");
			});
			Event.addListener(thumbs, "click", changeActiveZoomImage);
		}
	}
	
	var changeActiveZoomImage = function(e) {
		var caller = Event.getTarget(e);
		var zoomImages = getZoomImages();
		
		Dom.setStyle(zoomImages, "display", "none");
		var thumbs = Dom.getChildren('zoom_thumbs');
		Dom.removeClass(thumbs, "selected");
		Dom.addClass(caller, "selected");
		
		jQuery('#loupeImg').remove();
		var zoomImage = document.createElement("img");
		zoomImage.src = caller.src.replace(/\/info_images\//, "/popup_images/");
		zoomImage.id = 'loupeImg';
		
		Dom.get('zoomimagecontainer').appendChild(zoomImage);
		var infothumbs = Dom.getChildren("info_thumbs");
		for(img in infothumbs) {
			if(infothumbs[img].src == caller.src) {
				setActiveInfoImage(infothumbs[img], zoomImage);
			}
		}
	}
	
	var color_selector_init = function() {
		if(Dom.inDocument("selectorFarbe")) {
			Event.addListener("selectorFarbe", "change", function(e) {
				var caller = Event.getTarget(e);
				var articleID = caller.options[caller.selectedIndex].title.replace("-", "_");
				var infothumbs = Dom.getChildren("info_thumbs");
				for(img in infothumbs) {
					if(infothumbs[img].src.lastIndexOf(articleID) != -1) {
						setActiveInfoImage(infothumbs[img]);
					}
				}
			});
		}
	}

	var theme_selector_init = function() {
		if(Dom.inDocument("selectorThema")) {
			Event.addListener("selectorThema", "change", function(e) {
				var caller = Event.getTarget(e);
				var articleID = caller.options[caller.selectedIndex].title.replace("-", "_");
				var infothumbs = Dom.getChildren("info_thumbs");
				for(img in infothumbs) {
					if(infothumbs[img].src.lastIndexOf(articleID) != -1) {
						setActiveInfoImage(infothumbs[img]);
					}
				}
			});
		}
	}
	
	var set_background = function() {
		var crossellings = Dom.getElementsByClassName("crosselling");
		if(crossellings.length > 0) {
			var wrap = Dom.get("centerwrap");
			Dom.addClass("centerwrap", "crossell");
		}
	}
	
	var sternchentext = function() {
		if(Dom.inDocument('sternchen')) {
			if(!Dom.inDocument('productdisplay') && !Dom.inDocument('productlist')) {
				Dom.setStyle('sternchen', 'display', 'none');
			}
		}
	}

	var init = function() {
		set_background();
		image_zoom_init();
		info_thumb_init();
		color_selector_init();
		theme_selector_init();
		sternchentext();
	}
	
	YAHOO.util.Event.onDOMReady(init); 
})(); 

function findValue(li) {
	if( li == null ) return alert("Kein Eintrag");
	if( !!li.extra ) var sValue = li.extra[0];
	else var sValue = li.selectValue;
}

function selectItem(li) {
	findValue(li);
}

function formatItem(row) {
	return row[0];
}

/*function lookupAjax(){
	var oSuggest = jQuery("#suche")[0].autocompleter;
	oSuggest.findValue();
	return false;
}*/
calcDisplayPrice = function() {
	tempPreis = top.preis*1;
	if(jQuery('#selectorFarbe option:selected').length>=1) {
		farbe = jQuery('#selectorFarbe option:selected').text();
		posFarbe = farbe.indexOf('|');
		if(posFarbe>=0) {
			preisFarbe = ((farbe.substring(posFarbe+1,farbe.length-4)).replace(',','.')).replace(' ','');
			if(preisFarbe.substr(0,1)=='-') {
				preisFarbe = preisFarbe.substr(2)*-1;
			}
			else {
				preisFarbe = preisFarbe.substr(2)*1;
			}
			tempPreis+=preisFarbe;
		}
	}
	if(jQuery('#selectorGröße option:selected').length>=1) {
		größe = jQuery('#selectorGröße option:selected').text();
		posGröße = größe.indexOf('|');
		if(posGröße>=0) {
			preisGröße = ((größe.substring(posGröße+1,größe.length-4)).replace(',','.')).replace(' ','');
			if(preisGröße.substr(0,1)=='-') {
				preisGröße = preisGröße.substr(2)*-1;
			}
			else {
				preisGröße = preisGröße.substr(2)*1;
			}
			tempPreis+=preisGröße;
		}	
	}
	if(jQuery('#selectorThema option:selected').length>=1) {
		thema = jQuery('#selectorThema option:selected').text();
		posThema = thema.indexOf('|');
		if(posThema>=0) {
			preisThema = ((thema.substring(posThema+1,thema.length-4)).replace(',','.')).replace(' ','');
			if(preisThema.substr(0,1)=='-') {
				preisThema = preisThema.substr(2)*-1;
			}
			else {
				preisThema = preisThema.substr(2)*1;
			}
			tempPreis+=preisThema;
		}	
	}
	tempEuro = Math.floor(tempPreis);
	tempCent = Math.round(((tempPreis - tempEuro) * 100),0);
	if(tempCent.length==1||tempCent==0) {
		tempCent+= '0';
	}
	jQuery('.price p:first').html(tempEuro+',<span>'+tempCent+'</span><span class="shadow_price">'+tempEuro+',<span>'+tempCent+'</span></span><span class="shadow_price1">'+tempEuro+',<span>'+tempCent+'</span></span><span class="shadow_price2">'+tempEuro+',<span>'+tempCent+'</span></span><span class="shadow_price3">'+tempEuro+',<span>'+tempCent+'</span></span><span class="shadow_price4">'+tempEuro+',<span>'+tempCent+'</span></span>');
}
jQuery(document).ready(
	function()
	{
		jQuery("#sucheInput").keypress(function(event) { 
			if (event.keyCode == "13") {
				event.preventDefault(); 
				if(jQuery(this).val()!='' && jQuery(this).val()!='Suche eingeben') {
					jQuery('#suche').submit();
				}
			}
		});
		jQuery("#sucheInput").autocomplete(
			"/shop/autocomplete.php",
			{
				lineSeparator:'#n#',
				delay:200,
				minChars:3,
				matchSubset:false,
				matchContains:1,
				cacheLength:20,
				onItemSelect:selectItem,
				onFindValue:findValue,
				formatItem:formatItem,
				autoFill:true
			}
		);
		jQuery('#sucheInput').focus(function() {
			jQuery(this).select();
			if(jQuery(this).val()=='Suchbegriff eingeben') {
				jQuery(this).val('');
			}
		});
		jQuery('#suche').submit(function(e) {
			if(jQuery("#sucheInput").val()=='' || jQuery("#sucheInput").val()=='Suchbegriff eingeben') {
				e.preventDefault();
			}
		});
		jQuery('.groessentabelle').click(function(e) {
			e.preventDefault();
			jQuery('#groessencontainer').find('table.groessen').css('display', 'none');
			jQuery('#'+jQuery(this).attr('href')).css('display', 'block');
			jQuery('#closebutton').click(function(e) {
				e.preventDefault();
				closeGroessentabelle();
			});
			jQuery('#closebutton2').click(function(e) {
				e.preventDefault();
				closeGroessentabelle();
			});
			jQuery('#groessentabelle').css('top', 42);
		});
		jQuery('.versandInfo').click(function(e) {
			jQuery('#versandPopup').toggle('slow');
			e.preventDefault();
		});
		if(jQuery('.price p:first').length>=1) {
			preisstring = jQuery('.price p:first').html();
			preisbis = preisstring.indexOf("<");
			top.preisEuro = preisstring.substr(0,preisbis);
			top.preisCent = jQuery('.price p:first span:first').html();
			top.preis = (top.preisEuro + top.preisCent).replace(',','.');
			calcDisplayPrice();
			jQuery("#selectorFarbe").change(calcDisplayPrice);
			jQuery("#selectorGröße").change(calcDisplayPrice);
			jQuery("#selectorThema").change(calcDisplayPrice);
		}
		/*jQuery('.versandInfo').click(function(e) {
			e.preventDefault();
			newWin = window.open(jQuery(this).find('a').attr('href'), 'popup', 'toolbar=0, width=640, height=600');
			jQuery('#closebutton').click(function(e) {
				e.preventDefault();
			});
			jQuery('#closebutton2').click(function(e) {
				e.preventDefault();
			});
			jQuery('#groessentabelle').css('top', 42);
		});
		*/
		jQuery('.versandInfo').find('a').attr('onclick', '');
		jQuery('a').hover(function() {
			jQuery(this).css('cursor', 'pointer');
		}, function() {
			jQuery(this).css('cursor', 'default');
		});
		for(i=0; i<jQuery('#info_thumbs').find('img').length; i++) {
			jQuery('#info_thumbs').find('img:eq('+i+')').attr('title', jQuery('#selectorFarbe').find('option:eq('+i+')').html());
		}
	/* delete
	var color_selector_init = function() {
		if(Dom.inDocument("selectorFarbe")) {
			Event.addListener("selectorFarbe", "change", function(e) {
				var caller = Event.getTarget(e);
				var articleID = caller.options[caller.selectedIndex].title.replace("-", "_");
				var infothumbs = Dom.getChildren("info_thumbs");
				for(img in infothumbs) {
					if(infothumbs[img].src.lastIndexOf(articleID) != -1) {
						setActiveInfoImage(infothumbs[img]);
					}
				}
			});
		}
	}
	*/
	
		/*jQuery('.postcode').maxlength({  
	    	events: [], // Array of events to be triggerd   
			maxCharacters: 5, // Characters limit  
			status: false, // True to show status indicator bewlow the element   
			statusClass: "status", // The class on the status div 
			statusText: "character left", // The status text 
			notificationClass: "notification",  // Will be added when maxlength is reached 
			showAlert: false, // True to show a regular alert message   
			alertText: "Max. 5 Zahlen", // Text in alert message  
			slider: false // True Use counter slider   
	  });*/
	}
);
var closeGroessentabelle = function() {
	jQuery('#groessentabelle').hide();
	jQuery('#mask').remove();
}
