var enhancements = function(){
	var e = getElementsByStyleClass("text labeled")
	for(i=0;i<e.length;i++) {
		setDefaultFieldVal(e[i].id);
		addEvents(e[i]);
	}
}();



/** HELPERS **/

function addEvents(el) {
	if (el.attachEvent) {
		el.attachEvent('onblur', blurEvent);
		el.attachEvent('onfocus', focusEvent);
	} else {
		el.addEventListener('blur', blurEvent, false); 
		el.addEventListener('focus', focusEvent, false); 
	}
}

function focusEvent() {
	if(document.all) {
		if (event.srcElement.value==findLabelTextFor(event.srcElement.id))	
			event.srcElement.value = "";
	} else {
		if(this.value==findLabelTextFor(this.id))
			this.value = "";
	}
}

function blurEvent() {
	if(document.all) {
		if (event.srcElement.value=="")	
			setDefaultFieldVal(event.srcElement.id);
	} else {
		if(this.value=="")
			setDefaultFieldVal(this.id);
	}
}

function getElementsByStyleClass (className) {
  var all = document.all ? document.all : document.getElementsByTagName('*');
  var elements = new Array();
  for (var e = 0; e < all.length; e++)
    if (all[e].className == className)
      elements[elements.length] = all[e];
  return elements;
}

function findLabelFor (elOrId) {
  var el = typeof elOrId == 'string' ? document.getElementById(elOrId) : elOrId;
  var labels = document.all? document.all.tags("LABEL") :document.getElementsByTagName('LABEL');
  var found = false;
  for (var l = 0; l < labels.length; l++)
    if (found = el.id == labels[l].htmlFor)
      break;
  if (found)
    return labels[l];
  else
    return null;
}

function findLabelTextFor (eid) {
  if (document.all)
	return findLabelFor(eid).innerText;

  return findLabelFor(eid).firstChild.nodeValue;
}

function setDefaultFieldVal(eid) {
	if (document.all)
		document.all(eid).value = findLabelTextFor(eid);
	else
		document.getElementById(eid).value = findLabelTextFor(eid);
}

