function checkClick() {
	/* er wordt een regeling gevraagd en we zitten niet op de printvriendelijke pagina */
	if (document.getElementById('wetsinfo') && !document.getElementById('buttons')) {
		if (!document.getElementById('lawinfo') && !document.getElementById('close')) {
			document.getElementById('wetsinfo').className = 'disabled';
			var par = document.createElement('p');
			par.className = 'toggle info';
			var button = document.createElement('a');
			button.setAttribute('href', '#');
			button.setAttribute('id', 'close');
			button.setAttribute('title', 'Hiermee verbergt u de wetstechnische informatie van de regeling');
			button.appendChild(document.createTextNode('Wetstechnische informatie verbergen'));
			par.appendChild(button);
			document.getElementById('wetsinfo').insertBefore(par, document.getElementById('wetsinfo').firstChild);

			var li = document.createElement('li');
			li.className = 'toggle info';
			var button2 = document.createElement('a');
			button2.setAttribute('href', '#');
			button2.setAttribute('id', 'lawinfo');
			button2.setAttribute('title', 'Hier vindt u de wetstechnische informatie van deze regeling');
			button2.appendChild(document.createTextNode('Wetstechnische informatie'));
			li.appendChild(button2);
			document.getElementById('tools').insertBefore(li, document.getElementById('tools').firstChild);
		}
		addEvent(document.getElementById('lawinfo'), 'click', SchakelaarWetsinfo);
		addEvent(document.getElementById('close'), 'click', SchakelaarWetsinfo);
	}
}

function SchakelaarWetsinfo(e) {
// 	document.getElementById('lawinfo').href='#';
// 	document.getElementById('close').href='#';
	document.getElementById('wetsinfo').style.display = (document.getElementById('wetsinfo').style.display == 'block') ? 'none' : 'block';
	/* the following line is needed by IE 5.01 */
	document.getElementById('wetsinfo').style.visibility = (document.getElementById('wetsinfo').style.visibility == 'visible') ? 'hidden' : 'visible';
	document.getElementById('lawinfo').title = (document.getElementById('lawinfo').title == 'Hiermee verbergt u de wetstechnische informatie van deze regeling') ? 'Hier vindt u de wetstechnische informatie van deze regeling' : 'Hiermee verbergt u de wetstechnische informatie van deze regeling';
	document.getElementById('lawinfo').blur();
	var newcontent = (document.getElementById('lawinfo').firstChild.nodeValue == 'Wetstechnische informatie') ? 'Wetstechnische informatie verbergen' : 'Wetstechnische informatie';
	so_clearInnerHTML(document.getElementById('lawinfo'));
	document.getElementById('lawinfo').appendChild(document.createTextNode(newcontent));
	StopHere(e);
}

function checkClickProducten() {
	/* er wordt een regeling gevraagd en we zitten niet op de printvriendelijke pagina */
	if (document.getElementById('productinfo') && !document.getElementById('buttons')) {
		if (!document.getElementById('infoproducten') ) {
			document.getElementById('productinfo').className = 'disabled';
			var parproduct = document.createElement('p');
			parproduct.setAttribute('id', 'producten-zichtbaar');
			var buttonproduct = document.createElement('a');
			buttonproduct.setAttribute('href', '#');
			buttonproduct.setAttribute('id', 'infoproducten');
			buttonproduct.setAttribute('title', 'Hier vindt u de productinformatie van deze regeling');
			buttonproduct.appendChild(document.createTextNode('Productinformatie tonen'));
			parproduct.appendChild(buttonproduct);
			document.getElementById('sidebar').insertBefore(parproduct, document.getElementById('productinfo'));
		}
		addEvent(document.getElementById('infoproducten'), 'click', SchakelaarProductinfo);
	}
}

function SchakelaarProductinfo(e) {
	if ( document.getElementById('productinfo').style.display == 'block' ) {
		document.getElementById('productinfo').style.display = 'none';
		document.getElementById('infoproducten').parentNode.setAttribute('id', 'producten-verborgen');
	}
	else {
		document.getElementById('productinfo').style.display = 'block';
		document.getElementById('infoproducten').parentNode.setAttribute('id', 'producten-zichtbaar');
	}

	/* the following line is needed by IE 5.01 */
	document.getElementById('productinfo').style.visibility = (document.getElementById('productinfo').style.visibility == 'visible') ? 'hidden' : 'visible';
	document.getElementById('infoproducten').title = (document.getElementById('infoproducten').title == 'Hiermee verbergt u de productinformatie van deze regeling') ? 'Hier vindt u de productinformatie van deze regeling' : 'Hiermee verbergt u de productinformatie van deze regeling';
// 	document.getElementById('infoproducten').blur();
	var newcontent = (document.getElementById('infoproducten').firstChild.nodeValue == 'Productinformatie tonen') ? 'Productinformatie verbergen' : 'Productinformatie tonen';
	so_clearInnerHTML(document.getElementById('infoproducten'));
	document.getElementById('infoproducten').appendChild(document.createTextNode(newcontent));
	StopHere(e);
}


function checkClickHighlight() {
	if (document.getElementById('toggle')) {
		addEvent(document.getElementById('toggle'), 'click', toggleHighlight);
	}
}

