window.GET = function(){
    var array = window.location.search.substring(1).split(/&/);
        /* URLs can be like either
        "sample.html?test1=hi&test2=bye" or
        "sample.html?test1=hi;test2=bye" */
    window._GET = {};
    for(var i = 0; i < array.length; i++){
        var assign = array[i].indexOf('=');
        if(assign == -1){
            _GET[array[i]] = true;//if no value, treat as boolean
        }else{
            _GET[array[i].substring(0, assign)] = array[i].substring(assign + 1);
        }
    }
}
GET();

function is_array(input){
	return typeof(input)=='object'&&(input instanceof Array);
}

function setAjaxLinksFunctional() {
	$(".ajax_link").unbind("click").click(function(){
		ajax_load($(this).attr('href'), $(this).attr('rel'), $(this).attr('params'));
		return false;
	});
}

function AcceptFilter()
{
	if(typeof Filter_ID == undefined)
		Filter_ID = '';

	var url = '/bitrix/tools/ajax_catalog_filter.php?';
	if(typeof arguments[0] == 'undefined') {
		url += '&price_limit_min=' + ePriceLimitMin.val();
		url += '&price_limit_max=' + ePriceLimitMax.val();
		url += '&s='+Filter_s;
	} else {
		Filter_novinka = false;
	}

	if(Filter_novinka)
		url += '&novinka=Y';

	if(Filter_hotprice)
		url += '&hotprice=Y';

	if(Filter_top)
		url += '&top=Y';

	if(Filter_action)
		url += '&action=Y';

	url += '&ID='+Filter_ID;

	if(typeof _GET.page !== undefined)
		url += "&page="+parseInt(_GET.page);

	var PROPERTY = {};
	$('DIV.filters INPUT:checkbox:checked').each(function(){
		if(typeof PROPERTY[$(this).attr('name')] == 'undefined')
			PROPERTY[$(this).attr('name')] = [];
		PROPERTY[$(this).attr('name')].push($(this).val());
	});

	/*
	 * Получаем отмеченных производителей
	 */
	Filter_manufacturers = '';
	$('#manufacturer input:checkbox:enabled:checked').each(function(){
		Filter_manufacturers += $(this).val()+',';
	});
	if(Filter_manufacturers.substr(-1, 1) == ',')
	{
		Filter_manufacturers = Filter_manufacturers.substr(0, Filter_manufacturers.length-1);
	}
	
	url += '&manufacturers='+Filter_manufacturers;
	Filter_manufacturers = Filter_manufacturers.split(',');

	window.location.hash = ePriceLimitMin.val()+'/'+ePriceLimitMax.val()+'/'+Filter_s+'/'+Filter_ID;

	var ajax_data = $.extend({ brands: Filter_manufacturers }, PROPERTY);

	$.ajax({
		url:  url,
		type: 'POST',
		data: (ajax_data),
		success: function(response, code){
			eCatalogItemsContainer.html(response).css({
				background: 'none',
				height: 'auto',
			});
			CheckAllComps(); // из файла "sravnenie.js"
			setAjaxLinksFunctional();
		},
		error:  function(xhr, str){
			eCatalogItemsContainer.css({
				background: 'none',
				height: 'auto',
			}).html('Возникла ошибка: ' + xhr.responseCode);
		},
		beforeSend: function(){
			eCatalogItemsContainer.css({
				background: 'url('+AjaxLoadingImageURL+') no-repeat 50% 50%',
				height: '50px',
			}).empty();
			//$('html, body').animate({scrollTop:eCatalogItemsContainer.parent().offset().top},'slow');
		},
		complete: function(){
			//$('#something').hide();
		}
	});
}

function ResetFilter()
{
	$('DIV.filters :checkbox').attr("checked", "");
	$('.l_col .round A').removeClass('s_act').removeClass('s_act2').removeClass('pr_act');
	$.ajax({
		url:  '/bitrix/tools/ajax_catalog_filter.php?RESET=Y',
		type: 'GET',
		success: function(response, code){
			if(response == 'reset_success')
				AcceptFilter({reset:true});
			else {
				alert('Помилка при скиданні фільтрів. Зверніться до адміністратора сайту.');
				alert('Код помилки:\n'+response);
			}
		}
	});
}

