function browserrequestobject()
{
    var activexmodes = ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
    if(window.ActiveXObject)
    {
	for(var i = 0; i < activexmodes.length; i++)
	{
	    try
	    {
		return new ActiveXObject(activexmodes[i]);
	    }
	    catch(e)
	    {
		// squelch error
	    }
	}
    }
    else if(window.XMLHttpRequest)
	return new XMLHttpRequest();
    else
	return false;
}

function getinclude(include)
{
    var myrequest = new browserrequestobject();
    myrequest.open("GET", include, false);
    myrequest.send(null);
    return myrequest.responseText;
}

function getitems(dir)
{
    var myrequest = new browserrequestobject();
    if(!myrequest)
	alert('Error getting a new browserrequestobject().');
    myrequest.open("GET", "/rotator.php?dir=" + dir, false);
    myrequest.send(null);
    var jsondata = eval("(" + myrequest.responseText + ")");
    return jsondata.list;
}

function buildweightedarray(dir)
{
    var weightedarray = new Array();
    var items = getitems(dir);
    for(var i = 0; i < items.length; i++)
    {
	for(var w = 0; w < items[i].weight; w++)
	    weightedarray.push(items[i].name);
    }
    return weightedarray;
}

function rotator(dir)
{
    var ourarray = buildweightedarray(dir);
    var unixtime = new Date();
    var ourad = unixtime.getSeconds() % ourarray.length;
    document.write(getinclude(ourarray[ourad]));
}

