$(document).ready(function()
{      
    $(".drop-tools a").click(function(){
        $(".drop-inner").slideToggle("slow");
        return false;
    });
        
    // Radio & Checkbox
    $(".checkboxclass").click(function(){
        if($(this).is(":checked")){
            $(this).next("label").addClass("labelselected");
			$(this).attr('checked', true);
        }else{
            $(this).next("label").removeClass("labelselected");
			$(this).attr('checked', false);
        }
    });
    
    $(".radioclass").click(function(){
        if($(this).is(":checked")){
            $(".radioselected:not(:checked)").removeClass("radioselected");
            $(this).next("label").addClass("radioselected");
			$(this).attr('checked', true);
        }
		else{
			$(this).attr('checked', false);
		}
    });

	// Заполнение примера поисковой строки
	$('.search_example').click(function(){
		$('#search_text_1').attr('value', $(this).text());
		$('#search_text_2').attr('value', $(this).text());
    });	
		
    // Блоки спец. предложений
    $('.top-box .tabs').delegate('li:not(.act)', 'click', function() {
      $(this).addClass('act').siblings().removeClass('act')
      .parents('div.top-box').find('div.bbox').hide().eq($(this).index()).fadeIn(150);
      return false;
    });
		
	$('.category-list .tabs').delegate('li:not(.act)', 'click', function() {
      $(this).addClass('act').siblings().removeClass('act')
      .parents('div.category-list').find('div.bbox').hide().eq($(this).index()).fadeIn(150);
      return false;
    });

	// Расширенный поиск - показ
	$('#label11_0').click(function(){
		$('#search_text_2').attr('value', $('#search_text_1').attr('value'));
		$('.search-box2').hide();
		$(".search-box2-act").show();
		return false;
	});
	// Расширенный поиск - скрытие
	$('#label11_1').click(function(){
		$('#search_text_1').attr('value', $('#search_text_2').attr('value'));
		$('.search-box2').show();
		$(".search-box2-act").hide();
		return false;
	});		
		
		// Левое меню - акардион
		$(".accordion .menu-title").click(function(){
			$(this).next("div.menu-drop").slideToggle("slow")
			.siblings("div.menu-drop:visible").slideUp("slow");
			$(this).toggleClass("active");
			$(this).siblings(".menu-title").removeClass("active");
		});

		// Левое меню - переход между срезами
		$(".lbox .tabs li").click(function(){
			$(this).addClass('act');
			$(this).siblings("li").removeClass("act");
			var accordion = $(this).children('a').attr('rel');
			$('#'+accordion).css('display', 'block');
			$('#'+accordion).siblings('div.accordion').css('display', 'none');
		});	
		
		//Скрытие строки с товаром в корзине
		$(".basket-list .close").click(function(){
			$(this).parents(".basket-list tr").animate({ opacity: 'hide' }, "slow");
			return false;
		});

		// Мини галлерея на странице товара
		$(".open-i").click(function(){
			$("#large img").hide().attr({"src": $(this).attr("href"), "title": $("img", this).attr("title")});
			$(this).toggleClass("active");
			$(this).siblings().removeClass("active");
			$("#large>a").attr({"rel": $(this).attr("rel")});
			return false;
		});
		$("#large img").load(function(){$("#large img:hidden").fadeIn("slow")});

		$("#large>a").click(function(){
			$("#"+$(this).attr("rel")).click();
			return false;
		});

	// Настройки лайтбокса
	$("a.lightbox").lightBox({
		 overlayBgColor: '#000',
		 overlayOpacity: 0.6,
		 imageLoading: '/images/lightbox-ico-loading.gif',
		 imageBtnClose: '/images/lightbox-btn-close.gif',
		 imageBtnPrev: '/images/lightbox-btn-prev.gif',
		 imageBtnNext: '/images/lightbox-btn-next.gif',
		 containerResizeSpeed: 350,
		 txtImage: 'Изображение',
		 txtOf: 'из'
	});

	$("div.formItem .arrowUp")
		.mousedown(function(){
			elCount = $(this).parents('div.formItem').find('.count_current');
			stockCount = $(this).parents('div.formItem').find('.stock');
			var count_val = parseInt(elCount.attr('value'));
			var stock_val = parseInt(stockCount.attr('value'));
			count_val++;
			if (count_val > 0 && count_val <= stock_val)
				$(elCount).attr('value', count_val);
			else if (count_val > stock_val)
				$(elCount).attr('value', stock_val);
			else
				$(elCount).attr('value', 1);
			
			basketItemsUpdate();
			return false;
	})
		
	$("div.formItem .arrowDown")
	  .mousedown(function(){
			elCount = $(this).parents('div.formItem').find('.count_current');
			var count_val = parseInt(elCount.attr('value'));
			count_val--;
			if (count_val > 0)
				$(elCount).attr('value', count_val);
			else
				$(elCount).attr('value', 1);

			basketItemsUpdate();
			return false;
	})

	$("div.formItem .count_current")
		.keyup(function(){
			elCount = $(this);
			stockCount = $(this).parents('div.formItem').find('.stock');
			var count_val = parseInt(elCount.attr('value'));
			var stock_val = parseInt(stockCount.attr('value'));
			if (count_val > 0 && count_val <= stock_val)
				$(elCount).attr('value', count_val);
			else if (count_val > stock_val)
				$(elCount).attr('value', stock_val);
			else
				$(elCount).attr('value', 1);
			
			basketItemsUpdate();
			return false;
	})

	showBasketAdded();
	basketItemsUpdate();
	showBasketHeader();
});

