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("Trivalenti ;","Tetravalenti ;","Pentavalenti ;","Tutte le altre risposte ;")
corr=new Array("0","1","0","0")
quest001 = new Question(
"Domanda 1",
0,
"<b>Il germanio ed il silicio sono sostanze:</b>",
resp,
corr,
"",
4,
-1,
0,
"");

resp=new Array("Materiali semiconduttori ;","Particolari tipi di resistori ;","Particolari circuiti elettronici ;","Portatori di carica positiva ;")
corr=new Array("0","0","0","1")
quest002 = new Question(
"Domanda 2",
0,
"<b>Le lacune sono :</b>",
resp,
corr,
"",
4,
-1,
0,
"");

resp=new Array("Diventa elettricamente positivo ;","Diventa elettricamente negativo ;","Rimane elettricamente neutro ;","Tutte le altre risposte ;")
corr=new Array("0","0","1","0")
quest003 = new Question(
"Domanda 3",
0,
"<b>Dopo che un materiale semiconduttore &egrave; stato drogato con impurit&agrave; pentavelenti, esso :</b>",
resp,
corr,
"",
4,
-1,
0,
"");

resp=new Array("Di tipo P ;","Di tipo N ;","Di tipo NPN ;","Di tipo PNP ;")
corr=new Array("1","0","0","0")
quest004 = new Question(
"Domanda 4",
0,
"<b>Un semiconduttore drogato con sostanze trivalenti si dice :</b>",
resp,
corr,
"",
4,
-1,
0,
"");

resp=new Array("Di tipo N ;","Di tipo P ;","Di tipo NPN ;","Di tipo PNP ;")
corr=new Array("1","0","0","0")
quest005 = new Question(
"Domanda 5",
0,
"<b>Un semiconduttore drogato con sostanze pentavalenti si dice :</b>",
resp,
corr,
"",
4,
-1,
0,
"");

resp=new Array("Un bipolo lineare ;","Un bipolo non lineare ;","Un bipolo con caratteristica di tipo resistivo ;","Un bipolo a caratteristica &nbsp;inversa ;")
corr=new Array("0","1","0","0")
quest006 = new Question(
"Domanda 6",
0,
"<b>Il diodo &egrave; un componente elettrico che pu&ograve; definirsi :</b>",
resp,
corr,
"",
4,
-1,
0,
"");

resp=new Array("L' anodo è a potenziale negativo rispetto al catodo ;","L' anodo è a potenziale positivo rispetto al catodo ;","L' anodo è connesso a massa ;","L' anodo è connesso a terra ;")
corr=new Array("0","1","0","0")
quest007 = new Question(
"Domanda 7",
0,
"<b>Un diodo conduce se :</b>",
resp,
corr,
"",
4,
-1,
0,
"");

resp=new Array("L' anodo è a potenziale positivo rispetto al catodo ;","L' anodo è a potenziale negativo rispetto al catodo ;","L' anodo è al potenziale di massa ;","L' anodo è a terra ;")
corr=new Array("0","1","0","0")
quest008 = new Question(
"Domanda 8",
0,
"<b>Per un diodo si parla di polarizzazione inversa quando :</b>",
resp,
corr,
"",
4,
-1,
0,
"");

resp=new Array("Amplificatore di tensione ;","Stabilizzatore di tensione ;","Alimentatore ;","Trasformatore ;")
corr=new Array("0","1","0","0")
quest009 = new Question(
"Domanda 9",
0,
"<b>In genere un diodo zener viene usato come :</b>",
resp,
corr,
"",
4,
-1,
0,
"");

resp=new Array("La tensione sul carico ;","La tensione del generatore ;","La corrente sul carico ;","La corrente nell'intero circuito ;")
corr=new Array("1","0","0","0")
quest010 = new Question(
"Domanda 10",
0,
"<b>La funzione principale di un diodo Zener &eacute; quella di mantenere costante ;</b>",
resp,
corr,
"",
4,
-1,
0,
"");

