<?xml version="1.0" encoding="UTF-8" ?> 
<Module>
<ModulePrefs title="Satellite Tracking" directory_title="Satellite Tracking Tool" author="Ciprian Sufitchi" author_email="csufitchi@gmail.com" author_affiliation="None" author_location="Fairfax, VA" screenshot="http://www.n2yo.com/sat/gscreenshot.png" thumbnail="http://www.n2yo.com/sat/tsat.png" description="Select your favorite satellite and watch its trajectory on Google Maps in real time!" scaling="false" scrolling="false" singleton="false" author_link="http://www.n2yo.com" width="200" height="300"> 
<Require feature="com.google.gadgets.analytics" /> 
</ModulePrefs>
<UserPref name="myview" display_name="Aerial view?" datatype="bool"/>
<Content type="html">
<![CDATA[ 
<script src="http://maps.google.com/maps?file=api&v=2" type="text/javascript"></script>
<center>
<table width="300" cellpadding="0" cellspacing="0" bgcolor="#FFFFE1" border="0">
<tr><td valign="middle" align="left"><font face="Arial" size="2">
<nobr>Now tracking: 
<SELECT id="selection___MODULE_ID__" onChange='changesat___MODULE_ID__()' STYLE="font-family: Arial; font-size : 8pt; width: 100">
<OPTION value=25544>ISS (ZARYA)</OPTION>
<OPTION value=33441>STS 126</OPTION>
<OPTION value=33414>VENESAT-1</OPTION>
<OPTION value=24786>GOES 10</OPTION>
<OPTION value=32711>NAVSTAR 62 (USA 201)</OPTION>
<OPTION value=26352>GOES 11</OPTION>
<OPTION value=27704>NAVSTAR 52 (USA 168)</OPTION>
<OPTION value=26690>NAVSTAR 50 (USA 156)</OPTION>
<OPTION value=25030>NAVSTAR 44 (USA 134)</OPTION>
<OPTION value=22108>NAVSTAR 27 (USA 84)</OPTION>
<OPTION value=21552>NAVSTAR 23 (USA 71)</OPTION>
<OPTION value=26407>NAVSTAR 48 (USA 151)</OPTION>
<OPTION value=32384>NAVSTAR 61 (USA 199)</OPTION>
<OPTION value=28874>NAVSTAR 57 (USA 183)</OPTION>
<OPTION value=28129>NAVSTAR 53 (USA 175)</OPTION>
<OPTION value=33436>ASTRA 1M</OPTION>
<OPTION value=23953>NAVSTAR 38 (USA 126)</OPTION>
<OPTION value=21890>NAVSTAR 24 (USA 79)</OPTION>
<OPTION value=22657>NAVSTAR 32 (USA 91)</OPTION>
<OPTION value=20580>HST</OPTION>

</SELECT>
<td align="right"><font face="Arial" size="2"><A HREF="http://www.n2yo.com">More satellites &raquo;</A>
</nobr>
</font>
</td>
</tr>


<tr>
<td colspan="2" align="center" valign="top">
<!-- <span id="SMAP___MODULE_ID___info"></span> -->
<div id="map___MODULE_ID___" style="width: 310px; height: 250px; border: 1px solid #999999;background:#FFFF99"></div>
</font>
</td>
</tr>

<tr>
<td align="left"><font face="Arial" size="1">
<span id="info___MODULE_ID___"></span>
</font>
</td>
<td align="right" valign="top"><font face="Arial" size="1">
<nobr>Powered by <A HREF="http://www.n2yo.com">www.n2yo.com</A></nobr>
</font>
</td>
</tr>


</table>

<script type="text/javascript">
var prefs = new _IG_Prefs(__MODULE_ID__);
var myview = prefs.getBool("myview");
var trackingData = '';
var drawingData = '';
var duration = 600;
var counter = 0;
var txtArray = new Array();
var satid___MODULE_ID__ = 25544;
var timerid = 0;
var satIcon;
var satMarker;
var map;
var drawingOverlay;
var limit = 1;
var cntLimit = 0;
var ga = new _IG_GA("UA-330684-4");
ga.reportPageview('/view/counterGadget');

function changesat___MODULE_ID__()
{
	selid = document.getElementById("selection___MODULE_ID__").selectedIndex;
	satid___MODULE_ID__ = document.getElementById("selection___MODULE_ID__").options[selid].value;
	satIcon = generateSatelliteMarker();
	map.removeOverlay(satMarker);
	satMarker = new GMarker(new GLatLng(0,0),satIcon);
	map.addOverlay(satMarker);
	if (drawingOverlay != null)
		map.removeOverlay(drawingOverlay);
	counter = 0;
	cntLimit = 0;
	trackingData = '';
	drawingData = '';
	txtArray = new Array();
	clearTimeout(timerid);
	tick___MODULE_ID__();
}

function generateSatelliteMarker()
{
	var sat = satid___MODULE_ID__;
	var satShadowURL;
	var satIconURL;
	var	n2yo_img = new Image();
	n2yo_img.src = "http://www.n2yo.com/img/icons/"+sat+".gif";
	if (n2yo_img.height > 0)
	{
		satIconURL = 'http://www.n2yo.com/img/icons/'+sat+'.gif';
		satShadowURL = 'http://www.n2yo.com/img/icons/'+sat+'s.png';
	}
	else
	{
		satIconURL = 'http://www.n2yo.com/img/icons/00000.gif';
		satShadowURL = 'http://www.n2yo.com/img/icons/00000s.png';
	}
	var icon = new GIcon();
	icon.image = satIconURL;
	icon.shadow = satShadowURL;
	icon.iconSize = new GSize(30, 30);
	icon.iconAnchor = new GPoint(15, 15);
	return icon;
}

function action___MODULE_ID__()
{

	if (cntLimit > limit)
	{
		// Stop tracking!
		document.getElementById("map___MODULE_ID___").innerHTML = '<p>&nbsp;<p>&nbsp;<p>&nbsp;<p align="center">Please visit <a href="http://www.n2yo.com">www.n2yo.com</a> for longer tracking and additional features</p>';
	}
	// each second move the icon on the map
	// each duration seconds get tracking data
	var r = counter%duration;

	if (r == 0)
	{
		getTrackingData___MODULE_ID__(satid___MODULE_ID__, duration);
		//getDrawingData___MODULE_ID__(satid___MODULE_ID__);
		cntLimit ++;
	}
	if(trackingData != '')
			txtArray = trackingData.split('\n');
	if((drawingData != '') && (drawingOverlay == null))
	{
			processDrawing(drawingData);
	}

	var trkString = txtArray[r];
	if (txtArray.length > 0)
		doAnimation___MODULE_ID__(trkString);
	else document.getElementById("info___MODULE_ID___").innerHTML = "Retrieving data...";
}


function getTrackingData___MODULE_ID__(s, d) 
{
	trackingData = '';
	txtArray = new Array();
	var rf = document.referrer;
	var r = Math.random() * Date.parse(new Date());
	_IG_FetchContent('http://www.n2yo.com/sat/tracking-g.php?s='+s+'&d='+d+'&r='+rf+'&o=G&RandomKey='+r, function (responseText) {
	trackingData = responseText;
	});
}

function getDrawingData___MODULE_ID__(s) 
{
	drawingData = '';
	if (drawingOverlay != null)
		map.removeOverlay(drawingOverlay);
	drawingOverlay = null;
	var r = Math.random() * Date.parse(new Date());
	_IG_FetchContent('http://www.n2yo.com/sat/drawing-txt.php?s='+s+'&o=G&RandomKey='+r, function (responseText) {
	drawingData = responseText;
	});
}

function returnData___MODULE_ID__(responseText)
{
	return (responseText);
}

function processDrawing(drawingData) {

	var txtArray = drawingData.split("\n");
	var encodedPath = txtArray[0];	
	var levels = txtArray[1];	
			 drawingOverlay = new GPolyline.fromEncoded({
				color: "#FF0000",
				weight: 1,
				points: encodedPath,
				levels: levels,
				zoomFactor: 6,
				numLevels: 4
			});
	map.addOverlay(drawingOverlay);
		}
	

function doAnimation___MODULE_ID__(line)
{
	//document.getElementById("SMAP___MODULE_ID___info").innerHTML = line;
	var dataArray = line.split(',');
	var lat = dataArray[0];
	var lng = dataArray[1];
	var pt = new GLatLng(lat, lng);
	map.setCenter(pt);
	satMarker.setPoint(pt);
	var region = dataArray[5];
	var city = dataArray[4];
	var country = dataArray[3];
	var countrycode = dataArray[2];
		if (city != "NULL")
		{
			if (countrycode == "US")
			{
				document.getElementById("info___MODULE_ID___").innerHTML = " "+ city + ", " + region + " ";
			}
			else
			{
				document.getElementById("info___MODULE_ID___").innerHTML = " "+ city + ", " + country + " ";
			}
		}
		else 
		{
			document.getElementById("info___MODULE_ID___").innerHTML = "&nbsp;";
		}


}

function tick___MODULE_ID__()
{
	action___MODULE_ID__();
	//each second, never stop
	counter++;
	timerid = setTimeout(tick___MODULE_ID__, 1000);
}

function startGadget___MODULE_ID__()
{
	map = new GMap2(document.getElementById("map___MODULE_ID___"));
	map.addControl(new GSmallMapControl());
	if (myview)	map.setMapType(G_SATELLITE_MAP);
	if (!myview)	map.setMapType(G_NORMAL_MAP);
	map.setCenter(new GLatLng(0, 0), 3);
	satIcon = generateSatelliteMarker();
	satMarker = new GMarker(new GLatLng(0,0),satIcon);
	map.addOverlay(satMarker);
	tick___MODULE_ID__();
}
var SMAP___MODULE_ID___handle;
_IG_RegisterOnloadHandler(function() {
    SMAP___MODULE_ID___handle = new startGadget___MODULE_ID__();
});
</script>
  ]]>
   </Content> 
</Module>