

var activeIndex = "letter";
var byLetterElement;
var byThemeElement;
var byLetterAElement;
var byLetterSpanElement;
var byThemeAElement;
var byThemeSpanElement;
var viewByThemeElement;
var viewByLetterElement;
var hideDescriptionElement;
var hideDescriptionLink;
var descriptionHidden;
var liTabElements;
var stuurdoorLink;
var stuurdoorForm;
var themesMenuItem;
var dropMenu;

/*
 *  Standaardscripts voor ministeriele websites
 *
 *  eend ~ maakt internet menselijk
 *  ~ Peter-Paul Koch
 *
 *  v1.0 - 02/11/2007
 *
 */


/*
 TEKSTGROOTTE
 Knoppen en functionaliteit worden automatisch gegenereerd in
 het element met id="tekstgrootte"
 */

var paginaTaal; // welke taal gebruikt de pagina? Gezet in initializeAll

var bloklinks = {
  speciaal: ['extern','anker','download'],
  init: function () {
    var lists = document.getElementsByTagName('li');
    for (var i=0;i<lists.length;i++) {
      if (lists[i].className.indexOf('bloklink') == -1) continue;
      var ul = lists[i].parentNode;
      if (!ul.gedaan) {
        ul.className += ' js-aan';
        ul.gedaan = true;
      }
      var classes = lists[i].className;
      var classesHover = classes + ' over';
      for (var j=0;j<this.speciaal.length;j++) {
        if (classes.indexOf(this.speciaal[j]) != -1) {
          classesHover = classes.replace(this.speciaal[j],this.speciaal[j]+'Over');
          break;
        }
      }
      lists[i].origClass = classes;
      lists[i].hoverClass = classesHover;
      lists[i].onmouseover = function () {
        this.className = this.hoverClass;
      }
      lists[i].onmouseout = function () {
        this.className = this.origClass;
      }
      lists[i].onclick = function () {
        //Use onclick code if available, otherwise, use the href
        if(this.getElementsByTagName('a')[0].onclick){
          this.getElementsByTagName('a')[0].onclick();
        }else{
          var href = this.getElementsByTagName('a')[0].href;
          location.href = href;
        }
        return false;
      }
    }
  }
}

var pollresultaten = {
  factor: undefined,
  init: function () {
    var uls = document.getElementsByTagName('ul');
    for(var j=0; j<uls.length; j++) {
      var classNames = uls[j].className.split(' ');
      for(var k=0; k<classNames.length; k++) {
        if(classNames[k] == 'poll-res') {
          var writeroot = uls[j];
          if (!writeroot) return;
          var items = writeroot.getElementsByTagName('li');
          for (var i=0;i<items.length;i++) {
            var spans = items[i].getElementsByTagName('span');
            if (!spans.length) continue;
            var staaf = spans[0];
            if (!this.factor)
              this.factor = staaf.offsetWidth/100;
            var percentage = parseInt(spans[1].firstChild.nodeValue);
            var innerSpan = document.createElement('span');
            innerSpan.style.width = percentage * this.factor + 'px';
            staaf.appendChild(innerSpan);
          }
          break;
        }
      }
    }
  }
}

var popups = {
  standaardBreedte: 300,
  standaardHoogte: 150,
  waarschuwingTekst: {
    nl: '(opent in popup)',
    en: '(opens in popup)'
  },
  init: function () {
    this.initPopups(document);
  },
  initPopups: function (obj) {
    var x = obj.getElementsByTagName('a');
    for (var i=0;i<x.length;i++) {
      if (x[i].getAttribute('rel') && x[i].getAttribute('rel').indexOf('popup') != -1) {
        x[i].firstChild.nodeValue += ' ' + this.waarschuwingTekst[paginaTaal];
        x[i].onclick = function(){popups.openPopup(this); return false};
      }
    }
  },
  openPopup: function (link) {
    var breedte = this.standaardBreedte;
    var hoogte = this.standaardHoogte;
    var data = link.getAttribute('rel').split(';');
    if (data.length == 3) {
      breedte = data[1];
      hoogte = data[2];
    }
    window.open(link.href,'popup','width='+breedte+',height='+hoogte+',resizable=yes,scrollbars=yes');
  }
}

