﻿// JScript File
/*********************** SLIDE017 Stuff *******************/
var m_intSlide017_ControlsHidden = 0;
var m_intSlide017_InitComplete = 0; 
var m_objSlide017_GridLocationsxxx; 
var m_intSlide017_TimeOutHandle = -1; 

var m_intSlide017_CurrentGrid = new Array(); 
var m_intSlide017_ImageObjects = new Array(); 

var m_arrSlide017_SequenceBase = Array (8,13,0,23,3,10,16,11,17,9,4,18,14,15,12,1,2,19,21,7,20,5,24,6,22); 
var m_arrSlide017_PicsToLoad = new Array ( 'slides/images/017/017-AirFreight.jpg', 'slides/images/017/017-CartMaking2slide17.jpg', 'slides/images/017/017-ClayMining2.jpg',
                               'slides/images/017/017-ContainerShip.jpg', 'slides/images/017/017-ElectricSocketslide17.jpg', 'slides/images/017/017-FarmerCowsslide2-17.jpg',
                               'slides/images/017/017-Glaze2.jpg', 'slides/images/017/017-InnerTube.jpg', 'slides/images/017/017-Kettle2slide17.jpg', 'slides/images/017/017-KettleElement.jpg',
                               'slides/images/017/017-KettleWireslide17.jpg', 'slides/images/017/017-Kiln2.jpg', 'slides/images/017/017-MetalManuf.jpg', 'slides/images/017/017-MilkCarton2slide17.jpg',
                               'slides/images/017/017-Milking.jpg', 'slides/images/017/017-MilkLorry2.jpg', 'slides/images/017/017-Mug2.jpg', 'slides/images/017/017-plasticmanufacture.jpg',
                               'slides/images/017/017-PlasticProd.jpg', 'slides/images/017/017-powerstation.jpg', 'slides/images/017/017-pylons.jpg', 'slides/images/017/017-SewagePlant2slide17.jpg',
                               'slides/images/017/017-Spoon2.jpg', 'slides/images/017/017-SteelFactory.jpg', 'slides/images/017/017-SugarCane2.jpg', 'slides/images/017/017-SugarJuicex2.jpg',
                               'slides/images/017/017-SugarProduction.jpg', 'slides/images/017/017-TankerWheels2.jpg', 'slides/images/017/017-Tap2slide17.jpg', 'slides/images/017/017-ThaiCoTyre2.jpg',
                               'slides/images/017/017-TruckEngine2.jpg', 'slides/images/017/017-Tyres2.jpg', 'slides/images/017/017-TyreTesting.jpg', 'slides/images/017/017-WaterSlide17.jpg',
                               'slides/images/017/017-WheelNuts.jpg', 'slides/images/017/017-WhiteSugar2.jpg'
                             );
var m_intSlide017_ImagesLoaded  = 0; 
var m_objSlide017_Images = new Array(); 

var m_intSlide017_CurrentImage = 0; 

function clsSlide017_ImageInformation ( objImage, intCurCellLocation ) 
{
    this.objImage = objImage; 
    this.intCurCellLocation = intCurCellLocation; 
}


function fnSlide017_CheckAllLoaded()
{
    var intSlideCounter; 
    var intFoundNotLoaded = 0;
    
    for ( intSlideCounter = 0 ; intSlideCounter < m_arrSlide017_PicsToLoad.length ; intSlideCounter ++ )
    {

        if ( ! m_objSlide017_Images[intSlideCounter].objImage.complete ) 
        {
            intFoundNotLoaded = 1;    
            break; 
        }
    }

    if ( intFoundNotLoaded === 0 ) 
    {
        m_intSlide017_ImagesLoaded = 1;    
    }
    else 
    {
        setTimeout('fnSlide017_CheckAllLoaded()',250);
    }
}
function fnSlide017_LoadAllImages() 
{
    var intSlideCounter; 
    
    for ( intSlideCounter = 0 ; intSlideCounter < m_arrSlide017_PicsToLoad.length ; intSlideCounter ++ )
    {
        
        var objImage;
        objImage = new Image(80,80);
        objImage.src = m_arrSlide017_PicsToLoad[intSlideCounter];
        m_objSlide017_Images[intSlideCounter] = new clsSlide017_ImageInformation(objImage,-1); 
    }
    setTimeout('fnSlide017_CheckAllLoaded()',250);
}



