function addEventToObject(obj, evt, func) {	var oldhandler = obj[evt];	obj[evt] = (typeof obj[evt] != 'function') ? func : function(){oldhandler();func();};}function bindWithArguments(object){    var __method = this;    var args = [];    for (var i=0,len=arguments.length-1; i<len; i++) args[i] = arguments[i+1];    return function(){ __method.apply(object, args); }}Object.prototype.bindWithArguments = bindWithArguments;function CrossFade(intervallo, timing) {		this.interval = intervallo;		// Funzione che imposta l'opacità in compatibilità con tutti i browser			this.setOpacity = function (obj, o) {				obj.style.opacity = (o / 101);				obj.style.MozOpacity = (o / 100);				obj.style.KhtmlOpacity = (o / 100);				obj.style.filter = "alpha(opacity=" + o + ")";			}						// Imposta per tutti gli elementi dell'array (ovvero i DIV passati ad argomento) posizione assoluta in alto a sx, zIndex 0 e opacità 0		for(j=0;j<this.length;j++) {			this[j].style.position='absolute';			this[j].style.top=0;			this[j].style.left=0;			this[j].style.zIndex=0;			this.setOpacity(this[j],0);		}						// Imposta un'opacità di partenza e nell'istruzione dopo la applica a tutto il div che contiene tutte le immagini.		this.opacity = 100;		this.setOpacity(this[0].parentNode,this.opacity);				// Imposta il div corrente a 0 (il primo elemento dell'array), loadingCF=true(???), previousDiv come l'ultimo elemento dell'array, e poi tutto il div contenitore visibile.		this.currentDiv = 0;		this.loadingCF = true;		this.previousDiv = this.length-1;				this[0].parentNode.style.visibility = 'visible';		// Imposta la funzione che cambia l'opacità. opac inizialmente è impostato a 100, quindi entra dentro e va direttamente all'else. 		this.changeOpacity = function (opac) {			if(opac < 100) {				if (opac == 0){					// Manda previousDiv sullo sfondo e porta currentDiv in primo piano					this[this.previousDiv].style.zIndex = 0;					this[this.currentDiv].style.zIndex = 100;				}				// Imposta l'opacità del div corrente a opac, quindi imposta l'opacità del div precedente a 100, quindi aggiunge ad opac timing, dopodichè attende 25 millisecondi e rientra nella funzione, finchè non arriva a 100				this.setOpacity(this[this.currentDiv],opac);				this.setOpacity(this[this.previousDiv],100/*-opac*/);				opac += timing;				window.setTimeout(this.changeOpacity.bindWithArguments(this,opac),25);			} else {				// Imposta l'opacità del div corrente a 100				this.setOpacity(this[this.currentDiv],100);				// Imposta l'opacità del div precedente (che parte come l'ultimo dell'array) a 0;				this.setOpacity(this[this.previousDiv],0);				// previousDiv diventa il div corrente				this.previousDiv = this.currentDiv;				// currentDiv diventa l'elemento seguente, oppure se è l'ultimo elemento ritorna al primo				this.currentDiv = (this.currentDiv>=this.length-1) ? 0 : this.currentDiv + 1;				// Imposta opac a 0				opac = 0;				// dopo un determinato tempo (intervallo moltiplicato 80) entra di nuovo in questa funzione portandosi dietro tutto l'array, e opac a 0				window.setTimeout(this.changeOpacity.bindWithArguments(this,opac),(this.interval*80));			}		}		// imposta ad olen il numero di caratteri che compongono il nome della classe del div che contiene l'immagine	this.olen = this[0].className.length;	// imposta ad onum l'ultima lettera del nome della classe del div contenitore (in genere fader)	this.onum = this[0].className.charAt(this.olen-1);	// se onum è un numero E onum è maggiore di uno allora esegue la funzione changeOpacity impostando opac all'opacità corrente, aspettando un tempo pari a 80*intervallo diviso onum	if(!isNaN(this.onum) && this.onum > 1) {window.setTimeout(this.changeOpacity.bindWithArguments(this,this.opacity),(80*this.interval)/this.onum);	}else {		// altrimenti inizia la funzione con l'opacità corrente		this.changeOpacity(this.opacity);	}}Object.prototype.CrossFade = CrossFade;var currentImg;var previousImg;var fadedivs = [];function isA(o,klass){ if(!o.className) return false; return new RegExp('\\b'+klass+'\\b').test(o.className) }function $c(c,o,t) { o=o||document;	if (!o.length) o = [o]	var elements = []	for(var i = 0, e; e = o[i]; i++) {		if(e.getElementsByTagName) {			var children = e.getElementsByTagName(t || '*');			for (var j = 0, child; child = children[j]; j++) {				if(isA(child,c)) elements.push(child);			}		}	}	return elements}function InitCrossFade() {	if(InitCrossFade.arguments) {		var fadecontainer = document.getElementById(InitCrossFade.arguments[0]);		var arg1 = InitCrossFade.arguments[1];		var arg2 = InitCrossFade.arguments[2];		for(i=3;i<InitCrossFade.arguments.length;i++) {			fadecontainer.innerHTML+=InitCrossFade.arguments[i];		}		var aImgs = fadecontainer.getElementsByTagName('img');		preloadImgs(aImgs);		var fade = fadecontainer.lastChild;		var fadeclass = fade.className;		fadedivs = $c(fadeclass,'','*');		window.setTimeout(function() {fadedivs.CrossFade(arg1,arg2);},1000);	}}function preloadImgs(aImgs) {	var preloadedImgs = new Array();	for(var i=0; i<aImgs.length; i++) {		preloadImgs[i] = new Image();		preloadImgs[i].src = aImgs[i].getAttribute('src');	}}function detect() {	// simplify things	var agent 	= navigator.userAgent.toLowerCase();		// detect platform	this.isMac		= (agent.indexOf('mac') != -1);	this.isWin		= (agent.indexOf('win') != -1);	this.isWin2k	= (this.isWin && (			agent.indexOf('nt 5') != -1));	this.isWinSP2	= (this.isWin && (			agent.indexOf('xp') != -1 || 			agent.indexOf('sv1') != -1));	this.isOther	= (			agent.indexOf('unix') != -1 || 			agent.indexOf('sunos') != -1 || 			agent.indexOf('bsd') != -1 ||			agent.indexOf('x11') != -1 || 			agent.indexOf('linux') != -1);		// detect browser	this.isSafari	= (agent.indexOf('safari') != -1);	this.isSafari2 = (this.isSafari && (parseFloat(agent.substring(agent.indexOf("applewebkit/")+"applewebkit/".length,agent.length).substring(0,agent.substring(agent.indexOf("applewebkit/")+"applewebkit/".length,agent.length).indexOf(' '))) >=  300));	this.isOpera	= (agent.indexOf('opera') != -1);	this.isNN		= (agent.indexOf('netscape') != -1);	this.isIE		= (agent.indexOf('msie') != -1);}