function addEvent( obj, ev, fn ){
	if ( obj.addEventListener ) {
		obj.addEventListener( ev, fn, false );
	} else if ( obj.attachEvent ) {
		obj.attachEvent('on'+ev, fn);
	} else {
		if ( typeof( obj['on' + ev] ) == 'function' ){
			var f = obj['on' + ev];
			obj['on' + ev] = function(){if(f)f();fn()}
		}
		else obj['on' + ev] = fn;
	}
}
function externalLinks() { 
	if ( ! document.getElementsByTagName ) {
		return;
	}
	var anchors = document.getElementsByTagName( "a" );
	for ( var i = 0; i < anchors.length; i++ ) {
		var anchor = anchors[i];
		if ( anchor.getAttribute( "href" ) && anchor.getAttribute( "rel" ) == "external" ) {
			anchor.target = "_blank";
		}
	} 
}
function ajaxConnect( strURL, method, formID ) {
	if ( method == undefined ) {
		method = "get";
	}
	var xmlHttpReq = false;
	if ( window.XMLHttpRequest ) {
		xmlHttpReq = new XMLHttpRequest();
	} else if ( window.ActiveXObject ) {
		xmlHttpReq = new ActiveXObject( "Microsoft.XMLHTTP" );
	} else {
		alert( "Il browser in uso non supporta la tecnologia Ajax" );
	}
	if ( method.toLowerCase() == "get" && formID != undefined ) {
	    strURL += ( ( strURL.indexOf( "?" ) == - 1 ) ? "?" : "&" ) + getquerystring( formID );
	}
	xmlHttpReq.open( method, strURL );
	xmlHttpReq.setRequestHeader( "Content-Type", "application/x-www-form-urlEncoded" );
	if ( formID != undefined && method.toLowerCase() == "post" ) {
	    xmlHttpReq.send( getquerystring( formID ) ); 
	} else {
	    xmlHttpReq.send( null ); 
	}
	xmlHttpReq.onreadystatechange = function() {
		if ( xmlHttpReq.readyState == 4 ) {
			eval( xmlHttpReq.responseText );
		}
	};
}
function dataFormattata( dataObj ) {
	return dataObj.getDate() + "/" + ( dataObj.getMonth() + 1 ) + "/" + dataObj.getFullYear();
}
function valiData( YYYY, mm, dd ) {
	newDate = new Date( YYYY, mm, dd );
	return ( newDate.getFullYear() == YYYY && newDate.getMonth() == mm && newDate.getDate() == dd );
}
function checkPrenotazione( form ) {
	errori = "";
	dataArrivo = new Date( form.annoArrivo.value, form.meseArrivo.value - 1, form.giornoArrivo.value );
	if ( ! valiData( form.annoArrivo.value, form.meseArrivo.value - 1, form.giornoArrivo.value ) ) {
		errori += "La data di arrivo non è valida\n";
	}
	dataPartenza = new Date( form.annoPartenza.value, form.mesePartenza.value - 1, form.giornoPartenza.value );
	if ( ! valiData( form.annoPartenza.value, form.mesePartenza.value - 1, form.giornoPartenza.value ) ) {
		errori += "La data di partenza non è valida\n";
	}
	secs = 1000 * 60 * 60 * 24;
	notti = Math.ceil( ( dataPartenza.getTime() - dataArrivo.getTime() ) / secs );
	if ( notti > 30 ) {
		errori += "Errore: non è possibile effettuare una prenotazione più lunga di 30 notti\n";
	}
	if ( errori == "" ) {
		oggi = new Date();
		primaDataUtile = new Date( oggi.getFullYear(), oggi.getMonth(), oggi.getDate() );
		primaDataUtile.setTime( primaDataUtile.getTime() + 1000 * 60 * 60 * 24 * 5 );
		if ( dataArrivo < primaDataUtile ) {
			errori += "La data di arrivo non può essere precedente alla data " + dataFormattata( primaDataUtile ) + "\n";
		}
		if ( dataPartenza < primaDataUtile ) {
			errori += "La data di partenza non può essere precedente alla data " + dataFormattata( primaDataUtile ) + "\n";
		}
		if ( dataPartenza <= dataArrivo ) {
			errori += "La data di partenza deve essere successiva alla data di arrivo\n";
		}
	}
	if ( errori == "" ) {
		return true;
	} else {
		alert( errori );
		return false;
	}
}
function spedisci( email ) {
	location = "mailto:" + email.replace( "[presso]", "@" );
}
function resizeFrame( frameName ) {
	if ( document.getElementById( frameName ) ) {
		frame = document.getElementById( frameName );
		frame.style.height = parseInt( frame.contentWindow.document.body.scrollHeight + 1 ) + "px";
	}
}
function convalidaMessaggio( form ) {
	errori = "";
	if ( form.nome.value == "" ) {
		errori += "Inserire il nome\n";
	}
	if ( form.messaggio.value == "" ) {
		errori += "Inserire il messaggio\n";
	}
	if ( form.antispam.value == "" ) {
		errori += "Controllo antispam fallito\n";
	} else {
		ajaxConnect( "/js/antispam.php?antispam=" + form.antispam.value );
		if ( ! controlloAntispam ) {
			errori += "Controllo antispam fallito\n";
		}
	}
	if ( errori != "" ) {
		alert( errori );
		return false;
	} else {
		return true;
	}
}
function calcolaNotti() {
	form = document.getElementById( "prenotazione" );
	dataArrivo = new Date( form.annoArrivo.value, form.meseArrivo.value - 1, form.giornoArrivo.value );
	dataPartenza = new Date( form.annoPartenza.value, form.mesePartenza.value - 1, form.giornoPartenza.value );
	secs = 1000 * 60 * 60 * 24;
	form.notti.value = Math.ceil( ( dataPartenza.getTime() - dataArrivo.getTime() ) / secs );
	if ( form.notti.value > 30 ) {
		alert( "Errore: non è possibile effettuare una prenotazione più lunga di 30 notti" );
		return 
	}
	if ( form.notti.value < 0 ) {
		form.notti.value = 0;
		alert( "Errore: la data di arrivo non può essere successiva alla data di partenza" );
	}
}
addEvent( window, 'load', externalLinks );
function toggle( divID ) {
	if ( div = document.getElementById( divID ) ) {
		div.style.display = ( div.style.display == "block" ) ? "none" : "block";
	}
}