
google.load("search", "1");


var timerId;
var input;
var lastSearch = 0;
var contentDiv;

function search(query) {
  lastSearch++;
  webSearch = new google.search.WebSearch();
  webSearch.setResultSetSize(google.search.Search.LARGE_RESULTSET);
  webSearch.setSearchCompleteCallback(this, searchComplete, [webSearch, lastSearch]);
  webSearch.execute(query);
}

function autoSearch() {
  // we're in the event's scope, that means this keyword = the input box.
  var query = this.value;

  // clear timer if there is one, set a new timer to do a search
  if (timerId) {
    window.clearTimeout(timerId);
    timerId = null;
  }
  timerId = window.setTimeout('search(\'' + query + '\')', 250);

}

function searchComplete(searcher, searchNum) {
  // Only display results if this search was the last one done.
  if (searchNum == lastSearch) {
    // clear last search if it exists
    var lastResults = document.getElementById('results');
    if (lastResults) {
      lastResults.parentNode.removeChild(lastResults);
    }

    var results = searcher.results;
    var newResultsDiv = document.createElement('div');
    newResultsDiv.id = 'results';
    for (var i = 0; i < results.length; i++) {
      var result = results[i];
      var resultHTML = '<a href="' + result.unescapedUrl + '" target="_blank">' +
                        result.content +
                        '</a><br/><br/>';
      newResultsDiv.innerHTML += resultHTML;
    }
    contentDiv.appendChild(newResultsDiv);
  }
}
/*
    function OnLoad() {
        // Create a search control
        searchControl = new GSearchControl();

        // add a regular web search, with a custom label 'web'
        var webSrearch = new GwebSearch();
        webSrearch.setUserDefinedLabel("web");
        searchControl.addSearcher(webSrearch);

        // add a site-limited web search, with a custom label
        var siteSearch = new GwebSearch();
        siteSearch.setUserDefinedLabel("KenEgozi.com");
        siteSearch.setSiteRestriction("kenegozi.com");
        searchControl.addSearcher(siteSearch);

        // add a blog search, with a custom label
        var blogsSrearch = new GblogSearch();
        blogsSrearch.setUserDefinedLabel("weblogs");
        searchControl.addSearcher(blogsSrearch);

        // setting the draw mode for the Google search
        var drawOptions = new GdrawOptions();
        // use tabbed view
        drawOptions.setDrawMode(GSearchControl.DRAW_MODE_TABBED);
        // set the input field (instead of the default one)
        drawOptions.setInput(document.getElementById('query'));
        // actually write the needed markup to the page
        searchControl.draw(document.getElementById("searchcontrol"), drawOptions);
        // set the google logo container
        GSearch.getBranding(document.getElementById("branding"));
    }


function OnLoad() {
  contentDiv = document.getElementById('content');
  input = new google.search.SearchForm(true, contentDiv);
  input.input.onkeyup = autoSearch;
  input.setOnSubmitCallback = function() {
    search(input.input.value);
  };
}

*/
	function OnLoad() {
      // Create a search control
      var searchControl = new google.search.SearchControl();

      // Add in a full set of searchers
      //var localSearch = new google.search.LocalSearch();
      //searchControl.addSearcher(localSearch);
      searchControl.setResultSetSize(google.search.Search.LARGE_RESULTSET);  
      searchControl.addSearcher(new google.search.WebSearch());
      searchControl.addSearcher(new google.search.NewsSearch());
      searchControl.addSearcher(new google.search.ImageSearch());
      searchControl.addSearcher(new google.search.VideoSearch());
      searchControl.addSearcher(new google.search.BlogSearch());
      searchControl.addSearcher(new google.search.BookSearch());

      var drawOptions = new google.search.DrawOptions();
  	drawOptions.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED);
  	drawOptions.setInput(document.getElementById("searchText"));


      // Tell the searcher to draw itself and tell it where to attach
      searchControl.draw(document.getElementById("searchcontrol"), drawOptions);
      //searchControl.getBranding(document.getElementById("branding"));

      google.search.Search.getBranding(document.getElementById("branding"));

    }

    google.setOnLoadCallback(OnLoad);


var currentSearch = 'google';
var sCount = "";
var slCount = ""
var t = "";
function showOptions()
{
	if (document.getElementById("menu").style.visibility=="hidden")
	{
		document.getElementById("menu").style.visibility="visible";
		lookDownRight();
	} else {
		document.getElementById("menu").style.visibility="hidden";
	}
}

function switchImg(target)
{
	currentSearch = target;
	document.getElementById("buttonImg").src="images/" + target + "Button.gif";
	showOptions();
	submitSearch(target);
}

