TouringMachine.suggestions = {
  accept: function(suggestions) {
    var input;
    $H(suggestions).each(function(id_value) {
      input = $(id_value[0]);
      input.value = id_value[1];
      if (input.highlight) input.highlight();
    });
    input.focus();
  }
};

TouringMachine.getSuggestions = (function() {
  var request = null;

  return function(form) {
    if (request) request.transport.abort();
    request = new Ajax.Request('new/suggest', {
      method: 'get',
      parameters: form.serialize()
    });
  };
})();

Event.observe(window, 'load', function() {
  $$('form.suggestible').each(function(form) {
    form.getElements().each(function(input) {
      input.observe('change', function(event) {
        TouringMachine.getSuggestions(form);
      });
    });

    var main = $('public_main');
    if (main) {
      main.insert({
        after: new Element('form', {
          'id': 'suggestions',
          'class': 'yui-u',
          'style': 'display: none'
        })
      });
    };
  });
});
