/*
	FromYoungPup's Well-Behaved DHTML: A Case Study article on SitePoint:
	http://www.sitepoint.com/article/behaved-dhtml-case-study
*/
	if (supportsDynamicLabels()) {
		document.triggerDynamicLabel = "dynamic";
		document.writeln('<style type="text/css">');
		document.writeln('label.'+document.triggerDynamicLabel+' { display:none; }');
		document.writeln('</style>');
		addEvent(window, "load", setupLabels);
	}
	function setupLabels() {
		/* temp setup - should be done from aspx */
		var nApply = document.getElementById("search");
		if(nApply) {
			var aLabels = nApply.getElementsByTagName("LABEL");
			for(var i=0; i<aLabels.length; i++) {
				aLabels[i].className = document.triggerDynamicLabel;
			}
		}
		/* end temp */
	
		var objLabels = document.getElementsByTagName("LABEL");
		var objField;
		
		for (var i = 0; i < objLabels.length; i++) {
		
			if (document.triggerDynamicLabel == objLabels[i].className) {
				objField = document.getElementById(objLabels[i].htmlFor);
            if (objField != null) {
   				addEvent(objField, "focus", focusDynamicLabel);
   				addEvent(objField, "blur", blurDynamicLabel);
   				objField._labelText = objLabels[i].firstChild.nodeValue;
   				objField.value = objField._labelText;
            }
			}
		}
		
		for (var i = 0; i < document.forms.length; i++) {
			addEvent(document.forms[i], "submit", resetLabels);
		}
	}
	function resetLabels(event) {
		var elm = getEventSrc(event);
		var objLabels = elm.getElementsByTagName("LABEL");
		var objField;
		
		for (var i = 0; i < objLabels.length; i++) {
			if (document.triggerDynamicLabel == objLabels[i].className) {
				objField = document.getElementById(objLabels[i].htmlFor);
			if (objField._labelText == objField.value) {
				objField.value = "";
			}
		}
		}
	}
	function focusDynamicLabel(event) {
		var elm = getEventSrc(event);
		if (elm._labelText == elm.value) {
			elm.value = "";
		}
	}
	function blurDynamicLabel(event) {
		var elm = getEventSrc(event);
		if ("" == elm.value) {
			elm.value = elm._labelText;
		}
	}
	function getEventSrc(e) {
		if (!e) e = window.event;
	
		if (e.originalTarget)
			return e.originalTarget;
		else if (e.srcElement)
			return e.srcElement;
	}
	function addEvent(objObject, strEventName, fnHandler) {
      if (objObject.addEventListener)
         objObject.addEventListener(strEventName, fnHandler, false);
      else if (objObject.attachEvent)
         objObject.attachEvent("on" + strEventName, fnHandler);
    }
    function supportsDynamicLabels() {
		return document.getElementById && 
		(window.attachEvent || window.addEventListener) &&
		null == navigator.appVersion.match(/Safari\/\d+$/);
    }
