﻿// Copyright 2010 - Astral Softworks, LLC

// Preload an array of image URLs
function Preload(imgs)
{
    for (var i = 0; i < imgs.length; i++) 
    {
        var nextImage = new Image();
        nextImage.src = imgs[i];
    }
}

// Slideshow
function Slideshow(div)
{
    this.div = div;
    var slides = new Array();
    var slidesDiv = null;
    var mainDiv = null;
    var slideIndex = -1;
    var clicked = false;
    var activeSlide = null;
    
    var Initialize = function()
    {
        this.width = div.clientWidth;
        this.height = div.clientHeight;
        
        slidesDiv = document.createElement("div");
        slidesDiv.className = "slideIndex";
        
        mainDiv = document.createElement("div");
        mainDiv.className = "slideView"
        
        div.appendChild(slidesDiv);
        div.appendChild(mainDiv);
    };
    Initialize();
    
    var OnImageClick = function(e)
    {
        clicked = true;
    
        if(e.target)
        {
            ViewSlide(e.target);
        }
        else
        {
            ViewSlide(e.srcElement);
        }
    };
        
    var ViewSlide = function(img)
    {    
        if(activeSlide != null)
        {
            activeSlide.className = "slide";
        }
    
        while(mainDiv.childNodes.length > 0)
        {
            mainDiv.removeChild(mainDiv.childNodes[0]);
        }
        
        var viewElement = new Image();
        viewElement.src = img.src;
        viewElement.alt = img.alt;
        viewElement.title = img.title;
        
        var title = document.createElement("div");
        title.className = "slideCaption";
        title.innerHTML = viewElement.title;

        mainDiv.appendChild(title);
        mainDiv.appendChild(viewElement);
        
        slideIndex = img.slideIndex;
        activeSlide = img;
        activeSlide.className = "active_slide";
    };
    
    Slideshow.prototype.NextSlide = function()
    {
        if(!clicked)
        {
            ViewSlide(slides[(slideIndex + 1) % slides.length]);
        }
        else
        {
            clicked = false;
        }
    };
        
    Slideshow.prototype.AddSlide = function(img)
    {
        slides.push(img);
        img.slideIndex = slides.length - 1;
           
        slidesDiv.appendChild(img);
    
        if(img.addEventListener)
        {
            img.addEventListener("click", OnImageClick, false);
        }
        else if(img.attachEvent)
        {
            img.attachEvent("onclick", OnImageClick);
        }
        else
        {
            img.onclick = OnImageClick;
        }
    }
}




