var TIMER_GEO_REQUEST = 0;
var MARKER_ICON_STORE = null;
var MARKER_CLUSTER = null;
var MARKER_CLUSTER_ICON_STORES = null;
function OndeEncontrar()
{
    $('.lojas-reais, .lojas-virtuais').html('');
    
    $.get('http://www.converseskateboard.com.br/acao/OndeEncontrar.php',{
        Acao: 'ObterLojasPorModelo', 
        Modelo: $('#hdnReferencia').val()
    },function (JSONResult) {
        if(JSONResult.length > 0){
            $.each(JSONResult,function (index, Loja){

                var enderecos = [];

                enderecos.push(Loja.ENDERECO);
                enderecos.push(Loja.BAIRRO);
                enderecos.push(Loja.CIDADE);
                enderecos.push(Loja.ESTADO);
                enderecos.push('Brasil');

                AddMarker(enderecos.join(' '), Loja);

                var $li = $('<li />');
                var $h3 = $('<h3 />').text(Loja.NOME).appendTo($li);
                var $p = $('<p />').html(Loja.ENDERECO + '<br />' + Loja.BAIRRO + ' ' + Loja.CIDADE + ' ' + Loja.ESTADO)
                .append('<br />' + Loja.TELEFONE1);

                if(Loja.SITE != undefined){
                    $p.append('<br />' + Loja.SITE);
                }
                $p.appendTo($li.appendTo($('.lojas-reais')));

            });


            $('.lista ul.lojas-reais').jScrollPane({
                maintainPosition: false,
                animateScroll: true,
                autoReinitialise: true
            });
        }
        else
        {
                var $li = $('<li />');
                $('<h3 />').text("Produto indisponível").appendTo($li);
                
    
               $li.appendTo($('.lojas-reais'));
                
        }
        
        
    },'json');
    
    
    $.get('http://www.converseskateboard.com.br/acao/OndeEncontrar.php',{
        Acao: 'ObterLojasOnlinePorModelo', 
        Modelo: $('#hdnReferencia').val()
    },function (JSONResult) {
         if(JSONResult.length > 0){
        $.each(JSONResult,function (index, Loja){
            var $li = $('<li />');
            var $div = $('<div />');
            var $a = $('<a />');
            $a.attr('href','http://' + Loja.SITE).attr('target','_blank').attr('title',Loja.SITE).text(Loja.SITE);
            $div.text(Loja.NOME);
            $li.append($div);
            $li.append($a);
            $('.lojas-virtuais').append($li);
        });
        
        $('.lista ul.lojas-virtuais').jScrollPane({
            maintainPosition: false,
            animateScroll: true,
            autoReinitialise: true
        });
         }
        else
        {
                var $li = $('<li />');
                $('<h3 />').text("Produto indisponível").appendTo($li);
                
    
               $li.appendTo($('.lojas-virtuais'));
                
        }
    },'json');
    
    
}

var Geocoder = new google.maps.Geocoder();
function AddMarker(address, Loja){

    window.setTimeout(function() {
        Geocoder.geocode({
            'address': address
        }, function(results, status) 
        {
            if (status == google.maps.GeocoderStatus.OK) 
            {
                var returnPosition =  results[0].geometry.location;
            
                var newMarker = $.GoogleMaps.AddMarker({
                    position: returnPosition,
                    map: $.GoogleMaps.MAP,
                    icon: MARKER_ICON_STORE,
                    title: Loja.NOME
                }, Loja.CODIGO);
            
                $.GoogleMaps.AddEvent(newMarker, 'click', function (){
                    $.GoogleMaps.MAP.setCenter(newMarker.getPosition());
                    $.GoogleMaps.MAP.setZoom(16);
                    $('.infoBox').remove();	
                    var boxWrapper = document.createElement("div");
                    boxWrapper.innerHTML = '<h5>' + Loja.NOME + '</h5>' +
                    '<p>' + Loja.ENDERECO + ', ' + Loja.BAIRRO + ' - ' + Loja.CIDADE + ' - ' + Loja.ESTADO + '</p>' +
                    '<div>' + Loja.TELEFONE1 + '</div>' + ((Loja.SITE != undefined)?
                        '<div><a href="' + Loja.SITE + '" title="'+Loja.SITE+'">'+Loja.SITE+'</a></div>' : '');
							
                    var myOptions = {
                        content: boxWrapper,
                        disableAutoPan: true,
                        maxWidth: 0,
                        pixelOffset: new google.maps.Size(-124, -85),
                        zIndex: null,
                        boxStyle: { 
                            backgroundColor: '#EEEEEE',
                            border: 'solid 1px #999999',
                            width: "254px",
                            height: "170px"
                        },
                        closeBoxMargin: "5px",
                        closeBoxURL: "comum/img/btCloseInfoBox.png",
                        infoBoxClearance: new google.maps.Size(1, 1),
                        isHidden: false,
                        pane: "floatPane",
                        enableEventPropagation: false
                    };
                    var infoBox = new InfoBox(myOptions);
                    infoBox.open($.GoogleMaps.MAP, newMarker);
                    $.GoogleMaps.MAP.setCenter(infoBox.getPosition());
                });
                
                MARKER_CLUSTER.addMarker(newMarker);
            } else{
                AddMarker(address, Loja);
            }
        });
    }, TIMER_GEO_REQUEST);
    
    TIMER_GEO_REQUEST += 1000;
}

function DeclareMaps(){
    
    MARKER_ICON_STORE = $.GoogleMaps.CreateImage('comum/img/mapIcon.png', $.GoogleMaps.CreateSize(24, 29), $.GoogleMaps.CreatePoint(0, 0), $.GoogleMaps.CreatePoint(12, 29), null);
    
    $('#map_canvas').GoogleMaps({
        center: $.GoogleMaps.CreateLatLong(-14.235,-51.925),
        zoom: 4,
        mapTypeControl: false,
        backgroundColor: '#C1C1C1'
    });
    
    MARKER_CLUSTER_ICON_STORES = [{
        url: 'comum/img/btMapsCluster.png',
        height: 44,
        width: 46,
        anchor: [0, 0],
        textColor: '#666666',
        textSize: 10,
        textAlign: 'center'
    }];

    MARKER_CLUSTER = new MarkerClusterer($.GoogleMaps.MAP, [],{
        styles: MARKER_CLUSTER_ICON_STORES,
        averageCenter: true,
        gridSize: 30
    });
    
    $.GoogleMaps.AddEvent($.GoogleMaps.MAP, 'mousedown', function (){
        $('.infoBox').remove();
    });
}

$(document).ready(function () {
    DeclareMaps();
    OndeEncontrar(); 
});
