﻿//
// *** Работа с динамическим фильтром
//
var curCategoryLink = '';

$(document).ready(function() {
// показываем данные
        loadMainCategories();
	loadBrands();
        loadHeroes();

//	initFilter();	//filter.js
//	showDFilter();

	setStat();		//stat.js
});



var DFilterValues = null;    // В этой переменной хранятся возможные значения полей фильтра, а также текущие значения ограничений
var shadow = null;
// отобразить текущее состояние фильтра

function showDFilter() {

/*
	if ($("#brand_sel").length > 0 || $("#hero_sel").length > 0) {

	url = "/udata/catalog/getDFilterValues/.json?json-callback=_showDFilter";	

	jQuery.ajax({
		type: "get", 
		url: url, 
		dataType: "jsonp"
	})

	}

*/
}

// проверить выбрано значение назначения
//fuction checkNaznachenie(value) {
//	list = DFilterValues.filter.filter.naznachenie_list.item;
//        for (var key in list) {
//	    	var el = list[key];
//		alert(el);
//	}
//}

function _showDFilter(data){


//	curCategoryLink = data.filter.filter.category;
	if (curCategoryLink > '') curCategoryLink = '/' + curCategoryLink + '/';

	DFilterValues = data;
	// удаляем все элементы из списка

	$("#brand_sel").empty();
	$("#hero_sel").empty();

	// теперь заполняем
	//* сначала бренды
	list = data.brands.items.item;
	arg = "''";
	html = '<input class="brand_btn" type="button" onClick="showBrand(' + arg + ')" value="Все бренды"/>';
		$("#brand_sel").append( $(html));	
	if (DFilterValues.filter.filter) {
		curID = DFilterValues.filter.filter.brandID;
	}
	sIndex = -1;
	i = 1;


	for (var key in list) {
	    	var el = list[key];
		arg = "'" + el.altname + "'";
//alert(arg);
		html = '<input class="brand_btn" type="button" onClick="showBrand(' + arg + ')" value="' + el.name + '"/>';

		$("#brand_sel").append( $(html));
		if (curID == el.id) sIndex = i;
		i++;
	}
	if (i <= 1) $("#brand_sel").hide();
	$("#brand_sel :nth-child(" + (sIndex  + 1) + ")").attr("selected", "selected");

	//* затем героев
	if (DFilterValues.filter.filter) {
		curID = DFilterValues.filter.filter.heroID;
	}
	sIndex = -1;
	list = data.heroes.items.item;
	arg = "''";
	html = '<input class="hero_btn" type="button" onClick="showHero(' + arg + ')" value="Все герои"/>';
		$("#hero_sel").append( $(html));	
	i = 1;
	for (var key in list) {
	    	var el = list[key];
		arg = "'" + el.altname + "'";
		html = '<input class="hero_btn" type="button" onClick="showHero(' + arg + ')" value="' + el.name + '"/>';
		$("#hero_sel").append( $(html));
		if (curID == el.id) sIndex = i;
		i++;
	}
	if (i <= 1) $("#hero_sel").hide();

	$("#hero_sel :nth-child(" + (sIndex  + 1) + ")").attr("selected", "selected");

	//* Назначения
	if (data.naznachenie.items != undefined) {
	        list = data.naznachenie.items.item;


		i = 0;
		$("#naznachenie").html('');
		for (var key in list) {
		    	var el = list[key];
	
			if (el.name == '_') btn_title = "другое"; else btn_title = el.name; 

			btn_arg = "'" + el.name + "'"; 

			if (el.selected == 1) {
				sel = ' selected';
				ev = 'delNaznachenie';
			} else {
				sel = '';
				ev = 'addNaznachenie';
			}

			html = '<input class="tagbtn' + sel + '" onClick="' + ev + '(' + btn_arg + ')" value="' + btn_title + '" type="button"/>';

			$("#naznachenie").append( $(html));

			i++;
		}
		if (i <= 1) $("#naznachenie").html(''); // показываем только, если кол-во вариантов больше одного
	} else $("#naznachenie").html('');

	
}


function showBrand(altname) {
	if (altname > '')
		document.location.href = curCategoryLink + "?brand=" + altname
	else
		document.location.href = curCategoryLink;
}

function showHero(altname) {
	if (altname > '')
		document.location.href = curCategoryLink + "?hero=" + altname
	else
		document.location.href = curCategoryLink;
}


