function addEvent(element, eventType, lamdaFunction, useCapture) {
    if (element.addEventListener) {
        element.addEventListener(eventType, lamdaFunction, useCapture);
        
		return true;
		
    } else if (element.attachEvent) {
        var r = element.attachEvent('on' + eventType, lamdaFunction);
        
		return r;
		
    } else {

        return false;

    }
}

addEvent(window, 'load', init, false);
 
function init() {
	if(!document.getElementsByTagName) return;
    
	var formInputs = document.getElementsByTagName('input');

    for (var i = 0; i < formInputs.length; i++) {
        var theInput = formInputs[i];
        
        if ((theInput.type == 'text' || theInput.type == 'password') && theInput.className.match(/\bcleardefault\b/)) {  

            /* Add event handlers */          
            addEvent(theInput, 'focus', clearDefaultText, false);
            addEvent(theInput, 'blur', replaceDefaultText, false);
            
            /* Save the current value */
            if (theInput.value != '') {
                theInput.defaultText = theInput.value;
            }
        }
    }
    /* Add onsubmit function to form to clear default text before it's submitted */
	var formElements = document.getElementsByTagName('form');
	
	for (var i = 0; i < formElements.length; i++) {
		var theForm = formElements[i];
		addEvent(theForm, 'submit', clearDefaultsOnSubmit, false);
	}
}
 
function clearDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
//     alert('clearing ' + target);
    if (!target) return;
    
    if (target.value == target.defaultText) {
        target.value = '';
    }
}
 
function replaceDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) return;
    
    if (target.value == '' && target.defaultText) {
        target.value = target.defaultText;
    }
}

function clearDefaultsOnSubmit() {
	var formInputs = document.getElementsByTagName('input');
	
    for (var i = 0; i < formInputs.length; i++) {
        var theInput = formInputs[i];
        if ((theInput.type == 'text' || theInput.type == 'password') && theInput.className.match(/\bcleardefault\b/))
        {
			if (theInput.value == theInput.defaultText && theInput.value != 'password')
			{
				//alert ('changing ' + theInput.value + ' because it is equal to ' + theInput.defaultText);
				theInput.value = '';
			}
		}
	}
}