//------------------------------------------------------------------------------
// Miscellaneous
//------------------------------------------------------------------------------

function Footer() {

  var modifiedDate = new Date(document.lastModified);

  document.write('<table border="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" cellpadding="0">');
  document.write('<tr><td width="100%"><p align="center"><font face="Verdana" color="#808080" size="1">');
  document.write('Copyright © 2007-' + modifiedDate.getFullYear() + ' by <a class="footer" href="mailto:jch@vibrants.dk">JCH</a>. All Rights Reserved. ');
  document.write('</font></td></tr></table>');

}  

//------------------------------------------------------------------------------
// Menu bar for all pages (Vibrants)
//------------------------------------------------------------------------------

function Menu(menuselect, color, background) {

  var colormain = new Array("#C6D3BD","#4C5C42");
  var colorbeige = new Array("#C5BEA7","#585039");
  var colorgreen = new Array("#A7C5AF","#43634B");
  var colorcyan = new Array("#B2C4DE","#486EA8");
  var colorgray = new Array("#A4A4A4","#505050");
  var colorred= new Array("#B04040", "#742C2C");

  // 0 is "turn off" (the item selected) while 1 is "turn on" (all other items)
  switch (menuselect)
  {
    case 1: {
      // Selected "Home"
      var index_home     = 0;
      var index_files    = 1;
      var index_news	 = 1; break }
    case 2: {
      // Selected "Files"
      var index_home     = 1;
      var index_files    = 0;
      var index_news	 = 1; break }
    case 3: {
      // Selected "News"
      var index_home     = 1;
      var index_files    = 1;
      var index_news	 = 0; break }
    default: {
      // Just show all items
      var index_home     = 1;
      var index_files    = 1;
      var index_news	 = 1; break }
  }


  // Use specified menu color, or if none supplied, choose one randomly
  switch (color)
  {
    case "beige": {
      var colorselect = 2; break }
    case "green": {
      var colorselect = 3; break }
    case "cyan": {
      var colorselect = 4; break }
    case "gray": {
      var colorselect = 5; break }
    case "red":{
      var colorselect = 6; break }
    default: {
      // Main menu color
      var colorselect = 1; break }
  }

  document.write('<tr>');
    switch (colorselect)
    {
      case 1: {
        document.write('<td height="40" class="menu" background="images/top1_bump_vibrants.png">');
	document.write('<a href="index.htm"><img class="home" src="images/transparent.gif" alt="Click here to return to the start page" title="Click here to return to the start page"></a>');
	document.write('<a class="menu" href="index.htm"><font color="' + colormain[index_home] + '">Home</font></a>&nbsp;&nbsp;&nbsp;');
	document.write('<a class="menu" href="files.htm"><font color="' + colormain[index_files] + '">Files</font></a>&nbsp;&nbsp;&nbsp;');
	document.write('<a class="menu" href="news.htm"><font color="' + colormain[index_news] + '">News</font></a>&nbsp;&nbsp;'); break }
      case 2: {
	document.write('<td height="40" class="menu" background="images/top1_bump_vib_adlib.png">');
	document.write('<a href="index.htm"><img class="home" src="images/transparent.gif" alt="Click here to return to the start page" title="Click here to return to the start page"></a>');
	document.write('<a class="menu" href="index.htm"><font color="' + colorbeige[index_home] + '">Home</font></a>&nbsp;&nbsp;&nbsp;');
	document.write('<a class="menu" href="files.htm"><font color="' + colorbeige[index_files] + '">Files</font></a>&nbsp;&nbsp;&nbsp;');
	document.write('<a class="menu" href="news.htm"><font color="' + colorbeige[index_news] + '">News</font></a>&nbsp;&nbsp;'); break }
      case 3: {
        if (background == "ft2")
          document.write('<td height="40" class="menu" background="images/top1_bump_vib_ft2.png">');
        else
          document.write('<td height="40" class="menu" background="images/top1_bump_vibmskfaded.png">');
	document.write('<a href="index.htm"><img class="home" src="images/transparent.gif" alt="Click here to return to the start page" title="Click here to return to the start page"></a>');
	document.write('<a class="menu" href="index.htm"><font color="' + colorgreen[index_home] + '">Home</font></a>&nbsp;&nbsp;&nbsp;')
	document.write('<a class="menu" href="files.htm"><font color="' + colorgreen[index_files] + '">Files</font></a>&nbsp;&nbsp;&nbsp;');
	document.write('<a class="menu" href="news.htm"><font color="' + colorgreen[index_news] + '">News</font></a>&nbsp;&nbsp;'); break }
      case 4: {
        document.write('<td height="40" class="menu" background="images/top1_bump_vib_c64.png">');
	document.write('<a href="index.htm"><img class="home" src="images/transparent.gif" alt="Click here to return to the start page" title="Click here to return to the start page"></a>');
	document.write('<a class="menu" href="index.htm"><font color="' + colorcyan[index_home] + '">Home</font></a>&nbsp;&nbsp;&nbsp;');
	document.write('<a class="menu" href="files.htm"><font color="' + colorcyan[index_files] + '">Files</font></a>&nbsp;&nbsp;&nbsp;');
	document.write('<a class="menu" href="news.htm"><font color="' + colorcyan[index_news] + '">News</font></a>&nbsp;&nbsp;'); break }
      case 5: {
	switch (background) {
	  case "deek": {
	    document.write('<td height="40" class="menu" background="images/top1_bump_vibdeek.png">'); break }
	  case "drax": {
	    document.write('<td height="40" class="menu" background="images/top1_bump_vibdrax.png">'); break }
	  case "jch": {
	    document.write('<td height="40" class="menu" background="images/top1_bump_vibjch.png">'); break }
	  case "jo": {
	    document.write('<td height="40" class="menu" background="images/top1_bump_vibjo.png">'); break }
	  case "laxity": {
	    document.write('<td height="40" class="menu" background="images/top1_bump_viblaxity.png">'); break }
	  case "link": {
	    document.write('<td height="40" class="menu" background="images/top1_bump_viblink.png">'); break }
	  case "metal": {
	    document.write('<td height="40" class="menu" background="images/top1_bump_vibmetal.png">'); break }
	  case "msk": {
	    document.write('<td height="40" class="menu" background="images/top1_bump_vibmsk.png">'); break }
	  default: {
	    document.write('<td height="40" class="menu" background="images/top1_bump_vib_old.png">'); break }
	}
	document.write('<a href="index.htm"><img class="home" src="images/transparent.gif" alt="Click here to return to the start page" title="Click here to return to the start page"></a>');
	document.write('<a class="menu" href="index.htm"><font color="' + colorgray[index_home] + '">Home</font></a>&nbsp;&nbsp;&nbsp;');
	document.write('<a class="menu" href="files.htm"><font color="' + colorgray[index_files] + '">Files</font></a>&nbsp;&nbsp;&nbsp;');
	document.write('<a class="menu" href="news.htm"><font color="' + colorgray[index_news] + '">News</font></a>&nbsp;&nbsp;'); break }
      case 6: {
        document.write('<td height="40" class="menu" background="images/top1_bump_vib_digital.png">');
	document.write('<a href="index.htm"><img class="home" src="images/transparent.gif" alt="Click here to return to the start page" title="Click here to return to the start page"></a>');
	document.write('<a class="menu" href="index.htm"><font color="' + colorred[index_home] + '">Home</font></a>&nbsp;&nbsp;&nbsp;');
	document.write('<a class="menu" href="files.htm"><font color="' + colorred[index_files] + '">Files</font></a>&nbsp;&nbsp;&nbsp;');
	document.write('<a class="menu" href="news.htm"><font color="' + colorred[index_news] + '">News</font></a>&nbsp;&nbsp;'); break }
    }
    document.write('<a class="menu" href="http://chordian.net"><img src="images/icon_chordian.gif" class="icon" alt="Go to http://chordian.net" title="Go to http://chordian.net"></a>&nbsp;');
    document.write('<a class="menu" href="mailto:jch@vibrants.dk"><img src="images/icon_mail.gif" class="icon" alt="Send e-mail to Vibrants" title="Send e-mail to Vibrants"></a>');
    document.write('</td>');
  document.write('</tr>');

}

