function InputPlaceholder(input, value, cssFilled, cssEmpty) {
  var thisCopy = this;
  
  this.Input = input;
  this.Value = value;
  this.SaveOriginal = (input.value==value);
  this.CssFilled = cssFilled;
  this.CssEmpty = cssEmpty;

  this.setupEvent(this.Input, 'focus', function() {return thisCopy.onFocus();})
  this.setupEvent(this.Input, 'blur',  function() {return thisCopy.onBlur();})
  this.setupEvent(this.Input, 'keydown', function() {return thisCopy.onKeyDown();})

  if(input.value=='') this.onBlur();

  return this;
}

InputPlaceholder.prototype.setupEvent = function(elem, eventType, handler) {
  if(elem.attachEvent) {  elem.attachEvent('on'+eventType, handler);  }
  if(elem.addEventListener) {  elem.addEventListener(eventType, handler, false);  }
}

InputPlaceholder.prototype.onFocus = function() {
  if(!this.SaveOriginal &&  this.Input.value==this.Value) {  this.Input.value='';  }
  else {  this.Input.className=this.CssFilled;  }
}

InputPlaceholder.prototype.onKeyDown = function() {
  this.Input.className=this.CssFilled;
}

InputPlaceholder.prototype.onBlur = function() {
  if(this.Input.value=='' || this.Input.value==this.Value) {
    this.Input.value=this.Value;
    this.Input.className=this.CssEmpty;
  }
  else {
    this.Input.className=this.CssFilled;
  }
}

