﻿/* 

Copyright It figures 2003-2008

Versie 4.1

Vragen
 VraagArray[Vraagnummer][0]: Vraagtype (string)
 VraagArray[Vraagnummer][1]: Vraagtekst (string)
 VraagArray[Vraagnummer][2]: Aantal antwoorden (byte)
 VraagArray[Vraagnummer][3]: Maximum aantal antwoorden (byte), bij semdif aantal gradaties, bij constantsum te verdelen punten
 VraagArray[Vraagnummer][4]: Standaard-vervolgvraagnummer (integer)
 VraagArray[Vraagnummer][5]: Loopstarter (0 = Nee, 1 = Altijd vragen, 2 = Alleen bij loop 0 vraag stellen, bij overige loops antwoord eerste keer gebruiken)
 VraagArray[Vraagnummer][6]: Opties matrixvraag, ranking
 VraagArray[Vraagnummer][7]: Gegeven antwoord (loop-vragen)
 VraagArray[Vraagnummer][8]: Minimum aantal antwoorden (Voor checkbox, staat in vraag als var 5)
 VraagArray[Vraagnummer][9]: Startwaarde voor constantsum-antwoorden
 VraagArray[Vraagnummer][10]: Teksten verplicht invullen

Antwoorden
 AntwoordArray[Vraagnummer][Antwoordnummer][0]: Antwoordtekst (string)
 AntwoordArray[Vraagnummer][Antwoordnummer][1]: Vervolgvraagnummer (integer)
 AntwoordArray[Vraagnummer][Antwoordnummer][2]: Namelijk-optie (0/1/2/3)
 AntwoordArray[Vraagnummer][Antwoordnummer][3]: Format
 AntwoordArray[Vraagnummer][Antwoordnummer][4]: Tekst voor gebruik in loop
 AntwoordArray[Vraagnummer][Antwoordnummer][5]: obsolete


Gegeven antwoorden:
 [0]: Gegeven antwoord (string: Radio:nr, Checkbox:1001010, Text:string, Matrix:31452, Remark:nvt, Ranking:12345, Semdif:13252,  Dropdown:nr) evt gevolgd door namelijk-antwoorden
 [1]: Antwoord definitief (ja/nee) nee wanneer teruggebladerd is en de vraag daarna niet nog eens gesteld is
 [2]: Pointer naar array van vervolgvragen (1 loopniveau dieper)

*/

var VraagArray=new Array(0),AntwoordArray=new Array(0),AQ=0,GaNaar="",VN=0,AN=0,EnqueteNummer="",VerderTekst="",TerugTekst="",TopDivContent="",BottomDivContent="",AfsluitText="";
var Header='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html><head><style>body{font:100% arial,verdana,sans-serif;background:#FFF;color:#000;text-align:left;padding:100px}.b{font:100% arial,verdana,sans-serif;background:#CCC;color:#000}td{text-align:left}table{width:100%}a:link img,a:hover img,a:visited img,a:active img{border:none}</style><meta http-equiv="cache-control" content="no-store"></head>';
var EnqueteNummer="";
var TerugTekst="";
var VerderTekst="Verder";
var VoortgangNummering=false;
var TopDivContent="";
var BottomDivContent="";
var TestRunning=false;
var Language="NL";
var DefaultLanguage="NL";
var Dividers=0;
var ByEmail=0;
var Separator="\t";
var Anonymous="";
var AfsluitText="";
var MaxVragen=99999999;
var SurveyClosed=0;

/********************************** Vertalingen ***********************************/

var Messages=new Array(0);
Messages["NL"]=new Array(0);
Messages["EN"]=new Array(0);
Messages["FR"]=new Array(0);
Messages["DE"]=new Array(0);

/* Tekst voor Start-button */
Messages["NL"]["Start"]="Start";
Messages["EN"]["Start"]="Start";
Messages["FR"]["Start"]="D&eacute;marrer";
Messages["DE"]["Start"]="Umfrage beginnen";

/* Foutmelding Nog geen antwoord gegeven */
Messages["NL"]["GeenAntwoordGegeven"]="Er is nog geen antwoord gegeven. Vul svp uw keuze in.";
Messages["EN"]["GeenAntwoordGegeven"]="No answer has been given. Please select an option.";
Messages["FR"]["GeenAntwoordGegeven"]="Il manque une r&eacute;ponse. Veuillez indiquer votre choix SVP.";
Messages["DE"]["GeenAntwoordGegeven"]="Sie haben noch keine Antwort angegeben.";

/* Foutmelding Tenminste een vraag nog geen antwoord gegeven */
Messages["NL"]["NietAllesBeantwoord"]="Op tenminste &eacute;&eacute;n van de vragen is nog geen antwoord gegeven. Vul svp uw keuze in.";
Messages["EN"]["NietAllesBeantwoord"]="At least one of the questions has not been answered. Please answer all questions.";
Messages["FR"]["NietAllesBeantwoord"]="Il manque une r&eacute;ponse à au moins une des questions. Veuillez indiquer votre choix SVP.";
Messages["DE"]["NietAllesBeantwoord"]="Sie haben eine oder mehrere Fragen nicht beantwortet.";

/* Foutmelding Antwoord niet toegekend */
Messages["NL"]["AntwoordNietToegekend"]="Tenminste &eacute;&eacute;n van de antwoorden is niet toegekend. Vul svp uw keuze in.";
Messages["EN"]["AntwoordNietToegekend"]="At least one of the answers has not been assigned. Please assign all answers.";
Messages["FR"]["AntwoordNietToegekend"]="Une des r&eacute;ponses au moins n'a pas &eacute;t&eacute; attribu&eacute;&eacute;. Veuillez indiquer votre choix SVP.";
Messages["DE"]["AntwoordNietToegekend"]="Mindestens eine Ihrer Antworten ist fehlerhaft.";

/* Foutmelding Maximum aantal antwoorden overschreden */
Messages["NL"]["MaximumOverschreden"]=new Array("U kunt maximaal "," antwoorden invullen. Pas svp uw keuzes aan.");
Messages["EN"]["MaximumOverschreden"]=new Array("You can check "," answers at most. Please adapt your choices.");
Messages["FR"]["MaximumOverschreden"]=new Array("Vous ne pouvez donner qu&#39;un maximum de "," r&eacute;ponses. Veuillez adapter vos choix SVP.");
Messages["DE"]["MaximumOverschreden"]=new Array("Sie k&ouml;nnen maximal "," Antworten angeben.");

/* Foutmelding Minimum aantal antwoorden niet gegeven */
Messages["NL"]["MinimumNietGeantwoord"]=new Array("U moet minimaal "," antwoorden invullen. Pas svp uw keuzes aan.");
Messages["EN"]["MinimumNietGeantwoord"]=new Array("You must check at least "," answers. Please adapt your choices.");
Messages["FR"]["MinimumNietGeantwoord"]=new Array("Vous faut donner au minimum "," r&eacute;ponses. Veuillez adapter vos choix SVP.");
Messages["DE"]["MinimumNietGeantwoord"]=new Array("Sie m&uuml;ssen mindestens "," Antworten angeben.");

/* Melding Enquete gesloten */
Messages["NL"]["Gesloten"]="Deze enqu&ecirc;te is be&euml;indigd.";
Messages["EN"]["Gesloten"]="This survey is closed.";
Messages["FR"]["Gesloten"]="l&#39;enqu&ecirc;te est arrive &agrave; son terme.";
Messages["DE"]["Gesloten"]="Die Umfrage wurde beendet.";

/* Constantsum niet volledig verdeeld */
Messages["NL"]["ConstantsumNietNul"]="Het totaal is niet volledig verdeeld";
Messages["EN"]["ConstantsumNietNul"]="The total has not been distributed completely";
Messages["FR"]["ConstantsumNietNul"]="Le total n'est past distribue completement";
Messages["DE"]["ConstantsumNietNul"]="Das total ist nicht völlig verteild";

/* Constantsum nog te verdelen */
Messages["NL"]["ConstantsumVerdelen"]="over";
Messages["EN"]["ConstantsumVerdelen"]="left";
Messages["FR"]["ConstantsumVerdelen"]="a distribuer";
Messages["DE"]["ConstantsumVerdelen"]="zu verteilen";

/* Melding Sluit deze Enquete */
Messages["NL"]["Sluiten"]="Sluit deze enqu&ecirc;te";
Messages["EN"]["Sluiten"]="Close this survey";
Messages["FR"]["Sluiten"]="Cl&ocirc;turer cette enqu&ecirc;te";
Messages["DE"]["Sluiten"]="Umfrage beenden";

/* Melding Sluit deze Enquete */
Messages["NL"]["Ontvangen"]="Uw antwoorden zijn ontvangen.";
Messages["EN"]["Ontvangen"]="Your answers have been received.";
Messages["FR"]["Ontvangen"]="Vos r&eacute;ponses ont &eacute;t&eacute; re&ccedil;ues.";
Messages["DE"]["Ontvangen"]="Ihre Antworten wurden empfangen.";

/* Terug naar uw account */
Messages["NL"]["TerugAccount"]="Terug naar uw account";
Messages["EN"]["TerugAccount"]="Back to your account";
Messages["FR"]["TerugAccount"]="";
Messages["DE"]["TerugAccount"]="Zurück zu Ihrem Konto";

/* LoopLevel */
Messages["NL"]["LoopLevel"]="Vragenlijst is niet compleet, informeer svp de afzender";
Messages["EN"]["LoopLevel"]="Questionlist is not complete, please inform sender";
Messages["FR"]["LoopLevel"]="l'enquête n'est pas complete, veuillez informer le expéditeur";
Messages["DE"]["LoopLevel"]="Fragenbogen ist nicht, bitte sender informieren";

