function ToMoney(val)
{

    val = "" + val;
	var num = parseFloat(val.replace(",", "."))
	var sign = "";
	if(isNaN(num) || num==0)
		{
			num = "0,00"
		}
	else
		{
			
			num = Math.round(num * 100);
			if(num<0) sign = "-";
			num = "" + Math.abs(num)

			num = "000".substr(0, 3-num.length) + num;
			num = sign + num.substr(0, num.length-2) + "," + num.substr(num.length-2);
		}
	return num;
}

function parseBasket(str)
{

	var arr = str.split(";");
	var basket = new Array();
	for (var i=0; i<arr.length-1; i++)
	{
		var item = new Array();
		var tmp = arr[i].split("=");
		basket.push({ id: tmp[0], quantity: tmp[1], price: tmp[2] });
	}
	return basket;
}

function composeBasket(parsedBasket) {
	var resCookie = '';
	for (var i = 0; i < parsedBasket.length; i++) {
		resCookie += [parsedBasket[i].id, parsedBasket[i].quantity, parsedBasket[i].price].join('=') + ';';
	}
	return resCookie;
}

function BasketItemToString(item)
{	
		var str = "";
	for(var key in item)
	{
	if(str!="") str+="=";
	str+=key+"="+item[key];
	}
	
	return str;
}

function getBasketCookie() {
	return getCookie('basket');
}

function setBasketCookie(val) {
	setCookie('basket', val);
}

function addItem(id, quantity, price){
	if (CookiesEnabled){
		quantity = parseInt(quantity);
		if (quantity <= 0 || isNaN(quantity) || quantity!=Math.round(quantity)){
			alert('Неправильно задано количество.');
			return;
		} else {
			var basket = getCookie("basket");
			if (basket){
				var basketItems=basket.split(";");
				var flag=false;

				for (var i=0; i<basketItems.length-1; i++){
					if (basketItems[i]){
						var Item=basketItems[i].split("=");
						if (Item[0]==id){
							var count=parseInt(Item[1]);

							basket=basket.replace(id + "=" + count + "=" + price, id + "=" + (count+quantity) + "=" + price);
							flag=true;
							break;
						}
					}
				}

				if (!flag){
					basket+=id+'='+quantity+"="+price+';';
				}

			} else {
				basket=id+'='+quantity+"="+price+';';
			}
			setCookie('basket', basket, '');
			alert('Товар добавлен в корзину.');
			location.reload();
		}
	}
}

function delItem(id){
	if (CookiesEnabled){
    	if (confirm('Вы уверены, что хотите удалить этот товар из корзины?')){
    		var basket = getCookie("basket");
    		if (basket){
    			var basketItems=basket.split(";");

    			for (var i=0; i<basketItems.length-1; i++){
    				if (basketItems[i]){
    					Item=basketItems[i].split("=");
    					if (Item[0]==id){
    						basket=basket.replace(id + "=" + Item[1] + "=" + Item[2] + ";", "");
    						break;
    					}
    				}
    			}
    			setCookie('basket', basket, '');
    		}
    		alert('Товар удален из корзины');
    		location.reload();
    	}
	}
}

function ChangeQuantity(id, quantity){
	if (CookiesEnabled){
		var parsed = parseBasket(getBasketCookie());
		for (var i = 0; i < parsed.length; i++) {
			if (parsed[i].id == id) {
				var q = parseInt(quantity);
				if (!isNaN(q)) {
					var resq = parseInt(parsed[i].quantity) + q;
					parsed[i].quantity = resq;
					setBasketCookie(composeBasket(parsed));
					ShowBasketInfo();
					updateBasketSubtotal(id, parseFloat(parsed[i].quantity) * parseFloat(parsed[i].price.replace(',', '.')));
					return parsed[i].quantity;
				}
			}
		}
	}
}

function ShowBasketInfo() {
	var basket = getCookie("basket");
	var q = 0;
	var s = 0;
	if (basket) {
		var basketItems=parseBasket(basket);
		for (var i = 0; i < basketItems.length; i++) {
			var qi = parseInt(basketItems[i].quantity);
			q += qi;
			s += qi * parseFloat(basketItems[i].price);
		}
	
		$('#basketLink').html(['всего товаров: ', q].join(''));
		//getobj("bsum").value = ToMoney(s);
	}
}

function updateBasketSubtotal(itemid, amount) {
	$('tr[itemid="' + itemid + '"]').find('.subtotal').html(ToMoney(amount) + '&nbsp;р.');
	var total = 0;
	var parsed = parseBasket(getBasketCookie());
	for (var i = 0; i < parsed.length; i++) {
		total += parseFloat(parsed[i].quantity) * parseFloat(parsed[i].price.replace(',', '.'));
	}
	$('.total').html(ToMoney(total) + '&nbsp;р.');
}

function clearBasket(silent){
	if (CookiesEnabled){
    	if (!silent)
    	{
    		if (confirm('Вы уверены, что хотите очистить корзину?')){
    			delCookie('basket');
				location.reload();		// в silent mode очистка без релоада!
    		}
    	} else {
    		delCookie('basket');
    		$('#basketLink').html('нет выбранных товаров');
    	}
	}
}

function Order(url){
	if (CookiesEnabled){
    	if ((!getCookie("basket")) || (getCookie("basket")=='')){
    		alert('Вы ничего не выбрали');
    	} else {
    		location.href = url;
    	}
	}
}

function isEmail(strEmail) {
	var letters="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-";
	var numbers="0123456789";
	var name="";
	var server="";
	var strings=new Array();

	if (strEmail=="") {
		alert("Введите E-mail, пожалуйста");
		return false;
	}

	strings=strEmail.split("@");
	if (strings.length==1) {
		alert("E-Mail должен содержать символ @");
		return false;
	} else if (strings.length==2) {
		name=strings[0];
		server=strings[1];
	} else {
		alert("E-Mail должен содержать только один символ @");
		return false;
	}
	
	if (!isValid(name,letters+numbers+"._-")) {
		alert("Неверный E-Mail адрес");
		return false;
	}
	
	strings=server.split(".");
	if (strings.length<2) {
		alert("Имя домена второго уровня должно присутствовать в E-Mail");
		return false;
	}

	for (i=0;i<strings.length;i++) {
		if (!isValid(strings[i],letters+numbers)) {
			alert("Неверные символы в адресе E-Mail");
			return false;
		}
	}
	
	return true;
}

function isValid(what,chars) {
	if (what=="") {
		return false;
	}
	bool1=false;
	for (count1=0; (count1<what.length)&&(!bool1);count1++) {
		bool2=false;
		for (count2=0; (count2<chars.length)&&(!bool2);count2++) {
			if (what.charCodeAt(count1)==chars.charCodeAt(count2)) {
				bool2=true;
			}
		}
		if (!bool2) {
			bool1=true;
		}
	}
	return !bool1;
}

function CookiesEnabled(){
	if (!document.cookie){
		aleft('Для совершения операций в интернет-магазине необходимо разрешить использование cookie в Вашем браузере.');
		return false;
	} else {
		return true;
	}
}