function toggleHighlight(e) {
// 	document.getElementById('toggle').href='#';
	var aSpan = document.getElementsByTagName('span');
	var elm = document.getElementById('toggle');
	if (elm.firstChild.nodeValue == 'zoekwoorden gekleurd tonen' || elm.firstChild.nodeValue == 'zoekwoord gekleurd tonen') {
		elm.firstChild.nodeValue = (elm.firstChild.nodeValue == 'zoekwoorden gekleurd tonen') ? 'zoekwoorden niet gekleurd tonen' : 'zoekwoord niet gekleurd tonen';
		for (var i = 0; i < aSpan.length; i++) {
			if (aSpan[i].className.indexOf('zoektermuit') != -1) {
				aSpan[i].className = aSpan[i].className.replace(/zoektermuit/gi, 'zoekterm');
			}
		}
	}
	else {
		elm.firstChild.nodeValue = (elm.firstChild.nodeValue == 'zoekwoorden niet gekleurd tonen') ? 'zoekwoorden gekleurd tonen': 'zoekwoord gekleurd tonen';
		for (var i = 0; i < aSpan.length; i++) {
			if (aSpan[i].className.indexOf('zoekterm') != -1) {
				aSpan[i].className = aSpan[i].className.replace(/zoekterm/gi, 'zoektermuit');
			}
		}
	}
	elm.blur();
	StopHere(e);
}

function printButton() {
	if (document.getElementById('buttons') && window.print) {
		var p = document.getElementById('afdrukken');
		so_clearInnerHTML(p);
		p.setAttribute('id', 'afdrukken-js');
		var a = document.createElement('a');
		a.setAttribute('href', '#');
		var TitleAttr = document.getElementById('citeertitel').firstChild.nodeValue;
		a.setAttribute('title', '\'' + TitleAttr + '\' afdrukken');
		a.setAttribute('tabIndex', '1');
		a.onclick = function () {
			window.print();
		};
		a.appendChild(document.createTextNode('Afdrukken'));
		p.appendChild(a);
		document.getElementById('buttons').style.visibility = 'visible';
	}
	else {
		return;
	}
}

/* used in "Overzicht van in de tekst verwerkte wijzigingen" */
function tableruler() {
	if (document.getElementById('wetsinfo'))	{
		var trs = document.getElementById('wijzigingen').getElementsByTagName('tr');
		for (var j = 0; j < trs.length; j++) {
			if (trs[j].className == 'klikbaar')	{
				if (trs[j].parentNode.nodeName == 'TBODY' && trs[j].parentNode.nodeName != 'TFOOT') {
					var link = trs[j].getElementsByTagName("a");
					trs[j].onclick = new Function("document.location.href='" + link[0].href + "'");
					trs[j].onmouseover = function () {
						this.className = 'rulerhand';
						return false;
					};
					trs[j].onmouseout = function () {
						this.className = 'licht';
						return false;
					};
				}
			}
		}
	}
}

/* Fragment Highlight version 0.1 */
//*** This JavaScript highlight code is copyright 2003 by David Dorward; http://dorward.me.uk
//*** This JavaScript library is copyright 2002 by Gavin Kistner and Refinery; www.refinery.com

//Adds a new class to an object, preserving existing classes
function AddClass(obj, cName) {
	KillClass(obj, cName);
	return obj.className += (obj.className.length > 0 ? ' ' : '') + cName;
}

//Removes a particular class from an object, preserving other existing classes.
function KillClass(obj, cName) {
	return obj.className = obj.className.replace(new RegExp("^"+cName+"\\b\\s*|\\s*\\b"+cName+"\\b", 'g'), '');
}

/* Fragment Highlight */

/* Indicates area that has been linked to if fragment identifiers have
 * been used. Especially useful in situations where a short fragment
 * is near the end of a page. */

var fragHLed = '';
var fragExclude = ('topper','header','nav','nav-first','tekst-kleiner','content','page-nav','skip-page-nav','formulier','regeling','footer','service-nav','tools','inhoudsopgave','buttons','skip-nav','skip-content');

Array.prototype.search = function (myVariable) { for(x in this) if(x == myVariable) return true; return false; };

/* Highlight link target if the visitor arrives at the page with a # */
function fragHLload() {
	fragHL(location.hash.substring(1));
}

/* Highlight link target from an onclick event after unhighlighting the old one */
function fragHL(frag) {
	if (fragHLed.length > 0 && document.getElementById(fragHLed)) {
		KillClass(document.getElementById(fragHLed), 'markeer');
	}

	/* added '&& frag != "header"', etc. */
	if (frag.length > 0 && document.getElementById(frag) && frag != "topper" && frag != "header" && frag != "nav" && frag != "nav-first" && frag != "tekst-kleiner" && frag != "content" && frag != "page-nav" && frag != "skip-page-nav" && frag != "formulier" && frag != "regeling" && frag != "footer" && frag != "service-nav" && frag != "tools" && frag != "inhoudsopgave" && frag != "buttons" && frag != "skip-nav" && frag != "skip-content") {
		fragHLed = frag;
		AddClass (document.getElementById(frag),'markeer');
		if (document.body.className.indexOf('contrasthighblue') == -1 && document.body.className.indexOf('contrasthighbrown') == -1) {
			fade(fragHLed);
		}
	}
}

/* Add onclick events to all <a> with hrefs that include a "#"  */
function fragHLlink() {
	if (document.getElementsByTagName) {
		var an = document.getElementsByTagName('a');
		var i;
		for (i = 0; i < an.length; i++) {
		    if (an.item(i).getAttribute('href').indexOf('#') >= 0) {
				var fragment = an.item(i).getAttribute('href').substring(an.item(i).getAttribute('href').indexOf('#') + 1);
				if (fragExclude.search(fragment)) {
				    var evn = "fragHL('" + fragment + "')";
				    var fun = new Function('e',evn);
				    an.item(i).onclick = fun;
				}
		    }
		}
	}
}
// ***********************************************************
// I don't even like yellow!!!!! ... Koen
// ***********************************************************

