var autoPopulate = {
	sInputClass:'autoclear', 
	sHiddenClass:'structural', 
	bHideLabels:true, 
	init:function() 
    {
		if (!document.getElementById || !document.createTextNode) 
        {
            return;
        }

		var arrInputs = autoPopulate.getElementsByClassName(document, 'input', autoPopulate.sInputClass);
		var iInputs = arrInputs.length;
		var oInput;
		for (var i=0; i<iInputs; i++) 
        {
			oInput = arrInputs[i];

			if (oInput.type != 'text' && oInput.type != 'password') 
            { 
                continue; 
            }
			
			if (autoPopulate.bHideLabels) 
            { 
                autoPopulate.hideLabel(oInput.id); 
            }

			if ((oInput.value == '') && (oInput.title != '')) 
            { 
                oInput.value = oInput.title; 
            }

			autoPopulate.addEvent(oInput, 'focus', function() 
            {
				if (this.value == this.title) 
                {
					this.value = '';
					this.select(); 
				}
			});
			autoPopulate.addEvent(oInput, 'blur', function() 
            {
				if (!this.value.length) 
                { 
                    this.value = this.title; 
                }
			});
		}
	},
	
	hideLabel:function(sId) {
		var arrLabels = document.getElementsByTagName('label');
		var iLabels = arrLabels.length;
		var oLabel;
		for (var i=0; i<iLabels; i++) 
        {
			oLabel = arrLabels[i];
			if (oLabel.htmlFor == sId) 
            {
				oLabel.className = oLabel.className + ' ' + autoPopulate.sHiddenClass;
			}
		}
	},
	
	getElementsByClassName:function(oElm, strTagName, strClassName) {
	    var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
	    var arrReturnElements = new Array();
	    strClassName = strClassName.replace(/\-/g, "\\-");
	    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	    var oElement;
	    for(var i=0; i<arrElements.length; i++)
        {
	        oElement = arrElements[i];      
	        if(oRegExp.test(oElement.className))
            {
	            arrReturnElements.push(oElement);
	        }   
	    }
	    return (arrReturnElements);
	},
	
	addEvent:function(obj, type, fn) 
    {
		if (obj.addEventListener)
		{
			obj.addEventListener(type, fn, false);
		}
		else if (obj.attachEvent) 
        {
			obj["e"+type+fn] = fn;
			obj[type+fn] = function() 
            {
                obj["e"+type+fn](window.event);
            }
			obj.attachEvent("on"+type, obj[type+fn]);
		}
	}
};
autoPopulate.addEvent(window, 'load', autoPopulate.init);