
// A function to create the marker and set up the event window (iop seaglider)
function getMapcenter() {
	var center = map.getCenter();
	var z = map.getZoom();
	document.getElementById("coords").innerHTML = 'Map center:<br>' + center.y.toFixed(6) + ' ' + center.x.toFixed(6) + '<br>Zoom: ' + z;
}




      // A function to create the marker and set up the event window (iop seaglider)
   
 function createInfoMarker(map, point, html, options) {       
        var marker = new GMarker(point, options);
        GEvent.addListener(marker, "click", function() {
                           map.openInfoWindowHtml(point, html);
        });
        return marker;    
    }




      // A function to create the marker and set up the event window
      function createMarkerSide(point, name, html, options) {
        var marker = new GMarker(point, options);
        var linkid = "link"+i;
        GEvent.addListener(marker, "click", function() {
		  
		  document.getElementById("map_footer").innerHTML = html;  //display details in div under map
          //document.getElementById(linkid).style.background="#00ff00";

		  //marker.openInfoWindowHtml(html);
		  
		  
		  
		  map.setCenter(point, 9);                                    //set centre at clicked glider location and zoom to level 9
          
          lastlinkid=linkid;
        });
        // save the info we need to use later for the side_bar
        gmarkers[i] = marker;
        // add a line to the side_bar html
        side_bar_html += '<div id="'+linkid+'"><a href="javascript:myclick(' + i + ')">' + name + '</a><br></div>';
		

        i++;
        return marker;
      }




      // This function picks up the click and opens the corresponding info window
      function myclick(i) {
        GEvent.trigger(gmarkers[i], "click");
      }









    function pad(value, digits) {
        str = value + '';
        var pd = '';

        for (i = 0 ; i < digits - str.length ; i++) 
            pd = pd + '0';

        return pd + str;
    }


    function targetFormat(decDeg, sep) {
        deg = parseInt(decDeg);
        min = (decDeg - deg)*60.0;
        min = Math.abs(pad(min.toFixed(3), 6));
        return deg + sep + min;
    }

    function decFormat(ddmm) {
        var deg = parseInt(ddmm/100);
        var min = ddmm - deg*100;
        return deg + min/60;
    }

    function bearing(pt1, pt2) {
        var lat2 = pt2.lat()*Math.PI/180;
        var lat1 = pt1.lat()*Math.PI/180;
        var dLat = (lat2 - lat1);
        var dLon = (pt2.lng()-pt1.lng())*Math.PI/180;
        var y = Math.sin(dLon) * Math.cos(lat2);
        var x = Math.cos(lat1)*Math.sin(lat2) -
                Math.sin(lat1)*Math.cos(lat2)*Math.cos(dLon);
        var brng = (Math.atan2(y, x)*180/Math.PI + 360) % 360;

        return brng;
    }


    function reportPosition(latlng, from, posId, rngId) {

        if (posId) {
            document.getElementById(posId).value = 
                targetFormat(latlng.lat(), ':') + ', ' 
              + targetFormat(latlng.lng(), ':');
        }

        if (from && rngId) {   
            var range = latlng.distanceFrom(from.getLatLng());
            var brng = bearing(from.getLatLng(), latlng);

            if (range < 10000) {
                document.getElementById(rngId).value = 'range ' + range.toFixed(0) + ' m, bearing ' + brng.toFixed(1);
            }
            else {
                range = range/1000;
                document.getElementById(rngId).value = 'range ' + range.toFixed(1) + ' km, bearing ' + brng.toFixed(1);
            }
        }
    }

    function addBathymetry(map) {
        var tlo = new GTileLayerOverlay(
            new GTileLayer(null, null, null, {
                tileUrlTemplate: 'http://iop.apl.washington.edu/seaglider/tiles.php?file=bath_{X}_{Y}_{Z}.png',                isPng:true,
                opacity:1.0
            })
        );

        map.addOverlay(tlo);

        return tlo;
    }



function toggleTrackKml() {
      if (trackKmlToggleState == 1) {
        map.removeOverlay(trackKml);
        toggleTrackKml= 0;
      } else {
        map.addOverlay(trackKml);
        toggleTrackKml= 1;
      }
    }


function toggleMySst() {
      if (sstToggleState == 1) {
        map.removeOverlay(sstmap);
        sstToggleState = 0;
      } else {
        map.addOverlay(sstmap);
        sstToggleState = 1;
      }
    }