function getSectionFilters(user_options)
{
	var options = {
		container: '#catalog_filters', // jquery селектор; в этот элемент будут добавляться фильтры.
		url: '/bitrix/tools/gregory_furletov/get_section_filters.php', // путь к скрипту для получения фильтров.
		iblock_id: ((typeof _GET.IBLOCK_ID != 'undefined') ? parseInt(_GET.IBLOCK_ID) : null),
		iblock_section_id: ((typeof _GET.ID != 'undefined') ? parseInt(_GET.ID) : ((typeof _GET.SECTION_ID != 'undefined') ? parseInt(_GET.SECTION_ID) : null))
	};

	if(typeof options == 'object')
		options = $.extend(options, user_options);

	if(options.iblock_id <= 0)
	{
		//alert('Неправильно передан параметр "iblock_id" для функции получения фильтров getSectionFilters().');
		return false;
	}
	if(options.iblock_section_id <= 0)
	{
		//alert('Неправильно передан параметр "iblock_section_id" для функции получения фильтров getSectionFilters().');
		return false;
	}

	$.ajax({
		url:  options.url,
		type: 'get',
		data: ({
			'IBLOCK_ID': options.iblock_id,
			'IBLOCK_SECTION_ID': options.iblock_section_id
		}),
		success: function(response, code)
		{
			var data = parseJSON(response);
			if(data)
			{
				$.each(data, function(index, filter){
					if(filter.PROPERTY_TYPE == 'L' && is_array(filter.VALUES))
					{
						$('<p />').append( $('<big />').html(filter.NAME+':') ).appendTo($(options.container));
						var eValuesContainer = $('<div />').addClass('filters').appendTo($(options.container));
						$.each(filter.VALUES, function(index, value){
							var def_attr = {
								type: 'checkbox',
								name:'PROPERTY['+filter.ID+']',
								id: 'filter_'+filter.ID+'_'+value.ID,
								value: value.ID
							};
							var filter_container = $('<p />');
							var field = $('<input />').attr(def_attr);
							if(value.DISABLED) field.attr("disabled","disabled");
							field.click(function(){
								AcceptFilter();
							});
							field.appendTo(filter_container);
							var flabel = $('<label />').attr({'for':'filter_'+filter.ID+'_'+value.ID});
							if(!value.DISABLED) flabel.css({cursor:'pointer'}); else flabel.css({color:'#AFAFAF','text-decoration':'none'});
							flabel.html(value.VALUE).appendTo(filter_container);
							filter_container.appendTo(eValuesContainer);
						});
					}
				});
			}
		},
		error:  function(xhr, str){
			alert('При получении данных для фильтров по технологии AJAX возникла ошибка. Обратитесь к администратору.');
		}
	});

	return true;
}

function showAvail(productID)
{
	availProductID = 0;
	if(productID!='')
		availProductID = parseInt(productID);
	//if(availProductID > 0){
		$.colorbox({
			width: '300px',
			transition:"fade",
			html:$('#availForm').html(),
			onComplete: function(){
				$('#sendAvailButton').unbind('click').click(sendAvail);
			},
			onClosed: function(){ availProductID = 0; }
		});
	//}
	return false;
}

function sendAvail()
{
	if($('.availForm input[name="username"]').val() == '' || $('.availForm input[name="phone"]').val() == '') {
		alert('Заповніть, будь ласка, всі обов\'язкові поля. (відмічені зірочкою)')
	} else {
		//availProductID = parseInt(availProductID);
		//if(availProductID > 0){
			var jqxhr = $.ajax({
				url: "/site-click/ajax_send_avail.php?id="+availProductID,
				data:({
					username: $('.availForm input[name="username"]').val(),
					phone: $('.availForm input[name="phone"]').val(),
					email: $('.availForm input[name="email"]').val(),
					message: $('.availForm textarea[name="message"]').val()
				})
			})
				.success(function() {  })
				.error(function(jqXHR, textStatus, errorThrown) { alert($.toJSON(jqXHR)); })
				.complete(function(jqXHR, textStatus) {
					if(jqXHR.responseText == 'complete'){
						$.colorbox.close();
						alert('Найближчим часом ми з Вами зв\'яжемось');
					} else
						alert('В чому-сь проблема...');
				});
		//}
	}
	return false;
}

function deleteItemFromCart(id) {
	var self = $('.ajax-cart-delete-item-'+id);
	if(confirm('Підтвердіть видалення')){
		var jqxhr = $.ajax({
			url: self.attr('href')
		})
			.error(function(jqXHR, textStatus, errorThrown) { alert($.toJSON(jqXHR)); })
			.complete(function(jqXHR, textStatus) {
				self.parents('tr').remove();
				$.colorbox.resize();
			});
	}
	return true;
}

