<!--
//Various variables used in the construction of the page
SMShipTable = "";
SMShipNum   = -1;
VanaDayColor  = new Array("<font color=#DD0000>Firesday</font>", "<font color=#AAAA00>Earthsday</font>", "<font color=#0000DD>Watersday</font>", "<font color=#00AA22>Windsday</font>", "<font color=#7799FF>Iceday</font>", "<font color=#AA00AA>Lightningday</font>", "<font color=#AAAAAA>Lightsday</font>", "<font color=#333333>Darksday</font>");
JeunoTavern   = new Array("Ninjas", "Dragoons", "Summoners", "Humes", "Elvaan", "Tarutaru", "Mithra", "Galka", "Gentlemen", "Ladies", "San d'Oria", "Bastok", "Windurst", "Warriors", "Monks", "White Mages", "Black Mages", "Red Mages", "Thieves", "Paladins", "Dark Knights", "Beastmasters", "Bards", "Rangers", "Samurai");

function MoonAndTimeSelect(){
	document.getElementById("menu").innerHTML = "1";
	MoonAndTime();
}

function MoonAndTime(){

    if(document.getElementById("menu").innerHTML=="1"){    
    
        // The current Earth time
        Now = new Date();

        // Calculates the current Earth time in milliseconds and the Vana'diel time in seconds
        eTime = Now.getTime();
        vTime = (eTime + Diff) * VanaToEarth;
          
        VanaTime  = CalculateVanaTime(vTime);
        
        var vTempTime  = Math.floor(vTime / (SecPMin * MinPHour * HourPDay)) * (SecPMin * MinPHour * HourPDay);
        var Moon = MyCalculateMoonPhase(vTempTime);
        
        var outPut = "<div class='timerbox'><p class=timertext><br>Vana'diel Time: " + VanaTime + "<br />" +
                    Moon + "</p></div>" +
                    "<div class='menu'>" + MakeMenu("1") + "</div>";

        document.getElementById("VanaTimer").innerHTML = outPut;
        
        setTimeout("MoonAndTime()", 10000);
    }
}

function FerrySelect(){	
	document.getElementById("menu").innerHTML = "2";
    Ferry();
}

function Ferry(){
    
    if(document.getElementById("menu").innerHTML=="2"){

        // Calculates the current Earth time in milliseconds and the Vana'diel time in seconds
        Now = new Date();
        eTime = Now.getTime();
        vTime = (eTime + Diff) * VanaToEarth;
        
        vTempTime1 = (Math.floor( vTime            / SelbinaMhaura) * SelbinaMhaura) + SelbinaMhaura;
        vTempTime2 = (Math.floor((vTime - SecPMin) / SelbinaMhaura) * SelbinaMhaura) + SelbinaMhaura;
        
        vTempTimeA = (Math.floor(vTime / SelbinaMhaura) * SelbinaMhaura) + SelbinaMhaura;
        vTempTimeB = vTempTimeA + (SMShipNum * SelbinaMhaura);

        SMShipNum   = 5;
        SMShipTable = "";

        SMShipTable  = "<br><table border=0 cellpadding=2 cellspacing=0 width=100%>";
        SMShipTable += "<tr><td>Vana'Diel Time</td><td>Earth Time</td><td>Delay</td></tr>";

        for (i = 0; i < SMShipNum; i++) {
          
            SMShipTable  += "<tr>"
            SMShipTable  += "<td><small>" + CalculateVanaTime2(vTempTimeA) + "</td>";
            SMShipTable  += "<td><small>" + CalculateEarthTime2(new Date(Math.floor(vTempTimeA / VanaToEarth) - Diff)) + "</td>";
            SMShipTable  += "<td><small><span id=" + '"' + "SMShipTable" + (i + 1) + "Box" + '"' + ">&nbsp;</span></td>";
            SMShipTable  += "</tr>"
            vTempTimeA   += SelbinaMhaura;
        }
        SMShipTable += "</table>";

        document.getElementById("VanaTimer").innerHTML = "<div class='timerbox'><p class=timertext>" + SMShipTable + "</p></div>" +
        "<div class='menu'>" + MakeMenu(2) + "</div>";
        
        switch (SMShipNum)
        {
            case  5: {
            vTempTimeB -= SelbinaMhaura;
            document.getElementById("SMShipTable5Box" ).innerHTML = CalculateDelay(vTempTimeB - vTime);
            }
            case  4: {
            vTempTimeB -= SelbinaMhaura;
            document.getElementById("SMShipTable4Box" ).innerHTML = CalculateDelay(vTempTimeB - vTime);
            }
            case  3: {
            vTempTimeB -= SelbinaMhaura;
            document.getElementById("SMShipTable3Box" ).innerHTML = CalculateDelay(vTempTimeB - vTime);
            }
            case  2: {
            vTempTimeB -= SelbinaMhaura;
            document.getElementById("SMShipTable2Box" ).innerHTML = CalculateDelay(vTempTimeB - vTime);
            }
            case  1: {
            vTempTimeB -= SelbinaMhaura;
            document.getElementById("SMShipTable1Box" ).innerHTML = CalculateDelay(vTempTimeB - vTime);
            }
            default: {
            break;
            }
        }
        setTimeout("Ferry()", 1000);   
    }
}

