/***** funzione che inizializza icona marker *****/
function markerIcon(autore) {

	var ext = 'u';
	var ico = 'sposta';
	var _autore = autore || $('#nomeutente').text();
	
	if (_autore=='Storiaindustria.it') var ext = 'r';
	
	var markerIcon = new GIcon();
	markerIcon.image = '/css/mappe/luoghi_produzione/im/marker/'+ico+'_'+ext+'/image.png';
	markerIcon.printImage = '/css/mappe/luoghi_produzione/im/marker/'+ico+'_'+ext+'/printImage.gif';
	markerIcon.mozPrintImage = '/css/mappe/luoghi_produzione/im/marker/'+ico+'_'+ext+'/mozPrintImage.gif';
	markerIcon.iconSize = new GSize(28,38);
	//markerIcon.shadow = '/css/mappe/luoghi_produzione/im/marker/'+ico+'_'+ext+'/shadow.png';
	markerIcon.transparent = '/css/mappe/luoghi_produzione/im/marker/'+ico+'_'+ext+'/transparent.png';
	//markerIcon.shadowSize = new GSize(47,38);
	//markerIcon.printShadow = '/css/mappe/luoghi_produzione/im/marker/'+ico+'_'+ext+'/printShadow.gif';
	markerIcon.iconAnchor = new GPoint(14,38);
	markerIcon.infoWindowAnchor = new GPoint(18,0);
	markerIcon.imageMap = [23,0,24,1,25,2,26,3,27,4,27,5,27,6,27,7,27,8,27,9,27,10,27,11,27,12,27,13,27,14,27,15,27,16,27,17,27,18,27,19,27,20,27,21,27,22,27,23,26,24,25,25,24,26,23,27,17,28,17,29,17,30,17,31,16,32,16,33,15,34,15,35,14,36,14,37,12,37,12,36,11,35,10,34,10,33,10,32,9,31,8,30,8,29,8,28,3,27,2,26,1,25,0,24,0,23,0,22,0,21,0,20,0,19,0,18,0,17,0,16,0,15,0,14,0,13,0,12,0,11,0,10,0,9,0,8,0,7,0,6,0,5,0,4,0,3,1,2,2,1,3,0];

	// Set up our GMarkerOptions object
	markerOptions = { icon:markerIcon, draggable:true };

}

/**** Inizializza ricerca indirizzo ****/  
function searchLocations(utente,id_stabilimento,lat,lng,status,address,zoom,azione,name) {
	
	var _name = name || 'Inserisci Stabilimento';
	var _azione = azione || 'inserisci_stabilimento_conferma';
	var _zoom = zoom || 15;
	var _id_stabilimento = id_stabilimento || '';
	var _utente = utente || '';
	
	map.clearOverlays();
  	hideTimeline();
		
	// Prende latitudine e longitudine
	var point = new GLatLng(lat,lng);
	var objAddress = {
		address: address,
		lat:lat,
		lng:lng
	}

	showAddress(objAddress,_azione,_id_stabilimento,_name,_utente,_zoom);
}



