var ObjectArray = new Array();//string-representatie van object-array, om op te slaan in cookie (of meegeven in querystring )//formaat: {<labelnaam1>|<properties1>:<waardeprop1>,<property2>:<waardeprop2>,...~<labelnaam2>|...var strObjectArray = "";	//lijst met alle aangemaakte HTTP objecten van de paginavar HTTPArray = new Array();//global vasr 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()function deleteHTTPArray() {	delete HTTPArray} //nieuw HTTP object aanmaken. Hier wordt eerst in IE een controle uitgevoerd welke verzie van het XML HTTP object aanwezig is.g_XMLHttpRequest_ActiveX = null	function getHTTPObject(){	var objHTTP = null;		if (window.XMLHttpRequest)	{ //IE7 with native XMLHTTP and FF		try		{			objHTTP = new XMLHttpRequest();		}		catch(e){}	}	else if(window.ActiveXObject)	{ //IE7 without native XMLHTTP, IE6 and below		if(g_XMLHttpRequest_ActiveX != null && g_XMLHttpRequest_ActiveX != "undefined")		{			objHTTP = new ActiveXObject(g_XMLHttpRequest_ActiveX);		}		else 		{			var xmlhttp = new Array( 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.3.0');			for( var i = 0; i < xmlhttp.length; i++)			{				try				{					objHTTP = new ActiveXObject(xmlhttp[i]);					if(objHTTP != null)					{						g_XMLHttpRequest_ActiveX = xmlhttp[i];						break;					}				} catch(e){}			}		}	}	return objHTTP;}//maak ObjectArray aan de hand van tekst-string (als objecten gestringifyed zijn, bijv. omdat ze uit// een cookie zijn gehaald of in querystring zijn meegegeven)//tekst = stringfunction createObjects( tekst ) {		if (tekst == "" || tekst == null) return;	strObjectArray = tekst 					//strObjectArray vullen	var listTekst = tekst.split("~")			//object array vullen	var tempArray = new Array();					for (x=0; x < listTekst.length; x++) {		sep = listTekst[x].indexOf("|");		label = listTekst[x].substring(0, sep);		if (label=="") break;		addComponent( JSON.parse( listTekst[x].substring(++sep, listTekst[x].length)), label, true);	}}//nieuw component ("blokje") aan de array toe voegen; evt ook in cookie zetten//Obj = object//label = naam/label van het object//onLoad = (boolean) als true, dan is deze functie vanaf onLoad event aangeroepen (dan moet addCookie NIET aangeroepen worden)function addComponent( Obj, label, onLoad) {	toCookie = onLoad==null || onLoad=="undefined"? false : onLoad	//als item met dit label al bestaat, dan deze vervangen door huidige	// (we willen geen dubbele labels in lijst)	if (getComponent(label) != null && getComponent(label) != "undefined") 		 removeComponent(label)	 	ObjectArray[label] = Obj;	ObjectArray.length++;		//als remember is true dan \u00F3\u00F3k strObjectArray bijwerken met tekstnotatie van nieuw object	// en dit in cookie zetten	if (Obj.remember) {		strObjectArray += label + "|" + JSON.stringify(Obj) + "~"  ;						//aan cookie toevoegen		if (!onLoad) addCookie( "NMT-website objecten", strObjectArray )	} 	}//geef \u00E9\u00E9n object uit de array terug;  = label//label = keyfunction getComponent (label) {	return ObjectArray[label];}//verwijder \u00E9\u00E9n object uit de array; key = labelfunction removeComponent (label) {	showComponent( label, false) 				//tekst van scherm halen	delete ObjectArray[label]; 				//object uit array halen	ObjectArray.length--;					//lengte-property aanpassen	strObjectArray = "";					//strObjectArray nieuw aanmaken en cookie opnieuw vullen	deleteCookie("NMT-website objecten");	for (o in ObjectArray) {						Obj = getComponent(o);		if (Obj) {			if (Obj.remember) {				//alleen objecten die onthouden moeten worden!				strObjectArray += Obj.label + "|" + JSON.stringify(Obj) + "~" ;				addCookie("NMT-website objecten", strObjectArray)			}		}		}}//label = schrijf de inhoud van property "HTML" van object naar scherm; plek is 'label', (op pagina moet een DIV staan met ID = 'label'; anders wordt er niks getoond... duh...)//display = true = vul innerHTML van DIV met inhoud van object.HTML; false = maak innerHTML van DIV leegfunction showComponent( label, display ) {	obj = getComponent(label);	div = document.getElementById(label);	if (obj && div) {		obj.visible = display;		if (obj.visible) 			document.getElementById(label).innerHTML = obj.HTML		 else 			document.getElementById( label).innerHTML = ""				}  	}//controleer of item in array voorkomt//item = item waarop gecontroleerd wordt of deze in de array voorkomt//itemArray = lijst met items waarin gecontroleerd wordt of item voorkomtfunction isMember(item, itemArray) {			returnValue = false;	if (itemArray.length == 1) {		if (item == itemArray[0]) returnValue = true;	} else {		for (x=0; x < itemArray.length; x++) {			if (item == itemArray[x]) { 				returnValue = true;				break;			}			}	}	return returnValue;}//gooi alle voorkomens van item uit lijst//item = te verwijderen item//itemArray = lijst waaruit het item/de items verwijderd moeten worden//once = (boolean) true= alleen eerste occurence verwijderen, false = alle voorkomens wegfunction removeFromList( item, itemArray, once ) {	var done=false			if (itemArray.length == 1) {		if (item == itemArray[0]) delete itemArray[0]	} else {		for (x=0; x < itemArray.length; x++) {			if (item == itemArray[x]) { 				if (!done) delete itemArray[x]				done = once					}			}	}			return itemArray}// ===  algemene CREATE functies ===// createSubHeader, om <H4> of <H3> teksten te tonen// createSeparator, om horizontale streep te tonen// createPicture, om een plaatje te tonen// createText, om een stuk tekst te tonen// //LET OP: zet in de HTMLHead van het document/form dat van deze functies gebruik maakt de variabele// ' ComponentsDb' function createSubHeader( label, blokje, isH3, H3Class ) {		HTTPArray[label] = getHTTPObject();	isH3 = (isH3=="" || isH3==null)? false : isH3;		H3Class = (H3Class=="" || H3Class==null)? "" : " class='" + H3Class + "'";			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"];								//tekst is te vinden in kolom 1, achter "#" 					value = entries[0].entrydata[1]["text"][0] ;					index = value.indexOf("#");					if (index > -1) {						if (isH3) 											htmlSubHeader = "<h3" + H3Class + ">" + value.substr(index+1, value.length) + "</h3>"						else {							var pad = group=="Producten"? "" : " class='padding20'"							htmlSubHeader = "<h4" + pad + ">" + value.substr(index+1, value.length) + "</h4>"						}						} 					if (htmlSubHeader=="") {						p = document.getElementById(label).parentNode;						p.removeChild( document.getElementById(label) );					} else							document.getElementById(label).innerHTML = htmlSubHeader					delete HTTPArray[label]				} catch (err) 	{					return;						}			}		}		HTTPArray[label].send(null)		}	}//plaats afbeelding, eventueel tussen <H3></H3> als het om een header van een kopje gaat//label = plek op de pagina//blokje = welk blokje gaat het om (zie view "componenten" in CMS)//isHeader = (boolean) als 'true' dan is het een <H2> of <H3>, anders alleen een plaatje//H3class = eventueel class meegeven voor de HTML tag "h3" indien isHeader, of IMG als niet isHeader  [optioneel]//addRSS = (boolean) als 'true': voeg RSS link toe		[optioneel]function createPicture( label, blokje, isHeader, H3class, addRSS ) {	HTTPArray[label] = getHTTPObject();	var value = ""	var plaatje = ""	var altPlaatje = ""	var H3class = (H3class == null || H3class=="") ? "" : " class='" + H3class + "'"	var RSS = addRSS? "<a href='/actueel/rss.html' class='rss right up'><span>RSS</span></a>" : ""	//staat het blokje in de rechterkolom?	var isRechts = document.getElementById(label).parentNode.className.indexOf("relatedblock") > -1	if (HTTPArray[label] != null) {		HTTPArray[label].open("GET", ComponentsDb + "/vlJSONComponenten?readViewEntries&outputformat=JSON&restrictToCategory=" + blokje, true);								HTTPArray[label].onreadystatechange = function() {			var IMGTag = "" ;			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {				try {					var resp = HTTPArray[label].responseText;					var viewObject = eval("(" + resp + ")");					var entries = viewObject["viewentry"];									// 'gewoon' plaatje of headerplaatje?						var columnNr = isHeader? 1 : 2  					var type = getType( entries[0].entrydata[columnNr] );						value = entries[0].entrydata[columnNr][type][0] ;					plaatje = value.substring(0, value.indexOf("~"));					tekstPlaatje = ""										if (isHeader) {						indexHekje = value.indexOf("#")						indexHekje = indexHekje==-1? value.length : indexHekje						altPlaatje = value.substring( value.indexOf("~")+1, indexHekje);					}						else {						altPlaatje = value.substring( value.indexOf("~")+1, value.indexOf("@"));						tekstPlaatje = value.substring( value.indexOf("@")+1, value.length);					}													if (plaatje != "") {											//moet evt nog toe te voegen tekst (zie createText) n\u00E1\u00E1st of \u00F3nder dit plaatje						// geplaatst gaan worden?						// als het een headerplaatje is OF als het blokje in de rechterkolom staat						// dan altijd \u00F3nder het plaatje, anders kijken naar blokjesconfiguratie						if (isRechts || isHeader) 							isTekstRechts = false						else 							isTekstRechts = eval(entries[0].entrydata[6].text[0]);																											// als plaatje-tekst met "CLASS=" begint is het een H3 tag en						// geen H2 tag; d.w.z. de class bepaalt dan het plaatje (niet dmv een IMG)								if (plaatje.substring(0,6) == "CLASS=") {							IMGTag = "<h3 class='" + plaatje.substring( 6, plaatje.length) + "'>X</h3>"						} else {									//plaatje komt uit Image Resource (als geen "$FILE") of Media library (als "$FILE")							if (plaatje.indexOf("$FILE") < 0)   								plaatje = SharedDb + "/" + plaatje								if (isHeader) 								IMGTag = "<h3" + H3class + "><img src=\"" + plaatje + "\" alt=\"" + altPlaatje + "\" /></h3>" + RSS							else {								if (isTekstRechts)									IMGTag = "<div class=\"top_image\"><img src=\"" + plaatje + "\" alt=\"" + altPlaatje + "\"" + H3class + "/>"								else										IMGTag = "<div class=\"content\"><img src=\"" + plaatje + "\" alt=\"" + altPlaatje + "\"" + H3class + "/>"																				}						}											//evt regel tekst onder of naast plaatje zetten								if (tekstPlaatje != "") {							if (group=="Producten") // zie opmerking bovenin								IMGTag += "<h4>" + tekstPlaatje + "</h4>"															else									IMGTag += "<h3 class=\"actueel\">" + tekstPlaatje + "</h3>"						}						if (!isHeader) IMGTag += "</div>"												document.getElementById(label).innerHTML =  IMGTag																	} else {						p = document.getElementById(label).parentNode;						p.removeChild( document.getElementById(label) );									}																			} catch(err) {						return;					}					}			}		HTTPArray[label].send(null)						}}//plaats link, als button of als tekst (als class=btnlong, wordt het een button)//label = plek op de pagina//blokje = component waarin de link is gespecificeerd//Aclass = class die aan de A-tag moet worden toegekend [optioneel]function createLinks( label, blokje, Aclass ) {	HTTPArray[label] = getHTTPObject();	var Aclass = (Aclass == "" | Aclass == null)? "" : " class='" + Aclass 		if (group=="Producten") {		Aclass = "class=\"meer right\"" 	} else		Aclass += Aclass==""? "" : "'"						var ATag = "";	if (HTTPArray[label] != null) {		HTTPArray[label].open("GET", ComponentsDb + "/vlJSONComponenten?readViewEntries&outputformat=JSON&restrictToCategory=" + blokje, true)		HTTPArray[label].onreadystatechange = function() {				if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {				try {					//isRechts = true als blokje aan de rechterkant staat; anders staat het in contentgedeelte					var isRechts = document.getElementById(label).parentNode.className.indexOf("relatedblock") > -1					var resp = HTTPArray[label].responseText;					var viewObject = eval("(" + resp + ")");					var entries = viewObject["viewentry"];					//informatie over de te tonen link staat in kolom-index 4, dus entrydata[4]										var type = getType( entries[0].entrydata[4] );										Atag = isRechts || group=="Producten" ? "<div class=\"content\"><ul>" : ""																						if (type=="textlist") {						//meerdere links, dus loop door linklijst heen						for (x=0; x < entries[0].entrydata[4].textlist.text.length; x++) {							var link =  entries[0].entrydata[4].textlist.text[x][0] 							Atag += composeLink( isRechts, link, Aclass, "") 						}						} else {						//\u00E9\u00E9n link						var link = entries[0].entrydata[4][type][0];						Atag += composeLink( isRechts, link, Aclass, " bottom_aligned")					}										if (link=="") {							//geen link						p = document.getElementById(label).parentNode;						p.removeChild( document.getElementById(label) );					} else {						Atag += isRechts || group=="Producten"? "</ul></div>" : ""						document.getElementById(label).innerHTML = Atag 					}									} catch (err) {					//alert (err)					return;				}				}		}		HTTPArray[label].send(null)				}}//maak link aan met juiste class// "hulpfunctie" voor createLinksfunction composeLink(isRechts, link, Aclass, additionalClass) {	if (link.substring( link.length-1, link.length) == "1") { 	//indien button dan button maken		link = link.substring(0, link.length-1);		if (Aclass=="") 			Aclass= " class=\"btnlong right " + additionalClass + "\""		else 				Aclass = Aclass.replace("class='", "class='btnlong right " + additionalClass )	} 	//voeg specifieke class nog toe als in contentgedeelte	link = !isRechts? link.replace("\">", "\" " + Aclass + ">") : link		link = isRechts || group=="Producten" ? "<li>" + link + "</li>" : link			//indien <NR> in link voorkomt dit vullen met het afdelingsNr van gebruiker	return link.replace("<NR>", Afdeling) + "<!-- IE6 fix -->"}//plaats tekst//label = lek op de pagina//blokje = naam van het door de beheerder aangemaakte blokje dat de te plaatsen tekst bevat//pClass = extra class toevoegen aan <P> tag [OPTIONEEL]function createText( label, blokje, pClass) {	pClass = pClass==null || pClass=="undefined"? "": pClass			HTTPArray[label] = getHTTPObject();	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() {				var tekst = ""			if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {				try {					var resp = HTTPArray[label].responseText;					var viewObject = eval("(" + resp + ")");					var entries = viewObject["viewentry"];							var type = getType( entries[0].entrydata[0] );												var tekst = entries[0].entrydata[0][type][0] 								if (pClass=="")						tekst = "<div class= \"pTop\"><p class=\"top0\">" + tekst + "</p></div>" 					else						tekst = "<p class=\"" + pClass + "\">" + tekst + "</p>" 						document.getElementById(label).innerHTML = tekst						} catch (err) {					return;				}			}				}		HTTPArray[label].send(null)							}}//JSON functies//aanroep: 	JSON.stringify(object) om van object een string te maken//			JSON.parse(string) om van string een object te maken//string = binnenkomende json stringvar JSON = {    org: 'http://www.JSON.org',    copyright: '(c)2005 JSON.org',    license: 'http://www.crockford.com/JSON/license.html',    stringify: function stringify(arg) {        var c, i, l, s = '', v;        switch (typeof arg) {        case 'object':            if (arg) {                if (arg.constructor == Array) {                    for (i = 0; i < arg.length; ++i) {                        v = stringify(arg[i]);                        if (s) {                            s += ',';                        }                        s += v;                    }                    return '[' + s + ']';                } else if (typeof arg.toString != 'undefined') {                    for (i in arg) {                        v = stringify(arg[i]);                        if (typeof v != 'function') {                            if (s) {                                s += ',';                            }                            s += stringify(i) + ':' + v;                        }                    }                    return '{' + s + '}';                }            }            return 'null';        case 'number':            return isFinite(arg) ? String(arg) : 'null';        case 'string':            l = arg.length;            s = '"';            for (i = 0; i < l; i += 1) {                c = arg.charAt(i);                if (c >= ' ') {                    if (c == '\\' || c == '"') {                        s += '\\';                    }                    s += c;                } else {                    switch (c) {                        case '\b':                            s += '\\b';                            break;                        case '\f':                            s += '\\f';                            break;                        case '\n':                            s += '\\n';                            break;                        case '\r':                            s += '\\r';                            break;                        case '\t':                            s += '\\t';                            break;                        default:                            c = c.charCodeAt();                            s += '\\u00' + Math.floor(c / 16).toString(16) +                                (c % 16).toString(16);                    }                }            }            return s + '"';        case 'boolean':            return String(arg);        default:            return 'null';        }    },    parse: function (text) {        var at = 0;        var ch = ' ';        function error(m) {            throw {                name: 'JSONError',                message: m,                at: at - 1,                text: text            };        }        function next() {            ch = text.charAt(at);            at += 1;            return ch;        }        function white() {            while (ch) {                if (ch <= ' ') {                    next();                } else if (ch == '/') {                    switch (next()) {                        case '/':                            while (next() && ch != '\n' && ch != '\r') {}                            break;                        case '*':                            next();                            for (;;) {                                if (ch) {                                    if (ch == '*') {                                        if (next() == '/') {                                            next();                                            break;                                        }                                    } else {                                        next();                                    }                                } else {                                    error("Unterminated comment");                                }                            }                            break;                        default:                            error("Syntax error");                    }                } else {                    break;                }            }        }        function string() {            var i, s = '', t, u;            if (ch == '"') {outer:          while (next()) {                    if (ch == '"') {                        next();                        return s;                    } else if (ch == '\\') {                        switch (next()) {                        case 'b':                            s += '\b';                            break;                        case 'f':                            s += '\f';                            break;                        case 'n':                            s += '\n';                            break;                        case 'r':                            s += '\r';                            break;                        case 't':                            s += '\t';                            break;                        case 'u':                            u = 0;                            for (i = 0; i < 4; i += 1) {                                t = parseInt(next(), 16);                                if (!isFinite(t)) {                                    break outer;                                }                                u = u * 16 + t;                            }                            s += String.fromCharCode(u);                            break;                        default:                            s += ch;                        }                    } else {                        s += ch;                    }                }            }            error("Bad string");        }        function array() {            var a = [];            if (ch == '[') {                next();                white();                if (ch == ']') {                    next();                    return a;                }                while (ch) {                    a.push(value());                    white();                    if (ch == ']') {                        next();                        return a;                    } else if (ch != ',') {                        break;                    }                    next();                    white();                }            }            error("Bad array");        }        function object() {            var k, o = {};            if (ch == '{') {                next();                white();                if (ch == '}') {                    next();                    return o;                }                while (ch) {                    k = string();                    white();                    if (ch != ':') {                        break;                    }                    next();                    o[k] = value();                    white();                    if (ch == '}') {                        next();                        return o;                    } else if (ch != ',') {                        break;                    }                    next();                    white();                }            }            error("Bad object");        }        function number() {            var n = '', v;            if (ch == '-') {                n = '-';                next();            }            while (ch >= '0' && ch <= '9') {                n += ch;                next();            }            if (ch == '.') {                n += '.';                while (next() && ch >= '0' && ch <= '9') {                    n += ch;                }            }            v = +n;            if (!isFinite(v)) {                error("Bad number");            } else {                return v;            }        }        function word() {            switch (ch) {                case 't':                    if (next() == 'r' && next() == 'u' && next() == 'e') {                        next();                        return true;                    }                    break;                case 'f':                    if (next() == 'a' && next() == 'l' && next() == 's' &&                            next() == 'e') {                        next();                        return false;                    }                    break;                case 'n':                    if (next() == 'u' && next() == 'l' && next() == 'l') {                        next();                        return null;                    }                    break;            }            error("Syntax error");        }        function value() {            white();            switch (ch) {                case '{':                    return object();                case '[':                    return array();                case '"':                    return string();                case '-':                    return number();                default:                    return ch >= '0' && ch <= '9' ? number() : word();            }        }        return value();    }};//schrijf een lijst met links in het blokje//label = lokatie van het blokje op de pagina (is id van DIV)//maxNum = aantal rijen 	= aantal te tonen regels in het blokje  ('count=...')//kolommen = array van te tonen kolommen (numeriek - bij 0 beginnen; hidden columns NIET meegeteld)//view = URL van de te tonen view (zonder '?openView' erachter)//Single Category = de restrictToCategory optie [optioneel]//ULClass = class voor de <UL> waarin de entries uit de view worden weergegeven [optioneel]function createList(label, maxNum, cols, vwName, category, ULClass) {	//maak een view-object aan	new JSONView( vwName, maxNum, cols, label, category, ULClass );}//vwName = viewname//maxNum = aantal rijen 	= aantal te tonen regels in het blokje  ('count=...')//cols = array van te tonen kolommen (numeriek - bij 0 beginnen; hidden columns NIET meegeteld)//label = lokatie van het blokje op de pagina (is id van DIV)//category = de restrictToCategory optie [optioneel]//ULClass = class voor de <UL> waarin de entries uit de view worden weergegeven [optioneel]function JSONView( vwName, maxNum, cols, label, category, ULClass) { 	category = category == null ? "" : category;		//!! Als er g\u00E9\u00E9n UL class is aangegeven, wordt er geen <LU><LI> lijst opgebouwd, maar 	// worden de links gewoon achter elkaar naar het scherm geschreven	// Moet het wel pers\u00E9 een UL lijst zijn, maar is daar geen specifieke class voor nodig, geef dan	// in de aanroep een niet bestaande dummy-class mee, zodat er toch <LU><LI> omheen gezet wordt		ULClass = ULClass == null ? "" : ULClass;		this.viewName = vwName;		//naam van de view	this.label = label;			//label in ObjectArray en EVT plek op pagina (als er een DIV								//  met ID = label bestaat)								//@today ... de dag van vandaag invullen (nodig voor bijv. "Nieuws vandaag")	if ( category.toLowerCase().indexOf("@today") > -1 ) {		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)		category = category.replace("@today", dayFormat + monthFormat + today.getFullYear() )	}				//<THEMA> = het thema van de pagina gebruiken als categorie	if ( category.indexOf("<THEMA>") > -1 ) 		category = category.replace("<THEMA>", thema ) 													this.singleCategory = category	//te tonen category	this.cols = cols				//te tonen kolommen	this.ULClass = ULClass			//class voor UL lijst (mag leeg zijn)	this.HTML = ""					//wordt gezet in 'createHTML'			//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) {		//evt restrictToCategory toepassen		var restrict = category == "" ? "" : "&RestrictToCategory=" + category 		//voor IE6/7: voorkom cache gezemel bij ophalen info die rechtstreeks uit een view gehaald 		// wordt  (dus niet uit zgn "JSON"-views) - betreft concreet agenda en nieuws overzichten		nocache = ""		if ( vwName.toLowerCase().indexOf("vljson") < 0) {   			var t = new Date();			var nocache = "&t=" + t.getTime()		}			if(maxNum>0)			var t_url = vwName + "?ReadViewEntries&outputformat=JSON" + restrict + nocache + "&count=" + maxNum;		else			var t_url = vwName + "?ReadViewEntries&outputformat=JSON" + restrict + nocache + "&count=-1" // + maxNum;						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;										var viewObject = eval("(" + resp + ")");					VIEW = getComponent(label)					VIEW.nrRows = viewObject["@toplevelentries"];					VIEW.entries = viewObject["viewentry"];					VIEW.subset = VIEW.nrRows;					VIEW.maxNum = maxNum;					VIEW.minNum = 0;					VIEW.remember = false;	//false = niet in cookie opslaan										//genereer HTMLcode voor dit object					//indien Richtlijnen & Contracten andere create uitvoeren (te veel HTML afwijkingen)					if (group=="Richtlijnen en Contracten" || group=="Vereniging")						createRichtlijnenHTML(label, 0, maxNum, cols)					else 						createHTML(label, 0, maxNum, cols) 																	//schrijf zojuist gegenereerde HTML naar scherm										showComponent(label, true)								} catch(err) {					//er is iets misgegaan; blokje zal leegblijven					return;					}						}						}		HTTPArray[label].send(null)			}}//maak HTML-lijst representatie aan voor de opgehaalde lijst //label = div waarin alles terecht moet komen//min = minimum//max = maximum//cols = array van te tonen kolommen (numeriek - bij 0 beginnen; hidden columns NIET meegeteld)function createHTML(label, min, max, cols) {						//staat het blokje in de rechterkolom?	var isRechts = document.getElementById(label).parentNode.className.indexOf("relatedblock") > -1		var CurView = getComponent(label);	CurView.maxNum = max > CurView.nrRows ? CurView.nrRows : max;			var home =  label.substring(0, 4) == "home"			//er zijn twee lijst-varianten; eentje met en eentje zonder <UL><LI>	if ( (CurView.ULClass == "" || home) && !isRechts) {		tekst = "<div class=\"links\">"	} else {		if (group=="Producten") 	//specifiek voor producten afwijkende DIV structuur...			tekst = "<div class=\"block double light fixedheightsmall right\">"		else			tekst = ""			tekst += "<ul class='" + CurView.ULClass + "'>"	}		if (home)	tekst += "<ul class='" + CurView.ULClass + "'>"			entries = CurView.entries;	if (entries != null) {	//entries=null: geen documenten in view		//loop door alle rijen heen: [viewentry]   (is waarde van CurView.entries)		for (x=min; x < CurView.maxNum; x++) {						//loop door alle kolommen heen: [entrydata]			if (entries[x] != null && entries[x] != "undefined") {				for (y=0; y < entries[x].entrydata.length; y++) {									//alleen kolom toevoegen die in array 'cols' voorkomt					if (isMember( entries[x].entrydata[y]["@columnnumber"], cols )) {											type = getType( entries[x].entrydata[y] );						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] != "") {									if (CurView.ULClass=="" && !isRechts)										tekst += entries[x].entrydata[y].textlist.text[z][0] ;									else										tekst += "<li>" + entries[x].entrydata[y].textlist.text[z][0] + "</li>";								}																				}										} else if (type=="") {							tekst += "[fout:waarde is niet te printen]"											} else {							if (CurView.ULClass=="" && !isRechts)								tekst += entries[x].entrydata[y][type][0]							else									tekst += "<li>" + entries[x].entrydata[y][type][0] + "</li>"						}													}				}				}		}				}		//pas URLs aan indien van toepassing 	tekst = tekst.replace( /#nieuws:/g, "/actueel/actueel.html#nieuws:" )	tekst = tekst.replace( /#agenda:/g, "/actueel/actueel.html#agenda:" )	//zet te tonen HTML voor dit object	CurView.HTML = CurView.ULClass=="" && !isRechts ? tekst + "</div>" : tekst + "</ul></div>"			CurView.HTML += "<!-- -->"	//toevoeging voor IE6}//bepaal type van de inhoud van de kolom (hulpfunctie voor createHTML)//entry = function getType(entry) {	retValue = "";	if (entry != null) {		if (entry.datetime != null) 			retValue= "datetime"		if (entry.text != null)			retValue= "text"		if (entry.textlist != null)			retValue= "textlist"			if (entry.number != null)			retValue= "number"	}  	return retValue;}//label = DIV waarop de bewerking moet worden uitgevoerd//makeBold = true = lijst <LU> wordt voorzien van class 'bold'; false = <LU> heeft geen classfunction setBold(label, makeBold) {	var CurView = getComponent(label)	CurView.isBold = makeBold	createHTML( label, CurView.minNum, CurView.maxNum, CurView.cols );	showComponent(label, true)}//wijzig de single category en toon nieuwe lijst//label = DIV die bewerkt moet worden//newCat = Nieuwe naam van de categorie//maxNum = Maximum aantal nummersfunction changeCategory(label, newCat, maxNum) {	var CurView = getComponent(label)		//gevraagde view ophalen			//view met hetzelfde label aanmaken, zodat oude overschreven wordt in array	createView( label, maxNum, CurView.viewName, newCat);	var NewView = getComponent (label)		//nieuwe view ophalen		createHTML( label, CurView.minNum, CurView.maxNum);	//nieuwe HTML genereren	showComponent(label, true);		//herschrijven op scherm	}//loginform op Homepage (is afwijkend van inlogblokjes op overige schermen)//label = DIV waarin het loginblok moet worden gerenderdfunction createLoginFormHP( label ) {	//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"		if ( Username == "Anonymous" ) {		HTTPArray[label] = getHTTPObject();			if (HTTPArray[label] != null) {					HTTPArray[label].open("GET", ComponentsDb + "/vlJSONComponenten?readViewEntries&outputformat=JSON&restrictToCategory=loginHP", true);							HTTPArray[label].onreadystatechange = function() {					var RedirectTo = "";					var HTMLTekst = "";				if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {					try {						var resp = HTTPArray[label].responseText;						var viewObject = eval("(" + resp + ")");						var entries = viewObject["viewentry"];											var RedirectToBoth = entries[0].entrydata[0].text[0] ;						if (label=="loginMijnNMT") 							RedirectTo = RedirectToBoth.substring(0, RedirectToBoth.indexOf("#") )						else							RedirectTo = RedirectToBoth.substring(RedirectToBoth.indexOf("#")+1, RedirectToBoth.length)																		HTMLTekst += dispLoginFieldset(false, label, RedirectTo, name, pw, onthoudpw);					 	document.getElementById(label).innerHTML = HTMLTekst						//probeer automatisch in te loggen						autoLogin()											} catch (err) {						return;					}				}			}			HTTPArray[label].send(null)			}						} else 		document.getElementById(label).innerHTML = dispIngelogdText()					}//vult de twee velden loginnaam en passwordfunction setLoginFormCookies() {	var name = getCookie("nmtusername");	var pw = getCookie("nmtpassword");	var objUserName = document.getElementById("username")		if(objUserName)		if(name!="undefined" && name != null) 								objUserName.value = name			var objPassword = document.getElementById("password")	if(objPassword)		objPassword.value = pw}//maak HTML voor inlogblokje indien reeds ingelogdfunction dispIngelogdText( ) {	var tMijnNMTLink = (MijnNMTLink==null || MijnNMTLink=="undefined" || MijnNMTLink=="")? "#" : MijnNMTLink	loginscherm = "<p class=\"right\">U bent momenteel ingelogd als</p>"	loginscherm += "<div class=\"clearboth\"></div>"	loginscherm += "<p class=\"right\"><strong>" + dispUsername + "</strong></p>"	loginscherm += "<div class=\"clearboth\"></div>"	loginscherm += "<hr class=\"white\" />"	loginscherm += "<p><a href=\"javascript:logOut()\" class=\"btnshort right\">Uitloggen</a>"		loginscherm += "<a href=\"" + tMijnNMTLink + "\" class=\"btnhome right\" title=\"Ga naar Mijn NMT\">&nbsp;</a>"			loginscherm += "</p><div class=\"clearboth\"></div>"	//alert(loginscherm)		return loginscherm}//maak HTML voor inlogvelden//kopregel = (boolean) true: voeg kopregel toe, false: sla dit over (voor homepage)//label = nodig voor id van redirectveld//RedirectTo = URL die na inloggen geopend wordt//name = username//pw = wachtwoord//onthoudpw = als tekst is "checked" dan checkbox 'wachtwoordonthouden' aanvinken; anders nietfunction dispLoginFieldset(kopregel, label, RedirectTo, name, pw, onthoudpw) {	//als er in het contentgedeelte al inlogvelden staan, dan hier niet tonen	if (document.getElementById("loginform") == null || document.getElementById("loginform") == "undefined") {				//loginscherm = "<form id=\"inlogForm\" action=\"/names.nsf!login\" method=\"post\">";		loginscherm = "" 		if (kopregel) {			loginscherm += "<div class=\"block statusblock\">"			loginscherm += "<p class=\"right\">U bent momenteel niet ingelogd</p>"			loginscherm += "</div>"			loginscherm += "<div class=\"tabContent activeTab\">" 			loginscherm += "<div class=\"clearboth\"></div>"		}		loginscherm += "<div class=\"error\" id=\"errormessage\" style=\"display:none;\">Wachtwoord en/of gebruikersnaam is verkeerd. Probeer opnieuw.</div>"					loginscherm += "<div class=\"error\" id=\"authormessage\" style=\"display:none;\">U heeft geen toegang tot dit onderdeel. Neem contact op.</div>"		loginscherm += "<fieldset " + (kopregel? "class='darkgreen paddedblock'>" : ">")			loginscherm += "<input type=\"hidden\" id=\"" + label + "redirectto\" value=\"" + RedirectTo + "\" name=\"RedirectTo\" />"		if(name=="")			loginscherm += "<input onKeyPress=\"return loginEnter(event, '"+label+"')\" onFocus=\"emptyWhen(this,\'Uw NMT-nummer...\')\" type=\"text\" value=\"Uw NMT-nummer...\" name=\"username\" id=\"" + label + "username\" class=\"watermark\" /><br />"						else			loginscherm += "<input onKeyPress=\"return loginEnter(event, '"+label+"')\" type=\"text\" value=\"" + name + "\" name=\"username\" id=\"" + label + "username\" class=\"watermark\" /><br />"						if (pw=="") {				loginscherm += "<input onKeyPress=\"return loginEnter(event, '"+label+"')\" onFocus=\"hideWachtwoordTekst('"+label+"')\" type=\"password\" value=\"\" name=\"password\" id=\"" + label + "password\" class=\"watermark\" />"					loginscherm += "<div id=\"wachtwoordtekst_"+label+"\" onClick=\"hideWachtwoordTekst(\'" + label + "', \'" + label + "password\')\" "			loginscherm += " style=\"font-family:arial;font-size:11px;height:16px;width:100px;color:#6d6e71;position:absolute;top:88px;left:738px;border:solid 0px red;\">Uw wachtwoord...</div>"					} else			loginscherm += "<input onKeyPress=\"return loginEnter(event, '"+label+"')\" type=\"password\" value=\"" + pw + "\" name=\"password\" id=\"" + label + "password\" class=\"watermark\" />"						loginscherm += "<input type=\"checkbox\" name=\"wachtwoordonthouden\" class=\"checkbox\" id=\"wachtwoordonthouden\"" + onthoudpw + " /><label for=\"wachtwoordonthouden\">Aangemeld blijven</label>"		loginscherm += "<input type=\"button\" onClick=\"login('" + label + "')\" value=\"inloggen\" class=\"short right\" />"		loginscherm += "</fieldset>" 		//alert(loginscherm)		if (kopregel) loginscherm += "</div>"	} else		loginscherm = document.getElementById(label).innerHTML			return loginscherm}//inloggen; functie wordt aangeroepen in door functie createLoginForm gegenereerde onClick//labeldiv id van het inlogblokje (nodig voor home en mijnNMT, omdat daar twee inlogblokjes zijnfunction login(label) {	var errormessage = document.getElementById("errormessage")	label = (label==null || label=="undefined")? "" : label;	//usernaam altijd in cookie opslaan	if (label != "") {		if (!addCookie("nmtusername", document.getElementById(label+"username").value)) {			errormessage.style.visibility="visible"			errormessage.style.display=""			errormessage.innerHTML="Inloggen is niet mogelijk, omdat uw browser geen cookies accepteert."			return;		}	}		//wachtwoord in cookie opslaan als gewenst en anders weggooien 	var ww = document.getElementById("wachtwoordonthouden");	if ( ww != null && ww != "undefined") {		if ( ww.checked ) 			addCookie("nmtpassword", document.getElementById(label+"password").value) 		else 			deleteCookie("nmtpassword");	}	var content = "";	//inloggen; als succesvol pagina openen, anders melding "fout wachtwoord"	oXmlHttp = getHTTPObject();	oXmlHttp.onreadystatechange = function() {		if (oXmlHttp.readyState==4 || oXmlHttp.readyState=="complete") {			try {				var resp = getAJAXHTML( oXmlHttp.responseText)[0]				//inloggen is mislukt				if ( resp.indexOf("loginform") > -1 ) {					if (Username == "Anonymous") {						errormessage.style.visibility="visible"						errormessage.style.display=""						errormessage.innerHTML = "Wachtwoord en/of gebruikersnaam is verkeerd. Probeer opnieuw."											} else {						document.getElementById("authormessage").style.visibility="visible"						document.getElementById("authormessage").style.display=""										}											} else {												//inloggen is gelukt: nu redirecten naar gewenste pagina:				  			  //direct naar FenCS					if (label=="loginFenCS") 						location = document.getElementById(label+"redirectto").value 					  //direct naar Mijn NMT					else if (label=="loginMijnNMT") {						//alleen redirecten als afdeling != 0, anders op pagina blijven						var indexAfdeling = resp.indexOf("##AFDELING=")+11;						var checkAfd = resp.substring( indexAfdeling, resp.indexOf("##AFDELINGEND") )						if (checkAfd != "0") 							location = document.getElementById(label+'redirectto').value						else 							location.reload(true)								} 										  //URLs die documentUniqueID bevatten niet redirecten, maar 'terug' vertalen					  //	 naar de notatie van de oorspronkelijke link en daarna pagina herladen					  // (bijv. "DE8897.nsf/0/89876" ==> "#nieuws:89876")					else if (document.getElementById(label + "redirectto").value.indexOf(".nsf/0/")>0) {						var rd = document.getElementById(label + "redirectto").value						var newID = rd.substring( rd.lastIndexOf("/")+1, rd.length )										if (newID != "" && globalURLItem != "" ) {							location.hash = globalURLItem + ":" + newID							location.reload()							} 					}										//alle overige gevallen is geen redirect meegegeven, dus gewoon op huidige pagina					//  blijven, maar wel als ingelogd zijnde; dus wel herladen					else 						location.reload(true); 																							}											} catch (err) {				// alert(err)				return;			}			}		}	oXmlHttp.open( "POST", "/names.nsf!login", true );	oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");		content += "redirectto=" + document.getElementById(label+"redirectto").value;		if (content.indexOf("/zoeken/") > -1)			content = content.substring(0, content.indexOf("#") ) 			content += "&username=" + document.getElementById(label+"username").value;	content += "&password=" + document.getElementById(label+"password").value;	//voorkom herhalend inloggen (van toepassing bij functie "toon concept in browser" vanuit CMS)	if (content.toLowerCase().indexOf("preview")>-1)			content = content.toLowerCase().replace("&login", "")					//security checks voor redirect; link achter inlogbutton MOET naar een pagina binnen de site verwijzen	var secure = false;	var checkContent = content.substring( 11, content.length )	//redirecten naar huidige pagina vanuit blokje rechtsboven	if (checkContent.substring( 0, checkContent.indexOf("&")) == location.href )		secure = true;		//redirecten naar homepage of mijn nmt; vanuit blokje rechtsboven	else if (content.substring( content.indexOf("redirectto=")+11, content.indexOf("redirectto=")+12) == "/")		secure = true;		//herladen huidige pagina; vanuit blokje in content	else if (content.indexOf("javascript: window.open( location.href, '_self')") > -1) 		secure = true;		//speciaal geval: inlogblokje op zoekscherm	else if (content.indexOf("/zoeken/") > -1) 		secure = true;		if (secure) oXmlHttp.send(content);	}//uitloggenfunction logOut( ) {		if (group == "home")		var go_on = confirm( logout_confirm_text )	else					var go_on = custom_confirm( logout_confirm_text, logout_confirm_OK, logout_confirm_Cancel )		//in geval van custom confirm box, uitloggen achter click zetten	var customAlert = document.getElementById("closeTextConfirmTrue")			if (customAlert) {		customAlert.onclick = function() { 			removeCustomAlert();			removeLogInfo();		}				document.getElementById("closeTextConfirmFalse").onclick = function() { 			removeCustomAlert();		}	} else		if (go_on) removeLogInfo();}function removeLogInfo() {	//door Domino aangemaakt sessie-cookie verwijderen	deleteCookie("DomAuthSessId")	//wachtwoord uit cookie halen	deleteCookie("nmtpassword")	//naar homepage	goHome(true)}//Enter toets afvangen bij inloggen //e = toets aanslagfunction loginEnter(e, label){	if (e.keyCode == 13 || e.which == 13) {		login(label);		return false;	}}function createPoll( label, blokje ) {	//verwijder oude poll-cookies 	removeOldPolls()	var curPoll = getComponent(blokje);					if (curPoll == null || curPoll == "undefined" || curPoll.beantwoord == false ) {			new poll( label, blokje)	} else {		//als poll al is ingevuld de resultaten tonen			var pollHTML = "<div class='paddedblock'><p class='pollquestion'>" 							var answers = "";		var pollID = blokje==pollHPBlokje? "PollHP" : blokje			HTTPArray[label] = getHTTPObject();				if (HTTPArray[label] != null) {			t = new Date(); //als poll zojuist is ingevuld, willen we meteen een update van de resultaten, dus wegwezen met die cache						HTTPArray[label].open("GET", ComponentsDb + "/vlJSONPolls?readViewEntries&outputformat=JSON&restrictToCategory=" + pollID + "&t=" + t.getTime(), 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"];						var totaal =0						var type = getType( entries[0].entrydata[0] );						// antwoorden in kolom 1 (index 0)						answers = entries[0].entrydata[0][type][0];						aantallenList = answers.split("#")																		// vraag en keuzemogelijkheden in kolom 2 (index 1)						vraagPlusKeuzes = entries[0].entrydata[1][type][0];						vraag = vraagPlusKeuzes.substring(0, vraagPlusKeuzes.indexOf("@") )						keuzes = vraagPlusKeuzes.substring( vraagPlusKeuzes.indexOf("@")+1, vraagPlusKeuzes.length)						keuzesList = keuzes.split("#")								pollHTML += vraag + "</p>"							for(y=0; y < aantallenList.length; y++) {								aantal = aantallenList[y].substring( 2, aantallenList[y].length )													totaal += parseInt(aantal)											}												pollHTML += "<table cellspacing=0 cellpadding=0 border=0 width=90%>"						for(x=0; x < aantallenList.length; x++) {							aantal = aantallenList[x].substring( 2, aantallenList[x].length )							percentage = (aantal / totaal) * 100													pollHTML += "<tr><td width=200>" + keuzesList[x] + "</td></tr><tr><td>"														//IE6 en 7 gaan niet goed met float:left om; dus daarom ietwat anders							if ( navigator.appVersion.indexOf("6.0") > -1 || navigator.appVersion.indexOf("7.0") > -1 ) {								pollHTML +="<div style=\"background-color:#fba258;width:"									+ Math.round(percentage)+"%;height:14px;text-align:center;\">&nbsp;</div>"								pollHTML +="<div style=\"position:relative;top:-14px;text-align:center;"									+ "height:13px;font-size:8pt;width:195px;border:solid 1px #fba258\">"									+ Math.round(percentage) + " %</div></td></tr>"																									} else {																pollHTML +="<div style=\"float:left;background-color:#fba258;width:" 									+ Math.round(percentage) + "%;height:14px;text-align:center;\">&nbsp;</div>"								pollHTML +="<div style=\"position:relative;text-align:center;top:-1px;"									+ "font-size:8pt;width:195px;border:solid 1px #fba258\">"									+ Math.round(percentage) + "%</div></td></tr>"							}						}																pollHTML += "</table>"											 	document.getElementById(label).innerHTML = pollHTML					 																								} catch (err) {						return					}					}			}						HTTPArray[label].send(null)			} 			 		}}//label = DIV waarin alles gerenderd moet worden//blokje = naam van het blokjefunction poll(label, blokje) {	this.label = blokje	this.beantwoord = false	this.remember = false   // opslaan in cookie pas als gesubmit wordt; anders niet			HTTPArray[label] = getHTTPObject();	addComponent(this, blokje)	var pollID = blokje==pollHPBlokje? "PollHP" : blokje	var pollHTML = "<div class='paddedblock'><p class='pollquestion'>";	if (HTTPArray[label] != null) {		HTTPArray[label].open("GET", ComponentsDb + "/vlJSONPolls?readViewEntries&outputformat=JSON&restrictToCategory=" + pollID, 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) {									POLL = getComponent( blokje)						//informatie voor poll staat in tweede kolom, dus entrydata[1]						var type = getType( entries[0].entrydata[1] );						var QA = entries[0].entrydata[1][type][0];											vraag = QA.substring(0, QA.indexOf("@"));						keuzes = QA.substring( QA.indexOf("@")+1, QA.length);											pollHTML += vraag + "</p>"								pollHTML += addAnswers(keuzes)							pollHTML += "<input type=\"button\" onClick=\"submitPoll('" + label + "', "						pollHTML += "'" + blokje + "', document.getElementsByName('poll'))\""						pollHTML += " class=\"short right bottom_aligned\" value=\"stem\" />"						pollHTML += "</div>"								 	document.getElementById(label).innerHTML = pollHTML					 						} else						document.getElementById(label).innerHTML = ""					} catch (err) {					//alert( err)					return;				}				}		}		HTTPArray[label].send(null)				}}//keuzemogelijkheden in HTML opbouwen//keuzes: lijst met keuzes, gehaald uit blokje-definitiefunction addAnswers(keuzes) {	answerList = keuzes.split("#")	retHTML = "";		for (x=0; x < answerList.length; x++) {		retHTML += "<input type=\"radio\" class=\"radio\" name=\"poll\" id=\"option" + x + "\" />"		retHTML += "<label for=\"option" + x + "\" class=\"polllabel\">" + answerList[x] + "</label><br />"		}	return retHTML}//schrijf poll-info naar cookie + naar polldocument in componenten-database//label: plek op pagina (div id)//blokje: naam van het blokje/ de poll//keuzes: lijst met antwoordemogelijkheden, waarvan eentje gecheckt isfunction submitPoll(label, blokje, keuzes) {	//cookie bijwerken	var antwoord = "-1"; 			for (x=0; x < keuzes.length; x++) {		if (keuzes[x].checked) 			antwoord = x	}	if (antwoord=="-1") return;   //er is geen antwoord gegeven en toch op "stem" geklikt	Poll = getComponent(blokje);	//haal poll uit objectarray op 	if (Poll!=null && Poll != "undefined") {						Poll.beantwoord = true		Poll.remember = true		Poll.label = blokje		addComponent(Poll, blokje);	//omdat remember is true zal cookie bijgewerkt worden		} else { return; }	//polldocument in componenten-database bijwerken	HTTPArray[label] = getHTTPObject();	if (HTTPArray[label] != null) {		//werk het juiste pollDocument bij d.m.v. agent 'addAnswer'		var pollID = blokje==pollHPBlokje? "PollHP" : blokje		HTTPArray[label].open("POST", ComponentsDb + "/addAnswer?openAgent&blokje=" + pollID +"&antwoord=" + antwoord, true)		HTTPArray[label].onreadystatechange = function() {				if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {				try {					createPoll(label, blokje)	//klaar? dan blokje op scherm verversen						} catch (err) {					return;				}			}		}		HTTPArray[label].send(null)					}							}function removeOldPolls() {	//polls opgeslagen met key "home_poll" moeten sowieso weg, is depricated	removeComponent("home_poll")	//polls uit cookie ophalen	cookiePolls = new Array()	  	//eerste in array is huidige poll op homepage, daarna aanvullen met pollid's uit cookie	cookiePolls[0] = pollHPBlokje		var ind=1;	for ( o in ObjectArray) {		Obj = getComponent(o);		if (Obj.beantwoord != "undefined" && Obj.beantwoord != null) {   //gaat alleen om polls			cookiePolls[ind] = Obj.label			ind++;		}		}		//actieve polls ophalen uit contentdocumenten	var activePolls = new Array()			//eerste is huidige poll op homepage, daarna aanvullen met pollid's op CMS documenten	activePolls[0] = pollHPBlokje	var http_polls = getHTTPObject()		if (http_polls != null) {		http_polls.open("GET", CMSDb + "/vlPollBlocks?readviewentries&outputformat=JSON", true)				http_polls.onreadystatechange = function() {				if ( http_polls.readyState == 4 || http_polls.readyState == "complete" ) {				try {									var resp = http_polls.responseText					var viewObject = eval("(" + resp + ")");					var entries = viewObject["viewentry"];					var type = ""					if (entries != null) {						var aind=1;						for (entindex=0; entindex < entries.length; entindex++) {								type = getType(entries[entindex].entrydata[0])													// type = textlist als meerdere polls op \u00E9\u00E9n pagina (kan theoretisch)							if (type=="textlist") {  								for (tl=0; tl < entries[entindex].entrydata[0].textlist.text.length; tl++ )									activePolls[aind] = entries[entindex].entrydata[0].textlist.text[tl][0] 							} else 								activePolls[aind] = entries[entindex].entrydata[0].text[0] 														aind++						}					}										//polls die niet in lijst van actieve polls staan verwijderen uit cookie					for (cind=0; cind < cookiePolls.length; cind++) {						if (!isMember( cookiePolls[cind], activePolls)) 							removeComponent( cookiePolls[cind])					}									} catch(err) {					// alert( err)					return				}					}		}			http_polls.send(null)	}}//Functie voor het starten van een algemene zoek actie over meerdere databases heen//label: DIVje waarin alles gerenderd moet wordenfunction createZoekSite(label){	HTTPzoeksite = getHTTPObject();	if (HTTPzoeksite != null) {					//let op : SearchDb komt van een gedeeld subform af.		var searchURL = SearchDb + "/zoeksite!ReadForm&query=" + location.hash.replace("#query=","");		HTTPzoeksite.open("GET", searchURL, true);					HTTPzoeksite.onreadystatechange = function() {								if ( HTTPzoeksite.readyState == 4 || HTTPzoeksite.readyState == "complete" ) {			   try {			   				var zoeksiteform = getAJAXHTML( HTTPzoeksite.responseText)				document.getElementById(label).innerHTML = zoeksiteform[0]												  } catch(err) {			   	alert(' Error in functie createZoekSite in SearchBlock.js (Web 4 Componenten)');			  	return;			   }			}		}		HTTPzoeksite.send(null)	}			}//e = keyboard eventfunction catchZoekHeaderEnter(e){	if (!e) var e = window.event	var keyNum = (typeof(e.which) == "undefined" ? e.keyCode : e.which);	var keyChar = String.fromCharCode(keyNum);	var keysForbidden = ',=#!&+"';			if (keysForbidden.indexOf( keyChar ) > -1) 		return false			if (keyNum == 13) {		searchSite();		return false;	}}//zoeken in de gehele site, gebruikt ook createZoekSitefunction searchSite(){	//get the search query and hash the page to reload	var objZoekterm = document.getElementById("ZoektermHeader")			if(objZoekterm.value!="")	{		var hash = location.hash	//	var newURL = "/zoeken/zoeken-algemeen.html#query=" + checkSyntax(objZoekterm.value) + "&directsearch=yes";		var newURL = "/zoeken/zoeken-algemeen.html#query=" + objZoekterm.value + "&directsearch=yes";		location.href=newURL;			if (document.getElementById("searchsite") != null &&		document.getElementById("searchsite") != "undefined") {			//reloaden als gebruiker al op zoekscherm zit en nog eens zoekt via blokje rechtsboven			if ( hash != newURL.substring( newURL.indexOf("#"), newURL.length) )				location.reload()		}		}	else	{		var newURL = "/zoeken/zoeken-algemeen.html#query=vul hier uw zoekterm in&directsearch=no";		location.href=newURL;				}}//Enter toets: start zoeken//watdan 	= formulier (News, Agenda, KWIS, TAGids of Bieb)//e = keyboard event//redirectURL = URL waarnaartoe geredirect moet wordenfunction catchEnter(e, watdan, redirectURL){	if (!e) var e = window.event		var keyNum = (typeof(e.which) == "undefined" ? e.keyCode : e.which);	var keyChar = String.fromCharCode(keyNum);	var keysForbidden = ',=#!&+"';			if (keysForbidden.indexOf( keyChar ) > -1) 		return false			if ( keyNum == 13) {			if(redirectURL!=null)			eval ("search" + watdan + "('" + redirectURL + "')")					else			eval ("search" + watdan + "Execute()")										return false;	}}//Zet de naam bij het login blokje als je bent ingelogd.//Deze functie wordt globally aangeroepenfunction setName(){	var fldName	= document.getElementById("naam")	if(fldName)	{			if (fldName.nodeName == "SPAN")		{			fldName.innerHTML	= dispUsername			fldName.value		= dispUsername		}				document.getElementById("titel").focus()	}}setName()// Script dat nodig is voor het uitklap menu.startList = function() {	if (document.all&&document.getElementById) {		navRoot = document.getElementById("menu_li");		for (i=0; i<navRoot.childNodes.length; i++) {			node = navRoot.childNodes[i];			if (node.nodeName.toUpperCase()=="LI") {				node.onmouseover=function() {					this.className+=" over";				}							node.onmouseout=function() {				     this.className=this.className.replace(" over", "");		     	}			}  		}	}}//node = Node waarbinnen de tabs moeten worden opgebouwd, meestal is dit overkoepelTabfunction tabs(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;	}}// Wordt niet meer gebruikttabs.prototype.switchTab = switchTab//Functie voor het schakelen tussen de verschillende tabsfunction switchTab() {	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=yes" aan het input element is toegevoegd		if (this != this.Parent.triggers[t]) {			if (!(validateElementById( this.Parent.tabs[t].id ) )) 				return; 		}									this.Parent.triggers[t].className = this.Parent.triggers[t].className.replace(/\s?activeTab/g,"");		this.Parent.triggers[t].className = this.Parent.triggers[t].className.replace(/\s?neighbourActive/g,"");		this.Parent.tabs[t].className = this.Parent.tabs[t].className.replace(/\s?hideThisNode/g,"");		this.Parent.tabs[t].className = this.Parent.tabs[t].className.replace(/\s?activeTab/g,"");		if (this == this.Parent.triggers[t])		{			this.Parent.tabs[t].className += " activeTab";			this.className = this.className.replace(/\s?activeTab/g,"");			this.className += " activeTab";			this.Parent.active = this.Parent.tabs[t];            /* The neighbour image needs to be replaced, so i have to save the next tab, to add a class later.               It cant be done right now because in the next iteration that class would be removed, so its done               when the activeTab class is added to the trigger tab. */			thisNeighbour = this.Parent.triggers[t+1];		} else		{							this.className = this.className.replace(/\s?activeTab/g,"");			this.Parent.tabs[t].className += " hideThisNode";		}	}	this.className += " activeTab";	// neighbour could be null, if the selected tab is the last one.	if (thisNeighbour != null )	{	    thisNeighbour.className += " neighbourActive";	}	if (this.Parent.alternate)	{		this.Parent.alternate.Parent.setActive();	}}//node = Node waarop de watermark moet werkenfunction watermark(node){	this.node = node;	this.node.Parent = this;	this.passwd = false;	this.text = CB.getClassParameter(this.node, 'tekst', '').replace(/#/g, " ");	if(this.nodeName == "INPUT"){	    if(node.value != this.text){	        this.node.className = this.node.className.replace(/\s?watermark/g, "");	    }	}else if(this.nodeName == "TEXTAREA"){	    if(this.node.innerHTML != this.text){		    this.node.className = this.node.className.replace(/\s?watermark/g, "");		}	}	if(navigator.appName.indexOf('Microsoft') == -1){		if(this.node.attributes['type'] != null && this.node.attributes['type'].value == 'password'){			this.passwd = true;			this.node.attributes['type'].value = 'text';		}	}	this.node.onfocus = this.focus;	this.node.onblur = this.blur;}watermark.prototype.focus = function(){	if(this.nodeName == "INPUT"){		if(this.value == this.Parent.text){			this.value = "";		}		if(this.Parent.passwd){			this.attributes['type'].value = 'password';		}	} else if(this.nodeName == "TEXTAREA"){		if(this.innerHTML == this.Parent.text){			this.innerHTML = "";		}	}	this.className = this.className.replace(/\s?watermark/g, "");}watermark.prototype.blur = function(){	if(this.nodeName == "INPUT"){		if(this.value == this.Parent.text || this.value == ""){			this.value = this.Parent.text;			this.className = this.className.replace(/\s?watermark/g, "");	          this.className += " watermark"; 	          			if(this.Parent.passwd){				this.attributes['type'].value = 'text';			}		}				} else if(this.nodeName == "TEXTAREA"){		if(this.innerHTML == this.Parent.text || this.innerHTML == ""){			this.innerHTML = this.Parent.text;			this.className = this.className.replace(/\s?watermark/g, "");	          this.className += " watermark"; 		}	}	if(this.autosuggest){	    setTimeout("this.autosuggest.hideSuggestions()", 200);	}}// Algemene Validatie functie (wel/niet ingevuld)// geef waarde van geselecteerde radiobutton//field: Veld waarop gevalideerd wordtfunction getSelectedValue( field ) {	var radiofields = getElementsByName_iefix( "input", field.getAttribute("name"))	var value = ""		for (r=0; r < radiofields.length; r++) {		if (radiofields[r].checked) 			value = radiofields[r].value	}	return value}//addCookie: zet string in cookie //name: naam van de cookie//value: waarde van de cookie//justThisSession: sessioncookie j/n (boolean)function addCookie(name, value, justThisSession) {			//een dummy cookie aanmaken om te zien of gebruiker cookies op disabled heeft staan	document.cookie="@@temp@@";	if (document.cookie.indexOf("@@temp@@") < 0) return false				if (justThisSession==null || justThisSession=="undefined" || justThisSession==false) {		var expire_date = new Date("December 31, 2050 12:34:56")			document.cookie = name + "=" + escape(value) + ";path=/;expires=" + expire_date.toGMTString();	} else		document.cookie = name + "=" + escape(value) + ";path=/"		document.cookie += ";secure;HttpOnly"	return true	}function getCookie(Name) {	var search = Name + "="	if (document.cookie.length > 0) { 		offset = document.cookie.indexOf(search)		if (offset != -1) { 			offset += search.length			end = document.cookie.indexOf(";", offset)			if (end == -1)				end = document.cookie.length				return unescape(document.cookie.substring(offset, end))		}	} 	 	return ""}//deleteCookie: zet epxiredate op verleden zodat cookie verwijderd wordt //name: naam van de cookiefunction deleteCookie(name) {	if (getCookie(name)) document.cookie = name + "=" +		";path=/;expires=Thu, 01-Jan-70 00:00:01 GMT";}//haal binnen de HTMLstring alleen datgene op dat tussen <AJAXContent> tags staat// paramater <HTML> = complete binnengehaalde HTMLpagina (.responseText)// in tag <NewCreateFunctions> staan de evt benodigde createXXX functies voor de blokken// die bij de nieuw in te lezen contentpagina horen (moeten dus de initiele createXXX functies// 'overschrijven')//HTML: Binnenkomend HTMLfunction getAJAXHTML( HTML ) {	var ajaxHTML = "";	var jsFuncs = "";	var aantal = 0;	var x=0;	HTML = HTML.replace(/AJAXContent\\/g, "AJAXContent")	if (HTML.indexOf("<AJAXContent>") > -1 ) {		listHTML = HTML.split("<AJAXContent>")						for (x=1; x < listHTML.length; x++) {					//evt nieuwe createfuncties opzoeken (voor createBlocks functie)			if ( listHTML[x].indexOf("<NewCreateFunctions") > -1 ) {				startindex = listHTML[x].indexOf("<NewCreateFunctions value=")+26				endindex = listHTML[x].indexOf("#END")				jsFuncs = listHTML[x].substring( startindex, endindex) 			}							ajaxHTML += listHTML[x].substring( 0, listHTML[x].indexOf("</AJAXContent>"))		}		aantal=x-1;						} else 		ajaxHTML = HTML		return new Array(ajaxHTML, jsFuncs, aantal)}//HOMEPAGE opbouwen; aangeroepen in onLoad van <img> onderaan index.htmlfunction createHomePage() {	//bouwt gebruikmakend van de 'createXXX' functies de blokjes op voor de homepage	// de blokjes moeten aanwezig zijn in de componentendatabase (geconfigureerd) anders	// zal er op de homepage een leeg blokje verschijnen	//haal info uit cookie op (inloggegevens/poll)	createObjects( getCookie('NMT-website objecten') );	// Actueel	createList("home_actueel", 6, [0], NewsDb + "/vlNieuwsOpDatum", "", "bold")	createLinks("link_home_actueel", "actueelHP", "right clearboth meer meerpadded")	// Online diensten	createList("home_onlineDiensten", 1, [3], ComponentsDb + "/vlJSONComponenten", "onlinedienstenHP", "home") ;	// Inloggen	createLoginFormHP("loginMijnNMT");	createLoginFormHP("loginFenCS");  		 //als nog niet ingelogd, links zoals gedefini\u00EBerd in blokje InlogHP toevoegen	if (Username=="Anonymous") {		createLinks("link_home_login_NMT", "loginHP", "right clearboth meer wachtwoordvergeten")		createLinks("link_home_login_FenCS", "loginHP", "right clearboth meer wachtwoordvergeten")		}		// Wat biedt NMT	createPicture("pic_home_watbiedtnmt", "watbiedtNMTHP", false);	createList("home_watbiedtnmt", 1, [3], ComponentsDb + "/vlJSONComponenten", "watbiedtNMTHP", "home");	// Product v/d maand	createPicture("pic_home_productvdmaand", "productvandemaandHP", false);	createLinks("link_home_productvdmaand", "productvandemaandHP")	createSubHeader("productvdmaand", "productvandemaandHP", true, "productvdmaand")	// poll 	createPicture("pic_home_poll", "pollHP", false)	createSubHeader("pollH3", "pollHP")	createPoll("home_poll", pollHPBlokje)	// NMT vereniging 	createPicture("pic_home_vereniging", "nmtverenigingHP", false)	createLinks("link_home_vereniging", "nmtverenigingHP", "vereniging")		}//direct inloggen als wachtwoord in cookie staat; aangeroepen in onload van alle// pagina'sfunction autoLogin() {	username = getCookie("nmtusername");	userpw = getCookie("nmtpassword");		if ( userpw != "" && dispUsername == "Anonymous") {		loginblock = document.getElementById('loginBlock')				// als loginblock is null, dan is het de homepage			if (loginblock) { 			loginblock.innerHTML = dispLoginFieldset( true, "loginBlock", location, username, userpw, " checked")			login("loginBlock")		} else			login("loginMijnNMT") 	}}//algemene functie om van getoonde contentpagina evt toegevoegde blokjes te tonen //functions: alle JS functies die voor het cre\u00EBren van het blokje nodig zijn (array)function createBlocks( functions ) {//div 'contenttextBlock' verstoppen als er geen contenttekst is ingevuld voor deze pagina//	alert( document.getElementById("contenttext").value )//	if (document.getElementById("contenttext").innerHTML.replace(/ /g, "") == "")//		document.getElementById("contenttextBlock").style.display="none"		var ContentDiv = document.getElementById("contentBlocks");	var ColumnRightDiv = document.getElementById("relatedBlocks");	if (ContentDiv == null || ContentDiv == "undefined" || ColumnRightDiv == null || ColumnRightDiv == "undefined" )		return;	var showContentBlocks = true;	//als hash voorkomt MET DAARIN een dubbele punt (:) dan geen blokjes tonen, omdat	// div 'contentcontainer' dan gevuld gaat worden met 'doorklik'-html (zie onLoad contentpagina)	if (location.hash.indexOf("#")>-1 && location.hash.indexOf(":")>-1)		showContentBlocks = false;	//hetzelfde geldt voor querystring constructie &id=...-...		if (location.href.indexOf("&id=")>-1 && location.href.lastIndexOf("-")>location.href.indexOf("&id=") )		showContentBlocks = false;			  // als 'functions' is gevuld, dan is de pagina via Http request in een DIV geopend en moeten  // JSFuncties 'overschreven' worden (want: mogelijk andere blokjes)		if ( functions == null || functions == "undefined" ) {		if (showContentBlocks) createDIVs( JSFuncties.split("~"), ContentDiv );		createDIVs( JSFunctiesRechts.split("~"), ColumnRightDiv );	} else {		if (showContentBlocks) createDIVs( functions.split("~"), ContentDiv );			}	}//benodigde DIV'jes aanmaken; die daarn\u00E1 door de createXXX functies gevuld gaan worden	//functionList: alle benodigde JS Functies in string-array//parentDiv: de DIV waaronder de nieuwe DIVs gezet moeten wordenfunction createDIVs( functionList, parentDiv) { //OPMERKING!! producten landingspagina heeft andere HTML structuur dan de andere pagina's! //  slechts 1 <div block> voor alle blokken, terwijl de overige pagina's PER blok een <div block> hebben	var funcAll = "";									for (x=0; x < functionList.length; x++) {		f = functionList[x];						//voeg label toe; ID = ID van de parent + "Div" + een oplopend cijfer		var funcBlock = f.replace(/LABEL/g, parentDiv.id + "Div" + x)		//funcAll = alle functies van alle blokken		funcAll += funcBlock.substring( funcBlock.indexOf(";")+1, funcBlock.length);		//funcs = alle functies van \u00E9\u00E9n blok		var funcs = funcBlock.split(";"); 					if (group != "Producten") {  	//zie opmerking boven			//nieuwe <div block class=XXX> toevoegen aan document; XXX = eerste item in funcs-lijst			// in dit div'je zal de complete inhoud van het blokje gezet worden			newBlockDiv = document.createElement("div")			newBlockDiv.className = funcs[0];			parentDiv.appendChild( newBlockDiv)					}				// als het blokje aan de rechterkant staat, moet class 'relatedblock' extra toegevoegd worden		if (parentDiv.id == "relatedBlocks" && funcs!="") {			if (group=="Producten") newBlockDiv = document.createElement("div")								newBlockDiv.className += " relatedblock"			//alle rechter blokjes extra witruimte erboven			newBlockDiv.className += " twenty_px_horizontal_spacer"		}							//alle DIVs van \u00E9\u00E9n blok die door createXXX functies gevuld moeten gaan worden onder de		// zojuist aangemaakte newBlockDiv hangen (m.u.v. producten; die rechtstreeks onder parent hangen)		for (y=1; y < funcs.length; y++) {						if (funcs[y].indexOf("_") > 0) {				newDiv = document.createElement("div")				newDiv.id = parentDiv.id + "Div" + x + funcs[y].substring( funcs[y].indexOf("_"), funcs[y].indexOf("',") )					if (group=="Producten")   	//zie opmerking boven					parentDiv.appendChild(newDiv)				else 					newBlockDiv.appendChild(newDiv)			} // als geen "_", dan functie uitvoeren zonder eerst een DIV aan te maken			}			}	//alle DIV's benodigd voor alle functies voor alle blokken zijn aangemaakt;	// die functies kunnen NU dus in \u00E9\u00E9n keer (volgorde onbelangrijk) allemaal uitgevoerd worden	if (funcAll != "") eval(funcAll);	//inlogblokje op elke contentpagina rechstboven; DIV met id "loginBlock" moet dus altijd aanwezig zijn	createLoginForm( "loginBlock", location, FenCSLink, MijnNMTLink )}//toon en verstop elementen//IDs: lijst met te tonenelementen//notIDs: lijst met te verstoppen elementen function showElement(IDs, notIDs ) {	if (IDs != null) {		for (x=0; x < IDs.length; x++) 			document.getElementById(IDs[x]).style.display=""	}		if (notIDs != null) {		for (y=0; y < notIDs.length; y++) 			document.getElementById(notIDs[y]).style.display="none"	}}//functie maakt het zoek header veld leeg//obj: Object dat moet worden leeggemaaktfunction empty(obj) {	if(obj.value!="") obj.value =""}//hide when functie op basis van een criterium//obj: Object dat moet worden gehide//whenString: wanneer de binnekomende string gelijk hieraan is, wordt het object gehide, wordt gebruikt bij Uw wachtwoord...function emptyWhen(obj, whenString) {	if(obj.value==whenString) obj.value=""}//label = DIVje die gehide moet worden//arg: eventueel een veld waarop gefocused moet worden als het label is gehide [optioneel]function hideWachtwoordTekst(label, arg){	var obj = document.getElementById("wachtwoordtekst_"+label)	obj.style.display = "none";	if(arg)	{		var objFocus = document.getElementById(arg)		objFocus.focus()	}}//hoofdmenu opbouwen (= menu bovenin)function buildMainMenu() {	if (document.getElementById("menu") == null || document.getElementById("menu")=="undefined")		return;			//HTML start	var menuHTML = "<ul id=\"menu_li\">"		var URL = CMSDb + "/vlJSONNavigatieHoofd?readViewEntries&outputformat=JSON&count=-1";	HTTPArray["menu"] = getHTTPObject();			if (HTTPArray["menu"] != null) {		HTTPArray["menu"].open("GET", URL, true);							HTTPArray["menu"].onreadystatechange = function() {			var menuClass = "";			var menuItem = "";			var groupNaam = "";			var menuLink = "";			var lastGroupNaam = "";						if ( HTTPArray["menu"].readyState == 4 || HTTPArray["menu"].readyState == "complete" ) {				try {					var resp = HTTPArray["menu"].responseText;					var viewObject = eval("(" + resp + ")");					var entries = viewObject["viewentry"];					if (entries != null) {						//door menu-entries heen lopen (= rijen in de view 'vlJSONNavigatieHoofd')									for (x=0; x < entries.length; x++) {																//groupnaam staat in eerste kolom							groupNaam = entries[x].entrydata[0].text[0]									var menuID = getID( groupNaam)								menuClass = getClassName( groupNaam)[0]																			//als tweede kolom leeg is; is pagina op hoofdniveau aangemaakt en							// dus een 'landingspagina' 							if (entries[x].entrydata[1].text[0] == "") {													if (groupNaam != lastGroupNaam) { //hoofdmenu-item moet uniek zijn																	//kolom4 bevat urlsubject, nodig voor link									menuLink = getLink( groupNaam, entries[x].entrydata[2].text[0] );																	//HTML bouwen									if (x > 1) menuHTML += "</ul></li>"									menuHTML += "<li " + menuID + "><a href=\"" + menuLink + "\" " + menuClass + "><span style=\"display:inline\">" + groupNaam + "</span></a><ul>"									lastGroupNaam = groupNaam									}																//tweede kolom is een 'level 1' item; als subitem in hoofdnavigatie toevoegen							} else {									groupNaam = entries[x].entrydata[0].text[0]										menuNaam = entries[x].entrydata[1].text[0]										menuLink = getLink( groupNaam, entries[x].entrydata[2].text[0])								menuHTML += "<li><a href=\"" + menuLink + "\">" + menuNaam + "</a></li>"								} 						}											menuHTML += "</ul></li></ul>"											}					//alert(menuHTML)										document.getElementById("menu").innerHTML = menuHTML														//voor IE					var version = navigator.userAgent;					var findIE = version.indexOf('MSIE');										if(findIE != -1) startList();																	} catch (err) {					//alert(err)										document.getElementById("menu").innerHTML = " <fout bij aanmaken hoofdmenu> "				} 			}				}			HTTPArray["menu"].send(null)		}}//'HARD' GECODEERDE ONDERDELEN - HOOFDMENU-ITMES (groups) EN BIJBEHORENDE HTML classes/images/links/id's//bepaal te tonen plaatje in linkermenu op basis van group//groupnaam = Naam van de groep in het menufunction getImage( groupnaam ) {	switch (groupnaam.toLowerCase()) {		case "actueel":			return "<h2><img src=\"" + SharedDb + "/h2_actueel_purple.gif\" alt=\"Actueel\" /></h2>"		case "producten":			return "<h2><img src=\"" + SharedDb + "/h2_producten.gif\" alt=\"Producten\" /></h2>"		case "online diensten":				return "<h2><img src=\"" + SharedDb + "/h2_online_diensten_green.gif\" alt=\"Online diensten\" /></h2>"		case "richtlijnen en contracten":			return "<h2><img src=\"" + SharedDb + "/h2_richtlijnen_&_contracten.gif\" alt=\"Richtlijnen en contracten\" /></h2>"		case "vereniging":			return "<h2><img src=\"" + SharedDb + "/h2_nmt_vereniging_afdelingen.gif\" alt=\"NMT Vereniging\" /></h2>"		case "pati\u00EBnteninfo":			return "<h2><img src=\"" + SharedDb + "/h2_patienteninfo.gif\" alt=\"Pati\u00EBnteninformatie\" /></h2>"				case "mijn nmt":			return "<h2><img src=\"" + SharedDb + "/h2_mijnnmt.gif\" alt=\"Mijn NMT\" /></h2>"		case "zoeken":			return "<h2><img src=\"" + SharedDb + "/h2_zoekresultaten.gif\" alt=\"Zoeken\" /></h2>"		case "english":			return "<h2><img src=\"" + SharedDb + "/h2_english.gif\" alt=\"&nbsp;English\" /></h2>"		case "faq":			return "<h2><img src=\"" + SharedDb + "/h2_faq.gif\" alt=\"FAQ\" /></h2>"			case "disclaimer":			return "<h2><img src=\"" + SharedDb + "/h2_disclaimer.gif\" alt=\"disclaimer\" /></h2>"						default:				return "<h2><img src=\"" + SharedDb + "/h2_zoekresultaten.gif\" alt=\"Zoeken\" /></h2>"		}}//bepaal classes op basis van group// return [ class-html voor A-tag voor hoofdmenu, classnaam voor DIV-tag voor menu aan de linkerkant]//grounaam = Naam van de groep in het menufunction getClassName( groupnaam ) {	switch (groupnaam.toLowerCase()) {		case "actueel":			return ["class=\"actueel\"", "purple_background block left purple normal"]		case "producten":			return ["class=\"producten\"", "purple_background block left purple normal"]		case "online diensten":				return ["class=\"onlinediensten\"", "block onlinediensten_menu left"]		case "richtlijnen en contracten":			return ["class=\"richtlijnencontracten\"", "block richt_menu left"]		case "vereniging":			return ["class=\"menuvereniging\"", "purple_background block left purple normal"]		case "pati\u00EBnteninfo":			return ["class=\"patienteninfo\"", "block patienteninfo_menu left"]		case "mijn nmt":			return ["class=\"mijn_nmt\"", "block mijn_menu left"]		case "zoeken":			return ["class=\"zoeken\"", "gray_bg block left normal"]		//	case "english":	//		return ["class=\"english\"", "gray_bg block left normal"]				case "faq":			return ["class=\"faq\"", "purple_background block left purple normal"]						default:				return ["class=\"zoeken\"", "gray_bg block left normal"]		}}//bepaal link (content in bepaalde view) op basis van group //groupnaam = Naam van de groep in het menu//pagina = Naar welke pagina gemapped moet wordenfunction getLink( groupnaam, pagina ) {	switch(groupnaam.toLowerCase()) {		case "actueel":			return "/actueel/" + pagina		case "producten":			return "/producten/" + pagina		case "online diensten":				return "/onlinediensten/" + pagina		case "richtlijnen en contracten":			return "/richtlijnen/" + pagina		case "vereniging":			return "/vereniging/" + pagina		case "pati\u00EBnteninfo":			return "/patienteninfo/" + pagina		case "mijn nmt":			return "/mijnnmt/" + pagina		case "zoeken":			return "/zoeken/" + pagina		case "english":			return "/english/" + pagina		case "faq":			return "/faq/" + pagina			case "disclaimer":			return "/disclaimer/" + pagina						default:				return "/zoeken/" + pagina	}}//bepaal id naam voor <LI> tag op basis van group//groupnaam = Naam van de groep in het menufunction getID( groupnaam) {	switch ( groupnaam.toLowerCase()) {		case "actueel":			return "id=\"actueel\""		case "producten":			return "id=\"producten\""		case "online diensten":				return "id=\"onlinediensten\""		case "richtlijnen en contracten":			return "id=\"richtlijnencontracten\""		case "vereniging":			return "id=\"menuvereniging\""		case "pati\u00EBnteninfo":			return "id=\"patienteninfo\""				case "mijn nmt":			return "id=\"mijnnmt\""		case "zoeken":			return "id=\"zoeken\""		//	case "english":	//		return "id=\"english\""						default:				return "id=\"zoeken\""			}}//ga naar homepage//logout = (boolean)true=uitloggenfunction goHome(logout) {	if (logout) window.location = "/?logout"	else window.location = "/index.html" }//afvangen click-event in een DIV (DIV onClick='return catchClick(<label>, event)//label = plek op de pagina; indien "NORMAL" dan wordt de URL 'normaal' geopend//e = clickEvent function catchClick(label, e) {	if (!e) var e = window.event 	if (e.srcElement) 		URL = new String(e.srcElement);	else if (e.target) 		URL = new String(e.target);	else 		URL = new String(e.currentTarget);		//als binnen link andere tags zitten (bijv. <a><span> en/of <a><span><strong>) 	// IE vs FF	if (navigator.appName== "Microsoft Internet Explorer") {			if (e.srcElement.type == "radio") return true;			if (e.srcElement.tagName.toLowerCase() != "a") {			if (e.srcElement.parentNode.tagName.toLowerCase() == "a")				URL = e.srcElement.parentNode.href			else if (e.srcElement.parentNode.parentNode.tagName.toLowerCase() == "a")				URL = e.srcElement.parentNode.parentNode.href		}				} else { 		if (e.target.type == "radio") return true;		if (e.target.tagName.toLowerCase() != "a") {			parent = e.target.parentNode			URL = parent.tagName.toLowerCase()=="a"? parent : parent.parentNode		}		}		URL = ""+URL+""	//'stringify', voorkomt fout 'indexOf is not a function'	//'normaal' openen als:	// - er op een radiobutton geklikt is (type='radio')	// - er op een link geklikt is die een javascript functie uit moet voeren (en geen pagina opent)	// - URL leeg is (omdat er niet op een link geklikt is, maar ergens willekeurig in de div)	// - een contentpagina wordt geopend die ook rechtstreeks onder het menu te openen is  	if (URL.indexOf( "javascript:") > -1)  return true; 	if (URL.indexOf( "mailto:") == 0)  return true; 		var openNew = URL.substring(5, URL.length).indexOf(":") < 0	if ( URL=="" || openNew ) {		//als doorgeklikt naar dezelfde URL, maar met gewijzigde #-toevoeging, dan 'geforceerd' reloaden		// anders wordt de # niet uitgevoerd (een hash wijziging zorgt niet voor een reload)		if ( URL.substring(0, URL.indexOf("#")) == location.href) {			location.hash = URL.substring( URL.indexOf("#"), URL.length)			if (location.hash.indexOf(":")>-1) location.reload();		} else			return true 	} else 		return openURL( label, URL )	}//URL openen en resultaat in DIV (met id 'label') zetten//label = plek op de pagina//URL = de te openen URLvar globalURLItem = "";function openURL ( label, URL ) {	var id = "";	var hash = "";			//hieronder wordt de te openen URL samengesteld	//juiste pagina openen uit een bepaalde database, te herkennen a.d.h.v. id achter hash	if (URL.indexOf("#nieuws:")>-1) { 		globalURLItem = "nieuws"		id = URL.substring( URL.indexOf("#nieuws:")+8, URL.length);		hash = URL.substring( URL.indexOf("#nieuws:"), URL.length);			if(hash.indexOf("^^zoeken")>-1)			id = id.replace("^^zoeken", "!OpenDocument&^^zoeken")			URL = NewsDb + "/0/" + id 			} else if (URL.indexOf("#agenda:")>-1) {		globalURLItem = "agenda"		id = URL.substring( URL.indexOf("#agenda:")+8, URL.length);		hash = URL.substring( URL.indexOf("#agenda:"), URL.length);		URL = KWISDb + "/0/" + id					} else if (URL.indexOf("#ka:")>-1) {		globalURLItem = "ka"		id = URL.substring( URL.indexOf("#ka:")+4, URL.length);		hash = URL.substring( URL.indexOf("#ka:"), URL.length);		URL = KWISDb + "/0/" + id					} else if (URL.indexOf("#tandarts:")>-1) {		globalURLItem = "tandarts"		id = URL.substring( URL.indexOf("#tandarts:")+10, URL.length);		hash = URL.substring( URL.indexOf("#tandarts:"), URL.length);		URL = RBSDb + "/0/" + id 			} else if (URL.indexOf("#bibliotheek:")>-1) {		globalURLItem = "bibliotheek"		id = URL.substring( URL.indexOf("#bibliotheek:")+13, URL.length);		hash = URL.substring( URL.indexOf("#bibliotheek:"), URL.length);		URL = DSDb + "/0/" + id 		} else if (URL.indexOf("#vacature:")>-1) {  					globalURLItem = "vacature"		id = URL.substring( URL.indexOf("#vacature:")+10, URL.length);		hash = URL.substring( URL.indexOf("#vacature:"), URL.length);		URL = NTVBDb + "/0/" + id 			} else if (URL.indexOf("#product:")>-1) {		globalURLItem = "product"		id = URL.substring( URL.indexOf("#product:")+9, URL.length)		hash = URL.substring( URL.indexOf("#product:"), URL.length)		URL = ProductDb + "/0/" + id 			} else if (URL.indexOf("#column:")>-1) {		globalURLItem = "column"		id = URL.substring( URL.indexOf("#column:")+8, URL.length)		hash = URL.substring( URL.indexOf("#column:"), URL.length)		URL = NewsDb + "/0/" + id			} else if (URL.indexOf("#klachtenmodule:")>-1) {		globalURLItem = "klachtenmodule"		id = URL.substring( URL.indexOf("#klachtenmodule:")+16, URL.length)		hash = URL.substring( URL.indexOf("#klachtenmodule:"), URL.length)		URL = KISDb + "/0/" + id			} else if (URL.indexOf("#PBS:")>-1) {		globalURLItem = "PBS"		id = URL.substring( URL.indexOf("#PBS:")+5, URL.length)		hash = URL.substring( URL.indexOf("#PBS:"), URL.length)		URL = PBSDb + "/0/" + id 	}		//evt meegestuurde querystring er uit halen	if (id.indexOf("&") > -1) 		URL = URL.substring(0, URL.indexOf("&") )			//hieronder wordt de zojuist samengestelde URL uitgevoerd en het resultaat	//in de div met id 'label' gezet	HTTPArray[label] = getHTTPObject();	if (HTTPArray[label] != null) {	   HTTPArray[label].open("GET", URL, true);					   HTTPArray[label].onreadystatechange = function() {		if ( HTTPArray[label].readyState == 4 || HTTPArray[label].readyState == "complete" ) {			try {							//afvangen of er \u00FCberhaupt wel op een link geklikt is				if (HTTPArray[label].status == "404") return false;					//filter alleen de HTML die we nodig hebben				resps = getAJAXHTML( HTTPArray[label].responseText );				resps[0] = resps[0].replace(/&lt;/g, "<")				resps[0] = resps[0].replace(/&gt;/g, ">")							   //Hieronder volgen specifieke acties nadat de url is uitgevoerd en de html is			   // opgehaald -> de acties worden bepaald a.d.h.v. het herkennen van			   // woorden uit de URL, hash of de html die opgehaald is.			   // Ze voegen extra html en functionaliteit toe aan de pagina					   //reacties + reactieformulier toevoegen bij nieuwsberichten of columns				if ( resps[0].indexOf("loginform") > -1)  //niet bij inlogscherm					document.getElementById(label).innerHTML = resps[0]																	else {														//reacties op nieuwsbericht					if (hash.indexOf("#nieuws")>-1) {						resps[0] += addReactieForm("nieuws:" + id)						document.getElementById(label).innerHTML = resps[0]										getReacties("nieuws:"+id, "NoCache")					} 																												//reacties op column					else if (hash.indexOf("#column")>-1) {						resps[0] += addReactieForm("column:" + id)						document.getElementById(label).innerHTML = resps[0]									getReacties("column:"+id, "NoCache")						} 											//geen column of nieuwsbericht - dan geen reactiediv 					else						document.getElementById(label).innerHTML = resps[0]				} 																			   //wijzig id van label naar "NMTKwis" als het een KA betreft			   // dit is nodig i.v.m. layout/stylesheet				if (hash.indexOf("#ka")>-1) {					var cur = document.getElementById(label)					cur.setAttribute("id","NMTKwis") 					//als via iFrame is aangeroepen (voor KRT site) "kwis aanbod" niet tonen					if (IFRAME) { 					    document.getElementById("head").style.display="none"					 	document.getElementById("KWISText").style.display="none"   					}  				}								   //voeg werkverbanden toe als het een profiel betreft				if (hash.indexOf("#tandarts")>-1 && Username != "Anonymous") {					//nieuwe div voor werkverbanden toevoegen					// alleen als tandarts dat heeft toegestaan; dit gegeven staat in de					// div 'toonWerkverbanden'					var toonWV = document.getElementById("toonWerkverbanden")					if (toonWV == null || toonWV == "undefined" || toonWV.innerHTML==0) {}					else {																					var cont = document.getElementById(label)						var newdiv = document.createElement("div")						newdiv.className = "block double onlinecontent CBharmonica"						newdiv.id = "werkverbanden"						cont.appendChild(newdiv)												//nieuwe div vullen met werkverbanden						newdiv.innerHTML = "<img src=\"" + SharedDb + "/ajaxloaderec5.gif\">"						addWerkverbanden("werkverbanden", "tandarts:" + id)  					}				}								   //vul naam in als gebruiker niet anoniem is en het een reactieformulier betreft				if (URL.toLowerCase().indexOf("contact.html")>-1 && Username != "Anonymous") 					document.getElementById("naam").innerHTML = dispUsername																													   //voeg links naar oudere KA overzichten toe als het een KA overzicht betreft				if (URL.toLowerCase().indexOf("overzichtstamnr")>-1) {					//nieuwe div aanmaken					var cont = document.getElementById(label)					var newdiv = document.createElement("div")					newdiv.classname= "footer_list"					newdiv.id = "overzichtlinks"					cont.appendChild(newdiv)																	var blokjeindex = URL.indexOf("&blokje=")+8					var blokje = URL.substring( blokjeindex, URL.length)					var jaarindex = URL.indexOf("~")+1					var jaar = URL.substring( jaarindex, jaarindex+4)					//nieuwe div vullen met evt voorgaande jaren					addKAOverzichten("overzichtlinks", blokje, jaar)										//als het overzicht in een iFrame wordt getoond (in KRT site) dan					//  het plaatje met de "Mijn KWIS" tekst weghalen					if (IFRAME) {						var jaar = 						"<span style='font-family:arial;font-size:12pt;color:#008ba7;margin-left:20px;top:-1px'>" +						jaar + "</span>"						document.getElementById("KWISText").innerHTML = jaar 					} else 						document.getElementById("KWISText").style.marginBottom="50px"				}													   //voeg bewerkbutton toe als het een nieuws- of agendabericht betreft				if (hash.indexOf("#nieuws")>-1 || hash.indexOf("#agenda")>-1) {					// alleen als het bericht oorspronkelijk ook via de site is aangemaakt					if( document.getElementById("WebAuthor").innerHTML == "[Web_editors]") {								//alleen voor bestuursleden van de juiste afdeling 										var newsAfdelingList = document.getElementById("Afdeling").innerHTML.replace(/ /g, "")						var newsAfdelingen = newsAfdelingList.split(";")												//kringen						//var newsKringList = document.getElementById("Kring").innerHTML.replace(/ /g, "")						//var newsKringen = newsKringList.split(";")												if (Userroles.indexOf("[Web_editors]")>-1 && isMember(constAfdeling, newsAfdelingen) ) 							document.getElementById("editButton").style.display = ""					}				}								   //blokjes van de nieuwe pagina toevoegen als die daar aanwezig zijn				if (resps[1] != "") createBlocks( resps[1]); 			   //hash in url overnemen indien aanwezig (plaatst ook evt querystring terug)				if (hash!="") location.hash = hash 												   //tabs (wizard) functie aanroepen als een aanmeldformulier wordt geopend				if (URL.indexOf("aanmelden")>-1) 					wizard (document.getElementById("aanmelden")); 					   //'hide-whens' aanroepen als het een PBS-aanbod betreft;				if (hash.indexOf("#PBS")>-1) 					hidewhensPBSDocument();																												} catch (err) {				//  alert( err )				 return false;			}		}			   }		   HTTPArray[label].send(null)	} 	return false;	}//FAQ landingspagina openen, door uit navigatie-view de contentpagina voor FAQ hoofdniveau op te halen//metalinkpage = "FAQ", "English", "Sitemap", "Contact", "Disclaimer"function openMetaLink( metalinkpage) {	if (document.getElementById("contentcontainer") == null || document.getElementById("contentcontainer") == "undefined") {		//even de homepage overhoop gooien om form ook daar te kunnen tonen		var body = document.getElementsByTagName("body")		body[0].className = "zoeken"		var content = document.getElementById("content")		content.id = "contentcontainer"		content.classname= "right"	}			if (metalinkpage=="Sitemap") 		openURL("contentcontainer", CMSDb + "/Sitemap.html")		 	 	else if (metalinkpage=="Contact") 		openURL("contentcontainer", CMSDb + "/contact.html!OpenForm")		else if (metalinkpage=="ContactMeta") 		location.href = "/vereniging/contact---route.html"		else if (metalinkpage=="Disclaimer") 		location.href = "/disclaimer/disclaimer.html"		else { 		var newpage = getHTTPObject()			if (newpage != null) {			newpage.open("GET", CMSDb + "/vlJSONNavigatieTotaal?readviewentries&outputformat=JSON&restricttocategory=" + metalinkpage, true);							newpage.onreadystatechange = function() {				if ( newpage.readyState == 4 || newpage.readyState == "complete" ) {					try {						var resp =  newpage.responseText ;				 		var viewObject = eval("(" + resp + ")");						var entries = viewObject["viewentry"];											//landingspagine voor gekozen metalink openen						if (entries != null) {							var page = entries[0].entrydata[3].text[0]							window.open( "/" + metalinkpage.toLowerCase() + "/" + page, "_self")						}																	} catch(err) {						// alert( err )						return;					}				}			}			}		newpage.send(null)	}}//Functie voor het openen van bijlagen ( uit de media )//bijlageURL = URL die moet worden uitgevoerdfunction bijlage( bijlageURL, ACLGroup ) {	var loginRequired = true	if (ACLGroup == null || ACLGroup == "" || ACLGroup == "*")  loginRequired = false	var strUsername	= Username;	//Globale var op content form	var strPageURL = document.URL;	var strPageReference = "Attachment"; 	var strPageTask	= "Download";	//=== Bepaal bestandsnaam van de bijlage	var strLogExtra	= bijlageURL.substring( bijlageURL.lastIndexOf("/") + 1);	//=== Vervang nu alle spaties door een underscore	strLogExtra	= strLogExtra.replace( / /g, "_");		var strLogURL = 'custid=' + strUsername + '&url=http://' + strPageURL + '&source=' + strPageReference + '&task=' + strPageTask + '&extra=' + strLogExtra;	//send log url	//track( strLogURL );	dcsMultiTrack("WT.DCSExt.Bijlage", bijlageURL);		pageTracker._setCustomVar(2, "Bijlage geopend", bijlageURL.substring( bijlageURL.indexOf("/")+1, bijlageURL.length, 3))    pageTracker._setCustomVar(3, "Username", dispUsername, 3)	pageTracker._trackPageview()	if (loginRequired && Username == "Anonymous")		alert( "Log eerst in (rechtsboven) en klik daarna pas op de link van het document." )	else			window.open( bijlageURL );}// Core voor javascriptfunctionaliteiten, roept automatisch overige scripts aan en wordt geinitialiseerd middels de init()function classBehaviour(){	//the handler names and handler arrays	this.name = 'libClassBehaviour';	this.initialized = false;	this.handlerNames = ["first"];	this.handlers = [];		//crossbrowser vars	this.isDOM = document.getElementById?true:false;	this.isIE = document.all?true:false;	this.allNodes = this.isDOM?document.getElementsByTagName("*"):document.all;		if(document.all && navigator.appVersion.lastIndexOf('MSIE 6.0') != -1){	    document.write('<span class="CBinit" />');	}		//initialize	this.includeHandlers(this.allNodes);	}classBehaviour.prototype.includeHandlers = function(allNodes){	// for all tags	for(var n=0; n<allNodes.length; n++){		inc = false;		// if the item has a className		if(allNodes[n].className){					nodeClasses = allNodes[n].className.split(" ");			//for each class of the element			for(s = 0; s < nodeClasses.length; s++){				if(nodeClasses[s].substr(0,2) == 'CB'){							for(h = 0; h < this.handlerNames.length; h++){						if(this.handlerNames[h] == nodeClasses[s].toLowerCase().substr(2)){							nodeClasses[s] = "";						}else{							inc = true;						}					}				}else{					nodeClasses[s] = "";				}			}			if(inc){				for(x = 0; x < nodeClasses.length; x++){					if(nodeClasses[x] != ""){						document.write('\n<script type="text\/javascript" src="' + SharedDb + "/" + nodeClasses[x].toLowerCase().substr(2) + '.js"><\/script>');						this.handlerNames[this.handlerNames.length] = nodeClasses[x].toLowerCase().substr(2);					}				}			}		}	}	document.write('');	//set an interval for IE to load CB	document.write('<script type="text\/javascript">I = setInterval("if(CB.initialized){clearInterval(I);CB.parseDocument();};", 50);<\/script>');}// parse the document for classnamesclassBehaviour.prototype.parseDocument = function(){	// for all tags	for(var n=0; n<this.allNodes.length; n++){		inc = false;		// if the item has a className		if(this.allNodes[n].className){			nodeClasses = this.allNodes[n].className.split(" ");			//for each class of the element			for(s = 0; s < nodeClasses.length; s++){				if(nodeClasses[s].substr(0,2) == 'CB'){					for(h = 0; h < this.handlerNames.length; h++){						nodeClass = nodeClasses[s].toLowerCase().substr(2);						// if the behaviour's name exists in the class name, apply it's events						if(nodeClass == this.handlerNames[h]){							this.handlers[this.handlers.length] = eval('new ' + this.handlerNames[h] + '(this.allNodes[n])');						}					}				}			}		}	}}classBehaviour.prototype.getClassParameter = function(targetNode, paramName, defaultValue){	// get the class parameter from the classname	var classParameter = targetNode.className;	// split the classname between the parameter name	classParameter = classParameter.split(paramName + '_');	// split the second piece between spaces and take the first part,  if there are two pieces	classParameter = (classParameter.length>1) ? classParameter[1].split(' ')[0] : null ;	// return the value	return (classParameter!=null) ? classParameter : defaultValue ;}	classBehaviour.prototype.getParentNode = function(node){	prnt = node.parentNode;	while(prnt.className.lastIndexOf('parentNode') == -1){		prnt = prnt.parentNode;		if(prnt.nodeName == 'BODY'){			break;		}	}	return prnt;}	classBehaviour.prototype.getElementsByClassName = function(node, classname){	allNodes = node.getElementsByTagName("*");	nodes = [];	CBcnt = allNodes.length;	for(q = 0; q < CBcnt; q++){		classes = allNodes[q].className.split(' ');		for(n = 0; n < classes.length; n++){			if(classes[n] == classname){				nodes[nodes.length] = allNodes[q];			}		}	}	return(nodes);}// Initialisatie van Javascriptfunctionaliteiten// Functie wordt globally aangeroepenfunction init(){	if(CB)	{		CB.initialized = true;	}}var CB = new classBehaviour();if(navigator.appVersion.lastIndexOf('MSIE 6.0') == -1){    init();}/*TIMER FUNCTION FOR COMMON USE*///d = DIV die geanimate moet wordenfunction animate(d) {	this.d = d;		this.time = 0;	var self = this;	if(!this.lock){		if(!this.d){			this.node.insertBefore(this.items[this.items.length - 1], this.items[0]);			this.node.style.left = -(this.itemWidth) + 'px';			this.node.style.clip = 'rect(0px ' + (this.itemWidth * 2) + 'px 200px ' + this.itemWidth + 'px)';					}		this.counter = setInterval(function() {			self.update();		}, 1);		this.lock = true;	}}function update(time) {	this.time += time;	deltaX = 15; //(5 * -Math.cos(this.Period * this.time)) + 5;	switch(this.direction){		case 'right':			if(this.d?parseInt(this.node.style.left) > -this.itemWidth:parseInt(this.node.style.left) < 0){				this.node.style.left = this.d?(parseInt(this.node.style.left) - deltaX + 'px'):(parseInt(this.node.style.left) + deltaX + 'px') ;				this.node.style.clip = this.d?('rect(0px '+(this.itemWidth-(parseInt(this.node.style.left)))+ 'px ' + this.itemHeight + 'px ' + Math.abs(parseInt(this.node.style.left)) + 'px)'):('rect(0px '+(250-(parseInt(this.node.style.left)))+'px ' + this.itemHeight + 'px '+(-Math.abs(parseInt(this.node.style.left))) + 'px)');			}else{				clearInterval(this.counter);				if(this.d){					this.node.appendChild(this.items[0]);				}				this.node.style.left = 0;				this.node.style.clip = 'rect(0px 250px 200px 0px)';				this.setActive(this.d);				this.lock = false;			}			break;			}}//if(navigator.appVersion.lastIndexOf('MSIE 6.0') == -1){//   init();//}// Algemene Validatie functie (wel/niet ingevuld)// controleert verplichte velden in een bepaald element (div, tabel,...)// velden in dat element met attribute "verplicht=<tekst>" zijn de verplichte velden// In de foutmelding worden alle niet-ingevulde velden genoemd a.d.h.v. de tekst in <tekst>//id = ID van het elementfunction validateElementById( id ) {	if (document.getElementById(id) == null || document.getElementById(id) == "undefined")		return;	var verplichtevelden = ""	//tekst, radio, checkbox	var fields = document.getElementById(id).getElementsByTagName("input")	var lastField = ""		//om dubbele meldingen bij radiovelden te voorkomen	var check = true		//als gecontroleerd moet wordan als aan bepaalde voorwaarde is voldaan				for (x=0; x < fields.length; x++) {		verplicht = fields[x].getAttribute("verplicht")			conditie = fields[x].getAttribute("conditie") 						if (verplicht != null && verplicht!="" && lastField != fields[x].getAttribute("name")) {			//als er een voorwaarde is ingevuld, dan eerst kijken of daar aan wordt voldaan			check = (conditie == null || conditie == "")? true : eval("("+conditie+")")							if (check) { 				if (fields[x].type == "radio" || fields[x].type == "checkbox") 					verplichtevelden += validateRadio( fields[x])? "" : verplicht + "\n"					else 					verplichtevelden += fields[x].value==""? verplicht + "\n" : ""										lastField = fields[x].getAttribute("name")				}				}	}			//select 	var selects = document.getElementById(id).getElementsByTagName("select")		for (y=0; y < selects.length; y++) {		verplicht = selects[y].getAttribute("verplicht")		conditie = selects[y].getAttribute("conditie")		if (verplicht != null && verplicht != "") {			//als er een voorwaarde is ingevuld, dan eerst kijken of daar aan wordt voldaan			check = (conditie == null || conditie == "")? true : eval("("+conditie+")")					if (check) {					if (selects[y].selectedIndex == -1) 					verplichtevelden += verplicht + "\n"				else if (selects[y].options[selects[y].selectedIndex].innerHTML == "")					verplichtevelden += verplicht + "\n"			}				}	}	//textarea	var areas = document.getElementById(id).getElementsByTagName("textarea")		for (z=0; z < areas.length; z++) {		verplicht = areas[z].getAttribute("verplicht")		conditie = areas[z].getAttribute("conditie")				if (verplicht != null & verplicht != "") {			//als er een voorwaarde is ingevuld, dan eerst kijken of daar aan wordt voldaan			check = (conditie == null || conditie == "")? true : eval("("+conditie+")")			if (check) verplichtevelden += areas[z].value==""? verplicht + "\n" : ""		}			}				if (verplichtevelden == "") return true	alert( "De volgende velden zijn verplicht:\n\n" + verplichtevelden.replace(/_/g, " ") )		return false	}//filename = URL van de filename die geladen moet worden//filetype = "js" of "css"function loadjscssfile(filename, filetype){	if (filetype=="js"){ //if filename is a external JavaScript file		var fileref=document.createElement('script')	  	fileref.setAttribute("type","text/javascript")	  	fileref.setAttribute("src", filename)	  		} else if (filetype=="css"){ //if filename is an external CSS file	  	var fileref=document.createElement("link")	  	fileref.setAttribute("rel", "stylesheet")	  	fileref.setAttribute("type", "text/css")	 	fileref.setAttribute("href", filename)	} 	if (typeof fileref!="undefined")		document.getElementsByTagName("head")[0].appendChild(fileref)	return true}function checkSyntax(arg){	//deze functie wordt de query gecleanend en in Notes Format voorbereid	t_cleanedquery = escape(GoogleToNotesSearch.parse(arg));		return t_cleanedquery;	}/*USAGE : GoogleToNotesSearch.init(new Array('myfield1', 'myfield2'));	  GoogleToNotesSearch.parse("my -google \"search query\"");*/var GoogleToNotesSearch = {	query : "",	fields : null,	init : function(fields) {		this.fields = fields ;	},	trim : function(str) {		return str.replace(/^\s*([\s\S]*\S+)\s*$|^\s*$/,'$1') ;	},	parse : function(query) {		this.query = query ;		try {			var gQuery, tQuery ;			// trim, on remplace tous les espaces (doubles et + y compris) par des symb\uFFFDles _#_			gQuery = this.trim(this.query).replace(/ ( )*/g, "_#_") ;				// on remplace tous les symb\uFFFDles _#_ compris entre guillemets par des '_@_'			oQuery = "" ;			while (oQuery != gQuery) {				oQuery = gQuery ;				gQuery = gQuery.replace(/"(.*?)_#_(.*?)"/g, "\"$1_@_$2\"");			}			// transformation des '_#_' en ' AND '				gQuery = gQuery.replace(/_#_/g, " AND ") ;								// transformation des ' -' en ' NOT '				gQuery = gQuery.replace(/ \-(\w)/g, " NOT $1") ;			// transformation des ' | ' en ' OR '				gQuery = gQuery.replace(/ \| /g, " OR ") ;			gQuery = gQuery.replace(/ AND OR /g, " OR ") ;			gQuery = gQuery.replace(/ OR AND /g, " OR ") ;			// transformation des '"..."' en '... '	(retrait des guillemets)			gQuery = gQuery.replace(/"(.*?)"/g, "$1") ;				// des champs ont \uFFFDt\uFFFD pr\uFFFDcis\uFFFDs, on modifie la requ\uFFFDte en cons\uFFFDquence			if (this.fields != null && this.fields.length > 0) {				var tQuery = gQuery.split(" ");				for (var i=0 ; i<tQuery.length ; i++) {					var val = tQuery[i];						if (val == "AND" || val == "OR" || val == "NOT") 						continue ;					tQuery[i] = "(";						for (var j=0 ; j<this.fields.length ; j++) {						tQuery[i] += "[" + this.fields[j] + "]=" + val + " OR ";									}					tQuery[i] = tQuery[i].substring(0, tQuery[i].length - 4) + ")";				}						gQuery = tQuery.join(" ");			}			// transformation des '_@_' en ' '	(au sein des guillemets, donc)			gQuery = gQuery.replace(/_@_/g, " ") ;				// toegevoegd: nog wat tekens die niet voor mogen komen in zoekterm			gQuery = gQuery.replace(/<|>|@|\(|\)/g, "");				return gQuery ;		}		catch (exception) {			return this.query ;		}			}	}