var CurDateObjStr = "";
var CurTimeObjStr = "";
var StartDay;
var EndDay;
var StartTime;
var EndTime;
var LeftCenter = 168;
var TopCenter = 168;
var Radius = 134;
//---------------------------------------------------------------------------
var ZodiacMask = new Array(14);
ZodiacMask[ 0] = null;
ZodiacMask[ 1] = 0x0001;
ZodiacMask[ 2] = 0x0002;
ZodiacMask[ 3] = 0x0004;
ZodiacMask[ 4] = 0x0008;
ZodiacMask[ 5] = 0x0010;
ZodiacMask[ 6] = 0x0020;
ZodiacMask[ 7] = 0x0040;
ZodiacMask[ 8] = 0x0080;
ZodiacMask[ 9] = 0x0100;
ZodiacMask[10] = 0x0200;
ZodiacMask[11] = 0x0400;
ZodiacMask[12] = 0x0800;
ZodiacMask[13] = 0x1000;
var ZodiacName = new Array(14);
ZodiacName[ 0] = null;
ZodiacName[ 1] = 'capricorn';
ZodiacName[ 2] = 'aquarius';
ZodiacName[ 3] = 'pisces';
ZodiacName[ 4] = 'aries';
ZodiacName[ 5] = 'taurus';
ZodiacName[ 6] = 'gemini';
ZodiacName[ 7] = 'cancer';
ZodiacName[ 8] = 'leo';
ZodiacName[ 9] = 'virgo';
ZodiacName[10] = 'libra';
ZodiacName[11] = 'scorpio';
ZodiacName[12] = 'sagittarius';
ZodiacName[13] = 'milkyway';
//---------------------------------------------------------------------------
var isDHTML = 0;
var isID = 0;
var isAll = 0;
var isLayers = 0;
if (document.getElementById) {isID = 1; isDHTML = 1;}
else {
if (document.all) {isAll = 1; isDHTML = 1;}
else {
browserVersion = parseInt(navigator.appVersion);
if ((navigator.appName.indexOf('Netscape') != -1) && (browserVersion == 4)) {isLayers = 1; isDHTML = 1;}
}}

function findDOM(objectID,withStyle) {
  if (withStyle == 1) {
    if (isID) { return (document.getElementById(objectID).style) ; }
    else {
      if (isAll) { return (document.all[objectID].style); }
    else {
      if (isLayers) { return (document.layers[objectID]); }
    };}
  }
  else {
    if (isID) { return (document.getElementById(objectID)) ; }
    else {
      if (isAll) { return (document.all[objectID]); }
    else {
      if (isLayers) { return (document.layers[objectID]); }
    };}
  }
}
//---------------------------------------------------------------------------
function findWidth(objectID) {
  var dom = findDOM(objectID,0);
  if (dom.offsetWidth)
    return dom.offsetWidth;
  if (dom.clip.width)
    return dom.clip.width;
  return (null);
}

function findHeight(objectID) {
  var dom = findDOM(objectID,0);
  if (dom.offsetHeight)
    return dom.offsetHeight;
  if (dom.clip.height)
    return dom.clip.height;
  return (null);
}

function moveObjectTo(objectID,Left,Top) {
  var domStyle = findDOM(objectID,1);
    domStyle.left = Left;
    domStyle.top = Top;
}

function setVisibility(objectID,state) {
  var dom = findDOM(objectID,1);
  dom.visibility = state;
}
//---------------------------------------------------------------------------
function CirclePos(objectID, Radians) {
  var widthObj = findWidth(objectID);
  var heightObj = findHeight(objectID);
  Left = LeftCenter + (Math.cos(Radians) * Radius) - (widthObj/2);
  Top  = TopCenter  - (Math.sin(Radians) * Radius) - (heightObj/2);
  moveObjectTo(objectID,Left,Top);
}