var printLink = {
  tekst: {
    nl: "Print pagina",
    en: "Print page",
    de: "Seite drucken",
    es: "Imprimir pagina",
    fr: "Imprimer page"
  },
  init: function () {
    var writeroot = document.getElementById('printlink');
    if (!writeroot) return;
    var link = document.createElement('a');
    link.href = '#';
    link.appendChild(document.createTextNode(this.tekst[paginaTaal]));
    link.onclick = function () {
      window.print();
      return false;
    }
    writeroot.appendChild(link);
  }
}

var tekstGrootte = {
  tekst: {
    nl: 'Tekstgrootte ',
    en: 'Text size ',
    de: 'Textgr&ouml;&szlig;e ',
    fr: 'La taille du texte ',
    es: 'Aumentar texto '
  },
  hulptekstGroter: {
    nl: 'Tekstgrootte groter',
    en: 'Text size larger',
    de: 'Textgr&ouml;&szlig;e gr&ouml;&szlig;er',
    fr: 'La taille du texte plus grand',
    es: 'Aumentar texto mas grande'
  },
  hulptekstKleiner: {
    nl: 'Tekstgrootte kleiner',
    en: 'Text size smaller',
    de: 'Textgr&ouml;&szlig;e kleiner',
    fr: 'La taille du texte petits ',
    es: 'Aumentar texto menor'
  },
  groterTekst: {
    nl: '+',
    en: '+',
    de: '+',
    es: '+',
    fr: '+'
  },
  kleinerTekst: {
    nl: '-',
    en: '-',
    de: '-',
    es: '-',
    fr: '-'
  },
  huidig: 0,
  // classes: ['kleinst','kleiner','','groter','grootst'],
  classes: ['normaal','groter','grootst'],
  groterLink: undefined,
  kleinerLink: undefined,
  oudeLink: undefined,
  styleSheets: [],
  bodyClass: '',
  init: function () {
    var writeroot = document.getElementById('tekstgrootte');
    if (!writeroot) return;
    this.bodyClass = document.body.className;
    writeroot.innerHTML = "<span>" + this.tekst[paginaTaal] + "</span>";
    this.groterLink = document.createElement('a');
    this.groterLink.href = '#';
    this.groterLink.id = 'tekstgrootteplus';
    this.groterLink.title = this.hulptekstGroter[paginaTaal];
    this.groterLink.appendChild(document.createTextNode(this.groterTekst[paginaTaal]));
    this.groterLink.onclick = this.tekstGroter;
    this.kleinerLink = document.createElement('a');
    this.kleinerLink.href = '#';
    this.kleinerLink.id = 'tekstgroottemin';
    this.kleinerLink.title = this.hulptekstKleiner[paginaTaal];
    this.kleinerLink.appendChild(document.createTextNode(this.kleinerTekst[paginaTaal]));
    this.kleinerLink.onclick = this.tekstKleiner;
    //custom
    //writeroot.appendChild(listify([this.kleinerLink,this.groterLink]));
    writeroot.appendChild(this.kleinerLink);
    writeroot.appendChild(this.groterLink);
    //\custom
    var oudeWaarde = Cookies.tekstgrootte;
    if (!oudeWaarde) return;
    this.huidig = oudeWaarde;
    this.zetGrootte();
    this.hideToggles();
  },
  tekstGroter: function () {
    tekstGrootte.huidig++;
    tekstGrootte.zetGrootte();
    tekstGrootte.hideToggles();
    return false;
  },
  tekstKleiner: function () {
    tekstGrootte.huidig--;
    tekstGrootte.zetGrootte();
    tekstGrootte.hideToggles();
    return false;
  },
  hideToggles: function () {
    if(tekstGrootte.huidig == 0)
      tekstGrootte.kleinerLink.style.display = "none";
    else
      tekstGrootte.kleinerLink.style.display = "block";

    if(tekstGrootte.huidig == (tekstGrootte.classes.length-1))
      tekstGrootte.groterLink.style.display = "none";
    else
      tekstGrootte.groterLink.style.display = "block";
  },
  zetGrootte: function () {
    if (this.huidig >= this.classes.length-1)
      this.groterLink.className = 'disabled';
    else
      this.groterLink.className = '';
    if (this.huidig <= 0)
      this.kleinerLink.className = 'disabled';
    else
      this.kleinerLink.className = '';
    if (this.huidig < 0)
      this.huidig = 0;
    if (this.huidig >= this.classes.length)
      this.huidig = this.classes.length-1;
    document.body.className = this.bodyClass + ' ' + this.classes[this.huidig];
    Cookies.create('tekstgrootte',this.huidig,365);
  }
}

