var clicked_item;
var hiddenFieldName;
var mouseOverDropDown = false;

function toggleDropDown(thisElement){
	if(!$(thisElement).next().hasClass("locked")){
		closeAllDropDowns();

		if($(thisElement).next().is(":hidden")){
			$(thisElement).next().slideDown();
			//Click-Container erstellen:
			//$(".content_right").append('<div id="clickContainer" onclick="closeAllDropDowns()"> </div>');
		}
		else {
			$(thisElement).next().slideUp();	
			//Click-Container löschen:
			//$("#clickContainer").remove();
		}
	}
}
function closeAllDropDowns(){
	if(!mouseOverDropDown){
		$(".multi_dropdown_content").each(function(){
			$(this).slideUp();	
		});
	}
	//$("#clickContainer").remove();
}

function activateItem(thisElement){
	clicked_item = thisElement;
	
	//Hidden-Feld und ausgewählte Id auslesen
	hiddenFieldName = $(clicked_item).parent().attr("class")+"_selection";
	selectedIdTemp = $(clicked_item).attr("class").split(" ");
	var selectedId = selectedIdTemp[0].substring(3);
	
	if($(clicked_item).hasClass("active")){
		$(clicked_item).removeClass("active");
		removeValueFromField("."+hiddenFieldName, selectedId);
	}
	else{
		$(clicked_item).addClass("active");
		addValueToField("."+hiddenFieldName, selectedId);
	}
	
	//Anzahl in Klammer updaten
	anzahl = countSelectedObjects("."+hiddenFieldName);
//	anzahl_gesamt = countAllObjects($(thisElement).parent().attr("class"));
	replaceDropDownTitle($(clicked_item).parent().parent().prev(), anzahl);
}


function addValueToField(fieldSelector, value){
		removeValueFromField(fieldSelector, value);
	
		valuesTemp = $(fieldSelector).val().split(",");
		
		//wenn noch kein Wert vorhanden ist, ersten anlegen
		if(valuesTemp[0] == "")
			valuesTemp[0] = value;
		else {
			//ansonsten hingen anhängen
			valuesTemp[valuesTemp.length] = value;	
		}
		
		valuesNew = valuesTemp.join(",");
		$(fieldSelector).val(valuesNew);
}

function removeValueFromField(fieldSelector, value){
	valuesTemp = $(fieldSelector).val().split(",");
	
	for(var i=0; i < valuesTemp.length; i++){
		if(valuesTemp[i] == value)
				valuesTemp.splice(i, 1);
	}
	$(fieldSelector).val(valuesTemp);
}

function replaceDropDownTitle(element, anzahl){
		value = $(element).text().split(" ");

		if (anzahl == 0)
			word = "(alle)";
			//word = value[0]+" (alle)";
		else if (anzahl == 1){
			//Wenn nur 1 ausgewählt, dann diesen Text anzeigen:
			word = getSelectedNameIfOne();
		}
		else
			word = anzahl+" ausgewählt";
		
		$(element).text(word);
}

function countSelectedObjects(fieldSelector){
	valuesTemp = $(fieldSelector).val().split(",");
	if(valuesTemp[0] == "")return 0;
	return valuesTemp.length;
}

function countAllObjects(listClass){
	counter = 0;
	$("."+listClass).each(function(){
		listElements = $(this).find("li");
		counter += listElements.length;
	});
	return counter;
}

function resetSelectedValues(selector){
	$(selector).val("");	
}

function getSelectedNameIfOne(){
	if(countSelectedObjects("."+hiddenFieldName) == 1){
		selected_id = $("."+hiddenFieldName).val();	
		return $(clicked_item).parent().parent().find(".dd_"+selected_id).text();
	}
}
