﻿
var oneOpened = false;

function createMarker(point, index, zoom, open, name, number)
{

    if (zoom =="near" || zoom == "near-sideMap")
    {
        var iconWidth = 46;
        var iconHeight = 46;
        
        var Icon = new GIcon(G_DEFAULT_ICON);
        Icon.shadowSize = new GSize(iconWidth + 10, iconHeight + 10);
        Icon.iconAnchor = new GPoint(iconWidth/2, iconHeight/2); //(iconWidth /4), iconHeight + 20
        Icon.infoWindowAnchor = new GPoint(iconWidth, 0);
        Icon.iconSize = new GSize(iconWidth, iconHeight);

        Icon.image = "/Templates/Default/Images/maps/icons/marker_"+index+".png";
        Icon.shadow = "/Templates/Default/Images/maps/icons/marker_shadow.png";         
        Icon.transparent = "/Templates/Default/Images/maps/icons/marker_transparent.png";
        Icon.imageMap = [0,0, 46,0, 46,46, 0,46];
    }
    else if (zoom == "far")
    {
        var iconWidth = 22;
        var iconHeight = 22;
        
        var Icon = new GIcon(G_DEFAULT_ICON);
        //Icon.shadowSize = new GSize(iconWidth + 4, iconHeight + 4);
        Icon.iconAnchor = new GPoint(iconWidth/2, iconHeight/2);
        Icon.infoWindowAnchor = new GPoint(iconWidth, 0);
        Icon.iconSize = new GSize(iconWidth, iconHeight);
        
        Icon.image = "/Templates/Default/Images/maps/icons/small_marker.png";   
        Icon.shadow = "";
    }

    //if (name == null && number == null)
    //    markerOptions = { icon:Icon, clickable:false };
    //else
        markerOptions = { icon:Icon };
    
    var marker = new GMarker(point, markerOptions);

    var infoWindowContent; var width;

    if (zoom != "near-sideMap")
    {
        var href = (index <= 26) ? "the-weekends.aspx#"+index : "the-weekends-27-52.aspx#"+index;

        infoWindowContent = "<div class='balloonInner' style='position:relative;'><a href='"+href+"'>";  //<a href='the-weekends/"+index+".aspx'>
        //infoWindowContent += "<p>";
        //infoWindowContent += "<span class='number'>"+number+"</span> <span class='name'>"+name+"</span>";
        //infoWindowContent += "</p>";
        //infoWindowContent += "<img class='numberImage' width='100' height='72' style='position: absolute;' src='/Templates/Default/Images/maps/icons/nos/map_numbers_"+index+".png' />";
        infoWindowContent += "<img class='locationImage' height='125' style='display:block;' src='/UserFiles/cache/ListingWeekend_Chapter_"+index+"(1).jpg.jpg' />";
        infoWindowContent += "</a></div>";
        width = 215;
    }
    else
    {
        width = 150;              
        infoWindowContent = "<div style='width:"+width+"px; display: block;'><div><a href='http://maps.google.co.uk/maps?saddr=&daddr="+point.lat()+","+point.lng()+"'>Get Directions</a></div></div>";
    }

    GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml(infoWindowContent, { maxWidth:width });
    });

    if (index == open && !oneOpened)
    {
        marker.openInfoWindowHtml(infoWindowContent, { maxWidth:width });
        oneOpened = true;
    }

    return marker;
}

function addMarkerGeo(location, index, map) {

    var geocoder = new GClientGeocoder();

    geocoder.getLatLng(
        location,
        function(point) {
            if (point) {
                var marker = createMarker(point,index,"near-sideMap", null, null, null);
                map.addOverlay(marker);
                map.setCenter(point, 13);
            }
    });
}

function getMarker(locations, index, zoom, open) {
    var point = new GLatLng(locations[index].lat, locations[index].lng);
    return marker = createMarker(point,index+1, zoom, open, locations[index].name, locations[index].number);
}

var map2;
var markers;

$(document).ready(function() { 
    
//    $('.placeMiniMap').each(function(ele,index){
//        gmap.create(ele);
//        $('.location',ele).
//    });

    if ($("#placeMiniMap").size() > 0)
    {    
        var location = $("#placeMiniMap .location").text();
        var number = $("#placeMiniMap .number").text();
        
        var map;
        if (GBrowserIsCompatible()) {  
            map = new GMap2(document.getElementById("placeMiniMap")); //,{ mapTypes: ["G_PHYSICAL_MAP"] }
            //map.setCenter(new GLatLng(37.4419, -122.1419), 15);
            var customUI = map.getDefaultUI();
            customUI.controls.menumaptypecontrol = false;
            //map.setUIToDefault();
            map.setUI(customUI);
            //map.disableInfoWindow();
        }
        
//        var coords = -1;
//        for (var z = 0; z < locations.length; z++)
//        {
//            if (locations[z].location == location && (locations[z].lat != null && locations[z].lng != null))
//                coords = locations[z].number;
//        }
//        
//        if (coords != -1)
//        {
//            var mgr = new MarkerManager(map);
//            mgr.addMarker(getMarker(locations, coords, "near", null),1);
//            mgr.refresh();
//        }
//        else
            addMarkerGeo(location, number, map);
    }
   
    if ($("#sectionId_18").size() > 0)
    {
        var rnd = Math.round(Math.random() * 52);

        var numToOpen = 1;
        
        ($(".currentpage-the-weekends-27-52").length > 0) ? numToOpen = 27 : numToOpen = 1;
        
        if (unescape(self.document.location.hash.substring(1)) != "" && unescape(self.document.location.hash.substring(1)) != null)
        {
            numToOpen = unescape(self.document.location.hash.substring(1));
            
            (typeof(numToOpen) == 'string') ? "" : numToOpen = 1;
        }
        

        if (GBrowserIsCompatible()) {  
            map2 = new GMap2(document.getElementById("sectionId_18"));
            map2.setMapType(G_PHYSICAL_MAP);
            map2.setCenter(new GLatLng((locations[numToOpen-1].lat + 0.3), locations[numToOpen-1].lng), 8);  // no.1: 58.578277,-4.714508  // UK: 55.002826, -3.208008
            var customUI = map2.getDefaultUI();
            customUI.zoom.scrollwheel = false;
            customUI.maptypes.satellite = false;
            customUI.maptypes.normal = false;
            customUI.maptypes.hybrid = false;
            customUI.maptypes.physical = false;
            //map2.disableInfoWindow();
            //map2.setUIToDefault();
            map2.setUI(customUI);
        }
        
        var markersFar = [];
        var markersNear = [];
        //alert(undefined != locations[15]["lat"]);

        try
        {
            for(var x = 0; x < locations.length; x++)
            {
                if (undefined != locations[x].lat && undefined != locations[x].lng)
                {
                    markersFar.push(getMarker(locations, x, "far", null));
                    markersNear.push(getMarker(locations, x, "near", numToOpen));
                }
            }
        }
        catch(err)
        {
        
        }

        markers = [markersFar, markersNear];
        
        setTimeout('createMarkerManager(map2,markers)',0);
    }

});


function createMarkerManager(map, markers) {
    
    var mgr = new MarkerManager(map);
           
    mgr.addMarkers(markers[0],1,5);

    mgr.refresh();

    mgr.addMarkers(markers[1],6);

    mgr.refresh(); 
}