function submitSearch(target)
{
	if (document.getElementById('searchText').value != "")
	{
		targetForm = document.getElementById(target + "Search");
		targetForm.elements["q"].value = document.getElementById("searchText").value;
		lookUp();
		targetForm.submit();
	}
}

function blink() {
	if (eyes != "")	document.getElementById(eyes).style.display="none";
	document.getElementById("gnu").style.visibility = "hidden";
	var t2 = setTimeout("endblink()",100);
	timedCount();
	
}

function endblink() {
	document.getElementById("gnu").style.visibility = "visible";
	if (eyes != "")	document.getElementById(eyes).style.display="block";
}

function blinkOnce() {
	document.getElementById("gnu").style.visibility = "hidden";
	var t2 = setTimeout("endblink()",400);
}


function animate(action)
{
	//if (looking == "up")
	//	;
		//document.getElementById("gnuBlink").style.display="none";
	//else {
	//	document.getElementById("gnuLookDown").style.display="none";
	//	document.getElementById("gnuLookDownRight").style.display="none";
	//}
	document.getElementById(action).style.display="block";
	setTimeout("animateOff('" + action + "')", 400);
	wakeup();
}

function animateOff(action)
{
	document.getElementById(action).style.display="none";
	//if (looking == "up")
	//	;
		//document.getElementById("gnuBlink").style.display="block";
	//else
	//	document.getElementById("gnus").style.display="block";

}


var looking = "up";
var eyes = "";
var upTimer = "";

function lookDown(event, e) {

	if (looking == 'asleep')
		jump();
	var len = e.value.length;
	if (eyes != "")
		document.getElementById(eyes).style.display="none";
	if (upTimer != "")
		clearTimeout(upTimer);
	if (len <= 7) {
		document.getElementById("e1").style.display="block";
		eyes = "e1";	
	} else if (len <= 12) {	
		document.getElementById("e2").style.display="block";
		eyes = "e2";
	} else if (len <= 17) {
		document.getElementById("e3").style.display="block";
		eyes = "e3";
	} else if (len <= 22) {
		document.getElementById("e4").style.display="block";
		eyes = "e4";
	} else if (len <= 27) {
		document.getElementById("e5").style.display="block";
		eyes = "e5";
	} else {
		document.getElementById("e6").style.display="block";
		eyes = "e6";
	}		
			
	//document.getElementById("gnuLookDownRight").style.display="none";
	//document.getElementById("gnuLookDown").style.display="block";
	wakeup();
	looking = "down";
	upTimer = setTimeout("lookUp()", 5000);


	//var Key = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;

	//if (Key== 13)
	//	submitSearch(currentSearch);
}

function lookUp() {
//	if (looking = "down")
//	{
		if (eyes != "")
			document.getElementById(eyes).style.display="none";
		//document.getElementById("gnuLookDown").style.display="none";
		//document.getElementById("gnuLookDownRight").style.display="none";
		//document.getElementById("gnuBlink").style.display="block";
		looking = "up";
		eyes = "";
		clearTimeout(sCount);
		startSleepCount();
//	}
}

function jump()
{
	animate('gnuLeft');
	animate('gnuRight');
	animate('gnuSnort');
}

function wakeup()
{
	document.getElementById("gnuSleepy").style.display="none";
	document.getElementById("gnuAsleep").style.display="none";
	clearTimeout(slCount);
	clearTimeout(sCount);
	clearTimeout(t);
	timedCount();
	startSleepCount();
	looking = "up";
}

function lookDownRight() {
//	if (looking = "up")
//	{
		//document.getElementById("gnuBlink").style.display="none";
		document.getElementById("gnuLookDown").style.display="none";

		document.getElementById("gnuLookDownRight").style.display="block";
		looking = "down";
		setTimeout("lookUp()", 8000);
		wakeup();
//	}
}


function timedCount()
{
	t=setTimeout("blink()",8000);
}


function asleep()
{
	clearTimeout(slCount);
	clearTimeout(t);
	document.getElementById("gnuSleepy").style.display="none";
	document.getElementById("gnuAsleep").style.display="block";
	looking = "asleep";
}

function sleepy()
{
	clearTimeout(sCount);
	//clearTimeout(t);
	slCount = setTimeout("asleep()", 25000);
	document.getElementById("gnuAsleep").style.display="none";
	document.getElementById("gnuSleepy").style.display="block";
	looking = "sleepy";
}

function startSleepCount()
{
	sCount = setTimeout("sleepy()", 25000);
}
