
var empty = document.getElementById('empty');
var emptyQuery = document.getElementById('emptyQuery');
var results = document.getElementById('results');
var resultsContainer = document.getElementById('resultsContainer');
var searchBox = document.getElementById('searchBox');
var searchForm = document.getElementById('searchForm');

var sc = new GSearchControl();
var ws = new GwebSearch();

var searchOptions = new GsearcherOptions();
searchOptions.setRoot(document.getElementById('results'));
searchOptions.setExpandMode(GSearchControl.EXPAND_MODE_OPEN);
sc.addSearcher(ws, searchOptions);

sc.setSearchCompleteCallback(null, searchComplete);
sc.draw(null);

searchForm.onsubmit = function() {
  if (searchBox.value != "") {
    sc.execute(searchBox.value);
    empty.style.display = 'none';
    
    showResults();
  }
  return false;
};

function hideResults() {
  resultsContainer.style.display = 'none';
}

function showResults() {
  resultsContainer.style.display = '';
}

function searchComplete(searchControl, searcher) {
  if (searcher.results.length == 0) {
    var q = document.createTextNode(searchBox.value);
  
    if (emptyQuery.childNodes.length > 0) {
      emptyQuery.replaceChild(q, emptyQuery.firstChild);
    } else {
      emptyQuery.appendChild(q);
    }

    empty.style.display = '';
  } else {
    // Hack in the full URLs
    var anchors = results.getElementsByTagName('a');
    for (var i = 0; i < anchors.length; i++) {
      if (anchors[i].parentNode &&
          anchors[i].parentNode.nextSibling &&
          anchors[i].parentNode.nextSibling.nextSibling &&
          anchors[i].parentNode.nextSibling.nextSibling.className ==
          'gs-visibleUrl') {
        anchors[i].parentNode.nextSibling.nextSibling.innerHTML = 
          anchors[i].href.substr(7);
      }
    } 
  }
}

