function motore() {
if(document.getElementById) {
	esecuzione=1;
	var input, chiave, ricerca, controllo;
	chiave = new Array();
	chiave_search = new Array();
	contenuti = new Array();
	contenuti_new = new Array();
	separati = new Array();
	responso = "";
	input = document.getElementById("campoRicerca").value;
	chiave = input.split(" ");
	contatore = new Array();
	for (w=0; w<chiave.length; w++) {
		cambiati=new String(chiave[w]);
		cambiati=cambiati.replace(/\\/g,"");
		cambiati=cambiati.replace(/\//g,"\\/");
		cambiati=cambiati.replace(/\./g,"\\.");
		cambiati=cambiati.replace(/\*/g,"\\*");
		cambiati=cambiati.replace(/\?/g,"\\?");
		cambiati=cambiati.replace(/\+/g,"\\+");
		cambiati=cambiati.replace(/\$/g,"\\$");
		cambiati=cambiati.replace(/\^/g,"\\^");
		cambiati=cambiati.replace(/\|/g,"\\|");
		cambiati=cambiati.replace(/\(/g,"\\(");
		cambiati=cambiati.replace(/\)/g,"\\)");
		cambiati=cambiati.replace(/\[/g,"\\[");
		cambiati=cambiati.replace(/\]/g,"\\]");
		cambiati=cambiati.replace(/\{/g,"\\{");
		cambiati=cambiati.replace(/\}/g,"\\}");
		chiave_search[w]=cambiati;
		contatore[w]=0;
	}
	
	if (prima) {
		contenuti_sicuri = new Array();
		contenuti_sicuri = document.getElementById("contenuti_tab").innerHTML;
		prima=0;
	} else {reset();}

	contenuti = document.getElementById("contenuti_tab").innerHTML;
	separati=contenuti.split("<");

	for (i=0; i < separati.length; i++) {
		if (separati[i] && separati[i]!="&nbsp;") {
			separati[i] = "<"+separati[i];
			ultimo=separati[i].split(">");
			ultimo[0]=ultimo[0]+">";
			// ultimo è sempre lungo 2 in posizione 0 c'è il TAG in posizione 1 il testo
			if (ultimo[1].length>2 && ultimo[1]!=="&nbsp;") {
				for (c=0; c < chiave.length; c++) {
					if (chiave[c]!="") {
						stringa = new String(ultimo[1]);
						//alert(ultimo[0].search("<A")+"search <A\n"+ultimo[0].search("<a")+"search <a\n"+ultimo[0]);
						if (ultimo[0].search("<A")!=-1 || ultimo[0].search("<a")!=-1)  {
							//alert(ultimo[0]+" contiene");
							ricerca = eval("/"+chiave_search[c]+"/gi");
							cambia_in = "<span class='risultato'>"+chiave[c].toUpperCase()+"</span>";
							ultimo_new = stringa.replace(ricerca,cambia_in);
							if (ultimo[1]!==ultimo_new) {
								ultimo[1]=ultimo_new;
								ultimo[0] = "<a name='"+chiave[c].toLowerCase()+"_"+contatore[c]+"'></a>"+ultimo[0];
								contatore[c]++;
							}
						} else {
							ricerca = eval("/"+chiave_search[c]+"/gi");
							cambia_in = "<a name='"+chiave[c].toLowerCase()+"_"+contatore[c]+"'></a><span class='risultato'>"+chiave[c].toUpperCase()+"</span>";
							ultimo_new = stringa.replace(ricerca,cambia_in);
							if (ultimo[1]!==ultimo_new) {
								ultimo[1]=ultimo_new;
								contatore[c]++;
							}
						}
					}
				}
			}
			if (contenuti_new) {contenuti_new += ultimo[0]+ultimo[1] ;} else {contenuti_new = ultimo[0]+ultimo[1] ;}
		} else {
			if (contenuti_new) {contenuti_new += separati[i];} else {contenuti_new = separati[i];}
		}
	}

	for (r=0; r < chiave.length; r++) {
		if (contatore[r]==0) {
			if (chiave[r]!="") {	responso += "\""+chiave[r]+"\" nessun risultato / no results<br>&nbsp;<br>"}
		} else {
			responso += "\""+chiave[r]+"\" trovati "+contatore[r]+" / found "+contatore[r]+"<br><a href='#"+chiave[r].toLowerCase()+"_0'>vai al primo risultato / go to the first result</a><br>&nbsp;<br>";
		}
	}
	document.getElementById("contenuti_tab").innerHTML=contenuti_new;
	responso += "<a href='javascript:reset(1);'>azzera ricerca / reset search</a>";
	document.getElementById("risultati").innerHTML=responso;
}
esecuzione=0;
}

function reset(pagina) {
		if (pagina) {
			document.getElementById("contenuti_tab").innerHTML=contenuti_sicuri;
			document.getElementById("campoRicerca").value="...";
			document.getElementById("risultati").innerHTML="&nbsp;";
		} else {
			document.getElementById("contenuti_tab").innerHTML=contenuti_sicuri;
			document.getElementById("risultati").innerHTML="&nbsp;";
		}
	}
	
function verifica() {
if (esecuzione==0 && document.getElementById("risultati").innerHTML=="ricerca in corso... / searching...") {document.getElementById("risultati").innerHTML="&nbsp;"}
}

function cancellatore() {
if (prima && document.getElementById("campoRicerca").value=="...") {document.getElementById("campoRicerca").value="";}
}