/* Tekst in email wanneer de enquete per email teruggestuurd wordt */
Messages["NL"]["MailBody"]="Privacy-mededeling%0D%0A%0D%0ADeze enquete wordt per email verstuurd. Als in het onderwerp van de email achter de enquetecode van 10 tekens ANONYMOUS staat, wordt uw emailadres niet geregistreerd. In alle andere gevallen wordt uw emailadres zichtbaar voor de opsteller van de enquete.%0D%0A%0D%0AU kunt, als u anoniem wilt blijven, eventueel zelf ANONYMOUS achter de enquetecode typen (in hoofdletters, zonder spatie).%0D%0A%0D%0AWeest u zich er echter van bewust dat volledige anonimiteit niet door ons gegarandeerd kan worden: het is altijd mogelijk dat deze enquete alleen aan u verstuurd is.%0D%0A%0D%0AAls u vragen of opmerkingen heeft, mailt u dan svp aan info@emailenquete.nl. Het mailbericht dat u nu leest wordt automatisch verwerkt en verder niet gelezen.%0D%0A%0D%0Aemailenquete.nl%0D%0A%0D%0A%0D%0A%0D%0A<- Verander hieronder niets, uw reactie wordt daardoor onbruikbaar en zal niet geregistreerd worden ->%0D%0A";
Messages["EN"]["MailBody"]="Your privacy%0D%0A%0D%0AThis questionnaire will be sent by email. If the subject of this mail contains the word ANONYMOUS directly after the 10-character-surveycode, your emailadress will not be registered. In all other cases your emailadress will be visible to the person who sent you this questionnaire.%0D%0A%0D%0AIf you want to remain anonymous, you can add the word ANONYMOUS to the subject of this email (in uppercase, without spaces).%0D%0A%0D%0APlease be aware that we cannot guarantee absolute anonimity: it is allways possible you are the only one this questionnaire has been sent to.%0D%0A%0D%0AIf you have any questions, please send an email to info@emailenquete.com. The email you are reading now is processed automatically and is not read by anyone.%0D%0A%0D%0Aemailenquete.com%0D%0A%0D%0A%0D%0A%0D%0A<- Do not change anything below this line, your respons will not be usable and will not be registered ->%0D%0A";
Messages["FR"]["MailBody"]=Messages["EN"]["MailBody"];
Messages["DE"]["MailBody"]="Datenschutz%0D%0A%0D%0ADiese Umfrage wird per E-Mail verschickt. Wenn in der Betreffzeile der E-Mail hinter dem aus zehn Zeichen bestehenden Umfragecode ANONYMOUS steht, wird Ihre E-Mail-Adresse nicht registriert. In allen anderen Fällen ist Ihre E-Mail-Adresse für den Ersteller der Umfrage sichtbar. %0D%0A%0D%0AWenn Sie anonym bleiben möchten, können Sie auch selber „ANONYMOUS“ hinter dem Umfragecode eingeben (in Großbuchstaben, ohne Leerzeichen).%0D%0A%0D%0ABitte nehmen Sie zur Kenntnis, dass vollkommene Anonymität von uns nicht garantiert werden kann: Es ist jederzeit möglich, dass diese Umfrage nur an Sie verschickt wurde.%0D%0A%0D%0AWenn Sie Fragen oder Anmerkungen haben, schicken Sie bitte eine E-Mail an info@emailenquete.de. Dieser Bericht wird automatisch erstellt und nicht mehr nachgelesen.%0D%0A%0D%0AEmailenquete.de%0D%0A%0D%0A%0D%0A%0D%0A<- Bitte verändern Sie unten nichts, sonst wird Ihre Reaktion unbrauchbar und wird nicht registriert. ->%0D%0A";

/******************************* Einde vertalingen ********************************/

var Start='<body>'+TopDivContent+'<p><form><input type="button" name="start" class="b" onclick="this.disabled=true;parent.StartEnquete()" value="'+Messages[Language]["Start"]+'" /></form></p>'+BottomDivContent+'</body></html>';
var LoopLevel=0;
var loopstack=new Array();
var antwoordstack=new Array();
antwoordstack[0]=new Array();
antwoordstack[1]=new Array();
var LoopAntwoordTekst=new Array();

var VraagBoom=new Array();
var boom=new Array();
var boomvraag=new Array();
var boomvraagantwoordlijst=new Array();
var boomvraagantwoordnummer=new Array();
var runcounter=new Array();
runcounter[0]=0;

var Stack1=new Array();
var Stack2=new Array();
var Stack3=new Array();
var Stack4=new Array();
var Stack5=new Array();
var Stack6=new Array();
var Stack7=new Array();
var Stack8=new Array();
var Stack9=new Array();
var Stack10=new Array();
var Stack1Pos=0;

var AVN=0;

function push(CurrentVraagNummer){
 Stack1[++Stack1Pos]=CurrentVraagNummer;
 Stack2[Stack1Pos]=boom[LoopLevel];
 Stack3[Stack1Pos]=boomvraag[LoopLevel];
 Stack4[Stack1Pos]=boomvraagantwoordlijst[LoopLevel];
 Stack5[Stack1Pos]=boomvraagantwoordnummer[LoopLevel];
 Stack6[Stack1Pos]=LoopLevel;
 var temp=antwoordstack[LoopLevel].slice();
 Stack7[Stack1Pos]=temp;
 var temp=loopstack.slice();
 Stack8[Stack1Pos]=temp;
 var temp=LoopAntwoordTekst[LoopLevel];
 Stack9[Stack1Pos]=temp;
 Stack10[Stack1Pos]=runcounter[LoopLevel];
}

function pop(){
 if(Stack1Pos>1)Stack1Pos--;
 LoopLevel=Stack6[Stack1Pos];
 boom[LoopLevel]=Stack2[Stack1Pos];
 boomvraag[LoopLevel]=Stack3[Stack1Pos];
 boomvraagantwoordlijst[LoopLevel]=Stack4[Stack1Pos];
 boomvraagantwoordnummer[LoopLevel]=Stack5[Stack1Pos];
 antwoordstack[LoopLevel]=Stack7[Stack1Pos];
 loopstack=Stack8[Stack1Pos];
 LoopAntwoordTekst[LoopLevel]=Stack9[Stack1Pos]; 
 runcounter[LoopLevel]=Stack10[Stack1Pos];
 while(VraagArray[Stack1[Stack1Pos]][0]=="endloop"||(VraagArray[Stack1[Stack1Pos]][5]==2&&runcounter[LoopLevel]!=0)){
  Stack1Pos--;
  LoopLevel=Stack6[Stack1Pos];
  boom[LoopLevel]=Stack2[Stack1Pos];
  boomvraag[LoopLevel]=Stack3[Stack1Pos];
  boomvraagantwoordlijst[LoopLevel]=Stack4[Stack1Pos];
  boomvraagantwoordnummer[LoopLevel]=Stack5[Stack1Pos];
  antwoordstack[LoopLevel]=Stack7[Stack1Pos];
  loopstack=Stack8[Stack1Pos];
  LoopAntwoordTekst[LoopLevel]=Stack9[Stack1Pos]; 
  runcounter[LoopLevel]=Stack10[Stack1Pos];
 }
 boom[LoopLevel][boomvraag[LoopLevel]][1]=0;
 return(Stack1Pos==1?1:Stack1[Stack1Pos--]);
}

function pushloop(aa){
 LoopLevel++;
 loopstack.push(aa);
 antwoordstack[LoopLevel+1]=new Array();
 boomvraagantwoordlijst[LoopLevel]=boom[LoopLevel-1][boomvraag[LoopLevel-1]-1][2];
 boomvraagantwoordnummer[LoopLevel]=0;
 boomvraag[LoopLevel]=0;
 runcounter[LoopLevel]=0;
}

function peekloop(){
 return loopstack[loopstack.length-1]+1; 
}

function poploop(){
 LoopLevel--;
 return loopstack.pop();
}

function pushantwoord(aa){
 antwoordstack[LoopLevel+1].push(aa);
}

function peekantwoord(){
 if(antwoordstack[LoopLevel].length<=0)return false; else return antwoordstack[LoopLevel][antwoordstack[LoopLevel].length-1];
}

function popantwoord(){
 if(antwoordstack[LoopLevel].length<=0){
  return false;
 }else{
  runcounter[LoopLevel]++;
  boomvraag[LoopLevel]=0;
  return antwoordstack[LoopLevel].pop();
 }
}

function writestart(actie){
 if(Language=="")Language=DefaultLanguage;
 main.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html><head><meta http-equiv="cache-control" content="no-store"></head><body><form id="Enquete" action="'+actie+'" method="post" target="_parent"><input type="hidden" name="Deelnemer" size=200 value="" /><input type="hidden" name="Enquetenummer" size=10 value="" /><input type="hidden" name="Respons" size=640000 value="" /></form><form id="MailEnquete" action="readmail.php" method="post"></form></body></html>');
 with(show.document){
  write(Header);
  write(Start);
  close(); 
 }
}

function init(){
 if(SurveyClosed==0)writestart("result");
 else closed();
}

function initdownloaded(){
 if(SurveyClosed==0)writestart("http://[SITE]/result");
 else closed();
}

function initnc(){
 if(SurveyClosed==0)writestart("resultnc");
 else closed();
}

function initem(){
 if(SurveyClosed==0){
  writestart("");
  ByEmail=1;
 }else closed();
}

function initam(){
 if(SurveyClosed==0){
  writestart("");
  ByEmail=1;
  Anonymous="ANONYMOUS";
 }else closed();
}

function test(){
 writestart("test");
 TestRunning=true;
}

function replace(S,C,B){
 L=S.length;
 T=C.length;
 if((L==0)||(T==0))return S;
 i=S.indexOf(C);
 if((!i)&&(C!=S.substring(0,T)))return S;
 if(i==-1)return S;
 ns=S.substring(0,i)+B;
 if(i+T<L)ns+=replace(S.substring(i+T,L),C,B);
 return ns;
}

