/* WEBpatente 3.0 */

selargo=" id='selargo' class='selargosel'>";
for (i in argomenti){
	selargo+="<option value='"+(fineargo[i]+1)+"'>"+(parseInt(i)+1)+". "+argomenti[i]+" (Cap. "+capmin[i]+")</option>";
}	
selargo+="</select>";	
//argomenti non va azzerato

function perc(a,b){
	if (b==0) return "-"; else return Math.round((a*100/b)*100)/100;
}
function media(a,b){
	if (b==0) return "-"; else return Math.round((a/b)*100)/100;
}
function rnd(inf,sup){
	return Math.round((sup-inf)*Math.random()+inf);
}
function sorteggiatesto(str){
	txt=str.split("|");
	so= txt[rnd(0,txt.length-1)];
	return so;
}

function termometro(perc,lung){
	return "<div class='termb'><table cellpadding='0' style='width: "+lung+"px;' class='term'><tr><td class='termtd'>"+
	((isNaN(perc))?"<div style='width: "+lung+"px;' class='term0'> </div>":("<div class='termr' style='width: "+ Math.round(perc*lung/100) +"px'>"+perc+"%</div>"+
	"<div class='termv' style='width: "+ (lung-Math.round(perc*lung/100)) +"px'>"+(Math.round((100-perc)*100)/100)+"%</div>"))+ 
	"</td></tr></table></div>";
}

function topzione(nome,valore,descrizione,nuovo){
	this.nome=nome;
	this.valore=valore;
	this.descrizione=descrizione;
	this.nuovo=null;
}
// *** MANUALE --------------------------------------------------------------------------------------------------------------------------------------
var l // oggetto su file da caricare
function tlez(numero,titolo,intro,nocache){
	this.numero=numero;
	this.titolo=titolo;
	this.intro=intro;
	this.sugg=new Array();
	this.nocache=nocache;
}
manuale={
	titolilezioni: [], //<-- caricato da dati.js
	lezioni: [],
	callback: {},
	lezatt: null,
	catfigatt: 0,
	ritornalezione: function (lez, cbk){
		if (this.lezatt!=lez){
			this.callback = cbk
			this.lezatt=lez
			if ((this.lezioni[lez]==null)||(this.lezioni[lez].nocache==true)) {
				this.lezioni[lez]= new tlez
				this.lezioni[lez].numero= lez
				this.jsel = creascript("lez",percquiz+"lez/"+"lez"+lez+".js")
			}else{
				this.ultlez=this.lezioni[this.lezatt].intro
				this.ritornatesto()
			}	
		}else{
			return this.lezioni[lez]
		}	
	},
	continua: function(){
		this.lezioni[this.lezatt]=l
		//this.callback(this.lezatt)
		this.ultlez=this.lezioni[this.lezatt].intro
		this.ritornatesto()
	},
	sellez: null,
	ritornasellez: function(){	
		if (this.sellez==null){
			var tmp=" id='sellez' class='sellezsel'>"
			for (i=0;i<titolilezioni.length;i++){
				this.titolilezioni[i]=titolilezioni[i]
				tmp+="<option value='"+i+"'>"+this.titolilezioni[i]+"</option>";
			}	
			this.sellez=tmp+"</select>\n";
			titolilezioni=null
		}
		return this.sellez
	},
	ritornatesto: function(){
		for (x=manuale.ultsugg;x<manuale.lezioni[manuale.lezatt].sugg.length;x++){
			var tmpsugg
			tmpsugg=suggerimenti.carica(manuale.lezioni[manuale.lezatt].sugg[x],manuale.ritornatesto)
			if (tmpsugg==null) 
				return
			else{
				prog(x,manuale.lezioni[manuale.lezatt].sugg.length-1) //aggiorna progressbar (func in index.htm)
				manuale.ultsugg=x+1
				manuale.ultlez+="<br/><div class='sugg'><div class='titolo'>"+tmpsugg.titolo+"</div>";
				if (tmpsugg.segnale>0) {
					manuale.ultlez+="<div class='contfig'><img class='figura' src='../immagini/s"+tmpsugg.segnale+".gif' onclick='ingrandisci("+tmpsugg.segnale+")' title='Figura nr. "+tmpsugg.segnale+". Fare click per ingrandire.' /></div>";
					stringi=""
				}else{
					stringi=" style='height: auto;'"
				}
				manuale.ultlez+="<div class='testo'"+stringi+">"+tmpsugg.testo+"</div><div class='esercitati'>Esercitati su questo argomento: "+mostrarif(tmpsugg.riferimento)+".</div></div>";
			}
		}
		
		manuale.ultsugg=0
		if ((manuale.lezatt!=0) && (manuale.lezatt!=31)) manuale.ultlez+=altroaiuto
		manuale.callback(manuale.lezatt)
	},
	ultsugg: 0,
	ultlez: ""
}

function mostrarif(r){
	var ret=""
	var x
	for (x=0;x<r.length;x++){
		ret+="<a href='javascript:quizargomento("+r[x]+")' class='esercitati'><b>quiz n. "+r[x]+"</b></a>, ";
	}
	return ret.substr(0,ret.length-2)
}

// *** SUGGERIMENTI ---------------------------------------------------------------------------------------------------------------------------------
var s // oggetto su file da caricare
function tsugg(numero,titolo,segnale,testo,riferimento){
	this.numero=numero;
	this.titolo=titolo;
	this.segnale=segnale;
	this.testo=testo;
	this.riferimento=new Array();
}
suggerimenti={
	sugg: [],
	callback: {},
	suggatt: null,
	jsel:{},
	carica: function(sugg, cbk){
		if(this.sugg[sugg]==null){
			this.sugg[sugg]= new tsugg
			this.sugg[sugg].numero=sugg
			this.callback = cbk
			this.suggatt=sugg
			this.jsel = creascript("sugg",percquiz+"sugg/"+"h"+sugg+".js")
		}else{
			return (this.sugg[sugg])
		}
	},
	continua: function(){
		this.sugg[this.suggatt]=s
		this.sugg[this.suggatt].testo= "<div title='Suggerimento n. "+this.suggatt+"'>"+cercafig(this.sugg[this.suggatt].testo)+"</div>"
		this.callback(this.suggatt)
	}
	
} 
 
 
// *** OPZIONI --------------------------------------------------------------------------------------------------------------------------------------

function topzioni(nome){
	this.nome=nome;
	this.opzioni=new Array();
	this.nomi=new Array();
	this.aggiorna=function(){
		for (i=0;i<this.nomi.length;i++){
			if (this.opzioni[this.nomi[i]].nuovo!=null){
				this.opzioni[this.nomi[i]].valore=this.opzioni[this.nomi[i]].nuovo;
				Cookies.set(this.opzioni[this.nomi[i]].nome,this.opzioni[this.nomi[i]].valore);
			}
		}	
	}  
	this.commuta=function(nome){
		if (this.opzioni[nome].nuovo==null)
			this.opzioni[nome].nuovo=(this.opzioni[nome].valore)?false:true;
		else	
			this.opzioni[nome].nuovo=(this.opzioni[nome].nuovo)?false:true;
		return this.opzioni[nome].nuovo;
	}
	this.crea=function(nome,valore,descrizione){
		var cook=Cookies.get(nome);
		if (cook!=null) 
			valore=eval(cook); 
		else 
			Cookies.set(nome,valore);	
		this.opzioni[nome]=new topzione(nome,valore,descrizione);
		this.nomi.push(nome)
	}
	this.eseguise=function(nome,valore,func){
		if (this.opzioni[nome].valore==valore){
			if(typeof func=="function")
				return func();
			else
				return func;	
		}	
	}
	this.imposta=function(nome,valore){ //Attenzione: non modifica i cookie
		this.opzioni[nome].valore=valore;
	}	
	this.mostra=function(div){
		ret="<table class='opzioni'>"
		//Sost alla funz commuta(), 5 righe sotto: opener."+this.nome+".commuta(\""+this.nomi[i]+"\") 
		for (i=0;i<this.nomi.length;i++){
			this.opzioni[this.nomi[i]].nuovo=null;
			ret+="<tr><td class='opzioni col1'>"+
			"<a href='javascript:void(0)'><img  id='"+this.nomi[i]+"' src='grafica/ck"+((this.opzioni[this.nomi[i]].valore)?"c":"u")+".gif' onclick='this.src=\"grafica/ck\"+((commuta(\""+this.nome+"\",\""+this.nomi[i]+"\"))?\"c\":\"u\")+\"o.gif\"' onmouseover='this.src=\"grafica/ck\"+((this.src.lastIndexOf(\"cku.gif\")!=-1)?\"u\":\"c\")+\"o.gif\"' onmouseout='this.src=\"grafica/ck\"+((this.src.lastIndexOf(\"ckuo.gif\")!=-1)?\"u\":\"c\")+\".gif\"' /></a>"+
			"</td><td class='opzioni col2'>"+this.opzioni[this.nomi[i]].descrizione+"</td></tr>"
		}
		//document.getElementById(div).innerHTML=ret+"</table>"
		getWin(winopt,div).innerHTML=ret+"</table>"
	}	
	this.valore=function(nome){
		return this.opzioni[nome].valore
	}
}

