
function initHintedElements() {
	observeHintedElements(document.getElementsByTagName("input"));
	observeHintedElements(document.getElementsByTagName("textarea"));
}
	
function observeHintedElements(elements) {
    for (var i = 0; i < elements.length; i++) {
		var element = elements[i];
		
		if (Element.hasAttribute(element, "hint")) {
			var hint = Element.readAttribute(element, "hint");			
			setValueOnBlur(element, hint);
				
			Event.observe(element, "focus", doOnFocus);
			Event.observe(element, "blur", doOnBlur);
		}
	}
}

function doOnFocus(event) {
	var element = Event.element(event);
	setValueOnFocus(element, Element.readAttribute(element, "hint"));
}

function doOnBlur(event) {
	var element = Event.element(event);
	setValueOnBlur(element, Element.readAttribute(element, "hint"));
}

function setValueOnFocus(element, text) {
	element.style.color = "black";

	if (element.value == text)
		element.value = "";
	
	if (element.createTextRange) {
		var oRange = element.createTextRange();
		oRange.moveStart("character", 0);
		oRange.moveEnd("character", element.value.length);
		oRange.select();
	} else if (element.setSelectionRange) {
		element.setSelectionRange(0, element.value.length);
	}
}

function setValueOnBlur(element, text) {
	if (element.value.length > 0 && element.value != text)
		element.style.color = "black";
	else {
		element.style.color = "gray";
		element.value = text;
	}
}