function showJsEnabledItems() {
	var showenabled = new RegExp('\\bshowjs\\b');
	
	var anchors = document.getElementsByTagName('a');
	
	for (var i = 0; i < anchors.length; i++) {
		var anchor = anchors[i];
		
		if (showenabled.test(anchor.className)) {
			anchor.className = anchor.className.replace(/hidden/g, "");
			anchor.className = anchor.className.replace(/showjs/g, "");
		}
	}

	var fieldsets = document.getElementsByTagName('fieldset');
	
	for (var i = 0; i < fieldsets.length; i++) {
		var fieldset = fieldsets[i];
		
		if (showenabled.test(fieldset.className)) {
			fieldset.className = fieldset.className.replace(/hidden/g, "");
			fieldset.className = fieldset.className.replace(/showjs/g, "");
		}
	}
	
	var inputs = document.getElementsByTagName('input');
	
	for (var i = 0; i < inputs.length; i++) {
		var input = inputs[i];
		
		if (showenabled.test(input.className)) {
			input.className = input.className.replace(/hidden/g, "");
			input.className = input.className.replace(/showjs/g, "");
		}
	}
	
	var labels = document.getElementsByTagName('label');
	
	for (var i = 0; i < labels.length; i++) {
		var label = labels[i];
		
		if (showenabled.test(label.className)) {
			label.className = label.className.replace(/hidden/g, "");
			label.className = label.className.replace(/showjs/g, "");
		}
	}
	
	var uls = document.getElementsByTagName('ul');
	
	for (var i = 0; i < uls.length; i++) {
		var ul = uls[i];
		
		if (showenabled.test(ul.className)) {
			ul.className = ul.className.replace(/hidden/g, "");
			ul.className = ul.className.replace(/showjs/g, "");
		}
	}
	
	var lis = document.getElementsByTagName('li');
	
	for (var i = 0; i < lis.length; i++) {
		var li = lis[i];
		
		if (showenabled.test(li.className)) {
			li.className = li.className.replace(/hidden/g, "");
			li.className = li.className.replace(/showjs/g, "");
		}
	}
	
	var ps = document.getElementsByTagName('p');
	
	for (var i = 0; i < ps.length; i++) {
		var p = ps[i];
		
		if (showenabled.test(p.className)) {
			p.className = p.className.replace(/hidden/g, "");
			p.className = p.className.replace(/showjs/g, "");
		}
	}
	
	var dl = document.getElementsByTagName('dl');
	
	for (var i = 0; i < dl.length; i++) {
		var dl = dl[i];
		
		if (showenabled.test(dl.className)) {
			dl.className = dl.className.replace(/hidden/g, "");
			dl.className = dl.className.replace(/showjs/g, "");
		}
	}
}

function initializePopups() {
	var myclass = new RegExp('\\bpopup\\b');
	var showpopupclass = new RegExp('\\bpopupshow\\b');
	var elements = document.getElementsByTagName('div');
	
	for (var i = 0; i < elements.length; i++) {
		var element = elements[i];
		
		if (myclass.test(element.id) && !showpopupclass.test(element.className)) {
			element.className = "popup hidden";
		}
	}
}

function showPopup(elementId) {
	if (document.getElementById && elementId != null && elementId != "") {
		var popup = document.getElementById(elementId);
		if (popup) {
			popup.className = "popup";
		} else {
			alert("Geen verdere selectie mogelijk");
		}
	}
}

function selectPopup(elementId, checkBoxId) {
	var areAllInputsChecked = false;

	if (document.getElementById && elementId != null && elementId != "") {
		var popup = document.getElementById(elementId);
        
        //Results lists
        var dl = document.getElementById(elementId.replace("popup-","results-"));
        var dd = document.getElementById(elementId.replace("popup-", "resulttext-"));
        
		if (popup) {
			popup.className = "popup hidden";
			
			var anchor = document.getElementById("anchor-" + elementId);
			if (!anchor) {
				var indexDash = elementId.indexOf("-");
				anchor = document.getElementById(elementId.substring(indexDash + 1));
			}
			var checkbox = document.getElementById(checkBoxId);
			
			/* var areAllInputsChecked = false; */
			if (checkbox != null || anchor != null) {
				areAllInputsChecked = allInputsChecked(popup);
			}
			
			if (areAllInputsChecked) {					
				//selected label;
				if(dl) {
			        dl.className = dl.className.replace(/hidden/g, "");
			        dl.className = dl.className.replace(/showjs/g, "");
			        dl.className += " hidden showjs";
					//selected text
					if(dd) {
						dd.innerHTML = ""
					}
				}
			} else {
                //show dl result class
                var showenabled = new RegExp('\\bshowjs\\b');
                var text = getCheckedInputLabels(popup);

                if(dl != null) {     
                    if(text != "") {
                        if (showenabled.test(dl.className)) {
                            dl.className = dl.className.replace(/hidden/g, "");
                            dl.className = dl.className.replace(/showjs/g, "");
                        }
                        dd.innerHTML = text;
                    } else {
                        dl.className = dl.className.replace(/hidden/g, "");
                        dl.className = dl.className.replace(/showjs/g, "");
                        dl.className += " hidden showjs";
                        dd.innerHTML = "";
                    }
                }
			}
			
			
			if (checkbox) {
				checkbox.checked = areAllInputsChecked;
			}
		}
	}
	return areAllInputsChecked;
}

