<!--

// * Day/Moon Phase calculations based on original code from Pyogenes @ http://www.pyogenes.com/timer.html
if (window!=top){top.location.href=location.href;}

basisDate = new Date();
basisDate.setUTCFullYear(2002, 5, 23); // Set date to 2003-06-23
basisDate.setUTCHours(15, 0, 0, 0);    // Set time to 15:00:00.0000

Mndate = new Date();
Mndate.setUTCFullYear(2004, 0, 25); // Set date to 2004-01-25
Mndate.setUTCHours(2, 31, 12, 0);    // Set time to 02:31:12.0000

Daydate = new Date();
Daydate.setUTCFullYear(2004, 0, 28); // Set date to 2004-01-28
Daydate.setUTCHours(9, 14, 24, 0);    // Set time to 09:14:24.0000

EarthDay = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
VanaDay = new Array("Firesday", "Earthsday", "Watersday", "Windsday", "Iceday", "Lightningday", "Lightsday", "Darksday");
DayColor = new Array("#FF3300", "#FFCC00", "#6699FF", "#66FF66", "#00FFFF", "#FF99FF", "#FFFFFF", "#999999");
PhaseName = new Array("Full Moon","Waning Gibbous","Last Quarter","Waning Crescent","New Moon","Waxing Crescent","First Quarter","Waxing Gibbous");

sMonth = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");

msGameDay	= (24 * 60 * 60 * 1000 / 25); // milliseconds in a game day
msRealDay	= (24 * 60 * 60 * 1000); // milliseconds in a real day

//**************
// Functions  **
//**************

function getVanadielTime()  {

   var now = new Date();
   vanaDate =  ((898 * 360 + 30) * msRealDay) + (now.getTime() - basisDate.getTime()) * 25;

   vYear = Math.floor(vanaDate / (360 * msRealDay));
   vMon  = Math.floor((vanaDate % (360 * msRealDay)) / (30 * msRealDay)) + 1;
   vDate = Math.floor((vanaDate % (30 * msRealDay)) / (msRealDay)) + 1;
   vHour = Math.floor((vanaDate % (msRealDay)) / (60 * 60 * 1000));
   vMin  = Math.floor((vanaDate % (60 * 60 * 1000)) / (60 * 1000));
   vSec  = Math.floor((vanaDate % (60 * 1000)) / 1000);
   vDay  = Math.floor((vanaDate % (8 * msRealDay)) / (msRealDay));

   if (vYear < 1000) { VanaYear = "0" + vYear; } else { 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; }

   VanaTime = "<B><FONT COLOR=" + DayColor[vDay] + ">" + VanaDay[vDay] + "</B></FONT>:  " 
   VanaTime += VanaMon + "/" + VanaDate + "/" + VanaYear + "  " + VanaHour + ":" + VanaMin + ":" + VanaSec;

   document.getElementById("vTime").innerHTML = VanaTime;
}

