// OVERLOAD script, copyright 2004
var browser_name;
if (navigator.appName == "Microsoft Internet Explorer") { browser_name="IE" } // identifica il browser
else if (navigator.appName == "Netscape") { browser_name="NS" }
else { browser_name="ND" }
var browser_ver=navigator.appVersion.substring(0,1);
var OLD=((browser_name == "IE" || browser_name == "NS") && browser_ver < 4);
var NS4=(browser_name == "NS" && browser_ver == 4);
var OPERA=(navigator.userAgent.toLowerCase().indexOf("opera") >= 0 || window.opera);
var IE6S=(browser_name == "IE" && !OPERA && navigator.userAgent.indexOf("MSIE 6") >= 0 && document.compatMode == "CSS1Compat");
var DHTML=(document.all || document.layers || document.getElementById);
var isPrinting=false;
var lang=getcookie("lang");
if (lang != "it" && lang != "en") {
	if (browser_name == "NS" && typeof(navigator.language) != "undefined") lang=navigator.language.substring(0,2).toLowerCase();
	else if (browser_name == "IE" && typeof(navigator.userLanguage) != "undefined") lang=navigator.userLanguage.substring(0,2).toLowerCase();
	if (lang != "it" && lang != "en") lang="it";
}

function relocation(framename,frameurl) { // se possibile re-link senza history
	if (document.images) {
		framename.location.replace(frameurl);
	} else {
		framename.location.href=frameurl;
	}
}

function GET_replace(framename,getvars) { // correggi invio variabili GET per Opera
	var vuoto=(getvars != "") ?"?" :"";
	var frameurl=framename.location.href;
	if (OPERA) {
		var qmark=frameurl.indexOf("?"), hmark=frameurl.indexOf("#"), cleanhref, pagehash="";
		if (qmark >= 0) {
			cleanhref=frameurl.substring(0,qmark);
		} else if (hmark >= 0) {
			cleanhref=frameurl.substring(0,hmark);
			pagehash="#"+framename.location.hash;
		} else {
			cleanhref=frameurl;
		}
		relocation(framename,cleanhref+vuoto+getvars+pagehash);
	} else {
		framename.location.search=vuoto+getvars;
	}
}

function GET_append(framename,getvars) { // aggiungi alle variabili GET
	if (framename.location.search.length > 1) {
		GET_replace(framename,framename.location.search.substr(1)+"&"+getvars);
	} else GET_replace(framename,getvars);
}
// Recupera tutte le variabili GET, ritorna 'false' se non ne trova nessuna
function GET_all(framename) {
	if (!framename) { framename=self; }
	if (framename.location.search.length > 1) {
		var information=framename.location.search.substr(1).split("&"), trovato=false, uguale;
		for (var i=0; i < information.length; i++) {
			uguale=information[i].indexOf("=");
			if (uguale > 0) {
				if (typeof GET_var == "undefined" || typeof GET_var == "unknown") GET_var=new Array();
				GET_var[information[i].substring(0,uguale)]=information[i].substr(uguale+1);
				trovato=true;
			} else if (uguale < 0) {
				if (typeof GET_var == "undefined" || typeof GET_var == "unknown") GET_var=new Array();
				GET_var[information[i]]='';
				trovato=true;
			}
		} return trovato;
	} else return false;
}
// Recupera le variabili GET, usare if (GET_find(nome variabile)) { ... usare GET_var[nome variabile] }
function GET_find(varname,framename) {
	if (!framename) { framename=self; }
	if (framename.location.search.length > 1) {
		var information=framename.location.search.substr(1).split("&"), i=0, trovato=false, uguale;
		while (i < information.length && !trovato) {
			uguale=information[i].indexOf("=");
			if (uguale > 0 && information[i].substring(0,uguale) == varname) {
				if (typeof GET_var == "undefined" || typeof GET_var == "unknown") { GET_var=new Array(); }
				GET_var[varname]=information[i].substr(uguale+1);
				trovato=true;
			} else if (uguale < 0 && information[i] == name) {
				if (typeof GET_var == "undefined" || typeof GET_var == "unknown") { GET_var=new Array(); }
				GET_var[varname]='';
				trovato=true;
			} i++;
		} return trovato;
	} else return false;
}

function obj_style(nome) { // ritorna lo stile di un id in base al browser
	if (document.getElementById && document.getElementById(nome)) {
		return document.getElementById(nome).style;
	} else if (document.all && document.all[nome]) {
		return document.all[nome].style;
	} else if (document.layers && document.layers[nome]) {
		return document.layers[nome];
	} else return false;
}

