//requires prototype.js

var linkFacilitatorSearchResultsCallback = function(result_id, kind) {
  $$('#'+result_id + ' li').each(function(el) {
    try {
      var run = el.id.match('schoolrun-([^-]+)')[1];
      var thing = el.id.match(kind+'-([^-]+)')[1];
      var linkArgs = {'run': run, 'add': kind};
      linkArgs[kind] = thing;
      linkArgs = $H(linkArgs);
      var link = new Element('a', { href: '?' + linkArgs.toQueryString() });
      link.innerHTML = 'Add ' + el.innerHTML + ' &raquo;';
      el.update(link);
    } catch (e) {
      alert(e);
    }
  });
};

var facilitatorSearchObserverCallback = function(el, kind, value) {
  var result_id = el.id+'-results';
  var working = $(el.id+'-indicator');
  if (working) working.show();
new Ajax.Updater(
    result_id,
    '/mason/ajax/search.html', {
      parameters: {
        kind: kind,
        q: value,
        hints: 1,
        prefix: el.id+'-'+kind+'-'
      },
      onComplete: function() { linkFacilitatorSearchResultsCallback(result_id, kind); 
  	if (working) working.hide();
      }
    }
  );
};

var createFacilitatorSearchObservers = function() {
  ['admin'].each(function(kind) {
    $$('input.schoolrun-' + kind + 's-search').each(function(el) {
      new Form.Element.Observer(el, 0.2, function(el, value) {
        facilitatorSearchObserverCallback(el, kind, value);
      });
    });
  });
};

document.observe('dom:loaded', function() {
  // check to see if this page manages facilitators, and prep the DOM if needed
  if ($$('manage-schoolrun')) {
    createFacilitatorSearchObservers();
  }
});

