$(document).ready(function() { 
if (jQuery.browser.safari && document.readyState != "complete"){
    setTimeout( arguments.callee, 100 );
    return;
 } 

	if (document.getElementById("main_page")!=null) SetMainPage();
	if (document.getElementById("cont_page")!=null) SetContPage();

	if (document.getElementById("wana_diller_page")!=null) SetWanaDilerPage();
	if (document.getElementById("go_in_company")!=null) SetGoInCompanyPage();

	if (document.getElementById("vopros_spec")!=null) SetVoprosPage();
	if (document.getElementById("where_to_buy")!=null) SetWhereBuyPage();

	if (document.getElementById("gallery_level2")!=null) SetGallery2Page();

	if (document.getElementById("vodostok_media")!=null) SetVodostokMedia();

	if (document.getElementById("new_filter_block")!=null){
		window.page_filter_block = new CreateFiltersBlock();
	};
	
	
	
	GetTopAdress();
	SetAllPages(); 
	//CreatePngFix();

});

function SetVodostokMedia(){
	vodostok_url = 'vodostok';
	if($('#vodostok_media').hasClass('vodostok_media2')) vodostok_url = 'vodostok2';   
	var vodo_timer = 0;
	var vod_offset = $('#vodostok_media').offset();
	
	$('#vodostok_media .vodo_poly').bind({
	    mouseover: function() {
	    	current_id = $(this).attr('id').substr(10);
	    	//console.log(current_id);
	    	current_index = current_id.indexOf('_');
	    	if(current_index >= 0) current_id = current_id.substr(0, current_index)
	    	$('#vodostok_media .active_element').css('background','url(/images/'+vodostok_url+'/vodostok'+current_id+'.png)');
	    	$('#podskazka').html($('#vodo_p'+current_id).html());	    
	    	$('#podskazka').css('display', 'block');
	    	clearTimeout(vodo_timer);
	    },
	    mousemove: function(e){
			var x = e.pageX - vod_offset.left+20;
	        var y = e.pageY - vod_offset.top+20;

	        $('#podskazka').css('top', y).css('left', x); 	
	      //  console.log(vod_offset.left);    
	    },
	    mouseout: function() {    	
	    	vodo_timer = setTimeout(function(){
	    		$('#podskazka').css('display', 'none');
	    		$('#vodostok_media .active_element').css('background','none');
	    	}, 500); 			
	    }
	 /*   mouseout: function() {
	    	$('#vodostok_media .active_element').css('background','');
	    	current_id = $(this).attr('id').substr(10);
	    	current_index = current_id.indexOf('_');
	    	if(current_index >= 0) current_id = current_id.substr(0, current_index);
	    	$('#vodo_p'+current_id).css('display', 'none');	    	
	    	$('#vodostok_media p.vodo_p_elt').css('display', 'none');
	    }*/
	});	
}

var delay = (function(){
  var timer = 0;
  return function(callback, ms){
    clearTimeout (timer);
    timer = setTimeout(callback, ms);
  };
})();


function GetTopAdress(){
		$.post('/', { get_region: 'true'},
	    function(data) {
	        if(data){
	        	$('#adr_in_top').html(data);
				SetAllPages();
				var new_table_href = 'http://client.grandline.ru';
				var nn_menu = $('#sel_top_67');
				var kr_menu = $('#sel_top_68');
								
				if(nn_menu.hasClass('active_adr')){
					new_table_href = 'http://nn.grandline.ru';
				} else if(kr_menu.hasClass('active_adr')){
					new_table_href = 'http://krr.grandline.ru';
				}
				//$('#table_link').attr('href', new_table_href);
							
	        }
	    }
	    );
}

function SetAllPages(){
	$('.other_top_adr span').bind({  click: function() {  
		current_id = $(this).attr('id');
		current_id = current_id.substr(8);

		$('.other_top_adr .active_adr').removeClass('active_adr').addClass('name_adr_span');
		$(this).removeClass('name_adr_span').addClass('active_adr');
		
		$('.top_cont_text .active_adr_t').removeClass('active_adr_t').addClass('not_active_adr_t');
		$('#top_top_'+current_id).addClass('active_adr_t').removeClass('not_active_adr_t');

	}});
}


