//**********************************
//	include prototype.js!!!
//**********************************

// The class name of toggle objects which will be initially hidden
var toggleDivClassName = "toggle";
// This controls how slowly the div initially starts moving.
// Lower values case a slower initial move speed. Must be > 1
var toggleDivSpeedMultiplier = 2;
// The delay between each move. 
var toggleDivDelay = 30;
// If you only want one toggle DIV to be open at any time, set this to true
var toggleDivOnlyOneOpen = true;
// An array to hold references to all toggleDiv objects on the page
var toggleDivs = new Array();
// Contains the IDs of divs currently being toggled, so you can't stop one mid-open or close
var togglingDivs = new Object();

// The initial function that handles the request to toggle a DIV
function toggleDiv(divId, action) {
	var d = $(divId);
	if (d==null || d.tagName!="DIV" || !d.offsetHeight || togglingDivs[divId]) { return; }
	d.style.overflow = "hidden";
	if (action=="open" || (typeof(action)=="undefined" && d.style.visibility=="hidden")) {
		if (toggleDivOnlyOneOpen){setTimeout("closeAllToggleDivsExcept('"+divId+"')",5);}
		// open it
		var originalHeight = d.offsetHeight; var height = 1;
		d.style.height = height+"px";
		//d.style.visibility = "visible";
		d.style.position="static";
		togglingDivs[divId] = true;
		setTimeout("toggleObject('"+divId+"','open',"+originalHeight+","+height+")",toggleDivDelay);
	}
	else if (action=="close" || (typeof(action)=="undefined" && d.style.visibility=="visible")) {
		// close it
		var originalHeight = d.offsetHeight;
		var height = originalHeight;togglingDivs[divId] = true;
		setTimeout("toggleObject('"+divId+"','close',"+originalHeight+","+height+")",toggleDivDelay);
		setTimeout("handleFilterSummary('"+divId+"')",250);
	}
	try{toggleImage(divId, action)}catch(e){};
}

// This function closes all DIVs except the given ID, for use when only one DIV should be open at any time
function closeAllToggleDivsExcept(divId) {
	for (var i=0; toggleDivs!=null && i<toggleDivs.length; i++) {
		if (toggleDivs[i].id!=divId) {toggleDiv(toggleDivs[i].id,'close');}
		handleFilterSummary(toggleDivs[i].id);
	}
	try{shadowedBorder.render('kolom_content');}catch(e){};
}

// The function that is called repeatedly until the toggle is done
function toggleObject(divId, openClose, originalHeight, height) { 
	var d = $(divId);
	if (d==null || d.tagName!="DIV") { return; }
	if (openClose=="open") {
		height = height * toggleDivSpeedMultiplier;
		if (height > originalHeight) {
			d.style.height = originalHeight+"px";
			delete togglingDivs[divId];
			d.style.visibility = "visible";
			setTimeout("showHideLokatieControls('"+divId+"','open')",50);
			try{shadowedBorder.render('kolom_content');}catch(e){};
		}else {
			d.style.height = height+"px";
			setTimeout("toggleObject('"+divId+"','"+openClose+"',"+originalHeight+","+height+")",toggleDivDelay);}
	}
	else {
		height = height * (1/toggleDivSpeedMultiplier);
		if (height <= 1) {
			d.style.position = "absolute";
			d.style.visibility = "hidden";
			d.style.height = originalHeight+"px";
			delete togglingDivs[divId];
			setTimeout("showHideLokatieControls('"+divId+"','close')",50);
			try{shadowedBorder.render('kolom_content');}catch(e){};
		}else {
			d.style.visibility = "hidden";
			d.style.height = height+"px";
			setTimeout("toggleObject('"+divId+"','"+openClose+"',"+originalHeight+","+height+")",toggleDivDelay);}
	}
}

