var selectedSize = null;
var selectedColour = null;
var bigImage = null;
var loaderImage = null;
var cts = null;

jQuery(document).ready(function($){
	readJSON();
	activateFirstColour();
	setColourEvents();
	setSizeEvents();
	enableTooltips();
	
	function readJSON()
	{
		cts = jQuery.parseJSON(ctsJson);
	}
	
	function activateFirstColour()
	{
		$('.colours a:first').addClass("active");
		$(".selectedColour").text($('.colours a.active').attr("title"));
		changeImage();
	}
	
	function setColourEvents()
	{
		$(".colours a").click(function(){
			$('.colours a.active').removeClass("active");
			$(this).addClass("active");
			$(".selectedColour").text($('.colours a.active').attr("title"));
			colourToSizes();
			changeImage();
			$(".color-error").fadeOut('fast');
	
			return false;
		});
	}
	
	function setSizeEvents()
	{
		$(".sizes a").click(function(){
			selectSize($(this));
			sizeToColours();
			priceMeUp();
			changeImage();
			$(".size-error").fadeOut('fast');
	
			return false;
		});
	}
	
	function changeImage()
	{
		if (!$('.product-images > li:not(.hidden)').hasClass(asocieri[$('.colours a.active').attr("alt")])) {
			$(".product-images > li").fadeOut(800, function() {$(this).addClass("hidden");});
			$(".product-images li." + asocieri[$('.colours a.active').attr("alt")]).fadeIn(800, function() {$(this).removeClass("hidden")});
		}
	}
	
	function colourToSizes()
	{
		var sizes = cts[$('.colour.active').attr("alt")];

		$(".size").addClass("hidden");
		$(".size").each(function(){
			var val = $(this).text();
			if (inArray(val, sizes)) {
				$(this).removeClass("hidden");
			}
		});
		
		var selectedSize = $(".size.active");
		if (selectedSize.hasClass("hidden")) {
			selectedSize.removeClass("active");
			$(".selectedSize").text('?');
			changeImage();
		}
	}
	
	function sizeToColours()
	{
		var colours = stc[$('.sizes a.active').text()];

		$(".colour").addClass("hidden");
		$(".colour").each(function(){
			var val = $(this).attr('alt');
			if (colours[val]) {
				$(this).removeClass("hidden");
			}
		});
		
		var selectedColour = $(".colour.active");
		if (selectedColour.hasClass("hidden")) {
			selectedColour.removeClass("active");
			$(".colour:not(.hidden):first").addClass("active");
			$(".selectedColour").text($('.colours a.active').attr("title"));
			changeImage();
		}
	}
	
	function selectSize(sizeItem)
	{
		$(".sizes a").removeClass("active");
		$(sizeItem).addClass("active");
		$(".selectedSize").text($(sizeItem).text());
	}
	
	function priceMeUp() {
		var selectedSize = $(".size.active");
		var selectedColour = $(".colour.active");
		
		if(selectedColour && selectedSize) {
			selectedSize = selectedSize.text();
			selectedColour = selectedColour.attr('alt');
			var mySuffix = sts[selectedSize];
			var price = $(".price-normal");

			if (stpRebate[mySuffix]) {
				$(".yousave").removeClass("hidden");
				price.removeClass("hidden");

				var youSave = Math.round((stp[mySuffix] - stpRebate[mySuffix]) * 100) / 100;
				$(".yousave").text('Economisesti ' + youSave + ' lei (' + Math.round(youSave / stp[mySuffix] * 10000) / 100 + '%)');
				$(".price-rebate").text(stpRebate[mySuffix] + " lei");
				price.text(stp[mySuffix] + " lei");
			} else {
				if ($(".yousave")) {
					$(".yousave").addClass("hidden");
					price.addClass("hidden");
				}
				$(".price-rebate").text(stp[mySuffix] + " lei");
			}
		}
	}
	
	function inArray(el, array)
	{
		for (var i=0; i < array.length; ++i) {
			if (array[i] == el) {
				return true;
			}
		}
		
		return false;
	}
	
	function enableTooltips()
	{
		/* CONFIG */		
			xOffset = 10;
			yOffset = 20;		
			// these 2 variable determine popup's distance from the cursor
			// you might want to adjust to get the right result		
		/* END CONFIG */		
		$(".tooltip").hover(function(e){											  
			this.t = this.title;
			this.title = "";									  
			$("body").append("<div id='tooltip'>"+ this.t +"</div>");
			$("#tooltip")
				.css("top",(e.pageY - xOffset) + "px")
				.css("left",(e.pageX + yOffset) + "px")
				.fadeIn("fast");		
	    },
		function(){
			this.title = this.t;		
			$("#tooltip").remove();
	    });	
		$(".tooltip").mousemove(function(e){
			$("#tooltip")
				.css("top",(e.pageY - xOffset) + "px")
				.css("left",(e.pageX + yOffset) + "px");
		});			
	}
	
	$("#addToCartBtn").click(function(){
		var selectedSize = $(".size.active");
		var selectedColour = $(".colour.active");

		if(selectedColour.length && selectedSize.length) {
			selectedSize = selectedSize.text();
			selectedColour = selectedColour.attr('alt');
			$("#price").addClass("loading");
			
			$.post(base + "include/cos.php", {
				"cod": 			cod,
				"culoare":		selectedColour,
				"marime":		selectedSize,
				"terminatie":	sts[selectedSize],
				"JSON":			1,
				"action":		"addToCart"
			},
			function(resp) {
				if(typeof(pageTracker) != "undefined"){ 
					pageTracker._trackPageview('/cos');
				}
				
				setTimeout(function() {
					$("#price").removeClass("loading");
				}, 500);
				
				$(".addedToCart").fadeIn(function(){
					$(this).removeClass("hidden");
				});

				if (!$(".addedToCart").length) {
					alert("Produsul a fost adăugat în coșul de cumpărături. Mergem mai departe :-)");
				}
				if($("#cart_items")) {
					$("#cart_items").html(resp['cart_items']);
				}
				if($("#cartTransport")) {
					$("#cartTransport").text(resp['cartTransport']);	
				}
				if($("#cartTotalValue")) {
					$("#cartTotalValue").text(resp['total']);
				}
				if($("#additionalCartInfo")) {
					$("#additionalCartInfo").text(resp['additionalInfo']);
				}
				if ($("#finalizeaza-comanda")) {
					$("#finalizeaza-comanda").removeClass("hidden");
				}
				
				alert("Produsul a fost adaugat in cos. Mergem mai departe...");
				// showCart();
			}, 'json');
		} else {
			if(selectedSize.length == 0) {
				$(".size-error").fadeIn(300);
			}
			
			if(selectedColour.length == 0) {
				$(".color-error").fadeIn(300);
			}
		}
		
		return false;
	});
	
	$("a[rel^='prettyPhoto']").prettyPhoto({
		animationSpeed:'fast', 
		overlay_gallery: true,
		showTitle: false
	});
	
	$("#instrument-masura").click(function(){
		$(".instrument-masura-info").fadeIn('fast');
	})
});