function terminate() {
}

function initialize() {
   bsniff = new sniffer();

   PreInitialize();
   amzsearch["amzsearch0"] = document.getElementById ("amzsearch0");
   amzsearch["searchfor0"] = document.getElementById ("searchfor0");
   amzsearch["productline0"] = document.getElementById ("productline0");
   amzsearch["matchtype0"] = document.getElementById ("matchtype0");
   amzsearch["browsecategory0"] = document.getElementById ("browsecategory0");
   amzsearch["gosearch"] = document.getElementById ("gosearch");
   amzsearch["orderby0"] = document.getElementById ("orderby0");
   amzsearch["SrcDiag0"] = document.getElementById ("SrcDiag0");
   amzsearch["AmzResults"] = document.getElementById ("AmzResults");
   amzsearch["AmzResultsFrame"] = document.getElementById ("AmzResultsFrame");
   amzsearch["MainTable"] = document.getElementById ("MainTable");

   // Set Any Read Only Date/Time Fields that are not initialized
   if (PlainPagePrint == 0)
      SetInitDateTime ();

   if (PlainPagePrint == 0) {
      // Set the Appropriate Buttons and Fields visible
      SetViewButtons (FormViewLevel);
      SetViewFields (FormViewLevel);
      SetViewImages (FormViewLevel);
   }

   // Make the main form visible
//   document.getElementById('MASTERDIV1_amzsearch').style.left = AllOffset;
   document.getElementById('MASTERDIV1_amzsearch').style.visibility = "visible";
   document.getElementById('MASTERDIV1_amzsearch').style.display = "";

   // Setup the List of products
   var reqsite = ServerName + "/query/getproductlines-pl.cgi";
   _initSelection (reqsite, "", 0, amzsearch.productline0);
   amzsearch.productline0.value = "Books";

   reqstr = "category=" + amzsearch.productline0.value;
   reqsite = ServerName + "/query/getbrowsenodes-pl.cgi";
   _initSelection (reqsite, reqstr, 0, amzsearch.browsecategory0);

   reqstr = "category=" + amzsearch.productline0.value;
   reqsite = ServerName + "/query/getsortorder-pl.cgi";
   _initSelection (reqsite, reqstr, 0, amzsearch.orderby0);
   AmzSearchInfo["sortname"] = amzsearch.orderby0.options[0].text;
   AmzSearchInfo["sortorder"] = amzsearch.orderby0.options[0].value;

   // invoke any InitSele(s)

   // invoke any field mask(s)

   // run now to simulate user tabbing
   MainCalculation();

   PostInitialize();
}

function PreInitialize() {
}

function PostInitialize() {
}

var _AltKey;
function KeyPress_Form(evt) {
   var K = evt.keyCode;

   // now, do something with the Esc-key
   if (K == 27) {
      K = 0;
   }
   return (K);
}
function KeyDown_Form(evt) {
   var K = evt.keyCode;
   var A = 0;

   // check for alt-key state
   if (_AltKey == 1) { // alt-key, get next key
      _AltKey = 0;
      A = K;
   }
   if (((typeof _AltKey) == "undefined" || _AltKey == 0) && K == 18) { // alt-key pressed
      _AltKey = 1;
      A = 0;
   }

}


function SetSubmitDateTime () {
}


function beforeSubmit () {
   SetSubmitDateTime ();
}

function afterSubmit () {
   SetInitDateTime ();
}

function SetInitDateTime () {
}



function onbeforeprint () {
   var _frm = amzsearch; // document.forms[0];
   var I = 0;
   PrintTransparentFlag = false;

   AllVOffset = document.getElementById('MASTERDIV1_amzsearch').style.top;
   if ((bsniff.ie55 || bsniff.ie6) && !bsniff.mac) {
      document.getElementById('MASTERDIV1_amzsearch').style.left = 0;
      document.getElementById('MASTERDIV1_amzsearch').style.top = 0;
      document.bgColor = "FFFFFF";

   }
   // hide non-printing fields

}

