function getXmlHttpRequestObject() {
  var req;
  if(window.XMLHttpRequest) {
    try {
      req = new XMLHttpRequest();
    } catch(e) {
      req = false;
    }
        // branch for IE/Windows ActiveX version
  } else if(window.ActiveXObject) {
    try {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try {
        req = new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
        req = false;
      }
    }
  }
  return req;
}


var searchRequest = getXmlHttpRequestObject();
var searchString = "";

/* used in searchBar.jsp */
function searchSuggest() {
    if (!searchRequest) return;
    var state = searchRequest.readyState;
    if (state == 4 || state == 0) {
        var str = escape(document.getElementById('catSearchString').value);
        if(str.length < 3) {
            clearResults();
            return;
        } else if (str == searchString) {
          return;
        }
        searchString = str;
        searchRequest.open("GET", '/alt28/quickSearch/lucene?q=' + str, true);
        searchRequest.onreadystatechange = handleSearchSuggest;
        searchRequest.send(null);
    }
}

/* used in searchBar.jsp for lojaberta and others lovaviva dependent */
function searchSuggestWithContext(url) {
    if (!searchRequest) return;
    var state = searchRequest.readyState;
    if (state == 4 || state == 0) {
        var str = escape(document.getElementById('catSearchString').value);
        if(str.length < 3) {
            clearResults();
            return;
        } else if (str == searchString) {
          return;
        }
        searchString = str;
        searchRequest.open("GET", url + 'quickSearch/lucene?q=' + str, true);
        searchRequest.onreadystatechange = handleSearchSuggest;
        searchRequest.send(null);
    }
}


function handleSearchSuggest() {
    var state = searchRequest.readyState;
    if (state == 4) {
        var ss = document.getElementById('searchResults')
        var str = searchRequest.responseText;
        ss.innerHTML = str;
        setTimeout(searchSuggest, 0);
    }
}

function clearResults() {
    var ss = document.getElementById('searchResults')
    ss.innerHTML = "";
    searchString = "";
}