function cancelPopup(elementId, checkBoxId) {
	if (document.getElementById && elementId != null && elementId != "") {
		var popup = document.getElementById(elementId);
		var dl = document.getElementById(elementId.replace("popup-","results-"));
		var dd = document.getElementById(elementId.replace("popup-", "resulttext-"));
		 
		if (popup) {
			popup.className = "popup hidden";
			uncheckAllInputs(popup);
			
			var anchor = document.getElementById("anchor-" + elementId);
			if (!anchor) {
				var indexDash = elementId.indexOf("-");
				anchor = document.getElementById(elementId.substring(indexDash + 1));
			}
			if (anchor) {
				if (anchor.title != '') {
					anchor.innerHTML = anchor.title;
				}
			}
			
			if(dd != null) {
				if(dd.innerHTML != "") {
					dl.className = dl.className.replace(/hidden/g, "");
	                dl.className = dl.className.replace(/showjs/g, "");
	                dl.className += " hidden showjs";
	                dd.innerText = "";
				}
			}
			
			var checkbox = document.getElementById(checkBoxId);
			if (checkbox) {
				checkbox.checked = false;
			}
		}
	}
}

function touchAllPopups() {
	var boPopups ="popup-deelgemeente," +
			"popup-gemeente," +
			"popup-provincie," +
			"popup-waterschap," +
			"popup-ministerie, " +
			"popup-nederlandse_antillen" +
			"popup-eilandgebied";

	var popups = getAllPopups();
	for (var i = 0; i < popups.length; i++) {
		var popup = popups[i];
		
		if (boPopups.indexOf(popup.id) < 0) {
			var facetId = popup.id.replace("popup-", "facet_");
			selectPopup(popup.id, facetId);
		}
	}

	selectPopup("popup-deelgemeente", "cb-bo-deelgemeente");
	selectPopup("popup-gemeente", "cb-bo-gemeente");
	selectPopup("popup-provincie", "cb-bo-provincie");
	selectPopup("popup-waterschap", "cb-bo-waterschap");
	selectPopup("popup-ministerie", "cb-bo-ministerie");
	selectPopup("popup-nederlandse_antillen", "cb-bo-nederlandse_antillen");
	selectPopup("popup-eilandgebied", "cb-bo-eilandgebied");
	allBestuursOrganenCheck();
}

function getAllPopups() {
	var retnode = [];
	var myclass = new RegExp('\\bpopup\\b');
	var elem = document.getElementsByTagName('div');
	
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test(classes)) {
			retnode.push(elem[i]);
		}
	}
	
	return retnode;
}

function cancelAllPopups() {
	var popups = getAllPopups();
	
	for (var i = 0; i < popups.length; i++) {
		cancelPopup(popups[i].id);
	}
}

function getCheckedInputLabels(div) {
	var labels = div.getElementsByTagName("label");
	
  var result = "";
	for (var i = 0; i < labels.length; i++) {
		var label = labels[i];
		
		var input = document.getElementById(label.htmlFor);
		
		if (input && input.checked) {
			if (result != "") {
				result += ", ";
			}
			result += label.innerHTML;
		}
	}
	return result;
}

function allInputsChecked(div) {
	var result = true;
	var inputs = div.getElementsByTagName("input");
	
	for (var i = 0; i < inputs.length; i++) {		
		var input = inputs[i];
		if (input.type == "checkbox" && !input.disabled) {
			if (!input.checked) {
				result = false;
				break;
			}
		}
	}
	
	return result;
}

function uncheckAllInputs(div) {
	var inputs = div.getElementsByTagName("input");
	
	for (var i = 0; i < inputs.length; i++) {		
		var input = inputs[i];
		input.checked = false;
	}	
}

function setAllBestuursOrganen(callingBox) {
	if (document.getElementById("cb-bo-deelgemeente")) {
		document.getElementById("cb-bo-deelgemeente").checked = callingBox.checked;
		if (!callingBox.checked) {
			selectAllCheckboxes("popup-deelgemeente", callingBox);
		}
	}
	if (document.getElementById("cb-bo-gemeente")) {
		document.getElementById("cb-bo-gemeente").checked = callingBox.checked;
		if (!callingBox.checked) {
			selectAllCheckboxes("popup-gemeente", callingBox);
		}
	}
	if (document.getElementById("cb-bo-provincie")) {
		document.getElementById("cb-bo-provincie").checked = callingBox.checked;
		if (!callingBox.checked) {
			selectAllCheckboxes("popup-provincie", callingBox);
		}
	}
	if (document.getElementById("cb-bo-waterschap")) {
		document.getElementById("cb-bo-waterschap").checked = callingBox.checked;
		if (!callingBox.checked) {
			selectAllCheckboxes("popup-waterschap", callingBox);
		}
	}
	if (document.getElementById("cb-bo-ministerie")) {
		document.getElementById("cb-bo-ministerie").checked = callingBox.checked;
		if (!callingBox.checked) {
			selectAllCheckboxes("popup-ministerie", callingBox);
		}
	}
	if (document.getElementById("cb-bo-nederlandse_antillen")) {
		document.getElementById("cb-bo-nederlandse_antillen").checked = callingBox.checked;
		if (!callingBox.checked) {
			selectAllCheckboxes("popup-nederlandse_antillen", callingBox);
		}
	}
	if (document.getElementById("cb-bo-eilandgebied")) {
		document.getElementById("cb-bo-eilandgebied").checked = callingBox.checked;
		if (!callingBox.checked) {
			selectAllCheckboxes("popup-eilandgebied", callingBox);
		}
	}
}