function getMoonPhase()  {

   var timenow = new Date();
   var localTime = timenow.getTime();
   var moonDays = (Math.floor((localTime - Mndate.getTime()) / msGameDay))  % 84;

   var mnElapsedTime = (localTime - Mndate.getTime()) % msGameDay;

   // determine phase percentage
       moonpercent = - Math.round((42 - moonDays) / 42 * 100);
	 phasecoloron = "<font color='#FFFF99'>";
	 fontsmall = "<font size = '1'>"
	 fontoff = "</font>";

         if (moonpercent <= -94)  {
            mnpercent = -(moonpercent) + "% " + PhaseName[0] + fontoff;
	      mnpercent = mnpercent + "<BR><IMG SRC='images/full_moon.jpg' ALIGN='center'><BR>";
            mnPhase = 0;
            optPhase = 4;
            toNextPhase = (3 - moonDays) * msGameDay - mnElapsedTime;
            toOptimalPhase = (38 - moonDays) * msGameDay - mnElapsedTime;

         }  else if (moonpercent >= 90)  {
	      mnpercent = (moonpercent) + "% " + PhaseName[0] + fontoff;
	      mnpercent = mnpercent + "<BR><IMG SRC='images/full_moon.jpg' ALIGN='center'><BR>";
	      mnPhase = 0;
            optPhase = 4;
            toNextPhase = (87 - moonDays) * msGameDay - mnElapsedTime;
            toOptimalPhase = (38 + 84 - moonDays) * msGameDay - mnElapsedTime;

         }  else if (moonpercent >= -93 && moonpercent <= -62)  {
	      mnpercent = -(moonpercent) + "% " + PhaseName[1] + fontoff;
	      mnpercent = mnpercent + "<BR><IMG SRC='images/waning_gibbous.jpg' ALIGN='center'><BR>";
	      mnPhase = 1;
            optPhase = 4;
            toNextPhase = (17 - moonDays) * msGameDay - mnElapsedTime;
            toOptimalPhase = (38 - moonDays) * msGameDay - mnElapsedTime;

         }  else if (moonpercent >= -61 && moonpercent <= -41)  {
	      mnpercent = -(moonpercent) + "% " + PhaseName[2] + fontoff;
	      mnpercent = mnpercent + "<BR><IMG SRC='images/last_quarter.jpg' ALIGN='center'><BR>";
	      mnPhase = 2;
            optPhase = 4;
            toNextPhase = (25 - moonDays) * msGameDay - mnElapsedTime;
            toOptimalPhase = (38 - moonDays) * msGameDay - mnElapsedTime;

         }  else if (moonpercent >= -40 && moonpercent <= -11)  {
	      mnpercent = -(moonpercent) + "% " + PhaseName[3] + fontoff;
	      mnpercent = mnpercent + "<BR><IMG SRC='images/waning_crescent.jpg' ALIGN='center'><BR>";
	      mnPhase = 3;
            optPhase = 4;
            toNextPhase = (38 - moonDays) * msGameDay - mnElapsedTime;
            toOptimalPhase = (38 - moonDays) * msGameDay - mnElapsedTime;

         }  else if (moonpercent >= -10 && moonpercent <= -1)  {
	      mnpercent = -(moonpercent) + "% " + PhaseName[4] + fontoff;
	      mnpercent = mnpercent + "<BR><IMG SRC='images/new_moon.jpg' ALIGN='center'><BR>";
	      mnPhase = 4;
            optPhase = 0;
            toNextPhase = (45 - moonDays) * msGameDay - mnElapsedTime;
            toOptimalPhase = (80 - moonDays) * msGameDay - mnElapsedTime;

         }  else if (moonpercent >= 0 && moonpercent <= 6)  {
	      mnpercent = (moonpercent) + "% " + PhaseName[4] + fontoff;
	      mnpercent = mnpercent + "<BR><IMG SRC='images/new_moon.jpg' ALIGN='center'><BR>";
	      mnPhase = 4;
            optPhase = 0;
            toNextPhase = (45 - moonDays) * msGameDay - mnElapsedTime;
            toOptimalPhase = (80 - moonDays) * msGameDay - mnElapsedTime;

         }  else if (moonpercent >= 7 && moonpercent <= 38)  {
	      mnpercent = (moonpercent) + "% " + PhaseName[5] + fontoff;
	      mnpercent = mnpercent + "<BR><IMG SRC='images/waxing_crescent.jpg' ALIGN='center'><BR>";
	      mnPhase = 5;
            optPhase = 0;
            toNextPhase = (59 - moonDays) * msGameDay - mnElapsedTime;
            toOptimalPhase = (80 - moonDays) * msGameDay - mnElapsedTime;

         }  else if (moonpercent >= 37 && moonpercent <= 56)  {
	      mnpercent = (moonpercent) + "% " + PhaseName[6] + fontoff;
	      mnpercent = mnpercent + "<BR><IMG SRC='images/first_quarter.jpg' ALIGN='center'><BR>";
	      mnPhase = 6;
            optPhase = 0;
            toNextPhase = (66 - moonDays) * msGameDay - mnElapsedTime;
            toOptimalPhase = (80 - moonDays) * msGameDay - mnElapsedTime;

         }  else if (moonpercent >= 57 && moonpercent <= 89)  {
	      mnpercent = (moonpercent) + "% " + PhaseName[7] + fontoff;
	      mnpercent = mnpercent + "<BR><IMG SRC='images/waxing_gibbous.jpg' ALIGN='center'><BR>";
	      mnPhase = 7;
            optPhase = 0;
            toNextPhase = (80 - moonDays) * msGameDay - mnElapsedTime;
            toOptimalPhase = (80 - moonDays) * msGameDay - mnElapsedTime;
         }

   mnpercent = phasecoloron + mnpercent;
   
         if (moonpercent <= 6 && moonpercent >= -10)  {
              mnpercent = mnpercent + "<I>Ideal fishing time now!</I>";
         } else if (moonpercent >= 90 || moonpercent <= -94)  {
              mnpercent = mnpercent + "<I>Ideal fishing time now!</I>";
         }

   nextPhase = phasecoloron + PhaseName[(mnPhase + 1) % 8] + fontoff + " in " + formatCountdown(toNextPhase);
   nextOptPhase = phasecoloron + PhaseName[optPhase] + fontoff + " in " + formatCountdown(toOptimalPhase);
   mnpercent = mnpercent + "<BR>" + fontsmall + "Next Phase: " + nextPhase + "<BR>" + "Next Optimal: " + nextOptPhase + fontoff

   document.getElementById("mPhase").innerHTML = mnpercent;

}


