function initOverLabels () {
  if (!document.getElementById) return;  	

  var overLabels_labels, overLabels_id, overLabels_field;

  // Set focus and blur handlers to hide and show 
  // LABELs with 'overlabel' class names.
  overLabels_labels = document.getElementsByTagName('label');
  for (var i = 0; i < overLabels_labels.length; i++) {
	
	if (overLabels_labels[i].className == 'overlabel') {

	  // Skip labels that do not have a named association
	  // with another field.
	  overLabels_id = overLabels_labels[i].htmlFor || overLabels_labels[i].getAttribute('for');
	  if (!overLabels_id || !(overLabels_field = document.getElementById(overLabels_id))) {
		continue;
	  }

	  // Change the applied class to hover the label 
	  // over the form field.
	  overLabels_labels[i].className = 'overlabel-apply';

	  // Hide any fields having an initial value.
	  if (overLabels_field.value !== '') {
		hideLabel(overLabels_field.getAttribute('id'), true);
	  }

	  // Set handlers to show and hide labels.
	  overLabels_field.onfocus = function () {
		hideLabel(this.getAttribute('id'), true);
	  };
	  overLabels_field.onblur = function () {
		if (this.value === '') {
		  hideLabel(this.getAttribute('id'), false);
		}
	  };

	  // Handle clicks to LABEL elements (for Safari).
	  overLabels_labels[i].onclick = function () {
		var overLabels_id, overLabels_field;
		overLabels_id = this.getAttribute('for');
		if (overLabels_id && (overLabels_field = document.getElementById(overLabels_id))) {
		  overLabels_field.focus();
		}
	  };

	}
  }
};

function hideLabel (overLabels_field_id, hide) {
  var overLabels_field_for;
  var overLabels_labels = document.getElementsByTagName('label');
  for (var i = 0; i < overLabels_labels.length; i++) {
	overLabels_field_for = overLabels_labels[i].htmlFor || overLabels_labels[i].getAttribute('for');
	if (overLabels_field_for == overLabels_field_id) {
	  overLabels_labels[i].style.textIndent = (hide) ? '-1000px' : '0px';
	  return true;
	}
  }
}

window.onload = function () {
  setTimeout(initOverLabels, 50);
};