function GuildsSelect(){
	document.getElementById("menu").innerHTML = "3";
	Guilds()
}

function Guilds(){

    if(document.getElementById("menu").innerHTML=="3"){
    
        Now = new Date();
        eTime = Now.getTime();
        vTime = (eTime + Diff) * VanaToEarth;
    
        // # of Vana'diel seconds into the new Vana'diel day  
        VDSiD  = (vTime - ((Math.floor(vTime / (HourPDay * MinPHour * SecPMin))) * HourPDay * MinPHour * SecPMin));
        Alc = "<font class=holiday>Guild Holiday</font> <font class=closed>(CLOSED)</font>";
        Bla = "<font class=holiday>Guild Holiday</font> <font class=closed>(CLOSED)</font>";
        Bon = "<font class=holiday>Guild Holiday</font> <font class=closed>(CLOSED)</font>";
        Gol = "<font class=holiday>Guild Holiday</font> <font class=closed>(CLOSED)</font>";
        Wea = "<font class=holiday>Guild Holiday</font> <font class=closed>(CLOSED)</font>";
        Car = "<font class=holiday>Guild Holiday</font> <font class=closed>(CLOSED)</font>";
        Tan = "<font class=holiday>Guild Holiday</font> <font class=closed>(CLOSED)</font>";
        Cul = "<font class=holiday>Guild Holiday</font> <font class=closed>(CLOSED)</font>";
        Fis = "<font class=holiday>Guild Holiday</font> <font class=closed>(CLOSED)</font>";
    
        Alc = CalculateGuildOpen("6", "480", "1380", "1920", Alc, VDSiD);  // Alchemy
        Bla = CalculateGuildOpen("2", "480", "1380", "1920", Bla, VDSiD);  // BlackSmith
        Bon = CalculateGuildOpen("3", "480", "1380", "1920", Bon, VDSiD);  // Bonework
        Gol = CalculateGuildOpen("4", "480", "1380", "1920", Gol, VDSiD);  // GoldSmith
        Wea = CalculateGuildOpen("0", "360", "1260", "1800", Wea, VDSiD);  // Weaver
        Car = CalculateGuildOpen("0", "360", "1260", "1800", Car, VDSiD);  // Carpentry
        Tan = CalculateGuildOpen("4", "180", "1080", "1620", Tan, VDSiD);  // Leatherwork
        Cul = CalculateGuildOpen("7", "300", "1200", "1740", Cul, VDSiD);  // Culinary
        Fis = CalculateGuildOpen("5", "180", "1080", "1620", Fis, VDSiD);  // Fishing
        
        guildOpeningHours = "<table><tr><td align=left>Guild</td><td>Opening hours</td></tr>" +
                            "<tr><td align=left>Alchemy: </td><td>" + Alc + "</td></tr>" +
                            "<tr><td align=left>Blacksmith: </td><td>" + Bla + "</td></tr>" +
                            "<tr><td align=left>Bonework: </td><td>" + Bon + "</td></tr>" +
                            "<tr><td align=left>Goldsmith: </td><td>" + Gol + "</td></tr>" +
                            "<tr><td align=left>Weaver: </td><td>" + Wea + "</td></tr>" +
                            "<tr><td align=left>Carpenter: </td><td>" + Car + "</td></tr>" +
                            "<tr><td align=left>Leatherwork: </td><td>" + Tan + "</td></tr>" +
                            "<tr><td align=left>Cooking: </td><td>" + Cul + "</td></tr>" +
                            "<tr><td align=left>Fishing: </td><td>" + Fis + "</td></tr></table>";
                            
        document.getElementById("VanaTimer").innerHTML = "<div class='timerbox'><p class=timertext><br>" + guildOpeningHours + "</p></div>" +
        "<div class='menu'>" + MakeMenu(3) + "</div>";
        setTimeout("Guilds()", 1000); 
    }
}

