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("softens the image from a lens","reduces internal reflections in a lens","protects the lens from scratches","All of the above are correct.","None of the answers is correct.")
corr=new Array("0","1","0","0","0")
comm=""
valu=""
quest001 = new Question(
"Question 1",
0,
"A lens coating",
resp,
comm,
corr,
"",
valu,
2,
-1,
-1,
"");

resp=new Array("a gel","a lens hood","a star filter","an ultraviolet filter","a polarizing filter")
corr=new Array("0","0","0","1","0")
comm=""
valu=""
quest002 = new Question(
"Question 2",
0,
"In day-to-day service this device is primarily used to protect the lens from surface damage",
resp,
comm,
corr,
"",
valu,
2,
-1,
-1,
"");

resp=new Array("a star filter","a diffusion filter","a low contrast filter","a polarizing filter","a neutral density filter")
corr=new Array("0","1","0","0","0")
comm=""
valu=""
quest003 = new Question(
"Question 3",
0,
"This filter softens the image and minimizes skin imperfections.",
resp,
comm,
corr,
"",
valu,
2,
-1,
-1,
"");

resp=new Array("a diffusion filter","a gel","an ultraviolet filter","a star filter","a polarizing filter")
corr=new Array("0","0","0","0","1")
comm=""
valu=""
quest004 = new Question(
"Question 4",
0,
"This filter is used to cut reflections and make color look more dramatic.",
resp,
comm,
corr,
"",
valu,
2,
-1,
-1,
"");

resp=new Array("red, white and blue","magenta, cyan and yellow","green, red and blue","red, blue and yellow","None of the answers is correct.")
corr=new Array("0","1","0","0","0")
comm=""
valu=""
quest005 = new Question(
"Question 5",
0,
"The three primary subtractive colors are",
resp,
comm,
corr,
"",
valu,
2,
-1,
-1,
"");

resp=new Array("yellow","blue","magenta","cyan","None of the answers is correct.")
corr=new Array("1","0","0","0","0")
comm=""
valu=""
quest006 = new Question(
"Question 6",
0,
"In additive color red and green create",
resp,
comm,
corr,
"",
valu,
2,
-1,
-1,
"");

resp=new Array("green","yellow","magenta","red","None of the answers is correct.")
corr=new Array("0","0","1","0","0")
comm=""
valu=""
quest007 = new Question(
"Question 7",
0,
"In additive color red and blue create",
resp,
comm,
corr,
"",
valu,
2,
-1,
-1,
"");

resp=new Array("VU meter","vectorscope","waveform monitor","diascope")
corr=new Array("0","0","1","0")
comm=""
valu=""
quest008 = new Question(
"Question 8",
0,
"The device that is used to measure, monitor and set video (luminance) levels is the",
resp,
comm,
corr,
"",
valu,
2,
-1,
-1,
"");

resp=new Array("chroma","luminance","brightness","saturation","None of the answers is correct.")
corr=new Array("0","0","0","1","0")
comm=""
valu=""
quest009 = new Question(
"Question 9",
0,
"The purity of color is referred to as",
resp,
comm,
corr,
"",
valu,
2,
-1,
-1,
"");

resp=new Array("diascope","sync generator","time-base corrector","waveform monitor","vectorscope")
corr=new Array("0","0","0","0","1")
comm=""
valu=""
quest010 = new Question(
"Question 10",
0,
"The device that is used to monitor and properly set colors (generally from a test pattern or color bars) is the",
resp,
comm,
corr,
"",
valu,
2,
-1,
-1,
"");

resp=new Array("there would probably be large, dark areas missing important details","the picture would be very dark","there would be no black in the picture","Two of the above are correct.","All of the above are correct.")
corr=new Array("0","0","0","1","0")
comm=""
valu=""
quest011 = new Question(
"Question 11",
0,
"If a video picture has <i>compressed blacks</i>",
resp,
comm,
corr,
"",
valu,
2,
-1,
-1,
"");

resp=new Array("picture would be very dark","the black level is too high and the white level too low","the picture is overexposed","the black level is too low","two of the above are true","All of the above are correct.")
corr=new Array("0","0","1","0","0","0")
comm=""
valu=""
quest012 = new Question(
"Question 12",
0,
"If a video picture on a waveform monitor shows levels significantly above 100 on the scale the",
resp,
comm,
corr,
"",
valu,
2,
-1,
-1,
"");

resp=new Array("you have bright areas in a scene, such as a window or the sky","when the scene is too dark","when the camera lens f-stop is set at too high a number","when you don't have enough light on the scene","one of the answers is correct.","All of the above are correct.")
corr=new Array("1","0","0","0","0","0")
comm=""
valu=""
quest013 = new Question(
"Question 13",
0,
"One of the major problems in video is exceeding the brightness range of the video system. This often happens when",
resp,
comm,
corr,
"",
valu,
2,
-1,
-1,
"");

resp=new Array("compression of the gray scale","a black and white picture","loss of image sharpness","a loss of color","All of the above are correct.")
corr=new Array("1","0","0","0","0")
comm=""
valu=""
quest014 = new Question(
"Question 14",
0,
"When a scene contains subject matter that exceeds the brightness range of the video system the result is either clipped whites or",
resp,
comm,
corr,
"",
valu,
2,
-1,
-1,
"");

resp=new Array("color compatibility","non-composite video","composite video","analog video","additive color")
corr=new Array("0","0","1","0","0")
comm=""
valu=""
quest015 = new Question(
"Question 15",
0,
"When the color signals are combined in video it's referred to as",
resp,
comm,
corr,
"",
valu,
2,
-1,
-1,
"");

resp=new Array("how we perceive a color depends on its background","we cannot simultaneously see color and black and white","color images always have more contrast than black and white images","All of the above are correct.","None of the answers is correct.")
corr=new Array("1","0","0","0","0")
comm=""
valu=""
quest016 = new Question(
"Question 16",
0,
"According to the concept of <i>simultaneous contrast</i>",
resp,
comm,
corr,
"",
valu,
2,
-1,
-1,
"");

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>\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 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=\"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)
{
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>Modules 13 - 16</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("</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='Back' onClick='history.back()'></form></center>",2)
cachewrite(aknw,2)
winr=window
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='Back';
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 WebQuiz site' href='http://www.smartlite.it/go.asp?OLDLP' target = '_blank'>SmartLite WebQuiz</a></small></small></p>"
