﻿var MapViewer = new __MapViewer();

function __MapViewer() {}

(function()
{

    var GMAP = null;

    __MapViewer.prototype.ShowMap = function()
    {
        var panel = document.getElementById("gmapPanel");

        if(!GMAP)
        {
            GMAP = new GMap2(panel);
            GMAP.disableDoubleClickZoom();
            GMAP.addControl(new GSmallMapControl());
        }

        if(GMAP)
        {
            getMap(GMAP);
        }
    }

    function getMap(map)
    {
        if(GBrowserIsCompatible())
        {
            // Custom marker overlay
            var cusIcon = new GIcon();
            cusIcon.image = "http://www.jowba.com/App_Themes/" + SystemInfo.TemplateName + "/Images/Common/Map/Marker4.png";
            cusIcon.iconSize = new GSize(37, 42);
            cusIcon.iconAnchor = new GPoint(11, 30);
            cusIcon.infoWindowAnchor = new GPoint(9, 2);
            cusIcon.infoShadowAnchor = new GPoint(9, 2);

            // Set center
            map.setCenter(new GLatLng(45, -10), 2);

            // Create company markers
            for(var i=0; i<MAP_DATA.length; i++)
            {
                var latlng = new GLatLng(MAP_DATA[i][2], MAP_DATA[i][3]);

                // Add marker overlay
                var marker = new GMarker(latlng, { icon:cusIcon });
                map.addOverlay(marker);
                
                // Click event function
                function clickEvent()
                {
                    openInfoWindow(map, this);
                }

                // Add event to marker
                marker.__id = i;
                GEvent.addListener(marker, "click", clickEvent);
            }
        }
    }

    function openInfoWindow(map, marker)
    {
        var mapIndex = marker.__id;

        var companyName = "<div style=\"font-weight:bold;\">" + MAP_DATA[mapIndex][0] + "</div>";
        var companyLink = "<div style=\"margin-top:10px;\"><a href=\"../Companies/" + MAP_DATA[mapIndex][0].replace(new RegExp("[\\W_1234567890]+", "ig"), "_") + "_" + MAP_DATA[mapIndex][5] + ".aspx\">" + ViewProfileLabel + "</a></div>";
        var logo = (MAP_DATA[mapIndex][4] > 0 ? "<div style=\"text-align:center;margin-bottom:10px;\"><img src=\"" + SystemInfo.RootPath + "UserUploads/CompanyLogo/" + MAP_DATA[mapIndex][5] + ".png\" alt=\"\" /></div>" : "");

        marker.openInfoWindowHtml("<div style=\"width:200px;\">" + logo + companyName + MAP_DATA[mapIndex][1] + companyLink + "</div>");
        
        var zoomlevel = map.getZoom();
        if(zoomlevel == 9)
        {
            map.setCenter(new GLatLng(MAP_DATA[mapIndex][2], MAP_DATA[mapIndex][3]));
        }
        else
        {
            map.setCenter(new GLatLng(MAP_DATA[mapIndex][2], MAP_DATA[mapIndex][3]), 9);
        }
    }

})();