//------------------------------------------------------------------------------
// Procedures for generating the rows for file downloads
//------------------------------------------------------------------------------

var FILEREQ_ADLIB	= "Requires an AdLib sound chip"
var FILEREQ_ADL_SB	= "Requires AdLib and/or Sound Blaster"
var FILEREQ_GUS_SB	= "Requires GUS or Sound Blaster"
var FILEREQ_C64		= "Requires a real C64 or a C64 emulator"
var FILEREQ_AMIGA	= "Requires a real Amiga or an Amiga emulator"

function JchFile(picparams, picture1, picture2, title, ecolor, etext, created, modified, requires, maintext, sizetype, dlurl) {

  // Outer table
  document.write('<table class="file">');
    document.write('<tr>');
      document.write('<td class="file file_left">');

        // Inner table for pictures
        document.write('<table class="fleft">');
          document.write('<tr>');
            document.write('<td class="fleft">');
              if (picparams != false)
		document.write('<a href="show.htm?' + picparams + '" title="Click to zoom">');
              document.write('<img src="images/' + picture1 + '" class="fpic">');
              if (picparams != false)
                document.write('</a>');
            document.write('</td>');
	    document.write('<td class="fleft">');
              if (picparams != false)
		document.write('<a href="show.htm?' + picparams + '" title="Click to zoom">');
	      document.write('<img src="images/' + picture2 + '" class="fpic">');
              if (picparams != false)
                document.write('</a>');
	    document.write('</td>');
	  document.write('</tr>');
	document.write('</table>');

      document.write('</td>');
      document.write('<td class="file">');

	// Inner table for main text
	document.write('<table class="fmid">');
	  document.write('<tr>');
	    document.write('<td class="fmid ftitle">');
	      document.write(title);
	    document.write('</td>');
	    document.write('<td class="fmid fextra">');
	      document.write('<font color="' + ecolor + '"><u>&nbsp;</u>&nbsp;&nbsp;&nbsp;&nbsp;<u>&nbsp;</u>&nbsp;');
              document.write('&nbsp;<u>&nbsp;</u>&nbsp;<u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' + etext  + '</u></font>');
	    document.write('</td>');
	  document.write('</tr>');
	  document.write('<tr>');
	    document.write('<td class="fmid fdata" colspan="2">');
	      document.write('<span style="float:left;">Created: ' + created + ' -- Last Modified: ' + modified + '</span>');
              document.write('<span style="float:right;" align="Right"><font color="#A06060">' + requires + '</font></span>');
	    document.write('</td>');
	  document.write('</tr>');
	  document.write('<tr>');
	    document.write('<td class="fmid fmain" colspan="2">');
	      document.write(maintext);
	    document.write('</td>');
	  document.write('</tr>');
	document.write('</table>');

      document.write('</td>');
      document.write('<td class="file file_right" align="right">');

	// Inner table for size and download
	document.write('<table class="fright">');
	  document.write('<tr>');
	    document.write('<td class="fright ftype">');
	      document.write('<div class="ftype">' + sizetype + '</div>');
	      document.write('<a href="' + dlurl + '"><img src="images/download.png" class="fdownload" alt="Click to download" title="Click to download"></a>');
	    document.write('</td>');
	  document.write('</tr>');
	document.write('</table>');
		    
      document.write('</td>');
    document.write('</tr>');
  document.write('</table>');

}

