var QryTyp = "D";
var QryDat = "";
var QryHit = false;
var QryXpn = "T";
var QryTtl = "";
var DefQry = true;

var s = "@";

var rTgt = "";
var rTxt = "";
var rRec = 0;

function rt( fnPar0 ) 
{
  rTxt = rTxt + fnPar0;
}


function RptChk( fnPar1 ) 
{
  if ( !QryHit ) 
  {
    QryTyp = "D"; QryXpn = "";
  }
  else
  {
    QryTtl = fnPar1 + " ["+ QryDat + "]";
  }
}


function RptTst( fnPar0 ) 
{
  rRec = 1; 
  while( rRec <= rcRD ) 
  {
    QryHit = eval(QryXpn); 
    if( QryHit ) break; 
    rRec ++;
  }
  RptChk( fnPar0 );
}


function RptZap()
{
  QryTyp = "D"; 
  QryDat = "";
  QryHit = false; 
  QryXpn = "T"; 
  QryTtl = "";
  DefQry = true;
  document.RptQry.QryKnd.value = QryTyp;
  document.RptQry.QryVal.value = QryDat;
  RptLst();
  return 0;
}


function RptSub()
{
  QryTyp = document.RptQry.QryKnd.value;
  QryDat = document.RptQry.QryVal.value;

  QryHit = false;
  QryXpn = "";
  QryTtl = "";
  DefQry = false;

  QryTyp = ( QryDat.length > 0 ? QryTyp : "D" );

  switch (QryTyp) {
    case "E":                                       // exact callsign
      QryDat = QryDat.toUpperCase();
      QryXpn = "QryDat == dbRD[rRec].Kall";
      RptTst( "Call sign is" );
      break;
    case "K":                                       // partial callsign
      QryDat = QryDat.toUpperCase();
      QryXpn = "-1 != dbRD[rRec].Kall.search(QryDat)";
      RptTst( "Call sign contains" );
      break;
    case "B":                                       // band name is
      QryXpn = "-1 != (dbRB[dbRD[rRec].Bidx]).search(QryDat)";
      RptTst( "Band name is" );
      break;
    case "L":                                       // location contains
      QryXpn = "-1 != dbRD[rRec].City.search(QryDat)";
      RptTst( "Location contains" );
      break;
    case "T":                                       // tx freq contains
      QryXpn = "-1 != dbRD[rRec].FrqT.search(QryDat)";
      RptTst( "TX freq contains" );
      break;
    case "R":                                       // rx freq contains
      QryXpn = "-1 != dbRD[rRec].FrqR.search(QryDat)";
      RptTst( "RX freq contains" );
      break;
    case "P":                                       // PL tone contains
      QryXpn = "-1 != dbTC[dbRD[rRec].Tidx].search(QryDat)";
      RptTst( "PL Tone contains" );
      break;
    case "N":                                       // Note contains
      QryXpn = "-1 != dbRD[rRec].Note.search(QryDat)";
      RptTst( "Note contains" );
      break;
    case "A":                                       // record contains
      QryXpn = "-1 != (s+dbRD[rRec].PorS+s+dbRB[dbRD[rRec].Bidx]+s+dbRD[rRec].FrqT+s+dbRD[rRec].FrqR+s+dbRD[rRec].City+s+dbRD[rRec].Kall+s+dbTC[dbRD[rRec].Tidx]+s+dbRD[rRec].Note+s).search(QryDat)";
     RptTst( "Record contains" );
      break;
    default:
      QryTyp = ""; }

  if ( QryTyp == "" ) { QryTyp = "D"; }

  if ( QryTyp == "D" )  {
    QryDat = "";
    QryXpn = "T";
    QryTtl = "";
    DefQry = true;  }
  else  {
    DefQry = false;  }

  document.RptQry.QryVal.value = QryDat;

  RptLst();

  return 0;
}


