function Question (qname,
type,
qstring,
response,
corrects,
explan,
ifcorrect,ifwrong,ifnull,
img)
{this.qname=qname;
this.type=type;
this.qstring=qstring;
this.response=response;
this.corrects=corrects;
this.explan=explan;
this.ifcorrect=ifcorrect;
this.ifwrong=ifwrong;
this.ifnull=ifnull;
this.img=img;
}

resp=new Array("è direttamente proporzionale alla tensione;","è direttamente proporzionale alla corrente","entrambe le risposte precedenti","nessuna delle risposte precedenti")
corr=new Array("0","0","1","0")
quest001 = new Question(
"Domanda 1",
0,
"<font size=2><b>La potenza elettrica:</b></font>",
resp,
corr,
"",
4,
-1,
0,
"");

resp=new Array("stabilisce che in un circuito elettrico la tensione e la corrente sono, fra loro, direttamente proporzionali;","permette di definire la resistenza come rapporto fra la tensione e la corrente;","permette di ricavare la tensione, la corrente o la resistenza note due fra queste grandezze;","tutte le risposte precedenti;")
corr=new Array("0","0","0","1")
quest002 = new Question(
"Domanda 2",
0,
"<font size=2><b>La legge di Ohm:</b></font>",
resp,
corr,
"",
4,
-1,
0,
"");

resp=new Array("Vero","Falso")
corr=new Array("1","0")
quest003 = new Question(
"Domanda 3",
0,
"<font size=2><b>Il generatore assorbe potenza, sotto varie forme, da una fonte esterna;</b></font>",
resp,
corr,
"",
2,
-1,
0,
"");

resp=new Array("Vero","Falso")
corr=new Array("1","0")
quest004 = new Question(
"Domanda 4",
0,
"<font size=2><b>Il generatore cede potenza all'utilizzatore</b></font>",
resp,
corr,
"",
2,
-1,
0,
"");

resp=new Array("Vero","Falso")
corr=new Array("0","1")
quest005 = new Question(
"Domanda 5",
0,
"<font size=2><b>Tutta la potenza fornita dal generatore viene utilizzata dal carico;</b></font>",
resp,
corr,
"",
2,
-1,
0,
"");

resp=new Array("Permettono di risolvere qualsiasi circuito elettrico utilizzando equazioni di nodo e di maglia;","permettono di semplificare qualsiasi circuito elettrico;","si applicano solo a circuiti con molte maglie;","si applicano solo a circuiti con una sola maglia;")
corr=new Array("1","0","0","0")
quest006 = new Question(
"Domanda 6",
0,
"<font size=2><b>I principi di Kirchhoff:</b></font>",
resp,
corr,
"",
4,
-1,
0,
"");

resp=new Array("Vero","Falso")
corr=new Array("0","1")
quest007 = new Question(
"Domanda 7",
0,
"<font size=2><b>Una grandezza alternata &egrave; anche sinusoidale;</b></font>",
resp,
corr,
"",
2,
-1,
0,
"");

resp=new Array("Vero","Falso")
corr=new Array("1","0")
quest008 = new Question(
"Domanda 8",
0,
"<font size=2><b>Una grandezza sinusoidale &egrave; anche alternata;</b></font>",
resp,
corr,
"",
2,
-1,
0,
"");

resp=new Array("Vero","Falso")
corr=new Array("1","0")
quest009 = new Question(
"Domanda 9",
0,
"<font size=2><b>Una grandezza sinusoidale &egrave; anche periodica;</b></font>",
resp,
corr,
"",
2,
-1,
0,
"");

resp=new Array("Vero","Falso")
corr=new Array("1","0")
quest010 = new Question(
"Domanda 10",
0,
"<font size=2><b>Una grandezza sinusoidale &egrave; anche variabile;</b></font>",
resp,
corr,
"",
2,
-1,
0,
"");

resp=new Array("Vero","Falso")
corr=new Array("1","0")
quest011 = new Question(
"Domanda 11",
0,
"<font size=2><b>Le funzioni trigonometriche dipendono dal valore dell'angolo;</b></font>",
resp,
corr,
"",
2,
-1,
0,
"");

resp=new Array("Vero","Falso")
corr=new Array("0","1")
quest012 = new Question(
"Domanda 12",
0,
"<font size=2><b>Le funzioni trigonometriche sono definite solo per angoli espressi in radianti;</b></font>",
resp,
corr,
"",
2,
-1,
0,
"");

resp=new Array("Vero","Falso")
corr=new Array("1","0")
quest013 = new Question(
"Domanda 13",
0,
"<font size=2><b>Le funzioni trigonometriche hanno andamento periodico;</b></font>",
resp,
corr,
"",
2,
-1,
0,
"");

