//

 

var gPrevLat = 0;

var gPrevLng = 0;

 

/* Insert Eclipse Besselian Elements below */

 

//

// Eclipse Elements

//

// First line -

//   (0) Julian date

//   (1) t0

//   (2) tmin

//   (3) tmax

//   (4) dT

// Second line -

//   (5) X0, X1, X2, X3 - X elements

// Third line -

//   (9) Y0, Y1, Y2, Y3 - Y elements

// Fourth line -

//   (13) D0, D1, D2 - D elements

// Fifth line -

//   (16) M0, M1, M2 - mu elements

// Sixth line -

//   (19) L10, L11, L12 - L1 elements

// Seventh line -

//   (22) L20, L21, L22 - L2 elements

// Eighth line -

//   (25) tan f1

//   (26) tan f2

//

 

var elements = new Array(

2455034.608617,   3.0,  -4.0,   4.0,    66.5,

    0.23996100,    0.55639547,   -0.00005760,   -0.00000942,

   -0.00327600,   -0.17745790,   -0.00013440,    0.00000318,

   20.26424026,   -0.00787400,   -0.00000500,

  223.38821411,   15.00100422,    0.00000000,

    0.53042698,    0.00000630,   -0.00001280,

   -0.01563300,    0.00000630,   -0.00001270,

    0.00460140,    0.00457840

);

 

/* End Besselian Elements */

 

var map;

var markers = new Array();

 

function enlarge() {

   wd = document.createElement("div");

   wd.setAttribute("id", "widetxt");

   document.getElementsByTagName("body").item(0).appendChild(wd);

   if (!document.getElementById("showlarge").checked) {

      document.getElementsByTagName("body").item(0).removeChild(wd);

      pd = document.getElementById("paperw");

      pd.setAttribute("id", "paper");

      document.getElementById("map").style.width = "725px";

      document.getElementById("map").style.height = "500px";

   }

   else {

      pd = document.getElementById("paper");

      pd.setAttribute("id", "paperw");

      document.getElementById("map").style.width = "1000px";

      document.getElementById("map").style.height = "700px";

   }

}

 

function createMarker(point) {

   var markericon = new GIcon(G_DEFAULT_ICON, "http://eclipse.gsfc.nasa.gov/image/marker.png");

   var marker = new GMarker(point, {icon: markericon, draggable: true});

   GEvent.addListener(marker, "mouseover", function() {

      marker.openInfoWindowHtml(loc_circ(marker.getPoint().lat(), marker.getPoint().lng()));

      document.getElementById("locCircShow").disabled = false;

   });

   GEvent.addListener(marker, "dragstart", function() {

      map.closeInfoWindow();

   });

   GEvent.addListener(marker, "dragend", function() {

      marker.openInfoWindowHtml(loc_circ(marker.getPoint().lat(), marker.getPoint().lng()));

      document.getElementById("locCircShow").disabled = false;

   });

   GEvent.addListener(marker, "infowindowclose", function() {

      document.getElementById("locCircShow").disabled = true;

   });

   map.addOverlay(marker);

   marker.openInfoWindowHtml(loc_circ(marker.getPoint().lat(), marker.getPoint().lng()));

   document.getElementById("locCircShow").disabled = false;

   markers[markers.length] = marker;

   return;

}

 

function clearMarkers() {

   var i;

   for (i = 0; i < markers.length; i ++) {

      map.removeOverlay(markers[i]);

   }

   map.closeInfoWindow();

   markers = new Array();

}

 

function wheelZoom(a) {

   if (a.cancelable)

      a.preventDefault();

   if (a.detail || -a.wheelDelta) {

      var latlng = new GLatLng(mouselat,mouselng);

      if ((a.detail || -a.wheelDelta) < 0)

         map.zoomIn(latlng, false, true);

      else if ((a.detail || -a.wheelDelta) > 0)

         map.zoomOut(latlng, true);

   }

   return false;

}

 

function locCircShow() {

   locCirc = window.open();

   locCirc.location = "../loccirc.html";

   locCirc.name = "loccirc";

   var a = new Array();

   a[0] = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"";

   a[1] = "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"";

   a[2] = "http://www.w3.org/1999/xhtml\">\n\n<head>\n   <meta http-equiv=\"Content-Language\" ";

   a[3] = "content=\"en-us\" />\n   <meta http-equiv=\"Content-Type\" content=\"text/html; ";

   a[4] = "charset=UTF-8\" />\n   <meta name=\"author\" content=\"F. Espenak\" />\n   ";

   a[5] = "<meta name=\"keywords\" content=\"eclipse, solar\" />\n   <meta name=\"description\" ";

   a[6] = "content=\"This is part of NASA's official eclipse home page. It plots solar eclipse ";

   a[7] = "paths on Google Earth maps.\" />\n   \n   <!--  ##### BROWSER TITLE GOES HERE  -->\n   ";

   a[8] = "<title>NASA - Solar Eclipse Local Circumstances<";

   a[9] = "/title>\n<";

   a[10] = "/head>\n<body id=\"start\">\n";

   a[11] = "<h2>" + document.getElementsByTagName("title").item(0).innerHTML + " - Local Circumstances</h2>";

   a[12] = document.getElementById("mapmarker").innerHTML;

   a[13] = "\n<p>Eclipse predictions courtesy of Fred Espenak, NASA's GSFC.</p>\n";

   a[14] = "\n<p>This page may be saved or printed.</p>\n</body>\n\n</html>";

   var b ;

   for (b = 0; b < a.length; b ++) {

      locCirc.document.write(a[b]);

   }

   // locCirc.document.getElementById("start").appendChild(c);

   // locCirc.document.getElementsByTagName("body").item(0).appendChild(c);

   locCirc.document.close();

}

 

