<!--
function printTime() {
  // The current Earth time
  Now = new Date();

  // Calculates the current Earth and Vana'diel time in milliseconds
  eTime = Now.getTime();
  vTime = (eTime + Diff) * VanaToEarth;

  // # of miliseconds into the new Vana'diel day  
  var MSiD  = (vTime - ((Math.floor(vTime / (HourPDay * MinPHour * SecPMin * MSPSec))) * HourPDay * MinPHour * SecPMin * MSPSec));

  // Formats the current Earth and Vana'diel Time for display
  EarthTxt = CalculateEarthTime(Now);
  VanaTxt  = CalculateVanaTime(vTime);

  /////////////////////////////////////////////////////////////////////////////
  // Conquest Update Schedule                                                //
  /////////////////////////////////////////////////////////////////////////////
  ConqTime = (Math.floor((vTime + (ConquestUpdate * VanaToEarth) + (90 * HourPDay * MinPHour * SecPMin * MSPSec)) / (ConquestUpdate * VanaToEarth)) * (ConquestUpdate * VanaToEarth)) - (90 * HourPDay * MinPHour * SecPMin * MSPSec);
  vLimit = CalculateEarthTime(new Date(Math.floor(ConqTime / VanaToEarth) - Diff));
  eLimit = CalculateDelay(ConqTime - vTime);
  /////////////////////////////////////////////////////////////////////////////
  // Conquest Update Schedule                                                //
  /////////////////////////////////////////////////////////////////////////////



  /////////////////////////////////////////////////////////////////////////////
  // Day Time Table                                                          //
  /////////////////////////////////////////////////////////////////////////////
  vTempTime1 = Math.floor( vTime                       / (MSPSec * SecPMin * MinPHour * HourPDay)) * (MSPSec * SecPMin * MinPHour * HourPDay);
  vTempTime2 = Math.floor((vTime - (MSPSec * SecPMin)) / (MSPSec * SecPMin * MinPHour * HourPDay)) * (MSPSec * SecPMin * MinPHour * HourPDay);

  if ((eval(document.MithraTimer.DayNumBox.value) != 0 || DayNum != 0) && (DayNum != eval(document.MithraTimer.DayNumBox.value) || DayType != eval(document.MithraTimer.DayTypeBox.value) || vTempTime1 != vTempTime2)) {
    DayNum   = eval(document.MithraTimer.DayNumBox.value);
    DayType  = eval(document.MithraTimer.DayTypeBox.value);
    DayTable = "";
    if (DayNum != 0) {
      DayTable = DayTimeTable(DayNum, DayTable, DayType, vTime);
    }

    document.getElementById("DayTableBox").innerHTML = DayTable;
  }
  /////////////////////////////////////////////////////////////////////////////
  // Day Time Table                                                          //
  /////////////////////////////////////////////////////////////////////////////






  /////////////////////////////////////////////////////////////////////////////
  // Assigns all other values to the webpage                                 //
  /////////////////////////////////////////////////////////////////////////////
  //document.Times.jt.value        = jt;
  //document.Times.bt.value        = bt;
  //document.Times.nt.value        = nt;
  document.getElementById("VanaBox"       ).innerHTML = VanaTxt;
  document.getElementById("EarthBox"      ).innerHTML = EarthTxt;
  document.getElementById("vLimitBox"     ).innerHTML = vLimit;
  document.getElementById("eLimitBox"     ).innerHTML = eLimit;


  /////////////////////////////////////////////////////////////////////////////
  // Assigns all values to the webpage                                       //
  /////////////////////////////////////////////////////////////////////////////



  setTimeout("printTime()", 1000);
}



function CalculateGuildOpen(ClosedDay, OpenTime, ClosedTime, NewOpenTime, GuildStatus, MSiD) {
  if (vDay != eval(ClosedDay)) {
    if ((MSiD / (SecPMin * MSPSec)) > eval(ClosedTime)) {
      if (((vDay + 1) % DayPVWeek) != eval(ClosedDay)) {
        GuildStatus = "<font class=closed>CLOSED</font> (Opening in " + CalculateDelay((eval(NewOpenTime) * SecPMin * MSPSec) - MSiD) + ")";
      }
      else {
        GuildStatus = "<font class=closed>CLOSED</font> (Guild Holiday Tomorrow)";
      }
    }
    else if ((MSiD / (SecPMin * MSPSec)) > eval(OpenTime)) {
      GuildStatus = "<font class=open>Open</font> (Closing in " + CalculateDelay((eval(ClosedTime) * SecPMin * MSPSec) - MSiD) + ")";
    }
    else if ((MSiD / (SecPMin * MSPSec)) < eval(OpenTime)) {
      GuildStatus = "<font class=closed>CLOSED</font> (Opening in " + CalculateDelay((eval(OpenTime) * SecPMin * MSPSec) - MSiD) + ")";
    }
  }
  return GuildStatus;
}



function CalculateMoonPhase(CurrentTime) {
  vMoon = Math.round((Math.abs(((Math.floor(vTempTime / (HourPDay * MinPHour * SecPMin * MSPSec)) + 26) % MoonPhaseMod) - (MoonPhaseMod / 2)) / (MoonPhaseMod / 2)) * 100);

  if (vMoon > 10 && vMoon < 90) {
    vMoon = vMoon + "%";
  }
  else if (vMoon >= 90) {
    vMoon = "<font color=#0000FF>" + vMoon + "% (Full Moon)</font>";
  }
  else if (vMoon <= 10) {
    vMoon = "<font color=#FF0000>" + vMoon + "% (New Moon)</font>";
  }

  return vMoon;
}