function formatCountdown(varTime,showSec) {

   var dayLeft = varTime / msRealDay;
   var hourLeft = (dayLeft - Math.floor(dayLeft)) * 24;
   var minLeft = (hourLeft - Math.floor(hourLeft)) * 60;
   var secLeft = Math.floor((minLeft - Math.floor(minLeft)) * 60);
   var formattedTime = '';

   dayLeft = Math.floor(dayLeft);
   hourLeft = Math.floor(hourLeft);
   minLeft = Math.floor(minLeft);

   if (minLeft < 10) {minLeft = '0' + minLeft;}
   if (secLeft < 10) {secLeft = '0' + secLeft;}

   if (dayLeft > 0) {
      formattedTime = dayLeft + 'd ';
      if (hourLeft < 10) {
         formattedTime = formattedTime + '0' + hourLeft + 'h ';
      } else {
         formattedTime = formattedTime + hourLeft + 'h ';
      }         
   } else if (hourLeft > 0) {
      formattedTime = hourLeft + 'h ';
   }

   if (showSec == 1) {
   formattedTime = formattedTime + minLeft + 'm ' + secLeft + 's';
   } else {
   formattedTime = formattedTime + minLeft + 'm ';   
   }
   
   return formattedTime;
}

function formatDate(varTime, showDay) {

   var varDate = new Date(varTime);
   var yyyy = varDate.getYear();

   var mm = varDate.getMonth() + 1;

   var dd = varDate.getDate();

   var day = varDate.getDay();

   var hh = varDate.getHours();

   var min = varDate.getMinutes();
   if (min < 10) { min = "0" + min; }

   var ss = varDate.getSeconds();
   if (ss < 10) { ss = "0" + ss; }
   
   var ampm = ""
   if (hh >= 12) { ampm = " PM"; }
   if (hh < 12) { ampm = " AM"; }
   
   if (hh > 12) { hh = hh - 12; }
   if (hh == 0) { hh = 12; }
   
   if (showDay == 1)  {
      dateString = EarthDay[day] + ", " + sMonth[mm-1] + ' ' + dd + ', ' + yyyy + " " + hh + ":" + min + ":" + ss + ampm;
   } else if (showDay == 2)  {
      dateString = sMonth[mm-1] + " " + dd + ",  " + hh + ":" + min + ":" + ss + ampm;
   }
   return dateString;
}

