// JavaScript Document
function initOverLabels()
{
	if (!document.getElementById) return;
	
	var labels, id, field;
	
	//Set focus on 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, 0);
};