// JavaScript Document

var iconBlue = new GIcon(); 
iconBlue.image = '/images/google_maps/markers/mm_20_blue.png';
iconBlue.shadow = '/images/google_maps/markers/mm_20_shadow.png';
iconBlue.iconSize = new GSize(12, 20);
iconBlue.shadowSize = new GSize(22, 20);
iconBlue.iconAnchor = new GPoint(6, 20);
iconBlue.infoWindowAnchor = new GPoint(5, 1);

var iconRed = new GIcon(); 
iconRed.image = '/images/google_maps/markers/mm_20_red.png';
iconRed.shadow = '/images/google_maps/markers/mm_20_shadow.png';
iconRed.iconSize = new GSize(12, 20);
iconRed.shadowSize = new GSize(22, 20);
iconRed.iconAnchor = new GPoint(6, 20);
iconRed.infoWindowAnchor = new GPoint(5, 1);

var customIcons = [];
customIcons["blue"] = iconBlue;
customIcons["red"] = iconRed;

function createMarker(point, name, address, type)
{
	var marker = new GMarker(point, customIcons[type]);
	var html = '<b>' + name + '</b><br />' + address;
    
	GEvent.addListener(marker, 'click', function() {
	marker.openInfoWindowHtml(html);
	});

return marker;
}

function loadMap()
{
var map = new GMap2(document.getElementById('map'));
map.addControl(new GSmallMapControl());
map.setCenter(new GLatLng(25.053801259285088, 102.71040916442871), 13);
return map;
}

function loadZone(map, language_code, zone_id, shading_color, border_color, marker_color)
{
GDownloadUrl("/" + language_code + "/zones/xml/" + zone_id + '/', function(data) {
	
	var xml = GXml.parse(data);
	var vertices = xml.documentElement.getElementsByTagName("vertex");
	var points = new Array();
    
        for (var i = 0; i < vertices.length; i++)
		{
        points[i] = new GLatLng(	parseFloat(vertices[i].getAttribute("lat")),
                             		parseFloat(vertices[i].getAttribute("lon")));
        }
		
	// re-add the first point, to loop the polygon
	points[vertices.length] = points[0];
	
	var polygonOptions = {clickable:false};
	var polygon = new GPolygon(points, shading_color, 1, 1, border_color, 0.2, polygonOptions);
	map.addOverlay(polygon);
	});

GDownloadUrl("/" + language_code + "/zones/markers/" + zone_id + '/', function(data) {
	
	var xml = GXml.parse(data);
	var markers = xml.documentElement.getElementsByTagName("marker");
    
        for (var i = 0; i < markers.length; i++) {
        var name = markers[i].getAttribute("name");
		var address = markers[i].getAttribute("address");
        var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                parseFloat(markers[i].getAttribute("lon")));
        var marker = createMarker(point, name, address, marker_color);
        map.addOverlay(marker);
        }
	});
}

/*function load()
{
	if (GBrowserIsCompatible())
	{
	var map = new GMap2(document.getElementById("map"));
	map.setCenter(new GLatLng(25.045015, 102.705521), 13);
	}
}*/