// ***************************************************************************
// fade.js
// by i am jack's design (http://www.iamjacksdesign.com)
// last modified: 2/20/05
// ***************************************************************************

// FADE.JS WORKS OFF OF RGB VALUES FOR IT'S BASE COLOR.
// SET THE THREE VARIABLES BELOW TO THE RED, GREEN AND BLUE VALUES FOR YOUR
// DESIRED BASE COLOR.

var FADE_RED = 255;
var FADE_GREEN = 253;
var FADE_BLUE = 55;

// THE THREE VARIABLES BELOW DEFINE THE MOVEMENT OF THE FADE:
//
// 		FADE_HOLD 	= Time (in milliseconds) that your base color lasts
//					  before the fade begins.
//		FADE_SPEED 	= Time (in milliseconds) that each color of the fade lasts
//		FADE_STEP	= Increase in the RGB value per color change

var FADE_HOLD = 500;
var FADE_SPEED = 500;
var FADE_STEP = 25;

// FOR BASIC FUNCTIONALITY, LEAVE EVERYTHING BELOW THIS POINT AS IS.
var fade_r = FADE_RED;
var fade_g = FADE_GREEN;
var fade_b = FADE_BLUE;

function fade(container) {
	if (fade_r == 0) fade_r == FADE_RED;
	if (fade_g == 0) fade_g == FADE_GREEN;
	if (fade_b == 0) fade_b == FADE_BLUE;

	if (fade_r + fade_g + fade_b != (255 * 3)) {
		document.getElementById(container).style.background = "rgb(" + fade_r + "," + fade_g + "," + fade_b + ")";

		if ((fade_r == FADE_RED) && (fade_g == FADE_GREEN) && (fade_b == FADE_BLUE)) {
			setTimeout('fade("' + container + '")', FADE_HOLD);
		}
		else {
			setTimeout('fade("' + container + '")', FADE_SPEED);
		}

		if ((fade_r >= 255) || (fade_r + FADE_STEP > 255)) fade_r = 255; else fade_r = fade_r + FADE_STEP;
		if ((fade_g >= 255) || (fade_g + FADE_STEP > 255)) fade_g = 255; else fade_g = fade_g + FADE_STEP;
		if ((fade_b >= 255) || (fade_b + FADE_STEP > 255)) fade_b  = 255; else fade_b = fade_b + FADE_STEP;
	}
	else {
		document.getElementById(container).style.background = "rgb(" + fade_r + "," + fade_g + "," + fade_b + ")";
		fade_r = FADE_RED;
		fade_g = FADE_GREEN;
		fade_b = FADE_BLUE;
	}
}