function PositionZodiacTheta(theta) {
  var rt = (Math.PI/6);
  CirclePos('capricorn'  , ( 6 * rt) + theta);
  CirclePos('aquarius'   , ( 5 * rt) + theta);
  CirclePos('pisces'     , ( 4 * rt) + theta);
  CirclePos('aries'      , ( 3 * rt) + theta);
  CirclePos('taurus'     , ( 2 * rt) + theta);
  CirclePos('milkyway'   , (1.5* rt) + theta);
  CirclePos('gemini'     , ( 1 * rt) + theta);
  CirclePos('cancer'     , ( 0 * rt) + theta);
  CirclePos('leo'        , (11 * rt) + theta);
  CirclePos('virgo'      , (10 * rt) + theta);
  CirclePos('libra'      , ( 9 * rt) + theta);
  CirclePos('scorpio'    , ( 8 * rt) + theta);
  CirclePos('sagittarius', ( 7 * rt) + theta);
}

function PositionZodiac(day_of_year,time_of_day) {
  var offsetday = -5;  //Whatever values make it look right
  var offsettime = -3;
  var theta = ( ((day_of_year + offsetday) * (2*Math.PI/365)) + ((time_of_day + offsettime)*(2*Math.PI/288)) );
  PositionZodiacTheta(theta);
}

function animateZodiac(day_of_year,time_of_day) {
  var animaeDelayGo = 500;
  var animaeDelayStart = 1500;
  var animaeDelayEnd = 2000;
  var OldCurDateObjStr = CurDateObjStr;
  var OldCurTimeObjStr = CurTimeObjStr;

  // Set the Zodiac icons in place
  PositionZodiac(day_of_year,time_of_day);
  // Set the date displayed
  CurDateObjStr = "d" + day_of_year;
  if ((OldCurDateObjStr != "") && (CurDateObjStr != OldCurDateObjStr)) {
     setVisibility(OldCurDateObjStr,'hidden');  //Erase previous Date
  }
  setVisibility(CurDateObjStr,'visible');

  // Set the time displayed
  if (StartTime != EndTime) {
     CurTimeObjStr = "t" + time_of_day;
     if ((OldCurTimeObjStr != "") && (CurTimeObjStr != OldCurTimeObjStr)) {
        setVisibility(OldCurTimeObjStr,'hidden');  //Erase previous time
     }
     setVisibility(CurTimeObjStr,'visible');
  }

  //ANIMATE IF NEEDED
  if ((StartDay != EndDay) || (StartTime != EndTime)) {
    //Increment day_of_year
    animaeDelay = animaeDelayGo;
    if (StartDay != EndDay) {
       if (day_of_year == EndDay) {
          animaeDelay = animaeDelayEnd;
          day_of_year = StartDay;
       }else{
          if (day_of_year == StartDay) {
             animaeDelay = animaeDelayStart;
          }
          ++day_of_year;
          if (day_of_year > 365) {day_of_year -= 365;}
       }
    }else{ //or, increment time_of_day
       if (StartTime != EndTime)
       {
          if (time_of_day == EndTime) {
             animaeDelay = animaeDelayEnd;
             time_of_day = StartTime;
          }else{
             if (time_of_day == StartTime) {
                animaeDelay = animaeDelayStart;
             }
             ++time_of_day;
             if (time_of_day > 288) {time_of_day -= 288;}
          }
       }
    }
    //Animate
    setTimeout('animateZodiac(' + day_of_year + ',' + time_of_day + ')', animaeDelay);
  }
}
//----------------------------------------------------------------------------
function StartZodiac(start_day,end_day,ShowMask,start_time,end_time) {
  StartDay = start_day;
  EndDay = end_day;
  StartTime = start_time;
  EndTime = end_time;
  //Set the Zodiac icons in place (so when we first show them they are in place)
  PositionZodiac(StartDay,StartTime);
  //Display selected Zodiac icons
  for (var i=1; i<=13; ++i)
  {
     if (ShowMask & ZodiacMask[i])
     {
        setVisibility(ZodiacName[i],'visible');
     }
  }
  animateZodiac(StartDay,StartTime);
}

function LoadZodiac(start_day,end_day,ShowMask,start_time,end_time)
{
  //We must wait for parent window to finish loading
  //if there is no parent window then parent.loading=undefined logically not true
  if (parent.loading)  //if parent is still loading
  {
    setTimeout('LoadZodiac(' + start_day + ',' + end_day + ',' + ShowMask + ',' + start_time + ',' + end_time + ')', 1000); //wait a second then try again
  }
  else
  {
    StartZodiac(start_day,end_day,ShowMask,start_time,end_time);
  }
}
