var markers = new Array();
var infoWins = new Array();

function addMarkers() {
    var mapBounds = new google.maps.LatLngBounds();
    $("#output_panel > .output_parish").each(function() {
        parishTitle = $(this).find(".parish_title").text();
        parishJur   = $(this).find(".parish_jurisdiction").text();
        parishAddr  = $(this).find(".parish_address").text();
        parishCity  = $(this).find(".parish_city").text();
        parishState = $(this).find(".parish_state").text();
        parishZip   = $(this).find(".parish_zip").text();
        parishURL   = $(this).find(".parish_website").text();
        
        geocode     = $(this).find(".parish_geocode").text();
        latitude    = parseFloat($(this).find(".parish_latitude").text());
        longitude   = parseFloat($(this).find(".parish_longitude").text());
        
        if ((geocode == "exact") || (geocode == "approx")) {
            var markerImage = (geocode == "exact") ? "assets/snippets/Directory/img/marker_church.png" : 
                "assets/snippets/Directory/img/marker_approx.png";
            var latlng = new google.maps.LatLng(latitude,longitude);
            var marker = new google.maps.Marker({
                position: latlng,
                map: map,
                icon: markerImage
            });
            
            infoStr = "<div class='parish_info_window'><p><strong>"+parishTitle+"</strong></p>";
            infoStr += "<p class='map_infowin_jur'>"+parishJur+"</p>";
            infoStr += "<p>"+parishAddr+"</p>";
            
            directionStr = parishAddr+" "+parishCity+" "+parishState+" "+parishZip+" ";
            
            if (parishCity || parishState || parishZip) {
                infoStr += "<p>"+parishCity;
                if (parishCity && parishState) {
                    infoStr += ", ";
                }
                infoStr += parishState;
                if (parishState && parishZip) {
                    infoStr += " ";
                }
                infoStr += parishZip;
                infoStr += "</p>";
            }
            
            if (parishURL) {
                infoStr += "<a href='"+parishURL+"'>View the parish website</a><br />";
            }
            
            infoStr += "<p><a href='http://maps.google.com/?q="+encodeURIComponent(directionStr)+">Get directions</a></p>";
            infoStr += "</div>";
            
            
            
            var infowin = new google.maps.InfoWindow({
                content: infoStr
            });
            
            google.maps.event.addListener(marker,'click',function() {
                if (lastInfoWin) { lastInfoWin.close(); }
                infowin.open(map,marker);
                lastInfoWin = infowin;
            })
            
            $(this).click(function() {
                if (lastInfoWin) { lastInfoWin.close(); }
                infowin.open(map,marker);
                lastInfoWin = infowin;
            });
            
            mapBounds.extend(latlng);
            markers.push(marker);
            
        } else {
            markers.push(null);
        }
        
        
    });
    map.fitBounds(mapBounds);
}