﻿var gallery_restarea = 200; // Width of area in the center of the gallery not affected by mouse
    
var gallery_scrollSpeed = 0;
var gallery_currentState = '';
var gallery_actualheight = '';
var gallery_scrollbar;
var gallery_topTimeoutId;
var gallery_bottomTimeoutId;

function gallery_moveup()
{
    gallery_currentState = "top";
    
    if (parseInt(gallery_scrollbar.style.top) > (gallery_menuheight-gallery_actualheight))
    {
        gallery_scrollbar.style.top = parseInt(gallery_scrollbar.style.top) - gallery_scrollSpeed + "px";
    }    
    
    gallery_topTimeoutId = setTimeout("gallery_moveup()", timeout);
}

function gallery_movedown()
{
    gallery_currentState = "bottom";
    
    if (parseInt(gallery_scrollbar.style.top) < 0)
    {
        gallery_scrollbar.style.top = parseInt(gallery_scrollbar.style.top) + gallery_scrollSpeed + "px";
    }
     
    gallery_bottomTimeoutId = setTimeout("gallery_movedown()", timeout);
}

function gallery_StartScrolling(e)
{            
    var mainobjoffset=getposOffset(gallery_crossmain, "top");
    dsocy=(window.pageYOffset)? pageYOffset : ietruebody().scrollTop;
    currentCursorY = window.event ? event.clientY : e.clientY ? e.clientY : "";
    currentCursorY -= mainobjoffset - dsocy;
    var topbound=(gallery_menuheight-gallery_restarea)/2;
    var bottombound=(gallery_menuheight+gallery_restarea)/2;    
    
    if (currentCursorY>bottombound)
    {
        gallery_scrollSpeed=(currentCursorY-bottombound)/((gallery_menuheight-gallery_restarea)/2) * maxspeed;
        clearTimeout(gallery_bottomTimeoutId);
        if (gallery_currentState!="top") 
        {
            gallery_moveup();
        }
    }
    else if (currentCursorY<topbound)
    {
        gallery_scrollSpeed=(topbound-currentCursorY)/((gallery_menuheight-gallery_restarea)/2) * maxspeed;
        clearTimeout(gallery_topTimeoutId);
        if (gallery_currentState!="bottom") 
        {
            gallery_movedown();
        }
    }
    else
    {
        gallery_scrollSpeed=0;
    }
}

function gallery_StopScrolling(e)
{
    if (!window.opera||(window.opera&&e.relatedTarget!==null))
    {
        if ((window.event&&!gallery_crossmain.contains(event.toElement)) || (e && e.currentTarget && e.currentTarget!= e.relatedTarget && !contains_ns6(e.currentTarget, e.relatedTarget)))
        {
            clearTimeout(gallery_topTimeoutId);
            clearTimeout(gallery_bottomTimeoutId);
            gallery_currentState = "";
        }
    }
}

function gallery_InitializeScrollbar()
{    
    gallery_crossmain = document.getElementById ? document.getElementById("galleryScrollArea") : document.all.galleryScrollArea;    
    gallery_menuheight = gallery_crossmain.offsetHeight;
    gallery_scrollbar = document.getElementById ? document.getElementById("galleryScrollbar") : document.all.galleryScrollbar;
    gallery_actualheight = document.getElementById ? document.getElementById("galleryThumbnailsArea").offsetHeight : document.all['galleryThumbnailsArea'].offsetHeight;
        
    // Set start position
    gallery_scrollbar.style.top = (gallery_menuheight - gallery_actualheight) / startpos + 'px';        
    
    gallery_crossmain.onmousemove = function(e)
    {
        gallery_StartScrolling(e);
    }

    gallery_crossmain.onmouseout = function(e)
    {
        gallery_StopScrolling(e);
    }     
}