	var facetInputs = [];
	var baseURL = '';
	var showHitsText='';
	var businessareaForms = [];
	MAX_TITLE_LENGTH = 20;
	
	
	registerDropdownFacetInput = function(id, name, parameterName, businessArea) {
		facetInput = new function() {
	       		this.id = id;
	       		this.name = name; 
	       		this.parameterName = parameterName; 
	       		this.businessArea = businessArea;
	        	
	        	function addFacetValue(facetValue) {
	        		var li = document.createElement("li");
	        		var a = document.createElement("a");
	        		a.href = "#";
	        		a.onclick = function() {
	        			document.getElementById(id+'.selected').value=facetValue.parameter; 
	        			document.getElementById(id+'.header').innerHTML=keepTitleShort(facetValue.value, MAX_TITLE_LENGTH); 
	        			reloadFacets(businessArea, baseURL + facetValue.facetSearchURL, document.getElementById(id+'.values'));
						// Dropdown muss ausgeblendet werden, wenn ein Click erfolgt ist
	        			document.getElementById(id+'.values').style.display="none";
        			};  									  
	        		a.innerHTML = "<span>"+facetValue.value + " (" + facetValue.count + ")</span>";
	        		li.appendChild(a);
	        		
	        		document.getElementById(id+".values").appendChild(li);
	        		if (facetValue.autoSelected) {
	        			document.getElementById(id+'.selected').value=facetValue.parameter; 
	        			document.getElementById(id+'.header').innerHTML=keepTitleShort(facetValue.value, MAX_TITLE_LENGTH); 
	        		}
	        		document.getElementById(id).className = "dropdown active";
	        	}
	        	this.addFacetValue = addFacetValue;
	        	
	        	function removeFacetValues(egalValue) {
	        		document.getElementById(id+".values").innerHTML = "";
	        		document.getElementById(id+".selected").value = "";
	        		document.getElementById(id+".header").innerHTML = keepTitleShort(egalValue, MAX_TITLE_LENGTH);
	        		document.getElementById(id).className = "dropdown inactive";
	        	}
	        	this.removeFacetValues = removeFacetValues;
	        	
	        	function getSelectedValue() {
	        		return document.getElementById(id+".selected").value;
	        	}
	        	this.getSelectedValue = getSelectedValue;
	        	
        }();
		facetInputs.push(facetInput);
	}
	
	registerRadiogroupFacetInput = function(id, name, parameterName, businessArea) {
		facetInput = new function() {
	       		this.id = id;
	       		this.name = name; 
	       		this.parameterName = parameterName; 
	       		this.businessArea = businessArea;
	        	
	        	function addFacetValue(facetValue) {
	        		var li = document.createElement("li");
	        		var input = document.createElement("input");
					input.type="radio";						
					input.name=id+'.radio';
					input.id=id+'.'+facetValue.value;
					input.value=facetValue.value;
	        		input.onclick = function() {
	        			document.getElementById(id+'.selected').value=facetValue.parameter; 
	        			reloadFacets(businessArea, baseURL + facetValue.facetSearchURL);
        			};
	        		var label = document.createElement("label");
	        		var text = document.createTextNode(facetValue.value);
	        		label.setAttribute("for", id+'.'+facetValue.value);
	        		label.appendChild(input);
	        		label.appendChild(text);
	        		li.appendChild(label);
	        		
	        		document.getElementById(id+".values").appendChild(li);
	        		if (facetValue.selected) {
	        			input.checked="checked"; 
	        			document.getElementById(id+'.selected').value=facetValue.parameter; 
	        		}
	        	}
	        	this.addFacetValue = addFacetValue;
	        	
	        	function removeFacetValues() {
	        		document.getElementById(id+".values").innerHTML = "";
	        	}
	        	this.removeFacetValues = removeFacetValues;
	        	
	        	function getSelectedValue() {
	        		return document.getElementById(id+".selected").value;
	        	}
	        	this.getSelectedValue = getSelectedValue;
	        	
        }();
		facetInputs.push(facetInput);
	}
	
	reloadFacets = function(businessArea, query, dropdown) {
		document.getElementById(businessArea + ".facets-waiter").style.display = "inline";
		$.getJSON(query, function(json){
			document.getElementById(businessArea+".submit").value = showHitsText.replace('{0}', json.result_count);
			for(i=0;i<facetInputs.length;i++) {
				var facetInput = facetInputs[i];
				if (facetInput.businessArea == businessArea) {
					if (json.facets != null) {
						var facet = json.facets[facetInputs[i].name];
						if (facet != null) {
							var values = facet.sortedValues;
							if (facetInput.getSelectedValue() == "" || values.length > 1 || values[0].autoSelected) {
								facetInput.removeFacetValues(facet.showAllFacetValuesText);
								for (var v = 0; v < values.length; ++v) {
									facetValue = values[v];
									facetInput.addFacetValue(facetValue);
								}
							} 
						} else {
							facetInput.removeFacetValues("");
						}
					}
				}
			}
			document.getElementById(businessArea + ".facets-waiter").style.display = "none";
			if (dropdown != null) {
				dropdown.style.display="";
			}
		});
	}

	submitForm = function(businessArea) {
		var facetString = "bsnssr:" + businessArea;
		for(i=0;i<facetInputs.length;i++) {
			var facetInput = facetInputs[i];
			if (facetInput.businessArea == businessArea && facetInput.getSelectedValue() != "") {
				facetString += ";" + facetInput.parameterName + ":" + facetInput.getSelectedValue();
			}
		}
		document.getElementById(businessArea+".facets").value = facetString;	
		document.getElementById(businessArea+".form").submit();	
	}
	
	showForm = function(businessArea) {
		var links = document.getElementsByName('businessAreaLink')
		for(l=0; l<links.length; l++) {
			links[l].className="";
		}
		document.getElementById(businessArea+'.link').className='active';
		
		for(d=0; d<businessareaForms.length; d++) {
			businessareaForms[d].style.display="none";
		}
		document.getElementById(businessArea+'.div').style.display='block';
		setLanguageSetterBusinessArea(businessArea);
		setCountrySetterBusinessArea(businessArea);
	}
	
	keepTitleShort = function(title, length) {
		return title.replace(/<br\/>/, "").substring(0, Math.min(title.length, length)) + ((title.length>length)?"...":"");	
		
	}

