//<![CDATA[

$(window).load(function(){

    if(typeof gmap_starter == 'function') {
        gmap_starter();
    }

});

var marker          = new Array;    // contains GMarker objects
var marker_points   = new Array;    // keeps track of marker coordinates
var marker_infohtml = new Array();  // html content for marker infoWindow
var GIcons = new Array();

function add_markers_gmap_city() {

    // first get the size of the map
    x_min = map.getBounds().getSouthWest().lat();
    y_min = map.getBounds().getSouthWest().lng();
    x_max = map.getBounds().getNorthEast().lat();
    y_max = map.getBounds().getNorthEast().lng();

    // Now get data
    var request = GXmlHttp.create();
    request.open('GET', '/data/gmap_city/' + x_min + '/' + y_min + '/' + x_max + '/' + y_max + '/', true);
    request.onreadystatechange = function() {
        if (request.readyState == 4 && request.status == 200) {
            var xmlDoc = request.responseXML;
            var xmlrows = xmlDoc.documentElement.getElementsByTagName("Row");

            for (var i = 0; i < xmlrows.length; i++) {
                var xmlrow = xmlrows[i];
                // Read marker data from xml
                var marker_data = Array();
                esof_id                         = xmlrow.getElementsByTagName("esof_id")[0].firstChild.data;
                marker_data['point']            = new GLatLng(parseFloat(xmlrow.getElementsByTagName("google_x")[0].firstChild.data), parseFloat(xmlrow.getElementsByTagName("google_y")[0].firstChild.data));
                marker_data['marker_type']      = xmlrow.getElementsByTagName("marker_type")[0].firstChild.data;
                marker_data['esus_id']          = xmlrow.getElementsByTagName("esus_id")[0].firstChild.data;
                marker_data['esus_name']        = xmlrow.getElementsByTagName("esus_name")[0].firstChild.data;
                marker_data['estr_id']          = xmlrow.getElementsByTagName("estr_id")[0].firstChild.data;
                marker_data['estr_name_caps']   = xmlrow.getElementsByTagName("estr_name_caps")[0].firstChild.data;
                marker_data['geci_name']        = xmlrow.getElementsByTagName("geci_name")[0].firstChild.data;
                marker_data['esof_address']     = xmlrow.getElementsByTagName("esof_address")[0].firstChild.data;
                marker_data['esof_area']        = xmlrow.getElementsByTagName("esof_area")[0].firstChild.data;
                marker_data['esof_slug']        = xmlrow.getElementsByTagName("esof_slug")[0].firstChild.data;
                marker_data['esofph_filename']  = xmlrow.getElementsByTagName("esofph_filename")[0].firstChild.data;

                // Prepare html for infowindow
                var htmlString = '<div class="infowindow">'
                                    +'<h3><a href="/bedrijfspanden/'+marker_data['esof_slug']+'/">'+marker_data['estr_name_caps']+' '+marker_data['esus_name']+' '+marker_data['geci_name']+'</a></h3>'
                                    +'<a href="/bedrijfspanden/'+marker_data['esof_slug']+'/#tab-photos"><img src="http://www.bedrijfspand.com/pic_pand/1__'+marker_data['esofph_filename']+'" align="left" /></a>'
                                    +'<span class="address">'+marker_data['esof_address']+'</span><br />'
                                    +'<span class="area">Oppervlakte: '+marker_data['esof_area']+'</span>'
                                +'</div>';

                // Add marker
                markers['m_' + esof_id] = new GMarker(marker_data['point'], GIcons['esus_id_'+marker_data['esus_id']]);
                map.addOverlay(markers['m_' + esof_id]);
                markers['m_' + esof_id].bindInfoWindowHtml(htmlString);

                markerGroups['all'].push(markers['m_' + esof_id]);
                markerGroups[marker_data['marker_type']].push(markers['m_' + esof_id]);

                if(marker_data['estr_name_caps'] == "Te koop" || marker_data['estr_name_caps'] == "Te huur en te koop")
                { markerGroups['forsale'].push(markers['m_' + esof_id]); }

                if(marker_data['estr_name_caps'] == "Te huur" || marker_data['estr_name_caps'] == "Te huur en te koop")
                { markerGroups['forrent'].push(markers['m_' + esof_id]); }
            }

            // Initialize marker filter
            updateFilter();
        }
    }

    request.send(null);

}

//]]>