/** 
 *
 *  JS input watermark 
 *  
 *  @author Erling Limm (eibon.dott at gmail.com)
 */

var map = new Map;
          
function watermark(element, event) {
  if (element.value == map.get(element)) {
    element.value = '';
    element.style.color = "black";
  } else if (element.value == '' && event == 'blur') {
    element.value = map.get(element);
    element.style.color = "gray";
  }
}


function applyWatermark(object, text) {
  if (!object) return;
  object.value = object.value.replace(/^\s+|\s+$/g, '');
  object.value = map.put(object, (object.value ? object.value : text)).get(object);
  Event.observe(object, 'blur', function() { watermark(object, "blur"); });
  Event.observe(object, 'focus', function() { watermark(object, "focus"); });
  object.style.color = "gray";
}


function registerSubmit(object) {
  if (!object) return;
  //object.setAttribute('onclick', 'removeSuperfluousInput(); ' +
    //object.getAttribute('onclick'));
  Event.observe(object, 'mousedown', function() { removeSuperfluousInput(); });
}


function removeSuperfluousInput() {
  for (var i = 0; i++ < map.size; map.next()) {
    var object = map.key();
    if (object.value == map.value())
      object.value = '';
  }
}