// Willfully borrowed and adapted from Mike Brittain's article on AListApart.com
// http://www.alistapart.com/articles/makingcompactformsmoreaccessible/

function initOverLabels () {
	if (!document.getElementById) return;

	var labels, id, field;

	labels = document.getElementById('form-send').getElementsByTagName('label');
	for (var i = 0; i < labels.length; i++) {

		// 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)) || 
			(labels[i].htmlFor == 'offers' || labels[i].getAttribute('for') == 'offers')) {
			continue;
		} 

		// 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.left = (hide) ? '-1000px' : '13px';
			return true;
		}
	}
}

window.addEvent('domready', function () {
	setTimeout(initOverLabels, 50);
});