function onLoad() {

   map = new GMap(document.getElementById("map"));

   // Map Controls

   map.addControl(new GLargeMapControl());

   map.addControl(new GMapTypeControl());

   map.addControl(new GScaleControl());

   // map.enableScrollWheelZoom();

   map.enableContinuousZoom();

   GEvent.addDomListener(document.getElementById("map"), "DOMMouseScroll", wheelZoom); // Firefox

   GEvent.addDomListener(document.getElementById("map"), "mousewheel", wheelZoom); // IE

   GEvent.addListener(map, "mousemove", function(point) {

      mouselat = point.y.toFixed(6);

      mouselng = point.x.toFixed(6);

   });

 

   // Event Listeners

   //

   // Event listeners are registered with =GEvent.addListener=. In this example,

   // we echo the lat/lng of the center of the map after it is dragged or moved

   // by the user.

 

   GEvent.addListener(map, "moveend", function() {

      var center = map.getCenter();

      var latLngStr = "(" + latitudeToString(center.lat().toFixed(5)) + ", " + longitudeToString(center.lng().toFixed(5)) + ")";

      document.getElementById("mapCenter").innerHTML = latLngStr;

   });

 

   // Display lat/lng of the cursor under the map

   GEvent.addListener(map, "mousemove", function(point) {

      if ((gPrevLat != point.lat()) || (gPrevLng != point.lng())) {

         var latitude  = point.lat();

         var longitude = point.lng();

         if (longitude < -180)

            longitude += 360;

         else if (longitude > 180)

            longitude -= 360;

         var cursor = latitudeToString(latitude.toFixed(5)) + ", " + longitudeToString(longitude.toFixed(5));

         document.getElementById("latlngCursor").innerHTML = "(" + cursor + ")";

         gPrevLat = point.lat();

         gPrevLng = point.lng();

      }

   });

 

     map.setCenter(new GLatLng( 24.219866,144.118164), 2, G_NORMAL_MAP);

 

   map.zoomIn();

   // document.getElementById("deltaT").innerHTML = "&Delta;T = " + elements[4] + " s";

   document.getElementById("locCircShow").disabled = true;

 

   var html = "";

   var gemarkericon = new GIcon(G_DEFAULT_ICON, "http://eclipse.gsfc.nasa.gov/image/gemarker.png");

   var gemarker = new GMarker(map.getCenter(), {icon: gemarkericon, draggable: false});

   GEvent.addListener(gemarker, "mouseover", function() {

      gemarker.openInfoWindowHtml(loc_circ(gemarker.getPoint().lat(), gemarker.getPoint().lng()));

      document.getElementById("locCircShow").disabled = false;

   });

   GEvent.addListener(gemarker, "infowindowclose", function() {

      document.getElementById("locCircShow").disabled = true;

   });

   map.addOverlay(gemarker);

   GEvent.addListener(map, "click", function(overlay, point) {

      if (point) {

         html = loc_circ(point.lat(), point.lng());

         if (html != "") {

            if (document.getElementById("showmarker").checked) {

               createMarker(point);

               // map.removeOverlay(marker);

            }

            else {

               var marker = new GMarker(point);

               map.addOverlay(marker);

               marker.openInfoWindowHtml(html);

               map.removeOverlay(marker);

            }

         }

      }

   });

 

// Insert TRACK.GOO (ex SHADOW.EXE) below here

 

/*  ++++++++++++++++++++++++++++++++++++++++++++++++++  */

/*  ++++++++++++++++++++++++++++++++++++++++++++++++++  */

 

// First BLUE, Solar Eclipse of  2009 Jul 22 - Northern Limit

var polyline = new GPolyline([

new GPoint(  70.95789,  19.52837),

new GPoint(  70.07117,  21.19311),

new GPoint(  71.00000,  21.54506),

new GPoint(  71.50000,  21.73349),

new GPoint(  72.00000,  21.92105),

new GPoint(  72.50000,  22.10773),

new GPoint(  73.00000,  22.29349),

new GPoint(  73.50000,  22.47831),

new GPoint(  74.00000,  22.66217),

new GPoint(  74.50000,  22.84505),

new GPoint(  75.00000,  23.02690),

new GPoint(  75.50000,  23.20773),

new GPoint(  76.00000,  23.38748),

new GPoint(  76.50000,  23.56614),

new GPoint(  77.00000,  23.74369),

new GPoint(  77.50000,  23.92009),

new GPoint(  78.00000,  24.09532),

new GPoint(  78.50000,  24.26935),

new GPoint(  79.00000,  24.44215),

new GPoint(  79.50000,  24.61371),

new GPoint(  80.00000,  24.78398),

new GPoint(  80.50000,  24.95296),

new GPoint(  81.00000,  25.12059),

new GPoint(  81.50000,  25.28688),

new GPoint(  82.00000,  25.45177),

new GPoint(  82.50000,  25.61525),

new GPoint(  83.00000,  25.77729),

new GPoint(  83.50000,  25.93786),

new GPoint(  84.00000,  26.09694),

new GPoint(  84.50000,  26.25449),

new GPoint(  85.00000,  26.41049),

new GPoint(  85.50000,  26.56492),

new GPoint(  86.00000,  26.71774),

new GPoint(  86.50000,  26.86894),

new GPoint(  87.00000,  27.01847),

new GPoint(  87.50000,  27.16631),

new GPoint(  88.00000,  27.31244),

new GPoint(  88.50000,  27.45683),

new GPoint(  89.00000,  27.59946),

new GPoint(  89.50000,  27.74029),

new GPoint(  90.00000,  27.87930),

new GPoint(  90.50000,  28.01645),

new GPoint(  91.00000,  28.15173),

new GPoint(  91.50000,  28.28511),

new GPoint(  92.00000,  28.41655),

new GPoint(  92.50000,  28.54605),

new GPoint(  93.00000,  28.67354),

new GPoint(  93.50000,  28.79903),

new GPoint(  94.00000,  28.92249),

new GPoint(  94.50000,  29.04387),

new GPoint(  95.00000,  29.16317),

new GPoint(  95.50000,  29.28034),

new GPoint(  96.00000,  29.39537),

new GPoint(  96.50000,  29.50822),

new GPoint(  97.00000,  29.61887),

new GPoint(  97.50000,  29.72730),

new GPoint(  98.00000,  29.83348),

new GPoint(  98.50000,  29.93736),

new GPoint(  99.00000,  30.03894),

new GPoint(  99.50000,  30.13819),

new GPoint( 100.00000,  30.23507),

new GPoint( 100.50000,  30.32958),

new GPoint( 101.00000,  30.42166),

new GPoint( 101.50000,  30.51130),

new GPoint( 102.00000,  30.59847),

new GPoint( 102.50000,  30.68314),

new GPoint( 103.00000,  30.76529),

new GPoint( 103.50000,  30.84489),

new GPoint( 104.00000,  30.92190),

new GPoint( 104.50000,  30.99632),

new GPoint( 105.00000,  31.06809),

new GPoint( 105.50000,  31.13720),

new GPoint( 106.00000,  31.20363),

new GPoint( 106.50000,  31.26733),

new GPoint( 107.00000,  31.32829),

new GPoint( 107.50000,  31.38647),

new GPoint( 108.00000,  31.44185),

new GPoint( 108.50000,  31.49439),

new GPoint( 109.00000,  31.54408),

new GPoint( 109.50000,  31.59086),

new GPoint( 110.00000,  31.63473),

new GPoint( 110.50000,  31.67565),

new GPoint( 111.00000,  31.71358),

new GPoint( 111.50000,  31.74849),

new GPoint( 112.00000,  31.78036),

new GPoint( 112.50000,  31.80916),

new GPoint( 113.00000,  31.83484),

new GPoint( 113.50000,  31.85739),

new GPoint( 114.00000,  31.87676),

new GPoint( 114.50000,  31.89292),

new GPoint( 115.00000,  31.90585),

new GPoint( 115.50000,  31.91549),

new GPoint( 116.00000,  31.92183),

new GPoint( 116.50000,  31.92483),

new GPoint( 117.00000,  31.92443),

new GPoint( 117.50000,  31.92062),

new GPoint( 118.00000,  31.91336),

new GPoint( 118.50000,  31.90261),

new GPoint( 119.00000,  31.88832),

new GPoint( 119.50000,  31.87046),

new GPoint( 120.00000,  31.84900),

new GPoint( 120.50000,  31.82388),

new GPoint( 121.00000,  31.79507),

new GPoint( 121.50000,  31.76253),

new GPoint( 122.00000,  31.72621),

new GPoint( 122.50000,  31.68607),

new GPoint( 123.00000,  31.64207),

new GPoint( 123.50000,  31.59416),

new GPoint( 124.00000,  31.54230),

new GPoint( 124.50000,  31.48644),

new GPoint( 125.00000,  31.42653),

new GPoint( 125.50000,  31.36252),

new GPoint( 126.00000,  31.29437),

new GPoint( 126.50000,  31.22202),

new GPoint( 127.00000,  31.14544),

new GPoint( 127.50000,  31.06455),

new GPoint( 128.00000,  30.97932),

new GPoint( 128.50000,  30.88968),

new GPoint( 129.00000,  30.79560),

new GPoint( 129.50000,  30.69700),

new GPoint( 130.00000,  30.59383),

new GPoint( 130.50000,  30.48606),

new GPoint( 131.00000,  30.37361),

new GPoint( 131.50000,  30.25641),

new GPoint( 132.00000,  30.13444),

new GPoint( 132.50000,  30.00762),

new GPoint( 133.00000,  29.87589),

new GPoint( 133.50000,  29.73921),

new GPoint( 134.00000,  29.59750),

new GPoint( 134.50000,  29.45071),

new GPoint( 135.00000,  29.29878),

new GPoint( 135.50000,  29.14166),

new GPoint( 136.00000,  28.97929),

new GPoint( 136.50000,  28.81161),

new GPoint( 137.00000,  28.63857),

new GPoint( 137.50000,  28.46009),

new GPoint( 138.00000,  28.27614),

new GPoint( 138.50000,  28.08668),

new GPoint( 139.00000,  27.89162),

new GPoint( 139.50000,  27.69094),

new GPoint( 140.00000,  27.48458),

new GPoint( 140.50000,  27.27250),

new GPoint( 141.00000,  27.05466),

new GPoint( 141.50000,  26.83100),

new GPoint( 142.00000,  26.60153),

new GPoint( 142.50000,  26.36617),

new GPoint( 143.00000,  26.12492),

new GPoint( 143.50000,  25.87774),

new GPoint( 144.00000,  25.62464),

new GPoint( 144.50000,  25.36558),

new GPoint( 145.00000,  25.10056),

new GPoint( 145.50000,  24.82959),

new GPoint( 146.00000,  24.55267),

new GPoint( 146.50000,  24.26982),

new GPoint( 147.00000,  23.98106),

new GPoint( 147.50000,  23.68642),

new GPoint( 148.00000,  23.38594),

new GPoint( 148.50000,  23.07966),

new GPoint( 149.00000,  22.76766),

new GPoint( 149.50000,  22.44999),

new GPoint( 150.00000,  22.12674),

new GPoint( 150.50000,  21.79799),

new GPoint( 151.00000,  21.46384),

new GPoint( 151.50000,  21.12442),

new GPoint( 152.00000,  20.77983),

new GPoint( 152.50000,  20.43021),

new GPoint( 153.00000,  20.07571),

new GPoint( 153.50000,  19.71649),

new GPoint( 154.00000,  19.35271),

new GPoint( 154.50000,  18.98454),

new GPoint( 155.00000,  18.61219),

new GPoint( 155.50000,  18.23584),

new GPoint( 156.00000,  17.85569),

new GPoint( 156.50000,  17.47198),

new GPoint( 157.00000,  17.08492),

new GPoint( 157.50000,  16.69473),

new GPoint( 158.00000,  16.30167),

new GPoint( 158.50000,  15.90596),

new GPoint( 159.00000,  15.50787),

new GPoint( 159.50000,  15.10762),

new GPoint( 160.00000,  14.70549),

new GPoint( 160.50000,  14.30172),

new GPoint( 161.00000,  13.89657),

new GPoint( 161.50000,  13.49029),

new GPoint( 162.00000,  13.08313),

new GPoint( 162.50000,  12.67534),

new GPoint( 163.00000,  12.26717),

new GPoint( 163.50000,  11.85886),

new GPoint( 164.00000,  11.45064),

new GPoint( 164.50000,  11.04275),

new GPoint( 165.00000,  10.63541),

new GPoint( 165.50000,  10.22883),

new GPoint( 166.00000,   9.82323),

new GPoint( 166.50000,   9.41880),

new GPoint( 167.00000,   9.01575),

new GPoint( 167.50000,   8.61423),

new GPoint( 168.00000,   8.21445),

new GPoint( 168.50000,   7.81655),

new GPoint( 169.00000,   7.42070),

new GPoint( 169.50000,   7.02704),

new GPoint( 170.00000,   6.63570),

new GPoint( 170.50000,   6.24683),

new GPoint( 171.00000,   5.86054),

new GPoint( 171.50000,   5.47692),

new GPoint( 172.00000,   5.09610),

new GPoint( 172.50000,   4.71816),

new GPoint( 173.00000,   4.34319),

new GPoint( 173.50000,   3.97127),

new GPoint( 174.00000,   3.60246),

new GPoint( 174.50000,   3.23683),

new GPoint( 175.00000,   2.87443),

new GPoint( 175.50000,   2.51533),

new GPoint( 176.00000,   2.15955),

new GPoint( 176.50000,   1.80713),

new GPoint( 177.00000,   1.45812),

new GPoint( 177.50000,   1.11252),

new GPoint( 178.00000,   0.77038),

new GPoint( 178.50000,   0.43171),

new GPoint( 179.00000,   0.09651),

new GPoint( 179.50000,  -0.23520),

new GPoint( 180.00000,  -0.56342)],

"#3300FF", 2, 0.65);

map.addOverlay(polyline);

 

// First BLUE, Solar Eclipse of  2009 Jul 22 - Northern Limit

var polyline = new GPolyline([

new GPoint(-180.00000,  -0.56342),

new GPoint(-179.50000,  -0.88814),

new GPoint(-179.00000,  -1.20936),

new GPoint(-178.50000,  -1.52710),

new GPoint(-178.00000,  -1.84135),

new GPoint(-177.50000,  -2.15213),

new GPoint(-177.00000,  -2.45944),

new GPoint(-176.50000,  -2.76330),

new GPoint(-176.00000,  -3.06373),

new GPoint(-175.50000,  -3.36074),

new GPoint(-175.00000,  -3.65436),

new GPoint(-174.50000,  -3.94459),

new GPoint(-174.00000,  -4.23146),

new GPoint(-173.50000,  -4.51501),

new GPoint(-173.00000,  -4.79524),

new GPoint(-172.50000,  -5.07218),

new GPoint(-172.00000,  -5.34586),

new GPoint(-171.50000,  -5.61631),

new GPoint(-171.00000,  -5.88355),

new GPoint(-170.50000,  -6.14762),

new GPoint(-170.00000,  -6.40852),

new GPoint(-169.50000,  -6.66630),

new GPoint(-169.00000,  -6.92098),

new GPoint(-168.50000,  -7.17259),

new GPoint(-168.00000,  -7.42117),

new GPoint(-167.50000,  -7.66673),

new GPoint(-167.00000,  -7.90931),

new GPoint(-166.50000,  -8.14893),

new GPoint(-166.00000,  -8.38563),

new GPoint(-165.50000,  -8.61944),

new GPoint(-165.00000,  -8.85038),

new GPoint(-164.50000,  -9.07848),

new GPoint(-164.00000,  -9.30377),

new GPoint(-163.50000,  -9.52627),

new GPoint(-163.00000,  -9.74603),

new GPoint(-162.50000,  -9.96306),

new GPoint(-162.00000, -10.17739),

new GPoint(-161.50000, -10.38905),

new GPoint(-161.00000, -10.59807),

new GPoint(-160.50000, -10.80447),

new GPoint(-160.00000, -11.00829),

new GPoint(-159.50000, -11.20954),

new GPoint(-159.00000, -11.40826),

new GPoint(-158.50000, -11.60447),

new GPoint(-158.00000, -11.79819),

new GPoint(-157.26996, -12.07677),

new GPoint(-158.09735, -13.74655)],

"#3300FF", 2, 0.65);

map.addOverlay(polyline);

 

// Second BLUE, Solar Eclipse of  2009 Jul 22 - Southern Limit

var polyline = new GPolyline([

new GPoint(  70.95789,  19.52837),

,

new GPoint(  71.50000,  19.72865),

new GPoint(  72.00000,  19.91229),

new GPoint(  72.50000,  20.09510),

new GPoint(  73.00000,  20.27704),

new GPoint(  73.50000,  20.45809),

new GPoint(  74.00000,  20.63823),

new GPoint(  74.50000,  20.81743),

new GPoint(  75.00000,  20.99567),

new GPoint(  75.50000,  21.17290),

new GPoint(  76.00000,  21.34914),

new GPoint(  76.50000,  21.52433),

new GPoint(  77.00000,  21.69845),

new GPoint(  77.50000,  21.87149),

new GPoint(  78.00000,  22.04339),

new GPoint(  78.50000,  22.21416),

new GPoint(  79.00000,  22.38376),

new GPoint(  79.50000,  22.55217),

new GPoint(  80.00000,  22.71934),

new GPoint(  80.50000,  22.88527),

new GPoint(  81.00000,  23.04992),

new GPoint(  81.50000,  23.21327),

new GPoint(  82.00000,  23.37528),

new GPoint(  82.50000,  23.53594),

new GPoint(  83.00000,  23.69521),

new GPoint(  83.50000,  23.85307),

new GPoint(  84.00000,  24.00949),

new GPoint(  84.50000,  24.16444),

new GPoint(  85.00000,  24.31789),

new GPoint(  85.50000,  24.46982),

new GPoint(  86.00000,  24.62019),

new GPoint(  86.50000,  24.76899),

new GPoint(  87.00000,  24.91618),

new GPoint(  87.50000,  25.06174),

new GPoint(  88.00000,  25.20564),

new GPoint(  88.50000,  25.34783),

new GPoint(  89.00000,  25.48831),

new GPoint(  89.50000,  25.62705),

new GPoint(  90.00000,  25.76400),

new GPoint(  90.50000,  25.89915),

new GPoint(  91.00000,  26.03247),

new GPoint(  91.50000,  26.16392),

new GPoint(  92.00000,  26.29349),

new GPoint(  92.50000,  26.42113),

new GPoint(  93.00000,  26.54683),

new GPoint(  93.50000,  26.67056),

new GPoint(  94.00000,  26.79228),

new GPoint(  94.50000,  26.91196),

new GPoint(  95.00000,  27.02958),

new GPoint(  95.50000,  27.14511),

new GPoint(  96.00000,  27.25853),

new GPoint(  96.50000,  27.36979),

new GPoint(  97.00000,  27.47888),

new GPoint(  97.50000,  27.58575),

new GPoint(  98.00000,  27.69039),

new GPoint(  98.50000,  27.79277),

new GPoint(  99.00000,  27.89285),

new GPoint(  99.50000,  27.99060),

new GPoint( 100.00000,  28.08601),

new GPoint( 100.50000,  28.17902),

new GPoint( 101.00000,  28.26963),

new GPoint( 101.50000,  28.35779),

new GPoint( 102.00000,  28.44348),

new GPoint( 102.50000,  28.52666),

new GPoint( 103.00000,  28.60731),

new GPoint( 103.50000,  28.68540),

new GPoint( 104.00000,  28.76089),

new GPoint( 104.50000,  28.83375),

new GPoint( 105.00000,  28.90396),

new GPoint( 105.50000,  28.97148),

new GPoint( 106.00000,  29.03628),

new GPoint( 106.50000,  29.09833),

new GPoint( 107.00000,  29.15760),

new GPoint( 107.50000,  29.21404),

new GPoint( 108.00000,  29.26764),

new GPoint( 108.50000,  29.31837),

new GPoint( 109.00000,  29.36617),

new GPoint( 109.50000,  29.41103),

new GPoint( 110.00000,  29.45291),

new GPoint( 110.50000,  29.49177),

new GPoint( 111.00000,  29.52758),

new GPoint( 111.50000,  29.56031),

new GPoint( 112.00000,  29.58991),

new GPoint( 112.50000,  29.61636),

new GPoint( 113.00000,  29.63962),

new GPoint( 113.50000,  29.65965),

new GPoint( 114.00000,  29.67640),

new GPoint( 114.50000,  29.68986),

new GPoint( 115.00000,  29.69997),

new GPoint( 115.50000,  29.70670),

new GPoint( 116.00000,  29.71001),

new GPoint( 116.50000,  29.70986),

new GPoint( 117.00000,  29.70620),

new GPoint( 117.50000,  29.69901),

new GPoint( 118.00000,  29.68822),

new GPoint( 118.50000,  29.67381),

new GPoint( 119.00000,  29.65573),

new GPoint( 119.50000,  29.63394),

new GPoint( 120.00000,  29.60838),

new GPoint( 120.50000,  29.57902),

new GPoint( 121.00000,  29.54580),

new GPoint( 121.50000,  29.50869),

new GPoint( 122.00000,  29.46764),

new GPoint( 122.50000,  29.42259),

new GPoint( 123.00000,  29.37349),

new GPoint( 123.50000,  29.32030),

new GPoint( 124.00000,  29.26297),

new GPoint( 124.50000,  29.20144),

new GPoint( 125.00000,  29.13566),

new GPoint( 125.50000,  29.06558),

new GPoint( 126.00000,  28.99115),

new GPoint( 126.50000,  28.91231),

new GPoint( 127.00000,  28.82901),

new GPoint( 127.50000,  28.74118),

new GPoint( 128.00000,  28.64877),

new GPoint( 128.50000,  28.55173),

new GPoint( 129.00000,  28.45000),

new GPoint( 129.50000,  28.34352),

new GPoint( 130.00000,  28.23223),

new GPoint( 130.50000,  28.11607),

new GPoint( 131.00000,  27.99499),

new GPoint( 131.50000,  27.86891),

new GPoint( 132.00000,  27.73778),

new GPoint( 132.50000,  27.60156),

new GPoint( 133.00000,  27.46016),

new GPoint( 133.50000,  27.31354),

new GPoint( 134.00000,  27.16162),

new GPoint( 134.50000,  27.00437),

new GPoint( 135.00000,  26.84171),

new GPoint( 135.50000,  26.67360),

new GPoint( 136.00000,  26.49998),

new GPoint( 136.50000,  26.32078),

new GPoint( 137.00000,  26.13595),

new GPoint( 137.50000,  25.94546),

new GPoint( 138.00000,  25.74924),

new GPoint( 138.50000,  25.54725),

new GPoint( 139.00000,  25.33945),

new GPoint( 139.50000,  25.12580),

new GPoint( 140.00000,  24.90626),

new GPoint( 140.50000,  24.68078),

new GPoint( 141.00000,  24.44935),

new GPoint( 141.50000,  24.21196),

new GPoint( 142.00000,  23.96856),

new GPoint( 142.50000,  23.71914),

new GPoint( 143.00000,  23.46371),

new GPoint( 143.50000,  23.20226),

new GPoint( 144.00000,  22.93479),

new GPoint( 144.50000,  22.66131),

new GPoint( 145.00000,  22.38186),

new GPoint( 145.50000,  22.09644),

new GPoint( 146.00000,  21.80511),

new GPoint( 146.50000,  21.50790),

new GPoint( 147.00000,  21.20489),

new GPoint( 147.50000,  20.89612),

new GPoint( 148.00000,  20.58167),

new GPoint( 148.50000,  20.26165),

new GPoint( 149.00000,  19.93613),

new GPoint( 149.50000,  19.60523),

new GPoint( 150.00000,  19.26908),

new GPoint( 150.50000,  18.92779),

new GPoint( 151.00000,  18.58151),

new GPoint( 151.50000,  18.23040),

new GPoint( 152.00000,  17.87463),

new GPoint( 152.50000,  17.51435),

new GPoint( 153.00000,  17.14977),

new GPoint( 153.50000,  16.78107),

new GPoint( 154.00000,  16.40846),

new GPoint( 154.50000,  16.03215),

new GPoint( 155.00000,  15.65236),

new GPoint( 155.50000,  15.26932),

new GPoint( 156.00000,  14.88327),

new GPoint( 156.50000,  14.49444),

new GPoint( 157.00000,  14.10307),

new GPoint( 157.50000,  13.70943),

new GPoint( 158.00000,  13.31375),

new GPoint( 158.50000,  12.91629),

new GPoint( 159.00000,  12.51730),

new GPoint( 159.50000,  12.11704),

new GPoint( 160.00000,  11.71575),

new GPoint( 160.50000,  11.31369),

new GPoint( 161.00000,  10.91109),

new GPoint( 161.50000,  10.50820),

new GPoint( 162.00000,  10.10527),

new GPoint( 162.50000,   9.70250),

new GPoint( 163.00000,   9.30014),

new GPoint( 163.50000,   8.89840),

new GPoint( 164.00000,   8.49748),

new GPoint( 164.50000,   8.09759),

new GPoint( 165.00000,   7.69892),

new GPoint( 165.50000,   7.30166),

new GPoint( 166.00000,   6.90599),

new GPoint( 166.50000,   6.51206),

new GPoint( 167.00000,   6.12004),

new GPoint( 167.50000,   5.73008),

new GPoint( 168.00000,   5.34232),

new GPoint( 168.50000,   4.95688),

new GPoint( 169.00000,   4.57389),

new GPoint( 169.50000,   4.19347),

new GPoint( 170.00000,   3.81571),

new GPoint( 170.50000,   3.44071),

new GPoint( 171.00000,   3.06857),

new GPoint( 171.50000,   2.69935),

new GPoint( 172.00000,   2.33315),

new GPoint( 172.50000,   1.97001),

new GPoint( 173.00000,   1.61000),

new GPoint( 173.50000,   1.25317),

new GPoint( 174.00000,   0.89958),

new GPoint( 174.50000,   0.54925),

new GPoint( 175.00000,   0.20223),

new GPoint( 175.50000,  -0.14146),

new GPoint( 176.00000,  -0.48179),

new GPoint( 176.50000,  -0.81874),

new GPoint( 177.00000,  -1.15230),

new GPoint( 177.50000,  -1.48245),

new GPoint( 178.00000,  -1.80918),

new GPoint( 178.50000,  -2.13250),

new GPoint( 179.00000,  -2.45240),

new GPoint( 179.50000,  -2.76887),

new GPoint( 180.00000,  -3.08193)],

"#3300FF", 2, 0.65);

map.addOverlay(polyline);

 

// Second BLUE, Solar Eclipse of  2009 Jul 22 - Southern Limit

var polyline = new GPolyline([

new GPoint(-180.00000,  -3.08193),

new GPoint(-179.50000,  -3.39159),

new GPoint(-179.00000,  -3.69785),

new GPoint(-178.50000,  -4.00072),

new GPoint(-178.00000,  -4.30021),

new GPoint(-177.50000,  -4.59635),

new GPoint(-177.00000,  -4.88915),

new GPoint(-176.50000,  -5.17862),

new GPoint(-176.00000,  -5.46480),

new GPoint(-175.50000,  -5.74769),

new GPoint(-175.00000,  -6.02732),

new GPoint(-174.50000,  -6.30371),

new GPoint(-174.00000,  -6.57690),

new GPoint(-173.50000,  -6.84689),

new GPoint(-173.00000,  -7.11372),

new GPoint(-172.50000,  -7.37741),

new GPoint(-172.00000,  -7.63799),

new GPoint(-171.50000,  -7.89549),

new GPoint(-171.00000,  -8.14993),

new GPoint(-170.50000,  -8.40134),

new GPoint(-170.00000,  -8.64974),

new GPoint(-169.50000,  -8.89518),

new GPoint(-169.00000,  -9.13766),

new GPoint(-168.50000,  -9.37723),

new GPoint(-168.00000,  -9.61391),

new GPoint(-167.50000,  -9.84772),

new GPoint(-167.00000, -10.07870),

new GPoint(-166.50000, -10.30687),

new GPoint(-166.00000, -10.53226),

new GPoint(-165.50000, -10.75490),

new GPoint(-165.00000, -10.97482),

new GPoint(-164.50000, -11.19203),

new GPoint(-164.00000, -11.40658),

new GPoint(-163.50000, -11.61849),

new GPoint(-163.00000, -11.82778),

new GPoint(-162.50000, -12.03448),

new GPoint(-162.00000, -12.23861),

new GPoint(-161.50000, -12.44021),

new GPoint(-161.00000, -12.63930),

new GPoint(-160.50000, -12.83590),

new GPoint(-160.00000, -13.03004),

new GPoint(-159.50000, -13.22174),

new GPoint(-159.00000, -13.41103),

new GPoint(-158.50000, -13.59793),

,

new GPoint(-158.09735, -13.74655)],

"#3300FF", 2, 0.65);

map.addOverlay(polyline);

 

// First RED, Solar Eclipse of  2009 Jul 22 - Central Line

var polyline = new GPolyline([

new GPoint(  70.52014,  20.36083),

new GPoint(  71.00000,  20.54054),

new GPoint(  71.50000,  20.72700),

new GPoint(  72.00000,  20.91261),

new GPoint(  72.50000,  21.09736),

new GPoint(  73.00000,  21.28122),

new GPoint(  73.50000,  21.46418),

new GPoint(  74.00000,  21.64620),

new GPoint(  74.50000,  21.82724),

new GPoint(  75.00000,  22.00731),

new GPoint(  75.50000,  22.18637),

new GPoint(  76.00000,  22.36438),

new GPoint(  76.50000,  22.54132),

new GPoint(  77.00000,  22.71718),

new GPoint(  77.50000,  22.89192),

new GPoint(  78.00000,  23.06552),

new GPoint(  78.50000,  23.23794),

new GPoint(  79.00000,  23.40917),

new GPoint(  79.50000,  23.57917),

new GPoint(  80.00000,  23.74792),

new GPoint(  80.50000,  23.91541),

new GPoint(  81.00000,  24.08158),

new GPoint(  81.50000,  24.24642),

new GPoint(  82.00000,  24.40991),

new GPoint(  82.50000,  24.57201),

new GPoint(  83.00000,  24.73270),

new GPoint(  83.50000,  24.89195),

new GPoint(  84.00000,  25.04973),

new GPoint(  84.50000,  25.20602),

new GPoint(  85.00000,  25.36078),

new GPoint(  85.50000,  25.51399),

new GPoint(  86.00000,  25.66563),

new GPoint(  86.50000,  25.81567),

new GPoint(  87.00000,  25.96407),

new GPoint(  87.50000,  26.11081),

new GPoint(  88.00000,  26.25586),

new GPoint(  88.50000,  26.39919),

new GPoint(  89.00000,  26.54079),

new GPoint(  89.50000,  26.68061),

new GPoint(  90.00000,  26.81864),

new GPoint(  90.50000,  26.95484),

new GPoint(  91.00000,  27.08918),

new GPoint(  91.50000,  27.22164),

new GPoint(  92.00000,  27.35219),

new GPoint(  92.50000,  27.48080),

new GPoint(  93.00000,  27.60745),

new GPoint(  93.50000,  27.73211),

new GPoint(  94.00000,  27.85473),

new GPoint(  94.50000,  27.97532),

new GPoint(  95.00000,  28.09382),

new GPoint(  95.50000,  28.21022),

new GPoint(  96.00000,  28.32449),

new GPoint(  96.50000,  28.43660),

new GPoint(  97.00000,  28.54651),

new GPoint(  97.50000,  28.65421),

new GPoint(  98.00000,  28.75967),

new GPoint(  98.50000,  28.86285),

new GPoint(  99.00000,  28.96373),

new GPoint(  99.50000,  29.06228),

new GPoint( 100.00000,  29.15847),

new GPoint( 100.50000,  29.25228),

new GPoint( 101.00000,  29.34367),

new GPoint( 101.50000,  29.43262),

new GPoint( 102.00000,  29.51909),

new GPoint( 102.50000,  29.60308),

new GPoint( 103.00000,  29.68452),

new GPoint( 103.50000,  29.76341),

new GPoint( 104.00000,  29.83971),

new GPoint( 104.50000,  29.91340),

new GPoint( 105.00000,  29.98444),

new GPoint( 105.50000,  30.05281),

new GPoint( 106.00000,  30.11847),

new GPoint( 106.50000,  30.18139),

new GPoint( 107.00000,  30.24155),

new GPoint( 107.50000,  30.29892),

new GPoint( 108.00000,  30.35345),

new GPoint( 108.50000,  30.40513),

new GPoint( 109.00000,  30.45393),

new GPoint( 109.50000,  30.49980),

new GPoint( 110.00000,  30.54272),

new GPoint( 110.50000,  30.58265),

new GPoint( 111.00000,  30.61957),

new GPoint( 111.50000,  30.65344),

new GPoint( 112.00000,  30.68423),

new GPoint( 112.50000,  30.71190),

new GPoint( 113.00000,  30.73642),

new GPoint( 113.50000,  30.75775),

new GPoint( 114.00000,  30.77587),

new GPoint( 114.50000,  30.79072),

new GPoint( 115.00000,  30.80229),

new GPoint( 115.50000,  30.81053),

new GPoint( 116.00000,  30.81540),

new GPoint( 116.50000,  30.81687),

new GPoint( 117.00000,  30.81490),

new GPoint( 117.50000,  30.80944),

new GPoint( 118.00000,  30.80048),

new GPoint( 118.50000,  30.78794),

new GPoint( 119.00000,  30.77181),

new GPoint( 119.50000,  30.75204),

new GPoint( 120.00000,  30.72858),

new GPoint( 120.50000,  30.70139),

new GPoint( 121.00000,  30.67044),

new GPoint( 121.50000,  30.63566),

new GPoint( 122.00000,  30.59703),

new GPoint( 122.50000,  30.55449),

new GPoint( 123.00000,  30.50800),

new GPoint( 123.50000,  30.45751),

new GPoint( 124.00000,  30.40297),

new GPoint( 124.50000,  30.34433),

new GPoint( 125.00000,  30.28155),

new GPoint( 125.50000,  30.21457),

new GPoint( 126.00000,  30.14334),

new GPoint( 126.50000,  30.06781),

new GPoint( 127.00000,  29.98793),

new GPoint( 127.50000,  29.90364),

new GPoint( 128.00000,  29.81488),

new GPoint( 128.50000,  29.72161),

new GPoint( 129.00000,  29.62377),

new GPoint( 129.50000,  29.52130),

new GPoint( 130.00000,  29.41414),

new GPoint( 130.50000,  29.30224),

new GPoint( 131.00000,  29.18554),

new GPoint( 131.50000,  29.06398),

new GPoint( 132.00000,  28.93751),

new GPoint( 132.50000,  28.80605),

new GPoint( 133.00000,  28.66956),

new GPoint( 133.50000,  28.52798),

new GPoint( 134.00000,  28.38123),

new GPoint( 134.50000,  28.22929),

new GPoint( 135.00000,  28.07207),

new GPoint( 135.50000,  27.90953),

new GPoint( 136.00000,  27.74159),

new GPoint( 136.50000,  27.56821),

new GPoint( 137.00000,  27.38935),

new GPoint( 137.50000,  27.20493),

new GPoint( 138.00000,  27.01491),

new GPoint( 138.50000,  26.81923),

new GPoint( 139.00000,  26.61786),

new GPoint( 139.50000,  26.41074),

new GPoint( 140.00000,  26.19783),

new GPoint( 140.50000,  25.97910),

new GPoint( 141.00000,  25.75450),

new GPoint( 141.50000,  25.52400),

new GPoint( 142.00000,  25.28759),

new GPoint( 142.50000,  25.04522),

new GPoint( 143.00000,  24.79688),

new GPoint( 143.50000,  24.54255),

new GPoint( 144.00000,  24.28225),

new GPoint( 144.11816,  24.21987),

new GPoint( 144.50000,  24.01595),

new GPoint( 145.00000,  23.74368),

new GPoint( 145.50000,  23.46544),

new GPoint( 146.00000,  23.18125),

new GPoint( 146.50000,  22.89115),

new GPoint( 147.00000,  22.59517),

new GPoint( 147.50000,  22.29336),

new GPoint( 148.00000,  21.98577),

new GPoint( 148.50000,  21.67248),

new GPoint( 149.00000,  21.35357),

new GPoint( 149.50000,  21.02912),

new GPoint( 150.00000,  20.69922),

new GPoint( 150.50000,  20.36400),

new GPoint( 151.00000,  20.02357),

new GPoint( 151.50000,  19.67806),

new GPoint( 152.00000,  19.32762),

new GPoint( 152.50000,  18.97240),

new GPoint( 153.00000,  18.61258),

new GPoint( 153.50000,  18.24832),

new GPoint( 154.00000,  17.87980),

new GPoint( 154.50000,  17.50724),

new GPoint( 155.00000,  17.13082),

new GPoint( 155.50000,  16.75078),

new GPoint( 156.00000,  16.36732),

new GPoint( 156.50000,  15.98068),

new GPoint( 157.00000,  15.59110),

new GPoint( 157.50000,  15.19881),

new GPoint( 158.00000,  14.80406),

new GPoint( 158.50000,  14.40710),

new GPoint( 159.00000,  14.00818),

new GPoint( 159.50000,  13.60755),

new GPoint( 160.00000,  13.20547),

new GPoint( 160.50000,  12.80219),

new GPoint( 161.00000,  12.39796),

new GPoint( 161.50000,  11.99303),

new GPoint( 162.00000,  11.58765),

new GPoint( 162.50000,  11.18206),

new GPoint( 163.00000,  10.77648),

new GPoint( 163.50000,  10.37116),

new GPoint( 164.00000,   9.96632),

new GPoint( 164.50000,   9.56216),

new GPoint( 165.00000,   9.15892),

new GPoint( 165.50000,   8.75677),

new GPoint( 166.00000,   8.35592),

new GPoint( 166.50000,   7.95655),

new GPoint( 167.00000,   7.55884),

new GPoint( 167.50000,   7.16294),

new GPoint( 168.00000,   6.76903),

new GPoint( 168.50000,   6.37724),

new GPoint( 169.00000,   5.98771),

new GPoint( 169.50000,   5.60057),

new GPoint( 170.00000,   5.21595),

new GPoint( 170.50000,   4.83396),

new GPoint( 171.00000,   4.45469),

new GPoint( 171.50000,   4.07824),

new GPoint( 172.00000,   3.70471),

new GPoint( 172.50000,   3.33416),

new GPoint( 173.00000,   2.96668),

new GPoint( 173.50000,   2.60232),

new GPoint( 174.00000,   2.24114),

new GPoint( 174.50000,   1.88320),

new GPoint( 175.00000,   1.52854),

new GPoint( 175.50000,   1.17719),

new GPoint( 176.00000,   0.82919),

new GPoint( 176.50000,   0.48458),

new GPoint( 177.00000,   0.14337),

new GPoint( 177.50000,  -0.19442),

new GPoint( 178.00000,  -0.52878),

new GPoint( 178.50000,  -0.85968),

new GPoint( 179.00000,  -1.18714),

new GPoint( 179.50000,  -1.51113),

new GPoint( 180.00000,  -1.83167)],

"#FF0000", 2, 0.65);

map.addOverlay(polyline);

 

// First RED, Solar Eclipse of  2009 Jul 22 - Central Line

var polyline = new GPolyline([

new GPoint(-180.00000,  -1.83167),

new GPoint(-179.50000,  -2.14875),

new GPoint(-179.00000,  -2.46239),

new GPoint(-178.50000,  -2.77258),

new GPoint(-178.00000,  -3.07935),

new GPoint(-177.50000,  -3.38269),

new GPoint(-177.00000,  -3.68263),

new GPoint(-176.50000,  -3.97919),

new GPoint(-176.00000,  -4.27237),

new GPoint(-175.50000,  -4.56220),

new GPoint(-175.00000,  -4.84871),

new GPoint(-174.50000,  -5.13191),

new GPoint(-174.00000,  -5.41182),

new GPoint(-173.50000,  -5.68847),

new GPoint(-173.00000,  -5.96189),

new GPoint(-172.50000,  -6.23209),

new GPoint(-172.00000,  -6.49911),

new GPoint(-171.50000,  -6.76297),

new GPoint(-171.00000,  -7.02369),

new GPoint(-170.50000,  -7.28132),

new GPoint(-170.00000,  -7.53586),

new GPoint(-169.50000,  -7.78736),

new GPoint(-169.00000,  -8.03584),

new GPoint(-168.50000,  -8.28132),

new GPoint(-168.00000,  -8.52383),

new GPoint(-167.50000,  -8.76342),

new GPoint(-167.00000,  -9.00009),

new GPoint(-166.50000,  -9.23389),

new GPoint(-166.00000,  -9.46483),

new GPoint(-165.50000,  -9.69296),

new GPoint(-165.00000,  -9.91828),

new GPoint(-164.50000, -10.14085),

new GPoint(-164.00000, -10.36067),

new GPoint(-163.50000, -10.57778),

new GPoint(-163.00000, -10.79221),

new GPoint(-162.50000, -11.00399),

new GPoint(-162.00000, -11.21313),

new GPoint(-161.50000, -11.41967),

new GPoint(-161.00000, -11.62364),

new GPoint(-160.50000, -11.82505),

new GPoint(-160.00000, -12.02394),

new GPoint(-159.50000, -12.22034),

new GPoint(-159.00000, -12.41426),

new GPoint(-158.50000, -12.60573),

new GPoint(-158.00000, -12.79478),

new GPoint(-157.68634, -12.91217)],

"#FF0000", 2, 0.65);

map.addOverlay(polyline);

 

 

// YELLOW Solar Eclipse Time Line:  1.0000  1

var polyline = new GPolyline([

new GPoint(  90.20123,  27.93472),

new GPoint(  91.80865,  26.24412)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

// YELLOW Solar Eclipse Time Line:  1.1667  2

var polyline = new GPolyline([

new GPoint( 101.48242,  30.50819),

new GPoint( 102.42102,  28.51368)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

// YELLOW Solar Eclipse Time Line:  1.3333  3

var polyline = new GPolyline([

new GPoint( 109.56824,  31.59703),

new GPoint( 110.08337,  29.45960)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

// YELLOW Solar Eclipse Time Line:  1.5000  4

var polyline = new GPolyline([

new GPoint( 116.17853,  31.92328),

new GPoint( 116.34296,  29.71028)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

// YELLOW Solar Eclipse Time Line:  1.6667  5

var polyline = new GPolyline([

new GPoint( 121.86737,  31.73622),

new GPoint( 121.72406,  29.49078)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

// YELLOW Solar Eclipse Time Line:  1.8333  6

var polyline = new GPolyline([

new GPoint( 126.89905,  31.16124),

new GPoint( 126.48328,  28.91502)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

// YELLOW Solar Eclipse Time Line:  2.0000  7

var polyline = new GPolyline([

new GPoint( 131.42889,  30.27337),

new GPoint( 130.77295,  28.05058)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

// YELLOW Solar Eclipse Time Line:  2.1667  8

var polyline = new GPolyline([

new GPoint( 135.56219,  29.12175),

new GPoint( 134.69702,  26.94094)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

// YELLOW Solar Eclipse Time Line:  2.3333  9

var polyline = new GPolyline([

new GPoint( 139.37909,  27.73998),

new GPoint( 138.33380,  25.61503)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

// YELLOW Solar Eclipse Time Line:  2.5000 10

var polyline = new GPolyline([

new GPoint( 142.94659,  26.15096),

new GPoint( 141.74829,  24.09184)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

// YELLOW Solar Eclipse Time Line:  2.6667 11

var polyline = new GPolyline([

new GPoint( 146.32520,  24.36937),

new GPoint( 144.99847,  22.38273)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

// YELLOW Solar Eclipse Time Line:  2.8333 12

var polyline = new GPolyline([

new GPoint( 149.57373,  22.40269),

new GPoint( 148.14014,  20.49253)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

// YELLOW Solar Eclipse Time Line:  3.0000 13

var polyline = new GPolyline([

new GPoint( 152.75305,  20.25140),

new GPoint( 151.23126,  18.41969)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

// YELLOW Solar Eclipse Time Line:  3.1667 14

var polyline = new GPolyline([

new GPoint( 155.93121,  17.90821),

new GPoint( 154.33661,  16.15551)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

// YELLOW Solar Eclipse Time Line:  3.3333 15

var polyline = new GPolyline([

new GPoint( 159.19006,  15.35594),

new GPoint( 157.53455,  13.68217)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

// YELLOW Solar Eclipse Time Line:  3.5000 16

var polyline = new GPolyline([

new GPoint( 162.63727,  12.56329),

new GPoint( 160.92859,  10.96860)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

// YELLOW Solar Eclipse Time Line:  3.6667 17

var polyline = new GPolyline([

new GPoint( 166.42975,   9.47554),

new GPoint( 164.67023,   7.96171)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

// YELLOW Solar Eclipse Time Line:  3.8333 18

var polyline = new GPolyline([

new GPoint( 170.82855,   5.99270),

new GPoint( 169.01038,   4.56599)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

// YELLOW Solar Eclipse Time Line:  4.0000 19

var polyline = new GPolyline([

new GPoint( 176.36011,   1.90541),

new GPoint( 174.44885,   0.58494)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

// YELLOW Solar Eclipse Time Line:  4.1667 20

var polyline = new GPolyline([

new GPoint(-175.43994,  -3.39618),

new GPoint(-177.60852,  -4.53235)],

"#FFFF00", 2, 0.65);

map.addOverlay(polyline);

 

<!--  ++++++++++++++++++++++++++++++++++++++++++++++++++  -->

<!--  ++++++++++++++++++++++++++++++++++++++++++++++++++  -->

 

 

/*  ++++++++++++++++++++++++++++++++++++++++++++++++++  */

/*  ++++++++++++++++++++++++++++++++++++++++++++++++++  */

 

// Insert TRACK.GOO (ex SHADOW.EXE) above here

 

}

 

//<!--//<![CDATA[
// Solar Eclipse Calculator for Google Maps (Xavier Jubier: http://xjubier.free.fr/)
//
// Some of the code is inspired by Chris O'Byrne (http://www.chris.obyrne.com/)
//

/*
Release:
2007-07-06    Xavier Jubier, Fred Espenak, Sumit Dutta    Version for NASA's Solar Eclipse Google Maps
*/

//
// Observer constants -
// (0) North Latitude (radians)
// (1) West Longitude (radians)
// (2) Altitude (meters)
// (3) West time zone (hours)
// (4) rho sin O'
// (5) rho cos O'
//
var obsvconst = new Array();

//
// Eclipse circumstances
//   (0) Event type (C1=-2, C2=-1, Mid=0, C3=1, C4=2)
//   (1) t
// -- time-only dependent circumstances (and their per-hour derivatives) follow --
//   (2) x
//   (3) y
//   (4) d
//   (5) sin d
//   (6) cos d
//   (7) mu
//   (8) l1
//   (9) l2
// (10) dx
// (11) dy
// (12) dd
// (13) dmu
// (14) dl1
// (15) dl2
// -- time and location dependent circumstances follow --
// (16) h
// (17) sin h
// (18) cos h
// (19) xi
// (20) eta
// (21) zeta
// (22) dxi
// (23) deta
// (24) u
// (25) v
// (26) a
// (27) b
// (28) l1'
// (29) l2'
// (30) n^2
// -- observational circumstances follow --
// (31) alt
// (32) azi
// (33) m (max eclipse) // not mid eclipse
// (34) magnitude (max eclipse) // not mid eclipse
// (35) local event type (0 = none, 1 = partial, 2 = annular, 3 = total)
//
var c1 = new Array();
var c2 = new Array();
var mid = new Array();
var c3 = new Array();
var c4 = new Array();

// Latitude to text
function latitudeToString(latitude) {
   var txt = "";
   var latt = Math.round(latitude * 10000) / 10000.0;
   if (latt > 0) {
      txt = latt + "&deg; N";
   }
   else if (latt < 0) {
      var uneg = -1 * latt;
      txt = uneg + "&deg; S";
   }
   else {
      txt = "0&deg;";
   }
   return txt;
}

// Longitude to text
function longitudeToString(longitude) {
   var txt = "";
   var longt = Math.round(longitude * 10000) / 10000.0;
   if (longt > 0) {
      txt = longt + "&deg; E";
   }
   else if (longt < 0) {
      var uneg = -1 * longt;
      txt = uneg + "&deg; W";
   }
   else {
      txt = "0&deg;";
   }
   return txt;
}

//
// Populate the circumstances array with the time-only dependent circumstances (x, y, d, m, ...)
function timedependent(circumstances) {
   var t = circumstances[1];
   // x
   var ans = elements[8] * t + elements[7];
   ans = ans * t + elements[6];
   ans = ans * t + elements[5];
   circumstances[2] = ans;
   // dx
   ans = 3.0 * elements[8] * t + 2.0 * elements[7];
   ans = ans * t + elements[6];
   circumstances[10] = ans;
   // y
   ans = elements[12] * t + elements[11];
   ans = ans * t + elements[10];
   ans = ans * t + elements[9];
   circumstances[3] = ans;
   // dy
   ans = 3.0 * elements[12] * t + 2.0 * elements[11];
   ans = ans * t + elements[10];
   circumstances[11] = ans;
   // d
   ans = elements[15] * t + elements[14];
   ans = ans * t + elements[13];
   ans = ans * Math.PI / 180.0;
   circumstances[4] = ans;
   // sin d and cos d
   circumstances[5] = Math.sin(ans);
   circumstances[6] = Math.cos(ans);
   // dd
   ans = 2.0 * elements[15] * t + elements[14];
   ans = ans * Math.PI / 180.0;
   circumstances[12] = ans;
   // m
   ans = elements[18] * t + elements[17];
   ans = ans * t + elements[16];
   if (ans >= 360.0) {
      ans = ans - 360.0;
   }
   ans = ans * Math.PI / 180.0;
   circumstances[7] = ans;
   // dm
   ans = 2.0 * elements[18] * t + elements[17];
   ans = ans * Math.PI / 180.0;
   circumstances[13] = ans;
   // l1 and dl1
   var type = circumstances[0];
   if ((type == -2) || (type == 0) || (type == 2)) {
      ans = elements[21] * t + elements[20];
      ans = ans * t + elements[19];
      circumstances[8] = ans;
      circumstances[14] = 2.0 * elements[21] * t + elements[20];
   }
   // l2 and dl2
   if ((type == -1) || (type == 0) || (type == 1)) {
      ans = elements[24] * t + elements[23];
      ans = ans * t + elements[22];
      circumstances[9] = ans;
      circumstances[15] = 2.0 * elements[24] * t + elements[23];
   }

   return circumstances;
}

//
// Populate the circumstances array with the time and location dependent circumstances
function timelocdependent(circumstances) {
   timedependent(circumstances);
   // h, sin h, cos h
   circumstances[16] = circumstances[7] - obsvconst[1] - (elements[4] / 13713.44);
   circumstances[17] = Math.sin(circumstances[16]);
   circumstances[18] = Math.cos(circumstances[16]);
   // xi
   circumstances[19] = obsvconst[5] * circumstances[17];
   // eta
   circumstances[20] = obsvconst[4] * circumstances[6] - obsvconst[5] * circumstances[18] * circumstances[5];
   // zeta
   circumstances[21] = obsvconst[4] * circumstances[5] + obsvconst[5] * circumstances[18] * circumstances[6];
   // dxi
   circumstances[22] = circumstances[13] * obsvconst[5] * circumstances[18];
   // deta
   circumstances[23] = circumstances[13] * circumstances[19] * circumstances[5] - circumstances[21] * circumstances[12];
   // u
   circumstances[24] = circumstances[2] - circumstances[19];
   // v
   circumstances[25] = circumstances[3] - circumstances[20];
   // a
   circumstances[26] = circumstances[10] - circumstances[22];
   // b
   circumstances[27] = circumstances[11] - circumstances[23];
   // l1'
   var type = circumstances[0];
   if ((type == -2) || (type == 0) || (type == 2)) {
      circumstances[28] = circumstances[8] - circumstances[21] * elements[25];
   }
   // l2'
   if ((type == -1) || (type == 0) || (type == 1)) {
      circumstances[29] = circumstances[9] - circumstances[21] * elements[26];
   }
   // n^2
   circumstances[30] = circumstances[26] * circumstances[26] + circumstances[27] * circumstances[27];

   return circumstances;
}

//
// Iterate on C1 or C4
function c1c4iterate(circumstances) {
   var sign, n;

   timelocdependent(circumstances);
   if (circumstances[0] < 0)
      sign = -1.0;
   else
      sign = 1.0;
   var tmp = 1.0;
   var iter = 0;
   while (((tmp > 0.000001) || (tmp < -0.000001)) && (iter < 50)) {
      n = Math.sqrt(circumstances[30]);
      tmp = circumstances[26] * circumstances[25] - circumstances[24] * circumstances[27];
      tmp = tmp / n / circumstances[28];
      tmp = sign * Math.sqrt(1.0 - tmp * tmp) * circumstances[28] / n;
      tmp = (circumstances[24] * circumstances[26] + circumstances[25] * circumstances[27]) / circumstances[30] - tmp;
      circumstances[1] = circumstances[1] - tmp;
      timelocdependent(circumstances);
      iter++;
   }

   return circumstances;
}

//
// Get C1 and C4 data
//    Entry conditions -
//    1. The mid array must be populated
//    2. The magnitude at mid eclipse must be > 0.0
function getc1c4() {
   var n = Math.sqrt(mid[30]);
   var tmp = mid[26] * mid[25] - mid[24] * mid[27];
   tmp = tmp / n / mid[28];
   tmp = Math.sqrt(1.0 - tmp * tmp) * mid[28] / n;
   c1[0] = -2;
   c4[0] = 2;
   c1[1] = mid[1] - tmp;
   c4[1] = mid[1] + tmp;
   c1c4iterate(c1);
   c1c4iterate(c4);
}

//
// Iterate on C2 or C3
function c2c3iterate(circumstances) {
   var sign, n;

   timelocdependent(circumstances);
   if (circumstances[0] < 0)
      sign = -1.0;
   else
      sign = 1.0;
   if (mid[29] < 0.0)
      sign = -sign;
   var tmp = 1.0;
   var iter = 0;
   while (((tmp > 0.000001) || (tmp < -0.000001)) && (iter < 50)) {
      n = Math.sqrt(circumstances[30]);
      tmp = circumstances[26] * circumstances[25] - circumstances[24] * circumstances[27];
      tmp = tmp / n / circumstances[29];
      tmp = sign * Math.sqrt(1.0 - tmp * tmp) * circumstances[29] / n;
      tmp = (circumstances[24] * circumstances[26] + circumstances[25] * circumstances[27]) / circumstances[30] - tmp;
      circumstances[1] = circumstances[1] - tmp;
      timelocdependent(circumstances);
      iter++;
   }

   return circumstances;
}

//
// Get C2 and C3 data
//    Entry conditions -
//    1. The mid array must be populated
//    2. There must be either a total or annular eclipse at the location!
function getc2c3() {
   var n = Math.sqrt(mid[30]);
   var tmp = mid[26] * mid[25] - mid[24] * mid[27];
   tmp = tmp / n / mid[29];
   tmp = Math.sqrt(1.0 - tmp * tmp) * mid[29] / n;
   c2[0] = -1;
   c3[0] = 1;
   if (mid[29] < 0.0) {
      c2[1] = mid[1] + tmp;
      c3[1] = mid[1] - tmp;
   }
   else {
      c2[1] = mid[1] - tmp;
      c3[1] = mid[1] + tmp;
   }
   c2c3iterate(c2);
   c2c3iterate(c3);
}

//
// Get the observational circumstances
function observational(circumstances) {
   var contacttype;

   if (circumstances[0] == 0) {
      contacttype = 1.0;
   }
   else {
      if ((mid[35] == 3) && ((circumstances[0] == -1) || (circumstances[0] == 1))) {
         contacttype = -1.0;
      } else {
         contacttype = 1.0;
      }
   }
   // alt
   var sinlat = Math.sin(obsvconst[0]);
   var coslat = Math.cos(obsvconst[0]);
   circumstances[31] = Math.asin(circumstances[5] * sinlat + circumstances[6] * coslat * circumstances[18]);
   // azi
   circumstances[32] = Math.atan2(-1.0*circumstances[17]*circumstances[6], circumstances[5]*coslat - circumstances[18]*sinlat*circumstances[6]);
}

//
// Calculate max eclipse
function getmid() {
   mid[0] = 0;
   mid[1] = 0.0;
   var iter = 0;
   var tmp = 1.0;
   timelocdependent(mid);
   while (((tmp > 0.000001) || (tmp < -0.000001)) && (iter < 50)) {
      tmp = (mid[24] * mid[26] + mid[25] * mid[27]) / mid[30];
      mid[1] = mid[1] - tmp;
      iter++;
      timelocdependent(mid);
   }
}

//
// Populate the c1, c2, mid, c3 and c4 arrays
function getall() {
   getmid();
   observational(mid);
   // m, magnitude
   mid[33] = Math.sqrt(mid[24]*mid[24] + mid[25]*mid[25]);
   mid[34] = (mid[28] - mid[33]) / (mid[28] + mid[29]);
   if (mid[34] > 0.0) {
      getc1c4();
      if ((mid[33] < mid[29]) || (mid[33] < -mid[29])) {
         getc2c3();
         if (mid[29] < 0.0) {
            mid[35] = 3; // Total solar eclipse
         }
         else {
            mid[35] = 2; // Annular solar eclipse
         }
         observational(c2);
         observational(c3);
         c2[33] = 999.9;
         c3[33] = 999.9;
      }
      else {
         mid[35] = 1; // Partial eclipse
      }
      observational(c1);
      observational(c4);
   }
   else {
      mid[35] = 0; // No eclipse
   }
}

//
// Read the data, and populate the obsvconst array
function readdata(lat, lon) {
   // Get the latitude
   obsvconst[0] = lat;
   obsvconst[0] *= 1;
   obsvconst[0] *= Math.PI / 180.0;

   // Get the longitude
   obsvconst[1] = lon;
   obsvconst[1] *= -1;
   obsvconst[1] *= Math.PI / 180.0;

   // Get the altitude (sea level by default)
   obsvconst[2] = 0;

   // Get the time zone (UT by default)
   obsvconst[3] = 0;

   // Get the observer's geocentric position
   var tmp = Math.atan(0.99664719 * Math.tan(obsvconst[0]));
   obsvconst[4] = 0.99664719 * Math.sin(tmp) + (obsvconst[2] / 6378140.0) * Math.sin(obsvconst[0]);
   obsvconst[5] = Math.cos(tmp) + (obsvconst[2] / 6378140.0 * Math.cos(obsvconst[0]));
}

// This is used in getday()
// Pads digits
function padDigits(n, totalDigits) {
   n = n.toString();
   var pd = '';
   if (totalDigits > n.length) {
      for (i = 0; i < (totalDigits - n.length); i ++) {
         pd += '0';
      }
   }
   return pd + n.toString();
}

// Get the local date
function getdate(circumstances) {   
   /*
   var i;
   var searchString = document.location.search;
   
   // strip off the leading '?'
   searchString = searchString.substring(1);
   
   var nvPairs = searchString.split("&");
   
   for (i = 0; i < nvPairs.length; i++) {
      var nvPair = nvPairs[i].split("=");
      var name = nvPair[0];
      var value = nvPair[1];
      if (name == 'Ecl') {
         return value.substring(0, 4) + "/" + value.substring(4, 6) + "/" + value.substring(6, 8);
      }
   }
   */
   
   var jd = elements[0];
   
   // Calculate the local time.
   // Assumes JD > 0 (uses same algorithm as SKYCAL)
   var t = circumstances[1] + elements[1] - obsvconst[3] - (elements[4] - 0.05) / 3600.0+8;
   if (t < 0.0) {
      t += 24.0; // and jd-- below
   }
   else if (t >= 24.0) {
      t -= 24.0; // and jd++ below
   }
   var a;
   var y = 0;
   var m = 0;
   var day = 0.0;
   var jdm = jd + 0.5
   var z = Math.floor(jdm);
   var f = jdm - z;
   if (z < 2299161) {
      a = z;
   }
   else if (z >= 2299161) {
      var alpha = Math.floor((z - 1867216.25) / 36524.25);
      a = z + 1 + alpha - Math.floor(alpha / 4);
   }
   var b = a + 1524;
   var c = Math.floor((b - 122.1) / 365.25);
   var d = Math.floor(365.25 * c);
   var e = Math.floor((b - d) / 30.6001);
   day = b - d - Math.floor(30.6001 * e) + f;
   if (e < 14) {
      m = e - 1;
   }
   else if (e == 14 || e == 15) {
      m = e - 13;
   }
   if (m > 2) {
      y = c - 4716;
   }
   else if (m == 1 || m == 2) {
      y = c - 4715;
   }
   timediff = t - 24*(day-Math.floor(day)); // present time minus UT at GE
   if (timediff < -12) {
      day ++;
   }
   else if (timediff > 12) {
      day --;
   }
   
   return ''+padDigits(y, 4)+'/'+padDigits(m, 2)+'/'+padDigits(Math.floor(day), 2);
   
   // This method below IS NOT USED
   // Calculate the JD for as close to local noon as possible, and convert into a date
   // (may NOT WORK for dates
   // more than ONE CENTURY from the present day) (see http://aa.usno.navy.mil/js/JulianDate.js
   // for hints on second part of this function starting with "Otherwise" comment)
   // That part could be improved
   var ans;
   var jd = Math.floor(elements[0] - (t / 24.0) + 1538.0);
   var c = Math.floor((jd - 122.1) / 365.25);
   var d = Math.floor(365.25 * c);
   var e = Math.floor((jd - d) / 30.6001);
   d = jd - d - Math.floor(30.6001 * e);
   if (e < 13.5)
      e -= 1;
   else
      e -= 13;
   if (e > 2.5)
      ans = c - 4716 + "/";
   else
      ans = c - 4715 + "/";
   if (e < 10)
      ans += "0";
   ans += e + "/";
   if (d < 10)
      ans += "0";
   ans += d;

   return ans;
}

//
// Get the local time
function gettime(circumstances) {
   var ans = "";

   var t = circumstances[1] + elements[1] - obsvconst[3] - (elements[4] - 0.05) / 3600.0+8.0;
   if (t < 0.0)
      t += 24.0;
   else if (t >= 24.0)
      t -= 24.0;
   if (t < 10.0)
      ans += "0";
   ans += Math.floor(t) + ":";
   t = (t * 60.0) - 60.0 * Math.floor(t);
   if (t < 10.0)
      ans += "0";
   ans += Math.floor(t) + ":";
   t = (t * 60.0) - 60.0 * Math.floor(t);
   if (t < 10.0)
      ans += "0";
   ans += Math.floor(t);
   ans += ".";
   ans += Math.floor(10.0 * (t - Math.floor(t)));
   // Add an asterix if the altitude is less than zero
   if (circumstances[31] <= 0.0)
      ans += "*";

   return ans;
}

//
// Get the altitude
function getalt(circumstances) {
   var ans = "";
   var t = circumstances[31] * 180.0 / Math.PI;
   if (t < 0.0) {
      ans = "-";
      t = -t;
   }
   // t = Math.floor(t + 0.5);
   t = Math.round(t * 10) / 10.0;
   if (t < 100.0)
      ans += "0";
   if (t < 10.0)
      ans += "0";
   ans += t;

   return ans;
}

//
// Get the azimuth
function getazi(circumstances) {
   var ans = "";
   var t = circumstances[32] * 180.0 / Math.PI;
   if (t < 0.0)
      t += 360.0;
   else if (t >= 360.0)
      t -= 360.0;
   // t = Math.floor(t + 0.5);
   t = Math.round(t * 10) / 10.0;
   if (t < 100.0)
      ans += "0";
   if (t < 10.0)
      ans += "0";
   ans += t;

   return ans;
}

//
// Display the information about 1st contact
function displayc1() {
   var html = "<tr><td>";
   html += "初亏";
   html += " (C1)&nbsp;:&nbsp;</td><td>" + getdate(c1) + "</td><td>" + gettime(c1) + "</td><td>" + getalt(c1) + "&deg;</td><td>" + getazi(c1) + "&deg;</td></tr>";

   return html;
}

//
// Display the information about 2nd contact
function displayc2() {
   var html = "<tr><td>";
   html += "食既";
   html += " (C2)&nbsp;:&nbsp;</td><td>" + getdate(c2) + "</td><td>" + gettime(c2) + "</td><td>" + getalt(c2) + "&deg;</td><td>" + getazi(c2) + "&deg;</td></tr>";

   return html;
}

//
// Display the information about maximum eclipse
function displaymid() {
   var html = "<tr><td>";
   html += "食甚"; // "Mid eclipse";
   html += "&nbsp;:&nbsp;</td><td>" + getdate(mid) + "</td><td>" + gettime(mid) + "</td><td>" + getalt(mid) + "&deg;</td><td>" + getazi(mid) + "&deg;</td></tr>";

   return html;
}

//
// Display the information about 3rd contact
function displayc3() {
   var html = "<tr><td>";
   html += "生光";
   html += " (C3)&nbsp;:&nbsp;</td><td>" + getdate(c3) + "</td><td>" + gettime(c3) + "</td><td>" + getalt(c3) + "&deg;</td><td>" + getazi(c3) + "&deg;</td></tr>";

   return html;
}

//
// Display the information about 4th contact
function displayc4() {
   var html = "<tr><td>";
   html += "复圆";
   html += " (C4)&nbsp;:&nbsp;</td><td>" + getdate(c4) + "</td><td>" + gettime(c4) + "</td><td>" + getalt(c4) + "&deg;</td><td>" + getazi(c4) + "&deg;</td></tr>";

   return html;
}

//
// Get the duration in 00m00.0s format
//
function getduration() {
   var tmp = c3[1] - c2[1];
   if (tmp < 0.0)
      tmp += 24.0;
   else if (tmp >= 24.0)
      tmp -= 24.0;
   tmp = (tmp * 60.0) - 60.0 * Math.floor(tmp) + 0.05 / 60.0;
   var ans = Math.floor(tmp) + "m";
   tmp = (tmp * 60.0) - 60.0 * Math.floor(tmp);
   if (tmp < 10.0)
      ans += "0";
   ans += Math.floor(tmp);
   ans += ".";
   ans += Math.floor((tmp - Math.floor(tmp)) * 10.0).toString() + "s";

   return ans;
}

//
// Compute the local circumstances
function loc_circ(lat, lon) {
   var html = "";
   var htmlc1 = "";
   var htmlc2 = "";
   var htmlmid = "";
   var htmlc3 = "";
   var htmlc4 = "";
   var htmlEclipse = "";
   var partialEvent = false;
   var isEclipse = true;

   readdata(lat, lon);
   getall();
   htmlmid = displaymid();
   if (mid[35] > 0) {
      // There is an eclipse
      htmlc1 = displayc1();
      htmlc4 = displayc4();
      if (mid[35] > 1) {
         // Total/annular eclipse
         htmlc2 = displayc2();
         htmlc3 = displayc3();
         if ((c1[31] <= 0.0) && (c4[31] <= 0.0)) {
            // Sun below the horizon for the entire duration of the event
            isEclipse = false;
            htmlEclipse += "无日全食";
         }
         else {
            // Sun above the horizon for at least some of the event
            if ((c2[31] <= 0.0) && (c3[31] <= 0.0)) {
               // Sun below the horizon for just the total/annular event
               partialEvent = true;
               htmlEclipse += "偏食";
            }
            else {
               // Sun above the horizon for at least some of the total/annular event
               if ((c2[31] > 0.0) && (c3[31] > 0.0)) {
                  // Sun above the horizon for the entire annular/total event
                  if (mid[35] == 2) {
                     htmlEclipse += "日环食";
                     htmlEclipse += "<br />环食持续时间: ";
                     htmlc1 = htmlc1.replace(" of central eclipse", " of annular eclipse");
                     htmlc2 = htmlc2.replace(" of central eclipse", " of annular eclipse");
                     htmlc3 = htmlc3.replace(" of central eclipse", " of annular eclipse");
                     htmlc4 = htmlc4.replace(" of central eclipse", " of annular eclipse");
                  }
                  else {
                     htmlEclipse += "日全食";
                     htmlEclipse += "<br />全食持续时间: ";
                     htmlc1 = htmlc1.replace(" of central eclipse", " of total eclipse");
                     htmlc2 = htmlc2.replace(" of central eclipse", " of total eclipse");
                     htmlc3 = htmlc3.replace(" of central eclipse", " of total eclipse");
                     htmlc4 = htmlc4.replace(" of central eclipse", " of total eclipse");
                  }
                  htmlEclipse += getduration();
               }
               else {
                  // Sun below the horizon for at least some of the annular/total event
                  htmlEclipse += "???";
               }
            }
         }
      }
      else {
         // Partial eclipse
         if ((c1[31] <= 0.0) && (c4[31] <= 0.0)) {
            // Sun below the horizon
            isEclipse = false;
            htmlEclipse += "无日全食区域";
         }
         else {
            partialEvent = true;
            htmlEclipse += "偏食区域";
         }
      }
   }
   else {
      // No eclipse
      isEclipse = false;
      htmlEclipse += "无日全食区域";
   }

   if (isEclipse == true) {
      var maxmag = Math.round(mid[34] * 1000) / 1000.0;
      htmlEclipse += "<br />食分: " + maxmag;

      html = "";
      html += "<div id=\"mapmarker\" style=\"width: 390px;\">";
      html += "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"width: 100%;\" class=\"notable1\">";
      html += "<thead><tr>";
      html += "<td><span title=\"Latitude\">纬度</span>: " + latitudeToString(lat.toFixed(5)) + "<br /><span title=\"Longitude\">经度</span>: " + longitudeToString(lon.toFixed(5)) + "</td>";
      html += "<td>" + htmlEclipse + "</td>";
      html += "</tr></thead>";
      html += "</table>";

      html += "<div style=\"margin: auto; width: 100%;\"><table border=\"0\" cellspacing=\"3\" style=\"width: 100%;\" class=\"notable1\">";
      html += "<thead><tr style=\"text-align: center; color: #FFFFFF; background: #006699;\">";
      html += "<td>过程</td><td>日期</td><td>北京时间</td><td title=\"Altitude\">仰角</td><td title=\"Azimuth\">方位</td>";
      html += "</tr></thead><tbody>";
      html += htmlc1;
      if (partialEvent == false)
         html += htmlc2;
      html += htmlmid;
      if (partialEvent == false)
         html +=htmlc3;
      html += htmlc4;
      html += "</tbody></table></div>";
   }
   else {
      // No eclipse
      html = "<div id=\"mapmarker\" style=\"width: 150px;\">";
      html += "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"width: 100%;\" class=\"notable1\">";
      html += "<thead><tr>";
      html += "<td><span title=\"Latitude\">经度</span>: " + latitudeToString(lat.toFixed(5)) + "<br /><span title=\"Longitude\">纬度</span>: " + longitudeToString(lon.toFixed(5)) + "</td>";
      html += "</tr></thead>";
      html += "</table>";
      html += "<br /><p style=\"font-weight: bold;\">" + htmlEclipse + "</p>";
   }
   html += "</div>";

   return html;
}
//-->//]]>

onLoad();