// *** RISULTATI ------------------------------------------------------------------------------------------------------------------------------------

function trisultati(){
	this.esamisvolti=0;
	this.esamifalliti=0;
	this.erroriesame=0;
	this.erroriesamecap = new Array(0,0,0,0,0,0,0,0,0,0);
	this.ultimiesami = new Array();
	this.svoltiargo=0
	this.erroriargocap = new Array(0,0,0,0,0,0,0,0,0,0);
	this.opcapitoli=0
	this.aggiungiultimi = function(errori){
		if (this.ultimiesami.length==this.maxultimi) this.ultimiesami.shift()
		this.ultimiesami.push(errori)		
	}
	this.ultimifallimenti=function(){
		var ret=0
		for (i=0;i<this.ultimiesami.length;i++)
			if (this.ultimiesami[i]>this.maxerrori) ret++
		return ret	
	}
	this.ultimierrori=function(){
		var ret=0
		for (i=0;i<this.ultimiesami.length;i++)
			ret+=this.ultimiesami[i]
		return ret	
	}
	this.tabellaesame=function(){
		var ultfal=this.ultimifallimenti()
		var ulterr=this.ultimierrori()
		return "<table class='tabris' id='tabrisesa'><tr><th> </th><th class='thris'>Tutte</th><th class='thris'>Ultime</th></tr>"+
		"<tr><th class='thrisl'>Prove svolte</th><td class='tdris'>"+this.esamisvolti+"</td><td class='tdris'>"+this.ultimiesami.length+"</td></tr>"+
		"<tr><th class='thrisl'>Prove fallite</th><td class='tdris'>"+this.esamifalliti+"</td><td class='tdris'>"+ultfal+"</td></tr>"+
		"<tr><th class='thrisl'>Fallimenti per prova</th><td class='tdris'>"+media(this.esamifalliti,this.esamisvolti)+"</td><td class='tdris'>"+media(ultfal,this.ultimiesami.length)+"</td></tr>"+
		"<tr><th class='thrisl'>Totale errori</th><td class='tdris'>"+this.erroriesame+"</td><td class='tdris'>"+ulterr+"</td></tr>"+
		"<tr><th class='thrisl'>Errori per prova</th><td class='tdris'>"+media(this.erroriesame,this.esamisvolti)+"</td><td class='tdris'>"+media(ulterr,this.ultimiesami.length)+"</td></tr>"+
		"</table>"
	}
	this.graficoultimi=function(){
		var riga1="", riga2=""
		for  (i=0;i<this.maxultimi;i++){
			if (i<this.ultimiesami.length){
				riga1+="<td class='grafico_b'><img src='grafica/bar"+((this.ultimiesami[i]>this.maxerrori)?"r":"v")+".gif' class='barris' style='height: "+((this.maxrisposte-this.ultimiesami[i])*4)+"px' /></td>"
				riga2+="<td class='grafico_n'>"+(this.maxrisposte-this.ultimiesami[i])+"</td>"
			}else{
				riga1+="<td class='grafico_b'></td>";
				riga2+="<td class='grafico_n'></td>";
			}	
		}
		return "<table class='tabris'><tr><th class='thris'>Risposte esatte nelle ultime "+this.maxultimi+" prove</th></tr><tr><td class='tdris'><table class='grafico' style='width: "+(this.maxultimi*14)+"px'><tr>"+riga1+"</tr><tr>"+riga2+"</tr></table></td></tr></table>"
	}
	this.percfallimenti=function(){
		var ultfal=this.ultimifallimenti()
		perctutfal=perc(this.esamifalliti,this.esamisvolti)
		percultfal=perc(ultfal,this.ultimiesami.length)
		return "<table class='tabris'><tr><th class='thris'>Prove</th><th class='thris'>Fallimenti / Successi</th></tr>"+
		"<tr><th class='thrisl'>Tutte</th><td class='tdris'>"+ termometro(perctutfal,230)+  "</td></tr>"+
		"<tr><th class='thrisl'>Ultime</th><td class='tdris'>"+ termometro(percultfal,230)+  "</td></tr></table>"
	}	
	this.percerrori=function(){
		var ulterr=this.ultimierrori()
		perctuterr=perc(this.erroriesame,this.esamisvolti*this.maxrisposte)
		perculterr=perc(ulterr,this.ultimiesami.length*this.maxrisposte)
		percultimaerr=perc(this.ultimiesami[this.ultimiesami.length-1],this.maxrisposte)
		return "<table class='tabris'><tr><th class='thris'>Prove</th><th class='thris'>Risposte errate / esatte</th></tr>"+
		"<tr><th class='thrisl'>Tutte</th><td class='tdris'>"+ termometro(perctuterr,230)+  "</td></tr>"+
		"<tr><th class='thrisl'>Ultime</th><td class='tdris'>"+ termometro(perculterr,230)+  "</td></tr>"+
		"<tr><th class='thrisl'>Ultima</th><td class='tdris'>"+ termometro(percultimaerr,230)+  "</td></tr></table>"
	}	
	this.erroriargo=function(){
		var ret=0
		for (i=0;i<this.erroriargocap.length;i++)
			ret+=this.erroriargocap[i]
		return ret	
	}
	this.tabellaargo=function(){
		var toterr = this.erroriargo()
		return "<table class='tabris' id='tabrisargo'><tr><th class='thris' style='width: 50%'>Risposte</th><th class='thris'>Errori</th></tr>"+
		"<tr><td class='tdris'>"+this.svoltiargo+"</td><td class='tdris'>"+toterr+"</td></tr></table>"
	}
	this.percerroriargo=function(){
		percerarg=perc(this.erroriargo(),this.svoltiargo)
		return "<table class='tabris'><tr><th class='thris'>Risposte errate / esatte</th></tr>"+
		"<tr><td class='tdris'>"+ termometro(percerarg,230)+ "</td></tr></table>";
	}
	this.tabellacap=function(){
		var tabcap=""
		var argo=0
		for (i=0;i<10;i++){
			argcap=""
			errcap=((this.opcapitoli==0)?this.erroriesamecap[i]:0)+this.erroriargocap[i]
			while(capmin[argo]==(i+1)){
				argcap+=(argomenti[argo]+". ")
				argo++
			}
			tabcap+="<tr><td class='tdris'>"+(i+1)+"</td><td class='tdrisl'>"+argcap+"</td><td class='tdris'>"+errcap+"</td></tr>"
		}
		return "<table class='tabris' id='tabcap'><tr><th class='thris'>Cap.</th><th class='thris'>Argomenti</th><th class='thris'>Errori</th></tr>"+
		tabcap+"</table>"
	}
	this.impostaopcapitoli=function(){
		return "<table class='opcap'><tr><td class='opcapcol1'><a href='javascript:void(0)'>"+
		"<img src='grafica/ck"+((this.opcapitoli==0)?"c":"u")+".gif' onclick='riscommutaopcapitoli()' onmouseover='this.src=\"grafica/ck\"+((risopcapitoli()==0)?\"c\":\"u\")+\"o.gif\"' onmouseout='this.src=\"grafica/ck\"+((risopcapitoli()==0)?\"c\":\"u\")+\".gif\"' alt='' /></a></td>"+
		"<td class='opcapcol2'>Includi gli errori delle prove di esame nella tabella degli errori per capitolo (a destra).</td></tr></table>"
	}
	this.commutaopcapitoli=function(){
		if (this.opcapitoli==0) this.opcapitoli=1; else this.opcapitoli=0;
		this.impostacookie()
		mostraris(1)
	}

	this.impostacookie=function(){
		if (op.valore("salvaoff")==false){
			for (i in this){
				var tipopar=typeof(eval("this."+i))
				if (tipopar=="function") break; // -> 
				Cookies.set(i, eval("this."+i))
			}	
		}
	}
	// Proprietà senza cookie
	this.maxultimi = 20;
	this.maxerrori = 4;
	this.maxrisposte = 30
	if (op.valore("salvaoff")==false){
		for (i in this){
			var tipopar=typeof(eval("this."+i))
			if (tipopar=="function") break; // -> 
			var cook = Cookies.get(i)
			if (cook!=null){ 
				if (tipopar=="object")
					eval("this."+i+"=["+unescape(cook)+"]")
				else	
					eval("this."+i+"="+cook)
			}	
		}
	}	
}// Risultati


