map_switcher = function(Tabs, Content, Callback){
	/*
		Tabs - id дива, в котором содержатся фильтры
			.all - выключить фильтрацию
			.tab - фильтр
		Content - id дива, которому добавляются классы фильтра
		Callback - функция, вызываемая при активации любого фильтра
	*/
	this.tabs_layout = Tabs;
	this.content_layout = Content;
	this.selected_class = "selected"; // класс-признак активного фильтра
	this.all_tab = Tabs.find(".all").eq(0); // элемент-выключатель фильтра
	this.tabs = Tabs.find(".tab"); // элементы-включатели фильтра
	this.callback = Callback;
	
	this.attach_map_events();
};

map_switcher.prototype = {
	// события фильтра
	attach_map_events : function(){
		var that = this;
		
		// выключаем фильтр
		this.all_tab.click(function(){
			that.init_tabs();
			that.init_content();
			that.callback();
		});
		
		// включение фильтра
		// диву-контенту добавляем класс-признак фильтра.
		// Классами-признаками активных фильтров служат значения их id.
		this.tabs.click(function(){
			if($(this).hasClass(that.selected_class)){
				$(this).removeClass(that.selected_class);
				that.content_layout.removeClass($(this).attr("id"));
			} else {
				$(this).addClass(that.selected_class);
				$(that.content_layout).addClass($(this).attr("id"));
				that.content_layout.removeClass(that.all_tab.attr("id"));
				that.all_tab.removeClass(that.selected_class);
			};
			if(!that.tabs.hasClass(that.selected_class)){
				that.all_tab.addClass("selected");
				that.content_layout.addClass("all");
			};
			that.callback();
		});
	},
	
	init_tabs : function(){
		var that = this;
		
		that.tabs.removeClass(that.selected_class);
		if(!that.all_tab.hasClass(that.selected_class)){
			that.all_tab.addClass(that.selected_class)
		};
	},
	
	init_content : function(){
		var that = this;
		that.content_layout.attr("class", "all");
	}
	
};