
$(function() {


if(maxw==1 || maxd==1 || maxh==1)$("#whdblock").hide();
if(minw==-1)minw=0;
if(minh==-1)minh=0;
if(mind==-1)mind=0;

	$("#slider-w").slider({
		range: true,
		min: minw,
		max: maxw,
		values: [minw, maxw],
		slide: function(event, ui) {
			$("#w1").val(ui.values[0]);
			$("#w2").val(ui.values[1]);
			TovBlocks($("#w1").val(),$("#w2").val(),$("#h1").val(),$("#h2").val(),$("#d1").val(),$("#d2").val(),$("#idvendor").val());
		}
	});

	$("#slider-h").slider({
		range: true,
		min: minh,
		max: maxh,
		values: [minh, maxh],
		slide: function(event, ui) {
			$("#h1").val(ui.values[0]);
			$("#h2").val(ui.values[1]);
			TovBlocks($("#w1").val(),$("#w2").val(),$("#h1").val(),$("#h2").val(),$("#d1").val(),$("#d2").val(),$("#idvendor").val());
		}
	});


	$("#slider-d").slider({
		range: true,
		min: mind,
		max: maxd,
		values: [mind, maxd],
		slide: function(event, ui) {
			$("#d1").val(ui.values[0]);
			$("#d2").val(ui.values[1]);
			TovBlocks($("#w1").val(),$("#w2").val(),$("#h1").val(),$("#h2").val(),$("#d1").val(),$("#d2").val(),$("#idvendor").val());		
		}
	});
$('.whdinput').keyup(function(){
	if($("#w1").val()>600)$("#w1").val(600);
	if($("#w2").val()>600)$("#w2").val(600);

	if($("#h1").val()>300)$("#h1").val(300);
	if($("#h2").val()>300)$("#h2").val(300);

	if($("#d1").val()>300)$("#d1").val(300);
	if($("#d2").val()>300)$("#d2").val(300);


	$("#slider-w").slider({values:[$("#w1").val(),$("#w2").val()]});
	$("#slider-h").slider({values:[$("#h1").val(),$("#h2").val()]});
	$("#slider-d").slider({values:[$("#d1").val(),$("#d2").val()]});

	TovBlocks($("#w1").val(),$("#w2").val(),$("#h1").val(),$("#h2").val(),$("#d1").val(),$("#d2").val(),$("#idvendor").val());
	});
$('.whdinput').numeric();


$("#w1").val($("#slider-w").slider("values", 0));
$("#w2").val($("#slider-w").slider("values", 1));
$("#h1").val($("#slider-h").slider("values", 0));
$("#h2").val($("#slider-h").slider("values", 1));
$("#d1").val($("#slider-d").slider("values", 0));
$("#d2").val($("#slider-d").slider("values", 1));




});






function ShowSub(id)
{
if($('#ssub'+id).css('display')=='none')
	{$('#ssub'+id).show();}
else	{$('#ssub'+id).hide();}
}


function BoxClick(id,ch)
{
if(!ch)UnCheckParents(id,ch);
var chi = $('#ssub'+id).children("").children(".idcat");
var i=0;
for(i=0;i<chi.length;i++)
	{
	chi[i].checked=ch;


	if($('#n_'+chi[i].id.split("_")[1]).children(".selectsub").length>0){BoxClick(chi[i].id.split("_")[1],ch);}
	}

}

function UnCheckParents(id,ch)
{
if(!ch)
	{
	var a=$('#n_'+id).parent().get(0).id.split("sub")[1];
	if($('#idcat_'+a)[0]!=null){
				$('#idcat_'+a)[0].checked=false;
				UnCheckParents(a,ch)
				}
	}
}

