	var searchSel = new Array();
	function SetSearchSelect(id1,id2,msg,defaultText) { //id1: id of the input field, id2: id of the select field, msg: no results message
		if ((document.getElementById(id1))&&(document.getElementById(id2))) {
			var tmp = new Array();
			tmp.input = document.getElementById(id1); 
			tmp.defaultText = defaultText;
			tmp.input.value = tmp.defaultText;
			tmp.input.style.color = '#999';
			tmp.select = document.getElementById(id2); tmp.vals = new Array();
			for (var i=0;i<tmp.select.options.length;i++) { var tmp1 = new Array(); tmp1.value = tmp.select.options[i].value; tmp1.text = tmp.select.options[i].innerHTML; tmp1.title = tmp.select.options[i].title; tmp.vals.push(tmp1); }
			tmp.activevals = tmp.vals; tmp.msg = msg; searchSel.push(tmp);	
		} else { alert('ids not found'); } }
	function ActiveSearchSelect() { for (var i=0; i<searchSel.length; i++) { searchSel[i].input.disabled=false; } }
	function SeekSelectValue(obj) {
		var ref = -1;
		for (var i=0; i<searchSel.length; i++) { if (searchSel[i].input == obj) { ref = i; break; } }
		if (ref == -1) { alert("input not known!"); }
		else if (searchSel[ref].input.value == '') { ResetSelect(ref); }
		else {
			searchSel[ref].activevals = new Array();
			for (var i=0; i<searchSel[ref].vals.length; i++) { if (searchSel[ref].vals[i].text.toLowerCase().indexOf(searchSel[ref].input.value.toLowerCase()) > -1) { if (searchSel[ref].vals[i].value!='') { searchSel[ref].activevals.push(searchSel[ref].vals[i]); } } }
			RefreshSelectOptions(ref);
		} }
	function ResetSelect(ref) {
		searchSel[ref].select.options.length = searchSel[ref].vals.length;
		for (var i=0; i<searchSel[ref].vals.length; i++) { searchSel[ref].select.options[i].value = searchSel[ref].vals[i].value; searchSel[ref].select.options[i].innerHTML = searchSel[ref].vals[i].text; searchSel[ref].select.options[i].title = searchSel[ref].vals[i].title; searchSel[ref].select.options[i].selected = false; } }
	function RefreshSelectOptions(ref) {
		searchSel[ref].select.options.length = searchSel[ref].activevals.length;
		for (var i=0; i<searchSel[ref].activevals.length; i++) { searchSel[ref].select.options[i].value = searchSel[ref].activevals[i].value; searchSel[ref].select.options[i].innerHTML = searchSel[ref].activevals[i].text; searchSel[ref].select.options[i].title = searchSel[ref].activevals[i].title; searchSel[ref].select.options[i].selected = false; }
		if (searchSel[ref].activevals.length == 1) { searchSel[ref].select.options[0].selected = true; }
		if (searchSel[ref].activevals.length == 0) { searchSel[ref].select.options.length = 1; searchSel[ref].select.options[0].value=''; searchSel[ref].select.options[0].innerHTML = searchSel[ref].msg; } }
		
	function VerifyDefaultValue(obj) {
		var ref = -1;
		if (obj) { for (var i=0; i<searchSel.length; i++) { if (searchSel[i].input == obj) { ref = i; break; } }
		if ((ref>-1)&&(searchSel[ref].input.value==searchSel[ref].defaultText)) {
			searchSel[ref].input.value = '';
			searchSel[ref].input.style.color = '#000'; } }
		else if (ref==-1) {
			//triggered by the submit button
			for (var i=0; i<searchSel.length; i++) { if (searchSel[i].input.value==searchSel[i].defaultText) { searchSel[i].input.value =''; } }
		}
	}
	function SeekFormValue(input,formID,urlVar,isInSearchSel) {
		//used in the agenda to select the category
		var durl=document.getElementById(formID).action;
		if (durl.indexOf(urlVar)>-1) {
			var selected = durl.substring(durl.indexOf(urlVar)+urlVar.length,durl.length);
			if (selected.indexOf('&')>-1) { selected = selected.substring(0,selected.indexOf('&')); }
			if (selected.length>-1) {
				if (isInSearchSel) {
					//locate the object
					var pos1 = -1;
					var pos2 = -1;
					for (var i=0; i<searchSel.length;i++) { if (searchSel[i].input == document.getElementById(input)) { pos1 = i; break; } }
					if (pos1>-1) { for (var i=0; i<searchSel[pos1].vals.length; i++) { if (searchSel[pos1].vals[i].value == selected) { pos2 = i; break; } } }
					if (pos2>-1) { searchSel[pos1].input.value = searchSel[pos1].vals[pos2].text; searchSel[pos1].input.style.color = '#000'; SeekSelectValue(document.getElementById(input)); }
				}
				else {
					if (document.getElementById(input)) { document.getElementById(input).value=selected; }
				}
			}
		}
	}
	function AdaptAgendaOffset(formID,urlVar,value) {
		var durl=document.getElementById(formID).action;
		if (durl.indexOf(urlVar)>-1) {
			var selected = durl.substring(durl.indexOf(urlVar)+urlVar.length,durl.length);
			if (selected.indexOf('&')>-1) { selected = selected.substring(0,selected.indexOf('&')); }
			var selected = urlVar+selected;
			durl = durl.substring(0,durl.indexOf(urlVar))+urlVar+value+durl.substring(durl.indexOf(urlVar)+selected.length,durl.length);
			document.getElementById(formID).action = durl;
		}
	}
	function AdaptAgendaCategory(obj,formID,urlVar) {
		var pos = -1;
		for (var i=0; i<searchSel.length;i++) { if (searchSel[i].input == obj) { pos = i; break; } }
		if ( 	(pos>-1)&&
				( (searchSel[i].input.value=='') || (searchSel[i].input.value==searchSel[i].defaultText) )
			)	{
			var durl=document.getElementById(formID).action;
			if (durl.indexOf(urlVar)>-1) {
				var selected = durl.substring(durl.indexOf(urlVar)+urlVar.length,durl.length);
				if (selected.indexOf('&')>-1) { selected = selected.substring(0,selected.indexOf('&')); }
				var selected = urlVar+selected;
				durl = durl.substring(0,durl.indexOf(urlVar))+durl.substring(durl.indexOf(urlVar)+selected.length,durl.length);
				document.getElementById(formID).action = durl;
			}
		}
	}
	function AgendaInit(formID) {
		var durl=document.getElementById(formID).action;
		if (durl.indexOf('?')>-1) { document.location.href=durl.substring(0, durl.indexOf('?'));}
		else { document.location.href=durl; }
	}
	function AgendaCategoryRemoveOption(id,value) {
		var select = document.getElementById(id);
		var vals = new Array();
		for (var i=0;i<select.options.length;i++) { if (select.options[i].value!=value) { var tmp1 = new Array(); tmp1.value = select.options[i].value; tmp1.text = select.options[i].innerHTML; tmp1.title = select.options[i].title; vals.push(tmp1); } }
		select.options.length = vals.length;
		for (var i=0; i<vals.length; i++) { select.options[i].value = vals[i].value; select.options[i].innerHTML = vals[i].text; select.options[i].title = vals[i].title; select.options[i].selected = false; }
	}