function getDaySched()  {

   var now = new Date();
   var timeDiff = now.getTime() - Mndate.getTime();
   var weekStart = now.getTime() - (timeDiff % (8 * msGameDay));

   var repeatCal = document.Timer.DayCount.value;
   var dayOffset = 8;   
   var highlight = 0;
   var boldon=' ';
   var boldoff=' ';
   var thisday=' ';
   
   var out = "<TABLE CLASS='daymoon2' BORDER='1' CELLSPACING='0' CELLPADDING='1' WIDTH='100%'><TR><TH ALIGN='left'>Vana'diel Day</TH><TH ALIGN='left'>Earth Time Begins</TH><TH ALIGN='left'>Earth Time Ends</TH><TH ALIGN='left'>Vana'diel Moon Phase</TH></TR>";
   if (dayOffset > 7) {
      for ( i = 0; i < repeatCal; i++) {
         startTime = weekStart + ((dayOffset - 14) * msGameDay) + (msGameDay * i);
         endTime = startTime + msGameDay;

         if (endTime >= now && highlight == 0)  {
         	highlight = 1;
         	boldon='<b>';
         	boldoff='</b>';
         	thisday=' (NOW)';
         } else {
         	boldon='';
         	boldoff='';
         	thisday='';
         }
		 
         moonDays = (Math.floor((startTime - Mndate.getTime()) / msGameDay))  % 84;
         // determine phase percentage
         moonpercent = - Math.round((42 - moonDays) / 42 * 100);
         
         moonpercentneg = -(moonpercent);
         
         if (moonpercent <= -94)  {
              mnpercent = "<FONT COLOR='#FFFFFF'>" + moonpercentneg + "% " + PhaseName[0] + "</font>";
         }  else if (moonpercent >= 90)  {
	      mnpercent = "<FONT COLOR='#FFFFFF'>" + (moonpercent) + "% " + PhaseName[0] + "</font>";
         }  else if (moonpercent >= -93 && moonpercent <= -62)  {
	      mnpercent = (moonpercentneg) + "% " + PhaseName[1];
         }  else if (moonpercent >= -61 && moonpercent <= -41)  {
	      mnpercent = (moonpercentneg) + "% " + PhaseName[2];
         }  else if (moonpercent >= -40 && moonpercent <= -11)  {
	      mnpercent = (moonpercentneg) + "% " + PhaseName[3];
         }  else if (moonpercent >= -10 && moonpercent <= -1)  {
	      mnpercent = "<FONT COLOR='#999999'>" + (moonpercentneg) + "% " + PhaseName[4] + "</font>";
         }  else if (moonpercent >= 0 && moonpercent <= 6)  {
	      mnpercent = "<FONT COLOR='#999999'>" + (moonpercent) + "% " + PhaseName[4] + "</font>";
         }  else if (moonpercent >= 7 && moonpercent <= 38)  {
	      mnpercent = (moonpercent) + "% " + PhaseName[5];
         }  else if (moonpercent >= 37 && moonpercent <= 56)  {
	      mnpercent = (moonpercent) + "% " + PhaseName[6];
         }  else if (moonpercent >= 57 && moonpercent <= 89)  {
	      mnpercent = (moonpercent) + "% " + PhaseName[7];
         }

         out = out + "<TR><TD>"+boldon+"<FONT COLOR='" + DayColor[(dayOffset + i) % 8] + "'>" + VanaDay[(dayOffset + i) % 8] + "</FONT>"+thisday+boldoff+"</TD><TD>"+boldon + formatDate(startTime, 1) + boldoff+"</TD><TD>" + boldon +formatDate(endTime, 1) + boldoff +"</TD><TD>" + boldon +mnpercent + boldoff +"</TD></TR>";
      }
   }
   if (repeatCal < 1) { out = ''; } else { out = out + "</TABLE>"; }
   document.getElementById("days").innerHTML = out;
}