function obj_find(nome) { // ritorna lo stile di un id in base al browser
	if (document.getElementById && document.getElementById(nome)) {
		return document.getElementById(nome);
	} else if (document.all && document.all[nome]) {
		return document.all[nome];
	} else if (document.layers && document.layers[nome]) {
		return document.layers[nome];
	} else return false;
}

function obj_view(oggetto,visibile) { // cambia la visibilità di un oggetto
	if (NS4 && document.layers) { oggetto.visibility=(visibile) ?"show" :"hide"; }
	else { oggetto.visibility=(visibile) ?"visible" :"hidden"; }
}

function page_pos(dim) { // ritorna la scroll posizione dall'alto a sinistra, usare x o y
	var yorx=(dim == "y");
	if (yorx) {
		if (document.documentElement && document.documentElement.scrollTop)
			return document.documentElement.scrollTop;
		else if (document.body && document.body.scrollTop)
			return document.body.scrollTop;
		else if (typeof(pageYOffset) != 'undefined' && typeof(pageYOffset) != 'unknown')
			return pageYOffset;
		else return 0;
	} else {
		if (document.documentElement && document.documentElement.scrollLeft)
			return document.documentElement.scrollLeft;
		else if (document.body && document.body.scrollLeft)
			return document.body.scrollLeft;
		else if (typeof(pageXOffset) != 'undefined' && typeof(pageXOffset) != 'unknown')
			return pageXOffset;
		else return 0;
	}
}

function page_dim(dim) { // ritorna la dimensione (larghezza o altezza) del frame, usare w oppure h
	var worh=(dim == "w");
	if (worh) {
		if (document.body && document.body.scrollWidth)
			return document.body.scrollWidth;
		else if (document.documentElement && document.documentElement.scrollWidth)
			return document.documentElement.scrollWidth;
		else if (typeof(document.width) != 'undefined' && typeof(document.width) != 'unknown')
			return document.width;
		else return 0;
	} else {
		if (document.body && document.body.scrollHeight)
			return document.body.scrollHeight;
		else if (document.documentElement && document.documentElement.scrollHeight)
			return document.documentElement.scrollHeight;
		else if (typeof(document.height) != 'undefined' && typeof(document.height) != 'unknown')
			return document.height;
		else return 0;
	}
}

function frame_dim(dim) { // ritorna la dimensione (larghezza o altezza) del frame, usare w oppure h
	var worh=(dim == "w");
	if (worh) {
		if (!OPERA && document.documentElement && document.documentElement.clientWidth)
			return document.documentElement.clientWidth;
		else if (document.body && document.body.clientWidth)
			return document.body.clientWidth;
		else if (typeof(innerWidth) != 'undefined' && typeof(innerWidth) != 'unknown')
			return innerWidth;
		else return 0;
	} else {
		if (!OPERA && document.documentElement && document.documentElement.clientHeight)
			return document.documentElement.clientHeight;
		else if (document.body && document.body.clientHeight)
			return document.body.clientHeight;
		else if (typeof(innerHeight) != 'undefined' && typeof(innerHeight) != 'unknown')
			return innerHeight;
		else return 0;
	}
}

function mouse_pos(axis,evt) { // ritorna la posizione del mouse dall'alto a sinistra, usare y oppure x
	var yorx=(axis == "y");
	if (!evt) var evt=event;
	if (evt.pageX || evt.pageY) {
		return (yorx) ?evt.pageY :evt.pageX;
	} else if (evt.clientX || evt.clientY) {
		return (yorx) ?evt.clientY+page_pos("y") :evt.clientX+page_pos("x");
	} else return 0;
}

function set_pos(oggetto,x,y) { // setta la posizione di un oggetto
	if (NS4 && document.layers) { oggetto.left=x; oggetto.top=y; }
	else { oggetto.left=x+"px"; oggetto.top=y+"px"; }
}

function slowmove(objname,fromx,fromy,tox,toy) { // riporta l'oggetto in posizione
	var newx=fromx+(page_pos("x")+tox-fromx)/10, newy=fromy+(page_pos("y")+toy-fromy)/10;
	var setx=Math.round(newx), sety=Math.round(newy);
	if (setx != Math.round(fromx) || sety != Math.round(fromy)) {
		set_pos(obj_style(objname),setx,sety);
	}
	self.setTimeout("slowmove('"+objname+"',"+newx+","+newy+","+tox+","+toy+")",10);
}

