var idxURL = '/property/';

function initMap(div_id) {
    var map = new GMap2(document.getElementById(div_id));
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.setCenter(new GLatLng(40.466438,-106.811861), 11);
    return map;
}

function mapOverlay(map, kml_file)
{
    var geox = new GGeoXml(kml_file, function(){
        if (geox.loadedCorrectly()) {
            geox.gotoDefaultViewport(map);
        }
        map.addOverlay(geox);
    });
}

function plotPoint(gps, map) {
    point = getPoint(gps);
    map.setCenter(point, 15, G_NORMAL_MAP);
    map.addOverlay(new GMarker(map.getCenter()));
}

function getPoint(gps) {
    coords = gps.split(',');
    point = new GLatLng(coords[0], coords[1]);
    return point;
}

function createMarker(point, html, icon) {
    icon = icon || G_DEFAULT_ICON;
    var marker = new GMarker(point, icon);
    GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml(html);
    });
    return marker;
}

function plotMap(mapPoints, map) {
	var bounds = new GLatLngBounds();
	var display = false;
	$.each( mapPoints, function(i, o){
		if (o.gps) {
			display = true;
			point = getPoint(o.gps);
			var marker = createMarker(point, o.html);
			map.addOverlay(marker);
			bounds.extend(point);
		}
	});
	if (display) {
		map.setZoom(map.getBoundsZoomLevel(bounds));
		map.setCenter(bounds.getCenter());
	} else {
		//map.d obfuscated object containing map ID
		$(map.d).hide();
	}
}
function oldPlotMap(mapPoints, map) {
    var bounds = new GLatLngBounds();
    var display = false;
    $.each( mapPoints, function(i, o){
        if (o.fields.gps) {
            display = true;
            point = getPoint(o.fields.gps);
            html = o.fields.address + '<br />';
            html += '$' + longNum(o.fields.asking_price) + '<br />';
            html += '<a style="color:#00a" href="' + idxURL + 'listing/' +  o.pk + '">View Details &raquo;</a>';
            var marker = createMarker(point, html);
            map.addOverlay(marker);
            bounds.extend(point);
        }
    });
    if (display) {
        map.setZoom(map.getBoundsZoomLevel(bounds));
        map.setCenter(bounds.getCenter());
    } else {
        //map.d obfuscated object containing map ID
        $(map.d).hide();
    }
}

function plotLandmarks(landmarks, map) {
    $.each(landmarks, function(i, l){
        var icon = new GIcon();
        icon.image = mediaURL + l.icon.icon;
		var iconSize = l.icon.icon_size.split(',');
        icon.iconSize = new GSize(iconSize[0], iconSize[1]);
        icon.shadow = mediaURL + l.icon.shadow;
		var shadowSize = l.icon.shadow_size.split(',');
        icon.shadowSize = new GSize(shadowSize[0], shadowSize[1]);
		var iconAnchor = l.icon.anchor.split(',');
        icon.iconAnchor = new GPoint(parseInt(iconAnchor[0]), parseInt(iconAnchor[1]));
        var windowAnchor = l.icon.window_anchor.split(',');
		icon.infoWindowAnchor = new GPoint(parseInt(windowAnchor[0]), parseInt(windowAnchor[1]));
        icon.transparent = mediaURL + l.icon.transparent;
        icon.imageMap = l.icon.image_map.split(',');
        var point = getPoint(l.gps);
        var marker = createMarker(point, l.html, icon);
        map.addOverlay(marker);
    });
}

