function HTAutoInput(element, descriptor) {
	var focusClass = false;
	var blurClass = false;
	if('focusClass' in descriptor) {
		focusClass = [ element.className, descriptor.focusClass ].join(' ');
	}
	if('blurClass' in descriptor) {
		if(focusClass === false) {
			focusClass = element.className;
		}
		blurClass = [ element.className, descriptor.blurClass ].join(' ');
	} else if(focusClass !== false) {
		blurClass = element.className;
	}

	var pass = false;
	if(element.nodeName.toLowerCase() == 'input' && element.type == 'password') {
		pass = true;
	}

	function _focus() {
		if(element.value == descriptor.value) {
			element.value = '';

			if(pass) {
				element.type = 'password';
			}

			if(focusClass !== false) {
				element.className = focusClass;
			}
		}
	}

	function _blur() {
		if(element.value == '') {
			if(pass) {
				element.type = 'text';
			}

			element.value = descriptor.value;

			if(blurClass !== false) {
				element.className = blurClass;
			}
		}
	}

	try {
		_blur();
	} catch(err) { // IE <= 8 alatt nem lehet a jelszó mezőt módosítani.
		return;
	}

	jgtc.captureEvent(element, "focus", _focus, false);
	jgtc.captureEvent(element, "blur", _blur, false);
}

jgtc.captureEvent(window, "load", function() {
	function makeAutoInput(es) {
		for(var i = 0; i < es.length; i++) {
			
			var attr = jgtc.safeGetAttribute(es[i], 'ht:value');
			if(attr != null) {
				var dattr = jgtc.safeGetAttribute(es[i], 'ht:valueDescriptor');
				var descr;
				if(dattr != null) {
					try {
						eval("descr = {" + dattr + "};");
					} catch(err) {
						console.warn("Invalid 'ht:valueDescriptor': %s", dattr);

						descr = { };
					}
				} else {
					descr = { };
				}

				descr.value = attr;
				new HTAutoInput(es[i], descr);
			}
		}
	}

	makeAutoInput(document.getElementsByTagName('INPUT'));
	makeAutoInput(document.getElementsByTagName('TEXTAREA'));

	console.log('ivalue.js');
}, true);

