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