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) ? '-10000px' : '0px';
		      return true;
		    }
		  }
		}		
		window.onload = function () {
		  setTimeout(initOverLabels, 50);
		};