var strSelectedTab = 'CLIO';
var strImagesPath = "http://www.columbia.edu/cu/lweb/img/assets/6735/";

//////////////////////////
// Code to insert AND between Keywords
// Copyright Regents of the University of California 2004
// Modified for Columbia use June 2006

function CLIOQuickSearch()
{
  var str1;

  // extract the index chosen by the user. if set to CMD (keyword)
  // insert AND in the search string, etc.

  var srchSelect = document.frmCLIO.code;
  var srchType = srchSelect.options[srchSelect.selectedIndex].value;

  //if keyword, fix the search arg(s)
  if( srchType == "CMD" )
  {
    str1 = document.frmCLIO.search.value;

    // remove initial spaces
    str1 = str1.replace(/^\s+/, "");
    // rm any trailing spaces
    str1 = str1.replace(/\s+$/, "");
    // replace two or more spaces with single space
    str1 = str1.replace(/(\s){2,}/g, " ");
    // insert space(s) inside of any adjancent double quote delimiters (eg "term1""term2"; "term1"term2"term3")
    str1 = str1.replace(/\"\"/g, "\" \"");

    var qstate = 0;
    var pstring = "";
    var regx1 = /(.)/;
    var currentMatch;

    ///////////// top of loop ////////////////
    while( str1 )
    {
      // check for special code
      if( str1.search(/^100A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '100A ';}
      else if( str1.search(/^110A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '110A ';}
      else if( str1.search(/^111A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '111A ';}
      else if( str1.search(/^130A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '130A ';}
      else if( str1.search(/^210A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '210A ';}
      else if( str1.search(/^240A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '240A ';}
      else if( str1.search(/^245A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '245A ';}
      else if( str1.search(/^246A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '246A ';}
      else if( str1.search(/^260A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '260A ';}
      else if( str1.search(/^260B\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '260B ';}
      else if( str1.search(/^260C\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '260C ';}
      else if( str1.search(/^262K\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '262K ';}
      else if( str1.search(/^262L\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '262L ';}
      else if( str1.search(/^400N\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '400N ';}
      else if( str1.search(/^400T\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '400T ';}
      else if( str1.search(/^410N\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '410N ';}
      else if( str1.search(/^410T\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '410T ';}
      else if( str1.search(/^411N\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '411N ';}
      else if( str1.search(/^411T\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '411T ';}
      else if( str1.search(/^440T\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '440T ';}
      else if( str1.search(/^490T\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '490T ';}
      else if( str1.search(/^600A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '600A ';}
      else if( str1.search(/^610A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '610A ';}
      else if( str1.search(/^611A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '611A ';}
      else if( str1.search(/^630A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '630A ';}
      else if( str1.search(/^650A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '650A ';}
      else if( str1.search(/^651A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '651A ';}
      else if( str1.search(/^653A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '653A ';}
      else if( str1.search(/^655A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '655A ';}
      else if( str1.search(/^690A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '690A ';}
      else if( str1.search(/^691A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '691A ';}
      else if( str1.search(/^700A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '700A ';}
      else if( str1.search(/^700T\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '700T ';}
      else if( str1.search(/^710A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '710A ';}
      else if( str1.search(/^710T\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '710T ';}
      else if( str1.search(/^711A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '711A ';}
      else if( str1.search(/^711T\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '711T ';}
      else if( str1.search(/^730A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '730A ';}
      else if( str1.search(/^740A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '740A ';}
      else if( str1.search(/^760A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '760A ';}
      else if( str1.search(/^762A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '762A ';}
      else if( str1.search(/^765A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '765A ';}
      else if( str1.search(/^767A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '767A ';}
      else if( str1.search(/^770A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '770A ';}
      else if( str1.search(/^772A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '772A ';}
      else if( str1.search(/^773A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '773A ';}
      else if( str1.search(/^775A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '775A ';}
      else if( str1.search(/^776A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '776A ';}
      else if( str1.search(/^777A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '777A ';}
      else if( str1.search(/^780A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '780A ';}
      else if( str1.search(/^780T\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '780T ';}
      else if( str1.search(/^785A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '785A ';}
      else if( str1.search(/^785T\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '785T ';}
      else if( str1.search(/^787A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '787A ';}
      else if( str1.search(/^800N\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '800N ';}
      else if( str1.search(/^800T\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '800T ';}
      else if( str1.search(/^810N\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '810N ';}
      else if( str1.search(/^810T\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '810T ';}
      else if( str1.search(/^811N\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '811N ';}
      else if( str1.search(/^811T\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '811T ';}
      else if( str1.search(/^830T\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '830T ';}
      else if( str1.search(/^948A\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + '948A ';}
      else if( str1.search(/^GKEY\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + 'GKEY ';}
      else if( str1.search(/^ISBN\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + 'ISBN ';}
      else if( str1.search(/^ISSN\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + 'ISSN ';}
      else if( str1.search(/^JKEY\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + 'JKEY ';}
      else if( str1.search(/^NKEY\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + 'NKEY ';}
      else if( str1.search(/^NOTE\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + 'NOTE ';}
      else if( str1.search(/^NPUB\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + 'NPUB ';}
      else if( str1.search(/^OPUS\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + 'OPUS ';}
      else if( str1.search(/^PUBL\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + 'PUBL ';}
      else if( str1.search(/^PUBP\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + 'PUBP ';}
      else if( str1.search(/^SERI\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + 'SERI ';}
      else if( str1.search(/^SKEY\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + 'SKEY ';}
      else if( str1.search(/^TKEY\s/i) == 0 ){
      str1 = str1.replace(/.{5}/, "");
      pstring = pstring + 'TKEY ';}
      
      // remove and store the first char of the string
      str1 = str1.replace(regx1, "");
      currentMatch = RegExp.$1;
      if( currentMatch == "\"" )
      {
        if( qstate == 0 )
        {
          qstate = 1;
        }
        else
        {
          qstate = 0;
        }
        pstring = pstring + currentMatch;
      }
      else
      {
        if( qstate == 0 )
        {
          if( currentMatch == " " )
          {
            // "0" is the postion in the string where "and " starts
            if( str1.search(/^and\s/i) == 0 || str1.search(/^and\"/i) == 0 )
            {
              str1 = str1.replace(/.{4}/, "");
              pstring = pstring + ' AND ';
            }
            else if( str1.search(/^or\s/i) == 0 || str1.search(/^or\s/i) == 0 )
            {
              str1 = str1.replace(/.{3}/, "");
              pstring = pstring + ' OR ';
            }
            else if( str1.search(/^not\s/i) == 0 || str1.search(/^not\s/i) == 0 )
            {
              str1 = str1.replace(/.{4}/, "");
              pstring = pstring + ' NOT ';
            }
            else
            {
              pstring = pstring + ' AND ';
            }
          }
          else
          {
            pstring = pstring + currentMatch;
          }
        }
        else
        {
          pstring = pstring + currentMatch;
        }
      }
    }
    // end of loop
    document.frmCLIO.search.value = pstring;
  }
}


//////////////////////////////////
function PreLoadQuickSearchImages()
{
  if (!document.images)
  {
    return;
  }

  var aryImageFilenames = new Array(
                                    'tab.CLIO.databases.gif',
                                    'tab.CLIO.ejournals.gif',
                                    'tab.CLIO.website.gif',
                                    'tab.CLIO.gif',
                                    'tab.Databases.clio.gif',
                                    'tab.Databases.ejournals.gif',
                                    'tab.Databases.website.gif',
                                    'tab.Databases.gif',
                                    'tab.EJournals.clio.gif',
                                    'tab.EJournals.databases.gif',
                                    'tab.EJournals.website.gif',
                                    'tab.EJournals.gif',
                                    'tab.Articles.clio.gif',
                                    'tab.Articles.databases.gif',
                                    'tab.Articles.website.gif',
                                    'tab.Articles.gif',
                                    'tab.Website.clio.gif',
                                    'tab.Website.databases.gif',
                                    'tab.Website.ejournals.gif',
                                    'tab.Website.gif'
                                   );
  var aryImages = new Array();
  var intImage = 0;

  while (intImage < aryImageFilenames.length)
  {
    aryImages[intImage] = new Image();
    aryImages[intImage].src = strImagesPath + aryImageFilenames[intImage];
    intImage++;
  }
}


////////////////////////////
function TabClick(strClickedTab)
{
  var divCLIOControls = document.getElementById('divCLIOControls');
  var divDatabasesControls = document.getElementById('divDatabasesControls');
  var divEJournalsControls = document.getElementById('divEJournalsControls');
  var divWebsiteControls = document.getElementById('divWebsiteControls');
  var inpCLIOSearchbox = document.getElementById('inpCLIOSearchbox');
  var inpDatabasesSearchbox = document.getElementById('inpDatabasesSearchbox');
  var inpEJournalsSearchbox = document.getElementById('inpEJournalsSearchbox');
  var inpArticlesSearchbox = document.getElementById('inpArticlesSearchbox');
  var inpWebsiteSearchbox = document.getElementById('inpWebsiteSearchbox');
  var strSearchTerms = '';

  strSelectedTab = strClickedTab;
  divCLIOControls.style.visibility = 'hidden';
  divDatabasesControls.style.visibility = 'hidden';
  divEJournalsControls.style.visibility = 'hidden';
  divArticlesControls.style.visibility = 'hidden';
  divWebsiteControls.style.visibility = 'hidden';
  eval('div' + strClickedTab + 'Controls').style.visibility = 'visible';
  document.images['imgQuickSearch'].src = strImagesPath + 'tab.' + strClickedTab + '.gif';

  if (inpCLIOSearchbox.value != '')
  {
    strSearchTerms = inpCLIOSearchbox.value;
  }
  if (inpDatabasesSearchbox.value != '')
  {
    strSearchTerms = inpDatabasesSearchbox.value;
  }
  if (inpEJournalsSearchbox.value != '')
  {
    strSearchTerms = inpEJournalsSearchbox.value;
  }
  if (inpArticlesSearchbox.value != '')
  {
    strSearchTerms = inpArticlesSearchbox.value;
  }
  if (inpWebsiteSearchbox.value != '')
  {
    strSearchTerms = inpWebsiteSearchbox.value;
  }
  inpCLIOSearchbox.value = '';
  inpDatabasesSearchbox.value = '';
  inpEJournalsSearchbox.value = '';
  inpArticlesSearchbox.value = '';
  inpWebsiteSearchbox.value = '';
  eval('inp' + strClickedTab + 'Searchbox').value = strSearchTerms;
}


///////////////////////////////////////
function TabMouseOver(strMousedOverTab)
{

  if (strMousedOverTab != strSelectedTab.toLowerCase())
  {
    document.images['imgQuickSearch'].src = strImagesPath + 'tab.' + strSelectedTab + '.' + strMousedOverTab  + '.gif';
  }
}


//////////////////////
function TabMouseOut()
{
  document.images['imgQuickSearch'].src = strImagesPath + 'tab.' + strSelectedTab + '.gif';
}


////////////////////////////////////////////////
function DisplaySearchbox(strSearchboxToDisplay)
{
  var intSizeCLIO = 0;
  var intSizeDatabases = 0;
  var intSizeEJournals = 0;
  var intSizeArticles = 0;
  var intSizeWebsite = 0;

  if (is_win)
  {
    if (is_ie == true)
    {
      intSizeCLIO = 24;
      intSizeDatabases = 31;
      intSizeEJournals = 31;
      intSizeArticles = 22;
      intSizeWebsite = 39;
    }
    else if (is_fx == true)
    {
      intSizeCLIO = 34;
      intSizeDatabases = 42;
      intSizeEJournals = 41;
      intSizeArticles = 34;
      intSizeWebsite = 51;
    }
    else if (is_opera == true)
    {
      intSizeCLIO = 34;
      intSizeDatabases = 42;
      intSizeEJournals = 42;
      intSizeArticles = 34;
      intSizeWebsite = 51;
    }
    else if (is_chrome == true)
    {
      intSizeCLIO = 31;
      intSizeDatabases = 39;
      intSizeEJournals = 39;
      intSizeArticles = 31;
      intSizeWebsite = 49;
    }
    else if (is_safari == true)
    {
      if (is_safari4 == true)
      {
        intSizeCLIO = 30;
        intSizeDatabases = 36;
        intSizeEJournals = 35;
        intSizeArticles = 30;
        intSizeWebsite = 43;
      }
      else
      {
        intSizeCLIO = 24;
        intSizeDatabases = 29;
        intSizeEJournals = 29;
        intSizeArticles = 24;
        intSizeWebsite = 38;
      }
    }
    else
    {
      intSizeCLIO = 24;
      intSizeDatabases = 29;
      intSizeEJournals = 29;
      intSizeArticles = 24;
      intSizeWebsite = 38;
    }
  }
  else
  {
    if (is_camino == true)
    {
      intSizeCLIO = 21;
      intSizeDatabases = 26;
      intSizeEJournals = 26;
      intSizeArticles = 20;
      intSizeWebsite = 35;
    }
    else if (is_fx == true)
    {
      intSizeCLIO = 24;
      intSizeDatabases = 29;
      intSizeEJournals = 29;
      intSizeArticles = 24;
      intSizeWebsite = 37;
    }
    else if (is_safari == true)
    {
      intSizeCLIO = 23;
      intSizeDatabases = 28;
      intSizeEJournals = 28;
      intSizeArticles = 23;
      intSizeWebsite = 37;
    }
    else
    {
      intSizeCLIO = 21;
      intSizeDatabases = 26;
      intSizeEJournals = 26;
      intSizeArticles = 20;
      intSizeWebsite = 35;
    }
  }
  //alert("Agent: " + navigator.userAgent.toLowerCase() + "\n\n" + "Version: " + navigator.appVersion.toLowerCase() + "\n\n" + "Size: " + intSizeCLIO);
  switch(strSearchboxToDisplay)
  {
    case 'CLIO':
      document.write('<input id="inpCLIOSearchbox" name="search" type="text" size="' + intSizeCLIO + '" maxlength="100" style="font-size:9px; border-width:1px; border-style:solid; border-color:#cccccc;">');
      break;
    case 'Databases':
      document.write('<input id="inpDatabasesSearchbox" name="q" type="text" size="' + intSizeDatabases + '" maxlength="50" style="font-size:9px; border-width:1px; border-style:solid; border-color:#cccccc;">');
      break;
    case 'EJournals':
      document.write('<input id="inpEJournalsSearchbox" name="query" type="text" size="' + intSizeEJournals + '" maxlength="50" style="font-size:9px; border-width:1px; border-style:solid; border-color:#cccccc;">');
      break;
    case 'Articles':
      document.write('<input id="inpArticlesSearchbox" type="text" name="find_request_1" value="" size="' + intSizeArticles + '" maxlength="80" style="font-size:9px; border-width:1px; border-style:solid; border-color:#cccccc;">');
      break;
    case 'Website':
      document.write('<input id="inpWebsiteSearchbox" type="text"   name="q" value="" size="' + intSizeWebsite + '" maxlength="50" style="font-size:9px; border-width:1px; border-style:solid; border-color:#cccccc;">');
      break;
    default:
      document.write('<span style="font-size:9px; color:red;">Please report this error to: libraryweb@columbia.edu</span>');
  }
}