resp=new Array("numero infinito di punti fra i quali esiste una distanza infinitesima;","numero finito di punti fra i quali esiste una distanza ben definita;","numero infinito di punti fra i quali esiste una distanza ben definita;","numero infinito di punti fra i quali esiste una distanza ben definita;")
corr=new Array("1","0","0","0")
quest014 = new Question(
"Domanda 14",
0,
"<font size=2><b>In un segmento AB &egrave; presente un:</b></font>",
resp,
corr,
"",
4,
-1,
0,
"");

resp=new Array("Vero","Falso")
corr=new Array("0","1")
quest015 = new Question(
"Domanda 15",
0,
"<font size=2><b>Perch&eacute; un circuito possa essere considerato un quadripolo, deve avere pi&ugrave; di due nodi o poli;</b></font>",
resp,
corr,
"",
2,
-1,
0,
"");

resp=new Array("Vero","Falso")
corr=new Array("1","0")
quest016 = new Question(
"Domanda 16",
0,
"<font size=2><b>Perch&eacute; un circuito possa essere considerato un quadripolo, i poli si devono raggruppare in due porte: quella d'ingresso e quella di uscita;</b></font>",
resp,
corr,
"",
2,
-1,
0,
"");

questions = new Array (
quest001,quest002,quest003,quest004,quest005,quest006,quest007,quest008,quest009,quest010,quest011,quest012,quest013,quest014,quest015,quest016)

