var showcaseSlideShow = Class.create();
showcaseSlideShow.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();
		element.style.display="block";
		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";
			element.appendChild(currentImg);
			currentImg.currentOpacity = new fx.Opacity(currentImg, {duration: 500});
			currentImg.setStyle('opacity',0);
			this.slideElements[parseInt(i)] = currentImg;
		}
		if (data.length>1)
		{
			var leftArrow = document.createElement('a');
			leftArrow.className = 'left';
			leftArrow.onclick = this.pushPrevSlideShow.bind(this);
			element.appendChild(leftArrow);
			var rightArrow = document.createElement('a');
			rightArrow.className = 'right';
			rightArrow.onclick = this.pushNextSlideShow.bind(this);
			element.appendChild(rightArrow);
		}
		currentImg.currentOpacity = new fx.Opacity(currentImg, {duration: 400});
		currentImg.setStyle('opacity',0);
		this.loadingElement = document.createElement('div');
		this.loadingElement.className = 'loadingElement';
		element.appendChild(this.loadingElement);
		this.doSlideShow(1);
	},
	destroySlideShow: function(element) {
		var myClassName = element.className;
		var newElement = document.createElement('div');
		newElement.className = myClassName;
		element.parentNode.replaceChild(newElement, element);
	},
	pushNextSlideShow: function() {
		setTimeout(this.nextSlideShow.bind(this),500);
	},
	pushPrevSlideShow: function() {
		setTimeout(this.prevSlideShow.bind(this),500);
	},
	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);
	},
	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)(1);
	},
	prevSlideShow: function() {
		this.lastIter = this.currentIter;
		this.currentIter--;
		if (this.currentIter <= -1)
		{
			this.currentIter = this.maxIter - 1;
			this.lastIter = 0;
		}
		this.slideShowInit = 0;
		this.doSlideShow.bind(this)(2);
	},
	doSlideShow: function(position) {
		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 (position == 1)
			{
				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);
				}
			} else {
				if (this.currentIter != this.maxIter - 1) {
					this.slideElements[parseInt(this.currentIter)].setStyle('opacity',1);
					this.slideElements[parseInt(this.lastIter)].currentOpacity.custom(1, 0);
				} else {
					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);
				}
			}
		}
	},
	goTo: function(num) {
		this.currentIter = num;
		if (num == 0) this.lastIter = this.maxIter-1;
		else this.lastIter = num-1;
		this.slideShowInit = 0;
		for(i=0;i<this.maxIter;i++)
		{
			this.slideElements[i].currentOpacity.setOpacity(0);
		}
		this.doSlideShow.bind(this)();
	}
};
function initShowcaseSlideShow(element, data) {
	var slideshow = new showcaseSlideShow(element, data);
	return slideshow;
}
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}
function mySlideData2(){
	var countArticle = 0;
	var mySlideData = new Array();
	mySlideData[countArticle++] = new Array(
		'handara1.jpg',
		'#',
		'Item 1 Title',
		'Item 1 Description...'
	);
	mySlideData[countArticle++] = new Array(
		'handara2.jpg',
		'#',
		'Item 2 Title',
		'Item 2 Description...'
	);
	mySlideData[countArticle++] = new Array(
		'handara3.jpg',
		'#',
		'Item 3 Title',
		'Item 3 Description...'
	);
	mySlideData[countArticle++] = new Array(
		'handara4.jpg',
		'#',
		'Item 4 Title',
		'Item 4 Description...'
	);
	mySlideData[countArticle++] = new Array(
		'handara5.jpg',
		'#',
		'Item 5 Title',
		'Item 5 Description...'
	);

	return mySlideData;
}

function mySlideData3(){
	var countArticle = 0;
	var mySlideData = new Array();
	mySlideData[countArticle++] = new Array(
		'bfw1.jpg',
		'#',
		'Item 1 Title',
		'Item 1 Description...'
	);
	mySlideData[countArticle++] = new Array(
		'bfw2.jpg',
		'#',
		'Item 2 Title',
		'Item 2 Description...'
	);
	mySlideData[countArticle++] = new Array(
		'bfw3.jpg',
		'#',
		'Item 3 Title',
		'Item 3 Description...'
	);
	mySlideData[countArticle++] = new Array(
		'bfw4.jpg',
		'#',
		'Item 4 Title',
		'Item 4 Description...'
	);
	mySlideData[countArticle++] = new Array(
		'bfw5.jpg',
		'#',
		'Item 5 Title',
		'Item 5 Description...'
	);

	return mySlideData;
}

function mySlideData4(){
	var countArticle = 0;
	var mySlideData = new Array();
	mySlideData[countArticle++] = new Array(
		'XL1.jpg',
		'#',
		'Item 1 Title',
		'Item 1 Description...'
	);
	mySlideData[countArticle++] = new Array(
		'XL2.jpg',
		'#',
		'Item 2 Title',
		'Item 2 Description...'
	);
	mySlideData[countArticle++] = new Array(
		'XL3.jpg',
		'#',
		'Item 3 Title',
		'Item 3 Description...'
	);
	mySlideData[countArticle++] = new Array(
		'XL4.jpg',
		'#',
		'Item 4 Title',
		'Item 4 Description...'
	);
	mySlideData[countArticle++] = new Array(
		'XL5.jpg',
		'#',
		'Item 5 Title',
		'Item 5 Description...'
	);

	return mySlideData;
}

function mySlideData1(){
	var countArticle = 0;
	var mySlideData = new Array();
	mySlideData[countArticle++] = new Array(
		'NIKKO1.jpg',
		'#',
		'Item 1 Title',
		'Item 1 Description...'
	);
	mySlideData[countArticle++] = new Array(
		'NIKKO2.jpg',
		'#',
		'Item 2 Title',
		'Item 2 Description...'
	);
	mySlideData[countArticle++] = new Array(
		'NIKKO3.jpg',
		'#',
		'Item 3 Title',
		'Item 3 Description...'
	);
	mySlideData[countArticle++] = new Array(
		'NIKKO4.jpg',
		'#',
		'Item 4 Title',
		'Item 4 Description...'
	);
	mySlideData[countArticle++] = new Array(
		'NIKKO5.jpg',
		'#',
		'Item 5 Title',
		'Item 5 Description...'
	);

	return mySlideData;
}

