﻿

$(document).ready(function() { //Start script when ready
    if (document.getElementById("map")) {//Checks to see that the page element exists and to prevent conflict with other maps

        //Default map center location
        var defaultLat = 37.644396;
        var defaultLon = -162.597656;

        var map = new google.maps.Map2($("#map").get(0)); //Initialise google maps

        $("#map").click(function() {
            $('#message').hide();
            $(".active").removeClass();
        });


        map.setCenter(new GLatLng(defaultLat, defaultLon), 2); //Set location to the default and zoom level
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        var icon = new GIcon();
        icon.image = "images/marker.png";
        icon.iconSize = new GSize(15, 15);
        icon.iconAnchor = new GPoint(0, 0);
        icon.infoWindowAnchor = new GPoint(0, 0);

        //		            var markers = new GMarker(point, icon);

        var markers = new Array();

        markers[0] = new Array(new GMarker(new GLatLng(44.273232, -88.440212), icon), "Location1", "<strong>All American Dist. Inc.</strong><br/>2140 West Wisconsin Ave<br />Appleton WI USA 54914<br/><strong>Phone:</strong> (920) 749-3744<br /><strong>Email:</strong> <a href='mailto:dbrock@tpo.net'>dbrock@tpo.net</a> ");
        markers[1] = new Array(new GMarker(new GLatLng(41.781446, -88.239526), icon), "Location2", "<strong>Aqua-Gon Inc</strong><br/>1728 North Aurora Road<br />Naperville Illinois United States 60563<br /><strong>Phone: </strong>(630) 355-5363<br /><strong>Web:</strong> <a href='http://www.aquagon.com'>www.aquagon.com</a>");
        markers[2] = new Array(new GMarker(new GLatLng(43.15181, -80.23097), icon), "Location3", "<strong>SCP Distributors</strong><br/>373 Elgin Street<br />Brantford Ontario Canada N3S 7P5<br /><strong>Phone: </strong>(519) 720 - 9219");
        markers[3] = new Array(new GMarker(new GLatLng(42.23916, -83.02286), icon), "Location4", "<strong>Eclipse Pool Products Inc.</strong><br/>2435 Kevin Street<br />Lasalle Ontario Canada N9H 2R2<br /><strong>Phone: </strong>(519) 966-8011 / (519) 818-7108<br/><strong>Fax: </strong>(519) 966-4788");
        markers[4] = new Array(new GMarker(new GLatLng(41.995092, -73.875411), icon), "Location5", "<strong>Fox Pools by Charles Burger</strong><br/>691 Milah Hill Road<br />Red Hook NY 12571");
        markers[5] = new Array(new GMarker(new GLatLng(44.30669, -77.95723), icon), "Location6", "<strong>SCP Distributors</strong><br/>24 Baker Street<br />Hastings Ontario Canada K7H 1P1 <br /><strong>Phone:</strong> (705) 696 - 2385");
        markers[6] = new Array(new GMarker(new GLatLng(26.15766, -81.75946), icon), "Location7", "<strong>Gorman's Supply Co. Inc. (Naples)</strong><br/>3989 Prospect Ave. Naples Florida USA 34104<br/><strong>Phone:</strong> (239) 643-2929<br/><strong>Email:</strong> <a href='mailto:prf249@hajoca.com'>prf249@hajoca.com</a><br/><strong>Web:</strong> <a href='www.gormannaples.com'>www.gormannaples.com</a>");
        markers[7] = new Array(new GMarker(new GLatLng(27.95243, -82.40291), icon), "Location8", "<strong>Gormans Supply Co. Inc. (Tampa)</strong><br/>4910 Adamo Drive<br />Tampa Florida USA 33605<br/><strong>Phone:</strong> (813) 247-6681<br /><strong>Email:</strong> <a href='mailto:prf216@hajoca.com'>prf216@hajoca.com</a><br /><strong>Web:</strong> <a href='http://www.gormantampa.com '>www.gormantampa.com</a> ");
        markers[8] = new Array(new GMarker(new GLatLng(27.98593, -82.74796), icon), "Location9", "<strong>Gorman's Supply Co.(Clearwater)</strong><br/>2154 Calumet Street<br />Clearwater Florida USA 33765<br/><strong>Phone:</strong> (727) 461-7013<br /><strong>Email:</strong> <a href='mailto:prf274@hajoca.com'>prf274@hajoca.com</a><br /><strong>Web:</strong> <a href='http://www.gormanpool.com/clearwater '>www.gormanpool.com/clearwater</a> ");
        markers[9] = new Array(new GMarker(new GLatLng(29.20306, -82.13469), icon), "Location10", "<strong>Gorman's Supply Company (Ocala)</strong><br/>125 N.E. 16th Street<br />Ocala Florida USA 34470-4106<br/><strong>Phone:</strong> (352) 629-8936<br /><strong>Email:</strong> <a href='mailto:prf211@hajoca.com'>prf211@hajoca.com</a><br /><strong>Web:</strong> <a href='http://www.gormanpool.com'>www.gormanpool.com</a> ");
        markers[10] = new Array(new GMarker(new GLatLng(43.026505, -81.377235), icon), "Location11", "<strong>Highbury Pools </strong><br/>21859 Highbury Ave. N.<br />Arva Ontario Canada N0M 1C0<br /><strong>Phone:</strong> 1-519-659-7000<br /><strong>Web:</strong> <a href='http://www.highburypools.com'>www.highburypools.com </a>");
        markers[11] = new Array(new GMarker(new GLatLng(49.90735, -97.201968), icon), "Location12", "<strong>Northwest Wholesale</strong><br/>1215 Border Street <br />Winnipeg Manitoba Canada R3H 0X9 <br /><strong>Phone:</strong> (203) 942-0137<br /><strong>Web:</strong> <a href='http://www.northwestwholesale.com'>www.northwestwholesale.com</a>");
        markers[12] = new Array(new GMarker(new GLatLng(26.495324, -81.887988), icon), "Location13", "<strong>Out Of Sight Pool Blankets</strong><br/>Fort Myers FLA 33908<br/><strong>Phone:</strong> 239-851-0616<br /><strong>Email:</strong> <a href='mailto:randy@outofsightpoolblankets.com'>randy@outofsightpoolblankets.com</a><br /><strong>Web:</strong> <a href='http://www.outofsightpoolblankets.com'>www.outofsightpoolblankets.com</a> ");
        markers[13] = new Array(new GMarker(new GLatLng(43.653366, -79.637629), icon), "Location14", "<strong>Poolwerx Inc </strong><br/>1650 Enterprise Road <br/>Mississauga Ontario Canada L4W 4L4 <br/> <strong>Phone:</strong> (905) 461-0313<br/><strong>Email:</strong> <a href='mailto:info@poolwerx.com'>info@poolwerx.com</a>");
        markers[14] = new Array(new GMarker(new GLatLng(42.82725, -85.675538), icon), "Location15", "<strong>Quality Pool Supply </strong><br/>539 76th Street SW<br/>Byron Center Michigan United States 49315<br/><strong>Phone:</strong> (616) 366-0100 / (800) 968-9555<br /><strong>Web: <a href='www.qualitypoolsupply.com'>www.qualitypoolsupply.com</a></strong>");
        markers[15] = new Array(new GMarker(new GLatLng(43.173603, -83.785359), icon), "Location16", "<strong>Quality Pool Supply (dist)</strong><br/>5303 W. Vienna Road <br/>Clio MI 48420<br/><strong>Phone:</strong>(810) 686-3010 / (800) 968-8878<br /><strong>Web: <a href='www.qualitypoolsupply.com'>www.qualitypoolsupply.com</a></strong>");
        markers[16] = new Array(new GMarker(new GLatLng(41.585014, -83.545578), icon), "Location17", "<strong>Quality Pool Supply (dist)</strong><br/>152 F Street - Ampoint <br/>Perrysburg Ohio 43551<br/><strong>Phone:</strong>(419) 666-3898 / (800) 968-3898<br/><strong>Web: <a href='www.qualitypoolsupply.com'>www.qualitypoolsupply.com</a></strong>");
        markers[17] = new Array(new GMarker(new GLatLng(40.10548, -83.19447), icon), "Location18", "<strong>Quality Pool Supply (dist)</strong><br/>7658 Fishel Drive North<br/>Dublin Ohio USA 43016<br/><strong>Phone:</strong>(614) 761-2935<br /><strong>Fax: </strong>(614) 761-3010");
        markers[18] = new Array(new GMarker(new GLatLng(43.15172, -80.23057), icon), "Location19", "<strong>SCP Distributors</strong><br/>373 Elgin St.<br/>Brantford Ontario Canada N3S 7P5<br/><strong>Phone:</strong>(519) 720-9219<br/><strong>Fax: </strong> (519) 756-0317<br/><strong>Web: </strong><a href='http://www.feherguard.com'>www.feherguard.com</a>");
        markers[19] = new Array(new GMarker(new GLatLng(42.282687, -83.013078), icon), "Location20", "<strong>Torlan Pool Products Inc. </strong><br/>303 Edinborough Street<br/>Windsor Ontario Canada N8X 3C3 <br/> <strong>Phone:</strong> (519) 969-0911 ");
        markers[20] = new Array(new GMarker(new GLatLng(-31.79317, 115.82316), icon), "Location21", "<strong>Waterblade Australia </strong><br/>39 Berriman dr. <br/>Wangara Perth WA 6065<br/> <strong>Email:</strong> <a href='mailto:sales@waterblade.com.au'>sales@waterblade.com.au </a>");        
        markers[21] = new Array(new GMarker(new GLatLng(26.44999928407478, -81.95000410079956), icon), "Location22", "<strong>Out Of Sight Pool Blankets - Randy McDaniel</strong><br/>P. O. Box 6012<br/>Fort Myers, Florida, USA 33932<br/> <strong>Phone:</strong> (239) 851-0616  <br/> <strong>Email:</strong> <a href='mailto:randy@outofsightpoolblankets.com'>randy@outofsightpoolblankets.com</a><br/> <strong>Web:</strong> <a href='http://www.outofsightpoolblankets.com'>www.outofsightpoolblankets.com</a>");
        markers[22] = new Array(new GMarker(new GLatLng(44.72226, -63.71105), icon), "Location23", "<strong>Atlantic Chemical & Aquatics</strong><br/>380 Bluewater Road<br/>Bedford, Nova Scotia, Canada B4B 1J3<br/> <strong>Phone:</strong> (800) 565-7925");
        markers[23] = new Array(new GMarker(new GLatLng(43.64189, -79.64110), icon), "Location24", "<strong>Kafko Manufacturing</strong><br/>1231 Kamato Road<br/>Mississauga, Ontario, Canada L4W 2M2<br/> <strong>Phone:</strong> 905-624-3000 | 905-624-5234");
        markers[24] = new Array(new GMarker(new GLatLng(43.15181, -80.23097), icon), "Location25", "<strong>Latham Splash Canada</strong><br/>383 Elgin Street<br/>Brantford, Ontario, Canada N3S 7P5<br/> <strong>Phone:</strong> 519-756-3442 | 519-756-0879");
        markers[25] = new Array(new GMarker(new GLatLng(43.53916, -79.70983), icon), "Location26", "<strong>Poolwerx Inc</strong><br/>3120 Pepper Mill Crt<br/>Mississauga, Ontario, Canada L5L 4X4<br/> <strong>Phone:</strong> 905-461-0313");
        markers[26] = new Array(new GMarker(new GLatLng(26.565047742888297, -81.85782194137573), icon), "Location27", "<strong>5 County Wholesale Distributors</strong><br/>2431 Crystal Drive<br/>Ft. Myers, Florida, USA 33907<br/> <strong>Phone:</strong> 239.939.7446<br/><strong>Web:</strong><a href='http://www.advancesolar.com'>www.advancesolar.com</a>");
        markers[27] = new Array(new GMarker(new GLatLng(43.81509, -79.483189), icon), "Location28", "<strong>Northeastern Swimming Pool Distributors</strong><br/>282 N. Rivermede Road<br/>Vaughan, ON Canada L4K 3N6<br/> <strong>Phone:</strong> 1-888-785-9676<br/><strong>Web:</strong><a href='http://www.nspd.net/'> http://www.nspd.net/</a>");


        $(markers).each(function (i, marker) {
            map.addOverlay(marker[0]);
            $("<li />")
		                    .html(markers[i][1])//Use list item label from array
		                    .click(function() {
		                        displayPoint(marker[0], i);
		                        setActive(this); //Show active state
		                        if ($('#message').is(':hidden')) {//Allow toggling of active state
		                            setActive();
		                        }
		                    })
		            .appendTo("#list");

            GEvent.addListener(marker[0], "click", function() {
                displayPoint(marker[0], i);
                setActive(i); //Show active location
                if ($('#message').is(':hidden')) {//Allow toggling of active state
                    setActive();
                }
            });
        });

        $("#message").appendTo(map.getPane(G_MAP_FLOAT_SHADOW_PANE));


        function displayPoint(marker, index) {
            if ($('#message').is(':hidden')) {//Allow toggling of markers
                $('#message').fadeIn();
            }
            else {//Remove all .active classes and hide markers
                $('#message').hide();
                $(".active").removeClass();
            }
            //$("#message").hide();//Default behaviour, doesn't allow toggling

            var moveEnd = GEvent.addListener(map, "moveend", function() {
                var markerOffset = map.fromLatLngToDivPixel(marker.getLatLng());
                $("#message")
							.html(markers[index][2])//Use information from array
							.fadeIn()
							.css({ top: markerOffset.y - 140, left: markerOffset.x - 140 });
                GEvent.removeListener(moveEnd);
            });
            map.panTo(marker.getLatLng());
        }

        function setActive(el) {
            $(".active").removeClass(); //Remove all .active classes
            $("#list").find('li').eq(el).addClass('active'); //Find list element equal to index number and set active
            $(el).addClass('active'); //Set active if list element clicked directly
        }
    } //End if map exists
});  //End onReady
