var textbox_defaults = {
  init:function() {
    var els = document.getElementsByTagName("input");
    for (var i=0; i<els.length; i++) {
      if(els[i].getAttribute('type')!='text'){continue;}
      textbox_defaults.addEvent(els[i], 'focus', textbox_defaults.doFocus, false);
      textbox_defaults.addEvent(els[i], 'blur', textbox_defaults.doBlur, false);
      if (els[i].value == els[i].defaultValue) { els[i].style.color = '#777777'; }
    }
    var els = document.getElementsByTagName("textarea");
    for (var i=0; i<els.length; i++) {
      textbox_defaults.addEvent(els[i], 'focus', textbox_defaults.doFocus, false);
      textbox_defaults.addEvent(els[i], 'blur', textbox_defaults.doBlur, false);
      if (els[i].value == els[i].defaultValue) { els[i].style.color = '#777777'; }
    }
  },
  doBlur:function(e) {
    var element = textbox_defaults.getTarget(e);
    if (element.value == '') {
     element.value = element.defaultValue;
     element.style.color = '#777777';
    }
  },
  doFocus:function(e) {
    var element = textbox_defaults.getTarget(e);
    if (element.value == element.defaultValue) {
     element.value = '';
     element.style.color = '';
    }
  },
	getTarget:function(e){
		var target = window.event ? window.event.srcElement : e ? e.target : null;
		if (!target){return false;}
		while(target.nodeType!=1 && target.nodeName.toLowerCase()!='body'){
			target=target.parentNode;
		}
		return target;
	},
	cancelClick:function(e){
		if (window.event){
			window.event.cancelBubble = true;
			window.event.returnValue = false;
			return;
		}
		if (e){
			e.stopPropagation();
			e.preventDefault();
		}
	},
	addEvent: function(elm, evType, fn, useCapture){
		if (elm.addEventListener)
		{
			elm.addEventListener(evType, fn, useCapture);
			return true;
		} else if (elm.attachEvent) {
			var r = elm.attachEvent('on' + evType, fn);
			return r;
		} else {
			elm['on' + evType] = fn;
		}
	}
}
textbox_defaults.addEvent(window, 'load', textbox_defaults.init, false);