﻿var GMap;

$(document).ready(function(){
    
    GMap = {
        
        Canvas: $('#mapCanvas'),
        Latitude: 63.963265,
        Longitude: -20.536194,
        Map: null,
        MarkerManager: null,
        Zoom: 8,
        
        Init: function(){
          this.Load();
          this.Unload();
        },
        
        Load: function() {
            if (GBrowserIsCompatible()) {
                GMap.Map = new GMap2(GMap.Canvas[0]);
                GMap.Map.setCenter(new GLatLng(GMap.Latitude, GMap.Longitude), GMap.Zoom);
                var ui = GMap.Map.getDefaultUI();
                ui.maptypes.satellite = false;
                ui.maptypes.hybrid = false;
                ui.maptypes.physical = false;
                ui.controls.largemapcontrol3d = false;
                ui.controls.smallzoomcontrol3d = true;
                ui.controlsscalecontrol = false;
                GMap.Map.setUI(ui)
                GMap.MarkerManager = new MarkerManager(GMap.Map);
                
            }
        },
        
        CreateMarker: function(latlng, draggable){
            var icon = new GIcon();
            icon.image = '/Images/Map/Marker/image.png';
            icon.shadow = '/Images/Map/Marker/shadow.png';
            icon.iconSize = new GSize(32,32);
            icon.shadowSize = new GSize(48,32);
            icon.iconAnchor = new GPoint(16,32);
            icon.infoWindowAnchor = new GPoint(16,0);
            icon.printImage = '/Images/Map/Marker/printImage.gif';
            icon.mozPrintImage = '/Images/Map/Marker/mozPrintImage.gif';
            icon.printShadow = '/Images/Map/Marker/printShadow.gif';
            icon.transparent = '/Images/Map/Marker/transparent.png';
            icon.imageMap = [17,3,17,4,18,5,21,6,26,7,27,8,28,9,28,10,29,11,30,12,30,13,30,14,29,15,28,16,27,17,25,18,18,19,17,20,17,21,17,22,17,23,17,24,17,25,17,26,17,27,17,28,10,28,9,27,9,26,9,25,9,24,9,23,9,22,9,21,5,20,3,19,1,18,1,17,1,16,1,15,2,14,2,13,2,12,3,11,3,10,5,9,6,8,7,7,9,6,9,5,9,4,10,3];
            
            return new GMarker(latlng, {icon:icon, draggable: draggable});
        },
        
        CreateInfoWindow: function(marker, name, icelandicName, imageUrl, description){
            var info = '<div class="tooltip"><h4>' + name + ' (' + icelandicName + ')</h4><img alt="" src="' + imageUrl + '" /><div class="description">' + description + '</div>'
            
            GEvent.addListener(marker, 'click', function() {  
                marker.openExtInfoWindow(
                    GMap.Map,
                    'infowindow',
                    info,
                    {}
                ); 
            });

        },
        
        AddMarker: function(marker){
            
            GMap.MarkerManager.addMarker(marker, 1);
            GMap.RefreshMarker();
        },
        
        RefreshMarker: function(){
            GMap.MarkerManager.refresh();
        },
        
        Show: function(){
            GMap.Canvas.removeClass('hidden');
            GMap.Canvas.show();        
        },
        
        Hide: function() {
            GMap.Canvas.hide();
        },
        
        Slide: function(){
            if(GMap.Canvas.hasClass('hidden')){
                GMap.Canvas.css('display', 'none');
                GMap.Canvas.removeClass('hidden');
            }
            
            GMap.Canvas.toggle('slide', {direction: 'up'});
            
            if(Actions.Map.Button.html() == 'VIEW MAP'){
                Actions.Map.Button.html(' HIDE MAP');
            }
            else {
                Actions.Map.Button.html('VIEW MAP');
            }
        },
        
        Unload: function(){
            $(window).unload( function () { GUnload(); } );
        }
    };
    
    GMap.Init();
})