function allBestuursOrganenCheck() {
	if (document.getElementById) {
		var cbAllBestuursOrganen = document.getElementById("bestuursorganen");
		
		if (cbAllBestuursOrganen) {
			var checkAll = true;
			
			if (document.getElementById("cb-bo-deelgemeente") && !document.getElementById("cb-bo-deelgemeente").checked) {
				checkAll = false;
			}
			if (document.getElementById("cb-bo-gemeente") && !document.getElementById("cb-bo-gemeente").checked) {
				checkAll = false;
			}
			if (document.getElementById("cb-bo-provincie") && !document.getElementById("cb-bo-provincie").checked) {
				checkAll = false;
			}
			if (document.getElementById("cb-bo-waterschap") && !document.getElementById("cb-bo-waterschap").checked) {
				checkAll = false;
			}
			if (document.getElementById("cb-bo-ministerie") && !document.getElementById("cb-bo-ministerie").checked) {
				checkAll = false;
			}
			if (document.getElementById("cb-bo-nederlandse_antillen") && !document.getElementById("cb-bo-nederlandse_antillen").checked) {
				checkAll = false;
			}
			if (document.getElementById("cb-bo-eilandgebied") && !document.getElementById("cb-bo-eilandgebied").checked) {
				checkAll = false;
			}
			
			cbAllBestuursOrganen.checked = checkAll;
		}
	}
}

function setAllVergunningTypes(callingBox) {
	selectAllCheckboxes("popup-producttype", callingBox);
}

function selectAllCheckboxes(elementId, callingBox) {
	if (document.getElementById && elementId != null && elementId != "") {
		var popup = document.getElementById(elementId);
		
		if (popup) {
			var inputs = popup.getElementsByTagName("input");
			
			for (var i = 0; i < inputs.length; i++) {
				var input = inputs[i];
				
				if (input) {
					input.checked = callingBox.checked;
				}
			}
			
			if (popup.id.indexOf("popup-") >=0 ) {			
				if (callingBox.checked) {
					selectPopup(elementId);
				} else {
					cancelPopup(elementId);
				}
			}
		}
	}
}

function deselectAllCheckboxes(elementId, callingBox) {
	if (document.getElementById && elementId != null && elementId != "") {
		var popup = document.getElementById(elementId);
		
		if (popup) {
			var inputs = popup.getElementsByTagName("input");
			
			for (var i = 0; i < inputs.length; i++) {
				var input = inputs[i];
				
				if (input) {
					input.checked = "";
				}
			}
			
			if (popup.id.indexOf("popup-") >=0 ) {
			/*
				if (callingBox.checked) {
					selectPopup(elementId);
				} else {
			*/
					cancelPopup(elementId);
			/*	} */
			}
		}
	}
}

function enableFieldset(elementId) {
	if (document.getElementById && elementId != null && elementId != "") {
		var fieldSet = document.getElementById(elementId);		
		if (fieldSet) {
			var inputs = fieldSet.getElementsByTagName("input");
			for (var i = 0; i < inputs.length; i++) {
				inputs[i].disabled = false;
			}
			
			var labels = fieldSet.getElementsByTagName("label");
			for (var i = 0; i < labels.length; i++) {
				labels[i].className = labels[i].className.replace(/inactive/g, "");
			}
			
			var dls = fieldSet.getElementsByTagName("dl");
			for (var i = 0; i < dls.length; i++) {
				dls[i].className = dls[i].className.replace(/inactive/g, "");
			}
			
			var anchors = fieldSet.getElementsByTagName("a");
			for (var i = 0; i < anchors.length; i++) {
				var anchor = anchors[i];
				
				if (!anchor.className || anchor.className.indexOf("date") < 0) {
					if (anchor.onclick == null && anchor.onclick_bak != null) {
						anchor.onclick = anchor.onclick_bak;
					}
					anchor.className = anchor.className.replace(/disabled/g, "");
				}
			}
		}
	}
}

function disableFieldset(elementId) {
	if (document.getElementById && elementId != null && elementId != "") {
		var fieldSet = document.getElementById(elementId);		
		if (fieldSet) {
			var inputs = fieldSet.getElementsByTagName("input");
			for (var i = 0; i < inputs.length; i++) {
				inputs[i].disabled = true;
			}
			
			var labels = fieldSet.getElementsByTagName("label");
			for (var i = 0; i < labels.length; i++) {
				var label = labels[i];
				label.className = label.className.replace(/inactive/g, "");
				label.className += " inactive";
			}
			
			var dls = fieldSet.getElementsByTagName("dl");
			for(var i = 0; i < dls.length; i++) {
				var dl = dls[i];
				dl.className = dl.className.replace(/inactive/, "");
				dl.className += " inactive";
			}
			
			var anchors = fieldSet.getElementsByTagName("a");
			for (var i = 0; i < anchors.length; i++) {
				var anchor = anchors[i];
				
				if (!anchor.className || anchor.className.indexOf("date") < 0) {				
					var onclick = anchor.onclick;

					if (onclick != null) {
						anchor.onclick_bak = onclick;
					}
					
					anchor.className = anchor.className.replace(/disabled/g, "");
					anchor.className += " disabled";
					anchor.onclick = null;
				}
			}
		}
	}
}

function showGemeente(firstCharacter) {
	if (document.getElementById) {
		var ulPagingGemeente = document.getElementById("ul-gemeente");
		if (ulPagingGemeente) {
			var liPagingGemeente = ulPagingGemeente.getElementsByTagName("li");
			for (var i = 0; i < liPagingGemeente.length; i++) {
				liPagingGemeente[i].className = "";
			}
		
			var liGemeente = document.getElementById("li-gemeente-" + firstCharacter);
			liGemeente.className = "active";
			
			var divsGemeente = document.getElementById("fieldset-gemeente").getElementsByTagName("div");
			for (var i = 0; i < divsGemeente.length; i++) {
				divsGemeente[i].className = divsGemeente[i].className.replace(/hidden/g, "");
				divsGemeente[i].className += " hidden";
			}
			
			var divShowGemeente = document.getElementById("div-gemeente-" + firstCharacter);
			divShowGemeente.className = divShowGemeente.className.replace(/hidden/g, "");
		}
	}
}

