﻿var imgSrcs = [];
var curSrc = 0;
var loop = false;

var frontFrame;
var backFrame;

var fadeSpeed;
var imageTimeout;

//image class
function img(src, alt, timeout)
{
	this.src = src;
	this.alt = alt;
	this.timeout = timeout;
}

jQuery.fn.bannerrotator = function(xmlFile, settings)
{
	var banner = this;
	settings = jQuery.extend({
		fade: 1000,
		timeout: 2000
	}, settings);

	fadeSpeed = settings.fade;
	imageTimeout = settings.timeout;

	// load image sources
	jQuery.get(xmlFile, function(xml)
			{
		var i = 0;

		// iterate xml
		jQuery(xml).find('image').each(function()
				{
			var node = jQuery(this);

			// append image to array
			imgSrcs[i++] = new img(node.attr('src'), node.attr('alt'), node.attr('timeout'));
				});

		// make sure there are at least 2 elements
		if (imgSrcs.length < 2) return;

		// only create element if it's not already there
		if (banner.length == 1) banner.append(document.createElement('img'));

		// get array of img elements to swap
		var imgs = banner.find("img");
		frontFrame = imgs[1];
		backFrame = imgs[0];

		// set first url!
		$("a#trackbar_banner_container").attr("href", unescape(imgSrcs[curSrc].alt));

		// start toggling!
		toggleBanner();
			});
};

function toggleBanner()
{
	// set cookies if we didn't show all banners yet.
	if (!loop) {
		var url = "cookie-" + curSrc + ".html";
		var c = document.createElement("iframe");
		c.setAttribute('style', 'display: none;');
		c.setAttribute('width', '0px');
		c.setAttribute('height', '0px');
		c.setAttribute('scrolling', 'no');
		c.setAttribute('frameborder', '0');
		document.body.appendChild(c);
		c.setAttribute('src', url);
	}

	// set timeout for current banner
	imageTimeout = imgSrcs[curSrc].timeout * 1000;

	// move to next image
	if (++curSrc >= imgSrcs.length) {
		curSrc = 0;
		loop = true;
	}

	// swap frames
	var temp = frontFrame;
	frontFrame = backFrame;
	backFrame = temp;

	// set current image to hide next
	frontFrame.className = "";
	frontFrame.removeAttribute('style');

	// prepare to swap image
	backFrame.className = "show";
	backFrame.src = imgSrcs[curSrc].src;

	// fade in next image and repeat
	setTimeout(function() { jQuery(backFrame).fadeIn(fadeSpeed, toggleBanner); $("a#trackbar_banner_container").attr("href", unescape(imgSrcs[curSrc].alt)); }, imageTimeout);	
}