function alerthtml(htmlstring){
 workstring=replace(htmlstring,"&aacute;","á");
 workstring=replace(workstring,"&agrave;","à");
 workstring=replace(workstring,"&egrave;","è");
 workstring=replace(workstring,"&eacute;","è");
 workstring=replace(workstring,"&ecirc;","ê");
 workstring=replace(workstring,"&euml;","ë");
 workstring=replace(workstring,"&iuml;","ï");
 workstring=replace(workstring,"&ouml;","ö");
 workstring=replace(workstring,"&uuml;","ü");
 alert(workstring);
}

function getFont(FontNr){
 switch(FontNr){
  case 2: return "verdana,arial,sans-serif";break;
  case 3: return "garamond,'times new roman','courier new',serif";break;
  case 4: return "'courier new',garamond,'times new roman',serif";break;
  case 5: return "'times new roman',garamond,'courier new',serif";break;
  case 6: return "simpson,bangle,sans-serif";break;
  case 7: return "'signet roundhand',script,cursive";break;
  case 8: return "'comic sans ms',verdana,sans-serif";break;
  default: return "arial,verdana,sans-serif";
 }
}

function resetquot(s){
 return replace(s,"&quot;",'"');
}

function Opmaak(EnqNr,NextQ,PrevQ,Nummers,BodyFontSize,BodyFontType,BodyBackground,BodyColor,BodyAlign,ButtonFontSize,ButtonFontType,ButtonBackground,ButtonColor,Div1Color,Div1Background,Div1Font,Div1Size,Div1content1,Div1content2,Div1content3,Div2Color,Div2Background,Div2Font,Div2Size,Div2content1,Div2content2,Div2content3,HR1size,HR1color,HR2size,HR2color){
 Header='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html><head><style>';
 Header+='body{font:'+BodyFontSize+'% '+getFont(BodyFontType)+';background:'+BodyBackground+';color:'+BodyColor+';text-align:'+BodyAlign+';padding:50px 100px}';
 Header+='.b{font:'+ButtonFontSize+'% '+getFont(ButtonFontType)+';background:'+ButtonBackground+';color:'+ButtonColor+'}';
 Header+='td{text-align:left}table{width:100%;font:inherit}a:link img,a:hover img,a:visited img,a:active img{border:none};ins ins{position:absolute,bottom:0;left:50%;margin-left:-333px !important}</style><meta http-equiv="cache-control" content="no-store"></head>';
 EnqueteNummer=EnqNr;
 TerugTekst=PrevQ;
 VerderTekst=NextQ;
 VoortgangNummering=(Nummers=="0"?false:(Nummers=="none"?false:true));
 TopDivContent='<table style="width:100%;color:'+Div1Color+';background:'+Div1Background+';font:'+Div1Size+'% '+getFont(Div1Font)+'"><tr><td style="padding:0;text-align:left;width:33%">'+resetquot(Div1content1)+'</td><td style="padding:0;text-align:center;width:33%">'+resetquot(Div1content2)+'</td><td style="padding:0;text-align:right;width:33%">'+resetquot(Div1content3)+'</td></tr></table><div style="width:100%;margin:5px 0;height:'+HR1size+';color:'+HR1color+';background:'+HR1color+'"><span style="height:0px"></span></div>';
 BottomDivContent='<div style="width:100%;margin:5px 0;height:'+HR2size+';color:'+HR2color+';background:'+HR2color+'"><span style="height:0px"></span></div><div style="width:100%;text-align:center">';
 BottomDivContent+='<script type="text/javascript"><!--'+"\n";
 BottomDivContent+='google_ad_client = "pub-3689234280182018";'+"\n";
 BottomDivContent+='/* 468x60, gemaakt 19-6-09 */'+"\n";
 BottomDivContent+='google_ad_slot = "5515202619";'+"\n";
 BottomDivContent+='google_ad_width = 468;'+"\n";
 BottomDivContent+='google_ad_height = 60;'+"\n";
 BottomDivContent+='//-->'+"\n";
 BottomDivContent+='</script>'+"\n";
 BottomDivContent+='<script type="text/javascript"'+"\n";
 BottomDivContent+='src="http://pagead2.googlesyndication.com/pagead/show_ads.js">'+"\n";
 BottomDivContent+='</script>';
 BottomDivContent+='</div>';
 BottomDivContent+='<table style="width:100%;color:'+Div2Color+';background:'+Div2Background+';font:'+Div2Size+'% '+getFont(Div2Font)+'"><td style="padding:0;text-align:left;width:33%">'+resetquot(Div2content1)+'</td><td style="padding:0;text-align:center;width:33%">'+resetquot(Div2content2)+'</td><td style="padding:0;text-align:right;width:33%">'+resetquot(Div2content3)+'</td></tr></table>';
}

function InleidingTekst(a){
 Start='<body>'+TopDivContent+'<p>'+a+'<form><input type="button" name="start" class="b" onclick="this.disabled=true;parent.StartEnquete()" value="';
 Start+=Messages[Language]["Start"];
 Start+='" /></form></p>'+BottomDivContent+'</body></html>';
}

function Vraag(Nr,Soort,Tekst,Maximum,Vervolg,Keuzes,Jumploop,Verplicht){
 VraagArray[Nr]=new Array(0);
 VraagArray[Nr][0]=Soort.toLowerCase();
 VraagArray[Nr][1]=Tekst;
 VraagArray[Nr][2]=0;
 VraagArray[Nr][3]=Maximum;
 VraagArray[Nr][4]=(Vervolg==99999999?Nr+1:Vervolg);
 VraagArray[Nr][5]=0;
 VraagArray[Nr][6]=(VraagArray[Nr][0]!="checkbox"?(Keuzes?Keuzes:""):""); 
 VraagArray[Nr][7]=0;
 if(Verplicht)VraagArray[Nr][10]=Verplicht;else VraagArray[Nr][10]=0;
 switch(VraagArray[Nr][0]){
  case "constantsum":
   LaagHoog=Keuzes.split("\t");
   VraagArray[Nr][8]=LaagHoog[0];
   VraagArray[Nr][6]=LaagHoog[1];
   VraagArray[Nr][9]=Jumploop;
   break;
  case "checkbox":
  case "loopcheckbox":
   VraagArray[Nr][8]=(Keuzes?(isNaN(Keuzes)?0:Keuzes):0);
   break;
  default:
   VraagArray[Nr][8]=0;
 }
 if(VraagArray[Nr][0]=="loopcheckbox"||VraagArray[Nr][0]=="loopranking"){
  VraagArray[Nr][5]=(Jumploop==0?1:2);
 }
 AntwoordArray[Nr]=new Array(0);
 VN=Nr;
 AN=0;
}

function Antwoord(Tekst,Vervolg,Namelijk,LoopTekst,Verplicht,format){
 AntwoordArray[VN][++AN]=new Array(0);
 AntwoordArray[VN][AN][0]=Tekst;
 AntwoordArray[VN][AN][1]=(Vervolg==99999999?VraagArray[VN][4]:(VraagArray[VN][0]=="radio"?Vervolg:VraagArray[VN][4]));
 AntwoordArray[VN][AN][2]=Namelijk;
 AntwoordArray[VN][AN][3]=(typeof(format)!="undefined"?format:"");
 if(VraagArray[VN][0]=="loopcheckbox"||VraagArray[VN][0]=="loopranking")AntwoordArray[VN][AN][4]=(LoopTekst==""?Tekst:LoopTekst);
 else AntwoordArray[VN][AN][4]="";
/* if(Verplicht)AntwoordArray[VN][AN][5]=Verplicht;else AntwoordArray[VN][AN][5]=0;*/
 VraagArray[VN][2]++;
}

function AfsluitTekst(Tekst){
 AfsluitText=Tekst;
}

function buildantwoordboom(){
 AVN++;
 var Antwoordlist=new Array();
 while(AVN<VraagArray.length&&VraagArray[AVN][0]!="endloop"){
  var x=new Array(".",0,null,AVN);
  Antwoordlist.push(x);
  if(VraagArray[AVN][0]=="loopcheckbox"||VraagArray[AVN][0]=="loopranking"){
   var curpos=Antwoordlist.length-1;
   Antwoordlist[curpos][2]=new Array(); 
   var Antwoordcount=VraagArray[AVN][2];
   var AVNBackup=AVN;
   for(var x=0;x<Antwoordcount;x++){
    AVN=AVNBackup;
    Antwoordlist[curpos][2][x]=buildantwoordboom();
   }
  }
  AVN++;
 }
 return Antwoordlist;
}

function returnantwoordlist(b,s){
 var u="";
 for(var x=0;x<b.length;x++){
  ra="";
  switch(VraagArray[b[x][3]][0]){
   case "multitext":
    ra+=Separator;
   case "constantsum":
    ra+=".";
    for(g=1;g<VraagArray[b[x][3]][2];g++)ra+=Separator+".";
    break;
   case "radio":
   case "checkbox":
   case "loopbox":
    ra=".";
    for(g=1;g<=VraagArray[b[x][3]][2];g++)if(AntwoordArray[b[x][3]][g][2]>0)ra+=Separator+".";
    break;
   default:ra=".";
  }
  if(VraagArray[b[x][3]][0]!="remark")u+=s+(b[x][1]==1?b[x][0]:ra);
  if(b[x][2] instanceof Array)for(var y=0;y<b[x][2].length;y++)u+=returnantwoordlist(b[x][2][y],s);
 }
 return u;
}

function returnantwoorden(sep){
 return returnantwoordlist(VraagBoom,sep);
}

function gotovraag(NV){
 if(NV!=0&&NV<AQ&&VraagArray[NV][0]!="endloop"){
  if(boomvraag[LoopLevel]>=boom[LoopLevel].length)boomvraag[LoopLevel]=0;
  if(NV>=(AQ-1)||boom[LoopLevel][boomvraag[LoopLevel]][3]!=NV){
   boomvraag[LoopLevel]=0;
   while(boom[LoopLevel][boomvraag[LoopLevel]][3]!=NV){
    boomvraag[LoopLevel]++;
   }
  }
 }
}

