var qtyHelper = new Array(); // wird im template gefüllt

var productAddToCartForm;

jQuery.noConflict();

jQuery(document).ready(function($) {
	
	var pos;
	var currentContent;
	
	/*var wk = $('.toplinks a[name=warenkorb]').parent();
	var wkLeftPercent = ((wk.offset().left-19) / $(window).width() * 100) + "%";
	wk.css({ position: 'fixed', left: wkLeftPercent });*/
	
	function loadEffect(element) {
		element.hide();
		element.fadeIn(1000,function(){ loadEffect(element); });
	}
	
	//$('.blink').append("<div class='cover'></div>");
	loadEffect($('.blink').first());
	window.setTimeout(function(){
		$('.blink').first().stop(true).css({ opacity: "1.0"});
	}, 5000);
	
	//.fadeOut(function(){ $('.cover').fadeIn(function(){ $('.cover').fadeOut(); }); });
	
	if($('#welcome').length) $(".page .main-container").remove();
	
	$(".page .main-container").attr("id","currentContent");
	
	function getContent(url) {
		if(url.charAt(url.length-1) == "/")
			url = url.substring(0,url.length-1);
		var content = $('#ressources div[title=' + url + ']').parent();
		if(!content.length) content = $('#ressources div[title=' + url + '/]').parent();
		if(!content.length) content = $('#ressources div[title=' + url + '/index/]').parent();
		return content;
	}
	
	function getLink(url) {
		var link = $("a.dynamic[href=" + url + "]");
		if(!link.length) link = $("a.dynamic[href=" + url + "/]");
		return link;
	}
	
	$('body').delegate('a','click',function(){
		var content = getContent($(this).attr('href'));
		
		if(content.length) { // Content verfügbar
			
			$('body,html').animate({scrollTop: 0}, 0);
			
			var to = new Object;
			var from = new Object;
			
			if($('#welcome').length) {
				content.css({ display: "block" });
				$('#distance').animate({
					height: "0px", marginBottom: "0px"
				}, function() {
					$("body").removeClass("cms-home");
				});
				$('#welcome').css({position: "absolute"}).fadeOut();
			}
			
			// Footer ausblenden
			$('.footer-container').hide();
			
			// Aktuellen Content schließen
			if($('#currentContent').length) {
				var url = $('#currentContent .url').attr("title");
				var link = getLink(url);
				if(url != "" && link.length) { // Ziel-Link für Schließen-Animation gefunden
					var box = link.parent('li');
					if(!box.length) box = link;
					to.top = box.position().top;
					to.left = box.position().left;
					to.width = box.width();
					to.height = box.height();
				} else { // Keinen Ziel-Link gefunden
					to.top = 300;
					to.left = 500;
					to.width = 0;
					to.height = 0;
				}
				$('#currentContent').wrap('<div id="closeAni" />');
				fromTop = $("#closeAni").offset().top;
				$("#closeAni").css({position: "absolute", top: fromTop+"px"}).animate({
					top: to.top,
					left: to.left,
					width: to.width,
					height: to.height
				}, function(){
					$('#currentContent').unwrap().attr("id","").detach().appendTo('#ressources');
					if(box) box.children('.box').css({ visibility: "visible" });
				});
			}
			
			// Neuen Content öffnen
			var fromBox = getLink($(this).attr('href')).parent();
			content.detach().appendTo(".page").attr("id","currentContent");
			to.top = content.position().top;
			to.height = content.height();
			content.wrap('<div id="ani" />');
			$("#ani").css({
				top: fromBox.position().top,
				left: fromBox.position().left,
				width: fromBox.width(),
				height: fromBox.height()
			}).animate({
				top: to.top,
				left: "0px",
				width: "1000px",
				height: to.height
			}, function() {
				content.unwrap();
				$('.footer-container').show();
			});
			fromBox.children('.box').css({ visibility: "hidden" });
			
			searchHint();
			
			return false;
		}
	});
	
	// Kategorien-Menu
	
	$('#catMenu li.parent.active>a').addClass('open');
	
	$('#catMenu li.parent>a').live("click",function() {
		$(this).toggleClass('open');
		$(this).parent().children('ul').slideToggle();
		return false;
	});
	
	// Header-Menus

	$('.menu a:not(.active), .links a:not(.active)').hover(function(){
		$(this).prev().css({opacity:0.9}) /*fadeTo(100,1.0);*/
	}, function(){
		$(this).prev().css({opacity:0.7}) /*fadeTo(100,0.6);*/
	});
	
	// Qty-Helper
	
	$('body').delegate('input.qty','focus',function(){
		$('body>.overlay').remove();
		var helper = $(this).siblings('.qty-helper');
		if(! helper.children('.qty-helper-inner').length) buildQtyHelper(helper);
		if(! $('body>div#'+helper.attr('id')).length) { // test ob schon eingeblendet
			var pos = $(this).offset();
			var h = $(this).height();
			helper.clone().appendTo('body')
				.css({ left: pos.left, top: pos.top + h + 10 }).show()
				.addClass('overlay');
		}
	});
	
	$('body').delegate('.qty-helper a','click',function(){
		var qtyHelper = $(this).parents('.qty-helper');
		var artNr = qtyHelper.children('.artNr').text();
		$("#currentContent input[id='qty-"+artNr+"']").attr('value',$(this).text());
		qtyHelper.remove();
		if($("#currentContent .cart input[id='qty-"+artNr+"']").length) $('#currentContent .cart>form').submit();
		return false;
	});
	
	// PV
	
	function buildQtyHelper(div) {
		/*if(div.children('.artNr').length) alert("already built");
		else alert("building ... ");*/
		var col = 0;
		var artNr = div.children('.artNr').text();
		if(!qtyHelper[artNr]) return false;
		var data = qtyHelper[artNr];
		var html = "<span class='artNr'>"+ artNr +"</span><div class='qty-helper-inner'><ul>";
		$.each(data.prices, function(k,price) {
			if(data.prices[k+1])
				var nextPriceQty = data.prices[k+1].price_qty;
			else 
				var nextPriceQty = 999999;
			if(! (nextPriceQty <= price.price_qty)) {
				col++;
				html += "<li>zu je " + price.formated_price + "<ul>";
				var qty = Number(data.uve); var remainder; var step = Number(data.uve); var priceForQty;
				for(var i=0; i<10; i++) {
					if(qty >= data.ve) step = Number(data.ve); // schrittgröße setzen
					
					if(i==0) qty = Number(price.price_qty); // neue spalte
					else qty += step; // normaler schritt
					
					if((remainder = qty % step) != 0) qty += step - remainder; // zum vollen schritt auffüllen
					
					if(qty >= nextPriceQty) break; // schon im mengenbereich der nächsten rabattstufe
					
					priceForQty = qty * Number(price.price);
					
					html += "<li><a href='#'>"+ qty +"</a>" +
						((qty == data.uve) ? " <span class='unit'>(UVE)</span>" : "") +
						((qty == data.ve) ? " <span class='unit'>(VE)</span>" : "") +
						" <span class='price'>" + priceForQty.toFixed(2) + " €</span>" +
						"</li>";
					
					if(i==9) {
						if((!data.prices[k+1]) && (col<3)) {
							html += "</ul></li><li>&nbsp;<ul>";
							i = 0;
							col++;
						} else {
							html += "<li>(...)</li>";
						}
					}
				}
				html += "</ul></li>";
			}
		});
		html += "</ul></div>";
		div.html(html);
		div.attr("id","qty-helper-"+artNr)
	}
			
	$('body').click(function(event) {
		if( !$(event.target).parents('.qty-helper').length &&
			!$(event.target).hasClass('qty') )
				$('body>.qty-helper').remove();
		if( !$(event.target).parents('.product-img-box').length )
				$('#lightbox').remove();
	});

	$('li.item a').live("click",function() {
		$('body>.overlay').remove();
		
		var row = $(this).parents('ul.products-grid');
		var currentPv = $('.category-products>.productView');
		var newPv = $(this).parents('li.item').children('.productView').clone();
		var scrollTo = row.offset().top-5;
		
		if(row.prevAll('.productView').length) scrollTo -= currentPv.height() +19+19;
		$('body,html').animate({scrollTop: scrollTo});
		
		if(currentPv.length) currentPv.slideUp(function(){ $(this).remove() });
		
		newPv.insertAfter(row).slideDown();
		
		buildQtyHelper(newPv.find('.qty-helper'));
		
		return false;
	});
	
	$('#currentContent').delegate('.add-to-box form','submit', function(){
		var form = $(this);
		var btn = $(this).children('.btn-cart');
		var pv = $(this).parents('.productView');
		
		loadEffect(btn);
		
		pv.children('.messages').remove();
		
		$.post($(this).attr('action'), { qty: $(this).children('input.qty').val() }, function(data){
			var answer = new jQuery(data);
			pv.prepend($('.page .messages', answer));
			
			if($('.page .col-main .itemsInCart', answer).length) {
				$('.toplinks a[name=warenkorb] .num').text( $('.page .col-main .itemsInCart', answer).text() );
				var cart = getContent($('.toplinks a[name=warenkorb]').attr("href"));
				cart.html( $('.page .main-container', answer).html() );
			}
			
			btn.stop(true).css({ opacity: "1"});
			//form.children('.qty').val("");
			$("#currentContent input[id='qty-"+ pv.find('.artNr span').text() +"']").attr('value',"");
		});
		
		return false;
	});

	// Lightbox
	
	$('body').delegate('.product-img-box a','click',function(){
		var src = $(this).children('img').attr('src');
		if(src.search(/placeholder_base/) == -1) {
			var link = this;
			var img = new Image();
			$(img).load(function(){
				$('body').append("<div id='lightbox' class='overlay'><a href='#'></a></div>");
				$('#lightbox a').html(this);
				//$('#lightbox').html("<a href='#'><img src='"+$(this).attr('href')+"'/></a>").show();
				var loff = $(link).children('img').offset();
				var lh = $(link).children('img').height();
				var lw = $(link).children('img').width();
				var iw = $('#lightbox img').width();
				var ih = $('#lightbox img').height();
				var it = loff.top+lh/2-ih/2-15;
				var il = loff.left+lw-iw-12;
				if(il<0) il = 15;
				$('#lightbox').css({top: it+'px', left: il+'px', visibility: 'visible'});
			}).attr('src', $(link).attr('href'));
		}
		return false;
	});
	    
	$('body').delegate('#lightbox a','click',function(){
		$('#lightbox').remove();
		return false;
	});
	
	// Loginform
	
	$('body').delegate('#login-form','submit',function() {
		$('#lastProdukteUrl').val(window.location.href);
	});
	
	// Minisearch
	
	function searchHint() {
		if($('input#search').val() == "") {
			$('input#search').val("Artikel-Nr. oder Stichwort")
				.css({ fontSize: "11px", color: "#aaa", fontStyle: "italic", padding: "3px 0px 1px 4px"})
				.addClass("empty");
		}
	}
	
	searchHint();
	
	$('input#search').live("focus",function(){
		if($(this).hasClass("empty"))
			$(this).val("")
				.css({ fontSize: "12px", color: "#555", fontStyle: "normal", padding: "2px"})
				.removeClass("empty");
	});
		
	$('input#search').live("blur",function(){
		searchHint();
	});
	
	if(! $(".menu li.active a[name=produkte]").length) {
		$.get($(".menu a[name=produkte]").attr('href'), function(data){
			doc = new jQuery(data);
			$('.page>.main-container', doc).appendTo('#ressources');
			$('#catMenu li.parent.active>a').addClass('open');
		});
	}
	
});

