﻿
var map;
var geocoder;
var bounds;

var _count = 0;
var _max = 0;

var secs;
var timerID = null;
var timerRunning = false;
var delay = 1000;

function InitializeTimer() {
    secs = 100;
    StopTheClock();
    StartTheTimer();
}

function StopTheClock() {
    if (timerRunning)
        clearTimeout(timerID);
    timerRunning = false;
}

function StartTheTimer() {
    if (secs == 0) {
        StopTheClock();
    }
    else {
        if (_max == _count) {
            SetZoom();
            StopTheClock();
        }
        else {
            self.status = secs;
            secs = secs - 1;
            timerRunning = true;
            timerID = self.setTimeout("StartTheTimer()", delay);
        }
    }
}

function SetZoom() {
    map.setZoom(map.getBoundsZoomLevel(bounds));
    map.setCenter(bounds.getCenter());
}

function initializeGoogleMap(address, control) {
    if (GBrowserIsCompatible()) {
        bounds = new GLatLngBounds;
        geocoder = new GClientGeocoder();

        map = new GMap2(document.getElementById(control));

        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());

        map.setCenter(new GLatLng(0, 0), 0);

        var addresses = address.split(";");

        _count = 0;
        _max = addresses.length;

        for (var i = 0; i < addresses.length; i++) {
            AddAddress(addresses[i]);
        }

        InitializeTimer();
    }
}

function AddAddress(address) {
    var data = address.split("~");

    if (data.length >= 5) {
        var locationlatlng = data[4];
        var templatlng = locationlatlng.split(",");

        var templatlng1 = new GLatLng(parseFloat(templatlng[0]),
                                          parseFloat(templatlng[1]));

        var marker = new GMarker(templatlng1);
        map.addOverlay(marker);
        bounds.extend(marker.getPoint());

        _count++;

        var html = "<b>" + data[0] + "</b><br />" + data[1] + "<br />Phone: " + data[2] + ", Fax: " + data[3];
        GEvent.addListener(marker, 'click', function () {
            marker.openInfoWindowHtml(html);
        });
    }
}
