/*file wordt geinclude in zoek.php*/
	var arrProdukten = new Array();
	var strsoortGekozen = ""
	var strbereidingstijdGekozen = ""
	var strkeukenGekozen = ""
	var strmenugangGekozen = ""

	/*custom object voor vloeren*/
	function product (strSoort,strBereidingstijd,strKeuken,strMenugang) {
			this.soort = strSoort;
			this.bereidingstijd = strBereidingstijd;
			this.keuken = strKeuken;
			this.menugang = strMenugang;
		}
	
	/*function getUniqueArray
	doel:
		Om de unieke waarden te krijgen van alle vloeren. Dus bijvoorbeeld een array met elke mogelijke menugang.
	input: 
		strFieldname: type gegevens waarmee de array die wordt gereturnd moet worden gevuld (bijv soorten of bereidingstijden)
		strSoort: door deze ongelijk te maken aan "" wordt de keuze beperkt tot vloeren van dit soort
		strBereidingstijd: door deze ongelijk te maken aan "" wordt de keuze beperkt tot vloeren van dit bereidingstijd
		strKeuken: door deze ongelijk te maken aan "" wordt de keuze beperkt tot vloeren van dit keuken
		strMenugang: door deze ongelijk te maken aan "" wordt de keuze beperkt tot vloeren van dit menugang
	return value: 
		array met unieke waarden
	*/
	function getUniqueArray(strFieldname,strSoort,strBereidingstijd,strKeuken,strMenugang){
		var strResults = "";
		for(i=0;i<arrProdukten.length;i++){
			if((strSoort=="" | strSoort==arrProdukten[i].soort) && (strBereidingstijd=="" | strBereidingstijd==arrProdukten[i].bereidingstijd) && (strKeuken=="" | strKeuken==arrProdukten[i].keuken) && (strMenugang=="" | strMenugang==arrProdukten[i].menugang)) {
				var strValue = eval("arrProdukten[i]."+strFieldname);
				if(strResults.lastIndexOf(strValue)==-1) {strResults = strResults + "!?!" + strValue ;}
			}
		}
		var arrUnique =  new Array()
		if(strResults.length){
			arrUnique = strResults.substr(3).split("!?!")
		}
		arrUnique = arrUnique.sort();
		return arrUnique
	}
	
	
	function getNoOffloors(strSoort,strBereidingstijd,strKeuken,strMenugang){
		var iCounter = 0;
		for(x=0;x<arrProdukten.length;x++){
			if((strSoort=="" | strSoort==arrProdukten[x].soort) && (strBereidingstijd=="" | strBereidingstijd==arrProdukten[x].bereidingstijd) && (strKeuken=="" | strKeuken==arrProdukten[x].keuken) && (strMenugang=="" | strMenugang==arrProdukten[x].menugang)) {iCounter++}
		}
		return iCounter;
	}
	
	/*function buildControl
	doel:
		Functie om form elementen toe te voegen aan het zoek formulier. Als de parameter "strValue" leeg is wordt 
		er een slect box ingevoegd. Als de string niet leeg is wordt er een label neergezet en een hidden input veld. 
	input: 
		strFieldname: type gegevens waarmee de select die wordt gebouwd moet worden gevuld (bijv soorten of bereidingstijden)
		strValue: eventueel al gekozen waarde voor het type gegeven bij het zoeken
	return value: 
		geen, door functie wordt form element ingevoegd in document
	*/
	function buildControl(strFieldName,strValue){
		var is_ie=false
		if (navigator.appVersion.toLowerCase().indexOf('msie')>-1){is_ie=true}
		var objControlContainer = document.getElementById("zoek_control_"+strFieldName)
		var arrLabels = getUniqueArray(strFieldName,strsoortGekozen,strbereidingstijdGekozen,strkeukenGekozen,strmenugangGekozen)
		//remove control
		try {
			objControlContainer.removeChild(objControlContainer.childNodes[0]);
			objControlContainer.innerHTML="";
		}
		catch(e){}
		//build hidden input field
		if(strValue!="" | arrLabels.length==1){ // ook als er maar één mogelijke keuze is wordt deze als een label neergezet
			var strFieldText = "";
			if(strValue!=""){strFieldText=strValue}
			else {strFieldText=arrLabels[0]}
			if(is_ie){oElement = document.createElement("<input name='"+"control_"+strFieldName+"'></input>")}
			else {
				oElement = document.createElement("input");
				oElement.name = "control_"+strFieldName;
			}
			oElement.type = "hidden";
			oElement.value = strValue;
			oTextNode = document.createTextNode(strFieldText);
			oElement.id = "control_" + strFieldName;
			//alert(oTextNode);
			oElement = objControlContainer.appendChild(oElement);
			oElement = objControlContainer.appendChild(oTextNode);
		}
		//build select box
		else{
			
			if(is_ie){var oElementSelect = document.createElement("<select name='"+"control_" + strFieldName+"'></select>")}
			else {
				var oElementSelect = document.createElement("select") ;
				oElementSelect.name = "control_"+strFieldName;
			}
			
			oElementSelect.id = "control_" + strFieldName;
			oElementSelect.setAttribute("field",strFieldName)
			oElementSelect = objControlContainer.appendChild(oElementSelect)
			addEventHandler(oElementSelect,"change",reactOnSelectOfOption)
			var oElementOption = document.createElement("OPTION")
			oElementOption.innerHTML = ("Kies een " + strFieldName);

			oElementOption.value = 0;
			oElementSelect.appendChild(oElementOption)
			for (k=0;k<arrLabels.length;k++){
				var oElementOption = document.createElement("OPTION")
				oElementOption.innerHTML = arrLabels[k];
				oElementOption.value = arrLabels[k];
				oElementSelect.appendChild(oElementOption)
			}
		}
	}

	/*event handler voor select boxes in zoek.php*/
	function reactOnSelectOfOption(){
		var srcElement;
		if(window.event){srcElement=window.event.srcElement}
		else{srcElement=arguments[0].target}
		eval("str"+srcElement.getAttribute("field")+"Gekozen='"+srcElement.options[srcElement.selectedIndex].value+"'");
		buildZoekPane()
	}

	/*bouwen van de vier form elements waaruit het zoekformulier is opgebouwd*/
	function buildZoekPane(){
		buildControl("soort",strsoortGekozen);
		buildControl("keuken",strkeukenGekozen);
		buildControl("bereidingstijd",strbereidingstijdGekozen);
		buildControl("menugang",strmenugangGekozen);
		var iNoOfFloors = getNoOffloors(strsoortGekozen,strbereidingstijdGekozen,strkeukenGekozen,strmenugangGekozen);
		var objLabel = document.getElementById("resultstext");
		switch (iNoOfFloors){
			case arrProdukten.length: objLabel.innerHTML = "Kies hieronder criteria om te zoeken naar vloeren." ;break;
			case 1:  objLabel.innerHTML = "1 vloer voldoet aan uw criteria. Klik op 'laat resultaten zien' om de vloer te bekijken of klik op 'wissen' om nieuwe criteria in te vullen";break;
			default: objLabel.innerHTML = iNoOfFloors + " vloeren voldoen aan uw criteria. Klik op 'laat resultaten zien' om de vloeren te bekijken of klik op 'wissen' om nieuwe criteria in te vullen";
		}
		
	}

	function addEventHandler(oTarget, sEventType, fnHandler) {
    if (oTarget.addEventListener) {
        oTarget.addEventListener(sEventType, fnHandler, false);
    } else if (oTarget.attachEvent) {
        oTarget.attachEvent("on" + sEventType, fnHandler);
    } else {
        oTarget["on" + sEventType] = fnHandler;
    }
	};
	
	addEventHandler(window,"load",buildZoekPane)


