function parseLinks() 
{
	if (!document.getElementsByTagName) return;
	skip="noext";

	an = document.getElementsByTagName("a");
	size  = an.length;
	for (i=0; i<size; i++) 
	{
		obj = an.item(i);
		//alert(obj.href.indexOf(window.location.hostname));
		if(!obj.href || obj.href.charAt(0) == '/' || obj.href.indexOf(window.location.hostname) > -1) continue;
		if(obj.className.indexOf(skip) > -1 || obj.href.indexOf('mailto:') > -1 || obj.href.indexOf('javascript:') > -1) continue;

		obj.rel = "external"; 
		obj.target= '_blank';
	}
}

Event.observe( window, 'load', function() { parseLinks();} );
//window.addEvent('domready', function() { parseLinks();} );
var rpcType = new Array();
rpcType[1] = 'Banner.getLinear';
rpcType[2] = 'Banner.getRandom';

var bannerRpcClient = new xmlrpc_client("/xmlrpc");

var id;
function getNextBanner(id, tree_id, tag, type)
{
	if(!rpcType[type]) type = 2;

	var param = {	current : id,
								tag : tag,
								tree_id : tree_id};

	var msg = new xmlrpcmsg(rpcType[type]);
	msg.addParam(xmlrpc_encode(param));
	bannerRpcClient.send(msg,0,getRpcResult);
}

function getRpcResult(data, state, extra)
{
	var result = xmlrpc_decode(data.value());
	var id = result['id'];
	var tag = result['tag'];
	var tree_id = result['tree_id'];
	var type = result['display_order'];

	switch(parseInt(result['display']))
	{
		case 3 :
			blendImage(result['image'], result['name'], result['url'], tag);
			break;
		case 4 :
			swapImage(result['image'], result['name'], result['url'], tag);
			break;
		default :
			showImage(result['image'], result['name'], result['url'], tag);
	}

	setTimeout("getNextBanner("+id+", "+tree_id+", '"+tag+"', "+type+")", result['transition_speed']*1000);
}
var resizeDuration = 1;

// -----------------------------------------------------------------------------------

//
//	Additional methods for Element added by SU, Couloir
//	- further additions by Lokesh Dhakar (huddletogether.com)
//
Object.extend(Element, {
	getWidth: function(element) {
	   	element = $(element);
	   	return element.offsetWidth; 
	},
	setWidth: function(element,w) {
	   	element = $(element);
    	element.style.width = w +"px";
	},
	setHeight: function(element,h) {
   		element = $(element);
    	element.style.height = h +"px";
	},
	setTop: function(element,t) {
	   	element = $(element);
    	element.style.top = t +"px";
	},
	setLeft: function(element,l) {
	   	element = $(element);
    	element.style.left = l +"px";
	},
	setSrc: function(element,src) {
    	element = $(element);
    	element.src = src; 
	},
	setName: function(element,name) {
    	element = $(element);
    	element.alt = name; 
	},
	setHref: function(element,href) {
    	element = $(element);
    	element.href = href; 
	},
	setInnerHTML: function(element,content) {
		element = $(element);
		element.innerHTML = content;
	}
});

	//
	//	changeImage()
	//	Hide most elements and preload image in preparation for resizing image container.
	//
function blendImage(image, name, url, tag) 
{	
		var imgtag = 'bnrimg'+tag;
		var divtag = 'bnr'+tag;

		$(divtag).style.backgroundImage = "url(" + $(imgtag).src + ")"; 

		Element.hide(imgtag);
		var imgPreloader = new Image();
		
		// once image is preloaded, resize image container
		imgPreloader.onload=function(){
			showSwapImage(image, url, tag);
			Element.setName(name);
			imgPreloader.onload=function(){};	//	clear onLoad, IE behaves irratically with animated gifs otherwise 
		}
		imgPreloader.src = image['src'];

		//document.getElementById(divtag).style.backgroundImage = "url(" + document.getElementById(imgtag).src + ")"; 

}
	
function swapImage(image, name, url, tag) 
{	
		var imgtag = 'bnrimg'+tag;
		var divtag = 'bnr'+tag;

		document.getElementById(divtag).style.backgroundImage = "none";

		var imgPreloader = new Image();
		
		// once image is preloaded, resize image container
		imgPreloader.onload=function(){
			new Effect.Fade(imgtag, {duration: resizeDuration, from:1.0, to:0.0, queue: { position: 'front', scope: 'banner', limit: 2 }, afterFinish: function(){ showSwapImage(image, url, tag);}});
			Element.setName(name);
			imgPreloader.onload=function(){};	//	clear onLoad, IE behaves irratically with animated gifs otherwise 
		}
		imgPreloader.src = image['src'];

}
	
function showSwapImage(image, url, tag)
{
		var imgtag = 'bnrimg'+tag;
		var linktag = 'bnrhref'+tag;
		
		Element.setSrc(imgtag, image['src']);
		Element.setWidth(imgtag, image['width']);
		Element.setHeight(imgtag, image['height']);

		if(document.getElementById(linktag))
			Element.setHref(linktag, url ? url : '#');

		Effect.Appear(imgtag, { duration: resizeDuration, from:0.0, to:1.0, queue: { position: 'front', scope: 'banner', limit: 2}  });
}

function showImage(image, name, url, tag)
{
		var imgtag = 'bnrimg'+tag;
		var linktag = 'bnrhref'+tag;

		Element.show(imgtag);

		Element.setSrc(imgtag, image['src']);
		Element.setName(imgtag, name);
		Element.setWidth(imgtag, image['width']);
		Element.setHeight(imgtag, image['height']);

		if(document.getElementById(linktag))
			Element.setHref(linktag, url ? url : '#');
}


