(function($){

	window.searchHandler = function(){

		var $this = $(this);
		location.href = '/mod/merchandise/search/' + $('search-text').val();
		return false

	}

	window.menuHandler = function(){

		var $this = $(this);

		if(!$this.hasClass('selected')){

			var $catalogueBlock = $('#catalogue-block');

			$('a',$catalogueBlock)
			.removeClass('selected');

			$('ul',$catalogueBlock)
			.slideUp();

			$(this)
			.addClass('selected')
			.next()
			.slideToggle();

		}

		return false

	}

	// Действия с корзиной
	window.actionCart = function(id, out, supply, mode){

		var posItemHandler = function(parent, id){ // Поиск номера позиции в корзине по ID

			var list = parent.get(0).childNodes;

			for(var i=0; i < list.length; i++){
				if(
					list[i].nodeType == 1 &&
					list[i].getAttribute('item-id') == id
				){
					return i
				}
			}

			return -1;

		};

		var sumItemHandler = function(parent){ // Общёт корзины

			var list = parent.get(0).childNodes;

			var sum = 0;

			for(var i=0; i < list.length; i++){
				if(
					list[i].nodeType == 1 &&
					list[i].getAttribute('item-total')
				){
					sum += parseFloat(list[i].getAttribute('item-total'));
				}
			}

			return sum

		};

		supply = supply || '';

		$('#cart-block').show();

		$.ajax({
			type: 'GET',
			url: out ? ('/?mod=merchandise&outcart=' + id + '&supply=' + supply) : ('/?mod=merchandise&tocart=' + id),
			cache: false,
			//dataType: 'xml',
			success: function(xml){

				var $xmlItem = $(xml).find('item');
				var $cartList = $('#cart-list');

				if($xmlItem.length){ // Позиция изменена

					// Создаём позицию

					var itemPos = posItemHandler($cartList,id); // Поиск в корзине

					var oldRow = itemPos >= 0 ? $cartList.get(0).deleteRow(itemPos) : undefined; // Старая позиция
					var newRow = $cartList.get(0).insertRow(itemPos); // Новая позиция

					$(newRow).attr({
						'item-id': $xmlItem.attr('id'),
						'item-total': $xmlItem.attr('total'),
						'item-supply': $xmlItem.attr('supply')
					});

					$(document.createElement('a'))
						.text($xmlItem.attr('title'))
						.attr('href','/mod/merchandise/item/' + $xmlItem.attr('id'))
						.appendTo($(newRow.insertCell(-1)).addClass('title'));

					$(newRow.insertCell(-1))
						.text($xmlItem.attr('supply') + ' шт.')
						.addClass('price');

					$(newRow.insertCell(-1)).text(formatMoney($xmlItem.attr('price'),2,',',' ') + ' р.');

					var deleteHandler = function(event){ // Функция удаления из корзины

						actionCart(arguments.callee.id, 1, 0, arguments.callee.mode);
						return false;

					};

					deleteHandler.id = $xmlItem.attr('id'); // Фича с передачей параметров

					if(mode){ // Режим предзаказа

						deleteHandler.mode = 1;

						$(document.createElement('a'))
							.attr('href' ,'#')
							.click(deleteHandler)
							.text('удалить')
							.prepend(
								$(document.createElement('img'))
									.attr('src','/usr/img/delete-reserve.png')
							)
							.appendTo($(newRow.insertCell(-1)).addClass('delete'))

					}
					else{ // Корзина

						$(document.createElement('a'))
							.attr('href' ,'#')
							.click(deleteHandler)
							.append(
								$(document.createElement('img'))
									.attr('src','/usr/img/delete.png')
							)
							.appendTo($(newRow.insertCell(-1)))

					}

					$(newRow)
						.find('td')
						.fadeTo(400,0.3)
						.fadeTo(400,1);

				}
				else{ // Позиция отсутствует

					var itemPos = posItemHandler($cartList,id); // Поиск в корзине
					$cartList.get(0).deleteRow(itemPos); // Удаление из корзины

				}

				if($('*',$cartList).length){ // Корзина не пуста

					$('#cart-result').text(formatMoney(sumItemHandler($cartList),2,',',' ') + ' р.'); // Общёт корзины

					// Прячем полоску снизу
					$('tr',$cartList)
						.removeClass('last')
						.last()
						.addClass('last')

				}
				else{

					$('#cart-block').hide(); // Прячем корзину
					if(mode) location.reload() // Режим предзаказа

				}

			}

		});

		return false;

	}

	$(document).ready(function(){ // DOM построен

		$('#search-form').submit(searchHandler);
		$('#search-button').click(searchHandler);

		// Счётчик liveinternet

		var src = 'http://counter.yadro.ru/hit?t26.10;r'+
		escape(document.referrer)+((typeof(screen)=='undefined')?'':
		';s'+screen.width+'*'+screen.height+'*'+(screen.colorDepth?
		screen.colorDepth:screen.pixelDepth))+';u'+escape(document.URL)+
		';'+Math.random();

		$('#counter').attr({
			'src':src,
			'border':'0px',
			'title':'LiveInternet: показано число посетителей за сегодня',
			'width':'88px',
			'height':'15px'
		})
		.wrap(
			$(document.createElement('a'))
			.attr('href','http://www.liveinternet.ru/?' + location.hostname)
		);

		// Быстрый переход по страницам каталога

		if($('#previous-page').length){ // Переход Ctrl влево
			$(document).keydown(function(event){
				if(event.ctrlKey && event.keyCode == 37) location = $('#previous-page').attr('href')
			})
		}

		if($('next-page').length){ // Переход Ctrl вправо
			$(document).keydown(function(event){
				if(event.ctrlKey && event.keyCode == 39)  location = $('#next-page').attr('href')
			})
		}

		//

		$('#catalogue-block > li:has(ul) > a')
		.click(menuHandler);

	});

})(jQuery);

function formatMoney(n,c,d,t){
	var c = isNaN(c = Math.abs(c)) ? 2 : c, d = d == undefined ? "," : d, t = t == undefined ? "." : t, s = n < 0 ? "-" : "", i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
	return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
};