//------------------------------------------------------------------------------
// Procedures for generating the music tables (c64, FT2, etc.)
//------------------------------------------------------------------------------

var PL_BLANK		= ""			// Player version unknown

var PL_OLD		= "OldPlayer"		// OldPlayer (unknown version)
var PL_OLD05		= "OldPlayer 5"		// OldPlayer 5.?
var PL_OLD0604		= "OldPlayer 6.4"	// OldPlayer 6.4
var PL_OLD0901		= "OldPlayer 9.1"	// OldPlayer 9.1
var PL_OLD10		= "OldPlayer 10"	// OldPlayer 10
var PL_OLD1010		= "OldPlayer 10.10"	// OldPlayer 10.10

var PL_CD		= "C. Deenen's Player"	// Charles Deenen's Player
var PL_LAXITY		= "Laxity's Player"	// Laxity's Player
var PL_20CC		= "20CC's Player"	// 20CC's Player
var PL_MAD		= "Maduplec's Player"	// Maduplec's Player
var PL_IP		= "Intro Player"	// JCH's Intro Player
var PL_FC		= "Future Composer"	// Future Composer
var PL_SMON		= "Soundmonitor"	// Soundmonitor
var PL_RMON		= "Rockmonitor"		// Rockmonitor
var PL_JO		= "JO's Player"		// Jesper Olsen's Player
var PL_MASS		= "Music Assembler"	// Music Assembler
var PL_S6581		= "System 6581"		// System 6581
var PL_HAWKEYE		= "Hawkeye Player"	// CD's Hawkeye Player (only used by Deek
						// with bytes 4C B4 10 4C FC 10 4C 02 11)