var MONTH_NAMES = new Array('Januari','Februari','Maart','April','Mei','Juni','Juli','Augustus','September','Oktober','November','December','Jan','Feb','Maa','Apr','Mei','Jun','Jul','Aug','Sep','Okt','Nov','Dec');
var DAY_NAMES = new Array('Zondag','Maandag','Dinsdag','Woensdag','Donderdag','Vrijdag','Zaterdag','Zon','Maa','Din','Woe','Don','Vrij','Zat');

// Add leading zero
function LZ(x) {
	return (x < 0 || x > 9 ?"" : "0") + x
}

function formatDate(date, format) {
	format=format+"";
	var result="";
	var i_format=0;
	var c="";
	var token="";
	var y=date.getYear()+"";
	var M=date.getMonth()+1;
	var d=date.getDate();
	var E=date.getDay();
	var H=date.getHours();
	var m=date.getMinutes();
	var s=date.getSeconds();
	var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
	var value=new Object();
	
	if (y.length < 4) {
		y = "" + (y - 0 + 1900);
	}
	
	value["y"] = "" + y;
	value["yyyy"] = y;
	value["yy"] = y.substring(2,4);
	value["M"] = M;
	value["MM"] = LZ(M);
	value["MMM"] = MONTH_NAMES[M-1];
	value["NNN"] = MONTH_NAMES[M+11];
	value["d"] = d;
	value["dd"] = LZ(d);
	value["E"] = DAY_NAMES[E+7];
	value["EE"] = DAY_NAMES[E];
	value["H"] = H;
	value["HH"] = LZ(H);
	
	if (H == 0) {
		value["h"]=12;
	} else if (H > 12) {
		value["h"] = H-12;
	} else {
		value["h"] = H;
	}
	value["hh"] = LZ(value["h"]);
	
	if (H > 11) {
		value["K"] = H-12;
	} else { 
		value["K"]=H;
	}
	value["KK"] = LZ(value["K"]);
	value["k"] = H+1;
	value["kk"] = LZ(value["k"]);
	
	if (H > 11) {
		value["a"] = "PM";
	} else {
		value["a"] = "AM";
	}
	
	value["m"] = m;
	value["mm"] = LZ(m);
	value["s"] = s;
	value["ss"] = LZ(s);
	
	while (i_format < format.length){
		c = format.charAt(i_format);
		token = "";
		while ((format.charAt(i_format) == c) && (i_format < format.length)) {
			token += format.charAt(i_format++);
		}
		if (value[token] != null) {
			result = result + value[token];
		} else {
			result=result + token;
		}
	} 
	return result;
}

function getCurrentDate(elementId, dateformat) {
	if (document.getElementById && elementId != null && elementId != "") {
		
		var input = document.getElementById(elementId);
		if (input) {					
			input.value = formatDate(new Date(), dateformat);
		}
	}
}

function isValidEmailAddress(email) {
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;

	return filter.test(email);
}

function checkEmailAddress(inputId, submitButtonId) {
	if (document.getElementById) {
		var input = document.getElementById(inputId);
		var submitButton = document.getElementById(submitButtonId);
		
		submitButton.disabled = !isValidEmailAddress(input.value);
	}
}

function saveTerm(termId) {
	if (document.getElementById && termId != null && termId != "") {
		var term = document.getElementById(termId);
		var form = document.getElementById("zoekTermForm");
		if (form) {
			var element = document.createElement("input");
			element.setAttribute("id", "saveTerm");
			element.setAttribute("name", "saveTerm");
			element.setAttribute("type", "hidden");
			element.setAttribute("value", term != null ? term.value != null ? term.value : "" : "");
			form.appendChild(element);
		}
	}
}

function checkTerm(form) {
	var term = form.term_zoeken.value;
	var saveTerm = form.saveTerm.value;

	if(term == 'Vul een zoekterm in') {
		form.term.value="";
	}
}

function checkLocatie(form, labelValue) {
	var locatie = form.locatie_bijuindebuurt.value;
	if(locatie == labelValue) {
		form.locatie.value="";
	}
}

function displayLocatieInput(id) {
	var locatie = document.getElementById(id);
	locatie.removeAttribute("class");
	setTimeout("focusElement('" + id +  "')", 0);
}

function focusElement(id) {
	var element = document.getElementById(id);
	element.focus();
	element.select();
}
var oldText;
function changeButtonLabel(element) {
	var txt = document.createTextNode("Toon lokale informatie");
	oldText = element.replaceChild(txt, element.firstChild);
	element.value="Toon lokale informatie";
}

function checkValue(element, valueString) {
	var result = false;
	if(oldText.nodeValue != valueString) {
		result= true;
	}
	return result;
	
}