function SetGallery2Page(){
	$('.obj_img').bind({  click: function() {  
		show_gallery_id = $(this).attr('id');
		show_gallery_id = show_gallery_id.substr(7);

		if(!$('#gallery'+show_gallery_id).hasClass('ad_boxed')){
			$('#gallery'+show_gallery_id).addClass('ad_boxed');
			$('#gallery'+show_gallery_id).adGallery({cycle: false});		
		}		
		$.colorbox({ inline:true, opacity: 0.95, overlayClose: false, href:'#gallery_inline'+show_gallery_id});
	 }});

	$('.obj_name').bind({  click: function() {  
		show_gallery_id = $(this).attr('id');
		show_gallery_id = show_gallery_id.substr(8);

		if(!$('#gallery'+show_gallery_id).hasClass('ad_boxed')){
			$('#gallery'+show_gallery_id).addClass('ad_boxed');
			$('#gallery'+show_gallery_id).adGallery({cycle: false});		
		}		
		$.colorbox({ inline:true, opacity: 0.95, overlayClose: false, href:'#gallery_inline'+show_gallery_id});
	 }});

	 
}

function SetWhereBuyPage(){
	map_created = false;
	$("#select_place_reset").click();
	$('#gde_kupit').addClass('active');
	$('.one_buy_tab').bind({  click: function() {  
		$('.one_buy_tab.active').removeClass('active');
		$('.one_show_tab.active').removeClass('active');
		$(this).addClass('active');
		$('#show_'+$(this).attr('id')).addClass('active');	
		
		if($(this).attr('id') == 'map_tab' && map_created == false){
			CreateMap();	
		} 
	}});
	if($('#map_tab').hasClass('active')) CreateMap();

	$("#select_place").uniform();
	
	$('#select_place').change(function() {
		document.location = $("#select_place option:selected").val();
	});	


	function CreateMap(){
        YMaps.jQuery(function () {
        
			map_created = true;

	    	var start_coords = window.start_cord.split(",");;
	    	var start_coords_x = parseFloat(start_coords[0]);
	    	var start_coords_y = parseFloat(start_coords[1]);
			
			//var peoplesMapScheme = new YMaps.Map( document.getElementById("YPeoplesMapScheme") );
			window.map = new YMaps.Map(YMaps.jQuery("#where_to_buy_map")[0]);
			window.map.setCenter(new YMaps.GeoPoint(start_coords_x,start_coords_y), window.start_zoom, YMaps.MapType.PMAP);
			window.map.addControl(new YMaps.Zoom());
			
			var s_gr = new YMaps.Style();
			s_gr.iconStyle = new YMaps.IconStyle();
			s_gr.iconStyle.href = "/images/gr_ico.png";
			s_gr.iconStyle.size = new YMaps.Point(27, 26);			
			
			//gr_ico.png
			

			
			
			for (var i = 0, length = window.shops_array.length; i < length; i++) {
			    if (i in window.shops_array) {
						if(window.shops_array[i][2] == 'auto'){
							FindGeoCoords_part(i);
						} else {
					    	var coords = window.shops_array[i][2].split(",");;
					    	var coords_x = parseFloat(coords[0]);
					    	var coords_y = parseFloat(coords[1]);
					    	var placemark = new YMaps.Placemark(new YMaps.GeoPoint(coords_x,coords_y), {style: "default#storehouseIcon"});
						    placemark.name = window.shops_array[i][3];
							placemark.description = 'г. '+window.shops_array[i][0]+', '+window.shops_array[i][1]+'<br/>'+'Тел.: '+window.shops_array[i][4];	
					    	window.map.addOverlay(placemark);						
						}

					}
			}
			
			

			for (var i = 0, length = window.grandshops_array.length; i < length; i++) {
			    if (i in window.grandshops_array) {
						if(window.grandshops_array[i][2] == 'auto'){
							FindGeoCoords_firm(i);
						} else {
					    	var coords = window.grandshops_array[i][2].split(",");;
					    	var coords_x = parseFloat(coords[0]);
					    	var coords_y = parseFloat(coords[1]);
					    	var placemark = new YMaps.Placemark(new YMaps.GeoPoint(coords_x,coords_y), {style: s_gr});
						    placemark.name = window.grandshops_array[i][3];
							placemark.description = 'г. '+window.grandshops_array[i][0]+', '+window.grandshops_array[i][1]+'<br/>'+'Тел.: '+window.grandshops_array[i][4];	
					    	window.map.addOverlay(placemark);						
						}

					}
			}
									
			
			
        });	
	};
	
	var address_array = [];
	var citys_array = [false];
	$diller_citys = $('#diller_citys');
	$partners_list = $('#partners_list');
	
	$diller_citys.find('.real_city').each( function() {	
		$this = $(this);
		citys_array.push($this.children('span').html());
	});
	
	$diller_citys.delegate('.one_city','click',function(){
		var $this = $(this);
		$diller_citys.find('.active').removeClass('active');
		$this.addClass('active');	
		UpdateCityFilter($this.attr('id').substr(9));
	});	
	
	function UpdateCityFilter(new_city){
		if(new_city != 0){
			for (var i = 0, length = address_array.length; i < length; i++) {
			    if (i in address_array) {
			        if(address_array[i][1] != new_city){
			        	address_array[i][0].addClass('hide');
			        } else {
			        	address_array[i][0].removeClass('hide');
			        }			        
			    }
			}						
		} else {

			for (var i = 0, length = address_array.length; i < length; i++) {
			    if (i in address_array) {
			        	address_array[i][0].removeClass('hide');		        
			    }
			}	
		
		}
		UpdateProducersShow();	
		UpdateFilter();	
	}
	
	function UpdateProducersShow(){
		for (var i = 0, length = shops_list.length; i < length; i++) {
			var find_cout = shops_list[i][0].find('.one_company_adr').not('.hide').length;
			if(find_cout < 1){
				shops_list[i][0].addClass('hide');
				shops_list[i][8] = false;
			}  else {
				shops_list[i][0].removeClass('hide');
				shops_list[i][8] = true;
			}
		}	
	}
	
	function GetNumByCity(city_name){
		var city_id = 0;
		for (var i = 0, length = citys_array.length; i < length; i++) {
			    if (i in citys_array) {
			        if(city_name == citys_array[i]) city_id = i;			        
			    }
		}			
		return city_id;
	}

	$partners_list.find('.one_company_adr').each( function() { 
		var temp_array = [];
		var $this = $(this);
		temp_array[0] = $this;
		temp_array[1] = GetNumByCity($this.children('.adr_line.adr_line_city').children('span').html());
		
		//console.log(temp_array[1]);
		
		address_array.push(temp_array);
	//	console.log($(this).attr('id'));
	});
	
	

	window.shops_list = [];
	window.shops_filter = [false]; //нулевой элемент — заглушка
	window.shop_full_count = 0;
	var active_filters = 7;
	var shops_not_found = $('#shops_not_found');
	var shop_find_count = $('#shop_find_count');
	for (var i = 1; i <= 7; i++) window.shops_filter[i] = true;
	
	$(".partner_adr").each( function() { 
		window.shop_full_count++;
		var temp_shop = [];
		var self_adr = $(this);
		temp_shop[0] = self_adr;//.attr('id');
		for (var i = 1; i <= 7; i++) {
			in_filter = false;
			if(self_adr.find('.partner_title .icon_set .ico'+i).length) in_filter =  true;
			temp_shop[i] = in_filter;
	    }		
	    temp_shop[8] = true;
	    //console.log(temp_shop);
		window.shops_list.push(temp_shop);
	});
	
	shop_find_count.html(shop_full_count);
	
	$('#show_adr_filter .one_select').bind({  click: function() {  
		var select_click = $(this);
		var select_result = true;
		filter_id = select_click.attr('id').substr(11);
		
		if(filter_id != 0){
			if($('#show_adr_filter .select0').hasClass('active')){
				$('#show_adr_filter .select0').removeClass('active');
				for (var i = 1; i <= 7; i++) {window.shops_filter[i] = false;};	
				window.shops_filter[filter_id] = true;		
				select_click.addClass('active');	
				active_filters = 1;					
			} else {
				select_click.toggleClass('active');
				if(select_click.hasClass('active')){
					select_result = true;
					active_filters++;
				}  else {
					select_result = false;
					active_filters--;
				} 
				window.shops_filter[filter_id] = select_result;			
				if(active_filters == 7){
					for (var i = 1; i <= 7; i++) {
						$('#show_adr_filter .select'+i).removeClass('active');
						$('#show_adr_filter .select0').addClass('active');
					};					
				}			
					//console.log(active_filters);				
			}
		
			UpdateFilter();		
		} else {
			if(!(select_click.hasClass('active'))){	
				for (var i = 1; i <= 7; i++) {
					window.shops_filter[i] = true;
					select_click.addClass('active');
					$('#show_adr_filter .select'+i).removeClass('active');
					active_filters = 7;
				};
				UpdateFilter();
			}
		}
	}});
	
	function DeActiveSomeFilter(filter_id){
		var temp_filter = $('#show_adr_filter .select'+filter_id);
		if(temp_filter.hasClass('active')){
			temp_filter.click();
		}
	}

	function ActiveSomeFilter(filter_id){
		var temp_filter = $('#show_adr_filter .select'+filter_id);
		if(!(temp_filter.hasClass('active'))){
			temp_filter.click();
		}
	}

	
	function UpdateFilter(){
		var current_full_count = 0;
		
		for (var i = 0, length = window.shops_list.length; i < length; i++) {
		    if (i in window.shops_list) {
		    	var show_shop = false;
		    	if(window.shops_list[i][8] == true){
		    		current_full_count++;
		    			    		
					for (var f = 1; f <= 7; f++) {
						if((window.shops_filter[f] == window.shops_list[i][f]) && window.shops_filter[f] == true){
							show_shop = true;
						}
				    }			    	
			    	
			    	if(show_shop == true){
			    		if(window.shops_list[i][0].hasClass('hide_me')){
			    			window.shops_list[i][0].slideDown().removeClass('hide_me');
			    			shop_full_count++;
			    		};
			    	} else {
			    		current_full_count--;
			    		if(!window.shops_list[i][0].hasClass('hide_me')){
			    			window.shops_list[i][0].slideUp().addClass('hide_me');
			    			shop_full_count--;
			    		};
			    	}
			    	

				}	

		    }
		};		

		shop_find_count.html(current_full_count);
		//console.log(current_full_count);

		
		if(shop_full_count == 0) shops_not_found.slideDown(); else shops_not_found.slideUp();
		if(current_full_count == 0) shops_not_found.slideDown(); else shops_not_found.slideUp();
	}

}


