﻿function slideNavFullImage(toTheLeft, divNavFullImagesTogetherID, spacing, navFullImagesCount, aLeftID, aRightID)
{
    var divNavFullImagesTogether = document.getElementById(divNavFullImagesTogetherID);
    var aLeft = document.getElementById(aLeftID);
    var aRight = document.getElementById(aRightID);
    
    var backgroundPos = divNavFullImagesTogether.style.backgroundPosition.split('px')[0];
    var index = - (backgroundPos > 0 ? Math.ceil(backgroundPos / spacing) : Math.floor(backgroundPos / spacing));

    if(index > navFullImagesCount) index -= navFullImagesCount;
    if(index < -navFullImagesCount) index += navFullImagesCount;
    var startPos = - (index * spacing);
    refTime = (new Date()).getTime();
    var toCall = 'updateSlideNavFullImage(' + (toTheLeft?'true':'false') + ','
                                          + '\'' + divNavFullImagesTogetherID + '\','
                                          + spacing + ','
                                          + startPos + ','
                                          + refTime + ');';
    setTimeout(toCall, 5);
}

function pathFunction(x)
{
    return 1.10 - 1/(Math.pow(x + 0.976453867, 4));
}

function updateSlideNavFullImage(toTheLeft, divNavFullImagesTogetherID, spacing, startPos, refTime)
{
    var divNavFullImagesTogether = document.getElementById(divNavFullImagesTogetherID);
    var elapsedMS = (new Date()).getTime() - refTime;
    var timePercCompleted = elapsedMS / 500;
    var pathPercCompleted = pathFunction(timePercCompleted)
    if(pathPercCompleted > 1) {
        pathPercCompleted = 1;
    } 
    var pixelsToMove = spacing * pathPercCompleted;
    var newPos = startPos + (toTheLeft ? +pixelsToMove : -pixelsToMove);
    divNavFullImagesTogether.style.backgroundPosition = newPos + 'px';
    if(pathPercCompleted < 1)
    {
        var toCall = 'updateSlideNavFullImage(' + (toTheLeft?'true':'false') + ','
                                              + '\'' + divNavFullImagesTogetherID + '\','
                                              + spacing + ','
                                              + startPos + ','
                                              + refTime + ');';
        setTimeout(toCall, 5);
    }
}




