	
	var iconsStores = new Array("A", "B", "C", "D", "E");
	//47°0°'N	08°18'E
	var latCenterCH = 47.0;
	var lngCenterCH = 8.18;
	var dftZoom = 11;	
	
	function loadMap() {
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());		
		//centra la Svizzera  con uno zoom minore di quello di default perchè non devo mostrare dettagli
		map.setCenter(new GLatLng(latCenterCH, lngCenterCH), 7);		
	 
		icon0 = new GIcon();
		icon0.image = "http://www.google.com/mapfiles/marker.png";
		
		icon0.shadow = "http://www.google.com/mapfiles/shadow50.png";
		icon0.iconSize = new GSize(20, 34);
		icon0.shadowSize = new GSize(37, 34);
		icon0.iconAnchor = new GPoint(9, 34);
		icon0.infoWindowAnchor = new GPoint(9, 2);
		icon0.infoShadowAnchor = new GPoint(18, 25);
	}
	
	
	function createIcon(){
		var iconObj = new GIcon();
		iconObj.shadow = "http://www.google.com/mapfiles/shadow50.png";
		iconObj.iconSize = new GSize(20, 34);
		iconObj.shadowSize = new GSize(37, 34);
		iconObj.iconAnchor = new GPoint(9, 34);
		iconObj.infoWindowAnchor = new GPoint(9, 2);
		iconObj.infoShadowAnchor = new GPoint(18, 25);
		return iconObj;
	}
	
	function addPointsFind(lat,lng,nomi) {
	
 		map = new GMap2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(latCenterCH, lngCenterCH), dftZoom);		
		geocoder = new GClientGeocoder();
		
		//creo un array che mi servirà per mostrare icone diverse per ogni punto
		var icons = new Array(createIcon(),createIcon(),createIcon(),createIcon(),createIcon());	 		
 		
 		sLat = lat.split(",");
 		sLng = lng.split(",");
 		sNomi = nomi.split(",");
 		for (var i=0; i<sLat.length; i++){
 			if (sLat[i]!='null'){
 				//imposto l'immagine dell'icona con lettera relativa
 				icons[i].image = "http://www.google.com/mapfiles/marker" + iconsStores[i] + ".png";
				newpoints[i] = new Array(sLat[i], sLng[i], icons[i], sNomi[i], sNomi[i]); 
			}
			
		}
		for(var i = 0; i < newpoints.length; i++) {
			if (newpoints[i]!=null){
				var point = new GPoint(newpoints[i][1],newpoints[i][0]);
				var popuphtml = newpoints[i][4] ;
				//var marker = createMarkerFind(point,newpoints[i][2],popuphtml);
				//markers.push(marker);
				//map.addOverlay(marker);
			}
		}
		
	}
	 
	function createMarkerFind(point, icon, popuphtml) {
		var popuphtml = "<div id=\"popup\">" + popuphtml + "<\/div>";
		var marker = new GMarker(point, icon);
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml(popuphtml);
		});
		return marker;
	}
	
	function createMarkerLista(point, icon, popuphtml) {
		var popuphtml = "<div id=\"popup\">" + popuphtml + "<\/div>";
		var marker = new GMarker(point, icon);
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml(popuphtml);	
					
			aggiungiRiga(point);			
			
		});
		return marker;
	}
	
	function createMarker2(point, icon, popuphtml) {
		var popuphtml = "<div id=\"popup\">" + popuphtml + "<\/div>";
		var marker = new GMarker(point, icon);
		GEvent.addListener(marker, "click", function() {			
			marker.openInfoWindowHtml(popuphtml);
			
		});
		return marker;
	}
	
	function aggiungiRiga(punto) {
		
		var ind = document.searchStores.indUtente.value;		
				
		var direzione = "from: " + encodeURIComponent(ind) + " to: " + punto.y + "," + punto.x;
		directions.clear();
		directions.load(direzione);
				
	}
	
	
    
    function showAddressFind(frm,indirizzo, pageList) {    	
    	addrEnc = encodeURIComponent(indirizzo);
        new GClientGeocoder().getLatLng(
          addrEnc,
          function(point) {
            if (!point) {
              alert(indirizzo + " nicht gefunden");
            } else {
              frm.lat.value = point.lat();
              frm.lng.value = point.lng();			  
              frm.addr.value = decodeURIComponent( escape(indirizzo));              
			  ///wps/wcm/myconnect/consumerch/ConsumerCH/fr/3Que+puis-je+faire/Localisation+centre/Les+centres+Amplifon+en+Suisse
			  frm.action = document.forms["helperUrls"].elements["centreAmpUrl"].value;
              frm.submit();
            }
          }
        );      
   }
   
   function showAddressLista(frm) { 
	addrEnc = encodeURIComponent(frm.address.value);
	  //if (geocoder) {
	geocoder = new GClientGeocoder();
        geocoder.getLatLng(
          addrEnc,
          function(point) {
            if (!point) {
              alert(frm.address.value + " nicht gefunden!");
            } else {
              frm.lat.value = point.lat();
              frm.lng.value = point.lng();			  
              frm.action = document.forms["helperUrls"].elements["centreAmpUrl"].value;
              frm.submit();
            }
          }
        );
      	//}
   	}
   	   	
   function inviaFormStore(addr,lat,lng){
   	var azione = document.forms["helperUrls"].elements["localisCentreAmpUrl"].value;
        azione += "?addr="+encodeURIComponent(addr)+"&lat="+lat+"&lng="+lng;
        document.appointment.action=azione;
        document.appointment.target="_parent";
        document.appointment.submit();
        
   }
   
   function showAddressApp() {  
		var indirizzo = document.appointment.branch.options[document.appointment.branch.selectedIndex].text;  
        document.appointment.addr.value = indirizzo;
        new GClientGeocoder().getLatLng(
          encodeURIComponent(indirizzo),
          function(point) {
            if (!point) {
              alert(indirizzo + " nicht gefunden!!");
            } else {
              document.appointment.lat.value = point.lat();
              document.appointment.lng.value = point.lng();
              inviaFormStore(decodeURIComponent( escape(indirizzo)), point.lat(), point.lng());
              
            }
          }
        );
      
   }
   
   function caricamento(){
   	if (cap!=""){
   		var f = document.getElementById("searchStores");
   		//showAddressFind(f, cap);
		showAddressFind(f, cap);
   		
   	}
   }
   
   function addPointsLista(lat,lng,nomi, indirizzo) {
    
    	map = new GMap2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(latCenterCH, lngCenterCH), dftZoom);		
		geocoder = new GClientGeocoder();
		directionsPanel = document.getElementById("route");
		directions = new GDirections(map,directionsPanel);
		
		//creo un array che mi servirà per mostrare icone diverse per ogni punto
		var icons = new Array(createIcon(),createIcon(),createIcon(),createIcon(),createIcon());		
	 		 		
 		for (var i=0; i<lat.length; i++){
 			if (lat[i]!=null && lng[i]!=null){
 				//imposto l'immagine dell'icona con lettera relativa
 				icons[i].image = "http://www.google.com/mapfiles/marker" + iconsStores[i] + ".png";
				newpoints[i] = new Array(lat[i], lng[i], icons[i], nomi[i], nomi[i]); 
			}
		}
		for(var i = 0; i < newpoints.length; i++) {
			var point = new GPoint(newpoints[i][1],newpoints[i][0]);
			var popuphtml = newpoints[i][4] ;
			var marker = createMarkerLista(point,newpoints[i][2],popuphtml);
			markers.push(marker);
			map.addOverlay(marker);			
		}
		
		new GClientGeocoder().getLatLng(
          	encodeURIComponent(indirizzo),
          	function(point) {
            		if (!point) {
              			alert(indirizzo + " nicht gefunden!!!");
            		} else {
              			document.searchStores.lat.value=point.y;
              			document.searchStores.lng.value=point.x;
              			var marker = createMarker2(point,indirizzo,indirizzo);
              			markers.push(marker);              
				        map.addOverlay(marker);
              			marker.openInfoWindowHtml(indirizzo);
              
              			map.setCenter(point, dftZoom);			  				  			  
            		}
          	}
        	);
		
		
	}


    	function goAppointment(){
			var r = document.getElementsByName("store1");
			var lung = r.length;
			for(var i = 0; i < lung; i++) {
				if(r[i].checked) {
					document.getElementById("idStore").value=r[i].value;
					break;
				}
			}
			var f = document.getElementById("storesResults");			
			//alert("f.action="+f.action);			
			//alert("document.forms[storesResults].action="+ document.forms["storesResults"].action);
			f.action += document.getElementById("idStore").value;
			//alert("f.action="+f.action);
			parent.location=f.action;			
			
		}
		
	function set_distance(lat,lng) {
		var campo;
		GEvent.addListener(direzione1,"load", function() { 
								campo = document.getElementById("km1");
								campo.innerHTML=direzione1.getDistance().html; 
							
								
        				});
        	GEvent.addListener(direzione2,"load", function() { 
								campo = document.getElementById("km2");
								campo.innerHTML=direzione2.getDistance().html; 
								
        				});
        	GEvent.addListener(direzione3,"load", function() { 
								campo = document.getElementById("km3");
								campo.innerHTML=direzione3.getDistance().html; 
							
        				});
        	GEvent.addListener(direzione4,"load", function() { 
								campo = document.getElementById("km4");
								campo.innerHTML=direzione4.getDistance().html; 
							
        				});
        	GEvent.addListener(direzione5,"load", function() { 
								campo = document.getElementById("km5");
								campo.innerHTML=direzione5.getDistance().html; 
							
        				});
        	direzione1.load("from: <%= indUtente %> to:"+ lat[0]+","+lng[0]);
        	direzione2.load("from: <%= indUtente %> to:"+ lat[1]+","+lng[1]);
        	direzione3.load("from: <%= indUtente %> to:"+ lat[2]+","+lng[2]);
        	direzione4.load("from: <%= indUtente %> to:"+ lat[3]+","+lng[3]);
        	direzione5.load("from: <%= indUtente %> to:"+ lat[4]+","+lng[4]);
        
        }                
	
	function goTo(lat,long){
		map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(lat, long), dftZoom);		
	}	
