var jsonLetto;
var mgrVett = [];
var markerCluster = [];

function caricaDati (tipo, tipoCanale) {
	
	loading (true);
	
	$.ajax({
        type: "POST",
        url: baseUrl+"caricaAll.php?tipoSel="+tipo+"&tipoCanaleSel="+tipoCanale,
        data: "",
        dataType: "json",
        success: function(json){
			jsonLetto = json;
			
			//distruggo i vettori centenenti markers manager e clusters
			for ( var appomgr in mgrVett) {
				mgrVett[appomgr].clearMarkers();
			}
			mgrVett = [];
			for ( var appocluster in markerCluster) {
				markerCluster[appocluster].clearMarkers();
			}
			markerCluster = [];
			
			for (appoRegione in arrCentroRegioni) {
			//for ( var i = 1; i < 21; i++) {
				//var appoRegione = String(json[i].nomeregione).toUpperCase();
				
				if (arrCentroRegioni[appoRegione]) {
					var mcOptions = {
							minimumClusterSize:1,
							gridSize: 50, 
							maxZoom: 15, 
							absoluteCenter: arrCentroRegioni[appoRegione], 
							absoluteMaxZoom: 9, 
							absoluteGridSize:500, 
							imagePath:baseUrl+'img/cluster/m'};
				} else {
					var mcOptions = {minimumClusterSize:1, gridSize: 500, maxZoom: 15, imagePath:baseUrl+'img/cluster/m'};
				}
				//markerCluster[i] = new MarkerClusterer(map, arrMarkersByReg[regione], mcOptions);
				markerCluster[appoRegione] = new MarkerClusterer(map, {}, mcOptions);
				
				
				mgrVett[appoRegione] = new MarkerManager(map, null, appoRegione);
				
				google.maps.event.addListener(mgrVett[appoRegione], 'loaded', function(identify){
					//carico le regioni
					var batchRegione = [];
					var batchCircFumetto = [];
					/*
					var markerOptions = {
						icon: baseUrl+"generaImgMarker.php?num=1"
					};
					*/
					for ( var i = 0; i < json.length; i++) {
						if (String(json[i].nomeregione).toUpperCase() == identify) {
							var x = 0;
							for (x = 0; x < json[i].TOT; x++) {
								var markerOptions = {
								        position: new google.maps.LatLng(json[i].X,json[i].Y), 
										title: '', 
										map: map, 
										icon: baseUrl+"generaImgMarker.php?num="+json[i].TOT
									};
								
								var markerRegione = new google.maps.Marker(markerOptions); 
								batchRegione.push(markerRegione);
								batchCircFumetto.push('fumettoGen('+json[i].X+','+json[i].Y+')');
							}
							
						}
					}
					
					if (batchRegione.length > 0) {
						
						markerCluster[identify].addMarkers(batchRegione, false);
						
						mgrVett[identify].addMarkers(batchRegione, 10, 19, batchCircFumetto);
						mgrVett[identify].refresh();
						
					}
					
					//in fase di aggiornamento dati, zoommando indietro e avanti
					//siamo sicuri che il cluster venga ridisegnato correttamente
					var zoomAttuale = map.getZoom();
					map.setZoom(zoomAttuale-1);
					map.setZoom(zoomAttuale);
					
					//unload del layer di attesa 
					loading (false);
					
				});			
				
				
			}
			
		}
    });	
	
	
	
}