var inits = [
  'bloklinks',
  'pollresultaten',
  'popups',
  'printLink',
  'tekstGrootte'
];

function initializeAll() {

}

/* UTILITIES */

function listify(dataArray) {
  var x = document.createElement('ul');
  for (var i=0;i<dataArray.length;i++) {
    var y = document.createElement('li');
    y.appendChild(dataArray[i]);
    x.appendChild(y);
  }
  return x;
}

function sendRequest(url,callback,postData) {
  var req = createXMLHTTPObject();
  if (!req) return;
  var method = (postData) ? "POST" : "GET";
  req.open(method,url,true);
  req.setRequestHeader('User-Agent','XMLHTTP/1.0');
  if (postData)
    req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
  req.onreadystatechange = function () {
    if (req.readyState != 4) return;
    if (req.status != 200 && req.status != 304) {
      // alert('HTTP error ' + req.status);
      callback(req.status);
      return;
    }
    callback(req);
  }
  if (req.readyState == 4) return;
  req.send(postData);
}

var XMLHttpFactories = [
  function () {return new XMLHttpRequest()},
  function () {return new ActiveXObject("Msxml2.XMLHTTP")},
  function () {return new ActiveXObject("Msxml3.XMLHTTP")},
  function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];

function createXMLHTTPObject() {
  var xmlhttp = false;
  for (var i=0;i<XMLHttpFactories.length;i++)
  {
    try {
      xmlhttp = XMLHttpFactories[i]();
    }
    catch (e) {
      continue;
    }
    break;
  }
  return xmlhttp;
}

// push and shift for IE5

function Array_push() {
  var A_p = 0
  for (A_p = 0; A_p < arguments.length; A_p++) {
    this[this.length] = arguments[A_p]
  }
  return this.length
}

if (typeof Array.prototype.push == "undefined") {
  Array.prototype.push = Array_push
}

function Array_shift() {
  var A_s = 0
  var response = this[0]
  for (A_s = 0; A_s < this.length-1; A_s++) {
    this[A_s] = this[A_s + 1]
  }
  this.length--
  return response
}

if (typeof Array.prototype.shift == "undefined") {
  Array.prototype.shift = Array_shift
}

// The .bind method from Prototype.js
if (typeof Function.prototype.bind == "undefined") {
  Function.prototype.bind = function(){
    var fn = this, args = Array.prototype.slice.call(arguments), object = args.shift();
    return function(){
      return fn.apply(object, args.concat(Array.prototype.slice.call(arguments)));
    };
  };
}

// IE check
if (window.ActiveXObject) window.ie = window[window.XMLHttpRequest ? 'ie7' : 'ie6'] = true;


/* COOKIES */

var Cookies = {
  init: function () {
    var allCookies = document.cookie.split('; ');
    for (var i=0;i<allCookies.length;i++) {
      var cookiePair = allCookies[i].split('=');
      this[cookiePair[0]] = cookiePair[1];
    }
  },
  create: function (name,value,days) {
    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=/";
    this[name] = value;
  },
  erase: function (name) {
    this.create(name,'',-1);
    this[name] = undefined;
  },
  eraseAll: function () {
    for (var i in this) {
      if (typeof this[i] == 'function') continue;
      this.erase(i);
    }
  }
};
Cookies.init();

