	
	var map;
	var baseIcon;
	var xmlResults;
	var maxresults=20;
	var extmarker;		
	
	var allmarkers = new Array();
	allmarkers['palazzi'] = new Array(); allmarkers['chiese'] = new Array();
	allmarkers['musei'] = new Array(); allmarkers['gallerie'] = new Array();
	allmarkers['ristoranti'] = new Array();	allmarkers['caffe'] = new Array();
	allmarkers['cinema'] = new Array();	allmarkers['discoteche'] = new Array();
	allmarkers['hotel'] = new Array(); allmarkers['teatri'] = new Array();	
	allmarkers['docks'] = new Array(); allmarkers['latino'] = new Array();
	allmarkers['murazzi'] = new Array(); allmarkers['qromano'] = new Array();
	allmarkers['etnici'] = new Array(); allmarkers['B&B'] = new Array();	
	allmarkers['results'] = new Array();
				
	var attributes = new Array();
	attributes['palazzi'] = new Array('P', 'blue', 0, '45.069084', '7.6850866', '15'); attributes['chiese'] = new Array('C', 'darkblue', 0, '45.07174', '7.6837', '15');		
	attributes['musei'] = new Array ('M', 'purple', 0, '45.06981', '7.68562', '15'); attributes['gallerie'] = new Array('G', 'pink', 0, '45.06676', '7.6902', '15'); 
	attributes['ristoranti'] = new Array('R', 'green', 0, '45.07469', '7.67817', '15'); attributes['caffe'] = new Array('C', 'grey', 0, '45.07111', '7.68453', '15'); 
	attributes['cinema'] = new Array('C', 'brown', 0, '45.06685', '7.68507', '15'); attributes['discoteche'] = new Array('L', 'cyan', 0, '45.06689', '7.69126', '15');
	attributes['hotel'] = new Array('H', 'yellow', 0, '45.06315', '7.67986', '15'); attributes['teatri'] = new Array('T', 'orange', 0, '45.06924', '7.6848', '15'); 	
	attributes['docks'] = new Array('D', 'cyan', 0, '45.09326', '7.68252', '17'); attributes['latino'] = new Array('A', 'cyan', 0, '45.0232', '7.63612', '15');
	attributes['murazzi'] = new Array('M', 'cyan', 0, '45.063500', '7.69608', '17'); attributes['qromano'] = new Array('Q', 'cyan', 0, '45.07546', '7.6793', '17');
	attributes['etnici'] = new Array('E', 'green', 0, '45.0726', '7.68271', '15'); attributes['B&B'] = new Array('B', 'lightblue', 0, '45.076', '7.67968', '15'); 		
	attributes['results'] = new Array('O', 'red');	
	
	// Create a marker whose info window displays the letter corresponding
	// to the given index.
	function createMarker(point, firstletter, colour, html) {		
			
		// Create a lettered icon for this point using our icon class from above
		if(firstletter!='') {
			var letter = String.fromCharCode(firstletter.charCodeAt(0));  				
		} else {
			var letter = '';
		}
		var icon = new GIcon(baseIcon);				
		icon.image = "./images/marker" + colour + letter + ".png";		
		var marker = new GMarker(point, icon);

		// Show this marker's index in the info window when it is clicked.		
		if(html) {
			GEvent.addListener(marker, 'click', function() {marker.openInfoWindowHtml(html);});
		}
		return marker;
	}
	
	function showtype(type) {
		if(!GBrowserIsCompatible()) return;
		downimg(type);
		// se i markers sono già stati creati visualizzali
		if(allmarkers[type].length) {						
			if(!attributes[type][2]) {		
				document.getElementById('wait').innerHTML='Waiting...';		
				attributes[type][2] = 1;
				for (var index = 0; index < allmarkers[type].length; index++) {
					map.addOverlay(allmarkers[type][index]);	
				}
				document.getElementById('wait').innerHTML='';
				map.setCenter(new GLatLng(parseFloat(attributes[type][3]),parseFloat(attributes[type][4])),parseInt(attributes[type][5]));				
			}
		} else {	
			document.getElementById('wait').innerHTML='Waiting...';
			attributes[type][2] = 1;
						  		
	  		var fletter = ((attributes[type][0]!=null) ? attributes[type][0] : '');	 	  		  		
	  		var colour = ((attributes[type][1]!=null) ? attributes[type][1] : '');
	  			 	  		  			
			var request = GXmlHttp.create();
			request.open('POST', "elementi.php", true);
			request.onreadystatechange = function() {
				if (request.readyState == 4) {
					var xmlDocument = request.responseXML;					
					var markers = xmlDocument.documentElement.getElementsByTagName("id");
										
					for (var index = 0; index < markers.length; index++) {						
						var point = new GLatLng(parseFloat(xmlDocument.getElementsByTagName("lat")[index].firstChild.nodeValue), parseFloat(xmlDocument.getElementsByTagName("lng")[index].firstChild.nodeValue));			  																	  			
						var text = buildinfomap(xmlDocument,index);									  			
			  			allmarkers[type][index] = createMarker(point, fletter, colour, text);		  					  			
						map.addOverlay(allmarkers[type][index]);			  			
					}
					document.getElementById('wait').innerHTML='';
					map.setCenter(new GLatLng(parseFloat(attributes[type][3]),parseFloat(attributes[type][4])),parseInt(attributes[type][5]));					
		  		}
			}			
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			request.send('elemento='+escape(type));						
		}		
	}
	
	function hidetype(type) {
		if(!GBrowserIsCompatible()) return;
		upimg(type);
		if(attributes[type][2]) {
			document.getElementById('wait').innerHTML='Waiting...';
			attributes[type][2] = 0;
			map.closeInfoWindow();
			for (var index = 0; index < allmarkers[type].length; index++) {						
				map.removeOverlay(allmarkers[type][index]);					
			}
			document.getElementById('wait').innerHTML='';
		}				
	}
	
	function showall() {
		if(!GBrowserIsCompatible()) return;
		var type;
		for (type in attributes) {
			showtype(type);				
		}	
	}
	
	function hideall() {
		if(!GBrowserIsCompatible()) return;
		document.getElementById('wait').innerHTML='Waiting...';
		cleandiv();
		clearresults();
		var type;
		for (type in attributes) {
			hidetype(type);
			allmarkers[type] = new Array();				
		}
		document.getElementById('wait').innerHTML='';				
	}
	
	function buildinfomap(xmlDoc,i) {		
		if(xmlDoc.getElementsByTagName("id")[i].firstChild){var id = xmlDoc.getElementsByTagName("id")[i].firstChild.nodeValue;} else {var id = '';}
		if(xmlDoc.getElementsByTagName("lat")[i].firstChild){var lat = xmlDoc.getElementsByTagName("lat")[i].firstChild.nodeValue;} else {var lat = 45.07111;}
		if(xmlDoc.getElementsByTagName("lng")[i].firstChild){var lng = xmlDoc.getElementsByTagName("lng")[i].firstChild.nodeValue;} else {var lng = 7.68453;}
		if(xmlDoc.getElementsByTagName("nome")[i].firstChild){var nome = xmlDoc.getElementsByTagName("nome")[i].firstChild.nodeValue;} else {var nome = '';}
		if(xmlDoc.getElementsByTagName("via")[i].firstChild){var via = xmlDoc.getElementsByTagName("via")[i].firstChild.nodeValue;} else {var via = '';}
		if(xmlDoc.getElementsByTagName("nciv")[i].firstChild){var nciv = ' '+xmlDoc.getElementsByTagName("nciv")[i].firstChild.nodeValue;} else {var nciv = '';}
		if(xmlDoc.getElementsByTagName("cap")[i].firstChild){var cap = xmlDoc.getElementsByTagName("cap")[i].firstChild.nodeValue;} else {var cap = '';}
		if(xmlDoc.getElementsByTagName("citta")[i].firstChild){var citta = xmlDoc.getElementsByTagName("citta")[i].firstChild.nodeValue;} else {var citta = '';}
		if(xmlDoc.getElementsByTagName("note")[i].firstChild){var note = xmlDoc.getElementsByTagName("note")[i].firstChild.nodeValue;} else {var note = '';}
		if(xmlDoc.getElementsByTagName("tel")[i].firstChild){var tel = 'Tel.: '+xmlDoc.getElementsByTagName("tel")[i].firstChild.nodeValue;} else {var tel = '';}
		if(xmlDoc.getElementsByTagName("fax")[i].firstChild){var fax = 'Fax: '+xmlDoc.getElementsByTagName("fax")[i].firstChild.nodeValue;} else {var fax = '';}
		if(xmlDoc.getElementsByTagName("mail")[i].firstChild){var mail = '<a href="mailto:'+xmlDoc.getElementsByTagName("mail")[i].firstChild.nodeValue+'">e-mail</a>';} else {var mail = '';}
		if(xmlDoc.getElementsByTagName("www")[i].firstChild){var www = '<a href="'+xmlDoc.getElementsByTagName("www")[i].firstChild.nodeValue+'" target="_blank">www</a>';} else {var www = '';}
		if(xmlDoc.getElementsByTagName("img")[i].firstChild){var img = xmlDoc.getElementsByTagName("img")[i].firstChild.nodeValue;} else {var img = '';}
		if(xmlDoc.getElementsByTagName("int")[i].firstChild){var int = xmlDoc.getElementsByTagName("int")[i].firstChild.nodeValue;} else {var int = '';}
		if(!www || !mail){var space = '';} else {var space = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';}															  			
		if(img) {					
			//var alter = img.substr(0,img.indexOf("."));
			//alter = alter.replace(/_/g, " ");
			var alter = nome;
			img = '<img style="border: 2px solid #cccccc;" src="http://www.visitatorino.com/en/googlemaps/images/'+img+'" alt="'+alter+'" title="'+alter+'" />';
			if(int!='') img = '<a href="'+int+'" target="_blank">'+img+'</a>';			
		}
		var text = '<table cellpadding="0" cellspacing="0" style="width: 10em; padding-bottom: 8px; margin-left: 6px; margin-top: 4px; font-family: arial, helvetica, sans-serif; font-size: 14pt;">';
  		text+= '<tr><td align="center" style="font-size: 12pt; font-weight: bold;">'+nome+'</td></tr>';
  		if(via || nciv || cap || citta) text+= '<tr><td align="center" style="padding: 0px; font-size: 8pt;">'+via+nciv+', '+cap+' '+citta+'</td></tr>';
  		if(note) {note=note.replace(/-br-/, "<br />"); text+= '<tr><td align="center" style="padding: 0px; font-size: 8pt;">'+note+'</td></tr>';}
  		if(tel)	text+= '<tr><td align="center" style="padding: 0px; font-size: 8pt;">'+tel+'</td></tr>';
  		if(fax)	text+= '<tr><td align="center" style="padding: 0px; font-size: 8pt;">'+fax+'</td></tr>';
  		if(www || mail)	text+= '<tr><td align="center" style="padding: 0px; font-size: 8pt;">'+www+space+mail+'</td></tr>';
  		if(img)	text+= '<tr><td height="83" align="center" style="padding-top: 8px;">'+img+'</td></tr>';
		text+= '</table>';
		return text;	
	}

	function trova(testo) {
		if(!GBrowserIsCompatible()) return;
		
		document.getElementById('wait_search').innerHTML='Waiting...';
		cleandiv();
		clearresults();
		var request = GXmlHttp.create();
		request.open('POST', "ricerca.php", true);
		request.onreadystatechange = function() {
			if (request.readyState == 4) {
				xmlResults = request.responseXML;
				var results = xmlResults.documentElement.getElementsByTagName("id");
									
				for (var index = 0; index < results.length; index++) {											
					if(xmlResults.getElementsByTagName("file")[index].firstChild){var file = xmlResults.getElementsByTagName("file")[index].firstChild.nodeValue;} else {var file = '';}
					if(xmlResults.getElementsByTagName("search")[index].firstChild){var search = xmlResults.getElementsByTagName("search")[index].firstChild.nodeValue;} else {var search = '';}
					document.getElementById('testo'+(index+1).toString()).innerHTML = '<b><a href="#" class="result" onclick="showinmap('+index+',\''+file+'\');">'+search+'</a></b>';
					document.getElementById('round'+(index+1).toString()).innerHTML = '<a href="#" class="result" onclick="showinmap('+index+',\''+file+'\');"><img align="center" alt="Categoria '+file+'" title="Categoria '+file+'" border="0" src="./images/circle'+attributes[file][1]+'.png" /></a>';				  			
				}
				if(index == 0) {
					document.getElementById('wait_search').innerHTML='-- No found result --';
				} else {
					document.getElementById('wait_search').innerHTML='-- Found '+index+' results --';	
				}
	  		}
		}					
		request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		request.send('testo='+escape(testo));			
	}
	
	function cleandiv() {		
		for (var index = 0; index < maxresults; index++) {														
			document.getElementById('testo'+(index+1).toString()).innerHTML = '';				  			
			document.getElementById('round'+(index+1).toString()).innerHTML = '';				  			
		}	
	}
	
	function showinmap(idx,type) {
		if(!GBrowserIsCompatible()) return;		
		
		var point = new GLatLng(parseFloat(xmlResults.getElementsByTagName("lat")[idx].firstChild.nodeValue), parseFloat(xmlResults.getElementsByTagName("lng")[idx].firstChild.nodeValue));

		if(!allmarkers['results'][idx]) {					
			var text = buildinfomap(xmlResults,idx);									  			
			allmarkers['results'][idx] = createMarker(point, attributes['results'][0], attributes[type][1], text);		  					  			
			map.addOverlay(allmarkers['results'][idx]);
		}		
		map.panTo(point);		
	}
	
	function clearresults() {													
		map.closeInfoWindow();
		for (var index = 0; index < allmarkers['results'].length; index++) {						
			map.removeOverlay(allmarkers['results'][index]);	
		}
		if(extmarker) {
			map.removeOverlay(extmarker);
			extmarker = "";
		}
		allmarkers['results'] = new Array();
		document.getElementById('wait_search').innerHTML='';	
	}
	
	//funzioni per la gestione pulsanti visualizza - nascondi
	if(document.images) {
  		showup = new Image(20,20);
  		showup.src = "./images/showup.png";
  		hideup = new Image(20,20);
  		hideup.src = "./images/hideup.png";	  		
  		showdown = new Image(20,20);
  		showdown.src = "./images/showdown.png";
  		hidedown = new Image(20,20);
  		hidedown.src = "./images/hidedown.png";
  	}
  	
  	function downimg (imgname) {
  		if(document.images && imgname!='results') {
  			document.images['show'+imgname].src = showdown.src;
  			document.images['hide'+imgname].src = hideup.src;  			  			
  			document.getElementById(imgname).style.fontWeight='bold';
  		}  				
  	}
  	
  	function upimg (imgname) {
  		if(document.images && imgname!='results') {
  			document.images['hide'+imgname].src = hidedown.src;
  			document.images['show'+imgname].src = showup.src;
  			document.getElementById(imgname).style.fontWeight='normal';
  		}	
  	}
	
	/* Codice js di Booking della casella di ricerca Hotel */

	function yearBuilder(x) {

		//comment following code and decomment nextone if you want four numbers year style
		/*if(x==1) {
		   var data= new Date();
		  var currentYear = data.getFullYear();
		  document.write ('<select name="checkin_year" class="checkDate">')
		  for (var cnt = 0; cnt <= 1; cnt++) {
			var stringa = String(currentYear);
			var subYear = stringa.substring(2,4);
			document.writeln('<option value="' + currentYear + '">\' ' + subYear  +

		'</option>');
			currentYear++;
		  }
		 document.write ('</select>')}

		else {
		  var data= new Date();
		  var currentYear = data.getFullYear();
		document.write ('<select name="checkout_year" class="checkDate">')
		  for (var cnt = 0; cnt <= 1; cnt++) {
			var stringa = String(currentYear);
			var subYear = stringa.substring(2,4);
			document.writeln('<option value="' + currentYear + '">\' ' + subYear  +

		'</option>');
			currentYear++;
		  }
		 document.write ('</select>')
		}*/

		//Comment following code if the previous one is decommented
		if(x==1) {
			var data= new Date();
			var currentYear = data.getFullYear();
			document.write ('<select name="checkin_year" class="checkDate">')
			for (var cnt = 0; cnt <= 1; cnt++) {
				document.writeln('<option value="' + currentYear + '">' + currentYear +	'</option>');
				currentYear++;
			}
			document.write ('</select>')
		} else {
			var data= new Date();
			var currentYear = data.getFullYear();
			document.write ('<select name="checkout_year" class="checkDate">')
			for (var cnt = 0; cnt <= 1; cnt++) {
				document.writeln('<option value="' + currentYear + '">' + currentYear +	'</option>');
				currentYear++;
			}
			document.write ('</select>')
		}
	}//function yearBuilder


	//Usp
	var uspnum = 0;
	var usp= new Array();

	usp[0] = "Book online!";
	usp[1] = "Pay at the hotel";


	function showusp(){
		var el = document.getElementById('usps');
		el.innerHTML = "";
		if (uspnum % 2) {
			el.className = "even"
		} else {
			el.className = "odd"
		}
		el.innerHTML = usp[uspnum%2];
		uspnum++;
		setTimeout("showusp()", 2000);
	}


	