// *** QUIZ -----------------------------------------------------------------------------------------------------------------------------------------

function tquiz(numero,domanda,domandat,soluzioni,segnale,suggerimento,soluzioniutente) {
	this.numero=numero;
	this.capitolo=0;
	this.nummin=""; // <- non usato
	this.quizass=0;
	this.rispass= new Array()
	this.domanda = domanda;
	this.domandat = domandat;
	this.risposte = new Array();
	this.rispostet = new Array();
	this.soluzioni = soluzioni;
	this.segnale= segnale;
	this.sugg=suggerimento;
	this.ordine = new Array();
	this.soluzioniutente=soluzioniutente;
	this.maxris=0; //<- non usato in nint
	this.disordina = function(inordine) {
		var totris
		totris=this.risposte.length-1
		for (i=0;i<this.risposte.length;i++){
			this.ordine[i]=i;
		}
		if(inordine==false){
			for (i=0;i<this.risposte.length;i++){
				//o=parseInt(Math.random()*totris)+1
				o=parseInt(Math.random()*totris)
				dum=this.ordine[totris]
				this.ordine[totris]=this.ordine[o]
				this.ordine[o]=dum
				totris--	
			}
		}
	}
	this.mostra = function(qn,maxris,name, corr){
		dumris=""
		if (maxris==0) maxris=this.risposte.length
		for (x=0;x<maxris;x++){
			rn=(qn*maxris)+x
			dumris+="<tr><td class='c_risposta'>"+(x+1)+") "+this.risposte[this.ordine[x]]+"</td><td>"
			if (corr==false){
				dumris+="<img class='v' id='"+name+"V"+rn+"' src='grafica/v.gif' alt='' onclick='"+name+".rispondi("+rn+",\"V\", "+qn+","+x+")' />"+
				"<img class='f' id='"+name+"F"+rn+"' src='grafica/f.gif' alt='' onclick='"+name+".rispondi("+rn+",\"F\", "+qn+","+x+")' /></td></tr>"
			}else{ // (Mostra le soluzioni)
				dumris+="<img class='vc' id='"+name+"V"+rn+"' src='grafica/"+((this.soluzioni.charAt(this.ordine[x])=="V")?"es.gif":"v.gif")+"' alt='' />"+ 
				"<img class='fc' id='"+name+"F"+rn+"' src='grafica/"+((this.soluzioni.charAt(this.ordine[x])=="F")?"es.gif":"f.gif")+"' alt='' /></td></tr>"
			}
		}
		this.maxris=maxris
		return "<table class='c_quesito' cellspacing='0'><tr><td class='c_segnale' rowspan='"+(maxris+1)+"'>"+
		((this.segnale==null)?"</td>":"<img class='i_segnale' src='../immagini/s"+this.segnale+".gif' title='Figura n. "+this.segnale+". Fare click per visualizzarne un ingradimento' alt='' onclick='ingrandisci("+this.segnale+")' /></td>")+
		"<td class='c_domanda' style='background-image: url(\"grafica/tri"+(qn+1)+".gif\");'><div class='c_txtdom'>"+this.domanda+"</div></td>"+
		"<td class='c_pulsanti'><img src='grafica/s.gif' onclick='mostrasoluzioni("+this.numero+")' onmouseover='this.src=\"grafica/so.gif\"' onmouseout='this.src=\"grafica/s.gif\"' class='b_solu b_solu_"+name+"' title='Mostra tutte le soluzioni del quiz n. "+this.numero+"' alt='' />"+
		"<img src='grafica/h.gif' onclick='mostrasuggerimenti("+this.sugg+")' onmouseover='this.src=\"grafica/ho.gif\"' onmouseout='this.src=\"grafica/h.gif\"' class='b_solu b_solu_"+name+" b_sugg' title='Mostra i suggerimenti del quiz n. "+this.numero+"' alt='' /></td></tr>"+dumris+"</table>"
	}
	this.correggi=function(qn,maxris,name,outwin){ //<--**
		var x, errori=0
		if (maxris==0) maxris=this.risposte.length
		for (x=0;x<maxris;x++){
			rn=(qn*maxris)+x
			
			if (this.soluzioniutente[x]==this.soluzioni.charAt(this.ordine[x])){
				//nint->getWin(outwin,name+this.soluzioniutente[x]+rn).src="grafica/ses.gif"
				;
			}else{
				errori++
				/*nint->
				if (this.soluzioniutente[x]!=null){	
					getWin(outwin,name+this.soluzioniutente[x]+rn).src="grafica/ser.gif"
				}else{
					getWin(outwin,name+this.soluzioni.charAt(this.ordine[x])+rn).src="grafica/es.gif"
				}
				<-nint*/	
			}
		}
		return errori;	
	}
} 

function tserbatoio(maxcap){
	this.maxcap=maxcap;
	this.cap=new Array();
	this.riempi=function(c){
		for (i=(finecap[c]+1);i<=finecap[c+1];i++){
			this.cap[c].push(i)
		}
	}	
	this.scegli=function(c){
		if (this.cap[c].length==0) 
			this.riempi(c);
		return this.cap[c].splice(rnd(0,(this.cap[c].length-1)),1)			
	}
		
	for (i=0;i<maxcap;i++)
		this.cap[i]= new Array()	
}
tuttiquiz = new tserbatoio(10);


// *** SCHEDA ---------------------------------------------------------------------------------------------------------------------------------------

