﻿$(function(){
    $(".imprimir").data("popup", {width:612, height:450});
    $('body.popup .btnFecharModal').click(function(){ window.close(); });
});

webmotorsDetalheFoto = {
    mouseOverIn: false,
    mouseOverInEsq: false,
    mouseOverInDir: false,
    ulWidth: 0,
    divWidth: 280,
    mousePageX: 0,
    divOffsetLeft: 0,
    speedSeta: 5,
    speedMouse: 2,
    tempoMouse50: 1000,
    tempoMouse30: 500,
    tempoMouse15: 200,
    tempoSeta: 30,
    toleranciaPercentual: 4,
    processandoMouseOver: false,
    imageWidth: 87.5,
    selectores: {
        divFotos: 'div.fotos',
        ulFotosPequenas: 'ul.fotosPequenas',
        divEsq: 'div.fotosPequenasContainerEsquerda',
        divDir: 'div.fotosPequenasContainerDireita'
    },
    MoverFotosMouse: function() {
        var widthScrollTotal = webmotorsDetalheFoto.ulWidth - webmotorsDetalheFoto.divWidth;
        if (widthScrollTotal > 0 && webmotorsDetalheFoto.mouseOverIn) {
            var posicaoMouse = webmotorsDetalheFoto.mousePageX - webmotorsDetalheFoto.divOffsetLeft;
            var div = $(webmotorsDetalheFoto.selectores.divFotos);
            var tamanhoScrollLeft = div.scrollLeft();
            var percentPosicaoMouse = (posicaoMouse * 100) / webmotorsDetalheFoto.divWidth;
            var percentScrollUl = (tamanhoScrollLeft * 100) / widthScrollTotal;

            if (percentPosicaoMouse > (percentScrollUl + webmotorsDetalheFoto.toleranciaPercentual)) {
                webmotorsDetalheFoto.MoveDireita(div, tamanhoScrollLeft, webmotorsDetalheFoto.speedMouse);
                tamanhoScrollLeft += webmotorsDetalheFoto.speedMouse;
                percentScrollUl = (tamanhoScrollLeft * 100) / widthScrollTotal;
                if (percentPosicaoMouse > (percentScrollUl + webmotorsDetalheFoto.toleranciaPercentual)) {
                    if ((percentPosicaoMouse - percentScrollUl) > 50)
                        setTimeout(webmotorsDetalheFoto.MoverFotosMouse, webmotorsDetalheFoto.tempoMouse50);
                    else if ((percentPosicaoMouse - percentScrollUl) > 30)
                        setTimeout(webmotorsDetalheFoto.MoverFotosMouse, webmotorsDetalheFoto.tempoMouse30);
                    else
                        setTimeout(webmotorsDetalheFoto.MoverFotosMouse, webmotorsDetalheFoto.tempoMouse15);

                }
            }
            else if (percentPosicaoMouse < (percentScrollUl - webmotorsDetalheFoto.toleranciaPercentual)) {
                webmotorsDetalheFoto.MoveEsquerda(div, tamanhoScrollLeft, webmotorsDetalheFoto.speedMouse);
                tamanhoScrollLeft -= webmotorsDetalheFoto.speedMouse;
                percentScrollUl = (tamanhoScrollLeft * 100) / widthScrollTotal;
                if (percentPosicaoMouse < (percentScrollUl - webmotorsDetalheFoto.toleranciaPercentual)) {
                    if ((percentScrollUl - percentPosicaoMouse) > 50)
                        setTimeout(webmotorsDetalheFoto.MoverFotosMouse, webmotorsDetalheFoto.tempoMouse50);
                    else if ((percentScrollUl - percentPosicaoMouse) > 30)
                        setTimeout(webmotorsDetalheFoto.MoverFotosMouse, webmotorsDetalheFoto.tempoMouse30);
                    else
                        setTimeout(webmotorsDetalheFoto.MoverFotosMouse, webmotorsDetalheFoto.tempoMouse15);
                }
            }
            else {
                webmotorsDetalheFoto.processandoMouseOver = false;
            }
        }
    },
    SetaEsquerda: function() {
        if (!webmotorsDetalheFoto.mouseOverInEsq)
            return;
        var div = $(webmotorsDetalheFoto.selectores.divFotos);
        var tamanhoScrollLeft = div.scrollLeft();
        webmotorsDetalheFoto.MoveEsquerda(div, tamanhoScrollLeft, webmotorsDetalheFoto.speedSeta);
        if (tamanhoScrollLeft > webmotorsDetalheFoto.speedSeta) {
            setTimeout(webmotorsDetalheFoto.SetaEsquerda, webmotorsDetalheFoto.tempoSeta);
        }
    },
    MoveEsquerda: function(div, tamanhoScrollLeft, speed) {
        if (tamanhoScrollLeft > speed) {
            div.scrollLeft(tamanhoScrollLeft - speed);
        }
        else {
            div.scrollLeft(0);
        }
    },
    SetaDireita: function() {
        if (!webmotorsDetalheFoto.mouseOverInDir || webmotorsDetalheFoto.ulWidth < webmotorsDetalheFoto.divWidth)
            return;
        var div = $(webmotorsDetalheFoto.selectores.divFotos);
        var tamanhoScrollLeft = div.scrollLeft();
        webmotorsDetalheFoto.MoveDireita(div, tamanhoScrollLeft, webmotorsDetalheFoto.speedSeta);
        if (tamanhoScrollLeft <= (webmotorsDetalheFoto.ulWidth - webmotorsDetalheFoto.divWidth)) {
            setTimeout(webmotorsDetalheFoto.SetaDireita, webmotorsDetalheFoto.tempoSeta);
        }
    },
    MoveDireita: function(div, tamanhoScrollLeft, speed) {
        if (tamanhoScrollLeft <= (webmotorsDetalheFoto.ulWidth - webmotorsDetalheFoto.divWidth)) {
            div.scrollLeft(tamanhoScrollLeft + speed);
        }
        else {
            div.scrollLeft(webmotorsDetalheFoto.ulWidth - webmotorsDetalheFoto.divWidth);
        }
    },
    Init: function(configuracao) {
        if (configuracao != null && configuracao != undefined) {
            if (configuracao.divFotos != undefined && configuracao.divFotos != null && configuracao.divFotos != '')
                webmotorsDetalheFoto.selectores.divFotos = configuracao.divFotos;
            if (configuracao.ulFotosPequenas != undefined && configuracao.ulFotosPequenas != null && configuracao.ulFotosPequenas != '')
                webmotorsDetalheFoto.selectores.ulFotosPequenas = configuracao.ulFotosPequenas;
            if (configuracao.divDir != undefined && configuracao.divDir != null && configuracao.divDir != '')
                webmotorsDetalheFoto.selectores.divDir = configuracao.divDir;
            if (configuracao.divEsq != undefined && configuracao.divEsq != null && configuracao.divEsq != '')
                webmotorsDetalheFoto.selectores.divEsq = configuracao.divEsq;
        }

        //Get our elements for faster access and set overlay width
        var div = $(webmotorsDetalheFoto.selectores.divFotos),
		    ul = $(webmotorsDetalheFoto.selectores.ulFotosPequenas),
		    divEsq = $(webmotorsDetalheFoto.selectores.divEsq),
		    divDir = $(webmotorsDetalheFoto.selectores.divDir);

        //Get menu width
        webmotorsDetalheFoto.divWidth = div.width();

        //Remove scrollbars	
        div.css({ overflow: 'hidden' });

        var ulLi = ul.find('li');
        var imageCount = ulLi.length;
        webmotorsDetalheFoto.ulWidth = (webmotorsDetalheFoto.imageWidth * imageCount);
        webmotorsDetalheFoto.divOffsetLeft = div.offset().left;

        div.mousemove(function(e) {
            if (!webmotorsDetalheFoto.processandoMouseOver) {
                webmotorsDetalheFoto.mousePageX = e.pageX;
                webmotorsDetalheFoto.MoverFotosMouse();
            }
        });

        div.mouseover(function(e) {
            webmotorsDetalheFoto.mouseOverIn = true;
        });

        div.mouseout(function(e) {
            webmotorsDetalheFoto.mouseOverIn = false;
            webmotorsDetalheFoto.processandoMouseOver = false;
        });

        divEsq.mouseover(function(e) {
            webmotorsDetalheFoto.mouseOverInEsq = true;
            webmotorsDetalheFoto.SetaEsquerda();
        });

        divEsq.mouseout(function(e) {
            webmotorsDetalheFoto.mouseOverInEsq = false;
        });

        divDir.mouseover(function(e) {
            webmotorsDetalheFoto.mouseOverInDir = true;
            webmotorsDetalheFoto.SetaDireita();
        });

        divDir.mouseout(function(e) {
            webmotorsDetalheFoto.mouseOverInDir = false;
        });
    }
}

$(document).ready(function() {
    if (document.getElementById('imgFotoEsquerda'))    
        webmotorsDetalheFoto.Init();
});
