// Script preso da "A list apart" e modificato a mio uso e consumo
// 

var strReferrer="";
var blnSearchReferral = false;
var blnInsiteReferral = false;
var str="";
var strSite = "";
var strSearchTerms = "";

function compute404()
{
	strReferrer=document.referrer.toLowerCase();

	// Gestione del caso in cui l'errore venga generato da una pagina con una URL scritta male
	if (strReferrer.length!=0)
	{
		if (	(strReferrer.indexOf(".looksmart.co")>0)||
			(strReferrer.indexOf(".ifind.freeserve")>0)||
			(strReferrer.indexOf(".ask.co")>0)||
			(strReferrer.indexOf("google.co")>0)||
			(strReferrer.indexOf("altavista.co")>0)||
			(strReferrer.indexOf("msn.co")>0)||
			(strReferrer.indexOf("yahoo.co")>0)           )
		{
			blnSearchReferral=true;
	
			//get site domain — split at the first forward-slash
	  		var arrSite=strReferrer.split("/");
	  		
			// now find search parameters
			var arrParams=strReferrer.split("?"); 
			strSearchTerms = arrParams[1];
			arrParams=strSearchTerms.split("&");
	  
			strSite=arrSite[2];
			var sQryStr="";
	  
	  		//define what search terms are in use by the different engines
			var arrQueryStrings = new Array();
			arrQueryStrings[0]="q=";  //google, altavista, msn
			arrQueryStrings[1]="p=";  //yahoo
			arrQueryStrings[2]="ask=";  //ask jeeves
			arrQueryStrings[3]="key=";  //looksmart
	  
			//loop through all the parameters in the referring page’s URL
			for (i=0;i<arrParams.length;i++)
			{
				for (q=0;q<arrQueryStrings.length;q++)
				{
					sQryStr = arrQueryStrings[q];
					
					//we’ve found a search term!
					if (arrParams[i].indexOf(sQryStr)==0)
					{
						strSearchTerms = arrParams[i];
						strSearchTerms = strSearchTerms.split(sQryStr);
						strSearchTerms = strSearchTerms[1];
						strSearchTerms = strSearchTerms.replace("+", " ");
					}
				}
			}
		}
		
		if (!blnSearchReferral)
		{
			strSite = strReferrer;
			strSite = strSite.split("/");
			strSite = strSite[2];
		}
		
		blnInsiteReferral =( (strReferrer.indexOf("http://mansuenzo.altervista.org")>=0) ||
		                     (strReferrer.indexOf("http://www.mansuenzo.altervista.org")>=0) )
	
	}
	
}

function write404(language)
{
	// Gestione del caso in cui si sia sbagliata l'URL digitandola nel browser
	if (strReferrer.length==0)
	{
		if (language=="eng")
		{
		  	str ='<p><strong>You may not be able to find the page you were after because of:<\/strong><\/p>';
			str+='<ol>';
			str+=' <li>An <strong>out-of-date bookmark\/favorite<\/strong><\/li>';
			str+=' <li>A search engine that has an <strong>out-of-date listing for us</strong><\/li>';
			str+=' <li>A <strong>mis-typed address</strong><\/li>';
			str+='<\/ol>';
		}	
		if (language=="ita")
		{
		  	str ='<p><strong>Non sei riuscito a trovare la pagina che volevi a causa di:<\/strong><\/p>';
			str+='<ol>';
			str+=' <li>Un <strong>segnalibro o preferito da aggiornare<\/strong><\/li>';
			str+=' <li>Un motore di ricerca che ha un <strong>indice da aggiornare</strong><\/li>';
			str+=' <li>Un <strong>indirizzo digitato male</strong><\/li>';
			str+='<\/ol>';
		}	
		document.write(str);
	}
	
	// Gestione del caso in cui l'errore venga generato da una pagina con una URL scritta male
	if (strReferrer.length!=0)
	{
		if (blnSearchReferral==true)
		{
			// Tell the visitor what site is at fault, what the 
			// search terms were
			if (language=="eng")
			{
				str = "<p>You did a search on <strong><a href='" + strReferrer + "' target='_blank'>" + strSite + "<\/a> <\/strong> for \"<strong>" + strSearchTerms + "<\/strong>\".";
				str+= "However, their index appears to be out of date.<\/p>";
			}
			if (language=="ita")
			{
				str = "<p>Hai effettuato una ricerca da <strong><a href='" + strReferrer + "' target='_blank'>" + strSite + "<\/a> <\/strong> di \"<strong>" + strSearchTerms + "<\/strong>\".";
				str+= "Comunque, il loro indice sembra sia da aggiornare.<\/p>";
			}
			
			document.write(str);
		}
	
		if (!blnSearchReferral)
		{
			if (language=="eng")
			{
				str = "<p>You were incorrectly referred to this page by:<br>";
				str+= "<strong><a href='" + strReferrer + "' target='_blank'>" + strSite + "</a></strong><br /></p>";
			}
			if (language=="ita")
			{
				str = "<p>Sei stato condotto erroneamente qua da:<br>";
				str+= "<strong><a href='" + strReferrer + "' target='_blank'>" + strSite + "</a></strong><br /></p>";
			}
				
			document.write(str);
		}
		
		if (blnInsiteReferral)
		{
			if (language=="eng")
			{
				str = "<p>This one’s down to us! Please accept our apologies for this.<br>";
				str+="We’ll see to it that the developer responsible for this broken link<br>"
				str+="is given 20 lashes (but only after he or she has fixed this problem).<\/p>";
			}
			if (language=="ita")
			{
				str = "<p>E' colpa nostra! Ti prego di accettare le nostre scuse.<br>"
				str+= "Vedremo di dare 20 frustate allo sviluppatore responsabile<br>"
				str+= "di questo link errato (ma solo dopo che lo avr&agrave; messo a posto).<\/p>";
			}
				
			document.write(str);
		}

}

	if (language=="eng")
		str = '<br><hr \/><p>We think you will find useful the link to the <a href="index.html">Home Page<\/a>:<\/p>';
			
	if (language=="ita")
		str = '<br><hr \/><p>Pensiamo tu possa trovare utile il link alla <a href="index.html">Home Page<\/a>:<\/p>';
				
	document.write(str);
}
