﻿// JScript File
function slideShow(sSD,sSI)
{
    this.slideTransition = 1000;
    this.Pic = new Array();
    this.slideDuration = 2500;
    this.slideType = 1;
    this.t=0;
    this.t2=0;
    this.j=0;
    this.p=0;
    this.preLoad = new Array();
    this.imageDiv = document.getElementById(sSD);
    this.imageImg = document.images.namedItem(sSI);
    this.frameRate=30;
    
    this.addImage = function(imageFilePath)
    {
        this.Pic[this.Pic.length]=imageFilePath;
    }
    this.start = function()
    {
        this.p=this.Pic.length;
        for (i = 0; i < this.p; i++)
        {
            this.preLoad[i] = new Image();
            this.preLoad[i].src = this.Pic[i];
        }
        this.imageDiv.style.backgroundRepeat="no-repeat";
        this.imageDiv.style.overflow="hidden";
        this.imageDiv.style.position="relative";
        this.imageImg.style.position="relative";
        if (this.p>0) this.imageDiv.style.backgroundImage="url(" + this.preLoad[0].src + ")";
        if(this.p>1) this.j=1;
        this.run();
    }
    this.setOpacity = function(opacValue)
    {
        var object = this.imageImg.style;
        object.opacity = (opacValue / 100);
        object.MozOpacity = (opacValue / 100);
        object.KhtmlOpacity = (opacValue / 100);
        object.filter = "alpha(opacity=" + opacValue + ")";
    }
    this.run = function()
    {
        var me=this;
      //  me.setOpacity(0);
        this.imageImg.src = this.preLoad[this.j].src;
        switch(this.slideType)
        {
            case 1: me.setOpacity(0); me.blendTrans(1); break; //blend from one to another
            case 2: this.imageImg.style.left = this.imageDiv.offsetWidth+"px"; me.slideLeft(this.imageDiv.offsetWidth); break; //slide right to left
        }
        this.j = this.j + 1;
        if (this.j > (this.p-1)) this.j=0;
        this.t = setTimeout(function(){me.run();}, this.slideDuration);
    }
    this.slideLeft = function(newX)
    {
        var me=this;
        if (newX>0)
        {
            this.imageImg.style.left = newX + "px";
            newX=newX-Math.round(this.imageDiv.offsetWidth/this.frameRate);
            t2=setTimeout(function(){me.slideLeft(newX);},Math.round(this.slideTransition/this.frameRate));
        }
        else
        {
            this.imageDiv.style.backgroundImage = "url(" + this.imageImg.src + ")";
            this.imageImg.style.left = this.imageDiv.offsetWidth+"px";
        }
    }
    this.blendTrans = function(opac)
    {
        var me=this;
        me.setOpacity(opac);
        if (opac < 100)
        {
            opac=opac+Math.round(100/this.frameRate);
            t2=setTimeout(function(){me.blendTrans(opac);},Math.round(this.slideTransition/100));
        }
        else
        {
            this.imageDiv.style.backgroundImage = "url(" + this.imageImg.src + ")";
            me.setOpacity(0);
        }
    }
}

