var req;
var url;
var timers = new Array;

	function colorfade(urlsub,cc) {
		if(cc == 20) {
			aa = 155;
		}
		if(cc > 0) {
			aa +=10;
			document.getElementById(urlsub).style.background="rgb("+aa+","+aa+",255)";
			cc--;
			timers[-1] = setTimeout("colorfade('"+urlsub+"','"+cc+"')",2);
		}
	}

	function timerSet(urlsub)
	{                          

			var urlids = '';
			var urlsubs = new Array();
			var urldiv = new Array();
			var urllist = document.getElementsByTagName("div");
			var urlindex = 0;
			var results = document.getElementById('results0');
			var results1 = document.getElementById('results1');
			var results2 = document.getElementById('results2');
			var results3 = document.getElementById('results3');
			var timercount = document.getElementById('timercount');
		  var earliesttime =0;
			var latesttime = 0;
			
			results.innerHTML = urlsub+results.innerHTML;
      clearTimeout(timers[-1]);
      
			for (var i=0;i<urllist.length;i++)
			{
				var re = /u(\d+):(\d+):(\d+)/;
				if(re.test(urllist[i].id)) {
					var matches = urllist[i].id.match(re);	
					urlindex = parseInt(matches[3])+1;
					urlsubs[urlindex] = urllist[i].innerHTML;
					urldiv[urlindex] = 'u'+matches[1]+':'+matches[2]+':'+urlindex;
					if (latesttime == 0 || matches[2] > latesttime) {
						latesttime = matches[2];
					}
					if (earliesttime ==0 || matches[2] < earliesttime) {
						earliesttime = matches[2];
					}
					if (urlids == '') {
						urlids = matches[1];
					} else {
						urlids = matches[1] +"," + urlids;
					}
				}
			}

			var addtimer = 20;
			if(typeof results != 'undefined') {
				results.innerHTML = '';
				results1.innerHTML = '';
				results2.innerHTML = '';
				results3.innerHTML = '';
				for(var i=28; i>=1; i--) {
				   addtimer += 200;
					if(typeof urldiv[i] != 'undefined') {
						if(i>=21) {
							results3.innerHTML = '<div class="urlsub" id="'+urldiv[i]+'">'
							+urlsubs[i] +'</div>'+results3.innerHTML;
						} else if(i>14) {
							results2.innerHTML = '<div class="urlsub" id="'+urldiv[i]+'">'
							+urlsubs[i] +'</div>'+results2.innerHTML;
						} else if(i>7) {
							results1.innerHTML = '<div class="urlsub" id="'+urldiv[i]+'">'+urlsubs[i] +
							'</div>'+results1.innerHTML;
						} else {
							results.innerHTML = '<div class="urlsub" id="'+urldiv[i]+'">'+urlsubs[i] +
							'</div>'+results.innerHTML;
						}
					}
					if(i==1) 
					{
						var cc = 20;
						colorfade(urldiv[i],cc);
					}
				}
			}
			
			timercount.innerHTML = "Timers: "+ timers.length + "<br />Urls: " + urllist.length +
			"<br />Earliest Time: "+earliesttime + "<br />Latest Time: "+latesttime;

}

function loadXMLDoc(myurl) 
{
	timers = new Array;
	 url = decodeURI(myurl);
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest(url);
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.send();
        }
    }
} 

function stopTimers()
{
	for(var i=-1; i <timers.length; i++) {
		clearTimeout(timers[i]);
	}
	var results = document.getElementById('timerstop');
	results.innerHTML = '<a name="swarmLink" onclick="startTimers();" ><img src="/images/hivespy.com/start-swarm.gif"></a>';
}
		
function startTimers()
{
	loadXMLDoc("/tracker/latest/");
	var results = document.getElementById('timerstop');
	results.innerHTML = '<a name="swarmLink" onclick="stopTimers();" ><img src="/images/hivespy.com/pause-swarm.gif"></a>';
}

function processReqChange() 
{
	var response;
	var results = document.getElementById('results0');
    // only if req shows "complete"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
			response  = req.responseXML.documentElement;
			if( response.getElementsByTagName('num')[0].firstChild.data == 0) {
				timers[0] = setTimeout("loadXMLDoc('/tracker/latest/?ltime="
					+response.getElementsByTagName('latest')[0].firstChild.data+"')",60000);
			} else {
				var addtimer = 200;
				var urlsubs = response.getElementsByTagName('urlsub');
				for(var i=urlsubs.length-1; i>=0; i--) {
					var id = urlsubs[i].getElementsByTagName('id')[0].firstChild.nodeValue;
					var image = urlsubs[i].getElementsByTagName('image')[0].firstChild.nodeValue;
					var url = urlsubs[i].getElementsByTagName('url')[0].firstChild.nodeValue;
					var fullurl = urlsubs[i].getElementsByTagName('fullurl')[0].firstChild.nodeValue;
					var title = urlsubs[i].getElementsByTagName('title')[0].firstChild.nodeValue;
					var submitted = urlsubs[i].getElementsByTagName('submitted')[0].firstChild.nodeValue;
					var forageurl = urlsubs[i].getElementsByTagName('forageurl')[0].firstChild.nodeValue;
					timers[i] = setTimeout("timerSet('<div class=\"urlsub\" id=\""+id+"\"><a href=\""+fullurl+
					"\" target=\"sitewin\"><img src=\""+image+"\" border=0><div class=\"urlsublink\">"+title+
					"</div></a><span class=\"urlsuburl\"><a href=\""+fullurl+"\" target=\"sitewin\">"+url+
					"</a></span><span class=\"urlforage\"><a href=\""+forageurl+
					"\">FORAGE</a></span></div>');",addtimer);
					addtimer += parseInt(59000/urlsubs.length);
				}
				timers[0] = setTimeout("loadXMLDoc('/tracker/latest/?ltime="
					+response.getElementsByTagName('latest')[0].firstChild.data+"')",60000);
			}
     } else {
            alert("There was a problem retrieving the XML data:\n" + req.statusText);
        }
    }
}
function showhide(id) {
	//safe function to hide an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		if (document.getElementById(id).style.display == 'none') {
			document.getElementById(id).style.display = 'block';
		} else {
			document.getElementById(id).style.display = 'none';
		}
	}
	else {
		if (document.layers) { // Netscape 4
			if (document.id.display == 'none') {
				document.id.display = 'inline';
			} else {
				document.id.display = 'none';
			}
		}
		else { // IE 4
			if (document.all.id.style.display == 'none') {
				document.all.id.style.display = 'inline';
			} else {
				document.all.id.style.display = 'none';
			}
		}
	}
}


