var Checkbox = function(elem, parameterek) {
	var self = this;
	this.szulo = ((typeof(elem).toLowerCase() == 'string') ? $(elem) : elem);
	this.ujcheckbox = null;
	this.aktstilus = null;
	this.imgsrc = 'i/s.gif';
	this.beallitasok = {
		label: false,
		normal: false,
		over: false,
		over2: false,
		aktiv: false
	};

	var konstruktor = function(initobject) {
		var i;

		if (initobject !== undefined) {
			for (i in initobject) {
				self.beallitasok[i] = initobject[i];
			}
		}
		var checkboxok = self.szulo.getElementsByTagName('input');
		for (i = 0; i < checkboxok.length; i++) {
			if (checkboxok[i].type == 'checkbox') {
				self.checkbox_keszit(checkboxok[i]);
			}
		}
	}(parameterek);
};

Checkbox.prototype.statuszvalt = function() {
	this.ujcheckbox.checkbox.checked = (!this.ujcheckbox.checkbox.checked);
	this.stilusvalt({stilus: ((this.ujcheckbox.checkbox.checked) ? 'aktiv' : 'over')});
};

Checkbox.prototype.stilusvalt = function(parameterek) {
	if (this.aktstilus !== null) {
		this.ujcheckbox.className = this.ujcheckbox.className.replace(new RegExp(this.beallitasok[this.aktstilus], 'gi'), this.beallitasok[parameterek.stilus]);
	}
	else {
		this.ujcheckbox.className += ' ' + this.beallitasok[parameterek.stilus];
	}
	this.aktstilus = parameterek.stilus;
};

Checkbox.prototype.checkbox_keszit = function(checkbox) {
	var img = document.createElement('img');
	img.alt = '';
	img.src = this.imgsrc;
	img.className = checkbox.className;
	this.ujcheckbox = img;
	this.ujcheckbox.obj = this;
	this.ujcheckbox.checkbox = checkbox;
	checkbox.style.display = 'none';
	checkbox.obj = this;
	var stilus = ((checkbox.checked) ? 'aktiv' : 'normal');
	this.stilusvalt({stilus: stilus});
	checkbox.parentNode.insertBefore(this.ujcheckbox, checkbox.nextSibling);

	this.ujcheckbox.onclick = function() { this.obj.statuszvalt(); };
	this.ujcheckbox.onmouseover = function() { var stilus = ((this.checkbox.checked) ? 'aktiv' : 'over'); this.obj.stilusvalt({stilus: stilus}); };
	this.ujcheckbox.onmouseout = function() { var stilus = ((this.checkbox.checked) ? 'over2' : 'normal'); this.obj.stilusvalt({stilus: stilus}); };
}