function RptLst()
{
  var IsGr = F;
  var cBand = "";
  var cProv = "";

  rt( "<br>"
    + "<table width='100%' cellpadding='2px' cellspacing='0' border='0'>"
    +   "<tr>"
    +     "<td colspan=6>"
    +       "WNYSORC Repeater List by Prov/State, Band, Location &amp; Call sign from "+dPdf+" handout"
    +       ( QryTtl.length > 0 ? " - "+QryTtl : "" )
    +     "</td>"
    +   "</tr>" );
  for( var rRec = 1; rRec <= rcRD; ++ rRec )
  {
    rHit = eval( QryXpn );
    if ( rHit )
    {
      if ( cProv != dbRD[rRec].PorS || cBand != dbRB[dbRD[rRec].Bidx] )
      {
        cProv = dbRD[rRec].PorS;
        cBand = dbRB[dbRD[rRec].Bidx];
        IsGr = F;
    rt( "<tr height=4px><td colspan=6></td></tr>"
      + "<tr class=tH>"
      +   "<td align=LEFT colspan=6>"
      +     "&nbsp;" + ( dbRD[rRec].PorS == "ON" ? "Ontario" : "New York" ) + " - " + cBand
      +   "</td>"
      + "</tr>"
      + "<tr class=tH valign=bottom>"
      +   "<td class=tH align=center><small><small>(Mhz)</small></small><br>TX</td>"
      +   "<td class=tH align=center><small><small>(Mhz)</small></small><br>RX</td>"
      +   "<td class=tH             >&nbsp;Location</td>"
      +   "<td class=tH             >&nbsp;Station</td>"
      +   "<td class=tH align=center><small><small>(Hz)</small></small><br>Tone</td>"
      +   "<td                      >Notes</td>"
      + "</tr>" );
      }
    rt( "<tr class=t" + ( IsGr ? "G" : "W" ) + " valign=top onClick='javascript:RptPop("+rRec+")'>"
      +   "<td class=tXR>"       + dbRD[rRec].FrqT + "&nbsp;</td>"
      +   "<td class=tXR>"       + dbRD[rRec].FrqR + "&nbsp;</td>"
      +   "<td class=tXL>&nbsp;" + dbRD[rRec].City + "</td>"
      +   "<td class=tXL>&nbsp;" + dbRD[rRec].Kall + "</td>"
      +   "<td class=tXR>"  + dbTC[dbRD[rRec].Tidx] + "&nbsp;</td>"
      +   "<td class=tYL>&nbsp;" + dbRD[rRec].Note + "</td>"
      + "</tr>" );
      IsGr = !IsGr;
    }
  }
  rt( "<tr height=4px> <td colspan='6'></td> </tr>"
    + "<tr class=tH><td class=tH align=LEFT colspan=6>NOTES:</td> </tr>"
    + "<tr class=tH>"
    +   "<td class=tH align=RIGHT><small><small>Token&nbsp;</small></small></td>"
    +   "<td class=tH align=LEFT colspan=5><small><small>&nbsp;Explanation</small></small></td>"
    + "</tr>" );
  IsGr = F;
  for( var rRec = 1; rRec <= rcNT; ++ rRec )
  {
    rt( "<tr class=t" + ( IsGr ? "G" : "W" ) + " valign='top'>"
      +  "<td class=tX align=right><small><small>" + dbNT[rRec].nSht + "&nbsp;</small></small></td>"
      +  "<td colspan='5'><small><small>&nbsp;" + dbNT[rRec].nLng + "</small></small></td>"
      + "</tr>" );
    IsGr=!IsGr;
  }
  rt( "</table>" );

  document.title = "WNYSORC - Repeater List - " + dPdf;

  aPdf = "<A href=\"./_docs/wnysorc/repeater_handout/"+dPdf+"/pdf/get.php\" title=\"Download the " + dPdf + " Repeater handout as a PDF\">";

  rTgt = "";
  rTgt = document.getElementById('RptPdf');
  rTgt.innerHTML = aPdf + "<img src='./_img/_ico/PDF.gif' width=16 align=absmiddle border=0></a>&nbsp;" + aPdf + pPdf + "_" + dPdf + "</A>";

  rTgt = "";
  rTgt = document.getElementById('RptLst');
  rTgt.innerHTML = "";
  rTgt.innerHTML = rTxt;

  rTxt = "";
}

function RptPop( fnPar0 )
{
  var aTxt = " Call: \t[ " + dbRD[fnPar0].Kall + " ]"
       + "\r\n City: \t[ " + dbRD[fnPar0].City + " ]"
       + "\r\nXmit: \t[ " + dbRD[fnPar0].FrqT + " ] MHz"
       + "\r\nXcve: \t[ " + dbRD[fnPar0].FrqR + " ] MHz"
       + "\r\nTone: \t[ " + dbTC[dbRD[fnPar0].Tidx] + " ] Hz"
if( dbRD[fnPar0].Note.length > 0 )
{
  aTxt = aTxt + "\r\n Note: \t[ " + dbRD[fnPar0].Note + " ]"
              + "\r\n==============================="
  for( var rRec = 1; rRec <= rcNT; ++ rRec )
  {
    aTxt = aTxt + "\r\n" + dbNT[rRec].nSht + "\t"+ dbNT[rRec].nLng;
  }
}
  alert( unescape( aTxt ) );
}