function doQuestion(quest)
{
var numdo;
var numord=eval(quest+1);
var i=-1, ii, type, myname, gadget;
type=questions[quest].type;
numdo=type>=3?1:questions[quest].response.length;


document.writeln ("<a name=\""+questions[quest].qname+"\"></a>")
document.write("\n")
document.write("    <tr>\n")
document.write("      <td width=\"5%\" align=\"center\" valign=\"top\" bgcolor=\"#E6E6FF\"><font face=\"Verdana\"\n")
document.write("      color=\"#000080\"><strong><small>")
document.write(numord)
document.write("</small></strong></font></td>\n")
document.write("      <td width=\"95%\" valign=\"top\" bgcolor=\"#F4F4FF\"><font face=\"Verdana\"><font color=\"#000080\"><strong><small>\n")
document.write("      ")
if (questions[quest].img!="") {
document.write("\n")
document.write("         <img border=\"0\" hspace=\"10\" vspace=\"5\" align=\"left\" src=\"")
document.write(questions[quest].img)
document.write("\">\n")
document.write("      ")
}
document.write("\n")
document.write("      ")
document.writeln(questions[quest].qstring)
document.write("</small></strong></font><br>\n")
document.write("      <br><small><small>\n")
document.write("      ")
for (i=0; i<numdo; i++) {
myname=questions[quest].qname;
gadget="radio";
if (type>=3) gadget="text";
else if (type==1) {
myname+="_"+(i<9?"0":"")+(i+1);
gadget="checkbox";}
document.write("\n")
document.write("         ")
document.write(" <input type="+gadget+" name=\""+myname);
if (type<3) document.write("\" value=\""+i+"\">\n")
else document.write("\" class=\"input\" value=\"\">\n")
if (type<3) document.write(questions[quest].response[i]);
document.write("<br>\n")
document.write("      ")
}
document.write("\n")
document.write("      </small></small></font></td>\n")
document.write("    </tr>\n")
document.write("    ")
}
function doTest() {
var count, i;
questions.sort(myrandom);
for (i=0; i<questions.length; i++) {
questions[i].qname="Domanda "+(i+1);}
count=questions.length;
for (i=0; i<count; i++) doQuestion(i);
}
function fill(s,l){
s=s+""
for (y=1;y<=l;y++)
if (s.length>=l) break; else s="0"+s;
return s
}
function CheckQName(wapf,ii,i,multi,selection){
var len;
if (!multi) return(wapf.elements[ii].name==questions[i].qname);
len=questions[i].qname.length;
if (wapf.elements[ii].name.substring(0,len)!=questions[i].qname) return false;
if (wapf.elements[ii].name.substring(len,len+1)!="_") return false;
if (eval(wapf.elements[ii].name.substring(len+1,len+3))==(selection+1)) return true;
return false;
}
function errore(uno,due,tre)
{
if (!errori) winr.document.write("<H3>Hai commesso i seguenti errori:</H3>");
++errori;
winr.document.write("<p><b>"+uno+"</b><br>"+due+"<br>"+tre+"</p>");
}
function correct(wapf)
{
var i, ii, tmp, selection, multi, type, isnull, iswrong, iscorrect, evaluation=0, total=0, udat;
errori=0;
udat=new Array();
for (i=0, ii=0; i<wapf.elements.length; i++)
{tmp=wapf.elements[i];
if (tmp.name.substring(0,13)=="Quiz.UserData")
udat[ii++]=tmp.name.substring(14,tmp.name.length)+": <i>"+tmp.value+"</i><br>";}
winr=window.open('','wapres', 'titlebar=1,location=0,directories=0,menubar=1,toolbar=0,scrollbars=1,resizable=1,status=1')
winr.document.write("<html><head><title>Risultati</title><BASE target='_blank'></head><body bgcolor='#FFFFFF'><font face='Verdana, Arial'><table border=0 cellpadding=0 cellspacing=0 width='100%' bgcolor='#C0C0C0'><tr><td width='100%'><font face='Verdana, Arial' size=5 color='#FFFFFF'><b>&nbsp;Risultati</b></font></td></tr></table>")
now= new Date()
winr.document.write("<small><p>"+fill(now.getDate(),2)+"/"+fill((now.getMonth()+1),2)+"/"+now.getYear()+"&nbsp;&nbsp;"+fill(now.getHours(),2)+":"+fill(now.getMinutes(),2)+"</p>")
if (udat.length>0) {
winr.document.write("<b>Dati utente</b><br>\n");
for (i=0; i<udat.length; i++) winr.document.write(udat[i]);}

for (i=0; i<questions.length; i++) {
type=questions[i].type;
if (type==1) multi=1;
else multi=0;
isnull=true;
iscorrect=false;iswrong=false;
selection=0;
evaluation=0;
for (ii=0; ii<wapf.elements.length; ii++) {
if (CheckQName(wapf,ii,i,multi,selection)) {
if (type>=3 && wapf.elements[ii].value!="") {
isnull=false;
if (wapf.elements[ii].value.toLowerCase()==questions[i].corrects.toLowerCase()) iscorrect=true;
else iswrong=true;
++selection;}
else if (wapf.elements[ii].checked) {
if (isnull) isnull=false;
if (questions[i].corrects[selection]=="1") iscorrect=(iswrong==false)?true:false;
else {
iswrong=true;
if (multi) errore(questions[i].qname,"La casella <i>"+questions[i].response[selection]+"</i> non andava selezionata.",questions[i].explan)
}} else {
if (questions[i].corrects[selection]=="1") {
iswrong=true;
if (multi) errore(questions[i].qname,"La casella <i>"+questions[i].response[selection]+"</i> andava selezionata.",questions[i].explan);
}}
++selection;
}}
if (multi==false && (isnull || iswrong)) {
var okresp, z;
if (type>=3) okresp=questions[i].corrects;
else {
for (z=0; z<questions[i].corrects.length; z++) {
if (questions[i].corrects[z]==1) {
okresp=questions[i].response[z];
break;
}}}
errore(questions[i].qname,"La risposta corretta era <i>"+okresp+".</i>",questions[i].explan);
}
if (isnull) evaluation+=questions[i].ifnull;
else if (iswrong) evaluation+=questions[i].ifwrong;
else if (iscorrect) evaluation+=questions[i].ifcorrect;
total+=evaluation;}
if (errori) {var voc=(errori==1)?"e":"i";winr.document.write("<br><b>In totale hai commesso "+errori+" error"+voc+".</b>");}
else winr.document.write("<h3>Complimenti, non hai commesso alcun errore!</h3>")
{var voc=(total==1)?"o":"i";winr.document.write("<br><b>Punteggio realizzato: "+total+" punt"+voc+".</b><br>");}

winr.document.write("</small><hr noshade><center><form>")
printest=(((navigator.appName=='Netscape') && (navigator.appVersion.charAt(0)>='4')) || (navigator.appVersion.lastIndexOf('MSIE 5') !=-1))? 'print()': 'alert("Questo pulsante funziona soltanto con Netscape Navigator 4 o Microsoft Internet Explorer 5 (o versioni successive). Per stampare con gli altri browser, seleziona il comando Stampa nel menu File.")'
winr.document.write("<input type='button' value='Stampa...' onClick='"+printest+"'>&nbsp;&nbsp;&nbsp;&nbsp;")
winr.document.write("<input type='button' value='Chiudi questa finestra' onClick='window.close()'></form></center>")
winr.document.write(aknw)
winr.document.close()
if (navigator.appVersion.lastIndexOf('MSIE 3') == -1) nomsie3=true
else nomsie3=false
if (nomsie3) winr.focus()
}
aknw="<br><p align='center'><small><small>Creato e gestito con <a title='Premi qui per visitare il sito di WebQuiz' href='http://www.smartlite.it/go.asp?OLDLO' target = '_blank'>SmartLite WebQuiz</a></small></small></p>"
function myrandom(a,b)
{
var rc;
do {rc=Math.floor(Math.random()*3)-1;} while (rc==2);
return(rc);
}