function FindGeoCoords_part(iter_i, find_on_orig){
var find_on_orig = find_on_orig || false;


if(find_on_orig == false){
	narod_url = 'http://psearch-maps.yandex.ru/1.x/?format=json&callback=?&text='+window.shops_array[iter_i][0]+", "+window.shops_array[iter_i][1]+'&key=AGnKmU0BAAAAmwo-bQIAW3NENdeKFqs24_INhPkrPmNcqXsAAAAAAAAAAAB769Ak2sd6jIO8pgz0Wa6GAU_x1A==';
} else {
	narod_url = 'http://geocode-maps.yandex.ru/1.x/?format=json&callback=?&geocode='+window.shops_array[iter_i][0]+", "+window.shops_array[iter_i][1]+'&key=AGnKmU0BAAAAmwo-bQIAW3NENdeKFqs24_INhPkrPmNcqXsAAAAAAAAAAAB769Ak2sd6jIO8pgz0Wa6GAU_x1A==';
}

					
					$.ajax({
					  url: narod_url,
					  dataType: 'jsonp',
					  crossDomain: true,
					  success: function(data){
 					  	if(data.response.GeoObjectCollection.featureMember.length > 0){
					    	var coords = data.response.GeoObjectCollection.featureMember[0].GeoObject.Point.pos.split(" ");
					    	var coords_x = parseFloat(coords[0]);
					    	var coords_y = parseFloat(coords[1]);
					    	var placemark = new YMaps.Placemark(new YMaps.GeoPoint(coords_x,coords_y), {style: "default#storehouseIcon"});
						    placemark.name = window.shops_array[iter_i][3];
							placemark.description = 'г. '+window.shops_array[iter_i][0]+', '+window.shops_array[iter_i][1]+'<br/>'+'Тел.: '+window.shops_array[iter_i][4];	
					    	window.map.addOverlay(placemark);
					  	} else {

					  		if(find_on_orig == false){
						  		FindGeoCoords_part(iter_i, true);
					  		} else {
						  		alert('Не удалось найти адрес:'+window.shops_array[iter_i][0]+', '+window.shops_array[iter_i][1]+'. Пожалуйста, отметься его вручную.');					  		
					  		}


					  	}		
					  },
					  error: function(){
						
					  }					  
					  });
}