function standaardScripts() {
  paginaTaal = document.documentElement.lang || 'nl';
  for (var i=0;i<inits.length;i++) {
    if (window[inits[i]])
      window[inits[i]].init();
  }
}

function onLoad(i) {
  var u =navigator.userAgent;
  var e=/*@cc_on!@*/false;
  var st = setTimeout;
  if(/webkit/i.test(u)){
    st(function(){
      var dr=document.readyState;
      if(dr=="loaded"||dr=="complete"){
        i()
      }else{
        st(arguments.callee,10);
      }
    },10);
  }
  else if((/mozilla/i.test(u)&&!/(compati)/.test(u)) || (/opera/i.test(u))) {
    document.addEventListener("DOMContentLoaded",i,false); } else if(e) {     (
          function() {
            var t=document.createElement('doc:rdy');
            try{
              t.doScroll('left');
              i();
              t=null;
            } catch(e) {
              st(arguments.callee,0);
            }
          }
          )();
  } else {
    window.onload=i;
  }
}



function observe(element, event, handler) {
	if (element.addEventListener) {
		element.addEventListener(event, handler, false);
  	} else {
		element.attachEvent("on" + event, handler);
  	}
}

function _openThemesMenu() {
	addClassName(themesMenuItem, "dnactief");
	dropMenu.style['display'] = 'block';
}

function _closeThemesMenu() {
	setTimeout(function() {
		if(!hasClassName(dropMenu, "dnactief")) {
			dropMenu.style['display'] = 'none';
			removeClassName(themesMenuItem, "dnactief");
		}
		if(!hasClassName(dropMenu, "dnactief") && hasClassName(themesMenuItem, "dnactief")) {
			dropMenu.style['display'] = 'none';
		}

	}, 200);
}

function _dropMenuMouseOver() {
	dropMenu.style['display'] = 'none';
	addClassName(dropMenu, "dnactief");
}

function _dropMenuMouseOut() {
	removeClassName(dropMenu, "dnactief");
	setTimeout(function() {
		if(!hasClassName(themesMenuItem, "dnactief")) {
			dropMenu.style['display'] = 'none';
		}
	}, 200);
}

function _dropMenuLinkBlur(event) {
	var aElement = getEventElement(event);
	removeClassName(aElement, "focussed");

	setTimeout(function() {
		if(!hasClassName(aElement, "focussed")) {
			dropMenu.style['display'] = 'none';
			removeClassName(themesMenuItem, "dnactief");
		}
	}, 200);
}

function _dropMenuLinkFocus(event) {
	var aElement = getEventElement(event);
	addClassName(aElement, "focussed");
}

