// VARIABILE SPECIFICA DEL SITO
visObj=""; //last visible object control

////////////////////////////////////////////////////////////////////////////////////////
function QBrowser() {
//debugger;
	var b = navigator.appName
	if (b=="Netscape") this.b = "ns"
	else if (b=="Microsoft Internet Explorer") this.b = "ie"
	//else if (b=="Opera") this.b = "op"
	else this.b = b
	this.version = navigator.appVersion
	this.v = parseInt(this.version)
	//alert(this.version);
	//QBrowser.op6 = (this.b=="op" && this.v>=5)
	QBrowser.ns = (this.b=="ns" && this.v>=4)
	QBrowser.ns4 = (this.b=="ns" && this.v==4)
	QBrowser.ns5 = (this.b=="ns" && this.v>=5)
	QBrowser.ie = (this.b=="ie" && this.v>=4)
	QBrowser.ie4 = (this.version.indexOf('MSIE 4')>0) || (this.version.indexOf('MSIE 4.5')>0)
	QBrowser.ie5 = (this.version.indexOf('MSIE 5.0')>0) || (this.version.indexOf('MSIE 5.01')>0) || (this.version.indexOf('MSIE 5.5')>0) || (this.version.indexOf('MSIE 6.0')>0) || (this.version.indexOf('MSIE 7.0')>0) || (this.version.indexOf('MSIE 8.0')>0)
	QBrowser.min = (this.ns||this.ie)

	QBrowser.dirQLayer	= "/" ;

	if(QBrowser.ns) {
		if(QBrowser.ns4) QBrowserNs4(this) ;
		else QBrowserNs5(this) ;
	}
	if(QBrowser.ie4) QBrowserIe(this) ;
	if(QBrowser.ie5) QBrowserIe5(this) ;
	
	QBrowser.saveCookie 		= QBrowserSaveCookie ; 
	QBrowser.readCookie 		= QBrowserReadCookie ;
	QBrowser.deleteCookie 		= QBrowserDeleteCookie ;
	QBrowser.arrayNameCookie 	= QBrowserArrayNameCookie ;
}

__QBROWSER_JS__ = new QBrowser() ;

function QBrowserNs4() {
	QBrowser.winW = window.innerWidth ;
	QBrowser.winH = window.innerHeight ;
	
	QBrowser.resizeFix = resizeFixNs ;	
	window.onResize = QBrowser.resizeFix ;
	
	QBrowser.show = showNS4 ;
	QBrowser.hide = hideNS4 ;
	QBrowser.contentDiv = contentDivNS4 ;
}

function QBrowserNs5() {
	QBrowser.winW = window.innerWidth ;
	QBrowser.winH = window.innerHeight ;
	
	QBrowser.resizeFix = resizeFixNs ;	
	window.onResize = QBrowser.resizeFix ;

	QBrowser.show = showNS5 ;
	QBrowser.hide = hideNS5 ;
	QBrowser.contentDiv = contentDivNS5 ;
}

function QBrowserIe() {
	QBrowser.winW = document.body.offsetWidth-20;
	QBrowser.winH = document.body.offsetHeight-4 ;
	
	QBrowser.resizeFix = resizeFixIe ;	
	window.onResize = QBrowser.resizeFix ;

	QBrowser.show = showIE ;
	QBrowser.hide = hideIE ;
	QBrowser.contentDiv = contentDivIE ;
}

function QBrowserIe5() {
	if(document.body != null) {
		QBrowser.winW = document.body.offsetWidth-20;
		QBrowser.winH = document.body.offsetHeight-4 ;
	}
	QBrowser.resizeFix = resizeFixIe ;	
	window.onResize = QBrowser.resizeFix ;

	QBrowser.show = showIE5 ;
	QBrowser.hide = hideIE5 ;
	QBrowser.contentDiv = contentDivIE5 ;
}

function resizeFixNs() {
	if (QBrowser.widthCheck != window.innerWidth || QBrowser.heightCheck != window.innerHeight) {
		//document.location.href = document.location.href ;
		history.go(0) ;
	
		QBrowser.winW = window.innerWidth ;
		QBrowser.winH = window.innerHeight ;
	}
}

function resizeFixIe() {
	history.go(0) ;
	
	QBrowser.winW = document.body.offsetWidth-20;
	QBrowser.winH = document.body.offsetHeight-4 ;
}


function showNS4(div,nest) {
	//alert(div,nest,visObj);
	if (visObj){
		QBrowser.hide(visObj);
	}
	obj = nest?document[nest].document[div]:document[div] ; 
	obj.visibility='visible';
	visObj=div;
}

function showNS5(div,nest) {
	if (visObj){
		QBrowser.hide(visObj);
	}
	obj=document.getElementById(div).style ;
	obj.visibility='visible';
	visObj=div;
}

function showIE(div) {
	if (visObj){
		QBrowser.hide(visObj);
	}
	obj = document.all[div].style ;
	obj.visibility='visible';
	visObj=div;
}