function fumettoGen (x, y) {
	//alert (x+"-"+y);
	
	loading (true);
	
	var tipoSel = "0";
	if (document.getElementById("selTipo0").checked) {
		tipoSel = "0";
	} else if  (document.getElementById("selTipo1").checked) {
		tipoSel = "1";
	} else if  (document.getElementById("selTipo2").checked) {
		tipoSel = "2";
	}
	
	$.ajax({
        type: "GET",
        url: baseUrl+"caricaByCoord.php?x="+x+"&y="+y+"&tipoSel="+tipoSel,
        data: "",
        dataType: "json",
        success: function(json){
			//cancello eventuale dom esistente e lo ricreo
			loading (false);
			
			closeDOMPoupUp();
			openDOMPoupUp();
			//preparo il contenuto
			var contentHTML = '';
			contentHTML += '<a onClick="javascript:closeDOMPoupUp(); return false;" href="#" class="closeDOM" ><img src="' + baseUrl + '/img/chiudi.png" /></a>';
			contentHTML += '<div class="TitoloPopUp">';
			//contentHTML += 'Sperimetazioni e valutazioni';
			contentHTML += 'Dati della rilevazione e giudizi';
			contentHTML += '</div>';
			contentHTML += '<div style="overflow: auto; height: 300px; margin-top:10px;">';
			for ( var i = 0; i < json.length; i++) {
				/*
				contentHTML += '<div style="font-weight:bold;">';
				contentHTML += json[i].nome;
				contentHTML += '</div>';
				contentHTML += '<div>';
				contentHTML += '<u>Servizio:</u> '+json[i].denomservizio;
				contentHTML += '</div>';
				if (json[i].idcanali == 1) {
					contentHTML += '<div>';
					contentHTML += '<u>Canale:</u> Sportello';
					contentHTML += '</div>';
					contentHTML += '<div>';
					contentHTML += '<u>Citt&agrave;:</u> ';
					contentHTML += json[i].citta;
					contentHTML += '</div>';
					if (String(json[i].indirizzo) != 'null') {
						contentHTML += '<div>';
						contentHTML += '<u>Indirizzo:</u> ';
						contentHTML += json[i].indirizzo;
						contentHTML += '</div>';
					}
				} else {
					contentHTML += '<div><u>Canale:</u> ';
					if (json[i].idcanali == 2) {
						contentHTML += 'Web';
					} else if (json[i].idcanali == 3) {
						contentHTML += 'Telefonico';
					}
					contentHTML += '</div>';
				}
				contentHTML += '<div>';
				if (String(json[i].datarealeattivazione) == '0'
				|| String(json[i].datarealeattivazione) == ''
				|| String(json[i].datarealeattivazione) == 'null') {
					contentHTML += '<u>Data di previsto avvio</u>: '+conv_date_mysql2form(json[i].dataprevattivazione);
				} else {
					contentHTML += '<u>Data di avvio:</u> '+conv_date_mysql2form(json[i].datarealeattivazione);
				}
				contentHTML += '</div>';
				contentHTML += '<br/>';
				*/
				
				var nomeServ = '<div>';
				nomeServ += '<u>Servizio sottoposto a giudizio degli utenti:</u> '+json[i].denomservizio;
				nomeServ += '</div>';
				
				contentHTML += '<div style="font-weight:bold;">';
				contentHTML += json[i].nome;
				contentHTML += '</div>';
				if (json[i].idcanali == 1) {
					contentHTML += '<div>';
					contentHTML += '<u>Citt&agrave;:</u> ';
					contentHTML += json[i].citta;
					contentHTML += '</div>';
					if (String(json[i].indirizzo) != 'null') {
						contentHTML += '<div>';
						contentHTML += '<u>Indirizzo:</u> ';
						contentHTML += json[i].indirizzo;
						contentHTML += '</div>';
					}
					contentHTML += nomeServ;
					contentHTML += '<div>';
					contentHTML += '<u>Canale di erogazione:</u> Sportello';
					contentHTML += '</div>';
				} else {
					contentHTML += nomeServ;
					contentHTML += '<div><u>Canale di erogazione:</u> ';
					if (json[i].idcanali == 2) {
						contentHTML += 'Web';
					} else if (json[i].idcanali == 3) {
						contentHTML += 'Telefonico';
					}
					contentHTML += '</div>';
				}
				contentHTML += '<div>';
				if (String(json[i].datarealeattivazione) == '0'
				|| String(json[i].datarealeattivazione) == ''
				|| String(json[i].datarealeattivazione) == 'null') {
					contentHTML += '<u>Data di previsto avvio della rilevazione:</u> '+conv_date_mysql2form(json[i].dataprevattivazione);
				} else {
					contentHTML += '<u>Data di avvio della rilevazione:</u> '+conv_date_mysql2form(json[i].datarealeattivazione);
				}
				contentHTML += '</div>';
				contentHTML += '<br/>';				
				
				contentHTML += '<div>';
				if (json[i].totUtetotale) {
					if (json[i].totUte || json[i].totUteprec) {
						var percUteVot = (100 / json[i].totUtetotale) * json[i].tottotale;
						contentHTML += '<table class="TabEmoticon" width="700px">';
						
						contentHTML += '<tr style="height:30px;">';
						contentHTML += '<td style="width:150px; border:0px solid #000000;">&nbsp;</td>';
						contentHTML += '<td colspan="2"><b>&nbsp;Tasso di partecipazione *</b></td>';
						contentHTML += '<td>'
								+ '<b>&nbsp;' + number_format(percUteVot, 2, ',', '.')+ '% </b>'
								+ '</td>';
						contentHTML += '</tr>';
						
						contentHTML += '<tr style="height:30px;">';
						contentHTML += '<td style="width:150px; border:0px solid #000000;">&nbsp;</td>';
						contentHTML += '<td colspan="3" style="text-align:center; border-bottom:0px solid #000000;">Livello di soddisfazione **</td>';
						contentHTML += '</tr>';
						
						contentHTML += '<tr>';
						contentHTML += '<td style="width:150px; border:0px solid #000000;">&nbsp;</td>';
						contentHTML += '<td style="border-top:0px solid #000000;" align="center"><img src="img/green.jpg" alt="Giudizio positivo" id="imageGreen" width="32" height="32"></td>';
						contentHTML += '<td style="border-top:0px solid #000000;" align="center"><img src="img/yellow.jpg" alt="Giudizio neutro" id="imageYellow" width="32" height="32"></td>';
						contentHTML += '<td style="border-top:0px solid #000000;" align="center"><img src="img/red.jpg" alt="Giudizio negativo" id="imageRed" width="32" height="32"></td>';
						contentHTML += '</tr>';
					}
					
					if (json[i].totUte) {
						//ultimo mese della rilevazione
						//non è detto che ci sia, quindi se non c'è non lo stampo
						var percPos = (100 / json[i].tot) * json[i].pos;
						var percNeu = (100 / json[i].tot) * json[i].neu;
						var percNeg = (100 / json[i].tot) * json[i].neg;
						contentHTML += '<tr style="height:30px;">';
						contentHTML += '<td style="width:150px; font-size:10px; border:0px solid #000000;">Ultimo mese ('+json[i].nomemese+')</td>';
						contentHTML += '<td align="center">' + number_format(
								percPos, 2, ',', '.') + ' %</td>';
						contentHTML += '<td align="center">' + number_format(
								percNeu, 2, ',', '.') + ' %</td>';
						contentHTML += '<td align="center">' + number_format(
								percNeg, 2, ',', '.') + ' %</td>';
						contentHTML += '</tr>';
					}					
					
					if (json[i].totUteprec) {
						//ultimo mese della rilevazione
						//non è detto che ci sia, quindi se non c'è non lo stampo
						var percPosprec = (100 / json[i].totprec) * json[i].posprec;
						var percNeuprec = (100 / json[i].totprec) * json[i].neuprec;
						var percNegprec = (100 / json[i].totprec) * json[i].negprec;
						contentHTML += '<tr style="height:30px;">';
						contentHTML += '<td style="width:150px; font-size:10px; border:0px solid #000000;">Mese precedente ('+json[i].nomemeseprec+')</td>';
						contentHTML += '<td align="center">' + number_format(
								percPosprec, 2, ',', '.') + ' %</td>';
						contentHTML += '<td align="center">' + number_format(
								percNeuprec, 2, ',', '.') + ' %</td>';
						contentHTML += '<td align="center">' + number_format(
								percNegprec, 2, ',', '.') + ' %</td>';
						contentHTML += '</tr>';
					}
					
					if (!json[i].totUte && !json[i].totUteprec) {
						contentHTML += '<div>';
						contentHTML += '<i>Dato al momento non disponibile</i>';
						contentHTML += '</div>';						
					} else {
						contentHTML += '</table>';
					}
				}
				contentHTML += '</div>';
				contentHTML += '<br/>';
				contentHTML += '<hr class="LineaDivisionePopUp"/>';
				contentHTML += '<br/>';
			}
			contentHTML += '</div>';
			
			contentHTML += '<div style="font-size:10px;">';
			contentHTML += '<b style="font-size:10px;">Legenda</b>';
			contentHTML += '<br/>';
			contentHTML += '* Rapporto tra il numero di utenti che hanno espresso un giudizio e il numero di utenti che hanno usufruito del servizio, in valori percentuali';
			contentHTML += '<br/>';
			contentHTML += '** Distribuzione di frequenza dei giudizi espressi tra le tre faccine in valori precentuali';
			contentHTML += '<br/>';
			contentHTML += '</div>';
			//apro il pop-up
			setAndCenterDOMPoupUp(contentHTML);
			
			
		}
	});
	
}