function DayTableSelect(){
	document.getElementById("menu").innerHTML = "4";
	MakeDayTable(9);
}

function MakeDayTable(DayType){
    if(document.getElementById("menu").innerHTML=="4"){
        DayNum = 5;
        DayTable = "";
        DayTable = DayTimeTable(DayNum, DayTable, DayType);
        document.getElementById("VanaTimer").innerHTML = "<div class='timerboxsmall'><p class=timertext>" + DayTable+"</p></div>" +
        "<div class='menu'>" + MakeDayTableMenu() + "</div>" +
        "<div class='menu'>" + MakeMenu(4) + "</div>";
    }
}

function MakeDayTableMenu(){
    DTmenu =  "<input type=button onclick='MakeDayTable(0)' value='Fire' class='timerButton'/>" + 
		    "<input type=button onclick='MakeDayTable(1)' value='Earth' class='timerButton'/>" + 
		    "<input type=button onclick='MakeDayTable(2)' value='Water' class='timerButton'/>" +
		    "<input type=button onclick='MakeDayTable(3)' value='Wind' class='timerButton'/>" +
            "<input type=button onclick='MakeDayTable(4)' value='Ice' class='timerButton'/>" + 
		    "<input type=button onclick='MakeDayTable(5)' value='Lig' class='timerButton'/>" + 
		    "<input type=button onclick='MakeDayTable(6)' value='Light' class='timerButton'/>" +
		    "<input type=button onclick='MakeDayTable(7)' value='Dark' class='timerButton'/>" +
            "<input type=button onclick='MakeDayTable(11)' value='New' class='timerButton'/>" + 
            "<input type=button onclick='MakeDayTable(12)' value='Full' class='timerButton'/>" + 
		    "<input type=button onclick='MakeDayTable(9)' value='Now' class='timerButton'/>";
    return DTmenu;
}

function MakeMenu(selected){
    if(selected == "1"){
	    var menu = "<input type=button onclick='MoonAndTimeSelect()' value='Moon and Clock' class='timerButtonSelected'/>" + 
				    "<input type=button onclick='FerrySelect()' value='FerrySchedules'  class='timerButton'/>" + 
				    "<input type=button onclick='GuildsSelect()' value='Guilds'  class='timerButton'/>" +
				    "<input type=button onclick='DayTableSelect()' value='DayTable'  class='timerButton'/>";
    }
    if(selected == "2"){
	    var menu = "<input type=button onclick='MoonAndTimeSelect()' value='Moon and Clock' class='timerButton'/>" + 
				    "<input type=button onclick='FerrySelect()' value='FerrySchedules'  class='timerButtonSelected'/>" + 
				    "<input type=button onclick='GuildsSelect()' value='Guilds'  class='timerButton'/>" +
				    "<input type=button onclick='DayTableSelect()' value='DayTable'  class='timerButton'/>";
    }
    if(selected == "3"){
	    var menu = "<input type=button onclick='MoonAndTimeSelect()' value='Moon and Clock' class='timerButton'/>" + 
				    "<input type=button onclick='FerrySelect()' value='FerrySchedules'  class='timerButton'/>" + 
				    "<input type=button onclick='GuildsSelect()' value='Guilds'  class='timerButtonSelected'/>" +
				    "<input type=button onclick='DayTableSelect()' value='DayTable'  class='timerButton'/>";
    }
    if(selected == "4"){
	    var menu = "<input type=button onclick='MoonAndTimeSelect()' value='Moon and Clock' class='timerButton'/>" + 
				    "<input type=button onclick='FerrySelect()' value='FerrySchedules'  class='timerButton'/>" + 
				    "<input type=button onclick='GuildsSelect()' value='Guilds'  class='timerButton'/>" +
				    "<input type=button onclick='DayTableSelect()' value='DayTable'  class='timerButtonSelected'/>";
    }
				
	return menu;
}