function tscheda(name,maxquiz,maxris,maxerrori,outele,outwin,interfaccia){
	this.name=name;
	this.quesiti= new Array();
	this.jsel = new Array();
	this.n=-1;
	this.status=0;
	this.maxquiz=maxquiz;
	this.maxris=maxris;
	this.outele=outele
	this.outwin=outwin; //<-- **
	this.output="";
	this.interfaccia=interfaccia;
	this.correzione=false;
	this.errori=0;
	this.maxsoluzioni=0;
	this.soluzionidate=0;
	this.maxerrori=maxerrori;
	this.soundes="chimes"; //senza estensione 
	this.sounder="ahi";    //senza estensione
	this.inordine=false;
	
	this.inizializza = function(){
		for (i=0;i<this.maxquiz;i++){
			this.quesiti[i] = new tquiz
		}
		schedaatt=this.name //schedaatt globale
		
	}
	
	this.sorteggiaQuiz = function(){
		var i;
		// Capitoli ordinati	
		for (i=0;i<this.maxquiz;i++){
			this.quesiti[i].numero = tuttiquiz.scegli(i)
			this.quesiti[i].capitolo=i;
		}
			
		/* Capitoli in ordine casuale
		sorteggia= new Array()
		var j;
		for (i=0;i<this.maxquiz;i++) sorteggia[i]=i;
		i=9;
		j=0;
		while (i>=0){
			s= rnd(0,i)
			this.quesiti[j].capitolo=sorteggia[s]
			//this.quesiti[j].numero = rnd(finecap[sorteggia[s]]+1,finecap[sorteggia[s]+1])
			this.quesiti[j].numero = tuttiquiz.scegli(sorteggia[s])
			sorteggia[s] = sorteggia[i]
			i--
			j++
		}
		*/
	}
	
	this.caricaQuiz = function(){
 		this.n++;

  		//Rimuovi il vecchio script se presente
  		rimuoviscript("s"+this.name+this.n)
  		
  		//Crea il nuovo script	
  		this.jsel[this.n] = creascript("s"+this.name+this.n,percquiz+plang+"q"+lang+this.quesiti[this.n].numero+".js")
   				
	}
	
	this.caricaAncora = function(){
		if (this.maxquiz>1) f(this.n+1) 
		
		if (linguacambiata==false){
			this.quesiti[this.n].soluzioniutente=new Array();
			this.quesiti[this.n].disordina(this.inordine)
		}	
		//nint -> this.output+=this.quesiti[this.n].mostra(this.n, this.maxris, this.name, this.correzione)
		//nint -> this.maxsoluzioni+=this.quesiti[this.n].maxris
		this.maxsoluzioni+= (this.maxris==0)?this.quesiti[this.n].risposte.length:this.maxris
		
		if (this.n<(this.maxquiz-1)){ //Attenzione che questo valore parte da -1	
			this.caricaQuiz()
		}else{			
			//nint -> this.output+="<table class='riga'><tr><td class='riga'><div class='vuoto'>.</div></td><td class='c_pulsanti'></td></tr></table>"
			this.output=this.interfaccia.ritorna()
			
			if (getWin(this.outwin,this.outele)!=null){
				getWin(this.outwin,this.outele).innerHTML=this.output
				
			}else{ // vXul se la finestra è stata chiusa
				this.outwin.contenuto=this.output
			}
			if (linguacambiando==1){
				linguacambiando=2
				ricaricasolu()
			}else if (linguacambiando==2){
				linguacambiando=0
				ricaricaesame()
			}else{
				linguacambiata=false
			}	
			
		}
				
	}
			
	this.rispondi = function(ra,tr,qn,rn){
		// Sostituita 
		if (this.correzione==false){
			if (tr=="V"){
				//document.getElementById(this.name+"V"+ra).src="grafica/vs.gif"
				getWin(this.outwin,this.name+"V"+ra).src="grafica/vs.gif"
				//document.getElementById(this.name+"F"+ra).src="grafica/f.gif"
				getWin(this.outwin,this.name+"F"+ra).src="grafica/f.gif"
			}else{
				//document.getElementById(this.name+"V"+ra).src="grafica/v.gif"
				getWin(this.outwin,this.name+"V"+ra).src="grafica/v.gif"
				//document.getElementById(this.name+"F"+ra).src="grafica/fs.gif"
				getWin(this.outwin,this.name+"F"+ra).src="grafica/fs.gif"
			}
			
			if(this.quesiti[qn].soluzioniutente[rn]==undefined) this.soluzionidate++
			this.quesiti[qn].soluzioniutente[rn]=tr;
			if((this.soluzionidate==this.maxsoluzioni) && op.valore('avauto')) this.correggischeda()
			
		}else{
			rispesatta=this.quesiti[qn].soluzioni.charAt(this.quesiti[qn].ordine[rn])
			risputente=this.quesiti[qn].soluzioniutente[rn]	
			Ext.example.msg('Per tua informazione', ((risputente==undefined)?'Non hai dato alcuna risposta': ('Hai risposto '+((risputente=='V')?'VERO':'FALSO')))+((rispesatta==risputente)?' e infatti ':', tuttavia ')+'la soluzione corretta era '+((rispesatta=='V')?'VERO':'FALSO')+'.');

		}
		// Sostituita
	}	
	
	this.correggischeda = function(){
		if (this.correzione==false){
			for (i=0;i<this.maxquiz;i++){
				tmperrori=this.quesiti[i].correggi(i,this.maxris,this.name,this.outwin) //<--**
				ris.erroriesamecap[this.quesiti[i].capitolo]+=tmperrori
				this.errori+=tmperrori
			}	
			this.correzione=true
			if (this.errori>this.maxerrori){
				if (op.valore('suonioff')==false) niftyplayer('niftyPlayer1').loadAndPlay("suoni/"+sorteggiatesto(this.sounder)+"."+sext) //playsound(sorteggiatesto(this.sounder));
			}else{
				if (op.valore('suonioff')==false) niftyplayer('niftyPlayer1').loadAndPlay("suoni/"+sorteggiatesto(this.soundes)+"."+sext) //playsound(sorteggiatesto(this.soundes));
			}
			
			if (this.name=='schedaargo'){
				winargo.buttons[0].setText("Continua")
				//document.getElementById('contargo').title="Continua l'esercizio sui quiz"
				setTooltip(winargo,"contargo","Continua l'esercizio sui quiz")
				
				
				Ext.example.msg('Per tua informazione','Hai fatto '+this.errori+' errori!');
				ris.svoltiargo+=this.maxsoluzioni
				ris.erroriargocap[this.quesiti[0].capitolo]+=this.errori
				tab=1
			}else{ // schedaesame
				winesame.buttons[0].setText("Nuova scheda")
				// document.getElementById('contesame').title="Avvia una nuova simulazione di esame"
				setTooltip(winesame,"contesame","Avvia una nuova simulazione di esame")
				ris.esamisvolti++
				if (this.errori>this.maxerrori) ris.esamifalliti++
				ris.erroriesame+=this.errori
				ris.aggiungiultimi(this.errori)
				tab=0
				Ext.select('.b_solu_schedaesame').setStyle('visibility','visible')
				mostraesito()
			}
			if (winris!=undefined){
				if (winris.hidden==false) mostraris(tab)
			}	
			ris.impostacookie()
	

		}

	}
	this.esito = function(){
		if(this.errori>this.maxerrori){
			intro=sorteggiatesto("Siamo molto spiacenti di|Abbiamo il triste onere di|Ci rincresce moltissimo di")
			risultato="<div class='nonidoneo'>non idoneo</div>"
			coda=sorteggiatesto("Lo invitiamo a non scoraggarsi e a riprovare.")
		}else{
			intro=sorteggiatesto("Abbiamo il piacere di|Siamo felicissimi di|Ci scompisciamo all'idea di dover")
			risultato="<div class='idoneo'>idoneo</div>"
			coda=sorteggiatesto("Complimenti.")
		}
		ret="<div class='testoesito'>"+intro+" annunciare che il candidato ha commesso <b>"+((this.errori==1)?"un errore":this.errori+" errori")+"</b> ed &#232; pertanto risultato:"+risultato+coda+"</div>"
		getWin(winesito,"panesito").innerHTML=ret;
		getWin(winesito,"pancommento").innerHTML='<table class="commento"><tr><td><img class="profmastri" src="grafica/profmastri.jpg" alt="" /></td><td><div class="commento">'+sorteggiatesto(comm[(this.errori>10)?10:this.errori])+'</div></td></tr></table>'
	}

	// Inizializza quesiti[]			
	for (i=0;i<this.maxquiz;i++){
		this.quesiti[i] = new tquiz
	}
	schedaatt=this.name //schedaatt globale
	
	
} //tscheda