// A function which is called onload of the window, to hide all the toggle divs initially. This is done
// so that non-JS browsers will see the divs rather than have them be hidden.
function hideToggleDivs() {
	var divs = document.getElementsByTagName("DIV");var s;
	for (var i=0; divs!=null && i<divs.length; i++) {
		if (divs[i].className.indexOf(toggleDivClassName)>-1) {
			toggleDivs[toggleDivs.length] = divs[i];
			s = divs[i].style;
			s.position="absolute";
			$('ikc_' + divs[i].id).title = 'Wijzigen';
			try{if(divs[i].parentElement.offsetWidth){s.width = divs[i].parentElement.offsetWidth - 30 + "px";}}catch(e){}
			try{if(divs[i].parentNode.pixelWidth){s.width = divs[i].parent.style.width - 30 + "px";}}catch(e){}
			s.visibility="hidden";handleFilterSummary(divs[i].id);
		}
	}
	try{shadowedBorder.render('kolom_content');}catch(e){};
}

// A general function to add an event handler
function addHandler(obj, evt, newhandler, captures) {
	if (obj.attachEvent) {obj.attachEvent('on' + evt, newhandler);
	}else if (obj.addEventListener) {obj.addEventListener(evt, newhandler, captures);
	}else {
		var oldhandler;
		if (oldhandler = obj['on' + evt]) {
			obj['on' + evt] = function() {
				oldhandler();
				newhandler();
			}
		}else {obj['on' + evt] = newhandler;}
	}
}

function toggleImage(divId, action){
	var itemControl = $('ikc_' + divId);
	var itemInKlapControl = $(divId);
	var strObjType = itemInKlapControl.getAttribute("wnobjects")
	if(action == "close"){
		itemControl.className = 'inklapcontainer';
		itemControl.title = 'Wijzigen';
	}else{
		if(itemControl.className == 'inklapcontainer_up'){
			itemControl.className = 'inklapcontainer';
			itemControl.title = 'Wijzigen';
		}else{
			itemControl.className = 'inklapcontainer_up';
			itemControl.title = 'Dichtklappen';
		}
	}
}

// Attach an onLoad handler to the window to initially hide all the toggle DIV objects.
// Only do it if sufficient JS capability is present in the browser
//if (document.getElementById && document.getElementsByTagName) {
//	addHandler(window, 'load', hideToggleDivs,false);
//}