function FindGeoCoords_firm(iter_i, find_on_orig){
var find_on_orig = find_on_orig || false;
var s = new YMaps.Style();
s.iconStyle = new YMaps.IconStyle();
s.iconStyle.href = "/images/storehouse.png";
s.iconStyle.size = new YMaps.Point(27, 26);

if(find_on_orig == false){
	narod_url = 'http://psearch-maps.yandex.ru/1.x/?format=json&callback=?&text='+window.grandshops_array[iter_i][0]+", "+window.grandshops_array[iter_i][1]+'&key=AGnKmU0BAAAAmwo-bQIAW3NENdeKFqs24_INhPkrPmNcqXsAAAAAAAAAAAB769Ak2sd6jIO8pgz0Wa6GAU_x1A==';
} else {
	narod_url = 'http://geocode-maps.yandex.ru/1.x/?format=json&callback=?&geocode='+window.grandshops_array[iter_i][0]+", "+window.grandshops_array[iter_i][1]+'&key=AGnKmU0BAAAAmwo-bQIAW3NENdeKFqs24_INhPkrPmNcqXsAAAAAAAAAAAB769Ak2sd6jIO8pgz0Wa6GAU_x1A==';
}
					
					$.ajax({
					  url: narod_url,
					  dataType: 'jsonp',
					  crossDomain: true,
					  success: function(data){
 					  	if(data.response.GeoObjectCollection.featureMember.length > 0){
					    	var coords = data.response.GeoObjectCollection.featureMember[0].GeoObject.Point.pos.split(" ");
					    	var coords_x = parseFloat(coords[0]);
					    	var coords_y = parseFloat(coords[1]);
					    	var placemark = new YMaps.Placemark(new YMaps.GeoPoint(coords_x,coords_y), {style: s});
						    placemark.name = window.grandshops_array[iter_i][3];
							placemark.description = 'г. '+window.grandshops_array[iter_i][0]+', '+window.grandshops_array[iter_i][1]+'<br/>'+'Тел.: '+window.grandshops_array[iter_i][4];	
					    	window.map.addOverlay(placemark);
					  	} else {
					  		//http://geocode-maps.yandex.ru/1.x/?geocode=Москва,+Тверская+улица,+дом+7&key=API-ключ
					  		if(find_on_orig == false){
						  		FindGeoCoords_firm(iter_i, true);
					  		} else {
						  		alert('Не удалось найти адрес:'+window.grandshops_array[iter_i][0]+', '+window.grandshops_array[iter_i][1]+'. Пожалуйста, отметься его вручную.');					  		
					  		}

					  	}		
					  },
					  error: function(){
						
					  }					  
					  });
}