resp=new Array("<img src=\"wbans011_1.PNG\" width=24 height=27 border=0>","<img src=\"wbans111_1.PNG\" width=34 height=24 border=0>","<img src=\"wbans211_1.PNG\" width=39 height=30 border=0>","<img src=\"wbans311_1.PNG\" width=33 height=43 border=0>")
corr=new Array("0","1","0","0")
quest011 = new Question(
"Domanda 11",
0,
"<b>Il simbolo circuitale del diodo Zener &egrave; :</b>",
resp,
corr,
"",
4,
-1,
0,
"");

resp=new Array("<img src=\"wbans012_1.PNG\" width=24 height=27 border=0>","<img src=\"wbans112_1.PNG\" width=34 height=24 border=0>","<img src=\"wbans212_1.PNG\" width=39 height=30 border=0>","<img src=\"wbans312_1.PNG\" width=33 height=43 border=0>")
corr=new Array("0","0","1","0")
quest012 = new Question(
"Domanda 12",
0,
"<b>Il simbolo circuitale del diodo LED &egrave; :</b>",
resp,
corr,
"",
4,
-1,
0,
"");

resp=new Array("Un diodo al Si ;","Un diodo raddrizzatore ;","Entrambe le altre risposte ;")
corr=new Array("0","0","1")
quest013 = new Question(
"Domanda 13",
0,
"<b>La sigla BY254 indica :</b>",
resp,
corr,
"",
4,
-1,
0,
"");

resp=new Array("Con qualsiasi polarizzazione ;","Con polarizzazione diretta ;","Con polarizzazione inversa ;","In interdizione ;")
corr=new Array("0","0","1","0")
quest014 = new Question(
"Domanda 14",
0,
"<b>Il diodo Zener, quando viene usato come stabilizzatore, viene fatto funzionare:</b>",
resp,
corr,
"",
4,
-1,
0,
"");

resp=new Array("Presenta una capacità variabile al variare della tensione di polarizzazione ;","Presenta una tensione di soglia più bassa di un diodo al germanio ;","Emette energia luminosa in seguito alla ricombinazione elettrone-lacuna ;","Assorbe energia luminosa di particolare lunghezza d'onda ;")
corr=new Array("0","0","1","0")
quest015 = new Question(
"Domanda 15",
0,
"<b>Il diodo LED :</b>",
resp,
corr,
"",
4,
-1,
0,
"");

questions = new Array (
quest001,quest002,quest003,quest004,quest005,quest006,quest007,quest008,quest009,quest010,quest011,quest012,quest013,quest014,quest015)

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;
if (type<3) {
respcopy=new Array(numdo);corrcopy=new Array(numdo);
for (i=0; i<numdo; i++) respcopy[i]=questions[quest].response[i];
respcopy.sort(myrandom);
for (i=0; i<numdo; i++) {
for (ii=0; ii<numdo; ii++) {
if (respcopy[i]==questions[quest].response[ii]) {
corrcopy[i]=questions[quest].corrects[ii];break;}}}
questions[quest].response=respcopy;
questions[quest].corrects=corrcopy;}

document.writeln ("<a name=\""+questions[quest].qname+"\"></a>")
document.write("\n")
document.write("       ")
if (questions[quest].img!="") {
document.write("\n")
document.write("          <p><img border=\"0\" src=\"")
document.write(questions[quest].img)
document.write("\"></p>\n")
document.write("       ")
}
document.write("\n")
document.write("       <p><small><font face=\"Verdana,Arial\">")
document.write(numord)
document.write(". ")
document.writeln(questions[quest].qstring)
document.write("</font></small></p>\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")
document.write(" <small><font face=\"Verdana,Arial\">")
if (type<3) document.write(questions[quest].response[i]);
document.write("</font></small><br>\n")
document.write("       ")
}
document.write("\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);
}