function handleFilterSummary(divId){ 
	var itemControl = $('ikc_'+divId);var itemInKlapControl = $(divId);
	var strObjType = itemInKlapControl.getAttribute("wnobjects")
	var strSummary = divId.replace('inklapcontainer','');
	var objSummary = $(strSummary + '_summary');
	var strReturn = '';var strReturnTemp = '';var intCounter = 0;var intCounterDummy;
		
	switch(strObjType){
		case "checkboxarray":
			var arrArray; var objFormObject;
			var strWnObjectName = itemInKlapControl.getAttribute("wnobjectname");
			var blnCheckAll = (itemInKlapControl.getAttribute("wncheckall")=='true');
			if(strWnObjectName.indexOf(";") != -1){
				arrArray = strWnObjectName.split(';');
			}else{
				arrArray = new Array(1);
				arrArray[0] = strWnObjectName;
			}
			for(var j = 0 ; j < arrArray.length; j++){
				objFormObject = objForm[arrArray[j]];
				if(itemControl.className == 'inklapcontainer'&&arrArray[j]!=''){
					try{
						intCounterDummy = 0;
						for(var i=0 ; i<objFormObject.length; i++){
							strReturnTemp = strReturn;
							if((objFormObject[i].checked == true)&&(objFormObject[i].getAttribute("wnLabelText")!='')){
								strReturnTemp += objFormObject[i].getAttribute("wnLabelText")+ ", ";
								if(strReturnTemp.length < 65){
									if(strReturn!=''){strReturn +=", "};
									strReturn += objFormObject[i].getAttribute("wnLabelText");
								}else{
									intCounter = 4;
								}
								intCounter ++;intCounterDummy++;
							}
						}
						if(intCounterDummy==0&&arrArray.length==1){strReturn='Geen voorkeur'};
					}catch(e){}
				}
			}	
			if(intCounter>4){
				if(blnCheckAll){strReturn=objForm[arrArray[0]][0].getAttribute("wnLabelText").replace('Alle', 'Meerdere')
				}else{strReturn='Meerdere voorkeuren';}
			}objSummary.innerHTML = strReturn + '&nbsp;';break;    
		case "selectswitch":
			var objFormObject = objForm[itemInKlapControl.getAttribute("wnobjectname")];
			var objFormObjectSel = objForm[itemInKlapControl.getAttribute("wnobjectnamesel")];
			if(itemControl.className == 'inklapcontainer'&&itemInKlapControl.getAttribute("wnobjectname")!=''){
				for(var i=0 ; i<objFormObjectSel.options.length; i++){
					strReturnTemp = strReturn;
					strReturnTemp += objFormObjectSel[i].text+ ", ";
					if(strReturnTemp.length < 65){
						if(strReturn!=''){strReturn +=", "};
						if(objFormObjectSel[i].text.indexOf("(") != -1){
							strReturn += objFormObjectSel[i].text.substr(0, objFormObjectSel[i].text.indexOf("("));
						}else{strReturn += objFormObjectSel[i].text;}
					}else{intCounter = 4;}intCounter ++;
				}
				if(intCounter>4){strReturn='Meerdere ' + objFormObjectSel.getAttribute("wnLabelText").toLowerCase()};
				if(intCounter==0){strReturn='Alle ' + objFormObject.getAttribute("wnLabelText").toLowerCase()};
			}objSummary.innerHTML = strReturn + '&nbsp;';break;
		case "selectswitchlokatie":
			var arrTempSel, objFormObjectSel1, objFormObjectSel2;
			var arrTempObj1 = itemInKlapControl.getAttribute("wnobjectname1").split(';');
			if(itemControl.className == 'inklapcontainer'){
				//zijn er  wijken of niet?
				if(itemInKlapControl.getAttribute("wnobjectname").indexOf(';')!=-1){
					//er is 1 gemeente/plaats met 1 of meer wijken
					if(itemInKlapControl.getAttribute("wnobjectnamesel").indexOf(';')!=-1){
						arrTempSel = itemInKlapControl.getAttribute("wnobjectnamesel").split(';');
						objFormObjectSel1 = objForm[arrTempSel[0]];
						objFormObjectSel2 = objForm[arrTempSel[1]];
					}else{
						objFormObjectSel1 = objForm[itemInKlapControl.getAttribute("wnobjectnamesel")];
						objFormObjectSel2 = new Array(0);
					}
					strReturn = objFormObjectSel1.getAttribute("wnobject");
					if(objFormObjectSel2.options.length > 0){
						for(var i=0 ; i<objFormObjectSel2.options.length; i++){
							strReturnTemp = strReturn;strReturnTemp += escape(objFormObjectSel2[i].text) + ", ";
							if(strReturnTemp.length < 65){
								if(strReturn!=''){strReturn +=", "};
								if(objFormObjectSel2[i].text.indexOf("(") != -1){
									strReturn += escape(objFormObjectSel2[i].text.substr(0, objFormObjectSel2[i].text.indexOf(" (")));
								}else{strReturn += escape(objFormObjectSel2[i].text);}
							}else{intCounter = 4;}intCounter ++;}
						if(intCounter>4){strReturn = escape(objFormObjectSel1.getAttribute("wnobject")) +', Meerdere ' + objFormObjectSel2.getAttribute("wnLabelText").toLowerCase();}
					}else{
					
					}					
				}else{
					//er is 1 gemeente/plaats en er zijn geen wijken
					strReturn = objForm[itemInKlapControl.getAttribute("wnobjectnamesel")].getAttribute("wnobject");
				}
				if(strReturn.length < 65){
					strReturnTemp = '';
					if(objForm[arrTempObj1[0]].value!=''){strReturnTemp = strReturn + ', ' + objForm[arrTempObj1[0]].value;
						if(strReturnTemp.length < 65){strReturn = strReturnTemp;}
					}
				}
				if(strReturn.length < 65){
					strReturnTemp = '';
					if(objForm[arrTempObj1[1]].value!=''){strReturnTemp = strReturn + ', < ' + objForm[arrTempObj1[1]].value + ' km';
						if(strReturnTemp.length < 65){strReturn = strReturnTemp;}
					}
				}
			}objSummary.innerHTML = unescape(strReturn) + '&nbsp;';break;
		case "selectswitchlokaties":
			var arrTempSel, objFormObjectSel1, objFormObjectSel2;
			if(itemInKlapControl.getAttribute("wnobjectnamesel").indexOf(';')!=-1){
				arrTempSel = itemInKlapControl.getAttribute("wnobjectnamesel").split(';');
				objFormObjectSel1 = objForm[arrTempSel[0]];
				objFormObjectSel2 = objForm[arrTempSel[1]];
			}else{
				objFormObjectSel1 = objForm[itemInKlapControl.getAttribute("wnobjectnamesel")];
				objFormObjectSel2 = new Array(0);
			}
			var arrTempObj1 = itemInKlapControl.getAttribute("wnobjectname1").split(';');
			if(itemControl.className == 'inklapcontainer'){
				objSummary.innerHTML = '&nbsp;';
				switch(objFormObjectSel1.options.length){
					case 0:
						strReturn='Alle ' + objFormObjectSel1.getAttribute("wnLabelText").toLowerCase();
						break;
					case 1:
						if(objFormObjectSel1[0].text.indexOf("(") != -1){
							strReturn += escape(objFormObjectSel1[0].text.substr(0, objFormObjectSel1[0].text.indexOf("(")));
						}else{strReturn += escape(objFormObjectSel1[0].text);}
						intCounter ++;
						if(objFormObjectSel2.length > 0){
							for(var i=0 ; i<objFormObjectSel2.length; i++){
								strReturnTemp = strReturn;strReturnTemp += escape(objFormObjectSel2[i].text) + ", ";
								if(strReturnTemp.length < 65){
									if(strReturn!=''){strReturn +=", "};
									if(objFormObjectSel2[i].text.indexOf("(") != -1){
										strReturn += escape(objFormObjectSel2[i].text.substr(0, objFormObjectSel2[i].text.indexOf(" (")));
									}else{strReturn += escape(objFormObjectSel2[i].text);}
								}else{intCounter = 4;}intCounter ++;}
							if(intCounter>4){strReturn = escape(objFormObjectSel1[0].text.substr(0, objFormObjectSel1[0].text.indexOf(" (")))+', Meerdere ' + objFormObjectSel2.getAttribute("wnLabelText").toLowerCase();}
						}else{
						
						}
						break;
					default:
						if(objFormObjectSel1.options.length > 0){
							for(var i=0 ; i<objFormObjectSel1.options.length; i++){
								strReturnTemp = strReturn;strReturnTemp += escape(objFormObjectSel1[i].text) + ", ";
								if(strReturnTemp.length < 65){
									if(strReturn!=''){strReturn +=", "};
									if(objFormObjectSel1[i].text.indexOf("(") != -1){
										strReturn += escape(objFormObjectSel1[i].text.substr(0, objFormObjectSel1[i].text.indexOf(" (")));
									}else{strReturn += escape(objFormObjectSel1[i].text);}
								}else{intCounter = 4;}intCounter ++;
							}				
							if(intCounter>4){strReturn='Meerdere ' + objFormObjectSel1.getAttribute("wnLabelText").toLowerCase()};
						}else{
						
						}
				}
				if(strReturn.length < 65){
					strReturnTemp = '';
					if(objForm[arrTempObj1[0]].value!=''){strReturnTemp = strReturn + ', ' + objForm[arrTempObj1[0]].value;
						if(strReturnTemp.length < 65){strReturn = strReturnTemp;}
					}
				}
				if(strReturn.length < 65){
					strReturnTemp = '';
					if(objForm[arrTempObj1[1]].value!=''){strReturnTemp = strReturn + ', < ' + objForm[arrTempObj1[1]].value + ' km';
						if(strReturnTemp.length < 65){strReturn = strReturnTemp;}
					}
				}
			}objSummary.innerHTML = unescape(strReturn) + '&nbsp;';break;    
		case "postcode":
			var objFormObject = objForm[itemInKlapControl.getAttribute("wnobjectname")];
			if(itemControl.className == 'inklapcontainer'&&itemInKlapControl.getAttribute("wnobjectname")!=''){
				strReturn = objForm[itemInKlapControl.getAttribute("wnobjectname")].value;
				strReturn += ' ' + objForm[itemInKlapControl.getAttribute("wnobjectname1")].value;
				if(objForm[itemInKlapControl.getAttribute("wnobjectname2")].value!=''){
					strReturn += ', < ' + objForm[itemInKlapControl.getAttribute("wnobjectname2")].value + ' km';
				}
			}objSummary.innerHTML = strReturn + '&nbsp;';break;
		case "overig":
			var blnEmpty = true;
			//woonkamer txtWoonOppmin, txtWoonOppmax
			if(itemControl.className == 'inklapcontainer'){
				try{
					if(objForm.txtWoonOppmin.value!=''){
						blnEmpty = false;
						if(objForm.txtWoonOppmax.value==''){strReturn += 'woonkamer vanaf '}else{strReturn += 'woonkamer '}
						strReturn += objForm.txtWoonOppmin.value;
					}
					if(objForm.txtWoonOppmax.value!=''){
						if(blnEmpty){strReturn += 'woonkamer ';}
						if(objForm.txtWoonOppmin.value!=''){strReturn += '-' + objForm.txtWoonOppmax.value + ' m<sup>2</sup>';
						}else{strReturn += 'tot ' + objForm.txtWoonOppmax.value + ' m<sup>2</sup>';}
					}else{
						if(objForm.txtWoonOppmin.value!=''){strReturn += ' m<sup>2</sup>'}
					}
				}catch(e){}
				blnEmpty = true;
				//inhoud txtInhoudmin, txtInhoudmax
				try{
					if(objForm.txtInhoudmin.value!=''){
						blnEmpty = false;if(strReturn!=''){strReturn += ', ';}
						if(objForm.txtInhoudmax.value==''){strReturn += 'inhoud vanaf '}else{strReturn += 'inhoud '}
						strReturn += objForm.txtInhoudmin.value;
					}
					if(objForm.txtInhoudmax.value!=''){
						if(blnEmpty){if(strReturn!=''){strReturn += ', ';}strReturn += 'inhoud ';}
						if(objForm.txtInhoudmin.value!=''){strReturn += '-' + objForm.txtInhoudmax.value + ' m<sup>3</sup>';
						}else{strReturn += 'tot ' + objForm.txtInhoudmax.value + ' m<sup>3</sup>';}
					}else{
						if(objForm.txtInhoudmin.value!=''){strReturn += ' m<sup>3</sup>'}
					}
				}catch(e){}
				blnEmpty = true;
				//perceel txtPerceelmin, txtPerceelmax
				try{
					if(objForm.txtPerceelmin.value!=''){
						blnEmpty = false;if(strReturn!=''){strReturn += ', ';}
						if(objForm.txtPerceelmax.value==''){strReturn += 'perceel vanaf '}else{strReturn += 'perceel '}
						strReturn += objForm.txtPerceelmin.value;
					}
					if(objForm.txtPerceelmax.value!=''){
						if(blnEmpty){if(strReturn!=''){strReturn += ', ';}strReturn += 'perceel ';}
						if(objForm.txtPerceelmin.value!=''){strReturn += '-' + objForm.txtPerceelmax.value + ' m<sup>2</sup>';
						}else{strReturn += 'tot ' + objForm.txtPerceelmax.value + ' m<sup>2</sup>';}
					}else{
						if(objForm.txtPerceelmin.value!=''){strReturn += ' m<sup>2</sup>'}
					}
				}catch(e){}
				if(strReturn==''){strReturn = 'Geen voorkeur';}
			}objSummary.innerHTML = strReturn + '&nbsp;';break;    
		default:
	}
}