function page_init(sezione) { // inizializza le pagine interne e ricostruisci frame errati
	if (self == parent) { // controlla e quindi ricostruisci i frame
		relocation(top,"../menu.htm?sezione="+sezione+"&pagina="+escape(self.location.href)); }
	if (typeof(top.document) != 'undefined' // se possibile cambia il titolo
		&& typeof(top.document) != 'unknown'
		&& typeof(top.document.title) == 'string') { top.document.title=self.document.title; }
	if (typeof(top.navigazione) != 'undefined' // controlla e quindi correggi la navigazione
		&& typeof(top.navigazione) != 'unknown'
		&& typeof(top.navigazione.location) == 'object') {
		if (typeof(top.navigazione.location.href) == 'string') {
			if (top.navigazione.location.href.indexOf("navigazione.php") < 0
				|| top.navigazione.location.href.indexOf("sezione="+sezione) < 0) {
				relocation(top.navigazione,"../navigazione.php?sezione="+sezione);
			}
		} else { relocation(top.navigazione,"../navigazione.php?sezione="+sezione); }
	}
	if (NS4) {
		fontfix(80);
		reloadPage(true);
	} else onresize=function() { fontfix(80); }
}

function fontcalc(width,percent) {
	if (width == 0) return "";
	if (!percent) percent=100;
	var fontw=Math.round(width/percent*50/63)*2;
	if (fontw > 20) return "20px";
	else if (fontw < 10) return "10px";
	else return fontw+"px";
}

function fontfix(percent) { // correggi dinamicamente il font della pagina
	if (isPrinting) return;
	if (IE6S && document.body && document.body.style) { // correggi il margine per IE6 standard
		var width=document.documentElement.scrollWidth;
		var rightfix=(width-document.documentElement.clientWidth > 0) ?"17px" :"";
		if (document.body.style.marginRight != rightfix)
			self.setTimeout("document.body.style.marginRight='"+rightfix+"'",40);
			document.body.style.fontSize=fontcalc(width,percent);
	} else if (document.body && document.body.style)
		document.body.style.fontSize=fontcalc(page_dim("w"),percent);
	else if (document.tags)
		document.tags.body.fontSize=fontcalc(frame_dim("w"),percent);
}

function reloadPage(init) {  //ricarica la finestra per NS4
  if (init == true) {
    document.pageW=innerWidth; document.pageH=innerHeight; onresize=reloadPage;
	} else if (innerWidth!=document.pageW || innerHeight!=document.pageH) history.go(0);
}

function frameprint(framename) { //stampa il frame
	var errormsg="Si è tentato di stampare una pagina che non esiste\r\nRicaricare la pagina!", whichFrame;
	if (!framename) whichFrame=self;
	else if (typeof(top.frames[framename]) != 'undefined'
					&& typeof(top.frames[framename]) != 'unknown') //verifica esistenza frame
		whichFrame=top.frames[framename];
	else { alert(errormsg); return; }
	if (typeof(whichFrame.location) == 'object'
			&& typeof(whichFrame.location.href) == 'string'
			&& whichFrame.document.body) { //verifica esistenza pagina
		whichFrame.isPrinting=true;
		var framebody=whichFrame.document.body;
		var sizecorr=(framebody.style && framebody.style.fontSize && framebody.style.fontSize != "");
		if (sizecorr) {
			var tempsize=framebody.style.fontSize;
			framebody.style.fontSize="";
		}
		var margcorr=(framebody.style && framebody.style.marginRight && framebody.style.marginRight != "");
		if (margcorr) {
			var tempmarg=framebody.style.marginRight;
			framebody.style.marginRight="";
		} 
		whichFrame.focus();
		whichFrame.print();
		if (browser_name != "NS") {
			if (margcorr) framebody.style.marginRight=tempmarg;
			if (sizecorr) framebody.style.fontSize=tempsize;
			whichFrame.isPrinting=false;
		} else {
			var pagereset="";
			if (margcorr) pagereset+="document.body.style.margintRight='"+tempmarg+"'; ";
			if (sizecorr) pagereset+="document.body.style.fontSize='"+tempsize+"'; ";
			whichFrame.setTimeout(pagereset+"isPrinting=false",1000);
		}
	} else alert(errormsg);
}

function setcookie(name, value, days, path, domain, secure) {
	var param="";
	if (!value) value="";
	if (days) {
		var expdate=new Date();
		expdate.setTime(expdate.getTime()+(days*24*60*60*1000));
		param+="; expires="+expdate.toGMTString();
	}
	if (path) param+="; path="+path;
	if (domain) param+="; domain="+domain;
	if (secure) param+="; secure";
	document.cookie=name+"="+escape(value)+param;
}

