YAHOO.util.Event.onContentReady("account_search", function () {

  YAHOO.accountAutocomplete = function() {

      var oDS = new YAHOO.util.XHRDataSource("/account/indexJSON");
      oDS.responseType = YAHOO.util.XHRDataSource.TYPE_JSON;
      oDS.responseSchema = {
          resultsList : "list",
          fields : ["title", "client", "description", "url"]
      };
      oDS.maxCacheEntries = 5;

      // Instantiate the AutoComplete
      var oAC = new YAHOO.widget.AutoComplete("account_text", "account_search_result", oDS);
      oAC.resultTypeList = false;
      oAC.forceSelection = true;
      oAC.minQueryLength = 2;
      oAC.queryDelay = .5;
      oAC.maxResultsDisplayed = 20;

      oAC.formatResult = function(oResultData, sQuery, sResultMatch) {
        var aMarkup = [
          "<span title='",
          oResultData.description,
          "'>",
          oResultData.title,
          "<br>(",
          oResultData.client,
          ")</span>",
        ];
        return (aMarkup.join(''));
      };

      oAC.itemSelectEvent.subscribe(function(sType, aArgs) {
          var oResultData = aArgs[2]; // object literal of selected item's result data
          // Redirect
          window.location.href = oResultData.url;
      });

      return {
          oDS: oDS,
          oAC: oAC
      };
  }();

});
