﻿//*************************************************************************************
// File     : google_map
// Requires : mf_domLibrary_0.1.js, prototype.js
// Author   : Frieder Mack, Kyle Weems (ksw)
// Origin   : mindfly.com
// Created  : July 2007
// Modified : May 22, 2009
// Purpose  : 
//*************************************************************************************

var pointyString = "";

//Loads Google Map
function load(latDlongD,zoomD) { 
  if (GBrowserIsCompatible()) {
    
    var tinyIcon = new GIcon();
    tinyIcon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
    tinyIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
    tinyIcon.iconSize = new GSize(6, 10);
    tinyIcon.shadowSize = new GSize(11, 10);
    tinyIcon.iconAnchor = new GPoint(6, 20);
    tinyIcon.infoWindowAnchor = new GPoint(5, 1);
    
    var map = new GMap2(document.getElementById("map"));
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    map.addControl(new GZoomControl());
    
    if (latDlongD != null) {
        map.setCenter(new GLatLng(latDlongD), zoomD);
    }
    else {
        map.setCenter(new GLatLng(48.804050, -122.54000), 10);
    }
        // Creates List of all elements with class name 'cbgPointType' which grabs all checkboxes
    function GetTypes() {
        var strTemp = ''
        
        var checkboxes = document.getElementsByClassName('cbgPointType');
        checkboxes.each(function(s) {
            if (s.checked == true) {
                strTemp = strTemp + s.value + '|';
            };
        });
        if (strTemp.length > 0) {
            strTemp = strTemp + 'nothing';
        };
        return strTemp;
    };

    // Creates a marker at the given point with the given number label
    function createMarker(point, text) {
      var marker = new GMarker(point, {icon:tinyIcon});
      var ControlPosition = new GControlPosition(marker.getPoint(), new GSize(10,10));
      GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml("<b>" + text + "</b>");
        map.addControl(new GSmallZoomControl(), ControlPosition);
      });
      return marker;
    }
    
    // An Event listener that gets map zoom level when zoomed
    GEvent.addListener(map, "zoomend", function() {
            //alert(map.getZoom());
    });
        
    var strTypes = GetTypes()
    var pointCount = 0;

    wcogMapPoints.each(function(value, index) {
        var pointParts = value.split("|");
        if (document.getElementById('cbPT').checked) {
            var point = new GLatLng(pointParts[0], pointParts[1]);
            map.addOverlay(createMarker(point, pointParts[2]));
        }
        else {
            pointyString = pointyString + pointParts[3].substr(0,3) + " ";
            pointCount = pointCount + 1;
            if (strTypes.include(pointParts[3])) {

                var point = new GLatLng(pointParts[0], pointParts[1]);
                map.addOverlay(createMarker(point, pointParts[2]));
            };
        };
        document.getElementById('divLoader').style.display = 'none';
    });

    pointyString = pointCount + ": " + pointyString;
    //alert(pointy);
    
  }
}

function ChangePoints(Int) {
    var LoaderDiv = document.getElementById('divLoader');
    LoaderDiv.style.display = '';
    
    var checkboxes = document.getElementsByClassName('cbgPointType');    
    if (Int == 0) {
            checkboxes.each(function(s) {
                s.checked = false;
            });
    }
    else {
        document.getElementById('cbPT').checked = false;
    };
    setTimeout("load();", 1000);
};