function initRivm() {
	var divs = document.getElementsByTagName("div");

	var aElement;
	var liElement;
	var inputElements;
	var inputElement;
	var i;
	var j;

	// mouseOver menu of themes
	themesMenuItem = document.getElementById("menuitem_themes");
	dropMenu = document.getElementById("jsdropmenu");

	if(themesMenuItem && dropMenu) {
		removeClassName(dropMenu, "noshow");
		dropMenu.style['display'] = 'none';

		observe(themesMenuItem, "mouseover", _openThemesMenu);
		observe(themesMenuItem, "mouseout", _closeThemesMenu);
		var links = themesMenuItem.getElementsByTagName("a");
		for(i = 0; i < links.length; i++) {
			observe(links[i], "focus", _dropMenuLinkFocus);
			observe(links[i], "blur", _dropMenuLinkBlur);
		}

		observe(dropMenu, "mouseover", _dropMenuMouseOver);
		observe(dropMenu, "mouseout", _dropMenuMouseOut);


	}

	// flash objects in site
	for(i = 0; i < divs.length; i++) {
		var divElement = divs[i];

		if(divElement.className && divElement.className.indexOf("flash") != -1) {
			aElement = divElement.getElementsByTagName("a")[0];
			var flashId = divElement.id.substring(5);
			var parObj = {};
			parObj.allowFullScreen = "false";
			parObj.movie = "/dsresource?objectid=" + flashId + "&disposition=inline";
			parObj.quality = "high";
			parObj.wmode = "transparent";
			parObj.loop = true;


			var attObj = {};
			attObj.bgcolor = "#ffffff";
			attObj.title = aElement.title;
			swfobject.embedSWF("/dsresource?objectid=" + flashId + "&disposition=inline",
					divElement.id, "208", "60", "8", "", {}, parObj, attObj); // hard coded height/width for only banner support
		}
	}

	// subject indexes
	byLetterElement = document.getElementById("subjectsindex_letter");
	byThemeElement = document.getElementById("subjectsindex_themes");

	if(byLetterElement && byThemeElement) {
		viewByThemeElement = document.getElementById("viewbytheme");
		viewByLetterElement = document.getElementById("viewbyletter");

		byLetterAElement = document.createElement("a");
		byLetterAElement.id = "subjectsindex_letter";
		byLetterAElement.href = "#letter";
		byLetterAElement.innerHTML = byLetterElement.innerHTML;

		byLetterSpanElement = document.createElement("span");
		byLetterSpanElement.id = "subjectsindex_letter";
		byLetterSpanElement.innerHTML = byLetterAElement.innerHTML;

		byThemeAElement = document.createElement("a");
		byThemeAElement.id = "subjectsindex_theme";
		byThemeAElement.href = "#theme";
		byThemeAElement.innerHTML = byThemeElement.innerHTML;

		byThemeSpanElement = document.createElement("span");
		byThemeSpanElement.id = "subjectsindex_theme";
		byThemeSpanElement.innerHTML = byThemeAElement.innerHTML;

		viewByThemeElement.style.display = 'none';

		observe(byLetterAElement, "click", _toggleSubjectsIndex);
		observe(byThemeAElement, "click", _toggleSubjectsIndex);

		activeIndex = "letter";

		setSubjectIndexLinks();
	}

	// a elements with rel=external should open in a new window
	var aElements = document.getElementsByTagName("a");
	for(i = 0; i < aElements.length; i++) {
		aElement = aElements[i];
		if(aElement.rel && (aElement.rel == 'external' || aElement.rel == 'extern')) {
			addClassName(aElement, "external");

			observe(aElement, 'click', function newWindow(event) {
				stopEvent(event);
				window.open(findAncestorWithClassName(getEventElement(event), "external").href);
			});
		}
	}

	// .metafield selected, add class.
	var formElements = document.getElementsByTagName("form");
	for(i = 0; i < formElements.length; i++) {
		var formElement = formElements[i];
		var formInnerElements = formElement.getElementsByTagName("*");
		for(j = 0; j < formInnerElements.length; j++) {
			var formInnerElement = formInnerElements[j];
			if(hasClassName(formInnerElement, "metafield")) {
				observe(formInnerElement, "focus", _focusField);
				observe(formInnerElement, "blur", _blurField);
			}
		}
	}

	// hide descriptions (used in searches)
	hideDescriptionElement = document.getElementById("search_hidedescription");
	if(hideDescriptionElement) {
		var hideDescriptionSpan = document.createElement("span");
		hideDescriptionSpan.className = "hidedescription";
		hideDescriptionLink = document.createElement("a");
		hideDescriptionLink.href = "#";
		hideDescriptionLink.id = "toggleDescription";
		hideDescriptionSpan.appendChild(hideDescriptionLink);
		hideDescriptionElement.appendChild(hideDescriptionSpan);
		observe(hideDescriptionLink, "click", _toggleDescriptions);

		descriptionHidden = Cookies['verbergSamenvatting'];
		setDescriptions();
	}

	// select all functionality for library searches
	var pElements = document.getElementsByTagName("p");
	for(i = pElements.length - 1; i >= 0; i--) {
		var pElement = pElements[i];
		if(hasClassName(pElement, "selectall")) {
			liElement = pElement.parentNode; // li.listitem
			var newInputElement = document.createElement("input");
			newInputElement.type = "checkbox";
			newInputElement.className = "selectall";
			newInputElement.id = pElement.id + "_sa";
			newInputElement.name = "selectall";

			var newLabelElement = document.createElement("label");
			newLabelElement.className = "selectall";
			newLabelElement.htmlFor = pElement.id + "_sa";
			newLabelElement.innerHTML = pElement.innerHTML + " null";

			observe(newInputElement, "click", _selectAllClicked);

			liElement.replaceChild(newLabelElement, pElement);
			liElement.insertBefore(newInputElement, newLabelElement);

			newInputElement.checked = "true";
		}
	}

	// contenttypes clicked in library searches and calendars
	inputElements = document.getElementsByTagName("input");
	for(i = 0; i < inputElements.length; i++) {
		inputElement = inputElements[i];
		if(hasClassName(inputElement, "contenttype")) {
			observe(inputElement, "click", _contenttypeClicked);
		}

		if(hasClassName(inputElement, "calendarfield")) {
			var newAElement = document.createElement("a");
			newAElement.id = "btn_" + inputElement.id;
			newAElement.href = "#";
			newAElement.title = "null";

			var newImgElement = document.createElement("img");
			newImgElement.className = "calendar_button";
			newImgElement.alt = "null";
			newImgElement.src = "/styles/default/images/cal.png?_v=1505596";

			newAElement.appendChild(newImgElement);
			inputElement.parentNode.insertBefore(newAElement, inputElement.nextSibling);

			Calendar.setup({
			      inputField :    inputElement.id,
				  // ifFormat   :    "%d-%m-%Y",
				  button     :    newAElement.id,
				  align      :    "cR",
				  step	     :    1,
				  cache	     :    "true"
			});
		}
	}

	// check to check selectAll
	var liElements = document.getElementsByTagName("li");
	for(i = 0; i < liElements.length; i++) {
		liElement = liElements[i];
		if(hasClassName(liElement, "listitem")) {
			checkedSelectAll(liElement);
		}
	}

	// tabbed fragment
	var tabsElement = document.getElementById("tab_buttons");
	if(tabsElement) {
		liTabElements = tabsElement.getElementsByTagName("li");
		for(i = 0; i < liTabElements.length; i++) {
			var liTabElement = liTabElements[i];
			if(hasClassName(liTabElement, "tab_button")) {
				aElement = liTabElement.getElementsByTagName("a")[0];
				removeClassName(aElement, "hidden");
				observe(aElement, "click", _toggleTab);

				if(navigator.userAgent.indexOf("MSIE 6") > 0) {
					var height = 0;
					var children = liTabElement.childElements();
					for(j = 0; j < children.length; j++) {
						height += children[j].offsetHeight;
					}

					if(height != 0) {
						liTabElement.style.height = height + "px";
					}
				}
			}
		}
	}

	// send-a-friend form
	stuurdoorLink = document.getElementById("stuurdoor");
	stuurdoorForm = document.getElementById("stuurdoorFormulier");

	if(stuurdoorLink && stuurdoorForm) {
		stuurdoorLink = stuurdoorLink.getElementsByTagName("a")[0];
		observe(stuurdoorLink, "click", _retrieveStuurDoorForm);
	}

}