function MyCalculateMoonPhase(CurrentTime) {
  var vMoon = Math.round(((((Math.floor(CurrentTime / (HourPDay * MinPHour * SecPMin)) + 26) % MoonPhaseMod) - (MoonPhaseMod / 2)) / (MoonPhaseMod / 2)) * 100);
  
  if (vMoon >= -100 && vMoon <= -94)        {vMoon = "<img src='images/Moon13.jpg'><br>" + Math.abs(vMoon) + "% (Full Moon)"; }
  else if (vMoon >= -93 && vMoon <= -88)    {vMoon = "<img src='images/Moon14.jpg'><br>" + Math.abs(vMoon) + "% (Waning Gibbous)";}
  else if (vMoon >= -87 && vMoon <= -80)    {vMoon = "<img src='images/Moon15.jpg'><br>" + Math.abs(vMoon) + "% (Waning Gibbous)";}  
  else if (vMoon >= -79 && vMoon <= -68)    {vMoon = "<img src='images/Moon16.jpg'><br>" + Math.abs(vMoon) + "% (Waning Gibbous)";}
  else if (vMoon >= -67 && vMoon <= -62)    {vMoon = "<img src='images/Moon17.jpg'><br>" + Math.abs(vMoon) + "% (Waning Gibbous)";}  
  else if (vMoon >= -61 && vMoon <= -52)    {vMoon = "<img src='images/Moon18.jpg'><br>" + Math.abs(vMoon) + "% (Last Quarter Moon)";}
  else if (vMoon >= -51 && vMoon <= -45)    {vMoon = "<img src='images/Moon19.jpg'><br>" + Math.abs(vMoon) + "% (Last Quarter Moon)";}  
  else if (vMoon >= -44 && vMoon <= -36)    {vMoon = "<img src='images/Moon20.jpg'><br>" + Math.abs(vMoon) + "% (Waning Crescent)";}
  else if (vMoon >= -35 && vMoon <= -27)    {vMoon = "<img src='images/Moon21.jpg'><br>" + Math.abs(vMoon) + "% (Waning Crescent)";}
  else if (vMoon >= -26 && vMoon <= -17)    {vMoon = "<img src='images/Moon22.jpg'><br>" + Math.abs(vMoon) + "% (Waning Crescent)";}
  else if (vMoon >= -16 && vMoon <= -7)     {vMoon = "<img src='images/Moon23.jpg'><br>" + Math.abs(vMoon) + "% (Waning Crescent)";}  
  else if (vMoon >= -6 && vMoon <= 6)       {vMoon = "<img src='images/Moon24.jpg'><br>" + Math.abs(vMoon) + "% (New Moon)";}
  else if (vMoon >= 7 && vMoon <= 13)       {vMoon = "<img src='images/Moon1.jpg'><br>" + Math.abs(vMoon) + "% (Waxing Crescent)";}  
  else if (vMoon >= 14 && vMoon <= 21)      {vMoon = "<img src='images/Moon2.jpg'><br>" + Math.abs(vMoon) + "% (Waxing Crescent)";}
  else if (vMoon >= 22 && vMoon <= 29)      {vMoon = "<img src='images/Moon3.jpg'><br>" + Math.abs(vMoon) + "% (Waxing Crescent)";}
  else if (vMoon >= 30 && vMoon <= 38)      {vMoon = "<img src='images/Moon4.jpg'><br>" + Math.abs(vMoon) + "% (Waxing Crescent)";}  
  else if (vMoon >= 39 && vMoon <= 44)      {vMoon = "<img src='images/Moon5.jpg'><br>" + Math.abs(vMoon) + "% (First Quarter Moon)";}
  else if (vMoon >= 45 && vMoon <= 49)      {vMoon = "<img src='images/Moon6.jpg'><br>" + Math.abs(vMoon) + "% (First Quarter Moon)";}
  else if (vMoon >= 50 && vMoon <= 55)      {vMoon = "<img src='images/Moon7.jpg'><br>" + Math.abs(vMoon) + "% (First Quarter Moon)";}
  else if (vMoon >= 56 && vMoon <= 63)      {vMoon = "<img src='images/Moon8.jpg'><br>" + Math.abs(vMoon) + "% (Waxing Gibbous)";}
  else if (vMoon >= 64 && vMoon <= 70)      {vMoon = "<img src='images/Moon9.jpg'><br>" + Math.abs(vMoon) + "% (Waxing Gibbous)";}
  else if (vMoon >= 71 && vMoon <= 77)      {vMoon = "<img src='images/Moon10.jpg'><br>" + Math.abs(vMoon) + "% (Waxing Gibbous)";}
  else if (vMoon >= 78 && vMoon <= 83)      {vMoon = "<img src='images/Moon11.jpg'><br>" + Math.abs(vMoon) + "% (Waxing Gibbous)";}
  else if (vMoon >= 84 && vMoon <= 88)      {vMoon = "<img src='images/Moon12.jpg'><br>" + Math.abs(vMoon) + "% (Waxing Gibbous)";}
  else if (vMoon >= 88 && vMoon <= 100)     {vMoon = "<img src='images/Moon13.jpg'><br>" + Math.abs(vMoon) + "% (Full Moon)";}
  else                                      {vMoon = "<img src='images/Moon24.jpg'><br>" + Math.abs(vMoon) + "% (New Moon)";}
  return vMoon;
}

