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("w każdej sytuacji","wyjątkowo za zgodą zarządcy budynku i pod jego nadzorem")
corr=new Array("0","1")
quest001 = new Question(
"Pytanie 1",
0,
"Instalowanie indywidualnych anten na dachu przez użytkowników lokali jest możliwe",
resp,
corr,
"<font face=\"Arial\">Instalowanie indywidualnych anten na dachu przez użytkowników lokali jest możliwe </font>wyjątkowo za zgodą zarządcy budynku i pod jego nadzorem.",
1,
0,
0,
"");

resp=new Array("nadmiernym ugięciu stropu","zbyt wysokiej temperaturze w pomieszczeniu")
corr=new Array("1","0")
quest002 = new Question(
"Pytanie 2",
0,
"Uszkodzenia (pęknięcia i zarysowania) ścianek działowych świadczy",
resp,
corr,
"<font face=\"Arial\">Uszkodzenia (pęknięcia i zarysowania) ścianek działowych świadczy o </font>nadmiernym ugięciu stropu.",
1,
0,
0,
"");

resp=new Array("złe spadki opasek wokół budynku lub zniszczoną izolację pionową fundamentów","brak przewodu wentylacyjnego odprowadzającego powietrze z pomieszczenia")
corr=new Array("1","0")
quest003 = new Question(
"Pytanie 3",
0,
"Woda w piwnicach może występować ze względu na",
resp,
corr,
"<font face=\"Arial\">Woda w piwnicach może występować ze względu na </font>złe spadki opasek wokół budynku lub zniszczoną izolację pionową fundamentów.",
1,
0,
0,
"");

resp=new Array("zacieki, zagrzybienia i przemarzanie ścian zewnętrznych","uszkodzenia pokrycia dachowego")
corr=new Array("1","0")
quest004 = new Question(
"Pytanie 4",
0,
"Zniszczone rynny, rury i parapety zewnętrzne zwykle powodują",
resp,
corr,
"<font face=\"Arial\">Zniszczone rynny, rury i parapety zewnętrzne zwykle powodują </font>zacieki, zagrzybienia i przemarzanie ścian zewnętrznych.",
1,
0,
0,
"");

resp=new Array("niedopuszczalne","nie do uniknięcia")
corr=new Array("0","1")
quest005 = new Question(
"Pytanie 5",
0,
"Powstawanie szczelin o szerokości do 0.5 mm w posadzkach parkietowych (z deszczułek) jest",
resp,
corr,
"<font face=\"Arial\">Powstawanie szczelin o szerokości do 0.5 mm w posadzkach parkietowych (z deszczułek) jest nie do uniknięcia.</font>",
1,
0,
0,
"");

resp=new Array("przebarwienia niektórych płytek","rysy w spoinach skrajnych (przyściennych) płytek")
corr=new Array("0","1")
quest006 = new Question(
"Pytanie 6",
0,
"O niestarannym przyklejeniu ceramicznych płytek wykładzinowych świadczą",
resp,
corr,
"O niestarannym przyklejeniu ceramicznych płytek wykładzinowych świadczą rysy w spoinach skrajnych (przyściennych) płytek.<br>",
1,
0,
0,
"");

resp=new Array("przewody c.o. w piwnicach i w lokalach, grzejniki, odpowietrzenie instalacji","wyłącznie przewody c. o. w piwnicach i odpowietrzenie instalacji")
corr=new Array("1","0")
quest007 = new Question(
"Pytanie 7",
0,
"Przegląd instalacji centralnego ogrzewania powinien obejmować",
resp,
corr,
"Przegląd instalacji centralnego ogrzewania powinien obejmować przewody c.o. w piwnicach i w lokalach, grzejniki, odpowietrzenie instalacji.",
1,
0,
0,
"");