// ===================================================================================================================================================
function continua(){
	q.numero=eval(schedaatt+".quesiti["+schedaatt+".n].numero")
	q.capitolo=eval(schedaatt+".quesiti["+schedaatt+".n].capitolo")
	q.ordine=eval(schedaatt+".quesiti["+schedaatt+".n].ordine")
	q.soluzioniutente=eval(schedaatt+".quesiti["+schedaatt+".n].soluzioniutente")
	// inserire qui i valori non compresi nel file dei quiz che si intendono conservare
	eval(schedaatt+".quesiti["+schedaatt+".n]=q");
	eval(schedaatt+".caricaAncora()")
}


function corrcontargo(){
	if (winargo.buttons[0].text=="Correggi"){
		schedaargo.interfaccia.correggi()
	}else{
		winargo.buttons[0].setText("Correggi")
		//document.getElementById('contargo').title="Correggi le risposte a questo quiz"
		setTooltip(winargo,"contargo","Correggi le risposte a questo quiz")
		vaiquiz(+1,"schedaargo","nuovoargo");
	}
}

function corrcontesame(){
	if (winesame.buttons[0].text=="Correggi"){
		schedaesame.interfaccia.correggi()
	}else{
		winesame.buttons[0].setText("Correggi")
		//document.getElementById('contesame').title="Correggi questa scheda di esame"
		setTooltip(winesame,"contesame","Correggi questa scheda di esame")
		nuovoesame()
	}
}


function cercaargo(numquiz){
	var argo=0
	for (argo=1;argo<fineargo.length;argo++){
		if (numquiz<=fineargo[argo]) {
			return argo-1
		}
	}
	return -1	
}
function cercacap(numquiz){
	for (cap=1;cap<finecap.length;cap++){
		if (numquiz<=finecap[cap]) {
			return cap-1
		}
	}
	return -1	
}

function vaiquiz(ofs,scheda,func){
	ofs=parseInt(ofs)
	quizatt=eval("parseInt("+scheda+".quesiti[0].numero)")
	if (quizatt+ofs>fineargo[fineargo.length-1])
		eval(func+"(1)")
	else if (quizatt+ofs<1)
		eval(func+"(parseInt(fineargo[fineargo.length-1]))")
	else
		eval(func+"(quizatt+ofs)")
}

function verifquiznum(num){
	if (isNaN(num) || (num<1) || (num>fineargo[fineargo.length-1]))
		return false;
	else
		return true;
}

function vaiquiznum(func){
	Ext.MessageBox.prompt('Vai al quiz numero...', 'Introdurre un valore da 1 a '+fineargo[fineargo.length-1]+':', function(btn,text){
		if (btn=="ok"){
			if (verifquiznum(text)==false){
				Ext.MessageBox.show({title: 'Errore',msg: 'Il valore introdotto ('+text+') non è corretto.',buttons: Ext.MessageBox.OK,icon: Ext.MessageBox.ERROR});		
			}else{
				eval(func+"("+text+")")
			}		
		}
	});
}

function confermaazzera(){
	Ext.MessageBox.confirm('Richiesta di conferma', 'Si vuole realmente azzerare i risultati di tutte le prove fino ad ora salvati?', function(btn){
        	if(btn=='yes'){
			delete ris
			var memopval=op.valore("salvaoff")
			op.imposta("salvaoff",true)
			ris = new trisultati()
			op.imposta("salvaoff",memopval)
			mostraris(tabris.getActiveTab().id)   		
     	}
     });	
}


function setTooltip(win,id,t){
	//getWin(win,id).setAttribute("tooltiptext",t)
	getWin(win,id).setAttribute("title",t) //imposta l'attributo via dom
}

function riscommutaopcapitoli(){
	ris.commutaopcapitoli()
}	
function risopcapitoli(){
	return ris.opcapitoli
}


// ---------------------------------------------------------------------------------------------------------------------------------------------------

//  Simulazione di esame

function nuovoesame(){
	//Aggiorna il pulsante
	winesame.buttons[0].setText("Correggi")
	setTooltip(winesame,"contesame","Correggi questa scheda di esame")

	Ext.MessageBox.show({
		title: 'Attendere, prego',
		msg: 'Caricamento in corso...',
		progressText: 'Inizializzazione...',
		width:300,
		progress:true,
		closable:false
	});

	getWin(winesame,'panesame').innerHTML="";
	
	var dim=null // Prima di rigenerare l'interaccia memorizza le dimensioni
	if (schedaesame.interfaccia!=null) dim=schedaesame.interfaccia.dim
	schedaesame = new tscheda("schedaesame",10,3,4,"panesame",winesame);
	schedaesame.interfaccia= new interfaccia(schedaesame,"schedaesame.interfaccia", true, false)
	if (dim!=null) {schedaesame.interfaccia.dim=dim; dim=null}
			
	with (schedaesame){
		inizializza()
		sounder=suonierr
		soundes=suoniesa
		sorteggiaQuiz()
		caricaQuiz()
	}
	Ext.select('.b_solu_schedaesame').setStyle('visibility','hidden')
}


// Esercizio per argomento

function nuovoargo(numquiz){
	setTooltip(winargo,"contargo","Correggi le risposte a questo quiz")
	
	if (numquiz==0) numquiz=1
	//document.getElementById("selargo").selectedIndex=cercaargo(numquiz)
	getWin(winargo,"selargo").selectedIndex=cercaargo(numquiz)
	
	if (winargo.buttons[0].text!="Correggi"){
		winargo.buttons[0].setText("Correggi")
		//document.getElementById('contargo').title="Correggi le risposte a questo quiz"
		setTooltip(winargo,"contargo","Correggi le risposte a questo quiz")
	}
	
	var dim=null // Prima di rigenerare l'interaccia memorizza le dimensioni
	if (schedaargo.interfaccia!=null) dim=schedaargo.interfaccia.dim
	schedaargo = new tscheda("schedaargo",1,0,0,"panargo",winargo);
	schedaargo.interfaccia= new interfaccia(schedaargo,"schedaargo.interfaccia", true, true)
	if (dim!=null) {schedaargo.interfaccia.dim=dim; dim=null}
	
	schedaargo.interfaccia.confermacorr=false
	panquizargo.setTitle("Esercizio sul quiz n. "+numquiz)
	with (schedaargo){
		inizializza()
		quesiti[0].numero=numquiz
		quesiti[0].capitolo=cercacap(numquiz)
		caricaQuiz()
	}	
}	


// Soluzioni dei quiz

function nuovasolu(numquiz){

	if (numquiz==0) numquiz=1
	//document.getElementById("selargo").selectedIndex=cercaargo(numquiz)
	getWin(winsolu,"selargo").selectedIndex=cercaargo(numquiz)
	
	var dim=null // Prima di rigenerare l'interaccia memorizza le dimensioni
	if (schedasolu.interfaccia!=null) dim=schedasolu.interfaccia.dim
	schedasolu = new tscheda("schedasolu",1,0,0,"pansolu",winsolu);
	schedasolu.interfaccia= new interfaccia(schedasolu,"schedasolu.interfaccia", true, true)
	if (dim!=null) {schedasolu.interfaccia.dim=dim; dim=null}
	schedasolu.interfaccia.correzione=true
	
	panquizsolu.setTitle("Soluzioni del quiz n. "+numquiz)
	with (schedasolu){
		inizializza()
		inordine=true
		quesiti[0].numero=numquiz
		quesiti[0].capitolo=cercacap(numquiz)
		correzione=true;
		caricaQuiz()
		
	}	
}	


// Risultati delle prove