function _retrieveStuurDoorForm(event) {
	stopEvent(event);
	var xmlhttp;
	if(window.XMLHttpRequest) {
		xmlhttp = new XMLHttpRequest();
	} else {
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}

	xmlhttp.onreadystatechange = function() {
		if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			stuurdoorForm.innerHTML = xmlhttp.responseText;
		}
	}
	xmlhttp.open("GET", stuurdoorLink.href + "&ajax=true",true);
	xmlhttp.send();
}


function _toggleTab(event) {
	stopEvent(event);

   	var aElement = getEventElement(event);
   	var clickedTab = findAncestorWithClassName(aElement, "tab_button");
	if(clickedTab) {
		for(var i = 0; i < liTabElements.length; i++) {
			var tabElement = liTabElements[i];
			if(hasClassName(tabElement, "tab_button")) {
				if(clickedTab == tabElement) {
					removeClassName(tabElement, "tab_button_inactive");
					addClassName(tabElement, "tab_button_active");
				} else {
					removeClassName(tabElement, "tab_button_active");
					addClassName(tabElement, "tab_button_inactive");
				}
			}
		}
	}
}

function checkedSelectAll(listLiElement) {
 	var selectAllElement = null;
	var inputElements = listLiElement.getElementsByTagName("input");
	for(var i = 0; i < inputElements.length; i++) {
		var inputElement = inputElements[i];
		if(hasClassName(inputElement, "selectall")) {
			selectAllElement = inputElement;
			continue;
		}
		if(!inputElement.checked && selectAllElement != null) {
			selectAllElement.checked = false;
			return;
		}
	}
	if(selectAllElement != null) {
		selectAllElement.checked = true;
	}
}