resp=new Array("czy wentylacja jest odpowiednia, czy przewody gazowe wraz z zamontowanym uzbrojeniem są we właściwym stanie technicznym","wymienić uszczelki przy gazomierzach")
corr=new Array("1","0")
quest008 = new Question(
"Pytanie 8",
0,
"Podczas kontroli instalacji gazowej w lokalu należy sprawdzić",
resp,
corr,
"Podczas kontroli instalacji gazowej w lokalu należy sprawdzić czy wentylacja jest odpowiednia, czy przewody gazowe wraz z zamontowanym uzbrojeniem są we właściwym stanie technicznym.",
1,
0,
0,
"");

resp=new Array("zamknąć kurek główny, odcinający dopływ gazu do lokalu, przewietrzyć pomieszczenie, usunąć awarię","dokonać dokładnych oględzin w celu lokalizacji nieszczelności, włączając oświetlenie elektryczne")
corr=new Array("1","0")
quest009 = new Question(
"Pytanie 9",
0,
"Po stwierdzeniu nieszczelności instalacji gazowej w lokalu należy",
resp,
corr,
"Po stwierdzeniu nieszczelności instalacji gazowej w lokalu należy zamknąć kurek główny, odcinający dopływ gazu do lokalu, przewietrzyć pomieszczenie, usunąć awarię. Włączanie oświetlenia elektrycznego jest niedopuszczalne !",
1,
0,
0,
"");

resp=new Array("należy zastosować dodatkową wentylację grawitacyjną w pomieszczeniach, w których znajdują się urządzenia odprowadzające ścieki od przyborów sanitarnych","każdy pion kanalizacyjny powinien być połączony z rurą wywiewną, stanowiącą przedłużenie pionu kanalizacyjnego ponad dach; dodatkowo (przy długich podejściach) mogą być stosowane specjalne piony wentylacyjne")
corr=new Array("0","1")
quest010 = new Question(
"Pytanie 10",
0,
"Dla zapewnienia grawitacyjnego spływu ścieków oraz w celu przeciwdziałania zasysaniu wody z syfonu (chroniącego przed przenikaniem zapachów z instalacji)",
resp,
corr,
"Dla zapewnienia grawitacyjnego spływu ścieków oraz w celu przeciwdziałania zasysaniu wody z syfonu (chroniącego przed przenikaniem zapachów z instalacji) każdy pion kanalizacyjny powinien być połączony z rurą wywiewną, stanowiącą przedłużenie pionu kanalizacyjnego ponad dach; dodatkowo (przy długich podejściach) mogą być stosowane specjalne piony wentylacyjne.",
1,
0,
0,
"");

resp=new Array("obowiązek stosowania mechanicznych urządzeń wentylacyjnych","zakaz stosowania zbiorczych przewodów spalinowych")
corr=new Array("0","1")
quest011 = new Question(
"Pytanie 11",
0,
"Aktualnie obowiązujące przepisy wprowadzają do projektowania nowych obiektów i do projektów rozbudowy i przebudowy",
resp,
corr,
"Aktualnie obowiązujące przepisy wprowadzają do projektowania nowych obiektów i do projektów rozbudowy i przebudowy zakaz stosowania zbiorczych przewodów spalinowych.",
1,
0,
0,
"");

resp=new Array("przewody w piwnicach wraz z uzbrojeniem, przewody w lokalach wraz z połączeniami, dojścia do kominów","pomiar tzw. &quot;ciągów dymowych&quot;, parametry techniczne stosowanych pieców")
corr=new Array("1","0")
quest012 = new Question(
"Pytanie 12",
0,
"Kontrola przewodów spalinowych i dymowych powinna obejmować (między innymi)",
resp,
corr,
"Kontrola przewodów spalinowych i dymowych powinna obejmować (między innymi) przewody w piwnicach wraz z uzbrojeniem, przewody w lokalach wraz z połączeniami, dojścia do kominów.",
1,
0,
0,
"");