function SlaAntwoordOp(NV){
 VV=VraagArray[NV][4];
 DitAntwoord="";
 switch(VraagArray[NV][0]){
  case "dropdown":{
   DitAntwoord=show.document.getElementById('dropdownbox').value;
   break;
  }
  case "radio":{
   switch(VraagArray[NV][2]){
    case 0:DitAntwoord="0";break;
    case 1:if(show.document.forms[0].Antwoord.checked)DitAntwoord="1";VV=AntwoordArray[NV][1][1];break;
    default:for(r=0;r<VraagArray[NV][2];r++)if(show.document.forms[0].Antwoord[r].checked){DitAntwoord=r+1;VV=AntwoordArray[NV][r+1][1];}
   }
   break;
  }
  case "checkbox":{
   switch(VraagArray[NV][2]){
    case 0:DitAntwoord="0";break;
    case 1:if(show.document.forms[0].Antwoord.checked)DitAntwoord="1";else DitAntwoord="0";break;
    default:for(r=0;r<VraagArray[NV][2];r++)if(show.document.forms[0].Antwoord[r].checked)DitAntwoord+="1";else DitAntwoord+="0";
   }
   break;
  }
  case "loopcheckbox":{
   switch(VraagArray[NV][2]){
    case 0:DitAntwoord="0";break;
    case 1:if(show.document.forms[0].Antwoord.checked){DitAntwoord="1";pushantwoord(1)}else DitAntwoord="0";break;
    default:{
      while(antwoordstack[LoopLevel+1].length>0)antwoordstack[LoopLevel+1].pop();
      for(r=VraagArray[NV][2]-1;r>=0;r--)if(show.document.forms[0].Antwoord[r].checked)pushantwoord([r+1]);
      for(r=0;r<VraagArray[NV][2];r++)if(show.document.forms[0].Antwoord[r].checked)DitAntwoord+="1";else DitAntwoord+="0"; 
    }
   }
   break;
  }
  case "constantsum":{
   switch(VraagArray[NV][2]){
    case 0:DitAntwoord="0";break;
    default:for(r=1;r<=VraagArray[NV][2];r++)DitAntwoord+=show.document.getElementById("constantsum"+r).value+(r<VraagArray[NV][2]?Separator:"");
   }
   break;
  }
  case "checkmatrix":{
   KeuzeString=VraagArray[NV][6];
   Keuzes=KeuzeString.split("\t");
   KN=Keuzes.length+1;
   for(j=1;j<=VraagArray[NV][2];j++){
    Valueassigned=false;
    Checkvar='Check'+j;
    if(show.document.getElementById(Checkvar).checked)for(k=1;k<KN;k++){
     thisobj=show.document.forms[0].elements[KN*(j-1)+k];
     if(thisobj.checked){
      DitAntwoord+=thisobj.value; 
      Valueassigned=true;
     }
    }
    if(!Valueassigned)DitAntwoord+='.';
   }
   break;
  }
  case "loopranking":{
   KeuzeString=VraagArray[NV][6];
   Keuzes=KeuzeString.split("\t");
   KN=Keuzes.length;
   for(j=1;j<=VraagArray[NV][2];j++){
    Valueassigned=false;
    for(k=0;k<KN;k++){
     thisobj=show.document.forms[0].elements[KN*(j-1)+k];
     if(thisobj.checked){
      DitAntwoord+=thisobj.value;
      Valueassigned=true;
     }
    }
    if(!Valueassigned)DitAntwoord+='.';
   }
   while(antwoordstack[LoopLevel+1].length>0)antwoordstack[LoopLevel+1].pop();
   for(w=KN;w>0;w--)pushantwoord(DitAntwoord.indexOf(w)+1);
   VraagArray[NV][7]=DitAntwoord;
   break;
  }
  case "matrix":
  case "ranking":{
   KeuzeString=VraagArray[NV][6];
   Keuzes=KeuzeString.split("\t");
   KN=Keuzes.length;
   for(j=1;j<=VraagArray[NV][2];j++){
    Valueassigned=false;
    for(k=0;k<KN;k++){
     thisobj=show.document.forms[0].elements[KN*(j-1)+k];
     if(thisobj.checked){
      DitAntwoord+=thisobj.value; 
      Valueassigned=true;
     }
    }
    if(!Valueassigned)DitAntwoord+='.';
   }
   break;
  }
  case "semdif":{
   KN=VraagArray[NV][3];
   for(j=1;j<=VraagArray[NV][2];j++)for(k=0;k<KN;k++){
    thisobj=show.document.forms[0].elements[KN*(j-1)+k];
    if(thisobj.checked)DitAntwoord+=thisobj.value; 
   }
   break;
  }
  case "text":{
   DitAntwoord=cleanstring(show.document.forms[0].Antwoord.value);
   break;
  }
  case "multitext":{
   for(j=1;j<=VraagArray[NV][2];j++)DitAntwoord+=Separator+cleanstring(show.document.getElementById("Namelijk"+j).value);
   break;
  }
 }
 gotovraag(NV);
 switch(VraagArray[NV][0]){
  case "radio":for(j=1;j<=VraagArray[NV][2];j++)if(AntwoordArray[NV][j][2]>0){
    c=cleanstring(show.document.getElementById("Namelijk"+j).value);
    DitAntwoord+=Separator+(VraagArray[NV][2]==1?(show.document.forms[0].Antwoord.checked?c:"."):(show.document.forms[0].Antwoord[j-1].checked?c:"."));
   }
   break;
  case "checkbox":for(j=1;j<=VraagArray[NV][2];j++)if(AntwoordArray[NV][j][2]>0){
    c=cleanstring(show.document.getElementById("Namelijk"+j).value);
    DitAntwoord+=Separator+(VraagArray[NV][2]==1?(show.document.forms[0].Antwoord.checked?c:"."):(show.document.forms[0].Antwoord[j-1].checked?c:"."));
   }
   break;
  case "loopcheckbox":for(j=1;j<=VraagArray[NV][2];j++)if(AntwoordArray[NV][j][2]>0){
    c=cleanstring(show.document.getElementById("Namelijk"+j).value);
    AntwoordArray[NV][j][4]=(c=="."?"":c);
    DitAntwoord+=Separator+(VraagArray[NV][2]==1?(show.document.forms[0].Antwoord.checked?c:"."):(show.document.forms[0].Antwoord[j-1].checked?c:"."));
   }
   VraagArray[NV][7]=DitAntwoord;
   break;
  case "remark":
  case "multitext":
   break;
  default: for(j=1;j<=VraagArray[NV][2];j++)if(AntwoordArray[NV][j][2]>0)DitAntwoord+=Separator+"."; /* Backward compatibility */ 
 }
 boom[LoopLevel][boomvraag[LoopLevel]][0]=DitAntwoord;
 boom[LoopLevel][boomvraag[LoopLevel]][1]=1;
 boomvraag[LoopLevel]++;
 if(VraagArray[NV][0]=="loopcheckbox"||VraagArray[NV][0]=="loopranking")pushloop(NV);
 StelVraag(VV);
}

function AantalAntwoorden(a){
 var KG=0;
 switch(VraagArray[a][2]){
  case 0:KG=1;break;
  case 1:if(show.document.forms[0].Antwoord.checked)KG=1;break;
  default:for(r=0;r<VraagArray[a][2];r++)if(show.document.forms[0].Antwoord[r].checked)KG+=1;
 }
 return KG;
}

function cleanstring(d){
 b=replace(d,"\n"," ");
 c=replace(b,"\r","");
 b=replace(c,"\t"," ");
 c=replace(b,Separator,"");
 if(c=="")return "."; else return c;
}

function IsNumeric(sText,num){
 ValidChars="0123456789,-";
 if(ValidChars.indexOf(sText.charAt(0))==-1)return false;
 ValidChars="0123456789,";
 for(i=1;i<sText.length;i++)if(ValidChars.indexOf(sText.charAt(i))==-1)return false;
 na=num.split("\t");
 nn=sText.replace(",",".")*1;
 if(na[0]!="")if(nn<na[0]*1)return false;
 if(na[1]!="")if(nn>na[1]*1)return false;
 if(na[2]!=""){
  decs=sText.split(',');
  if(decs[1])if(decs[1].length>na[2]*1)return false;
 }
 return true;
}

