var glyPth = '';

var nuWndw = '';

var rcGI = 0;

var dbGI = new Array();

function PopWin(imgIdx) 
{
  if ( nuWndw.location && !nuWndw.closed )
  {
    nuWndw.close();
  }

  // tidy up caption text
  imgCpn = snr(snr(dbGI[imgIdx].imgCpn,"<br>"," "),"*","<br>");

  // scale win & img dims to available screen space
  sclFac = 1.0;

  sclWid = dbGI[imgIdx].imgWid;
  sclHgt = dbGI[imgIdx].imgHgt;

  maxWid = z0ui.ScnWid - 10;
  maxHgt = z0ui.ScnHgt - 50;

  padWid = 40;
  padHgt = 60 + ( sclHgt > sclWid ? 25 : 0 );

  winWid = min( dbGI[imgIdx].imgWid + padWid, maxWid );
  winHgt = min( dbGI[imgIdx].imgHgt + padHgt, maxHgt );

  winMsg = "Click on image to close window.";

  // do we need to scale the image
  if ( ( dbGI[imgIdx].imgWid + padWid ) !== winWid || ( dbGI[imgIdx].imgHgt + padHgt ) !== winHgt )
  {
    sclHrz = ( ( winWid == maxWid ? maxWid : winWid ) - padWid ) / dbGI[imgIdx].imgWid;
    sclVrt = ( ( winHgt == maxHgt ? maxHgt : winHgt ) - padHgt ) / dbGI[imgIdx].imgHgt;

    sclFac = min( 1.0, min( sclHrz, sclVrt ) );

    sclHgt = 0.96 * dbGI[imgIdx].imgHgt * sclFac;
    sclWid = 0.96 * dbGI[imgIdx].imgWid * sclFac;
  }

  winXul = ( maxWid - winWid ) / 2;
  winYul = ( maxHgt - winHgt ) / 2;

  // construct winCtl string
  winCtl =  'width=' + winWid
         + ',height=' + winHgt
         + ',resizable=1'
         + ',dependent=1'
         + ',menubar=0'
         + ',toolbar=0'
         + ',titlebar=1'
         + ',status=1'
         + ',scrollbars=1';

  // create new window
  nuWndw = window.open('','nuWndw',winCtl);

  // center new window
  nuWndw.moveTo( winXul, winYul );

  // open new window for writing
  nuWndw.document.open();

  // write html to new window
  nuWndw.document.write( "<HTML><HEAD><title>R.C.S.W S. (VA3RCO) - (" + winMsg + ")</TITLE></HEAD>"
                       + "<BODY marginheight=\"0\" marginwidth=\"0\" topmargin=\"0\" bottommargin=\"0\" leftmargin=\"0\" rightmargin=\"0\" bgcolor=\"#FFFFFF\" text=\"#990000\" alink=\"#008080\" link=\"#000000\" vlink=\"#990000\" onLoad=\"self.status='Click on image to close window.'\">"
                       + "<TABLE BORDER=\"0\" ALIGN=\"CENTER\"><TR VALIGN=\"CENTER\"><TD ALIGN=\"CENTER\" VALIGN=\"CENTER\"><SPAN style=\"font-size: 4pt;\">&nbsp;<BR>"
                       + "<A NAME=\"Image\" HREF=\"javascript:void(self.close())\" onClick=\"self.close();\""
                       + " onMouseOver=\"self.status='" + winMsg + "'\""
                       + " onMouseOut=\"self.status='" + winMsg + "'\""
                       + " title=\""+winMsg+"\">"
                       + "<IMG SRC=\"" + z0ui.DldPth + glyPth + dbGI[imgIdx].imgFyl + ".jpg"
                       + "\" WIDTH=\"" + sclWid
                       + "\" HEIGHT=\"" + sclHgt
                       + "\" ALT=\"" + winMsg + "\" BORDER=\"0\">"
                       + "</A></SPAN>"
                       + "<span style=\"font-size: 12pt;\"><br>" + imgCpn + "</span>"
                       + "</TD></TR></TABLE></BODY></HTML>" );

  // close new window for writing
  nuWndw.document.close();

  // set status text of new window
  nuWndw.status = winMsg;

  // transfer focus to new window
  nuWndw.focus();
}


// object constructor for Gallery Images
function mkGI( imgFyl, imgWid, imgHgt, imgCpn )
{
  this.imgFyl = imgFyl;
  this.imgWid = imgWid;
  this.imgHgt = imgHgt;
  this.imgCpn = imgCpn;
  return this;
}


function ShwGly()
{
  dw( "<TABLE border=\"0\" width=\"100%\">" );
  var Ucol = 0;
  for ( ii = 0; ii < rcGI; ii ++ )
  {
    if ( Ucol == 0 )
    {
      RowBeg();
    }

         if (  dbGI[ii].imgFyl.length > 0 && dbGI[ii].imgCpn.length > 0 ) // thumbnail with or without linked image
    {
      brkFlg = ( dbGI[ii].imgCpn.indexOf("*") >= 0 || dbGI[ii].imgCpn.indexOf("<br>") >= 0 );
      var thmCpn = snr( dbGI[ii].imgCpn,"*","");
      var thmAlt = snr(snr(snr(thmCpn,"<br>"," "),"<small>",""),"</small>","");
      dw( "<TD align=\"CENTER\" valign=\"" + ( brkFlg ? "TOP" : "BOTTOM" ) + "\">"
        + "<A NAME='" + dbGI[ii].imgFyl + "'" + ( dbGI[ii].imgWid == 0 ? "" : " HREF='javascript:PopWin("+ii+")'" ) + ">"
        + "<IMG SRC=\"" + z0ui.BasPth + glyPth + dbGI[ii].imgFyl + "_t.jpg\"" + ( dbGI[ii].imgWid == 0 ? " WIDTH=100" : "" ) + " BORDER=\"0\" ALT=\"" + thmAlt + "\"" + ">"
        + "<span style=\"font-size: 9pt;\">"
        + "<BR>" + thmCpn
        + "</SPAN>"
        + "</A>" + ( brkFlg ? "" : "<br>&nbsp;" ) + "</TD>" );
    }
    else if ( dbGI[ii].imgFyl.length == 0 && dbGI[ii].imgCpn.length > 0 ) // caption only
    {
      if ( Ucol > 0 )
      {
        DrwPad( 3 - Ucol );
        RowBrk();
      }
      dw( "<TD class=\"doci\" colspan=\"4\">&nbsp;"+dbGI[ii].imgCpn+"</TD>" );
      Ucol = 3;
    }
    else if ( dbGI[ii].imgFyl.length == 0 && dbGI[ii].imgCpn.length == 0 ) // pad cell
    {
      DrwPad(1);
    }
    Ucol = Ucol + 1;
    if ( Ucol == 4 )
    {
      RowEnd();
      Ucol = 0;
    }
  }
  if( Ucol > 0 && Ucol < 3 )
  {
    DrwPad( 3 -  Ucol );
    RowEnd();
  }
  dw( "</TABLE>" );
}

function RowBeg()
{
  dw( "<TR>" );
}

function RowEnd()
{
  dw( "</TR>" );
}

function RowBrk()
{
  RowEnd();
  RowBeg();
}

function DrwPad(PadMax)
{
  for( PadCnt=0; PadCnt < PadMax; PadCnt ++)
  {
    dw( "<TD>&nbsp;</TD>" );
  }
}

