//** function for auto generating a banner ad ticker within a div */
jQuery.fn.bannerad = function(settings)
{
	settings = jQuery.extend(
		{
			xml_file:			false,
			div_id:				false,
			images:				false,
			links:				false,
			slide_timer: 		10,
			transition_timer: 	'slow',
			loader_colour:		'#000000'
		}, 
		settings
	);
	
	if(settings.div_id == false)
	{
		div_id = $(this).attr('id');
	}
	
	if(settings.xml_file !== false)
	{
		$.ajax(
			{
				type: 		'GET',
				url:		settings.xml_file,
				dataType: 	'xml',
				success:	function(xml)
				{
					// parse the xml with jquery goodness
					xml = $(xml);
					
					// initialise images object
					settings.images = new Object();
					
					// get the current slide timer
					settings.slide_timer = $('imageList', xml).attr('timer');
					
					// get the current transition timer
					settings.transition_timer = $('imageList', xml).attr('fadeTime');
					
					// get the loader colour
					settings.loader_colour = $('imageList', xml).attr('loaderColor').replace('0x', '#');
					
					var banner_counter = 0;
					
					// iterate through xml images
					$('image', xml).each
					(
						function()
						{
							// increment counter
							banner_counter++
							
							// create a new image object to preload our image into 
							var banner_img = $('<a href="'+$(this).attr('picURL')+'" id="bannerad_'+banner_counter+'"><img border="0" src="'+$(this).attr('path')+' /></a>');
							
							// store our new image element in the xml
							//$(this).attr('image', img);
							settings.images[banner_counter-1] = banner_img;
						}
					);
					
					$(this).data('banner_counter', banner_counter); 
					$(this).data('banner_images', settings.images); 
					
				}
			}
		);
	}
}


function setup()
{
	if(document.getElementById("airlines_flash"))
	{
		var so = new SWFObject("templates/IPUB/flash/airlines.swf", "sotester", "700", "100", "8", "#ffffff");
		so.addParam('wmode', 'transparent');
		so.addVariable('xmlfile', 'filelib/images.xml');
		so.useExpressInstall('media/js/swfobject/expressinstall.swf');
		so.write("airlines_flash");
	}
	if(document.getElementById("homebuttons"))
	{
		makebutton('airlines');
		makebutton('airports');
		makebutton('property');
	}
	
	if(typeof sIFR == "function")
{
		sIFR.replaceElement("h1", named({sFlashSrc: "templates/IPUB/sIFR/movieposter.swf", sColor: "#9f0005", sCase: "upper", sWmode: "transparent"}));
	};

	// make the banner ad
	
	if(document.getElementById('bannerad'))
	{
		var qs = new Querystring();

		if(qs.get('test', false))
		{
			$('bannerad').bannerad({xml_file:'filelib/bannerads.xml'});
			/*
			$.ajax(
				{
					type: 		'GET',
					url:		'filelib/bannerads.xml',
					dataType: 	'xml',
					success:	function(xml)
								{
									// parse the xml with jquery goodness
									xml = $(xml);
									
									// get the current fade timer
									window['banner_timer'] = $('imageList', xml).attr('timer');
									
									// initialise image counter
									window['banner_counter'] = 0;
									
									// initialise image object
									window['banner_array'] = Object();
									
									// iterate through xml images
									$('image', xml).each
									(
										function()
										{
											// increment counter
											banner_counter++;
											
											// create a new image object to preload our image into 
											var banner_img = $('<a href="'+$(this).attr('picURL')+'" id="bannerad_'+banner_counter+'"><img border="0" src="'+$(this).attr('path')+' /></a>');
											
											// store our new image element in the xml
											//$(this).attr('image', img);
											window['banner_array'][counter-1] = banner_img;
										}
									);
									
									for(var i=0; i < banner_counter; i++)
									{
										var banner_image_timer = i*
									}
									
								}
				}
			);
			*/
		}
		else
		{
			var bannerad_flash = new FlashObject("filelib/banner2.swf", "mybanner", "145", "400", "8", "#000000");
			bannerad_flash.addParam("wmode", "transparent");
			bannerad_flash.addParam("scale", "noborder");
			bannerad_flash.addVariable("xmlfile", "filelib/bannerads.xml");
			bannerad_flash.addVariable("thumbnailer", "img.php");
			bannerad_flash.write("bannerad"); 
		}
	}
}

function makebutton(id)
{
	var holder = document.getElementById(id);
	
	var titleNode = getElementsByClassName('heading', 'div', holder);
	titleNode = titleNode[0];
	var textNode = getElementsByClassName('content', 'div', holder);
	textNode = textNode[0];
	var linkNode = getElementsByClassName('link', 'div', holder);
	linkNode = linkNode[0];
	
	window[id+"_so"] = new SWFObject("templates/IPUB/flash/button.swf", id+"_flash", "126", "150", "8", "#A8A8A8");
	//so.addParam('wmode', 'transparent');
	window[id+"_so"].addVariable('buttontitle', titleNode.innerHTML);
	window[id+"_so"].addVariable('buttontext', textNode.innerHTML);
	window[id+"_so"].addVariable('buttonlink', linkNode.childNodes[0].href);
	window[id+"_so"].useExpressInstall('media/js/swfobject/expressinstall.swf');
	window[id+"_so"].write(id);
	
}
addLoadEvent(setup);

function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\\\s)" + className + "(\\\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

function Querystring(qs) { // optionally pass a querystring to parse
	this.params = {};
	
	if (qs == null) qs = location.search.substring(1, location.search.length);
	if (qs.length == 0) return;

// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&'); // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i = 0; i < args.length; i++) {
		var pair = args[i].split('=');
		var name = decodeURIComponent(pair[0]);
		
		var value = (pair.length==2)
			? decodeURIComponent(pair[1])
			: name;
		
		this.params[name] = value;
	}
}

Querystring.prototype.get = function(key, default_) {
	var value = this.params[key];
	return (value != null) ? value : default_;
}

Querystring.prototype.contains = function(key) {
	var value = this.params[key];
	return (value != null);
}
