//obsluga map google
//KOD DO UPROSZCZENIA
// użyte biblioteki : google maps api, jquery, json2

function getData() {
	var ajax = jQuery.ajax({
  		url: "map-read.html",
  		data : {
			"professionId" : professionId
		},
  		async: false
 	}).responseText;
 	ajax = JSON.parse(ajax);
 	return ajax;
}

function createMarker(lat, lng, label) {
	var marker;
	marker = new GMarker(new GLatLng(lat, lng), { title : label });
	GEvent.addListener(marker, "click", function()
    	{	
    		var latlngtemp = lat + ", " + lng;
    		var html = jQuery.ajax({
    			type : "POST",
  				url: "map-infosmall.html",
  				data : {
    				"professionId" : professionId,
  					latlng : latlngtemp
  				},
  				async: false
 			}).responseText;
 			zoom = 6;
 			if (map.getZoom() >= zoom) {
 				zoom = map.getZoom();
 			}
   			map.setCenter(marker.getPoint(), zoom);
   			marker.openInfoWindowHtml(html, {maxContent: jQuery.ajax({
    			type : "POST",
  				url: "map-infolarge.html",
  				data : {
    				"professionId" : professionId,
  					latlng : latlngtemp
  				},
  				async: false
 			}).responseText , maxTitle: 'Participants from this location'});  
 	});

	return marker;	
}

function getMarkers() {
	var data = getData();
	var batch = [];
	for (var i = 0; data[i]; i++) {
		center = new GLatLng(data[i][0], data[i][1]);
		if (data[i]['count'] > 1) {
			label = data[i]['count'] + " users";
		} else {
			label = data[i]['count'] + " user";
		}
		batch.push(createMarker(data[i][0], data[i][1], label));	
	}
	return batch;
}

//dziwna inicjalizacja zmiennych, ale tylko tak działa
var map;
var mngr;
var geocoder = new GClientGeocoder();


//start mapy, sprawdza czy zmienna def jest zdefiniowana. powinna być definiowana dla małej mapki w widoku profilu
// dla dużej mapki def = null;
// AJ: dodatkowo obsługa professionId 
function load () {
	if (GBrowserIsCompatible()){
		map = new GMap2(document.getElementById("map"));
		if (def) {
			map.addControl(new GSmallZoomControl);
  			geocoder.getLatLng(def, function(def) {
        		map.setCenter(def, 6);
        		var marker = new GMarker(def);
        		map.addOverlay(marker);
        	} );
		} else {
			map.addControl(new GLargeMapControl());
   			map.enableScrollWheelZoom();
   			map.setCenter(new GLatLng(30, 0), 2);
   			mngr = new MarkerManager(map);
   			mngr.addMarkers(getMarkers(), 2);
   			mngr.refresh();
   			
		}
	}
}


//pokazuje adres wpisany w formularzu
function showAddress(address) {
  geocoder.getLatLng(
    address,
    function(point) {
      if (!point) {
        alert(address + " not found.");
      } else {
        map.setCenter(point, 7);
      }
    }
  );
}

//wyslanie ukrytego formularza ze wspolrzednymi dla masowego wysylania wiadomosci

function submitform()
{
  document.massMsg.submit();
}



var gmapOnloadOld = window.onload;
window.onload = function() {
	if ( gmapOnloadOld ) {
		try {
			gmapOnloadOld();
		} catch(e) {}
	}
	setTimeout("load()", 500);
	window.onunload = GUnload;
}

