﻿// JScript File
var scrollPos = 0;//used to keep time
var scroller  = false;
var scrollLeftMax = 0;//this needs to be the maximum left offset
var scrollRightMax = 0;//this needs to be the max scroll to the right
var t = false;
var iconWidth = 58;
var currentIcon = false;
var scroll = true;//variable to determine if scrolling should happen
var scrollSpeed=2;//default
var framesPerSecond = 30;
var timerRate = 33; //default of 30 framespersecond == 1000/30 
var selectedOpacity = 0.50;//default value
var percentOpacity = "alpha(opacity=50)";//default


/* this is now stylesheet driven
var rightScrollImage = false;
var leftScrollImage = false;
var rightScrollActiveImage = false;
var leftScrollActiveImage = false;
var showRightScrollActive = false;//flags as to whether or not alt images exist
var showLeftScrollActive = false; 
var rightArrow = false;
var leftArrow = false;
var toggleActive = true;//used as a flag
*/

var language = "en"; //default
var rooturl = false;//used for referenceing the media server


//takes a reference to the image selected
function SelectIcon(newIcon, imagename)
{

    if(currentIcon!=false) 
    {   
        currentIcon.style.filter = 'alpha(opacity=100)';
        currentIcon.style.opacity = 1;
    }
    
    newIcon.style.filter = percentOpacity;
    newIcon.style.opacity = selectedOpacity;
    
    currentIcon = newIcon;
   
    if(imagename)ChangePreview(imagename);
    return false;
    
}

	function ChangePreview(imagename)
	{       
	        var img  = document.getElementById('MainDisplay').getElementsByTagName("img")[0];
	        img.src=rooturl+'regular/'+imagename+'/'+ language;

	        
	}
	
	
	
function SpawnNewWindow(type)
{
    var img  = document.getElementById('MainDisplay').getElementsByTagName("img")[0];
    var source = img.src;
    var download;
    var windowlocation 	= "about:blank";
    var windowTitle;
    switch(type)
    {
        case "download":
            windowTitle = "Download Image -- Leed's : make it yours";
                //last part of path is language, image name is length-2
                var paths = source.split('/');
                var imagename = "";
                if(paths.length>2)imagename = paths[paths.length-2];
                
           
            download = "ftp:" +"//"+"images.leedsworld.com/"+imagename+".tif";
            
            break;
        case "large":
            windowTitle = "Hi-res Image -- Leed's : make it yours";
            download = source.replace(/\bregular\b/,type);
            break;
    
    }
	var windowDNA = "window.open('"+download+"')";	
	var spawnWindow = eval(windowDNA);
	spawnWindow.focus();
}
	
function ScrollLeft()
{
    if(!scroll) return false;
    if(scrollPos<0) scrollPos += scrollSpeed;
    else return;
    DeselectIcon();
    scroller.style.left = scrollPos.toString() + "px";
    /* this is now stylesheet driven
    if(showLeftScrollActive && toggleActive)
    {
        leftArrow.src = leftScrollActiveImage;
        toggleActive=false;
    }
    */
    t= setTimeout("ScrollLeft()",timerRate);
    
}

function ScrollRight()
{
    if(!scroll) return false;
    if(scrollPos < scrollRightMax)return;
    DeselectIcon();
    scrollPos -=scrollSpeed;
    scroller.style.left = scrollPos.toString() + "px";
    /* this is now stylesheet driven
    if(showRightScrollActive && toggleActive)
    {
        rightArrow.src=rightScrollActiveImage;
        toggleActive=false;
    }
    */
    t= setTimeout("ScrollRight()",timerRate);
    return;
    
}

function StopScroll(arrow)
{
    if(t!=false)
    {
    clearTimeout(t);

    }
    /* this is now stylesheet driven
    switch(arrow)
    {
        case "left":
            leftArrow.src = leftScrollImage;
            break;
        case "right":
            rightArrow.src=rightScrollImage;
            break;
    }
    toggleActive = true;
    */
    
    ReselectIcon();
}