BoatSched = new Array("08:00", "16:00", "00:00");
BoatSched2 = new Array("06:30", "14:30", "22:30");
BoatDayOffset = new Array(0,0,7);

function getShipSched()  {

   // Boats depart at 00:00, 08:00, 16:00 from both Selbina and Mhuara
   // Boats arrive at 06:30, 14:30, 22:30 which is 216 seconds before they leave
   var now = new Date();
   var timeDiff = now.getTime() - basisDate.getTime();
   var hours = Math.floor((timeDiff / ( msGameDay / 3)) % 3);

   var timeLeft = (msGameDay / 3 ) - (timeDiff % (msGameDay / 3));

   bSched = "<TABLE CLASS='ship' BORDER='1' ALIGN='CENTER' WIDTH='100%' CELLSPACING='0' CELLPADDING='1'>"
   bSched = bSched + "<TR><TH COLSPAN='3' ALIGN='CENTER'>ARRIVES</TH><TH COLSPAN='3' ALIGN='CENTER'>DEPARTS</TH></TR>"
   bSched = bSched + "<TR><TH>Vana'diel Day</TH><TH>Vana'diel Time</TH><TH>Earth Time<BR>Countdown</TH><TH>Vana'diel Day</TH><TH>Vana'diel Time</TH><TH>Earth Time<BR>Countdown</TH></TR>";

   vanaDate =  ((898 * 360 + 30) * msRealDay) + (timeDiff) * 25;
   vDay  = Math.floor((vanaDate % (8 * msRealDay)) / (msRealDay));

   for ( i = 0; i < 5; i++) {
      timeLeftLoop = timeLeft + ( i* msGameDay / 3);
      dPos = (vDay + Math.floor((hours + 1 + i)/3)) % 8;
      dPos2 = (dPos + BoatDayOffset[(hours + i) % 3]) % 8;
      arrivalTime = timeLeftLoop - 216000;
      if (arrivalTime <= 0)
         arrivalTime = 0;

      bSched = bSched + "<TR><TD ALIGN='CENTER'><FONT COLOR='" + DayColor[dPos2] + "'>" + VanaDay[dPos2] + "</FONT></TD><TD ALIGN='CENTER'>" + BoatSched2[(hours + i) % 3] + "</TD><TD ALIGN='CENTER'>" + formatCountdown(arrivalTime,1) + "</TD><TD ALIGN='CENTER'><FONT COLOR='" + DayColor[dPos] + "'>" + VanaDay[dPos] + "</FONT></TD><TD ALIGN='CENTER'>" + BoatSched[(hours + i) % 3] + "</TD><TD ALIGN='CENTER'>" + formatCountdown(timeLeftLoop,1) + "</TD></TR>";
   }
   out = bSched + '</TABLE>';

   document.getElementById("ferry").innerHTML = out;
}

