if (typeof ubc === "undefined") ubc = {};

ubc.contact = function() {

    return {
        initPage: function() {
            var handler = function() {
                $(this).parent().toggleClass("address_container_active");
            };
            jQuery("A.address_heading").click(handler);
        },

        initMap: function(marker_image_path) {

            var addresses = jQuery("P.address SPAN.geo");

            var callback = function(address, index) {
                return new google.maps.LatLng(jQuery("SPAN.latitude SPAN", address).attr("title"),
                                              jQuery("SPAN.longitude SPAN", address).attr("title"));
            };

            var coordinates  = jQuery.map(addresses, callback);

            var config = {
                zoom: 2,
                center: coordinates[0],
                mapTypeId: google.maps.MapTypeId.ROADMAP,
                disableDefaultUI: true,
                navigationControl: true
            };

            var map = new google.maps.Map(document.getElementById("contact-map-canvas"), config);

            for (var i = 0; i < coordinates.length; i++) {
                var link = jQuery(addresses[i]).parent().prev("A");
                var marker = new google.maps.Marker({
                    position: coordinates[i],
                    map: map,
                    hash: link.attr("href"),
                    title: link.text(),
                    icon: marker_image_path
                });

                google.maps.event.addListener(marker, 'click', function() {
                    window.location.hash = marker.hash;
                });
            };
        }
    }
}();

