﻿    //<![CDATA[

    var map;
    var infoOpened;
    //var clusterer;

    var iconVarsity = new GIcon(); 
    iconVarsity.image = '/images/varsity_google_icon.png';
    iconVarsity.shadow = '/images/varsity_google_icon_shadow.png';
    iconVarsity.iconSize = new GSize(32, 23);
    iconVarsity.shadowSize = new GSize(48, 23);
    iconVarsity.iconAnchor = new GPoint(20, 22);
    iconVarsity.infoWindowAnchor = new GPoint(23, 19);
    
    var customIcons = [];
    customIcons["varsity"] = iconVarsity;

    function load() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.setMapType(G_SATELLITE_MAP);
        map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(40.7244, -95.00), 4);
        // TEMPORARY FOR TESTING MANHATTAN
        //map.setCenter(new GLatLng(40.7590026855469, -73.9654922485352), 10);
        
        GEvent.addListener(map, "moveend", this.onMapMoved);
        GEvent.addListener(map, "infowindowopen", this.onInfoWindowOpen); 
        //clusterer = new Clusterer(map);
        //clusterer.SetIcon(customIcons["varsity"]);

        plotVisibleMarkers();
        } 
        else {
          alert('Sorry, your browser is not compatible with Google Maps');
        }
    }
    
    function onMapMoved() {
        if( infoOpened == true ) {
            infoOpened = false;
            return;
        }
        map.clearOverlays();
        plotVisibleMarkers();
}

    function onInfoWindowOpen() {
        infoOpened = true;
    } 

    function plotVisibleMarkers() {
        var zoom = map.getZoom();
        var bounds = map.getBounds();
        var southWest = bounds.getSouthWest();
        var northEast = bounds.getNorthEast();
        var minX = southWest.lng();
        var maxX  = northEast.lng();
        var minY = southWest.lat();
        var maxY = northEast.lat();  
        var searchUrl = '/includes/xml/getschoolbyboundsxml.aspx?minX='+minX+'&maxX='+maxX+'&minY='+minY+'&maxY='+maxY;
        if(zoom>=6){
            GDownloadUrl(searchUrl, function(data) {
                var xml = GXml.parse(data);
                var markers = xml.documentElement.getElementsByTagName("marker");
                map.clearOverlays();
                map.setMapType(G_NORMAL_MAP);
                for (var i = 0; i < markers.length; i++) {
                    var name = markers[i].getAttribute('name');
                    var address = markers[i].getAttribute('address');
                    var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')), parseFloat(markers[i].getAttribute('long')));
                    var squadmarkers = markers[i].getElementsByTagName("squad");
                    var marker = createMarker(point, name, address, squadmarkers);
                    map.addOverlay(marker);
                    //clusterer.AddMarker(marker, "Varsity Teams");
                }
            });
        }
    }

    function createMarker(point, name, address, squadmarkers) {
        //var marker = new GMarker(point);
        var marker = new GMarker(point, customIcons["varsity"]);
        var html = '<p><strong>' + name + '</strong><br/>' + address+'</p>';
        
        /*** Add Squads for each School ******/
        var squadslist = "";
        for (var i = 0; i < squadmarkers.length; i++) {
            var squadid = squadmarkers[i].getAttribute('squadid');
            var squadname = squadmarkers[i].getAttribute('squadname');
            var squadYear = squadmarkers[i].getElementsByTagName("squadprofileyear");
            var squadslug = squadname.toLowerCase().replace(/[^a-z0-9-]+/g, '-').replace(/[-]+/g, '-').replace(/^-|-$/g, '');
            for (var j = 0; j < squadYear.length; j++) {
                var profileYear = squadYear[j].getAttribute('profileyear');
                squadslist = squadslist + "<li><a target='_blank' href='/community/" + squadid + "/" + profileYear + "/" + squadslug + ".aspx'>" + squadname +" - " + profileYear + "</a></li>";
            }
            //squadslist = squadslist + "<li><a href='/community/team.aspx?team="+squadid+"'>"+squadname+"</a></li>";
            //squadslist = squadslist + "<li><a target='_blank' href='/community/"+squadid+"/"+squadYear+"/"+squadslug+".aspx'>"+squadname+"</a></li>";
            //lnkContinue.NavigateUrl = String.Format("/community/{0}/{1}.aspx", currMember.Squad_ID, Utilities.StringHelper.GenerateSlug(sqd.Title));
        }
        if(squadslist.length>0)
            squadslist = "<ul id='mapsquadlist'>"+squadslist+"</ul>";
        html = html + squadslist;   
        // add click listener
        GEvent.addListener(marker, 'click', function() {
          marker.openInfoWindowHtml(html);
        });
        return marker;
    }
        

    function moveMap(selState){
        if(selState && selState!=''){
            var stateInfo = selState.split('|');
            map.setMapType(G_NORMAL_MAP);
            map.setCenter(new GLatLng(stateInfo[0], stateInfo[1]));
            map.setZoom(parseInt(stateInfo[2]));
        }
    }