function getGuildHours()  {

   alchemy = guildHelper(8, 23, 6);
   blacksmith = guildHelper(8, 23, 2);
   bonework = guildHelper(8, 23, 3);
   goldsmith = guildHelper(8, 23, 4);
   cloth = guildHelper(6, 21, 0);
   wood = guildHelper(6, 21, 0);
   leather = guildHelper(3, 18, 4);
   fishing = guildHelper(3, 18, 5);
   cooking = guildHelper(5, 20, 7);

   guildOut = "<TABLE CLASS='guild' WIDTH='400' BORDER='1' CELLSPACING='0' CELPADDING='1' ALIGN='CENTER' CELLSPACING='0' CELLPADDING='0'>";
   guildOut = guildOut + "<TR><TH ALIGN='CENTER' COLSPAN='1'>Guild Type</TH><TH COLSPAN='2' ALIGN='CENTER'>Countdown</TH>";
   guildOut = guildOut + "<TH ALIGN='CENTER'>Current Status</TH></TR>";
   guildOut = guildOut + "<TR><TD ALIGN='CENTER'>" + "<A HREF=#  onmousedown='javascript:guildDetail(1)' STYLE='text-decoration: none'>Alchemy</A>" +"</TD>" + alchemy + "</TR>";
   guildOut = guildOut + "<TR><TD ALIGN='CENTER'>" + "<A HREF=#  onmousedown='javascript:guildDetail(2)' STYLE='text-decoration: none'>Blacksmith</A>" + "</TD>" + blacksmith + "</TR>";
   guildOut = guildOut + "<TR><TD ALIGN='CENTER'>" + "<A HREF=#  onmousedown='javascript:guildDetail(3)' STYLE='text-decoration: none'>Boneworking</A>" + "</TD>" + bonework	+ "</TR>";
   guildOut = guildOut + "<TR><TD ALIGN='CENTER'>" + "<A HREF=#  onmousedown='javascript:guildDetail(4)' STYLE='text-decoration: none'>Goldsmith</A>" + "</TD>" + goldsmith + "</TR>";
   guildOut = guildOut + "<TR><TD ALIGN='CENTER'>" + "<A HREF=#  onmousedown='javascript:guildDetail(5)' STYLE='text-decoration: none'>Cloth</A>" + "</TD>" + cloth + "</TR>";
   guildOut = guildOut + "<TR><TD ALIGN='CENTER'>" + "<A HREF=#  onmousedown='javascript:guildDetail(6)' STYLE='text-decoration: none'>Woodworking</A>" + "</TD>" + wood + "</TR>";
   guildOut = guildOut + "<TR><TD ALIGN='CENTER'>" + "<A HREF=#  onmousedown='javascript:guildDetail(7)' STYLE='text-decoration: none'>Leather</A>" + "</TD>" + leather + "</TR>";
   guildOut = guildOut + "<TR><TD ALIGN='CENTER'>" + "<A HREF=#  onmousedown='javascript:guildDetail(8)' STYLE='text-decoration: none'>Fishing</A>" + "</TD>" + fishing + "</TR>";
   guildOut = guildOut + "<TR><TD ALIGN='CENTER'>" + "<A HREF=#  onmousedown='javascript:guildDetail(9)' STYLE='text-decoration: none'>Cooking</A>" + "</TD>" + cooking + "</TR>";
   guildOut = guildOut + "</TABLE>";

   document.getElementById("Guilds").innerHTML = guildOut;
}

function guildHelper(open, close, holiday)  {
   var timenow = new Date();
   var localTime = timenow.getTime();
   var elapsedTime = (localTime - basisDate.getTime()) % msGameDay;
   var dayStart = localTime - elapsedTime;

   // this conversion factor tells us time elapsed since the game day started in milliseconds
   var convFactor = 60 * 60 * 1000 / 25;

   vanaDate =  ((898 * 360 + 30) * msRealDay) + (localTime - basisDate.getTime()) * 25;
   vDay  = Math.floor((vanaDate % (8 * msRealDay)) / (msRealDay));

   open = open * convFactor;
   close = close * convFactor;

   openTime = open + dayStart;
   closeTime = close + dayStart;
   outputTxt = "";
   guildCountdown = 0;

   if (openTime >= localTime) {
      guildCountdown = openTime - localTime;
      outputTxt2 = "</TD><TD ALIGN='CENTER'><FONT COLOR='#FF3300'>Closed. Open tomorrow.</FONT></TD>";
      outputTxt1 = "<TD ALIGN='CENTER' COLSPAN='2'>Opens in: ";
   } else if ((openTime < localTime) && (closeTime > localTime)) {
      guildCountdown = closeTime - localTime;
      outputTxt2 = "</TD><TD ALIGN='CENTER'><FONT COLOR='#66FF66'>Open for business.</FONT></TD>";
      outputTxt1 = "<TD ALIGN='CENTER' COLSPAN='2'>Closes in: ";
   } else if (closeTime <= localTime)  {
      guildCountdown = (msGameDay - elapsedTime) + open;
      outputTxt2 = "</TD><TD ALIGN='CENTER'><FONT COLOR='#FF3300'>Closed. Open tomorrow.</FONT></TD>";
      outputTxt1 = "<TD ALIGN='CENTER' COLSPAN='2'>Opens in: ";
   }

   // adjust for holiday
   if ((holiday == vDay) && (closeTime > localTime)) {
      guildCountdown = (msGameDay - elapsedTime) + open;
      outputTxt2 = "</TD><TD ALIGN='CENTER'><FONT COLOR='#FF3300'>Closed for holiday.</FONT></TD>";
      outputTxt1 = "<TD ALIGN='CENTER' COLSPAN='2'>Opens in: ";
   } else if (((vDay + 1) == holiday) && (closeTime <= localTime))  {
      guildCountdown = (msGameDay - elapsedTime) + open + msGameDay;
      outputTxt2 = "</TD><TD ALIGN='CENTER'><FONT COLOR='#FF3300'>Closed. Holiday tomorrow!</FONT></TD>";
      outputTxt1 = "<TD ALIGN='CENTER' COLSPAN='2'>Opens in: ";
   }

   return outputTxt1 + formatCountdown(guildCountdown,1) + outputTxt2;
}

