﻿var animationSpeed = 350;

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g, "");
}


$(document).ready(function () {
	var activeCategory = false;

	$(".numbersOnly").keypress(function (event) {
		if (event.ctrlKey || event.altKey || event.metaKey)
			return;
		if (typeof event.charCode != 'undefined' && !event.charCode) return;
		var key = (event.charCode) ? event.charCode : event.keyCode;
		var keyChar = String.fromCharCode(key);
		if (/\D/.test(keyChar)) {
			event.preventDefault();
		}
	});


	if (selectedProductGroup != null) {
		var selGroup = "#group_" + selectedProductGroup;
		$(selGroup).addClass("menuitem_active");
		activeCategory = "#" + $(selGroup).attr("parent");
	}

	$("#accordion").accordion({ collapsible: true, autoHeight: false, active: activeCategory });


	$(".product_type").click(function () {
		$(".product_type").removeClass("menuitem_active");
		$(this).addClass("menuitem_active");
	});
	var productId = $("#productId").html();
	if (productId != null)
		if (cookieHasProduct(productId.trim())) {
			$("#addToBasket").css("display", "none");
			$("#removeFromBasket").css("display", "block");
		}


	$("#addToBasket").click(function () {
		$(this).slideUp(animationSpeed);
		addProductToBasket($("#productId").html().trim(), "#product_price");
		$("#removeFromBasket").slideDown(animationSpeed);
		animatePrice();
	});

	$("#removeFromBasket").click(function () {
		$(this).slideUp(animationSpeed);
		removeProductFromBasket($("#productId").html().trim(), "#product_price");
		$("#addToBasket").slideDown(animationSpeed);
		animatePrice();
	});


	$(".remove_line").click(function () {
		var itemId = this.id.split("_")[1];
		removeProductFromBasket(itemId, "#itemprice_" + itemId);
		$(this).parent().slideUp(animationSpeed, function () { $(this).remove(); recalculateBasketPrices(); });
		animatePrice();
	});

	$(".product_amount").keyup(function () {
		var itemId = this.id.split("_")[1];
		var value = Number($(this).val());

		if (value == 0)
			return;
		var itemPrice = $("#itemprice_" + itemId).html().replace("€", "").replace(",", ".").replace(" ", "");
		$("#totalprice_" + itemId).html(CurrencyFormatted(value * Number(itemPrice)));
		addProductToBasket(itemId, "#itemprice_" + itemId, value);
		recalculateBasketPrices();
		animatePrice();
	});

	$(".emptyBasket").click(function () {
		if (confirm("Eemaldan kõik tooted?")) {
			eraseCookie();
			window.location.reload();
		}
	});

	$(".product_amount").focus(function () { this.select(); });


	var so = getCookie("MoodneValgustus.SortOrder");
	if (so != "")
		$("#sort_order").val(so);

	$("#sort_order").change(function () {
		var value = $("#sort_order").val();
		setCookie("MoodneValgustus.SortOrder", value, 30);
		window.location.reload();
	});

});

function animatePrice() {

	$(".basket").animate({ backgroundColor: '#EDEDED' }, animationSpeed, function() {
		$(".basket").animate({ backgroundColor: 'White' }, animationSpeed);
	});
	$(".basket_sum").animate({ color: 'Red' }, animationSpeed, function() {
		$(".basket_sum").animate({ color: '#4F6470' }, animationSpeed);
	});

}


function getSumInEuros(sum) {
	return (sum / euroRate);
}

function getSumInEek(sum) {
	return sum * euroRate;
}