function openvenster(page, name, width, height) {
	window.open(page,name,'toolbar=no,left=200,top=50,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+width+',height='+height);
}

function Validate() {
	document.onkeydown = function (e) {
		var Event = (e) ? e : event;
		if (Event.ctrlKey && Event.shiftKey && Event.keyCode == 86) {		//	Ctrl-Shift-v
			var url = "http://validator.w3.org/check?verbose=1&uri="+encodeURIComponent(window.location.href);
			openvenster(url, 'popup', 1024, 768);

		}
		else if (Event.ctrlKey && Event.shiftKey && Event.keyCode == 84) {	// Ctrl-Shift-t
			var url = "http://webrichtlijnen.overheid.nl/toets/insert/?cv=3&mens=2&list="+window.location.href;
			openvenster(url, 'popup', 1024, 768);
		}
	};
}


/* Voegt een fieldset toe aan de pagina 'voorkeuren'
 * zodat het treemenu aan of uitgezet kan worden
 * treemenu heeft javascript nodig;
 * daarom wordt deze fieldset met javascript gemaakt
 */
var mfs = {
	makeDivinAccessform: function () {
		/* we doen dit alleen in 'accessform' op de pagina 'voorkeuren' */
		if (document.getElementById('accessform')) {

			/* div maken */
			var Div = document.createElement('div');
			Div.className = 'fieldsets';

			/* een fieldset met inputs en labels maken */
			Fieldset = mfs.makeFieldsetTreemenu(Div);

			/* vervolgens hangen we de fieldset met zijn inhoud in de div */
			Div.appendChild(Fieldset);

			/* een fieldset met inputs en labels maken */
			Fieldset = mfs.makeFieldsetSmoothScroll(Div);

			/* vervolgens hangen we ook deze fieldset met zijn inhoud in de div */
			Div.appendChild(Fieldset);

			/* Div in het document plaatsen */
			document.getElementById('accessform').insertBefore(Div, document.getElementById('fieldsets'));

			/* de cookie genoemd 'voorkeuren' uitlezen
			 * en afhankelijk of 'treemenuon' of  'smoothscrolloff' erin voorkomt
			 * de desbetreffende radiobutton 'checked' zetten
			 */
			var cookie = readCookie('voorkeuren');
			if (cookie && cookie.indexOf('treemenuon') != -1) {
				document.getElementById('treemenuon').checked = 'checked';
			}
			else {
				document.getElementById('treemenuoff').checked = 'checked';
			}

			if (cookie && cookie.indexOf('smoothscrolloff') != -1) {
				document.getElementById('smoothscrolloff').checked = 'checked';
			}
			else {
				document.getElementById('smoothscrollon').checked = 'checked';
			}
		}
	},

	makeFieldsetTreemenu: function (Div) {
		/* fieldset voor 'treemenu' maken */
		var Fieldset = document.createElement('fieldset');

		/* legend er aan toevoegen */
		var Legend = document.createElement('legend');
		Legend.setAttribute('title', 'De inhoudsopgave van een regeling kan als een boommenu worden getoond');
		Legend.appendChild(document.createTextNode("Inhoudsopgave in-"));
		Legend.appendChild(document.createElement('br'));
		Legend.appendChild(document.createTextNode(" en uitklappen"));

		/* legend in fieldset hangen */
		Fieldset.appendChild(Legend);

		/* radiobuttons en labels maken */
		mfs.makeFieldandLabel(Fieldset,'treemenu','off','uit (standaard)');
		mfs.makeFieldandLabel(Fieldset,'treemenu','on','aan');

		return Fieldset;
	},

	makeFieldsetSmoothScroll: function (Div) {
		/* fieldset voor 'smooth scroll' maken */
		var Fieldset = document.createElement('fieldset');

		/* legend er aan toevoegen */
		var Legend = document.createElement('legend');
		Legend.setAttribute('title', 'Langzaam scrollen vanuit de inhoudsopgave van een regeling en bij \'terug naar boven\'');
		Legend.appendChild(document.createTextNode("Langzaam scrollen"));
		Legend.appendChild(document.createElement('br'));

		/* span voor taalwisseling maken */
		var Span = document.createElement('span');
		Span.setAttribute('lang', 'en');
		Span.setAttribute('xml:lang', 'en');
		Span.appendChild(document.createTextNode('\'smooth scroll\''));

		/* span in de legend hangen */
		Legend.appendChild(Span);

		/* legend in fieldset hangen */
		Fieldset.appendChild(Legend);

		/* radiobuttons en labels maken */
		mfs.makeFieldandLabel(Fieldset,'smoothscroll', 'on', 'aan (standaard)');
		mfs.makeFieldandLabel(Fieldset,'smoothscroll', 'off', 'uit');

		return Fieldset;
	},

	makeFieldandLabel: function (fieldset,naam,toggle,text) {
		/* radiobutton maken
		 * IE kan niet goed met radiobuttons omgaan
		 * daarom voor IE geen DOM
		 */
		var OP = (navigator.userAgent.indexOf("Opera") != -1);
		var IE = (navigator.userAgent.indexOf("MSIE") != -1) && !OP;
		if (IE){
			var Field = document.createElement('<input type="radio" class="radio" id="'+naam+toggle+'" name="'+naam+'" value="'+naam+toggle+'" />');
		}
		else {
			var Field = document.createElement('input');
			Field.setAttribute('type', 'radio');
			Field.className = 'radio';
			Field.setAttribute('id', naam+toggle);
			Field.setAttribute('name', naam);
			Field.setAttribute('value', naam+toggle);
		}

		/* radiobutton in fieldset hangen */
		fieldset.appendChild(Field);

		/* een label bij de radiobutton maken */
		var label = document.createElement('label');

		/**
		 * Methode 1
		 * dit werkt niet in IE 5.5
		 */
		// var forAttr = document.createAttribute("for");
		// forAttr.value = naam+toggle;
		// label.setAttributeNode(forAttr);

		/**
		 * Methode 2
		 * werkt overal maar is geen ECMA-script
		 */
		// label.innerHTML = '<label for="'+naam+toggle+'">'+text+'</label>';

		/**
		 * Methode 3
		 * werkt overal, maar is geen ECMA-script bij IE
		 */
		if (IE) {
			label.htmlFor = naam + toggle;
		}
		else {
			label.setAttribute('for', naam + toggle);
		}

		label.appendChild(document.createTextNode(text));

		label.appendChild(document.createElement('br'));

		/* label in fieldset hangen */
		fieldset.appendChild(label);
	}
};


/* original version http://krijnhoetmer.nl/stuff/javascript/list-treeview-menu/
 * I've made it keyboard accessible
 */
var tm = {
	tree: function () {
		if (document.body.className.indexOf('treemenuon') != -1 && document.getElementById('multiple-headings')) {

			/* we bepalen eerst even welke afbeeldingen er gebruikt moeten woren */
			if (document.body.className.indexOf('contrasthighbrown') != -1) {
				afbeeldingPlus	= '/images/plus_brown.gif';
				afbeeldingMin	= '/images/minus_brown.gif';
			}
			else {
				afbeeldingPlus	= '/images/plus.gif';
				afbeeldingMin	= '/images/minus.gif';
			}

			/* we stoppen de inhoudsopgave in el */
			var el = document.getElementById('multiple-headings');
			/* en geven die een class treed, zodat de css hem oppikt */
			el.className = 'treed';
			/* we beginnen dichtgeklapt */
			var fullyOpen = false;

			/* link maken om volledig in- of uit te klappen */
			/* we zetten de link in een paragraaf, zodat we de image goed kunnen stylen */
			var Par = document.createElement('p');
			Par.setAttribute('id', 'toggleallclosed');

			var LinksOpen = document.createElement('a');
			LinksOpen.setAttribute('href', '#');
			LinksOpen.setAttribute('title', 'Inhoudsopgave volledig uitklappen');
			LinksOpen.appendChild(document.createTextNode('Uitklappen'));

			/* link in de paragraaf hangen */
			Par.appendChild(LinksOpen);

			/* paragraaf plaatsen we voor de inhoudsopgave in het document */
			el.parentNode.insertBefore(Par, el);

			LinksOpen.onclick = function () {
				if (el.className.indexOf('fully-open') != -1) {
					el.className = el.className.replace('fully-open', '');
					LinksOpen.setAttribute('title', 'Inhoudsopgave volledig uitklappen');
					LinksOpen.parentNode.setAttribute('id', 'toggleallclosed');
					tm.makeInnerText (LinksOpen, 'Uitklappen');
					fullyOpen = false;
				}
				else {
					el.className = el.className + ' fully-open';
					LinksOpen.setAttribute('title', 'Inhoudsopgave volledig inklappen');
					LinksOpen.parentNode.setAttribute('id', 'toggleallopen');
					tm.makeInnerText (LinksOpen, 'Inklappen');
					fullyOpen = true;
				}

				var lis = el.getElementsByTagName('li');
				for (var i = 0; i < lis.length; i++) {
					var uls = lis[i].getElementsByTagName('ul');
					if (uls.length > 0) {
						if (fullyOpen) {
							tm.uncollapse(lis[i]);
						}
						else {
							tm.collapse(lis[i]);
						}
					}
				}
				return false;
			};

			var hyperlink = document.createElement('a');
			hyperlink.setAttribute('href', '#');
			hyperlink.className = 'opener';
// 			var img = document.createElement('img');
// 			hyperlink.appendChild(img);

			var lis = el.getElementsByTagName('li');
			for (var i = 0; i < lis.length; i++) {
				var uls = lis[i].getElementsByTagName('ul');
				if (uls.length > 0) {
					lis[i].insertBefore(hyperlink.cloneNode(true), lis[i].firstChild);

					if (lis[i].className == 'open') {
						tm.uncollapse(lis[i]);
					}
					else {
						tm.collapse(lis[i]);
					}

					lis[i].firstChild.onclick = function(e) {
						if (this.parentNode.className == 'open') {
							tm.collapseDOM(this.parentNode);
						}
						else {
							tm.uncollapseDOM(this.parentNode);
						}

						/* And stop the actual click happening */
						StopHere(e);
					};
				}
				else {
					lis[i].className = 'file';
				}
				el.style.visibility = 'visible';
			}
		}
	},

	/* bij grote documenten levert de innerHTML-methode aanmerkelijk snelheidswinst op */
	/* verder kan Mozilla maar 4K aan textnode bevatten */
	collapse: function (li) {
		li.className = 'collapsed';
		li.firstChild.innerHTML = '<img src="'+ afbeeldingPlus +'" title="Gedeelte van de inhoudsopgave uitklappen" alt="plus-teken" />';
	},

	/* bij grote documenten levert de innerHTML-methode aanmerkelijk snelheidswinst op */
	/* verder kan Mozilla maar 4K aan textnode bevatten */
	uncollapse: function (li) {
		li.className = 'open';
		li.firstChild.innerHTML = '<img src="'+ afbeeldingMin +'" title="Gedeelte van de inhoudsopgave inklappen" alt="min-teken" />';
	},

	collapseDOM: function (li) {
		li.className = 'collapsed';
		li.firstChild.firstChild.setAttribute ('src', afbeeldingPlus);
		li.firstChild.firstChild.setAttribute ('title', 'Gedeelte van de inhoudsopgave uitklappen');
		li.firstChild.firstChild.setAttribute ('alt', 'plus-teken');
	},

	uncollapseDOM: function (li) {
		li.className = 'open';
		li.firstChild.firstChild.setAttribute ('src', afbeeldingMin);
		li.firstChild.firstChild.setAttribute ('title', 'Gedeelte van de inhoudsopgave inklappen');
		li.firstChild.firstChild.setAttribute ('alt', 'min-teken');
	},

	makeInnerText: function (obj, text) {
		while (obj.firstChild) {
			obj.removeChild(obj.firstChild);
		}
		return obj.appendChild(document.createTextNode(text));
	}
};


/* Smooth scrolling
   Changes links that link to other parts of this page to scroll
   smoothly to those links rather than jump to them directly, which
   can be a little disorienting.

   sil, http://www.kryogenix.org/

   v1.0 2003-11-11
   v1.1 2005-06-16 wrap it up in an object
*/

var ss = {
	fixAllLinks: function () {
		if (document.body.className.indexOf('smoothscrolloff') == -1) {
			/*Get a list of all links in the page */
			var allLinks = document.getElementsByTagName('a');
			/* Walk through the list */
			for (var i = 0; i < allLinks.length; i++) {
				var lnk = allLinks[i];
				if ((lnk.href && lnk.href.indexOf('#') != -1) && ( (lnk.pathname == location.pathname) || ('/'+lnk.pathname == location.pathname) ) && (lnk.search == location.search)) {
					/* If the link is internal to the page (begins in #)
					 * en attach the smoothScroll function as an onclick
					 * event handler */
					addEvent(lnk, 'click', ss.smoothScroll);
				}
			}
		}
	},

	smoothScroll: function (e) {
		/* This is an event handler; get the clicked on element,
		 * in a cross-browser fashion */
		if (window.event) {
			target = window.event.srcElement;
		}
		else if (e) {
			target = e.target;
		}
		else {
			return;
		}

		/* Make sure that the target is an element, not a text node within an element */
		if (target.nodeName.toLowerCase() != 'a') {
			target = target.parentNode;
		}

		/* Paranoia; check this is an A tag */
		if (target.nodeName.toLowerCase() != 'a') {
			return;
		}

		/* Find the <a name> tag corresponding to this href
		 * First strip off the hash (first character) */
		anchor = target.hash.substr(1);
		/* Now loop all A tags until we find one with that name */
		var allLinks = document.getElementsByTagName('a');
		var destinationLink = null;
		for (var i = 0; i < allLinks.length; i++) {
			var lnk = allLinks[i];
			if (lnk.name && (lnk.name == anchor)) {
				destinationLink = lnk;
				break;
			}
		}
		if (!destinationLink) {
			destinationLink = document.getElementById(anchor);
		}

		/* If we didn't find a destination, give up and let the browser do its thing */
		if (!destinationLink) {
			return true;
		}

		/* Find the destination's position */
		var destx = destinationLink.offsetLeft;
		var desty = destinationLink.offsetTop;
		var thisNode = destinationLink;
		while (thisNode.offsetParent && (thisNode.offsetParent != document.body)) {
			thisNode = thisNode.offsetParent;
			destx += thisNode.offsetLeft;
			desty += thisNode.offsetTop;
		}

		/* Stop any current scrolling */
		clearInterval(ss.INTERVAL);

		cypos = ss.getCurrentYPos();

		ss_stepsize = parseInt((desty-cypos)/ss.STEPS);
		ss.INTERVAL = setInterval('ss.scrollWindow('+ss_stepsize+','+desty+',"'+anchor+'")', 10);

		/* And stop the actual click happening */
		if (window.event) {
		window.event.cancelBubble = true;
		window.event.returnValue = false;
		}
		if (e && e.preventDefault && e.stopPropagation) {
			e.preventDefault();
			e.stopPropagation();
		}
	},

	scrollWindow: function (scramount,dest,anchor) {
		wascypos = ss.getCurrentYPos();
		isAbove = (wascypos < dest);
		window.scrollTo(0, wascypos + scramount);
		iscypos = ss.getCurrentYPos();
		isAboveNow = (iscypos < dest);
		if ((isAbove != isAboveNow) || (wascypos == iscypos)) {
			/* if we've just scrolled past the destination, or
			 * we haven't moved from the last scroll (i.e., we're at the
			 * bottom of the page) then scroll exactly to the link */
			window.scrollTo(0, dest);
			/* cancel the repeating timer */
			clearInterval(ss.INTERVAL);
			/* and jump to the link directly so the URL's right */
			location.hash = anchor;
		}
	},

	getCurrentYPos: function () {
		if (document.body && document.body.scrollTop) {
			return document.body.scrollTop;
		}
		if (document.documentElement && document.documentElement.scrollTop) {
			return document.documentElement.scrollTop;
		}
		if (window.pageYOffset) {
			return window.pageYOffset;
		}
		return 0;
	}
};

ss.STEPS = 25;


/*------------------------------------------------------------------------------
Function:       footnoteLinks()
Author:         Aaron Gustafson (aaron at easy-designs dot net)
Creation Date:  8 May 2005
Version:        1.3
Homepage:       http://www.easy-designs.net/code/footnoteLinks/
License:        Creative Commons Attribution-ShareAlike 2.0 License
                http://creativecommons.org/licenses/by-sa/2.0/
Note:           If you change or improve on this script, please let us know by
                emailing the author (above) with a link to your demo page.
------------------------------------------------------------------------------*/
function footnoteLinks () {
	if ( (!document.getElementById('holder') && !document.getElementById('buttons') ) || !document.getElementById || !document.getElementsByTagName || !document.createElement) {
		return false;
	}

	var container	= document.getElementById('content');
	var target		= (document.getElementById('buttons')) ? document.getElementById('content') : document.getElementById('footer');
	var coll		= container.getElementsByTagName('a'); /* instead of container.getElementsByTagName('*'); */
	var ol			= document.createElement('ol');
	addClass.apply(ol, ['printOnly']);

	var myArr = [];
	var thisLink;
	var num = 1;
	var counter = 0;
	for (var i = 0; i < coll.length; i++) {
		var thisClass = coll[i].className;
		if ((	coll[i].getAttribute('href')) && (thisClass.indexOf('h') == -1 && coll[i].title.indexOf('pagina') == -1 && coll[i].parentNode.id != 'broodkruimel' && coll[i].href.charAt(0) != '#' && coll[i].id != 'close' && coll[i].parentNode.parentNode.id != 'tools' && coll[i].innerHTML.length > 0)) { // 'h' stands for h1 - h6 ... it's a tricky one
			counter++;
			if (coll[i].getAttribute('href')) {
				thisLink = coll[i].href;
				thisLink = thisLink.replace('/afdrukken', ''); /* bij interne links op dezelfde pagina de verwijzing naar de printvriendelijke versie verwijderen */
			}
// 			var note = document.createElement('sup');
			var note = document.createElement('SPAN');
			addClass.apply(note, ['super']);
			addClass.apply(note, ['printOnly']);
			var note_txt;
			var j = inArray.apply(myArr, [thisLink]);
			if ( j || j === 0 ) {
				note_txt = document.createTextNode(' ' + (j+1) + ')');
			}
			else {
				var li     = document.createElement('li');
				var li_txt = document.createTextNode(thisLink);
				li.appendChild(li_txt);
				ol.appendChild(li);
				/* myArr.push(thisLink); doesn't work in IE 5!!! so we use the following line */
				myArr[myArr.length] = thisLink;
				note_txt = document.createTextNode(' ' + num + ')');
				num++;
			}
			note.appendChild(note_txt);
			coll[i].parentNode.insertBefore(note, coll[i].nextSibling);
		}
	}
	if ( counter > 0 ) { /* there is a hyperlink to be 'footnoted' */
		var hr        = document.createElement('hr');
		addClass.apply(hr, ['printOnly']);
		var h2        = document.createElement('h2');
		addClass.apply(h2, ['printOnly']);

		if ( counter == 1 ) {
			var h2_txt = (document.getElementById('english')) ? document.createTextNode('Hyperlink in this document') :  document.createTextNode('Hyperlink in dit document');
		}
		else {
			var h2_txt = (document.getElementById('english')) ? document.createTextNode('Hyperlinks in this document') :  document.createTextNode('Hyperlinks in dit document');
		}
		h2.appendChild(h2_txt);
		target.appendChild(hr);

		if (!document.getElementById('buttons')) {
			var skipLink = document.createElement('a');
			skipLink.setAttribute('href', '#footer');
			skipLink.className = 'hide';
			skipLink.setAttribute('title', 'Het overzicht hierna is bedoeld om de hyperlinks op deze pagina voluit af te drukken als u een printopdracht geeft.');
			skipLink.appendChild(document.createTextNode('Sla het overzicht van hyperlinks in dit document over en ga naar de voetregel'));
			target.appendChild(skipLink);
		}
		target.appendChild(h2);
		target.appendChild(ol);
// 		addClass.apply(document.getElementsByTagName('html')[0],['noted']);

		return true;
	}
	return true;
}

// ---------------------------------------------------------------------
//                  function.apply (if unsupported)
//           Courtesy of Aaron Boodman - http://youngpup.net
// ---------------------------------------------------------------------
if (!Function.prototype.apply) {
	Function.prototype.apply = function (oScope, args) {
		var sarg = [];
		var rtrn, call;
		if (!oScope) {
			oScope = window;
		}
		if (!args) {
			args = [];
		}
		for (var i = 0; i < args.length; i++) {
			sarg[i] = "args["+i+"]";
		}
		call = "oScope.__applyTemp__(" + sarg.join(",") + ");";
		oScope.__applyTemp__ = this;
		rtrn = eval(call);
		oScope.__applyTemp__ = null;
		return rtrn;
	};
}

function inArray(needle) {
	for (var i = 0; i < this.length; i++) {
		if (this[i] === needle) {
			return i;
		}
	}
	return false;
}

function addClass(theClass) {
	if (this.className != '') {
		this.className += ' ' + theClass;
	}
	else {
		this.className = theClass;
	}
}

function lastChildContainingText() {
	var testChild = this.lastChild;
	var contentCntnr = ['p', 'li', 'dd'];
	while (testChild.nodeType != 1) {
		testChild = testChild.previousSibling;
	}
	var tag = testChild.tagName.toLowerCase();
	var tagInArr = inArray.apply(contentCntnr, [tag]);
	if (!tagInArr && tagInArr !== 0) {
		testChild = lastChildContainingText.apply(testChild);
	}
	return testChild;
}


var fs = {
	checkClass: function () {
		if (!document.getElementById('buttons') && document.getElementById('kleiner') && document.getElementById('groter') ) {
			addEvent(document.getElementById('groter'), 'click', fs.makeBigger);
			addEvent(document.getElementById('kleiner'), 'click', fs.makeSmaller);
		}
	},

	makeBigger: function (e) {
		fs.checkClassName ('120', 'groter');
		StopHere(e);
	},

	makeSmaller: function (e) {
		fs.checkClassName ('80', 'kleiner');
		StopHere(e);
	},

	/* I know ... it's a mess ....
	 * ... but it's working.
	 * So please ... don't tell Jack Bauer!!! */
	checkClassName: function (size, button) {
// 		document.getElementById(button).href='#';
		if (document.body.className ) {							/* if there is a class? */
			if (document.body.className.indexOf('fontsize') != -1) {	/* is it called fontsizexxx? */
				fs.replaceClass (button);
				return;
			}
			else {													/* there is a class, but it's not called fontsizexxx */
				document.body.className = document.body.className + ' fontsize'+size; /* so add fontsizexxx to the class */
				createCookie('textsize', 'fontsize'+size, 365);		/* new since 08-12-2008: saving the cookie one year */
				fs.removeChecked('fontsize'+size);
				return;
			}
		}
		document.body.className = 'fontsize'+size;					/* if we got here then there is no class, so we can make one */
		createCookie('textsize', 'fontsize'+size, 365);				/* new since 08-12-2008: saving the cookie one year */
		fs.removeChecked('fontsize'+size);
		return;
	},

	replaceClass: function (button) {
		var aClass = document.body.className.split(' ');			/* split the class into parts */
		for (var i = 0; i < aClass.length; i++) {
			if (aClass[i].indexOf('fontsize') != -1) {				/* is there one part called fontsizexxx? */
				var re = new RegExp(aClass[i], 'gi');				/* prepare a variable to replace later */
				var aSize = aClass[i].split('fontsize');
				var Size = parseInt(aSize[1]);						/* which value does fontsizexxx have? */
				if (button == 'groter' && Size != 160) {
					Size += 20;
				}
				else if (button == 'kleiner' && Size != 80) {
					Size -= 20;
				}
				var newClass = 'fontsize' + Size;
				document.body.className = document.body.className.replace(re, newClass);
				createCookie('textsize', newClass, 365);			/* new since 08-12-2008: saving the cookie one year */
				fs.removeChecked(newClass);
			}
		}
	},

	removeChecked: function (value) {
		if (document.getElementById('voorkeuren')) {
			var radios = document.getElementById('accessform').elements['fontsize'];
			for (var i = 0; i < radios.length; i++) {
				if (radios[i].checked) {
					radios[i].checked = false;
				}
			}
			document.getElementById(value).checked = true;
		}
	}
};

var cd = {
	searchToday: function () {
		if ( document.getElementById('zoeken') ) {

			/**
			 * checkbox en label maken om te kiezen voor zoeken op vandaag.
			 */
			var Input = document.createElement( 'input' );
			Input.setAttribute( 'type', 'checkbox' );
			Input.setAttribute( 'id', 'vandaag' );
			Input.setAttribute( 'value', 'vandaag' );
			Input.className = 'checkbox';
			document.getElementById('datum').appendChild( Input );

			var LabelInput = document.createElement( 'label' );
			LabelInput.setAttribute( 'id', 'label-vandaag' );

			/**
			 * Voor IE moet gebruik worden gemaakt van 'htmlFor' in plaats van 'for'.
			 */
			var OP = ( navigator.userAgent.indexOf("Opera") != -1 );
			var IE = ( navigator.userAgent.indexOf("MSIE") != -1 ) && !OP;

			if ( IE ) {
				LabelInput.htmlFor = 'vandaag';
			}
			else {
				LabelInput.setAttribute( 'for', 'vandaag' );
			}

			LabelInput.setAttribute( 'title', 'Zoek in de regelingen die vandaag gelden' );
			LabelInput.appendChild( document.createTextNode( 'Alleen regelingen die vandaag gelden' ) );
			document.getElementById('datum').appendChild( LabelInput );

			document.getElementById('zoeken').style.visibility = 'visible';

			var currentTime	= new Date();
			var day			= currentTime.getDate();
			var month		= currentTime.getMonth() + 1;
			var year		= takeYear(currentTime) - document.forms['formulier'].elements['jaar'].options[1].value + 1;

			/**
			 * Als de huidige datum geselecteerd is wordt de checkbox geselecteerd.
			 */
			if (document.forms['formulier'].elements['dag'].options[day].selected == true &&
				document.forms['formulier'].elements['maand'].options[month].selected == true &&
				document.forms['formulier'].elements['jaar'].options[year].selected == true) {
					document.getElementById('vandaag').checked = true ;
			}

			/**
			 * Events aan elementen hangen.
			 */
			addEvent(document.getElementById('vandaag'), 'click', cd.changeCheckBoxToday);
			addEvent(document.getElementById('dag'), 'change', cd.checkToday);
			addEvent(document.getElementById('maand'), 'change', cd.checkToday);
			addEvent(document.getElementById('jaar'), 'change', cd.checkToday);


		}
	},

	/**
	 * Controleren of de checkbox geselecteerd is en
	 * de juiste options in de selectboxes seleecteren.
	 */
	changeCheckBoxToday: function () {
		var currentTime	= new Date();
		var day			= currentTime.getDate();
		var month		= currentTime.getMonth() + 1;
		var year		= takeYear(currentTime) - document.forms['formulier'].elements['jaar'].options[1].value + 1;

		if ( document.getElementById('vandaag').checked == true ) {
				document.forms['formulier'].elements['dag'].options[day].selected = true;
				document.forms['formulier'].elements['maand'].options[month].selected = true;
				document.forms['formulier'].elements['jaar'].options[year].selected = true;
		}
		else if ( document.getElementById('vandaag').checked == false ) {
				document.forms['formulier'].elements['dag'].options[0].selected = true;
				document.forms['formulier'].elements['maand'].options[0].selected = true;
				document.forms['formulier'].elements['jaar'].options[0].selected = true;
		}
	},

	/**
	 * Contoleren of de datumvan vandaag in de selectboxen geselecteerd is en
	 * of basis daarvan de checkbox (un)selecten.
	 */
	checkToday: function () {
		var currentTime	= new Date();
		var day			= currentTime.getDate();
		var month		= currentTime.getMonth() + 1;
		var year		= takeYear(currentTime) - document.forms['formulier'].elements['jaar'].options[1].value + 1;

		if ( document.forms['formulier'].elements['dag'].options[day].selected == false ||
			document.forms['formulier'].elements['maand'].options[month].selected == false ||
			document.forms['formulier'].elements['jaar'].options[year].selected == false ) {
				document.getElementById('vandaag').checked = false ;
		}
		else {
			document.getElementById('vandaag').checked = true ;
		}
	}
};

function takeYear(theDate) {
	x = theDate.getYear();
	var y = x % 100;
	y += (y < 38) ? 2000 : 1900;
	return y;
}

/* ALGEMENE FUNCTIES */
function createCookie(name,value,days) {
	if( cookieTest() ) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	}
}

