﻿var MapViewer = new __MapViewer();

function __MapViewer() {}

(function()
{

    try
    {
        var GMAP = null;
        var GMAP_LARGE = null;
    }
    catch(ex)
    {
    }

    __MapViewer.prototype.ShowMap = function()
    {
        if(MAP_DATA.length == 0) return;
        var panel = $("mapPanel");

        if(!GMAP)
        {
            GMAP = new GMap2(panel);
            GMAP.disableDoubleClickZoom();
            GMAP.addControl(new GLargeMapControl());
            //GMAP.addControl(new GMapTypeControl());
        }
        
        if(GMAP) getMap(GMAP);
    }
    
    __MapViewer.prototype.ShowLargeMap = function()
    {
        if(MAP_DATA.length == 0) return;

        var largePanel = document.getElementById("gmapPanelLarge");
        var panel = document.getElementById("gmapPanel");
        
        panel.style.display = "none";
        largePanel.style.display = "";

        if(!GMAP_LARGE)
        {
            GMAP_LARGE = new GMap2(largePanel);
            GMAP_LARGE.disableDoubleClickZoom();
            GMAP_LARGE.addControl(new GSmallMapControl());
            GMAP_LARGE.addControl(new GMapTypeControl());
        }
        
        if(GMAP_LARGE)
        {
            getMap(GMAP_LARGE);
        }
    }

    __MapViewer.prototype.ExpandMap = function(button)
    {
        if(!button) button = this;
        var map = document.getElementById("gmapPanel");
        var panel = map.parentNode.parentNode;
        
        panel.style.cssFloat = "";
        panel.style.styleFloat = "";
        panel.style.marginLeft = "";
        
        for(var i=0; i<panel.childNodes.length; i++)
        {
            if(panel.childNodes[i].className == "MapPanel_Top")
            {
                panel.childNodes[i].className = "JobExpandedMapPanel_Top";
            }
            else if(panel.childNodes[i].className == "MapPanel_Bottom")
            {
                panel.childNodes[i].className = "JobExpandedMapPanel_Bottom";
            }
        }
        
        this.ShowLargeMap();
        
        button.innerHTML = collapseLabel;
        button.onclick = function()
        {
            MapViewer.CollapseMap(this);
        }
    }

    __MapViewer.prototype.CollapseMap = function(button)
    {
        var map = document.getElementById("gmapPanelLarge");
        var panel = map.parentNode.parentNode;
        
        panel.style.cssFloat = "right";
        panel.style.styleFloat = "right";
        panel.style.marginLeft = "10px";

        for(var i=0; i<panel.childNodes.length; i++)
        {
            if(panel.childNodes[i].className == "JobExpandedMapPanel_Top")
            {
                panel.childNodes[i].className = "MapPanel_Top";
            }
            else if(panel.childNodes[i].className == "JobExpandedMapPanel_Bottom")
            {
                panel.childNodes[i].className = "MapPanel_Bottom";
            }
        }
        
        this.ShowMap();
        
        button.innerHTML = expandLabel;
        button.onclick = function()
        {
            MapViewer.ExpandMap(this);
        }
    }

    function getMap(map)
    {
        if(GBrowserIsCompatible())
        {
            var mapIndex = 0;
            var latlng = new GLatLng(MAP_DATA[mapIndex][2], MAP_DATA[mapIndex][3]);
            
            // Set center
            map.setCenter(latlng, 12);
            
            // Add marker overlay
            var cusIcon = new GIcon();
            cusIcon.image = "http://www.startuply.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);

            var marker = new GMarker(latlng, { icon:cusIcon });
            map.addOverlay(marker);
            
            // Add event to marker
            GEvent.addListener(marker, "click", openInfoWindow);
            GEvent.trigger(marker, "click");
        }
    }

    function openInfoWindow()
    {
        var mapIndex = 0;
        var branchName = "<div style=\"font-weight:bold;\">" + MAP_DATA[mapIndex][0] + "</div>";
        var logo = (LOGO_URL.length > 0 ? "<div style=\"text-align:center;margin-bottom:10px;height:70px;width:100%;background:url(" + LOGO_URL + ");background-repeat:no-repeat;background-position:center center;\">&nbsp;</div>" : "");
        var address = "";

        this.openInfoWindowHtml("<div style='width:200px;'>" + logo + branchName + MAP_DATA[mapIndex][1] + "</div>");
    }

})();