function guildDetail(guild)  {
   switch(guild)  {
      case 1:
         out = "<B>Alchemist´s Guild</B><BR>Location: <I>Bastok Mines</I><BR>Holiday: <I><FONT COLOR='"+DayColor[6]+"'>Lightsday"+"</FONT>"+"</I><BR>Hours: <I>8:00-23:00</I>";
         break
      case 2:
         out = "<B>Blacksmith´s Guild</B><BR>Locations: <I>Bastok Metalworks, Northern San d'Oria</I><BR>Holiday: <I><FONT COLOR='"+DayColor[2]+"'>Watersday"+"</FONT>"+"</I><BR>Hours: <I>8:00-23:00</I>";
         break
      case 3:
         out = "<B>Boneworker´s Guild</B><BR>Location: <I>Windurst Woods</I><BR>Holiday: <I><FONT COLOR='"+DayColor[3]+"'>Windsday"+"</FONT>"+"</I><BR>Hours: <I>8:00-23:00</I>";
         break
      case 4:
         out = "<B>Goldsmith´s Guild</B><BR>Location: <I>Bastok Markets</I><BR>Holiday: <I><FONT COLOR='"+DayColor[4]+"'>Iceday"+"</FONT>"+"</I><BR>Hours: <I>8:00-23:00</I>";
         break
      case 5:
         out = "<B>Weaver´s Guild</B><BR>Location: <I>Windurst Woods</I><BR>Holiday: <I><FONT COLOR='"+DayColor[0]+"'>Firesday"+"</FONT>"+"</I><BR>Hours: <I>6:00-21:00</I>";
         break
      case 6:
         out = "<B>Carpenter´s Guild</B><BR>Location: <I>Northern San d´Oria</I><BR>Holiday: <I><FONT COLOR='"+DayColor[0]+"'>Firesday"+"</FONT>"+"</I><BR>Hours: <I>6:00-21:00</I>";
         break
      case 7:
         out = "<B>Leatherworker´s Guild</B><BR>Location: <I>Southern San d´Oria</I><BR>Holiday: <I><FONT COLOR='"+DayColor[4]+"'>Iceday"+"</FONT>"+"</I><BR>Hours: <I>3:00-18:00</I>";
         break
      case 8:
         out = "<B>Fisherman´s Guild</B><BR>Location: <I>Port Windurst</I><BR>Holiday: <I><FONT COLOR='"+DayColor[5]+"'>Lightningday"+"</FONT>"+"</I><BR>Hours: <I>3:00-18:00</I>";
         break
      case 9:
         out = "<B>Culinary Guild</B><BR>Location: <I>Windurst Waters</I><BR>Holiday: <I><FONT COLOR='"+DayColor[7]+"'>Darksday"+"</FONT>"+"</I><BR>Hours: <I>5:00-20:00</I>";
   }

   out = "<TABLE CLASS='guild' WIDTH='400' BORDER='1' CELLSPACING='0' CELPADDING='1' ALIGN='CENTER'><TR><TD><CENTER>" + out;
   out = out + "</CENTER></TR></TD></TABLE>";
   document.getElementById("GuildDetails").innerHTML = out;
}