// Добавление в корзину - уведомление аля вконтакте
function basketItemAdd(id, name, image)
{
	var limit = '';

	// Получаем количество добавляемого товара
	var count_current = parseInt($('#count_current'+id).attr('value'));
	// Получаем количество уже добавленного товара
	var count = getCount(id);
	// Получаем количество товара на складе
	var count_stock = parseInt($('#stock'+id).attr('value'));
	
	if(isNaN(count))
		count = 0;

	// Складываем количество добавляемого и добавленного товаров
	var count_full = count_current+count;
	// Если это количество больше, чем на складе - ограничиваем добавление
	if (count_full > count_stock)
	{
		count_current = parseInt(count_stock)-parseInt(count);
		count_full = parseInt(count_stock);
	}
	
	// Пошли печеньки... проверяем, есть ли печенька
	//alert(document.cookie);
	//deleteCookie('pembi_bask','/','');
	//alert(document.cookie);
	pembi_bask = getCookie('pembi_bask');
	//alert(pembi_bask);

	if (pembi_bask == false)
	{
		//alert('Пустые куки');
		setCookie('pembi_bask', id + '-' + count_full + '*', 2, '/');
	}
	else
	{
		var cookie_ar = new Array();
		var cookie_ar_one = new Array();
		var pembi_bask_new = '';
		var change = 0;
		
		// Пробегаем по всем куки, находим текущий товар - изменяем
		cookie_ar = pembi_bask.split('*');
		for (var i=0; i<cookie_ar.length; i++)
		{
			if (cookie_ar[i])
			{
				cookie_ar_one = cookie_ar[i].split('-');
				if (cookie_ar_one[0] == id)
				{
					cookie_ar_one[1] = parseInt(cookie_ar_one[1]) + count_current;
					change = 1;
				}
				pembi_bask_new += cookie_ar_one[0] + '-' + cookie_ar_one[1] + '*';
			}
		}

		// Если в куках не было текущего товара - добавляем
		if (!change)
			pembi_bask_new += id + '-' + count_full + '*';

		// Ставим новые куки
		setCookie('pembi_bask', pembi_bask_new, 7, '/');
	}
	pembi_bask = getCookie('pembi_bask');
	//alert(pembi_bask);

	// Выводим уведомление
	$.jnotify('Товар добавлен в корзину', 'Товар "' + name + '" добавлен в корзину в количестве  ' + count_current + ' шт.', image, {lifeTime: 3000});

	// Отображаем уведомление в листинге товаров
	showBasketAdded();
	// Обновляем блок корзины в шапке
	showBasketHeader();
}

// Функция проставления на странице количества уже добавленных товаров
function showBasketAdded()
{
	$('.in-basket').each(function(index, element){
		var count = getCount(element.id);
		if (count > 0)
		{
			$('#' + element.id).css('display', 'block');
			$('#' + element.id).html('уже в корзине <b>' + count + '</b> шт.');
		}
	});
}