function comparetoformat(format,inp){
 datecheck=false;
 for(i=0;i<format.length;i++){
  switch(format.charAt(i)){
   case "X": if(inp.charAt(i).toUpperCase()!=inp.charAt(i))return false;
             break;
   case "a": ch=inp.charAt(i);
             if((ch<"A"||(ch>"Z"&&ch<"a")||ch>"z")&&(ch!="."&&ch!=" "&&ch!=""))return false;
             break;
   case "A": if(inp.charAt(i)<"A"||inp.charAt(i)>"Z")return false;
             break;
   case "h": if(i==0)maxcode="2";
             else{
              if(format.charAt(i-1)!="h")maxcode="2";
              else{
               if(inp.charAt(i-1)=="0"||inp.charAt(i-1)=="1"||inp.charAt(i-1)==" ")maxcode="9";
               else maxcode="3";
              }
             }
             if((inp.charAt(i)<"0"||inp.charAt(i)>maxcode)&&!(maxcode=="2"&&inp.charAt(i)==" "))return false;
             break;
   case "d": if(i==0)maxcode="3";
             else{
              if(format.charAt(i-1)!="d")maxcode="3";
              else{
               if(inp.charAt(i-1)=="0"||inp.charAt(i-1)=="1"||inp.charAt(i-1)=="2"||inp.charAt(i-1)==" ")maxcode="9";
               else maxcode="1";
              }
             }
             if((inp.charAt(i)<"0"||inp.charAt(i)>maxcode)&&!(maxcode=="3"&&inp.charAt(i)==" "))return false;
             datecheck=true;
             break;
   case "m": if(i==0)maxcode="1";
             else{
              if(format.charAt(i-1)!="m")maxcode="1";
              else{
               if(inp.charAt(i-1)=="0"||inp.charAt(i-1)==" ")maxcode="9";
               else maxcode="2";
              }
             }
             if((inp.charAt(i)<"0"||inp.charAt(i)>maxcode)&&!(maxcode=="1"&&inp.charAt(i)==" "))return false;
             datecheck=true;
             break;
   case "1": 
   case "2": 
   case "3": 
   case "4": 
   case "5": 
   case "6": 
   case "7": 
   case "8": 
   case "9": if(inp.charAt(i)<"0"||inp.charAt(i)>format.charAt(i))return false;
             break;
   default: break;
  }
 }
 if(datecheck){
  dag="";
  maand="";
  for(i=0;i<format.length;i++){
   switch(format.charAt(i)){
    case "d": dag+=inp.charAt(i);break;
    case "m": maand+=inp.charAt(i);break;
    default: break;
   }
  }
  if((maand==" 4"||maand==" 6"||maand==" 9"||maand=="04"||maand=="06"||maand=="09"||maand=="11")&&dag>"30")return false;
  if((maand==" 2"||maand=="02")&&dag>"29")return false;
 }
 return true;
}

function Valideer(a,c,b,th){
 switch(VraagArray[a][0]){
  case "dropdown":{
   if(show.document.getElementById('dropdownbox').value!='0')SlaAntwoordOp(a);
   else{
    alerthtml(Messages[Language]["GeenAntwoordGegeven"]);
    th.disabled=false;
   }
   break;
  }
  case "radio":{
   if(AantalAntwoorden(a)==0){
    alerthtml(Messages[Language]["GeenAntwoordGegeven"]);
    th.disabled=false;
   }else{
    otherok=true;
    for(j=1;j<=VraagArray[a][2];j++)if(AntwoordArray[a][j][2]>0){
     cc=(VraagArray[a][2]==1?show.document.forms[0].Antwoord.checked:show.document.forms[0].Antwoord[j-1].checked);
     if(cc)c=cleanstring(show.document.getElementById("Namelijk"+j).value);else c="";
     if(cc&&(c=="."))otherok=false;
     else if(cc&&AntwoordArray[a][j][2]=="2"){
      formatok=comparetoformat(AntwoordArray[a][j][3],cleanstring(show.document.getElementById("Namelijk"+j).value));
      if(!formatok)show.document.getElementById("Namelijk"+j).value="";
      if(otherok)otherok=formatok;
     }else if(cc&&AntwoordArray[a][j][2]=="3"){
      formatok=IsNumeric(cleanstring(show.document.getElementById("Namelijk"+j).value),AntwoordArray[a][j][3]);
      if(!formatok)show.document.getElementById("Namelijk"+j).value="";
      if(otherok)otherok=formatok;
     }
    }
    if(otherok)SlaAntwoordOp(a); else{
     alerthtml(Messages[Language]["GeenAntwoordGegeven"]);
     th.disabled=false;
    }
   }
   break;
  }
  case "constantsum":{
   if(show.document.getElementById('constantsumleft').innerHTML=='0')SlaAntwoordOp(a);
   else{
    alerthtml(Messages[Language]["ConstantsumNietNul"]);
    th.disabled=false;
   }
   break;
  }
  case "checkmatrix":{
   KeuzeString=VraagArray[a][6];
   Keuzes=KeuzeString.split("\t");
   KN=Keuzes.length+1;
   KG=0;KR=0;
   for(j=1;j<=VraagArray[a][2];j++){
    Checkvar='Check'+j;
    if(show.document.getElementById(Checkvar).checked){
     KR++;
     for(k=1;k<KN;k++){
      thisobj=show.document.forms[0].elements[KN*(j-1)+k];
      if(thisobj.checked)KG++; 
     }
    }
   }
   if(KR==KG)SlaAntwoordOp(a);
   else{
    alerthtml(Messages[Language]["NietAllesBeantwoord"]);
    th.disabled=false;
   }
   break;
  }
  case "matrix":{
   KeuzeString=VraagArray[a][6];
   Keuzes=KeuzeString.split("\t");
   KN=Keuzes.length;
   KG=0;
   for(j=1;j<=VraagArray[a][2];j++){
    for(k=0;k<KN;k++){
     thisobj=show.document.forms[0].elements[KN*(j-1)+k];
     if(thisobj.checked)KG+=1; 
    }
   }
   if(VraagArray[a][2]==KG)SlaAntwoordOp(a);
   else{
    alerthtml(Messages[Language]["NietAllesBeantwoord"]);
    th.disabled=false;
   }
   break;
  }
  case "loopranking":
  case "ranking":{
   KeuzeString=VraagArray[a][6];
   Keuzes=KeuzeString.split("\t");
   KN=Keuzes.length;
   KG=0;
   for(j=1;j<=VraagArray[a][2];j++){
    for(k=0;k<KN;k++){
     thisobj=show.document.forms[0].elements[KN*(j-1)+k];
     if(thisobj.checked)KG+=1; 
    }
   }
   if(KN==KG||VraagArray[a][2]==KG)SlaAntwoordOp(a);
   else{
    alerthtml(Messages[Language]["AntwoordNietToegekend"]);
    th.disabled=false;
   }
   break;
  }
  case "semdif":{
   KN=VraagArray[a][3];
   KG=0;
   for(j=1;j<=VraagArray[a][2];j++){
    for(k=0;k<KN;k++){
     thisobj=show.document.forms[0].elements[KN*(j-1)+k];
     if(thisobj.checked)KG+=1; 
    }
   }
   if(VraagArray[a][2]==KG)SlaAntwoordOp(a);
   else{
    alerthtml(Messages[Language]["NietAllesBeantwoord"]);
    th.disabled=false;
   }
   break;
  }
  case "loopcheckbox":
  case "checkbox":{
   if(AantalAntwoorden(a)>c){
    alerthtml(Messages[Language]["MaximumOverschreden"][0]+c+Messages[Language]["MaximumOverschreden"][1]);
    th.disabled=false;
   }else if(AantalAntwoorden(a)<b){
    alerthtml(Messages[Language]["MinimumNietGeantwoord"][0]+b+Messages[Language]["MinimumNietGeantwoord"][1]);
    th.disabled=false;
   }else{
    otherok=true;
    for(j=1;j<=VraagArray[a][2];j++)if(AntwoordArray[a][j][2]>0){
     cc=(VraagArray[a][2]==1?show.document.forms[0].Antwoord.checked:show.document.forms[0].Antwoord[j-1].checked);
     if(cc)c=cleanstring(show.document.getElementById("Namelijk"+j).value);else c="";
     if(cc&&(c=="."))otherok=false;
     else if(cc&&AntwoordArray[a][j][2]=="2"){
      formatok=comparetoformat(AntwoordArray[a][j][3],cleanstring(show.document.getElementById("Namelijk"+j).value));
      if(!formatok)show.document.getElementById("Namelijk"+j).value="";
      if(otherok)otherok=formatok;
     }else if(cc&&AntwoordArray[a][j][2]=="3"){
      formatok=IsNumeric(cleanstring(show.document.getElementById("Namelijk"+j).value),AntwoordArray[a][j][3]);
      if(!formatok)show.document.getElementById("Namelijk"+j).value="";
      if(otherok)otherok=formatok;
     }
    }
    if(otherok)SlaAntwoordOp(a); else{
     alerthtml(Messages[Language]["GeenAntwoordGegeven"]);
     th.disabled=false;
    }
   }
   break;
  }
  case "text":{
   if(VraagArray[a][10]==1){
    if(cleanstring(show.document.forms[0].Antwoord.value)=="."){
     alerthtml(Messages[Language]["GeenAntwoordGegeven"]);
     th.disabled=false;
    }else SlaAntwoordOp(a);
   }else SlaAntwoordOp(a);
   break;
  }
  case "multitext":{
   if(VraagArray[a][10]==1){
    otherok=true;
    for(j=1;j<=VraagArray[a][2];j++){
     if(cleanstring(show.document.getElementById("Namelijk"+j).value)==".")otherok=false;
     else if(AntwoordArray[a][j][2]=="2"){
      formatok=comparetoformat(AntwoordArray[a][j][3],cleanstring(show.document.getElementById("Namelijk"+j).value));
      if(!formatok)show.document.getElementById("Namelijk"+j).value="";
      if(otherok)otherok=formatok;
     }else if(AntwoordArray[a][j][2]=="3"){
      formatok=IsNumeric(cleanstring(show.document.getElementById("Namelijk"+j).value),AntwoordArray[a][j][3]);
      if(!formatok)show.document.getElementById("Namelijk"+j).value="";
      if(otherok)otherok=formatok;
     }
    }
    if(otherok)SlaAntwoordOp(a);
    else{
     alerthtml(Messages[Language]["GeenAntwoordGegeven"]);
     th.disabled=false;
    }
   }else SlaAntwoordOp(a);
   break;
  }
  default:SlaAntwoordOp(a);
 }
}

function nr2code(a){
 var d='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
 if(a>61)return nil;
 else return d.substr(a,1);
}

function emptyrow(deze,kolommen,dezerij){
 for(ii=1;ii<=kolommen;ii++){
  thisobj=show.document.forms[0].elements[(dezerij-1)*kolommen+ii-1];
  if(thisobj!=deze&&thisobj.checked)thisobj.checked=false;
 }
}

