﻿var DATA_LETREIRO_IMOVEIS = [];
var letreiroImoveis = {
    width: 300, item_count: 3, body : null, content: null, isMoving: false, _x: 12, middle: 0, timer_looping: 0, delay_loop: 10, isLeft: true, abs: 0,
    start : function(e, delay)
    {
        if(e)
        {
            if(DATA_LETREIRO_IMOVEIS.length>0)
            {
                var item;
                for(var i=0; i<e.childNodes.length; i++)
                {
                    if(e.childNodes[i].className.indexOf("-body")>-1)
                    {
                        letreiroImoveis.body = e.childNodes[i];
                        break;
                    }
                }
                
                //Usado para acertar valor no loop em "move"
                letreiroImoveis.abs = letreiroImoveis.item_count % 2;
                  
                letreiroImoveis.delay_loop = delay;
                letreiroImoveis.content = document.createElement("div");
                letreiroImoveis.content.className = "letreiro-imoveis-content-items";
                letreiroImoveis.middle = DATA_LETREIRO_IMOVEIS.length * letreiroImoveis.width
                letreiroImoveis.content.style.width = (letreiroImoveis.middle* (DATA_LETREIRO_IMOVEIS.length>=letreiroImoveis.item_count ? 2 : 1) ) + "px";
                letreiroImoveis.content.style.marginLeft = (DATA_LETREIRO_IMOVEIS.length>=letreiroImoveis.item_count ? letreiroImoveis._x : letreiroImoveis.width/DATA_LETREIRO_IMOVEIS.length + letreiroImoveis._x ) + "px";
                letreiroImoveis.body.appendChild(letreiroImoveis.content);
                
                letreiroImoveis.middle += letreiroImoveis._x; //acertando posicao correta do meio
                
                var a = null, i = 0, c = 2;
                while(c!=0) //Executa duas vezes para criar copia e sincronizar rolagem sem fim e comeco!!!
                {
                    for(i=0; i<DATA_LETREIRO_IMOVEIS.length; i++)
                    {
                        item = DATA_LETREIRO_IMOVEIS[i];
                        if(typeof item == "object")
                        {
                            a = document.createElement("a");
                            a.href = "javascript:getDetailsImovel(" + item.id + ")";
                            a.style.width = letreiroImoveis.width + "px";
                            a.innerHTML = "<h2>" + item.bairro + "</h2><span style='background-image:url(" + item.images[0].path + ")'></span><h3>Ref.: " + item.ref + "<br />" + item.tipo + "<br />" + item.valor.replace(".000,00","mil") + "<br />" + item.para + "</h3>";
                            letreiroImoveis.content.appendChild(a);                        
                        }            
                    } 
                    c--; 
                }
                letreiroImoveis.loop();                 
            }
        }
    },
    loop : function()
    {
        letreiroImoveis.stop();
        letreiroImoveis.timer_looping = setInterval(function(){ letreiroImoveis.move(letreiroImoveis.isLeft?-1:1) }, letreiroImoveis.delay_loop * 1000);
    },
    stop : function()
    {
        clearInterval(letreiroImoveis.timer_looping);
    },
    move : function(evt)
    {
        if(!letreiroImoveis.isMoving && DATA_LETREIRO_IMOVEIS.length>=letreiroImoveis.item_count)
        {           
            letreiroImoveis.stop();
        
            // Tratando reposicionamentos para simular loop
            letreiroImoveis.isLeft = typeof evt == "number" ? evt<0 : getEvent(evt).element.innerHTML=="«";            
            var to = parseInt(letreiroImoveis.content.style.marginLeft);
            
            // Acessando item antes de primeiro 
            if(Math.abs(to) == letreiroImoveis._x && !letreiroImoveis.isLeft)
            {
                to = -(letreiroImoveis.middle)+(letreiroImoveis._x*2); 
            }
            
            // Acessando item depois do ultimo                 
            if(Math.abs(to)+(letreiroImoveis.width*(DATA_LETREIRO_IMOVEIS.length+letreiroImoveis.abs)) >= parseInt(letreiroImoveis.content.style.width) && letreiroImoveis.isLeft)
            {
                to = letreiroImoveis._x;       
            } 
            
            // Reposiciona (se for o caso) para evitar quebra do loop 
            letreiroImoveis.content.style.marginLeft = to + "px";                                         
    
            //Nova posicao
            to = parseInt(letreiroImoveis.content.style.marginLeft) + (letreiroImoveis.width *(letreiroImoveis.isLeft ? -1 : 1)); 
            
            letreiroImoveis.isMoving = true;
            $(letreiroImoveis.content).animate({marginLeft:to+"px"}, 800, 'swing', function(){ letreiroImoveis.isMoving = false; letreiroImoveis.loop(); });
        }
    }   
}