function fnSlide017_PlaceRandomPictures()
{
    
    var intDestCell;
    var intFreeImages;
    var intSourceImage; 
    var intSourceImages = new Array();
    var intImageAtChosenLocation = -1;
    var intImageLocationIndex = -1;
    
    // First, we are going to pick a random number between 1 and 25 to place our picture on 
    intDestCell = fnGetRandomNumber(25); 

    for ( var intImageCounter = 0; intImageCounter < m_objSlide017_Images.length ; intImageCounter ++ ) 
    {
        // Check to see if the image is not any place ( -1 ) and if so, add it to our collection 
        // of images that we may possibly place this time around!
        if ( m_objSlide017_Images[intImageCounter].intCurCellLocation == -1 ) 
        {
            intSourceImages[intSourceImages.length] = intImageCounter; 
        }
        
        // Find the image located at our chosen desintation cell whilst we're here! 
        if ( intDestCell == m_objSlide017_Images[intImageCounter].intCurCellLocation ) 
        {
            intImageAtChosenLocation = m_objSlide017_Images[intImageCounter].intCurCellLocation ;
            intImageLocationIndex = intImageCounter;
        }
    }

    // Check if we have an image and if so, pick a random one from the collection! 
    if ( intSourceImages.length > 0 ) 
    {
        // Here we found a -1 image.  
        // So, from the array intSourceImages we have to pick a random number
        intSourceImage =  intSourceImages[fnGetRandomNumber(intSourceImages.length)];       
    }

    if (( intSourceImage != -1 ) && (intImageCounter != -1 )) 
    {
        // First, move the cell loction from the currently active image to the new image we're about to put in!
        m_objSlide017_Images[intSourceImage].intCurCellLocation = m_objSlide017_Images[intImageLocationIndex].intCurCellLocation;
        // then tell the old image that we can use it again
        m_objSlide017_Images[intImageLocationIndex].intCurCellLocation = -1; 
        // And now set the new IMG to the souce of the new Image
        document.getElementById('Slide017-IMG' +  fnFormatThreeDigits(m_objSlide017_Images[intSourceImage].intCurCellLocation)).src
                    =
                    m_objSlide017_Images[intSourceImage].objImage.src; 
    }
    

    m_intSlide017_TimeOutHandle =  setTimeout('fnSlide017_PlaceRandomPictures()',100);        
}

function fnSlide017_PlaceImagesInOrder()
{
    // For the first 25 times here we are picking a grid element, 
    // 
    
    m_intSlide017_CurrentImage ++; 
    if ( m_intSlide017_CurrentImage < m_arrSlide017_SequenceBase.length ) 
    {
        // Show the picture!
        document.getElementById('Slide017-IMG' +  fnFormatThreeDigits(m_arrSlide017_SequenceBase[m_intSlide017_CurrentImage])).src
                        = 
                        m_objSlide017_Images[m_intSlide017_CurrentImage].objImage.src; 
        // Store where we put it! 
        m_objSlide017_Images[m_intSlide017_CurrentImage].intCurCellLocation = m_arrSlide017_SequenceBase[m_intSlide017_CurrentImage];
        // And do this all over again! 
        m_intSlide017_TimeOutHandle =  setTimeout('fnSlide017_PlaceImagesInOrder()',500);
    }
    else 
    {
        // Here we are finished with the easy part, so now it's on to the random thing 
        m_intSlide017_TimeOutHandle = setTimeout('fnSlide017_PlaceRandomPictures()',50);        
    }
}