function recalculateBasketPrices() {
	var sum = 0;
	$(".total_price").each(function () {
		var stringSum = $(this).html().replace(",", ".").replace(" ", "").replace("&nbsp;", "");		
		sum = sum + Number(stringSum);
	});
	
	$(".basket_sum").html(CurrencyFormatted(sum));
	$(".totalsumvalue").html("&euro;&nbsp;" + CurrencyFormatted(sum) + "<br />(" + CurrencyFormatted(getSumInEek(sum)) + " &nbsp;EEK)");

	var totalAmount = 0;
	$(".product_amount").each(function() {
		var amount = $(this).html();
		if (amount == "")
			amount = $(this).val();
		if (isNaN(amount) || amount == "")
			amount = 1;
		totalAmount = totalAmount + Number(amount);
	});
	$(".totalamountvalue").html(totalAmount);
}


function addProductToBasket(documentId, price, totalNumber) {

	var basketSum = Number($(".basket_sum").html().replace(",", ".").replace(" ", ""));
	var productPrice = Number($(price).html().replace("€", "").replace(",", ".").replace(" ", ""));
	if (totalNumber == null) {
		basketSum = basketSum + productPrice;
		$(".basket_sum").html(CurrencyFormatted(basketSum));
	}
	var cookieVal = getCookie("MoodneValgustus.basket");
	var arr = cookieVal.split("|");
	var count = 0;
	for (var i = 0; i < arr.length; i++) {
		if (arr[i].split(":")[0].trim() == documentId) {
			count = Number(arr[i].split(":")[1]);
			if (totalNumber != null)
				count = totalNumber;
			else count++;
			arr[i] = documentId.concat(":", count);
			break;
		}
	}

	if (count == 0)
		arr.push(documentId.concat(":1"));
	cookieVal = arr.join("|");

	setCookie("MoodneValgustus.basket", cookieVal, 3);
}


function removeProductFromBasket(documentId, price) {
	var basketSum = Number($(".basket_sum").html().replace(",", ".").replace(" ", ""));
	var productPrice = Number($(price).html().replace(",", ".").replace(" ", ""));
	basketSum = basketSum - productPrice;
	if (basketSum < 0) basketSum = 0;
	$(".basket_sum").html(CurrencyFormatted(basketSum));

	var cookieVal = getCookie("MoodneValgustus.basket");
	var arr = cookieVal.split("|");
	var count = 0;
	for (var i = 0; i < arr.length; i++) {
		if (arr[i].split(":")[0].trim() == documentId) {
			arr.splice(i, 1);
			break;
		}
	}

	cookieVal = arr.join("|");

	setCookie("MoodneValgustus.basket", cookieVal, 3);
}


function CurrencyFormatted(amount) {
	var i = parseFloat(amount);
	if (isNaN(i)) { i = 0.00; }
	var minus = '';
	if (i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if (s.indexOf('.') < 0) { s += '.00'; }
	if (s.indexOf('.') == (s.length - 2)) { s += '0'; }
	if (s.length > 6)
		s = s.substring(0, s.length - 6).concat('&nbsp;', s.substring(s.length - 6));
	s = minus.concat(s.replace('.', ','));
	return s;
}

function setCookie(c_name, value, expiredays) {
	var exdate = new Date();
	exdate.setDate(exdate.getDate() + expiredays);
	document.cookie = c_name + "=" + value +
((expiredays == null) ? "" : ";expires=" + exdate.toUTCString() + ";path=/");
}


function getCookie(c_name) {
	if (document.cookie.length > 0) {
		c_start = document.cookie.indexOf(c_name + "=");
		if (c_start != -1) {
			c_start = c_start + c_name.length + 1;
			c_end = document.cookie.indexOf(";", c_start);
			if (c_end == -1) c_end = document.cookie.length;
			return unescape(document.cookie.substring(c_start, c_end));
		}
	}
	return "";
}

function cookieHasProduct(productId) {
	var cookieVal = getCookie("MoodneValgustus.basket");
	var arr = cookieVal.split("|");
	for (var i = 0; i < arr.length; i++) {
		if (arr[i].split(":")[0].trim() == productId) {
			return true;
		}
	}
	return false;
}

function eraseCookie() {
	setCookie("MoodneValgustus.basket", "", -1);
}

