/**
 * Displays a banner.
 *
 * @param object banner {picture, url, name}
 */
function _displayBanner(banner)
{
	bannerLink = A({'href': banner.url, 'target': '_blank'},
		IMG({'src': banner.picture, 'alt': banner.name}));
	replaceChildNodes($('banner_td'), bannerLink);

	/* Get a new random banner every 2 minutes. */
	callLater(120, getRandomBanner);
}

/**
 * Initialises the banner.
 */
function initBanner()
{
	/* Create DOM */
	bannerTable = TABLE({'id': 'banner'}, TBODY(null, TR(null, TD({'id': 'banner_td'}))));
	appendChildNodes(document.body, bannerTable);

	/* Display initial banner. */
	getRandomBanner();
}

/**
 * Do a request for a random banner.
 */
function getRandomBanner()
{
	d = loadJSONDoc('banner.php');
	d.addCallbacks(_displayBanner, null);
}

/* Initialises banner when the page loads. */
addLoadEvent(initBanner);

/**
 * If MochiKit doesnt have a removeElement function,
 * use the self-created one.
 */
if (!removeElement)
{
	function removeElement(elem)
	{
		var e = MochiKit.DOM.getElement(elem);
		e.parentNode.removeChild(e);
		return e;
	}
}