function gethash(ResponsString){
 Items=ResponsString.split(Separator);
 NrItems=Items.length;
 Hashtotal=0;
 for(x=0;x<NrItems;x++){
  Str=Items[x];
  n=Str.length;
  ThisHash=0;
  for(r=0;r<n;r++){
   XV=Str.charCodeAt(r);
   XVXV=(XV==32?0:XV);
   ThisHash+=XVXV;
  }
  Hashtotal+=ThisHash*x;
 }
 return Hashtotal;
}

function getanswer(){
 return ""+boom[LoopLevel][boomvraag[LoopLevel]][0];
}

function LoopIt(what){
 if(LoopLevel>0){
  for(y=1;y<=LoopLevel;y++)what=what.replace(new RegExp('\\[X'+y+'\\]',"gi"),LoopAntwoordTekst[y]);
  what=what.replace(new RegExp('\\[X\\]',"gi"),LoopAntwoordTekst[1]);
 }
 return what;
}

function checknum(num,inp,key){
 if(num==""||key==13||key==37||key==39||key==9||key==8)return key;
 else {
  if(key>=48&&key<=57){
   decs=num.split("\t");
   getal=inp.value.split(",");
   if(getal[1])if(getal[1].length>=decs[2])return false;
   return key;
  }
  if(key==44)return key;
  if(key==45){
   if(inp.selectionStart==null){
    IE=true;
    var temptext=document.selection.createRange();
    temptext.moveEnd('character', inp.value.length);
    if(temptext.text=='')loc=inp.value.length;
    else loc=inp.value.lastIndexOf(temptext.text);
   }else loc=inp.selectionStart;
   if(loc==0)return key;
  }
  return false;
 }
}

function putinformat(format,inp,key){
 if(format==""||key==13||key==37||key==39||key==9||key==8)return key;
 else {
  IE=false;
  if(inp.selectionStart==null){
   IE=true;
   var temptext=document.selection.createRange();
   temptext.moveEnd('character', inp.value.length);
   if(temptext.text=='')loc=inp.value.length;
   else loc=inp.value.lastIndexOf(temptext.text);
  }else loc=inp.selectionStart;
  var filter = /^([aAxXhdm1-9])/; 
  while(loc<format.length&&format.charAt(loc)!="A"&&format.charAt(loc)!="9"&&!(filter.test(format.charAt(loc))))loc++;
  output=format.replace(/[aAxXhdm123456789]/gi," ");
  input=inp.value;
  n=input.length;
  out="";
  move=false;
  for(i=0;i<format.length;i++){
   switch(format.charAt(i)){
    case "x": if(i==loc){
               out+=String.fromCharCode(key);
               move=true;
              }else out+=(i>n?output.charAt(i):input.charAt(i));
              break;
    case "X": if(i==loc){
               out+=String.fromCharCode(key).toUpperCase();
               move=true;
              }else out+=(i>n?output.charAt(i).toUpperCase():input.charAt(i).toUpperCase());
              break;
    case "a": if(i==loc){
               if(key>=65&&key<=90||key>=97&&key<=122||key==32||key==46){
                out+=String.fromCharCode(key);
                move=true;
               }else out+=(i>n?output.charAt(i):input.charAt(i));
              }else out+=(i>n?output.charAt(i):input.charAt(i));
              break;
    case "A": if(i==loc){
               if(key>=65&&key<=90||key>=97&&key<=122){
                out+=String.fromCharCode(key).toUpperCase();
                move=true;
               }else out+=(i>n?output.charAt(i).toUpperCase():input.charAt(i).toUpperCase());
              }else out+=(i>n?output.charAt(i).toUpperCase():input.charAt(i).toUpperCase());
              break;
    case "h": if(i==loc){
               if(i==0)maxcode=50;
               else{
                if(format.charAt(i-1)!="h")maxcode=50;
                else{
                 if(input.charAt(i-1)=="0"||input.charAt(i-1)=="1"||input.charAt(i-1)==" ")maxcode=57;
                 else maxcode=51;
                }
               }
               if((key>=48&&key<=maxcode)||(maxcode==50&&key==32)){
                out+=String.fromCharCode(key);
                move=true;
               }else out+=(input.charAt(i)?input.charAt(i):output.charAt(i));
              }else{
               if(input.charAt(i)>='0'&&input.charAt(i)<='9')out+=input.charAt(i);
               else out+=output.charAt(i);
              }
              break;
    case "d": if(i==loc){
               if(i==0)maxcode=51;
               else{
                if(format.charAt(i-1)!="d")maxcode=51;
                else{
                 if(input.charAt(i-1)=="0"||input.charAt(i-1)=="1"||input.charAt(i-1)=="2"||input.charAt(i-1)==" ")maxcode=57;
                 else maxcode=49;
                }
               }
               if((key>=48&&key<=maxcode)||(maxcode==51&&key==32)){
                out+=String.fromCharCode(key);
                move=true;
               }else out+=(input.charAt(i)?input.charAt(i):output.charAt(i));
              }else{
               if(input.charAt(i)>='0'&&input.charAt(i)<='9')out+=input.charAt(i);
               else out+=output.charAt(i);
              }
              break;
    case "m": if(i==loc){
               if(i==0)maxcode=49;
               else{
                if(format.charAt(i-1)!="m")maxcode=49;
                else{
                 if(input.charAt(i-1)=="0"||input.charAt(i-1)==" ")maxcode=57;
                 else maxcode=50;
                }
               }
               if((key>=48&&key<=maxcode)||(maxcode==49&&key==32)){
                out+=String.fromCharCode(key);
                move=true;
               }else out+=(input.charAt(i)?input.charAt(i):output.charAt(i));
              }else{
               if(input.charAt(i)>='0'&&input.charAt(i)<='9')out+=input.charAt(i);
               else out+=output.charAt(i);
              }
              break;
    case "1": 
    case "2": 
    case "3": 
    case "4": 
    case "5": 
    case "6": 
    case "7": 
    case "8": 
    case "9": if(i==loc){
               maxcode=format.charAt(i)*1+48;
               if(key>=48&&key<=maxcode){
                out+=String.fromCharCode(key);
                move=true;
               }else out+=(input.charAt(i)?input.charAt(i):output.charAt(i));
              }else{
               if(input.charAt(i)>='0'&&input.charAt(i)<='9')out+=input.charAt(i);
               else out+=output.charAt(i);
              }
              break;
    default: out+=output.charAt(i);
   }
  }
  inp.value=out;
  if(IE){
   temptext.moveStart('character',-inp.value.length);
   temptext.moveEnd('character',-inp.value.length);
   temptext.moveStart('character',loc+(move?1:0));
   temptext.moveEnd('character',0);
   temptext.select();
  } else inp.selectionStart=inp.selectionEnd=loc+(move?1:0);
  return false;
 }
}

