var alImg = new Image();
alImg.src = "../images/ajax-circle16.gif";
function OnSearchAddr(addressPattern, locationType)
{
  if (!addressPattern) return;
  var seldAddrDivId = '';
  var premisesNoCtrlId = '';
  switch(locationType) {
    case locTypeOrigin:
      seldAddrDivId = 'seldOriginAddress';
      premisesNoCtrlId = originPremisesNo_CID;
        break;
    case locTypeDest:
      seldAddrDivId = 'seldDestAddress';
      premisesNoCtrlId = destPremisesNo_CID;
        break;
    case locTypeExs:
      seldAddrDivId = 'seldExsAddress';
      premisesNoCtrlId = exsPremisesNo_CID;
        break;
  }
  var elPremisesNo = $(premisesNoCtrlId);
  if (elPremisesNo.value == '')
  {
    if (!confirm("You have not entered a value for the Premises No.\n\nAre you sure that the Driver will be able to find the pickup?"))
    {
      elPremisesNo.focus();
      return false;
    }
  }
  $(seldAddrDivId).setHTML("<img src=\"images/ajax-circle16.gif\" alt=\"Loading...\" />");
  SendSearchAddressRequest(addressPattern, locationType);
}
function SendSearchAddressRequest(addressPattern, locationType)
{
  var params = 'locType=' + locationType  + '&addr=' + addressPattern + '&t=' + (new Date()).getTime();
  //var params = 'locType=' + locationType  + '&addr=' + addressPattern;
  var options = { method: 'get', postBody: params, onSuccess: function(text,xml) { showFoundAddrs(text,xml); }, onFailure: function(text,xml) { showFoundAddrs(text,xml); } };
  var url = "SearchAddresses.aspx";
  var ajax = new Ajax(url, options);
  ajax.request();
}
function getTagNode(el, tag)
{
  var a = el.getElementsByTagName(tag);
  if (a && a.length > 0) {
    return a[0];
  }
  return null;
}
function getTagNodes(el, tag)
{
  var a = el.getElementsByTagName(tag);
  return a;
}
function getNodeData(el)
{
  if (!el) return null;
  return el.firstChild.data;
}
function showFoundAddrs(responseText, responseXml)
{
  if (!responseXml) return;
  var locType = '';
  var error = false;
  var addrs = new Array();
  var de = responseXml.documentElement;
  if (de)
  {
    var _sa = false;
    if(de.nodeName == 'SA') _sa = de;
      else _sa = getTagNode(de, "SA");
      if (_sa)
      {
        var _lt = getTagNode(_sa, "LocType");
        locType = getNodeData(_lt);
        var _e = getTagNode(_sa, "Err");
      error = (getNodeData(_e) == "1");
        var _addrs = getTagNode(_sa, "Addrs");
        if (_addrs)
        {
          var _addrItems = getTagNodes(_addrs, "Addr");
          if (_addrItems)
          {
            var len = _addrItems.length;
            for(var i = 0; i < len; i++)
            {
              addrs.push(getNodeData(_addrItems[i]));
          }       
          }
        }
      }
  }
  var seldAddrDivId = '';
  var selAddrFunc = '';
  var floatDivId = '';
  var addrDivId = '';
  var hdnAddressIndexId = '';
  switch(locType) {
    case locTypeOrigin:
      seldAddrDivId = 'seldOriginAddress';
      selAddrFunc = 'SelectOriginAddress';
      floatDivId = 'originAddrFloatDiv';
      addrDivId = 'originAddrDiv';
      hdnAddressIndexId = 'originAddressIndex';
        break;
    case locTypeDest:
      seldAddrDivId = 'seldDestAddress';
      selAddrFunc = 'SelectDestAddress';
      floatDivId = 'destAddrFloatDiv';
      addrDivId = 'destAddrDiv';
      hdnAddressIndexId = 'destAddressIndex';
        break;
    case locTypeExs:
      seldAddrDivId = 'seldExsAddress';
      selAddrFunc = 'SelectExsAddress';
      floatDivId = 'exsAddrFloatDiv';
      addrDivId = 'exsAddrDiv';
      hdnAddressIndexId = 'currExsAddressIndex';
        break;
  }
  if (error)
  {
    $(seldAddrDivId).setHTML("<span class=\"addr-error-text\"><b>" + addrs[0] + "</b></span>");
  }
  else
  {
    $(seldAddrDivId).setHTML('');
    var len = addrs.length;
    if (len == 1)
    {
      $(seldAddrDivId).setHTML(addrs[0]);
      var elAddrIndex = $(hdnAddressIndexId);
      if (elAddrIndex.value != '0') ;//hide('bookNow');
      elAddrIndex.value = '0';
    }
    else if (len > 1)
    {
      document.onclick = newDocClick;
      var str = "";
      for(var i = 0; i < len; i++)
      {
        var addr = addrs[i];
        var litAddr = addr.replace(/\'/g, "\\'").replace(/\"/g, "&quot;");
        str += "<div" + (i > 0 ? " class='tb'" : "") +" onmousedown=\"" + selAddrFunc + "('" + litAddr + "','" + i
          + "')\" onmouseover=\"this.className='highlight" + (i > 0 ? " tb" : "") + "'\" onmouseout=\"this.className='background" + (i > 0 ? " tb" : "") + "'\" style=\"padding:2px 3px\">" + addr + "</div>";
      }
      if (str != "")
      {
        if ($('originAddrFloatDiv') && $('seldOriginAddress')) $('seldOriginAddress').setHTML('');
        if ($('destAddrFloatDiv') && $('seldDestAddress')) $('seldDestAddress').setHTML('');
        var x = $(seldAddrDivId).getLeft() + 7;
        var y = $(seldAddrDivId).getTop() + 6;
//        x -= $('exsPopupDiv').getLeft();
        x = 0;
        y -= $('exsPopupDiv').getTop();
        //alert(seldAddrDivId + '; x = ' + x + '; y = ' + y);
        $(seldAddrDivId).setHTML("<div id=\"" + floatDivId + "\" class=\"addr-float-div\" style=\"left:" + x + "px; top:" + y + "px\"><div id=\"" + addrDivId + "\" class=\"addr-div\">" + str + "</div></div>");
      }
    }
  }
}