/*
function externalLinks() {
    if (document.getElementsByTagName) {
        var list = document.getElementsByTagName('a');
        var host = window.location.hostname;
        var obj;
        externeSite=document.createElement('img');
        externeSite.setAttribute('src','http://localhost:8080/overheid.nl/img/knop-plus.gif');
        
        for (i = 0; i < list.length; i++) {
            obj = list.item(i);
            if ( obj.href && (obj.href.indexOf(host) == -1 && obj.href.indexOf('.overheid.nl') == -1) || ( obj.href.indexOf('redirectURL') != -1 && obj.href.indexOf('.overheid.nl', obj.href.indexOf('redirectURL')) == -1) ) {
                if ( obj.className == null || obj.className == '' || ( obj.className.length > 0  && obj.className.indexOf('ongemarkeerd') == -1 ) ) {
                    obj.rel = 'external';
                    obj.title = 'Externe site: ' + obj.title;
                    obj.innerHTML = obj.innerHTML + ' <img src="/Zoekdienst/overheid.nl/img/extern.png">';
                }
            }
        }
    }
}
*/

function unobtrusiveCheckTerm() {
	
	var zoekTermForm = document.getElementById('zoekTermForm');
	if(zoekTermForm) {
		zoekTermForm.onsubmit = function() {
			return checkTerm(this);
		}
	}
}

function unobtrusiveCheckLocatie() {

	var zoekLocatieForm = document.getElementById('zoekLocatieForm');
	if(zoekLocatieForm) {
		if(zoekLocatieForm.className.indexOf("small")) {
			zoekLocatieForm.onsubmit = function() {
				return checkLocatie(this, "Postcode of plaatsnaam");
			}
		} else {		
			zoekLocatieForm.onsubmit = function() {
				return checkLocatie(this);
			}
		}
	}
}

function unobtrusiveButtons() {
	if (document.getElementsByTagName) {
		var inputs = document.getElementsByTagName("input");
		for (var i = 0; i < inputs.length; i++) {
			var button = inputs[i];			
			if (button.id != null && button.id != "" && button.type == "button") {
				if (button.id == "afdrukken") {
					button.onclick = function() {
						return window.print();
					}
				} else if (button.id.indexOf("status-popup-ok-") > -1) {					
					button.onclick = function() {
						var popupId = this.id.substring(16);
						return cancelPopup(popupId);
					}
				} else if (button.id.indexOf("email-cancel-") > -1) {					
					button.onclick = function() {
						var popupId = this.id.substring(13);
						return cancelPopup(popupId);
					}
				}
			}
		}
		
		var buttons = document.getElementsByTagName("button");
		for (var i = 0; i < buttons.length; i++) {
			var button = buttons[i];			
			if (button.id != null && button.id != "") {
				if (button.id.indexOf("submit_bijuindebuurt") > -1) {
					if (button.title == "addonclick") {
						button.title = "";
						button.onclick = function() {
							displayLocatieInput('locatie_bijuindebuurt'); 
							changeButtonLabel(this); 
							return checkValue(this, 'Wijzig locatie');
						}
					}
				}
			}
		}
	}
}

function unobtrusiveAnchors() {
	if (document.getElementsByTagName) {
		var anchors = document.getElementsByTagName("a");
		for (var i = 0; i < anchors.length; i++) {
			var anchor = anchors[i];
			if (anchor.id != null && anchor.id != "") {
				if (anchor.id == "anchor-popup-email-bm-email") {
					anchor.onclick = function() {
						return showPopup("popup-email-bm-email")
					}
				} else if (anchor.id.indexOf("anchor-gemeente-") > -1) {					
					anchor.onclick = function() {
						var anchorId = this.id.substring(16);
						return showGemeente(anchorId);
					}
				} else if (anchor.id.indexOf("anchor-popup-") > -1) {
					anchor.onclick = function() {
						if (this.className.indexOf("disabled") == -1) {
							var anchorId = this.id.substring(7);
							var selectElement;
							switch(anchorId) {
								case "popup-deelgemeente":
									selectElement = document.getElementById("cb-bo-deelgemeente");
									break;
								case "popup-gemeente":
									selectElement = document.getElementById("cb-bo-gemeente");
									break;
								case "popup-provincie":
									selectElement = document.getElementById("cb-bo-provincie");
									break;
								case "popup-waterschap":
									selectElement = document.getElementById("cb-bo-waterschap");
									break;
								case "popup-nederlandse_antillen":
									selectElement = document.getElementById("cb-bo-nederlandse_antillen");
									break;
								case "popup-eilandgebied":
									selectElement = document.getElementById("cb-bo-eilandgebied");
									break;
							}
							if (selectElement != null) {
								if (selectElement.checked) {
									selectAllCheckboxes(anchorId, selectElement);
								}
							}
							return showPopup(anchorId);
						} else {
							return false;
						}
					}
				}
			}			
		}
	}
}

function unobtrusiveCheckEmailAddress() {
	if (document.getElementById) {
		var input = document.getElementById("user_emailadres");
		if (input) {
			input.onkeyup = function() {
					return checkEmailAddress('user_emailadres','email-submit');
			}
			input.onchange = input.onkeyup;
			input.onmouseout = input.onkeyup;
		}
	}
}

