var timedSlideShow = Class.create();

	timedSlideShow.prototype = {

		initialize: function(element, data) {

			this.currentIter = 0;

			this.lastIter = 0;

			this.maxIter = 0;

			this.slideShowElement = element;

			this.slideShowData = data;

			this.slideShowInit = 1;

			this.slideElements = Array();

			this.slideShowDelay = 6000;

			this.articleLink = "";

			this.slideInfoZone = "";

			element.style.display="block";

			this.articleLink = document.createElement('a');

			this.articleLink.className = 'global';

			element.appendChild(this.articleLink);

			this.articleLink.href = "";

			this.maxIter = data.length;

			for(i=0;i<data.length;i++)

			{

				var currentImg = document.createElement('div');

				currentImg.className = "slideElement";

				currentImg.style.position="absolute";

				currentImg.style.left="0px";

				currentImg.style.top="0px";

				currentImg.style.margin="0px";

				currentImg.style.border="0px";

				currentImg.style.backgroundImage="url('" + data[i][0] + "')";

				currentImg.style.backgroundPosition="center center";

				this.articleLink.appendChild(currentImg);

				currentImg.currentOpacity = new fx.Opacity(currentImg, {duration: 600});

				currentImg.currentOpacity.set(0);

				this.slideElements[parseInt(i)] = currentImg;

			}

			this.loadingElement = document.createElement('div');

			this.loadingElement.className = 'loadingElement';

			this.articleLink.appendChild(this.loadingElement);

			this.slideInfoZone = document.createElement('div');

			this.slideInfoZone.className = 'slideInfoZone';

			this.articleLink.appendChild(this.slideInfoZone);

			this.slideInfoZone.style.opacity = 0;

			this.doSlideShow();

		},

		startSlideShow: function() {

			this.loadingElement.style.display = "none";

			this.lastIter = this.maxIter - 1;

			this.currentIter = 0;

			this.slideShowInit = 0;

			this.slideElements[parseInt(this.currentIter)].currentOpacity.set(1);

			setTimeout(this.showInfoSlideShow.bind(this),0);

			setTimeout(this.hideInfoSlideShow.bind(this),this.slideShowDelay-100);

			setTimeout(this.nextSlideShow.bind(this),this.slideShowDelay);

		},

		nextSlideShow: function() {

			this.lastIter = this.currentIter;

			this.currentIter++;

			if (this.currentIter >= this.maxIter)

			{

				this.currentIter = 0;

				this.lastIter = this.maxIter - 1;

			}

			this.slideShowInit = 0;

			this.doSlideShow.bind(this)();

		},

		doSlideShow: function() {

			if (this.slideShowInit == 1)

			{

				imgPreloader = new Image();

				imgPreloader.onload=function(){

					setTimeout(this.startSlideShow.bind(this),10);

				}.bind(this);

				imgPreloader.src = this.slideShowData[0][0];

			} else {

				if (this.currentIter != 0) {

					this.slideElements[parseInt(this.currentIter)].currentOpacity.options.onComplete = function() {

						this.slideElements[parseInt(this.lastIter)].currentOpacity.set(0);

					}.bind(this);

					this.slideElements[parseInt(this.currentIter)].currentOpacity.custom(0, 1);

				} else {

					this.slideElements[parseInt(this.currentIter)].currentOpacity.set(1);

					this.slideElements[parseInt(this.lastIter)].currentOpacity.custom(1, 0);

				}

				setTimeout(this.showInfoSlideShow.bind(this),100);

				setTimeout(this.hideInfoSlideShow.bind(this),this.slideShowDelay-100);

				setTimeout(this.nextSlideShow.bind(this),this.slideShowDelay);

			}

		},

		showInfoSlideShow: function() {

			this.articleLink.removeChild(this.slideInfoZone);

			this.slideInfoZone = document.createElement('div');

			this.slideInfoZone.styles = new fx.Styles(this.slideInfoZone);

			this.slideInfoZone.style.visibility = "hidden";

			var slideInfoZoneTitle = document.createElement('h2');

			slideInfoZoneTitle.innerHTML = this.slideShowData[this.currentIter][2]

			this.slideInfoZone.appendChild(slideInfoZoneTitle);

			var slideInfoZoneDescription = document.createElement('p');

			slideInfoZoneDescription.innerHTML = this.slideShowData[this.currentIter][3];

			this.slideInfoZone.appendChild(slideInfoZoneDescription);

			this.articleLink.appendChild(this.slideInfoZone);

			this.articleLink.href = this.slideShowData[this.currentIter][1];

			this.articleLink.target = this.slideShowData[this.currentIter][4];

			this.articleLink.onmouseover = function(){window.status = ''; return true;};

			this.slideInfoZone.className = 'slideInfoZone';

			this.slideInfoZone.normalHeight = this.slideInfoZone.offsetHeight;

			this.slideInfoZone.styles.custom({'opacity': [0, 0.7], 'height': [0, this.slideInfoZone.normalHeight]});

		},

		hideInfoSlideShow: function() {

			this.slideInfoZone.styles.custom({'opacity': [0.7, 0]});

		}

	};

	function addLoadEvent(func) {

		var oldonload = window.onload;

		if (typeof window.onload != 'function') {

			window.onload = func;

		} else {

			window.onload = function() {

				oldonload();

				func();

			}

		}

	}