function mostraris(tab){
	if (tab==null) tab=tabris.activeTab
	
	tabris.setActiveTab(tab)
	
	if (tab==0){
		getWin(winris,"risesame").innerHTML="<table class='pagrisesa'>"+
		"<tr><td class='pagrisesa_n pagrisesa_o'>"+ris.tabellaesame()+"</td><td class='pagrisesa_n pagrisesa_e'>"+ris.graficoultimi()+"</td></tr>"+
		"<tr><td class='pagrisesa_s pagrisesa_o'>"+ris.percerrori()+"</td><td class='pagrisesa_s pagrisesa_e'>"+ris.percfallimenti()+"</td></tr></table>"
		
	}else{
		getWin(winris,"risargo").innerHTML="<table class='pagrisargo'>"+
		"<tr><td class='pagrisargo_n pagrisargo_o'>"+ris.tabellaargo()+ris.percerroriargo()+"</td><td class='pagrisargo_n pagrisargo_e' rowspan='2'>"+ris.tabellacap()+"</td></tr>"+
		"<tr><td class='pagrisargo_s pagrisargo_o'>"+ris.impostaopcapitoli()+"</td></tr></table>";
	}	
}

function nuovalez(leznum){
	Ext.MessageBox.show({
		title: 'Attendere, prego',
		msg: 'Caricamento in corso...',
		progressText: 'Inizializzazione...',
		width:300,
		progress:true,
		closable:false
	});
	getWin(winmanu,'panmanu').innerHTML=""
	var unalez
	unalez=manuale.ritornalezione(leznum,nuovalez)
	if (unalez==null) return
	Ext.MessageBox.hide();	// se non è scomparso prima...
	getWin(winmanu,"sellez").selectedIndex=leznum	
	panmanu.setTitle(manuale.titolilezioni[leznum]);
	getWin(winmanu,'panmanu').innerHTML=manuale.ultlez

}

// ---------------------------------------------------------------------------------------------------------------------------------------------------
function cercafig(t){
	ini=0
	while(1){
		dum=t.indexOf("fig",ini)
		ini=ini+3
		if (dum==-1) 
			break
		else{
			if ((t.charAt(dum+3)==".") || (t.charAt(dum+3)=="g")){
				ind=dum+4
				afig=""
				iniNum=false
				skip=0
				shor=0
				while(1){
					car=t.charAt(ind)
					if ("1234567890".indexOf(car)==-1){ //Non è un numero
						if (iniNum==true){
							if ((car==")") || (car==".") || (car==";") || (car==":")){
								afig=afig+","
								break	
							}else{ 
								afig=afig+","
								iniNum=false
								if (car==",") {shor=1;}
							}
						}else{
							if (afig.length>1){
								if (car==" ")
									;
								//else if (car==",")
								//	shor=1
								else if((car=="e") || (car=="o")){
									if (shor==0){
										if (t.substring(ind+2,ind+6)=="fig."){										
											ind=ind+6
											skip=6
										}	
									}else{
										ind=ind-2
										break
									}
								}else{
									if (car=="&"){
										ind=ind-1
									}else{
										//orig: ind=ind-(1+shor)
										ind=ind-1
									}	
									break	
								}
							}else{
								if (car=="&"){ //Ignora immagini
									break
								}	
							}
						}
					}else{
						//if (car!=" "){
							iniNum=true
							afig=afig+car
							shor=0
						//}
					}
					if (ind-dum>50)
						break
					ind++
				} // while int
				if (afig.length>1){
					t=t.substring(0,dum)+"<a href='#' onclick='mostrafig(this,\""+afig+"\")'><b>" +t.substring(dum,ind)+"</b></a>"+t.substring(ind)
					ini=dum+38+afig.length+5+4+skip
				}
			} // if "fig." o "figg"
		}
	} // while est
	widFig=""
	return t
}

function mostrafig(t,f){
	var figs=f.substr(0,f.length-1).split(",")
	for (x=0;x<figs.length; x++){
		if (figs.length>1){
			larg=294
			lung=310
			if (figs.length<5){perriga=2} else {
				w=Ext.lib.Dom.getViewWidth();
				perriga=parseInt(w/larg)
				//perriga=3
			}
			//if (w_ing[figs[x]]!=null){
			//	w_ing[figs[x]].setPosition((x%perriga)*larg,parseInt(x/perriga)*lung)
			//}
			ingrandisci(figs[x],(x%perriga)*larg,parseInt(x/perriga)*lung);
		}else
			ingrandisci(figs[x]);
	}	
}

function ridimensiona(fig,t, w, h){
	figw=t.getInnerWidth()
	figh=t.getInnerHeight()
	if (figw<figh) lato=figw-2; else lato= figh-2	
	var hd=getWin(w_ing[fig],"fig"+fig)
	if (hd!=null) {
		hd.width=lato
		//hd.style.width=lato
		hd.style.marginTop=(figh-lato)/2
	}
}


function cambiatitolo(t,nt){   //Wrapper
	eval(t+".setTitle('"+nt+"')")
}
function massimizza(t){        //Wrapper
	eval(t+".toggleMaximize()")
}

function ingrandisci(fig, posX, posY){
	document.getElementById('banspa').src="ban.htm"
	if (w_ing[fig]==null){
		if (def[fig]!=null) deffig=" - "+def[fig]; else deffig="";
		
		var panel = new Ext.Panel({
			region: 'center',
			autoScroll: false,
			html: '<div id="panimg"><img id="fig'+fig+'" src="../immagini/s'+fig+'.gif" alt="" onclick="cambiatitolo(\'w_ing['+fig+']\',\'\');massimizza(\'w_ing['+fig+']\')"  style="margin: auto;" title="Figura n.'+fig+deffig+'. Fare click per portare a tutto schermo/ridimensionare" /></div>'
		});
		
		w_ing[fig] = new Ext.Window({
			title:"Figura n. "+fig,
			width:294,
     	   	height:310,
     	   	x: posX,
     	   	y: posY,
     	   	border:false,
			plain:true,
			layout: 'border',
			items: [panel],
			resizable: true,
			maximizable: true,
			listeners : {
            		'resize' : function(t, w, h){
            			ridimensiona(fig,t,w,h)
            		},
            		'maximize' : function(t){
            			cambiatitolo("w_ing["+fig+"]", "Figura n. "+fig+deffig)
            		},
            		'restore' : function(t){
            			cambiatitolo("w_ing["+fig+"]", "Figura n. "+fig)
            		}
        		},
			close: function(){	
				w_ing[fig].destroy();
				w_ing[fig]=null;
			}
	
		});
		
	}
	finattiva('w_ing['+fig+']');	
	w_ing[fig].show();
}


function simulazioneesame(){
	document.getElementById('banspa').src="ban.htm"
	
	nuovo=!(op.valore('memfin'))
	 
	if (winesame==null){
		nuovo=true
		var pan = new Ext.Panel({
			region: 'center',
			autoScroll: false,
			baseCls: 'x-plain',
			html: '<div id="panesame"></div>'
		});
		
		winesame = new Ext.Window({
			title: ver.app+' - Scheda di Esame',
			closable:true,
			closeAction: 'hide',
			minimizable: false,
			collapsible: true,
			maximizable:true, 
			width:814,
			height:569,
			border:true,
			plain:true,
	
			layout: 'border',
			listeners : {
            		'resize' : function(t, w, h){
            			if (schedaesame.interfaccia!=null) {
            				schedaesame.interfaccia.redim(this.getInnerHeight(),this.getInnerWidth())
            				schedaesame.output=schedaesame.interfaccia.ritorna()
            				getWin(schedaesame.outwin,schedaesame.outele).innerHTML=schedaesame.output
            			}	
            		}
            	},	
			items: [pan],
			buttonAlign: 'right',
			buttons : [
				
			{text: 'Correggi', id: 'contesame', handler: function(){corrcontesame()} },
			{text: 'Soluzioni',handler: function(){schedaesame.interfaccia.mostrasolu();},tooltipType: 'title', tooltip: 'Mostra le soluzioni di questo quiz'}, 
			{text: 'Suggerimenti',handler: function(){schedaesame.interfaccia.mostrasugg();},tooltipType: 'title', tooltip: 'Mostra suggerimenti su questo quiz'},  
			{text: 'Risultati',handler: function(){mostrarisultati(0);},tooltipType: 'title', tooltip: 'Mostra i risultati delle simulazioni'},
			/*{text: '<img src=\"grafica/flags/it.gif\">',id: 'cambialingua', handler: function(){ }, tooltipType: 'title', tooltip: 'Scegli la lingua', menu: mnlingua},*/
			sceglilingua0,
			{text: 'Chiudi',handler: function(){winesame.hide();},tooltipType: 'title', tooltip: 'Chiudi questa finestra'}		
			]
		});
		
	}
	finattiva('winesame');
	winesame.show();

	if (winesame.collapsed) winesame.toggleCollapse()
	if (nuovo){
		esame()
	}	
}