function SetVoprosPage(){
	$(".select_spec").uniform();	
	$('.main_bottom_buttons .mbb2 span').css('color','#6D6D6D');	
	$('.send_btn').bind({  click: function() {  $('#form5').submit();  }});	
	FormGonext13();
}


function SetWanaDilerPage(){
	$('.f_diller.f_diller2 span').css('color','#333333');
	$('.send_btn').bind({  click: function() {  $('#form3').submit();  }});
	FormGonext13();
}

function FormGonext13(){
	
	$('form .send_top_block input').keypress(function(e){
	if(e.keyCode == 13){
		$(this).parent('.send_top_block').next().children('input').focus();
		
	};
	});

}

function SetGoInCompanyPage(){
	$(".send_resume").uniform();
	$('.main_bottom_buttons .mbb1 span').css('color','#6D6D6D');	
	$('.send_btn').bind({  click: function() {  $('#form4').submit();  }});	
	FormGonext13();
}
function SetContPage(){
	FormGonext13();
	$('#top_cont_link').addClass('cont_link_active');
	$('.main_bottom_buttons .mbb3 span').css('color','#6D6D6D');
	
	$('.send_btn').bind({  click: function() {  $('#form2').submit();  }});
	
        YMaps.jQuery(function () {
        

			//var peoplesMapScheme = new YMaps.Map( document.getElementById("YPeoplesMapScheme") );
			var map = new YMaps.Map(YMaps.jQuery("#cont_ya_map")[0]);
			map.setCenter(new YMaps.GeoPoint(40.025557,52.891346), 4, YMaps.MapType.PMAP);
			map.addControl(new YMaps.Zoom());

			for (var i = 0, length = window.marks_array.length; i < length; i++) {
			    if (i in window.marks_array) {
			    	var coords = window.marks_array[i][0].split(",");
			    	var coords_x = parseFloat(coords[0]);
			    	var coords_y = parseFloat(coords[1]);
			    	var placemark = new YMaps.Placemark(new YMaps.GeoPoint(coords_x,coords_y), {style: "default#houseIcon"});
				    placemark.name = window.marks_array[i][1];
					placemark.description = window.marks_array[i][2];	
			    	map.addOverlay(placemark);

					// Открытие балуна
					YMaps.Events.observe(placemark, placemark.Events.BalloonOpen, function () {
					    map.setZoom(13);
					});
					
					// Закрытие балуна
					YMaps.Events.observe(placemark, placemark.Events.BalloonClose, function () {
					    map.setZoom(4);
					});	    	

			    	
			        
			    }
			}
			
			for (var i = 0, length = window.factory_array.length; i < length; i++) {
			    if (i in window.factory_array) {
			    	var coords = window.factory_array[i][0].split(",");
			    	var coords_x = parseFloat(coords[0]);
			    	var coords_y = parseFloat(coords[1]);
			    	var placemark = new YMaps.Placemark(new YMaps.GeoPoint(coords_x,coords_y), {style: "default#factoryIcon"});
					placemark.description = window.factory_array[i][2];	
			    	map.addOverlay(placemark);
			    	
					// Открытие балуна
					YMaps.Events.observe(placemark, placemark.Events.BalloonOpen, function () {
					    map.setZoom(13);
					});
					
					// Закрытие балуна
					YMaps.Events.observe(placemark, placemark.Events.BalloonClose, function () {
					    map.setZoom(4);
					});	    	
			    	
			    	
			        
			    }
			}			

        })
	
	
}

