﻿// -----------------------------------------------
//   --->   Ultimate Javascript Slideshow   <---
//   --->   Author: Znupi                   <---
//   --->   Contact: znupi69@gmail.com      <---
// -----------------------------------------------
var curIndex = 0;
var curOpc = 1;
var totalImgs = 0;
var sID = "";
var pause = 2;
var delay = 50;
var step = 0.05;
var preLoadObjs = new Array();
var images = new Array();

var oDiv = null;
var oHref = null;
var oImg = null;

var currentTimeout = 0;
var isPaused = false;

function doSlide() {
    curOpc -= step;
    oImg.style.opacity = curOpc;
    if (window.ActiveXObject) oImg.style.filter = "alpha (opacity=" + (curOpc*100) + ")";
    
    if (curOpc > 0 && !isPaused) 
        currentTimeout = window.setTimeout(doSlide, delay);
    else 
    {
        changeImgs();
        if (!isPaused)
            currentTimeout = window.setTimeout(doSlide, pause * 1000);
    }
}

function changeImgs() {
    oImg.src = preLoadObjs[curIndex].src;
    setImgAttribute(oHref, "href", images[curIndex][1]);
    setImgAttribute(oImg, "alt", images[curIndex][2]);
    curOpc = 1;
    oImg.style.opacity = curOpc;
    if (window.ActiveXObject) oImg.style.filter = "alpha (opacity=" + (curOpc*100) + ")";
    
	if (curIndex < images.length-1) curIndex++;
	else curIndex = 0;
	if (preLoadObjs.length < totalImgs) 
    {
        preLoadObjs[curIndex] = new Image();
        preLoadObjs[curIndex].src = images[curIndex][0];
    }
            
    oDiv.style.backgroundImage = "url('" + preLoadObjs[curIndex].src + "')";
}

function setImgAttribute(obj, attribute, url)
{
    if (url != "")
    {
        obj.setAttribute(attribute, url);        
    }
    else
    {
        if (obj.getAttribute(attribute))
            obj.removeAttribute(attribute);
    }
}


function slideshow(slideImages, slideID, slidePause, slideDelay, slideStep) 
{	
    sID = slideID;
    images = slideImages;
    pause = slidePause;
    delay = slideDelay;
    step = slideStep;
    
    totalImgs = images.length;
	oDiv = document.getElementById(sID);
	oHref = oDiv.getElementsByTagName("a")[0];
	oImg = oHref.getElementsByTagName("img")[0];
	
	if (totalImgs > 1)
	{
	    preLoadObjs[0] = new Image();
	    preLoadObjs[0].src = images[0][0];
	    preLoadObjs[1] = new Image();
	    preLoadObjs[1].src = images[1][0];
    	
    	setImgAttribute(oHref, "href", images[curIndex][1]);
    	setImgAttribute(oImg, "alt", images[curIndex][2]);
	    oImg.src = preLoadObjs[0].src;
	    curOpc = 1;
	    oImg.style.opacity = curOpc;
	    if (window.ActiveXObject) oImg.style.filter = "alpha (opacity=" + (curOpc*100) + ")";
    	
	    curIndex++;
	    oDiv.style.backgroundImage = "url('" + preLoadObjs[1].src + "')";
	    currentTimeout = window.setTimeout("doSlide()", pause * 1000);
    }
}

function pauseSlideshow() 
{
    isPaused = !isPaused;
    if (!isPaused)
        currentTimeout = window.setTimeout("doSlide()", pause * 1000);
    else
        clearTimeout(currentTimeout);
}