function cookieTest() {
	document.cookie = 'cookietest'+"="+'cookieTest'+"; path=/";
	var cookie = readCookie('cookietest');
	if (cookie == 'cookieTest') {
		return true;
	}
	else {
		return false;
	}
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for (var i = 0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function StopHere(e) {
	if (!e) {
		var e = window.event;
	}
	e.cancelBubble = true;
	e.returnValue = false;
	if (e.preventDefault && e.stopPropagation) {
		e.preventDefault();
		e.stopPropagation();
	}
}

function so_clearInnerHTML(obj) {
	/* so long as obj has children, remove them */
	while (obj.firstChild) {
		obj.removeChild(obj.firstChild);
	}
}

function addEvent(obj, evType, fn) {
	if (obj.addEventListener) { /* W3C-model */
		obj.addEventListener(evType, fn, false);
		return true;
	}
	else if (obj.attachEvent) { /* IE */
		obj.attachEvent('on'+evType, fn);
		return true;
	}
	else {
		return false;
	}
}

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	}
	else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}
// addLoadEvent(tm.tree);
addLoadEvent(fragHLload);
addLoadEvent(fragHLlink);
addLoadEvent(ss.fixAllLinks);
addLoadEvent(fs.checkClass);
addLoadEvent(tableruler);
addLoadEvent(checkClick);
addLoadEvent(checkClickProducten);
addLoadEvent(printButton);
addLoadEvent(checkClickHighlight);
addLoadEvent(footnoteLinks);
addLoadEvent(tm.tree);
addLoadEvent(mfs.makeDivinAccessform);
addLoadEvent(Validate);
addLoadEvent(cd.searchToday);