var keshChk = new Class({
	Implements: [Options, Events],
	options: {
		table: '.lst',
		updater: 'updater',
		check_all: '.chk-all',
		checkboxes: '.chk-one',
		delete_btn: 'chk-btn'
	},
	
	initialize: function(form, options){
		this.setOptions(options);
		this.form = form;
		this.delete_btn = $(this.options.delete_btn);
		this.btnDisable(this.delete_btn);
		this.check_all = $(this.form).getElement(this.options.check_all);
		if ($chk(this.check_all))
		{
			this.check_all.addEvent('click', function(e){
				if (this.check_all.checked)
				{
					this.checkAll(); this.btnEnable(this.delete_btn);
				}
				else
				{
					this.clearAll(); this.btnDisable(this.delete_btn);
				}
			}.bind(this));
		}
		this.checkboxes = $(this.form).getElements(this.options.checkboxes);
		this.checkboxes.each(function(el, i){
			el.addEvent('click', function(e){
				this.edDeleteBtnAndCheckBox();
			}.bind(this));
		}.bind(this));
	},
	checkAll: function(){
		this.checkboxes.each(function(el){
			el.checked = true;
		});
	},
	clearAll: function(){
		this.checkboxes.each(function(el){
			el.checked = false;
		});
	},
	btnDisable: function(el){
		el.setProperty('disabled', true);
		el.addClass('disabled');
	},
	btnEnable: function(el){
		el.setProperty('disabled', false);
		el.removeClass('disabled');
	},
	edDeleteBtnAndCheckBox: function(){
		var is_checked = false;
    	var all_checked = true;
    	this.checkboxes.each(function(el){
			is_checked = el.checked || is_checked;
			all_checked = el.checked && all_checked;
		});
		this.check_all.checked = all_checked;
		if (is_checked) this.btnEnable(this.delete_btn); else this.btnDisable(this.delete_btn);
	}
});