function DayTimeTable(DayNum, DayTable, DayType, vTime) {
  i = 0;

  vTempTime = Math.floor(vTime / (MSPSec * SecPMin * MinPHour * HourPDay)) * (MSPSec * SecPMin * MinPHour * HourPDay);
  DayTable  = "<table border=0 cellpadding=2 cellspacing=0 width=600>";
  DayTable += "<tr><td><strong>Starting</strong></td><td><strong>Ending</strong></td><td><strong>Day Type</strong></td><td><strong>Moon Phase</strong></td></tr>";

  if (DayType < 8) {
    if (DayType < Math.floor((vTempTime / (HourPDay * MinPHour * SecPMin * MSPSec)) % DayPVWeek)) {
      vTempTime = vTempTime + (MSPSec * SecPMin * MinPHour * HourPDay * (DayPVWeek - 1));
    }
    vTempTime  = vTempTime - (Math.floor((vTempTime / (HourPDay * MinPHour * SecPMin * MSPSec)) % DayPVWeek) * (MSPSec * SecPMin * MinPHour * HourPDay));
    vTempTime  = vTempTime + (DayType * (MSPSec * SecPMin * MinPHour * HourPDay));
    DayMod     = DayPVWeek - 1;
    vMoonCheck = 0;
  }
  else if (DayType == 11) {
    vMoonTemp  = (((Math.floor(vTempTime / (HourPDay * MinPHour * SecPMin * MSPSec)) + 26) % MoonPhaseMod) - (MoonPhaseMod / 2));
    DayMod     = 0;
    vMoonCheck = 9;
    if (Math.abs(vMoonTemp) > 4) {
      MoonMod = (MoonPhaseMod) - (vMoonTemp + 4);
      vTempTime = vTempTime + (MoonMod * HourPDay * MinPHour * SecPMin * MSPSec);
    }
    else {
      vMoonCheck = 5 - vMoonTemp;
    }
  }
  else if (DayType == 12) {
    vMoonTemp  = (((Math.floor(vTempTime / (HourPDay * MinPHour * SecPMin * MSPSec)) + 26) % MoonPhaseMod) - (MoonPhaseMod / 2));
    DayMod     = 0;
    vMoonCheck = 9;
    if (Math.abs(vMoonTemp) < 38) {
      MoonMod = (MoonPhaseMod) - (vMoonTemp + 46);
      vTempTime = vTempTime + (MoonMod * HourPDay * MinPHour * SecPMin * MSPSec);
    }
    else {
      vMoonCheck = Math.abs((((vMoonTemp - 38) + MoonPhaseMod) % MoonPhaseMod) - 9);
    }
  }
  else {
    DayMod     = 0;
    vMoonCheck = 0;
  }

  do {
    do {
      vTempDay  = Math.floor(vTempTime / (HourPDay * MinPHour * SecPMin * MSPSec)) % DayPVWeek;
      vTavern   = Math.floor(vTempTime / (HourPDay * MinPHour * SecPMin * MSPSec)) % TavernMod;
      vMoon     = CalculateMoonPhase(vTempTime);

      DayTable += "<tr>"
      DayTable += "<td valign=top><small>" + CalculateEarthTime(new Date(Math.floor(vTempTime / VanaToEarth) - Diff)) + "</td>";

      vTempTime = vTempTime + (MSPSec * SecPMin * MinPHour * HourPDay);
      DayTable += "<td valign=top><small>" + CalculateEarthTime(new Date(Math.floor(vTempTime / VanaToEarth) - Diff)) + "</td>";
      DayTable += "<td valign=top><b><small>" + VanaDayColor[vTempDay] + "</b></td>";
      DayTable += "<td valign=top><small>" + vMoon + "</td>";
      DayTable += "</tr>"
      vTempTime = vTempTime + (MSPSec * SecPMin * MinPHour * HourPDay * DayMod);

      i++;
      vMoonCheck--;
    } while (i < DayNum && vMoonCheck != 0);
    vMoonCheck = 9;
    vTempTime = vTempTime + (75 * HourPDay * MinPHour * SecPMin * MSPSec);
  } while (i < DayNum);

  DayTable += "</table>";

  return DayTable;
}



function RSETimeTable(RSENum, RSETable, RSERace, vTempTime) {
  RSETable  = "<table border=0 cellpadding=2 cellspacing=0 width=100%>";
  RSETable += "<tr><td>Starting</td><td>Ending</td><td>Location</td></tr>";

  RSEMod  = (Math.floor(vTempTime / (8 * RSEDelay)) * (8 * RSEDelay));
  RSEMod += (RSERace * RSEDelay);

  if (vTempTime > (RSEMod + RSEDelay)) {
    RSEMod   += (8 * RSEDelay);
  }

  for (i = 0; i < RSENum; i++) {
    RSETable += "<tr>"

    RSETable += "<td valign=top><small>" + CalculateEarthTime(new Date(Math.floor(RSEMod / VanaToEarth) - Diff)) + "</small></td>";
    RSEMod   += RSEDelay;

    RSETable += "<td valign=top><small>" + CalculateEarthTime(new Date(Math.floor(RSEMod / VanaToEarth) - Diff)) + "</small></td>";
    RSEMod   += (7 * RSEDelay);

    RSETable += "<td valign=top><small>" + RSELocation[(Math.floor(RSEMod / RSEDelay) % 3)] + "</small></td>";
    RSETable += "</tr>"
  }

  RSETable += "</table>";

  return RSETable;
}
// -->

