/* - visas varikliukas- */
Filter = Class.create();
Filter.prototype = {
	initialize: function(settings) {
		this.settings = new Array();
		for (var i in settings) {
			this.settings[i] = settings[i];
		}
		this.settings['extParams'] = '';
		this.menu_div = $(this.settings['block'] + this.settings['buff']);
		this.addObservers();
		this.update();
	},
	addObservers: function() {
		if (this.menu_div) {
			//Event.observe(this.menu_div, "click", this.onClick.bindAsEventListener(this));
			//Event.observe(this.menu_div, "change", this.onChange.bindAsEventListener(this));
		}
	},
	update: function() {
		this.settings['params'] = 'category_id=' + this.settings['category_id'];
		this.settings['params'] += '&buff=' + this.settings['buff'];
		this.settings['params']	+= this.settings['extParams'];
		var myAjax = new Ajax.Updater(
			this.settings['block']+this.settings['buff'], 
			this.settings['script_page'], 
			{
				method: 'post',
				parameters: this.settings['params'], 
				onComplete: this.onComplete()
			}
		);
	},
	setCategory: function(category_id){
		this.settings['category_id'] = category_id;
		this.update();
	},
	setExternalParam: function (param, value){
		this.settings['extParams'] += "&" + param + "=" + value; 
	},
	setExternalParams: function (settings){
		for (var i in settings) {
			this.settings['extParams'] += "&" + i + "=" + settings[i]; 
		}		
	},
	onComplete: function(){
		buff_name = 'category_id' + this.settings['buff'];
		$(buff_name).value = this.settings['category_id'];
	},
	onChange: function(event){
		senderElement = Event.element(event);
		this.setCategory(senderElement.value);
	}
};