function StelVraag(i){
 if(LoopLevel>0){
  boomvraagantwoordnummer[LoopLevel]=peekantwoord();
  if(boomvraagantwoordnummer[LoopLevel]){
   boom[LoopLevel]=boomvraagantwoordlijst[LoopLevel][peekantwoord()-1]; 
   LoopAntwoordTekst[LoopLevel]=AntwoordArray[peekloop()-1][peekantwoord()][4];
  }else{
   while(VraagArray[i][0]!="endloop")i++;
   poploop();
   i=VraagArray[i][4];
  }
 }
 push(i);
 gotovraag(i);
 if((i!=0)&&(i<AQ)&&(i<=MaxVragen)){
  switch(VraagArray[i][0]){
   case "endloop":
    popantwoord();
    if(peekantwoord())StelVraag(peekloop());else{poploop();StelVraag(VraagArray[i][4]);}
    break;
   case "loopcheckbox":
   case "loopranking": if(VraagArray[i][5]==2){
    if(runcounter[LoopLevel]!=0){
     DitAntwoord=VraagArray[i][7];
     boom[LoopLevel][boomvraag[LoopLevel]][0]=DitAntwoord;
     boom[LoopLevel][boomvraag[LoopLevel]][1]=1;
     while(antwoordstack[LoopLevel+1].length>0)antwoordstack[LoopLevel+1].pop();
     if(VraagArray[i][0]=="loopcheckbox"){
      for(r=VraagArray[i][2]-1;r>=0;r--)if(DitAntwoord.substr(r,1)=="1")pushantwoord([r+1]);
     }else{
      KeuzeString=VraagArray[i][6];
      KN=KeuzeString.split("\t");
      for(w=KN.length+1;w>0;w--)pushantwoord(DitAntwoord.indexOf(w)+1);
     }
     boomvraag[LoopLevel]++;
     pushloop(i);
     StelVraag(VraagArray[i][4]);
     break;
    }
   }
   default: with(show.document){
    close();
    open();
    write(Header);
    VraagTekst=LoopIt(VraagArray[i][1]);
    if(LoopLevel>0)boom[LoopLevel][boomvraag[LoopLevel]][1]=0;
    write('<body');
    switch(VraagArray[i][0]){
     case "text":write(' onload="document.forms[0].Antwoord.focus();"');break;
     case "multitext":write(' onload="document.getElementById('+"'Namelijk1'"+').focus();"');break;
    }
    write('>'+TopDivContent+'<p>');
    write('<form id="Vraag"><table><col /><col /><tr><td>');
    write(VraagTekst+'</td><td style="text-align:right;vertical-align:top">');
    if(VoortgangNummering)write('('+i+'/'+(AQ-1)+')');
    write('</td></tr></table><br />');
    switch(VraagArray[i][0]){
     case "text":{
      write('<textarea name="Antwoord" rows=5 style="width:100%" wrap>');
      VorigAntwoord=getanswer(i);
      if(VorigAntwoord!=".")write(VorigAntwoord);
      write('</textarea><br /><br />');
      break;
     }
     case "checkmatrix":{
      if(Matrixvraag>=1){
       KeuzeString=VraagArray[i][6];
       Keuzes=KeuzeString.split("\t");
       KN=Keuzes.length;
       write('<table style="width:auto"><col /><col />');
       for(k=1;k<=KN;k++)write('<col />');
       write('<tr><td></td><td></td>');
       for(k=1;k<=KN;k++)write('<td style="text-align:center;padding-left:10px">'+Keuzes[k-1]+'</td>');
       write('</tr>');
       for(j=1;j<=VraagArray[i][2];j++){
        if(Dividers>0&&j>1&&(j%Dividers==1))write('<tr><td colspan="'+(KN+1)+'">&nbsp;</td></tr>');
        write('<tr><td>'+LoopIt(AntwoordArray[i][j][0])+'</td><td><input type="checkbox" id="Check'+j+'"');
        for(k=1;k<=KN;k++){
         as=getanswer(i);
         if(as!="."){if(as.substr(j-1,1)!=".")write(' checked="checked"')}
        }
        write(' onclick="if(!this.checked){ta=document.getElementsByName('+"'Antwoord"+j+"');for(tac=0;tac<ta.length;tac++)ta[tac].checked=false"+'}"></td>');
        for(k=1;k<=KN;k++){
         kk=nr2code(k);
         write('<td style="text-align:center"><input type="radio" name="Antwoord'+j+'" value="'+kk+'"');
         as=getanswer(i);
         if(as!="."){if(as.substr(j-1,1)==kk)write(' checked="checked"')}
         write(' onclick="document.getElementById('+"'Check"+j+"').checked='checked'"+'"></td>');
        }
        write('</tr>');
       }
       write('</table><br />');
      }
      break;
     }
     case "matrix":{
      if(Matrixvraag>=1){
       KeuzeString=VraagArray[i][6];
       Keuzes=KeuzeString.split("\t");
       KN=Keuzes.length;
       write('<table style="width:auto"><col />');
       for(k=1;k<=KN;k++)write('<col />');
       write('<tr><td></td>');
       for(k=1;k<=KN;k++)write('<td style="text-align:center;padding-left:10px">'+Keuzes[k-1]+'</td>');
       write('</tr>');
       for(j=1;j<=VraagArray[i][2];j++){
        if(Dividers>0&&j>1&&(j%Dividers==1))write('<tr><td colspan="'+(KN+1)+'">&nbsp;</td></tr>');
        write('<tr><td>'+LoopIt(AntwoordArray[i][j][0])+'</td>');
        for(k=1;k<=KN;k++){
         kk=nr2code(k);
         write('<td style="text-align:center"><input type="radio" name="Antwoord'+j+'" value="'+kk+'"');
         as=getanswer(i);
         if(as!="."){if(as.substr(j-1,1)==kk)write(' checked="checked"')}
         write('></td>');
        }
        write('</tr>');
       }
       write('</table><br />');
      }
      break;
     }
     case "loopranking":
     case "ranking":{
      KeuzeString=VraagArray[i][6];
      Keuzes=KeuzeString.split("\t");
      KN=Keuzes.length;
      write('<table style="width:auto"><col />');
      for(k=1;k<=KN;k++)write('<col />');
      write('<tr><td></td>');
      for(k=1;k<=KN;k++)write('<td style="text-align:center;padding-left:10px">'+Keuzes[k-1]+'</td>');
      write('</tr>');
      for(j=1;j<=VraagArray[i][2];j++){
       if(Dividers>0&&j>1&&(j%Dividers==1))write('<tr><td colspan="'+(KN+1)+'">&nbsp;</td></tr>');
       write('<tr><td>'+LoopIt(AntwoordArray[i][j][0])+'</td>');
       for(k=1;k<=KN;k++){
        kk=nr2code(k);
        write('<td style="text-align:center"><input type="radio" name="Antwoord'+k+'" value="'+kk+'" onclick="parent.emptyrow(this,'+KN+','+j+')"');
        as=getanswer(i);
        if(as!="."){if(as.substr(j-1,1)==kk)write(' checked="checked"')}
        write('></td>');
       }
       write('</tr>');
      }
      write('</table><br />');
      break;
     }
     case "semdif":{
      KN=VraagArray[i][3];
      write('<table style="width:auto"><col /><col />');
      for(k=1;k<=KN;k++)write('<col />');
      for(j=1;j<=VraagArray[i][2];j++){
       Antwoordstring=LoopIt(AntwoordArray[i][j][0]);
       Antwoordset=Antwoordstring.split("\t");
       if(Dividers>0&&j>1&&(j%Dividers==1))write('<tr><td colspan="'+(KN+1)+'">&nbsp;</td></tr>');
       write('<tr><td style="text-align:right">'+Antwoordset[0]+'</td>');
       for(k=1;k<=KN;k++){
         kk=nr2code(k);
         write('<td style="text-align:center"><input type="radio" name="Antwoord'+j+'" value="'+kk+'"');
         as=getanswer(i);
         if(as!="."){if(as.substr(j-1,1)==kk)write(' checked="checked"')}
        write('></td>');
       }
       write('<td>'+(Antwoordset[1]?Antwoordset[1]:"")+'</td></tr>');
      }
      write('</table><br />');
      break;
     }
     case "constantsum":{
      write('<table style="width:auto"><col style="width:1.5em" /><col style="width:auto" />');
      as=getanswer();
      if(as.indexOf(Separator)>0){
       ast=as.split(Separator);
      }else{
       ast=new Array();
       for(j=0;j<VraagArray[i][2];j++)ast[j]=VraagArray[i][9];
      }
      cst=0;
      for(j=1;j<=VraagArray[i][2];j++){
       write('<tr><td><select id="constantsum'+j+'" onchange="parent.calcconstantsum('+VraagArray[i][2]+','+VraagArray[i][3]+')">');
       for(k=VraagArray[i][8];k<=VraagArray[i][6];k++){
        write("<option value='"+k+"'");
        if(ast[j-1]==k){
         write(" selected='selected'");
         cst+=k;
        }
        write(">"+k+"</option>");
       }
       write(' /></select></td>');
       write("<td>"+LoopIt(AntwoordArray[i][j][0])+"</td></tr>");
      }
      write('</table><br />');
      write('<br /><span id="constantsumleft"/>');
      write(VraagArray[i][3]-cst);
      write('</span> '+Messages[Language]["ConstantsumVerdelen"]+'<br /><br />');
      break;
     }
     case "dropdown":{
      as=getanswer();
      write("<select id='dropdownbox' onselect='document.forms[0].SluitVraag.focus();'><option value='0'></option>");
      for(j=1;j<=VraagArray[i][2];j++){
       write("<option value='"+j+"'"+(as==j?" selected='selected'":"")+">");
       write(LoopIt(AntwoordArray[i][j][0]));
       write("</option>");
      }
      write("</select><br /><br />");
      break;
     }
     case "multitext":{
      as=getanswer();
      if(as.indexOf(Separator)>-1)ast=as.split(Separator);else ast=new Array(as);
      write('<table style="width:auto"><col /><col />');
      for(j=1;j<=VraagArray[i][2];j++){
       write("<tr><td>"+LoopIt(AntwoordArray[i][j][0])+"</td><td>");
       write('&nbsp;<input type="text" id="Namelijk'+j+'" onkeypress="var keycode=(event.which?event.which:event.keyCode);if(keycode==13){'+(j==VraagArray[i][2]?'document.forms[0].SluitVraag.focus();':'document.forms[0].Namelijk'+(j+1)+'.focus();')+'return (keycode!=13);}');
       if(AntwoordArray[i][j][2]==2)write('else return parent.putinformat('+"'"+AntwoordArray[i][j][3]+"'"+',this,keycode)" onfocus="if(selectionStart==null){inputtext=document.selection.createRange();inputtext.move('+"'character'"+',0);}else selectionStart=selectionEnd=0;');
       if(AntwoordArray[i][j][2]==3)write('else return parent.checknum('+"'"+AntwoordArray[i][j][3]+"'"+',this,keycode);');
       write('"');
       if(typeof(ast[j])!="undefined"&&ast[j]!=".")write(' value="'+ast[j]+'"');
       else if(AntwoordArray[i][j][2]==2)write(' value="'+AntwoordArray[i][j][3].replace(/[aAxXhdm123456789]/gi," ")+'"');
       write(' /></td></tr>');
      }
      write('</table><br />');
      break;
     }
     case "loopcheckbox":{
      write('<table style="width:auto"><col style="width:1.5em" /><col style="width:auto" /><col style="width:auto" />');
      as=getanswer();
      if(as.indexOf(Separator)>0){
       namelijkaanwezig=true;
       ast=as.split(Separator);
       astc=0;
       as=ast[0];
      }else namelijkaanwezig=false;
      for(j=1;j<=VraagArray[i][2];j++){
       write('<tr><td><input type="checkbox" name="Antwoord" id="Antwoord'+j+'"');
       if(as.substr(j-1,1)==1)write(' checked="checked"');
       write(' onclick="');
       if(AntwoordArray[i][j][2]==0)write('document.forms[0].SluitVraag.focus();');
       write('"></td><td onclick="if(!document.getElementById('+"'Antwoord"+j+"'"+').checked)document.getElementById('+"'Antwoord"+j+"'"+').click()"');
       if(AntwoordArray[i][j][2]==0)write(' colspan="2"');
       write('>'+LoopIt(AntwoordArray[i][j][0]));
       if(AntwoordArray[i][j][2]>0){
        write('</td><td onclick="if(!document.getElementById('+"'Antwoord"+j+"'"+').checked)document.getElementById('+"'Antwoord"+j+"'"+').click()"><input type="text" id="Namelijk'+j+'" onkeypress="var keycode=(event.which?event.which:event.keyCode);if(keycode==13)return false;');
        if(AntwoordArray[i][j][2]==2)write('else return parent.putinformat('+"'"+AntwoordArray[i][j][3]+"'"+',this,keycode)" onfocus="if(selectionStart==null){inputtext=document.selection.createRange();inputtext.move('+"'character'"+',0);}else selectionStart=selectionEnd=0;');
        if(AntwoordArray[i][j][2]==3)write('else return parent.checknum('+"'"+AntwoordArray[i][j][3]+"'"+',this,keycode);');
        write('"');
        if(namelijkaanwezig){
         astc++;
         if(ast[astc]!=".")write(' value="'+ast[astc]+'"');
         else if(AntwoordArray[i][j][2]==2)write(' value="'+AntwoordArray[i][j][3].replace(/[aAxXhdm123456789]/gi," ")+'"');
        }else if(AntwoordArray[i][j][2]==2)write(' value="'+AntwoordArray[i][j][3].replace(/[aAxXhdm123456789]/gi," ")+'"');
        write(' />');
       }
       write('</td></tr>');
      }
      write('</table><br />');
      break;
     }
     default:{
      write('<table style="width:auto"><col style="width:1.5em" /><col style="width:auto" /><col style="width:auto" />');
      as=getanswer();
      namelijkaanwezig=true;
      if(as.indexOf(Separator)>0){
       ast=as.split(Separator);
       astc=0;
       as=ast[0];
      }else namelijkaanwezig=false;
      for(j=1;j<=VraagArray[i][2];j++){
       write('<tr><td><input type='+VraagArray[i][0]+' name="Antwoord" id="Antwoord'+j+'"');
       if(as!="."){
        switch(VraagArray[i][0]){
         case "radio":if(as==j)write(' checked="checked"');break;
         case "checkbox":if(as.substr(j-1,1)==1)write(' checked="checked"');break;
        }
       }
       write(' onclick="');
       if(AntwoordArray[i][j][2]==0)write('document.forms[0].SluitVraag.focus();');else write('document.getElementById('+"'Namelijk"+j+"'"+').focus()');
       write('"></td><td onclick="if(!document.getElementById('+"'Antwoord"+j+"'"+').checked)document.getElementById('+"'Antwoord"+j+"'"+').click()"');
       if(AntwoordArray[i][j][2]==0)write(' colspan="2"');
       write('>'+LoopIt(AntwoordArray[i][j][0]));
       if(AntwoordArray[i][j][2]>0){
        write('</td><td onclick="if(!document.getElementById('+"'Antwoord"+j+"'"+').checked)document.getElementById('+"'Antwoord"+j+"'"+').click()"><input type="text" id="Namelijk'+j+'" onkeypress="var keycode=(event.which?event.which:event.keyCode);if(keycode==13)return false;');
        if(AntwoordArray[i][j][2]==2)write('else return parent.putinformat('+"'"+AntwoordArray[i][j][3]+"'"+',this,keycode)" onfocus="if(selectionStart==null){inputtext=document.selection.createRange();inputtext.move('+"'character'"+',0);}else selectionStart=selectionEnd=0;');
        if(AntwoordArray[i][j][2]==3)write('else return parent.checknum('+"'"+AntwoordArray[i][j][3]+"'"+',this,keycode);');
        write('"');
        if(namelijkaanwezig){
         astc++;
         if(ast[astc]!=".")write(' value="'+ast[astc]+'"');
         else if(AntwoordArray[i][j][2]==2)write(' value="'+AntwoordArray[i][j][3].replace(/[aAxXhdm123456789]/gi," ")+'"');
        }else if(AntwoordArray[i][j][2]==2)write(' value="'+AntwoordArray[i][j][3].replace(/[aAxXhdm123456789]/gi," ")+'"');
        write(' />');
       }
       write('</td></tr>');
      }
      write('</table><br />');
     }
    }
    if(TerugTekst!="" && i>1){
     write('<input type="button" class="b" name="Terug" value="');
     write(TerugTekst);
     writeln('" onclick="this.disabled=true;vs=parent.pop();parent.StelVraag(vs);">');
    }
    write('<input type="button" class="b" name="SluitVraag" value="');
    write(VerderTekst);
    writeln('" onclick="this.disabled=true;parent.Valideer('+i+','+VraagArray[i][3]+','+VraagArray[i][8]+',this)">');
    write('</form>');
    write('<br /></p>'+BottomDivContent);
    if(TestRunning)write('<p>&nbsp;</p><form action="account.php" method="post" target="_top"><input type="hidden" name="enquete" value="'+EnqueteNummer+'"><input type="hidden" name="actie" value="2" /><input type="button" value="'+Messages[Language]["TerugAccount"]+'" onclick="submit()" /></form>');
    write('</body></html>');
    close(); 
   }
  }
 }else{
  frames['main'].document.forms[0].Deelnemer.value=Deelnemer;
  frames['main'].document.forms[0].Enquetenummer.value=Enquetenummer;
  frames['main'].document.forms[0].Respons.value=returnantwoorden(Separator);
  if(ByEmail==1){
   ResponsString=frames['main'].document.forms[0].Respons.value;
   Hash=gethash(ResponsString);
   Action="mailto:respons@emailenquete.nl?subject="+Enquetenummer+Anonymous;
   Action+="&body="+Messages[Language]["MailBody"]+"<result>"+ResponsString+"</result><hash>"+Hash+"</hash>";
   frames['main'].document.forms[1].action=Action;
   frames['main'].document.forms[1].submit();
   laatstescherm(TestRunning,AfsluitText); 
  }else frames['main'].document.forms[0].submit();
 }
}

