var explorateur_lat;
var explorateur_lng;
var explorateur_prox;
var explorateur_zoom;

// Affichage des services dans la zone indiquée
var chargeServices = function (){

	var script = document.createElement('script');
	script.src = 'http://www.keltoa.com/testg/sites_agences_data_cat.php?prox='+explorateur_prox+'&lat='+explorateur_lat+'&lng='+explorateur_lng;
	script.type = 'text/javascript';
	document.body.appendChild(script);
	cm_getJSON();	
};

var gestionRetour2 = function (str){
    document.getElementById('sidebarDIV').innerHTML = str;
};

var gestionErreur = function (){
    document.getElementById('sidebarDIV').innerHTML = 'Service indisponible ou défaillant';
};

// Gestion Map
var map, marker = null, mapMarkers = [], mapMeservices = [], mapHTMLS = [], bounds = new GLatLngBounds(), togglePano = 0;


	function toggleMyPano() {
  	  if (togglePano == 1) {
		var pano_layer = new PanoramioLayer(map);
		pano_layer.enable(false);
		togglePano = 0;
  	  } else {
		var pano_layer = new PanoramioLayer(map);
		pano_layer.enable();
		togglePano = 1;
 	  }
	}
	  



var cm_baseIcon = new GIcon();
cm_baseIcon.iconSize = new GSize(34, 34);
cm_baseIcon.iconAnchor = new GPoint(9, 34);
cm_baseIcon.infoWindowAnchor = new GPoint(9, 2);



var param_useSidebar = true;
var param_titleColumn = "title";
var param_descriptionColumn = "description";
var param_latColumn = "latitude";
var param_lngColumn = "longitude";
var param_idserviceColumn = "idservice";



var toggleState = new Array();
for (var s = 0; s < 500; s++) {
	toggleState[s] = 0;
}



var mapMeservices = new Array();
for (var s = 0; s < 500; s++) {
	mapMeservices[s] = new Array();
}





function explorateur_load(){
	if (GBrowserIsCompatible()){
		map = new GMap2(document.getElementById('map'));
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		map.addMapType(G_PHYSICAL_MAP);
		map.setMapType(G_PHYSICAL_MAP);
		map.setCenter(new GLatLng(explorateur_lat, explorateur_lng), 13);
		var point = new GLatLng(explorateur_lat, explorateur_lng);
		var marker = new GMarker(point);
		map.addOverlay(marker);
		chargeServices();
	} else {
		alert("Sorry, the Google Maps API is not compatible with this browser");
	} 
}



function detail_service(markerNum) {
	mapMarkers[markerNum].openInfoWindowHtml(mapHTMLS[markerNum]);
}

function close_detail_service(markerNum) {
	mapMarkers[markerNum].closeInfoWindow(mapHTMLS[markerNum]);
}



function cm_loadMapJSON(json) {

	for (var i = 0; i < json.feed.entry.length; i++) {
	var entry = json.feed.entry[i];
		if(entry["gsx$" + param_latColumn]) {

			var lat = parseFloat(entry["gsx$" + param_latColumn].$t);
			var lng = parseFloat(entry["gsx$" + param_lngColumn].$t);
			var point = new GLatLng(lat,lng);
			var html = "<div style='font-size:12px;'>";
			html += "<strong>" + entry["gsx$"+param_titleColumn].$t + "</strong>";
			var label = entry["gsx$"+param_titleColumn].$t;

			var idservice = parseFloat(entry["gsx$idservice"].$t);

			if(entry["gsx$" + param_descriptionColumn]) {
				html += "<br/>" + entry["gsx$"+param_descriptionColumn].$t;
			}
			html += "</div>";
			
			// on crée le marqueur
			var marker = cm_createMarker(point,label,html,idservice);
			map.addOverlay(marker);
			mapMarkers.push(marker);
			mapHTMLS.push(html);
			bounds.extend(point);

			mapMeservices[idservice].push(i);

      			// on le cache pour qu'il soit prêt à afficher
      			mapMarkers[i].hide();
		
			// barre de droite
			var markerA = document.createElement("span");
			markerA.style.color = "#000000";

			var sidebarText= "";

			sidebarText += label;
			markerA.appendChild(document.createTextNode(sidebarText));
		}
	}

	map.setZoom(map.getBoundsZoomLevel(bounds));
	map.setCenter(bounds.getCenter());
}



function togglemarkers(idservice) {
  if (toggleState[idservice] == 1) {
    for (var i=mapMeservices[idservice][0]; i<mapMeservices[idservice][0]+mapMeservices[idservice].length; i++) {
      mapMarkers[i].hide();
    }
    toggleState[idservice] = 0;
  } else {
    for (var i=mapMeservices[idservice][0]; i<mapMeservices[idservice][0]+mapMeservices[idservice].length; i++) {
      mapMarkers[i].show();
    }
    toggleState[idservice] = 1;
  }
} 



function cm_createMarker(point, title, html, idservice) {

	var label1 = 'D&eacute;tail';

	var markerOpts = {};
	var nIcon = new GIcon(cm_baseIcon);
	
	nIcon.image = "http://www.keltoa.com/testg/markers/"+idservice+".png";
	
	markerOpts.icon = nIcon;
	markerOpts.title = title;		 
	var marker = new GMarker(point, markerOpts);
	
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowTabsHtml([new GInfoWindowTab(label1,html)]);
	});
	return marker;
}



function cm_getJSON() {
	var scriptjson = document.createElement('script');
	scriptjson.setAttribute('src', 'http://www.keltoa.com/testg/sites_clients_data_json.php?lat='+explorateur_lat+'&lng='+explorateur_lng+'&prox='+explorateur_prox);
	scriptjson.setAttribute('id', 'jsonScript');
	scriptjson.setAttribute('type', 'text/javascript');
	document.documentElement.firstChild.appendChild(scriptjson);
}
