$(function() {
	
	// Hide the headers if no products found next to them
	if (!($("#CompatibleProductsHeader").next().is(".ProductList"))) { $("#CompatibleProductsHeader").hide(); }
	if (!($("#SimilarProductsHeader").next().is(".ProductList"))) { $("#SimilarProductsHeader").hide(); }
	
	// Crossselling carousel at productpage and in cart
	if ($("#CrossSaleProducts div.Product").length) {
		var CrossSaleHeaderText;
		if ($("#CartTable").length) { CrossSaleHeaderText = "Näitä tuotteita ostaneet ostivat myös..."} else { CrossSaleHeaderText = "Tämän tuotteen ostaneet ostivat myös..."}
		$("#CrossSaleScroller").css("overflow","hidden").before('<h2 class="BoxHeader Center">' + CrossSaleHeaderText + '</h2><span id="ScrollToPrev" style="display: none;"><span class="Icon"></span>Edelliset</span><span id="ScrollToNext"><span class="Icon"></span>Seuraavat</span>');
		$("#CrossSaleProducts").css("width","2304px");
		var $prev = $('#ScrollToPrev'), $next = $('#ScrollToNext'), $scp = $('#CrossSaleScroller');
		$scp.serialScroll({
			items: '.Product',
			prev: '#ScrollToPrev',
			next: '#ScrollToNext',
			axis: 'x',
			duration: 350,
			force: true,
			step: 3,
			exclude: 2,
			cycle: false,
			onBefore: function(e,elem,$pane,$items,pos) {
				$prev.add($next).fadeIn(250);
				if (pos==0) {
					$prev.fadeOut(250);
				} else if (pos==$items.length-3) {
					$next.fadeOut(250);
				}
			}				
		});
		$(document).keyup(function(e) {
			switch (e.keyCode) {
				case 39:
					$scp.trigger('next');
					break;
				case 37:
					$scp.trigger('prev');
					break;
			}
		});
	}

	// Ajax messages which are fixed on top of page via CSS
	$.ajaxSetup({ cache: false });
	$('<p id="AjaxMsg"></p>').insertAfter("#Container");
	$('#AjaxMsg').ajaxStart(function() { $(this).slideDown(250); });
	$('#AjaxMsg').ajaxStop(function() { $(this).slideUp(250); });

	// Adding products to cart with ajax and refreshing of the minicart-tag (some things IE6-disabled)
	if ($("#ProductBuy").length) {
		$(".BuyForm").submit(function(event) {
			$("#AjaxMsg").text("Lisätään tuote ostoskoriin"); 
			$(".AddToCart",".BuyForm").attr("disabled","disabled").children("span").text("Lisätään…");
			$(this).ajaxSubmit(function() {
				$("#ProductAddedNotification").slideUp(250, function() { $(this).remove(); });
				if (!($.browser.msie && parseInt($.browser.version)==6)) {
					$.get("/interface/MiniCart", function(minicart) {
						$(".AddToCart",".BuyForm").attr("disabled","").children("span").text("Lisää ostoskoriin");
						$("#PageHeader").after('<div class="Notification Success" id="ProductAddedNotification"><p>Tuote ' + ProductName + ' lisättiin ostoskoriin onnistuneesti.</p><p><a href="/">Palaa etusivulle</a>, <a href="/cart/">näytä ostoskori</a> tai <a href="/checkout/">siirry kassalle</a>.</div>');
						$("#ProductAddedNotification").slideDown(250);
						$("#MiniCartWrapper").html(minicart).slideDown(250);
					});
					$("#MiniCartWrapper").slideUp(250);
				} else {
					$(".AddToCart",".BuyForm").attr("disabled","").children("span").text("Lisää ostoskoriin");
					$("#PageHeader").after('<div class="Notification Success" id="ProductAddedNotification"><p>Tuote ' + ProductName + ' lisättiin ostoskoriin onnistuneesti.</p><p><a href="/">Palaa etusivulle</a>, <a href="/cart/">näytä ostoskori</a> tai <a href="/checkout/">siirry kassalle</a>.</div>');
					$("#ProductAddedNotification").slideDown(250);
				}
			});
			event.preventDefault();
		});
	}
	
	// Removing products from minicart with ajax (IE6-disabled)
	if (!($.browser.msie && parseInt($.browser.version)==6)) {
		$("#MiniCartWrapper").delegate(".CartProductRemove a","click", function(event) {
			$("#AjaxMsg").text("Poistetaan tuote ostoskorista");
			var $parent = $(this).closest(".CartProduct");
			var rm = $(this).attr("href");
			$.get(rm, function() {
				$parent.slideUp(250, function() { $(this).remove(); });
				$.get("/interface/MiniCart", function(data) {
					var $subtotal = $("dd.SubTotal", data).html();
					$("#MiniCartWrapper dd.SubTotal").fadeOut(250, function() {
						if ($subtotal==null) {
							$("#MiniCartWrapper dd.SubTotal").html('0,<span class="PriceDecimals">00</span><span class="Currency">€</span>');
						} else {
							$("#MiniCartWrapper dd.SubTotal").html($subtotal);
						}
						$("#MiniCartWrapper dd.SubTotal").fadeIn(250);
					});
				});
			});
			event.preventDefault();
		});
	}

	// Categorynavigation openers
	$("ul.Categories li:has(> ul)").addClass("Openable").each(function() {
		if ($(this).hasClass("Current")) {
			$(this).prepend('<span class="NavOpener Opened" title="Piilota alakategoriat">-</span>');
		} else {
			$(this).prepend('<span class="NavOpener" title="Näytä alakategoriat">+</span>');
		}
		$("> .NavOpener", this).click(function() {
			$(this).next("a").next("ul").slideToggle(300);
			if ($(this).text() == "-" ) {
				$(this).text("+").attr("title","Näytä alakategoriat");
			} else {
				$(this).text("-").attr("title","Piilota alakategoriat");
			}
			$(this).toggleClass("Opened")
		});
	});

	// Productimageswapper via clik on thumbnail or changing the variation and the other way aroung
	if ($("#ProductImages").length) {
		$("#CurrentProductImage").prepend($('<span id="ImgLoader">Ladataan...</span>').hide());
		if ($("#ProductBuy .BuyFormVariationSelect").length) {
			$(".BuyFormVariationSelect select").change(function(event, triggered) {
				if (triggered==undefined) {
					var vName = $("option:selected", this).text();
					var vSplit = vName.split("(");
					var vTrim = vSplit[0].replace(/^[ \t]+|[ \t]+$/,"").toLowerCase();
					$("#ProductThumbnails li a").each(function() {
						var title = $(this).attr("title");
						var href = $(this).attr("href");
						var iTrim = title.replace(/^[ \t]+|[ \t]+$/,"").toLowerCase();
						var iSubstr = iTrim.substr(0,vTrim.length);
						var vSubstr = vTrim.substr(0,iTrim.length);
						if (iSubstr==vSubstr) {
							var triggered = true;
							$(this).trigger("click", triggered);
							return false;
						}
					});
				}
			});
			$("#ProductThumbnails li a").click(function(event, triggered) {
				event.preventDefault();
				var title = $(this).attr("title");
				var href = $(this).attr("href");
				var src = $("#CurrentProductImage img").attr("src");
				var sizeArr = src.split("/");
				var targetSize = sizeArr[2];
				var tnSrc = href.split("/");
				var targetImg = tnSrc[3];
				var newImg = "/tuotekuvat/"+targetSize+"/"+targetImg;
				SwapImg(newImg,href,title);
				if (triggered==undefined) {
					var iTrim = title.replace(/^[ \t]+|[ \t]+$/,"").toLowerCase();
					$(".BuyFormVariationSelect select option").each(function() {
						var vName = $(this).text();
						var vSplit = vName.split("(");
						var vTrim = vSplit[0].replace(/^[ \t]+|[ \t]+$/,"").toLowerCase();
						var iSubstr = iTrim.substr(0,vTrim.length);
						var vSubstr = vTrim.substr(0,iTrim.length);
						if (vSubstr==iSubstr) {
							var triggered = true;
							$(this).attr("selected","selected");
							return false;
						}
					});
				}
			});
			$("#ProductBuy .BuyFormVariationSelect select").trigger("change");
		} else {
			$("#ProductBuy .BuyFormVariationRadio input").click(function(event, triggered) {
				if (triggered==undefined) {
					var vName = $(this).parent("label").text();
					var vTrim = vName.replace(/^[ \t]+|[ \t]+$/,"").toLowerCase();
					$("#ProductThumbnails li a").each(function() {
						var iTrim = $(this).attr("title").replace(/^[ \t]+|[ \t]+$/,"").toLowerCase();
						var iSubstr = iTrim.substr(0,vTrim.length);
						var vSubstr = vTrim.substr(0,iTrim.length);
						if (iSubstr==vSubstr) {
							var triggered = true;
							$(this).trigger("click", triggered);
							return false;
						}
					});
				}
			});
			$("#ProductThumbnails li a").click(function(event, triggered) {
				event.preventDefault();
				var title = $(this).attr("title");
				var href = $(this).attr("href");
				var src = $("#CurrentProductImage img").attr("src");
				var sizeArr = src.split("/");
				var targetSize = sizeArr[2];
				var tnSrc = href.split("/");
				var targetImg = tnSrc[3];
				var newImg = "/tuotekuvat/"+targetSize+"/"+targetImg;
				SwapImg(newImg,href,title);
				if (triggered==undefined) {
					var iTrim = title.replace(/^[ \t]+|[ \t]+$/,"").toLowerCase();
					$("#ProductBuy .BuyFormVariationRadio input").each(function() {
						var vName = $(this).parent("label").text();
						var vTrim = vName.replace(/^[ \t]+|[ \t]+$/,"").toLowerCase();
						var iSubstr = iTrim.substr(0,vTrim.length);
						var vSubstr = vTrim.substr(0,iTrim.length);
						if (vSubstr==iSubstr) {
							var triggered = true;
							$(this).trigger("click", triggered);
							return false;
						}
					});
				}
			});
			if ($("#ProductBuy .BuyFormVariationRadio").length) { $("#ProductBuy .BuyFormVariationRadio input:checked").trigger("click"); }
		}
	}

});

// Imageswapperscript
function SwapImg(i,href,title) {
	if ($("#CurrentProductImage img").attr("src") != i) {
		$("#CurrentProductImage img").fadeOut(200, function() {
			$("#ImgLoader").fadeIn(100, function() {
				$("#CurrentProductImage img").attr("src",i).load(function() {
					$("#ImgLoader").fadeOut(100, function() {
						$("#CurrentProductImage img").fadeIn(200);
					});
				}).each(function() {
					if (this.complete && $.browser.msie) {
						$(this).trigger("load");
					}
				});
			});
		});
		$("#ProductImageCaption").html(title);
		$("#CurrentProductImage img").attr("alt",title);
		$("#CurrentProductImage").attr("title",title);
		$("#CurrentProductImage").attr("href",href); 
	}
}