/***** Mostraindirizzo una volta cliccato sulla mappa *****/  
function showAddress(response, azione, id_stabilimento,name, utente, zoom) {
	
	var _azione = azione || 'inserisci_stabilimento_conferma';
	var _name   = name || 'Inserisci stabilimento';
	var _zoom   = zoom || 15;

	var address   = document.getElementById('addressInput').value+',';
	var provincia = document.getElementById('prov_desc').value+',';
	var regione   = document.getElementById('reg_desc').value+',';
	var comune    = document.getElementById('com_desc').value+',';
	
	if ((provincia) || (comune) || (address)) {
		var _zoom = zoom || 15;
	}
	
	map.clearOverlays();

	var place = response;
  	var lat = place.lat;
  	var lng = place.lng;
    
 	// Prende latitudine e longitudine
  	var point = new GLatLng(lat,lng);
    
  	markerIcon(utente);
	var marker = new GMarker(point,markerOptions);
	
	var address = place.address.replace('|',',');
	
	map.setCenter(point,_zoom);
	map.addOverlay(marker);
	
	MARKERS[0] = marker;
			
	if (_name=='Sposta stabilimento') {
		var descinfo = name;
		var descaction = 'Per aggiornare l\'indirizzo confermare le nuove coordinate.<br />';
		descaction += 'oppure clicca <a href="javascript:void(0)" onclick="Stabilimento.sposta(0)">qui</a>per spostare ancora lo stabilimento.';
	} else {
		var descinfo = 'Inserisci stabilimento';
		var descaction = 'Conferma la localizzazione dello stabilimento per proseguire e aggiungere dati.';
	}
	
	var html ='<div id="maxcontent">';
	html += '<h4>'+descinfo+'</h4>';
	html += '<h5>'+address+'</h5>';
	html += '<table summary="dettagli dello stabilimento">';
	html += '<tr>';
	html += '<th>Latitudine:</th>';
	html += '<td>'+lat+'</td>';
	html += '</tr>';
	html += '<tr>';
	html += '<th>Longitudine:</th>';
	html += '<td>'+lng+'</td>';
	html += '</tr>';
	html += '</table>';
	html += '<p>'+descaction+'</p>';
	html += '<p class="testonascosto">';
	html += '<input type="hidden" value="'+address+'" id="indirizzo_stab" name="indirizzo_stab">';
	html += '<input type="hidden" value="'+lat+'" id="latitudine" name="latitudine">';
	html += '<input type="hidden" value="'+lng+'" id="longitudine" name="longitudine">';
	html += '<input type="hidden" value="'+utente+'" id="proprietario" name="proprietario">';
	html += '<input type="hidden" value="'+document.getElementById('comuni').value+'" id="id_comune" name="id_comune">';
	html += '<input type="hidden" value="'+id_stabilimento+'" id="id_stabilimento" name="id_stabilimento">';
	html += '</p>';
	html += '</div>';

	_html = html +'</div>';
	
	html += '<div class="pulsanti">';
	html += '<input type="reset" value="annulla" onclick="Stabilimento.annulla_'+_azione+'('+id_stabilimento+')" class="puls pulsleft" />';
	html += '<input type="submit" value="conferma" id="id_submit_stabilimento_conferma" onclick="Stabilimento.'+_azione+'('+id_stabilimento+')"class="puls" />';
	html += '</div>';
	html += '</div>';

	GEvent.addListener(marker, "dragstart", function() {
      map.closeInfoWindow();
    });

	GEvent.addListener(marker, "dragend", function(overlay, point) {
		map.clearOverlays();
		
		var point = marker.getPoint();
		map.setCenter(point,_zoom);

		if (_azione == 'sposta_stabilimento_conferma') {
			geo(2,point,id_stabilimento,utente);
		} else {
			if (point) {
				var _point_lat = point.lat();
				var _point_lng = point.lng();
				var new_address = _point_lat.toFixed(5)+','+ _point_lng.toFixed(5);
									
				jQuery.ajax({
		        	type: "POST",
		        	dataType: "json",
		        	url: "/mappe/luoghi_produzione/index.php/geo",
		        data: ({
		            q: new_address
		        	}),
			 	success: function(json){
						var sta = json.status.substring(1,json.status.length-1);
						if (sta==200) {
					 		var	lng = json.longitude;
							var	lat = json.latitude;
							var	adr = json.address.substring(1,json.address.length-1);
				
							var address = adr.replace(',','|');
							
							searchLocations(utente,id_stabilimento,lat,lng,sta,address,_zoom,'inserisci_stabilimento_conferma','Inserisci stabilimento');
						} else {
							alert('Indirizzo non trovato!');
							$.unblockUI(); 
							return '';

						}
					}
				});
			}
		}
	});
	
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html);
	});
	
	GEvent.trigger(marker, 'click');
	
}	


/***** funzione che risetta gli rventi sul marker *****/
function recallMarker(marker) {
	map.closeInfoWindow();
	
	GEvent.addListener(marker, "click", function() {
		if (_html) {
			marker.openInfoWindowHtml(_html);
		}
	});
}