var CustomCheckbox = new Class({
	initialize: function(class_name, checked_class) {
		this.items = $$('.' + class_name);
		this.checked_class = checked_class;
		
		this.setActionHandlers();
	}
});

CustomCheckbox.implement({
	
	setActionHandlers: function() {
		
		var obj = this;
		
		this.items.each(function(el){
			
			var chbx = el.getFirst('input');
			if(chbx.checked) {
				el.addClass(obj.checked_class);
			}
			
			el.addEvent('click', function(e){
				
				new Event(e).stop();
				
				var chbx = el.getFirst('input');
				chbx.checked = !chbx.checked;
				el.toggleClass(obj.checked_class);
				chbx.fireEvent('change');
			});
			
			chbx.addEvent('change', function(){
				
				var el = this.getParent();
				if(this.checked) {
					el.addClass(obj.checked_class);
				}
				else {
					el.removeClass(obj.checked_class);
				}
			});
		});
	}
});