// Функция заполнения нужных полей на странице корзины
function basketItemsUpdate()
{
	pembi_bask = getCookie('pembi_bask');
	if (pembi_bask != false)
	{
		$('.basket_product').each(function(index, element){
			var count = parseInt($('#count_current' + element.id).attr('value'));

			// Изменяем печеньки
			editBaskItem(element.id, count, 0);
			basketUpdate();
		});
	}
	/*else
	{
		// Обнуляем куки и скрываем элементы корзины
		deleteCookie('pembi_bask', '/');
		$('.total-box').css('display', 'none');
		$('#basket_empty').css('display', 'table-row');	
	}*/
}

// Функция обновления данных в корзине из кук
function basketUpdate()
{
	var total = 0;
	var total_cur = 0;

	pembi_bask = getCookie('pembi_bask');
	if (pembi_bask != false)
	{
		// Пробегаем по всем куки, находим текущий товар - изменяем
		cookie_ar = pembi_bask.split('*');
		for (var i=0; i<cookie_ar.length; i++)
		{
			if (cookie_ar[i])
			{
				cookie_ar_one = cookie_ar[i].split('-');
				total_cur = $('#price' + cookie_ar_one[0]).attr('value').replace(',', '.');
				total_cur = Math.round(parseFloat(total_cur)*100)/100*parseInt(cookie_ar_one[1]);
				total += total_cur;
				$('#itogo' + cookie_ar_one[0]).html(total_cur.toFixed(2));
			}
		}
		$('.total').html(total.toFixed(2));
	}
}

// Функция удаления/изменения позиций в корзине (в куках)
function editBaskItem(id, count, del)
{
	var pembi_bask_new = '';

	pembi_bask = getCookie('pembi_bask');
	if (pembi_bask != false)
	{
		// Пробегаем по всем куки, находим текущий товар - изменяем
		cookie_ar = pembi_bask.split('*');
		for (var i=0; i<cookie_ar.length; i++)
		{
			if (cookie_ar[i])
			{
				cookie_ar_one = cookie_ar[i].split('-');
				if (cookie_ar_one[0] == id)
				{
					if (del)
						continue;
					cookie_ar_one[1] = count;					
				}

				pembi_bask_new += cookie_ar_one[0] + '-' + cookie_ar_one[1] + '*';
			}
		}
		// Ставим новые куки
		if (pembi_bask_new)
			setCookie('pembi_bask', pembi_bask_new, 7, '/');
		else
		{
			// Обнуляем куки и скрываем элементы корзины
			deleteCookie('pembi_bask', '/');
			$('.total-box').css('display', 'none');
			$('.order-box').css('display', 'none');
			$('#basket_empty').css('display', 'table-row');			
		}

		// Если удаление - обновляем корзину
		if (del)
			basketUpdate();
		return 0;
	}
	else
	{
		return 0;
	}
}

// Функция обновления корзины в шапке
function showBasketHeader()
{
	$.ajax({
		url:	 '/script/proccess.php',
		type:	 'GET',
		success: function(response){
			var exploded = response.split('-');
			if (response)
			{
				$('#basket_count').html(exploded[0]);
				$('#basket_ptice').html('<b>' + parseFloat(exploded[1]).toFixed(2) + ' руб.<b>');
			}
			else
			{
				$('#basket_count').html('корзина пуста');
				$('#basket_ptice').html('');
			}
		},
		error:  function(xhr, str){
			alert('Возникла ошибка: ' + xhr.responseCode);
		}
	});
}

// Функция обновления капчи на странице оформления заказа
function code_reload(image_elem)
{
	// Генерируем уникальное значение
	var date_obj = new Date();
	var uid = date_obj.getTime();

	$.ajax({
		url:	 '/kcaptcha/kcaptcha_img.php',
		type:	 'GET',
		success: function(response){
			if (response)
				document.getElementById(image_elem).src = '/kcaptcha/kcaptcha_img.php?id=' + uid;
		},
		error:  function(xhr, str){
			alert('Возникла ошибка: ' + xhr.responseCode);
		}
	});
}

