YAHOO.namespace('ipc.ath');
YAHOO.ipc.ath.config = {
    'searchfields': ['q', 'town_postcode'],
    'text_to_fill': 'Enter text..',
    'search_form_id': 'search_form'
};


YAHOO.ipc.ath.search = function() {
  var attachHandler = function() {
    if (YAHOO.ipc.ath.config.searchfields) {
      var l = YAHOO.ipc.ath.config.searchfields.length;
      for(var i = 0; i < l; i+=1) {
        var el = document.getElementById(YAHOO.ipc.ath.config.searchfields[i]);
        if (el) {
          YAHOO.util.Event.addListener(el,'focus',  clearFields);
          YAHOO.util.Event.addListener(el, 'blur', clearFields);
        }
      }
    }
    // attach for the onsubmit event
    var el1 = document.getElementById(YAHOO.ipc.ath.config.search_form_id);
    if (el1) {
      YAHOO.util.Event.addListener(el1,  'submit', fixDefaultValue)
    }
  },
  addDefaultValues = function() {
    if (YAHOO.ipc.ath.config.searchfields) {
      if (YAHOO.ipc.ath.config.text_to_fill) {
        var l = YAHOO.ipc.ath.config.searchfields.length;
        for(var i = 0; i < l; i+=1) {
          var el = document.getElementById(YAHOO.ipc.ath.config.searchfields[i]);
          el.value = YAHOO.ipc.ath.config.text_to_fill;
        }
      }
    }
  },
  fixDefaultValue = function(e) {
    if (YAHOO.ipc.ath.config.searchfields) {
      var l = YAHOO.ipc.ath.config.searchfields.length;
      for(var i = 0; i < l; i+=1) {
        var el = document.getElementById(YAHOO.ipc.ath.config.searchfields[i]);
        if (el) {
          if (YAHOO.ipc.ath.config.text_to_fill ==  el.value) {
            el.value = '';
          }
        }
      }
    }
  },

  clearFields = function(e) {
    if (YAHOO.ipc.ath.config.text_to_fill ==  this.value) {
      this.value = '';
    } else if ('' == this.value) {
      this.value = YAHOO.ipc.ath.config.text_to_fill;
    }
  }
  return {
    init: function() {
      addDefaultValues();
      attachHandler();
    }
  };
}();

YAHOO.util.Event.onDOMReady(YAHOO.ipc.ath.search.init);
