/* Deze functie berekent wat de lengte van de string is in pixels */
function getWidth(text)
{
	var spanElement = document.createElement("span");
	spanElement.style.whiteSpace = "nowrap";
	spanElement.innerHTML = text;
	document.body.appendChild(spanElement);
	var width = spanElement.offsetWidth;
	document.body.removeChild(spanElement);
	
	return width;
}

// Deze functie bepaalt wat de langste optie in de selectboxes is en past de breedte
// van de listboxes daarop aan.
// boxes = een array met de listboxes die van gelijke breedte moeten zijn
function setListBoxWidth(boxes)
{
	var maxWidth = 140; // Default op de breedte van de tekst '-- Geen Voorkeur --'
	for (var i = 0; i < boxes.length; i++) {
		// Doorloop alle items van de selectbox
		for(var j = 0; j < boxes[i].options.length; ++j)
		{
			var width = getWidth(boxes[i].options[j].text);
			if (width>maxWidth)
			{
				maxWidth=width;
				langsteItem = boxes[i].options[j].text;
			}
		}
	}
	// Maak de selectboxes de breedte van het langste item
	for (var i = 0; i < boxes.length; i++) {
		boxes[i].style.width=maxWidth;
	}
}

// Deze functie zorgt ervoor dat de form opgestuurd wordt, zodat de pagina ververst wordt a.h.v. 
// wat gekozen is in de zoekcriteria.
// Uitzondering: wanneer een gebruiker plaats kiest, dan moeten alle andere
// zoekcriteria gereset worden
function refreshPage(element) {
	
	if (element!=null && element.id=="plaats")
	{
		// Wanneer een gebruiker plaats kiest, dan moeten alle andere
		// zoekcriteria gereset worden
		var boxes = document.forms["selectie"].getElementsByTagName("select")
		for (var i = 0; i < boxes.length; i++) {
			if (boxes[i].id!="plaats")
				boxes[i].value=resetValue(boxes[i]);
		}
	}

	var form = document.forms['selectie'];
	form.elements['$_cmd'].value='search';
	form.submit();

	return false;
}

// Doorloop alle huidige waardes en vervang die door 'none'
// NONE is de standaardcode zoals die in de Zoekmachine is gedefinieerd. Wanneer deze 
// verandert, moet je ook de NONE in deze functie aanpassen.
// voorbeeld: $9104_none;$9100_none;$51_none;$9102_none;$9105_none;$9103_none;$9101_none";
// Aanpak:
// 1. Split de string
// 2. Vervang per element de waarde achter de underscore met NONE;

function resetValue(element)
{
	//NONE is de standaardcode zoals die in de Zoekmachine is gedefinieerd. Wanneer deze 
	// verandert, moet je ook de NONE in deze functie aanpassen.
	var NONE = "_none;"; 
	var nieuweWaarde = "";
	var waardes = element.value.split(";");
	for (i=0;i<=(waardes.length-1);i++)
	{
		nieuweWaarde += waardes[i].substring(0, waardes[i].indexOf("_")) + NONE;
	}
	// Strip laatste puntkomma
	return nieuweWaarde.substring(0,nieuweWaarde.length-1);
}