function getcookie(name) {
	var aCookie=document.cookie.split("; ");
	for (var i=0; i < aCookie.length; i++) {
		var aCrumb=aCookie[i].split("=");
		if (name == aCrumb[0]) return (aCrumb[1]) ?unescape(aCrumb[1]) :"";
	}
	return null;
}

function delcookie(name, path, domain) {
	if (getcookie(name)) {
		var param="";
		if (path) param+="; path="+path;
		if (domain) param+="; domain="+domain;
		document.cookie=name+"="+"; expires=Thu, 01-Jan-70 00:00:01 GMT"+param;
	}
}

function pagewait(par) { // Visualizza il logo attenddere, usare true o false
	if (!DHTML) return;
	var wait;
	if (wait=obj_style('wait')) {
		wait.height=(par) ?frame_dim("h")+"px" :"0px";
		obj_view(wait,par);
	}
}

function pageexit() { // Visualizza attendi prima di uscire
if (DHTML && document.body)
	if (typeof(document.body.onbeforeunload) == 'object')
		document.body.onbeforeunload=function() { pagewait(true); }
	else document.body.onunload=function() { pagewait(true); }
}

function number_format(number, decimal, decSep, thoSep) {
	if (typeof(decimal)=="undefined" || decimal==null) decimal=2;
	if (typeof(decSep)=="undefined" || decSep==null) decSep=".";
	if (typeof(thoSep)=="undefined"|| thoSep==null) thoSep="";
	var moltip, Intero, Decimale;
	moltip=Math.pow(10, decimal);
	number=Math.round(number*moltip)/moltip;
	Intero=Math.floor(number);
	InteroStr=new String(Intero);
	InteroLen=InteroStr.length;
	Intero="";
	for (i=0; i<InteroLen; i+=3) {
		Intero=InteroStr.substring(InteroLen-i-3,InteroLen-i)+((Intero == "") ?"" :thoSep)+Intero;
	}
	number=new String(number);
	Decimale=number.match(/^\d+(\.(\d+))?$/);
	Decimale=(typeof(Decimale[2]) == "undefined") ?"" :Decimale[2];
	if (Decimale.length < decimal) {
		var zeros=decimal-Decimale.length;
		for (var i=0; i<zeros; i++) Decimale+=0;
	}
	return (decimal == 0) ?Intero :Intero+decSep+Decimale;
}

function number_currency(number, curr) {
	var formatted=(curr['Simbolo'] == null) ?curr['IDValuta'] :curr['Simbolo'];
	if (curr['IDValuta'] == 'USD' && Math.round(number*curr['Tasso']*100) < 100)
		formatted="&cent; "+number_format(number*curr['Tasso']*100,0);
	else formatted+=" "+number_format(number*curr['Tasso'],curr['Dec'],curr['DecSep'],curr['ThoSep']);
	return formatted;
}

function number_percent(number, decsep) {
	number=""+number;
	if (!decsep) decsep=".";
	return ((decsep == ".") ?number :number.replace(/\./, decsep))+"%";
}

function date_format(date,ext) {
	var monthbre=new Array("gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic");
	var monthext=new Array("gennaio","febbraio","marzo","aprile","maggio","giugno"
								,"luglio","agosto","settembre","ottobre","novembre","dicembre");
	var month=(ext) ?monthext :monthbre;
	if (typeof(date.getFullYear) == "function") var year=date.getFullYear();
	else {
		var year=date.getYear();
		if (year < 1900) year+=1900;
	}
	return date.getDate()+" "+month[date.getMonth()]+" "+year;
}

function mail(user,domain,subject) {
	var compose="mailto:";
	compose+=user;
	compose+="@";
	compose+=domain;
	if (subject) compose+="?subject="+subject;
	self.location.href=compose;
	return false;
}

function obj_HTML(name, html) {
	var obj;
	if (obj=obj_find(name)) {
		if (NS4) {
			var d=obj.document.open();
			d.writeln('<html>');
			d.writeln('<head>');
			d.writeln('<title>OVERLOAD innerHTML</title>');
			d.writeln('</head>');
			d.writeln('<body>');
			d.write(html);
			d.writeln('</body>');
			d.writeln('</html>');
			d.close();
		} else obj.innerHTML=html;
		return true;
	} else return false;
}
