/*
This file is part of JonDesign's SmoothSlideshow v2.0.
It's free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
You should have received a copy of the GNU General Public License along with Foobar; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
Main Developer: Jonathan Schemoul (JonDesign: http://www.jondesign.net/) Contributed code by:- Christian Ehret (bugfix) - Simon Willison (addLoadEvent)
*/
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 = 1500; // was 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: 900});// was 400
currentImg.setStyle('opacity',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();
	},
destroySlideShow: function(element){var myClassName = element.className;var newElement = document.createElement('div');newElement.className = myClassName;element.parentNode.replaceChild(newElement, element);},
startSlideShow: function() {
this.loadingElement.style.display = "none";
this.lastIter = this.maxIter - 1;
this.currentIter = 0;
this.slideShowInit = 0;
this.slideElements[parseInt(this.currentIter)].setStyle('opacity', 1);
setTimeout(this.showInfoSlideShow.bind(this),1000);
setTimeout(this.hideInfoSlideShow.bind(this),this.slideShowDelay-1000);
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();
// once image is preloaded, start slideshow
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)].setStyle('opacity',0);
}.bind(this);
this.slideElements[parseInt(this.currentIter)].currentOpacity.custom(0, 1);
} else {
this.slideElements[parseInt(this.currentIter)].setStyle('opacity',1);
this.slideElements[parseInt(this.lastIter)].currentOpacity.custom(1, 0);
}
setTimeout(this.showInfoSlideShow.bind(this),1000);
setTimeout(this.hideInfoSlideShow.bind(this),this.slideShowDelay-1000);
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.setStyle('opacity',0);
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.slideInfoZone.className = 'slideInfoZone';
this.slideInfoZone.normalHeight = this.slideInfoZone.getStyle('height', true).toInt();
this.slideInfoZone.styles.custom({'opacity': [0, 0.7], 'height': [0, this.slideInfoZone.normalHeight]});
},
hideInfoSlideShow: function() {
//this.slideInfoZone.styles.custom({'opacity': [0.7, 0]});
}};
function initTimedSlideShow(element, data) {var slideshow = new timedSlideShow(element, data);}
function addLoadEvent(func) {	var oldonload = window.onload;if (typeof window.onload != 'function') {
window.onload = func;
} else {window.onload = function() {oldonload();func();}}}