function quizargomento(q){
	quiznum=q
	document.getElementById('banspa').src="ban.htm"
	nuovo=!(op.valore('memfin'))
	if (winargo==null){ 
		nuovo = true
		if (quiznum==0) quiznum=1
		var panselargoargo = new Ext.Panel({
			region: 'north',
			title: 'Scegli un argomento',
			height: 80,
			frame: true,
			autoScroll: false,
			html: '<table class="selargo"><tr><td><select onchange="nuovoargo(this.value)"'+selargo+'</td></tr></table>'
		});
		panquizargo = new Ext.Panel({
			region: 'center',
			title: 'Quiz numero 1',
			autoScroll: false,
			border: true,
			listeners : {
            		'resize' : function(t, w, h){
            			if (schedaargo.interfaccia!=null) {
            				schedaargo.interfaccia.redim(this.getInnerHeight(),this.getInnerWidth())
            				schedaargo.output=schedaargo.interfaccia.ritorna()
            				getWin(schedaargo.outwin,schedaargo.outele).innerHTML=schedaargo.output
            			}	
            		}	
            	},
			html: '<div id="panargo"></div>'
		});
	
		winargo = new Ext.Window({
			title:ver.app+' - Quiz per argomento',
			closable:true,
			closeAction:'hide',
			minimizable:false,
			collapsible:true,
			maximizable:true, 
			width:814,
			height:554,
			border:false,
			plain:true,
			layout:'border',
			
			items: [panselargoargo ,panquizargo],
			buttonAlign: 'right',
			buttons : [
			{text: 'Correggi', id: 'contargo', handler: function(){corrcontargo();} }, 
			{text: '<<',handler: function(){vaiquiz(-1,"schedaargo","nuovoargo");},tooltipType: 'title', tooltip: 'Vai al quiz precedente'}, 
			{text: 'Quiz n...',handler: function(){vaiquiznum("nuovoargo");},tooltipType: 'title', tooltip: 'Vai al quiz numero...'}, 
			{text: '>>',handler: function(){vaiquiz(+1,"schedaargo","nuovoargo");}, tooltipType: 'title', tooltip: 'Vai al quiz seguente'}, 
			{text: 'Soluzioni',handler: function(){mostrasoluquizargoatt();},tooltipType: 'title', tooltip: 'Mostra le soluzioni di questo quiz'}, 
			{text: 'Suggerimenti',handler: function(){mostrasuggquizargoatt();},tooltipType: 'title', tooltip: 'Mostra suggerimenti su questo quiz'}, 
			{text: 'Risultati',handler: function(){mostrarisultati(1);},tooltipType: 'title', tooltip: 'Mostra i risultati delle prove per argomento'},
			sceglilingua1,
			{text: 'Chiudi',handler: function(){winargo.hide();},tooltipType: 'title', tooltip: 'Chiudi questa finestra'} 
			]
		});
	}
	finattiva('winargo');
	winargo.show();
	
	if (winargo.collapsed) winargo.toggleCollapse();
	if ((nuovo) || (quiznum>0)) {
		argo(quiznum)	
	}
}

function mostrasoluquizargoatt(){ // Wrapper
	mostrasoluzioni(schedaargo.quesiti[0].numero)
}
function mostrasuggquizargoatt(){ // Wrapper
	mostrasuggerimenti(schedaargo.quesiti[0].sugg)
}



function mostrasoluzioni(q){
	document.getElementById('banspa').src="ban.htm"
	quiznum=q
	nuovo=!(op.valore('memfin'))
	if (winsolu==null){ 
		nuovo=true
		if (quiznum==0) quiznum=1
		var panselargosolu = new Ext.Panel({
			region: 'north',
			title: 'Scegli un argomento',
			height: 80,
			frame: true,
			autoScroll: false,
			html: '<table class="selargo"><tr><td><select onchange="nuovasolu(this.value)"'+selargo+'</td></tr></table>'
		});
		panquizsolu = new Ext.Panel({
			region: 'center',
			title: 'Quiz numero 1',
			autoScroll: false,
			listeners : {
            		'resize' : function(t, w, h){
            			if (schedasolu.interfaccia!=null) {
            				schedasolu.interfaccia.redim(this.getInnerHeight(),this.getInnerWidth())
            				schedasolu.output=schedasolu.interfaccia.ritorna()
            				getWin(schedasolu.outwin,schedasolu.outele).innerHTML=schedasolu.output
            			}	
            		}	
            	},
			html: '<div id="pansolu"></div>'
		});
		
		winsolu = new Ext.Window({
			title: ver.app+' - Soluzioni',
			closable:true,
			closeAction: 'hide',
			minimizable: false,
			collapsible: true,
			maximizable:true, 
			width:814,
			height:554,
			border:false,
			plain:true,
			layout: 'border',
			
			items: [panselargosolu ,panquizsolu],
			buttonAlign: 'right',
			buttons : [
			{text: '<<',handler: function(){vaiquiz(-1,"schedasolu","nuovasolu");}, tooltipType: 'title', tooltip: 'Vai al quiz precedente'}, 
			{text: 'Quiz n...',handler: function(){vaiquiznum("nuovasolu");},tooltipType: 'title', tooltip: 'Vai al quiz numero...'}, 
			{text: '>>',handler: function(){vaiquiz(+1,"schedasolu","nuovasolu");}, tooltipType: 'title', tooltip: 'Vai al quiz seguente'}, 
			{text: 'Suggerimenti',handler: function(){mostrasuggquizsoluatt();},tooltipType: 'title', tooltip: 'Mostra suggerimenti su questo quiz'}, 
			sceglilingua2,
			{text: 'Chiudi',handler: function(){winsolu.hide();},tooltipType: 'title', tooltip: 'Chiudi questa finestra'} 
			]
		});
	}
	finattiva('winsolu');
	winsolu.show();
	if (winsolu.collapsed) winsolu.toggleCollapse()
	if ((nuovo) || (quiznum>0)) soluzioni(quiznum)	

}
function mostrasuggquizsoluatt(){ // Wrapper
	mostrasuggerimenti(schedasolu.quesiti[0].sugg)
}

function mostraopzioni(){
	document.getElementById('banspa').src="ban.htm"
	if (winopt==null){ 
		tabsopt = new Ext.TabPanel({
			height: 335,
			activeTab: 0,
			frame:true,
			items:[
     	       {title: 'Opzioni', html:'<div id="opzioni1" class="opzioni">opz</div>'},
     	       {title: 'Informazioni', contentEl:'info'}
			]
		});
     	 	
		winopt = new Ext.Window({
			title:ver.app+" - Opzioni",
			width:300,
     	   	height:400,
     	   	border:false,
			plain:true,
			resizable:false,
			close: function(){
				this.hide()
			},
			items: [tabsopt],
			buttonAlign: 'right',
			buttons : [
			{text: 'Aiuto',handler: function(){winpv.show()},tooltipType: 'title', tooltip: 'Mostra informazioni di aiuto su WEBpatente'}, 
			{text: 'Ok',handler: function(){aggiornaopzioni();},tooltipType: 'title', tooltip: 'Conferma le modifiche e chiudi la finestra'}, 
			{text: 'Annulla',handler: function(){winopt.hide();},tooltipType: 'title', tooltip: 'Annulla le modifiche e chiudi la finestra'} 
			]
		});
	}	
	finattiva('winopt');
	winopt.show();
	opzioni('opzioni1')
	
}