function showIE5(div) {
	if (visObj){
		QBrowser.hide(visObj);
	}
	obj = document.getElementById(div).style ;
	obj.visibility='visible';
	visObj=div;
}

function hideNS4(div,nest) {
	//alert();
	obj = nest?document[nest].document[div]:document[div] ; 
	obj.visibility='hidden';
}

function hideNS5(div,nest) {
	obj=document.getElementById(div).style ;
	obj.visibility='hidden';
}

function hideIE(div) {
	obj = document.all[div].style ;
	obj.visibility='hidden';
}

function hideIE5(div) {
	obj = document.getElementById(div).style ;
	obj.visibility='hidden';
}

function contentDivNS4(text, div,nest) {
	obj = nest?document[nest].document[div]:document[div] ; 
	obj.document.open() ;
	obj.document.write(text) ;
	obj.document.close() ;
}

function contentDivNS5(text, div,nest) {
	obj=document.getElementById(div) ;
	obj.innerHTML = text ;
/*
	obj.document.open() ;
	obj.document.write(text) ;
	obj.document.close() ;
*/
}
function contentDivIE(text, div,nest) {
	obj = bw.dom?document.getElementById(div).style:document.all[div].style ;
	obj.event.innerHTML = text ;
}

function contentDivIE5(text, div,nest) {
	obj = document.getElementById(div) ;
	obj.innerHTML = text ;
}

function show(div,nest){
	QBrowser.show(div,nest) ;
}

function showZ(showobj) {
	document.all[showobj].style.visibility = "visible"
 }
function hideZ(hideobj) {
	document.all[hideobj].style.visibility = "hidden"
 }
 
//Hides the div
function hide(div,nest){
	QBrowser.hide(div,nest) ;
}

function contentDiv(text, div,nest) {
	QBrowser.contentDiv(text, div,nest) ;
}

/////////////////////////////////////////////////////////////////////////////////
// Funzioni di Cookie
function QBrowserSaveCookie(name,value,days) {

	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000)) ;
		var expires = "; expires="+date.toGMTString() ;
	}
	else expires = "" ;
	document.cookie = name+"="+value+expires+"; path=/" ;
}

function QBrowserReadCookie(name) {
	var nameEQ = name + "=" ;
	var ca = document.cookie.split(';') ;
	for(var i=0;i<ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length) ;
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length) ;
	}
	return null ;
}

function QBrowserDeleteCookie(name) {
	QBrowser.saveCookie(name,"",-1) ;
}

function QBrowserArrayNameCookie() {
	var ca = document.cookie.split(';') ;
	var ret = new Array() ;

	for(var i=0;i<ca.length;i++) {
		var c = ca[i];
		var tmp = c.split('=') ;

		ret[ret.length] = tmp[0] ;
	}
	return ret ;	
}

function openWin( windowURL, windowName, windowFeatures ) { 
	return window.open( windowURL, windowName, windowFeatures ) ; 
}
//////////////////////////////////////////////////////////////////////////////////////
/* 
	L'oggetto torna un numero casuale.
	L'inizializazione setta il range di interi entro cui deve operare.
	L'oggetto fa in modo di non generare mai lo stesso numero prima di aver
	generati tutti quelli di una serie (SPERO)

	n deve essere > a 0
*/
///////////////////////////////////////////////////////////////////////////////
function RandomNumberGenerator(n) 
{
	this.limite = n ;
	this.index = -1 ;
	this.numeriGenerati = new Array(n) ;

	for(i=0 ; i < this.numeriGenerati.length - 1 ; i++) {
		this.numeriGenerati[i] = 0 ;
	}
	
	var d = new Date() ;
	
	this.seed = 2345678901 + (d.getSeconds() * 0xFFFFFF) + (d.getMinutes() * 0xFFFF) ;
	this.A = 48271 ;
	this.M = 2147483647 ;
	this.Q = this.M / this.A ;
	this.R = this.M % this.A ;
	this.oneOverM = 1.0 / this.M ;
	
	this.next = NextRandomIntinRange ;
	this.nextFloat = NextRandomNumber ; 
	
	return this ;
}

function NextRandomIntinRange()
{
	var numero = 0 ;
	var sent = true ;
	
	while(sent)
	{
		var i = 0 ;
	
		numero = Math.round(this.limite * this.nextFloat()) ; 	
		if(numero == 0)
			continue ;
			
		for(i = 0; i <= this.index ; i++ )
		{
			if(numero == 0 || numero == this.numeriGenerati[i])
				break ;
		}
		
		if(i > this.index ) {

			this.index++ ;
			if(this.index == (this.numeriGenerati.length - 1)) this.index = -1 ;
			else this.numeriGenerati[this.index] = numero ;
				
			sent = false ;
		}
	}
	
	return (numero) ;
}

function NextRandomNumber()
{
	var hi = this.seed / this.Q ;
	var lo = this.seed % this.Q ;
	var test = this.A * lo - this.R * hi ;
	
	if(test > 0)
		this.seed = test ;
	else
		this.seed = test + this.M ;
		
	return (this.seed * this.oneOverM) ;
}
//////////////////////////////////////////////////////////////////////////////////////