function fnAnimateSlide017() 
{
    // Here we are going to show each of the div sections in Slide017, one by one. 

    if ( m_intSlide017_ControlsHidden ) 
    {
        fnSlide017_ShowGridDIVS(1);  
        m_intSlide017_CurrentImage = -1;
        m_intSlide017_TimeOutHandle = setTimeout('fnSlide017_PlaceImagesInOrder()',50);
    }
    else 
    {
        // Here the controls are not hidden, so we have to kick off the random process
        m_intSlide017_TimeOutHandle = setTimeout('fnSlide017_PlaceRandomPictures()',50);
    }
}


function fnSlide017_ShowGridDIVS ( intShow ) 
{
    var intSlideNumber = 0; 
    var elTemp; 
    var elTempBlack; 
    
    elTempBlack = document.getElementById("Slide017-BlackSquare");
    
    for ( ; intSlideNumber < 25 ; intSlideNumber ++ ) 
    {
        elTemp = document.getElementById("Slide017-DIV" + fnFormatThreeDigits(intSlideNumber));
        if ( intShow ) 
        {
            elTemp.style.visibility = 'visible'; 
        }
        else
        {   
            elTemp.style.visibility = 'hidden'; 
            // And as we are hiding, we'd best reset our attached picture
            // too! 
            elTemp = document.getElementById('Slide017-IMG' +  fnFormatThreeDigits(intSlideNumber));
            elTemp.src = elTempBlack.src;
        }
    }

    // If intshow = 1 then 0 else 1 
    m_intSlide017_ControlsHidden = 1-intShow; 

}
function fnSlide017_SetUpGrid()
{
    var intSlideNumber = 0; 
    var elTemp; 
    var elPlaceHolder;
    
    elPlaceHolder = document.getElementById("Slide017-BlackSquare");
    
    for ( ; intSlideNumber < 25 ; intSlideNumber ++ ) 
    {
        elTemp = document.getElementById("Slide017-DIV" + fnFormatThreeDigits(intSlideNumber));
        elTemp.style.left = 556 + ( (intSlideNumber % 5) * 80 );
        elTemp.style.borderWidth = 0;
        elTemp.style.borderStyle = 'none';
        elTemp.style.margin = 0; 
        elTemp.style.overflow = 'hidden'; 
        elTemp.style.padding = 0; 
        elTemp.style.top = 0 + ( parseInt((intSlideNumber / 5),10) * 80  ) + 35; 
        elTemp.style.width = 80; 
        elTemp.style.height = 80;
        
        elTemp = document.getElementById("Slide017-IMG" + fnFormatThreeDigits(intSlideNumber));
        elTemp.src = elPlaceHolder.src;
        
    }
}
    
function fnInitSlide017()
{
    // This function takes the slide back to the starting position, in case we come back this way at 
    // some other time.
    var intSlideNumber = 0; 
    var elTemp; 
   
    // Clear any timer we may have running!
    if ( m_intSlide017_TimeOutHandle != -1 ) 
    {
        clearTimeout(m_intSlide017_TimeOutHandle);
        m_intSlide017_TimeOutHandle = -1;
    }
    // Here we are going to create Grid objects 
    // First, hide them!
    fnSlide017_ShowGridDIVS(0) ; 

    if ( m_intSlide017_InitComplete === 0) 
    {
        // And set the grid up! 
        fnSlide017_SetUpGrid();
        fnSlide017_LoadAllImages();
        // Tell the world we are ready! 
        m_intSlide017_InitComplete = 1;  
    }
    

    // And to be on the same side, clear the time out again, if we need to! 
    if ( m_intSlide017_TimeOutHandle != -1 ) 
    {
        clearTimeout(m_intSlide017_TimeOutHandle);
        m_intSlide017_TimeOutHandle = -1;
    }

}

/****************** SLIDE 017 Stuff ENDS ****************/


