﻿window.unload = function() { GUnload(); };

var map = null;
var mm = null;
var curMarker = null;
var geocoder = null;
var delay = 350;
var timeout;
var icon = new GIcon();
var progressBar;
var nMax = 0;
var nCurrent = 0;
var nLat = 0;
var nLng = 0;

var standards = [["road", "rd"],
                        ["street", "st"],
                        ["avenue", "ave"],
                        ["av", "ave"],
                        ["drive", "dr"],
                        ["saint", "st"],
                        ["north", "n"],
                        ["south", "s"],
                        ["east", "e"],
                        ["west", "w"],
                        ["expressway", "expy"],
                        ["parkway", "pkwy"],
                        ["terrace", "ter"],
                        ["turnpike", "tpke"],
                        ["highway", "hwy"],
                        ["lane", "ln"],
                        ["(COMTE BEAUCE)", ""],
                        ["COMTE BEAUCE", ""],
                        ["COMPTE BEAUCE", ""],
                        ["st-", "saint-"],
                        ["ST-", "saint-"],
                        ["ste-", "sainte-"],
                        ["STE-", "sainte-"]
                     ];

function AdresseStandards(strWord) {
    for (var i = 0; i < standards.length; i++) {
        if (strWord == standards[i][0])
            strWord = standards[i][1];

        strWord = strWord.replace(standards[i][0], standards[i][1]);
    }

    // Mettre en lower case
    strWord = strWord.toLowerCase();
    // Enlever apostrophe
    strWord = strWord.replace(/'/g, "");
    // Remplacer les ponctuations
    strWord = strWord.replace(/\W/g, " ");
    // Remplacer les espaces multiples
    strWord = strWord.replace(/\s+/g, " ");

    return strWord;
}

function load() 
{
    if (GBrowserIsCompatible()) 
    {
        map = new GMap2(document.getElementById("zoneCarte"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(nLat, nLng), 7);
        map.setMapType(G_NORMAL_MAP);
        progressBar = new ProgressbarControl(map, { width: 150 });
        mm = new GMarkerManager(map);

        icon.image = "images/pin.png";
        icon.shadow = "images/pin_ombre.png";
        icon.iconSize = new GSize(16, 27);
        icon.shadowSize = new GSize(36, 23);
        icon.iconAnchor = new GPoint(5, 5);
        icon.infoWindowAnchor = new GPoint(5, 5);

        geocoder = new GClientGeocoder();
    }
}

function AddMarker(address, desc, i) 
{
    setTimeout("AddMarkerDelay('" + address + "','" + desc + "');", delay * (i + 1));
}

function AddMarkerDelay(address, desc) 
{
    if (geocoder) 
    {
        geocoder.getLatLng(address, function(point) 
        {
            if (point) 
            {
                var marker = new GMarker(point, icon)
                map.addOverlay(marker);

                GEvent.addListener(marker, "click", function() {
                    if (curMarker != null)
                        curMarker.closeInfoWindow();

                    var options = new Object();
                    options.maxWidth = 300;

                    var strDirection = '<br> <b><a href="http://maps.google.com/maps?saddr=&daddr=' + point.toUrlValue() + '" target ="_blank">Direction</a></b>';

                    marker.openInfoWindow(desc + strDirection, options);
                    curMarker = marker;
                });

                mm.addMarkers(marker, 0, 17);
            }
        });
    }

    clearTimeout(timeout);

    //Progress bar
    nCurrent++;
    progressBar.updateLoader(1);

    if (nCurrent >= nMax) {
        progressBar.remove();
        nCurrent = 0;
    }
}