var pcf = {
catalog_id : 0,
filters : [],
catalogURL : '',
resultURL : '',
filters_change : false,
	
init_filters : function(){
	var ind = 1;
	while(document.getElementById('find'+ind)){
		var el = document.getElementById('find'+ind);
		var t = el.parentNode.id.split('_');
		var f_id = t[0];
		var fv_id = t[1];
		var filter_index = pcf.getFilterIndex(f_id);
		var is_check = false;
		if(el.className == 'check_filter') is_check = true;
		pcf.filters[filter_index].selectValue(fv_id, el.title, is_check);
		ind++;
	}
},

getFilterIndex : function(f_id){
	for(var i = 0; i < pcf.filters.length; i++) 
		if(pcf.filters[i].id == f_id) return i;
	pcf.filters[pcf.filters.length] = new pcf.Filter(f_id);
	return pcf.filters.length-1;
},
	
ch : function (obj, pcf_id, pcfv_id){
	if(pcf.filters.length < 1) pcf.init_filters();
	var filter_index = pcf.getFilterIndex(pcf_id);
	if(obj.className == 'check_filter') {
		obj.className = 'no_check_filter';
		pcf.filters[filter_index].selectValue(pcfv_id, obj.title, false);
	} else {
		obj.className = 'check_filter';
		pcf.filters[filter_index].selectValue(pcfv_id, obj.title, true);
	}
	if(!pcf.filters_change) {
		if(document.getElementById('append_filter_button')) document.getElementById('append_filter_button').disabled = false;
		pcf.filters_change = true;
	}
	return false;
},

buildResulrHref : function(){
	var result_href = "";
	for(var i = 0; i < pcf.filters.length; i++) {
		var val_list_id = '';
		for(var v = 0; v < pcf.filters[i].values.length; v++){
			if(pcf.filters[i].values[v].val_checed)  {
				val_list_id += (val_list_id?".":"")+pcf.filters[i].values[v].id;
			}
		}
		if(val_list_id.length > 0) {
			result_href += (result_href?'|':'')+pcf.filters[i].id+"_"+val_list_id;
		}
	}
	var q_sim = '&';
	if(pcf.catalogURL.substr(pcf.catalogURL.length-1) == '/') q_sim = '?';
	if(result_href.length > 0)  result_href = q_sim+"pcf="+result_href
	pcf.resultURL = pcf.catalogURL+result_href;
},

appendResult : function(){
	if(pcf.filters.length < 1) pcf.init_filters();
	pcf.buildResulrHref();
	try { 
	var conf_q = false;
	if(pred.checked_prod.length) {
		conf_q = confirm("Применить фильтры к выбраным товарам "+pred.checked_prod.length+" шт. ?");
		if(!conf_q) return false;
	}
	if(conf_q) {
		var prod_arr = new Array();
		for(var i = 0; i < pred.checked_prod.length; i++) {
			prod_arr[i] = pred.checked_prod[i].id
		}
		var href = pcf.resultURL+'&subevent=append_product_filter';
		JsHttpRequest.query(
			href,
			{
				"product_list": prod_arr
			},
			function(result, errors) {
				for(var i=0; i < result['prod_arr'].length; i++) {
					var p_place = document.getElementById('prlac'+result['prod_arr'][i]);
					p_place.innerHTML = '';
				}
				pred.checked_prod = new Array();
				document.getElementById('ajax_errors').innerHTML = errors;
			}
			);
		
		return false;
	}
	} catch (e) {

	}
	document.location.href = pcf.resultURL;
}

};

pcf.Filter = function(f_id){
	this.id = f_id;
	this.values = [];
	return this;
};

pcf.Filter.prototype = {
// ---- pcf.Filter.selectValue ---------------------------------------------------
	selectValue : function(val_id, val_name, val_checed){
		for(var i = 0; i < this.values.length; i++){
			if(val_id == this.values[i].id) {
				this.values[i].val_checed = val_checed;
				return i;
			}
		}
		this.values[this.values.length] = { 'id' : val_id, 'name': val_name, 'val_checed' : val_checed }
		return this.values.length-1;
	}
};

