function Question (qname,
type,
qstring,
response,
comment,
corrects,
explan,
score,
ifcorrect,ifwrong,ifnull,
img)
{this.qname=qname;
this.type=type;
this.qstring=qstring;
this.response=response;
this.comment=comment;
this.corrects=corrects;
this.explan=explan;
this.score=score;
this.ifcorrect=ifcorrect;
this.ifwrong=ifwrong;
this.ifnull=ifnull;
this.img=img;
}

var zin=1,top=0, mycount=0, waitTime=3000, qright=0, mycomment;
var global=new Array(3);
var recent, recent2, recdone=false, opera7, opera=CheckOpera56();
function cachewrite(s,idx){global[idx]+=s;}
function CheckOpera56()
{
var version;
if (navigator.userAgent.toLowerCase().indexOf('opera') == -1) return false;
version=parseInt(navigator.appVersion.toLowerCase());
if (version>6) {opera7=true; return false;}
if (version<5) return false;
return true;
}
resp=new Array("1235g","3810g","1905g","1130g")
corr=new Array("0","0","0","1")
comm=""
valu=""
quest001 = new Question(
"Domanda 1",
0,
"Antonio dal fruttivendolo riempie un sacchetto di arance e uno di mandarini. le mette tutti e due sulla bilancia e sul display legge 2470g. Toglie il sacchetto di mandarini per vedere quanto pesano le arance e legge 1340g. Quanto pesano i mandarini?",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("9000","6000","3000","è andato in perdita")
corr=new Array("0","0","1","0")
comm=""
valu=""
quest002 = new Question(
"Domanda 2",
0,
"Bernardo ha acquistato da poco un appartamento per un costo di 225.000€. Poco dopo trova un altro appartamento da acquistare, più comodo e più bello e mette in vendita quello di prima. Un'agenzia immobiliare lo vende a 234.000€, però esige da Bernardo un compenso di 6.000€. Quanto ha guadagnato Bernardo dalla vendita?",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("2500g di patate, 625g di farina, 125g di burro","5kg di patate, 500g di farina, 100g di burro","2,5kg di patate, 6,25kg di farina, 62,5g di burro","10kg di patate, 2,5kg di farina, 500g di burro")
corr=new Array("1","0","0","0")
comm=""
valu=""
quest003 = new Question(
"Domanda 3",
0,
"Carlo vuole preparare gli gnocchi di patate per invitare i suoi amici a cena. La ricetta consiglia per quattro persone: 1kg di patate lesse, 250g di farina, 50g di burro. Quali sono le dosi consigliate per 10 persone?",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("13,50€","14€","14,75€","15€")
corr=new Array("0","1","0","0")
comm=""
valu=""
quest004 = new Question(
"Domanda 4",
0,
"Domenico organizza una squadra di 14 amici per partecipare a un torneo di calcio. Per pagare la quota di iscrizione ognuno dovrà pagare 13€. Prima che il torneo cominci un giocatore cade con lo scooter, si rompe una gamba e non può più partecipare al torneo. Quanto diventa la quota di partecipazione dei 13 giocatori rimanenti?",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("[615:(27+29)]x26","[615:(26+29+27)]x26","615:(27+29)","615:26-615:29-615:27")
corr=new Array("0","1","0","0")
comm=""
valu=""
quest005 = new Question(
"Domanda 5",
0,
"Emiliana va in visita al museo della scienza con tre classi della sua scuola. Complessivamente tutti gli studenti spendono 615€ in biglietti per il museo. La prima della sezione A è composta da 26 ragazzi, la prima B da 29 ragazzi e la prima C da 27 ragazzi. Quanto ha speso complessivamente la prima A?",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("superano il limite di 12kg","non superano il limite di 15kg","non superano il limite di 12kg","superano il limite di 7kg.")
corr=new Array("0","1","0","0")
comm=""
valu=""
quest006 = new Question(
"Domanda 6",
0,
"Federico, Giovanna e Ilaria abitano sullo stesso pianerottolo, spesso prendono insieme l'ascensore. L'ascensore ha una portata massima di 180 kg.<br>Se salgono Federico e Giovanna non superano il limite di 77 kg. Se salgono Giovanna e Ilaria non superano il limite di 70 kg. Se salgono Federico e Ilaria non superano il limite di 63kg. Se salgono tutti e tre insieme",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("48","36","32","24")
corr=new Array("0","0","1","0")
comm=""
valu=""
quest007 = new Question(
"Domanda 7",
0,
"Lucia ha 8 anni in più della sorella. Se la somma delle età delle due sorelle è 56 anni, quanti anni ha Lucia?",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("2800 € complessivamente per tutto il periodo di vacanza","110 € al giorno","una tessera da 1000 € per iscriversi come socio a una catena di alberghi e 30 € al giorno")
corr=new Array("0","0","1")
comm=""
valu=""
quest008 = new Question(
"Domanda 8",
0,
"Marta deve andare in vacanza con la famiglia nel mese di luglio (31 giorni). Un'agenzia di viaggi offre tre offerte presso lo stesso albergo. Quali delle seguenti è l'offerta più vantaggiosa?",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("fino a lunedì mattina compreso","fino a domenica sera compreso","fino a domenica sera escluso","fino a sabato sera compreso")
corr=new Array("0","0","1","0")
comm=""
valu=""
quest009 = new Question(
"Domanda 9",
0,
"Nicola sì è ammalato sabato sera. Il medico di guardia gli ha prescritto delle pillole da prendere ogni 8 ore (mattina, mezzogiorno, sera) per 10 giorni. Subito dopo la visita del medico la mamma ha comprato una scatola di 24 pillole e Nicola ha cominciato la cura la sera stessa alle 22.00. Fino a quando potrà curarsi Nicola con quella scatola di pillole?",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("35 anni","5 anni","il problema non è risolvibile perché mancano dei dati","il problema non è risolvibile perché è impossibile")
corr=new Array("0","0","1","0")
comm=""
valu=""
quest010 = new Question(
"Domanda 10",
0,
"Oronzo ha una figlia che ha 35 anni in meno di lui. Quanti anni ha la figlia?",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

questions = new Array (
quest001,quest002,quest003,quest004,quest005,quest006,quest007,quest008,quest009,quest010)

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("  <tr>\n")
document.write("    <td>\n")
document.write("      <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" onmouseover=\"this.className='graybg'\" onmouseout=\"this.className='whitebg'\">\n")
document.write("      <tr height=5>\n")
document.write("        <td colSpan=5></td>\n")
document.write("      </tr>\n")
document.write("      <tr>\n")
document.write("        <td width=\"5%\" rowspan=\"3\"></td>\n")
document.write("        <td class=\"numord\" width=\"9%\" rowspan=\"3\" valign=\"top\" align=\"center\"><font face=\"Verdana\" size=\"7\" color=\"#C0C0C0\">")
document.write(numord)
document.write("</font></td>\n")
document.write("        <td width=\"1%\" rowspan=\"3\" background=\"http://www.matematicamente.it/test_vari/problemi_elementari/s_vline.gif\">&nbsp;</td>\n")
document.write("        <td width=\"80%\" class=\"question\" valign=\"top\">\n")
document.write("         ")
if (questions[quest].img!="") {
document.write("\n")
document.write("         <img border=\"0\" hspace=\"10\" vspace=\"0\" 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("\n")
document.write("        </td>\n")
document.write("        <td width=\"5%\"></td>\n")
document.write("      </tr>\n")
document.write("      <tr height=10>\n")
document.write("        <td width=\"80%\"></td>\n")
document.write("        <td width=\"5%\"></td>\n")
document.write("      </tr>\n")
document.write("      <tr>\n")
document.write("        <td width=\"80%\" class=\"answer\">\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(type==7?"<textarea name=\""+myname+"\" rows=5 cols=30 class=\"input\">":" <input type="+gadget+" name=\""+myname);
if (type<3) document.write("\" value=\""+i+"\">\n")
else document.write(type==7?"</textarea>":"\" class=\"input\" value=\"\">\n")
if (type<3) document.write(questions[quest].response[i]);
document.write("<br>\n")
document.write("          ")
}
document.write("\n")
document.write("        </td>\n")
document.write("        <td width=\"5%\"></td>\n")
document.write("      </tr>\n")
document.write("      <tr height=5>\n")
document.write("        <td colSpan=5></td>\n")
document.write("      </tr>\n")
document.write("      </table>\n")
document.write("    </td>\n")
document.write("  </tr>\n")
document.write("  <tr height=10>\n")
document.write("    <td>&nbsp;</td>\n")
document.write("  </tr>\n")
document.write("  ")
}
function doTest() {
var count, i;

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) global[1]="<H3>Hai commesso i seguenti errori</H3>";
++errori;
cachewrite("<p><b>"+uno+"</b><br>"+due+"<br>"+mycomment+tre+"</p>",2);
mycomment="";
}
function testIE5plus(){
var pos=navigator.appVersion.lastIndexOf('MSIE ');
if (pos != -1) {
pos+=5;
if (eval(navigator.appVersion.charAt(pos))>4)
return true;}
return false;}
function correct(wapf)
{
var i, ii, t, re, tmp, selection, multi, multipage=0, type, isnull, iswrong, iscorrect, evaluation=0, total=0, udat;
errori=waitTime=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"){
t=tmp.name.substring(14,tmp.name.length);
re=new RegExp("_", "g");
t=t.replace(re," ");
udat[ii++]=t+": <i>"+tmp.value+"</i><br>";
if (opera) tmp.value="";}}
global[0]=global[2]="";
global[1]="<h3>Complimenti, non hai commesso alcun errore</h3>";
cachewrite("<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>",0)
now= new Date()
cachewrite("<small><p>"+fill(now.getDate(),2)+"/"+fill((now.getMonth()+1),2)+"/"+now.getYear()+"&nbsp;&nbsp;"+fill(now.getHours(),2)+":"+fill(now.getMinutes(),2)+"</p>",0)
cachewrite("<b>Problemi elementari classe I scuola 1° grado</b><br><br>\n",0);
if (udat.length>0) {
cachewrite("<b>Dati utente</b><br>\n",0);
for (i=0; i<udat.length; i++) cachewrite(udat[i],0);}
if (opera7 && multipage) {
for (i=0; i<questions.length; i++) {
id=document.getElementById("q"+(i+1));
id2=document.getElementById("q"+(i+1)+"a");
id.style.display=id2.style.display="block";}}

for (i=0; i<questions.length; i++) {
if (opera && multipage) {
id=document.getElementById("q"+(i+1));
id2=document.getElementById("q"+(i+1)+"a");
id.style.visibility=id2.style.visibility="visible";}
type=questions[i].type;
if (type==1) multi=1;
else multi=0;
isnull=true;
iscorrect=false;iswrong=false;
selection=0;
evaluation=0;
mycomment="";
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 (questions[i].score!="") evaluation+=questions[i].score[selection];
if (isnull) isnull=false;
if (questions[i].corrects[selection]=="1") iscorrect=(iswrong==false)?true:false;
else {
iswrong=true;
if (multi && questions[i].corrects!='') errore(questions[i].qname,"La casella  <i>"+questions[i].response[selection]+"</i>  non andava selezionata.",questions[i].explan)
}
if (questions[i].comment!="" && questions[i].comment[selection]!="")
mycomment+=((iscorrect || questions[i].corrects=='')?"<b>"+questions[i].qname+"</b><br>":"")+"<small>"+questions[i].comment[selection]+"</small><br>";
} else {
if (questions[i].corrects[selection]=="1") {
iswrong=true;
if (multi && questions[i].corrects!='') 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;
}}}
if (okresp!="") errore(questions[i].qname,"La risposta corretta era <i>"+okresp+".</i>",questions[i].explan);
}
if (mycomment!="") cachewrite(mycomment,2);
if (questions[i].corrects!="") ++qright;
if (isnull) evaluation+=questions[i].ifnull;
else if (iswrong) evaluation+=questions[i].ifwrong;
else if (iscorrect) evaluation+=questions[i].ifcorrect;
total+=evaluation;}
if (qright==0) global[1]="<br>";
if (errori) cachewrite("<br><b>In totale hai commesso "+errori+" "+(errori==1?"errore":"errori")+".</b>",2);
cachewrite("<br><b>Punteggio totale realizzato: "+total+".</b><br>",2);

cachewrite("<br><b>Valutazione:</b><br>"+GetEval(total)+"<br>",2);
cachewrite("</small><hr noshade><center><form>",2)
printest=(((navigator.appName=="Netscape") && (navigator.appVersion.charAt(0)>="4")) || (testIE5plus() == true))? "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.')"
cachewrite("<input type='button' value='Stampa...' onClick='"+printest+"'>&nbsp;&nbsp;&nbsp;&nbsp;",2)
cachewrite("<input type='button' value='Chiudi questa finestra' onClick='window.close()'></form></center>",2)
winr=window.open('','wapres', 'titlebar=1,location=0,directories=0,menubar=1,toolbar=0,scrollbars=1,resizable=1,status=1')
for (i=0; i<3; i++) winr.document.write(global[i]);winr.document.close()
if ((opera || opera7) && multipage) {
document.forms[0].elements[0].value='Stampa...';
document.forms[0].elements[1].value='Chiudi questa finestra';
for (i=0; i<questions.length-1; i++) {
id=document.getElementById("q"+(i+1));
id2=document.getElementById("q"+(i+1)+"a");
opera?id.style.visibility=id2.style.visibility="hidden":id.style.display=id2.style.display="none";}}
}
function myrandom(a,b)
{
var rc;
do {rc=Math.floor(Math.random()*3)-1;} while (rc==2);
return(rc);
}
function GetEval(total)
{
var minval, maxval, valstr, top, i;
minval=new Array(0,5,7,9,10);
maxval=new Array(4,6,8,9,10);
valstr=new Array("INSUFFICIENTE","SUFFICIENTE","BUONO","DISTINTO","OTTIMO","non disponibile.");
top=minval.length;
for (i=0;i<top;i++) if (total>=minval[i] && total<=maxval[i]) break;
return(valstr[i]);}
function update_time(t) {
self.status=t;}
function stms(s){
if (Math.abs(tmMx)>=3600){
h=Math.floor(s/3600);m=Math.floor((s%3600)/60);s=((s%3600)%60);return fill(h,2)+':'+fill(m,2)+':'+fill(s,2);
}else{m=Math.floor(s/60);s=s%60;return fill(m,2)+':'+fill(s,2);}}
function shtm(t){
tmVl=t+1;update_time(stms(Math.abs(t)))
if (waitTime==0) return;
tmId = setTimeout('shtm(tmVl)',1000)
if (t==((tmMx>0)? tmMx : 0)){
clearTimeout(tmId)
alert('Il tempo è scaduto! Si procede alla correzione.')

correct(document.WapForm)}}
function checkTime(){
tmMx=-waitTime;
if (tmMx!=0){
alert('Il tempo a disposizione per completare il questionario è: '+stms(Math.abs(tmMx))+'\n\nPuoi controllare il cronometro.');
shtm((tmMx>0) ? 0 : tmMx)}}

