/* (c) Copyright 2007 Peter Goodman, all rights reserved. */
(function(){
	document.write("<ul id=\"browser_reports\">Loading...</ul>");
	if(!window.XMLHttpRequest) {
		window.XMLHttpRequest = function() {
			var vs = ['MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP'];
			for(var i = 0; i < 6; i++)
			{
				try {
					return new ActiveXObject(vs[i]);
				} catch(e) { }
			}
			return null;
		};
	}
	var br_req = new XMLHttpRequest();
	var br_obj = document.getElementById('browser_reports');
	var br_last_id = 0, br_req_timer, br_failed;
	function getBrowserReports() {
		if(br_req) {
			if(window.br_req_timer) {
				clearTimeout(br_req_timer);
			}
			br_req.open("GET", 'browserreports.php?last=' + br_last_id, true);
			br_req.onreadystatechange = handleBrowserReports;
			br_req.send("");
		}
	}
	function handleBrowserReports() {
		if(br_req && br_obj && br_req.readyState == 4 && br_req.status == 200) {
			try {
				var resp = eval("("+br_req.responseText+")");
				var html = "";
				if(resp && resp.BrowserReports.entry) {
					for(var i = 0; i < resp.BrowserReports.entry.length; i++) {
						page_view = resp.BrowserReports.entry[i];
						html = '<li><b>'+page_view.referer+'</b> <span class="browser">'+page_view.browser+'</span> <span class="time">'+page_view.date+'</span></li>'+html;
						br_last_id = page_view.id;
					}
				}
				br_obj.innerHTML = html + br_obj.innerHTML;
				if(br_obj.childNodes.length > 10) {
					for(var i = br_obj.childNodes.length-1; i > 9; i--) {
						br_obj.removeChild(br_obj.childNodes[i]);
					}
				}
			} catch(ee) {
				br_req = br_failed = null;
				alert('Sorry, the request could not be parsed. ['+ee.message+']');
			} finally {
				resp = null;
			}

			if(!br_failed) {
				br_req_timer = window.setTimeout(function(){getBrowserReports();}, 5000); // 10 secs.
			}
		}
	}
	// addEvent function by John Resig, http://www.ejohn.org
	function addEvent( obj, type, fn ) {
		if ( obj.attachEvent ) {
			obj['e'+type+fn] = fn;
			obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
			obj.attachEvent( 'on'+type, obj[type+fn] );
		} else {
			obj.addEventListener( type, fn, false );
		}
	}
	
	getBrowserReports();
	addEvent(window,'unload',function(){
		if(window.br_req_timer) {
			clearTimeout(br_req_timer);
		}
		br_req.abort();
	});
})();