function addSelectAllItems() {
	if (document.getElementById) {
		var vergunningType = document.getElementById("select-all-producttype");
		if (vergunningType) {			
			var input = document.createElement("input");
			input.id = "producttypes";
			input.type = "checkbox";
			input.onclick = function() {
				return setAllVergunningTypes(this);
			};
			
			var label = document.createElement("label");
			label.htmlFor = "producttypes";
			label.innerHTML = "Alle producttypes";
			
			var firstChild = vergunningType.firstChild;
			
			vergunningType.insertBefore(input, firstChild);
			vergunningType.insertBefore(label, firstChild);			
		}
		
		var bekendmakingsType = document.getElementById("select-all-bekendmakingstype");
		if (bekendmakingsType) {
			var input = document.createElement("input");
			input.id = "facet_bekendmakingstype";
			input.type = "checkbox";
			input.onclick = function() {
				return selectAllCheckboxes("popup-bekendmakingstype", this);
			};
			
			var label = document.createElement("label");
			label.htmlFor = "facet_bekendmakingstype";
			label.innerHTML = "Alle onderwerpen";
			
			var firstChild = bekendmakingsType.firstChild;
			
			bekendmakingsType.insertBefore(input, firstChild);
			bekendmakingsType.insertBefore(label, firstChild);			
		}
		
		var bestuursorganen = document.getElementById("fieldset-uitgever");
		if (bestuursorganen) {
			var input = document.createElement("input");
			input.id = "bestuursorganen";
			input.type = "checkbox";
			input.className = "checkboxIE6_leftalign_input";
			
			input.onclick = function() {
				return setAllBestuursOrganen(this);
			};
			
			var label = document.createElement("label");
			label.htmlFor = "bestuursorganen";
			label.innerHTML = "Alle organisaties";
			label.className = "checkboxIE6_leftalign_label";
			
			var firstChild = bestuursorganen.childNodes[1];			
			
			bestuursorganen.insertBefore(input, firstChild);
			bestuursorganen.insertBefore(label, firstChild);			
		}
		
		var deelgemeente = document.getElementById("select-deelgemeente");
		if (deelgemeente) {
			var input = document.createElement("input");
			input.id = "cb-bo-deelgemeente";
			input.name = "facet_uitgever";
			input.value = "deelgemeente"
			input.type = "checkbox";
			input.onclick = function() {
				if (this.checked) {
					deselectAllCheckboxes("popup-deelgemeente", this);
				}
				/*
				selectAllCheckboxes("popup-deelgemeente", this);
				return allBestuursOrganenCheck();
				*/
			};
			
			var label = document.createElement("label");
			label.htmlFor = "cb-bo-deelgemeente";
			label.innerHTML = "Alle deelgemeenten / stadsdelen";
			
			var firstChild = deelgemeente.firstChild;
			
			deelgemeente.insertBefore(input, firstChild);
			deelgemeente.insertBefore(label, firstChild);			
		}
		
		var gemeente = document.getElementById("select-gemeente");
		if (gemeente) {
			var input = document.createElement("input");
			input.id = "cb-bo-gemeente";
			input.name = "facet_uitgever";
			input.value = "gemeente";
			input.type = "checkbox";
			input.onclick = function() {
				if (this.checked) {
					deselectAllCheckboxes("popup-gemeente", this);
				}
				/* 
				selectAllCheckboxes("popup-gemeente", this);
				return allBestuursOrganenCheck();
				*/
			};
			
			var label = document.createElement("label");
			label.htmlFor = "cb-bo-gemeente";
			label.innerHTML = "Alle gemeenten";
			
			var firstChild = gemeente.firstChild;
			
			gemeente.insertBefore(input, firstChild);
			gemeente.insertBefore(label, firstChild);			
		}
		
		var provincie = document.getElementById("select-provincie");
		if (provincie) {
			var input = document.createElement("input");
			input.id = "cb-bo-provincie";
			input.name = "facet_uitgever";
			input.value = "provincie";
			input.type = "checkbox";
			input.onclick = function() {
				if (this.checked) {
					deselectAllCheckboxes("popup-provincie", this);
				}
				/*
				selectAllCheckboxes("popup-provincie", this);
				return allBestuursOrganenCheck();
				*/
			};
			
			var label = document.createElement("label");
			label.htmlFor = "cb-bo-provincie";
			label.innerHTML = "Alle provincies";
			
			var firstChild = provincie.firstChild;
			
			provincie.insertBefore(input, firstChild);
			provincie.insertBefore(label, firstChild);			
		}
		
		var waterschap = document.getElementById("select-waterschap");
		if (waterschap) {
			var input = document.createElement("input");
			input.id = "cb-bo-waterschap";
			input.name = "facet_uitgever";
			input.value = "waterschap";
			input.type = "checkbox";
			input.onclick = function() {
				if (this.checked) {
					deselectAllCheckboxes("popup-waterschap", this);
				}
				/*
				selectAllCheckboxes("popup-waterschap", this);
				return allBestuursOrganenCheck();
				*/
			};
			
			var label = document.createElement("label");
			label.htmlFor = "cb-bo-waterschap";
			label.innerHTML = "Alle waterschappen";
			
			var firstChild = waterschap.firstChild;
			
			waterschap.insertBefore(input, firstChild);
			waterschap.insertBefore(label, firstChild);			
		}
		
		var ministerie = document.getElementById("select-ministerie");
		if (ministerie) {
			var input = document.createElement("input");
			input.id = "cb-bo-ministerie";
			input.name = "facet_uitgever";
			input.value = "ministerie";
			input.type = "checkbox";
			input.disabled = "true";
						
			input.onclick = function() {
				if (this.checked) {
					deselectAllCheckboxes("popup-ministerie", this);
				}
				/*
				selectAllCheckboxes("popup-ministerie", this);
				return allBestuursOrganenCheck();
				*/
			};
			
			var label = document.createElement("label");
			label.htmlFor = "cb-bo-ministerie";
			label.innerHTML = "Alle ministeries";
			label.className = "notavailable";
			
			var firstChild = ministerie.firstChild;
			
			ministerie.insertBefore(input, firstChild);
			ministerie.insertBefore(label, firstChild);			
		}

		var nederlandse_antillen = document.getElementById("select-nederlandse_antillen");
		if (nederlandse_antillen) {
			var input = document.createElement("input");
			input.id = "cb-bo-nederlandse_antillen";
			input.name = "facet_uitgever";
			input.value = "nederlandse_antillen";
			input.type = "checkbox";
			input.onclick = function() {
				if (this.checked) {
					deselectAllCheckboxes("popup-nederlandse_antillen", this);
				}
				/*
				selectAllCheckboxes("popup-nederlandse_antillen", this);
				return allBestuursOrganenCheck();
				*/
			};
			
			var label = document.createElement("label");
			label.htmlFor = "cb-bo-nederlandse_antillen";
//
// Nederlandse Antillen niet tonen als popup, maar als link
//
//			label.innerHTML = "Alle Nederlandse Antillen";

			label.innerHTML = "Nederlandse Antillen";
			var anchor_popup = document.getElementById("anchor-popup-nederlandse_antillen").parentNode;
			anchor_popup.parentNode.removeChild(anchor_popup);
			var results_nederlandse_antillen = document.getElementById("results-nederlandse_antillen");
			results_nederlandse_antillen.parentNode.removeChild(results_nederlandse_antillen);
//  			
//			
			
			var firstChild = nederlandse_antillen.firstChild;
			
			nederlandse_antillen.insertBefore(input, firstChild);
			nederlandse_antillen.insertBefore(label, firstChild);
		}
		
		var eilandgebied = document.getElementById("select-eilandgebied");
		if (eilandgebied) {
			var input = document.createElement("input");
			input.id = "cb-bo-eilandgebied";
			input.name = "facet_uitgever";
			input.value = "eilandgebied";
			input.type = "checkbox";
			input.onclick = function() {
				if (this.checked) {
					deselectAllCheckboxes("popup-eilandgebied", this);
				}
				/*
				selectAllCheckboxes("popup-eilandgebied", this);
				return allBestuursOrganenCheck();
				*/
			};
			
			var label = document.createElement("label");
			label.htmlFor = "cb-bo-eilandgebied";
			label.innerHTML = "Alle eilandgebieden";
			
			var firstChild = eilandgebied.firstChild;
			
			eilandgebied.insertBefore(input, firstChild);
			eilandgebied.insertBefore(label, firstChild);			
		}
	}
}