function _contenttypeClicked(event) {
	var node = getEventElement(event);

	var listLiElement = node.parentNode.parentNode.parentNode;
    checkedSelectAll(listLiElement);
}

function _selectAllClicked(event) {
	var node = getEventElement(event);

	var liElement = node.parentNode;
	var inputElements = liElement.getElementsByTagName("input");
	for(var i = 0; i < inputElements.length; i++) {
		var inputElement = inputElements[i];
		if(hasClassName(inputElement, "contenttype")) {
			inputElement.checked = node.checked;
		}
	}
}

function _toggleDescriptions(event) {
	stopEvent(event);

	if(!descriptionHidden || descriptionHidden == "false") {
		descriptionHidden = "true";
	} else {
		descriptionHidden = "false";
	}
	setDescriptions();
	Cookies.create('verbergSamenvatting',descriptionHidden,365);
}

function setDescriptions() {
	var pElements = document.getElementsByTagName("p");
	for(var i = 0; i < pElements.length; i++) {
		var pElement = pElements[i];
		if(hasClassName(pElement, "description")) {
			if(descriptionHidden && descriptionHidden == "true") {
				pElement.style.display = "none";
			} else {
				pElement.style.display = "";
			}
		}
	}

	if(descriptionHidden && descriptionHidden == "true") {
		hideDescriptionLink.innerHTML = "Samenvatting tonen";
	} else {
	    hideDescriptionLink.innerHTML = "Samenvatting verbergen";
	}

}

function _focusField(event) {
	addClassName(findAncestorWithClassName(getEventElement(event), "formrij"), 'active-field');
}

function _blurField(event) {
	removeClassName(findAncestorWithClassName(getEventElement(event), "formrij"), 'active-field');
}

function findAncestorWithClassName(element, className) {
	var tmpElement = element;
    while(tmpElement && tmpElement.tagName != "body") {
		if(hasClassName(tmpElement, className)) {
			return tmpElement;
		}
		tmpElement = tmpElement.parentNode;
	}
	return null;
}

function _toggleSubjectsIndex(event) {
	stopEvent(event);

	if(activeIndex == "letter") {
		activeIndex = "themes";
	} else {
		activeIndex = "letter";
	}
	setSubjectIndexLinks();
}

function setSubjectIndexLinks() {

	if(activeIndex == "letter") {
	  viewByThemeElement.style.display = "none";
	  viewByLetterElement.style.display = "";
	  byLetterElement.parentNode.replaceChild(byLetterSpanElement, byLetterElement);
	  byThemeElement.parentNode.replaceChild(byThemeAElement, byThemeElement);
	} else {
	  viewByThemeElement.style.display = "";
	  viewByLetterElement.style.display = "none";
      byLetterElement.parentNode.replaceChild(byLetterAElement, byLetterElement);
	  byThemeElement.parentNode.replaceChild(byThemeSpanElement, byThemeElement);
	}

	byLetterElement = document.getElementById("subjectsindex_letter");
	byThemeElement = document.getElementById("subjectsindex_theme");
}

