var Beviteli = function(szulo) {
	this.szulo_azonosito = szulo;
	this.szulo = $(szulo);
	this.szuloszelesseg = this.szulo.offsetWidth;
	this.azonosito = 'beviteli_mezo_' + szulo;
	this.alapertek = '';
	this.aktiv = false;
	this.beallitasok = {
		normal: 'beviteli_normal',
		over: false,
		aktiv: false
	};
	this.kapcsolodo_elem = null;
	this.jelszomezo = null;
	this.jelszo_text = null;
	this.jelszo_password = null;
	this.aktivstilus = null;
	var self = this;

	var konstruktor = function(arg) {
		if (arg.length == 2) {
			var initobject = arg[1];
			for (i in initobject) {
				self.beallitasok[i] = initobject[i];
			}
		}

		self.letrehoz();
	}(arguments);
};

Beviteli.prototype.ujelem = function(elem) {
	this.kapcsolodo_elem = elem;
};

Beviteli.prototype.letrehoz = function() {
	var a, div_kozep, div_balszel, div_jobbszel, div_teszt, div_tarto, input;

	if (this.szulo.alt && this.szulo.alt.length) {
		this.alapertek = this.szulo.alt;
	}
	this.jelszomezo = (this.szulo.type == 'password');
	if (this.jelszomezo && Bongeszo && Bongeszo.ie === false && this.szulo.value === '' && this.alapertek !== '') {
		this.szulo.type = 'text';
	}
	if (this.jelszomezo && Bongeszo && Bongeszo.ie && Bongeszo.ie < 7 && this.alapertek !== '') {
		this.jelszo_password = this.szulo.cloneNode(false);
		var _str = this.szulo.outerHTML.replace(/type=\"password/i, 'type="text');
		this.jelszo_text = d.createElement(_str);
		var _os = this.szulo.parentNode;
		_os.insertBefore(this.jelszo_text, this.szulo);
		_os.removeChild(this.szulo);
		this.szulo = this.jelszo_text;
	}
	input = this.szulo.cloneNode(false);
	if (input.value.length === 0 && this.alapertek.length && Bongeszo && this.alapertek !== '') {
		input.value = this.alapertek;
	}

	div_tarto = d.createElement('div');
	div_tarto.className = this.beallitasok.normal + ' input_tarto';
	div_tarto.id = this.azonosito;
	div_tarto.obj = this;

	div_kozep = d.createElement('div');
	div_kozep.className = 'input';
	div_kozep.appendChild(input);
	div_jobbszel = d.createElement('div');
	div_jobbszel.className = 'jobbszel';
	div_balszel = d.createElement('div');
	div_balszel.className = 'balszel';

	div_tarto.appendChild(div_balszel);
	div_tarto.appendChild(div_jobbszel);
	div_tarto.appendChild(div_kozep);

	this.aktivstilus = this.beallitasok.normal;
	input.obj = this;
	if (this.beallitasok.over !== false) {
		div_tarto.over_szamlalo = 0;
		div_tarto.onmouseover = function() { this.obj.stilusvalt({stilus: 'over'}); };
		div_tarto.onmouseout = function() { this.obj.stilusvalt({stilus: 'normal'}); };
	}
	input.onfocus = function() { this.obj.stilusvalt({stilus: 'aktiv', fokusz: true}); };
	input.onblur = function() { this.obj.stilusvalt({stilus: 'normal', fokusz: false}); };

	this.szulo.parentNode.replaceChild(div_tarto, this.szulo);
	var balszelesseg = div_balszel.offsetWidth;
	var jobbszelesseg = div_jobbszel.offsetWidth;
	div_tarto.style.width = div_kozep.style.width = input.style.width = (this.szuloszelesseg - balszelesseg - jobbszelesseg) + 'px';
	div_tarto.style.paddingLeft = balszelesseg + 'px';
	div_tarto.style.paddingRight = jobbszelesseg + 'px';
}

Beviteli.prototype.stilus = function(stilus) {
	$(this.azonosito).className = stilus;
};

Beviteli.prototype.stilusvalt = function(parameterek) {
	var _szulo = $(this.szulo_azonosito), _obj = $(this.azonosito);

	if (parameterek.stilus == 'over' && this.aktiv) {
		return false;
	}

	if (parameterek.fokusz !== undefined) {
		if (!this.jelszomezo) {
			if (_szulo.value == this.alapertek && parameterek.fokusz === true) {
				_szulo.value = '';
			}
			if (_szulo.value === '' && parameterek.fokusz === false) {
				_szulo.value = this.alapertek;
			}
		}

		if (parameterek.fokusz === true) {
			if (this.jelszomezo && self.alapertek !== '' && Bongeszo && Bongeszo.ie && Bongeszo.ie < 7 && _szulo.type == 'text' && _szulo.value == this.alapertek) {
				this.jelszo_password.onfocus = _szulo.onfocus;
				this.jelszo_password.onblur = _szulo.onblur;
				this.jelszo_password.obj = _szulo.obj;
				_szulo.onfocus = null;
				_szulo.onblur = null;
				var _os = _szulo.parentNode;
				this.jelszo_text = _os.removeChild(_szulo);
				_os.appendChild(this.jelszo_password);
				setTimeout("document.getElementById('" + this.szulo_azonosito + "').focus();", 20);
			}
			if (this.jelszomezo && self.alapertek !== '' && Bongeszo && Bongeszo.ie === false && _szulo.type == 'text' && _szulo.value == this.alapertek) {
				_szulo.type = 'password';
				_szulo.value = '';
				if (Bongeszo && Bongeszo.opera) {
					_szulo.focus();
				}
			}
			this.aktiv = true;
		}
		if (parameterek.fokusz === false) {
			if (this.jelszomezo && self.alapertek !== '' && Bongeszo && Bongeszo.ie && Bongeszo.ie < 7 && _szulo.value === '') {
				this.jelszo_text.onfocus = _szulo.onfocus;
				this.jelszo_text.onblur = _szulo.onblur;
				this.jelszo_text.obj = _szulo.obj;
				_szulo.onfocus = null;
				_szulo.onblur = null;
				var _os = _szulo.parentNode;
				var _str = this.jelszo_password.value;
				this.jelszo_password = _os.removeChild(_szulo);
				_os.appendChild(this.jelszo_text);
				this.jelszo_text.value = this.alapertek;
			}
			if (this.jelszomezo && self.alapertek !== '' && Bongeszo && Bongeszo.ie === false && _szulo.value === '') {
				_szulo.type = 'text';
				_szulo.value = this.alapertek;
			}
			this.aktiv = false;
		}
	}

	if (parameterek.stilus == 'normal' && this.aktiv === false) {
		if (this.aktiv === false || this.kapcsolodo_elem === null || (this.kapcsolodo_elem !== null && this.kapcsolodo_elem.aktiv === false)) {
			_obj.className = this.beallitasok.normal + ' input_tarto';
			this.aktivstilus = this.beallitasok.normal;
		}
		if (this.kapcsolodo_elem !== null && (this.aktiv === false || parameterek.masikelem === undefined && this.kapcsolodo_elem.aktiv === false)) {
			this.kapcsolodo_elem.stilusvalt({stilus: 'normal', masikelem: true, fokusz_elveszt: true});
		}
	}
	if (parameterek.stilus == 'over' && this.aktiv === false) {
		if (this.kapcsolodo_elem === null || (this.kapcsolodo_elem !== null && this.kapcsolodo_elem.aktiv === false)) {
			_obj.className = this.beallitasok.over + ' input_tarto';
			this.aktivstilus = this.beallitasok.over;
		}
		if (this.kapcsolodo_elem !== null && parameterek.masikelem === undefined && this.kapcsolodo_elem.aktiv === false) {
			this.kapcsolodo_elem.stilusvalt({stilus: 'over', masikelem: true});
		}
	}
	if (parameterek.stilus == 'aktiv') {
		if (this.beallitasok.aktiv !== false) {
			_obj.className = this.beallitasok.aktiv + ' input_tarto';
			this.aktivstilus = this.beallitasok.aktiv;
		}
		if (this.kapcsolodo_elem !== null && parameterek.masikelem === undefined) {
			this.kapcsolodo_elem.stilusvalt({stilus: 'aktiv', masikelem: true});
		}
	}
	return true;
};
