// Javascript Slideshow - Jeff Davis / Gundog Central

var xmlhttp = false;
try
{
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}   catch (e)
{
    try
    {
        xmlhttp = new ActivexObject("Microsoft.XMLHTTP")
    }   catch (E)
    {
        xmlhttp = false;
    }
}
			
if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
{
    xmlhttp = new XMLHttpRequest();
}
        
function getPhoto(pageID)
{
    page = "functions/get_pictures.php?pageID="+pageID;
    xmlhttp.open("GET", page, true);
    xmlhttp.onreadystatechange = function()
    {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200 && xmlhttp.responseXML!=null)
        {
            var items = [];
            var rsp = xmlhttp.responseXML.getElementsByTagName( 'photo' );
            for( var i = 0; i < rsp.length; i++ )
            {
                var pic = rsp.item( i );
                var id = parseInt( pic.getAttribute( 'id' ).toString() );
                var src = pic.getAttribute( 'src' ).toString();
                var width = parseInt( pic.getAttribute( 'width' ).toString() );
                var height = parseInt( pic.getAttribute( 'height' ).toString() );
                items.push( { id: id, src: src, width: width, height: height} );
            }
            init_slides ( items );
        }
    }
    xmlhttp.send("");
}

function init_slides(images)
{
    var current_slide = 0;
    create_new_image(images, current_slide, 0);
}

function create_new_image(images, current_slide, cache)
{
    // Check Image Container Exist, if not create.
    if(document.getElementById("gallery") == null )
    {
        var image_container = document.createElement("img");
    }
    else
    {
	var image_container = document.getElementById("gallery");
    }
    
    if(document.getElementById("cache")  == null )
    {
        var nImage_contatiner = document.createElement("img");
    }
    else
    {
	var nImage_contatiner = document.getElementById("cache");
    }
    
    var container = document.getElementById("pictureContainer");
    var opacity = 0;
    var scriptState = 0;
    var next_slide = current_slide+1;
    var img = images[current_slide];
    var num_of_slides = images.length;
    container.style.height = img.height+"px";
    container.style.width = img.width+"px";
    
    ///Add Image to Canvas
    image_container.id = "gallery"
    image_container.src = img.src;
    image_container.width = img.width;
    image_container.height = img.height;
    image_container.style.opacity = opacity;
    image_container.style.visibility = "hidden";
    container.appendChild( image_container );
    
    if ( cache == 1 && num_of_slides > 1 )
        {
        for( next_slide; next_slide < num_of_slides; next_slide++)
        {
            var next_img = images[next_slide];
            
            // Try to preload Image on hidden canvas
            nImage_contatiner.style.position = 'absolute';
            nImage_contatiner.style.left = '0px';
            nImage_contatiner.style.top = '0px';
            nImage_contatiner.id = "cache"
            nImage_contatiner.src = next_img.src;
            nImage_contatiner.style.opacity = opacity;
            nImage_contatiner.style.visibility = "hidden";
            container.appendChild( nImage_contatiner );
        }
    }
    if(num_of_slides>1)
    {
	display_image(images, image_container, opacity, current_slide, scriptState);
    }
    else
    {
	image_container.style.visibility = "visible";
	image_container.style.opacity = 100;
    }
}

function display_image(images, image_container, opacity, current_slide, scriptState)
{
    if(scriptState == 0)
    {
        opacity++;
        if(opacity<100)
        {
            setTimeout(function() { set_opacity(images, image_container, opacity, current_slide, scriptState) }, 30);
        }
        else
        {
            scriptState = 1;
        }
    }
    if(scriptState==1)
    {
        var container = document.getElementById("pictureContainer");
        container.style.backgroundImage = "url('"+images[current_slide].src+"')";
	container.style.backgroundRepeat = 'no-repeat';
        current_slide++;
        if( current_slide > (images.length-1) )
        {
            current_slide=0;
        }
        setTimeout(function() { create_new_image(images, current_slide, 0) }, 2000);
    }
}

function set_opacity(images, image_container, opacity, current_slide, scriptState)
{
    image_container.style.visibility = "visible";
    image_container.style.filter = 'alpha(opacity=' + opacity + ')';
    image_container.style.opacity = (opacity / 100);
    image_container.style.MozOpacity = (opacity / 100);
    image_container.style.KhtmlOpacity = (opacity / 100);
    display_image(images, image_container, opacity, current_slide, scriptState);
}
