﻿$(function(){
	$('form.forma div:first').each(function(){
		$(this).parent().attr('action', this.innerHTML);
	});

	var watermarkHandler = function(ctrlId, watermarkText) {
		// Если поддерживается html5, то ничего делать не надо
		if("placeholder" in document.createElement("input"))
			return;

		$("#" + ctrlId).addClass("watermark").val(watermarkText);

		$("#" + ctrlId).focus(function(){
			$(this).filter(function(){
				return $(this).val() == "" || $(this).val() == watermarkText
			}).removeClass("watermark").val("");
		});

		$("#" + ctrlId).blur(function(){
			$(this).filter(function(){
				return $(this).val() == ""
			}).addClass("watermark").val(watermarkText);
		});
	};

	var sliderHandler = function sliderHandler() {
		var minPriceLimit = parseInt($("#MinPriceLimit").val());
		var maxPriceLimit = parseInt($("#MaxPriceLimit").val());
		var minPriceValue = parseInt($("#MinPriceValue").val());
		var maxPriceValue = parseInt($("#MaxPriceValue").val());

		$("#slider-range").slider({
			range: true,
			min: minPriceLimit,
			max: maxPriceLimit,
			values: [minPriceValue, maxPriceValue],
			slide: function(event, ui){
				$("#lblMinPrice").html(ui.values[0]);
				$("#lblMaxPrice").html(ui.values[1]);
			},
			change: function(event, ui){
				if(ui.values[0] == 0 | ui.values[1] == 0)
					return;

				var regExp = /price\=[0-9]*\-[0-9]*;?/;
				var priceFilterString = "price=" + (ui.values[0] + "-" + ui.values[1]) + ";";

				var segments = document.location.href.split('/');

				if(segments.length == 6)
					document.location = document.location + "/1/10/1/" + priceFilterString;
				else
				{
					var path = decodeURIComponent(document.location.href).replace(regExp, "");

					if(path.indexOf(";") > -1)
						document.location = path + (path.lastIndexOf(";") < path.length - 1 ? ";" : "") + priceFilterString;
					else
						document.location = path + (path.lastIndexOf("/") < path.length - 1 ? "/" : "") + priceFilterString;
				}
			}
		});

		$("#lblMinPrice").html(minPriceValue);
		$("#lblMaxPrice").html(maxPriceValue);
	};

	var filterCollapsiablePanelHandler = function(){
		$('.filter-item-title').click(function(){
			var expanded = $(this).attr('expanded');
			var expanderPanel = $('.ulFilter[filter-group=' + $(this).attr('filter-group') + ']').toggle('fast');

			expanded = 1 - expanded;
			if(expanded == 1)
				$(this).removeClass('filter-item-title-collapsed').addClass('filter-item-title-expanded');
			else
				$(this).removeClass('filter-item-title-expanded').addClass('filter-item-title-collapsed');

			$(this).attr('expanded', expanded);
		});
	}

	// Выбор города
	var citySelectorHandler = function sliderHandler(){
		var citySelectorTrigger = $('.region_select, .region_select2');
		citySelectorTrigger.click(function(ev){
			var e = $(ev.currentTarget);
			var p = e.offset();

			// Если выбор города для всего сайта
			if(this.className == 'region_select')
				$('#siteCitySelector').css({ top: Math.round(p.top) - 5, left: Math.round(p.left) - 114 }).toggle();
			// Если выбор города для магазинов
			else
				$('#shopsCitySelector').css({ top: Math.round(p.top) + 15, left: Math.round(p.left) }).toggle();

			ev.preventDefault();
		});
	};

	watermarkHandler("query", "Введите слово для поиска");
	watermarkHandler("subscribe", "Введите ваш E-mail");

	sliderHandler();
	filterCollapsiablePanelHandler();
	citySelectorHandler();
});