function SetMainPage(){

}

function CreatePngFix(){

}

function ReNewCaptchaById(imageId, captchaKey, captchaHeight)
{	
	// Пытаемся получить скрытый объект для input-а
	var captchaObject = document.getElementById(imageId);

	// Элемента нет, добавим его
	if (null != captchaObject && undefined !== captchaObject)
	{
		var antiCache = Math.floor(Math.random()*100000);
		captchaObject.src = "/captcha.php?get_captcha=" + captchaKey + "&height=" + captchaHeight + "&anc=" + antiCache;
	}
}

CreateFiltersBlock = function(){
	var module = this;

	this.big_filters_list = new Array();
	this.filter_strings = new Array();
	this.all_variants = new Array();
	this.$filter_recommends = $("#new_filter_block").find('.filter_recommends');
	this.default_text = this.$filter_recommends.html();
	this.filters_count = 0;
	
	$("#new_filter_block").find('.one_filter').each( function() { 
		module.big_filters_list.push(new Big_filter($(this)));	
	});
	
	this.CheckAllVariants = function(){
		var new_recommend = this.default_text;

		this.UpdateFilterStrings();
		for (var i = 0, length = this.big_filters_list.length; i < length; i++) { if (i in this.big_filters_list) {
			this.big_filters_list[i].CheckVariants();
		}}
		

		if(this.filter_strings.length > 0 && this.filters_count != 0){
			new_recommend = 'Рекомендуемые покрытия: ';
			if(this.filter_strings.length == 1) new_recommend = 'Рекомендуемое покрытие: ';
			
			for (var i = 0, length = this.filter_strings.length; i < length; i++) { if (i in this.filter_strings) {
				new_recommend += this.filter_strings[i];
				if(i != length-1) new_recommend += ', '; else new_recommend += '.';
			}}
			this.$filter_recommends.addClass('ok');
		} else {
			this.$filter_recommends.removeClass('ok');
		}
		
		this.$filter_recommends.html(new_recommend);		
	}

	this.UpdateFilterStrings = function(){
		if(module.all_variants.length <= 0){
			module.CreateAllVariants();
		}
		module.filter_strings = module.all_variants;
		this.filters_count = 0;

		for (var i = 0, length = this.big_filters_list.length; i < length; i++) { if (i in this.big_filters_list) {
			if(this.big_filters_list[i].active_variants.length > 0){
				module.filter_strings = module.filter_strings.intersect(this.big_filters_list[i].active_variants);
				this.filters_count++;
			}
			
		}};
	}
	
	this.CreateAllVariants = function(){
		for (var i = 0, length = this.big_filters_list.length; i < length; i++) { if (i in this.big_filters_list) {
			module.all_variants = module.all_variants.concat(this.big_filters_list[i].all_variants);	
		}};
		module.all_variants = module.all_variants.unique();
	}
	
	
}

