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=1200, 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("True","False")
corr=new Array("1","0")
comm=""
valu=""
quest001 = new Question(
"Question 1",
0,
"<font face=\"Times New Roman\" size=3>Dickens’ works remain popular today.</font>",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("True","False")
corr=new Array("1","0")
comm=""
valu=""
quest002 = new Question(
"Question 2",
0,
"<font face=\"Times New Roman\" size=3>Some of Dickens’ work is based on his childhood experiences.</font>",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("True","False")
corr=new Array("0","1")
comm=""
valu=""
quest003 = new Question(
"Question 3",
0,
"<font face=\"Times New Roman\" size=3>Dickens wrote only one Christmas book.</font>",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("True","False")
corr=new Array("0","1")
comm=""
valu=""
quest004 = new Question(
"Question 4",
0,
"<font face=\"Times New Roman\" size=3>Half of the English people of Dickens’ day read his novels.</font>",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("True","False")
corr=new Array("1","0")
comm=""
valu=""
quest005 = new Question(
"Question 5",
0,
"<font face=\"Times New Roman\" size=3>Dickens’ last book is a mystery novel. </font>",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("<font face=\"Times New Roman\" size=3>Collectors’ editions</font>","<font face=\"Times New Roman\" size=3>Serial instalments in magazines</font>","<font face=\"Times New Roman\" size=3>Subscription issues</font>","<font face=\"Times New Roman\" size=3>Inexpensive paperbacks</font>")
corr=new Array("0","1","0","0")
comm=""
valu=""
quest006 = new Question(
"Question 6",
0,
"<font face=\"Times New Roman\" size=3>During his lifetime, Dickens’ major works were published as</font>",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("<font face=\"Times New Roman\" size=3>Continuously writing journalism at the same time</font>","<font face=\"Times New Roman\" size=3>The Christmas Carol</font>","<font face=\"Times New Roman\" size=3>Giving public readings of his own work</font>","<font face=\"Times New Roman\" size=3>Writing about his childhood experiences</font>")
corr=new Array("0","0","1","0")
comm=""
valu=""
quest007 = new Question(
"Question 7",
0,
"<font face=\"Times New Roman\" size=3>What made Dickens as famous as writing his novels?</font>",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("<font face=\"Times New Roman\" size=3>Great Expectations</font>","<font face=\"Times New Roman\" size=3>A Tale of Two Cities</font>","<font face=\"Times New Roman\" size=3>David Copperfield</font>","<font face=\"Times New Roman\" size=3>Oliver Twist</font>")
corr=new Array("0","1","0","0")
comm=""
valu=""
quest008 = new Question(
"Question 8",
0,
"<font face=\"Times New Roman\" size=3>Which of the following novels is not based on Dickens’ own experience?</font>",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("<font face=\"Times New Roman\" size=3>A Christmas Carol</font>","<font face=\"Times New Roman\" size=3>The Mystery of Edwin Drood</font>","<font face=\"Times New Roman\" size=3>The Pickwick Papers</font>","<font face=\"Times New Roman\" size=3>Great Expectations</font>")
corr=new Array("0","0","1","0")
comm=""
valu=""
quest009 = new Question(
"Question 9",
0,
"<font face=\"Times New Roman\" size=3>Which of the following books was the first to make him famous?</font>",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("<font face=\"Times New Roman\" size=3>England</font>","<font face=\"Times New Roman\" size=3>Africa</font>","<font face=\"Times New Roman\" size=3>Europe</font>","<font face=\"Times New Roman\" size=3>America</font>")
corr=new Array("0","1","0","0")
comm=""
valu=""
quest010 = new Question(
"Question 10",
0,
"<font face=\"Times New Roman\" size=3>Where did Dickens NOT make public readings of his works?</font>",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("<font face=\"Times New Roman\" size=3>Change “Dickens” to “Dickens’”</font>","<font face=\"Times New Roman\" size=3>Change “Like” to “Such as”</font>","<font face=\"Times New Roman\" size=3>Change “is” to “was”</font>","<font face=\"Times New Roman\" size=3>No changes</font>")
corr=new Array("0","0","1","0")
comm=""
valu=""
quest011 = new Question(
"Question 11",
0,
"<font face=\"Times New Roman\" size=3>What change, if any, should be made to sentence 1?</font>",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("<font face=\"Times New Roman\" size=3>Change “books’” to “book’s”</font>","<font face=\"Times New Roman\" size=3>Change “makes” to “make”</font>","<font face=\"Times New Roman\" size=3>Later, they were published as regular books</font>","<font face=\"Times New Roman\" size=3>No changes</font>")
corr=new Array("0","1","0","0")
comm=""
valu=""
quest012 = new Question(
"Question 12",
1,
"<font face=\"Times New Roman\" size=3>What change, if any, should be made to sentence 3?</font>",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("<font face=\"Times New Roman\" size=3>Delete “all”</font>","<font face=\"Times New Roman\" size=3>Delete “still”</font>","<font face=\"Times New Roman\" size=3>Delete “a”</font>","<font face=\"Times New Roman\" size=3>No changes</font>")
corr=new Array("0","0","1","0")
comm=""
valu=""
quest013 = new Question(
"Question 13",
1,
"<font face=\"Times New Roman\" size=3>What change, if any, should be made to sentence 5?</font>",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("<font face=\"Times New Roman\" size=3>Delete the first “school”</font>","<font face=\"Times New Roman\" size=3>Move “, which have been translated into countless languages,” to just after the word “books”</font>","<font face=\"Times New Roman\" size=3>Change “from” to “in”</font>","<font face=\"Times New Roman\" size=3>No Changes</font>")
corr=new Array("0","1","0","0")
comm=""
valu=""
quest014 = new Question(
"Question 14",
1,
"<font face=\"Times New Roman\" size=3>What change, if any, should be made to sentence 7?</font>",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("<font face=\"Times New Roman\" size=3>Change “are” to “is”</font>","<font face=\"Times New Roman\" size=3>Change “facts” to “fact” or delete “the facts”</font>","<font face=\"Times New Roman\" size=3>Delete “even”</font>","<font face=\"Times New Roman\" size=3>No Changes</font>")
corr=new Array("1","1","0","0")
comm=""
valu=""
quest015 = new Question(
"Question 15",
1,
"<font face=\"Times New Roman\" size=3>Should some of the following changes be made to sentence 9?</font>",
resp,
comm,
corr,
"",
valu,
1,
0,
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;


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(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("      </small></small></font></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)
{
if (!errori) global[1]="<H3>You have made the following errors</H3>";
++errori;
cachewrite("<p><b>"+uno+"</b><br>This answer is not correct."+mycomment+"</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>Congratulations, you haven't made any errors</h3>";
cachewrite("<html><head><title>Results</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;Results</b></font></td></tr></table>",0)
now= new Date()
cachewrite("<small><p>"+fill((now.getMonth()+1),2)+"/"+fill(now.getDate(),2)+"/"+now.getYear()+"&nbsp;&nbsp;"+fill(now.getHours(),2)+":"+fill(now.getMinutes(),2)+"</p>",0)
cachewrite("<b>Qualifying Quiz</b><br><br>\n",0);
if (udat.length>0) {
cachewrite("<b>Information</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";}
document.getElementById('wq_final').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);
}
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);
}}
++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);
}
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>You have made "+errori+" "+(errori==1?"error":"errors")+".</b>",2);
cachewrite("<br><b>Total score: "+total+".</b><br>",2);

cachewrite("<br><b>Evaluation:</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('This button can be used with Netscape Navigator 4 or Microsoft Internet Explorer 5 only. If you want to print with other browsers, please select the Print command in the File menu.')"
cachewrite("<input type='button' value='Print...' onClick='"+printest+"'>&nbsp;&nbsp;&nbsp;&nbsp;",2)
cachewrite("<input type='button' value='Close' onClick='window.close()'></form></center>",2)
cachewrite(aknw,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='Print...';
document.forms[0].elements[1].value='Close';
for (i=0; i<questions.length; 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";}}
}
aknw="<br><p align='center'><small><small>Created and managed with <a title='Click here to visit UniRoute site' href='http://www.uniroute.net' target = '_blank'>UniRoute Limited</a></small></small></p>"
function GetEval(total)
{
var minval, maxval, valstr, top, i;
minval=new Array(0,4,11);
maxval=new Array(3,10,16);
valstr=new Array("Your score suggests that you probably are not ready for the Uniroute IELTS Preparation Course","Your score suggests that you can take the IELTS preparation course, but be aware that you might find some of the material difficult.","Congratulations - you are ready to take the IELTS preparation course.","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('Time is over, correcting questionnaire now.')

correct(document.WapForm)}}
function checkTime(){
tmMx=-waitTime;
if (tmMx!=0){
alert('Time to complete your questionnaire is: '+stms(Math.abs(tmMx))+'\n\nPlease check time count.');
shtm((tmMx>0) ? 0 : tmMx)}}