function CalculateGuildOpen(ClosedDay, OpenTime, ClosedTime, NewOpenTime, GuildStatus, VDSiD) {
  var vDay = Math.floor((vTime / (HourPDay * MinPHour * SecPMin)) % DayPVWeek);

  if (vDay != eval(ClosedDay)) {
    if ((VDSiD / SecPMin) > eval(ClosedTime)) {
      if (((vDay + 1) % DayPVWeek) != eval(ClosedDay)) {
        GuildStatus = "<font class=closed>CLOSED</font> (Opening in " + CalculateDelay((eval(NewOpenTime) * SecPMin) - VDSiD) + ")";
      }
      else {
        GuildStatus = "<font class=closed>CLOSED</font> (Guild Holiday Tomorrow)";
      }
    }
    else if ((VDSiD / SecPMin) > eval(OpenTime)) {
      GuildStatus = "<font class=open>Open</font> (Closing in " + CalculateDelay((eval(ClosedTime) * SecPMin) - VDSiD) + ")";
    }
    else if ((VDSiD / SecPMin) < eval(OpenTime)) {
      GuildStatus = "<font class=closed>CLOSED</font> (Opening in " + CalculateDelay((eval(OpenTime) * SecPMin) - VDSiD) + ")";
    }
  }
  return GuildStatus;
}

function CalculateMoonPhase(CurrentTime) {
  var vMoon = Math.round(((((Math.floor(CurrentTime / (HourPDay * MinPHour * SecPMin)) + 26) % MoonPhaseMod) - (MoonPhaseMod / 2)) / (MoonPhaseMod / 2)) * 100);

  if (vMoon >= -93 && vMoon <= -62) {vMoon = Math.abs(vMoon) + "%";}
  else if (vMoon >= -43 && vMoon <= -12)    {vMoon = Math.abs(vMoon) + "%";}
  else if (vMoon >= 7 && vMoon <= 38)       {vMoon = Math.abs(vMoon) + "%";}
  else if (vMoon >= 57 && vMoon <= 88)      {vMoon = Math.abs(vMoon) + "%";}
  else if (vMoon >= 90 || vMoon <= -95)     {vMoon = Math.abs(vMoon) + "%";}
  else if (vMoon >= -60 && vMoon <= -45)    {vMoon = Math.abs(vMoon) + "%";}
  else if (vMoon >= 40 && vMoon <= 55)      {vMoon = Math.abs(vMoon) + "%";}
  else                                      {vMoon = Math.abs(vMoon) + "%";}
  return vMoon;
}