function onafterprint () {
   var _frm = amzsearch;  // document.forms[0];
   var I = 0;
   if ((bsniff.ie55 || bsniff.ie6) && !bsniff.mac) {
      document.getElementById('MASTERDIV1_amzsearch').style.left = AllOffset;
      document.getElementById('MASTERDIV1_amzsearch').style.top = AllVOffset;
      document.bgColor = "FF0000";
   }


   // restore non-printing fields
}

function FormPrintOffset () {
   document.getElementById('MASTERDIV1_amzsearch').style.left = 0
}


function FormPrintReset () {
   document.getElementById('MASTERDIV1_amzsearch').style.left = AllOffset
}


function SetViewButtons (Lev) {
   if (Lev != 0) {
      amzsearch.gosearch.disabled = true;
      amzsearch.gosearch.style.visibility = "hidden";
   }
}


function SetViewFields (Lev) {
   if (Lev != 0 && Lev != 0)
      amzsearch.searchfor0.readOnly = true;
   if (Lev != 0 && Lev != 0)
      amzsearch.productline0.disabled = true;
   if (Lev != 0 && Lev != 0)
      amzsearch.matchtype0.disabled = true;
   if (Lev != 0 && Lev != 0)
      amzsearch.browsecategory0.disabled = true;
   if (Lev != 0 && Lev != 0)
      amzsearch.orderby0.disabled = true;
}


function SetViewImages (Lev) {
}

function MainCalculation () {
}

function SetInitVBscript () {
   // this is empty to provide non-VBscript CGI compatibility
}

function NodeListPopulate (NodeIndex) {
   var nodeArray = AmzCategoryNames[NodeIndex];
   var J = 0;
   for (key in nodeArray) { J++; }
   var K = 0;
   amzsearch.browsecategory0.options.length = J;
   for (key in nodeArray) {
      amzsearch.browsecategory0.options[K].text = key;
      amzsearch.browsecategory0.options[K].value = nodeArray[key];
      K++;
   }
}

