var fader = function() {
	var XML_PATH = 'testimonials.xml';
	var IS_TEST = false;
	var PREPEND_URL = '	http://www.totalbranddelivery.com';

	var request = null;
	var delay = 10000;	//default
	var content_strs = [];
	var no_els = null;
	var selected_index = 0;
	var main_container = null;
	var fade_in = null;
	var fade_out = null;
	
	function startup() {
		main_container = document.getElementById('testimonial_container');
		
		request = new XHR({
			method : 'get',
			onSuccess : function() {
				var data_xml = this.response.xml;
				
				var root = data_xml.getElementsByTagName('testimonials')[0];
				delay = root.getAttribute('delay');
				
				var content_nodes = root.getElementsByTagName('testimonial');
				no_els = content_nodes.length;
				
				for(var i = 0; i < no_els; i++) {
					var current = content_nodes[i];
					var child_nodes = current.childNodes;
					
					//test to see if this node is the first to be displayed
					if(current.getAttribute('first')) selected_index = i;
					
					//find the data in the xml node there may be a leading newline or an empty node
					var d_html = '';
					if(child_nodes.length > 0) {
						for(var j = 0; j < child_nodes.length; j++) {
							if(child_nodes[j].data.trim() != '') {
								d_html = child_nodes[j].data;
								break;
							}
						}
					}
					
					//for local test use absolute url for images
					if(IS_TEST) d_html = d_html.replace(/src=['"](.+?)['"]/g, 'src="' + PREPEND_URL + '$1"')
				
					content_strs.push(d_html);
					
					//preload every image in a testimonial for smooth transitions
					var i_urls = d_html.match(/src=['"].+?['"]/g);
					for(var j = 0; j < i_urls.length; j++) {
						(new Image()).src = i_urls[j].replace(/src=['"](.+?)['"]/, '$1');
					}	
				}
				
				fade_in = new Fx.Style(main_container, 'opacity', {
					onComplete : function() {
						setTimeout(function() {
							fade_out.start(1, 0);
						}, delay);
					}
				});
				fade_in.set(0);
				main_container.innerHTML = content_strs[selected_index];
							
				
				fade_out = new Fx.Style(main_container, 'opacity', {
					onComplete : function() {
						main_container.innerHTML = '';
						
						if(selected_index == no_els - 1) selected_index = 0;
						else ++selected_index;
						
						main_container.innerHTML = content_strs[selected_index];
						fade_in.start(0, 1);
					}
				});
				
				fade_in.start(0, 1);
				
			}
		});
	
		if(main_container) request.send(XML_PATH);
		
	}
	
	window.addEvent('domready', startup);
}();

