var fjpsuche = {
	
	// Temporärer Speicherplatz bzw Liste der ausgewählten Elemente
	clickedItems: '',
	
	// Default ist withHighlight
	withHighlight: true,
				
	
	highlightThis: function(doId, doHighlight) {
		adId = "id_" + doId;	// vorangestellt zur Minimierung von Validierungsfehler und Mantis 17701
		var thisId = document.getElementById(adId);
		
		if (thisId) {
			if(doHighlight) {
				thisId.style.backgroundColor = "#D2E3F3";
			} else {
				thisId.style.backgroundColor = "#FFF";
			}
		}
	},
	
	checkItems: function(elemId, divId, classname, withHighlight) {	
		if(withHighlight != null) { fjpsuche.withHighlight = withHighlight; }
		//Element holen und highlighten 
		var elem = document.getElementById(elemId);
		if(fjpsuche.withHighlight) { 
			fjpsuche.highlightThis(elem.id,elem.checked);
		}
		
		//wenn Element 'Alle' ist
		if(elem.id == "Alle") {
			if (fjpsuche.clickedItems == '') {
				// Alle ungecheckt, aber es gibt keine andere ausgewählte bzw gespeicherten Elemente
				elem.checked = true;
				if(fjpsuche.withHighlight) { 
					fjpsuche.highlightThis(elem.id,elem.checked);
				}
			} else {
				//sonst alle anderen Elemente unchecken
				var checkboxes = (fjpsuche.clickedItems).split('&');
				for(var i=0; i < checkboxes.length; i++) {
					if (checkboxes[i] != ''){
						var uncheckElem = document.getElementById(checkboxes[i]);
						if (uncheckElem.id != null) {
							uncheckElem.checked = false;							
							if(fjpsuche.withHighlight) { 
								fjpsuche.highlightThis(uncheckElem.id,uncheckElem.checked);
							}
						}
					}
				}
			}
		} else {
			// wenn Element nicht 'Alle' ist
			var all = document.getElementById("Alle");
			var pos = (fjpsuche.clickedItems).indexOf(elem.id);
			if (pos == -1 && elem.checked) {
				// ausgewählte Elemente nicht gefunden bzw noch nicht gespeichert
			 	fjpsuche.clickedItems = (fjpsuche.clickedItems).concat(elem.id+'&');
			} else if (pos > 0 && !elem.checked) {
			 	// Element wurde entfernt, aus der Liste der gespeicherten Elemente
				fjpsuche.clickedItems = ((fjpsuche.clickedItems).substring(0,pos-1)).concat((fjpsuche.clickedItems).substring(pos+((elem.id).length)));
			} else if (pos == 0 && !elem.checked) {
				fjpsuche.clickedItems = (fjpsuche.clickedItems).substr(pos+((elem.id).length)+1);
			} 
			if (fjpsuche.clickedItems == '') {
				all.checked = true;
			} else {
				all.checked = false;
			}
			if(fjpsuche.withHighlight) { 
				fjpsuche.highlightThis(all.id,all.checked);
			}
		}		
	},
	
	checkLabelItems: function(elemId, divId, classname) {
		//Checkbox checken/unchecken wenn auf Label geklickt wird	
		var elem = document.getElementById(elemId);
		if(elem.checked) {
			elem.checked = false;
		} else {
			elem.checked = true;
		}
		fjpsuche.checkItems(elemId, divId, classname);
	},
	
	initClickedItems: function(formName, elemName, withHighlight) {	
		if(withHighlight != null) { fjpsuche.withHighlight = withHighlight; }
		fjpsuche.clickedItems = '';
		var tempList = document.forms[formName].elements[elemName];
		if (tempList != null) {
			for (i=1; i<tempList.length; i++){
				if(tempList[i].checked){
					fjpsuche.clickedItems = (fjpsuche.clickedItems).concat(tempList[i].id+'&');
					if(fjpsuche.withHighlight) {
						fjpsuche.highlightThis(tempList[i].id,tempList[i].checked);
					}				
				}
			}
		}
	},
	
	sendFormByLink: function(aLink,params){
		var allParams= params.replace(/outputtype=ajax_sel/g,"outputtype=ajax").split('&');
		var aForm = document.forms['formlink'];
		for(i=0;i<allParams.length;i++){
			aParam = allParams[i].split('=');
			if(aParam.length == 2){
				var inputField = document.createElement('input');
				inputField.setAttribute('type','hidden');
				inputField.setAttribute('name',aParam[0]);
				inputField.setAttribute('value',aParam[1]);
				aForm.appendChild(inputField);
			}
		}
		var hrefStr=''+aLink.href;
		aForm.action=hrefStr;
		if(hrefStr.indexOf("?") >0){
			aForm.action=hrefStr.substring(0,hrefStr.indexOf("?"));
		}	
		aLink.href='javascript:fjpsuche.submitFormByLink();';
		return false;
	},
	
	submitFormByLink: function(){
		document.forms['formlink'].submit();
	}
}