/*
Big filter class
*/

Big_filter = function($jq_object){
	this.$filter = $jq_object;
	this.filter_variants = new Array();
	this.active_variants = new Array();
	this.all_variants = new Array();
	this.AddAllVariants();
}

Big_filter.prototype = {
	CreateVariant: function($filter_varinat){
		var self = this;
		var temp_variants = new Array();
		
		$filter_varinat.find('.items p').each( function() { 
			var this_item = $(this).html();
			temp_variants.push(this_item);			
		});
		
					
		self.all_variants = self.all_variants.concat(temp_variants);
		
		$filter_varinat.bind({  click: function() {  
			var $this_varinat = $(this);
			
			if(!$this_varinat.hasClass('not_found')){
				if($this_varinat.hasClass('active')){
					$this_varinat.removeClass('active');
					self.active_variants = [];
				} else{
					self.$filter.find('.active').removeClass('active');
					$this_varinat.addClass('active');
					self.active_variants = temp_variants;
				}						
				page_filter_block.CheckAllVariants();													
			}
			 
		}});
		
		var temp_self_check = function(){
			var current_variant_find = false;
		
			if(page_filter_block.filter_strings.length > 0){ for (var i = 0, length = this.varinats.length; i < length; i++) { if (i in this.varinats) {
				var current_filter_item = this.varinats[i]; 
				for (var j = 0, lengthj = page_filter_block.filter_strings.length; j < lengthj; j++) { if (j in page_filter_block.filter_strings) {
					if(page_filter_block.filter_strings[j] == current_filter_item){
						current_variant_find = true;
						this.$filter_varinat.removeClass('not_found');
						return true;
					} 
				}}				
			}}
			
			this.$filter_varinat.addClass('not_found');
			};

		}


		return {
			$filter_varinat : $filter_varinat,
			varinats : temp_variants,
			self_check : temp_self_check		
		}
	},	
	
	AddAllVariants: function(){
		var self = this;
		self.$filter.find('.variant').each( function() { 
			var $temp_this = $(this);
			self.filter_variants.push(self.CreateVariant($temp_this));
		});		
	},
	
	CheckVariants: function(){
		var self = this;
		for (var i = 0, length = self.filter_variants.length; i < length; i++) {
		    if (i in self.filter_variants) {
		        self.filter_variants[i].self_check();
		    }
		}	
		
	}
}


/*
Array prototype Intersect function
*/

Array.prototype.contains = function(elem) {
    return(this.indexOf(elem) > -1);
};

Array.prototype.intersect = function( array ) {

    var result = [];
    for ( var i = 0; i < this.length; i++ ) {
        if ( array.contains(this[i]) && !result.contains(this[i]) )
            result.push( this[i] );
    }
    return result;
}

/*
Array prototype Unique function
*/


Array.prototype.unique =
  function() {
    var a = [];
    var l = this.length;
    for(var i=0; i<l; i++) {
      for(var j=i+1; j<l; j++) {
        if (this[i] === this[j])
          j = ++i;
      }
      a.push(this[i]);
    }
    return a;
  };
	 






	 






	 




	 






	 






	 






	 




	 






	 






	 






	 





	 






	 






	 






	 






	 




	 




