//'mijn lijst': maakt lijst uit nieuws of agenda view met als singlecategory de afdeling of kring
//<param name="label">plek op pagina</param>
//<param name="soort">agenda of nieuws</param>
//<param name="type">afdeling of kring</param>
function createMijnList(label, soort, type) {

	if (Username == "Anonymous") return
	
	if (type == "afdeling") 	{
	
		if (soort == "nieuws") 
			createList(label, 6, [0], NewsDb + "/vlNieuwsOpDatumPerAfdeling", Afdeling, "bold"); 
		else
			createList(label, 6, [0], KWISDb + "/vlAgendaOpDatumPerAfdeling", Afdeling, "bold");
	
	} else if (type == "IQual") {
		//soort == "nieuws"
		createList(label, 6, [0], NewsDb + "/vlNieuwsOpDatumPerIQual", IQualNr, "bold"); 
	
	} else if (Kring != "") {
		// dit uitcommentariëren als de views-per-kring bestaan 
		if (soort == "nieuws") 
			createList(label, 6, [0], NewsDb + "/vlNieuwsOpDatumPerKring", Kring, "bold"); 
		else 
			createList(label, 6, [0], KWISDb + "/vlAgendaOpDatumPerKring", Kring, "bold"); 
	}
}
 

//HTML voor richtlijnen&contracten pagina's
//<param name="min">start=</param>
//<param name="max">count=</param>
//<param name="cols">kolomnummers</param>
function createRichtlijnenHTML(label, min, max, cols) {
	var CurView = getComponent(label);
	CurView.maxNum = max > CurView.nrRows ? CurView.nrRows : max;	
	
	entries = CurView.entries;
	
	if (group=="Richtlijnen en Contracten") 
		document.getElementById(label).className += " beige"
	else if (group=="Vereniging")
		document.getElementById(label).className += " aqua"
	
	tekst = ""

	if (entries != null) {	//entries=null: geen documenten in view
		//tekst
		value = entries[0].entrydata[0].text[0];
		if (value != "")
			tekst += "<p></p><p>" + value + "</p><br>"
	
		//loop door alle rijen heen: [viewentry]   (s waarde van CurView.entries)
		for (x=min; x < CurView.maxNum; x++) {
			tekst += "<ul>"
						
			//loop door alle kolommen heen: [entrydata]
			for (y=0; y < entries[x].entrydata.length; y++) {
	
				if (isMember( entries[x].entrydata[y]["@columnnumber"], cols )) {

					type = getType( entries[x].entrydata[y] );

					//lijst met links
					if (type == "textlist") {
						//loop door tekstlijst heen en maak voor ieder item een <LI></LI> aan
						for (z=0; z < entries[x].entrydata[y].textlist.text.length; z++) 
							if (entries[x].entrydata[y].textlist.text[z][0] != "") 
								tekst += "<li>" + entries[x].entrydata[y].textlist.text[z][0] + "</li>";
					//één link			
					} else 
						tekst += "<li>" + entries[x].entrydata[y][type][0] + "</li>"
				}
			}	
		}
	}

	//zet te tonen HTML voor dit object
	CurView.HTML =  tekst + "</ul></div>"
	
}


//otherClass - evt class toekennen; anders wordt standaard 'horizontal_separator' gebruikt
function createSeparator( label, blokje, otherClass  ) {

	//check of streep gezet moet worden
	HTTPArray[label] = getHTTPObject();

	if (HTTPArray[label] != null) {
		
		HTTPArray[label].open("GET", ComponentsDb + "/vlJSONComponenten?readViewEntries&outputformat=JSON&restrictToCategory=" + blokje , true);				
	
		HTTPArray[label].onreadystatechange = function() {
			htmlSubHeader = "";
						
			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
				try {
					var resp = HTTPArray[label].responseText;
					var viewObject = eval("(" + resp + ")");

					var entries = viewObject["viewentry"];
			
					//wel/niet is te vinden in kolom 5
					value = entries[0].entrydata[5].text[0] ;
					
					if (value=="")	{
						//dynamisch aangemaakte DIV weer weggooien als er geen inhoud voor is
						p = document.getElementById(label).parentNode;
						p.removeChild( document.getElementById(label) );
						return;
					}					
					
					if (otherClass==null || otherClass=="undefined" || otherClass=="") {
						if (group=="Producten" || group=="Vereniging")
							useClass="double horizontal_separator"
						else	
							useClass="block bottom_link"
					} else
						useClass = otherClass	
		
					document.getElementById(label).className = useClass
					

				} catch (err) {
					return
				}	
			}
		}
		HTTPArray[label].send(null)
	}	
			
}


//maak een 'aanmeld'-link aan (= link naar aanmeldformulier, bijv. "aanmelden nieuwsbrief")
function createSpecialLink(label, blokje) {

	HTTPArray[label] = getHTTPObject();
	
	if (HTTPArray[label] != null) {

		HTTPArray[label].open("GET", ComponentsDb + "/vlJSONComponenten?readViewEntries&outputformat=JSON&restrictToCategory=" + blokje, true);
		
		HTTPArray[label].onreadystatechange = function() {
	
			var link = "";	
			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
				try {
					var resp = HTTPArray[label].responseText;
					var viewObject = eval("(" + resp + ")");

					var entries = viewObject["viewentry"];
					link = entries[0].entrydata[4].text[0];

					//een 'special' linkblokje moet verdwijnen zodra er op geklikt wordt
					link = "<div onClick=\"this.style.display='none'\">" + link + "</div>"

					document.getElementById(label).innerHTML = "<div class=\"clearboth\"></div>" + link 
			
					
				} catch (err) {
					return;
				}	
			}
		}
		HTTPArray[label].send(null)		
	}	
}


//deze functie wordt aangeroepen bij klikken op specialLink 'ik neem nieuwe patiënten aan'
function nieuwepatienten() {

	//profiel openen in tabblad 'persoonlijke gegevens'
	var pg = document.getElementById("persoonlijke_gegevens_link") 
	if ( pg != null && pg != "undefined") //profiel is al geopend, dus alleen naar juiste tabblad gaan
		pg.onclick()
	else 
		openMijnProfiel( "contentcontainer", "", "persoonlijke_gegevens_link" )
		
	alert( "Klik voor de betreffende werkverbanden op 'wijzig' en vink aan of u nieuwe patiënten aanneemt." );
}


//deze functie wordt aangeroepen bij klikken op specialLink 'aanmelden nieuwsbrief'
function nieuwsbrief() {
	
	//profiel openen in tabblad 'mailings'	
	var m = document.getElementById("mailings_link") 
	if ( m != null && m != "undefined")	//profiel is al geopend
		m.onclick()
	else 
		openMijnProfiel("contentcontainer", "", "mailings_link")
	
	//alert( "Vink aan welke mailings/nieuwsbrieven u wilt ontvangen.")

}

//geef NMT adresgegevens en contactinformatie 
function createNMTInfo( label, blokje) {

	HTTPArray[label] = getHTTPObject();

	infoHTML = "<h3 class=\"heading_bureau\">Contact &amp; Route</h3>"
	infoHTML += "<div style=\"width:420px;\" class=\"coolgray clearfix contact_addresses twenty_px_vertical_spacer\">"
	

	if (HTTPArray[label] != null) {
		HTTPArray[label].open("GET", ComponentsDb + "/vlJSONComponenten?readViewEntries&outputformat=JSON&restrictToCategory=" + blokje, true)
		HTTPArray[label].setRequestHeader("Content-Type", "application/x-www-form-urlencoded; ");
				
		HTTPArray[label].onreadystatechange = function() {	

			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
				try {

					var resp = HTTPArray[label].responseText;
					var viewObject = eval("(" + resp + ")");

					var entries = viewObject["viewentry"];
		
				    //NMT informatie staat in kolommen 8, 9 en 10
					var bezoekadres = entries[0].entrydata[8].text[0]
					var postadres = entries[0].entrydata[9].text[0]
					var contactinfo = entries[0].entrydata[10].text[0]
					var email = entries[0].entrydata[11].text[0]
					
					//kolom1
					infoHTML += "<div class=\"three_columns_left\"><h4>Bezoekadres</h4>"
					infoHTML += bezoekadres.substring( 0, bezoekadres.indexOf("~")) + "<br/>"
					infoHTML += bezoekadres.substring( bezoekadres.indexOf("~")+1, bezoekadres.length )
					infoHTML += "</div>"
					
					//kolom2
					infoHTML += "<div class=\"three_columns_middle\"><h4>Postadres</h4>"
					infoHTML += postadres.substring( 0,postadres.indexOf("~")) + "<br/>"
					infoHTML += postadres.substring( postadres.indexOf("~")+1, postadres.length )
					infoHTML += "</div>"
					
					//kolom3
					infoHTML += "<div class=\"three_columns_right\"><h4>Contactgegevens</h4>"
					infoHTML += "tel: " + contactinfo.substring( 0,contactinfo.indexOf("~")) + "<br/>"
					infoHTML += "fax: " + contactinfo.substring( contactinfo.indexOf("~")+1, contactinfo.length ) + "<br/>"
					infoHTML += "email: " + email + "</div></br>"

					if (Username != "Anonymous") //alleen ingelogden mogen een vraag stellen
						infoHTML += "<a class=\"btnlong right contactbtn\" href=\"javascript: openMetaLink('Contact')\">STEL UW VRAAG</a><br/><br/>"
	
					infoHTML += "</div>"
					infoHTML += "<div class=\"horizontal_separator\">&nbsp;</div>"
					
				    //googlekaartje		
					infoHTML += "<div class=\"googleMaps twenty_px_vertical_spacer\">"
					infoHTML += "<h4>Routebeschrijving</h4>"

					if (location.href.indexOf("nmt.nl")>-1)
						infoHTML += "<iframe scrolling=\"no\" class=\"google_maps_placeholder\" src=\"" + SharedDb + "/index_def2.html\" frameborder=0></iframe>"
					else
						infoHTML += "<iframe scrolling=\"no\" class=\"google_maps_placeholder\" src=\"" + SharedDb + "/index_def.html\" frameborder=0></iframe>"
                         infoHTML += "</div>"
					
                        //routebeschrijving
					infoHTML += "<span style=\"font-weight:bold; margin-left:18px;\">Met het Openbaar Vervoer<br/></span>"
					infoHTML += "<ul class=\"google_maps_list\">"
					infoHTML += "<li>Vanaf Centraal Station Utrecht de sneltram richting Nieuwegein/IJsselstein  halte 'Nieuwegein Stadscentrum'. Vanaf de halte is het ongeveer 5 minuten lopen.</li>"
					infoHTML += "<li>Loop naar de voorkant van de halte en dan rechtsaf winkelcentrum City Plaza in (kort overdekt stuk).</li>"
					infoHTML += "<li>Ga er bij de Xenos weer uit en steek de weg over.</li>"
					infoHTML += "<li>Neem de trap en de loopbrug over de Zuidstedeweg, ga bij de eerste trap rechts weer naar beneden</li>"					
					infoHTML += "<li>Onderaan de trap de straat oversteken en linksaf.</li>"
					infoHTML += "<li>Het NMT gebouw is het eerste gebouw na de eerste kruising/T-splitsing.</li>"	
	                    infoHTML += "</ul><br/>"	
		               infoHTML += "<span style=\"font-weight:bold; margin-left:18px;\">Vanaf de Rijksweg 's-Hertogenbosch - Utrecht (A2):<br/></span>"	
     				infoHTML += "<ul class=\"google_maps_list\">"
					infoHTML += "<li>Afslag Nieuwegein/IJsselstein/Schoonhoven</li>"
					infoHTML += "<li>Richting Nieuwegein volgen</li>"
					infoHTML += "<li>Na binnenkomst Nieuwegein (Wijkslootweg/Zuidstedeweg)</li>"
					infoHTML += "<li>tweede weg - voor tramrails - rechtsaf (Koekoekslaan)</li>"
					infoHTML += "<li>Eerste straat rechts (Specht)</li>"
					infoHTML += "<li>Eerste straat rechts (Rietgors)</li>"
					infoHTML += "<li>Bij T-splitsing rechtsaf (Geelgors)</li>"
					infoHTML += "</ul><br/>"
					infoHTML += "<span style=\"font-weight:bold; margin-left:18px;\">Vanaf de Rijksweg Arnhem - Den Haag (A12):<br/></span>"
					infoHTML += "<ul class=\"google_maps_list\">"
					infoHTML += "<li>Afslag Nieuwegein</li>"
					infoHTML += "<li>Richting Nieuwegein volgen</li>"
					infoHTML += "<li>Nieuwegein binnenrijden (A.C. Verhoefweg)</li>"
					infoHTML += "<li>Deze weg geheel afrijden tot T-splitsing, hier linksaf (Zuidstedeweg)</li>"
					infoHTML += "<li>Bij tweede stoplicht - voor tramrails - rechtsaf (Koekoekslaan)</li>"
					infoHTML += "<li>Eerste straat rechts (Specht)</li>"
					infoHTML += "<li>Eerste straat rechts (Rietgors)</li>"
					infoHTML += "<li>Bij T-splitsing rechtsaf (Geelgors)</li>"
					infoHTML += "</ul>"	
					infoHTML += "<br/></div>"
									
					document.getElementById(label).innerHTML = infoHTML		
			
					
				} catch (err) {
					//alert( err )
					return;
				}	
			}
		}
		HTTPArray[label].send(null)		
	}
}


//functie voor het tonen van het kaartje voor kies je tandarts
function createKiesJeTandarts(label) {
	HTTPArray[label] = getHTTPObject();
	var t_url = CMSDb + "/kiesjetandarts!readform"
	if (HTTPArray[label] != null) {

		HTTPArray[label].open("GET", t_url , true);		
		HTTPArray[label].onreadystatechange = function() {
	
			var link = "";	
			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
				try {
					var resp = getAJAXHTML(HTTPArray[label].responseText)[0];
					document.getElementById(label).innerHTML = resp		
				} catch (err) {
					return;
				}	
			}
		}
		HTTPArray[label].send(null)		
	}		
}


//functie voor het tonen van het klachtenformulier
function createKISFormulier(label) {
	strHTML = "<iframe src='" + KISDb + "/fmKlacht!OpenForm' height='1300px' width='470px' frameborder=0></iframe>"

	document.getElementById(label).innerHTML = strHTML
}


//functie voor het tonen van het klachten dossier (view)
function createKISDossier( label, strView) {

	HTTPArray[label] = getHTTPObject()

	if (Userroles.indexOf("[WebKisSecr]")>-1) 	//secretariaat/beheer mag alles zien
		var t_url = KISDb + "/" + strView + "!OpenView&Count=-1&RestrictToCategory=[Secretariaat]"
	else
		var t_url = KISDb + "/" + strView + "!OpenView&Count=-1&RestrictToCategory=" + Username
		
	if (HTTPArray[label] != null) {
		HTTPArray[label].open("GET", t_url , true)
		HTTPArray[label].onreadystatechange = function() 	{
			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" )			{
				try {
					var resp = getAJAXHTML(HTTPArray[label].responseText)[0]
					
					if (resp.indexOf("No documents found") < 0)
						document.getElementById(label).innerHTML = resp
					else
						document.getElementById(label).innerHTML = "<br/>&nbsp;&nbsp;Er zijn geen openstaande dossiers gevonden."	
					
				} catch (err) {
					return;
				}
			}
		}
		HTTPArray[label].send(null)
	}
}


//functie voor het tonen van het klachten dossier (view)
function createKISDossierAnoniem( label, strView) {

	HTTPArray[label] = getHTTPObject()
	
	var t_url = KISDb + "/" + strView + "!OpenView&Count=-1"
	if (HTTPArray[label] != null) {
		HTTPArray[label].open("GET", t_url , true)
		HTTPArray[label].onreadystatechange = function() 	{
			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" )			{
				try {
					var resp = getAJAXHTML(HTTPArray[label].responseText)[0]
					
					if (resp.indexOf("No documents found") < 0)
						document.getElementById(label).innerHTML = resp
					else
						document.getElementById(label).innerHTML = "<br/>&nbsp;&nbsp;Er zijn geen openstaande dossiers gevonden."	
						
				} catch (err) {
					return;
				}
			}
		}
		HTTPArray[label].send(null)
	}
}



//wordt aangeroepen als blokje "Mijn NMT - Nieuw bericht plaatsen" op de contentpagina is gezet
function createBericht( label, blokje, type ) {
	if (type=="Nieuws")
		editBericht("NewsDb", null, label)	
	else
		editBericht("KWISDb", null, label)
}


//zet nieuws- of agendabericht in editmode 
//Db     = 'NewsDb' of 'KWISDb'
//docID  = documentuniqueid van het bericht - leeg als nieuw bericht
function editBericht(Db, docID, label) {
	
	var bericht = getHTTPObject()
	if (bericht==null) return;			
				
	if (docID==null || docID=="undefined") {	//nieuw bericht aanmaken
		if (Db=="NewsDb")
			var URL = NewsDb + "/fmNieuws!openform"
		else
			var URL = KWISDb + "/fmCalendar!openform"	
	}	
  	  else								//bestaand bericht bewerken
		var URL = eval(Db) + "/0/" + docID + "!editDocument"

	if (label==null || label=="undefined") label = "contentcontainer"
				
	bericht.open("GET", URL, true);

	bericht.onreadystatechange = function() {

		if (bericht.readyState == 4 || bericht.readyState == "complete") {
			try {
				var content = document.getElementById(label)
				var editbericht = getAJAXHTML( bericht.responseText)

				content.innerHTML = editbericht[0]
											
				//veld 'Body' (is textarea-veld) omzetten naar fck editor
				makeRichTextField("Body", CMSDb + "/bodyRTfield.js")
					
						
			} catch(err) {
				//alert( err)
				return;		
			}
		}
	}

	bericht.send(null)   
}


//sla (nieuw of aangepast) bericht op
//Db = "NewsDb" of "KWISDb"
//docID = documentuniqueID van het bericht - is 'null' als nieuw bericht
//redirectURL = te openen pagina na submitten [optioneel]
function submitBericht(Db, docID, redirectURL) {
		
	var saving = getHTTPObject()
	if (saving == null) return;

	var t= new Date();
	var vandaag = 	t.getDate() + "-" + parseInt(t.getMonth()+1) + "-" + t.getFullYear()		

	if (docID==null || docID=="undefined") {			//bericht is nieuw aangemaakt
		if (Db=="NewsDb")
			var URL = NewsDb + "/fmNieuws!createDocument&charset=UTF-8"
		else
			var URL = KWISDb + "/fmCalendar!createDocument&charset=UTF-8"	
	}
	  else										//bericht bestond al		
		var URL = eval(Db) + "/0/" + docID + "!saveDocument&charset=UTF-8"	
		

	//als iFrame met id="Body___Frame" bestaat, dan is fck editor gebruikt
	var fckeditor = document.getElementById("Body___Frame")		
	
	if (fckeditor==null || fckeditor=="undefined") {
	
		var bericht = document.getElementById("bericht")
		//vervang enters door spatie 
		var bericht = escape(b.value).replace(/%0D%0A/g, " ")		
		bericht = unescape( bericht.replace(/%0A/g, " "))		

	} else {									
		//als fck editor is gebruikt, dan inhoud uit iframe "Body___Frame/xEditingArea" halen
		// en overhevelen naar body veld (is textarea met id "bericht") zodat het opgeslagen wordt
		var bodycell = fckeditor.contentWindow.document.getElementById("xEditingArea") 
		var bodyframe = bodycell.childNodes[0]

		var bericht = bodyframe.contentWindow.document.body.innerHTML
					
		//als inhoud = "<p><br></p>" (FF) of "<p></p>" (IE) dan is nog niks ingevuld
		if (bericht.toUpperCase() == "<P><BR></P>" || bericht.toUpperCase() == "<P></P>")
			document.getElementById("bericht").value = ""
		else
			document.getElementById("bericht").value = bericht
				
		//bepaalde tekens escapen die niet in de URL meegestuurd mogen worden (= en &)
		// Let op: we escapen niet simpelweg 'bericht', omdat dan speciale tekens
		//   verloren gaan (ë,é, etc.)
		bericht = escape(bericht).replace(/%0D%0A/g, "")		
		bericht = unescape(bericht.replace(/%0A/g, ""))			
		bericht = bericht.replace(/=/g, escape("=") )
		bericht = bericht.replace(/&/g, escape("&") )
	}	
	
	
	//validatie verplichte velden
	if (!validateElementById(Db + "Fields")) return;
		
	if (Db=="NewsDb") {
	   //NIEUWS
	
		//validatie format datum
		if (!isValidDate( document.getElementById("datum")) ) {
			alert("Vul een geldige datum in. (dd-mm-jjjj)")			
			return;
		} 

		var titel = document.getElementById("titel").value
		var datum = document.getElementById("datum").value
							
		var content = "head=" + titel + "&datum_t_m=" + datum  + "&body=" + bericht

		//auteur + afdeling invullen als bericht nieuw is aangemaakt
		//  (zie ook subform NieuwsEdit voor meer velden die daar berekend worden)
		if (docID==null || docID=="undefined") {
			content +=
			"&AangemaaktDoor=" + dispUsername + " (" + Username + ")" +
			"&NewsAfdeling=" + constAfdeling +
			"&DispAfdeling=" + dispAfdeling +
			"&Source=Afdelingsbestuur " + dispAfdeling
	   	}	
		
	} else {
	  //AGENDA
	
		//validatie format datums
		if (!isValidDate( document.getElementById("startdatum"))) {
			alert("Vul een geldige datum in voor de startdatum. (dd-mm-jjjj)")
			return
		}	
		if (document.getElementById("einddatum").value != "") {
			if (!isValidDate( document.getElementById("einddatum"))) {
				alert("Vul een geldige datum in voor de einddatum. (dd-mm-jjjj)")
				return
			}
		}
		
		//validatie uren (0-23) en minuten (0-59)
		var startu = document.getElementById("starttijduren").value
		var startm = document.getElementById("starttijdminuten").value
		var eindu = document.getElementById("eindtijduren").value
		var eindm = document.getElementById("eindtijdminuten").value
				
		if ( (startu != "" && startu > 23) || (eindu != "" && eindu > 23) ) {
			alert("Vul voor de uren een getal tussen 0 en 23 in")
			return
		}

		if ( (startm != "" && startm > 59) || (eindm != "" && eindm > 59) ) {
			alert("Vul voor de minuten een getal tussen 0 en 59 in")
			return;
		}
		

		var kop = document.getElementById("kop").value
		var locatie = document.getElementById("locatie").value
		var startdatum = document.getElementById("startdatum").value
		var einddatum = document.getElementById("einddatum").value
		var starttijd = startu==""? "" : startu + ":" + startm
		var eindtijd = eindu==""? "" : eindu + ":" + eindm
				     
		var content = "head=" + kop + "&startDate=" + startdatum + "&enddate=" + einddatum +
		"&body=" + bericht + "&starttime=" + starttijd + "&endtime=" + eindtijd +
		"&starttimehours=" + startu + "&endtimehours=" + eindu + "&starttimeminutes=" + startm +
		"&endtimeminutes=" + eindm + "&location=" + locatie
		
		//auteur + afdeling invullen als bericht nieuw is aangemaakt
		// (overige te berekenen velden staan op het subform AgendaEdit)		
		if (docID==null || docID=="undefined") {
			content += 
			"&AangemaaktDoor=" + dispUsername + " (" + Username + ")" +
			"&AgendaAfdeling=" + constAfdeling + "&DispAfdeling=" + dispAfdeling
		}
	}

	saving.open("POST", URL, true)
	
	saving.onreadystatechange = function() {
	
		if (saving.readyState == 4 || saving.readyState == "complete") {
			try {
				if (redirectURL==null || redirectURL=="undefined" || redirectURL == "" || redirectURL=="http://") 
					location.reload() 
				else {
					alert("Het bericht is opgeslagen. U gaat nu naar de afdelingspagina.")
					
					//als de customAlert gebruikt is, moet de redirect achter de 'OK' 
					// button gezet worden ipv direct uitgevoerd worden
					var customAlert = document.getElementById("closeBtn")
					if (customAlert) {
						customAlert.onclick = function() { 
							removeCustomAlert();
							location.replace( redirectURL )
  					 	}
					} else
						location.replace(redirectURL)	
				}
				
			} catch(err) {
				//alert( err)
				return;
			}
		}
	}
	
	saving.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	saving.send(content)
}

//cancel bewerking op bericht
function exitBericht( redirectURL ) {

	if (redirectURL==null || redirectURL=="undefined" || redirectURL=="" || redirectURL=="http://") 
		location.reload()	
	else	{
		alert("De wijzigingen zijn NIET opgeslagen. U gaat nu naar de afdelingspagina.")
		
		//als de customAlert gebruikt is, moet de redirect achter de 'OK' 
		// button gezet worden ipv direct uitgevoerd worden
		var customAlert = document.getElementById("closeBtn")
		if (customAlert) {
			customAlert.onclick = function() { 
				removeCustomAlert();
				location.replace( redirectURL )
  		 	}
		} else
			location.replace(redirectURL)			
	}
}




//loginform overig; blokje voor alle pagina's behalve homepage
//<param name="label">plek op pagina</param>
//<param name="RedirectTo">pagina die na inloggen geopend moet worden</param>
//<param name="FenCSLink">link naar FenCS  (alleen nodig voor loginblok op Mijn Nmt)</param>
function createLoginForm(label, RedirectTo, FenCSLink) {

	//evt naam+wachtwoord uit cookie halen
	var name = getCookie("nmtusername");
	var pw = getCookie("nmtpassword");
	var onthoudpw = "";
	
	if (name=="undefined" || name==null) name=""
	if (pw=="undefined" || pw==null) pw=""
			
	if (pw != "") onthoudpw = " checked"	
		
	var HTMLTekst = "";
	
	kopregel = "<div class=\"block statusblock\">"
	kopregel += "<p class=\"right\">U bent momenteel niet ingelogd</p>"
	kopregel += "</div>"


	if ( Username == "Anonymous") {
		HTMLTekst += kopregel
		HTMLTekst += "<div class=\"clearboth\"></div>"
		HTMLTekst += "<div class=\"block statusblock\">"
		HTMLTekst += "<input value=\"inloggen\" type=\"button\" "
		HTMLTekst += "onClick=\"document.getElementById('" + label + "').innerHTML = dispLoginFieldset(true, '" 
		HTMLTekst += label + "', '" + RedirectTo + "', '" + name + "', '"  + pw + "', '" + onthoudpw + "')\" class=\"short right\" />"
		HTMLTekst += "</div>"	


	} else {

		rel = document.getElementById("related")
		rel.className = "right "
			
		if (group=="Mijn NMT") { //boven mijn nmt moeten tabs "mijn nmt" en "fencs" 
		
			var tMijnNMTLink = MijnNMTLink==null || MijnNMTLink=="undefined" || MijnNMTLink==""? "#" : MijnNMTLink
			var tFenCSLink = (FenCSLink==null || FenCSLink=="undefined" || FenCSLink=="")? "#" : FenCSLink
			
			rel.className += " CBtabs"
			HTMLTekst += "<div class=\"tabs nomargin clearboth\">"
			HTMLTekst += "<a id=\"tabmijnnmt\" href=\"" + tMijnNMTLink + "\" class=\"tab mijnnmt activeTab\"><span>Mijn NMT</span></a>"
			HTMLTekst += "<a id=\"tabnmtfencs\" href=\"" + tFenCSLink + "\" class=\"tab nmtfencs\"><span>NMT FenCS</span></a>"
			HTMLTekst += "</div>"
		}	
		
		var ingelogdTekst = dispIngelogdText( );	
		
		HTMLTekst += "<div class=\"contentTabs\">"
		//tab1
		HTMLTekst += "<div id=\"tab01\" class=\"tabContent tabbedContent activeTab normalgreen status\">"
		HTMLTekst += ingelogdTekst + "</div>"
	
		//tab2
		HTMLTekst += "<div id=\"tab02\" class=\"tabContent tabbedContent paddedblock gray\">"
		HTMLTekst += ingelogdTekst + "</div></div>"

	}

	//vul wachtwoord in middenstuk als daar het loginscherm wordt getoond (of maak leeg als niet in cookie)
	var checkPW = document.getElementById("password")
	if (checkPW != null && checkPW != "undefined") checkPW.value = pw

	document.getElementById(label).innerHTML = HTMLTekst

}


function createAanvraagNieuwWachtwoord(label) {

	var newHTML = ""
	newHTML +="<br/><div class=\"inline_forms clearfix\" id=\"nieuwwachtwoordaanvragen\">"
	newHTML +="<table border=0 cellpadding=0 cellspacing=0>"
	newHTML +="<tr><td width=200px>" 
	newHTML +="<strong>NMT-lidmaatschapsnummer</strong>" 
	newHTML +="</td><td width=200px>"
	newHTML +="<input type=text name=nStamnummer id=nStamnummer>"
	newHTML +="</td></tr><tr><td>" 
	newHTML +="<strong>E-mailadres</strong>" 
	newHTML +="</td><td>"
	newHTML +="<input type=text name=tEmail id=tEmail size=40>"
	newHTML +="</td></tr><tr><td colspan=2>" 
	newHTML +="<br/><A class=\"btnshort right\" href=\"javascript:verstuurAanvraagNieuwWachtwoord()\">VERSTUREN</A>"
	newHTML +="</td></tr>"
	newHTML +="</table>"	
	newHTML +="</div>"
	var obj = document.getElementById(label)
	obj.innerHTML = newHTML

}


function verstuurAanvraagNieuwWachtwoord() {

	var objStamNr = document.getElementById("nStamnummer")
	var objEmail = document.getElementById("tEmail")
	var strPattern = /^\w[-_a-z~.0-9]*@\w[-_a-z~.0-9]+\.[a-z]{2}[a-z]*$/i;	
	if(objStamNr.value=="") 	{
		alert("U dient een NMT-lidmaatschapsnummer op te geven")
		objStamNr.focus()		
	} else {
		if(strPattern.test(objEmail.value)) {
			HTTPMail = getHTTPObject();
			if (HTTPMail != null) {
				HTTPMail.open("GET", CMSDb + "/requestnewpassword!openagent&stamnummer=" + objStamNr.value + "&email=" + objEmail.value +"&"  , true)
			
				HTTPMail.onreadystatechange = function()  {	
					if ( HTTPMail.readyState == 4 || HTTPMail.readyState == "complete" ) {
						if (HTTPMail.responseText != "") {
							if (HTTPMail.responseText.indexOf("ALERT") > -1) {
								alert( "Het e-mailadres dat u heeft opgegeven is niet bekend bij dit NMT-lidmaatschapnummer. Er is niets verstuurd.")
								objEmail.focus()
							} else {
								var resultObj = document.getElementById("nieuwwachtwoordaanvragen")
								resultObj.innerHTML =  HTTPMail.responseText
							}	
						}
					}
				}	
			}
			HTTPMail.send(null)
		}
		else {
			alert('Het e-mailadres dat u heeft opgegeven is ongeldig. Er is niets verstuurd.')
			objEmail.focus();
		}
	}
}
//maak lijst met blokjes voor één bepaalde dienst aan
function createDienstList( label, dienst) {
	HTTPArray[label] = getHTTPObject();

	if (HTTPArray[label] != null) {
			
		HTTPArray[label].open("GET", ComponentsDb + "/vlJSONDiensten?readViewEntries&outputformat=JSON&restrictToCategory=" + dienst, true)

		HTTPArray[label].onreadystatechange = function() {	
		
			var links = "";
			var subTekst = "";
			var HTMLTekst = "<div class=\"simple\">";
			var HTMLContentbox = "";

			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
				try {
				var resp = HTTPArray[label].responseText;
					var viewObject = eval("(" + resp + ")");
					var entries = viewObject["viewentry"];		
										
					//loop door alle gevonden rijen heen
					for (index=0; index < entries.length; index++) {
					
						if (index>0) HTMLContentbox += "<br />"
					
						HTMLContentbox += "<div class=\"contentbox onlinelightgreen dienstlistboxheight\">"
	
						//subtekst staat in kolom 0
						type = getType (entries[index].entrydata[0]);
						subTekst = entries[index].entrydata[0][type][0];	
																			
						HTMLContentbox += "<h4>" + subTekst + "</h4>"	
					
						//lijst met links staat in kolom 1
						type = getType (entries[index].entrydata[1]);
						if (type=="textlist") {
							links="";
							//meerdere links, dus loop door linklijst heen
							for (x=0; x < entries[index].entrydata[1].textlist.text.length; x++) {
								links += "<li>" + entries[index].entrydata[1].textlist.text[x][0] + "</li>"
							}	
						} else {
							//één link
							links = "<li>" + entries[index].entrydata[1][type][0] + "</li>"
						}
						HTMLContentbox += "<ul>" + links + "</ul></div>"
							
												
					}
								
					HTMLTekst += HTMLContentbox	
					HTMLTekst += "</div>"					
			
					document.getElementById(label).innerHTML = HTMLTekst
					

				} catch (err) {
					return;
				}
			}
		}
		HTTPArray[label].send(null)
	}
}

//maak zoekblokje aan (TA gids of bieb)
//<param name="label">plek op pagina</param>
//<param name="blokje">door beheerder aangemaakt blokje waaruit te tonen teksten gehaald worden</param>
//<param name="blokNaam">naam van dienstzoek blokje</param>
//<param name="resultURL">te openen resultaatpagina na zoeken (is contentpagina) [OPTIONEEL]</param>
function createSearchDienstBlock( label, blokje, blokNaam, resultURL ) {

	//als gebruiker niet is ingelogd, tekst tonen
	if (Username=="Anonymous") { 

		HTTPArray[label] = getHTTPObject();

		if (HTTPArray[label] != null) {
			
			HTTPArray[label].open("GET", ComponentsDb + "/vlJSONComponenten?readViewEntries&outputformat=JSON&restrictToCategory=" + blokje, true)

			HTTPArray[label].onreadystatechange = function() {	
		
				var tekst = "";
				var subTekst = "";
						
				var HTMLTekst = "<div class=\"simple\">";
				
				if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
					try {
						var resp = HTTPArray[label].responseText;
						var viewObject = eval("(" + resp + ")");
						var entries = viewObject["viewentry"];		

						//tekst staat in kolom 1
						type = getType (entries[0].entrydata[0]);
						tekst = entries[0].entrydata[0][type][0];	

						//subtekst staat in kolom 2, alles achter "#" (links daarvan staat headerplaatje
						// maar die is met functie createSubheader al toegevoegd)
						type = getType (entries[0].entrydata[1]);
						value = entries[0].entrydata[1][type][0];	
						subTekst = value.substring( value.indexOf("#")+1, value.length)
									
						HTMLTekst += "<div class=\"contentbox onlinelightgreen dienstsearchboxheight\">"		
						HTMLTekst += "<p class=\"bold\">" + subTekst + "</p>"
						HTMLTekst += "<br/></p>" + tekst + "</p></div></div>"
					
						document.getElementById(label).innerHTML = HTMLTekst

	
					} catch(err) {
						return;
					}
				}
			}	
			HTTPArray[label].send(null)			
		}		
	} else {
		// als gebruiker is ingelogd, zoekschermpje tonen (is vaste HTML leidend naar zoekschermen)
		var HTMLTekst = "<div class=\"simple\"><div class=\"contentbox onlinelightgreen dienstsearchboxheight \" style=\"height:200px\">"
	
		var resultURL = resultURL==null || resultURL=="undefined"? "" : resultURL
	
		//twee mogelijkheden: TA gids of Bibliotheek NMT
		if ( blokNaam.indexOf("Tandartsengids")>-1 ) {
			HTMLTekst += "Achternaam"
			HTMLTekst += "<input id=\"achternaam\" name=\"achternaam\" class=\"achternaam\" type=\"text\" onKeyPress=\"return catchEnter(event, 'TAGids', '" + resultURL + "')\"/>"
			HTMLTekst += "<br/><br/>Tussenvoegsel(s)"
			HTMLTekst += "<input id=\"tussenvoegsel\" name=\"tussenvoegsel\" class=\"achternaam\" type=\"text\" onKeyPress=\"return catchEnter(event, 'TAGids', '" + resultURL + "')\"/>"
			HTMLTekst += "<input type=\"radio\" name=\"achternaamoption\" id=\"achternaamoption\" value=\"praktijkplaats\"/>"
			HTMLTekst += "<label class=\"radio\">Praktijkplaats</label>"
			HTMLTekst += "<input type=\"radio\" name=\"achternaamoption\" id=\"achternaamoption\" value=\"woonplaats\" checked/>"
			HTMLTekst += "<label class=\"radio\">Woonplaats</label>"
			HTMLTekst += "<input name=\"plaatsnaam\" id=\"plaatsnaam\" class=\"achternaam\" type=\"text\" onKeyPress=\"return catchEnter(event, 'TAGids', '"
			HTMLTekst += resultURL + "')\" "
			HTMLTekst += "onFocus=\"InitQueryCode(this.name, '" + CMSDb + "/getWoonplaatsen?OpenAgent&q=');\" /><br/><br/>"
			HTMLTekst += "<a class=\"btnshortsearchbox btnshort right \" href=\"javascript:searchTAGids('" + resultURL + "')\">Zoek</a><br/><br/><br/><br/>"
			
		} else if (blokNaam.indexOf("Bibliotheek")>-1) {		
			HTMLTekst += "<table border=0 cellspacing=5px cellpadding=0px margin=0px padding=0px>" 
			HTMLTekst += "<tr>"
			HTMLTekst += "<td><div style=\"margin-top:13px\">Trefwoord</div></td>"
			HTMLTekst += "<td valign=top><input class=\"bibliotheek\" style=\"width:100px;\"  type=\"text\" id=\"trefwoord\" onKeyPress=\"return catchEnter(event, 'Bieb', '" + resultURL + "')\"/></td>"		
			HTMLTekst += "</tr><tr>"							
			HTMLTekst += "<td><div style=\"margin-top:13px\">Titel</div></td>"
			HTMLTekst += "<td><input class=\"bibliotheek\" style=\"width:100px\" type=\"text\" id=\"titel\" onKeyPress=\"return catchEnter(event, 'Bieb', '" + resultURL + "')\"/></td>"
			HTMLTekst += "</tr><tr>"													
			HTMLTekst += "<td><div style=\"margin-top:13px\">Auteur</div></td>"
			HTMLTekst += "<td><input class=\"bibliotheek\" style=\"width:100px\" type=\"text\" id=\"auteur\" onKeyPress=\"return catchEnter(event, 'Bieb', '" + resultURL + "')\" /></td>"		
			HTMLTekst += "</tr><tr>"					
			HTMLTekst += "<td><div style=\"margin-top:13px\">Type</div></td>"
			HTMLTekst += "<td><select class=\"types\" id=\"type\" style=\"width:100px\">"
			HTMLTekst += "<option selected=\"selected\" value=\"0\">Alle types</option>"
			HTMLTekst += "<option value=\"1\">Boeken</option>"
			HTMLTekst += "<option value=\"2\">Tijdschriften</option>"
			HTMLTekst += "<option value=\"2\">Artikelen</option>"
			HTMLTekst += "</select></td>"
			HTMLTekst += "</tr><tr>"							
			HTMLTekst += "<td colspan=2><a class=\"btnshortsearchbox btnshort right \" href=\"javascript:searchBieb('" + resultURL + "')\">Zoek</a><br/></td>"	
			HTMLTekst += "</tr></table>" 			
		
		} else
			return;
	
		HTMLTekst += "</div></div>"
		
		document.getElementById(label).innerHTML = HTMLTekst
	}
}


//boek,artikel of tijdschrift aanvraagformulier tonen
function aanvragen() {

	//toon aanvraagformulier & verstop displayformulier
	document.getElementById("aanvraagData").style.display = ""
	document.getElementById("displayData").style.display = "none"
	
	//wijzig kopje boven formulier
	var typeElem = document.getElementById("Type")
	typeElem.innerHTML = "Aanvraag " + typeElem.innerHTML.toLowerCase()
	
	//vul naam aanvrager in 
	// (adresgegegevens gaan via @formula; zie computed values op forms 'fmBoek[type]gegevens' in DS
	document.getElementById("aanvrager").innerHTML = dispUsername	
	
	//toon versturen button & verstop aanvragen button
	document.getElementById("lenen").style.display = ""
	document.getElementById("aanvragen").style.display = "none"
}



/* =================== volgende gedeelte is voor de Vacature bank =======================*/

var global_schermtype


function printVacature() {
	//open printversie in popup en print automatisch
	openPopup( NTVBDb + "/VacaturePrint.html" )
}

function printCV() {
	//open printversie in popup en print automatisch
	openPopup( NTVBDb + "/CVPrint.html" )
}



function createVacatureBankZoekscherm( label, schermtype)  {

	//alert('ik zit nu in de createVacatureBankZoekscherm en type = ' + schermtype  + '\nNu gaan we naar de vacaturebank en halen alle HTML op')
	//alert(NTVBDb)	
	var t_url=""
	//vul een globale schermtype variabele, die wordt ook later gebruikt in de createFTQuery functie
	global_schermtype = schermtype
	if(schermtype=="medewerkers")
		t_url=NTVBDb + "/fmZoekMedewerkersWS4?Openform"
	else
		t_url=NTVBDb + "/fmZoekVacaturesWS4?Openform"
			
	HTTPArray[label] = getHTTPObject();

	if (HTTPArray[label] != null) {
			
		HTTPArray[label].open("GET", t_url , true)

		HTTPArray[label].onreadystatechange = function() {	
			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
				try {
					var resp = getAJAXHTML(HTTPArray[label].responseText)[0];
					var obj = document.getElementById(label)
				
					document.getElementById(label).innerHTML = resp
			

				} catch (err) {
					return;
				}
			}
		}
		HTTPArray[label].send(null)
	}
}


function toggleProvincies() {
	var toggleLink = document.getElementById("toggleProvincies");
	var hidden = document.getElementById("hiddenProvincies");
	if (hidden.className.indexOf('hideThisNode') != -1) {
		hidden.className = '';
		toggleLink.className += ' active';			
	} else {
		hidden.className = 'hideThisNode';
		toggleLink.className = toggleLink.className.replace(/\s?active/g, '');
	}
}

function checkAll(obj, zonderBU) {
	if (zonderBU==null || zonderBU == "undefined" || !zonderBU)
		var provincieList = new Array("NH", "ZH", "UT", "NB", "ZL", "LB", "FR", "GR", "DR", "OV", "GE", "FL", "BU")	
	else
		var provincieList = new Array("NH", "ZH", "UT", "NB", "ZL", "LB", "FR", "GR", "DR", "OV", "GE", "FL")
	
	for(i=0;i<provincieList.length;++i) {
		objCheck = document.getElementById("prov_"+ provincieList[i]);
		objCheck.checked = obj.checked
		var hidden = document.getElementById("hiddenProvincies");
		
		if(objCheck.checked==false && hidden.className.indexOf('hideThisNode') != -1)
			toggleProvincies()
	}
}


// globals, omdat ze ook gebruikt worden in het zetten van de cookies
var strSoortVacature
var strSpecialisatie
var strTypePraktijk

function createFTQuery(fieldClick) {
		
   //START toevoeging voor onthouden pagina (bij 'terug' navigatie)
	
	var pageString = "1~10~1~1"	//default
		
	 //pagina is geopend door een reload of via een 'terug' link; dus CV/VAC Page uit cookie halen
	if ( (fieldClick==null || fieldClick==false || fieldClick=="undefined") && location.href == document.referrer) {
		if (global_schermtype=="medewerkers") 
			pageString = getCookie("CVPage") 
		else
			pageString = getCookie("VACPage") 
	}
			
   //EIND toevoeging voor onthouden pagina
	
	var objSoortVacature = document.getElementById("SoortVacature")
	strSoortVacature    = objSoortVacature.options[objSoortVacature.selectedIndex].value;

	var objSpecialisatie = document.getElementById("kSpecialisatie")
	strSpecialisatie    = objSpecialisatie.options[objSpecialisatie.selectedIndex].value;

	var objTypePraktijk = document.getElementById("TypePraktijk")
	strTypePraktijk     = objTypePraktijk.options[objTypePraktijk.selectedIndex].value;

	var objHandvaardigheid = document.getElementById("kHandvaardigheid")
	strHandvaardigheid  = objHandvaardigheid.options[objHandvaardigheid.selectedIndex].value;

	var objToonAanbodSinds = document.getElementById("ToonAanbodSinds")
	strToonAanbodSinds  = objToonAanbodSinds.options[objToonAanbodSinds.selectedIndex].value;	
	
	//QUERY OPBOUWEN (veldwaarde niet meenemen als deze leeg is of "Alles" is geselecteerd)
	//LET OP: strQuery is een Global var, deze kan dus elk moment worden uitgelezen;
	//debug, tijdelijk 	
	var strFormType = "VAC"
	var strFormName = (strFormType == "VAC" ? "fmVacature" : "fmCV" );
	
	strQuery ="&Query="
	//soortvacature toevoegen
	if(strSoortVacature!="")
		strQuery +="([SoortVacature] CONTAINS " + strSoortVacature + ")"
	
	//soortspecialisatie toevoegen	
	if(strSpecialisatie!="" && strSoortVacature!="")
		strQuery += " AND ([kSpecialisatie] CONTAINS " + strSpecialisatie + ")"
	
	else if(strSpecialisatie!="")
		strQuery += "([kSpecialisatie] CONTAINS " + strSpecialisatie + ")"
	
	//handvaardigheid toevoegen		
	if(strSpecialisatie=="" && strSoortVacature=="" && strHandvaardigheid!="")
		strQuery += "([kHandvaardigheid] CONTAINS " + strHandvaardigheid + ")"				
	
	else if(strHandvaardigheid!="" && (strSpecialisatie!="" || strSoortVacature!=""))
		strQuery += " AND ([kHandvaardigheid] CONTAINS " + strHandvaardigheid + ")"
	
	//TypePraktijk toevoegen
	if(strSpecialisatie=="" && strSoortVacature=="" && strHandvaardigheid=="" && strTypePraktijk!="")
		strQuery+="([TypePraktijk] CONTAINS " + strTypePraktijk + ")"
	
	else if(strTypePraktijk!="" && (strSpecialisatie!="" || strSoortVacature!="" || strHandvaardigheid!=""))
		strQuery+=" AND ([TypePraktijk] CONTAINS " + strTypePraktijk + ")"
	
	//======== Aantal uren toevoegen
	// Aantal uren wordt toegevoegd [AantalUren] CONTAINS 1|2|3  ( de "pipe" dient als of-teken )	
	var objAantalUren_1   = document.getElementById("AantalUren_1");
	var objAantalUren_2   = document.getElementById("AantalUren_2");
	var objAantalUren_3   = document.getElementById("AantalUren_3");

	if(strSpecialisatie=="" && strSoortVacature=="" && strHandvaardigheid=="" && strTypePraktijk=="" && (objAantalUren_1.checked==true || objAantalUren_2.checked==true || objAantalUren_3.checked==true))
		var strAantalUren = "([AantalUren] CONTAINS "	
	else
		var strAantalUren = " AND ([AantalUren] CONTAINS "			
	
	//Nu de waarden voor het aantal uren toevoegen	
	if(objAantalUren_1.checked==true)
		strAantalUren += "1"

	if(objAantalUren_1.checked==false && objAantalUren_2.checked==true)
		strAantalUren += "2"		

	else if(objAantalUren_1.checked==true && objAantalUren_2.checked==true)
		strAantalUren+= "|2"

	if(objAantalUren_1.checked==false && objAantalUren_2.checked==false && objAantalUren_3.checked==true)
		strAantalUren+= "3"

	else if((objAantalUren_1.checked==true || objAantalUren_2.checked==true) && objAantalUren_3.checked==true )
		strAantalUren+= "|3"

	//Aantal uren mag niet leeg zijn
	strAantalUren += ")"
	if(objAantalUren_1.checked==false && objAantalUren_2.checked==false && objAantalUren_3.checked==false) {
		alert('Het Aantal uren mag niet leeg zijn!')
		return false
	}
	strQuery+=strAantalUren
	//======== Einde aantal uren toevoegen
	
	//======== Locatie ( provincie ) toevoegen
	// De locatie wordt toegevoegd ([Locatie] CONTAINS NH|ZH|LB|BU) ( het pipe teken wordt als of-teken gebruikt )
	var provincieList = new Array("NH", "ZH", "UT", "NB", "ZL", "LB", "FR", "GR", "DR", "OV", "GE", "FL", "BU")
	var provincieChecked="";
	var amountChecked = 0;
	var strLocatie = "";
	for(i=0;i<provincieList.length;++i) {
		var objProv = document.getElementById("prov_" + provincieList[i])

		if(objProv) {
			if (objProv.checked==true) {
				provincieChecked+=provincieList[i] + "|"
				amountChecked++
			}
		}
	}
	//nu nog de of tekens een beetje opschonen. Hier wordt bij 1 provincie de laatste | gestripped. Anders wordt de laatste | gestripped.
	if(amountChecked==1)
		provincieChecked = provincieChecked.replace("|", "")
	else
		provincieChecked = provincieChecked.substr(0, (provincieChecked.length-1))

	if(document.getElementById("alleprovincies").checked == false)
		strLocatie = " AND ([Locatie] CONTAINS "	+ provincieChecked +  ")" 		
	
	if(amountChecked==0) {
		//"Alle provincies" is nu uitgeklikt, nu de lijst met resultaten leeg maken
		document.getElementById("searchResults").innerHTML = ""
		document.getElementById("aantalsearchResultsTop").innerHTML = ""
		return false;
	} else
		strQuery+=strLocatie

	//======== Einde Locatie ( provincie ) toevoegen
	
	//======== Toon sinds gedeelte toevoegen
		//Nodig voor [_CreationDate] in query
	var strToonSinds
	var nDate = new Date();
	var strMonth
	switch (strToonAanbodSinds) {	
		case "1":	//1 dag	
			nDate.setDate(nDate.getDate() - 1); 	
			strToonSinds = nDate.getDate() + "-" + (nDate.getMonth()+1) + "-" + nDate.getFullYear()	;		
			break;
			
		case "2": //1 week	
			nDate.setDate(nDate.getDate() - 7); 		
			strToonSinds = nDate.getDate() + "-" + (nDate.getMonth()+1) + "-" + nDate.getFullYear()	;			
			break;
			
		case "3": //2 weken
			nDate.setDate(nDate.getDate() - 14);		
			strToonSinds = nDate.getDate() + "-" + (nDate.getMonth()+1) + "-" + nDate.getFullYear()	;		
			break;
			
		case "4": //1 maand
			strMonth = ( nDate.getMonth()==0 ? 12 : nDate.getMonth() );		
			
			if (strMonth == 12) 
				strToonSinds = nDate.getDate() + "-" + (strMonth) + "-" + (nDate.getFullYear()-1);	
			else
				strToonSinds = nDate.getDate() + "-" + (strMonth) + "-" + nDate.getFullYear();	
				
			break;			
	}
		
	if(strToonAanbodSinds!=0)
		strQuery+=" AND [PlaatsingsDatum] > " + strToonSinds

	//======== Einde Toon sinds gedeelte
	
	
	//in het geval dat er niets is toegevoegd aan de query ( eigenlijk is de keuze dan alles...[Form]=fmVacature of [Form]=fm )
	if(strQuery=="&Query=")
		strQuery+="([Form]=fmVacature)"
		
	//viewnaam ophalen uit een div van het searchformulier
	var strSearchViewURL = document.getElementById("searchviewURL").innerHTML;
	var today = new Date()
	var t_url = strSearchViewURL + "&SearchMax=999&SearchOrder=3" + strQuery + "&timestamp="  + today
	
	
	var label = "searchResults"
	document.getElementById("aantalsearchResultsTop").innerHTML = "&nbsp;" 

	if(global_schermtype=="medewerkers")
		performSearch( label, t_url, pageString.split("~"), true, ["medewerker", "medewerkers" ], ["aantalsearchResultsTop", "medewerker", "medewerkers" ] )	
	else
		performSearch( label, t_url, pageString.split("~"), true, ["vacature", "vacatures" ], ["aantalsearchResultsTop", "vacature", "vacatures" ] )
	
	modifyCookie();
}


function modifyCookie(){
	//COOKIE SETTEN (waarden van Multi-value fields worden opgelagen met een punt gescheiden)
	//LET OP: IE kan maximaal 20 cookies aan in 1 bestand!
	var strExpireDate = "Sat, 31-Dec-2050 00:00:01 GMT";
	var strCookiePath = "/";

	//bepaal de aantaluren cookie
	var objAantalUren_1   = document.getElementById("AantalUren_1");
	var objAantalUren_2   = document.getElementById("AantalUren_2");
	var objAantalUren_3   = document.getElementById("AantalUren_3");
	var strAantalUren = "";
	//Nu de waarden voor het aantal uren toevoegen	
	if(objAantalUren_1.checked==true)
		strAantalUren += "1"
	
	if(objAantalUren_1.checked==false && objAantalUren_2.checked==true)
		strAantalUren += "2"		
	
	else if(objAantalUren_1.checked==true && objAantalUren_2.checked==true)
		strAantalUren+= ".2"
	
	if(objAantalUren_1.checked==false && objAantalUren_2.checked==false && objAantalUren_3.checked==true)
		strAantalUren+= "3"
	
	else if((objAantalUren_1.checked==true || objAantalUren_2.checked==true) && objAantalUren_3.checked==true )
		strAantalUren+= ".3"
	
	
	//Nu de waarden voor de provicies ophalen
	// De locatie wordt toegevoegd locatieNH.ZH.LB.BU) ( de punt wordt als scheidings gebruikt )
	var provincieList = new Array("NH", "ZH", "UT", "NB", "ZL", "LB", "FR", "GR", "DR", "OV", "GE", "FL", "BU")
	var provincieChecked="";
	var amountChecked = 0;
	for(i=0;i<provincieList.length;++i) {
		var objProv = document.getElementById("prov_" + provincieList[i])
		if(objProv) {
			if (objProv.checked==true) {
				provincieChecked+=provincieList[i] + "."
				amountChecked++
			}
		}
	}
	
	//Nu wordt de totale cookiestring samengevoegd.
	var strCookieValue = 	"soortvacature" + strSoortVacature + 
						"~specialisatie" +  strSpecialisatie  + 
						"~typepraktijk" + strTypePraktijk + 
						"~handvaardigheid" + strHandvaardigheid + 
						"~aantaluren" + strAantalUren + 	
						"~locaties" + provincieChecked + 
						"~toonsinds" +  strToonAanbodSinds + "~";
	//alert(strCookieValue)
	//later het formtype nog aanpassen.
	if(global_schermtype=="medewerkers")
		strFormType="CV" 
	else
		strFormType="VAC"
	
	//setCookie(strFormType , strCookieValue, strExpireDate, strCookiePath);
	setCookie(strFormType , strCookieValue, "", strCookiePath);
		
	username = getCookie('nmtusername')	
	password = getCookie('nmtpassword')	
	
	if (username!=null && username!="")
		setCookie('nmtusername',username, "", strCookiePath)
	
	if (password!=null && password!="")
		setCookie('nmtpassword',password, "", strCookiePath);
}

function setCookie (name, value, expires, path, domain, secure) {

	document.cookie = name + "=" + escape(value) +
		((expires) ? "; expires=" + expires : "") +
          ((path) ? "; path=" + path : "") +
          ((domain) ? "; domain=" + domain : "") +
          ((secure) ? "; secure" : "");
}

//Specifieke functie voor het setten van de velden Aantal uren en Locatie (dit zijn checkboxen)
function setFormCookies() {
	if(global_schermtype=="medewerkers")
		formType="CV" 
	else
		formType="VAC"

	var cookieString = getCookie(formType)
	if(cookieString)
		var cookieArray = cookieString.split("~")
	
	if(cookieArray) {
		for(i=0;i<cookieArray.length;++i) 	{
			//uren
			if(cookieArray[i].indexOf("aantaluren")>-1) 	{				
				var cookieValue = cookieArray[i].replace("aantaluren","")
				if(cookieValue.indexOf(".")>-1) {

					//eerst resetten omdat ik een cookie heb gevonden
					for(k=1;k<4;++k) {
						document.getElementById("AantalUren_" + k).checked = false
					}
					
					var cookieValueArray = cookieValue.split(".")
					for(j=0;j< cookieValueArray.length;++j) {
						//nu specifiek veld vullen					
						//alert( j +  " " + cookieValueArray[j] )
						document.getElementById("AantalUren_" + cookieValueArray[j]).checked = true
					}
				} else if(cookieValue!="") {

					//eerst resetten omdat ik een cookie heb gevonden
					for(k=1;k<4;++k) {
						document.getElementById("AantalUren_" + k).checked = false
					}				
					document.getElementById("AantalUren_" + cookieValue).checked = true	
				}
			}
			//locatie

			if(cookieArray[i].indexOf("locatie")>-1) {
				var cookieLocatieValue = cookieArray[i].replace("locaties","")				
				//eventueel oude "$" waarden vervangen door punten, dit is de oude manier van de cookie-separator.
				cookieLocatieValue = cookieLocatieValue.replace("$",".")				
				var provincieList = new Array("NH", "ZH", "UT", "NB", "ZL", "LB", "FR", "GR", "DR", "OV", "GE", "FL", "BU")
				if(cookieLocatieValue.indexOf(".")>-1) 	{
					cookieLocatieArray = cookieLocatieValue.split(".")
					if(cookieLocatieArray.length-1!=provincieList.length) 	{
						//eerst alle provincies resetten
						for(n=0;n<provincieList.length;++n) {
							document.getElementById("prov_" + provincieList[n]).checked = false						
						}
						//nu zijn niet alle provincies gekozen en zullen we de vinkjes moeten zetten.
						for(m=0;m<cookieLocatieArray.length-1;++m) {
							document.getElementById("prov_" + cookieLocatieArray[m]).checked = true
						}
						//uiteindelijk ook alle uitzetten en openklappen
						document.getElementById("alleprovincies").checked = false
						toggleProvincies()
					}
				}
				
			}
		}
	}
	//uiteindelijk na het zetten van de cookies wordt de createFTQuery() functie aangeroepen en het zoeken wordt gestart
	createFTQuery();
	
}

function deselectAlleProvincies() {
	var obj = document.getElementById("alleprovincies")
	
	if (obj.checked) obj.checked = false
	
}

/* ===================== einde  gedeelte is voor de Vacature bank =======================*/

/* ===================== Dit gedeelte is voor het uploaden van een CV ===================*/

//Deze functie haalt een CV op, op basis van de Remote_User of laat een lijst met aangemaakte vacatures zien,
// op basis van de Remote_User
function createVacatureBankUpload(label, typeVacature, modeFlag)  {

	var t_url=""	
	var t_Agent_url =""
	var now = Date.parse(new Date())
	loadjscssfile(SharedDb + "/Validations.js", "js")	
	
	if(typeVacature == "cv") {
	
		t_Agent_url=NTVBDb + "/agGetCV!OpenAgent&modeflag=" + modeFlag +"&timestamp=" + now  + "&" 
		HTTPAgent = getHTTPObject();
		
		if(HTTPAgent!=null) {
			HTTPAgent.open("GET", t_Agent_url, true)
			HTTPAgent.onreadystatechange = function() {
			
				if( HTTPAgent.readyState==4 || HTTPAgent.readyState == "complete" ) {
					try {
						var agentResp = getAJAXHTML(HTTPAgent.responseText)[0];
						t_url = agentResp
						//Hier komt de keuze op basis van de return value van t_url
						if(t_url!="kan cv niet vinden") {
					
							HTTPArray[label] = getHTTPObject();
							if (HTTPArray[label] != null)  {
									HTTPArray[label].open("GET", t_url , true)
									HTTPArray[label].onreadystatechange = function() {	
										if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
											try 	{
												var resp = getAJAXHTML(HTTPArray[label].responseText)[0];
												//per direct ook Validations.js laden, deze is nodig bij het submitten.
											
												var obj = document.getElementById(label)
												document.getElementById(label).innerHTML = resp
		
											} catch (err) {
												return;
											}
										}
									}
								
								HTTPArray[label].send(null)
							}
							
						} else 
							alert(' ik heb de CV niet kunnen vinden. Er wordt een nieuwe aangemaakt.')
								
					} catch (err) {
						return;
					}	
				}	
			}
		
			HTTPAgent.send(null)
		}
		
	} else 	{
		//eerst een stylesheet specifiek voor de view van alle vacatures laden
		loadjscssfile(NTVBDb + "/vacatureoverzicht.css", "css")	
		t_View_url = NTVBDb + "/vlVacaturesStamnrCategorized!OpenView&timestamp=" + now  + "&" 
		HTTPArray[label] = getHTTPObject();
		if(HTTPArray[label]!=null) {
			HTTPArray[label].open("GET", t_View_url, true)
			HTTPArray[label].onreadystatechange = function() {
				if( HTTPArray[label].readyState==4 || HTTPArray[label].readyState == "complete" )				{
					try 	{
						var resp = getAJAXHTML(HTTPArray[label].responseText)[0]
						//alert(resp)
						document.getElementById(label).innerHTML = resp
						
					} catch(err) {
						return;					
					}
				}
			}
			HTTPArray[label].send(null)
		}
	}
}

//Functie submit de CV en stuurt de velden naar Domino. Daarnaast wordt gekeken of de actie ook een Delete-actie is
//In het geval van deleten wordt er geredirect naar een hogere landingspagina ( vacaturebank.html )
function submitCV() {

	var obj = document.getElementById("overkoepelTab")
	var objDeleted = document.getElementById("Deleted")
	var objNewDoc = document.getElementById("newdocument") 
	var content = getInputs(document.getElementById("overkoepelTab"))
		
	//toevoegen computed gegevens (zijn geen input elementen)
	if (objNewDoc.innerHTML=="yes") {
		content += "&Specialist=" + document.getElementById("Specialist").innerHTML
		content += "&BigNummer=" + document.getElementById("BigNummer").innerHTML
		content += "&tDiplomaDatumBehaald_1=" + document.getElementById("tDiplomaDatumBehaald_1").innerHTML
		content += "&DiplomaPlaatsBehaald_1=" + document.getElementById("DiplomaPlaatsBehaald_1").innerHTML
	}
	
		
	var UNID = document.getElementById("UNID").innerHTML				

	if (objNewDoc.innerHTML=="yes") {
		objNewDoc.innerHTML = "no" 
		t_url = NTVBDb + "/fmCV!CreateDocument"			
	} else
		t_url = NTVBDb + "/0/"  + UNID + "!SaveDocument"

	CVFormReq = getHTTPObject();	

	if (CVFormReq != null) {
		CVFormReq.open( "POST", t_url + "&charset=utf-8", true)
		CVFormReq.onreadystatechange = function() {
			if( CVFormReq.readyState==4 || CVFormReq.readyState == "complete" ) {
				try {
					//var agentResp = CVFormReq.responseText;
					//Als de submit succesvol is verlopen, dan het document in readmode openen					
					if(objDeleted.value=="") {
					//createVacatureBankUpload( 'contentBlocksDiv0_vacatures', 'cv', 'opendocument' )
					//createVacatureBankUpload( 'readmodeCV', 'cv', 'opendocument' )
					} else 
						location.href = "/onlinediensten/nmt-tandartsvacaturebank.html"
				} catch (err) {
					return;
				}	
			}		
		}
		CVFormReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		CVFormReq.send(content)			
	}
}

//Functie redirect naar de landingspagina voor mijn-cv-plaatsen.
// Hierop gebeurt direct actie waardoor je eigen CV in edit mode wordt geladen
function editCV() {
	var t_url = "/onlinediensten/mijn-cv-plaatsen.html"
	location.href = t_url
}

//Functie past de einddatum aan zodat de verlenging uitgevoerd wordt
function verlengCV(nwEindDatum) {
	var curEindDatum = document.getElementById("EindDatum")
	curEindDatum.value = nwEindDatum
	document.getElementById("verloopdatum").innerHTML = nwEindDatum
	document.getElementById("verloopdatum").style.color = "#000000"	
	alert('Uw CV plaatsing is verlengd tot ' + nwEindDatum + '.\nDruk op \"Opslaan\" om te bevestigen.')
}


//functie zet het veld Deleted en werkt ook de EindDatum bij.
function deleteCV(nwDeleteDatum) {
	document.getElementById("Deleted").value = nwDeleteDatum
	document.getElementById("EindDatum").value = nwDeleteDatum
	document.getElementById("verloopdatum").innerHTML = nwDeleteDatum
	document.getElementById("verloopdatum").style.color = "#ff0000"
	alert('Uw CV wordt verwijderd.\nDruk op \"Opslaan\" om te bevestigen')
}

//Deze functie zet het veld "Deleted" en vult het veld met een datum
function deleteVacature(UNID) {

	msg = "Weet u zeker dat deze vacature verwijderd moet worden?";
	if (confirm(msg)) {
	
		t_url = NTVBDb + "/0/"  + UNID + "!SaveDocument"
		nDate= new Date()
		var tDate = nDate.getDate() + "-" + (nDate.getMonth()+1) + "-" + nDate.getFullYear();
		var content = "Deleted=" + tDate + "&EindDatum=" + tDate;		
		VacFormReq = getHTTPObject();	
		if (VacFormReq != null) {
			VacFormReq.open( "POST", t_url , true)
			VacFormReq.onreadystatechange = function() {
				if( VacFormReq.readyState==4 || VacFormReq.readyState == "complete" ) {
					try 	{
						//Als de submit succesvol is verlopen, dan opnieuw de huidige pagina laden
						createVacatureBankUpload( 'contentBlocksDiv0_vacatures', 'vacature', 'opendocument' )
					//	createVacatureBankUpload( 'readmodeCV', 'cv', 'opendocument' )
					} catch (err) {
						return;
					}	
				}		
			}
			VacFormReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			VacFormReq.send(content)			
		}	
	}
}

//Deze functie opent de vacature in edit-mode 
function editVacature(UNID) {

	if (UNID==null || UNID=="undefined")   //als geen ID dan bovenste (= nieuwste) openen
		t_url = NTVBDb + "/vlVacaturesStamnrDateSort/$first!editdocument" 
	else
		t_url = NTVBDb + "/0/" + UNID + "!EditDocument"
		
	VacFormReq = getHTTPObject();	
	
	if (VacFormReq != null)  {
	
		VacFormReq.open( "GET", t_url , true)
		VacFormReq.onreadystatechange = function() {
			if( VacFormReq.readyState==4 || VacFormReq.readyState == "complete" ) {
				try 	{
					resp = getAJAXHTML(VacFormReq.responseText)[0]
					document.getElementById("contentBlocksDiv0_vacatures").innerHTML = resp	
					
					//meteen naar tab 3 springen als UNID=null (het betreft dan een nieuwe vacature)
					if (UNID==null || UNID=="undefined") {
						document.getElementById("fotos_tab").className += " neighbourActive activeTab"
						document.getElementById("fotosTab").className += " activeTab"
						document.getElementById("praktijk_online_tab").className = "wizard_tab"
						document.getElementById("ikzoekTab").className += " hideThisNode"
						document.getElementById("ikzoek_tab").className.replace(/activeTab/g, "")
						document.getElementById("lightGreenTabs").className += " lastTabActive"
					}
				} catch (err) 	{
					//alert( err)
					return;
				}	
			}		
		}
		VacFormReq.send(null)			
	}		
}

//deze functie opent het formulier om een nieuwe vacature te plaatsen
function newVacature(arg)  {
	t_url = NTVBDb + "/fmVacature!Openform&remote_user=" + arg +"&includepraktijk=yes&"
	VacFormReq = getHTTPObject();	
	if (VacFormReq != null) 	{
		VacFormReq.open( "GET", t_url , true)
		VacFormReq.onreadystatechange = function() 		{
			if( VacFormReq.readyState==4 || VacFormReq.readyState == "complete" ) 			{
				try 	{
					//Als de submit succesvol is verlopen, dan opnieuw de huidige pagina laden
					resp = getAJAXHTML(VacFormReq.responseText)[0]					
					//alert(resp)
					document.getElementById("contentBlocksDiv0_vacatures").innerHTML = resp					
				} catch (err) {
					return;
				}	
			}		
		}
		VacFormReq.send(null)			
	}	
}

//Deze functie submit de vacature naar de server
function submitVacature( definitief) {
		
	var def = definitief==null || definitief=="undefined"? false : definitief	
	var obj = document.getElementById("overkoepelTab")
	var objDeleted = document.getElementById("Deleted")
	var objNewDoc = document.getElementById("newdocument") 
	var content = getInputs(document.getElementById("overkoepelTab"))

	var UNID = document.getElementById("UNID").innerHTML			
	var newToTab3 = false 	//true = als net nieuw aangemaakt, dan vac nieuw openen in tab 3
				
	if (objNewDoc.innerHTML=="yes") {
		newToTab3 = true
		objNewDoc.innerHTML = "no" 
		t_url = NTVBDb + "/fmVacature!CreateDocument"
		
	} else 
		t_url = NTVBDb + "/0/" + UNID + "!SaveDocument"

				
	VACFormReq = getHTTPObject();	
	if (VACFormReq != null) { 
		VACFormReq.open( "POST", t_url , true)
		VACFormReq.onreadystatechange = function() {
			if( VACFormReq.readyState==4 || VACFormReq.readyState == "complete" ) {
				try  {
					//als allereerste keer opgeslagen (dmv 'opslaan' in stap 2), dan vacature
					// opnieuw openen in tab 3. UNID is nog niet bekend (want doc is nieuw), 
					// dus null meegeven
					if (newToTab3) editVacature(null)	

				} catch (err) 	{
					return;
				}	
			}		
		}
		VACFormReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		VACFormReq.send(content)			
	}
}

//open de vacature in leesmodus na afronden van de editversie (aangeroepen na button "afronden")
function afrondenVacatureEdit(vacatureID) {

	alert( "Uw vacature is geplaatst of aangepast. Indien het een nieuwe vacature is, duurt het " +
	"maximaal 30 minuten voor uw vacature via 'vacature zoeken' te vinden is. U gaat nu naar uw vacature overzicht.")
	
	location.hash = "vacature:" + vacatureID
	
	var customAlert = document.getElementById("closeBtn")
		if (customAlert) {
			customAlert.onclick = function() { 
				removeCustomAlert();
				location.reload();
			}
		} else
			location.reload();	
}

//Functie past de einddatum aan zodat de verlenging uitgevoerd wordt
function verlengVacature(nwEindDatum) {
	var curEindDatum = document.getElementById("EindDatum")
	curEindDatum.value = nwEindDatum
	document.getElementById("verloopdatum").innerHTML = nwEindDatum
	document.getElementById("verloopdatum").style.color = "#000000"	
	alert('Uw Vacature plaatsing is verlengd tot ' + nwEindDatum + '.\nDruk op \"Opslaan\" om te bevestigen.')
}

function loadDatePicker() {
	//deze functie laadt dynamisch een stylesheet en een js file in om de date picker objecten te kunnen maken
	loadjscssfile(SharedDb + "/DatePicker.js", "js")	
	loadjscssfile(SharedDb + "/DatePicker.css", "css")	
}


//Deze functie toont een selectie box met alle mogelijke praktijken voor de ingelogde persoon
var winPrakProf
function selectPrakProf() {
	//=== if window is already open, give it focus
	if (winPrakProf != null && !winPrakProf.closed)
		winPrakProf.focus();
	
	var strUrl = NTVBDb + "/fdWebPrakProf!OpenForm";
	winPrakProf = window.open( strUrl, "winPrakProf", "width=400,height=200,resizable=yes,top=300,left=300");
}

//functie de mouse over van het calendar icoontje te regelen
function toggleImg(objImg) {
	var curSrc = objImg.src
	if(curSrc.indexOf("_off")>-1) { objImg.src = curSrc.replace("_off","_over")}
	else {objImg.src = curSrc.replace("_over","_off")	}
}

// Vink alle provincies+buitenland aan of uit
function toggleLocatie(blnOn)  {

	var elem = document.forms[0].elements;	
	for( var i = 0; i < elem.length; i++) 	{
		if (elem[i].name == "LocatieL" | elem[i].name == "LocatieR")
			elem[i].checked = blnOn;	
	}	
	var fldBuitenland	= document.getElementById("fldBuitenland")
	fldBuitenland.checked = blnOn;
}


// Vink veld LocatieAlle aan of uit bij wijzigen van provincie/buitenland
function toggleLocatieAlle() {
	var fldLocatieAlle	= document.getElementById("fldLocatieAlle")
	var fldBuitenland	= document.getElementById("fldBuitenland")
	//== Check eerst veld LocatieBuitenland
	fldLocatieAlle.checked = false;
}




function loadImages(UNID, imageURL) {

	var t_url = NTVBDb + "/vlImagesOpVacatureUNID?OpenView&restrictToCategory=" + UNID
	
	var targetObj = document.getElementById("images")
	loadplaatje = "<img src=\"" + SharedDb + "/ajaxloaderec5.gif\">"
	targetObj.innerHTML = " "
 
	var ImagesReq = getHTTPObject();	

	if (ImagesReq != null) {
		ImagesReq.open( "GET", t_url , true)
		
		ImagesReq.onreadystatechange = function() {
		
			if( ImagesReq.readyState==4 || ImagesReq.readyState == "complete" ) {
				try 	{
					var resp = getAJAXHTML(ImagesReq.responseText)[0];
					
					//database-id's vars invullen die in view niet voorhanden waren
					resp = resp.replace(/~~NTVBID~~/g, NTVBDb.substring(3, NTVBDb.length-4))
					resp = resp.replace(/~~SharedDb~~/g, SharedDb)
					
					targetObj.innerHTML = resp					
					
				} catch (err) {
					//alert( err)
					return;
				}	
			}		
		}
		ImagesReq.send(null)			
	} 	
}

function replaceNoDocumentsFound(replaceMessage)  {
	var objCheck = document.getElementById("CheckDocumentsFoundMessage")
	
	if(objCheck == null || objCheck == "undefinded"){
		objCheck = document.getElementById("NoDocumentsFoundMessage")
	}
	
	var msg = objCheck.innerHTML.toLowerCase()
	if(msg.indexOf("no documents found") >-1) {
		var objMessage = document.getElementById("NoDocumentsFoundMessage")
				
		if(replaceMessage) 
			objMessage.innerHTML = "<strong>"+ replaceMessage + "</strong>"					
		else
			objMessage.innerHTML = "<strong>Er is niets gevonden</strong>"	

		//verberg de embedded view (incl. no documents found melding)
		objCheck.style.display = "none"
		
		objMessage.style.display = "block" 
		objMessage.style.border  = "solid 0px red" 
		objMessage.style.width = "400px"
		objMessage.style.position = "absolute"
		objMessage.style.top = "160px"
		objMessage.style.left = "52px"
	}
}


/* ===================== Einde gedeelte voor het uploaden van een CV ===================*/


//Plaats KWIS zoekblokje
//<param name="label">plek op de pagina</param>
//<param name="blokje">naam vh blokje zoals door beheerder geconfigureerd</param>
//<param name="resultURL">te openen resultaatpagina na zoeken (is contentpagina) [OPTIONEEL]</param>
function createKWIS( label, blokje, resultURL) {
	HTTPArray[label] = getHTTPObject();	

	var resultURL = resultURL==null || resultURL=="undefined"? "" : resultURL

	if (HTTPArray[label] != null) {
		HTTPArray[label].open("GET", ComponentsDb + "/vlJSONComponenten?readViewEntries&outputformat=JSON&restrictToCategory=" + blokje, true)

		HTTPArray[label].onreadystatechange = function() {	

			var KWISHTML = "";
			var links = "";
			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
				try {

					var resp = HTTPArray[label].responseText;
					var viewObject = eval("(" + resp + ")");
					var entries = viewObject["viewentry"];
					
				// 'meer weten' links zoals door beheerder aangemaakt in blokje-configuratie
					type = getType( entries[0].entrydata[3] )
					if (type == "textlist") {
						//loop door lijst met links heen
						for (x=0; x < entries[0].entrydata[3].textlist.text.length; x++) {
							links += entries[0].entrydata[3].textlist.text[x][0] ;
						}
					} else { //slechts één link
						links = entries[0].entrydata[3][type][0] ;	
					}	
										
					var zoeklink = "javascript:searchKWIS('" + resultURL + "')"
										
				
				// HTML voor zoekvelden; vaste HTML 
					KWISHTML += "<h3 class=\"bij\">Bij &amp; Nascholing</h3>"
					KWISHTML += "<div id=\"zoek_box\" class=\"clearfix kwiszoek\">"
					KWISHTML += "<fieldset>"
					KWISHTML += "<label for=\"zoek\">Zoek in Kwis Aanbod</label>"
					KWISHTML += "<input id=\"ZoekKWIS\" onKeyPress=\"return catchEnter(event, 'KWIS', '"
					KWISHTML += resultURL + "')\"/>"
					KWISHTML += "<a class=\"btnshort\" href=\"" + zoeklink + "\">zoek</a>"
				
					//links naar 'zoek op onderwerp/aanbieder' alleen plaatsen als die pagina in het
					//CMS is aangemaakt					
					if (resultURL != "") {					
						KWISHTML += "<a href=\"" + resultURL + "\" class=\"link\">Zoek op onderwerp</a>"
						KWISHTML += "<a href=\"" + resultURL + "\" class=\"link\">Zoek op aanbieder</a>"
									
					}
	
					KWISHTML += "</fieldset>"

				// HTML voor 'meer weten' links
					KWISHTML += "<div class=\"kwiszoek\">"
					KWISHTML += "<h4>Meer weten over Kwis?</h4>"
					KWISHTML += links					
					KWISHTML += "</div></div>"
								
				// schrijf HTML naar scherm

					document.getElementById(label).innerHTML = KWISHTML
				
					
				} catch( err) {
					return false;
				}
			}
		}
		HTTPArray[label].send(null)
	}
}

//geef KA overzicht van gebruiker
//<param name="label"></param>
//<param name="blokje"></param>
//<param name="jaar">te tonen jaar</param>
function createKAOverzicht( label, blokje, jaar ) {

	//initieel leeg; dan huidig jaar nemen
	if (jaar==null || jaar=="undefined" || jaar=="") {	
		t = new Date();	
		dispjaar = t.getFullYear()
	} else
		dispjaar = jaar	

	var querystring = "&blokje=" + blokje	
	openURL( label, KWISDb + "/vlOverzichtStamNrJaar/" + Username + "~" + dispjaar + "!OpenDocument" + querystring )	

}


var arrAlfabet = [	"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",
				"Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" ]		


//toon alfabetische index voor lijst
//<param name="view">"onderwerp" of "aanbieder"</param>
//<param name="letter">default geselecteerde letter [optioneel]</param>
function dispAlfabet( view, letter )   {
	
   var defaultLetter = letter!="undefined" && letter != null? letter : ""	

   //alleen als gebruiker eerste keer op dit tabblad klikt opbouwen
   if (document.getElementById(view + "Index").innerHTML == "") {
	
	var dispview = KWISDb + "/JSONvlWebKAsOp" + view + "!readviewEntries&outputformat=JSON"

	var HTTPView = getHTTPObject()
	
	if (HTTPView != null) {
		HTTPView.open("GET", dispview, true)

		HTTPView.onreadystatechange = function() {	
		
			var alfabetHTML = ""

			if ( HTTPView.readyState == 4 || HTTPView.readyState == "complete" ) {
				try {
					var resp = HTTPView.responseText	
					var viewObject = eval("(" + resp + ")");
					var entries = viewObject["viewentry"];			
					var selected = "";
					
					var availableLetters = "";
					for (i=0; i < entries.length; i++) 
						availableLetters += entries[i].entrydata[0].text[0].toUpperCase() + "~" 	
					
					arrAvLetters = availableLetters.split("~")					
					
					for (a=0; a < arrAlfabet.length; a++) {
						var first = a==0? "first" : ""
						if (isMember( arrAlfabet[a], arrAvLetters) ) {
							var selected = arrAlfabet[a] == defaultLetter? " selected" : ""
										
							alfabetHTML += "<a id=\"" + view + arrAlfabet[a] + "\" class=\"" + first + " has_items" + selected + "\" href=\"javascript:KALijst('"
							alfabetHTML += view + "', '" + arrAlfabet[a] + "')\">"
							
						} else	
							alfabetHTML += "<a class=\"" + first + "\">"
							
						alfabetHTML += arrAlfabet[a] + "</a>&nbsp;"		
					}

					document.getElementById(view + "Index").innerHTML = alfabetHTML

					if (defaultLetter) KALijst(view, defaultLetter)
	
				
				} catch (err) {
					// alert( err )
					return
				}	
			}
		}
		HTTPView.send(null)
	}
   }
}

//toon KA lijst
//<param name="view">te tonen view; 'onderwerp' of 'aanbieder'</param>
//<param name="letter">te tonen letter</param>
function KALijst( view, letter ) {
	
	//initiëel nog geen letter gekozen
	if (letter=="")  return;

	//maak de geselecteerde letter oranje, en de vorige geselecteerde weer zwart
	for (a=0; a < arrAlfabet.length; a++) {
		if (arrAlfabet[a] == letter) 
			document.getElementById(view+letter).className += " selected" 
		else {
			lc = document.getElementById(view+arrAlfabet[a]);
			if (lc!=null && lc!="undefined") 
				lc.className = lc.className.replace("selected", "") 
		}	
	}

 	//sla gekozen letter op in cookie om automatisch te tonen bij volgende keer openen pagina (binnen sessie)
	addCookie( "KWISLetter", view + "~" + letter, true )	

	//spring naar de gewenste letter (singlecategory) in de view
	var dispcatview = KWISDb + "/JSONvlWebKAsOp" + view + "!readviewEntries&outputformat=JSON"

	var HTTPCatView = getHTTPObject()
	
	if (HTTPCatView != null) {
		HTTPCatView.open("GET", dispcatview + "&restricttocategory=" + letter, true)

		HTTPCatView.onreadystatechange = function() {	
		
			var viewHTML = "<ul class=\"nieuws_all_list\">"

			if ( HTTPCatView.readyState == 4 || HTTPCatView.readyState == "complete" ) {
				try {
					var resp = HTTPCatView.responseText
					var viewObject = eval("(" + resp + ")");
					var entries = viewObject["viewentry"];			
					
					if (entries != null) {
						for (i=0; i < entries.length; i++) 
							viewHTML += entries[i].entrydata[0].text[0] ;
					
						document.getElementById("viewKAOp" + view).innerHTML = viewHTML + "</ul>"
					}
				
				} catch (err) {
					// alert( err )
					return
				}	
			}

		}
		HTTPCatView.send(null)
	}
}


//toon KAs van een bepaalde aanbieder
//<param name="idParent">id van het LI item van de aanbieder waarop geklikt is</param>
//<param name="aanbieder">naam van de aanbieder</param>
function dispKAsAanbieder(idParent, aanbieder ) {

	if (document.getElementById(idParent).className == "selected") {
		document.getElementById(idParent).className = ""
		document.getElementById(aanbieder).innerHTML = ""
		return;
	}

	var HTTPKas = getHTTPObject()

	if (HTTPKas != null) {
		HTTPKas.open("GET", KWISDb + "/JSONvlWebAlleKAsOpAanbieder!readviewEntries&outputformat=JSON&restricttocategory=" + aanbieder, true)

		HTTPKas.onreadystatechange = function () {

			var kalistHTML = "<ul class=\"zoekresultaten\">"

			if ( HTTPKas.readyState == 4 || HTTPKas.readyState == "complete") {
				try{
					var resp = HTTPKas.responseText
					var viewObject = eval("(" + resp + ")");
					var entries = viewObject["viewentry"];			
					
					if (entries != null) {
						for (i=0; i < entries.length; i++) 
							kalistHTML += entries[i].entrydata[0].text[0] ;
					}
					
					kalistHTML +=  "</ul>"
					document.getElementById(aanbieder).innerHTML = kalistHTML
					
					document.getElementById(idParent).className = "selected"
				
				} catch (err) {
				//	alert( err + " " + kalistHTML )
					return;
				}	
			}
		}
		HTTPKas.send(null)
	}
}

//vul gezamelijke WG lijst bij laden pagina, nodig voor validatie
function fillWGFields() {
	var LR   = document.getElementById("LocatieLR")
	var L    = getElementsByName_iefix("input", "LocatieL")
	var R    = getElementsByName_iefix("input", "LocatieR")
	var BL   = document.getElementById("fldBuitenland")
	var Alle = document.getElementById("fldLocatieAlle")
	var x;
	var y;

	LR.value = ""

	for (x=0; x < L.length; x++) 
		if (L[x].checked) LR.value += L[x].value
		
	for (y=0; y < R.value; y++)	
		if (R[x].checked) LR.value += R[x].value

	LR.value += (BL.checked? BL.value : "") + (Alle.checked? Alle.value : "")

}

// ** HIERONDER FUNCTIES T.B.V. PRAKTIJKBEMIDDELING **

//Praktijkbemiddeling: eigen aanbod van ingelogde gebruiker tonen
function createPBEigenPraktijk( label, blokje ) {

	var infoHTML = ""

	var openPB = getHTTPObject()
	if (openPB == null) return

	openPB.open( "GET", PBSDb + "/vlAanbodOpStamnr/" + Username + "!opendocument", true )
	
	openPB.onreadystatechange = function() {
	
		if (openPB.readyState == "complete" || openPB.readyState == 4) {
		
			try {
				var resp = getAJAXHTML(openPB.responseText)[0]

				//melding tonen als geen aanbod gevonden is 
				if (resp.indexOf("Error 404") > -1) {
					
					if (Username=="Anonymous")
						infoHTML = "&nbsp;&nbsp;Log in om uw eigen praktijkaanbod te bekijken."
					else
					 	infoHTML = "&nbsp;&nbsp;U heeft geen eigen praktijkaanbod (op de website) staan."

					document.getElementById(label).innerHTML = infoHTML	
					return
				} 
				
				infoHTML = resp	
			
				//als er geen tekst in de content boven dit blokje is gezet, dan de inhoud in div
				//  'contentcontainer' zetten ipv label, zodat geen extra witregels erboven
				//   verschijnen (is dus puur een cosmetisch dingetje)
				var con = document.getElementById("contenttextBlock")
				if (con==null || con=="undefined") 
					document.getElementById("contentcontainer").innerHTML = infoHTML
				else
					document.getElementById(label).innerHTML = infoHTML
				
				//hide-when regels op zojuist geopend praktijkaanboddocument toepassen en
				// meteen alle info van de aanbieder (=gebruiker) tonen	
				hidewhensPBSDocument()		
				dispPBSInfo()
	
			} catch (err) {
				// alert( err )
			}
		}
	}
	
	openPB.send(null)
}


//Praktijkbemiddelingsaanvraagformulier tonen
// formnaam = form dat gebruikt moet worden (fmAanbod of fmVraag)
// Na submitten wordt in PBS-db een document met form = 'formnaam' aangemaakt
function createPBForm( label, blokje, formnaam ) {

	var formURL = PBSDb + "/" + formnaam + "!openform"
	var htmlform = ""
	
	var openURL = getHTTPObject()
	if (openURL == null) return

	//testen of inlogscherm terugkomt; zoja dan dat tonen, zonee dan iframe aanmaken met het formulier	
	openURL.open("GET", formURL, true)
		
	openURL.onreadystatechange = function() {
	
	  	if ( openURL.readyState == "complete" || openURL.readyState == 4) {
			htmlform = getAJAXHTML( openURL.responseText)[0]
				
			if ( htmlform.indexOf("loginform") >-1) 
				document.getElementById(label).innerHTML = htmlform
	
			else {
	
				var iFrame = document.createElement("iframe")
				iFrame.src = formURL
	
				if (formnaam=="fmAanbod") {
					iFrame.width = 480
					iFrame.height = 2220
					iFrame.frameBorder = 0
					iFrame.id = "PBFormulier"
					
				} else {
					iFrame.width = 480
					iFrame.height = 1180
					iFrame.frameBorder = 0
					iFrame.id = "PBFormulier"
				}
			
				document.getElementById(label).appendChild( iFrame)
			}	
		}   
	}
	openURL.send(null)	
}


//vul afdeling- en praktijkinformatie initiëel (functie wordt aangeroepen bij laden PB-formulier)
// reInit = false als deze functie via een click op het formulier wordt aangeroepen
// reInit = true of null, als deze functie via (her)laden van de pagina wordt aangeroepen
function initPBForm( formname, reInit ) {

	reInit = (reInit==null || reInit=="undefined"? true : reInit);

	var afddiv = document.getElementById("afdelingField")
	
	if (afddiv != null && afddiv != "undefined") {
	//functie wordt via formulier in iFrame aangeroepen, dus globale vars via parent uitlezen
		document.getElementById("afdelingField").value = parent.dispAfdeling
		document.getElementById("afdelingCell").innerHTML = parent.dispAfdeling
	}	
		
	if (formname=="vraag") {						//VRAAG-document
	
	} else { 									//AANBOD-document

		kiesPraktijk(reInit);
	
		//toon juiste tabel in tabblad praktijkgegevens (overdracht,verhuur of vrije vestiging)
		// 1  = praktijkoverdracht
		// 2  = vrije vestiging
		// 3  = verhuur
		var soortaanbod = document.getElementById("soortAanbod").selectedIndex

		//toon juiste tabel en hide de andere twee
		document.getElementById("Praktijktabel_1").style.display = "none"
		document.getElementById("Praktijktabel_2").style.display = "none"
		document.getElementById("Praktijktabel_3").style.display = "none"
		
		if (soortaanbod > 0) 
			document.getElementById("Praktijktabel_" + soortaanbod).style.display = ""

		//dingetjes die moeten gebeuren per soort aanbod
		if (soortaanbod==1) {				//Praktijkoverdracht

			var huisvesting = getElementsByName_iefix("input", "PoHuisvestingChoiceTX")
			togglePBRows("huisvesting", huisvesting[0].checked? "Ja" : "Nee")
	
			var goodwill = getElementsByName_iefix("input", "PoGoodwillChoiceTX")	
			togglePBRows("goodwill", goodwill[0].checked? "Ja" : "Nee")
	
			var inventaris = getElementsByName_iefix("input", "PoInventarisTX")
			togglePBRows("inventaris", inventaris[0].checked? "Ja" : "Nee")
		
			fillAanvangsDatum( getElementsByName_iefix("input", "PoDatumChoiceTX"), "PO" )		
			fillAanvangsDatum( getElementsByName_iefix("input", "VvDatumChoiceTX"), "VV" )
			fillAanvangsDatum( getElementsByName_iefix("input", "VpDatumChoiceTX"), "VP" )
		
			var koophuur = getElementsByName_iefix("input", "PoKoopHuurChoiceTX")

			if (koophuur[0].checked) togglePrijsCell("koop")
			if (koophuur[1].checked) togglePrijsCell("huur")
				
		} else if (soortaanbod==2)	{		//Vrije vestiging
		
			//fillGemeenten( document.getElementById("praktijkProvincie").value) 
	
		} else {							//Verhuur praktijk
			var vpkoophuur = getElementsByName_iefix("input", "VpKoopHuurChoiceTX")
			
			if (vpkoophuur[0].checked) toggleVpPrijsCell("koop")
			if (vpkoophuur[1].checekd) toggleVpPrijsCell("huur")
			
		}
	}	
}


//sla wijzigingen op en maak document aan in database PBS
function submitPBForm( ) {

	//toegevoegde bestanden controleren (alleen bij aanbod-formulier)
	if (document.getElementById("FileUpload1") != "undefined" && 
		document.getElementById("FileUpload1") != null) {

	      var wrongPictures = "";

	      for (i=1; i < 6; i++) {
     	       var uplfile = document.getElementById("FileUpload" + i).value
          	  var filenaam = uplfile.substring( uplfile.lastIndexOf("\\"), uplfile.length)

	            if (filenaam.indexOf(" ") > -1) {
     	             if (wrongPictures == "")
          	              wrongPictures += "Foto('s) <b>" + i + "</b>"
               	   else
                    	    wrongPictures += ", " + i
	            }
     	 }

	      if (wrongPictures != "") {
     	       alert( wrongPictures + " bevat(ten) een spatie in de bestandsnaam. Dit is niet toegestaan.<br/>" +
          	  "Hernoem de bestandsnaam en voeg opnieuw toe of kies een andere foto." )
	            return false;
     	 }
	}
	
	//gekozen provincies in veld 'voorkeurprovincieTX' zetten	(alleen bij vraag-formulier)
	var provincieList = new Array("NH", "ZH", "UT", "NB", "ZL", "LB", "FR", "GR", "DR", "OV", "GE", "FL", "BU")	

	if (document.getElementById("hiddenProvincies") != "undefined" && 
		document.getElementById("hiddenProvincies") != null) {

		for (provi = 0; provi < provincieList.length; provi++) {
			var prov = document.getElementById("prov_" + provincieList[provi]);

			//met komma's scheiden (veld = allow multiple values, delimiter = comma)
			if ( prov.checked)
				document.getElementById("voorkeurProvincieTX").value += prov.value + ","
		}
	}
	
	//formulier verzenden (zowel vraag- als aanbodformulier)
	if (validateElementById("versturenTab"))
     	document.forms[0].submit()
}



//'hide-whens' uitvoeren voor PBSdocument in readmode
function hidewhensPBSDocument( ) {

	//patiëntenbestand en behandelkamers tonen als dit is aangevinkt op het document
	if (document.getElementById("AantalPatientenTonen").innerHTML=="")
		var toonPatienten = false
	else
		var toonPatienten = true
	
	if (document.getElementById("AantalKamersTonen").innerHTML=="")
		var toonKamers = false
	else
		var toonKamers = true

	if (toonPatienten) document.getElementById("rowPatienten").style.display = ""
	if (toonKamers) document.getElementById("rowKamers").style.display = ""

	if (!toonPatienten && !toonKamers)
		document.getElementById("rowPraktijk").style.display = "none"

	//omschrijving is wel/niet ingevuld
	if (document.getElementById("cellOmschrijving").innerHTML != "")
		document.getElementById("tabelOmschrijving").style.display = ""
	
	//afbeeldingen tonen
	addAfbeeldingenPBS( document.getElementById("RefNr").innerHTML )	  

	if (document.getElementById("StamNr").innerHTML == Username) 
		//als gebruiker de aanbieder zelf is, dan link toevoegen naar de volledige informatie
		document.getElementById("openInformatie").style.display = ""
		
	else {
		//als gebruiker niet de aanbieder zelf is, dan tekst over contactinfo tonen
		document.getElementById("contactInfo").style.display = ""			
		
		//overige info ook echt verwijderen, zodat die ook niet via de source te zien is! 
		document.getElementById("totalContent").removeChild(document.getElementById("PraktijkAanbieder") )

		return;
	}
	
	var soortAanbod = document.getElementById("soortAanbod").innerHTML

	if (soortAanbod == null || soortAanbod == "undefined")  {	//VRAAG-document
		//(vooralsnog) niet van toepassing; vraag-document wordt niet op het web getoond

	} else {											//AANBOD-document

		if (soortAanbod=="Praktijkoverdracht") {
			//hide-whens voor Praktijkoverdracht
			document.getElementById("Praktijktabel_1").style.display = ""

			if (document.getElementById("cellDiffSpec").innerHTML != "")
				document.getElementById("rowDiffSpec").style.display = ""

 			var huisvesting = document.getElementById("huisvesting").innerHTML
			var koophuur = document.getElementById("koophuur").innerHTML
			var goodwill = document.getElementById("goodwill").innerHTML
			var inventaris = document.getElementById("inventaris").innerHTML			

			if (huisvesting=="Ja") {
				document.getElementById("huisvestingSoort").style.display=""
				document.getElementById("huisvestingKoop").style.display=""
				document.getElementById("huisvestingVraagprijs").style.display=""
				document.getElementById("huisvestingOpmerkingenKop").style.display=""
				document.getElementById("huisvestingOpmerkingenVeld").style.display=""
		
				document.getElementById(koophuur+"label").style.display = ""	
				document.getElementById(koophuur+"prijs").style.display = ""

				togglePrijsCell(koophuur)
			}

			if (goodwill=="Ja") {
				document.getElementById("goodwillVraagprijs").style.display=""
				document.getElementById("goodwillOpmerkingenKop").style.display=""
				document.getElementById("goodwillOpmerkingenVeld").style.display=""
			}

			if (inventaris=="Ja") {
				document.getElementById("inventarisVraagprijs").style.display=""
				document.getElementById("inventarisOpmerkingenKop").style.display=""
				document.getElementById("inventarisOpmerkingenVeld").style.display=""	
				document.getElementById("inventarisTaxatiewaarde").style.display=""
				document.getElementById("inventarisTaxateur").style.display=""
				document.getElementById("inventarisAmalgaam").style.display=""
				document.getElementById("inventarisInventarisatie").style.display=""
			}
		
		} else if (soortAanbod=="Vrije vestiging") {
		//hide-whens voor Vrije Vestiging
			document.getElementById("Praktijktabel_2").style.display = ""
			
			//alleen de rijen tonen waarin iets is ingevuld; de rest op display=none laten staan
			for (i=2; i < 14; i++) {		//i=1 is gemeenten; is depricated
				if (document.getElementById("cell_" + i).innerHTML.toLowerCase() != "<br>")
					document.getElementById("row_" + i).style.display = ""
			}
			
		} else {
		//hide-whens voor Verhuur Praktijkruimte
			document.getElementById("Praktijktabel_3").style.display = ""
			
			toggleVpPrijsCell( document.getElementById("vpkoophuur").innerHTML)		
			
		}	
	}	
}

//toont informatie voor gebruiker die eigen aanbod bekijkt en op de link geklikt heeft om
// alle info te willen zien
function dispPBSInfo() {
	document.getElementById("PraktijkAanbieder").style.display = ""   //alle info
	document.getElementById("openInformatie").style.display = "none"  //link naar alle info
}


//global var
var arrPBSPics = new Array();

//haal alle afbeeldingen op die bij dit aanbod horen, stop die in arrPBSPics en toon de eerste daarvan 
//  in div "PraktijkAfbeeldingen"
function addAfbeeldingenPBS( key ) {
	var target = document.getElementById("PraktijkAfbeeldingen")
	if (target == null || target=="undefined") return

	var afbURL = getHTTPObject()
	if (afbURL==null) return
	
	afbURL.open("GET", CMSDb + "/getPraktijkAfbeeldingen!openAgent&key=" + key, true)
	
	afbURL.onreadystatechange = function() {
		if (afbURL.readyState==4 || afbURL.readyState == "complete") {
			try{
				//resp bevat lijst met URLs van afbeeldingen
				var resp = afbURL.responseText
				
				if (resp.indexOf("LEEG") > -1) return; 		//geen foto's toegevoegd
							
				arrResp = eval( resp )
									
				//plaatjes in array 'arrPics' stoppen						
				for (i=0; i < arrResp.length; i++) {
					arrPBSPics[i] = new Image()
					arrPBSPics[i].src = arrResp[i]
					arrPBSPics[i].alt = "(kan afbeelding " + (i+1) + " niet weergeven)"
					arrPBSPics[i].title = "afbeelding " + (i+1)
				}	
			
				if (arrPBSPics.length > 0)
					displayPBAfbeelding(target, 0 )	//initieel de eerste tonen
						
			
			} catch(err) {
				//alert(err)
			}
		}
	}
	
	afbURL.send(null)
}


//toon één plaatje (op positie index) uit de array 
// 'target' is id van de div waarin html gezet moet worden
function displayPBAfbeelding( target, index ) {

	var targettext = "document.getElementById('PraktijkAfbeeldingen')"

	var prevIndex = index==0? arrPBSPics.length-1 : index-1
	var nextIndex = index==arrPBSPics.length-1? 0 : index+1

	HTML = "<div>"
	HTML += "<img width=226 height=160 border=0 src='" + arrPBSPics[index].src + "'"
	HTML += " alt='" + arrPBSPics[index].alt + "' title='" + arrPBSPics[index].title + "'>"

	if (arrPBSPics.length > 1) {
		HTML += "<table><tr><td width=160>"
		HTML += "<a style=\"cursor:pointer\" onClick=\"displayPBAfbeelding(" + targettext + ", "
		HTML += prevIndex + ")\"><img align=right src=\"" + SharedDb + "/btn_prev.gif\"/></a>"
		HTML += "</td><td width=160 style=\"margin-right:8px;\">"
		HTML += "<a style=\"cursor:pointer\" onClick=\"displayPBAfbeelding(" + targettext + ", " 
		HTML += nextIndex + ")\"><img src=\"" + SharedDb + "/btn_next.gif\"></a>"
		HTML += "</td></tr></table>"
	}
	
	HTML += "</div>"	

	target.innerHTML = HTML
}


//soort = welk aanvangsdatumveld wordt bedoeld (PO, VV of verhuur)
function fillAanvangsDatum( aanvangsdatum, soort ) {
	for (i=0; i < 2; i++) {
		if (aanvangsdatum[i].checked)
			initAanvangsDatum( aanvangsdatum[i].value, soort)
	}
}

//keus = gemaakte keus in het datumoptie veld (per datum, overleg)
//soort = welk type aanbod (PO = overdracht, VV = vrije vestiging, VP = verhuur)
function initAanvangsDatum( keus, soort ) {
	var datumveld = document.getElementById("aanvangsDatum" + soort)
	var datumicon = document.getElementById("iconAanvangsdatum" + soort)
	datumveld.style.display = ""
	datumicon.style.display = ""		
	
	var today = new Date()
	var month = "0" + (today.getMonth()+1	)
	var monthFormat = month.substring( month.length-2, month.length)
	var day = "0" + today.getDate()
	var dayFormat = day.substring( day.length-2, day.length)
	
	if (keus == "in overleg") {
		datumveld.value = ""
		datumveld.style.display = "none"	
		//datumicon.style.display = "none"  
	
	} else if (keus == "per direkt") {
		datumicon.style.display = "none"	
		datumveld.value = dayFormat + "-" + monthFormat + "-" + today.getFullYear()
		
	} else {	
	 // 	if (datumveld.value == "") 	
	 //	datumveld.value = dayFormat + "-" + monthFormat + "-" + today.getFullYear()			
	}
}

//toon lijst met werkverbanden waaruit gebruiker eentje kan kiezen, om gegevens van in te laten vullen
function kiesPraktijk( isInit ) {

	//bij het laden van de pagina isInit=true, zodat de gegevens van het eerste gevonden
	//  werkverband worden ingevuld; indien er > 1 werkverband is, kan de tandarts dmv de link
	//  'kies praktijk' een andere kiezen; indien er precies 1 werkverband is wordt die link verstopt
	//als deze functie wordt aangeroepen door klik van tandarts is isInit = false

	var praktijkAgent = getHTTPObject()
	if (praktijkAgent==null) return;
	
	//var Username zit in parent, want deze functie wordt vanaf het PB-formulier (iFrame) aangeroepen
	praktijkAgent.open("GET", CMSDb + "/getWerkverbanden!openAgent&stamnr=" + parent.Username, true)
	
	praktijkAgent.onreadystatechange = function() {
		if (praktijkAgent.readyState == 4 || praktijkAgent.readyState == "complete") {
			try{
				var resp = praktijkAgent.responseText
				var list = resp.split("~")

				//als maar 1 werkverband, dan de eerste initieel vullen
				// idem: bij laden van de pagina de eerste initieel vullen
				if (list.length==1 || isInit) { 	
					var wv = list[0].substring( list[0].indexOf("|")+1, list[0].length);
					fillPraktijkFields( wv.split(","))
					
					//als maar 1 werkverband, dan link naar 'kies andere praktijk' weghalen
					if (list.length==1)
						document.getElementById("kiesLink").style.display="none"	
				
				} else {
				
					var selectdiv = document.getElementById("selectpraktijk")			
				
					if (selectdiv.style.display == "") return;
						
					var newselectbox = document.createElement("select")
								
					newselectbox.onchange = function() { 
						fillPraktijkFields( this.value.split(",") ) 
					} 
				
					newselectbox.style.width = "210px"
					newselectbox.style.fontSize = "0.9em"
								
					selectdiv.appendChild( newselectbox )
					selectdiv.style.display = ""
				
					//voeg aan selectiebox de praktijknamen toe
					for (i=0; i < list.length; i++) {
						var naam = list[i].substring(0, list[i].indexOf("|") )
						var value = list[i].substring( list[i].indexOf("|")+1, list[i].length)
		
						var newoption = document.createElement("option")
						newoption.value = value
						newoption.innerHTML = naam
															
						newselectbox.appendChild(newoption)
					}
					
					document.getElementById("kiesLink").style.display="none"	
					
					//wijzig gemeente-keuzelijst voor 2e tabblad - vrije vestiging
					//fillGemeenten( document.getElementById("praktijkProvincie").selectedIndex)
				}	
		
			} catch(err) {
				// alert(err)
			}
		}	
	}
	praktijkAgent.send(null)
}

//maak keuzelijst van gemeenten a.d.h.v. de provincie van de praktijk (veld op eerste tabblad)
//wordt momenteel niet gebruikt... maar we laten hem even staan.... je weet maar nooit...
function fillGemeenten( provincieIndex ) {

	if (provincieIndex=="-1") return
			
	var provincie = document.getElementById("praktijkProvincie").options[ provincieIndex].innerHTML
	
	var gemeenteAgent = getHTTPObject()
	if (gemeenteAgent==null) return
	
	gemeenteAgent.open("GET", CMSDb + "/getGemeenten!openAgent&provincie=" + provincie, true )
	
	gemeenteAgent.onreadystatechange = function() {
	
		if (gemeenteAgent.readyState == "complete" || gemeenteAgent.readyState == 4) {
			try {
				var resp = gemeenteAgent.responseText

				var selectbox = document.getElementById("gemeenteLijst")
				//evt voorgaande keuzes wissen
				selectbox.innerHTML = ""

				if (resp.indexOf("LEEG")>-1) return  //geen gemeenten gevonden!
			
				var list = eval( resp).sort()			
					
				for (i=0; i < list.length; i++) {
					var newoption = document.createElement("option")
							
					if ( list[i].indexOf("|")>-1) {
						newoption.value = list[i].substring( list[i].indexOf("|")+1, list[i].length)
						newoption.innerHTML = list[i].substring(0, list[i].indexOf("|") )

					} else {							
						newoption.value = list[i]
						newoption.innerHTML = list[i]
					}
					
					selectbox.appendChild (newoption)					
				}	
		
			
			} catch(err) {	
			//	alert(err) 
			}
		}
	}
	
	gemeenteAgent.send(null)
}


//values = "straat,huisnummr,postcode,plaats,provincie,land,indexkeusvoorsoort,praktijknaam"
function fillPraktijkFields( values ) {

	document.getElementById("praktijkStraat").value = values[0]
	document.getElementById("praktijkHuisnummer").value = values[1]
	document.getElementById("praktijkPostcode").value = values[2]
	document.getElementById("praktijkPlaats").value = values[3]
	document.getElementById("praktijkLand").value = values[5]
	document.getElementById("praktijkNaam").value = values[7]
		
	if (values[8]=="undefined" || values[8]==null) 
		document.getElementById("praktijkWebsite").value = ""
	else
		document.getElementById("praktijkWebsite").value = values[8]
	
			
	//'solo' of 'groep' selecteren		
	getElementsByName_iefix("input", "SoortWerkverbandTX")[ values[6] ].checked = true
	
	//juiste provincie selecteren
	if (values[4] != "") {	
		var provlist = document.getElementById("praktijkProvincie")
		for (i=0; i < provlist.length; i++) {
			if (provlist[i].innerHTML.indexOf( values[4] ) > -1) {
				provlist[i].selected = true		//provincie selecteren	
				//fillGemeenten(i)				//gemeentelijst bijwerken
				//'dummy'veld voor validatie-check vullen
				document.getElementById("ProvincieValidationField").value = "gevuld"
				
				break;
			}	
		}

	} else {
	  //geen provincie ingevuld op het werkverband
	  	fillGemeenten(-1)
		provlist[0].selected = true
	}	

}

//preID = gedeelte van id van het element dat wel/neit geoond moet worden
//       (huisvesting, inventaris of goodwill)
//display = "Ja" = div tonen, "Nee" = div hiden
// wordt aangeroepen als een keus in veld "huisvesting" (ja/nee) wordt gewijzigd
function togglePBRows( preID, display ) {
	var disp = display=="Ja"? "" : "none"

	//toelichtingsveld + vraagprijs wel/niet tonen; geldt voor alle "soorten" preID's
	document.getElementById( preID + "OpmerkingenKop").style.display = disp
	document.getElementById( preID + "OpmerkingenVeld").style.display = disp
	document.getElementById( preID + "Vraagprijs").style.display = disp
	
	//extra velden voor huisvesting
	if (preID=="huisvesting") {
		document.getElementById( preID + "Soort").style.display = disp
		document.getElementById( preID + "Koop").style.display = disp	
		
		//default is "koop"; dus toon de cellen die daarbij getoond moeten worden
		togglePrijsCell("koop")
	}
	
	//extra velden voor inventaris/instrumentarium
	if (preID=="inventaris") {
		document.getElementById( preID + "Taxatiewaarde").style.display = disp
		document.getElementById( preID + "Taxateur").style.display = disp
		document.getElementById( preID + "Amalgaam").style.display = disp
		document.getElementById( preID + "Inventarisatie").style.display = disp
	}	
	
	//onderliggende velden (weer) leegmaken als display=nee is gekozen
	if (disp=="none") {
		//velden opruimen voor huisvesting
		if (preID=="huisvesting") {	
			document.getElementById("koopprijsveld").value = ""
			document.getElementById("huurprijsveld").value = ""

			document.getElementById("huisvestingtekst").innerHTML = ""
			
			//default keus terugzetten (is 'koop')
			var prijs = getElementsByName_iefix("input", "PoKoopHuurChoiceTX")
			prijs[0].checked = true
			
			//als 'nee' is gekozen dan ook nog even de twee cellen voor 'koop' verstoppen
			//  de cellen voor 'huur' zijn automatisch al gehide vanwege aanroep 
			//  togglePrijsCell("koop") - zie hierboven
			document.getElementById("koopinfo1").style.display = "none"
			document.getElementById("koopinfo2").style.display = "none"
			document.getElementById("taxatie").checked = false
			document.getElementById("makelaar").value = ""
		
		
		} else {
		//velden opruimen voor overige soorten preID's
			document.getElementById( preID + "prijs").value = ""
			document.getElementById( preID + "tekst").innerHTML = ""

			if (preID=="inventaris") {
				document.getElementById("inventarisTaxatiewaardeveld").value = ""
				document.getElementById("inventarisTaxateurveld").value = ""
				document.getElementById("inventarisInventarisatieveld").innerHTML = ""
				document.getElementById("inventarisAmalgaamveld").checked = false
			}
		}	
	}
}

//type = "koop" of "huur", voor soort aanbod = 2 (praktijkoverdracht)
//indien koop; toon dan cellen voor koop en verstop cellen voor leeg, en v.v.
function togglePrijsCell( type ) {

	document.getElementById("huurprijs").style.display = "none"
	document.getElementById("koopprijs").style.display = "none"	
	document.getElementById("huurlabel").style.display = "none"
	document.getElementById("kooplabel").style.display = "none"	
	document.getElementById("koopinfo1").style.display = "none"
	document.getElementById("koopinfo2").style.display = "none"	
	document.getElementById("huurinfo1").style.display = "none"
	document.getElementById("huurinfo2").style.display = "none"	
	document.getElementById("huurinfo3").style.display = "none"
	document.getElementById("huurinfo4").style.display = "none"	
	
	document.getElementById(type + "prijs").style.display = ""
	document.getElementById(type + "label").style.display = ""
			
	if (type=="koop") {
		document.getElementById("koopinfo1").style.display = ""
		document.getElementById("koopinfo2").style.display = ""
	
		if (editMode()) {	
		//naast verstoppen ook de ingevulde waarden voor 'huur' wissen
			document.getElementById("overdraagbaar").checked = false	
			document.getElementById("vergunning").checked = false
			document.getElementById("duur").value = ""
			document.getElementById("voorwaarden").value = ""
		}
		
	} else if (type=="huur"){
		document.getElementById("huurinfo1").style.display = ""
		document.getElementById("huurinfo2").style.display = ""	
		document.getElementById("huurinfo3").style.display = ""
		document.getElementById("huurinfo4").style.display = ""
		
		if (editMode()) {
		//naast verstoppen ook de ingevulde waarden voor 'koop' wissen
			document.getElementById("taxatie").checked = false
			document.getElementById("makelaar").value = ""
		}	
	}	
}

//ongeveer hetzelfde als bovenstaande functie, maar dan voor verkoop/verhuur (soort aanbod =3)
// type = "koop" of "huur"
function toggleVpPrijsCell( type ) {
	
	document.getElementById("vpkoopinfo1").style.display = "none"
	document.getElementById("vpkoopinfo2").style.display = "none"	
	document.getElementById("vpkoopinfo3").style.display = "none"	
	document.getElementById("vphuurinfo1").style.display = "none"
	document.getElementById("vphuurinfo2").style.display = "none"	
	document.getElementById("vphuurinfo3").style.display = "none"
	
	document.getElementById( "vp" + type + "info1").style.display = ""
	document.getElementById( "vp" + type + "info2").style.display = ""	
	document.getElementById( "vp" + type + "info3").style.display = ""	
	
	if (editMode()) {
		document.getElementById( "vp" + type + "infoveld1").value = ""
		document.getElementById( "vp" + type + "infoveld2").value = ""
		document.getElementById( "vp" + type + "infoveld3").value = ""
	
		if (type=="huur")			
			document.getElementById("vphuurperiodeveld").selectedIndex = 0
	}

}

//als er geen div-element met id 'RefNr' is, zitten we in editmode, anders in readmode
function editMode() {
	var test = document.getElementById("RefNr");
	return (test==null || test == "undefined")
}

// ** EINDE FUNCTIES T.B.V. PRAKTIJKBEMIDDELING **




//voeg landkaartje toe, HTML op form toonLandkaart
//<param name="label">ID van DIV waarin het resultaat gezet wordt</param>
//<param name="blokje">ID van blokje</param>
function createAfdelingskaart(label, blokje) { 

	HTTPArray[label] = getHTTPObject();

	if (HTTPArray[label] != null) {	
	
		HTTPArray[label].open("GET", CMSDb + "/toonlandkaart!openForm", true);					
		
		HTTPArray[label].onreadystatechange = function() {
			
			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
			   try {

				var kaart = getAJAXHTML( HTTPArray[label].responseText)
				document.getElementById(label).innerHTML = kaart[0]	
				
								
			   } catch(err) {

			   	return;
			   }
			}
		}
		HTTPArray[label].send(null)
	}		

}

//voeg lijst met alle afdelingen toe
//<param name="label">plek op pagina (normaliter in rechterkolom)</param>
//<param name="blokje">key van het blokje</param>
function createAfdelingslijst(label, blokje) {
			
	var afdHTML = "<h2><img src=\"" + SharedDb + "/h2_afdelingen.gif\" alt=\"Afdelingen\" /></h2>"
	afdHTML += "<ul class=\"right_list\">"

	var naam = "";
	var nr = "";
	var afdelingen = "";

	HTTPAfd = getHTTPObject()

	if (HTTPAfd != null) {
		HTTPAfd.open("GET", CMSDb + "/getAfdelingen!openAgent", true)
		
		HTTPAfd.onreadystatechange = function() {
		
 		  if ( HTTPAfd.readyState == 4 || HTTPAfd.readyState == "complete" ) {

			try {
				afdelingen = eval (HTTPAfd.responseText)
				
				for (x=0; x < afdelingen.length; x++) {
		
					naam = afdelingen[x].substring( 0, afdelingen[x].indexOf(":") )
					nr = afdelingen[x].substring( afdelingen[x].indexOf(":")+1, afdelingen[x].length )
					var dispNr = nr.substring(nr.length-2, nr.length)	
					if(nr!="99")
					{
						afdHTML += "<li class=\"afdelingslist\" id=\"kaart_link_" + nr + "\">"
						afdHTML += "<a href=\"javascript:openAfdeling('contentcontainer', '" + nr+ "')\""
						afdHTML += " onmouseover=\"show('" + nr + "');\" onmouseout=\"hide('" + nr + "');\">"
						afdHTML += "<span>" + dispNr + "</span>" + naam + "</a></li>"
					}
				}
				
				afdHTML +=  "</ul>"

				document.getElementById(label).className = "block relatedblock"
				document.getElementById(label).innerHTML = afdHTML

			} catch (err) {
				//alert (err)
				return;			
			}

		  }
		}  
		HTTPAfd.send(null)		
	}
}

//toont lijst met provincies waarop door te klikken is
//<param name="label">id van div waarin resultaat gezet wordt</param>
//<param name="blokje">id van component in componentendatabase</param>
function createProvincielijst(label, blokje) {
	var naam = "";
	var nr = "";	
	var provHTML = "<h2><img src=\"" + SharedDb + "/h2_provincies.gif\" alt=\"Provincies\" /></h2>"
	provHTML += "<ul class=\"right_list\">"
	provHTML += "<li><a href=\"javascript:openTandartsLijst('Drenthe', '');toggleProvincie('Drenthe');showProvincie('Drenthe')\" id=\"kaart_link_Drenthe\">Drenthe</a></li>"	
	provHTML += "<li><a href=\"javascript:openTandartsLijst('Flevoland', '');toggleProvincie('Flevoland');showProvincie('Flevoland')\" id=\"kaart_link_Flevoland\">Flevoland</a></li>"		
	provHTML += "<li><a href=\"javascript:openTandartsLijst('Friesland', '');toggleProvincie('Friesland');showProvincie('Friesland')\" id=\"kaart_link_Friesland\">Friesland</a></li>"			
	provHTML += "<li><a href=\"javascript:openTandartsLijst('Gelderland', '');toggleProvincie('Gelderland');showProvincie('Gelderland')\" id=\"kaart_link_Gelderland\">Gelderland</a></li>"				
	provHTML += "<li><a href=\"javascript:openTandartsLijst('Groningen', '');toggleProvincie('Groningen');showProvincie('Groningen')\" id=\"kaart_link_Groningen\">Groningen</a></li>"					
	provHTML += "<li><a href=\"javascript:openTandartsLijst('Limburg', '');toggleProvincie('Limburg');showProvincie('Limburg')\" id=\"kaart_link_Limburg\">Limburg</a></li>"
	provHTML += "<li><a href=\"javascript:openTandartsLijst('Noord-Brabant', '');toggleProvincie('Noord-Brabant');showProvincie('Noord-Brabant')\" id=\"kaart_link_Noord-Brabant\">Noord-Brabant</a></li>"	
	provHTML += "<li><a href=\"javascript:openTandartsLijst('Noord-Holland', '');toggleProvincie('Noord-Holland');showProvincie('Noord-Holland')\" id=\"kaart_link_Noord-Holland\">Noord-Holland</a></li>"	
	provHTML += "<li><a href=\"javascript:openTandartsLijst('Overijssel', '');toggleProvincie('Overijssel');showProvincie('Overijssel')\" id=\"kaart_link_Overijssel\">Overijssel</a></li>"
	provHTML += "<li><a href=\"javascript:openTandartsLijst('Utrecht','');toggleProvincie('Utrecht');showProvincie('Utrecht')\" id=\"kaart_link_Utrecht\">Utrecht</a></li>"		
	provHTML += "<li><a href=\"javascript:openTandartsLijst('Zeeland', '');toggleProvincie('Zeeland');showProvincie('Zeeland')\" id=\"kaart_link_Zeeland\">Zeeland</a></li>"	
	provHTML += "<li><a href=\"javascript:openTandartsLijst('Zuid-Holland', '');toggleProvincie('Zuid-Holland');showProvincie('Zuid-Holland')\" id=\"kaart_link_Zuid-Holland\">Zuid-Holland</a></li>"
	provHTML += "<br/>"
	provHTML += "<li><a href=\"javascript:openTandartsLijst('Buitenland','');toggleProvincie('Buitenland');showProvincie('Buitenland')\" id=\"kaart_link_Buitenland\">Buitenland</a></li>"	
	provHTML += "</ul>"
	
	document.getElementById(label).innerHTML = provHTML
}


function swapImage(id, imageName1, imageName2) {
	var obj = document.getElementById("kaart")
	if(currentProvincie==id) {
		if(imageName1.indexOf("Nederland")>-1)
			imageName1 = "kaart_"+currentProvincie +".gif"

		if(imageName2.indexOf("Nederland")>-1)

			imageName2 = "kaart_"+currentProvincie +".gif"
	}
	obj.src = obj.src.replace(imageName1, imageName2)
}


function openTandartsLijst( provincieNaam, postcode) {

	var HTTPprov = getHTTPObject()
	
	if(postcode!="")
		t_url = CMSDb + "/getTandarts!openAgent&postcode=" + postcode
	else
		t_url = CMSDb + "/getTandarts!openAgent&provincie=" + provincieNaam
	
	var objDiv = document.getElementById("searchResults")
	if(objDiv)
		objDiv.innerHTML = "<img src=\"" + SharedDb + "/ajaxloaderec5.gif\">&nbsp;<span style=\"color:#f6903c\">zoeken...</span>"
	
	if (HTTPprov != null) 	{
		HTTPprov.open("GET", t_url , true)		
		HTTPprov.onreadystatechange = function()  {		
	 		if ( HTTPprov.readyState == 4 || HTTPprov.readyState == "complete" )  {
				try 	{
					var resp = HTTPprov.responseText
					//alert(resp)
					document.getElementById("searchResults").innerHTML = resp
				} catch (err) {
					return;			
				}
			}
		}  
		HTTPprov.send(null)		
	}
}

function openProfiel(UNID) {
	var HTTPprofiel = getHTTPObject()
	t_url = CMSDb + "/getTandartsProfiel!openAgent&unid=" + UNID
	
	if (HTTPprofiel != null) {
		HTTPprofiel.open("GET", t_url , true)		
		HTTPprofiel.onreadystatechange = function() 	{		
	 		if ( HTTPprofiel.readyState == 4 || HTTPprofiel.readyState == "complete" ) {
				try 	{
					var resp = HTTPprofiel.responseText
					//alert(resp)
					document.getElementById("tandartsDetailInformatie").innerHTML = resp
				} catch (err) 	{
					//alert (err)
					return;			
				}
			}
		}  
		
		HTTPprofiel.send(null)		
	}	
}

function createKaderlijst( label, blokje ) {
	HTTPArray[label] = getHTTPObject();

	if (HTTPArray[label] != null) {
		HTTPArray[label].open("GET", ComponentsDb + "/vlJSONComponenten?readviewentries&outputformat=JSON&restrictToCategory=" + blokje, true)

		HTTPArray[label].onreadystatechange = function() {
			
			var tekstHTML = "";
			
			document.getElementById(label).innerHTML = document.getElementById(label).innerHTML = "<div id=\"loading\">&nbsp;&nbsp;&nbsp;ophalen...<img src=\"" + SharedDb + "/ajaxloaderec5.gif\"></div>"
			
			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
			   try {

			   	var resp = HTTPArray[label].responseText;
			   	var viewObject = eval("(" + resp + ")")
				var entries = viewObject["viewentry"];
			   	var commconfig = entries[0].entrydata[7].text[0]
			   	
			   	//commissie
			   	var comm = commconfig.substring(0, commconfig.indexOf("#"))

			   	//'naar boven' link wel/niet tonen
			   	var naarboven = commconfig.substring( commconfig.indexOf("#")+1, commconfig.length )
				var isNaarboven = naarboven == ""? false : true
							   		   		
			   	openAfdeling( label, comm, isNaarboven )
				
	   
			   } catch (err) {
			 //  	alert( err )
			   		return;
			   }
			}   
		}
		
		HTTPArray[label].send(null)
	}

}

//haal kaderfuncties voor afdeling op
//  -> aangeroepen vanuit klik op een afdeling (in link of op kaartje) OF vanuit createKaderlijst
//<param name="label"></param>
//<param name="nr">afdelingsnummer OF commissienaam OF "<NR>"</param>
//<param name="isNaarboven">(boolean) true: toon 'naar boven' linkje [optioneel; niet meegegeven  = false]</param>
function openAfdeling (label, nr, isNaarboven ) {

	//als nr is "<NR>" dan is het de bedoeling dat we de ledenlijst van de afdeling van de gebruiker tonen
	nr = nr=="<NR>"? Afdeling : nr

	isNaarboven = isNaarboven=="undefined" || isNaarboven==null? false : isNaarboven

	HTTPArray[label] = getHTTPObject();

	var resHTML = ""

	if (label == "contentcontainer" ) {
		resHTML = "<div class=\"block double\"><div class=\"header\"></div>"
		resHTML += "<h3>"
		resHTML += "<img src=\"" + SharedDb + "/Afdeling-blauw-"  + nr + ".gif\" alt=\"Actueel " + nr + "\" />" 
		resHTML += "</h3>"				
		resHTML += "<a href=\"/vereniging/afdelingen.html\" class=\"back right\" style=\"margin-right:14px\">Terug naar afdelingen</a>"
		resHTML += "</div>"
	} else 
		resHTML += isNaarboven? "<a class=\"right clearboth arrow_up\" href=\"#\">Naar Boven</a>" : ""
		
	resHTML += "<div class=\"block double padding20\" style=\"width:440px\">"
	resHTML += "<div class=\"lightblue padding20 clearfix\" style=\"width:400px\">"
			
	if (HTTPArray[label] != null) {	

		
		//agent getKaderpersonen haalt kaderfuncties op en geeft persoonsinfo als JSON-array terug
		HTTPArray[label].open("GET", CMSDb + "/getKaderPersonen!openAgent&afdeling=" + nr, true);					

		HTTPArray[label].onreadystatechange = function() {
			
			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
			   try {
			
				var kaderPersons =  HTTPArray[label].responseText 
				var personArr = eval("" + kaderPersons + "")
	
				if (personArr.length > 0 ) {
					var personArrSorted = personArr.sort( compareKaderfuncties );
											
					for (i=0; i < personArrSorted.length; i++) {
						resHTML += personArrSorted[i]["html"] 
					}

					resHTML += "</div>"
					document.getElementById(label).innerHTML = resHTML 
					
				} else
					document.getElementById(label).innerHTML = "<div></div>"

								
			   } catch(err) {
			   		// alert( err)
					return;
			   }
			}
		}
		HTTPArray[label].send(null)
	}		

}

function createVoorzitter( label, nr) {
	//als nr is "<NR>" dan is het de bedoeling dat we de ledenlijst van de afdeling van de gebruiker tonen
	nr = nr=="<NR>"? Afdeling : nr

	HTTPArray[label] = getHTTPObject();
	
	//var strHTML = "<h2 class=\"address_heading\"><img src=\"" + SharedDb + "/h2_contact_voorzitter_grey.gif\" alt=\"Contact Voorzitter\" /></h2>"
	var strHTML = "<h2><img src=\"" + SharedDb + "/h2_contact_voorzitter_grey.gif\" alt=\"Contact Voorzitter\" /></h2>"
	
	if (HTTPArray[label] != null) {
		//agent getKaderpersonen haalt kaderfuncties op en geeft persoonsinfo als JSON-array terug
		HTTPArray[label].open( "GET", CMSDb + "/getKaderPersonen!openAgent&afdeling=" + nr + "&type=voorzitter", true);					

		HTTPArray[label].onreadystatechange = function() 	{
			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
			   try {
			
				var kaderPersons =  HTTPArray[label].responseText
				var personArr = eval("" + kaderPersons + "")
				
				if (personArr.length > 0 ) {
					var personArrSorted = personArr.sort( compareKaderfuncties );
							
					document.getElementById(label).innerHTML = strHTML + personArrSorted[0]["html"]
				} 

								
			   } catch(err) {
					return;
			   }
			}
		}
		HTTPArray[label].send(null)
	}
}

function compareKaderfuncties(a,b) {

	//a en b zijn twee te vergelijken items uit array; in dit geval zijn dit JSONobjecten
	// en willen we daarvan de property 'pos' vergelijken (pos is index voor kaderfunctie)
	if( a.pos == b.pos)
		return 0;
		
	return ( parseInt(a.pos) < parseInt(b.pos))? -1 : 1 ;
}

function getSty(id) {
	if (document.getElementById(id) != null && document.getElementById(id) != "undefined")
		return document.getElementById(id).style;
	else
		return ""	
	
}

function getStyByTag(id, tag) {
	var elems = document.getElementById(id).getElementsByTagName(tag);
    	return elems[0].style;

}

function cleanRegion(image){
	if (document.getElementById("kaartje") != null && document.getElementById("kaartje") != "undefined") {
		for (i=1; i<=14; i++) {
    			var nr = "1" + (i<10? "0"+i : i)
     		var region = getSty('kaart_' + nr);
        		
			if (image != null && image != 'undefined' && image == nr) {
     			region.visibility = 'visible';
	     	} else {
	     		region.visibility = 'hidden';
			}
    		}
	} 
}

function hide(id){
	cleanRegion();			
			
	if (document.getElementById('kaart_link_' + id) != null && document.getElementById('kaart_link_' + id) != "undefined") {
     	getStyByTag('kaart_link_' + id, 'a').color = 'black';
		getStyByTag('kaart_link_' + id, 'span').color = 'black';
	}
}


function show(id){
	cleanRegion(id);
	
	if (document.getElementById('kaart_link_' + id) != null && document.getElementById('kaart_link_' + id) != "undefined") {
    		getStyByTag('kaart_link_' + id, 'a').color = '#f6903c';
	    	getStyByTag('kaart_link_' + id, 'span').color = '#f6903c';
	} 
}	

function showProvincieLink(id, hovertype) {

	var obj = document.getElementById("kaart_link_" + id )

	if(hovertype=="over") {
		if(obj)
			obj.style.color = '#f6903c';
	} else {
		if(id!=currentProvincie)
			obj.style.color = '#000000';	
	}
}


var currentProvincie = ""


function toggleProvincie(id) {
	if(currentProvincie) {
		var objPrev = document.getElementById("kaart_link_" + currentProvincie )
		objPrev.style.color = "#000000";
		var objKaart = document.getElementById("kaart")
		objKaart.src = objKaart.src.replace( currentProvincie, id )
		
		var objInfo = document.getElementById("tandartsDetailInformatie")
		objInfo.innerHTML = ""
		
	}
	var obj = document.getElementById("kaart_link_" + id )
	obj.style.color = '#f6903c';	 	
	currentProvincie = id
}

//functie die reageert op de onclick van de provincie lijst en toont de provincie in de oranje kleur
function showProvincie(id) {
	currentProvincie = id
	var objKaart = document.getElementById("kaart")
	var newSrc = objKaart.src.replace("Nederland", id)
	objKaart.src = newSrc 
}

//voeg afdelingsnaam als kopje toe (betekent: juiste plaatje ophalen a.d.h.v. afdelingnr van gebruiker)
function createAfdelingPicture( label, blokje, bloktype) {

	var newHTML = ""
	var strMarginL = "40"
	var strMarginB = "0"
	
	switch(bloktype) {
		case "Afdeling":
			strMarginL = "10"
			newHTML = "<h2><img src=\"" + SharedDb + "/afdeling_" + Afdeling + ".gif\" alt=\"" + Afdeling + "\" /></h2>"				
		break;
		
		case "Actueel":
			strMarginB = "10"
			newHTML = "<div class=header>&nbsp;</div><h3 class=\"twenty_px_vertical_spacer fourty_px_top_spacer\">"
			newHTML += "<img src=\"" + SharedDb + "/Actueel-blauw-blanco.gif\"/>" 
			newHTML += "<img src=\"" + SharedDb + "/Afdeling-blauw-"  + Afdeling + ".gif\" alt=\"Actueel " + Afdeling + "\" />" 
			newHTML += "</h3>"						
		break;
		case "Agenda":
			strMarginB = "10"
			newHTML = "<div class=header>&nbsp;</div><h3 class=\"twenty_px_vertical_spacer fourty_px_top_spacer\">"
			newHTML += "<img src=\"" + SharedDb + "/Agenda-blauw-blanco.gif\"/>" 
			newHTML += "<img src=\"" + SharedDb + "/Afdeling-blauw-"  + Afdeling + ".gif\" alt=\"Agenda " + Afdeling + "\" />" 
			newHTML += "</h3>"			
			
		break;
		case "Documentatie":
			newHTML = "<div class=header>&nbsp;</div><h3 class=\"twenty_px_vertical_spacer fourty_px_top_spacer\">"
			newHTML += "<img src=\"" + SharedDb + "/Documentatie-blauw-blanco.gif\"/>" 
			newHTML += "<img src=\"" + SharedDb + "/Afdeling-blauw-"  + Afdeling + ".gif\" alt=\"Documentatie " + Afdeling + "\" />" 
			newHTML += "</h3>"			
		break;
		case "Leden":
			newHTML = "<div class=header>&nbsp;</div><h3 class=\"twenty_px_vertical_spacer fourty_px_top_spacer\">"
			newHTML += "<img src=\"" + SharedDb + "/Leden-blauw-blanco.gif\"/>" 
			newHTML += "<img src=\"" + SharedDb + "/Afdeling-blauw-"  + Afdeling + ".gif\" alt=\"Leden " + Afdeling + "\" />" 
			newHTML += "</h3>"			
		break;		
		case "Organisatie":
			newHTML = "<div class=header>&nbsp;</div><h3 class=\"twenty_px_vertical_spacer fourty_px_top_spacer\">"
			newHTML += "<img src=\"" + SharedDb + "/Organisatie-blauw-blanco.gif\"/>" 
			newHTML += "<img src=\"" + SharedDb + "/Afdeling-blauw-"  + Afdeling + ".gif\" alt=\"Organisatie " + Afdeling + "\" />" 
			newHTML += "</h3>"			
		break;				
		case "Stukken":
			newHTML = "<div class=header>&nbsp;</div><h3 class=\"twenty_px_vertical_spacer fourty_px_top_spacer\">"
			newHTML += "<img src=\"" + SharedDb + "/MijnNMTstukken-blauw.gif\" alt=\"Mijn NMT stukken\" />" 
			newHTML += "</h3>"	
		break;	
	}
	
	if (bloktype != "Stukken") {
		//newHTML +="<div style=\"margin-left:200px; margin-top:-17px;\" id=\"AndereAfdeling_DIV\">"
		newHTML +="<div style=\"margin-left: " + strMarginL + "px; margin-top:-17px; margin-bottom: " + strMarginB + "px;\" id=\"AndereAfdeling_DIV\">"
		newHTML +="<img src=\"/icons/ecblank.gif\" onLoad=\"createAfdelingenOptions('" + bloktype + "')\">" 
		newHTML +="</div>"
	}
	
	document.getElementById(label).innerHTML = 	newHTML	

}
//voeg de kring naam toe als kopje ( betekent de juiste kringnaam ophalen a.d.h.v. kringnr van gebruiker )
function createKringText( label, blokje, bloktype) {

	var newHTML
	var innerDIV

	switch(bloktype) {
		case "Documentatie":
			innerDIV = "<span id=\"kringnaam\" style=\"font-family:arial;font-size:12pt;color:#008ba7;position:relative;top:-5px\"\></span>" 
						
			newHTML = "<DIV class=header>&nbsp;</DIV><h3 class=\"twenty_px_vertical_spacer fourty_px_top_spacer\">"
			newHTML +="<img src=\"" + SharedDb + "/Documentatie-blauw-blanco.gif\"/>"+ innerDIV + "</h3>"	
		break;
		case "Leden":
			innerDIV = "<span id=\"kringnaam\" style=\"font-family:arial;font-size:12pt;color:#008ba7;position:relative;top:-5px\"\></span>"
						
			newHTML = "<DIV class=header>&nbsp;</DIV><h3 class=\"twenty_px_vertical_spacer fourty_px_top_spacer\">"
			newHTML +="<img src=\"" + SharedDb + "/Leden-blauw-blanco.gif\"/>"+ innerDIV + "</h3>"	
		break;		
		case "Actueel":
			innerDIV = "<span id=\"kringnaam\" style=\"font-family:arial;font-size:12pt;color:#008ba7;position:relative;top:-5px\"\></span>" 
			
			newHTML = "<DIV class=header>&nbsp;</DIV><h3 class=\"twenty_px_vertical_spacer fourty_px_top_spacer\">"
			newHTML +="<img src=\"" + SharedDb + "/Actueel-blauw-blanco.gif\"/>"+ innerDIV + "</h3>"			
		break;
		
		default:
			innerDIV = "<span style=\"\"><img src=\""+SharedDb+"/h2_kring_algemeen.gif\">"
			innerDIV += "<span id=\"kringnaam\" style=\"font-family:arial;font-size:1.20em;color:#000000;font-weight:bold;position:relative;left:100px;top:-26px\"\></span>"	
			innerDIV +="</span>"
			newHTML = innerDIV		
		break
	}

	document.getElementById(label).innerHTML = newHTML
	dbLookup( RefDb + '/vlKringen', Kring, 1, "kringnaam")
}
//voeg de IQual groep naam toe als kopje
function createIQualText( label, blokje, bloktype) {
	var innerDIV	= ""
	var newHTML	= ""
	var strSoort	= "iqual"
	var strGroep	= IQual
	
	switch(bloktype) 	{
		case "Documentatie":
			innerDIV = "<span id=\"" + strSoort + "naam\" style=\"font-family:arial;font-size:12pt;color:#008ba7;position:relative;top:-5px\"\>" + strGroep + "</span>" 
						
			newHTML = "<DIV class=header>&nbsp;</DIV><h3 class=\"twenty_px_vertical_spacer fourty_px_top_spacer\">"
			newHTML +="<img src=\"" + SharedDb + "/Documentatie-blauw-blanco.gif\"/>"+ innerDIV + "</h3>"	
		break;
		case "Leden":
			innerDIV = "<span id=\"" + strSoort + "naam\" style=\"font-family:arial;font-size:12pt;color:#008ba7;position:relative;top:-5px\"\>" + strGroep + "</span>" 
						
			newHTML = "<DIV class=header>&nbsp;</DIV><h3 class=\"twenty_px_vertical_spacer fourty_px_top_spacer\">"
			newHTML +="<img src=\"" + SharedDb + "/Leden-blauw-blanco.gif\"/>"+ innerDIV + "</h3>"	
		break;		
		case "Actueel":
			innerDIV = "<span id=\"" + strSoort + "naam\" style=\"font-family:arial;font-size:12pt;color:#008ba7;position:relative;top:-5px\"\>" + strGroep + "</span>" 
			
			newHTML = "<DIV class=header>&nbsp;</DIV><h3 class=\"twenty_px_vertical_spacer fourty_px_top_spacer\">"
			newHTML +="<img src=\"" + SharedDb + "/Actueel-blauw-blanco.gif\"/>"+ innerDIV + "</h3>"			
		break;
		
		default:
			innerDIV = "<span style=\"\"><img src=\""+SharedDb+"/h2_" + strSoort + "_algemeen.gif\">"
			innerDIV += "<span id=\"" + strSoort + "naam\" style=\"font-family:arial;font-size:1.20em;color:#000000;font-weight:bold;position:relative;left:100px;top:-26px\"\>" + strGroep + "</span>"	
			innerDIV +="</span>"
			newHTML = innerDIV		
		break
	}
	
	document.getElementById(label).innerHTML = newHTML
}

//Toont de leden van een IQual groep
function createIQualLeden( label, blokje, bloktype) {
	HTTPArray[label] = getHTTPObject();

	if (HTTPArray[label] != null) {
		document.getElementById(label).innerHTML = "<img src=\"" + SharedDb + "/ajaxloaderec5.gif\">&nbsp;<span style=\"color:#f6903c\">zoeken...</span>"
	
		HTTPArray[label].open( "GET", CMSDb + "/showIQualGroep!OpenAgent&IQNummer=" + IQualNr, true)
		HTTPArray[label].setRequestHeader("Content-Type", "application/x-www-form-urlencoded; ")
				
		HTTPArray[label].onreadystatechange = function() {	
			var tekst = ""
			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
				try {

					var resp = HTTPArray[label].responseText
					
					document.getElementById(label).innerHTML = resp
		
				} catch (err) {
					return;
				}
			}		
		}
		HTTPArray[label].send(null)						
	}
}

//nu een select option maken voor de afdelingen
function createAfdelingenOptions( blokType ) {
	afdHTML = "<br>Selecteer een andere afdeling ";
	afdHTML+= "<select name=\"AndereAfdeling\" style=\"font-size:0.9em\" onChange=\"switchAfdeling(this)\">";
		
	HTTPAfd = getHTTPObject()
	
	if (HTTPAfd != null)  {
		HTTPAfd.open("GET", CMSDb + "/getAfdelingen!openAgent", true)		
		HTTPAfd.onreadystatechange = function() {		
 		  if ( HTTPAfd.readyState == 4 || HTTPAfd.readyState == "complete" )  {
			try {
				afdelingen = eval (HTTPAfd.responseText)
				afdHTML +="<option value=\"0\">-- Kies een afdeling --</option>";				
				
				if (blokType=="Leden") {
					if (Afdeling=="1000")
						afdHTML += "<option selected value=\"1000\">-- Alle afdelingen --</option>"						
					else
						afdHTML += "<option value=\"1000\">-- Alle afdelingen --</option>"
				}				
				
				for (x=0; x < afdelingen.length; x++)  {
					naam = afdelingen[x].substring( 0, afdelingen[x].indexOf(":") )
					nr = afdelingen[x].substring( afdelingen[x].indexOf(":")+1, afdelingen[x].length )

					if(Afdeling==nr)
						afdHTML += "<option selected value=\"" + nr + "\">" + naam +"</option>";					
					else
						afdHTML += "<option value=\"" + nr + "\">" + naam +"</option>";
				}
				afdHTML+="</select>";
				document.getElementById("AndereAfdeling_DIV").innerHTML = afdHTML;								

			} catch (err) {
				return;			
			}
		  }
		}  
		HTTPAfd.send(null)		
	}

}

//switchafdeling , deze functie schakelt de landingspagina voor een andere afdeling
//<param name="obj">afdelingnummer</param>
function switchAfdeling(obj) {
	//reset keuzelijstjes-variabelen (zie functies getDiffSpecChoices en getTypeChoices in searchblock.js)
	donedifferentiatie = false
	donespecialisme = false;
	done = false;
	
	//alert("Oude afdeling = "  + Afdeling  + " nieuwe afdeling = "  + obj.value);
	Afdeling = obj.value;
	document.getElementById("contentBlocks").innerHTML = "";
	document.getElementById("relatedBlocks").innerHTML = "";
	createBlocks();
}

// Opent het profiel van de (ingelogde) gebruiker
//<param name="label">plek op de pagina</param>
//<param name="blokje">naam vh blokje zoals door beheerder geconfigureerd</param>
//<param name="clickLink">id van te klikken link [optioneel]</param>
function openMijnProfiel( label, blokje, clickLink ) {

	clickLink = clickLink==null || clickLink=="undefined"? "" : clickLink
	
	HTTPArray[label] = getHTTPObject();

	if (HTTPArray[label] == null) return;
	
	if (Afdeling=="0")
		HTTPArray[label].open( "GET", RBSDb + "/vPersonenOpCode/" + Username + "!EditDocument", true)
	else 	
		HTTPArray[label].open( "GET", RBSDb + "/vlStamnummerTHK/" + Username + "!EditDocument", true)

	HTTPArray[label].onreadystatechange = function() 	{
		if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
			try 	{
				var ajaxArray	= getAJAXHTML( HTTPArray[label].responseText )
				
				// schrijf HTML naar scherm
				document.getElementById(label).innerHTML = ajaxArray[0];
				
				// JavaScript functies laden
				loadjscssfile( RBSDb + "/Form_THKR.js", "js")
	  			loadjscssfile( SharedDb + "/Validations.js", "js")
	  			
				// Functie voor het switchen van tabs koppelen aan de HTML
				tabs(document.getElementById( 'MijnNMT_Profielinstellingen'))

				// Spring naar de gewenste tab door linkje te klikken
				if (clickLink!="") 
					document.getElementById(clickLink).onclick()
								
							
			} catch( err) 	{
				// alert (err)
				return false;
			}
		}
	}
	
	HTTPArray[label].send(null)
}//functie maakt verschillende rijen van producten, dit gebeurt in 2 kolommen.
function createProduct( label, blokje, soort) {
	//haal info op van blokje 'blokje' uit vlJSONProducts
	// image, tekst
	
	HTTPArray[label] = getHTTPObject();

	t_url = ProductDb + "/vlProductPage!openview&restrictToCategory=" + soort 
	if (HTTPArray[label] != null) {
			
		HTTPArray[label].open("GET", t_url, true)
		HTTPArray[label].onreadystatechange = function() {	
		if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
				try {
					var resp = getAJAXHTML(HTTPArray[label].responseText)[0];
					document.getElementById(label).innerHTML = resp				
		
										
				} catch (err) {
					// alert( err )
					return;
				}	
			}	
		}	
		HTTPArray[label].send(null)	
	}
}


//maak rij met plaatjes aan voor producten; gebruik hiervoor de plaatjes die in de verschillende 
//	producten zijn ingevuld in de productendatabase; twee soorten: individueel of praktijk
//"soort" = individuele producten = 1, praktijk = 2; is lookup key voor ophalen plaatjes
//"linkOverzicht = link naar overzichtspagina van deze soort
function createProductList( label, soort, linkOverzicht ) {
	new ProductList(label, soort, linkOverzicht )
}


//CLASS voor productlijst
//"soort" = individuele producten = 1, praktijk = 2; is lookup key voor ophalen plaatjes
//"linkOverzicht" = link naar overzichtspagina van deze soort
function ProductList(label, soort, linkOverzicht) {
	var images = new Array();

	this.label = label
	this.soort = soort			//individueel of praktijk
	this.counter = 0;			//array-index van getoond plaatje
	this.remember = false		

	HTTPArray[label] = getHTTPObject();
	
	addComponent(this, label)

	t_url = ProductDb + "/vlProductImageList!readviewentries&outputformat=JSON&restrictToCategory=" + soort 
	
	//bouw image-array op
	if (HTTPArray[label] != null) {
		HTTPArray[label].open("GET", t_url , true)
		HTTPArray[label].onreadystatechange = function() {	
			var plaatjes = ""

			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
				try {
					var resp = getAJAXHTML(HTTPArray[label].responseText)[0];

					var PRODUCTLIST = getComponent(label)
					var index=0;						
					var rowList = resp.split("^^^")
					for(i=0;i<rowList.length;i++)
					{
						var rowElement = rowList[i].split("~")
						if(rowElement[0]!="")
						{
							images[index] = new Image();	
							images[index].src = rowElement[1];
							images[index].alt = rowElement[2];
							images[index].title = rowElement[0];
							//'link' bevat de link naar dit specifieke product	
							images[index].link = rowElement[3];						
							index++;
						}

					}									
					PRODUCTLIST.images = images
					PRODUCTLIST.max = images.length - 1
					PRODUCTLIST.showImage = images[0].src;
					
					if(soort==1) 
						PRODUCTLIST.generalLink = "<a href=\"" + linkOverzicht + "\">Alle individuele producten</a>"
					else 
						PRODUCTLIST.generalLink = "<a href=\"" + linkOverzicht + "\">Alle praktijkproducten</a>"
					
					displayImage(label, soort, linkOverzicht)
					
				} catch (err) {
					return; 
				}	
			}
		}
		HTTPArray[label].send(null)	
	}
}


//toon één plaatje uit het image-array
//param name="soort" 1: individuele producten, 2: praktijk producten
//param name="linkOverzicht" link naar overzichtspagina (daarachter wordt "#product:<ID>" geplakt)
//</summary>
function displayImage(label, soort, linkOverzicht) {

	curPRList = getComponent(label);
	
	if (curPRList != null) {
		altTekst = curPRList.images[curPRList.counter].alt 
		altTekst = altTekst == ""? "&nbsp;" : altTekst

		productNaam = curPRList.images[curPRList.counter].title
		hRef = linkOverzicht + curPRList.images[curPRList.counter].link	
		
		if (soort=="1") { 
			prlistClass="individuele_producten"
			prlistTitel="Individuele producten"	
		} else {
			prlistClass="praktijk_producten"
			prlistTitel="Praktijk producten"
		}

		productListHTML = "<div class='image_show_box'>"
		productListHTML += "<h3 class='" + prlistClass + "'>" + prlistTitel + "</h3>"

		productListHTML += "<h4>" + productNaam + "</h4>"
		productListHTML += "<div class='image_show_box'>"
		productListHTML += "<img width=210 height=129 border=0 usemap=\"#imageLink_"+ productNaam + "\" src='" + curPRList.showImage + "' alt='" + altTekst + "' title='Klik hier voor meer informatie.'>"
		productListHTML += "<map name=\"imageLink_"+ productNaam + "\">"
		productListHTML += "<area shape=\"rect\" coords=\"14,6,200,100\" href=\""+ hRef + "\" >"
		productListHTML += "</map>"

		productListHTML += "<a style=\"cursor:pointer\" onClick=\"previous('" + label + "', " + soort + ")\",  class=\"prev\" ></a>"	
		productListHTML += "<a style=\"cursor:pointer\" onClick=\"next('" + label + "', " + soort + ")\",  class=\"next\" ></a>"
		productListHTML += "</div>"
		productListHTML += curPRList.generalLink + "</div>"
		
		curPRList.HTML = productListHTML
		
	} 

	showComponent(label, true)
}

//toon het vorige plaatje in de image-array
function previous(label, soort) {
	var curPRList = getComponent(label)
	curPRList.counter--			//vorige
	if (curPRList.counter < 0) curPRList.counter = curPRList.max;

		//zet IMG code van het 'actieve' plaatje in property 'showImage'
	curPRList.showImage = curPRList.images[curPRList.counter].src;	
	displayImage(label, soort);		//nieuwe HTML bouwen + tonen		
}

//toon het volgende plaatje in de image-array
function next(label, soort){
	var curPRList = getComponent(label)
	curPRList.counter++			//volgende
	if (curPRList.counter > curPRList.max) curPRList.counter = 0;	
	
		//zet IMG code van het 'actieve' plaatje in property 'showImage'
	curPRList.showImage = curPRList.images[curPRList.counter].src;
	displayImage(label, soort)		//nieuwe HTML bouwen + tonen
} 


//voeg uploadblokje voor cursusbestand toe, bedoeld voor cursusaanbieders die een deelnemerslijst
// aan KWIS willen toevoegen dmv uploaden deelnemersbestand (barcodescan)
function createKRTUpload( label, blokje ) {
	
	var upload = getHTTPObject()
	if (upload == null) return;
	
	upload.open( "GET", KWISDb + "/fmUploadIframe?openform" );
	
	upload.onreadystatechange = function() {
		if (upload.readyState == 4 || upload.readyState == "complete") {
			try {
				var resp = getAJAXHTML( upload.responseText )
				document.getElementById(label).innerHTML = resp[0]
			
				var iFrame = document.getElementById("upload_KRT")
				iFrame.src = KWISDb + "/fmUploadKRT?openform" ;
			
			} catch (err) {
				//alert (err)
			}
		}
	}
	
	upload.send(null)
}

//haal alle cursussen met stardatum = dtVal op en toon ze als opties in een keuzelijst
function dispCursusList( dtVal) {

	//ombouwen naar dd-mm-jjjj indien mogelijk
	if (dtVal.substring(0, dtVal.indexOf("-")).length == 1)
		dtVal = "0" + dtVal
	
	if (dtVal.substring(4,5) == "-" )
		dtVal = dtVal.substring(0, 3) + "0" + dtVal.substring(3, dtVal.length) 
	
	if (dtVal.length < 10)
		dtVal = dtVal.substring(0,6) + "20" + dtVal.substring(6, dtVal.length)
	
	dtVal = dtVal.substring(0,10)
	
	document.getElementById("UploadStartDatum").value = dtVal
	
	//nieuwe selectbox aanmaken
	var div = document.getElementById("cursus")
	var selectbox = document.createElement("select")
	
	selectbox.name = "KA_ID"
	selectbox.id = "KA_ID"
	selectbox.onchange = function() { dispAanbieder(this.options[this.selectedIndex].value) }
	div.appendChild(selectbox)

	//evt eerder gemaakte keus 'resetten', dus ook de aanbieder weghalen
	document.getElementById("aanbieder").style.display = "none"
	document.getElementById("aanbiederLabel").style.display = "none"
	document.getElementById("aanbieder").innerHTML = ""

	var http_C = getHTTPObject()
	if (http_C == null) return;
		
	http_C.open( "GET", CMSDb + "/getCursussen!openAgent&datum=" + dtVal)
	
	http_C.onreadystatechange = function() {
		if (http_C.readyState == 4 || http_C.readyState == "complete") {
			try {
			
				document.getElementById("bestand").style.display = "none";
				document.getElementById("cursusLabel").style.display = ""
				
				//initialiseren
				var option = null;
				var KA_naam = "";
				var KA_ID = "";	
				var melding = "";
					
				div.innerHTML = "";	
				div.style.display = "";
							
				//haal lijst cursussen op; returnwaarde =
				// "new Array('<cursusnaam1>|<cursusID1>', '<cursusnaam2>|<cursusID2>', ...)" 
				var cursusString = http_C.responseText

				if (cursusString.indexOf("LEEG") > -1) {
					
					melding += "<font color=red>"
					melding += "Op deze startdatum is geen cursus gevonden."
					melding += " Probeer een andere datum. Formaat: dd-mm-jjjj</font>"
					
					div.innerHTML = melding
										
					return;
				} 

				var cursusList = eval( "" + cursusString + "" )
				
				//selectbox vullen met cursussen
				//  tekst in lijst = cursusnaam, achterliggende waarde = cursus-ID
				for (ind=0; ind < cursusList.length; ind++) {
					KA_naam = cursusList[ind].substring(0, cursusList[ind].indexOf("|"))
					KA_ID = cursusList[ind].substring( cursusList[ind].indexOf("|")+1, cursusList[ind].length)

					option = document.createElement("option")	
					
					option.value = KA_ID
					option.innerHTML = KA_naam
			
					selectbox.appendChild(option)		
				}	
									
				//voeg zojuist opgebouwd keuzelijstje toe aan div
				div.appendChild(selectbox)
				
				//toon upload-ding
				document.getElementById("bestand").style.display = ""	
			
						
			} catch (err) {
				// alert (err)
			}
		}
	}
	
	http_C.send(null)
}


//toon de aanbieder nadat een cursus is gekozen; ter verificatie voor gebruiker
function dispAanbieder( KA_ID) {

	var http_aanbieder = getHTTPObject()
	if (http_aanbieder == null) return;
	
	http_aanbieder.open("GET", CMSDb + "/getAanbieder!openagent&KA=" + KA_ID)

	http_aanbieder.onreadystatechange = function() {
		if (http_aanbieder.readyState == 4 || http_aanbieder.readyState == "complete") {
		
			var resp = http_aanbieder.responseText
		
			if (KA_ID==0) {
			//weer 'resetten' als gebruiker de lege optie 'kies de juiste cursus' heeft gekozen
				document.getElementById("aanbieder").style.display = "none"
				document.getElementById("aanbiederLabel").style.display = "none"
				document.getElementById("aanbieder").innerHTML = ""
			} else {	
				document.getElementById("aanbieder").style.display = ""
				document.getElementById("aanbiederLabel").style.display = ""
				document.getElementById("aanbieder").innerHTML = resp
			} 
	
		}
	}
	
	http_aanbieder.send(null)
}


//KRT attachen en notesdocument opslaan
function submitKRT( docID) {

	//validatie
	var KA_ID = document.getElementById("KA_ID").value
	if (KA_ID == "0") {
		alert("U dient een cursus te kiezen.")
		return;
	}
	
	var fileMapNaam = document.getElementById("FileUpload").value
	var filenaam = fileMapNaam.substring( fileMapNaam.lastIndexOf("\\")+1, fileMapNaam.length)
	var extensie = filenaam.substring( filenaam.lastIndexOf("."), filenaam.length ) 
	
	if ( filenaam == "") {
		alert("U dient een bestand toe te voegen.")
		return;	
	}
	
	if (document.getElementById("UploadScanner").value == "0") {
		alert("U dient een scanner te kiezen.")
		return;		
	}
	
	extensies =  document.getElementById("ScannerExtensies").innerHTML.split(",")
	var correct_ext = extensies[ document.getElementById("UploadScanner").selectedIndex ]
	
	//als geen extensie is geconfigureerd (er staat dan "." in), dan mag alles	
	if ( correct_ext != "." && correct_ext != extensie ) {
		alert( "U heeft een ongeldig bestand gekozen. De extensie moet \"" + correct_ext + "\" zijn.")
		return;
	}

	var ask = "De naam van het bestand dat u wilt versturen is \"" + filenaam + "\". Weet u het zeker?"

	if ( confirm( ask)) { 
		document.forms[0].submit();	
		alert( "Het bestand is succesvul verzonden." )
	}
}


function createColumn(label, blokje, geenColumnsText) {

	var geenColumns = geenColumnsText == null || geenColumnsText == "undefined"? "" : geenColumnsText

	HTTPArray[label] = getHTTPObject();
	if (HTTPArray[label] != null) {
		
		var t_url= NewsDb + "/vlColumnsOpDatum!OpenView&count=1"
		HTTPArray[label].open("GET", t_url, true);						
		HTTPArray[label].onreadystatechange = function() {
				
			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
				try {		
					var resp = getAJAXHTML(HTTPArray[label].responseText)[0];

					if (resp.indexOf("No documents found")>-1)
						document.getElementById(label).innerHTML = "<div style='margin-left:10px;'>" + geenColumns + "</div>"
					else
						document.getElementById(label).innerHTML = resp;
								
				} catch (err) {
					return;
				}	
			}
		}
		HTTPArray[label].send(null)		
	}	
}
//deze functie maakt een overzicht van de meest recente columns van de afgelopen tijd
function createColumnRecent(label, blokje, geenColumnsText) {

	var geenRecentColumns = geenColumnsText == null || geenColumnsText == "undefined"? "" : geenColumnsText

	//nu gebeurt er een lookup in de nieuws database en wordt er gekeken naar de laatste 5 columns. Columns worden op datum aflopend gesorteerd
	HTTPArray[label] = getHTTPObject();
	
	if (HTTPArray[label] != null) {
	
		var t_url= NewsDb + "/vlColumnsRecent!OpenView&count=5"
		HTTPArray[label].open("GET", t_url, true);						
		HTTPArray[label].onreadystatechange = function() {
				
			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
				try {		
					var resp = getAJAXHTML(HTTPArray[label].responseText)[0];
					if (resp.indexOf("No documents found")>-1)
						var t_html = "<div style='margin-left:10px;'>" + geenRecentColumns + "</div>"	
					else			
						var t_html = "<ul class=\"right_list\">" + resp + "</ul>"
						
					document.getElementById(label).innerHTML = t_html;

					
				} catch (err) {
					return;
				}	
			}
		}
		HTTPArray[label].send(null)		
	}	
}
//deze functie haalt de eerste column op uit de lijst met columns
function getFirstColumn(label, blokje, geenColumnsText) {

	var geenFirstColumn = geenColumnsText == null || geenColumnsText == "undefined"? "" : geenColumnsText

	//override for label, dit komt doordat de bovenste paarse balk anders dubbel wordt getoond
	label = "contentcontainer"
	//nou okee... maar dan wel de eventuele tekst van CMS document hier tonen
	var introdiv =  document.getElementById("contenttext") 
	intro = introdiv==null || introdiv=="undefined"? "" : "<p><br/><br/>" + introdiv.innerHTML + "</p>"
	
	HTTPArray[label] = getHTTPObject();
	if (HTTPArray[label] != null) {

		var t_url= NewsDb + "/vlColumnsOpDatum/$first!OpenDocument"
		HTTPArray[label].open("GET", t_url, true);						
		HTTPArray[label].onreadystatechange = function() {
				
			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
				try {		
					var resp = getAJAXHTML(HTTPArray[label].responseText)[0];

					if (resp.indexOf("Exception")>-1) {
						document.getElementById(label).innerHTML = "<div class=\"header\"></div>" +
						 intro + "<div style='margin-left:10px; margin-right:10px; margin-top:40px;'>" + geenFirstColumn + "</div>"
					} else {
						document.getElementById(label).innerHTML = "<div class=\"header\"></div>" +
						 intro + resp;
					}
					
				} catch (err) {
					//	alert( err)
					return;
				}	
			}
		}
		HTTPArray[label].send(null)		
	}
}

//functie voor het openen van een nieuwe column
function nieuwecolumn(label) {
	location.href = CMSDb.substring( 0, CMSDb.lastIndexOf("/")) + "/actueel/column-schrijven.html"	
}

//deze functie haalt alle columns van de aangelogde persoon zien, zodat deze bewerkt kunnen worden.
function getMijnColumns(label) {

	loadjscssfile(NewsDb + "/columnoverzicht.css", "css")	
	var t_View_url = "";
	var now = Date.parse(new Date())
	t_View_url = NewsDb + "/vlColumnsOpUsername!OpenView&timestamp=" + now  + "&" 
	
	HTTPArray[label] = getHTTPObject();
	
	if(HTTPArray[label]!=null) {
		HTTPArray[label].open("GET", t_View_url, true)
		HTTPArray[label].onreadystatechange = function() {
		
			if( HTTPArray[label].readyState==4 || HTTPArray[label].readyState == "complete" )
			{
				try 	{
					var resp = getAJAXHTML(HTTPArray[label].responseText)[0]
					document.getElementById(label).innerHTML = resp
					
				} catch(err) {
					return;					
				}
			}
		}
		
		HTTPArray[label].send(null)
	}
}


//Deze functie opent de column in edit-mode 
function editColumn(UNID) {

	t_url = NewsDb + "/ColumnIframe!Readform&unid=" + UNID + "&returnscreen=overview&"
	ColFormReq = getHTTPObject();	

	if (ColFormReq != null) 	{
	
		ColFormReq.open( "GET", t_url , true)
		ColFormReq.onreadystatechange = function() {
		
			if( ColFormReq.readyState==4 || ColFormReq.readyState == "complete" ) {
				try 	{
					//Als de submit succesvol is verlopen, dan opnieuw de huidige pagina laden
					resp = getAJAXHTML(ColFormReq.responseText)[0]
					document.getElementById("contentcontainer").innerHTML = resp					
				}
				catch (err) {
					return;
				}	
			}		
		}
		
		ColFormReq.send(null)			
	}		

}

//Deze functie opent de column in edit-mode 
function newColumn() {

	t_url = NewsDb + "/ColumnIframe!Readform&url=" + NewsDb + "/fmColumn!OpenForm&remote_user=" + Username + "&returnscreen=overview&includepraktijk=no&" 
	ColFormReq = getHTTPObject();	
	
	if (ColFormReq != null) {
		ColFormReq.open( "GET", t_url , true)
		
		ColFormReq.onreadystatechange = function() {
			if( ColFormReq.readyState==4 || ColFormReq.readyState == "complete" ) {
				try 	{
					//Als de submit succesvol is verlopen, dan opnieuw de huidige pagina laden
					resp = getAJAXHTML(ColFormReq.responseText)[0]
					document.getElementById("contentcontainer").innerHTML = resp						
				}
				catch (err) {
					return;
				}	
			}		
		}
		
		ColFormReq.send(null)			
	}		

}

//Deze functie zet het veld "Deleted" en vult het veld met een datum
function deleteColumn(UNID) {
	msg = "Weet u zeker dat deze column verwijderd moet worden?";
	
	if(confirm(msg)) {
		t_url = NewsDb + "/0/"  + UNID + "!SaveDocument"
		nDate= new Date()
		var tDate = nDate.getDate() + "-" + (nDate.getMonth()+1) + "-" + nDate.getFullYear();
		var content = "Deleted=" + tDate + "&PublicatieStatus=Archief";		
		ColFormReq = getHTTPObject();	
		if (ColFormReq != null)  {
			ColFormReq.open( "POST", t_url , true)
			ColFormReq.onreadystatechange = function() {
				if( ColFormReq.readyState==4 || ColFormReq.readyState == "complete" ) {
					//alert(ColFormReq.responseText)
					try 	{
						//Als de submit succesvol is verlopen, dan opnieuw de huidige pagina laden
						//createVacatureBankUpload( 'contentBlocksDiv0_vacatures', 'vacature', 'opendocument' )
						getMijnColumns('contentBlocksDiv0_block')
					} catch (err) {
						return;
					}	
				}		
			}
			ColFormReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			ColFormReq.send(content)			
		}	
	}
}
//global vars om totaal aantal gevonden berichten vast te houden
aantalTotaal = "<img src=\"" + SharedDb + "/ajaxloaderec5.gif\">";		//initieel het loadicoon tonen
cijferreeks = "ophalen...<img src=\"" + SharedDb + "/ajaxloaderec5.gif\">"
dispKopRegel = "";	//kan in searchXXX functie gevuld worden met html om kopje boven results te tonen (optioneel)
HTTPReq1 = new Array()
HTTPReq2 = new Array()

//Toon het zoekblokje
//<param name="label"></param>
//<param name="item">zoekformulier; kan zijn "Nieuws", "Agenda", "Column", "KWIS", "Praktijk", "TAGids" of "Bieb"</param>
function createZoek(label, item ) {
	var HTTPzoek = getHTTPObject();

	if (HTTPzoek != null) {
	
		//voorkom cache in IE als gebruiker eerst inlogt, daarna uitlogt, en daarna anoniem opnieuw opent
		var t = new Date();			 
		var time = "";	
		if (Username=="Anonymous") time = "&t=" + t.getTime();
				
		HTTPzoek.open("GET", CMSDb + "/zoek" + item + "!openForm" + time, true);					
		
		HTTPzoek.onreadystatechange = function() {
			
			if ( HTTPzoek.readyState == 4 || HTTPzoek.readyState == "complete" ) {
			   try {
				
				var zoekform = getAJAXHTML( HTTPzoek.responseText)

				//als loginform terugkomt EN gebruiker is al ingelogd, dan is er dus
				// geen toegang tot dit zoekblokje!
				if (zoekform[0].indexOf("loginform") > 0 && Username != "Anonymous") 
					document.getElementById(label).innerHTML = "<div class=\"error\">U heeft geen toegang tot dit onderdeel.</div>"
				else 	
					document.getElementById(label).innerHTML = zoekform[0]	
					
				
				//indien inlogscherm terug gekregen (zoekscherm is alleen voor leden)
				// wachtwoordveld vullen
				var testPW = document.getElementById("password")

				if (testPW != null && testPW != "undefined" ) 
					testPW.value = getCookie("nmtpassword")
								

				//als KWIS zoeken is geopend, tabs functie aanroepen
				if (item=="KWIS") {

					tabs( document.getElementById(label) )

					//cookie tab uitlezen indien van toepassing				
					var cLetter = getCookie("KWISLetter")

					if (cLetter && cLetter != "leeg") {
						var tab = cLetter.substring(0, cLetter.indexOf("~"))
						var letter = cLetter.substring( cLetter.indexOf("~")+1, cLetter.length)
						document.getElementById(tab+"_link").onclick()
						document.getElementById("searchResults").style.display="none"
						dispAlfabet(tab, letter)
					}							
				}	

				//als formulier al met zoekfunctie is aangeroepen, deze ook meteen uitvoeren
				//var cookiesearch = getCookie("search"+item)
				//if ( cookiesearch != null && cookiesearch != "undefined" && cookiesearch != "") 
				//	eval("search"+item+"()")

					
			   } catch(err) {
			   	 return;
			   }
			}
		}
		HTTPzoek.send(null)
	}			
}

//voor Mijn NMT zoeken in nieuws, agenda en TAGids, maar dan binnen eigen kring of afdeling
//<param name="label"></param>
//<param name="item">"Nieuws-mijn", "Agenda-mijn" of "TAGids-mijn"</param>
//<param name="subset">"Kring" of "Afdeling"</param>
function createMijnNMTZoek(label, item, subset) {
	HTTPZoek = getHTTPObject();	
	
	if (HTTPZoek != null) {
		
		HTTPZoek.open("GET", CMSDb + "/zoek" + item.substring(0, item.indexOf("-")) + "!openForm", true)	
	
		HTTPZoek.onreadystatechange = function() {
			if (HTTPZoek.readyState == 4 || HTTPZoek.readyState=="complete") {
			
				try {
					var zoekform = getAJAXHTML( HTTPZoek.responseText	)
					var objTarget = document.getElementById(label)
					objTarget.innerHTML = zoekform[0]
															
					objTarget.style.marginLeft = "10px" 
					objTarget.style.display = "block"					 
					
					//style voor mijn NMT toepassen
					var titel = document.getElementById("titel")
					if (titel != null && titel != "undefined") titel.innerHTML = ""

					var form = document.getElementById("form")
					if (form != null && form != "undefined") {
						//form.className = ""
						var formTable = document.getElementById("formTable")
						//.className = "lightblue form mijnnmtzoek"	
						if(formTable!=null &&formTable!="undefined")
						{
							formTable.className = "lightblue form mijnnmtzoek"	
							if (item=="TAGids-mijn") {
								formTable.setAttribute("style", "margin-top:110px;")	
								formTable.style.width = "450px"
							}	
						}
						form.id += " " + subset //hierdoor weer zoekfunctie waarbinnen te zoeken
					}
					
					//bij zoeken binnen MIJN NMT geen mogelijkheid om op provincie te zoeken (TAgids)
					var provRow = document.getElementById("provincierow")
					if ( provRow != null && provRow != "undefined")
						provRow.style.display="none"
					
					//bij zoeken binnen MIJN NMT geen mogelijkheid om op type agenda te zoeken (Agenda)
					var ag_type = document.getElementById("type_agenda") 
					if ( ag_type != null && ag_type != "undefined") 
						ag_type.style.display="none"
									
				} catch (err) {
					// alert( err)
					return;
				}			
			}
		}
		HTTPZoek.send(null)
	}
}


//******************************* sitesearch ***********************************//
//global needed for searching
var req;

//<function name="loadXMLDoc()">
//<summary>
//
//<param name="url"></param>
//</summary>
function loadXMLDoc(url) 
{
    req = getHTTPObject()
    req.onreadystatechange = processReqChange;
    req.open("GET", url, true);
    req.send(null);
}
//</function>

//<function name="processReqChange()">
//<summary>
//
//</summary>
function processReqChange()
{
	try
	{
	     if (req.status == 200 && req.readyState == 4) 
		{
			resultHTML=req.responseText
			document.getElementById("searchResults").innerHTML = resultHTML									
			var iResult = document.getElementById("Count").innerHTML			
			if(iResult=="Geen resultaten gevonden")
			{
				document.getElementById("aantalsearchResults").innerHTML = iResult
			}
			else
			{
				if(parseInt(iResult)>1)
				{
				document.getElementById("aantalsearchResults").innerHTML = iResult + " resultaten"
				}
				else
				{
				document.getElementById("aantalsearchResults").innerHTML = iResult + " resultaat"							
				}
			}
			//processing time
			//document.getElementById("aantalsearchSeconden").innerHTML = document.getElementById("processingtime").innerHTML				
			currentSearchResultBlock="searchresultsblock_001";
			currentLinkBlockIndex = "linkblockindex_001";
			currentBlockNr = 1;			
			createPaginator()
		}
	}
	catch(err)
	{
		//alert(err);
	}
}
//</function>


function randomNumber() {
	return (Math.floor((99999999) * Math.random()+1));
}


//<function name="checkDirectSearch()">
//<summary>
//
//</summary>
function checkDirectSearch()
{
	//first set the onderwerpen goed
	var objArg = location.hash.split("&")
	var param
	var paramValue
	for(i=0;i<objArg.length;++i)
	{
		if(objArg[i].length!="")
		{
			param = objArg[i].split("=")[0]		
			paramValue = objArg[i].split("=")[1]	

			if(param=="areaKey")
			{
				var objOnderwerpen = document.getElementById("Onderwerpen")
				for(k=0;k<objOnderwerpen.length;++k)
				{
					if(paramValue==objOnderwerpen[k].value)
					{
						objOnderwerpen.selectedIndex = k
					}				
				}	
			}
			if(param=="directsearch")
			{
				if(paramValue=="yes")
				{
					activateSearch()
				}					
			}
			if(param=="resultblock")
			{
				//alert("stop hier eventjes")
				directSearchBlockNr = parseInt(paramValue)
				//hier moet even gewacht worden tot dat het object				
				if(paramValue!="1")
				{
					if(directSearchBlockNr<10)
					{
						timedSwitchSearchBlock("searchresultsblock_00"  + directSearchBlockNr)
					}
					else
					{
						timedSwitchSearchBlock("searchresultsblock_0"  + directSearchBlockNr)					
					}
				}
			}
		}
	}	
}
//</function>


//<function name="activateSearch()">
//<summary>
//
//</summary>
function activateSearch()
{
	//Deze functie detecteert door welke database gezocht moet worden en kan meerdere httprequests uitvoeren om te zoeken
	var objOnderwerp = document.getElementById("Onderwerpen");
	var objLoaderImg = document.getElementById("aantalsearchResults")
	objLoaderImg.innerHTML = "zoeken..." + aantalTotaal
	//schoon de eventuele paginator op
	var objPaginator = document.getElementById("pagination_bottom")
	if(objPaginator)
	{
		objPaginator.innerHTML = "" 
	}

	var selectedOnderwerp;	
	var URLArray = new Array();
	var t_query = "";

	if(objOnderwerp)
	{
		selectedOnderwerp = objOnderwerp[objOnderwerp.selectedIndex].value
	}

	var objSearchQuery = document.getElementById("Zoekterm");
	//objSearchQuery.value = checkSyntax(objSearchQuery.value)
		
	//Check if the query is correct
	if(objSearchQuery.value=="") 
	{
		alert("Zoekterm mag niet leeg zijn!")
		document.getElementById("aantalsearchResults").innerHTML = "";
		document.getElementById("searchResults").innerHTML = ""				
		return;
	}
	else
	{
		t_query = checkSyntax(objSearchQuery.value)	

		if(validateSyntax(t_query))
		{
			var searchURL = SearchDb + "/ajaxsearchselecteddatabase!openagent&SearchString=" + t_query + "&rdm=" +randomNumber();	
			URLArray[0] = searchURL + "&areaKey=" + selectedOnderwerp + "&"; 
			req = null;
			//first clean current search results
			document.getElementById("searchResults").innerHTML = "";
			loadXMLDoc(URLArray[0]);	
		}
	}
}
//</function>


//<function name="catchZoekEnter()">
//<summary>
//
//<param name="e"></param>
//</summary>
function catchZoekEnter(e)
{
	if (!e) var e = window.event	
	if (e.keyCode == 13 || e.which == 13) {
		activateSearch();
		return false;
	}

}
//</function>


//<function name="loadSearchResult()">
//<summary>
//
//<param name="url"></param>
//</summary>
function loadSearchResult(url)
{
	//replace the hash to retain the search criteria
	var objOnderwerp = document.getElementById("Onderwerpen");
	var objSearchQuery =  document.getElementById("Zoekterm");
	var strDirectSearch = "&directsearch=yes";			//extra parameter om te bepalen of er direct gesearched moet worden
	var strResultBlock = "&resultblock="  + currentBlockNr + "&";		//welk resultblock was de laatste
	var t_query = "";
	t_query = objSearchQuery.value.replace(/@<>/g, "")

//	alert("query=" + t_query + "&areaKey=" + objOnderwerp[objOnderwerp.selectedIndex].value + strDirectSearch + strResultBlock)
	location.hash = "query=" + t_query + "&areaKey=" + objOnderwerp[objOnderwerp.selectedIndex].value + strDirectSearch + strResultBlock
	//using the location.href to generate a history-entry in the browser history

	if(url.indexOf("javascript:")>-1)
	{
		eval(url)
	}
	else
	{
		if(url.indexOf(".html")>-1)
		{
			location.href = url	
		}
		else
		{
			url+="^^zoeken" 		
			location.href = url				
		}
	}

}
//</function>


//<function name="createPaginator()">
//<summary>
//
//</summary>
function createPaginator()
{
	var objPaginator = document.getElementById("pagination_bottom")
	var arrSearchBlocks = document.getElementById("hiddenPaginator").innerHTML.split("^^");
	if(arrSearchBlocks.length>1)
	{
		var strPaginator = ""
		for(j=0;j<arrSearchBlocks.length;++j)
		{
			strPaginatorLine = ""
			//per regel wordt de array nu uitgelezen en een <li> element van gemaakt
			// a[0] = li_id
			// a[1] = li_style
			// a[2] = a_href
			// a[3] = a_class 
			// a[4] = a_id
			// a[5] = a_text
			paginatorLineArray = arrSearchBlocks[j].split("$$")
			strPaginatorLine+="<li id="  + paginatorLineArray[0]
			strPaginatorLine+=" style=" + paginatorLineArray[1] + ">"
			strPaginatorLine+="<a href=" + paginatorLineArray[2]
			strPaginatorLine+=" class="  + paginatorLineArray[3]
			if(j==0)
				strPaginatorLine+=" id=" + paginatorLineArray[4] + " style=\"padding-left:16px\">" 
			else
	
				strPaginatorLine+=" id=" + paginatorLineArray[4] + ">" 			
	
			strPaginatorLine+=paginatorLineArray[5] + "</a>"
			
			if(j==arrSearchBlocks.length-1)
				strPaginatorLine+="</li>" 
			else
				strPaginatorLine+="|</li>" 		
	
			strPaginator+=strPaginatorLine			
		}
		objPaginator.innerHTML = strPaginator		
	}
}


//global voor het bijhouden welk searchblock was geselecteerd
var directSearchBlockNr = "";
var currentSearchResultBlock="searchresultsblock_001";
var currentLinkBlockIndex = "linkblockindex_001";
var currentBlockNr = 1;


function switchSearchBlock(arg)
{
	var objCurrentSearchResultBlock = document.getElementById(currentSearchResultBlock)	
	var objCurrentLinkBlockIndex = document.getElementById(currentLinkBlockIndex)	
	var intMaxResultBlocks = parseInt(document.getElementById("hiddenPageIndexMaximum").innerHTML)
	if(arg=="next")
	{
		nextBlockNr = currentBlockNr + 1
		//now get the element, if exists, show it, if doesn't exist, stop
		if(nextBlockNr <= intMaxResultBlocks)
		{
			if(nextBlockNr<10)
			{			
				nextblock = "searchresultsblock_00" + nextBlockNr.toString()
				linkblockindex = "linkblockindex_00" + nextBlockNr.toString()
			}
			else
			{
				nextblock = "searchresultsblock_0" + nextBlockNr.toString()			
				linkblockindex = "linkblockindex_0" + nextBlockNr.toString()
			}
			//get the new searchresultblock
			var objNewSearchResultBlock = document.getElementById( nextblock )
			if(objNewSearchResultBlock)
			{
				objNewSearchResultBlock.style.display = "block"
				objCurrentSearchResultBlock.style.display = "none"				
			}
			//now the index button, change of className
			var objNewLinkBlockIndex = document.getElementById( linkblockindex )
			objNewLinkBlockIndex.className = "active";			
			if(objNewLinkBlockIndex)
			{
				objNewLinkBlockIndex.className = "active";
			}
			if(objCurrentLinkBlockIndex)
			{
				objCurrentLinkBlockIndex.className = "";
			}
			//finally set the current variables
			currentSearchResultBlock = nextblock
			currentLinkBlockIndex = linkblockindex
			currentBlockNr = nextBlockNr				
		}
		else
		{
			//do nothing, you have reached the maximum
			//alert("je hebt het maximum bereikt van " + intMaxResultBlocks + " blokken, je kan niet verder")
		}
	}
	if(arg=="previous")
	{
		previousblock = "searchresultsblock_"
		linkblockindex = "linkblockindex_"
		previousBlockNr = currentBlockNr - 1
		//alert("Current = " + currentBlockNr + " next =" + previousBlockNr);		
		//now get the element, if exists, show it, if doesn't exist, stop
		if(previousBlockNr>0)
		{
			if(previousBlockNr<10)
			{
				previousblock +=  "00" + previousBlockNr.toString()
				linkblockindex +="00" + previousBlockNr.toString()
			}	
			else
			{
				previousblock +=  "0" + previousBlockNr.toString()
				linkblockindex +="0" + previousBlockNr.toString()			
			}
			//get the new searchresultblock
			var objNewSearchResultBlock = document.getElementById( previousblock )
			if(objNewSearchResultBlock)
			{
				objNewSearchResultBlock.style.display = "block"
			}
			//now hide the old searchresultblock and activate the correct index number
			if(objCurrentSearchResultBlock)
			{
				objCurrentSearchResultBlock.style.display = "none"
			}			
			//now the index button, change of className
			
			var objNewLinkBlockIndex = document.getElementById( linkblockindex )
			if(objNewLinkBlockIndex)
			{
				objNewLinkBlockIndex.className = "active";
			}
			if(objCurrentLinkBlockIndex)
			{
				objCurrentLinkBlockIndex.className = "";
			}
			//finally set the current variables
			currentSearchResultBlock = previousblock
			currentLinkBlockIndex = linkblockindex
			currentBlockNr = previousBlockNr				
		}
		else
		{
			//do nothing, you have reached the bottom
			//alert("je hebt de ondergrens bereikt van 0, nu kan je misschien niet verder, maar er moet wel gekeken worden of je niet minder searchblocks hebt")
		}

	}
	if(arg!="next" && arg!="previous")
	{
			//now we have a numerical switch
			//previousblock = "searchresultsblock_"
			
			linkblockindex = "linkblockindex_"			
			linkblockindex = arg.replace("searchresultsblock_","linkblockindex_")
			if(arg.indexOf("_")>-1)
			{
				indexBlockNr = parseFloat(arg.split("_")[1])
				//alert("indexBlockNr = " + indexBlockNr + " parseFloat(indexBlockNr) = "  + parseFloat(indexBlockNr))
				indexblock = document.getElementById(arg)
				var objIndexSearchResultBlock = document.getElementById(arg)
				var objIndexLinkBlockIndex = document.getElementById(linkblockindex)
				objIndexSearchResultBlock.style.display = "block" ;
				objIndexLinkBlockIndex.className = "active" ;	
				objCurrentSearchResultBlock.style.display = "none"
				objCurrentLinkBlockIndex.className = "";			
			}
			//finally set the current variables
			currentSearchResultBlock = arg
			currentLinkBlockIndex = linkblockindex
			currentBlockNr = indexBlockNr
	}
}
//</function>

function timedSwitchSearchBlock(arg)
{
	// var obj = document.getElementById("pagination_bottom")
	var obj = document.getElementById("hiddenPageIndexMaximum")
	if(obj)
	{
		//alert('gevonden')
		switchSearchBlock(arg)
	}
	else
	{
		window.setTimeout( "timedSwitchSearchBlock('" + arg + "')", 500 ); 
	}
}

function validateSyntax(arg)
{
	//deze functie valideert of de zoeksyntax aan de volgende regels voldoet.
	if(arg.length<2)
	{
		alert("Zoekterm moet minimaal 2 karakters bevatten!")
		document.getElementById("aantalsearchResults").innerHTML = "";
		document.getElementById("searchResults").innerHTML = ""		
		return false;
	}
	if(arg.length>100)
	{
		alert("Zoekterm mag niet langer zijn dan 100 karakters!");
		document.getElementById("aantalsearchResults").innerHTML = "";
		document.getElementById("searchResults").innerHTML = ""				
		return false;
	}
	return true;	
}



//******************************* end of sitesearch ***********************************//

function searchAgendaExecute() {
	searchAgenda()
}


//zoeken in agenda; roept uiteindelijk generieke zoekfunctie "performSearch" aan
function searchAgenda( buttonClick ) {

	var query="";
	var cz="";
	var pageString = "1~10~1~1"	//default

	document.getElementById("searchResults").innerHTML = "zoeken...<img src=\"" + SharedDb + "/ajaxloaderec5.gif\">"

	//als zoekfunctie wordt gestart vanaf zoekpagina zelf EN zonder click op de zoekbutton, dan
	// zoekquery uit cookie halen, want dan is de functie via een reload of een 'terug' link 
	// aangeroepen, en willen we de laatst uitgevoerde zoekfunctie opnieuw uitvoeren
	//anders: zoekfunctie is gestart door OF een click op de zoekbutton OF via de onload waarbij
	// van een andere pagina hiernaartoe genavigeerd is, dan kijken naar de huidige inhoud van de
	// velden, die default zijn gevuld bij onload (deze maand/dit jaar) of door gebruiker zijn
	// ingevuld bij onClick
	if (buttonClick == null || buttonClick == "" || buttonClick==false) 
		cz = getCookie("searchAgenda")
	
	if ( cz != "" && cz != "undefined" && cz != null && location.href == document.referrer) {
	
		var veldwaarden = cz.split("##") 

		var zoekterm = veldwaarden[0]
		var periodeIndex = veldwaarden[1] 
		var type = veldwaarden[2]
		var maand = veldwaarden[3]
		var jaar = veldwaarden[4]

		//overschrijf pageString als in cookie een pagina staat
		if (veldwaarden[5] != "undefined" && veldwaarden[5] != null && veldwaarden[5] != "")
			pageString = veldwaarden[5]
		
		//waarden in de input velden aanpassen naar waarop zojuist gezocht is:
		document.getElementById("Zoek").value = zoekterm
		document.getElementById("Type").value = type
		document.getElementById("Maand").value = maand
		document.getElementById("Jaar").value = jaar
		
		if (periodeIndex != "")
			document.getElementsByName("Periode")[periodeIndex].checked = true
			

	} else {
	
		var zoekterm = document.getElementById("Zoek").value
		var type = document.getElementById("Type").value
		var maand = document.getElementById("Maand").value
		var jaar = document.getElementById("Jaar").value
	}

	var periode = document.getElementsByName("Periode")
	
	zoekterm += zoekterm==""? "" : " AND "

	datum = new Date();
	
	if (type=="1") zoekterm += "[form]=fmCalendar AND "
	else if (type=="2") zoekterm += "[form]=fmKA AND " 

	
	if (maand=="0" && jaar=="0") {		//DEZE WEEK/DEZE MAAND IS INGEVULD
	
		if (periode[0].checked)  {	 			// DEZE MAAND
		
			thisMonth = datum.getMonth()+1

			jaar = datum.getFullYear()

			lastDay = getLastDay(thisMonth)

			maand = ("0" + thisMonth).substring( ("0"+thisMonth).length-2, ("0"+thisMonth).length)	
			
			if (type=="0") {		//KWIS én NMT		
				zoekterm += "(([StartDate] >= 01-" + maand + "-" + jaar + " AND [StartDate] <= " + lastDay
				zoekterm += "-" + maand + "-" + jaar + ") OR ([KAData] >= 01-" + maand + "-" + jaar + " AND "
				zoekterm += "[KAData] <= " + lastDay + "-" + maand + "-" + jaar + "))"	
			} else if (type=="1") {	//NMT
				zoekterm += "[StartDate] >= 01-" + maand + "-" + jaar + " AND [StartDate] <= " + lastDay
				zoekterm += "-" + maand + "-" + jaar
			} else {				//KWIS
				zoekterm += "[KAData] >= 01-" + maand + "-" + jaar + " AND [KAData] <= " + lastDay
				zoekterm += "-" + maand + "-" + jaar
			}	
		
		} else if (periode[1].checked) {			// DEZE WEEK

			nrDaysToStart = datum.getDay() - 1
			nrDaysToEnd = 7 - nrDaysToStart
			startDate = new Date(datum.getFullYear(), datum.getMonth(), datum.getDate()- nrDaysToStart)
			endDate = new Date(datum.getFullYear(), datum.getMonth(), datum.getDate() + nrDaysToEnd)

			if (type=="0") {			//KWIS én NMT
				zoekterm += "(([StartDate] >= " + startDate.getDate() + "-" + (startDate.getMonth()+1) + "-" + startDate.getFullYear()
				zoekterm += " AND [StartDate] < " + endDate.getDate() + "-" + (endDate.getMonth()+1) + "-" + endDate.getFullYear() + ") OR "
				zoekterm += "([KAData] >= " + startDate.getDate() + "-" + (startDate.getMonth()+1) + "-" + startDate.getFullYear()
				zoekterm += " AND [KAData] < " + endDate.getDate() + "-" + (endDate.getMonth()+1) + "-" + endDate.getFullYear() + "))"
			} else if (type=="1") {		//NMT
				zoekterm += "[StartDate] >= " + startDate.getDate() + "-" + (startDate.getMonth()+1) + "-" + startDate.getFullYear()
				zoekterm += " AND [StartDate] < " + endDate.getDate() + "-" + (endDate.getMonth()+1) + "-" + endDate.getFullYear()	
			} else {					//KWIS
				zoekterm += "[StartDate] >= " + startDate.getDate() + "-" + (startDate.getMonth()+1) + "-" + startDate.getFullYear()
				zoekterm += " AND [StartDate] < " + endDate.getDate() + "-" + (endDate.getMonth()+1) + "-" + endDate.getFullYear()	
			}
		}
		
	} else   { 								//MAAND EN/OF JAAR IS INGEVULD
		
		lastDay = getLastDay(maand)
		
		var kleinerDatumJaar = "";
		var groterDatumJaar = "";
		var maandallejaren = "";
	
		if (type=="0") {				//KWIS én NMT	

			if (maand=="0") {	
				kleinerDatumJaar = " (([StartDate] <= 31-12-" + jaar + " OR [KAData] <= 31-12-" + jaar + ")"
				groterDatumJaar = " AND ([StartDate] >= 01-01-" + jaar + " OR [KAData] >= 01-01-" + jaar + "))"
		
			} else if (jaar != "0") {
				maandNotatie = ("0" + maand).substring( ("0"+maand).length-2, ("0"+maand).length)
				kleinerDatumJaar = " (([StartDate] <= " + lastDay + "-" + maandNotatie + "-" + jaar
				kleinerDatumJaar += " OR [KAData] <= " + lastDay + "-" + maandNotatie + "-" + jaar + ")"
				groterDatumJaar = " AND ([StartDate] >= 01-" + maandNotatie + "-" + jaar
				groterDatumJaar += " OR [KAData] >= 01-" + maandNotatie + "-" + jaar + "))"
		
			}
			
		} else if (type=="1") {			//NMT
			
			if (maand=="0") {	
				kleinerDatumJaar = " ([StartDate] <= 31-12-" + jaar
				groterDatumJaar = " AND [StartDate] >= 01-01-" + jaar + ")"
				
			} else if (jaar != "0") {
				maandNotatie = ("0" + maand).substring( ("0"+maand).length-2, ("0"+maand).length)
				kleinerDatumJaar = " ([StartDate] <= " + lastDay + "-" + maandNotatie + "-" + jaar
				groterDatumJaar = " AND [StartDate] >= 01-" + maandNotatie + "-" + jaar + ")"

			} 			

		} else {						//KWIS
			if (maand=="0") {	
				kleinerDatumJaar = " ([KAData] <= 31-12-" + jaar
				groterDatumJaar = " AND [KAData] >= 01-01-" + jaar + ")"
			} else if (jaar != "0") {
				maandNotatie = ("0" + maand).substring( ("0"+maand).length-2, ("0"+maand).length)
				kleinerDatumJaar = " ([KAData] <= " + lastDay + "-" + maandNotatie + "-" + jaar
				groterDatumJaar = " AND [KAData] >= 01-" + maandNotatie + "-" + jaar + ")"

			} 
		}
		
		if (kleinerDatumJaar=="") {
			alert("U heeft een maand gekozen. Kies hierbij ook een jaar.");
			document.getElementById("searchResults").innerHTML = ""
			return;			
		}	
		
		zoekterm += kleinerDatumJaar + groterDatumJaar 

	}	

	if (zoekterm=="") {
		alert( "Kies een jaar en eventueel een maand." )
		document.getElementById("searchResults").innerHTML = ""
	}

	if (zoekterm.substring( zoekterm.length-4, zoekterm.length-1)=="AND")
		zoekterm = zoekterm.substring(0,zoekterm.length-4)  

	if (group == "Mijn NMT") {		//alleen binnen eigen afdeling zoeken op Mijn NMT pagina
		zoekterm = "(" + zoekterm + ") AND [AgendaAfdeling]=" + Afdeling					
	}
	
	query = "&query=" + zoekterm + "&searchOrder=2"
	
	performSearch( "searchResults", KWISDb + "/vlWebsite4Zoek!searchView" + query, pageString.split("~"), true, ["bericht", "berichten"])

	var periodeChecked = ""
	if (periode[0].checked) periodeChecked="0"
	if (periode[1].checked) periodeChecked="1"
		
	var cookieValues = document.getElementById("Zoek").value + "##" + periodeChecked + "##"
	cookieValues += type + "##" + maand + "##" + jaar 
	addCookie("searchAgenda", cookieValues)

}

//zoeken in columns; roept uiteindelijk generieke zoekfunctie "performSearch" aan
function searchColumnsExecute()
{
	document.getElementById("searchResults").innerHTML = "zoeken...<img src=\"" + SharedDb + "/ajaxloaderec5.gif\">"
	var zoekterm = document.getElementById("Zoek").value;
	
	var maand = document.getElementById("Maand").value;
	var jaar = document.getElementById("Jaar").value;

	var maandNotatie = "";
		
	var lastDay = getLastDay( maand)	
	var kleinerDatumJaar = "";
	var groterDatumJaar = "";
		
	//opbouwen zoekstring
	if (maand=="0") {	
		kleinerDatumJaar = " AND [PresentatieDatum] <= 31-12-" + jaar
		groterDatumJaar = " AND [PresentatieDatum] >= 01-01-" + jaar
	} else if (jaar != "0") {
		maandNotatie = ("0" + maand).substring( ("0"+maand).length-2, ("0"+maand).length)
		kleinerDatumJaar = " AND [PresentatieDatum] <= " + lastDay + "-" + maandNotatie + "-" + jaar
		groterDatumJaar = " AND [PresentatieDatum] >= 01-" + maandNotatie + "-" + jaar
	} else {
		alert("U heeft een maand gekozen. Kies hierbij ook een jaar.");
		document.getElementById("searchResults").innerHTML = ""
		return;
	}
	
	zoekterm += (jaar=="0" && maand=="0")? "" : groterDatumJaar + kleinerDatumJaar 

	
	if (zoekterm=="") {
		alert( "Vul minimaal één zoekveld in" )
		document.getElementById("searchResults").innerHTML = ""
		return;
	}

	if (zoekterm.substring(0,4) == " AND") 
		zoekterm = zoekterm.substring(5, zoekterm.length)

	//op datum sorteren
	//searchOrder=4 icm start= count= werkt niet goed, dus dan maar searchorder=3; zie Help van Notes!
	var query = "&query=" + zoekterm + "&searchOrder=3"   
	var t_url =  NewsDb + "/vlWebsite4ZoekColumns!SearchView" + query
	performSearch( "searchResults", t_url, [1,10,1,1], true, ["column", "columns"] );
	
}


function searchNewsExecute() {
	searchNews() //hmmm...
}

//zoeken in nieuws; roept uiteindelijk generieke zoekfunctie "performSearch" aan
function searchNews(buttonClick) {

	var query="";
	var cz="";
	var pageString = "1~10~1~1"	//default
	
	document.getElementById("searchResults").innerHTML = "zoeken...<img src=\"" + SharedDb + "/ajaxloaderec5.gif\">"

	//als zoekfunctie wordt gestart vanaf zoekpagina zelf EN zonder click op de zoekbutton, dan
	// zoekquery uit cookie halen, want dan is de functie via een reload of een 'terug' link 
	// aangeroepen, en willen we de laatst uitgevoerde zoekfunctie opnieuw uitvoeren
	//anders: zoekfunctie is gestart door OF een click op de zoekbutton OF via de onload waarbij
	// van een andere pagina hiernaartoe genavigeerd is, dan kijken naar de huidige inhoud van de
	// velden, die default zijn gevuld bij onload (deze maand/dit jaar) of door gebruiker zijn
	// ingevuld bij onClick
	if (buttonClick == null || buttonClick == "" || buttonClick==false)
		cz = getCookie("searchNews")
	
	if ( cz != "" && cz != "undefined" && cz != null && location.href == document.referrer) {
	
		var veldwaarden = cz.split("##") 

		var zoekterm = veldwaarden[0]
		var type = veldwaarden[1]
		var maand = veldwaarden[2]
		var jaar = veldwaarden[3]
		
		//overschrijf pageString als in cookie een pagina staat
		if (veldwaarden[4] != "undefined" && veldwaarden[4] != null && veldwaarden[4] != "")
			pageString = veldwaarden[4]	
		
		//waarden in de input velden aanpassen naar waarop zojuist gezocht is:
		document.getElementById("Type").value = type
		document.getElementById("Maand").value = maand
		document.getElementById("Jaar").value = jaar
		document.getElementById("Zoek").value = zoekterm
	
	} else {	
	
		var zoekterm = document.getElementById("Zoek").value;
		var type = document.getElementById("Type").value;
		var maand = document.getElementById("Maand").value;
		var jaar = document.getElementById("Jaar").value;
	}
	
	var maandNotatie = "";
		
	var lastDay = getLastDay( maand)	
	var kleinerDatumJaar = "";
	var groterDatumJaar = "";

		
	//opbouwen zoekstring
	if (maand=="0") {	
		kleinerDatumJaar = " AND [PresentatieDatum] <= 31-12-" + jaar
		groterDatumJaar = " AND [PresentatieDatum] >= 01-01-" + jaar
	} else if (jaar != "0") {
		maandNotatie = ("0" + maand).substring( ("0"+maand).length-2, ("0"+maand).length)
		kleinerDatumJaar = " AND [PresentatieDatum] <= " + lastDay + "-" + maandNotatie + "-" + jaar
		groterDatumJaar = " AND [PresentatieDatum] >= 01-" + maandNotatie + "-" + jaar
	} else {
		alert("U heeft een maand gekozen. Kies hierbij ook een jaar.");
		document.getElementById("searchResults").innerHTML = ""
		return;
	}
	
	zoekterm += type=="0"? "" : " AND [Newscategory]=" + type 		
	zoekterm += (jaar=="0" && maand=="0")? "" : groterDatumJaar + kleinerDatumJaar 

	
	if (zoekterm=="") {
		alert( "Kies een jaar en eventueel een maand." )
		document.getElementById("searchResults").innerHTML = ""
		return;
	}

	if (zoekterm.substring(0,4) == " AND") 
		zoekterm = zoekterm.substring(5, zoekterm.length)

	if (group == "Mijn NMT")  { //alleen binnen eigen afdeling of kring zoeken op Mijn NMT pagina
		
		var Div0 = document.getElementById("contentBlocksDiv0_mijnafdeling")
	
		if ( Div0 == null || Div0 == "undefined") {
		
			var id_form = document.getElementById("form IQual")
		
			if (id_form != null && id_form != "undefined")
				zoekterm = "(" + zoekterm + ") AND [NewsIQual]=" + IQualNr
			else
				zoekterm = "(" + zoekterm + ") AND [NewsKring]=" + Kring
			
		} else	
			zoekterm = "(" + zoekterm + ") AND [NewsAfdeling]=" + Afdeling					
		
	}

	query = "&query=" + zoekterm  + "&searchOrder=3"  

	performSearch( "searchResults", NewsDb + "/vlWebsite4Zoek!SearchView" + query, pageString.split("~"), true, ["bericht", "berichten"] );

	var cookieValues = document.getElementById("Zoek").value + "##" + type + "##" + maand + "##" + jaar
	addCookie("searchNews", cookieValues)

}


//zoeken in tandartsengids; deze bestaat uit vier functies,
// eerst wordt een cookie gezet om de waarde vanaf de landingspagina op te slaan
// redirectURL			= te openen resultaatscherm; is URL naar contentpagina [OPTIONEEL]
function searchTAGids( redirectURL ) {
	
	var openURL = redirectURL==null || redirectURL=="undefined"? "" : redirectURL

	if (openURL != "") {
		//query in cookie bewaren				
		searchTAGidsWriteCookie()
		window.open( openURL + "#searchTAGids", "_self")	
		return;	
	} 
}

function searchTAGidsWriteCookie() {

	var cookieQuery = ""
	cookieQuery += "^[Achternaam]=" + document.getElementById("achternaam").value +"*"
	cookieQuery += "^[kTussenvoegsel]="  + document.getElementById("tussenvoegsel").value +"*" 
	cookieQuery += "^[Plaatsnaam]=" + document.getElementById("plaatsnaam").value +"*" 
	
	var diff = document.getElementById("differentiatie")
	
	//als differentiatie (en dus specialisme en provincie) niet bestaan is zoekquery vanaf het
	//  kleine blokje op de landingspagina aangeroepen
	if (diff != null && diff != "undefined") {   
		cookieQuery += "^[kDifferentiatie]=" + diff.value + "*"
		cookieQuery += "^[kSpecialisme]=" + document.getElementById("specialisme").value + "*"
		cookieQuery += "^[Provincie]=" + document.getElementById("provincie").value + "*"
	}
	
	var plaatsOption = document.getElementsByName("achternaamoption")
		
	if (plaatsOption[0].checked) cookieQuery += "^[PlaatsOptie]=0*" 		//praktijkplaats	
	else if (plaatsOption[1].checked) cookieQuery += "^[PlaatsOptie]=1*" 	//woonplaats	
	else cookieQuery += "^[PlaatsOptie]=2*"							//provincie
	
	addCookie( "searchTAGids", cookieQuery, true )
}

function searchTAGidsReadCookie()  {

	var cz = getCookie("searchTAGids")
	//de cookie kan bestaan uit de volgende onderdelen
	//  ^trefwoord*   of ^ AND [veldnaam]=veldwaarde*  .. de scheidingstekens zijn dus ^ en *
	// deze uitvoeren en de ingegeven zoektermen in de velden invullen
	
	if ( cz != "" && cz != null && cz != "undefined") {
	
		var fieldPairs = cz.split("*")		
		
		for( w=0; w < fieldPairs.length; w++) {
		
			var cleanPair = fieldPairs[w].replace("^", "")		

			if(cleanPair!="") {
			
				if(cleanPair.indexOf("[Achternaam]=")>-1) {					
					pairValue = cleanPair.split("=")[1]
					pairField = "achternaam" 	
					document.getElementById(pairField).value = pairValue
				}	
						
				if(cleanPair.indexOf("[kTussenvoegsel]=")>-1) {
					pairValue = cleanPair.split("=")[1]
					pairField = "tussenvoegsel" 	
					document.getElementById(pairField).value = pairValue
				}							
		
				if(cleanPair.indexOf("[Plaatsnaam]=")>-1) {
					pairValue = cleanPair.split("=")[1]
					pairField = "plaatsnaam" 	
					document.getElementById(pairField).value = pairValue
				}	
				
				if (cleanPair.indexOf("[Provincie]=")>-1) {
					pairValue = cleanPair.split("=")[1]
					pairField = "provincie"
					document.getElementById(pairField).value = pairValue
					document.getElementById(pairField).disabled = false
				}
											
				if (cleanPair.indexOf("[PlaatsOptie]=")>-1) {
				
					pairValue = cleanPair.split("=")[1]
					var plaatsOption = document.getElementsByName("achternaamoption")
					var provincieOption = document.getElementsByName("provincieoption")

					if (pairValue=="0")
						plaatsOption[0].checked = true	
					else if (pairValue=="2") {
						plaatsOption[1].checked = false
						provincieOption[0].checked = true					
					}	
				}	

				if(cleanPair.indexOf("[kDifferentiatie]=")>-1) {
					pairValue = cleanPair.split("=")[1]
					if (pairValue != "0") {
						var di = document.getElementById("differentiatie")
						addOption( di, pairValue, pairValue, true) 
					}	
				}
				
				if(cleanPair.indexOf("[kSpecialisme]=")>-1) {
					pairValue = cleanPair.split("=")[1]
					if (pairValue != "0") {
						var sp = document.getElementById("specialisme")
						addOption ( sp, pairValue, pairValue, true)
					}			
				}		
			}
		}
		
		searchTAGidsExecute()
	}
}


function searchTAGidsExecute( buttonClick ) {

	var pageString=""

	if (buttonClick == null || buttonClick == "" || buttonClick==false)
		pageString = getCookie("TAGidsPage") 

	if ( pageString=="" || pageString==null || pageString=="undefined" )
		pageString = "1~10~1~1"	//default

	var formAfdeling	= document.getElementById("form Afdeling")
	var formKring		= document.getElementById("form Kring")
	
	var isAfdeling	= (formAfdeling != null && formAfdeling != "undefined")
	var isKring	= (formKring != null && formKring != "undefined")
	
	dispKopRegel = "<tr><th>&nbsp;</th><th>&nbsp;</th><th class=\"achternaamheader\">&nbsp;Achternaam</th><th class=\"voornaam\">&nbsp;Voornaam</th>"
	dispKopRegel += "<th class=\"plaats\">&nbsp;Plaats</th><th class=\"nmt_lid\">NMT-lid</th></tr>"

	if (isAfdeling) {
		//formAfdeling.id = "form"	
		lookfor = "Afdeling=" + Afdeling	 
	} else if (isKring) { 	 
		//formKring.id = "form"	
		lookfor = "Kring=" + Kring
	} else
		lookfor = "Afdeling=1000" 
			
	searchTAGidsWriteCookie()
	
	var searchResult = document.getElementById("searchResults");

	if ( searchResult != null && searchResult != "undefined") 
		searchResult.innerHTML = "zoeken...<img src=\"" + SharedDb + "/ajaxloaderec5.gif\">"
		
	aantalTotaal = "<img src=\"" + SharedDb + "/ajaxloaderec5.gif\">"

	performSearch( "searchResults", CMSDb + "/searchTAGids!openAgent&" + lookfor, pageString.split("~"), true, ["persoon", "personen"]);

}


//specifiek voor Tandartsengids: als provincie is geselecteerd kan niet op plaatsnaam gezocht worden en V.V.
function radioSelected(selected) {
		
	document.getElementById("provincie").setAttribute("disabled", "disabled");
     document.getElementById("plaatsnaam").setAttribute("disabled", "disabled");
     document.getElementById(selected).removeAttribute("disabled");

	if (selected =="provincie") {
		document.getElementsByName("achternaamoption")[0].checked=false
		document.getElementsByName("achternaamoption")[1].checked=false
		document.getElementById("plaatsnaam").value = ""
	} else {
		document.getElementsByName("provincieoption")[0].checked=false
		document.getElementById("provincie").value= "0"
	}	
}


//PRAKTIJKBEMIDDELING

//resetPageSettings = true = ga weer naar eerste pagina (maar behoud wel keus 10/20/alles tonen)
function searchPraktijk(resetPageSettings) {

	var reset = resetPageSettings==null || resetPageSettings=="undefined"? false : true
	var pageString = getCookie("PraktijkPage") 

	if ( pageString=="" || pageString==null || pageString=="undefined" )
		pageString = "1~10~1~1"	//default
	
	if (reset) { 	//er is opnieuw gezocht, dus naar eerste pagina springen
		var keepNr = pageString.split("~")[1]
		pageString = "1~" + keepNr + "~1~1"
	}
	
	var searchResult = document.getElementById("searchResults")
	
	if ( searchResult != null && searchResult != "undefined") 
		searchResult.innerHTML = "zoeken...<img src=\"" + SharedDb + "/ajaxloaderec5.gif\">"
		
	aantalTotaal = "<img src=\"" + SharedDb + "/ajaxloaderec5.gif\">"

	//kopregel aan resultaat toevoegen
	dispKopRegel = "<tr><th>&nbsp;</th><th>&nbsp;</th><th width=180>&nbsp;&nbsp;Titel</th>"
	dispKopRegel += "<th width=140>Regio</th><th>Soort</th></tr>"

	//ingevulde waarden opslaan in cookie 
	// -> gewoon functie getInputs() gebruiken... niks met ^'s en ingewikkeld gedoe...
	addCookie( "SearchPraktijk", getInputs( document.getElementById("zoekPB")) )
	
	performSearch( "searchResults", CMSDb + "/searchPraktijk!openAgent", pageString.split("~"), true, ["praktijk gevonden", "praktijken gevonden"]);

}

//leest ingevulde zoekwaarden uit cookie en vult ze in de velden
function readSearchPraktijkCookie() {
	var cookie = getCookie("SearchPraktijk")
	if (cookie=="") return

	// waarden uitlezen en in velden zetten				
	var inputList = cookie.split("&")
	var func = ""
		
	for(i=1; i < inputList.length; i++) {
		var veld = inputList[i].substring(0, inputList[i].indexOf("="))
		var waarde = inputList[i].substring( inputList[i].indexOf("=")+1, inputList[i].length )

		if (veld != "") {
			if ( veld.substring(0,4) == "prov" || veld == "alleprovincies") {
				var checkProv = waarde==""? "false" : "true"
				eval( "document.getElementById('" + veld + "').checked=" + checkProv )
			} else	
				eval( "document.getElementById('" +  veld + "').value='" + waarde + "'")
		}
	}		
}


// EINDE PRAKTIJKBEMIDDELING



//functie die een cookie zet en daarna doorschakelt naar het biebzoekscherm
// redirectURL			= te openen resultaatscherm; is URL naar contentpagina [OPTIONEEL]
function searchBieb( redirectURL) {

	var openURL = redirectURL==null || redirectURL=="undefined"? "" : redirectURL
	if (openURL != "") {
		searchBiebWriteCookie()
		//pagina openen
		window.open( openURL + "#searchBieb", "_self")	
		return;	
	} 
}

function searchBiebWriteCookie() {

	//de query wordt samengesteld en in een cookie gezet
	var cookieQuery = ""
	cookieQuery = "^[Trefwoorden]="  + document.getElementById("trefwoord").value + "*"
	cookieQuery += "^[Titel]=" + document.getElementById("titel").value +"*"
	cookieQuery += "^[Auteur]=" + document.getElementById("auteur").value +"*"
	cookieQuery += "^[Type]=" + document.getElementById("type").value + "*"
	//alert('in de write cookie en query = ' + cookieQuery)
	addCookie( "searchBieb", cookieQuery, true )
}

//de cookie voor het zoeken wordt uitgelezen en de verschillende velden worden gevuld.
function searchBiebReadCookie() {

	var cz = getCookie("searchBieb")

	//de cookie kan bestaan uit de volgende onderdelen
	//  ^trefwoord*   of ^ AND [veldnaam]=veldwaarde*  .. de scheidingstekens zijn dus ^ en *
	// deze uitvoeren en de ingegeven zoektermen in de velden invullen
	if ( cz != "" && cz != null && cz != "undefined") {
		var fieldPairs = cz.split("*")		
		for(w=0;w<fieldPairs.length;w++)
		{
			var cleanPair = fieldPairs[w].replace("^", "")
			if(cleanPair!="")
			{
				if (cleanPair.indexOf("[Trefwoorden]=")>-1)
				{
					pairValue = cleanPair.split("=")[1]
					pairField = "trefwoord" 	
					document.getElementById(pairField).value = pairValue
				}									
				if (cleanPair.indexOf("[Titel]=")>-1)
				{
					pairValue = cleanPair.split("=")[1]
					pairField = "titel" 	
					document.getElementById(pairField).value = pairValue
				}	
				if (cleanPair.indexOf("[Auteur]=")>-1)
				{
					pairValue = cleanPair.split("=")[1]
					pairField = "auteur" 	
					document.getElementById(pairField).value = pairValue
				}					
				if (cleanPair.indexOf("[Type]=")>-1)
				{
					pairValue = cleanPair.split("=")[1]
					pairField = "type" 	
					//Let op : dit is een select element en geen textbox
					document.getElementById(pairField).selectedIndex = pairValue
				}									
			}
		}	
		searchBiebExecute()
	}	

}

//deze functie lees alle velden van het zoekscherm en stelt een query samen. Daarna wordt de search uitgevoerd.
function searchBiebExecute( buttonClick) {

	if (document.getElementById("searchResults")!=null && document.getElementById("searchResults") != "undefined")
		document.getElementById("searchResults").innerHTML = "zoeken...<img src=\"" + SharedDb + "/ajaxloaderec5.gif\">"
	
	var pageString=""

	if (buttonClick == null || buttonClick == "" || buttonClick==false)
		pageString = getCookie("biebPage") 

	if ( pageString=="" || pageString==null || pageString=="undefined" )
		pageString = "1~10~1~1"	//default

	var trefwoord = document.getElementById("trefwoord").value
	var titel = document.getElementById("titel").value
	var auteur = document.getElementById("auteur").value	
	var type = document.getElementById("type").value	
	//zoekquery samenstellen
	var zoekterm = trefwoord=="" ? "" : trefwoord +"*"
	zoekterm += titel  == ""? "" : (zoekterm==""? "" : " AND ") + "[Titel]=" + titel + "*"
	zoekterm += auteur == ""? "" : (zoekterm==""? "" : " AND ") + "[Auteur]=" + auteur + "*"
	
	var formnaam = "";
	
	if (type=="1") formnaam = "[Form]=fmBoekgegevens"
	if (type=="2") formnaam = "[Form]=fmTijdschriftgegevens"
	if (type=="3") formnaam = "[Form]=fmArtikelgegevens"
	
	zoekterm += type == "0"? "" : (zoekterm==""? "" : " AND ") + formnaam 

	if (zoekterm=="") {
		alert( "Vul minimaal één zoekveld in.")
		if (document.getElementById("searchResults") != null && document.getElementById("searchResults") != "undefined")
			document.getElementById("searchResults").innerHTML = ""
		return;
	}	


	var query = "&query=" + zoekterm + "&searchOrder=4"  //op alfabet (titel) - zie view

	//voor Bibliotheek boven de resultaten een kopje tonen; hierdoor worden de results ook automatisch als
	//  een tabel weggeschreven ipv een lijst
	dispKopRegel = "<tr><th>&nbsp;</th><th>&nbsp;</th><th class=\"achternaamheader\">Titel</th><th class=\"auteur\">Auteur</th>"
	dispKopRegel += "<th class=\"boektype\">Type</th></tr>"
	searchBiebWriteCookie()
	performSearch( "searchResults", DSDb + "/vlWebsite4Zoek!searchView" + query, pageString.split("~") , true, ["resultaat", "resultaten"]);

}

//zoeken in KWIS aanbod
// redirectURL			= te openen resultaatscherm; is URL naar contentpagina [OPTIONEEL]
function searchKWIS( redirectURL ) {

	var openURL = redirectURL==null || redirectURL=="undefined"? "" : redirectURL

	if(openURL != "")  	{
		//query in cookie bewaren 
		searchKWISWriteCookie()
		//pagina openen
		window.open( openURL + "#searchKWIS", "_self")	
		return;	
	}
}

function searchKWISWriteCookie() {

	//de query wordt samengesteld en in een cookie gezet
	var cookieQuery = ""
	cookieQuery = "^[ZoekKWIS]="  + document.getElementById("ZoekKWIS").value + "*"

	//alert('in de write cookie en query = ' + cookieQuery)
	addCookie( "searchKWIS", cookieQuery, true )
}

function searchKWISReadCookie() {

	var cz = getCookie("searchKWIS")
	//
	//de cookie kan bestaan uit de volgende onderdelen
	//  ^trefwoord*   of ^ AND [veldnaam]=veldwaarde*  .. de scheidingstekens zijn dus ^ en *
	// deze uitvoeren en de ingegeven zoektermen in de velden invullen
	if ( cz != "" && cz != null && cz != "undefined") {
		
		var fieldPairs = cz.split("*")		
		for(w=0;w<fieldPairs.length;w++)
		{
			var cleanPair = fieldPairs[w].replace("^", "")
			if(cleanPair!="")
			{
				czValue = true
				if(cleanPair.indexOf("[ZoekKWIS]=")>-1)
				{
					pairValue = cleanPair.split("=")[1]
					pairField = "ZoekKWIS" 	
					document.getElementById(pairField).value = pairValue
				}													
			}
			
		}	
		searchKWISExecute()
	}	
	
}

function searchKWISExecute( buttonClick) {

	var zoekterm = document.getElementById("ZoekKWIS").value	
	var pageString=""

	if (buttonClick == null || buttonClick == "" || buttonClick==false)
		pageString = getCookie("kwisPage") 

	if ( pageString=="" || pageString==null || pageString=="undefined" )
		pageString = "1~10~1~1"	//default
	
	if (zoekterm=="" && getCookie("searchKWIS")!="") {				
		deleteCookie("searchKWIS"); 
		alert( "Vul een zoekterm in.")
		if (document.getElementById("searchResults") != null && document.getElementById("searchResults") != "undefined")
			document.getElementById("searchResults").innerHTML = ""
		return;
	}
		
	query = "&query=" + zoekterm + " AND [Form]=fmKA"
	searchKWISWriteCookie()
	performSearch( "searchResults", KWISDb + "/vlWebsite4Zoek!searchView" + query, pageString.split("~"), true);

	
}




//====== generiek gedeelte =====

//<function name="performSearch()">
//<summary>
//ZOEKEN: aangeroepen vanuit functies search<XXX>, "vorige / volgende" knoppen of "toon alles/10/20" 
//<param name="label">resultaat wordt in deze div gezet</param>
//<param name="URL">zoekURL incl uit te voeren query</param>
//<param name="set">(array): [0] - tonen vanaf deze rij (start=), [1] - aantal rijen (count=)
//					    [2] - huidige set (actief - bold - cijfer in cijferreeks)
//					    [3] - eerste getal in te tonen cijferreeks	</param>
//<param name="doTotalSearch">(boolean): doe ook een totale zoekopdracht (zonder count=, start=)</param>
//<param name="dispItemName">(array): [0] - tekst achter aantal gevonden items enkelvoud (bijv. "bericht")
//						        [1] - tekst achter aantal gevonden items meervoud (bijv. "berichten")
//						        ( is optioneel, leeg = ["item", "items"] )</param>
//<param name="dispItemName2"> optionele extra div waarin je het aantal gevonden documenten kunt weergeven, wordt gebruikt in de vacaturebank
//  				  		(array): [0] - naam van de div waarin het geplaatst moet worden
//						 [1] - tekst achter aantal gevonden items enkelvoud (bijv. "bericht")
//						 [2] - tekst achter aatnal gevonden items meervoud (bijv. "berichten")
//						 ( is optioneel, leeg = ["item", "items"] )</param>
//</summary>
function performSearch( label, URL, set, doTotalSearch, dispItemName, dispItemName2 ) {
		
	var setString = ""
	for (x=0; x<set.length; x++) {
		if (x>0) setString += "~"
		setString += set[x]
	}	

	//paginanummers onthouden in agenda, nieuws, tagids, bieb, vac/cv, PB zoekfuncties
	if (document.getElementById("Periode") != null && document.getElementById("Periode") != "undefined")	
		setPageInCookie("searchAgenda", setString)	//aan reeds bestaande cookie toevoegen
	
	if (document.getElementById("Type") != null && document.getElementById("Type") != "undefined")
		setPageInCookie("searchNews", setString)	//aan reeds bestaande cookie toevoegen
		
	if (URL.indexOf("searchTAGids")>0)   
		 setPageInCookie("TAGidsPage", setString) 	//nieuwe cookie hiervoor creëren
		 
	if (document.getElementById("auteur") != null && document.getElementById("auteur") != "undefined")
		setPageInCookie("biebPage", setString)	 	//nieuwe cookie hiervoor creëren
		
	if (document.getElementById("ZoekKWIS") != null && document.getElementById("ZoekKWIS") != "undefined")
		setPageInCookie("kwisPage", setString)		//nieuwe cookie hiervoor creëren

	if (document.getElementById("aantalsearchResultsTop") != null && document.getElementById("aantalsearchResultsTop") != "undefined") {
		if (global_schermtype=="vacatures")
			setPageInCookie("VACPage", setString)		//aan reeds bestaande cookie toevoegen
		else
			setPageInCookie("CVPage", setString)
	}
	
	if (document.getElementById("zoekPB") != null && document.getElementById("zoekPB") != "undefined") 
		setPageInCookie("PraktijkPage", setString)
	
	
	var settings = "&start=" + set[0] + "&count=" + set[1]
	var itemName = dispItemName==null || dispItemName=="undefined"? ["item","items"] : dispItemName
	var itemName2 = dispItemName2==null || dispItemName2=="undefined"? ["item","items"] : dispItemName2	
	var kopRegel = dispKopRegel==null || dispKopRegel=="undefined"? "" : dispKopRegel

	
	if (URL.toLowerCase().indexOf("openagent")>-1) {
		if (document.getElementById("form Afdeling") != null && document.getElementById("form Afdeling") != "undefined")
			var content = getInputs( document.getElementById("form Afdeling"))
		else if (document.getElementById("form Kring") != null && document.getElementById("form Kring") != "undefined")
			var content = getInputs( document.getElementById("form Kring"))
		else    //zoeken in alle afdelingen en alle kringen	
			var content = getInputs (document.getElementById("formTable"))
			
	} else
		var content = ""


	//filter quootjes, @'tjes, <'tjes en >'tjes
	content = unescape(content).replace(/['"@<>]/g, "")
	
	var formAfdeling	= document.getElementById("form Afdeling")
	var formKring		= document.getElementById("form Kring")
	var isAfdeling		= (formAfdeling != null && formAfdeling != "undefined")
	var isKring		= (formKring != null && formKring != "undefined")
	var stylechange	= (isAfdeling || isKring) ? "style=\"margin-left:24px;\"" : ""	
	var dynamicMessage  = ""
 
	HTTPReq2 = getHTTPObject();

	if (HTTPReq2 != null) {	

		HTTPReq2.open("POST", URL + settings + "&searchMax=1000" , true);			

		if (document.getElementById("list") != null && document.getElementById("list") != "undefined") 
			document.getElementById("list").innerHTML += "<br/>ophalen " + set[0] + " tot " + parseInt(parseInt(set[0])+parseInt(set[1])) + "...<img src=\"" + SharedDb + "/ajaxloaderec5.gif\">"
					
		HTTPReq2.onreadystatechange = function() {

			if ( HTTPReq2.readyState == 4 || HTTPReq2.readyState == "complete" ) {
			   try {

				//getAJAXHTML geeft een array terug van drie lang:
				//[0] = alle HTML die tussen <AJAXContent></AJAXContent> tags gevonden is
				var zoekresultaten = getAJAXHTML( HTTPReq2.responseText );
				
				if (zoekresultaten[0].substring(0, 5) == "Error")
					alert( zoekresultaten[0] );
											
				// specifieke melding gewenst als geen resultaten, dan moet de agent dit
				// teruggegeven hebben als "NORESULTS<gewenste tekst>"
				if (zoekresultaten[0].substring(0, 9) == "NORESULTS")
					dynamicMessage = zoekresultaten[0].substring(10, zoekresultaten[0].length)

				resultaatHTML = "<h5><div " + stylechange + " id=\"aantal" + label + "\">" + aantalTotaal + " "
				resultaatHTML += aantalTotaal>1? itemName[1] : itemName[0] 
			
				resultaatHTML += "</div></h5><fieldset class=\"berichten\">"				
				resultaatHTML += "<label for=\"toon\" id=\"label_toon\">Toon:</label><select id=\"toon\" style=\"font-size:0.9em;width:120px;\" onChange=\"performSearch('" + label + "', '" + URL + "', [1, this.value, 1, 1], false"
				resultaatHTML += ", ['" + itemName[0] + "', '" + itemName[1] + "'],['"+itemName2[0]+"','"+itemName2[1]+"','"+itemName2[2]+"'])\">"
				resultaatHTML += "<option value=\"10\"" + (set[1]=="10"? " selected":"") + ">10 per pagina</option>"
				resultaatHTML += "<option value=\"20\"" + (set[1]=="20"? " selected":"") + ">20 per pagina</option>"
				resultaatHTML += "<option value=\"-1\"" + (set[1]=="-1"? " selected":"") + ">Alles op 1 pagina</option></select></fieldset>"
				resultaatHTML += "<div class=\"horizontal_separator_all\"></div>"

				if (kopRegel=="") 
					resultaatHTML += "<ul class=\"nieuws_all_list\" id=\"list\">"
				else {
					resultaatHTML += "<div class=\"clearboth\"></div> "
					resultaatHTML += "<table class=\"tandartsen margin0\" border=0>" + kopRegel
				}	
				resultaatHTML += zoekresultaten[0] 
				resultaatHTML += kopRegel == ""? "</ul>" : "</table><div id=\"list\"></div>"
				resultaatHTML += "<div class=\"horizontal_separator_all\"></div>"
				resultaatHTML += "<div id=\"cijferreeks" + label + "\">" + cijferreeks + "</div>"		
				resultaatHTML += "</div>"

				if (zoekresultaten[2] == 0) {
					if (dynamicMessage == "") 
						document.getElementById(label).innerHTML = "<h5 id=\"noresults\" " + stylechange + " >geen " + itemName[1] + " gevonden</h5>"
					else	
						document.getElementById(label).innerHTML = "<h5 id=\"noresults\" " + stylechange + " >" + dynamicMessage + "</h5>"
				} else	
					document.getElementById(label).innerHTML = resultaatHTML.replace(/nmt_lid/g, SharedDb + "/nmt_lid")
														
				//vullen divs 'aantal' en 'cijferreeks'
				if (doTotalSearch) getTotal( label, URL, set[0], set[1], set[2], set[3], itemName, itemName2 );										
				else  dispNumbers( label, URL, set[0], set[1], set[2], set[3], itemName);			

										
			   } catch (err) {
				 // 	alert(err)
					document.getElementById(label).innerHTML = "";
			   }	
			}
		}
		
		if (content != "") 
			HTTPReq2.send(content) 
		else 
			HTTPReq2.send(null)	
	}	
	
}
//</function>

//<name> 		= naam van de cookie waarin de pagina gezet moet worden
//<setString>  = string-representatie van array-variabele 'set' (zie functie performSearch);
function setPageInCookie( name, setString ) {
	//als cookie al bestaat, dan de 'pagina'gegevens daaraan toevoegen, anders nieuwe maken

	var t_cookie = getCookie(name)
	
	if (t_cookie =="undefined" || t_cookie == null )
		addCookie( name, setString, true )
	
	else {
		var lastIndex = t_cookie.length
	
		if (t_cookie.indexOf("~")>0 ) {
			if (t_cookie.indexOf("##")>-1) 
				lastIndex = t_cookie.lastIndexOf("##")
			else
				lastIndex = 0	
		}
			
		var n_cookieVal = t_cookie.substring(0, lastIndex)
		addCookie( name, n_cookieVal + (n_cookieVal==""? "" : "##") + setString, true)	
	}
	
	//alert( getCookie(name ))
}


// itemName	= itemnaam bij 1 gevonden
// itemName2	= itemnaam meervoud
function getTotal( label, URL, start, count, activeNum, firstNum, itemName, itemName2 ) {

	HTTPReq1 = getHTTPObject();

	if (HTTPReq1 != null) {

		HTTPReq1.open("POST", URL + "&start=1&count=-1&searchMax=1000", true)
		
		if (URL.toLowerCase().indexOf("openagent")>-1) {
			if (document.getElementById("form Afdeling") != null && document.getElementById("form Afdeling") != "undefined")
				var content = getInputs( document.getElementById("form Afdeling"))
			else if (document.getElementById("form Kring") != null && document.getElementById("form Kring") != "undefined")
				var content = getInputs( document.getElementById("form Kring"))
			else   //zoeken in alle afdelingen en alle kringen	
				var content = getInputs (document.getElementById("formTable"))
			
		} else
			var content = ""
		
		//filter quootjes
		content = unescape(content).replace(/['"]/g, "")
		
		HTTPReq1.onreadystatechange = function() {
								
			if ( HTTPReq1.readyState == 4 || HTTPReq1.readyState == "complete" ) {
				try {
					zoekresultaten = getAJAXHTML( HTTPReq1.responseText);
					
					//[2] is aantal gevonden resultaten; wordt in globale var aantalTotaal gestopt
					aantalTotaal = zoekresultaten[2];														
					document.getElementById("aantal"+label).innerHTML = zoekresultaten[2] + " " + (aantalTotaal>1? itemName[1] : itemName[0])

					//eventueel dispItemName2 vullen
					if(itemName2!=null)
					{
						var obj = document.getElementById( itemName2[0] )
						if(obj)
						{				
							var tekst = aantalTotaal + " "		
							tekst += zoekresultaten[2]>1? itemName2[2] : itemName2[1] 
							obj.innerHTML = tekst
						}
						if(aantalTotaal<10)
						{
							document.getElementById("label_toon").style.display="none" 
							document.getElementById("toon").style.display="none"
						}						
					}
					

					//voeg cijferreeks onderaan toe
					dispNumbers( label, URL, start, count, activeNum, firstNum, itemName);	
										
				} catch (err) {
					//alert( err)
					return;
				}
			}
		}
		
		if (content != "") 
			HTTPReq1.send(content)
		else
	 		HTTPReq1.send(null)	
	}	
}


//geef nummerreeks weer onder zoekresultaten
// URL		= zoekURL
// start		= eerste weergegeven zoekresultaat (&start=... uit query)
// count		= aantal weer te geven rijen (&count=... uit query)
// activeNum	= actieve cijfer (daarvan worden momenteel de resultaten getoond)
// firstNum	= eerst getoonde cijfer van cijferreeks
function dispNumbers( label, URL, start, count, activeNum, firstNum, itemName ) {

	var lastNum = Math.ceil( aantalTotaal/ count, 1);

	//als aantalgevonden > count, dan cijferreeks tonen; anders geen cijferreeks nodig
	if (lastNum>1) 
		var cijferreeks = getReeks( label, URL, firstNum, lastNum, count, activeNum, itemName);
	else
		var cijferreeks = ""	
		
	document.getElementById("cijferreeks"+label).innerHTML = "<ul class=\"pagination\">" + cijferreeks + "</ul>"

	//als via agent is gezocht dan optie "toon alles op 1 pagina" weghalen als lijst te lang wordt
	//  om in één keer op te halen
	if (aantalTotaal > 200 && URL.toLowerCase().indexOf("openagent") > -1) 	
		document.getElementById("toon").remove(2)

}


//toon cijferreeks, van start tot end
// URL		= zoekURL (nodig om na klikken ander cijfer van die set op te halen)
// start		= eerste getal in cijferreeks
// end		= laatste getal in cijferreeks
// count		= aantal per set (10 of 20)
// activeNum	= actieve cijfer
// itemName	= benamingen bij aantal gevonden items: [enkelvoud, meervoud]
function getReeks( label, URL, reeksStart, reeksEnd, count, activeNum, itemName) {

	var cijfers = "";
	var active = "";
	var from = 1;

	//maximaal cijferreeks van 10 cijfers	
	if (reeksEnd-reeksStart>=10) 
		reeksUntil = parseInt(reeksStart)+9	
	else 
		reeksUntil = parseInt(reeksEnd)
	
	//als actieve nummer niet eerste is dan altijd 'vorige' button tonen
	if (activeNum > 1) {
		//bij klikken één set terug in de reeks (vorige set <count> ophalen)
		from = parseInt( parseInt(activeNum*parseInt(count))+1) - parseInt(count*2)

		//cijferreeks opschuiven indien meer dan 10 cijfers en klik op 'vorige'
		//bijv. 3 t/m 12 wordt gewijzigd in 2 t/m 11
		vorige = (reeksEnd - reeksStart >= 10 && reeksStart > 1)? reeksStart-1 : 1
	
		cijfers += "<li><a href=\"javascript:performSearch('" + label + "', '" + URL + "', [" 
		cijfers += from + ", " + count + ", " + (activeNum-1) + ", " + vorige + "], false, ['" 
		cijfers += itemName[0] + "', '" + itemName[1] + "'])\" class=\"vorige\">Vorige</a>|</li>"
	}		
	
	//opbouwen cijferreeks-html
	for( x=reeksStart; x <= reeksUntil; x++) {
	
		from = parseInt( ((x*parseInt(count))+ 1)- count )
				
		active = (activeNum==x)? " class=\"active\"" : ""
		cijfers += "<li><a href=\"javascript:performSearch('" + label + "', '" + URL + "', [" 
		cijfers += from + ", " + count + ", " + x + ", " + reeksStart + "], false, ['" + itemName[0] + "', '"
		cijfers += itemName[1] + "'])\" " + active + ">" + x + "</a>"
		cijfers += x == reeksUntil? "</li>" : "|</li>"
	}

	//als actieve nummer niet laatste is dan altijd 'volgende' button tonen
	if (activeNum < reeksEnd) {
		//bij klikken één vooruit in de reeks (volgende ophalen, aantal is <count>)
		from = parseInt(activeNum*parseInt(count))+1 
		
		//cijferreeks opschuiven indien meer dan 10 cijfers en klik op 'volgende'
		//bijv. 2 t/m 11 wordt gewijzigd in 3 t/m 12
		volgende = reeksEnd - reeksStart >= 10? parseInt(reeksStart)+1 : reeksStart

		cijfers += "<li>|<a href=\"javascript:performSearch('" + label + "', '" + URL + "', [" 
		cijfers += from + ", " + count + ", " + (parseInt(activeNum)+1) + ", " + volgende + "], false, ['"
		cijfers += itemName[0] + "', '" + itemName[1] + "'])\" class=\"volgende\">Volgende</a></li>"

	}		

	return cijfers
}


var done = false; //globale var om onderstaande functie maar één keer uit te voeren

//vul keuzelijstje voor zoekscherm nieuws; opties ophalen uit configuratie van nieuwsdb
function getTypeChoices() {
	
	if (!done ) {  //alleen uitvoeren als niet al is gedaan

		selecttype = document.getElementById("Type")					
				
		HTTPReq = getHTTPObject();
	
		if (HTTPReq != null) {
		
			HTTPReq.open("GET", NewsDb + "/vlReferentiesOpKey?readViewEntries&outputformat=JSON&restrictToCategory=Nieuwscategorie", true);				
						
			HTTPReq.onreadystatechange = function() {

				if ( HTTPReq.readyState == 4 || HTTPReq.readyState == "complete" ) {
					try {
						var resp = HTTPReq.responseText 
						var viewObject = eval("(" + resp + ")");
						var entries = viewObject["viewentry"];
		
						var type = getType( entries[0].entrydata[0] );
		
						for (x=0; x < entries.length; x++) {
							value = entries[x].entrydata[0][type][0];
							addOption (selecttype, value, value, false)
						}			
						done = true;
						
								
					} catch (err) {
						return;
					}
				}			
			}	

			HTTPReq.send(null)
		} 
		
	}	
}


donedifferentiatie = false
donespecialisme = false;

//vul specialisme lijstje of differentiatie lijstje voor TA gids zoekscherm, opties in referentiedatabase
function getDiffSpecChoices( fieldID ) {

	if (! eval("done"+fieldID) ) {		//alleen bij eerste keer aanklikken lijst

		var selecttype = document.getElementById(fieldID)					
				
		HTTPReq = getHTTPObject();
	
		if (HTTPReq != null) {
		
			HTTPReq.open("GET", RefDb + "/vReferentiesOpKey?readViewEntries&outputformat=JSON&restrictToCategory=" + fieldID, true);				
						
			HTTPReq.onreadystatechange = function() {

				if ( HTTPReq.readyState == 4 || HTTPReq.readyState == "complete" ) {
					try {
						var resp = HTTPReq.responseText 
						var viewObject = eval("(" + resp + ")");
						var entries = viewObject["viewentry"];
		
						var type = getType( entries[0].entrydata[0] );
				
						for (x=0; x < entries.length; x++) {
							value = entries[x].entrydata[0][type][0];
							//speciaal geval: orthodontie niet in keuzelijst opnemen bij differentiatie
							if (fieldID == "specialisme" || value.toLowerCase().indexOf("orthodontie") < 0)
								addOption (selecttype, value, value, false)
						}			
						eval("done"+fieldID + " = true");
												
		
					} catch (err) {
						return;
					}
				}			
			}	

			HTTPReq.send(null)
		} 

	}
}


//maak keuzes 'deze week/deze maand' leeg omdat voor een andere maand is gekozen (voor agenda-zoeken)
function unCheckPeriode() {
	document.getElementsByName("Periode")[0].checked = false
	document.getElementsByName("Periode")[1].checked = false
}

//zet keuzes 'maand/jaar' op 'alle maanden/jaren' omdat 'deze week/deze maand' is geklikt (voor agenda-zoeken)
function unCheckMaandJaar() {
	document.getElementById("Maand").value = "0"
	document.getElementById("Jaar").value = "0"
}

//laatste dag van de maand
function getLastDay( maand) {
	if (isMember(maand, [1,3,5,7,8,10,12]))
		lastDay = "31"
	else if (isMember(maand, [4,6,9,11]))
		lastDay = "30"
	else
		lastDay = "28"
			
	return lastDay;		
}

//createNieuweDocumenten - schrijf een lijst met maximaal 5 links in het blokje
//PARAMETERS:
//<label> 		= lokatie van het blokje op de pagina (is id van DIV)
//<category>		= type documenten : afdeling / kring / iqual / stukken
//<view> 			= URL van de te tonen view (zonder '?openView' erachter)

function createNieuweDocumenten(label, vwName, category, color, link) {

	if (category == "Afdeling" && Afdeling == "0") return;
	if (category == "Kring" && Kring == "0") return;
	if (category == "IQual" && IQual == "") return;

	document.getElementById(label).innerHTML = "<div id=\"loading\">ophalen...<img src=\"" + SharedDb + "/ajaxloaderec5.gif\"></div>"

	new JSONViewNieuweDocumenten( label, vwName, category, color, link);
}

var label_nieuwedocumenten="";
var vwName_nieuwedocumenten="";
var category_nieuwedocumenten="";
var color_nieuwedocumenten="";
var link_nieuwedocumenten="";

function reloadNieuweDocumenten() {
	document.getElementById(label_nieuwedocumenten).innerHTML = "<div id=\"loading\">ophalen...<img src=\"" + SharedDb + "/ajaxloaderec5.gif\"></div>"
	new JSONViewNieuweDocumenten( label_nieuwedocumenten, vwName_nieuwedocumenten, category_nieuwedocumenten, color_nieuwedocumenten, link_nieuwedocumenten)
}

function createOpgeslagenDocumenten(label, vwName, category) {
	document.getElementById(label).innerHTML = "<div id=\"loading\">ophalen...<img src=\"" + SharedDb + "/ajaxloaderec5.gif\"></div>"
	//alert(' vwName = ' + vwName +  " label = " + label  + " category =  "+ category)
	new JSONViewOpgeslagenDocumenten( label, vwName, category );	 
}

var label_opgeslagendocumenten="";
var vwName_opgeslagendocumenten="";
var category_opgeslagendocumenten="";
function reloadOpgeslagenDocumenten() {
	document.getElementById(label_opgeslagendocumenten).innerHTML = "<div id=\"loading\">ophalen...<img src=\"" + SharedDb + "/ajaxloaderec5.gif\"></div>"
	new JSONViewOpgeslagenDocumenten( label_opgeslagendocumenten, vwName_opgeslagendocumenten, category_opgeslagendocumenten );	 
}


var label_toevoegendocumenten="";
var category_toevoegendocumenten="";

function createToevoegenDocumenten(label, category) {
	document.getElementById(label).innerHTML = "<div id=\"loading\">ophalen...<img src=\"" + SharedDb + "/ajaxloaderec5.gif\"></div>"
	//alert("label = " + label  + " category = " + category)
	displayUploadBlock(label, category)
}



//Voeg 'laatste berichten' blokje toe voor ingelogde gebruiker
var label_laatstedocumenten="";
function createLaatsteDocumenten(label, blokje) {

	if (Username=="Anonymous") return;

	document.getElementById(label).innerHTML = "<div id=\"loading\">ophalen...<img src=\"" + SharedDb + "/ajaxloaderec5.gif\"></div>"

	HTTPArray[label] = getHTTPObject();
	
	if (HTTPArray[label] != null) {

		//nieuwsberichten niet uit cache halen
		var t = new Date()
		var nocache = "&t=" & t.getTime()	
	
		var URL = CMSDb + "/getLaatsteDocumenten!openAgent&afdeling=" + Afdeling + "&kring=" + Kring + nocache
		HTTPArray[label].open("GET", URL, true)		
		
		var allHTML = "<h2><img src=\""+SharedDb+"/h2_laatste_berichten.gif\" alt=\"Laatste berichten\"></h2>";
		allHTML += "<p>Laatste toevoegingen op Mijn NMT</p>"
		
		HTTPArray[label].onreadystatechange = function() {
			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
				try {
					//agent geeft inhoud met juiste HTML terug
					allHTML += HTTPArray[label].responseText	
						
					document.getElementById(label).innerHTML = allHTML
				
				} catch(err) {
					// alert( err)
					document.getElementById(label).innerHTML = ""//laad-icoon weghalen	
					return;
				}
			}
		}		
		HTTPArray[label].send(null)		
	}
}



//CLASS									=============================
function JSONViewNieuweDocumenten(label, vwName, category, color, link)  { 

	this.viewName = vwName;
	this.label = label;
	this.category = category;
	afdeling = Afdeling;			//komt van een globale variabele waarin het afdelingsnummer staat
	this.afdeling = Afdeling;
	kring = Kring
	this.kring = Kring;				//komt van een globale variabele waarin het kringsnummer staat
	this.IQualNr = IQualNr;			//komt van een globale variabele waarin de IQual groep staat
	
	vwName_nieuwedocumenten = vwName;
	label_nieuwedocumenten = label;
	category_nieuwedocumenten = category;
	color_nieuwedocumenten = color;
	link_nieuwedocumenten = link;
	
	//stop in een array, met label als ID, zodat meerdere requests naast elkaar mogelijk zijn
	// en ieder object zijn eigen HTTP request gebruikt 
	HTTPArray[label] = getHTTPObject();
	addComponent(this, label);

	if (HTTPArray[label] != null) {
		t = new Date();	
		var restrict = ""
		if(category=="Afdeling")	{
			//Afdeling = in de 100-tallen ( 0-100 )
			restrict = "&RestrictToCategory=" + afdeling
		} else if (category=="Stukken") {
			//geen restrict, maar docs tonen op basis van readerrechten op docs zelf
			//  (niet persé afhankelijk van de afdeling)
			restrict = ""
		} else if (category=="IQual") {
			restrict = "&RestrictToCategory=" + this.IQualNr
		} else {
			//Kring is in de 1000-tallen ( 1001 - en hoger ), maar zit in de js var "kring"
			restrict = "&RestrictToCategory=" + kring
		}

		t_url = vwName + "?readViewEntries&outputformat=JSON"+ restrict +"&t=" + t.getTime();

		HTTPArray[label].open("GET", t_url , true);		
		HTTPArray[label].setRequestHeader("Content-Type", "application/x-www-form-urlencoded");	
		HTTPArray[label].send(null)		
		HTTPArray[label].onreadystatechange = function() {
			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) 				{
				try 	{
					var resp = HTTPArray[label].responseText;
					var viewObject = eval("(" + resp + ")");
					//var toplevelentries = viewObject["@toplevelentries"];		
					var toplevelentries = viewObject["viewentry"].length

					VIEW = getComponent(label)
					if(toplevelentries > 5)
						VIEW.nrRows = 5
					else
						VIEW.nrRows = toplevelentries
						
					VIEW.entries = viewObject["viewentry"];
					VIEW.subset = VIEW.nrRows;
					
					VIEW.remember = false;	//false = niet in cookie opslaan
					//genereer HTMLcode voor dit object					
					createHMTLNieuweDocumenten(label, toplevelentries, color, link);				
						
	
				} catch(err) {	
					//er is iets misgegaan; blokje zal leegblijven
					//alert(err)
					document.getElementById(label).innerHTML = ""//laad-icoon weghalen	
					return;	
				}					
			}
		}
	}
}

function JSONViewOpgeslagenDocumenten(label, vwName, category) {

	this.viewName = vwName;
	this.label = label;
	this.category = category;
	afdeling = Afdeling;
	this.afdeling = afdeling
	this.IQualNr = IQualNr;			//komt van een globale variabele waarin de IQual groep staat
		
	vwName_opgeslagendocumenten = vwName;
	label_opgeslagendocumenten = label;
	category_opgeslagendocumenten = category;

	HTTPArray[label] = getHTTPObject();	
	addComponent(this, label);
	
	if (HTTPArray[label] != null) {
		t = new Date();	
		if(category=="Afdeling") {
			//Afdeling = in de 100-tallen ( 0-100 )
			restrict = "&RestrictToCategory=" + afdeling
		} else if (category=="IQual") {
			restrict = "&RestrictToCategory=" + this.IQualNr
		} else if (category=="Stukken") {
			//geen restrict, maar docs tonen op basis van readerrechten op docs zelf
			//  (niet persé afhankelijk van de afdeling)
			restrict = ""
		} else {
			//Kring is in de 1000-tallen ( 1001 - en hoger ), maar zit in de js var "kring"
			restrict = "&RestrictToCategory=" + Kring
		}
		
		t_url = vwName + "?readViewEntries&outputformat=JSON"+ restrict +"&count=-1&t=" + t.getTime();
		HTTPArray[label].open("GET", t_url , true);		
		HTTPArray[label].setRequestHeader("Content-Type", "application/x-www-form-urlencoded");	
		HTTPArray[label].send(null)				
			
		HTTPArray[label].onreadystatechange = function() {
			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
				try 	{
					var resp = HTTPArray[label].responseText;
					var viewObject = eval("(" + resp + ")");
						
					VIEW = getComponent(label)
				//	VIEW.nrRows = viewObject["@toplevelentries"];
					VIEW.entries = viewObject["viewentry"];
					VIEW.nrRows = VIEW.entries.length
					VIEW.subset = VIEW.nrRows;
						
					VIEW.remember = false;	//false = niet in cookie opslaan
					//genereer HTMLcode voor dit object
					createHMTLOpgeslagenDocumenten(label);				
						
				
				} catch(err) {	
					//alert( err)
					document.getElementById(label).innerHTML = ""//laad-icoon weghalen	
					return;	
				}					
			}
		}
	}
}



function createHMTLNieuweDocumenten(label, toplevelentries, color, link) {

	var CurView = getComponent(label);
	entries = CurView.entries;
	tekstNieuweDocumenten="";
	
	var h2Style = ""
	var columnStyle = ""
	var parent = document.getElementById(label).parentNode
	if (parent.className.indexOf("double")>-1) {
		h2Style += " style=\"background-color:#FBA258;\" "
		columnStyle += " style=\"width:460px;\" "
	}
	
	if ( color.indexOf("double") > - 1 ) 
		parent.style.width = "420px"				
	
	
	if ( color.indexOf("Blauw") > -1 )
		tekstNieuweDocumenten+="<h4>Nieuwe documenten</h4>";
	else {
		//in het geval van oranje = landingspagina mijnafdeling
		tekstNieuweDocumenten+="<h2" + h2Style + "><img src=\""+SharedDb+"/h2_nieuwe_documenten.gif\" alt=\"Nieuwe documenten\"></h2>";	
		tekstNieuweDocumenten+="<div" + columnStyle + " class=\"content_left_column\">";
	}
	
	if(toplevelentries)
		tekstNieuweDocumenten+="<p class='list_brief'>Laatste 5 documenten (totaal " + toplevelentries + ")</p>";
		
	if ( color.indexOf("Blauw") > -1 )
		tekstNieuweDocumenten+="<ul class='document_list'>"
	else 
		tekstNieuweDocumenten+="<ul class='file_list'>"	
	
	
	for(var_i=0;var_i<CurView.nrRows;var_i++)	
	{
		type = getType(entries[0].entrydata[2])
		if(type=="text") 
			tekstNieuweDocumenten+=entries[var_i].entrydata[2].text[0]
		else
			tekstNieuweDocumenten+=entries[var_i].entrydata[2].textlist.text[0][0]		
	}
	tekstNieuweDocumenten+="</ul>";

	if( color.indexOf("Blauw") > -1 )
	{	
		//tekstNieuweDocumenten+="<h4>Nieuwe documenten</h4>";
	}
	else
	{
		//in het geval van oranje = landingspagina mijnafdeling
		//tekstNieuweDocumenten+="<a href=\"" + CMSDb + link + "\" class=\"right clearboth meer\">Meer documenten</a>";
		tekstNieuweDocumenten+="<a href=\"" + link + "\" class=\"right clearboth meer\">Meer documenten</a>";
		tekstNieuweDocumenten+="</div>";	
	}	
	//alert(tekstNieuweDocumenten)
	CurView.HTML = tekstNieuweDocumenten
	document.getElementById(label).innerHTML = tekstNieuweDocumenten

}


//opgeslagen documenten html
function createHMTLOpgeslagenDocumenten(label) {

	var parent = document.getElementById(label).parentNode;

	if (parent.className.indexOf("double") > -1) {
		parent.style.width = "420px"
		parent.style.marginLeft = "20px"	
	}	
	
	var t_currentFolder = "";
	var t_oldFolder = "";
	var CurView = getComponent(label);
	entries = CurView.entries;
	tekst="";
	tekst+="<div id=\"opgeslagendocumenten\" class=\"CBharmonica\">";
	tekst+="<h4>Opgeslagen documenten</h4>\n";
	tekst+="<ul class='folders_list'>\n"

	for(i=0; i < entries.length;++i) {
		//loop door alle kolommen heen: [entrydata]
		type = getType( entries[i].entrydata[0] )
		if (type=="textlist")
			t_currentFolder = entries[i].entrydata[0].textlist.text[0][0];
		else
			t_currentFolder = entries[i].entrydata[0].text[0]
			
		// opening part of the folder list
		if(t_currentFolder!=t_oldFolder) {
			if(i!=0)
				tekst+="</ul></li>"
							
			tekst+="<li>\n"
			tekst+="<a href=\"#\" class=\"trigger_single\" title=\""+ t_currentFolder + "\">" + 
				"<img src=\""+SharedDb+"/icon_folder.gif\" title=\"\" alt=\"\">"
			//alert(t_currentFolder + " = " + t_currentFolder.length)
			
			if (parent.className.indexOf("double") > - 1) {
				if (t_currentFolder.length>55)
					tekst+=t_currentFolder.substring(0,55) + "...";
				else
					tekst+=t_currentFolder
			} else {
			
				if(t_currentFolder.length>18)
					tekst+=t_currentFolder.substring(0,18) + "...";
				else
					tekst+=t_currentFolder
			}
			
			tekst+="</a>\n"							
			tekst+="<ul class=\"collapse_single document_list\" style=\"border:solid 1px #dcdcdc;height:145px;overflow:auto\">\n"
		}		
		//de volgende kolommen worden gebruikt : 
		// 2 : bevat alle LI items
		tekst+=entries[i].entrydata[2].text[0]	+ "\n"
		
		t_oldFolder = t_currentFolder
	}
	tekst+="</ul>";
	tekst+="</div>";
		
	loadjscssfile(SharedDb + "/harmonica.js", "js") 
	tekst+="<img src=\"/icons/ecblank.gif\" onLoad=\"node=document.getElementById('opgeslagendocumenten'); try{harmonica(node)} catch(err){ location.reload()}\">"
	
	CurView.HTML = tekst	
	showComponent(label, true)

}

//displayUploadBlock is gemaakt voor het tonen van een upload mogelijkheid voor documenten
function displayUploadBlock(label, category) {
	//stop in een array, met label als ID, zodat meerdere requests naast elkaar mogelijk zijn
	// en ieder object zijn eigen HTTP request gebruikt 
	label_toevoegendocumenten=label;
	category_toevoegendocumenten=label;
	HTTPArray[label] = getHTTPObject();	
	addComponent(this, label);
	if (HTTPArray[label] != null)  {
		t_url = SharedDocsDb + "/fmSharedDocumentIframe!openform";
		HTTPArray[label].open("GET", t_url , true);		
		HTTPArray[label].setRequestHeader("Content-Type", "application/x-www-form-urlencoded");	
		HTTPArray[label].onreadystatechange = function() {

			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) 			{
				try 	{
					var resp = HTTPArray[label].responseText;
					createHMTLToevoegenDocumenten(label, resp)
				} catch(err) {	
					//er is iets misgegaan; blokje zal leegblijven
					document.getElementById(label).innerHTML = ""//laad-icoon weghalen	
					return;	
				}					
			}
		}	
		HTTPArray[label].send(null);	
	}
}

function createHMTLToevoegenDocumenten(label, HTML) {

	var tekst = ""
	var obj = document.getElementById(label)	
	tekst+=getAJAXHTML(HTML)[0]
	obj.innerHTML = tekst
	obj.style.display = "block"
	var objIframe = document.getElementById("upload_target")
	if(category_nieuwedocumenten=="Afdeling") {
		//Afdeling = in de 100-tallen ( 0-100 )
		objIframe.src = SharedDocsDb + "/fmSharedDocument!OpenForm&afdeling=" + afdeling + "&"
	} else if(category_nieuwedocumenten=="IQual") {
		//IQual
		objIframe.src = SharedDocsDb + "/fmSharedDocument!OpenForm&afdeling=" + IQualNr + "&"
	} else {
		//Kring is in de 1000-tallen ( 1001 - en hoger ), maar zit in de js var "kring"
		objIframe.src = SharedDocsDb + "/fmSharedDocument!OpenForm&afdeling=" + kring + "&"
	}
}


//removeDocument
/*
Doel  : verwijderen van een document uit de shareddocuments database
Input : DocumentUniqueId
Return : true or false ( gelukt of niet gelukt )
*/ 

function removeDocument(UNID) {
	var agree = window.confirm("Weet u zeker dat u dit bestand wilt verwijderen?");
	
	if(agree) {

		HTTPmarkdocument = getHTTPObject();
		if (HTTPmarkdocument != null)  {	
			var markURL = SharedDocsDb + "/markdocumentfordeletion?OpenAgent&UNID=" + UNID +"&";
			HTTPmarkdocument.open("GET", markURL, true);			
			HTTPmarkdocument.onreadystatechange = function() 	{					
				if ( HTTPmarkdocument.readyState == 4 || HTTPmarkdocument.readyState == "complete" ) 				{
				   try {
						alert(HTTPmarkdocument.responseText)
						reloadNieuweDocumenten()
						reloadOpgeslagenDocumenten()
						displayUploadBlock(label_toevoegendocumenten, category_toevoegendocumenten)
				   }	catch(err) {
					   	alert(' Error in functie removeDocument in SharedDocuments.js ');
					  	return;
				   }
				}
			}
			HTTPmarkdocument.send(null)
		}				
		
	} else
		return false;
}//<param name="label">plek op de pagina</param>
//<param name="blok">component uit componentendatabase</param>
function createMijnPraktijkmedewerkers( label, blok) {

	HTTPArray[label] = getHTTPObject();

	var introTekst = "";
	var headerTekst = "";
	var headerPicture = "";
	var headerPicAlt = "";

	var HTML = "";

	if (HTTPArray[label] != null) {
		HTTPArray[label].open("GET", ComponentsDb + "/vlJSONComponenten?readViewEntries&outputformat=JSON&restrictToCategory=" + blok, true)
					
		HTTPArray[label].onreadystatechange = function() {	

			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
				try {
					var resp = HTTPArray[label].responseText;
					var viewObject = eval("(" + resp + ")");
					var entries = viewObject["viewentry"];
					
					introTekst = entries[0].entrydata[0].text[0]
					
					var header = entries[0].entrydata[1].text[0]
					headerTekst = header.substring( header.indexOf("#")+1, header.length)
					
					var picture = header.substring(0, header.indexOf("#") )
					headerPicture = picture.substring(0, picture.indexOf("~") )
					headerPicAlt = picture.substring( picture.indexOf("~")+1, picture.length) 
			
					var responseText = entries[0].entrydata[12].text[0]
			
					if (headerPicture != "") {
						HTML += "<h2 class=\"fourty_px_top_spacer twenty_px_vertical_spacer\">"
						HTML += "<img src=\"" + SharedDb + "/" + headerPicture
						HTML += "\" alt=\"" + headerPicAlt + "\" /></h2>"
					}					
								
					if (headerTekst != "") 
						HTML += "<h4 style=\"margin-left:20px; margin-bottom:10px;\">" + headerTekst + "</h4>"
					
					HTML += "<div style=\"background-color:#DCECEF; margin-left:20px; margin-right:20px;\" id=\"MWForm\">"
					HTML += "<p style=\"margin-left:4px; margin-top:4px;\">" + introTekst + "<br/><br/></p></div>"
					
					HTML += "<div style=\"margin-left:20px; margin-top:8px;\" id=\"accountsMW\"></div>"	
			
					document.getElementById(label).innerHTML = HTML					
					
					addPraktijkmwForm("MWForm", responseText)	
			
				} catch (err) {}
			}				
		}	
		
		HTTPArray[label].send(null)
	}	
}


//<function name="addPraktijkmwForm()">
//'hulp' functie voor createMijnPraktijkmedewerkers() - toont de invoervelden voor aanmaken account
// van een praktijkmedewerker door de tandarts
//<param name="label">plek op de pagina</param>
//<param name="responseText">alert-tekst die gebruiker krijgt te zien na submitten van het form</param>
function addPraktijkmwForm(label, responseText) {

	var HTTPPrak = getHTTPObject()
	
	if (HTTPPrak != null) {
		HTTPPrak.open("GET", CMSDb + "/mijnpraktijkmedewerkers!openForm", true)
					
		HTTPPrak.onreadystatechange = function() {	

			if ( HTTPPrak.readyState == 4 || HTTPPrak.readyState == "complete" ) {
				try {
					var resp = getAJAXHTML( HTTPPrak.responseText )[0];
					document.getElementById(label).innerHTML += resp.replace("#responseText#", responseText)
					
				} catch(err) {}				
			}
		}	

		HTTPPrak.send(null)	
	}
}

// voeg een verzoek tot aanmaken van account voor medewerker toe aan RBS en verstuur een mailtje
// naar ledenadministratie; status in RBS = nieuw
//<param name="responseText">tekst voor alertbox na succesvol submitten van het verzoek</param>
function addMW( responseText) {
	//verplichte velden check
	if (!validateElementById("accountMWForm") ) return false
	
	//e-mail check
	if (!checkValidEmail( document.getElementById("EmailMW").value ) ) {
		alert( "Vul een geldig e-mailadres in." )
		document.getElementById("EmailMW").focus()
		return false
	} 
	
	//keuzelijstjes ook verplicht
	if (document.getElementById("functie").value == "0") {	
		alert("Kies een functie")
		return false;
	}

	if (document.getElementById("Werkverbanden").value == "0") {
		alert("Kies een werkverband")
		return false;
	}	
	
	var content = getInputs( document.getElementById("accountMWForm"))
	content += "&status=Nieuw&aanvrager=" + dispUsername + " (" + Username + ")"
	

	var HTTPnewdoc = getHTTPObject()

	if (HTTPnewdoc != null) {
		HTTPnewdoc.open("POST", RBSDb + "/fmAanvraagMW!createDocument", true)
	
		HTTPnewdoc.onreadystatechange = function() {
		
			if ( HTTPnewdoc.readyState==4 || HTTPnewdoc.readyState == "complete") {
				try {
					if (responseText != "") alert(responseText)
					
					location.reload()
									
				} catch(err) {}
			}
		}
		
		HTTPnewdoc.send(content)
	}	
}

//haal medewerker van lijst, zodat deze geen webtoegang meer heeft
//<param name="persooncode">persooncode van het persoonsdocument waarvan de toegang ontzegd moet worden</param>
//<param name="email">e-mailadres van medewerker; voor notificatie per e-mail in agent removeMW</param>
//<param name="data">gegevens over de persoon, om te tonen in alertbox voordat verwijderd wordt</param>
function removeMW( persooncode, email, data ) {
		
	if ( confirm( "Weet u zeker dat u het volgende account wilt verwijderen?\n\n" + data)) {

		HTTPdelDoc = getHTTPObject()
		
		if (HTTPdelDoc != null) {
			HTTPdelDoc.open("POST", CMSDb + "/removeMW!openAgent", true)
			
			HTTPdelDoc.onreadystatechange = function() {
				
				if (HTTPdelDoc.readyState==4 || HTTPdelDoc.readyState == "complete") {
					try {

						dispAccountsMW("accountsMW")	
																			
						if (HTTPdelDoc.responseText.indexOf("Failure") > -1) 
							alert( "Deze persoon is niet gevonden en kon daarom niet uit de lijst verwijderd worden.\nNeem contact op.")
						
						
					} catch(err) { }
					
				}
			}
		
			HTTPdelDoc.send(persooncode + "&" + email)		
		}
	}
}

// haal reeds aangemaakte accounts persoonsdocumenten) op en toon in DIV "label"
//<param name="label">plek op de pagina</param>
function dispAccountsMW( label ) {

	var selectlist = document.getElementById("Werkverbanden")
	var praktijkIDs = ""
	var x;
	var ID;

	for (x=1; x < selectlist.length; x++) {
		ID = selectlist[x].value
		praktijkIDs += (praktijkIDs==""? "" : "&") + ID.substring( ID.indexOf("[")+1, ID.length-1)
	}
			
		
	var HTTPaccounts = getHTTPObject()
	
	if (HTTPaccounts != null) {
		HTTPaccounts.open("POST", CMSDb + "/getPraktijkMW!openAgent", true)

		HTTPaccounts.onreadystatechange = function() {
			try {	
				if (HTTPaccounts.readyState == 4 || HTTPaccounts.readyState == "complete") 
					//responsetext bevat de lijst praktijkmedewerkers incl HTML opmaak
					document.getElementById(label).innerHTML = HTTPaccounts.responseText 
							
			} catch(err) {}	
				
		}
	
		HTTPaccounts.send(praktijkIDs)	
	}
}


//haal lijst van praktijken van de tandarts op
//<param name="id">id van de select tag</param>
function getPraktijkList(id) {
	
	var selectList = document.getElementById(id)
	var HTTPpl = getHTTPObject()
		
	if (HTTPpl != null) {
		HTTPpl.open("GET", RBSDb + "/vWerkverbanden!readviewentries&outputformat=JSON&restricttocategory=" + Username, true)

		HTTPpl.onreadystatechange = function() {
			try {
				if (HTTPpl.readyState == 4 || HTTPpl.readyState == "complete") {

					var resp = HTTPpl.responseText
					var viewObject = eval("(" + resp + ")");
					var entries = viewObject["viewentry"];
					var naam = ""							
					var id = ""
					var lastID = ""  //voorkomt dubbele meldingen
						
					if (entries != null) {
					  //alleen werkverbanden toevoegen met een Praktijkdocid, want
					  // uiteindelijk wordt de praktijkmedewerker aan een praktijk/instelling
					  // gekoppeld (op basis van dat id) en niet aan een werkverband
						for (x=0; x < entries.length; x++) {
							naam = entries[x].entrydata[11].text[0] ;
							id = entries[x].entrydata[12].text[0]; 
																					
							if (id != "" && naam != "" && lastID != id)	
								addOption( selectList, naam+" ["+id+"]", naam, false)	
															
							lastID = id	
						}	
					}
					
					//al actieve accounts behorende bij zojuist opgebouwde lijst praktijkid's 
					dispAccountsMW("accountsMW") 
				}
				
			} catch(err) {	}
		}		
		
		HTTPpl.send(null)
	}
}


//op medewerkersprofiel: functie aanpassen
//<id>  		= te tonen id
//<hideid> 	= te hiden id
//<docid> 	= documentuniqueid (notes) van profieldoc in RBS
function toggleFunctie( id, hideid, docid) {

	document.getElementById(id + "Functie").style.display = ""
	document.getElementById(hideid + "Functie").style.display = "none"

	var strContent = "&kSoortRelatie=" + document.getElementById("kSoortRelatie").value

	if (id=="read" && hideid=="edit")     {
	
		//opslaan; zie functie in scriptlib 'form_THKR.js' in RBS db	
		submitContent( "", docid, strContent, "Uw functie is aangepast", "Post")  
		
		var func = document.getElementById("readFunctie").innerHTML
		func = func.replace( func.substring( 0, func.lastIndexOf(" --")), 
						" -- " + document.getElementById("kSoortRelatie").value )	
		
		document.getElementById("readFunctie").innerHTML = func                             
                             
	}			
}

// kijk of radioveld is geklikt
function validateRadio(field ) {
		
	var radiofields = getElementsByName_iefix( "input", field.getAttribute("name"))
	var success = false;

	for (i=0; i < radiofields.length; i++) {
		if (radiofields[i].checked) success=true		
	}
	
	return success
}


// url in nieuw window openen
function openPopup(url, h, w) {

	var height = (h==null || h=="undefined")? "720" : h
	var width = (w==null || w=="undefined")? "640" : w

	window.open(url, "popup_id", "scrollbars, resizable, width=" + width + ", height=" + height);
     return false;
}

//'terug-link' door de URL te heropenen zonder het hash-gedeelte
// alleen te gebruiken als in een contentpagina de content van een andere pagina middels AJAX is
// geladen (bijv. bij het openen van een document vanuit een zoekresultatenlijst)
function goBack() {
	location = location.href.substring(0, location.href.indexOf("#") )
}


// =============================================================================================
// BEGIN FUNCTIES AANMELDINGSFORMULIER (NMT lid worden; zie CMS form "Aanmelden NMT Lid WWW")

//functie om _disp veld te updaten als een datum veld is ingevuld; normaal worden de _disp velden
//   in de blur events bijgewerkt, maar voor datepicker-velden wordt dit niet aangeroepen, dus wordt
//   onderstaande functie aangeroepen nadat een waarde met de datepicker is ingevuld
//origField = datumveld dat zojuist gevuld is (4 = geboortedatum, 1/2/3 = afstudeerdatum-velden
//value = waarde die daarin ingevuld is
function updateDispField( origField, value) {

	switch (origField) {
		case 1:
			document.getElementById("persoonlijke_afstudeerdatum1_disp").innerHTML = value
			break;
		case 2:
			var val = value==""? "Nvt" : value;
			document.getElementById("persoonlijke_afstudeerdatum1_disp").innerHTML = val
			break;	
		case 3:
			var val = value==""? "Nvt" : value;
			document.getElementById("persoonlijke_afstudeerdatum2_disp").innerHTML = val
			break;
		case 4:
			document.getElementById("persoonlijke_geboortedatum_disp").innerHTML = value		
	
	}
	
}

// RBS document aanmaken op basis van ingevuld NMT inschrijfformulier
function createRBSDoc() {
	
	RBSreq = getHTTPObject();
	if (RBSreq != null) {
		
		var content = unescape(getInputs(document.getElementById("persoonlijke_vereniging_content")))
		content += unescape(getInputs( document.getElementById("werkverbanden_content") ))
		RBSreq.open( "POST", CMSDb + "/createNMTinschrijving!openagent", true)
					
		RBSreq.onreadystatechange = function() {
			if (RBSreq.readyState == 4 || RBSreq.readyState == "complete") {

				if (RBSreq.responseText.indexOf("Succes")>-1) {
				
					alert("Bedankt voor uw aanmelding. Uw inschrijvingsverzoek is ontvangen.")
				
					var customAlert = document.getElementById("closeBtn")
					if (customAlert) {
						customAlert.onclick = function() { 
							removeCustomAlert();
							location.reload();
						}
					} else
						location.reload();	
				}
			}
		}
		
		RBSreq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		RBSreq.send(content)		
	}

}


//melding tonen als ingevuld aanmeldformulier geprint wordt (voor NMT lidmaatschap) 
function printFormulier() {
	
	openPopup( CMSDb + "/NMT_Inschrijfformulier.html");
	
}

//alertbox die verschijnt nadat het print-landingsscherm is weggeklikt (zie onload functie van het
//  form NMT_inschrijfformulier
function dispAlertAfterPrint() {
	alert("Bedankt voor uw aanmelding. U kunt uw inschrijvingsverzoek per post versturen.")
				
	var customAlert = document.getElementById("closeBtn")
		if (customAlert) {
			customAlert.onclick = function() { 
				removeCustomAlert();
				location.reload();
			}
		} else
			location.reload();	
	
}

//tekst die verschijnt als gebruiker op de link "ik heb geen printer dus wil het formulier ontvangen"
// klikt
function dispMessage() {
	var msg = "<b>Versturen gegevens naar NMT</b><br/>";
	msg += "Bedankt voor het invullen van uw gegevens voor het lidmaatschap. Alleen uw handtekening "
	msg += "ontbreekt nog. Gebruik daarvoor de button hieronder.<br/>De NMT stuurt u dan op "
	msg += "korte termijn een formulier met uw gegevens toe.<br/> U kunt dit ondertekenen en terugsturen "
	msg += "naar de NMT.<br/><br/>"
	msg += "<div class=\"horizontal_separator\"></div><br/>"
	
	msg += "<a class=\"btnshort right\" href=\"javascript:void('')\" onclick=\"createRBSDoc();\"> "
	msg += "Verstuur</a>"
		
	document.getElementById("afronden_content").innerHTML = msg

}


//voeg invulformulier voor werkverbanden toe (gebruikt op aanmeldingsformulier voor NMT lidmaatschap)
function addWerkverbandForm() {
	//zoek laatste werkverbandform en zet daar de nieuwe achter
	//	 - let op: IE snapt getElementsByName niet helemaal; daarom _iefix gebruiken (zie hieronder)
	var WVforms = getElementsByName_iefix("div", "werkverband")
	lastWVform = WVforms[ WVforms.length-1 ]
	var I = parseInt(lastWVform.getAttribute("id"))+1
	
	if (I > 6) {		//maximaal 6 werkverbanden toe te voegen
	
		HTTPReq = getHTTPObject();
	
		if (HTTPReq != null) {
		
			HTTPReq.open("GET", CMSDb + "/vlReferentiesOpKey?readViewEntries&outputformat=JSON&restrictToCategory=WerkverbandenAanmelden", true);				
						
			HTTPReq.onreadystatechange = function() {

				if ( HTTPReq.readyState == 4 || HTTPReq.readyState == "complete" ) {
					try {
						//haal melding voor gebruiker uit referentiekey op
						var resp = HTTPReq.responseText 
						var viewObject = eval("(" + resp + ")");
						
						var entries = viewObject["viewentry"];
						var type = getType( entries[0].entrydata[0] );
		
						for (x=0; x < entries.length; x++) {
							value = entries[x].entrydata[0][type][0];
							alert(value)
						}									
						
								
					} catch (err) {
						return;
					}
				}			
			}	

			HTTPReq.send(null)
		} 
		
	} else {

		var newWVform = document.createElement("div")
		newWVform.setAttribute("name", "werkverband")
		newWVform.setAttribute("id", I)

		var onBlurCode = "document.getElementById( this.getAttribute('id') + '_disp').innerHTML = this.value"
		
		var praktijkrollen = document.getElementById("praktijkrollen").innerHTML.split("#")
		var radioButtonCode = ""
		
		for(rolindex=0; rolindex < praktijkrollen.length; rolindex++) {
			radioButtonCode += 
				 "<input onBlur=\"" + onBlurCode + "\" type=\"radio\" id=\"rol" + I + "\" name=\"rol" + I + "\" "
			radioButtonCode += "value=\"" + praktijkrollen[rolindex] + "\">" + praktijkrollen[rolindex] + "<br/>"	 	
		}		 	

		var inHTML = "<a name=\"wv_" + I + "\">&nbsp;</a>"
		inHTML += "<h4>Werkverband " + I + "</h4>"
		inHTML += "<fieldset class=\"normal_form\">"
		inHTML += "<label for=\"naam" + I + "\">Naam</label><input onBlur=\"" + onBlurCode + "\" type=\"text\" id=\"naam" + I + "\" name=\"naam" + I + "\">"
		inHTML += "<label for=\"adres" + I + "\">Adres</label><input onBlur=\"" + onBlurCode + "\" type=\"text\" id=\"adres" + I + "\" name=\"adres" + I + "\">"
		inHTML += "<label for=\"postcode" + I + "\">Postcode &amp; Plaats</label>"
		inHTML += "<input onBlur=\"" + onBlurCode + "\" type=\"text\" class=\"postcode\" id=\"postcode" + I + "\" name=\"postcode" + I + "\">&nbsp;"
		inHTML += "<input onBlur=\"" + onBlurCode + "\" type=\"text\" class=\"plaats\" id=\"plaats" + I + "\" name=\"plaats" + I + "\">" 	
		inHTML += "<label for=\"aantal_dagdelen" + I + "\">Aantal dagdelen per week</label>"
		inHTML += "<input type=\"text\" onBlur=\"" + onBlurCode + "\" id=\"aantal_dagdelen" + I + "\" name=\"aantal_dagdelen" + I + "\">"
		inHTML += "</fieldset>"	
		inHTML += "<table style=\"margin-left:-3px;\"><tr><td width=153>Wat is uw rol?</td>"
		inHTML += "<td>" + radioButtonCode + "</td></tr></table>"
		
		newWVform.innerHTML = inHTML;
	
		document.getElementById("werkverbanden_all").appendChild( newWVform )
	
		//blijf beneden door naar anchor te springen
		location.hash = "wv_" + I		
	
		//voeg nieuwe gegevens toe aan derde tab ("afronden")
		var newWVform_disp = document.createElement("div")
		newWVform_disp.setAttribute("id", I + "_disp")

		var outHTML = "<h4>Werkverband " + I + "</h4>"
		outHTML += "<table><tr><th>Naam</th><td id=\"naam" + I + "_disp\"></td></tr>"
		outHTML += "<tr><th>Adres</th><td id=\"adres" + I + "_disp\"></td></tr>"
		outHTML += "<tr><th>Postcode</th><td id=\"postcode" + I + "_disp\"></td></tr>"
		outHTML += "<tr><th>Plaats</th><td id=\"plaats" + I + "_disp\"></td></tr>"
		outHTML += "<tr><th>Aantal dagdelen per week</th><td id=\"aantal_dagdelen" + I + "_disp\"></td></tr>"
		outHTML += "<tr><th>Uw rol</th><td id=\"rol" + I + "_disp\"></td></tr>"	
		outHTML += "</table><br/>"
	
		newWVform_disp.innerHTML = outHTML
	
		document.getElementById("werkverbanden_all_disp").appendChild( newWVform_disp)
	}
}

// EINDE FUNCTIES VOOR AANMELDINGSFORMULIER NMT lidmaatschap
// =============================================================================================



//Verwijder attachment (foto) van document
//DocID 	= documentuniqueID van het document waarop het attachment staat
//DbID 	= database ID waarin het attachment zit
//AttName = attachmentnaam 
//confirmText = bevestigingsvraag die gebruiker krijgt om wel/niet te verwijderen
function verwijderAtt( DbID, DocID, AttName, confirmText ) {
	if( confirm( confirmText )) {
		var t = new Date();
		
		var URL = CMSDb + "/removeAttachment?openagent&db="+ DbID + "&doc=" + DocID + "&att=" + AttName + "&t=" + t.getTime()
		var del_http = getHTTPObject()
		
		if (del_http != null) {
		
			del_http.open( "GET", URL, true)
		
			del_http.onreadystatechange = function() {
				if( del_http.readyState==4 || del_http.readyState == "complete" ) {
					try {
						alert( del_http.responseText)
																		
						//speciaal geval: als het de vacaturebank betreft ff opnieuw ophalen
						if ("/__" + DbID + ".nsf" == NTVBDb) 
							loadImages( DocID )   //in DienstBlock.js
						
					} catch (err) {
						// alert( err)
						return;
					}	
				}		
			}
			del_http.send(null)			
		}		
	}
}


//kijk of geklikte contentpagina bestaat (aangeroepen van form $GeneralError; we willen hier weten
// of het een 'terecht' loginscherm is, of dat het een 'broken link' is)
function testURL( URL ) {

	var URLTest = getHTTPObject()

	var brokenlink = "<br/><br/><span style=\"margin-left:20px;\">Onderstaande pagina "
	brokenlink += " is niet gevonden:</span><br/>"
	brokenlink += "<span style=\"margin-left:20px;\">" + location.href + "</span><br/><br/>"
	brokenlink += "<span style=\"margin-left:20px;\"><a href=\"javascript:history.back(-1)\">terug</a></span>"
	
	if (URLTest != null) {
	
		URLTest.open("GET", CMSDb + "/testURL?openagent&URL=" + URL, true)
		URLTest.onreadystatechange = function() {
			if (URLTest.readyState==4 || URLTest.readyState == "complete") {

				try {
					//response = true als pagina bestaat OF als het een pagina buiten de
					// webite betreft; anders is het een foute link				
					if ( URLTest.responseText != "" && !eval(URLTest.responseText) ) 						
						document.getElementById("contentcontainer").innerHTML = brokenlink
					
			
				} catch (err) {
					// alert( err )
					return;
				}		
				
			}
		
		}
		
		
		URLTest.send(null)		
	}

}

// haal alle inputvelden en selectvelden en textarea-velden op en geef terug als <veldnaam>=<waarde>&<veldnaam2>=<waarde2> ...
// <elem>				= DOM-element waarin de op te halen velden staan
function getInputs( elem ) {

	//first all text elements
	var allElements = elem.getElementsByTagName("input")
	var allSelectElements = elem.getElementsByTagName("select")
	var allTextAreaElements = elem.getElementsByTagName("textarea")
	var list = ""
	var lastField = ""		//om dubbele meldingen bij radiovelden te voorkomen
	var msg = ""

	for (f=0; f < allElements.length; f++) {	
	
		switch(allElements[f].type) {			
			case "text":
				list+="&" + allElements[f].getAttribute("name") + "=" + 
				escape(allElements[f].value);
				break;
	
			case "checkbox":
				if(allElements[f].checked) {
					list += "&" + allElements[f].getAttribute("name") + "=" +
				     escape(allElements[f].value);				
											
				} else {
					list+="&" + allElements[f].getAttribute("name") + "=";								
	
				}	
				break;
	
			case "radio":
				if(allElements[f].checked)
					list+="&" + allElements[f].getAttribute("name") + "=" + 
 				     escape(allElements[f].value)  ;		

				break;		
		}			
	}

	// nu de select elementen uitlezen
	for (g=0; g < allSelectElements.length; g++)
		list+="&" + allSelectElements[g].getAttribute("name") + "=" + allSelectElements[g].options[allSelectElements[g].selectedIndex].value

	// alle textareas
	for (h=0; h < allTextAreaElements.length;h++) {
		//verwijder evt. carriage returns (escapevalues hiervan zijn %0D%0A); daarna weer unescapen
		var areaVal = escape(allTextAreaElements[h].value)
		areaVal = areaVal.replace(/%0D%0A/g, " ")		//IE
		areaVal = areaVal.replace(/%0A/g, " ")			//Firefox
		
		list+="&" + allTextAreaElements[h].getAttribute("name") + "=" + unescape(areaVal)
	}
		
	if (list=="")
		return ""
	else
		return list.substring( 1, list.length);
}


//voeg reacties + reactieformulier toe aan een bericht (column of nieuws)
// key = hash van URL (verwijzing naar het document waarop gereageerd wordt)
//  vb. nieuwsbericht: "nieuws:CDD931818FBE11CEC125742F00443700"
function addReactieForm( key) {
	if (key.substring(0, key.indexOf(":")) == "nieuws"||"column") 
		var DB = NewsDb
		
	var URL = DB + "/frReactie!createDocument"
	HTMLTekst = "<div class=\"horizontal_separator\"></div>"
	
	HTMLTekst += "<a style=\"cursor:pointer; margin-left:20px;\" class=\"btnlong left\" onclick=\"toggleForm(false, '" + key + "')\" id=\"reageer_inactive\">"
	HTMLTekst += "Reageer op dit bericht</a>"
	
	HTMLTekst += "<div class=\"form button_form left\" id=\"formReageerOpDit\" style=\"display:none;\">"
     HTMLTekst += "<a style=\"cursor:pointer\" class=\"reactiebtnlong_selected left\" href=\"javascript:toggleForm(true, '" + key + "')\" id=\"reageer_active\">Reageer op dit bericht</a>"
     HTMLTekst += "<br/><br/>"
     HTMLTekst += "<fieldset class=\"fieldset_nieuwsbericht\"><br/>"
     HTMLTekst += "<center><textarea style=\"margin-left:0px;font-family:arial;font-size:9pt\" rows=\"\" cols=\"\" name=\"reactie\" id=\"reactie\"></textarea></center>"
     HTMLTekst += "<label for=\"Naam\">Naam</label>"
     HTMLTekst += "<input type=\"text\" class=\"naam\" id=\"naam\" name=\"naam\"/> <br />"
     HTMLTekst += "<label for=\"e-mailadres\">Uw e-mailadres</label>"
     HTMLTekst += "<input type=\"text\" name=\"email\" class=\"e-mailadres\" id=\"email\" />"
     HTMLTekst += "<br/><br/><a style=\"cursor:pointer\" href=\"javascript:addReactie('" + URL + "', '" + key + "')\" class=\"reactiebtnlong right\" >VOEG REACTIE TOE</a><br/>"
     HTMLTekst += "</fieldset>"
     HTMLTekst += "</div>"
        
   	//voorgaande reacties tonen (deze div wordt gevuld in openURL functie in homepagescripts.js in CMS db)
	HTMLTekst += "<div id=\"reacties\" class=\"block double clearboth\" style=\"margin-left:10px\" ></div>"
	
	return HTMLTekst
       
}                                

//'hulp' functies voor addReactieForm
// 1. toggleForm om reactievelden in/uit te klappen
// 2. getReacties om bestaande reacties op te halen
// 3. addReactie om de nieuwe reactie toe te voegen

//collapse: open/dicht klappen true/false
//key:	  id van het bericht waarover de reacties getoond moeten worden
function toggleForm(collapse, key) {

	if(collapse) {
		document.getElementById('reageer_inactive').style.display = "block";
		document.getElementById('formReageerOpDit').style.display = "none";
		document.getElementById('reacties').style.display = "none";
	} else { 
		document.getElementById('reageer_inactive').style.display = "none";
		document.getElementById('formReageerOpDit').style.display = "block";
		document.getElementById('reacties').style.display = "block";
	}
}


//product aanvragen - formulier, wordt aangeroepen na klikken "aanvragen product" op
// een product document (zie productendatabase, form Product WWW)
// label	= plek op de pagina
// unid	= documentuniqueid van het product dat aangevraag wordt
function addProductAanvraagForm( label, unid) {

	if(Username=="Anonymous") {
	
		alert('Bent u NMT lid, log dan eerst in!\nNa inloggen kunt u dit product aanvragen.');
		
		var HTTPreq = getHTTPObject();

		if (HTTPreq != null) {	
			HTTPreq.open("GET", CMSDb + "/login.html!openForm", true);					
			HTTPreq.onreadystatechange = function() {
			
				if ( HTTPreq.readyState == 4 || HTTPreq.readyState == "complete" ) {
			   		try {
						var form = getAJAXHTML( HTTPreq.responseText)
						document.getElementById(label).innerHTML = form[0]	
							
				     } catch(err) {
			   	    		return;
			   		}
				}
			}		
		}	
		HTTPreq.send(null)
		
	} else {				
		var plek = document.getElementById(label);
		if (plek != null && plek != "undefined") {
	
			var URL = ProductDb + "/frProductAanvraag!createDocument"	
			
			formHTML = "<h4>Persoonlijke gegevens</h4>"
			formHTML += "<div id=\"aanvraagformulier\" class=\"form\">"
			formHTML += "<fieldset><table><tr><td><label>Aanhef</label></td>"
			formHTML += "<td><input type=\"radio\" id=\"aanhef\" name=\"aanhef\" class=\"radio\" value=\"Mevrouw\"/><span>Mevrouw</span>"
			formHTML += "<input type=\"radio\" name=\"aanhef\" id=\"aanhef\" class=\"radio\" value=\"De heer\"/><span>De heer</span></td></tr>"
			formHTML += "<tr><td><label for=\"naam\">Voorletter(s) *</label></td>"
			formHTML += "<td><input type=\"text\" class=\"\" id=\"voorletters\" name=\"voorletters\" /></td></tr>"
			formHTML += "<tr><td><label for=\"tussenvoegsels\">Tussenvoegsels</label</td>"
			formHTML += "<td><input type=\"text\" class=\"\" id=\"tussenvoegsels\" name=\"tussenvoegsels\" /></td></tr>"	
			formHTML += "<tr><td><label for=\"achternaam\">Achternaam *</label</td>"
			formHTML += "<td><input type=\"text\" class=\"\" id=\"achternaam\" name=\"achternaam\" /></td></tr>"	
			formHTML += "<tr><td><label for=\"adres\">Adres</label></td>"
		   	formHTML += "<td><input type=\"text\" class=\"\" id=\"adres\" name=\"adres\" /></td></tr>"
			formHTML += "<tr><td><label for=\"postcode\">Postcode &amp; Plaats</label></td>"
		   	formHTML += "<td><input type=\"text\" class=\"small\" id=\"postcode\" name=\"postcode\" />"
     		formHTML += "<input type=\"text\" class=\"medium\" id=\"plaats\" name=\"plaats\" /></td></tr>"
			formHTML += "<tr><td><label for=\"email\">E-mail*</label></td>"
			formHTML += "<td><input type=\"text\" class=\"\" id=\"email\" name=\"email\" /></td>"
			formHTML += "</tr><tr>"
     		formHTML += "<td><label for=\"telefoon\">Telefoon*</label></td>"
		     formHTML += "<td><input type=\"text\" class=\"\" id=\"telefoon\" name=\"telefoon\" /></td>"
			formHTML += "</tr>"
			formHTML += "</table>"
		     formHTML += "<a class=\"btnshort right\" href=\"javascript:addProductAanvraag('" + URL + "', '" + unid + "')\">VERSTUREN</a>&nbsp;&nbsp;"
			formHTML += "</fieldset>"
			formHTML += "<input type=\"text\" id=\"productNaam\" name=\"productNaam\" value=\""+ document.getElementById("productNaamHidden").value + "\" style=\"display:none\">"
		     formHTML += "</div>"
	     
	     	document.getElementById(label).innerHTML = formHTML
	     
		
			HTTPO = getHTTPObject();
			
			if (HTTPO!= null) {
			
				HTTPO.open("GET", CMSDb + "/getProfielData!openAgent&stamnummer=" + Username, true)
				
				HTTPO.onreadystatechange = function() {
					if (HTTPO.readyState == 4 || HTTPO.readyState == "complete") {
						try{
							resp= HTTPO.responseText
							resplist = resp.split("&")
							for( x=0; x < resplist.length; x++) {
								var id = resplist[x].substring(0, resplist[x].indexOf("=") )
								var waarde = resplist[x].substring( resplist[x].indexOf("=")+1, resplist[x].length)

								if(id=="geslacht")
								{
									var arrAanhef = document.getElementsByName("aanhef")
									
									for( y = 0; y < arrAanhef.length; y++)
									{
										if (arrAanhef[y].value == "Mevrouw")
											arrAanhef[y].checked = (waarde == "Vrouw")
										else
											arrAanhef[y].checked = (waarde != "Vrouw")
									}
								} else {
									try {
										var toEval = "document.getElementById(\"" + id + "\").value=\"" + waarde + "\""								
										eval ("" + toEval + "")
									}
									catch(err){}
								}
							}

							
						} catch(err) {
							// alert(err)
						}
			
					}		
				}		
			
				HTTPO.send(null)
			}
			
		}
	}
}

//verstuur productaanvraag en maak een responsedocument aan met de aanvraag; hang deze onder het product
// in de productendatabase
//	URL		= het ?createdocument commando
//	unid		= documentuniqueid van het product
function addProductAanvraag ( URL, unid) {

	//OPMERKING: gebruiker moet create document rechten hebben
	//  op de productendatabase
	var parentID = "&ParentUNID=" + unid
	var HTTPAanvraag = getHTTPObject()
	var content = getInputs( document.getElementById("aanvraagformulier") )

	if (HTTPAanvraag != null) {
				
		HTTPAanvraag.onreadystatechange = function() {
			if (HTTPAanvraag.readyState == 4 || HTTPAanvraag.readyState == "complete") {
				alert("Bedankt voor uw aanvraag.\nWe nemen zo spoedig mogelijk contact met u op.")
				document.getElementById("omschrijving").style.display = "none"
			}	
		}
		HTTPAanvraag.open("POST", URL + parentID , true)
		HTTPAanvraag.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		HTTPAanvraag.send( content )	
	}
}


//haal reacties op bij nieuwsbericht
// key		= documentuniqueid van nieuwsbericht
// nocache	= haal nieuwste reacties op (zojuist nieuw toegevoegde reactie meteen tonen)
function getReacties( key, nocache) {
	var HTTPAllReacties = getHTTPObject()
	var reactiesHTML = "<table class=\"\" border=0 width=95%>";	

	t=""	
	if (nocache!=null && nocache != "undefined" && nocache != "")
		t = new Date()
	
	
	if (HTTPAllReacties != null) {
	
		if (t=="") 
			HTTPAllReacties.open("GET", CMSDb + "/getReacties?openagent&key=" + key, true)			
		else
			HTTPAllReacties.open("GET", CMSDb + "/getReacties?openagent&t=" + t.getTime() + "&key=" + key, true)			
						
		HTTPAllReacties.onreadystatechange = function() {
			if (HTTPAllReacties.readyState == 4 || HTTPAllReacties.readyState == "complete") {

				try {
					reactiesHTML +=  HTTPAllReacties.responseText + "</table>"
					document.getElementById("reacties").innerHTML = reactiesHTML 
				} catch(err) {
					//alert(err)
					return;
				}	
			}	
		}
		HTTPAllReacties.send(null)
	}

}

//URL = url met ?createdocument
//key = id van bericht (<verwijzing naar db>:<documentuniqueid>, 
//					vb "nieuws:CDD931818FBE11CEC125742F00443700")
function addReactie ( URL, key) {

	var n = document.getElementById("naam")
	var e = document.getElementById("email")
	var r = document.getElementById("reactie")
	
	//IP adres van gebruiker
	var ipid = document.getElementById("IP")
	var ip = (ipid == null || ipid == "undefined")? "onbekend" : ipid.innerHTML
	ip = ip == ""? "onbekend" : ip
	
	//Enters vervangen door spaties
	var rValue = escape(r.value).replace(/%0D%0A/g, " ")	//IE
	rValue = unescape(rValue.replace(/%0A/g, " "))		//Firefox
	
	//querystring-gevoelige tekens escapen (ivm meesturen via URL: send(content) )	
	rValue = rValue.replace(/=/g, escape("=") )
	rValue = rValue.replace(/&/g, escape("&") )

	if (n.value == "" || e.value == "" || r.value == "") {
		alert( "U dient alle velden in te vullen." )
		return;
	}
	
	//OPMERKING: omdat ook anonymous reacties moet kunnen toevoegen, moet in de ACL van de database
	//  waarin de reacties opgeslagen worden Anonymous rechten: Author - Create documents hebben

	var parentID = "&ParentUNID=" + key.substring( key.indexOf(":")+1, key.length)
	var content = "naam=" + n.value + "&email=" + e.value + "&reactie=" + rValue;
	content += "&ip=" + ip
	
	var HTTPReactie = getHTTPObject();
	
	if (HTTPReactie != null) {
				
		HTTPReactie.onreadystatechange = function() {
			if (HTTPReactie.readyState == 4 || HTTPReactie.readyState == "complete") {
				try {

					//bijgewerkte reacties tonen (dus niet uit cache!)
					getReacties(key, "NoCache");	
					//formulier verstoppen
					document.getElementById("formReageerOpDit").style.display="none"
					
					n.value = ""
					e.value = ""
					r.value = ""					
					
				} catch (err) { 
					//alert( err)
					return;
				} 	
			}	
		}
		HTTPReactie.open("POST", URL + parentID , true)
		HTTPReactie.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		HTTPReactie.send( content )	
	}
}


//reactie via Contact button of "stel een vraag" button op contact&route scherm
function addGlobalReactie( key ) {

	var titel	= document.getElementById("titel").value
	
	if (Username == "Anonymous")
		var naam = document.getElementById("naam").value
	else
		var naam = document.getElementById("naam").innerHTML
			
	var email	= document.getElementById("email").value
	var reactie = escape(document.getElementById("reactie").value)
	var knop = document.getElementById("verstuurreactieknop")
		
	var arrGeslacht = document.getElementsByName("Geslacht")
		
	if (arrGeslacht[0].checked)
		geslacht = arrGeslacht[0].value
	else
		geslacht = arrGeslacht[1].value
	
	if ( titel == "" || naam == "" || email == "" || reactie == "") {
		alert( "U dient alle velden in te vullen." )
		return
	}
	
	//Verberg knop
	if ( knop != null && knop.style != null)
		knop.style.visibility = "hidden";
		
	var HTTPReactie = getHTTPObject()

	if (HTTPReactie != null) {
	
		HTTPReactie.onreadystatechange = function() {
			if (HTTPReactie.readyState == 4 || HTTPReactie.readyState == "complete") {
				try 	{
					var strResponse = HTTPReactie.responseText;

					if (strResponse != "") {
					
						eval( strResponse )
						
						if ( knop != null && knop.style != null)
							knop.style.visibility = "visible";
						
						//als de customAlert gebruikt wordt, moet de reload achter de 'OK' 
						// button gezet worden en NIET direct uitgevoerd worden
						var customAlert = document.getElementById("closeBtn")
						if (customAlert) {
							customAlert.onclick = function() { 
								removeCustomAlert();
								location.reload()
  						 	}
						} else
							 location.reload()
					
					}
					
				} catch(err) {
					//alert( err )
					return
				}
			}
		}
	
		HTTPReactie.open("POST", CMSDb + "/agCreateWebDoc!OpenAgent", true)
		HTTPReactie.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
		
		var content = "Stamnummer=" + Username + "&Subject=" + titel + "&Achternaam=" + naam + "&Geslacht=" + geslacht + "&Benaderen_Via_Anders=" + email + "&Vraag_Opmerking=" + reactie
		HTTPReactie.send(content)	
	}
}


//voeg links naar KA overzichten van voorgaande jaren toe op KA overzicht
// <label>	= plek op pagina (onder huidig getoond overzicht)
// <blokje>	= id van het kaoverzicht blokje in componentendatabase
// <jaar>		= welk jaar moet getoond worden
function addKAOverzichten( label, blokje, jaar ) {
	if (Username=="Anonymous") return;
	
	listHTML = "<span class=\"right\" style=\"margin-right:20px;\">"
	listHTML += "Overzicht van voorgaande jaren:</span>"
	listHTML += "<div class=\"clearboth\"></div><ul class=\"footer_list\">"
	listHTML += "<div id=\"loading\">ophalen...<img src=\"" + SharedDb + "/ajaxloaderec5.gif\"></div>"
	//dit alvast tonen zodat loadericoon verschijnt 
	document.getElementById(label).innerHTML = listHTML
	
	//haal de div op van het blokje zelf (dit om 'voorgaande jaren' links in die div te openen)
	var parent = document.getElementById(label).parentNode.id
			
	HTTPArray[label] = getHTTPObject()
	
	if (HTTPArray[label] != null) {
		HTTPArray[label].open("GET", KWISDb + "/vlWeb4OverzichtenOpRelatie?readviewentries&outputformat=JSON&restricttocategory=" + Username, true)
		
		HTTPArray[label].onreadystatechange = function() {	

			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
				try {
					var resp = HTTPArray[label].responseText ;
					var viewObject = eval("(" + resp + ")");
					var entries = viewObject["viewentry"];
					
					if (entries != null) {
						for (i=0; i < entries.length; i++) {
							var jaarlink = entries[i].entrydata[0].text[0]

							if (jaarlink.indexOf(jaar)<0) {
							//a href functieaanroepen in view bevatten <BLOKJE> en <LABEL>,
							// deze worden hier met de goede info gevuld	
								jaarlink = jaarlink.replace("<BLOKJE>", blokje)
								listHTML += "<li>" + jaarlink.replace("<LABEL>", parent) + "</li>"
							}	
						}	
						
						document.getElementById(label).innerHTML = listHTML + "</ul>"
						
					} else
						document.getElementById(label).innerHTML = "geen voorgaande jaren gevonden</ul>"
			
					//loadericoon weg, want we zijn kloar
					document.getElementById("loading").style.display="none"	
					
					//div voor tonen overzicht van een voorgaand jaar
					var voorgaandjaardiv = document.createElement("div")
					voorgaandjaardiv.id = "voorgaandjaar"
					document.getElementById(label).appendChild(voorgaandjaardiv)
					

				} catch (err) {
					// alert( err )
					document.getElementById(label).innerHTML = ""
				}
			}
		}
		HTTPArray[label].send(null)
	
	}
}


//voeg werkverbanden toe op een tandartsenprofiel
// key 	= documentuniqueID
// label 	= plek op pagina
function addWerkverbanden( label, key ) {
	var luKey = key.substring( key.indexOf(":")+1, key.length )

	//alle werkverbanden ophalen, en HTML sections toevoegen
	HTTPArray[label] = getHTTPObject();
	var wvHTML = "<div id=\"werkverbanden\" class=\"block double\" style=\"width:450px;position:relative;top:-20px\"><ul>"

	if (HTTPArray[label] != null) {
		//laat agent alle info uit de werkverbanden bij elkaar zoeken en als html teruggeven
		HTTPArray[label].open("GET", CMSDb + "/getWerkverbanden?openagent&docID=" + luKey, true)
		
		HTTPArray[label].onreadystatechange = function() {	

			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {
				try {
					wvHTML += HTTPArray[label].responseText ;
					document.getElementById(label).innerHTML = wvHTML + "</ul></div>"

				} catch (err) {
					//alert( err )
					document.getElementById(label).innerHTML = ""
				}
			}
		}
		HTTPArray[label].send(null)
	}	
}

//'hulp'functie voor addWerverbanden
//tonen/hiden werkverbandinformatie; aangeroepen na klikken op titel werkverband
function toggleInfo(nr) {
	var werkverband = document.getElementById(nr)
	
	if (werkverband != null && werkverband != "undefined") {
		if (werkverband.style.display=="none") {
			document.getElementById("title-" + nr).className = "arrow_down"
			werkverband.style.display=""
		} else {
			document.getElementById("title-" + nr).className = ""
			werkverband.style.display="none"
		}
	}
}


//IE Fix voor getElementsByName
// functie getElementsByName gaat fout in IE, daarom zo aanroepen:
// tag	= de html-tag waarvan het element met name= gevonden moet worden
// name	= de naam van het element (attribute "name")
function getElementsByName_iefix(tag, name) {
     
     var elem = document.getElementsByTagName(tag);

     var arr = new Array();
     for(i = 0,iarr = 0; i < elem.length; i++) {
          att = elem[i].getAttribute("name");
          if(att == name) {
               arr[iarr] = elem[i];
               iarr++;
          }
     }
     return arr;
}



// view	= view (incl. db en path)
// key	= lookupkey
// col	= kolom waarvan waarde terug moet worden gegeven (kolom 1 = 0)
// id	= id van het element waar het resultaat in gezet moet worden
function dbLookup( view, key, col, id ) {

	var HTTPLu = getHTTPObject();
	var value = ""

	if (HTTPLu != null) {

		HTTPLu.open("GET", view + "!readviewEntries&outputformat=JSON", true)
		
		HTTPLu.onreadystatechange = function() {	

			if ( HTTPLu.readyState == 4 || HTTPLu.readyState == "complete" ) {
				try {
					var resp = HTTPLu.responseText
					var viewObject = eval("(" + resp + ")");
					var entries = viewObject["viewentry"];
				
					if (entries != null) {
										
						for (i=0; i < entries.length; i++) {
							if (entries[i].entrydata[0].text[0] == key) {
								value = entries[i].entrydata[col].text[0] 
							}
						}
					}
	
					document.getElementById(id).innerHTML = value	
						
					
				} catch (err) {
					return ;
				}
			}
		}
		HTTPLu.send(null)
	}
}


//Voert een dblookup uit op een gecategoriseerde view
//"view" 				 Pad naar database + view
//"categorie" 			 key voor de lookup
//"col"				 Nummer van de kolom die opgehaald moet worden (eerste kolom is 0)
//"processValuesFunction" function die het lookup resultaat verwerkt
function dbLookupOnCategory( view, category, col, processValuesFunction)
{
	var HTTPLu = getHTTPObject();

	if (HTTPLu != null)
	{
		HTTPLu.open( "GET", view + "!readviewEntries&outputformat=JSON&RestrictToCategory=" + category, true)
		
		HTTPLu.onreadystatechange = function()
		{	
			if ( HTTPLu.readyState == 4 || HTTPLu.readyState == "complete" )
			{
				try
				{
					var respText	= HTTPLu.responseText
					var viewObject	= eval( "(" + respText + ")" )
					var entries	= viewObject["viewentry"]
					var index		= 0
					var values	= new Array()
					values[0]		= ""
	
					if (entries != null)
					{
						for ( i = 0; i < entries.length; i++)
						{
							values[index] = entries[i].entrydata[col].text[0]
							index++
						}
					}
	
					processValuesFunction(values)

				} catch (err)
				{
					//alert(err)
					return
				}
			}
		}
		HTTPLu.send(null)
	}
}


//algemene functie om mail te versturen
// soort		= soort email (opties: "bibliotheek", "mailafriend", "contact")
// info		= informatie over het document waarover info verstuurd moet worden
function sendMail ( soort, info) {

	//aangeroepen vanaf tijdschrift, artikel of boek form in DS
	if (soort=="bibliotheek") {
		//info aanvullen met 'versturen naar' en 'opmerking' waarden
		var naarElem = getElementsByName_iefix("input", "Naar")

		if (naarElem[0].checked) var naar = naarElem[0].value
		else if (naarElem[1].checked) var naar = naarElem[1].value
		else var naar = naarElem[2].value

		var o = document.getElementById("Opmerking")
		var opmerking = escape(o.value).replace(/%0D%0A/g, " ")
		opmerking = opmerking.replace(/%0A/g, " ")		
				
		if (o.value=="" && naarElem[2].checked) {
			alert("Vul bij 'Opmerking' het gewenste adres in.")
			return
		}

		info += "~" + dispUsername + "~" + naar + "~" + opmerking
	}

	//aangeroepen vanaf 'mail-a-friend' icoon; zie 'openMailForm' functie hieronder
	if (soort=="mailafriend") hideMailAFriend()

	HTTPMail = getHTTPObject();
	if (HTTPMail != null) {
		HTTPMail.open("GET", CMSDb + "/sendMail?openagent&info=" + soort + ":" + info, true)

		HTTPMail.onreadystatechange = function() {	

			if ( HTTPMail.readyState == 4 || HTTPMail.readyState == "complete" ) {
				if (HTTPMail.responseText != "")
					 alert( HTTPMail.responseText )
				
				if (soort=="contact" || soort=="product" || soort=="bibliotheek")  {
				
					//als de customAlert gebruikt is, moet de reload achter de 'OK' 
					// button gezet worden ipv direct uitgevoerd worden
					var customAlert = document.getElementById("closeBtn")
					if (customAlert) {
						customAlert.onclick = function() { 
							removeCustomAlert();
							location.reload()
  					 	}
					} else
						 location.reload()
				}		 
			}
		}	
	}
	
	HTTPMail.send(null)
}



var keepHTML = "";
var dynTextdiv = false;   
var hideHTML = false;

//Mail-a-friend; opent invulformuliertje + verstuurt mail
var globalMail = false

// standardmailtext = inhoud van het te verzenden mailtje (opgehaald uit referentiedocument)
function openMailForm( standardmailtext ) {

	standardmailtext += "<br/><br/>" + location

	if(!globalMail) {

		var textdiv = document.getElementById("contenttextBlock")
		var content = document.getElementById("contentcontainer")

		var absolutepos = ""

		if ( textdiv==null || textdiv=="undefined" || dynTextdiv) {
			textdiv = document.createElement("div")
			textdiv.setAttribute("id", "contenttextBlock")
			content.appendChild( textdiv)
			absolutepos = "position:absolute;"	
			dynTextdiv = true	//onthouden dat textdiv nu dynamisch aangemaakt is
		
		} else {
			if (textdiv.style.display == "none") hideHTML = true;
			textdiv.style.display = ""	
			keepHTML = textdiv.innerHTML	
		}	
		
		textdiv.className = "block double left actueel"

		formHTML = "<div id='mailafriend' style=\"z-index:3; " + absolutepos + " top:5px;left:10px; width:460px; \">"	
		formHTML += "<div class=\"form schrijven_form\" >"
		formHTML += "<table border=0 width=100% cellspacing=0 cellpadding=0 style=\"border-top:solid 1px #8e8e8e;border-right:solid 2px #000000;border-bottom:solid 2px #000000;border-left:solid 1px #8e8e8e;background-color:#f3f2f3;\">"
		formHTML += "<tr><td colspan=2><strong style=\"margin:10px\">Deze pagina doorsturen<strong>"
		formHTML += "<a style=\"position:relative;margin-left:240px\" href=\"javascript: hideMailAFriend();\"><img src=\"" + SharedDb + "/close_button.gif\" border=0 style=\"margin:4px\"></a></td></tr>"
		formHTML += "<tr><td style=\"padding:10px\">Uw naam *</td>"
		formHTML += "<td><input onBlur=\"changeEmailContent()\" type=\"text\" id=\"naamverzender\" style=\"width:200px;\"/></td></tr>"
		formHTML += "<tr><td style=\"padding:10px\">Uw e-mailadres *</td>"
		formHTML += "<td><input onBlur=\"changeEmailContent()\"  type=\"text\" id=\"emailverzender\" style=\"width:200px\"/></td></tr>"
		formHTML += "<td style=\"padding:10px\">E-mailadres ontvanger *</td>"                              
	    	formHTML += "<td><input type=\"text\" id=\"emailontvanger\" style=\"width:200px\"/></td></tr>"       
    		formHTML += "<td colspan=2><br/><a class=\"btnshort right\" href=\"javascript: mailAFriend();\">VERSTUREN</a></td></tr>" 
		formHTML += "<tr><td style=\"padding:10px\" colspan=2><strong>Inhoud e-mail die wordt verzonden:</strong></td></tr>"
		formHTML += "<tr><td colspan=2 style=\"padding:10px\" id=\"emailinhoud\"></td></tr>"
		formHTML += "<tr><td colspan=2 style=\"width:400px; word-wrap:break-word; padding:10px\">" + standardmailtext + "</td></tr>"
	    	formHTML += "</table>"
		formHTML += "</div>"
		
		textdiv.innerHTML = formHTML +  "<br/><br/>" + keepHTML 
		
		globalMail = true
	
	}
}


function mailAFriend() {
	
	naam = document.getElementById("naamverzender").value
	from = document.getElementById("emailverzender").value
	to = document.getElementById("emailontvanger").value

	if (naam.replace(/ /g, "") == "") {
		alert('Uw naam is niet ingevuld. Er is niets verstuurd.')
		return;	
	}

	if (! checkValidEmail (from) ) {
		alert('Uw e-mailadres is ongeldig. Er is niets verstuurd.')
		return;
	}

	if( checkValidEmail (to) ) 
		sendMail( "mailafriend", naam + " (" + from + ")~" + to )
	else
		alert('Het e-mailadres van de ontvanger is ongeldig. Er is niets verstuurd.')
}


function checkValidEmail( email ) {
	var strPattern = /^\w[-_a-z~.0-9]*@\w[-_a-z~.0-9]+\.[a-z]{2}[a-z]*$/i;	
	return (strPattern.test(email))
}


function hideMailAFriend() {

	globalMail = false
	document.getElementById("mailafriend").style.display="none"
	
	if (!hideHTML) {
		//verstop blokje weer; als blokje in contentcontainer stond (ivm ontbreken contenttextblock)
		//  ontkomen we er niet aan de hele pagina te reloaden
		var textdiv = document.getElementById("contenttextBlock")

		if (textdiv==null || textdiv=="undefined") {
			location.reload()
			return;
		}

		textdiv.innerHTML = keepHTML
		textdiv.className = group=="Mijn NMT"? "" : "block double fourty_px_top_spacer"
	}	
}


function changeEmailContent() {
	//werk tekst onderaan popup bij als naam of e-mail van verzender wijzigt
	var nieuwetekst = document.getElementById("naamverzender").value +
		 " (" + document.getElementById("emailverzender").value + ") stuurt u deze e-mail."
		
	document.getElementById("emailinhoud").innerHTML = nieuwetekst
}

//dynamisch een <opion></option> element toevoegen aan selectielijst 
// selectItem		= <select> tag waaronder de keuze geplaatst worden
// value, text		= <option value=*value*> *text* </option>			 
// defaultVal		= (boolean) default waarde voor keuzelijst j/n
function addOption( selectItem, value, text, defaultVal ) {

	var doorgaan = true
	
	for (index=0; index < selectItem.length; index++) {
		if (selectItem.options[index].value == value)
			doorgaan = false		//keus niet toevoegen als die al in lijst staat
	}

	if (doorgaan) {		
		var option = document.createElement("option")
		option.value = value
		option.innerHTML= text
	
		option.selected = defaultVal
		selectItem.appendChild(option)	
	}
}


//linkermenu + breadcrumb opbouwen
function buildLeftMenu(  ) {

	var leftMenuHTML = getImage(group)
	leftMenuHTML += "<ul>"

	var breadHTML = "<ul class=\"left\"><li><a href=\"javascript:goHome();\">Home</a></li>"
	
	HTTPArray["leftMenu"] = getHTTPObject();
	URL = CMSDb + "/vlJSONNavigatieTotaal?readViewEntries&outputformat=JSON&count=-1&restricttocategory=" + group
	
	if (HTTPArray["leftMenu"] != null) {

		HTTPArray["leftMenu"].open("GET", URL, true);				

		HTTPArray["leftMenu"].onreadystatechange = function() {

			var menuItem = "";
			var menuLink = "";
			var selClass = "";
			var selLevel2Class = "";	
			var selLevel3Class = "";
			var x=0;			
			var lastMenuItem = "";
			var lastMenuLevel2Item = "";
			var lastMenuLevel3Item = "";
											
			if ( HTTPArray["leftMenu"].readyState == 4 || HTTPArray["leftMenu"].readyState == "complete" ) {
				try {

				  var resp = HTTPArray["leftMenu"].responseText;
				  var viewObject = eval("(" + resp + ")");
				  var entries = viewObject["viewentry"];

	 			  if (entries != null) {

					var isFirst = true;		
                         var subLevel = false;							
                         
                         //eerste is altijd de landingspagina
                         menuLink = getLink (group, entries[0].entrydata[3].text[0])
					breadHTML += "<li>" 
					breadHTML += (menu1==""? group : "<a href=\"" + menuLink + "\">" + group + "</a>")
					breadHTML	+= "</li>"
                         
					for (x=1; x < entries.length; x++) {
			
						menuLink = getLink (group, entries[x].entrydata[3].text[0])
						menuItem = entries[x].entrydata[0].text[0]
						
						if (menuItem != "") {
									 							 							  
		 		  			if (menuItem != lastMenuItem)	{ //menuitem moet uniek zijn
	
		 			  			// menu-onderdeel level 1	
		 			  			if (menuItem == menu1) 
		 			  				selClass = menu2==""? "class=\"selected\"" : "class=\"selectedsub\""
		 			  			else
									selClass = ""	
									 			  			
		 			  		  	if (subLevel) { //zojuist een sublevel geweest; afsluiten met ul
		 			  		  		leftMenuHTML += "</ul>"
			 			  		  	subLevel = false
			 			  		}
								leftMenuHTML += "<li><a href=\"" + menuLink + "\" "
								leftMenuHTML += selClass + ">" + menuItem + "</a></li>" 
								
							  	// breadcrumb level 2
							  	if (menu1==menuItem) 
									breadHTML += addBreadCrumb( menuItem, menuLink, 2 )
									 	
			                   	} 
			                         
			                   	menuLevel2Item = entries[x].entrydata[1].text[0] 											     
										                         
			  			    	if (menuLevel2Item != "" && menu1==menuItem && lastMenuLevel2Item != menuLevel2Item) { 
		 							 						
		 					      // menu-onderdeel level 2    			 			  		
							      selLevel2Class = menuLevel2Item == menu2? "class=\"selected\"" : ""
																	
								 if (isFirst)	{
								  	leftMenuHTML += "<ul>"
								  	isFirst = false
								 }
							      leftMenuHTML += "<li><a href=\"" + menuLink + "\" "
								 leftMenuHTML += selLevel2Class + ">" + menuLevel2Item + "</a></li>"
							       											
							      // breadcrumb level 2
							      if (menu2==menuLevel2Item) 
							          breadHTML += addBreadCrumb( menuLevel2Item, menuLink, 3)
               													
               					 subLevel = true;								
							} 
							
							menuLevel3Item = entries[x].entrydata[2].text[0]
							
							if (menuLevel3Item != "" && menu2==menuLevel2Item && lastMenuLevel3Item != menuLevel3Item) {
								//menu-onderdeel level 3						
								selLevel3Class = menuLevel3Item == menu3? "class=\"selected\"" : ""
								leftMenuHTML += "<li>&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"" + menuLink + "\" "
								leftMenuHTML += selLevel3Class + ">" + menuLevel3Item + "</a></li>"

							      // breadcrumb level 3
							      if (menu3==menuLevel3Item) 
							          breadHTML += addBreadCrumb( menuLevel3Item, menuLink, 4)


							}

							lastMenuLevel3Item = menuLevel3Item
					  	     lastMenuLevel2Item = menuLevel2Item									  
		 			          lastMenuItem = menuItem
	 			          
											
						}	//einde 'if menuItem != ""'
							
					}  
					
					leftMenuHTML += "</ul>"

					document.getElementById("submenu").className = getClassName(group)[1]
					document.getElementById("submenu").innerHTML = leftMenuHTML			
	
				  } else 	   //entries = null
					document.getElementById("submenu").innerHTML = leftMenuHTML + "<li>&nbsp;&nbsp;&nbsp;&nbsp;</li></ul>"
				  
				
				  document.getElementById("breadcrumb").innerHTML = breadHTML								

				
				} catch (err) {
					//alert( err );
					return;
				}	
			}
		}
		HTTPArray["leftMenu"].send(null)						
	}
}

//maak één breadcrumb-link aan en retourneer HTML hiervoor
//item 	= tekst zoals die in het menu verschijnt
//link	= link v.h. menuonderdeel
//nr		= menu level 2,3 of 4  (menu1, menu2, menu3)
function addBreadCrumb( item, link, nr ) {

	var retHTML = "";
	if (nr==4 || (eval("menu" + nr)=="")) retHTML += "<li>" + item + "</li>"
	else if (eval("menu" + nr) == "Inloggen") retHTML += "<li>Inloggen</li>"
	else {				
		retHTML += "<li><a href=\"" + link + "\">"
		retHTML += item + "</a></li>"
  	}	
	return retHTML;
}

//de functie secondtabs wordt aangeroepen als er twee keer achter elkaar een tabbed pagina moet worden geladen
//dit is bijvoorbeeld het geval bij Bij & Nascholing, Kwis aanbod.
function secondtabs(node) {

	this.node = node;
	this.node.Parent = this;
	this.node.style.visibility = "visible";
	this.tabs = CB.getElementsByClassName(this.node, "tabContent");

	this.triggers = CB.getElementsByClassName(this.node, "tab");
	
	//first handle tab visibility
	this.active = this.tabs[0];
	
	//check for active tab
	for(i = 0; i < this.tabs.length; i++){
		this.tabs[i].Parent = this;
		if(this.tabs[i].className.lastIndexOf("activeTab") != -1){
			this.active.className = this.active.className.replace(/\s?activeTab/g,"");
			this.active.className += " hideThisNode";
			this.active = this.tabs[i];
			this.active.className += " activeTab";
			this.triggers[0].className = this.triggers[0].className.replace(/\s?activeTab/g, "");
			this.triggers[i].className += " activeTab";
		}else{
			this.tabs[i].className += " hideThisNode";
		}
		this.active.className = this.active.className.replace(/\s?hideThisNode/g,"");
	}
	
	//now set the triggers to handle visibility
	for(i = 0; i < this.triggers.length; i++){
		this.triggers[i].Parent = this;
		//this.triggers[i].onclick = this.switchTab;
		this.triggers[i].onclick = switchTab;
	}
}



//Voeg fck editor toe, boven een textarea
//divID 		 = id of name van het Textareaveld waar het om gaat
//configbestand = URL-verwijzing naar .js bestand waarin configuratie staat 
//     (zie bijv. bodyRTfield.js in SharedCode)
function makeRichTextField( divID, configbestand ) {

	var oFCKeditor = new FCKeditor(divID)
	
	oFCKeditor.Config["CustomConfigurationsPath"] = configbestand
	//nieuwste versie dd 06-04-09 is 2.6.4
	//oFCKeditor.BasePath = "/FCKeditor/"
	oFCKeditor.BasePath = "/FCKeditor_2.6.4/"			
	oFCKeditor.Height = 400
	oFCKeditor.Width = 422
	oFCKeditor.ReplaceTextarea("")
}

/**
Dynamic XMLHttp lookups based on Google Suggest XMLRPC code. See:

http://serversideguy.blogspot.com/2004/12/google-suggest-dissected.html
http://www.fastbugtrack.com/misc/google/ac.js
http://www.google.com/webhp?complete=1&hl=en

I stripped out a lot of the cool functionality (like the lookup timers and
highlighting parts of the search result). That was mainly to make this a little
easier to digest. Feel free to look at the JavaScript code that Chris Justus
reformatted (see the link above) and put back anything that's missing.

In version 1.2 support was added for capturing keypresses of arrow keys,
the enter key, and the tab key while the input field has focus.

version 1.2
January 5, 2005
Julian Robichaux, http://www.nsftools.com
*/


var queryField;
var lookupURL;
var divName;
var ifName;
var lastVal = "";
var val = ""
var xmlHttp;
var cache = new Object();
var searching = false;
var globalDiv;
var divFormatted = false;
var DIV_BG_COLOR = "#eeeeee";
var DIV_HIGHLIGHT_COLOR = "#cccccc";

/**
The InitQueryCode function should be called by the <body onload> event, passing
at least the queryFieldName and lookupURLPrefix parameters, where:

queryFieldName = the name of the form field we're using for lookups
lookupURLPrefix = the URL we'll use to pass the query string back to the server,
                  which will be immediately proceeded by the query string

For example:
<body onload="InitQueryCode('lookupField', 'http://lookupserver/QueryHandler?q=')">

The above example will monitor the input box called "lookupField" on this page,
and when it changes the contents of the field will be passed to lookupserver like:
http://lookupserver/QueryHandler?q=fieldValue

The http://lookupserver/QueryHandler will be expected to return a text response
with a single line of text that calls the showQueryDiv function, in a format like:
showQueryDiv("smi", new Array("John Smith", "Mary Smith"), new Array("555-1212", "555-1234"));

*/
function InitQueryCode (queryFieldName, lookupURLPrefix, hiddenDivName)
{

  queryField = document.getElementsByName(queryFieldName).item(0);
  queryField.onblur = hideDiv;
  queryField.onkeydown = keypressHandler;
  
  // for some reason, Firefox 1.0 doesn't allow us to set autocomplete to off
  // this way, so you should manually set autocomplete="off" in the input tag
  // if you can -- we'll try to set it here in case you forget
  queryField.autocomplete = "off";
  
  lookupURL = lookupURLPrefix;
  if (hiddenDivName)
    divName = hiddenDivName;
  else
    divName = "querydiv";
    
  ifName = "queryiframe";
  
  // add a blank value to the cache (so we don't try to do a lookup when the
  // field is empty) and start checking for changes to the input field
  addToCache("", new Array());
  setTimeout("mainLoop()", 100);
}


/**
This is a helper function that just adds results to our cache, to avoid
repeat lookups.
*/
function addToCache (queryString, resultArray1)
{
  cache[queryString] = new Array(resultArray1);
}


/**
This is the function that monitors the queryField, and calls the lookup
functions when the queryField value changes.
*/
mainLoop = function() {

  val = escape(queryField.value);
  
  // Peter: aangepast: pas zoeken als twee letters zijn ingetikt
  if (val.length > 1) {
  
  	// if the field value has changed and we're not currently waiting for
	// a lookup result to be returned, do a lookup (or use the cache, if
  	//	we can)
  
 	if (lastVal != val && searching == false)  {
		var cacheResult = cache[val];
    	if (cacheResult)
     	showQueryDiv(val, cacheResult[0]);
	else 
     	doRemoteQuery(val);
     
    	lastVal = val;
    	
  	}
  } else
  	showQueryDiv( val, "")
  
  setTimeout("mainLoop()", 100);
  return true;
}
;


/**
Get the <DIV> we're using to display the lookup results, and create the
<DIV> if it doesn't already exist.
*/
function getDiv (divID)
{
  if (!globalDiv) {
    // if the div doesn't exist on the page already, create it
    if (!document.getElementById(divID)) {
      var newNode = document.createElement("div");
      newNode.setAttribute("id", divID);
      document.body.appendChild(newNode);
    }
    
    // set the globalDiv reference
    globalDiv = document.getElementById(divID);
    
    // figure out where the top corner of the div should be, based on the
    // bottom left corner of the input field
    var x = queryField.offsetLeft;
    var y = queryField.offsetTop + queryField.offsetHeight;
    var parent = queryField;
    while (parent.offsetParent) {
      parent = parent.offsetParent;
      x += parent.offsetLeft;
      y += parent.offsetTop;
    }
    
    // add some formatting to the div, if we haven't already
    if (!divFormatted) {
      globalDiv.style.backgroundColor = DIV_BG_COLOR;
      globalDiv.style.fontFamily = "Arial", "sans-serif";
      globalDiv.style.padding = "4px";
	 globalDiv.style.border = "1px solid black";
      globalDiv.style.fontSize = "90%";
  
      globalDiv.style.position = "absolute";
      globalDiv.style.left = x + "px";
      globalDiv.style.top = y + "px";
      globalDiv.style.visibility = "hidden";
      globalDiv.style.zIndex = 10000;
      
      divFormatted = true;
    }
  }
  
  return globalDiv;
}


/**
This is the function that should be returned by the XMLHTTP call. It will
format and display the lookup results.
*/
//Peter: aangepast; wij hebben maar 1 resultarray nodig (resultArray2 - derde param - weggehaald)

function showQueryDiv (queryString, resultArray1)
{
  var div = getDiv(divName);
  
  // remove any results that are already there
  while (div.childNodes.length > 0)
    div.removeChild(div.childNodes[0]);
  
  // add an entry for each of the results in the resultArray
  for (var i = 0; i < resultArray1.length; i++)
  {
    // each result will be contained within its own div
    var result = document.createElement("div");
    result.style.cursor = "pointer";
//    result.style.borderBottom = "1px solid #777777";
    result.style.padding = "3px 0px 3px 0px";
    _unhighlightResult(result);
    result.onmousedown = selectResult;
    result.onmouseover = highlightResult;
    result.onmouseout = unhighlightResult;

    var result1 = document.createElement("span");
    result1.className = "result1";
    result1.style.textAlign = "left";
    result1.style.fontWeight = "bold";
    result1.innerHTML = resultArray1[i];
    
//    var result2 = document.createElement("span");
  //  result2.className = "result2";
 //   result2.style.textAlign = "right";
  //  result2.style.paddingLeft = "20px";
  //  result2.innerHTML = resultArray2[i];
    
    result.appendChild(result1);
  //  result.appendChild(result2);
    div.appendChild(result);
  }
  
  // if this resultset isn't already in our cache, add it
  var isCached = cache[queryString];
  if (!isCached)
    addToCache(queryString, resultArray1);
  
  // display the div if we had at least one result
  showDiv(resultArray1.length > 0);
}


/**
This is called whenever the user clicks one of the lookup results.
It puts the value of the result in the queryField and hides the
lookup div.
*/
function selectResult()
{
  _selectResult(this);
}


/** This actually fills the field with the selected result and hides the div */
function _selectResult(item)
{
  var spans = item.getElementsByTagName("span");
  if (spans) {
    for (var i = 0; i < spans.length; i++) {
      if (spans[i].className == "result1") {
        queryField.value = spans[i].innerHTML;
        lastVal = val = escape(queryField.value);
        searching = false;
        mainLoop();
        queryField.focus();
        showDiv(false);
        return;
      }
    }
  }
}


/**
This is called when a user mouses over a lookup result
*/
function highlightResult()
{
  _highlightResult(this);
}

/** This actually highlights the selected result */
function _highlightResult(item)
{
  item.style.backgroundColor = DIV_HIGHLIGHT_COLOR;
}


/**
This is called when a user mouses away from a lookup result
*/
function unhighlightResult()
{
  _unhighlightResult(this);
}

/** This actually unhighlights the selected result */
function _unhighlightResult(item)
{
  item.style.backgroundColor = DIV_BG_COLOR;
}


/**
This either shows or hides the lookup div, depending on the value of
the "show" parameter.
*/
function showDiv (show)
{
  var div = getDiv(divName);
  if (show)
    div.style.visibility = "visible";
  else
    div.style.visibility = "hidden";

 // adjustiFrame();
}


/**
We originally used showDiv as the function that was called by the onBlur
event of the field, but it turns out that Firefox will pass an event as the first
parameter of the function, which would cause the div to always be visible.
So onBlur now calls hideDiv instead.
*/
function hideDiv ()
{
  showDiv(false);
}


/**
Use an "iFrame shim" to deal with problems where the lookup div shows up behind
selection list elements, if they're below the queryField. The problem and solution are
described at:

http://dotnetjunkies.com/WebLog/jking/archive/2003/07/21/488.aspx
http://dotnetjunkies.com/WebLog/jking/archive/2003/10/30/2975.aspx

//enige plek waar dit nodig zou zijn is in IE6, maar daar helpt het niet...
// en in FF geeft het stylesheet-warnings; dus uitgecommentariëerd

function adjustiFrame()
{

  if (!document.getElementById(ifName)) {
    var newNode = document.createElement("iFrame");
    newNode.setAttribute("id", ifName);
    newNode.setAttribute("src", "javascript:false;");
    newNode.setAttribute("scrolling", "no");
    newNode.setAttribute("frameborder", "0");
    document.body.appendChild(newNode);
  }
  
  iFrameDiv = document.getElementById(ifName);
  var div = getDiv(divName);
  
  try {
    iFrameDiv.style.position = "absolute";
    iFrameDiv.style.width = div.offsetWidth;
    iFrameDiv.style.height = div.offsetHeight;
    iFrameDiv.style.top = div.style.top;
    iFrameDiv.style.left = div.style.left;
    iFrameDiv.style.zIndex = div.style.zIndex - 1;
    iFrameDiv.style.visibility = div.style.visibility;
  
  } catch(e) {
  }
}

*/

/**
This actually sends the lookup request (as a URL with a query string) to a
server in the background. When a response comes back from the server, the
function attached to the onReadyStateChange event is fired off.
*/
function doRemoteQuery (queryString)
{
  searching = true;
  if(xmlHttp && xmlHttp.readyState != 0) {
    xmlHttp.abort()
  }
  
  xmlHttp=getHTTPObject();
  if(xmlHttp){
    xmlHttp.open("GET", lookupURL + queryString, true);
       
    // What do we do when the response comes back?
    xmlHttp.onreadystatechange = function() {
      if (xmlHttp.readyState == 4 && xmlHttp.responseText && searching) {
	   eval(xmlHttp.responseText)
        searching = false;
      }
    }
        
    xmlHttp.send(null);
  }
  
}


/**
This is the key handler function, for when a user presses the up arrow,
down arrow, tab key, or enter key from the input field.
*/
function keypressHandler (evt)
{

  // don't do anything if the div is hidden
  var div = getDiv(divName);
  if (div.style.visibility == "hidden")
    return true;
  
  // make sure we have a valid event variable
  if(!evt && window.event) {
    evt = window.event;
  }
  var key = evt.keyCode;
  
  // if this key isn't one of the ones we care about, just return
  var KEYUP = 38;
  var KEYDOWN = 40;
  var KEYENTER = 13;
  var KEYTAB = 9;
  
  if ((key != KEYUP) && (key != KEYDOWN) && (key != KEYENTER) && (key != KEYTAB))
    return true;
  
  // get the span that's currently selected, and perform an appropriate action
  var selNum = getSelectedSpanNum(div);
  var selSpan = setSelectedSpan(div, selNum);
  
  if ((key == KEYENTER) || (key == KEYTAB)) {
    if (selSpan)
      _selectResult(selSpan);
    evt.cancelBubble=true;
    return false;
  } else {
    if (key == KEYUP)
      selSpan = setSelectedSpan(div, selNum - 1);
    if (key == KEYDOWN)
      selSpan = setSelectedSpan(div, selNum + 1);
    if (selSpan)
      _highlightResult(selSpan);
  }
  
  showDiv(true);
  return true;
} 


/**
Get the number of the result that's currently selected/highlighted
(the first result is 0, the second is 1, etc.)
*/
function getSelectedSpanNum (div)
{
  var count = -1;
  var spans = div.getElementsByTagName("div");
  if (spans) {
    for (var i = 0; i < spans.length; i++) {
      count++;
      if (spans[i].style.backgroundColor != div.style.backgroundColor)
        return count;
    }
  }
  
  return -1;
}


/**
Select/highlight the result at the given position
*/
function setSelectedSpan (div, spanNum)
{
  var count = -1;
  var thisSpan;
  var spans = div.getElementsByTagName("div");
  if (spans) {
    for (var i = 0; i < spans.length; i++) {
      if (++count == spanNum) {
        _highlightResult(spans[i]);
        thisSpan = spans[i];
      } else {
        _unhighlightResult(spans[i]);
      }
    }
  }
  
  return thisSpan;
}


// Regelt Harmonica functionaliteiten

function harmonica(node) {

		this.node = node;
		this.node.Parent = this;
		this.node.style.visibility = 'visible';
		this.name = 'harmonica';
		this.triggers = CB.getElementsByClassName(this.node, 'trigger');
		this.collapsables = CB.getElementsByClassName(this.node, 'collapse');
		cnt = this.triggers.length;

		for (i = 0; i < cnt; i++) {
			this.triggers[i].Parent = this;
			this.triggers[i].collapse = this.collapsables[i];
			if (this.collapsables[i].className.indexOf('active') == -1) {
				this.collapsables[i].className += ' hideThisNode';
			} else {
				this.active = this.collapsables[i];
			}
			this.triggers[i].onclick = function(){
			 	this.Parent.toggle(this);
			}
		}
	
		this.triggers_single = CB.getElementsByClassName(this.node, 'trigger_single');
		this.collapsables_single = CB.getElementsByClassName(this.node, 'collapse_single');
		cnt = this.triggers_single.length;
		for (i = 0; i < cnt; i++) {
			this.triggers_single[i].Parent = this;
			this.triggers_single[i].collapse = this.collapsables_single[i];
			if (this.collapsables_single[i].className.indexOf('active') == -1) {
				this.collapsables_single[i].className += ' hideThisNode';
			} else {
				this.active = this.collapsables_single[i];
			}
			this.triggers_single[i].onclick = function(){
			 	this.Parent.toggleSingle(this);
			}
		}

}

harmonica.prototype.toggle = function(node) {
	if (node.collapse.className.indexOf('hideThisNode') != -1) {
		node.collapse.className = node.collapse.className.replace(/\s?hideThisNode/g, '');
		node.className += " active";
	} else {
		node.collapse.className += ' hideThisNode';
		node.className = node.className.replace(/\s?active/g, '');
	}
}

function toggle(node)
{

	if (node.collapse.className.indexOf('hideThisNode') != -1) {
		node.collapse.className = node.collapse.className.replace(/\s?hideThisNode/g, '');
		node.className += " active";
	} else {
		node.collapse.className += ' hideThisNode';
		node.className = node.className.replace(/\s?active/g, '');
	}
}

harmonica.prototype.toggleSingle = function(node) {
    cnt = this.triggers_single.length;
	for (i = 0; i < cnt; i++) {
		if (this.triggers_single[i] == node) {
		    if (node.collapse.className.indexOf('hideThisNode') != -1) {
		        node.collapse.className = node.collapse.className.replace(/\s?hideThisNode/g, '');
		        node.className += " active";
	        } else {
		        node.collapse.className += ' hideThisNode';
		        node.className = node.className.replace(/\s?active/g, '');
	        }
	        
		} else {
		    if (this.triggers_single[i].collapse.className.indexOf('hideThisNode') == -1) {
                this.triggers_single[i].collapse.className += ' hideThisNode';
            }
		    this.triggers_single[i].className = node.className.replace(/\s?active/g, '');
    	}
		
    }
}

function toggleSingle(node)
{
    cnt = this.triggers_single.length;
	for (i = 0; i < cnt; i++) {
		if (this.triggers_single[i] == node) {
		    if (node.collapse.className.indexOf('hideThisNode') != -1) {
		        node.collapse.className = node.collapse.className.replace(/\s?hideThisNode/g, '');
		        node.className += " active";
	        } else {
		        node.collapse.className += ' hideThisNode';
		        node.className = node.className.replace(/\s?active/g, '');
	        }
	        
		} else {
		    if (this.triggers_single[i].collapse.className.indexOf('hideThisNode') == -1) {
                this.triggers_single[i].collapse.className += ' hideThisNode';
            }
		    this.triggers_single[i].className = node.className.replace(/\s?active/g, '');
    	}
		
    }
}
/* Script lib voor het valideren van velden en de waarden daarin
- isValidDate
- isValidEmail
- isValidNumber	
- allowNumbers
- isValidPostalCode
*/


//=== Geeft de datumwaarde van het veld
function getDate( theField)
{

	var strCheck = theField.value;
	var strPattern = /([1-9]{1}|[0-3]{1}[0-9]{1})-([1-9]{1}|[0-1]{1}[0-9]{1})-(19|20)[0-9]{2}/;
	// date pattern d-m-yyyy, like 30-12-2001, 3-4-2001 or 03-04-2001

	var IsValid = ( strCheck.search( strPattern) != -1 );
	if( IsValid == false) return null;

	var DMYarray = strCheck.split( "-");

	var theDate = new Date( DMYarray[2], DMYarray[1] - 1, DMYarray[0] );

	var theYear = theDate.getFullYear();
	var theMonth = theDate.getMonth() + 1;
	var theDay = theDate.getDate();

	if ( isNaN(theYear)) return null;

	if ( DMYarray[2] != theYear ) return null;
	if ( DMYarray[1] != theMonth) return null;
	if ( DMYarray[0] != theDay ) return null;
	if ( theYear < 1900 || theYear > 2100) return null;

	return theDate;
}


//=== Controleert of een veld een geldige datum waarde bevat
function isValidDate( theField)
{
	var theDate = getDate(theField);

	if (theDate == null)	return false;

	return true;
}

//=== Controleert of een datum is ingevuld (indien verplicht) en of dit dan een geldige datum is
function isValidDateField( theField, isVerplicht)
{
	//Leeg veld?
	if (theField.value == "")
	{
		if (isVerplicht == true)
		{
			alert("U dient een datum in te vullen.");
			doFocus(theField);
			return false;
		}

		return true;
	}

	//Controleer datum formaat
	if (isValidDate(theField) ) return true;

	alert("Veld bevat onjuiste datum. Gebruik het formaat dd-mm-jjjj\nVoorbeeld: 24-10-2004");
	doFocus(theField);

	return false;
}

//=== Bepaalt of een input-element een waarde bevat
function isEmptyField( theField, strMsg)
{
	if (theField.value == "")
	{
		alert(strMsg);
		doFocus(theField);			
		return true;
	}
	return false;
}

//=== Bepaalt of een input-element checkbox een waarde bevat
function isEmptyCheckbox( theField, strMsg)
{
	var isEmptyFlag = true
	//dit is een lege waarde zoeken. Zodra 1 waarde gevuld is, wordt true true gegeven
	for(j=0;j<theField.length;++j)
	{
		if(theField[j].checked==true)
		{
			isEmptyFlag = false			
		}
	}
	if(isEmptyFlag == true )
	{
		alert(strMsg)
		return false;
	}
	else
	{
		//de checkbox is niet leeg
		return true;	
	}

}

//=== Leest de waarde(n) van een radiobutton of checkbox uit
//=== Meerdere waarden worden met een ; gescheiden.
function getCheckedValue( theField)
{
	var strReturn = "";
		
	// Checkbox met maar één keuze
	if ( typeof(theField.length) == "undefined")
	{
		if (theField.checked) strReturn = theField.value
			
		return strReturn;
	}
	
	// Checkbox met meerdere keuzes
	for ( var i = 0; i < theField.length; i++ )
	{
		if ( theField[i].checked)
			strReturn += ( strReturn == "" ? "" : "; ") + theField[i].value;
	}
	
	return strReturn;
}

//=== Bepaalt of een waarde een geldig e-mail adres kan zijn
function isValidEmail(strEmail)
{
	var strPattern = /^\w[-_a-z~.0-9]*@\w[-_a-z~.0-9]+\.[a-z]{2}[a-z]*$/i;	
	return ( strPattern.test(strEmail) );
}

//=== Controleert of een e-mail adres is ingevuld (indien verplicht) en of dit dan een geldige kan zijn
function isValidEmailField(theField, isVerplicht, strMsg)
{
	var strValue	= theField.value;

	//Leeg veld?
	if (strValue == "")
	{
		if (isVerplicht == true)
		{
			alert(strMsg);
			doFocus(theField);
			return false;
		}

		return true;
	}

	//Controleer e-mail adres
	if ( isValidEmail(strValue) ) return true;

	alert(strMsg);
	doFocus(theField);

	return false;
}

//=== Bepaalt de numerieke waarde uit een veld
function getNumber(theField)
{
	var strValue	= theField.value;
	var intNum	= parseInt(strValue);

	if (strValue == "")
		return "";
	if ( isNaN(intNum) || (strValue != intNum) )
		return NaN;
	else
		return intNum;

}

//=== Controleert of getal is ingevuld (indien verplicht) en of dit dan een geldig getal is
function isValidNumberField( theField, isVerplicht, strMsg)
{
	var intNum	= getNumber(theField);
	
	//=== Leeg veld?
	if (intNum == "")
	{
		if (isVerplicht == true)
		{
			alert(strMsg);
			doFocus(theField);
			return false;
		}

		return true;
	}

	//=== Geldig getal ingevuld?
	if ( isNaN(intNum) )
	{
		alert(strMsg);
		doFocus(theField);
		return false;
	}

	return true;
}

var commaUsed = false;
//=== Regelt dat alleen cijfers in een veld kunnen worden ingetypt.
//=== Use in onKeyPress eventhandler: return allowNumbers(event)
function allowNumbers(e) {
	
	var keyNum = (typeof(e.which) == "undefined" ? e.keyCode : e.which);
	var keyChar = String.fromCharCode(keyNum);
	var keyList = "0123456789,";

	//twee komma's achter elkaar is niet toegestaan
	// (nog beter zou zijn: slechts één komma toestaan, maar daar kijken we nog wel es naar)
   	if ( keyChar=="," && commaUsed) 
		return false;
	else if (keyChar==",")
		commaUsed = true	
	else
		commaUsed = false	
		
   	if ( keyNum == 0 || keyNum == 8 ) return true;      // Allow BS, DEL, TAB, arrows
	if ( keyList.indexOf( keyChar) < 0 ) return false;

	return true;
}

//=== Geeft aan of een postcode het formaat "1234 AB" heeft
function isValidPostalCode(strPC)
{
	return  typeof strPC=='string' ? /[1-9][0-9]{3} [A-Z]{2}/.test(strPC) && strPC.length==7 : false
}


//=== Focus op het input-element (indien mogelijk)
function doFocus(theField)
{
	if (theField.focus)
		theField.focus();
	else
		theField[0].focus();
}/**
This is a JavaScript library that will allow you to easily add some basic DHTML
drop-down datepicker functionality to your Notes forms. This script is not as
full-featured as others you may find on the Internet, but it's free, it's easy to
understand, and it's easy to change.

You'll also want to include a stylesheet that makes the datepicker elements
look nice. An example one can be found in the database that this script was
originally released with, at:

http://www.nsftools.com/tips/NotesTips.htm#datepicker

I've tested this lightly with Internet Explorer 6 and Mozilla Firefox. I have no idea
how compatible it is with other browsers.

version 1.5
December 4, 2004
Julian Robichaux -- http://www.nsftools.com
*/

var datePickerDivID = "datepicker";
var iFrameDivID = "datepickeriframe";

var dayArrayShort = new Array('Zo', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za');
var dayArrayMed = new Array('Zon', 'Maa', 'Din', 'Woe', 'Don', 'Vrij', 'Zat');
var dayArrayLong = new Array('Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag');
var monthArrayShort = new Array('Jan', 'Feb', 'Maa', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec');
var monthArrayMed = new Array('Jan', 'Feb', 'Maa', 'Apr', 'Mei', 'Juni', 'Juli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dec');
var monthArrayLong = new Array('Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December');
  
// these variables define the date formatting we're expecting and outputting.
// If you want to use a different format by default, change the defaultDateSeparator
// and defaultDateFormat variables either here or on your HTML page.
var defaultDateSeparator = "-";		// common values would be "/" or "."
var defaultDateFormat = "dmy"	// valid values are "mdy", "dmy", and "ymd"
var dateSeparator = defaultDateSeparator;
var dateFormat = defaultDateFormat;

//P.S. nieuw toegevoegd dd 11-05-09
var performFunction = ""

/**
This is the main function you'll call from the onClick event of a button.
Normally, you'll have something like this on your HTML page:

Start Date: <input name="StartDate"> 
<input type=button value="select" onclick="displayDatePicker('StartDate');">

That will cause the datepicker to be displayed beneath the StartDate field and
any date that is chosen will update the value of that field. If you'd rather have the
datepicker display beneath the button that was clicked, you can code the button
like this:

<input type=button value="select" onclick="displayDatePicker('StartDate', this);">

So, pretty much, the first argument (dateFieldName) is a string representing the
name of the field that will be modified if the user picks a date, and the second
argument (displayBelowThisObject) is optional and represents an actual node
on the HTML document that the datepicker should be displayed below.

In version 1.1 of this code, the dtFormat and dtSep variables were added, allowing
you to use a specific date format or date separator for a given call to this function.
Normally, you'll just want to set these defaults globally with the defaultDateSeparator
and defaultDateFormat variables, but it doesn't hurt anything to add them as optional
parameters here. An example of use is:

<input type=button value="select" onclick="displayDatePicker('StartDate', false, 'dmy', '.');">

This would display the datepicker beneath the StartDate field (because the 
displayBelowThisObject parameter was false), and update the StartDate field with
the chosen value of the datepicker using a date format of dd.mm.yyyy

P.S. TOEGEVOEGD dd 11/05/09:
vijfde parameter 'dtFunc'; dit is een aanroep naar een functie die uitgevoerd wordt zodra
de gekozen datum in het betreffende veld is gezet; als argument krijgt de functie de gekozen datum mee

*/
function displayDatePicker(dateFieldName, displayBelowThisObject, dtFormat, dtSep, dtFunc)
{
  var targetDateField = document.getElementsByName(dateFieldName).item(0);
  
  // if we weren't told what node to display the datepicker beneath, just display it
  // beneath the date field we're updating
  if (!displayBelowThisObject)
    displayBelowThisObject = targetDateField;
  
  // if a date separator character was given, update the dateSeparator variable
  if (dtSep)
    dateSeparator = dtSep;
  else
    dateSeparator = defaultDateSeparator;
  
  // if a date format was given, update the dateFormat variable
  if (dtFormat)
    dateFormat = dtFormat;
  else
    dateFormat = defaultDateFormat;
  
  //P.S. toevoeging dd 11/05/09
  if (dtFunc) performFunction = dtFunc
  
  var x = displayBelowThisObject.offsetLeft;
  var y = displayBelowThisObject.offsetTop + displayBelowThisObject.offsetHeight;
  
  // deal with elements inside tables and such
  var parent = displayBelowThisObject;
  while (parent.offsetParent) {
    parent = parent.offsetParent;
    x += parent.offsetLeft;
    y += parent.offsetTop;
  }
  drawDatePicker(targetDateField, x, y);
}


/**
Draw the datepicker object (which is just a table with calendar elements) at the
specified x and y coordinates, using the targetDateField object as the input tag
that will ultimately be populated with a date.

This function will normally be called by the displayDatePicker function.
*/
function drawDatePicker(targetDateField, x, y)
{
  var dt = getFieldDate(targetDateField.value);
  
  // the datepicker table will be drawn inside of a <div> with an ID defined by the
  // global datePickerDivID variable. If such a div doesn't yet exist on the HTML
  // document we're working with, add one.
  if (!document.getElementById(datePickerDivID)) {
    // don't use innerHTML to update the body, because it can cause global variables
    // that are currently pointing to objects on the page to have bad references
    //document.body.innerHTML += "<div id='" + datePickerDivID + "' class='dpDiv'></div>";
    var newNode = document.createElement("div");
    newNode.setAttribute("id", datePickerDivID);
    newNode.setAttribute("class", "dpDiv");
    newNode.setAttribute("style", "visibility: hidden;");
    document.body.appendChild(newNode);
  }
  
  // move the datepicker div to the proper x,y coordinate and toggle the visiblity
  var pickerDiv = document.getElementById(datePickerDivID);
  pickerDiv.style.position = "absolute";
  pickerDiv.style.left = x + "px";
  pickerDiv.style.top = y + "px";
  pickerDiv.style.visibility = (pickerDiv.style.visibility == "visible" ? "hidden" : "visible");
  pickerDiv.style.display = (pickerDiv.style.display == "block" ? "none" : "block");
  pickerDiv.style.zIndex = 10000;
  
  // draw the datepicker table
  refreshDatePicker(targetDateField.name, dt.getFullYear(), dt.getMonth(), dt.getDate());
}


/**
This is the function that actually draws the datepicker calendar.
*/
function refreshDatePicker(dateFieldName, year, month, day)
{
  // if no arguments are passed, use today's date; otherwise, month and year
  // are required (if a day is passed, it will be highlighted later)
  var thisDay = new Date();
  
  if ((month >= 0) && (year > 0)) {
    thisDay = new Date(year, month, 1);
  } else {
    day = thisDay.getDate();
    thisDay.setDate(1);
  }
  
  // the calendar will be drawn as a table
  // you can customize the table elements with a global CSS style sheet,
  // or by hardcoding style and formatting elements below
  var crlf = "\r\n";
  var TABLE = "<table cols=7 class='dpTable'>" + crlf;
  var xTABLE = "</table>" + crlf;
  var TR = "<tr class='dpTR'>";
  var TR_title = "<tr class='dpTitleTR'>";
  var TR_days = "<tr class='dpDayTR'>";
  var TR_todaybutton = "<tr class='dpTodayButtonTR'>";
  var xTR = "</tr>" + crlf;
  var TD = "<td class='dpTD' onMouseOut='this.className=\"dpTD\";' onMouseOver='this.className=\"dpTDHover\";' ";	// leave this tag open, because we'll be adding an onClick event
  var TD_title = "<td colspan=5 class='dpTitleTD'>";
  var TD_buttons = "<td class='dpButtonTD'>";
  var TD_todaybutton = "<td colspan=7 class='dpTodayButtonTD'>";
  var TD_days = "<td class='dpDayTD'>";
  var TD_selected = "<td class='dpDayHighlightTD' onMouseOut='this.className=\"dpDayHighlightTD\";' onMouseOver='this.className=\"dpTDHover\";' ";	// leave this tag open, because we'll be adding an onClick event
  var xTD = "</td>" + crlf;
  var DIV_title = "<div class='dpTitleText'>";
  var DIV_selected = "<div class='dpDayHighlight'>";
  var xDIV = "</div>";
  
  // start generating the code for the calendar table
  var html = TABLE;
  
  // this is the title bar, which displays the month and the buttons to
  // go back to a previous month or forward to the next month
  html += TR_title;
  
  html += TD_buttons + getButtonCode(dateFieldName, thisDay, -1, "&lt;") + xTD;
  html += TD_title + DIV_title + monthArrayLong[thisDay.getMonth()] + " " + thisDay.getFullYear() + xDIV + xTD;
  html += TD_buttons + getButtonCode(dateFieldName, thisDay, 1, "&gt;") + xTD;
  html += xTR;
  
  // this is the row that indicates which day of the week we're on
  html += TR_days;
  for(i = 0; i < dayArrayShort.length; i++)
    html += TD_days + dayArrayShort[i] + xTD;
  html += xTR;
  
  // now we'll start populating the table with days of the month
  html += TR;
  
  // first, the leading blanks
  for (i = 0; i < thisDay.getDay(); i++)
    html += TD + "&nbsp;" + xTD;
  
  // now, the days of the month
  do {
    dayNum = thisDay.getDate();
    TD_onclick = " onclick=\"updateDateField('" + dateFieldName + "', '" + getDateString(thisDay) + "');\">";
    
    if (dayNum == day)
      html += TD_selected + TD_onclick + DIV_selected + dayNum + xDIV + xTD;
    else
      html += TD + TD_onclick + dayNum + xTD;
    
    // if this is a Saturday, start a new row
    if (thisDay.getDay() == 6)
      html += xTR + TR;
    
    // increment the day
    thisDay.setDate(thisDay.getDate() + 1);
  } while (thisDay.getDate() > 1)
  
  // fill in any trailing blanks
  if (thisDay.getDay() > 0) {
    for (i = 6; i > thisDay.getDay(); i--)
      html += TD + "&nbsp;" + xTD;
  }
  html += xTR;
  
  // add a button to allow the user to easily return to today, or close the calendar
  var today = new Date();
  var todayString = "Today is " + dayArrayMed[today.getDay()] + ", " + monthArrayMed[today.getMonth()] + " " + today.getDate();
  html += TR_todaybutton + TD_todaybutton;
  html += "<button class='dpTodayButton' onClick='refreshDatePicker(\"" + dateFieldName + "\");'>deze maand</button> ";
  html += "<button class='dpTodayButton' onClick='updateDateField(\"" + dateFieldName + "\");'>sluiten</button>";
  html += xTD + xTR;
  
  // and finally, close the table
  html += xTABLE;
  
  document.getElementById(datePickerDivID).innerHTML = html;
  // add an "iFrame shim" to allow the datepicker to display above selection lists
  adjustiFrame();
}


/**
Convenience function for writing the code for the buttons that bring us back or forward
a month.
*/
function getButtonCode(dateFieldName, dateVal, adjust, label)
{
  var today = new Date();
  var newMonth = (dateVal.getMonth() + adjust) % 12;
  var newYear = dateVal.getFullYear() + parseInt((dateVal.getMonth() + adjust) / 12);
  if (newMonth < 0) {
    newMonth += 12;
    newYear += -1;
     }
  MaxJaar = today.getFullYear() + 5
  if (newYear <= MaxJaar ) {
   return "<button class='dpButton' onClick='refreshDatePicker(\"" + dateFieldName + "\", " + newYear + ", " + newMonth + ");'>" + label + "</button>";
  }else{
   return "<button class='dpButton'></button>";
  }
}


/**
Convert a JavaScript Date object to a string, based on the dateFormat and dateSeparator
variables at the beginning of this script library.
*/
function getDateString(dateVal)
{
  var dayString = "00" + dateVal.getDate();
  var monthString = "00" + (dateVal.getMonth()+1);
  dayString = dayString.substring(dayString.length - 2);
  monthString = monthString.substring(monthString.length - 2);
  
  switch (dateFormat) {
    case "dmy" :
      return dayString + dateSeparator + monthString + dateSeparator + dateVal.getFullYear();
    case "ymd" :
      return dateVal.getFullYear() + dateSeparator + monthString + dateSeparator + dayString;
    case "mdy" :
    default :
      return monthString + dateSeparator + dayString + dateSeparator + dateVal.getFullYear();
  }
}


/**
Convert a string to a JavaScript Date object.
*/
function getFieldDate(dateString)
{
  var dateVal;
  var dArray;
  var d, m, y;
  
  try {
    dArray = splitDateString(dateString);
    if (dArray) {
      switch (dateFormat) {
        case "dmy" :
          d = parseInt(dArray[0], 10);
          m = parseInt(dArray[1], 10) - 1;
          y = parseInt(dArray[2], 10);
          break;
        case "ymd" :
          d = parseInt(dArray[2], 10);
          m = parseInt(dArray[1], 10) - 1;
          y = parseInt(dArray[0], 10);
          break;
        case "mdy" :
        default :
          d = parseInt(dArray[1], 10);
          m = parseInt(dArray[0], 10) - 1;
          y = parseInt(dArray[2], 10);
          break;
      }
      dateVal = new Date(y, m, d);
    } else if (dateString) {
      dateVal = new Date(dateString);
    } else {
      dateVal = new Date();
    }
  } catch(e) {
    dateVal = new Date();
  }
  
  return dateVal;
}


/**
Try to split a date string into an array of elements, using common date separators.
If the date is split, an array is returned; otherwise, we just return false.
*/
function splitDateString(dateString)
{
  var dArray;
  if (dateString.indexOf("/") >= 0)
    dArray = dateString.split("/");
  else if (dateString.indexOf(".") >= 0)
    dArray = dateString.split(".");
  else if (dateString.indexOf("-") >= 0)
    dArray = dateString.split("-");
  else if (dateString.indexOf("\\") >= 0)
    dArray = dateString.split("\\");
  else
    dArray = false;
  
  return dArray;
}


function updateDateField(dateFieldName, dateString)
{
  var targetDateField = document.getElementsByName(dateFieldName).item(0);
  if (dateString)
    targetDateField.value = dateString;
  
  var pickerDiv = document.getElementById(datePickerDivID);
  pickerDiv.style.visibility = "hidden";
  pickerDiv.style.display = "none";
  
  adjustiFrame();
  targetDateField.focus();

  //P.S. toegevoegd dd 11-05-09     
  if (performFunction != "") 
  	eval( performFunction.replace("#VALUE#", "'" + targetDateField.value + "'" ) )
    
}


/**
Use an "iFrame shim" to deal with problems where the datepicker shows up behind
selection list elements, if they're below the datepicker. The problem and solution are
described at:

http://dotnetjunkies.com/WebLog/jking/archive/2003/07/21/488.aspx
http://dotnetjunkies.com/WebLog/jking/archive/2003/10/30/2975.aspx
*/
function adjustiFrame(pickerDiv, iFrameDiv)
{
  // put a try/catch block around the whole thing, because Opera doesn't like
  // something about this whole routine
  try {
    if (!document.getElementById(iFrameDivID)) {
      // don't use innerHTML to update the body, because it can cause global variables
      // that are currently pointing to objects on the page to have bad references
      //document.body.innerHTML += "<iframe id='" + iFrameDivID + "' src='javascript:false;' scrolling='no' frameborder='0'>";
      var newNode = document.createElement("iFrame");
      newNode.setAttribute("id", iFrameDivID);
      newNode.setAttribute("src", "javascript:false;");
      newNode.setAttribute("scrolling", "no");
      newNode.setAttribute("frameborder", "0");
      document.body.appendChild(newNode);
    }
    
    if (!pickerDiv)
      pickerDiv = document.getElementById(datePickerDivID);
    if (!iFrameDiv)
      iFrameDiv = document.getElementById(iFrameDivID);
    
    try {
      iFrameDiv.style.position = "absolute";
      iFrameDiv.style.width = pickerDiv.offsetWidth;
      iFrameDiv.style.height = pickerDiv.offsetHeight;
      iFrameDiv.style.top = pickerDiv.style.top;
      iFrameDiv.style.left = pickerDiv.style.left;
      iFrameDiv.style.zIndex = pickerDiv.style.zIndex - 1;
      iFrameDiv.style.visibility = pickerDiv.style.visibility;
      iFrameDiv.style.display = pickerDiv.style.display;
    } catch(e) {
    }
  
  } catch (ee) {
  }
  
}

function closeDatePicker() {

	var dp = document.getElementById("datepicker")

	if (dp) {
		dp.style.display = "none";
		dp.style.visibility = "hidden";
		adjustiFrame();
	}	
}

// constants to define the title of the alert and button text.
var ALERT_TITLE = "Melding";
var ALERT_BUTTON_TEXT = "Ok";
var CONFIRM_OK_TEXT = "Ok"
var CONFIRM_CANCEL_TEXT = "Annuleren"

var globaltxt = "";			//bij meerdere alerts achter elkaar, tekst samenvoegen in globaltxt

// over-ride the alert method only if this a newer browser.
// Older browser will see standard alerts
if(document.getElementById) {
	// niet voor IE6 gebruiken; deze toont 'normale' alertbox
	if (! (document.all && navigator.appVersion.lastIndexOf('MSIE 6.0') != -1) )  {

		window.alert = function(txt) {
			createCustomAlert(txt, false);	//alleen OK button
		}
	
	//	window.confirm = function(txt) {
	//		createCustomAlert(txt, true)		//OK en CANCEL button
	//	}
	
	}	
}

function createCustomAlert(txt, isConfirm) {

	if (globaltxt != "") globaltxt += "<br/><br/>"
	globaltxt += txt

	// shortcut reference to the document object
	d = document;

	// if the modalContainer object already exists in the DOM, bail out.
	// PS: uitgezet, want we willen juist wel meerdere alerts achter elkaar kunnen tonen
//	if(d.getElementById("modalContainer")) return;

	// create the modalContainer div as a child of the BODY element
	mObj = d.getElementsByTagName("body")[0].appendChild(d.createElement("div"));
	mObj.id = "modalContainer";
	 // make sure its as tall as it needs to be to overlay all the content on the page
	mObj.style.height = d.documentElement.scrollHeight + "px";

	// create the DIV that will be the alert 
	alertObj = mObj.appendChild(d.createElement("div"));
	alertObj.id = "alertBox";
	
	// MSIE doesnt treat position:fixed correctly, so this compensates for positioning the alert
	// --> IE7 doet het weer wel goed, dus hoeft niet meer, IE6 laten we standaard alert tonen 
	//	if(d.all && !window.opera) 
	//		alertObj.style.top = document.documentElement.scrollTop + "px";
	
	// center the alert box
	alertObj.style.left = (d.documentElement.scrollWidth - alertObj.offsetWidth)/2 + "px";

	// create an H1 element as the title bar
	h1 = alertObj.appendChild(d.createElement("h1"));
	h1.appendChild(d.createTextNode(ALERT_TITLE));

	// create a paragraph element to contain the txt argument
	msg = alertObj.appendChild(d.createElement("p"));
//	msg.appendChild(d.createTextNode(txt.replace(/\n/g, "<br>" ) ));
	msg.innerHTML = globaltxt.replace(/\n/g, "<br />" ) ;

	// create an anchor element to use as the confirmation button.
	// aangepast; kan naast alert ook een confirm box zijn; in dat geval OK en CANCEL button
	if (isConfirm) {
	
		btn = alertObj.appendChild(d.createElement("a")	)	
		btn.id = "closeBtn"
		btn.appendChild(d.createTextNode(CONFIRM_OK_TEXT));
		btn.href = "#";
		btn.onclick = function() { removeCustomAlert(); return true; }
		
		btn2 = alertObj.appendChild(d.createElement("a"))
		btn2.id = "closeBtn"
		btn2.appendChild(d.createTextNode	(CONFIRM_CANCEL_TEXT));
		btn2.href = "#"	
		btn2.onclick = function() { removeCustomAlert(); return false  }
		
	} else {
		
		btn = alertObj.appendChild(d.createElement("a"));
		btn.id = "closeBtn";
		btn.appendChild(d.createTextNode(ALERT_BUTTON_TEXT));
		btn.href = "#";
		// set up the onclick event to remove the alert when the anchor is clicked
		btn.onclick = function() { removeCustomAlert(); return false; }

	}

	//zet focus op 'OK' button
	btn.focus()

}

// removes the custom alert from the DOM
function removeCustomAlert() {
	document.getElementsByTagName("body")[0].removeChild(document.getElementById("modalContainer"));
	delete mObj;
	//als meerdere alert-objecten achter elkaar, dan met één klik allemaal weghalen
	globaltxt = "";
	if (document.getElementById("modalContainer")) removeCustomAlert();
}




/* jsmin.js - 2006-08-31
Author: Franck Marcia
This work is an adaptation of jsminc.c published by Douglas Crockford.
Permission is hereby granted to use the Javascript version under the same
conditions as the jsmin.c on which it is based.

jsmin.c
2006-05-04

Copyright (c) 2002 Douglas Crockford  (www.crockford.com)

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

The Software shall be used for Good, not Evil.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Update:
	add level:
		1: minimal, keep linefeeds if single
		2: normal, the standard algorithm
		3: agressive, remove any linefeed and doesn't take care of potential
		   missing semicolons (can be regressive)
	store stats
		jsmin.oldSize
		jsmin.newSize
*/


String.prototype.has = function(c) {
	return this.indexOf(c) > -1;
};

function jsmin(comment, input, level) {

	if (input === undefined) {
		input = comment;
		comment = '';
		level = 2;
	} else if (level === undefined || level < 1 || level > 3) {
		level = 2;
	}

	if (comment.length > 0) {
		comment += '\n';
	}

	var a = '',
		b = '',
		EOF = -1,
		LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
		DIGITS = '0123456789',
		ALNUM = LETTERS + DIGITS + '_$\\',
		theLookahead = EOF;


	/* isAlphanum -- return true if the character is a letter, digit, underscore,
			dollar sign, or non-ASCII character.
	*/

	function isAlphanum(c) {
		return c != EOF && (ALNUM.has(c) || c.charCodeAt(0) > 126);
	}


	/* get -- return the next character. Watch out for lookahead. If the
			character is a control character, translate it to a space or
			linefeed.
	*/

	function get() {

		var c = theLookahead;
		if (get.i == get.l) {
			return EOF;
		}
		theLookahead = EOF;
		if (c == EOF) {
			c = input.charAt(get.i);
			++get.i;
		}
		if (c >= ' ' || c == '\n') {
			return c;
		}
		if (c == '\r') {
			return '\n';
		}
		return ' ';
	}

	get.i = 0;
	get.l = input.length;


	/* peek -- get the next character without getting it.
	*/

	function peek() {
		theLookahead = get();
		return theLookahead;
	}


	/* next -- get the next character, excluding comments. peek() is used to see
			if a '/' is followed by a '/' or '*'.
	*/

	function next() {

		var c = get();
		if (c == '/') {
			switch (peek()) {
			case '/':
				for (;;) {
					c = get();
					if (c <= '\n') {
						return c;
					}
				}
				break;
			case '*':
				get();
				for (;;) {
					switch (get()) {
					case '*':
						if (peek() == '/') {
							get();
							return ' ';
						}
						break;
					case EOF:
						throw 'Error: Unterminated comment.';
					}
				}
				break;
			default:
				return c;
			}
		}
		return c;
	}


	/* action -- do something! What you do is determined by the argument:
			1   Output A. Copy B to A. Get the next B.
			2   Copy B to A. Get the next B. (Delete A).
			3   Get the next B. (Delete B).
	   action treats a string as a single character. Wow!
	   action recognizes a regular expression if it is preceded by ( or , or =.
	*/

	function action(d) {

		var r = [];

		if (d == 1) {
			r.push(a);
		}

		if (d < 3) {
			a = b;
			if (a == '\'' || a == '"') {
				for (;;) {
					r.push(a);
					a = get();
					if (a == b) {
						break;
					}
					if (a <= '\n') {
						throw 'Error: unterminated string literal: ' + a;
					}
					if (a == '\\') {
						r.push(a);
						a = get();
					}
				}
			}
		}

		b = next();

		if (b == '/' && '(,=:[!&|'.has(a)) {
			r.push(a);
			r.push(b);
			for (;;) {
				a = get();
				if (a == '/') {
					break;
				} else if (a =='\\') {
					r.push(a);
					a = get();
				} else if (a <= '\n') {
					throw 'Error: unterminated Regular Expression literal';
				}
				r.push(a);
			}
			b = next();
		}

		return r.join('');
	}


	/* m -- Copy the input to the output, deleting the characters which are
			insignificant to JavaScript. Comments will be removed. Tabs will be
			replaced with spaces. Carriage returns will be replaced with
			linefeeds.
			Most spaces and linefeeds will be removed.
	*/

	function m() {

		var r = [];
		a = '\n';

		r.push(action(3));

		while (a != EOF) {
			switch (a) {
			case ' ':
				if (isAlphanum(b)) {
					r.push(action(1));
				} else {
					r.push(action(2));
				}
				break;
			case '\n':
				switch (b) {
				case '{':
				case '[':
				case '(':
				case '+':
				case '-':
					r.push(action(1));
					break;
				case ' ':
					r.push(action(3));
					break;
				default:
					if (isAlphanum(b)) {
						r.push(action(1));
					} else {
						if (level == 1 && b != '\n') {
							r.push(action(1));
						} else {
							r.push(action(2));
						}
					}
				}
				break;
			default:
				switch (b) {
				case ' ':
					if (isAlphanum(a)) {
						r.push(action(1));
						break;
					}
					r.push(action(3));
					break;
				case '\n':
					if (level == 1 && a != '\n') {
						r.push(action(1));
					} else {
						switch (a) {
						case '}':
						case ']':
						case ')':
						case '+':
						case '-':
						case '"':
						case '\'':
							if (level == 3) {
								r.push(action(3));
							} else {
								r.push(action(1));
							}
							break;
						default:
							if (isAlphanum(a)) {
								r.push(action(1));
							} else {
								r.push(action(3));
							}
						}
					}
					break;
				default:
					r.push(action(1));
					break;
				}
			}
		}

		return r.join('');
	}

	jsmin.oldSize = input.length;
	ret = m(input);
	jsmin.newSize = ret.length;

	return comment + ret;

}
function wizard(node) {

	this.node = node;
	this.node.Parent = this;
	this.node.style.visibility = 'visible';
	
	this.tabs_container = CB.getElementsByClassName(this.node, 'wizard_tabbed_content');
	this.tabs = CB.getElementsByClassName(this.node, 'wizard_tab');
	this.contents = CB.getElementsByClassName(this.node, 'wizard_content');
	this.prev_triggers = CB.getElementsByClassName(this.node, 'wizard_prev');
	this.next_triggers = CB.getElementsByClassName(this.node, 'wizard_next');
	
	//first handle tab visibility
	this.active = this.tabs[0];
	//check for active tab
	for (i = 0; i < this.tabs.length; i++) {

		this.tabs[i].Parent = this;
		if (this.tabs[i].className.lastIndexOf('activeTab') != -1) {
			this.active.className = this.active.className.replace(/\s?activeTab/g,"");
		//	this.active.className += ' hideThisNode';
			this.active = this.tabs[i];
			this.active.className += ' activeTab';
			this.tabs[i].className += ' activeTab';
		} else {
			this.contents[i].className += ' hideThisNode';
		}
		this.active.className = this.active.className.replace(/\s?hideThisNode/g,"");
	}
	//now set the triggers to handle visibility
	for (i = 0; i < this.prev_triggers.length; i++) {
		this.prev_triggers[i].Parent = this;
	//	this.prev_triggers[i].onclick = this.switchTabPrev;
		this.prev_triggers[i].onclick = switchTabPrev;
	}
	for (i = 0; i < this.next_triggers.length; i++) {
		this.next_triggers[i].Parent = this;
	//	this.next_triggers[i].onclick = this.switchTabNext;
		this.next_triggers[i].onclick = switchTabNext;
	}

}

function switchTabPrev() {

	//LET OP: e.e.a. aangepast t.o.v. originele code - zie wizard.prototype.switchtabprev voor original
	for (t = 0; t < this.Parent.tabs.length; t++) {
		if (this == this.Parent.prev_triggers[t]) {

			this.Parent.tabs[t+1].className = this.Parent.tabs[t+1].className.replace(/\s?activeTab/g,"");
			this.Parent.tabs[t+1].className += " neighbourActive"
			
			if (this.Parent.tabs[t+2] != null && this.Parent.tabs[t+2] != "undefined") {
				this.Parent.tabs[t+2].className = this.Parent.tabs[t+2].className.replace(/\s?activeTab/g,"");
				this.Parent.tabs[t+2].className = this.Parent.tabs[t+2].className.replace(/\s?neighbourActive/g,"");
			}
			
			this.Parent.tabs[t].className += " activeTab";

			this.Parent.contents[t+1].className = this.Parent.contents[t+1].className.replace(/\s?activeTab/g,"");
			this.Parent.contents[t+1].className +=  " hideThisNode";
			this.Parent.contents[t].className = this.Parent.contents[t].className.replace(/\s?hideThisNode/g,"");
			
			this.Parent.contents[t].className += " activeTab";
			if (t>0) 	this.Parent.tabs[t].className += " neighbourActive"
		
			this.Parent.tabs_container[0].className = this.Parent.tabs_container[0].className.replace(/\s?lastTabActive/g,"");
		
		}
	}
}


/*
wizard.prototype.switchTabPrev = function() {
	for (t = 0; t < this.Parent.tabs.length; t++) {
		if (this == this.Parent.prev_triggers[t]) {
			this.Parent.tabs[t+1].className = this.Parent.tabs[t+1].className.replace(/\s?activeTab/g,"");
			this.Parent.tabs[t].className += " activeTab";

			this.Parent.contents[t+1].className = this.Parent.contents[t+1].className.replace(/\s?activeTab/g,"");
			this.Parent.contents[t+1].className +=  " hideThisNode";
			this.Parent.contents[t].className = this.Parent.contents[t].className.replace(/\s?hideThisNode/g,"");
			this.Parent.contents[t].className += " activeTab";
		
			this.Parent.tabs[t+2].className = this.Parent.tabs[t+2].className.replace(/\s?neighbourActive/g,"");
		}
	}
	//  No necesito ni lastTabActive ni neighbourActive, ya q solo retrocedo.
}
*/

function switchTabNext() {

	for (t = 0; t < this.Parent.tabs.length; t++) {	

		//valideer evt verplichte velden bij switchen van tab
		// een veld is verplicht als de attribute "verplicht=<veldnaam>" aan het input element is toegevoegd
		// <veldnaam> wordt dan getoond in de alert
		if (this == this.Parent.next_triggers[t]) {	
			if (!(validateElementById( this.Parent.contents[t].id ) ))
				return; 
		}
		
		//als op opslaan knop voor CV of Vacature is gedrukt dan ook save-actie uitvoeren
		if (this.id=="submitCV" && t==2) submitCV()
		if (this.id=="submitVacature" && t==2) submitVacature()		
		
		if (this == this.Parent.next_triggers[t]) {

			this.Parent.tabs[t].className = this.Parent.tabs[t].className.replace(/\s?activeTab/g,"");
			this.Parent.tabs[t+1].className += " activeTab";
			this.Parent.contents[t].className = this.Parent.contents[t].className.replace(/\s?activeTab/g,"");
			this.Parent.contents[t].className +=  " hideThisNode";
			this.Parent.contents[t+1].className = this.Parent.contents[t+1].className.replace(/\s?hideThisNode/g,"");
			this.Parent.contents[t+1].className += " activeTab";
		
			this.Parent.tabs[t].className = this.Parent.tabs[t].className.replace(/\s?neighbourActive/g,"");
			thisNeighbour = this.Parent.tabs[t+2];
			
		}
	}
	//  le saco al padre el lastTabActive y despues si corresponde se lo vuelvo a agregar.
	// (dat u het maar even weet)
	this.Parent.tabs_container[0].className = this.Parent.tabs_container[0].className.replace(/\s?lastTabActive/g,"");
	
	//this.className += " activeTab";
	// neighbour can be null, if the selected tab is the last one.
	if (thisNeighbour != null) {
		thisNeighbour.className += " neighbourActive";
    } else {
		this.Parent.tabs_container[0].className += " lastTabActive";

	}

}

/*
wizard.prototype.switchTabNext = function() {

	for (t = 0; t < this.Parent.tabs.length; t++) {
		if (this == this.Parent.next_triggers[t]) {
			this.Parent.tabs[t].className = this.Parent.tabs[t].className.replace(/\s?activeTab/g,"");
			this.Parent.tabs[t+1].className += " activeTab";
			this.Parent.contents[t].className = this.Parent.contents[t].className.replace(/\s?activeTab/g,"");
			this.Parent.contents[t].className +=  " hideThisNode";
			this.Parent.contents[t+1].className = this.Parent.contents[t+1].className.replace(/\s?hideThisNode/g,"");
			this.Parent.contents[t+1].className += " activeTab";
		
			this.Parent.tabs[t].className = this.Parent.tabs[t].className.replace(/\s?neighbourActive/g,"");
			thisNeighbour = this.Parent.tabs[t+2];
			
		}
	}
	//  le saco al padre el lastTabActive y despues si corresponde se lo vuelvo a agregar.
	this.Parent.tabs_container[0].className = this.Parent.tabs_container[0].className.replace(/\s?lastTabActive/g,"");
	
	//this.className += " activeTab";
	// neighbour can be null, if the selected tab is the last one.
	if (thisNeighbour != null) {
		thisNeighbour.className += " neighbourActive";
    } else {
		this.Parent.tabs_container[0].className += " lastTabActive";
	}

}
*/

