﻿/// <reference path="jquery-1.2.6-vsdoc.js"/>

$(document).ready(function() {

            var locations = {};

            var map = new GMap2(document.getElementById("map_canvas"));
            map.setCenter(new GLatLng(39.63953756436671, -101.25), 4);
            map.setUIToDefault();

            GDownloadUrl("clientMarkers.xml", function(data) {
                var xml = GXml.parse(data);
                var markers = xml.documentElement.getElementsByTagName("marker");
                for (var i = 0; i < markers.length; i++) {
                    var name = markers[i].getAttribute("name");
                    var loc = markers[i].getAttribute("location");
                    var logo = markers[i].getAttribute("logo");
                    var url = markers[i].getAttribute("url");
                    var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                  parseFloat(markers[i].getAttribute("lng")));
                    var client = { latlng: latlng, name: name, loc: loc, logo: logo, url: url };
                    var latlngHash = (latlng.lat().toFixed(6) + "" + latlng.lng().toFixed(6));
                    latlngHash = latlngHash.replace(".", "").replace(".", "").replace("-", "");
                    if (locations[latlngHash] == null) {
                        locations[latlngHash] = []
                    }
                    locations[latlngHash].push(client);
                }
                for (var latlngHash in locations) {
                    var clients = locations[latlngHash];
                    if (clients.length > 1) {
                        map.addOverlay(createClusteredMarker(clients));
                    } else {
                        map.addOverlay(createMarker(clients));
                    }
                }

    });




    function createMarker(clients) {
        var client = clients[0];
        var newIcon = MapIconMaker.createMarkerIcon({ width: 32, height: 32, primaryColor: "#CB8707" });
        var marker = new GMarker(client.latlng, { icon: newIcon });
        var html = "<b>" + client.name + "</b><br/>" + client.loc + "<br/><a href='http://" + client.url + "' >" + client.url + "</a>";
        GEvent.addListener(marker, 'click', function() {
            marker.openInfoWindowHtml(html);
        });
        return marker;
    }

    function createClusteredMarker(clients) {
        var newIcon = MapIconMaker.createMarkerIcon({ width: 44, height: 44, primaryColor: "#CB8707" });
        var marker = new GMarker(clients[0].latlng, { icon: newIcon });
        var html = "";
        for (var i = 0; i < clients.length; i++) {
            html += "<b>" + clients[i].name + "</b><br/>" + client.loc + "<br/><a href='http://" + client.url + "' >" + client.url + "</a>";
        }
        GEvent.addListener(marker, 'click', function() {
            marker.openInfoWindowHtml(html);
        });
        return marker;
    }

});