// Функция получения текущего количества одного товара из кук
function getCount(id)
{
	pembi_bask = getCookie('pembi_bask');
	if (pembi_bask != false)
	{
		// Пробегаем по всем куки, находим текущий товар - изменяем
		cookie_ar = pembi_bask.split('*');
		for (var i=0; i<cookie_ar.length; i++)
		{
			if (cookie_ar[i])
			{
				cookie_ar_one = cookie_ar[i].split('-');
				if (cookie_ar_one[0] == id)
					return parseInt(cookie_ar_one[1]);
			}
		}
		return 0;
	}
	else
	{
		return 0;
	}
}

// Валидация формы заказа
function checkForm(form)
{
	var reg_email = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,4}))$/
	var reg_phone = /^[-+0-9]+$/;	

	// Проверяем поля на заполненность
	if (form.name.value == '' || 
		form.email.value == '' || 
		form.phone.value == '' || 
		form.capcha.value == '')
	{
		set_message('Заполните все обязательные поля', 'error-message')
		return false;
	}

	// Проверяем email на корректность
	if (!form.email.value.match(reg_email))
	{
		set_message('Введите корректный e-mail адрес', 'error-message')
		return false;
	}

	// Проверяем телефон на корректность
	if (!form.phone.value.match(reg_phone))
	{
		set_message('Телефон может содержать только цифры и символы +,-', 'error-message')
		return false;
	}
	
	// Дошли до сюда - значит все хорошо - сабмитим форму
	form.submit();
	return true;
}

// Функция установки сообщения пользователю в форме заказа
function set_message(message, className)
{
	var backgroundColor = '';
	var border = '';
	var display = 'block';
	var message_div = document.getElementById('message');

	message_div.className = className;
	
	// отображаем форматированный блок с сообщением
	message_div.innerHTML = message;
	message_div.style.backgroundColor = backgroundColor;
	message_div.style.border = border;
	message_div.style.display = display;
}

//deleteCookie('pembi_bask','/','');

/* * *
	Валидация формы поиска
* * */
function check_search_form(form)
{
	search_text = form.search_text.value;
	
	if (search_text == '' || search_text == 'найти...')
	{
		alert('Не введен поисковой запрос');
		return false;
	}
	else if (search_text.length < 4)
	{
		alert('Поисковой запрос должен одержать минимум 4 символа');
		return false;
	}

	url = '/search/' + search_text.replace(/\//g, '*');
	// Если включен расширенный поиск - добавляем данные в URL
	if (form.extend_search.checked == true)
	{
		// Смотрим в каких категориях искать
		in_cat = new Array();
		t = 0; no_checked = false;
		for (var i=0; i<20; i++)
		{
			elem = document.getElementById('cat_' + i);
			if (elem)
			{
				if (elem.checked == true)
					in_cat[t++] = elem.value;
				else
					no_checked = true;
			}
		}
		
		// Если не выбрана ни одна категория для поиска
		if (!in_cat[0])
		{
			alert('Выберие хотя бы одну категорию для поиска');
			return false;
		}
		
		// Если фильтр по категориям все-таки стоит
		// а не просто выбраны все категории
		if (no_checked == true)
			url += '/in/' + in_cat.join('_');

		// Смотрим, где искать: в названии или в артикуле
		if (document.getElementById('radio10').checked == true)
			url += '/on/title';
		else
			url += '/on/article';
	}

	// Создаем нужный URL для поиска
	location.replace(url);
}

// Отменяем обработку формы поиска по нажатию enter
function no_submit_enter(form, event)
{
	event = event || window.event;
	// Если Enter - обработать
	if(event.keyCode == 13)
	{
		// Отменить действия по-умолчанию для Enter
		event.preventDefault ? event.preventDefault() : (event.returnValue=false);
		event.stopPropagation ? event.stopPropagation() : (event.cancelBubble = true);
		return false;
	}
}

/* Overriding Javascript's Alert Dialog */

/*function alert(msg) {
  $('#alert')
    .jqmShow()
    .find('div.jqmAlertContent')
      .html(msg);
}*/

$().ready(function() {
  $('#alert').jqm({overlay: 0, modal: true, trigger: false});
});
