
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;
  }
}

