
function ThumbnailScroller()
{
    var PrototypesObject = new Prototypes();
    var Class = this;

    // ID
    this.ID = '';

    // Container
    this.Container = '';

    // Settings
    this.Width = '100%';
    this.Height = '100%';
    this.BgColor = 'css';
    this.BgAlpha = '100';
    this.Position = 'horizontal';
    this.Spacing = 0;
    this.PaddingTop = 0;
    this.PaddingRight = 0;
    this.PaddingBottom = 0;
    this.PaddingLeft = 0;
    
    this.ThumbnailWidth = 50;
    this.ThumbnailHeight = 50;
    this.ThumbnailSize = 'fixed';
    this.ThumbnailAlpha = '50';
    this.ThumbnailAlphaHover = '100';
    this.ThumbnailAlphaSelected = '100';
    this.ThumbnailBgColor = 'ffffff';
    this.ThumbnailBgColorHover = 'ffffff';
    this.ThumbnailBgColorSelected = 'ffffff';
    this.ThumbnailBorderSize = 0;
    this.ThumbnailBorderColor = '000000';
    this.ThumbnailBorderColorHover = '000000';
    this.ThumbnailBorderColorSelected = '000000';
    this.ThumbnailPaddingTop = 0;
    this.ThumbnailPaddingRight = 0;
    this.ThumbnailPaddingBottom = 0;
    this.ThumbnailPaddingLeft = 0;

    this.Buttons = 'false';
    this.ButtonsColor = 'ffffff';
    this.ButtonsColorHover = 'ffffff';
    this.ButtonsIconColor = '000000';
    this.ButtonsIconColorHover = '000000';
    this.ButtonsAlpha = '50';
    this.ButtonsAlphaHover = '100';

    this.TooltipBgColor = 'css';
    this.TooltipStrokeColor = 'css';
    this.TooltipTextColor = 'css';

    // Content
    this.Thumbs = new Array();
    this.Links = new Array();
    this.Titles = new Array();
    this.noThumbs = 0;

    // Thumbnails
    this.thumbnailsMove = false;
    this.currentThumb = 1;

    //
    this.agent = navigator.userAgent.toLowerCase();

    this.init = function(id, container, data)
    {
        this.ID = id;
        this.Container = container;
        this.parseData(data);
    }

    this.parseData = function(data)
    {
        var settingsData;
        var thumbsData;
        var settingsSplit = new Array();
        var thumbsSplit = new Array();
        var i;
        var settingName;
        var settingValue;

        settingsData = data.split(';;;;;')[0];
        thumbsData = data.split(';;;;;')[1];

        settingsSplit = settingsData.split(';;');
        thumbsSplit = thumbsData.split(';;;');

        for (i=0; i<settingsSplit.length; i++)
        {
            settingName = settingsSplit[i].split('::')[0];
            settingValue = settingsSplit[i].split('::')[1];

            if (settingName == 'Width' && settingValue != '' && settingValue != 'css') this.Width = settingValue;
            if (settingName == 'Height' && settingValue != '' && settingValue != 'css') this.Height = settingValue;
            if (settingName == 'BgColor' && settingValue != '' && settingValue != 'css') this.BgColor = settingValue;
            if (settingName == 'BgImage' && settingValue != '') this.BgImage = settingValue;
            if (settingName == 'BgAlpha' && settingValue != '') this.BgAlpha = settingValue;
            if (settingName == 'Position' && settingValue != '') this.Position = settingValue;
            if (settingName == 'Spacing' && settingValue != '') this.Spacing = parseInt(settingValue);
            if (settingName == 'PaddingTop' && settingValue != '') this.PaddingTop = parseInt(settingValue);
            if (settingName == 'PaddingRight' && settingValue != '') this.PaddingRight = parseInt(settingValue);
            if (settingName == 'PaddingBottom' && settingValue != '') this.PaddingBottom = parseInt(settingValue);
            if (settingName == 'PaddingLeft' && settingValue != '') this.PaddingLeft = parseInt(settingValue);

            if (settingName == 'ThumbnailWidth' && settingValue != '' && settingValue != 'css') this.ThumbnailWidth = parseInt(settingValue);
            if (settingName == 'ThumbnailHeight' && settingValue != '' && settingValue != 'css') this.ThumbnailHeight = parseInt(settingValue);
            if (settingName == 'ThumbnailSize' && settingValue != '') this.ThumbnailSize = settingValue;
            if (settingName == 'ThumbnailAlpha' && settingValue != '') this.ThumbnailAlpha = settingValue;
            if (settingName == 'ThumbnailAlphaHover' && settingValue != '') this.ThumbnailAlphaHover = settingValue;
            if (settingName == 'ThumbnailAlphaSelected' && settingValue != '') this.ThumbnailAlphaSelected = settingValue;
            if (settingName == 'ThumbnailBgColor' && settingValue != '') this.ThumbnailBgColor = settingValue;
            if (settingName == 'ThumbnailBgColorHover' && settingValue != '') this.ThumbnailBgColorHover = settingValue;
            if (settingName == 'ThumbnailBgColorSelected' && settingValue != '') this.ThumbnailBgColorSelected = settingValue;
            if (settingName == 'ThumbnailBorderSize' && settingValue != '') this.ThumbnailBorderSize = parseInt(settingValue);
            if (settingName == 'ThumbnailBorderColor' && settingValue != '') this.ThumbnailBorderColor = settingValue;
            if (settingName == 'ThumbnailBorderColorHover' && settingValue != '') this.ThumbnailBorderColorHover = settingValue;
            if (settingName == 'ThumbnailBorderColorSelected' && settingValue != '') this.ThumbnailBorderColorSelected = settingValue;
            if (settingName == 'ThumbnailPaddingTop' && settingValue != '') this.ThumbnailPaddingTop = parseInt(settingValue);
            if (settingName == 'ThumbnailPaddingRight' && settingValue != '') this.ThumbnailPaddingRight = parseInt(settingValue);
            if (settingName == 'ThumbnailPaddingBottom' && settingValue != '') this.ThumbnailPaddingBottom = parseInt(settingValue);
            if (settingName == 'ThumbnailPaddingLeft' && settingValue != '') this.ThumbnailPaddingLeft = parseInt(settingValue);

            if (settingName == 'Buttons' && settingValue != '') this.ButtonsColorHover = settingValue;
            if (settingName == 'ButtonsColor' && settingValue != '') this.ButtonsColor = settingValue;
            if (settingName == 'ButtonsColorHover' && settingValue != '') this.ButtonsColorHover = settingValue;
            if (settingName == 'ButtonsIconColor' && settingValue != '') this.ButtonsIconColor = settingValue;
            if (settingName == 'ButtonsIconColorHover' && settingValue != '') this.ButtonsIconColorHover = settingValue;
            if (settingName == 'ButtonsAlpha' && settingValue != '') this.ButtonsAlpha = settingValue;
            if (settingName == 'ButtonsAlphaHover' && settingValue != '') this.ButtonsAlphaHover = settingValue;

            if (settingName == 'TooltipBgColor' && settingValue != '' && settingValue != 'css') this.TooltipBgColor = settingValue;
            if (settingName == 'TooltipStrokeColor' && settingValue != '' && settingValue != 'css') this.TooltipStrokeColor = settingValue;
            if (settingName == 'TooltipTextColor' && settingValue != '' && settingValue != 'css') this.TooltipTextColor = settingValue;
        }

        this.noThumbs = thumbsSplit.length;

        for (i=0; i<this.noThumbs; i++)
        {
            this.Thumbs[i] = thumbsSplit[i].split(';;')[0];
            this.Links[i] = thumbsSplit[i].split(';;')[1];
            this.Titles[i] = thumbsSplit[i].split(';;')[2];
        }

        this.initScroller();
    }

    this.initScroller = function()
    {
        var HTML = '';

        HTML += '<div class="DOP_ThumbnailScroller_Container" id="DOP_ThumbnailScroller_Container_'+this.ID+'">';

        HTML += '   <div class="DOP_ThumbnailScroller_Background" id="DOP_ThumbnailScroller_ThumbnailsBg_'+this.ID+'"></div>';

        HTML += '   <div class="DOP_ThumbnailScroller_ThumbnailsWrapper" id="DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID+'">';
        HTML += '       <div class="DOP_ThumbnailScroller_Thumbnails" id="DOP_ThumbnailScroller_Thumbnails_'+this.ID+'">';
        HTML += '   </div>';

        if (this.Buttons == 'true')
        {
            HTML += '   <div class="DOP_ThumbnailScroller_Button" id="DOP_ThumbnailScroller_ButtonLeft_'+this.ID+'">';
            HTML += '       <div class="DOP_ThumbnailScroller_Button_LeftIcon" id="DOP_ThumbnailScroller_Button_LeftIcon_'+this.ID+'"></div>';
            HTML += '   </div>';
            HTML += '   <div class="DOP_ThumbnailScroller_Button" id="DOP_ThumbnailScroller_ButtonRight_'+this.ID+'">';
            HTML += '       <div class="DOP_ThumbnailScroller_Button_RightIcon" id="DOP_ThumbnailScroller_Button_RightIcon_'+this.ID+'"></div>';
            HTML += '   </div>';
        }

        HTML += '   <div class="DOP_ThumbnailScroller_Tooltip" id="DOP_ThumbnailScroller_Tooltip_'+this.ID+'"></div>';

        HTML += '</div>';

        $(this.Container).html(HTML);

        this.initSettings();
    }

    this.initSettings= function()
    {
        this.initContainer();
        this.initThumbnails();
        if (this.Buttons == 'true') this.initButtons();
    }

    this.initResize = function()
    {
        this.RPContainer();
        this.RPThumbnails();
        if (this.Buttons == 'true') this.RPButtons();
    }

// ***** Begin Container *****

    this.initContainer = function()
    {
        $('#DOP_ThumbnailScroller_Container_'+this.ID).css('display', 'block');
        this.RPContainer();
    }

    this.RPContainer = function()
    {
        if (this.Width != 'css')
        {
            if (this.Width == '100%') $('#DOP_ThumbnailScroller_Container_'+this.ID).width($('#DOP_ThumbnailScroller_Container_'+this.ID).parent().width());
            else $('#DOP_ThumbnailScroller_Container_'+this.ID).width(this.Width);
        }
        if (this.Height != 'css')
        {
            if (this.Height == '100%') $('#DOP_ThumbnailScroller_Container_'+this.ID).height($('#DOP_ThumbnailScroller_Container_'+this.ID).parent().height());
            else $('#DOP_ThumbnailScroller_Container_'+this.ID).height(this.Height);
        }
    }

// ***** End Container *****

// ***** Begin Thumbnails *****

    this.initThumbnails = function()
    {
        if (this.BgColor != 'css') $('#DOP_ThumbnailScroller_Background_'+this.ID).css('background-color', '#'+this.BgColor);
        $('#DOP_ThumbnailScroller_Background_'+this.ID).stop(true, true).animate({'opacity':parseInt(Class.BgAlpha)/100}, 0);

        $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).css('margin-top', this.PaddingTop);
        $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).css('margin-left', this.PaddingLeft);

        this.RPThumbnails();
        
        if (this.ThumbnailsPosition == 'horizontal')
        {
            $('#DOP_ThumbnailScroller_ThumbnailsContainer_'+this.ID).css('margin-top', $('#DOP_ThumbnailScroller_Container_'+this.ID).height());
            $('#DOP_ThumbnailScroller_ThumbnailsContainer_'+this.ID).stop(true, true).animate({'margin-top':$('#DOP_ThumbnailScroller_Container_'+this.ID).height()-$('#DOP_ThumbnailScroller_ThumbnailsContainer_'+this.ID).height()}, 600);
        }
        if (this.ThumbnailsPosition == 'vertical')
        {
            $('#DOP_ThumbnailScroller_ThumbnailsContainer_'+this.ID).css('margin-left', 0-$('#DOP_ThumbnailScroller_ThumbnailsContainer_'+this.ID).width());
            $('#DOP_ThumbnailScroller_ThumbnailsContainer_'+this.ID).stop(true, true).animate({'margin-left':0}, 600);
        }
        
        $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).hover(function(){Class.thumbnailsMove = true;});

        this.moveThumbnails();
        this.loadThumb(1);
    }

    this.loadThumb = function(no)
    {
        this.initThumb(no);
        var img = new Image();

        $(img).load(function()
        {
            $('#DOP_ThumbnailScroller_Thumb_'+no).html('<a href="'+Class.Links[no-1]+'"></a>');
            $('a', '#DOP_ThumbnailScroller_Thumb_'+no).html(this);
            Class.loadCompleteThumb(no);
            if (no < Class.noThumbs) Class.loadThumb(no+1);
        }).attr('src', this.Thumbs[no-1]);
    }

    this.initThumb = function(no)
    {
        var ThumbHTML = '';
        ThumbHTML += '<div class="DOP_ThumbnailScroller_ThumbContainer" id="DOP_ThumbnailScroller_ThumbContainer_'+no+'">';
        ThumbHTML += '   <div class="DOP_ThumbnailScroller_Thumb" id="DOP_ThumbnailScroller_Thumb_'+no+'">';
        ThumbHTML += '   </div>';
        ThumbHTML += '</div>';

        if (this.Position == 'horizontal')
        {
            if (no == 1) $('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).width($('#DOP_ThumbnailScroller_Thumbnails_'+Class.ID).width()+Class.ThumbnailWidth+(2*Class.ThumbnailBorderSize)+Class.ThumbnailPaddingRight+Class.ThumbnailPaddingLeft);
            else $('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).width($('#DOP_ThumbnailScroller_Thumbnails_'+Class.ID).width()+Class.ThumbnailWidth+(2*Class.ThumbnailBorderSize)+Class.ThumbnailPaddingRight+Class.ThumbnailPaddingLeft+Class.Spacing);
        }

        $('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).append(ThumbHTML);

        $('#DOP_ThumbnailScroller_ThumbContainer_'+no).stop(true, true).animate({'opacity':parseInt(Class.ThumbnailAlpha)/100}, 0);
        $('#DOP_ThumbnailScroller_ThumbContainer_'+no).width(this.ThumbnailWidth+this.ThumbnailPaddingRight+this.ThumbnailPaddingLeft);
        $('#DOP_ThumbnailScroller_ThumbContainer_'+no).height(this.ThumbnailHeight+this.ThumbnailPaddingTop+this.ThumbnailPaddingBottom);
        $('#DOP_ThumbnailScroller_Thumb_'+no).css('margin-top', this.ThumbnailPaddingTop);
        $('#DOP_ThumbnailScroller_Thumb_'+no).css('margin-left', this.ThumbnailPaddingLeft);
        $('#DOP_ThumbnailScroller_Thumb_'+no).css('margin-bottom', this.ThumbnailPaddingBottom);
        $('#DOP_ThumbnailScroller_Thumb_'+no).css('margin-right', this.ThumbnailPaddingRight);

        if (this.ThumbnailSize == 'fixed')
        {
            $('#DOP_ThumbnailScroller_Thumb_'+no).css('overflow', 'hidden');
            $('#DOP_ThumbnailScroller_Thumb_'+no).width(this.ThumbnailWidth);
            $('#DOP_ThumbnailScroller_Thumb_'+no).height(this.ThumbnailHeight);
        }
        else
        {
            if (this.Position == 'horizontal') $('#DOP_ThumbnailScroller_ThumbContainer_'+no).height(this.ThumbnailHeight+this.ThumbnailPaddingTop+this.ThumbnailPaddingBottom);
            else  $('#DOP_ThumbnailScroller_ThumbContainer_'+no).width(this.ThumbnailWidth+this.ThumbnailPaddingRight+this.ThumbnailPaddingLeft);
        }

        if (this.Position == 'horizontal') $('#DOP_ThumbnailScroller_ThumbContainer_'+no).css('float', 'left');

        if (no != '1')
        {
            if (this.Position == 'horizontal') $('#DOP_ThumbnailScroller_ThumbContainer_'+no).css('margin-left', this.ThumbnailsSpacing);
            else $('#DOP_ThumbnailScroller_ThumbContainer_'+no).css('margin-top', this.ThumbnailsSpacing);
        }

        $('#DOP_ThumbnailScroller_ThumbContainer_'+no).css('background-color', '#'+this.ThumbnailBgColor);
        $('#DOP_ThumbnailScroller_ThumbContainer_'+no).css('border-width', this.ThumbnailBorderSize);
        $('#DOP_ThumbnailScroller_ThumbContainer_'+no).css('border-color', '#'+this.ThumbnailBorderColor);

        $('#DOP_ThumbnailScroller_ThumbContainer_'+no).addClass('DOP_ThumbnailScroller_SmallLoader');

        if (this.Position == 'horizontal')
        {
            if ($('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).width() <= $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).width()) PrototypesObject.HCenterItem('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID, $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).width());
            else if (parseInt($('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).css('margin-left')) >= 0) $('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).css('margin-left', 0);
        }
        else
        {
            if ($('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).height() <= $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).height()) PrototypesObject.VCenterItem('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID, $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).height());
            else if (parseInt($('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).css('margin-top')) >= 0) $('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).css('margin-top', 0);
        }
    }

    this.loadCompleteThumb = function(no)
    {
        $('#DOP_ThumbnailScroller_ThumbContainer_'+no).removeClass('DOP_ThumbnailScroller_SmallLoader');

        if (this.ThumbnailSize == 'fixed') PrototypesObject.ResizeItem2('#DOP_ThumbnailScroller_Thumb_'+no, this.ThumbnailWidth, this.ThumbnailHeight, $('img', '#DOP_ThumbnailScroller_Thumb_'+no).width(), $('img', '#DOP_ThumbnailScroller_Thumb_'+no).height(), 'center');
        else
        {
            if (this.ThumbnailsPosition == 'top' || this.ThumbnailsPosition == 'bottom')
            {
                $('#DOP_ThumbnailScroller_ThumbContainer_'+no).css('width', 'auto');
                $('img', '#DOP_ThumbnailScroller_Thumb_'+no).height(this.ThumbnailHeight);
                $('img', '#DOP_ThumbnailScroller_Thumb_'+no).css('width', 'auto');

                $('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).width($('#DOP_ThumbnailScroller_Thumbnails_'+Class.ID).width()-Class.ThumbnailWidth-Class.ThumbnailPaddingRight-Class.ThumbnailPaddingLeft);
                $('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).width($('#DOP_ThumbnailScroller_Thumbnails_'+Class.ID).width()+$('#DOP_ThumbnailScroller_ThumbContainer_'+no).width());

                if ($('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).width() <= $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).width()) PrototypesObject.HCenterItem('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID, $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).width());
                else if (parseInt($('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).css('margin-left')) >= 0) $('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).css('margin-left', 0);
            }
            else
            {
                $('#DOP_ThumbnailScroller_ThumbContainer_'+no).css('height', 'auto');
                $('img', '#DOP_ThumbnailScroller_Thumb_'+no).width(this.ThumbnailWidth);
                $('img', '#DOP_ThumbnailScroller_Thumb_'+no).css('height', 'auto');

                if ($('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).height() <= $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).height()) PrototypesObject.VCenterItem('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID, $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).height());
                else if (parseInt($('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).css('margin-top')) >= 0) $('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).css('margin-top', 0);
            }
        }

        $('#DOP_ThumbnailScroller_ThumbContainer_'+no).hover(function()
        {
            if (Class.currentThumb != no)
            {
                $(this).stop(true, true).animate({'opacity':parseInt(Class.ThumbnailAlphaHover)/100}, 300);
                $(this).css('background-color', '#'+Class.ThumbnailBgColorHover);
                $(this).css('border-color', '#'+Class.ThumbnailBorderColorHover);
            }
        },
        function()
        {
            if (Class.currentThumb != no)
            {
                $(this).stop(true, true).animate({'opacity':parseInt(Class.ThumbnailAlpha)/100}, 300);
                $(this).css('background-color', '#'+Class.ThumbnailBgColor);
                $(this).css('border-color', '#'+Class.ThumbnailBorderColor);
            }
        });

        $('#DOP_ThumbnailScroller_ThumbContainer_'+no).click(function()
        {
            $('#DOP_ThumbnailScroller_ThumbContainer_'+Class.currentThumb).stop(true, true).animate({'opacity':parseInt(Class.ThumbnailAlpha)/100}, 300);
            $('#DOP_ThumbnailScroller_ThumbContainer_'+Class.currentThumb).css('background-color', '#'+Class.ThumbnailBgColor);
            $('#DOP_ThumbnailScroller_ThumbContainer_'+Class.currentThumb).css('border-color', '#'+Class.ThumbnailBorderColor);

            Class.currentThumb = no;
        });

        if (this.currentThumb == no)
        {
            $('#DOP_ThumbnailScroller_ThumbContainer_'+no).stop(true, true).animate({'opacity':parseInt(Class.ThumbnailAlphaHover)/100}, 300);
            $('#DOP_ThumbnailScroller_ThumbContainer_'+no).css('background-color', '#'+Class.ThumbnailBgColorHover);
            $('#DOP_ThumbnailScroller_ThumbContainer_'+no).css('border-color', '#'+Class.ThumbnailBorderColorHover);
        }
    }

    this.RPThumbnails = function()
    {
        if (this.Position == 'horizontal')
        {
            $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).width($('#DOP_ThumbnailScroller_Container_'+this.ID).width()-this.PaddingRight-this.PaddingLeft);
            $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).height(this.ThumbnailHeight+(2*this.ThumbnailBorderSize)+this.ThumbnailPaddingTop+this.ThumbnailPaddingBottom);

            if ($('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).width() <= $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).width()) PrototypesObject.HCenterItem('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID, $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).width());
            else if (parseInt($('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).css('margin-left')) >= 0) $('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).css('margin-left', 0);
        }
        else if (this.Position == 'vertical')
        {
            $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).width(this.ThumbnailWidth+(2*this.ThumbnailBorderSize)+this.ThumbnailPaddingRight+this.ThumbnailPaddingLeft);
            $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).height($('#DOP_ThumbnailScroller_Container_'+this.ID).height()-this.PaddingTop-this.PaddingBottom);

            if ($('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).height() <= $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).height()) PrototypesObject.VCenterItem('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID, $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).height());
            else if (parseInt($('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).css('margin-top')) >= 0) $('#DOP_ThumbnailScroller_Thumbnails_'+this.ID).css('margin-top', 0);
        }

        $('#DOP_ThumbnailScroller_ThumbnailsBg_'+this.ID).width($('#DOP_ThumbnailScroller_Container_'+this.ID).width());
        $('#DOP_ThumbnailScroller_ThumbnailsBg_'+this.ID).height($('#DOP_ThumbnailScroller_Container_'+this.ID).height());

        if (this.ThumbnailsPosition == 'bottom') PrototypesObject.OnBottomItem('#DOP_ThumbnailScroller_Container_'+this.ID, '#DOP_ThumbnailScroller_ThumbnailsContainer_'+this.ID, $('#DOP_ThumbnailScroller_Container_'+this.ID).height());
        if (this.ThumbnailsPosition == 'right') PrototypesObject.OnRightItem('#DOP_ThumbnailScroller_Container_'+this.ID, '#DOP_ThumbnailScroller_ThumbnailsContainer_'+this.ID, $('#DOP_ThumbnailScroller_Container_'+this.ID).width());
    }

    this.moveThumbnails = function()
    {
        if (this.agent.indexOf('iphone') != -1 || this.agent.indexOf('ipad') != -1)
        {
            $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).css('overflow', 'scroll');
        }
        else
        {
            $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+this.ID).mousemove(function(e)
            {
                var thumbnailWidth;
                var thumbnailHeight;
                var mousePosition;
                var thumbnailsPosition;

                if ((Class.ThumbnailsPosition == 'top' || Class.ThumbnailsPosition == 'bottom') && $('#DOP_ThumbnailScroller_Thumbnails_'+Class.ID).width() > $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+Class.ID).width())
                {
                    thumbnailWidth = Class.ThumbnailWidth+Class.ThumbnailPaddingRight+Class.ThumbnailPaddingLeft+2*Class.ThumbnailBorderSize;
                    mousePosition = e.clientX-$(this).offset().left;
                    thumbnailsPosition = 0-($('#DOP_ThumbnailScroller_Thumbnails_'+Class.ID).width()-$('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+Class.ID).width())*mousePosition/$('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+Class.ID).width();

                    if (thumbnailsPosition > (-1)*thumbnailWidth && thumbnailsPosition != 0)
                    {
                        Class.thumbnailsMove = true;
                        thumbnailsPosition = 0;
                    }

                    if (thumbnailsPosition < (-1)*($('#DOP_ThumbnailScroller_Thumbnails_'+Class.ID).width()-$('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+Class.ID).width()-thumbnailWidth) && thumbnailsPosition != (-1)*($('#DOP_ThumbnailScroller_Thumbnails_'+Class.ID).width()-$('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+Class.ID).width()))
                    {
                        Class.thumbnailsMove = true;
                        thumbnailsPosition = (-1)*($('#DOP_ThumbnailScroller_Thumbnails_'+Class.ID).width()-$('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+Class.ID).width());
                    }

                    if (Class.thumbnailsMove)
                    {
                        $('#DOP_ThumbnailScroller_Thumbnails_'+Class.ID).stop(true, false).animate({'margin-left':thumbnailsPosition}, 300, function()
                        {
                            Class.thumbnailsMove = false;
                        });
                    }
                    else $('#DOP_ThumbnailScroller_Thumbnails_'+Class.ID).stop(false, true).animate({'margin-left':thumbnailsPosition}, 300);
                }

                if ((Class.ThumbnailsPosition == 'right' || Class.ThumbnailsPosition == 'left') && $('#DOP_ThumbnailScroller_Thumbnails_'+Class.ID).height() > $('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+Class.ID).height())
                {
                    thumbnailHeight = Class.ThumbnailHeight+Class.ThumbnailPaddingTop+Class.ThumbnailPaddingBottom+2*Class.ThumbnailBorderSize;
                    mousePosition = e.clientY-$(this).offset().top;
                    thumbnailsPosition = 0-($('#DOP_ThumbnailScroller_Thumbnails_'+Class.ID).height()-$('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+Class.ID).height())*mousePosition/$('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+Class.ID).height();

                    if (thumbnailsPosition > (-1)*thumbnailHeight && thumbnailsPosition != 0)
                    {
                        Class.thumbnailsMove = true;
                        thumbnailsPosition = 0;
                    }

                    if (thumbnailsPosition < (-1)*($('#DOP_ThumbnailScroller_Thumbnails_'+Class.ID).height()-$('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+Class.ID).height()-thumbnailHeight) && thumbnailsPosition != (-1)*($('#DOP_ThumbnailScroller_Thumbnails_'+Class.ID).height()-$('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+Class.ID).height()))
                    {
                        Class.thumbnailsMove = true;
                        thumbnailsPosition = (-1)*($('#DOP_ThumbnailScroller_Thumbnails_'+Class.ID).height()-$('#DOP_ThumbnailScroller_ThumbnailsWrapper_'+Class.ID).height());
                    }

                    if (Class.thumbnailsMove)
                    {
                        $('#DOP_ThumbnailScroller_Thumbnails_'+Class.ID).stop(true, false).animate({'margin-top':thumbnailsPosition}, 300, function()
                        {
                            Class.thumbnailsMove = false;
                        });
                    }
                    else $('#DOP_ThumbnailScroller_Thumbnails_'+Class.ID).stop(false, true).animate({'margin-top':thumbnailsPosition}, 300);
                }
            });
        }
    }

// ***** End Thumbnails *****

// ***** Begin Buttons *****

    this.initButtons = function()
    {
        $('.DOP_ThumbnailScroller_Button').css('background-color', '#'+this.ButtonsColor);
        $('#DOP_ThumbnailScroller_Button_LeftIcon_'+this.ID).css('border-top-color', '#'+this.ButtonsColor);
        $('#DOP_ThumbnailScroller_Button_LeftIcon_'+this.ID).css('border-bottom-color', '#'+this.ButtonsColor);
        $('#DOP_ThumbnailScroller_Button_LeftIcon_'+this.ID).css('border-left-color', '#'+this.ButtonsColor);
        $('#DOP_ThumbnailScroller_Button_RightIcon_'+this.ID).css('border-top-color', '#'+this.ButtonsColor);
        $('#DOP_ThumbnailScroller_Button_RightIcon_'+this.ID).css('border-bottom-color', '#'+this.ButtonsColor);
        $('#DOP_ThumbnailScroller_Button_RightIcon_'+this.ID).css('border-right-color', '#'+this.ButtonsColor);

        $('#DOP_ThumbnailScroller_Button_LeftIcon_'+this.ID).css('border-right-color', '#'+this.ButtonsIconColor);
        $('#DOP_ThumbnailScroller_Button_RightIcon_'+this.ID).css('border-left-color', '#'+this.ButtonsIconColor);

        $('.DOP_ThumbnailScroller_Button').stop(true, true).animate({'opacity':parseInt(Class.ButtonsAlpha)/100}, 0);

        $('#DOP_ThumbnailScroller_ButtonLeft_'+this.ID).corner('right');
        $('#DOP_ThumbnailScroller_ButtonRight_'+this.ID).corner('left');

        $('#DOP_ThumbnailScroller_ButtonLeft_'+this.ID).hover(function()
        {
            $('#DOP_ThumbnailScroller_ButtonLeft_'+Class.ID).css('background-color', '#'+Class.ButtonsColorHover);
            $('#DOP_ThumbnailScroller_Button_LeftIcon_'+Class.ID).css('border-top-color', '#'+Class.ButtonsColorHover);
            $('#DOP_ThumbnailScroller_Button_LeftIcon_'+Class.ID).css('border-bottom-color', '#'+Class.ButtonsColorHover);
            $('#DOP_ThumbnailScroller_Button_LeftIcon_'+Class.ID).css('border-left-color', '#'+Class.ButtonsColorHover);
            $('#DOP_ThumbnailScroller_ButtonLeft_'+Class.ID).stop(true, true).animate({'opacity':parseInt(Class.ButtonsAlphaHover)/100}, 0);
            $('#DOP_ThumbnailScroller_Button_LeftIcon_'+Class.ID).css('border-right-color', '#'+Class.ButtonsIconColorHover);
        }, function()
        {
            $('#DOP_ThumbnailScroller_ButtonLeft_'+Class.ID).css('background-color', '#'+Class.ButtonsColor);
            $('#DOP_ThumbnailScroller_Button_LeftIcon_'+Class.ID).css('border-top-color', '#'+Class.ButtonsColor);
            $('#DOP_ThumbnailScroller_Button_LeftIcon_'+Class.ID).css('border-bottom-color', '#'+Class.ButtonsColor);
            $('#DOP_ThumbnailScroller_Button_LeftIcon_'+Class.ID).css('border-left-color', '#'+Class.ButtonsColor);
            $('.DOP_ThumbnailScroller_Button').stop(true, true).animate({'opacity':parseInt(Class.ButtonsAlpha)/100}, 0);
            $('#DOP_ThumbnailScroller_Button_LeftIcon_'+Class.ID).css('border-right-color', '#'+Class.ButtonsIconColor);
        });

        $('#DOP_ThumbnailScroller_ButtonRight_'+this.ID).hover(function()
        {
            $('#DOP_ThumbnailScroller_ButtonRight_'+Class.ID).css('background-color', '#'+Class.ButtonsColorHover);
            $('#DOP_ThumbnailScroller_Button_RightIcon_'+Class.ID).css('border-top-color', '#'+Class.ButtonsColorHover);
            $('#DOP_ThumbnailScroller_Button_RightIcon_'+Class.ID).css('border-bottom-color', '#'+Class.ButtonsColorHover);
            $('#DOP_ThumbnailScroller_Button_RightIcon_'+Class.ID).css('border-right-color', '#'+Class.ButtonsColorHover);
            $('#DOP_ThumbnailScroller_ButtonRight_'+Class.ID).stop(true, true).animate({'opacity':parseInt(Class.ButtonsAlphaHover)/100}, 0);
            $('#DOP_ThumbnailScroller_Button_RightIcon_'+Class.ID).css('border-left-color', '#'+Class.ButtonsIconColorHover);
        }, function()
        {
            $('#DOP_ThumbnailScroller_ButtonRight_'+Class.ID).css('background-color', '#'+Class.ButtonsColor);
            $('#DOP_ThumbnailScroller_Button_RightIcon_'+Class.ID).css('border-top-color', '#'+Class.ButtonsColor);
            $('#DOP_ThumbnailScroller_Button_RightIcon_'+Class.ID).css('border-bottom-color', '#'+Class.ButtonsColor);
            $('#DOP_ThumbnailScroller_Button_RightIcon_'+Class.ID).css('border-right-color', '#'+Class.ButtonsColor);
            $('.DOP_ThumbnailScroller_Button').stop(true, true).animate({'opacity':parseInt(Class.ButtonsAlpha)/100}, 0);
            $('#DOP_ThumbnailScroller_Button_RightIcon_'+Class.ID).css('border-left-color', '#'+Class.ButtonsIconColor);
        });

        $('#DOP_ThumbnailScroller_ButtonLeft_'+this.ID).click(function()
        {
            if (Class.imageLoaded) Class.previousImage();
        });

        $('#DOP_ThumbnailScroller_ButtonRight_'+this.ID).click(function()
        {
            if (Class.imageLoaded) Class.nextImage();
        });
    }

    this.RPButtons = function()
    {
        $('#DOP_ThumbnailScroller_ButtonLeft_'+this.ID).css('margin-left', parseInt($('#DOP_ThumbnailScroller_Image_'+this.ID).css('margin-left')));
        $('#DOP_ThumbnailScroller_ButtonRight_'+this.ID).css('margin-left', parseInt($('#DOP_ThumbnailScroller_Image_'+this.ID).css('margin-left'))+($('#DOP_ThumbnailScroller_Image_'+Class.ID).width()-$('#DOP_ThumbnailScroller_ButtonRight_'+Class.ID).width()));
        $('#DOP_ThumbnailScroller_ButtonLeft_'+this.ID).css('margin-top', parseInt($('#DOP_ThumbnailScroller_Image_'+Class.ID).css('margin-top'))+($('#DOP_ThumbnailScroller_Image_'+Class.ID).height()-$('#DOP_ThumbnailScroller_ButtonLeft_'+Class.ID).height())/2);
        $('#DOP_ThumbnailScroller_ButtonRight_'+this.ID).css('margin-top', parseInt($('#DOP_ThumbnailScroller_Image_'+Class.ID).css('margin-top'))+($('#DOP_ThumbnailScroller_Image_'+Class.ID).height()-$('#DOP_ThumbnailScroller_ButtonRight_'+Class.ID).height())/2);
    }

    this.nextImage = function()
    {
        if (Class.currentImage == Class.noThumbs) Class.loadImage(1);
        else Class.loadImage(Class.currentImage+1);
    }

    this.previousImage = function()
    {
        if (this.currentImage == 1) this.loadImage(this.noThumbs);
        else this.loadImage(this.currentImage-1);
    }

// ***** End Buttons *****

// ***** Begin Reset *****

    this.reset = function()
    {
        var i = 0;

        //
        $(this.Container).html('');

        // ID
        this.ID = '';

        // Container
        this.Container = '';

        // Content
        for (i=0; i<this.noThumbs; i++)
        {
            this.Thumbs[i] = '';
            this.Links[i] = '';
            this.Titles[i] = '';
        }

        this.noThumbs = 0;

        // Thumbnails
        this.thumbnailsMove = false;
    }

// ***** End Reset *****

}