var PL_RH		= "Rob Hubbard's Player"	// Rob Hubbard's Player
var PL_SONIC		= "Sonic Graffiti's Player"	// Sonic Graffiti's Player

var PL_NP		= "JCH's NewPlayer"	// NewPlayer (unknown version)

var PL_0011		= "JCH's NewPlayer 00.11"	// 00.11
var PL_0017		= "JCH's NewPlayer 00.17"	// 00.17
var PL_0019		= "JCH's NewPlayer 00.19"	// 00.19
var PL_01		= "JCH's NewPlayer 01"		// 01.??
var PL_0100		= "JCH's NewPlayer 01.00"	// 01.00
var PL_0109		= "JCH's NewPlayer 01.09"	// 01.09
var PL_0113		= "JCH's NewPlayer 01.13"	// 01.13
var PL_02		= "JCH's NewPlayer 02"		// 02.??
var PL_03		= "JCH's NewPlayer 03"		// 03.??
var PL_04		= "JCH's NewPlayer 04"		// 04.??
var PL_0413		= "JCH's NewPlayer 04.13"	// 04.13
var PL_05		= "JCH's NewPlayer 05"		// 05.??
var PL_0501		= "JCH's NewPlayer 05.01"	// 05.01
var PL_0502		= "JCH's NewPlayer 05.02"	// 05.02
var PL_06		= "JCH's NewPlayer 06"		// 06.??
var PL_0600		= "JCH's NewPlayer 06.00"	// 06.00
var PL_0601		= "JCH's NewPlayer 06.01"	// 06.01
var PL_07		= "JCH's NewPlayer 07"		// 07.??
var PL_08		= "JCH's NewPlayer 08"		// 08.??
var PL_0802		= "JCH's NewPlayer 08.02"	// 08.02
var PL_0803		= "JCH's NewPlayer 08.03"	// 08.03
var PL_09		= "JCH's NewPlayer 09"		// 09.??
var PL_0901		= "JCH's NewPlayer 09.01"	// 09.01
var PL_10		= "JCH's NewPlayer 10"		// 10.G?
var PL_10G1		= "JCH's NewPlayer 10.G1"	// 10.G1
var PL_11		= "JCH's NewPlayer 11"		// 11.G?
var PL_12		= "JCH's NewPlayer 12"		// 12.G?
var PL_12G3		= "JCH's NewPlayer 12.G3"	// 12.G3
var PL_13		= "JCH's NewPlayer 13"		// 13.G?
var PL_13G0		= "JCH's NewPlayer 13.G0"	// 13.G0
var PL_14		= "JCH's NewPlayer 14"		// 14.G?
var PL_14G0		= "JCH's NewPlayer 14.G0"	// 14.G0
var PL_15		= "JCH's NewPlayer 15"		// 15.G?
var PL_15G0		= "JCH's NewPlayer 15.G1"	// 15.G0
var PL_15G1		= "JCH's NewPlayer 15.G1"	// 15.G1
var PL_15G2		= "JCH's NewPlayer 15.G2"	// 15.G2
var PL_15G3		= "JCH's NewPlayer 15.G3"	// 15.G3
var PL_15G4		= "JCH's NewPlayer 15.G4"	// 15.G4
var PL_15G5		= "JCH's NewPlayer 15.G5"	// 15.G5
var PL_15G6		= "JCH's NewPlayer 15.G6"	// 15.G6
var PL_17		= "JCH's NewPlayer 17"		// 17.G?
var PL_17G1		= "JCH's NewPlayer 17.G1"	// 17.G1
var PL_17Q0		= "JCH's NewPlayer 17.Q0"	// 17.Q0
var PL_18		= "JCH's NewPlayer 18"		// 18.G?
var PL_18G1		= "JCH's NewPlayer 18.G1"	// 18.G1
var PL_18Q0		= "JCH's NewPlayer 18.Q0"	// 18.Q0
var PL_19		= "JCH's NewPlayer 19"		// 19.G?
var PL_19G1		= "JCH's NewPlayer 19.G1"	// 19.G1
var PL_20		= "JCH's NewPlayer 20"		// 20.G?
var PL_20G0		= "JCH's NewPlayer 20.G0"	// 20.G0
var PL_20G1		= "JCH's NewPlayer 20.G1"	// 20.G1
var PL_20G2		= "JCH's NewPlayer 20.G2"	// 20.G2
var PL_20G3		= "JCH's NewPlayer 20.G3"	// 20.G3
var PL_20G4		= "JCH's NewPlayer 20.G4"	// 20.G4