function getAirSched() { 
var timenow = new Date(); 
var localTime = timenow.getTime(); 
var elapsedTime = (localTime - basisDate.getTime()) % msGameDay; 
var dayStart = localTime - elapsedTime; 

vanaDate = ((898 * 360 + 30) * msRealDay) + (localTime - basisDate.getTime()) * 25; 
vDay = Math.floor((vanaDate % (8 * msRealDay)) / (msRealDay)); 

var offset1 = ((1 * 60) + 10) * 60 * 1000 / 25; // 1:10 offset used by B->J J->S 
var offset2 = ((2 * 60) + 40) * 60 * 1000 / 25; // 2:40 offset used by J->W K-J 
var offset3 = ((4 * 60) + 10) * 60 * 1000 / 25; // 4:10 offset used by J->B S->J 
var offset4 = ((5 * 60) + 35) * 60 * 1000 / 25; // 5:35 offset used by J->K 
var offset5 = ((5 * 60) + 45) * 60 * 1000 / 25; // 5:45 offset used by W->J 

outAir = "";
outAir += "<TABLE CLASS='airship' WIDTH='600' CELLSPACING='0' CELLPADDING='1' BORDER='1' ALIGN='CENTER'>"; 
outAir += "<TR><TD ALIGN='CENTER'><B>Airship Route</B></TD><TD ALIGN='CENTER'><B>Departure Day</B></TD><TD ALIGN='CENTER'><B>Arrival Countdown</B></TD><TD ALIGN='CENTER'><B>Departure Countdown</B></TD>";
outAir += AirHelper(elapsedTime, offset3, vDay, "Jeuno To Bastok"); 
outAir += AirHelper(elapsedTime, offset4, vDay, "Jeuno To Kazham"); 
outAir += AirHelper(elapsedTime, offset1, vDay, "Jeuno To San d'Oria"); 
outAir += AirHelper(elapsedTime, offset2, vDay, "Jeuno To Windurst"); 
outAir += AirHelper(elapsedTime, offset1, vDay, "Bastok To Jeuno"); 
outAir += AirHelper(elapsedTime, offset2, vDay, "Kazham To Jeuno");
outAir += AirHelper(elapsedTime, offset3, vDay, "San d'Oria To Jeuno"); 
outAir += AirHelper(elapsedTime, offset5, vDay, "Windurst To Jeuno");  
outAir += '</TABLE>'; 
document.getElementById("Airship").innerHTML = outAir; 
} 

function AirHelper(elapsed, offset, day, city) { var newOffset = offset; 
var count = 0; 
while (newOffset < elapsed) { count += 1; 
newOffset += (msGameDay / 4); 
} 
if (count >= 4) { day = (day + 1) % 8; 
} 

output = '<TR><TD>' + city; 
output += '</TD><TD ALIGN="CENTER"><FONT COLOR="' + DayColor[day] + '">' + VanaDay[day] + '</FONT></TD>'; 
arrivalTime = newOffset - elapsed - 144000;
if (arrivalTime < 0)  {
output += '<TD ALIGN="CENTER">DOCKED</TD>';
   arrivalTime = 0;
}
if (arrivalTime > 0) {
output += '<TD ALIGN="CENTER">' + formatCountdown(arrivalTime,1) + '</TD>';
}
output += '<TD ALIGN="CENTER">' + formatCountdown(newOffset - elapsed,1) + '</TD></TR>'; 
return output; 
}

function printPage() {
   getVanadielTime();
   getMoonPhase();


   setTimeout("printPage()", 5000);

}

// -->