/* *******************************************************
** LOOKUP.JS - JS LookUp Engine Library
** ====================================
** This library contains code to run the JS LookUp demos
** (Glossary, Products, Employees) for the September, 1999 
** JS ScriptHead column: JS LookUp Engine.
**
** Author      Ver  Date    Comments
** ======      ===  ====    ========
** Rick Scott  1.0  9/1/99  First release
**
** Copyright 1999, Rick Scott, all rights reserved.
******************************************************* */

var selboxOptions = new Array();  // 2D array for orig set of Select opts
var jsVersion = 1.0;              // for JS versioning customization
var inputTextValue = "";          // text string in LookUp input box

function populate_lookupSel()  // populate lookupSel Select box based
  {                            // on contents of inputText Text box
  var i, j;
  var selbox = document.lookupForm.lookupSel;
  var selboxLength = selboxOptions.length;
  var optionsArray = new Array(selboxLength);
  var inputTextStr = document.lookupForm.inputText.value.toLowerCase();

  for (i=0,j=0; i<selboxLength; i++)
    if (inputTextStr == selboxOptions[i][0].substring(0,inputTextStr.length).toLowerCase())
      optionsArray[j++] = new Option(selboxOptions[i][0], selboxOptions[i][1]);

  // add this final multispace blank option to maintain selbox width in IE!
  optionsArray[j++] = new Option("                                         ", "");

  for (i=0; i<selboxLength; i++)  // erase all old selbox options
    selbox.options[i] = new Option("", "");

  for (i=0; i<j; i++)             // populate selbox with new options
    selbox.options[i] = optionsArray[i];

  selbox.options[0].selected = true;  // select top lookupSel box item
  }

function lookup(url)  // display selected item's URL in contentsFrame
  {
  top.contentsFrame.location = url;
  }

function make_selboxOptions(text, value)  // build 2D selboxOptions[][] array
  {
  var newArray = new Array(text, value);
  selboxOptions[selboxOptions.length] = newArray;
  }

function alt_onKeyUp()  // JS 1.1 browsers use this alternate to onKeyUp
  {
  document.lookupForm.inputText.blur();   // you have to blur, then focus
  document.lookupForm.inputText.focus();  // again for Netscape 3.x!
  if (document.lookupForm.inputText.value != inputTextValue)
    populate_lookupSel();
  inputTextValue = document.lookupForm.inputText.value;
  setTimeout("alt_onKeyUp()",100);
  }

function init()  // initialize page
  {
  if (jsVersion < 1.1)
    {
    alert("\nJavaScript Version Error!\n\n" + 
          "Your browser supports JavaScript 1.0.\n" + 
          "It needs to support JavaScript 1.1+ for\n" + 
          "this LookUp demo to work properly.\n\n");
    return;
    }

  var selbox = document.lookupForm.lookupSel;
  var selboxLength = selbox.options.length;
  for (i=0; i<selboxLength; i++)  // make 2D selboxOptions[][] array
    make_selboxOptions(selbox.options[i].text, selbox.options[i].value)

  document.lookupForm.inputText.focus();  // set focus to inputText box

  if (jsVersion == 1.1)  // if JS 1.1, use this alternative to onKeyUp
    alt_onKeyUp();
  }