function lostf_searchfor (step) {
   if (!amzsearch.searchfor0.readOnly) {
      // Validate Text Field
      amzsearch.searchfor0.value = LimitInputArea (amzsearch.searchfor0.value, 1, 50);
      amzsearch.searchfor0.style.backgroundColor = Color_fldregular;
   } // end-if, not readonly
   MainCalculation();
}
function lostf_productline (step) {
   // Process Selection Field
   amzsearch.productline0.style.backgroundColor = Color_fldregular;
}
function lostf_matchtype (step) {
   // Process Selection Field
   amzsearch.matchtype0.style.backgroundColor = Color_fldregular;
}
function lostf_browsecategory (step) {
   // Process Selection Field
   amzsearch.browsecategory0.style.backgroundColor = Color_fldregular;
}
function lostf_gosearch () {

   var matchName = "";
   var searchName = amzsearch.searchfor0.value;
   if (searchName.length) {   
      for (var i = 0; i < amzsearch.productline0.length; i++) {
         if (amzsearch.productline0.options[i].selected) {
            productName = amzsearch.productline0.options[i].text;
            productIndexNumber = amzsearch.productline0.options[i].value;
            break;
         }
      }
      for (var i = 0; i < amzsearch.matchtype0.length; i++) {
         if (amzsearch.matchtype0.options[i].selected) {
            matchName = amzsearch.matchtype0.options[i].value;
            break;
         }
      }
      StartSearch (productName, searchName, matchName);
   }
   MainCalculation();
}
function lostf_orderby (step) {
   // Process Selection Field
   amzsearch.orderby0.style.backgroundColor = Color_fldregular;
}
function gotf_searchfor (step) {
   if (!amzsearch.searchfor0.readOnly) {
      amzsearch.searchfor0.style.backgroundColor = Color_fldcurrent;
   }
}
function gotf_productline (step) {
   amzsearch.productline0.style.backgroundColor = Color_fldcurrent;
}
function gotf_matchtype (step) {
   amzsearch.matchtype0.style.backgroundColor = Color_fldcurrent;
}
function gotf_browsecategory (step) {
   amzsearch.browsecategory0.style.backgroundColor = Color_fldcurrent;
}
function gotf_gosearch () {
   amzsearch.gosearch.style.backgroundColor = Color_fldcurrent;
}
function gotf_orderby (step) {
   amzsearch.orderby0.style.backgroundColor = Color_fldcurrent;
}
function change_productline (step) {
   // Process Selection Field

//   NodeListPopulate (amzsearch.productline0.value);

   reqstr = "category=" + amzsearch.productline0.value;
   reqsite = ServerName + "/query/getbrowsenodes-pl.cgi";
   _initSelection (reqsite, reqstr, 0, amzsearch.browsecategory0);

   reqstr = "category=" + amzsearch.productline0.value;
   reqsite = ServerName + "/query/getsortorder-pl.cgi";
   _initSelection (reqsite, reqstr, 0, amzsearch.orderby0);
   AmzSearchInfo["sortname"] = amzsearch.orderby0.options[0].text;
   AmzSearchInfo["sortorder"] = amzsearch.orderby0.options[0].value;

   MainCalculation();
}
function change_matchtype (step) {
   // Process Selection Field
   MainCalculation();
}
function change_browsecategory (step) {
   // Process Selection Field

   var browseName = "";
   var browseNumber = "";
   
   for (var i = 0; i < amzsearch.productline0.length; i++) {
      if (amzsearch.productline0.options[i].selected) {
         productName = amzsearch.productline0.options[i].text;
         productIndexNumber = amzsearch.productline0.options[i].value;
         break;
      }
   }
   for (var i = 0; i < amzsearch.browsecategory0.length; i++) {
      if (amzsearch.browsecategory0.options[i].selected) {
         browseName = amzsearch.browsecategory0.options[i].text;
         browseNumber = amzsearch.browsecategory0.options[i].value;
         break;
      }
   }
// alert (productName + " " + browseName);
   amzsearch.searchfor0.value = "";

   StartBrowse (productName, browseName, browseNumber);
   MainCalculation();
}
function change_orderby (step) {
   for (var i = 0; i < amzsearch.orderby0.length; i++) {
      if (amzsearch.orderby0.options[i].selected) {
         AmzSearchInfo["sortname"] = amzsearch.orderby0.options[i].text;
         AmzSearchInfo["sortorder"] = amzsearch.orderby0.options[i].value;
         break;
      }
   }
   // Process Selection Field
   MainCalculation();
}
function Validsubmit (frm, prm) {
   returnCode = Validtest (frm, prm);
   if (returnCode == true) {
      frm.action = save_amzsearch-pl.cgi();
      frm.target = "_top";
      beforeSubmit();
      frm.submit();
      afterSubmit();
   }
   return (returnCode);
}

function Validtest (frm, prm) {
   if (prm) {
      var msg = "Are you finished filling out this form?";
      if (!confirm (msg)) {
         return false;
      }
   }
   var I = 0;
   var errfld = null;
   var errfldindex = 9999;
   var errmsg = "";
   var SubmitID = MakeSubmitID();

   for (I = 0; I < frm.elements.length; I++) {
      if (frm.elements[I].className == "fldrequired") {
         if (isEmpty(frm.elements[I].value)) {
            errmsg += "\rYou MUST enter ";
            errmsg += frm.elements[I].name;
            if (frm.elements[I].tabIndex < errfldindex) {
               errfld = frm.elements[I];
               errfldindex = frm.elements[I].tabIndex;
            }
         }
      }
   }
   if (errmsg != "") {
      alert (errmsg);
      errmsg = "";
      returnCode = false;
      if (errfld != null)
         errfld.focus();
   }
   else
      returnCode = true;

   if (returnCode == true) {
      amzsearch.productline0.disabled = false;
      amzsearch.matchtype0.disabled = false;
      amzsearch.browsecategory0.disabled = false;
      amzsearch.orderby0.disabled = false;
   }
   return (returnCode);
}

function displayHome () {
   amzsearch.AmzResults.style.display = "none";
   amzsearch.MainTable.style.display = "";
}
