﻿// Thumbnailer javascript functions

/*
    revised library to go with new thumbnailer control
*/


var baseDirectory = "http://www.bikebuyersguide.ie/Photos/";

var thumbSizePath =     baseDirectory + "55x37/";
var regularSizePath =   baseDirectory + "341x230/";
var superSizePath =     baseDirectory + "640x480/";
var slideShowEnabled = true;
var preloadingComplete = false;
var currentSlideShowImageIndex = 0;
var currentlySelectedCellId = "";

var totalImages = 0; 
var preloadedCurrentTotal = 0;
var preloadImageArray = null;

var imageList = new Array;
var imageNamesList = new Array;

function init(basePath,thumbdir,defaultDir,largeDir,selectedImageIndex)
{
    baseDirectory =     basePath;    
    thumbSizePath =     thumbdir;
    regularSizePath =   defaultDir;
    superSizePath =     largeDir;
    currentSlideShowImageIndex = selectedImageIndex;


    //Seán
    //document.getElementById("hiddenimage").src = selectedImageIndex.src;
    //alert(document.getElementById('hiddenImage').src);
}

function setSlideShowEnabled(enabled)
{
    slideShowEnabled = enabled;
}

function startSlideShow()
{
    if (preloadingComplete)
    {
        if (!slideShowEnabled)
        {
            slideShowEnabled = true;
            runSlideShow(currentSlideShowImageIndex);
        }
        else
        {
             stopSlideShow();
        }
    }
}

function setPlayOrPauseButton(buttonName,playImageUrl,pauseImageUrl)
{
    if (preloadingComplete)
    {
        button = document.getElementById(buttonName);
        if (button != null)
        {
            if(slideShowEnabled)
            { button.src = pauseImageUrl; } 
            else
            { button.src = playImageUrl; }            
        }
    }
}

function setPlayButton(buttonName,playImageUrl)
{
    button = document.getElementById(buttonName);
    if (button != null)
    {
        button.src = playImageUrl;
    }
}

function stopSlideShow()
{
    slideShowEnabled = false;
}

function nextImageInSlideShow()
{
    currentSlideShowImageIndex++;
    if (currentSlideShowImageIndex >= totalImages)
    {
        currentSlideShowImageIndex = 0;
    }
    setSelectedTD(currentSlideShowImageIndex);
    switchPreLoadedImage(currentSlideShowImageIndex)
}

function previousImageInSlideShow()
{
    currentSlideShowImageIndex--;
    if (currentSlideShowImageIndex <= -1)
    {
        currentSlideShowImageIndex = totalImages-1;
    }
    setSelectedTD(currentSlideShowImageIndex);
    switchPreLoadedImage(currentSlideShowImageIndex);
}

function switchPreLoadedImage(index)
{    
    //had fun with code concurrency issues while trying to protect against switching to a not-yet-preloaded
    //image

    if (preloadingComplete)
    {
        if (index <= preloadedCurrentTotal)
        {
            setSelectedTD(index);
            currentSlideShowImageIndex = index;    
            mainImage = document.getElementById("MainPhoto");
            mainImage.src = imageList[index].src;   
            
            if(document.getElementById("hiddenImage"))
            {    
                document.getElementById("hiddenImage").value = imageList[index].src;        
            }
        }
    
    }
    
}

function switchColourImage(index, colourName, colourPrice)
{
    if (preloadingComplete)
    {
        mainImage = document.getElementById("MainPhoto");
        mainImage.src = imageList[index].src;   
        
        if(document.getElementById("hiddenImage"))
        {        
            document.getElementById("hiddenImage").value = imageList[index].src;
            document.getElementById("hiddenPaintPrice").value = colourPrice;
            document.getElementById("hiddenPaintColour").value = colourName;
            
            //alert("hiddenImage.value = " + document.getElementById('hiddenImage').value);
        } 
    }
}

function setSelectedTD(index)
{
    var output = "";
    for (i = 0; i < totalImages; i++)
    {
        var image = "img" + i;       
        var currentTD = document.getElementById(image);        
        if (currentTD != null)
        {
            currentTD.className = "defaultTD";            
        }        
    }    
    currentlySelectedCellId = "img" + index; 
    var currentTD = document.getElementById(currentlySelectedCellId);
    if (currentTD != null)
    {
        currentTD.className = "selectedTD";
    }
}

function runSlideShow(index)
{
    if (slideShowEnabled && preloadingComplete)    
    {
        switchPreLoadedImage(index);
        index++;
        if (index == imageList.length)
        {
            index = 0;
        }    
        window.setTimeout("runSlideShow(" + index + ")",1200);
        currentSlideShowImageIndex = index;
    }
}

function preloadImages() 
{

    totalImages = 0;
    var temp = preloadImages.arguments; 
            
    for(i = 0; i < temp.length; i++) 
    {
        imageList[i] = new Image();
        var path = preloadImages.arguments[i];        
        
        imageList[i].src = path;
        imageNamesList[i] = preloadImages.arguments[i];
        if (currentSlideShowImageIndex > -1 && currentSlideShowImageIndex < temp.length)
        {        
            if(i == currentSlideShowImageIndex)
            {
                switchPreLoadedImage(i);
            }
        }
        else
        {
            if(i == 0)
            {
                switchPreLoadedImage(0);
            }
        }
        totalImages++;
        preloadedCurrentTotal++;
    }
    setSlideShowEnabled(false); 
    preloadedCurrentTotal = totalImages;
    preloadingComplete = true;
    //alert("Preloading finished!");   
}

function viewSuperSizeImage(pageName)
{
/* commnented out as mapped drive is causing an error - KR 20/09/2005
    var superSizeImagepath = superSizePath + imageNamesList[currentSlideShowImageIndex];    
    window.open(superSizeImagepath);
    */
}

function viewSuperSizePage(page, makeId, modelId)
{
    /* included new parameters as supersize not working - KR 20/09/2005 */
    var superSizePagepath = page + "?selectedIndex=" + currentSlideShowImageIndex + "&mkid=" + makeId + "&mid=" + modelId + "&loc=ss";            
    window.open(superSizePagepath,"SuperSize","width=680,height=600");    
}


function HighlightCell(cell)
{
    var currentTD = document.getElementById(cell);
    if (currentTD != null)
    {
        currentTD.className = "highLightTD";        
    } 
}

function unHighlightCell(cell)
{
    var currentTD = document.getElementById(cell);
    if (currentTD != null)
    {
        currentTD.className = "defaultTD";
        
        if (cell == currentlySelectedCellId)
        {
            currentTD.className = "selectedTD";
        }
    } 
}