function createPopupButtons() {
	if (document.getElementsByTagName) {
		var fieldsets = document.getElementsByTagName("fieldset");
		
		for (var i = 0; i < fieldsets.length; i++) {
			var fieldset = fieldsets[i];
			if (fieldset.className == "buttons") {				
				var popupId = fieldset.parentNode.parentNode.id;
				
				if (popupId.indexOf("popup") > -1 && popupId.indexOf("attenderen") == -1 && popupId.indexOf("email") == -1) {				
					var inputSelect = document.createElement("input");
					inputSelect.type = "button";
					inputSelect.value = "Selecteer";
					fieldset.appendChild(inputSelect);
					
					var inputClear = document.createElement("input");
					inputClear.type = "button";
					inputClear.value = "Wissen";					
					fieldset.appendChild(inputClear);
					
					switch (popupId) {
						case "popup-producttype":
							inputSelect.onclick = function() {
								return selectPopup("popup-producttype", "producttypes");
							}
							inputClear.onclick = function() {
								return cancelPopup("popup-producttype", "producttypes");
							}
							break;
						case "popup-bekendmakingstype":
							inputSelect.onclick = function() {
								return selectPopup("popup-bekendmakingstype", "facet_bekendmakingstype");
							}
							inputClear.onclick = function() {
								return cancelPopup("popup-bekendmakingstype", "facet_bekendmakingstype");
							}						
							break;
						case "popup-deelgemeente":
							inputSelect.onclick = function() {
								var allChecked = selectPopup("popup-deelgemeente", "cb-bo-deelgemeente");
								if (allChecked) {
									deselectAllCheckboxes("popup-deelgemeente", "cb-bo-deelgemeente");
								}
								return allBestuursOrganenCheck();
							}
							inputClear.onclick = function() {
								cancelPopup("popup-deelgemeente", "cb-bo-deelgemeente");
								return allBestuursOrganenCheck();
							}
							break;
						case "popup-gemeente":
							inputSelect.onclick = function() {
								var allChecked = selectPopup("popup-gemeente", "cb-bo-gemeente");
								if (allChecked) {
									deselectAllCheckboxes("popup-gemeente", "cb-bo-gemeente");
								}
								allBestuursOrganenCheck();
								return showGemeente("A");
							}
							inputClear.onclick = function() {
								cancelPopup("popup-gemeente", "cb-bo-gemeente");
								return allBestuursOrganenCheck();
							}
							break;
						case "popup-provincie":
							inputSelect.onclick = function() {
								var allChecked = selectPopup("popup-provincie", "cb-bo-provincie");
								/* if (allInputsChecked("cb-bo-provincie")) { */
								if (allChecked) {
									deselectAllCheckboxes("popup-provincie", "cb-bo-provincie");
								}
								return allBestuursOrganenCheck();
							}
							inputClear.onclick = function() {
								cancelPopup("popup-provincie", "cb-bo-provincie");
								return allBestuursOrganenCheck();
							}
							break;
						case "popup-waterschap":
							inputSelect.onclick = function() {
								var allChecked = selectPopup("popup-waterschap", "cb-bo-waterschap");
								if (allChecked) {
									deselectAllCheckboxes("popup-waterschap", "cb-bo-waterschap");
								}
								return allBestuursOrganenCheck();
							}
							inputClear.onclick = function() {
								cancelPopup("popup-waterschap", "cb-bo-waterschap");
								return allBestuursOrganenCheck();
							}
							break;
						case "popup-ministerie":
							inputSelect.onclick = function() {
								var allChecked = selectPopup("popup-ministerie", "cb-bo-ministerie");
								if (allChecked) {
									deselectAllCheckboxes("popup-ministerie", "cb-bo-ministerie");
								}
								return allBestuursOrganenCheck();
							}
							inputClear.onclick = function() {
								cancelPopup("popup-ministerie", "cb-bo-ministerie");
								return allBestuursOrganenCheck();
							}
							break;
						case "popup-nederlandse_antillen":
							inputSelect.onclick = function() {
								selectPopup("popup-nederlandse_antillen", "cb-bo-nederlandse_antillen");
								return allBestuursOrganenCheck();
							}
							inputClear.onclick = function() {
								cancelPopup("popup-nederlandse_antillen", "cb-bo-nederlandse_antillen");
								return allBestuursOrganenCheck();
							}
							break;	
						case "popup-eilandgebied":
							inputSelect.onclick = function() {
								selectPopup("popup-eilandgebied", "cb-bo-eilandgebied");
								return allBestuursOrganenCheck();
							}
							inputClear.onclick = function() {
								cancelPopup("popup-eilandgebied", "cb-bo-eilandgebied");
								return allBestuursOrganenCheck();
							}
							break;	
					}
				}
			}
		}
	}
}

