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=0, 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("distillation","chromatography","extraction","catalyst","coagulation")
corr=new Array("0","0","1","0","0")
comm=""
valu=""
quest001 = new Question(
"Question 1",
0,
"The lab technique involving the comined use of distillation, evaporation, condensation, and specific solvents to reach a final product is called",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("same color as the sun thus it had religious importance","was found to prolong life without sickness","no single acid or base of those times could dissolve it","used as a monetary unit of exchange","used in jewelry and for functional ornamentation")
corr=new Array("1","0","1","1","1")
comm=""
valu=""
quest002 = new Question(
"Question 2",
1,
"Gold was important to ancient man for all of the following reasons",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("easily transportable mineral supplies","available large supply of needed materials","easily recognizable minerals to be used","mineral properties do not rapidly change in storage")
corr=new Array("1","1","0","1")
comm=""
valu=""
quest003 = new Question(
"Question 3",
1,
"Which of the following is a good reason fro the use of minerals in preparing mineral acids?",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("transform one type of energy into another","transform one type of element into another","transform one type of person into another","transform one type of energy into an element","transform one type of element into energy")
corr=new Array("0","1","0","0","0")
comm=""
valu=""
quest004 = new Question(
"Question 4",
0,
"The Philosopher's Stone was thought to have the power to",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("a preference for wrought iron products","a lack of high grade fuel to burn","a lack of the knowledge of the casting process","an inability to generate hot enough fires to smelt the iron ore")
corr=new Array("0","0","0","1")
comm=""
valu=""
quest005 = new Question(
"Question 5",
0,
"The key difference that prevented Western man from developing the smelting process used in the East was",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("medicines and the Elixor of Life","common mineral acids and fool's gold","the Philosopher's Stone and medicines","commons acids and laboratory tools","TinkerToys and CrackerJacks")
corr=new Array("0","0","0","1","0")
comm=""
valu=""
quest006 = new Question(
"Question 6",
0,
"Two major contributions of the alchemist were:",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("Aristotle","Geber","Democritus","Caesar","Paracelsus")
corr=new Array("0","0","1","0","0")
comm=""
valu=""
quest007 = new Question(
"Question 7",
0,
"The Greek philosopher wo first proposed the idea of matter being composed of tiny indivisible particles called <b>atoms</b>:",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("using a fabric which strains outs solid particles from solution","using heat to cause a liquid to change into a solid","causing some part of a solution to crystallize","heating liquids so that the more volatile liquid evaporates and is then re-condensed")
corr=new Array("0","0","0","1")
comm=""
valu=""
quest008 = new Question(
"Question 8",
0,
"Distillation involves",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("copper from pottery working","tin from camp fire stones","gold from jewelry making","lead from water piping")
corr=new Array("1","0","0","0")
comm=""
valu=""
quest009 = new Question(
"Question 9",
0,
"Studies of early metallurgy have recently shown evidence that the first metal smelted was",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("finding deposits of the ores of these metals","the need for metals that would take an edge","the use of metals in weaponry","the ability to create hotter fires")
corr=new Array("1","1","1","1")
comm=""
valu=""
quest010 = new Question(
"Question 10",
1,
"The development and production fo early metals and alloys was due to<br>",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("his system was one of the most comprehensive in history","endless experiments backed up his observations","his observations made common sense to the ordinary man","the Church embraced and taught Aristotelian science as being correct")
corr=new Array("1","0","1","1")
comm=""
valu=""
quest011 = new Question(
"Question 11",
1,
"Of the many reasons Aristotelian thought reigned supreme for almost 2000 years which of the following are considered valid reasons?",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("adding carbon to iron by mixing bloom with charcoal","hardening the surface of the iron by steeling","heating, hammering, and quenching to temper the metal","melting the metal and pouring it into molds")
corr=new Array("1","1","1","0")
comm=""
valu=""
quest012 = new Question(
"Question 12",
1,
"The wrought iron process of metal working included which of the following:",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("found in the pure state on the surface of the earth","found to contain about 15% tin","found to contain traces of nickel that prevented rusting","found to have come to the earth in the form of meteorites")
corr=new Array("1","0","0","0")
comm=""
valu=""
quest013 = new Question(
"Question 13",
0,
"Native metals, found by early man, differed from other metals in that they were",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("settlement into communities","craftwork","domestication of animals","farming","smelting of metals","scientific experimentation")
corr=new Array("1","1","1","1","0","0")
comm=""
valu=""
quest014 = new Question(
"Question 14",
1,
"Which of the following major changes (related to the development of mankind) did occur at the end of the Stonge Age?",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("Nitric Acid&nbsp; -&nbsp; HNO<sub>2</sub>","Hydrochloric Acid -&nbsp;&nbsp; HCl","Sulfuric Acid&nbsp; -&nbsp;&nbsp; H<sub>2</sub>SO<sub>4</sub>")
corr=new Array("0","1","1")
comm=""
valu=""
quest015 = new Question(
"Question 15",
1,
"Which of the following is a correct match for mineral acid and its chemical formula:",
resp,
comm,
corr,
"",
valu,
1,
0,
0,
"");

resp=new Array("the inability to heat fires continually to the melting point of the iron","a preference for more durable wrought iron products","a complete lack of the necessary high temperature buring fuels","lots and lots of time to kill")
corr=new Array("1","0","0","0")
comm=""
valu=""
quest016 = new Question(
"Question 16",
0,
"The <b>main</b> reason the Europeans used the wrought iron process to smelt iron ore was",
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,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;
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%\">\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=\"4\"></td>\n")
document.write("        <td width=\"9%\" rowspan=\"4\" background=\"s_topnumber.gif\" valign=\"top\" align=\"center\" >\n")
document.write("          <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\n")
document.write("          <tr height=\"5\">\n")
document.write("            <td></td>\n")
document.write("          </tr>\n")
document.write("          <tr>\n")
document.write("            <td valign=\"top\" align=\"center\">\n")
document.write("              <font face=\"Verdana\" size=\"6\" color=\"#00399C\">")
document.write(numord)
document.write("</font>\n")
document.write("            </td>\n")
document.write("          </tr>\n")
document.write("          </table>\n")
document.write("        </td>\n")
document.write("        <td width=\"1%\" rowspan=\"4\">&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=1>\n")
document.write("        <td width=\"80%\" bgcolor=\"#00399C\" background=\"s_dots.gif\"></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;
questions.sort(myrandom);
for (i=0; i<questions.length; i++) {
questions[i].qname="Question "+(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) global[1]="<H3>You have made the following errors</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>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>Alchemy&Metallurgy</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";}}

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,"The checkbox  <i>"+questions[i].response[selection]+"</i>  shouldn't have been selected.",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,"The checkbox  <i>"+questions[i].response[selection]+"</i>  should have been selected.",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,"The right answer was <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>You have made "+errori+" "+(errori==1?"error":"errors")+".</b>",2);
cachewrite("<br><b>Total score: "+total+".</b><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-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";}}
}
aknw="<br><p align='center'><small><small>Created and managed with <a title='Click here to visit WebQuiz site' href='http://www.smartlite.it/go.asp?OLDLP' 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);
}
