﻿// JScript File    
    var galleries = new Array();
    function AddGalleryCountElements( galleryID, currentImageElement, totalImageElement)
    {
        galleries[ galleryID.toString() ][ 'currentImageElement' ] = currentImageElement;
        galleries[ galleryID.toString() ][ 'totalImageElement'   ] = totalImageElement ;
        
        var counter = galleries[ galleryID.toString() ][ 'CurrentImage' ] +1; 
        var total   = galleries[ galleryID.toString() ][ 'ImageDefs' ].length ;
        var htCurrent = document.getElementById( galleries[ galleryID.toString() ][ 'currentImageElement' ] );
        var htTotal = document.getElementById( galleries[ galleryID.toString() ][ 'totalImageElement' ] );
        htCurrent.innerHTML = counter;
        
        htTotal.innerHTML = total;
    }    
    function AddGalleryZoom( galleryID, zoomElement )
    {
        galleries[ galleryID.toString() ][ 'zoomElement' ] = zoomElement;
    }
    function AddGallery( galleryID, ImageElement, DescElement, LinkElement , NextElement, PreviousElement)
    {   
        galleries[ galleryID.toString() ] = new Array();
        galleries[ galleryID.toString() ][ 'CurrentImage' ] = 0;
        galleries[ galleryID.toString() ][ 'ImageElement' ] = ImageElement;
        galleries[ galleryID.toString() ][ 'DescElement'  ] = DescElement;
        galleries[ galleryID.toString() ][ 'LinkElement'  ] = LinkElement;
        galleries[ galleryID.toString() ][ 'ImageDefs'   ] = new Array();
        
        var NextButton = document.getElementById( NextElement );
        var PrevButton = document.getElementById( PreviousElement );
        
        if ( NextButton == null)
        {
            alert('we are missing the next element');
        }
        else 
        {
            eval('NextButton.onclick =  function MoveNext(){ return MoveImage( \'' + galleryID.toString() + '\' , \'forward\' );}' );
        }
        if ( PrevButton == null)
        {
            alert('we are missing the prev element');
        }
        else
        {
            eval('PrevButton.onclick =  function MoveNext(){ return MoveImage( \'' + galleryID.toString() + '\' , \'backward\' );}' );
        }
        
    }
    function AddImage( galleryid, DescText, LinkURL, ImagePath)
    {
        var NewIndex = galleries[ galleryid.toString()]['ImageDefs'].length;
        galleries[ galleryid.toString() ][ 'ImageDefs' ][ NewIndex ] = new Array();
        galleries[ galleryid.toString() ][ 'ImageDefs' ][ NewIndex ][ 'DescText'  ] = DescText;
        galleries[ galleryid.toString() ][ 'ImageDefs' ][ NewIndex ][ 'LinkURL'   ] = LinkURL;
        galleries[ galleryid.toString() ][ 'ImageDefs' ][ NewIndex ][ 'ImagePath' ] = ImagePath;  
        
        var img = new Image();
        img.src = ImagePath;
    }
    function MoveImage( galleryid, direction )
    {
        if( galleries[ galleryid.toString() ]['ImageDefs'].length > 0 )
        { //this gallery has images so we need to react to this command. 
            //we will temporally store the counter and total images just so I don't have to type as much :)
            var gallery = galleries[ galleryid.toString() ];
            var counter = galleries[ galleryid.toString() ][ 'CurrentImage' ];
            var total   = galleries[ galleryid.toString() ][ 'ImageDefs' ].length -1;
            
            //using the direction input we select the next image to show.
            if( direction =='forward')
		    {
	        	    if(counter == total)
	        	    {
	           	     counter = 0;            
    	            
	        	    }
	        	    else
	        	    {
	          	      counter++;        
	       		    }
		    } else if ( direction == 'first')
		    {
			    counter = 0;
		    }else {
			    if (counter == 0)
		            {
		                counter = total;
		            }
		            else
		            {
		                counter--;	            
		            }
		    }
            
            //now it is time to start filling in the new values.
            if( galleries[ galleryid.toString() ][ 'ImageElement' ] != null)
            {
                var htImage = document.getElementById( galleries[ galleryid.toString() ][ 'ImageElement' ] );
                if (htImage != null)
                {
                    htImage.src = galleries[ galleryid.toString() ][ 'ImageDefs' ][ counter ][ 'ImagePath' ];
                }
            }
            
            if(galleries[ galleryid.toString() ][ 'DescElement' ] != null)
            {
                var htDesc  = document.getElementById( galleries[ galleryid.toString() ][ 'DescElement' ] );
                if( htDesc != null)
                {
                    htDesc.innerHTML = galleries[ galleryid.toString() ][ 'ImageDefs' ][ counter ][ 'DescText' ];
                    if( htImage != null)
                    {
                        htImage.alt = galleries[ galleryid.toString() ][ 'ImageDefs' ][ counter ][ 'DescText' ];
                    }
                }
            }
            if( galleries[ galleryid.toString() ][ 'LinkElement' ] != null)
            {
                var htLink  = document.getElementById( galleries[ galleryid.toString() ][ 'LinkElement' ] );
                if( htLink != null)
                {
                    htLink.href = galleries[ galleryid.toString() ][ 'ImageDefs' ][ counter ][ 'LinkURL' ];
                }
            }
            
            if( galleries[ galleryid.toString() ][ 'currentImageElement' ] != null)
            {
                var htCurrentImage  = document.getElementById( galleries[ galleryid.toString() ][ 'currentImageElement' ] );
                if( htCurrentImage != null)
                {
                    htCurrentImage.innerHTML = counter + 1;
                }
            }
            
            if( galleries[ galleryid.toString() ][ 'totalImageElement' ] != null)
            {
                var htTotalImage  = document.getElementById( galleries[ galleryid.toString() ][ 'totalImageElement' ] );
                if( htTotalImage != null)
                {
                    htTotalImage.innerHTML = total + 1;
                }
            }
            
            if( galleries[ galleryid.toString() ][ 'zoomElement' ] != null)
            {
                var htZoom  = document.getElementById( galleries[ galleryid.toString() ][ 'zoomElement' ] );
                if( htZoom != null)
                {
                    htZoom.href = galleries[ galleryid.toString() ][ 'ImageDefs' ][ counter ][ 'LinkURL' ];
                }
            }
            
            galleries[ galleryid.toString() ][ 'CurrentImage' ] = counter;
        
        }
    }