function createDateSelectAnchor() {
	if (document.getElementById) {
		var fieldsetRegelinggeldendop = document.getElementById("fieldset-regelinggeldendop");
		if (fieldsetRegelinggeldendop) {
			var anchor = document.createElement("a");
			anchor.className = "date-select";
			anchor.href = "#";
			anchor.innerHTML = "Zoek met vandaag";
			anchor.onclick = function() {
				return getCurrentDate("facet_regelinggeldendop", "dd-MM-yyyy");
			}
			
			fieldsetRegelinggeldendop.appendChild(anchor);
		}
		
		var fieldsetInwerkingtreding = document.getElementById("fieldset-inwerkingtreding");
		if (fieldsetInwerkingtreding) {
			var anchor = document.createElement("a");
			anchor.className = "date-select";
			anchor.href = "#";
			anchor.innerHTML = "Zoek met vandaag";
			anchor.onclick = function() {
				return getCurrentDate("facet_inwerkingtreding", "dd-MM-yyyy");
			}
			
			fieldsetInwerkingtreding.appendChild(anchor);
		}
	}
}

function addAdvancedSearchSelectedLabel() {
	
	if (document.getElementsByTagName) {
		var sLabels = document.getElementsByTagName("dt");
		var elem = document.getElementsByTagName('div');
		var regEx = new RegExp(/selectedLabel/);
		for (var i = 0; i < sLabels.length; i++) {
			var label = sLabels[i];
			
			if(regEx.test(label.className)) {
				label.removeAttribute('class');
				label.innerHTML = "Geselecteerd:";
			}
		}
	}
}

function addAbonnerenLink() {
	
	var liElement = document.getElementById("abonnerenopzoekopdracht");
	if (liElement) {
		
		liElement.innerHTML += "<a href='#' id='anchor-popup-email-bm-email'>Abonneren op zoekopdracht</a>";	
	}
}



function insertAfter(newElement,targetElement) {

	var parent = targetElement.parentNode;
	if(parent.lastchild == targetElement) {
		parent.appendChild(newElement);
	} else {
		parent.insertBefore(newElement, targetElement.nextSibling);
	}
}

function showStatusAttenderen() {
	var divElement = document.getElementById("popup-status-bm-attenderen-success");
	if (divElement) {
		divElement.className = "popup";
	}
}

/* onload function */
function functions_init() {
	// dc.init(); /* used by domcollapse */
	
	
	
	createDateSelectAnchor();
	createPopupButtons();
	addAdvancedSearchSelectedLabel();
	addSelectAllItems();

	addAbonnerenLink();
	
	showJsEnabledItems();
	initializePopups();
	touchAllPopups();
	showGemeente("A");
	saveTerm("term_zoeken");
	unobtrusiveCheckTerm();
	unobtrusiveCheckLocatie();
	unobtrusiveButtons();
	unobtrusiveAnchors();
	unobtrusiveCheckEmailAddress();
	showStatusAttenderen();
}

addDOMLoadEvent = ( function() {
	var e = [], t, s, n, i, o, d = document, w = window, r = 'readyState', c = 'onreadystatechange', x = function() {
		n = 1;
		clearInterval(t);
		while (i = e.shift())
			i();
		if (s)
			s[c] = ''
	};
	return function(f) {
		if (n)
			return f();
		if (!e[0]) {
			d.addEventListener
					&& d.addEventListener("DOMContentLoaded", x, false);/* @cc_on@ *//*
																					 * @if(@_win32)d.write("<script
																					 * id=__ie_onload
																					 * defer
																					 * src=//0><\/scr"+"ipt>");s=d.getElementById("__ie_onload");s[c]=function(){s[r]=="complete"&&x()};/*@end@
																					 */
			if (/WebKit/i.test(navigator.userAgent))
				t = setInterval( function() {
					/loaded|complete/.test(d[r]) && x()
				}, 10);
			o = w.onload;
			w.onload = function() {
				x();
				o && o()
			}
		}
		e.push(f)
	}
})();
addDOMLoadEvent(functions_init);

/*
if (window.addEventListener) {
	window.addEventListener("load", functions_init, false); 
} else if (window.attachEvent) {
	window.attachEvent("onload", functions_init);
} else {
	window.onload = init;
}
*/