function dgebi(id) {
	return document.getElementById(id);
}
// ijAjax, copyright 2008+ Ludovico Grossi - intelliJAM S.r.l.
var Ajaxobj;
function richiestaAjax(url, funzioneLetturaRisposta, tipo) {
    // effettua una richiesta http Ajax all'url specificata, e passa il contenuto alla funzione funzioneLetturaRisposta
    // tipo  opzionale e pu essere "Text" o "XML" - di default "Text"
    if (tipo != 'XML') tipo = 'Text';
    if (window.XMLHttpRequest) {Ajaxobj = new XMLHttpRequest();    }
    else if(window.ActiveXObject) {Ajaxobj = new ActiveXObject("Microsoft.XMLHTTP");}
    else {alert("Il tuo browser non supporta gli oggetti XmlHttpRequest. Meglio aggiornare a Firefox.");return false;}
    callbackF = funzioneLetturaRisposta;
    if (Ajaxobj.readyState == 4 || Ajaxobj.readyState == 0) {
        Ajaxobj.open("GET", url, true);
        Ajaxobj.onreadystatechange = function() { if (Ajaxobj.readyState == 4) eval(callbackF+'(Ajaxobj.response'+tipo+');'); };
        Ajaxobj.send(null);
    }
}


/* presa da php.js "porting php to javascript" tutte o quasi le funzioni di php fatte in js */
function ucfirst( str ) {	
    str += '';
    var f = str.charAt(0).toUpperCase();
    return f + str.substr(1, str.length-1);
}

function trim(stringa)	{
	while (stringa.substring(0,1) == ' ')	{	stringa = stringa.substring(1, stringa.length);	}
	while (stringa.substring(stringa.length-1, stringa.length) == ' ')	{	stringa = stringa.substring(0,stringa.length-1);	}
	return stringa;
}
function checkTelefono() {
	var telefono = document.getElementById('telefono').value;
	telefono = trim(telefono);
	if (telefono) {
		var filter = /^((\+[0-9]{2})|(00[0-9]{2}))?[0-9 \./-]{4,20}$/;
		if (!filter.test(telefono))	{
			return false;
		} else {
			formattaTelefono(); // prima controllo e poi formatto: se facessi il contrario otterei quasi sempre qualcosa di corretto
		}
	}
	return true;
}


// contenitore moderno e flessibile
// va gestito completamente, sopratutto per chiuderlo se serve con ijOverlayClose()
function ijOverlay(htmlcontent) {
	document.getElementById("overlay_content").innerHTML = htmlcontent;
	document.getElementById("ijOverlay").style.display = '';
}
var canclose = 1;
function ijOverlayClose() {
	document.getElementById("ijOverlay").style.display = 'none';
}
function ijAjaxOverlay(request) {
	// mostra in un layer il contenuto dela pagina che viene fuori richiamando request
	richiestaAjax(request, 'ijOverlay');
}


/**/
function ijOverlaySlideShow(htmlcontent) {
	document.getElementById("overlay_content").innerHTML = htmlcontent;
	document.getElementById("ijOverlay").style.display = '';
    var myShow = new Slideshow('galleriaFoto', fotografie, {controller: true, delay: 3000, width: 400, height: 260, hu: '', thumbnails: true});
}
function ijAjaxOverlaySlideShow(request) {
	richiestaAjax(request, 'ijOverlaySlideShow');
}
/**/


// utilizza ijOverlay per mostrare un messaggio con pulsante per chiudere
function niceAlert(message, then) {
	return ijOverlay('<div class="niceAlert">'+message+'<br><input type="button" class="ok_button" value="Ok" OnClick="ijOverlayClose();'+then+'"></div>');
}
function niceConfirm(message, then) {
	return ijOverlay('<div class="niceConfirm">'+message+'<br><input type="button" class="ok_button" value="Ok" OnClick="ijOverlayClose();'+then+'"> <input type="button" class="close_button" value="Annulla" OnClick="ijOverlayClose();"></div>');
}



function showAddress(indirizzo, mappa, info) {
  geocoder.getLatLng(
    indirizzo,
    function(point) {
      if (!point) {
        alert(indirizzo + " non trovato");
      } else {
      	mappa.setCenter(point, 15, G_HYBRID_MAP);
        var marker = new GMarker(point);
        mappa.addOverlay(marker);
        //svOverlay = new GStreetviewOverlay();
    	//mappa.addOverlay(svOverlay);
		if (info) marker.openInfoWindowHtml(indirizzo);
      }
    }
  );
}

function showLatLng(lat,lng,address) {
	var point = new GLatLng(lat, lng);
	map.setCenter(point, 15);
	var marker = new GMarker(point);
	map.addOverlay(marker);
// questo fa apparire la nuvoletta con l'indirizzo
//	marker.openInfoWindowHtml(address);
}

var geocoder; // mi serve che sia globale perchè la inizializzo in una funzione e la uso in un'altra... un po' una porcata
function showMapByAddress(elemento, indirizzo, info) {
	elemObj = document.getElementById(elemento);
	if (!elemObj) {
		window.setTimeout("showMapByAddress('"+elemento+"', '"+indirizzo+"', '"+info+"');", 100);
		return;
	}
	var map2 = new GMap2(elemObj);
	geocoder = new GClientGeocoder();
	map2.addControl(new GLargeMapControl());
	map2.addControl(new GMenuMapTypeControl());
	//map2.addControl(new GMapTypeControl());
	showAddress(indirizzo, map2, info);
}


