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("Tak","Nie")
corr=new Array("1","0")
quest001 = new Question(
"Pytanie 1",
0,
"Czy jednym z warunków uzyskania pozwolenia na użytkowanie obiektu budowlanego jest przedłożenie potwierdzenia odbioru wykonanych przyłączy ?",
resp,
corr,
"Art.57.1.6 Prawa budowlanego.",
1,
0,
0,
"");

resp=new Array("Tak","Nie")
corr=new Array("1","0")
quest002 = new Question(
"Pytanie 2",
0,
"Czy Książka obiektu budowlanego powinna być założona w dniu przekazania obiektu do użytkowania ?",
resp,
corr,
"Par. 2 rozporządzenia ministra infrastruktury z dn. 3 lipca 2003 r. &quot;w sprawie książki obiektu budowlanego&quot; (Dz. U. 120/03 poz. 1134)",
1,
0,
0,
"");

resp=new Array("Tak","Nie")
corr=new Array("1","0")
quest003 = new Question(
"Pytanie 3",
0,
"Czy Książka obiektu budowlanego musi mieć format A4, ponumerowane strony - zabezpieczone w sposób chroniący przed usunięciem lub wymianą ?",
resp,
corr,
"Par. 3 i par. 4&nbsp; rozporządzenia ministra infrastruktury z dn. 3 lipca 2003 r. &quot;w sprawie książki obiektu budowlanego&quot; (Dz. U. 120/03 poz. 1134)<br>",
1,
0,
0,
"");

resp=new Array("Tak","Nie")
corr=new Array("0","1")
quest004 = new Question(
"Pytanie 4",
0,
"Czy osoba upoważniona do dokonywania wpisu do Książki obiektu budowlanego musi posiadać uprawnienia budowlane ?",
resp,
corr,
"Prawo budowlane i przepisy powoływane przez Prawo budowlane nie ustalają kwalifikacji osoby dokonującej wpisów.",
1,
0,
0,
"");

resp=new Array("Tak","Nie")
corr=new Array("1","0")
quest005 = new Question(
"Pytanie 5",
0,
"Czy w Książce obiektu budowlanego trzeba zamieszczać informacje o następujących dokumentach (dotyczących obiektu, dla którego książka jest prowadzona): protokołach kontroli okresowych stanu technicznej sprawności obiektu, świadectwach dotyczących remontów i modernizacji obiektu, protokołach awarii i katastrof budynku ?",
resp,
corr,
"Załącznik do&nbsp; rozporządzenia ministra infrastruktury z dn. 3 lipca 2003  r. &quot;w sprawie książki obiektu budowlanego&quot; (Dz. U. 120/03 poz. 1134)<br><br>",
1,
0,
0,
"");

resp=new Array("Tak","Nie")
corr=new Array("0","1")
quest006 = new Question(
"Pytanie 6",
0,
"Czy wpis do książki obiektu budowlanego może być dokonany w okresie - do 2 tygodni od zaistnienia okoliczności, dla której jest wymagane dokonanie wpisu ?",
resp,
corr,
"Par. 6&nbsp; rozporządzenia ministra infrastruktury z dn. 3 lipca 2003 r. &quot;w sprawie książki obiektu budowlanego&quot; (Dz. U. 120/03 poz. 1134)<br><br>",
1,
0,
0,
"");

resp=new Array("Tak","Nie")
corr=new Array("1","0")
quest007 = new Question(
"Pytanie 7",
0,
"Czy dokonując modernizacji lub zmiany sposobu użytkowania 1 pomieszczenia w budynku trzeba ten fakt odnotować w Książce obiektu budowlanego ?",
resp,
corr,
"Art. 71 Prawa budowlanego.",
1,
0,
0,
"");

resp=new Array("Tak","Nie")
corr=new Array("0","1")
quest008 = new Question(
"Pytanie 8",
0,
"Czy obowiązek prowadzenia Książki obiektu budowlanego obejmuje właścicieli budynków indywidualnego budownictwa jednorodzinnego ?",
resp,
corr,
"Art. 64.1 i Art. 64.2 Prawa budowlanego.",
1,
0,
0,
"");

resp=new Array("Tak","Nie")
corr=new Array("1","0")
quest009 = new Question(
"Pytanie 9",
0,
"Czy podany zakres przeglądu 5 letniego jest właściwy ?<br>a) sprawdzenie stanu technicznego i przydatności do użytkowania obiektu budowlanego,<br>b) sprawdzenie estetyki obiektu oraz jego otoczenia,<br>c) badanie instalacji elektrycznej i piorunochronnej w zakresie stanu sprawności połączeń, osprzętu, zabezpieczeń i środków ochrony od porażeń,<br>d) badanie oporności izolacji przewodów oraz uziemień instalacji i aparatów,<br>e) wykonanie szczegółowego zakresu kontroli podanego w rozporządzeniu: &quot;w sprawie warunków technicznych użytkowania budynków mieszkalnych&quot; (Dz. U. 74/99 r, nr 74, poz. 836)<br>f) kontroli wskazanej przez organy administracji architektoniczno-budowlanej i nadzoru budowlanego (jeśli wydano taką decyzję)",
resp,
corr,
"Art. 62.1 i art. 62.3 Prawa budowlanego",
1,
0,
0,
"");

resp=new Array("Tak","Nie")
corr=new Array("1","0")
quest010 = new Question(
"Pytanie 10",
0,
"Czy kontrolę - dokonywaną co najmniej raz w roku - stanu technicznego przewodów kominowych, dymowych oraz grawitacyjnych przewodów spalinowych i wentylacyjnych mogą prowadzić osoby posiadające kwalifikacje mistrza w rzemiośle kominiarskim ?",
resp,
corr,
"Art. 62.1.6 Prawa budowlanego",
1,
0,
0,
"");

resp=new Array("Tak","Nie")
corr=new Array("1","0")
quest011 = new Question(
"Pytanie 11",
0,
"Czy obowiązek kontroli - co najmniej 1 raz w roku - instalacji gazowych i przewodów kominowych obejmuje właścicieli indywidualnego budownictwa jednorodzinnego ?",
resp,
corr,
"Art. 62.2 Prawa budowlanego.",
1,
0,
0,
"");

resp=new Array("Tak","Nie")
corr=new Array("0","1")
quest012 = new Question(
"Pytanie 12",
0,
"Czy organ administracji architektoniczno-budowlanej i nadzoru budowlanego może wydać samodzielnie decyzję nakazującą właścicielowi lub zarządcy rozbiórkę obiektu budowlanego - objętego przepisami o ochronie zabytków - nie użytkowanego, nie nadającego się do remontu ?",
resp,
corr,
"Art. 67.2 Prawa budowlanego.",
1,
0,
0,
"");

questions = new Array (
quest001,quest002,quest003,quest004,quest005,quest006,quest007,quest008,quest009,quest010,quest011,quest012)

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\">")
document.write(numord)
document.write("</font></td>\n")
document.write("      <td width=\"95%\" valign=\"top\" bgcolor=\"#F4F4FF\"><font face=\"Arial\"><font color=\"#000080\"><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("</font><br>\n")
document.write("      <br>\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("      </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>Wyniki</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 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>"