function setShadow(){
      if( shadow == null) {
          $('body').prepend('<div id="dfilter_shadow" style="display: none; background-color: blue; border: solid 1px darkgray; position: static; top: 0px; z-index: 100000;">&nbsp;</div>');
          shadow = $('#dfilter_shadow');
	}      

	var dfilter_el = $('#dfilter');

	shadow.width(dfilter_el.innerWidth()).height(dfilter_el.innerHeight()).css('top', dfilter_el.offset().top).css('left', dfilter_el.offset().left).css('opacity', 0.5).show();
	shadow.css('position', 'absolute');
      
      if( !shadow ) {
          alert('Cannot create the shadow div');
      }
}

function delShadow(){
	
	if( shadow != null) {	
		shadow = $('#dfilter_shadow');
		shadow.hide();		
	}
}


function addNaznachenie($name){

setShadow();
	url = "/udata/catalog/addFilterNaznachenie/" + $name + "/.json?json-callback=updateFilter";	
	jQuery.ajax({
		type: "get", 
		url: url, 
		dataType: "jsonp"
	})

}

function delNaznachenie($name){
setShadow();
	url = "/udata/catalog/delFilterNaznachenie/" + $name + "/.json?json-callback=updateFilter";	
	jQuery.ajax({
		type: "get", 
		url: url, 
		dataType: "jsonp"
	})
}


function selectBrand(){
setShadow();
	url = "/udata/catalog/setFilterBrand/" + $("#brand_sel").val() + "/.json?json-callback=updateFilter";	
	jQuery.ajax({
		type: "get", 
		url: url, 
		dataType: "jsonp"
	})

}

function selectHero(){
setShadow();
	url = "/udata/catalog/setFilterHero/" + $("#hero_sel").val() + "/.json?json-callback=updateFilter";	
	jQuery.ajax({
		type: "get", 
		url: url, 
		dataType: "jsonp"
	})
}

function updateFilter(data) {
	delShadow();
	showDFilter(data);
	//$("#dfilter_res_btn").val("Показать...");
	showDFilterResult(); //Сразу отображаем результат

}


function _showBrands(data){
	list = data.items.item;

	for (var key in list) {
	    	var id = "#b-" + list[key].id;
		$(id).show();		
	}

	sel = document.getElementById(id).selected = true;
}

function _showHeroes(data){
	list = data.items.item;

	for (var key in list) {
	    	var id = "#h-" + list[key].id;
		$(id).show();		
	}
}


// при выборе бренда
function selectDFilterBrand(id){
	url = "/udata/catalog/setFilterBrand/" + id + "/.json?json-callback=showDFilterPrev";	
	jQuery.ajax({
		type: "get", 
		url: url, 
		dataType: "jsonp",
	})

	
}
// при выборе героя
function selectDFilterHero(id){
	url = "/udata/catalog/setFilterHero/" + id + "/.json?json-callback=showDFilterPrev";	
	jQuery.ajax({
		type: "get", 
		url: url, 
		dataType: "jsonp"
	})


}
// показать 
function showDFilterPrev(data) {
//	alert(data.filter.categoryID);
	url = "/udata/catalog/getDFilterResult/" + data.filter.categoryID +"/0/.json?json-callback=_showDFilterPrev";	
	jQuery.ajax({
		type: "get", 
		url: url, 
		dataType: "jsonp"
	})
	
}

function _showDFilterPrev(data) {


	document.getElementById('dfilter_res_btn').value = "Показать (" + data.items.total + ")";
}


//обработка нажатия кнопки "Показать"
function showDFilterResult() {
	if (curCategoryLink > '')
		document.location.href = curCategoryLink;
	else document.location = document.location;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function setDFilterValue(name, value) {
	url = "/udata/catalog/filter" + name + "/" + value + "/.json?json-callback=_refresh";	
	jQuery.ajax({
		type: "get", 
		url: url, 
		dataType: "jsonp"
	})	
}

function setDFilterBrand(value) {
	return setDFilterValue('Brand', value);
}

function setDFilterHero(value) {
	return setDFilterValue('Hero', value);
}

function setDFilterCategory(value) {
	return setDFilterValue('Category', value);
}

function setDFilterNaznachebie(value) {
	return setDFilterValue('Naznachenie', value);
}

function _refresh(data) {
	window.location.reload();
}

function ShowAll(current, value){
	url = "/udata/catalog/dfilterClear/.json?json-callback=_refresh";	
	jQuery.ajax({
		type: "get", 
		url: url, 
		dataType: "jsonp"
	})	

}