function calcconstantsum(n,r){
 for(z=1;z<=n;z++){
  y=show.document.getElementById("constantsum"+z).value;
  r-=y;
 }
 show.document.getElementById("constantsumleft").innerHTML=r;
}

function loopcheck(){
 LoopLevel=0;
 lc=new Array();
 AQ=VraagArray.length;
 for(i=1;i<AQ;i++){
  if(VraagArray[i][0]=="loopcheckbox"||VraagArray[i][0]=="loopranking")LoopLevel++;
  if(VraagArray[i][0]=="endloop")LoopLevel--;
  lc[i]=LoopLevel;
  if(LoopLevel<0)return Messages[Language]["LoopLevel"];
 } 
 if(LoopLevel>0) return Messages[Language]["LoopLevel"];
 for(i=1;i<AQ;i++){
  nextend=(VraagArray[i][4]>=AQ||VraagArray[i][4]==0);
  if(!nextend){
   nextsame=(lc[i]==lc[VraagArray[i][4]]);
   nextonehigher=(lc[VraagArray[i][4]]==lc[i]+1);
   nextloop=(VraagArray[VraagArray[i][4]][0]=="loopcheckbox"||VraagArray[VraagArray[i][4]][0]=="loopranking");
   loopup=nextonehigher&&nextloop;
   nextonelower=(lc[VraagArray[i][4]]==lc[i]-1);
   nextendloop=(VraagArray[VraagArray[i][4]][0]=="endloop");
   loopdown=nextonelower&&nextendloop;
  }else{
   loopup=false;
   loopdown=false;
  }
  if(!(nextend||nextsame||loopup||loopdown))return Messages[Language]["LoopLevel"];
  for(j=1;j<=VraagArray[i][2];j++){
   nextend=(AntwoordArray[i][j][1]>=AQ||AntwoordArray[i][j][1]==0);
   if(!nextend){
    nextsame=(lc[i]==lc[AntwoordArray[i][j][1]]);
    nextonehigher=(lc[AntwoordArray[i][j][1]]==lc[i]+1);
    nextloop=(AntwoordArray[i][j][1]>0?(VraagArray[AntwoordArray[i][j][1]][0]=="loopcheckbox"||VraagArray[AntwoordArray[i][j][1]][0]=="loopranking"):false);
    loopup=nextonehigher&&nextloop;
    nextonelower=(lc[AntwoordArray[i][j][1]]==lc[i]-1);
    nextendloop=(AntwoordArray[i][j][1]>0?(VraagArray[AntwoordArray[i][j][1]][0]=="endloop"):false);
    loopdown=nextonelower&&nextendloop;
   }else{
    loopup=false;
    loopdown=false;
   }
   if(!(nextend||nextsame||loopup||loopdown))return Messages[Language]["LoopLevel"];
  } 
 }
 return false;
}

function StartEnquete(){
 if(errmsg=loopcheck())alert(errmsg);
 else{
  AQ=VraagArray.length;
  AVN=0;
  VraagBoom=buildantwoordboom();
  LoopLevel=0;
  boom[LoopLevel]=VraagBoom;
  boomvraag[LoopLevel]=0;
  if(ByEmail==1)Separator="|";else Separator="\t";
  if(VraagArray.length>0)StelVraag(1);else einde(TestRunning);
 }
}

function laatstescherm(test,tekst){
 with(document){
  write(Header);
  write('<body>'+TopDivContent+'<p>'+Messages[Language]["Ontvangen"]+'</p><p>');
  write(tekst);
  if(test)write('</p><p><form action="account.php" method="post" target="_top"><input type="hidden" name="enquete" value="'+EnqueteNummer+'"><input type="hidden" name="actie" value="2" /><input type="button" value="'+Messages[Language]["TerugAccount"]+'" onclick="submit()" />');
  else {
   Message=Messages[Language]["Sluiten"];
   write('</p><p><form action=""><input type="button" value="'+Message+'" onclick="');
   write("parent.location.replace('http://'+window.location.hostname)");
   write('" />');
  }
  write('</form></p>'+BottomDivContent+'</body></html>');
  close();
 }
}

function einde(test){
 laatstescherm(test,AfsluitText);
}

function closed(){
 with(document){
  write(Header);
  write('<body>'+TopDivContent+'<p>'+Messages[Language]["Gesloten"]+'</p><p>');
  Message=Messages[Language]["Sluiten"];
  write('</p><p><form action=""><input type="button" value="'+Message+'" onclick="');
  write("parent.location.replace('http://'+window.location.hostname)");
  write('" />');
  write('</form></p>'+BottomDivContent+'</body></html>');
  close();
 }
}
