﻿/// <reference path="jquery-1.3.2-vsdoc2.js" />
// JScript File


var map;
var markerMgr;
var mapBounds;
var maxZoomDef;

    
function CustomIcon() { 
   this.IconImage = "";   
   this.ShadowImage = "";  
   //this.IconImageWidth = 25;
   //this.IconImageHeight = 30;
   this.IconImageWidth = 67;
   this.IconImageHeight = 54;
   //this.ShadowImageWidth = 25;
   //this.ShadowImageHeight = 30;   
   this.ShadowImageWidth = 67;
   this.ShadowImageHeight = 54;
   this.IconAnchorX = 0;
   this.IconAnchorY = 0;
 }

 function initialize(mapDivId, maxDefZoom, mapType, displayMapType, zoomAnchor, zoomControlType) {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById(mapDivId));
    //map.setCenter(new GLatLng(54.6230, -3.7793), 4);
    
      //map.setUIToDefault();
    }
   
   // forcing Satellite view
   map.setMapType(G_SATELLITE_MAP); // was addMapType
   // map.setMapType(mapType);   
   if(displayMapType)
   {
      var mapTypeControl = new GMapTypeControl();
      var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,10));
      map.addControl(mapTypeControl, topRight);
   }

   //Adding zoom control
   var mapZoomControl;
   
   if(zoomControlType == 'ZOOM_CONTROL_SMALL')
   {
      mapZoomControl = new GSmallMapControl();
   }
   else if(zoomControlType == 'ZOOM_CONTROL_LARGE')
   {
      mapZoomControl = new GLargeMapControl();
   }
   else if(zoomControlType == 'ZOOM_CONTROL_LARGE3D')
   {
      mapZoomControl = new GLargeMapControl3D();
   }
   else if (zoomControlType == 'ZOOM_CONTROL_SMALL_ZOOM')
   {
      mapZoomControl = new GSmallZoomControl();
   }
   else
   {
     mapZoomControl = null;
   }
   if(mapZoomControl !=null)
   {
   var zoomCtAnchor = new GControlPosition(zoomAnchor, new GSize(10,10));
   map.addControl(mapZoomControl, zoomCtAnchor);
   }

   
   GEvent.addListener(map, "movestart", function() {
        hideInfo();
    });
      GEvent.addListener(map, "move", function() {
        hideInfo();
    });
    maxZoomDef = maxDefZoom;

}

function addMapMarker(ptLat, ptLng, displayOnDefaultZoom, infoDivId,iconTitle,mapIcon)
{
    var maxZoom = maxZoomDef;
    var mapLtLng = new GLatLng(ptLat,ptLng);
    
    var opts1 = new Object();    
    opts1.title = iconTitle.replace("&quot;","'");
           
    if(mapIcon != null)
    {
        var Icon = new GIcon(G_DEFAULT_ICON);

        Icon.image = mapIcon.IconImage;
        Icon.shadow = mapIcon.ShadowImage;
        Icon.iconSize = new GSize(mapIcon.IconImageWidth,mapIcon.IconImageHeight);
        Icon.shadowSize = new GSize(mapIcon.ShadowImageWidth, mapIcon.ShadowImageHeight);
        if (mapIcon.IconAnchorX != 0 || mapIcon.IconAnchorY != 0) {
            var anchorPoint = new GPoint(mapIcon.IconAnchorX, mapIcon.IconAnchorY);
            Icon.iconAnchor = anchorPoint;
        }
        opts1.icon = Icon;
    }    
    var ptMarker = new GMarker(mapLtLng, opts1);    
   
    GEvent.addListener(ptMarker, "click", function() {
        displayInfoWindow(mapLtLng, infoDivId);
    });
    map.addOverlay(ptMarker);
    if (!map.isLoaded()) {
        map.setCenter(new GLatLng(ptLat, ptLng), maxZoom);  //LAT LONG AND ZOOM
        markerMgr = new GMarkerManager(map);
        mapBounds = map.getBounds();
    }
    if (displayOnDefaultZoom)
    {
        mapBounds.extend(mapLtLng);
    }
}


	function zoomMap()
	{	    
	    if ((map != null) && (mapBounds != null) && (markerMgr !=null)) {
	        var minZoom = 1;
	        var maxZoom = maxZoomDef;

	        var requiredZoom = map.getBoundsZoomLevel(mapBounds);	
	        if (requiredZoom > maxZoom)
	        {
	            requiredZoom = maxZoom;
	        }
	        
	        if (requiredZoom < minZoom)
	        {
	            requiredZoom = minZoom;
	        }	        
	        //alert(requiredZoom);
	        map.setZoom(requiredZoom-1); // -1 to ensure it is all easily visible within the div
	        map.setCenter(mapBounds.getCenter());
	        markerMgr.refresh();
	    }
	    else if (map != null)
	    {
	    	var tmpMapLatitude = 54.6230;
	    	var tmpMapLongitude = -3.7793;
		    var tmpMapZoom = 4;
	    	map.setCenter(new GLatLng(tmpMapLatitude,tmpMapLongitude),tmpMapZoom);
	    	//alert("Zoom Map");
	    }
	}
	
	function displayInfoWindow(mpLatLng, infoDivId)
	{
	    var mpPoint;
        //alert(infoDivId);
	    // hide any existing info containers that are already showing
	    hideInfo();
	    // move the map so that this port/ship is in the center of the map panel
	    map.setCenter(mpLatLng);
	    mpPoint = map.fromLatLngToContainerPixel(mpLatLng);
	    //var x = parseInt(mpPoint.x) - 85;
	    var x = parseInt(mpPoint.x) - 140;
	    //var y = parseInt(mpPoint.y) - 115;
	    var y = parseInt(mpPoint.y) - 159;
	    x = x + "px";
	    y = y + "px"
	    //alert("X =" + x + ", Y=" + y);
	    $(".mapInfoContainer").css("left", x);
	    $(".mapInfoContainer").css("top", y);
	    $(".mapInfoContainer .mpInfoInner").css("display", "none");
	    var imgLink = $(".mapInfoContainer #" + infoDivId + " .mpImageLink a").attr("href");
	    if (imgLink != null && imgLink != "") {
	        var imgHtml = "<img src='" + imgLink + "'/>";
	        $(".mapInfoContainer #" + infoDivId + " .mpInfoConLt").html(imgHtml);
	    }
	    $(".mapInfoContainer #" + infoDivId).css("display", "block");

	    $(".mapInfoContainer").css("display", "block");
	}
	
	function hideInfo()
	{
	//alert('hi');
	    $(".mapInfoContainer .mpInfoInner").css("display", "none");
	    $(".mapInfoContainer").css("display", "none");
	    $(".mapInfoContainer .mpInfoInner").hide();
	    $(".mapInfoContainer").hide();
	    // map.returnToSavedPosition();
	}