function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

function showElement(id) {
	document.getElementById(id).style.display = 'block';
}

function hideElement(id) {
	document.getElementById(id).style.display = 'none';
}

// aufruf:
// defs = {f:<id der radiobutton group>, v:<moegliche values>, s:<zu zeigende element ids>};
// beispiel:
// defs = {f:'m26', v:['0','1'], s:['e1,f2','e2,f3,f4']};
function filter(defs) {
	
	if(defs.v.length != defs.s.length) {
		alert ('ungleiche anzahl variablen und fragengruppen!');
		return;
	}
	
	var radioButtons = document.getElementsByName('data[Umfrage][' + defs.f + ']');
	if(radioButtons == false) {
		alert('Frage ' + defs.f + ' exisitiert nicht');
	}
	
	var checkedValue = getCheckedValue(radioButtons);
	var elementsToHide 	= new Array();
	var elementsToShow 	= new Array();
	var elements 		= new Array();
	
	for(i = 0; i <  defs.v.length; i++) {
		if(defs.s[i] !== false) {
			elements = defs.s[i].replace(/ /,'').split(',');
		}
		else {
			elements = [];
		}
		if(defs.v[i] == checkedValue) {
			elementsToShow = elementsToShow.concat(elements);
		}
		else {
			elementsToHide = elementsToHide.concat(elements);
		}
	}
	
	for(i = 0; i < elementsToHide.length; i++) {
		hideElement(elementsToHide[i]);
	}	
	
	
	for(i = 0; i < elementsToShow.length; i++) {
		showElement(elementsToShow[i]);
	}	

}