var PL_SF		= "SID Factory"			// SID Factory (Laxity)
var PL_SFNP		= "Laxity's NewPlayer 21"	// Laxity's 21.G?
var PL_21		= PL_SFNP
var PL_21G4		= "Laxity's NewPlayer 21.G4"	// Laxity's 21.G4

var PL_FT2		= "FastTracker 2"	// FastTracker 2

var PL_A010		= "Player 0.10"		// AdLib Player 0.10
var PL_A100		= "Player 1.00"		// AdLib Player 1.00
var PL_A114		= "Player 1.14"		// AdLib Player 1.14
var PL_A200		= "Player 2.00"		// AdLib Player 2.00
var PL_A201		= "Player 2.01"		// AdLib Player 2.01
var PL_A300		= "Player 3.00"		// AdLib Player 3.00
var PL_A400		= "Player 4.00"		// AdLib Player 4.00

var PL_S103		= "SB 1.03"		// Sound Blaster Player 1.03

var PL_AJO		= "JO's AdLib Player"	// JO's AdLib Player

var PL_MOD		= "MOD (4 voices)"	// Old MOD format (4 voices)
var PL_IT		= "Impulse Tracker"	// Impulse Tracker
var PL_S3M		= "Scream Tracker"	// Scream Tracker
var PL_S3M301		= "Scream Tracker 3.01"	// Scream Tracker 3.01
var PL_MTM10		= "MultiTracker 1.0"	// MultiTracker 1.0

var PL_MP3		= "MP3 Format"		// MP3 format
var PL_OGG		= "Ogg Vorbis Format"	// Ogg Vorbis format

var C64_BLANK		= 0			// No icon (false)
var C64_WORK		= 1			// Worktune

var XM_WORK		= C64_WORK		// Worktune
var ADL_WORK		= C64_WORK		// Worktune
var DIG_WORK		= C64_WORK		// Worktune

var UNLISTED		= 0			// For now it just means that the
						// FT2 tune was not listed in the
						// DRAXLIST.TXT file (usually new)
var rowcolor;

var COL_C64		= 0			// Blue rows for C64
var COL_XM		= 1			// Green rows for XM
var COL_YELLOW		= 2			// Yellow rows for AdLib
var COL_GRAY		= 3			// Gray rows for old tracker music
var COL_RED		= 4			// Red rows for digital music