function addClassName(element, className) {
	if (!hasClassName(element, className))
      element.className += (element.className ? ' ' : '') + className;
    return element;
}

function hasClassName(element, className) {
    var elementClassName = element.className;
    if(!elementClassName) {
    	return false;
	}
    return (elementClassName.length > 0 && (elementClassName == className ||
      new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName)));
}

function removeClassName(element, className) {
	element.className = element.className.replace(
      	new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ');

    return element;
}

function getEventElement(event) {
	var node = event.target;
	if (event.currentTarget && event.currentTarget.tagName &&
		event.currentTarget.tagName.toLowerCase() === 'input') {
		node = event.currentTarget;
	} else {
		if(!node) {
			node = event.srcElement;
		}
	}

	if (node.nodeType == 3) node = node.parentNode;
	return node;
}

function stopEvent(event) {
  	event.cancelBubble = true;
  	event.returnValue = false;

  	if(event.stopPropagation) {
		event.stopPropagation();
	}
	if(event.preventDefault) {
		event.preventDefault();
	}
}

/*	SWFObject v2.2 <http://code.google.com/p/swfobject/>
	is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();

if(typeof Prototype == 'undefined') {

	if (typeof Event == 'undefined') Event = new Object();

	Event.domReady = {
	  add: function(fn) {
		if (Event.domReady.loaded) return fn();
		var observers = Event.domReady.observers;
		if (!observers) observers = Event.domReady.observers = [];
		observers[observers.length] = fn;

		if (Event.domReady.callback) return;
		Event.domReady.callback = function() {
		  if (Event.domReady.loaded) return;

		  Event.domReady.loaded = true;
		  if (Event.domReady.timer) {
			clearInterval(Event.domReady.timer);
			Event.domReady.timer = null;
		  }

		  var observers = Event.domReady.observers;
		  for (var i = 0, length = observers.length; i < length; i++) {
			var fn = observers[i];
			observers[i] = null;
			fn(); // make 'this' as window
		  }
		  Event.domReady.callback = Event.domReady.observers = null;
		};
		var ie = !!(window.attachEvent && !window.opera);
		var webkit = navigator.userAgent.indexOf('AppleWebKit/') > -1;

		if (document.readyState && webkit) {
		  // Apple WebKit (Safari, OmniWeb, ...)
		  Event.domReady.timer = setInterval(function() {
			var state = document.readyState;
			if (state == 'loaded' || state == 'complete') {
			  Event.domReady.callback();
			}
		  }, 50);
		} else if (document.readyState && ie) {
		  // Windows IE
		  var src = (window.location.protocol == 'https:') ? '://0' : 'javascript:void(0)';
		  document.write(
			'<script type="text/javascript" defer="defer" src="' + src + '" ' +
			'onreadystatechange="if (this.readyState == \'complete\') Event.domReady.callback();"' +
			'><\/script>');

		} else {

		  if (window.addEventListener) {
			// for Mozilla browsers, Opera 9
			document.addEventListener("DOMContentLoaded", Event.domReady.callback, false);
			// Fail safe
			window.addEventListener("load", Event.domReady.callback, false);
		  } else if (window.attachEvent) {
			window.attachEvent('onload', Event.domReady.callback);
		  } else {
			// Legacy browsers (e.g. Mac IE 5)
			var fn = window.onload;
			window.onload = function() {
			  Event.domReady.callback();
			  if (fn) fn();
			}
		  }

		}

	  }
	}

	Event.domReady.add(initRivm);
	Event.domReady.add(standaardScripts);
} else {
	document.observe("dom:loaded", function() {
		initRivm();
		standaardScripts();
	});
}