function TovBlocks(w1,w2,h1,h2,d1,d2, idvend)
{
var parstr="&w1="+w1+"&w2="+w2+"&h1="+h1+"&h2="+h2+"&d1="+d1+"&d2="+d2+"&idvendor="+idvend;
var cats=$(".idcat");
var idc=[];
for(i=0;i<cats.length; i++)
	{
	if(cats[i].checked){idc[i]=cats[i].id.split("_")[1]; parstr+="&idcat["+idc[i]+"]=1"}
	}
if($("#searchbox").val())parstr+="&str="+$("#searchbox").val();


var gid=[];

for(var i in ws) {
	    if (!ws.hasOwnProperty(i)) continue;
                //проверим, входит ли этот товар в нужную нам выборку категорий (типов)
		cats=false;
		for(var j in idcats[i]) {
		    if (!idcats[i].hasOwnProperty(j)) continue;
		    for(var k in idc)
			{
  			if (!idc.hasOwnProperty(k)) continue;
			if(idc[k]==idcats[i][j])cats=true;
			}
		}
//	    if(!cats)alert('!!');
	
		//если ни одна группа не помечена, то считаем что сортировки по категориям нет:
   	    if(idc.length==0)cats=true;
            // подберем согласно whd/idvendor                                                                      //
	    if(( ws[i]>=w1*10 && ws[i]<=w2*10  && hs[i]>=h1*10 && hs[i]<=h2*10  && ds[i]>=d1*10 && ds[i]<=d2*10 && ws[i]!=0 && hs[i]!=0 && ds[i]!=0 )
			&& (idvend==vendor[i] || idvend==0)  && cats)
			{	
			//обработка: если этот блок уже есть на данной странице, то показываем его.
			//если блока нет, но кол-во товаров<максимального, то подгружаем необходимое кол-во товаров.	
			gid.push(i);
			//alert(i);
			}
	    else
			{
			//просто скрываем блок с таким товаром
			$("#tovblock_"+i).hide();
			}
	}
// Получен массив gid - все товары, подходящие данной выборке.
// Нужно обойти все имеющиеся .tovblock элементы, и сделать из них видимыми goodsonpage элементов, входящие в gid.


var tovblocks=$(".tovblock");
var goods_shown=$(".tovblock:visible").length;


for(i=0;i<tovblocks.length; i++)
	{
	goodid=tovblocks[i].id.split("_")[1];
	if(gid.in_array(goodid) && goods_shown<goodsonpage) //показывать!
		{
		if($("#tovblock_"+goodid).css('display')=='none')$("#tovblock_"+goodid).show();		
		//alert(goods_shown+" op:"+goodsonpage);
		goods_shown++;
                //$("#total").html($("#total").html()+goods_shown+" показан: "+goodid+"<BR>");
		}
	}
//$("#total").html("Показано: "+goods_shown+" Найдено: "+gid.length+"");




// Если cтолько элементов не набралось, то дозагрузить goodsonpage-goods_shown элементов через tcw_goods.php


if(goods_shown<goodsonpage  && gid.length > goods_shown)
	{	
	var params="";
	for(j=goods_shown; j<goodsonpage  && j<gid.length ; j++)
		{
		params+="&idgoods["+gid[j]+"]="+gid[j];
		}
	//alert(params);
	$.get("tcw_goods.php?ajax_load=true"+params, { ajax_load: "1", r: Math.random()},
		   function(data){
		     $("#goodsblock").html+=data;
		   });
	
	}

//если вывод на несколько страниц, то генерим Pagination:
if(gid.length > goodsonpage)
	{
	var pagtxt="";
	for(p=0;p<Math.ceil(gid.length/goodsonpage); p++)
		{
		pagenum=p+1;
		if(p==0)pagenum="["+pagenum+"]";
		pagtxt+=" <a href='tcatview2.php?position="+p+"&cn="+gid.length+parstr+"'>"+pagenum+"</a> &nbsp; ";
		}
		
	$("#total").html(pagtxt);
	}



}

Array.prototype.in_array = function(p_val) {	for(var i = 0, l = this.length; i < l; i++)	{		if(this[i] == p_val) {			return true;		}	}	return false;}

Array.max = function( array ){
    return Math.max.apply( Math, array );
};

Array.min = function( array ){
    return Math.min.apply( Math, array );
};