function showCartForm()
{
	var colorbox_params = {
		width: '800px',
		//inline:true,
		href: '/site-click/ajax_show_cart.php',
		onComplete: function(){
			$.colorbox.resize();
			$('#customCartRefresh').unbind('click').click(function(){
				saveCount({
					jq_text_fields: $('#colorbox form input[type=text]'),
					onComplete: function(responceText){
						if(responceText == 'ok') {
							updatePriceInCart();
							showCartForm();
						} else
							alert('Виникла помилка');
					}
				});
				return false;
			});
		},
		onClosed: function(){  }
	};
	$.colorbox(colorbox_params);
}

$(function() {

	$('.breadcrumb-navigation a:last').click(function(){
		document.location.reload();
		return false;
	});

	/*
	 * Инициализация нужных элементов
	 */

	 /* ID продукта, для которого пользователь нажал "Уточнити наявність" */
		window.availProductID = 0;

	/* ограничение цен для слайдера */
		window.numPriceLimitMin  = 0;
		if(window.numPriceLimitMax == undefined) window.numPriceLimitMax  = 10000;

	/* Минимальный интервал при перетаскивании кнопок слайдера для лимита цены */
		window.numPriseLimitStep = 10;

	/* Начальные значения фильтров */
		window.Filter_s = 'price_desc';
		//window.Filter_novinka = false;
		window.Filter_ID = _GET['ID'];
		window.Filter_manufacturers = '';

	/* Путь к анимационной картинке ajax-загрузки */
		window.AjaxLoadingImageURL = '/site-click/media/ajax-loader.gif';

	/* элемент - Контейнер выводимой продукции */
		window.eCatalogItemsContainer = $("#CatalogItemsContainer");

	/* элемент - контейнер для слайдера */
		window.eSlider = $("#slider-range");

	/* элемент - ссылка на "Застосувати фільтр" */
		window.eAcceptFilter = $('#acceptFilter');
	/* элемент - ссылка на "Онулити ціну" */
		window.eResetPriceFilter = $('#ResetPriceFilter');
	/* элемент - ссылка на "Скинути всі фільтри" */
		window.eResetAllFilters = $('#ResetAllFilters');

	/* элемент - поле ввода с ограничением минимальной цены */
		window.ePriceLimitMin = $('#PriceMinLimit');
	/* элемент - поле ввода с ограничением максимальной цены */
		window.ePriceLimitMax = $('#PriceMaxLimit');

	/*
	 * Заставляем работать фильтр
	 */
	getSectionFilters({iblock_id:8, container:'.catalog'});

	/* На все чекбоксы фильтра вешаем событие "onclick" */
	//$('.l_col :checkbox').click(AcceptFilter);

	/*
	 * Создаем слайдер из элемента
	 */
	
	
	window.valPriceLMin = 0
	window.valPriceLMax = 2;
	
	if (window.numPriceLimitMin){
		window.valPriceLMin = window.numPriceLimitMin;
	}
	if (window.valPriceLimitMin >= 1){
		window.valPriceLMin = window.valPriceLimitMin;
	}
	
	if (window.numPriceLimitMax){
		window.valPriceLMax = window.numPriceLimitMax;
	}
	
	if (window.valPriceLimitMax >= 1){
		window.valPriceLMax = window.valPriceLimitMax; 
	}
	
	
	//alert (valPriceLimitMax);
	
	eSlider.slider({
		range: true,
		min: numPriceLimitMin,
		max: numPriceLimitMax,
		values: [valPriceLMin, valPriceLMax],
		step: numPriseLimitStep,
		slide: function(event, ui) {
			ePriceLimitMin.val(ui.values[0]);
			ePriceLimitMax.val(ui.values[1]);
		},
		create: function() {
			eSlider.find('a.ui-slider-handle:first').addClass('ui-slider-handle-right');
		}
	});

	/*
	 * Устанавливаем значения по умолчанию для полей ввода лимита минимальной и максимальной цен
	 */
	ePriceLimitMin.val( eSlider.slider( "values", 0 ) );
	ePriceLimitMax.val( eSlider.slider( "values", 1 ) );
	
	
	

	/*
	 * Срабатывает для фильтра при нажатии на "Онулити ціну"
	 */
	eResetPriceFilter.click(function(){
		ePriceLimitMin.val(numPriceLimitMin);
		ePriceLimitMax.val(numPriceLimitMax);
		eSlider.slider('values',0, numPriceLimitMin);
		eSlider.slider('values',1, numPriceLimitMax);
		AcceptFilter();
		return false;
	});

	/*
	 * Срабатывает для фильтра при нажатии на "Застосувати"
	 */
	eAcceptFilter.click(function(){
		AcceptFilter();
		return false;
	});

	/*
	 * Срабатывает для фильтра при нажатии на "Скинути всі фільтри"
	 */
	eResetAllFilters.click(function(){
		ResetFilter();
		return false;
	});

});

