/**
 * Initialise a station AutoComplete field.
 * @param elInput {HTMLElement} DOM element reference of an input field.
 * @param elInput {String} String ID of an input field.
 * @param elContainer {HTMLElement} DOM element reference of an existing DIV to contain the auto complete list.
 * @param elContainer {String} String ID of an existing DIV to contain the auto complete list.
 * @param oDataSource {YAHOO.widget.DataSource} DataSource instance.
 */
function createStationAutoComplete(elInput, elContainer, oDataSource) {
  var firefoxOffset = navigator.userAgent.indexOf("Firefox");
  if (firefoxOffset >= 0 && parseFloat(navigator.userAgent.substring(firefoxOffset+8)) < 1.5) {
    // Firefox 1.0 and earlier not supported
    return;
  }
  if (navigator.userAgent.indexOf("Netscape") >= 0) {
    // Recent versions of Netscpape also based on Gecko 1.0 (broken)
    return;
  }

  var oAutoComp = new YAHOO.widget.AutoComplete(elInput, elContainer, oDataSource);
  oAutoComp.maxResultsDisplayed = 20;
  oAutoComp.queryDelay = 0;
  var is_ie/*@cc_on = {
  // quirksmode : (document.compatMode=="BackCompat"),
    version : parseFloat(navigator.appVersion.match(/MSIE (.+?);/)[1])
  }@*/;
  
  if (is_ie && (is_ie.version < 7.0)) {
    oAutoComp.useIFrame = true;
  }
  oAutoComp.formatResult = function(resultItem, query) {
    if (resultItem.length > 1) {
      return resultItem[0] + " [" + resultItem[1] + "]";
    }
    return resultItem[0];
  };
  oAutoComp.doBeforeExpandContainer = function(oTextbox, oContainer, sQuery, aResults) {
    var pos = YAHOO.util.Dom.getXY(oTextbox);
    pos[1] += YAHOO.util.Dom.get(oTextbox).offsetHeight;
    YAHOO.util.Dom.setXY(oContainer,pos);
    YAHOO.util.Dom.get(oContainer).style.width = YAHOO.util.Dom.get(oTextbox).offsetWidth + "px";
    return true;
  };
}