function aggiornaopzioni(){
	//Mantenere per wpnoxul
	winopt.hide();
	op.aggiorna()
}


function mostraesito(){
	document.getElementById('banspa').src="ban.htm"
	if (winesito==null){ 
		nuovo=true
		var pan1 = new Ext.Panel({
			title: 'Comunicato degli esaminatori',
			region: 'north',
			height: 130,
			autoScroll: true,
			html: '<div id="panesito"></div>'			
		});
		var pan2 = new Ext.Panel({
			title: 'Il commento del prof. Mastri (non e\' obbligatorio leggerlo)',
			region: 'center',
			autoScroll: true,
			collapsible: true,
			collapsed: true,
			html: '<div id="pancommento"></div>'
		});
		var pan3 = new Ext.Panel({
			region: 'south',
			autoScroll: false,
			height: 86,
			html: '<div class="suggesito">'+spiegcorr+'</div>'
		});
		winesito = new Ext.Window({
			title: ver.app+' - Esito dell\'esame',
			closable:true,
			closeAction: 'hide',
			resizable: false, 
			width:500,
			height:400,
			border:false,
			plain:true,
			layout: 'border',
			modal: true,
			items: [pan1,pan2,pan3],
			buttonAlign: 'right',
			buttons : [
			{text: 'Chiudi',handler: function(){winesito.hide();},tooltipType: 'title', tooltip: 'Chiudi questa finestra'} 
			]
		});
	}
	finattiva('winesito');
	winesito.show();
	esito();
}

function mostrarisultati(tab){
	document.getElementById('banspa').src="ban.htm"
	if (winris==null){ 
		tabris = new Ext.TabPanel({
			height: 432,
			frame:true,
			items:[
				{id: '0', title: 'Esame', html:'<div id="risesame"></div>'},
     	       	{id: '1', title: 'Argomento', html:'<div id="risargo"></div>'}
			]
			
		});
	
		winris = new Ext.Window({
			title: ver.app+' - Risultati',
			closable:true,
			closeAction: 'hide',
			minimizable: false,
			collapsible: true,
			resizable:false, 
			width:750,
			height:500,
			border:false,
			plain:true,			
			items: [tabris],
			buttonAlign: 'right',
			buttons : [
			{text: 'Azzera',handler: function(){confermaazzera();},tooltipType: 'title', tooltip: 'Azzera i risultati'}, 
			{text: 'Chiudi',handler: function(){winris.hide();},tooltipType: 'title', tooltip: 'Chiudi questa finestra'} 
			]
		});
	}
	
	tabris.setActiveTab(tab)
	finattiva('winris');
	winris.show();
	tabris.on('tabchange',function(obj,tab){risultati(tab.id)});
	if (winris.collapsed) winris.toggleCollapse()
	risultati(tab)	
}

function mostrasuggerimenti(sugg){
	document.getElementById('banspa').src="ban.htm"
	suggerimento=suggerimenti.carica(sugg, mostrasuggerimenti)
	if (suggerimento==null) return
	
	if (winsugg==null){
		
		
		pansugg = new Ext.Panel({
			region: 'center',
			autoScroll: true,
			title: 'Suggerimento',
			html: '<div id="pansugg" class="pansugg"></div>'
			// height: 280
		});
		
		
		winsugg = new Ext.Window({
			title: ver.app+' - Suggerimenti',
			closable:true,
			closeAction: 'hide',
			minimizable: false,
			collapsible: true,
			resizable:true, 
			width:400,
			height:300,
			border:false,
			plain:true,
			layout: 'border',			
			items: [pansugg],
			buttonAlign: 'right',
			buttons : [
			{text: 'Chiudi',handler: function(){winsugg.hide();},tooltipType: 'title', tooltip: 'Chiudi questa finestra'} 
			]
		});
	}
		
	finattiva('winsugg');
	winsugg.show();
	sugge()
}

function manualeteoria(lez){
	document.getElementById('banspa').src="ban.htm"
	leznum=lez
	if (winmanu==null){ 
		nuovo=true
		
		var pansellez = new Ext.Panel({
			region: 'north',
			title: 'Scegli una lezione',
			height: 80,
			frame: true,
			autoScroll: false,
			html: '<table class="sellez"><tr><td><select onchange="nuovalez(this.value)"'+manuale.ritornasellez()+'</td></tr></table>'
			
		});
		panmanu = new Ext.Panel({
			region: 'center',
			title: 'Introduzione',
			autoScroll: true,
			html: '<div id="panmanu"></div>'
		});
		
		winmanu = new Ext.Window({
			title: ver.app+' - Manuale di teoria',
			closable:true,
			closeAction: 'hide',
			minimizable: false,
			collapsible: true,
			maximizable:true, 
			width:750,
			height:500,
			border:false,
			plain:true,
			layout: 'border',
			
			items: [pansellez,panmanu],
			buttonAlign: 'right',
			buttons : [
			//{text: 'Correggi',handler: function(){schedaargo.correggischeda();},tooltipType: 'title', tooltip: 'Correggi le risposte a questo quiz'}, 
			{text: '<<',handler: function(){vailez(-1);}, tooltipType: 'title', tooltip: 'Vai alla lezione precedente'}, 
			{text: '>>',handler: function(){vailez(+1);}, tooltipType: 'title', tooltip: 'Vai alla lezione seguente'}, 
			{text: 'Figure',handler: function(){nuovalez(31);}, tooltipType: 'title', tooltip: 'Visualizza le rappresentazioni grafiche usate nei quiz'},
			{text: 'Chiudi',handler: function(){winmanu.hide();},tooltipType: 'title', tooltip: 'Chiudi questa finestra'} 
			]
		});
	}
	finattiva('winmanu');
	winmanu.show();
	if (winmanu.collapsed) winmanu.toggleCollapse()
	lezione(leznum)
}

function vailez(offs){
	var leof = parseInt(manuale.lezatt)+parseInt(offs)
	if (leof<0) leof= manuale.titolilezioni.length-1
	else if (leof>= manuale.titolilezioni.length) leof=0
	nuovalez(leof)	
}


// Definizione variabili globali -----------------------------------------------------------------------------------------------


var schedaatt=""
percquiz="quiz/"
schedaesame=""
schedaargo=""
//soluzioni="" ??? sostituita dalla seguente
schedasolu=""
vaiavanti=false
quiznum=0

var win0
var winesame  
var winargo
var panquizargo
var winsolu
var panquizsolu
var winopt
var winesito
var winris
var tabris
var nuovo 

var lang
var plang
var linguacambiando=0
var linguacambiata=false
var suggerimento= new tsugg
var winsugg
var winmanu
var percaudio = "/audio/"
//var percaudio = "q:/audio/"
var sext = "mp3"

w_ing = new Array() //Finestra ingrandimento figure

//Opzioni

op= new topzioni("op");
op.crea("suonioff",false,"Disattiva gli effetti sonori (non agisce sui suoni dipendenti dal sistema operativo)")
op.crea("salvaoff",false,"Disattiva il salvataggio dei risultati tra le sessioni")
op.crea("avauto",true,"Attiva l'avanzamento automatico dopo l'inserimento dell'ultima risposta")
op.crea("memfin",true,"Memorizza il contenuto delle finestre anche dopo la loro chiusura")
ris = new trisultati();
