
<!-- hide this script from non-JavaScript browsers

var MAX_ENGINES = 30;
var SNARK_STRING = "hunting+the+snark";

function MakeArray(n) {
   for (var i = 1; i <= n; i++) {
     this[i] = 0;
   }
   this.maxlen = n;
   this.len = 0;
   return this;
}

var engs = new MakeArray(MAX_ENGINES);

function find_substring(needle, haystack) {
   var i, needlen = needle.length, haylen = haystack.length;
   for (i=0; i<=haylen-needlen; i++) {
      if (needle == haystack.substring(i,i+needlen))
        return i;
   }
   return false;
}

function Engine(name, opts, home, search) {
  var snark = find_substring(SNARK_STRING, search);
  this.name = name;
  this.opts = opts;
  this.home = home;
  this.pre_snark = search.substring(0,snark);
  this.post_snark= search.substring(snark+SNARK_STRING.length, search.length);
}

function Add(name, opts, home, search) {
  engs.len++;
  if (engs.len <= engs.maxlen) {
    engs[engs.len] = new Engine(name, opts, home, search)
  }
  else {
    alert("Better increase MAX_ENGINES: " + engs.len + ">" + engs.maxlen)
  }
}

Add("AltaVista", "",
   "http://altavista.digital.com/",
   "http://altavista.digital.com/cgi-bin/query?pg=q&what=news&fmt=d&q=hunting+the+snark" );

Add("Google", "SELECTED",
   "http://www.google.com/",
   "http://www.google.com/search?q=hunting+the+snark" );

Add("HotBot", "",
   "http://www.hotbot.com",
   "http://www.hotbot.com/default.asp?MT=hunting+the+snark&DC=25");

Add("Lycos", "",
   "http://www.lycos.com/",
   "http://www.lycos.com/cgi-bin/pursuit?query=hunting+the+snark");

Add("Webcrawler","",
   "http://www.webcrawler.com/",
   "http://query.webcrawler.com/cgi-bin/WebQuery?searchText=hunting+the+snark");

Add("Yahoo!", "",
   "http://www.yahoo.com/",
   "http://search.yahoo.com/bin/search?p=hunting+the+snark");

// ADD YOUR OWN SEARCH ENGINES ABOVE.  (See http://www.cs.cmu.edu/~jab/snark/ )

function HandleForm(form) {
  form.submit();  // This fixes a mysterious Netscape bug.  Without this line,
                  // you can't use <enter> to start the search the first time.
  var i, oldq=form.query.value, newq="";
  for (i=0; i<oldq.length; i++) {  // compress [ ]+ into \+
    var thischar = oldq.charAt(i);
    if (thischar != ' ')
      newq += thischar;
    else if (lastchar != ' ')
      newq += '+';
    lastchar = thischar;
  }
  var eng = engs[1+form.service.selectedIndex];
  location.href = newq ? eng.pre_snark + newq + eng.post_snark : eng.home;
}

function DisplayForm() {
  document.writeln('<FORM OnSubmit="HandleForm(this); return false">');
  document.writeln('<div style="margin-top:-15px;font-family:arial,helvetic; font-size:11px; color:336699;"><b>SEARCH THE INTERNET</b></div><INPUT style="WIDTH: 140px; PADDING-LEFT: 2px; BORDER-LEFT: #cccccc 1px solid; BORDER-RIGHT: #777777 1px solid; BORDER-TOP: #cccccc 1px solid; BORDER-BOTTOM: #777777 1px solid; BACKGROUND-COLOR: #FFFFCC; FONT-FAMILY: Verdana; FONT-SIZE: 10px; COLOR: #444444; HEIGHT: 18px;" size=28 name="query">');
document.writeln('<SELECT type=hidden style="BORDER-RIGHT: #999999 1px solid; BORDER-TOP: #999999 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 10px; BORDER-LEFT: #999999 1px solid; WIDTH: 100px; BORDER-BOTTOM: #999999 1px solid; FONT-FAMILY: Verdana; COLOR: #333333; HEIGHT: 16px; BACKGROUND-COLOR: #FFFFeF" name="service">');
  for (i=1; i <= engs.len; i++) {
    document.writeln("<OPTION " + engs[i].opts + "> " + engs[i].name);
  }
  document.writeln('</SELECT><img border=0 src=1a/bg/1.gif width=3><input type=image value="GO" src=1a/nav/GO35x18.gif width=35 height=18 border=0 align="absmiddle">');
}

DisplayForm();

// done hiding from old browsers -->
