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

var labels, id, field;

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

 if (labels[i].className == 'overlabel') {

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

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

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

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

 // Handle clicks to label elements (for Safari).
 labels[i].onclick = function () {
 var id, field;
 id = this.getAttribute('for');
 if (id && (field = document.getElementById(id))) {
 field.focus();
 }
 };

 }
 }
};

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

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