google.load("maps", "2");

$(document).ready(function(){
	if($("#google_map_canvas").length > 0) {
		initialize();
		$(window).unload(function(){
			GUnload();
		});
	}
});

var marks = [];

var iconType = [];
var map;
var markerClusterer = null;

function showHideMarker(id, icon) {
	if (id.checked) {
		for(var i=0; i<marks[icon].length; i++) {
			marks[icon][i].show();
		}
  }
	else { 
		for(var i=0; i<marks[icon].length; i++) { 
			marks[icon][i].hide();
		}
	} 
}

function createMarker(point, icon, info_basic, info_adv, title) {
	var mark = new GMarker(point, { title: title, icon: iconType[icon], hide: false });
	if(marks[icon] == undefined) {
		marks[icon] = [];
	}
	marks[icon].push(mark);

	var tabs = [];
	tabs[0] = new GInfoWindowTab("Základní", info_basic);
	/*tabs[1] = new GInfoWindowTab("Další tab", info_adv);*/

	GEvent.addListener(mark, "click", function() { mark.openInfoWindowTabsHtml(tabs); });
  GEvent.addListener(mark, "dblclick", function() { map.setMapType(G_SATELLITE_MAP); map.setCenter(point, 17); });
  //mark.openInfoWindowHtml(tabs);

  return mark;
}

function initialize() {
	if(GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("google_map_canvas"));
		// stred CR -> 49.79545,15.457764
		var center_gps_x = 48.731398;
		var center_gps_y = 14.21113;
		var map_zoom = 11;

		if($("#gMapCenter").length > 0) {
			// přenastavení centrování
			var val = $("#gMapCenter").attr("class").replace("center-coordinates:","").split('/');
			center_gps_x = val[0];
			center_gps_y = val[1];
			map_zoom = 14;
		}
		
		var latlng = new GLatLng(center_gps_x, center_gps_y);
		var defaultIcon = new GIcon(G_DEFAULT_ICON);

		var lang_id = $("#google_map_canvas").attr("class").replace("lang_","");

		var filter_values = $("#gMapFilter").attr("class").replace("filter-params:","");

    iconType[0] = new GIcon(defaultIcon);

    /*map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    map.setMapType(G_PHYSICAL_MAP);*/
    map.addControl(new GLargeMapControl3D());

    GDownloadUrl(httpPath+"ajax/presentation/google_maps/getXMLofPoints.php?lang_id="+lang_id+"&params="+filter_values, function(data) {
    	var xml = GXml.parse(data);
    	var ubytovatel = xml.documentElement.getElementsByTagName("ubytovatel");
    	for(var i = 0; i < ubytovatel.length; i++) {
   			var title = ubytovatel[i].getAttribute("name");
   			var info_basic = '<p><strong>'+title+'</strong></p>'+(ubytovatel[i].getAttribute("image") ? '<p><a href="'+ubytovatel[i].getAttribute("url")+'"><img src="'+httpPath+'files/lipensko/images/ubytovani/v-'+ubytovatel[i].getAttribute("image")+'" alt="'+ubytovatel[i].getAttribute("name")+'" /></a>' : '')+'</p><a href="'+ubytovatel[i].getAttribute("url")+'">Otevřít více informací</a>';
   			var info_adv = "";
   			var icon = 0;
      	var point = new GLatLng(parseFloat(ubytovatel[i].getAttribute("lat")), parseFloat(ubytovatel[i].getAttribute("lng")));
      	var marker = createMarker(point, icon, info_basic, info_adv, title);
      	map.addOverlay(marker);
    	}
    });
    // cela cr -> 7
    map.setCenter(latlng, map_zoom, G_HYBRID_MAP);
    map.setUIToDefault();
    //map.setMapType(G_SATELLITE_MAP);
    GEvent.addListener(map, "singlerightclick", function(){ 
    	map.setCenter(latlng, 11, G_HYBRID_MAP);
    	//map.setMapType(G_SATELLITE_MAP); 
    });
    // map.enableGoogleBar();
	}
}
