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 = 3000;
                        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: 250});
                                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();
                        }
                }
        }
