//******************
//* ImgSwapCrossFade
//* I combined these scripts because loadNewImageToSwapCrossFade would 
//* something throw a ReferenceError: loadNewImageToSwapCrossFade is not defined
//******************
var cfFADE_RESOLUTION = 30;
var cfSTART_COUNTER = 1;

function initImgSwapCrossFade() 
{    
    this.cfdivContainerID = 'mainPictureDivID';
    this.cfmainPictureImgID = 'mainPictureImgID';
    this.cffirstSwap = true;
    this.cfcurrentCounter = cfSTART_COUNTER; 
    this.cfnewImage = null;
    this.cforginalImage = null;
}

function loadNewImageToSwapCrossFade(imagePath, imageDesc)
{
    this.cforginalImage = document.getElementById(this.cfmainPictureImgID);
    this.cfnewImage = document.getElementById(this.cfdivContainerID).appendChild(document.createElement('img'));
    this.cfnewImage.style.visibility = 'hidden';
    this.cfnewImage.style.position = 'absolute';
    this.cfnewImage.src = imagePath;
    this.cfnewImage.alt = imageDesc;    
    
    if (this.cffirstSwap)
    {
        this.cffirstSwap = false;
        cfswapMainPicture();
    }
    else
    {
        this.cfcurrentCounter = cfSTART_COUNTER;
	    swapCrossFade();
    }
}

function swapCrossFade()
{   
    this.cfnewImage.style.top = getposOffset(this.cforginalImage, 'top') + 'px';
    this.cfnewImage.style.left = getposOffset(this.cforginalImage, 'left') + 'px';
    this.cfnewImage.style.visibility = 'visible';
    this.cfnewImage.style.zIndex = 0;
        
    newOpacity = this.cfcurrentCounter * (1 / cfFADE_RESOLUTION);
    
    setOpacity(this.cforginalImage, 1 - newOpacity);
    setOpacity(this.cfnewImage, newOpacity);
    
    this.cfcurrentCounter++;
    
    if (this.cfcurrentCounter <= cfFADE_RESOLUTION)
    {
        setTimeout("swapCrossFade()", 50);
    }
    else
    {
        cfswapMainPicture();
    }
}

function cfswapMainPicture()
{
    mainPictureDiv = document.getElementById(this.cfdivContainerID);
    
    mainPictureDiv.innerHTML = '<img src=\"' + this.cfnewImage.src + '\"' +
                                    'alt=\"' + this.cfnewImage.alt + '\"' +
                                    'id=\"' + this.cfmainPictureImgID + '\"' +
                                    'border=0 style=\"filter:alpha(opacity=100); -moz-opacity:.999;\" />';
    this.cfnewImage = null;
    this.cforginalImage = null;
}

function getposOffset(obj, offsetType)
{
    totalOffset = 0;
    if (offsetType=="left")
    {
        totalOffset = obj.offsetLeft;
    }
    else
    {
        totalOffset = obj.offsetTop;
    }
    
    objParentElement = obj.offsetParent;
    while (objParentElement != null)
    {
        if (offsetType=="left")
        {
            totalOffset = totalOffset + objParentElement.offsetLeft;
        }
        else
        {
            totalOffset = totalOffset + objParentElement.offsetTop;
        }

        objParentElement = objParentElement.offsetParent;
    }
    
    return totalOffset;
}

//****************
//* SlideShow
//****************
var slideShowImageIndex = 0;
var ps = '';

function initMainPicture(psId)
{
    ps = psId;
    initImgSwapCrossFade();
    nextImage();
}

function nextImage()
{
    currentPage = getCurrentPage(false);
    
    url = 'slideShow.php';
    myRequest = new ajaxObject(url);
    
    myRequest.callback = function(responseText, status, responseXml) 
        {
            imagePath = responseXml.getElementsByTagName('imagePath').item(0).firstChild.nodeValue;
            imageDesc = responseXml.getElementsByTagName('imageDesc').item(0).firstChild.nodeValue;
            reloadPeriod = responseXml.getElementsByTagName('reloadPeriod').item(0).firstChild.nodeValue;
            slideShowImageIndex = responseXml.getElementsByTagName('slideShowImageIndex').item(0).firstChild.nodeValue;

            loadNewImageToSwapCrossFade(imagePath, imageDesc);
            
            imagePreload = new Image();
            imagePreload = imagePath;

            if(reloadPeriod > 0)
            {
                setTimeout("nextImage()", parseInt(reloadPeriod));
            }
        }
    
    myRequest.update('id=' + currentPage + '&slideShowImageIndex=' + slideShowImageIndex + '&ps=' + ps);
}

function loadImage(xmlImageInfo)
{
    imagePath = xmlImageInfo.getElementsByTagName('imagePath').item(0).firstChild.nodeValue;
    imageDesc = xmlImageInfo.getElementsByTagName('imageDesc').item(0).firstChild.nodeValue;
    reloadPeriod = xmlImageInfo.getElementsByTagName('reloadPeriod').item(0).firstChild.nodeValue;
    slideShowImageIndex = xmlImageInfo.getElementsByTagName('slideShowImageIndex').item(0).firstChild.nodeValue;
    
    loadNewImageToSwapCrossFade(imagePath, imageDesc);
    
    imagePreload = new Image();
    imagePreload = imagePath;

    if(reloadPeriod > 0)
    {
        setTimeout("nextImage()", parseInt(reloadPeriod));
    }
}