function DeselectIcon()//fixes scrolling bug in firefox
{
    if(currentIcon!=false) 
    {   
        currentIcon.style.filter = 'alpha(opacity=100)';
        currentIcon.style.opacity = 1;
    }
    return false;
}

function ReselectIcon()//fixes scrolling bug in firefox
{
    if(currentIcon!=false) 
    {   
        currentIcon.style.filter = percentOpacity;;
        currentIcon.style.opacity = selectedOpacity;
    }
    return false;
}

function Init()
{   
    //need to make sure these elements exist
    //if there is only one item to be drawn no icons are shown
    var encompase = document.getElementById("IconGallery");//this is the encompasing <div>
    if(encompase == null) return false;
    if(scroller == false) scroller = encompase.getElementsByTagName("div")[0]; //this is the div that contains the images and is scrolled
    var imgs = scroller.getElementsByTagName("img");//an array listing of all the imgs
    var imagename = false;
    
    var totalImageWidth = 0;
    var padleft = 1;//hardcoded for right now 1px margin-left, 1px margin-right
    var padright = 1;
    
    for(var x = 0; x< imgs.length; x++)
    {
        totalImageWidth += imgs[x].width + imgs[x].hspace + padright + padleft;//add extra for padding
        
    }

    
    //need to set limits on scrolling, also check and see if scrolling is needed
    var encompaseWidth = Number((encompase.style.width).replace(/px/,""));
    var scrolldiff = encompaseWidth - totalImageWidth;
    
    if (scrolldiff>1)//the width of the images is less than the display space
    {
        scroll = false;
        scroller.style.left= (Math.floor(scrolldiff/2)).toString() + "px";
        
    }
    scrollRightMax = Number(encompase.style.width.replace(/px/,""))-totalImageWidth;
    
    
    /* this is now stylesheet driven
    //get references to scroll arrrows
    rightArrow = document.getElementById("RightArrow").getElementsByTagName("img")[0];
    leftArrow = document.getElementById("LeftArrow").getElementsByTagName("img")[0];
    */
    
        
    //get state values from hidden fields
    GetStateValue();
    
    
    if(imgs.length>0)
    {
        SelectIcon(imgs[0]);
    }
    
    
    
}

function GetStateValue()
{
        //we will need to parse the id's to find out which ones they are, 
        //since asp.net add's naming infoto insure uniqueness
     var container = document.getElementById("MultiImageState"); 
     var insiders = container.getElementsByTagName("input");
    //loop through  and use a switch to assign values
    for(var x = 0; x < insiders.length; x++)
    {
    
       var next = (insiders[x].id).split('_');
        var last = next[next.length-1];
        
        switch(last)
        {
            case "Opacity":
                selectedOpacity = Number(insiders[x].value);
                percentOpacity = "alpha(opacity="+(selectedOpacity*100).toString() + ")";
                break;
            case "Speed":
                scrollSpeed = Number(insiders[x].value);
                break;
            case "RootURL":
                rooturl = insiders[x].value;
                break;
            case "Language":
                language = insiders[x].value;
                break;        
            case "RightImage":
                rightScrollImage = insiders[x].value;
                break;
            case "LeftImage":
                leftScrollImage = insiders[x].value;
                break;
            case "RightImageAlt":
                rightScrollActiveImage = insiders[x].value;
                if(rightScrollActiveImage=="")showRightScrollActive = false;
                else showRightScrollActive = true;
                break;
            case "LeftImageAlt":
                leftScrollActiveImage = insiders[x].value;
                if(leftScrollActiveImage=="")showLeftScrollActive = false;
                else showLeftScrollActive = true;
                break; 
            case "FPS":
                framesPerSecond = Number(insiders[x].value);
                timerRate = Math.floor(1000/framesPerSecond);
                break;                                                                   
        }
    
    }
    
}

window.onload=Init;
   
