<!--
// Various constants
MSPSec         = 1000;
SecPMin        = 60;
MinPHour       = 60;
HourPDay       = 24;
DayPEWeek      = 7;
DayPVWeek      = 8;
DayPVMon       = 30;
MonPYear       = 12;
DayPVYear      = 360;
MoonPhaseMod   = 84;
TavernMod      = 25;
VanaToEarth    = 25;
SelbinaMhaura  = 28800000;
ConquestUpdate = 604800000;

//Various variables used in the construction of the page
DayTable    = "";
DayNum      = -1;
DayType     = -1;
RSETable    = "";
RSENum      = -1;
RSERace     = -1;
SMShipTable = "";
SMShipNum   = -1;

// Various arrays
EarthDay      = new Array("SUN","MON","TUE","WED","THU","FRI","SAT");
EarthMonth    = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
VanaDay       = new Array("Firesday", "Earthsday", "Watersday", "Windsday", "Iceday", "Lightningday", "Lightsday", "Darksday");
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 Citizens", "Bastok Citizens", "Windurst Citizens", "Warriors", "Monks", "White Mages", "Black Mages", "Red Mages", "Thieves", "Paladins", "Dark Knights", "Beastmasters", "Bards", "Rangers", "Samurai");

// RSE Stuff
RSELocation = new Array("Gusgen Mines", "Shakhrami Maze", "Ordelle Caves");
RSEDelay    = 691200000;

// Airship time numbers, used for figuring out the departure schedule
MaxAirship   = ((6 * MinPHour) +  0) * SecPMin * MSPSec;
FromSandy    = ((4 * MinPHour) + 10) * SecPMin * MSPSec;
ToSandy      = ((1 * MinPHour) + 10) * SecPMin * MSPSec;
FromBastok   = ((1 * MinPHour) + 10) * SecPMin * MSPSec;
ToBastok     = ((4 * MinPHour) + 10) * SecPMin * MSPSec;
FromWindurst = ((5 * MinPHour) + 45) * SecPMin * MSPSec;
ToWindurst   = ((2 * MinPHour) + 40) * SecPMin * MSPSec;
FromKazahm   = ((2 * MinPHour) + 40) * SecPMin * MSPSec;
ToKazahm     = ((5 * MinPHour) + 35) * SecPMin * MSPSec;

// Vana'diel's time of "birth"
// Earth time     : 2002/06/23 16:00:03 GMT
// Vana'diel time : 0898/02/01 00:00:00

// Time in milliseconds since Vana'diels Current Era began, converted to Earth time
vlocaltime = (((898 * DayPVYear) + DayPVMon) * HourPDay * MinPHour * SecPMin * MSPSec) / VanaToEarth;

// When Vana'diel was "born" in GMT time
Bday = new Date();
Bday.setUTCFullYear(2002, 5, 23);
Bday.setUTCHours(15, 0, 0, 0);

// Time in milliseconds since the Current Era began
elocaltime = Bday.getTime();

// Calculates the millisecond difference between the Vana'diel Current Era and Earth's Current Era with regard to the Beginning of Time
Diff = vlocaltime - elocaltime;



function CalculateDelay(TheDelay) {
  TheDelay = TheDelay / VanaToEarth;

  TheDelayHour = Math.floor((TheDelay / MSPSec) / (SecPMin * MinPHour));
  TheDelay    -= (TheDelayHour * MSPSec * SecPMin * MinPHour);
  TheDelayMin  = Math.floor((TheDelay / MSPSec) / SecPMin);
  TheDelay    -= (TheDelayMin * MSPSec * SecPMin);
  TheDelaySec  = Math.floor(TheDelay / MSPSec);

  TheDelay = "";

  if (TheDelayHour > 0)  { TheDelay    = TheDelayHour + ":"; }
  if (TheDelayMin  < 10) { TheDelayMin = "0" + TheDelayMin;  }
  if (TheDelaySec  < 10) { TheDelaySec = "0" + TheDelaySec;  }
  TheDelay += TheDelayMin + ":" + TheDelaySec;

  return TheDelay;
}



function CalculateEarthTime(CurrentTime) {
  eYear = CurrentTime.getFullYear();
  eMon  = CurrentTime.getMonth();
  eDate = CurrentTime.getDate();
  eHour = CurrentTime.getHours();
  eMin  = CurrentTime.getMinutes();
  eSec  = CurrentTime.getSeconds();
  eDay  = CurrentTime.getDay();

  // Assigns a leading zero if neccessary
  if (eDate < 10) { eDate = "0" + eDate; }
  if (eHour < 10) { eHour = "0" + eHour; }
  if (eMin < 10)  { eMin  = "0" + eMin;  }
  if (eSec < 10)  { eSec  = "0" + eSec;  }

  // Organizes the earth time for display
  TextTime = EarthMonth[eMon] + " " + eDate + ", " + eYear + " (" + EarthDay[eDay] + ") " + eHour + ":" + eMin + ":" + eSec;

  return TextTime;
}



function CalculateVanaTime(CurrentTime) {

  vYear   = Math.floor( CurrentTime / (DayPVYear * HourPDay * MinPHour * SecPMin * MSPSec));
  vMon    = Math.floor((CurrentTime / (DayPVMon  * HourPDay * MinPHour * SecPMin * MSPSec)) % MonPYear ) + 1;
  vDate   = Math.floor((CurrentTime / (            HourPDay * MinPHour * SecPMin * MSPSec)) % DayPVMon ) + 1;
  vHour   = Math.floor((CurrentTime / (                       MinPHour * SecPMin * MSPSec)) % HourPDay );
  vMin    = Math.floor((CurrentTime / (                                  SecPMin * MSPSec)) % MinPHour );
  vSec    = Math.floor((CurrentTime / (                                            MSPSec)) % SecPMin  );
  vDay    = Math.floor((CurrentTime / (            HourPDay * MinPHour * SecPMin * MSPSec)) % DayPVWeek);

  VanaYear = vYear;
  if (vMon  < 10)   { VanaMon  = "0" + vMon;  } else { VanaMon  = vMon;  }
  if (vDate < 10)   { VanaDate = "0" + vDate; } else { VanaDate = vDate; }
  if (vHour < 10)   { VanaHour = "0" + vHour; } else { VanaHour = vHour; }
  if (vMin  < 10)   { VanaMin  = "0" + vMin;  } else { VanaMin  = vMin;  }
  if (vSec  < 10)   { VanaSec  = "0" + vSec;  } else { VanaSec  = vSec;  }

//  TextTime = VanaMon + " / " + VanaDate + " / " + VanaYear + "  (" + VanaDay[vDay] + ") " + VanaHour + ":" + VanaMin;
  TextTime = VanaDay[vDay] + ", " + VanaMon + "/" + VanaDate + "/" + VanaYear + " &nbsp;@&nbsp; " + VanaHour + ":" + VanaMin;

  return TextTime;
}
// -->

