
  var ILabel=Class.create();
  ILabel.prototype={
    initialize: function(element)
    {
      this.element=element;
      this.createLabel();

      Event.observe( element, 'focus', this.focus.bindAsEventListener(this) );
      Event.observe( element, 'blur', this.blur.bindAsEventListener(this) );
      this.blur();
    },
    createLabel:function()
    {
      this.label=document.createElement("span");
      this.label.appendChild(document.createTextNode( this.getLabelText()));
      this.label.className="ilabel";
      this.label.style.position="absolute";
      
      this.element.parentNode.insertBefore(this.label, this.element);
      
      Event.observe(this.label, "click", this.linkLabelClicked.bindAsEventListener(this));
    },
    linkLabelClicked:function()
    {
      this.element.focus();
    },
    getLabelText:function()
    {
      return this.element.getAttribute('ilabel');
    },
    focus: function()
    {
      this.label.style.display="none";
    },
    blur: function()
    {
      if ( this.element.value=="" )
      	this.label.style.display="";
      else
      this.label.style.display="none";
      
    }
  }
  
  Event.observe(window, 'load', function() {
	  $A(document.body.getElementsByTagName('*')).each( function(element) {
	  	if (element.getAttribute('ilabel'))
		  new ILabel(element);
		  
	  });
  });