//11-26-07
var showCat = 0;

function handleOver() {
  showCat++;
  document.getElementById("categories").style.left = document.getElementById('zoomheader').offsetLeft - 30 + "px";
}

function handleOut() {
  showCat--;
  if (showCat <= 0) {
    document.getElementById("categories").style.left = "-10000px";
    showCat = 0;
  }
}

function closeCat() {
  showCat = 0;
  document.getElementById("categories").style.left = "-10000px";
}

function qsCatList(columns, exclude) {
  var div = document.createElement('div');
  if (exclude == '') {
    exclude = "General QuickFind";
  } else {
    exclude += ',General QuickFind';
  }
  var excluded = exclude.split(',');
  var usedCats = Array();
  for (var i = 0; i< category.length; i++ ) {
    if (exclude.indexOf(category[i][0][0]) == -1) {
      usedCats.push(category[i][0][0]);
    }
  }
  div.id = "categories";
//  div.onmouseover = handleOver;
//  div.onmouseout = handleOut;
  div.innerHTML = '<div id="QFtop"><div id="generalQF"><input type="checkbox" name="Databases" value="' + formCategoryList('General QuickFind') + '"onchange="processWFQForm();return 1;" checked>General QuickFind</div><div id="closeQF">Close [X]</div></div>';
  var offset = Math.ceil(usedCats.length / columns);
  for (var j=0; j<columns; j++) {
    var list = document.createElement('ul');
    for (var i=0; i<Math.ceil(offset); i++) {
      if ((j*offset + i) >= usedCats.length) {break;}
      var item = document.createElement('li');
      item.innerHTML = '<input type="checkbox" onchange="processWFQForm(); return 1;" name="Databases" value="' + formCategoryList(usedCats[j*offset + i]) + '"><a href="http://wfxsearch.webfeat.org/clients/wfxupitt/azList.asp?cat=' + usedCats[j*offset + i] + '">' + usedCats[j*offset+i] + '</a>';
      list.appendChild(item);
    }
    div.appendChild(list);
  }
  document.body.appendChild(div);
  document.getElementById('closeQF').onclick=closeCat;
}

function formCategoryList(categoryName)
{
  dbValue='';
  for (i=0; i< category.length; i++)
  {
    if (categoryName == category[i][0][0])
    {
      for (j=0; j<category[i][1].length; j++)
      {
        dbValue += ',' + category[i][1][j];
      }
      break;
    }
  }
  return dbValue.substr(1);
}

function validateTerms() {
  checkDBs();

  if (document.wfform.wf_term1.value == '') {
    alert('You must enter a search term!');
    return false;
  }
  return true;
}

function writeQS() {
  document.write('<form name=wfform action=" http://wfxsearch.webfeat.org/wfsearch/search" method=POST onSubmit="return validateTerms();">');
  document.write('<input type="hidden" value="Search" name="Command"/>');  
  document.write('<input type="hidden" value="11649" name="Client_ID"/>');
  document.write('<input type="hidden" name="rtmpl" value="js">');    
  document.write('<input type="hidden" name="format" value="JS">');
  document.write('<input type="hidden" name="wf_all_years" value="yes">');
  document.write('<input type="hidden" name="wf_codeset" value="utf-8">');
  document.write('<input type="hidden" name="noserial" value="1">');
  document.write('<input type="hidden" name="useSessions" value="1">');
  document.write('<input type="hidden" value="' + formCategoryList('Articles & Books') + ',' + formCategoryList('General QuickFind') +'" name="Databases"/>');
  document.write('<input type="hidden" value="wf_keyword" name="wf_field1"/>');
  document.write('<div id="zoom_search">');
  document.write('<h3>');
  document.write('<span>Search:</span>');
  document.write('<select name="Dbs" onChange="processWFQForm() ;return 1;">');
  document.write('<option value="both">Articles &amp; Books</option>');
  document.write('<option value="articles">Articles Only</option>');
  document.write('<option value="books">Books Only</option>');
  document.write('</select>');
  document.write('<input name="wf_term1" size="20" type="text" />'); 
  //document.write('<span id="subjectClick" onMouseOver="handleOver(); return true;">by Subject</span>');
  document.write('<span id="subjectClick" onClick="handleOver(); return true;">by Subject</span>');
  document.write('</h3>');
  document.write('</div>');
  document.write('<div id="zoom_btn">');
  document.write('<img src="images/index_zoom_btn.jpg" alt="" width="103" height="30" class="btn" />');
  document.write('</div>');
  document.write('</form>');
  window.onload = function() { qsCatList(3,'All Resources,Articles & Books, Articles Only,Books Only'); }
  document.getElementById('zoom_btn').onclick = function(){ if(validateTerms()) {document.wfform.submit();} }
}

function processWFQForm() {
  var dbs = '';
  switch (document.wfform.Dbs.value) {
    case 'articles':
      dbs += formCategoryList('Articles Only'); 
    break
    case 'books':
      dbs += formCategoryList('Books Only'); 
    break
    case 'both':
    default:
      dbs += formCategoryList('Articles & Books'); 
  }

  var dbElements = document.getElementsByName('Databases');
  for (var i = 0; i < dbElements.length; i++) {
    var element = dbElements[i];
    if (element.type == 'checkbox') {
      if (element.checked) {
        if (dbs != '') {
          dbs += ',';
        }
        dbs += element.value;
      }
    }
  }
  document.wfform.Databases.value = dbs;
}

function checkDBs()
{
  var noneSelected = true;

  if (document.wfform.Databases.value != null)
  {
    return true;
  }
  else
  {
    if (document.wfform.Databases.length == null)
    {
      // Only one checkbox present
      if (document.wfform.Databases.checked == true)
      noneSelected = false;
    }
    else
    {
      noneSelected = true;
      for (i=0; i< document.wfform.Databases.length; i++)
      {
        if (document.wfform.Databases[i].checked == true)
        {
          noneSelected = false;
        }
      }//end of for
    }//end of else
    if (noneSelected == true)
    {
      alert('Please select at least one database!');
      return false;
    }
    else
    {
      return true;
    }
  }
}