resp=new Array("wymiany wkładek bezpiecznikowych na tablicy mieszkaniowej TM, wymiany gniazd wtyczkowych, wymiany opraw oświetleniowych - gdy zachodzi taka konieczność","przeróbki gniazd wtyczkowych i przystosowanie przewodów ochronnych - &quot;uziemienia&quot;")
corr=new Array("1","0")
quest013 = new Question(
"Pytanie 13",
0,
"Użytkownik lokalu ma obowiązek",
resp,
corr,
"Użytkownik lokalu ma obowiązek wymiany wkładek bezpiecznikowych na tablicy mieszkaniowej TM, wymiany gniazd wtyczkowych, wymiany opraw oświetleniowych - gdy zachodzi taka konieczność. Przeróbki gniazd wtyczkowych i wszelkie przystosowania przewodów ochronnych - &quot;uziemienia&quot; jest niedopuszczalne.",
1,
0,
0,
"");

resp=new Array("przeznaczony do zapisów dotyczących przeprowadzonych badań, przeglądów stanu technicznego, modernizacji części obiektu","do którego należy wpisywać okresowe plany remontów obiektu")
corr=new Array("1","0")
quest014 = new Question(
"Pytanie 14",
0,
"Książka obiektu budowlanego to dokument",
resp,
corr,
"Książka obiektu budowlanego to dokument przeznaczony do zapisów dotyczących przeprowadzonych badań, przeglądów stanu technicznego, modernizacji części obiektu.",
1,
0,
0,
"");

resp=new Array("przez okres istnienia tego obiektu","przez okres co najmniej pięciu lat od daty rozbiórki obiektu")
corr=new Array("0","1")
quest015 = new Question(
"Pytanie 15",
0,
"Właściciel lub zarządca jest obowiązany przechowywać Książkę obiektu i inne dokumenty dotyczące obiektu",
resp,
corr,
"Właściciel lub zarządca jest obowiązany przechowywać Książkę obiektu i inne dokumenty dotyczące obiektu przez okres co najmniej pięciu lat od daty rozbiórki obiektu.",
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=\"Arial\"\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=\"Arial\"><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>\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")
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,due,tre)
{
if (!errori) winr.document.write("<H3>Popełniono następujące błędy:</H3>");
++errori;
winr.document.write("<p><b>"+uno+"</b><br>"+due+"<br>"+tre+"</p>");
}
function correct(wapf)
{
var i, ii, t, re, 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"){
t=tmp.name.substring(14,tmp.name.length);
re=new RegExp("_", "g");
t=t.replace(re," ");
udat[ii++]=t+": <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>Wynik</title><BASE target='_blank'></head><body bgcolor='#FFFFFF'><font face='Arial, Arial'><table border=0 cellpadding=0 cellspacing=0 width='100%' bgcolor='#C0C0C0'><tr><td width='100%'><font face='Arial, Arial' size=5 color='#FFFFFF'><b>&nbsp;Wyniki</b></font></td></tr></table>")
now= new Date()
winr.document.write("<small><p>"+fill((now.getMonth()+1),2)+"/"+fill(now.getDate(),2)+"/"+now.getYear()+"&nbsp;&nbsp;"+fill(now.getHours(),2)+":"+fill(now.getMinutes(),2)+"</p>")
if (udat.length>0) {
winr.document.write("<b>Information</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,"The checkbox  <i>"+questions[i].response[selection]+"</i>  shouldn't have been selected.",questions[i].explan)
}} else {
if (questions[i].corrects[selection]=="1") {
iswrong=true;
if (multi) 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;
}}}
errore(questions[i].qname,"Prawidłowa odpowiedź jest: <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)?"":" ";winr.document.write("<br><b>Popełnione błędy: "+errori+" "+voc+" </b>");}

else winr.document.write("<h3>Gratulacje ! Nie popełniono żadnego błędu !</h3>")
{var voc=(total==1)?"":" ";winr.document.write("<br><b>Pozytywne odpowiedzi: "+total+" "+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("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.")'
winr.document.write("<input type='button' value='Drukuj...' onClick='"+printest+"'>&nbsp;&nbsp;&nbsp;&nbsp;")
winr.document.write("<input type='button' value='Zamknij' 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> </a></small></small></p>"