function DayTimeTable(DayNum, DayTable, DayType) {
  var i          = 0;
  var DayMod     = 0;
  var vMoonCheck = 0;
  var vMoonTemp  = 0;
  var MoonMod    = 0;
  var vTempTime  = Math.floor(vTime / (SecPMin * MinPHour * HourPDay)) * (SecPMin * MinPHour * HourPDay);
  var vTempDay   = 0;
  var vTavern    = 0;
  var vMoon      = 0;

  DayTable  = "<table border=0 cellpadding=2 cellspacing=0 width=100%>";
  DayTable += "<tr><td valign=bottom>Starting</td><td valign=bottom>Ending</td><td valign=bottom>Day Type</td><td valign=bottom>Moon Phase</td><td valign=bottom>Marble Bridge</td></tr>";

  if (DayType < 8) {
    if (DayType < Math.floor((vTempTime / (HourPDay * MinPHour * SecPMin)) % DayPVWeek)) {
      vTempTime = vTempTime + (SecPMin * MinPHour * HourPDay * (DayPVWeek - 1));
    }
    vTempTime  = vTempTime - (Math.floor((vTempTime / (HourPDay * MinPHour * SecPMin)) % DayPVWeek) * (SecPMin * MinPHour * HourPDay));
    vTempTime  = vTempTime + (DayType * (SecPMin * MinPHour * HourPDay));
    DayMod     = DayPVWeek - 1;
    vMoonCheck = 0;
  }
  else if (DayType == 11) {
    vMoonTemp  = (((Math.floor(vTempTime / (HourPDay * MinPHour * SecPMin)) + 26) % MoonPhaseMod) - (MoonPhaseMod / 2));
    DayMod     = 0;
    vMoonCheck = 7;
    if (vMoonTemp < -4 || vMoonTemp > 2) {
      MoonMod = (MoonPhaseMod) - (vMoonTemp + 4);
      if (vMoonTemp < -4) {
        MoonMod -= MoonPhaseMod;
      }
      vTempTime = vTempTime + (MoonMod * HourPDay * MinPHour * SecPMin);
    }
    else {
      vMoonCheck = 3 - vMoonTemp;
    }
  }
  else if (DayType == 12) {
    vMoonTemp  = (((Math.floor(vTempTime / (HourPDay * MinPHour * SecPMin)) + 26) % MoonPhaseMod) - (MoonPhaseMod / 2));
    DayMod     = 0;
    vMoonCheck = 7;
    if (vMoonTemp > -40 && vMoonTemp < 38) {
      MoonMod = (MoonPhaseMod) - (vMoonTemp + 46);
      vTempTime = vTempTime + (MoonMod * HourPDay * MinPHour * SecPMin);
    }
    else {
      vMoonCheck = Math.abs((((vMoonTemp - 38) + MoonPhaseMod) % MoonPhaseMod) - 7);
    }
  }
  else {
    DayMod     = 0;
    vMoonCheck = 0;
  }

  do {
    do {
      vTempDay  = Math.floor(vTempTime / (HourPDay * MinPHour * SecPMin)) % DayPVWeek;
      vTavern   = Math.floor(vTempTime / (HourPDay * MinPHour * SecPMin)) % TavernMod;
      vMoon     = CalculateMoonPhase(vTempTime);

      DayTable += "<tr>"
      DayTable += "<td><small>" + CalculateEarthTime3(new Date(Math.floor(vTempTime / VanaToEarth) - Diff)) + "</td>";

      vTempTime = vTempTime + (SecPMin * MinPHour * HourPDay);
      DayTable += "<td><small>" + CalculateEarthTime3(new Date(Math.floor(vTempTime / VanaToEarth) - Diff)) + "</td>";
      DayTable += "<td><small>" + VanaDayColor[vTempDay] + "</td>";
      DayTable += "<td><small>" + vMoon + "</td>";
      DayTable += "<td><small>" + JeunoTavern[vTavern] + "</td>";
      DayTable += "</tr>"
      vTempTime = vTempTime + (SecPMin * MinPHour * HourPDay * DayMod);

      i++;
      vMoonCheck--;
    } while (i < DayNum && vMoonCheck != 0);
    vMoonCheck = 7;
    vTempTime = vTempTime + (77 * HourPDay * MinPHour * SecPMin);
  } while (i < DayNum);

  DayTable += "</table>";

  return DayTable;
}
// -->