function openDOMPoupUp (bloccaClick) {
	//Apre la finestra in primo piano e ci setta dentro il loading
	var modal = 0;
	if (bloccaClick) {
		modal = 1;
	}
	
	$.openDOMWindow({
		//height : 'auto',
		//width : 'auto',
		modal:modal,
		overlayOpacity : 25 
	});
	
	//imposta la chiusura del layer di sfondo 
	//altrimenti su ie e chrome va in blocco
	//non la impostiamo in caso di finestra modale perchè 
	//altrimenti il modale non funzionerebbe 
	if (modal == 0) {
		$('#DOMWindowOverlay').click(function() {
			closeDOMPoupUp();
			return false;
		});
	}
	
}

function setAndCenterDOMPoupUp(contenuto) {
	//Riempio la finestra, fisso le dimensioni e la centro
	$('#DOMWindow').html(" ");
	$('#DOMWindow').html(contenuto);
	$('#DOMWindow').css('height', 'auto');
	//$('#DOMWindow').css('width', '95%');
	$('#DOMWindow').css('width', '600px');
	$('#DOMWindow').css('padding', '10px');
	//Tolto il center... adesso si mette a possizione assoluta
	$('#DOMWindow').center(true);
	//$('#DOMWindow').css('left', '10px');
	//$('#DOMWindow').css('top', '50px');
	$('#DOMWindow').css('z-index', '99999');
}

function closeDOMPoupUp() {
	//Chiude la finestra con il meteo e rimuove lo strato d'ombra
	$('#DOMWindow').remove();
	$('#DOMWindowOverlay').remove();
	
}