function showHideLokatieControls(divId, strAction){
	var itemInKlapControl = $(divId);
	var strCase = itemInKlapControl.getAttribute("wnobjects");
	var objFormObjectSel1, objFormObjectSel;
	var strSections, arrSections;
	var objWijkenSectie, objStraatSectie, arrTempSel;
	if(strCase == 'selectswitchlokaties'){
		strSections = itemInKlapControl.getAttribute("wnsection");
		if(itemInKlapControl.getAttribute("wnobjectname").indexOf(';')!=-1){
			arrTempSel = itemInKlapControl.getAttribute("wnobjectname").split(';');
			objFormObjectSel = objForm[arrTempSel[1]];
		}else{
			objFormObjectSel = new Object();
			objFormObjectSel.options = new Object();
			objFormObjectSel.options.length = 0;
		}		
		if(itemInKlapControl.getAttribute("wnobjectnamesel").indexOf(';')!=-1){
			arrTempSel = itemInKlapControl.getAttribute("wnobjectnamesel").split(';');
			objFormObjectSel1 = objForm[arrTempSel[0]];
		}else{
			objFormObjectSel1 = objForm[itemInKlapControl.getAttribute("wnobjectnamesel")];
		}
		if(strSections.indexOf(';')!=-1){
			arrSections = strSections.split(';');
			if($(arrSections[0]) != null){
				objWijkenSectie = $(arrSections[0]);
			}else{
				objWijkenSectie = new Object();
				objWijkenSectie.style = new Object();
				objWijkenSectie.offsetHeight = 0;
			}
			objStraatSectie = $(arrSections[1]);
		}
		if(objFormObjectSel1.options.length == 1){
			if(strAction == 'open'){
				if(objStraatSectie.style.display == 'none'||objStraatSectie.style.display == ''){
					if(objFormObjectSel.options.length > 1&&objWijkenSectie.style.display != 'block'){objWijkenSectie.style.display = 'block';}
					if(objStraatSectie.style.display != 'block'){objStraatSectie.style.display = 'block';}
					itemInKlapControl.style.height = (itemInKlapControl.offsetHeight + (objWijkenSectie.offsetHeight + objStraatSectie.offsetHeight)) + "px";
				}
			}else{
				if(objStraatSectie.style.display == 'block'||objStraatSectie.style.display == ''){
					itemInKlapControl.style.height = (itemInKlapControl.offsetHeight - (objWijkenSectie.offsetHeight + objStraatSectie.offsetHeight)) + "px";
					objWijkenSectie.style.display = 'none';
					objStraatSectie.style.display = 'none';
				}
			}
		}else{
			if(objStraatSectie.style.display == 'block'||objStraatSectie.style.display == ''){
				itemInKlapControl.style.height = (itemInKlapControl.offsetHeight - (objWijkenSectie.offsetHeight + objStraatSectie.offsetHeight)) + "px";
				objWijkenSectie.style.display = 'none';
				objStraatSectie.style.display = 'none';
			}
		}
	}
	try{shadowedBorder.render('kolom_content');}catch(e){}
}