var DIR_DEEK		= "Deek/"			// Sub folder name for Deek
var DIR_DRAX		= "Drax/"			// Sub folder name for Drax
var DIR_DRAXWORK	= "Drax/Worktunes/"		// Sub folder name for Drax's worktunes (C64)
var DIR_JCH		= "JCH/"			// Sub folder name for JCH
var DIR_JCHWORK		= "JCH/Work/"			// Sub folder name for JCH's worktunes (XM)
var DIR_JCHNONNP	= "JCH/Non_JCH_Newplayer/"	// Sub folder name for JCH's Non NewPlayer (C64)
var DIR_JO		= "JO/"				// Sub folder name for JO
var DIR_LAXITY		= "Laxity/"			// Sub folder name for Laxity
var DIR_LINK		= "Link/"			// Sub folder name for Link
var DIR_LINKUNREL	= "Link/unreleased/"		// Sub folder name for Link's unreleased (C64)
var DIR_METAL		= "Metal/"			// Sub folder name for Metal
var DIR_MSK		= "MSK/"			// Sub folder name for MSK
var DIR_LOLLYPOP	= "Lollypop/"			// Sub folder name for Lollypop (AdLib)

var TIME_BLANK		= ""			// No duration measured

var rowtype;

function JchMusic(worktune, link, title, year, player, time, size, comment) {

  if (rowtype == 0) {
    rowtype = 1;
    switch (rowcolor)
    {
      case COL_YELLOW: {
	document.write('<tr class="yelodd">'); break }
      case COL_XM: {
	document.write('<tr class="xmodd">'); break }
      case COL_GRAY: {
	document.write('<tr class="oldodd">'); break }
      case COL_RED: {
	document.write('<tr class="digodd">'); break }
      default: {
        document.write('<tr class="c64odd">'); break }
    }
  }
  else {
    rowtype = 0;
    switch (rowcolor)
    {
      case COL_YELLOW: {
	document.write('<tr class="yeleven">'); break }
      case COL_XM: {
	document.write('<tr class="xmeven">'); break }
      case COL_GRAY: {
	document.write('<tr class="oldeven">'); break }
      case COL_RED: {
	document.write('<tr class="digeven">'); break }
      default: {
        document.write('<tr class="c64even">'); break }
    }
  }

  // The work tune icon
  document.write('<td class="c64icon">');
  switch (worktune)
  {
    case C64_BLANK: {
      // No icon
      break }
    case C64_WORK: {
      // Icon to show that it's a worktune
      document.write('<img src="images/worktune.gif" title="This is an unfinished worktune. It may have an abrupt end or unpolished instruments." alt="This is an unfinished worktune. It may have an abrupt end or unpolished instruments.">'); break }
    default: {
      // Show game icon with a link to game information
      document.write('<a href="' + worktune + '" title="Click for information about the game"><img src="images/joystick.gif" class="generic" alt="Click for information about the game"></a>');break }
  }
  document.write('</td>');

  // Title, year and player version
  document.write('<td class="c64title">');
    if (link == "#") {
      // I want to do the title myself - I will supply the links (Triangle #1-3, Voices 1-6)
      document.write(title + '<br>'); }
    else {
      // Link and title supplied - set it up for me please
      switch (rowcolor)
      {
        case COL_YELLOW: {
          document.write('<a href="music/adlib/' + link + '" class="yeltitle">' + title + '</a><br>'); break }
        case COL_XM: {
          document.write('<a href="music/xm/' + link + '" class="xmtitle">' + title + '</a><br>'); break }
        case COL_GRAY: {
          document.write('<a href="music/mod/' + link + '" class="oldtitle">' + title + '</a><br>'); break }
        case COL_RED: {
          document.write('<a href="music/digital/' + link + '" class="digtitle">' + title + '</a><br>'); break }
        default: {
          document.write('<a href="music/c64/' + link + '" class="c64title">' + title + '</a><br>'); break }
      }
    }
    document.write('<font class="tiny">' + year);
    if (player != "") {
      // Add player version too
      document.write(' in ' + player); }
    document.write('</font>');
  document.write('</td>');

  // Duration
  document.write('<td class="c64time">');
    document.write(time);
  document.write('</td>');

  // Comment
  document.write('<td>');
    document.write(comment);
  document.write('</td>');

  // Size
  document.write('<td class="c64size">');
    document.write(size);
  document.write('</td>');

  document.write('</tr>');

}

