$().ready(function() {

	//если расскомментировать - почистит куки после перезагрузки
	//$.cookie('cart','', { expires: -1, path: '/' });

	var t = get_cart_from_cookies();
	show_cart(t);
	set_links(t);

	$('.remove').live("click", function(){
		var m = $(this).attr('id').match(/(\d+)/);
		t.splice(m[1],1);
		show_cart(t);
		set_links(t);
		return false;
	});

	$('.inc').live("click", function(){
		var m = $(this).attr('id').match(/(\d+)/);
		t[m[1]].count++;
		show_cart(t);
		return false;
	});

	$('.dec').live("click", function(){
		var m = $(this).attr('id').match(/(\d+)/);
		if(t[m[1]].count<=1){
			t.splice(m[1],1);
			show_cart(t);
			set_links(t);
			return false;
		}
		t[m[1]].count--;
		show_cart(t);
		return false;
	});

});

function set_links(t) {
	$("a.cart").map(function(indx, element){
		var price = $(element).attr('price');
		var header = $(element).attr('title');

		var cnt = t.length;  //получаем кол-во товаров в корзине

		//если товар уже есть в корзине, то отменить онклик и вывести ссылку на корзину
		for (var i = 0; i < t.length; i++) {
			if(t[i].header == header && t[i].price == price) {
				change_link_after_put(element);
				return;
			}
		}

		//Возврат кнопки "добавить"
		change_link_after_remove(element);

		//Назначить обработчик онклик
		$(element).click(function() {
			var price = $(this).attr('price');
			var header = $(this).attr('title');

			var cnt = t.length;	//получаем кол-во товаров в корзине

			//добавляем товар
			var item = new Object();
			item.header = header;
			item.price = price;
			item.count = 1;
			item.html = $(element).html;
			t[cnt] = item;
			show_cart(t);
			change_link_after_put(element);
			return false;
		});
	});
}

function change_link_after_put(element) {
	var txt = $(element).html();
	$(element).html('<img border=0 src="/pic/yes.gif">Оформить');
	$(element).css('color','#008000');
	$(element).attr('txt',txt);
	$(element).unbind('click');
}

function change_link_after_remove(element) {
	var txt = $(element).attr('txt');
	$(element).html(txt);
	$(element).css('color','#ffa200');
}

function show_cart(t) {
	if(!t || t.length == 0) {
		$.cookie('cart','', { expires: -1, path: '/' });
		$('.mycart').hide();
		return false;
	}

	//вычисляем общую цену выбранных товаров
	var px = 0;
	for (var i = 0; i < t.length; i++) {
		p = parseInt(t[i].price)*parseInt(t[i].count);
		if(p=='NaN') p = 0;
		px = px + p;
	}

	var msg = '<b>Сумма заказа: '+px+' руб.</b><br />';
	var msg2 = '<font size="+1"><a class="makeorder" href="/contact.htm#form">Оформить заказ</a></font>';
	//сохраняем куки и формируем вывод в корзину
	var msg1 = put_cart_to_cookies(t);
	$(".mycart").html(msg+msg1+msg2);
 	$('.mycart').show();
}

//Пишет в куки корзину товаров и возвращает список товаров для отображения
function put_cart_to_cookies(items) {
	var msg = '';
	var cook = '';
	if(!items || items.length == 0) return false;
	else {
		for (var i = 0; i < items.length; i++) {
			if(items[i].header != '') {
				msg = msg + '<a class="remove" id="remove-'+i+'" href="#"><img src="/Templates/i/i_del.gif" alt="Удалить" border="0" /></a> ' + items[i].header + ' — ' + items[i].price + 'р. '+'<a id="dec-'+i+'" class="dec" href="">-</a>&nbsp;'+items[i].count+'шт.&nbsp;<a id="inc-'+i+'" class="inc" href="">+</a><br />';
				cook = cook + items[i].header + '#' + items[i].price + '#' + items[i].count;
				if(i != items.length - 1) cook = cook + '%';
			}
		}
		$.cookie('cart', cook, { expires: 30, path: '/' });
	}
	return msg;
}


//в куках хранятся записи в виде 'name 1||123%name 2||456'
//функция разделяет имена и цены и возвращает массив объектов
// items[0].header,items[0].price, items[1].header,items[1].price  и т.п.
function get_cart_from_cookies() {
   var items = new Array();
   var cart = $.cookie('cart');
   if(cart) {
   	var ss = cart.split("%");

   	for (var i = 0; i < ss.length; i++) {
       		// Разделение пар имя-цена.
       		var m = ss[i].split("#");
       		var item = new Object();
       		item.header = m[0];
       		item.price = m[1];
       		item.count = m[2];
       		items[i]=item;
    	}
    }
   return items;
}

