var map = null;
var geocoder = null;

$(document).ready(function(){
	
	    $("select").change(function () {
         
          $("select option:selected").each(function () {
                changeCity( $(this).text() );
              });
        })
        .change();

});

function load() {
	
	if (document.getElementById("map")) {
		
		if (GBrowserIsCompatible()) {
		
			GDownloadUrl("xml/markers.xml", function(data, responseCode){
			
				var xml = GXml.parse(data);
				var cities = xml.documentElement.getElementsByTagName("marker");
				
				if (cities.length > 0) {
					
					var cityA = new Array();
					j=0;
					for (i = 0; i < cities.length; i++) {
						if( parseFloat(cities[i].getAttribute("display")) == 1 )
						cityA[j++] = cities[i].getAttribute("city");
					}
					
					cityA = unique(cityA).sort();
					
					for (name in cityA) {
						
							$("#select").addOption(cityA[name], cityA[name].toCapitalCase() );
					}
				}
				else 
					$("#select").addOption('Brak punktów', 'Brak punktów');
				
				$("#select").addOption('Polska', 'Polska');
			});
			
			
			
			map = new GMap2(document.getElementById("map"));
			var MapTypes = map.getMapTypes();
			
			MapTypes[0].getName = function(){
				return "Mapa";
			}
			MapTypes[1].getName = function(){
				return "Satelitarna";
			}
			MapTypes[2].getName = function(){
				return "Hybryda";
			}
			
			
			
			geocoder = new GClientGeocoder();
			geocoder.getLatLng("Polska", function(point){
				map.setCenter(point, 6)
			});
			
			map.addControl(new GLargeMapControl());
			map.addControl(new GMapTypeControl());
			
			getXML();
		}
	}
}

function getXML(){
	
	GDownloadUrl("xml/markers.xml", function(data, responseCode){
			
		var xml = GXml.parse(data);
		var markers = xml.documentElement.getElementsByTagName("marker");
					
		if (markers.length > 0) {
				
			for (i = 0; i < markers.length; i++) {
					
				if( parseFloat(markers[i].getAttribute("display")) == 1 ){
								
					var lat = parseFloat(markers[i].getAttribute("lat"));    
					var lng = parseFloat(markers[i].getAttribute("lng"));    
					var desc = '<b>'+markers[i].getAttribute("name")+'</b><br />';
						desc+= markers[i].getAttribute("city")+'<br />';
						desc+= markers[i].getAttribute("address")+'<br />';
						desc+= markers[i].getAttribute("phone");
						
					addMarker(new GLatLng(lat,lng),desc); 
				}
			
			}
		}
			
	});
}

GMarker.prototype.openAjaxInfoWindow = function(desc){
	
    var marker = this;  
		
	marker.openInfoWindowHtml(desc);  
   
} 

function addMarker(point,desc){
	  
    var marker = new GMarker(point);  
    marker.desc = desc;
    map.addOverlay(marker);  
	
    GEvent.addListener(marker,'click',function(){
		  
        marker.openAjaxInfoWindow(marker.desc);  
    });
	
    return marker;  
} 

function changeCity(name){

		name=='Polska'?z=6:z=11;;
		geocoder.getLatLng(name, function(point){
			map.setCenter(point, z)
		});		
}

