// course data
var subgroups_data = {"5":{"subgroups":{"68":{"uid":"68","parent_group":"5","title":"Studienbereich Informations- und Elektrotechnik","sys_language_uid":"0","pid":"745","subgroups":{"80":{"uid":"80","parent_group":"68","title":"Studiengang Diplom BIS-Elektrotechnik","sys_language_uid":"0","pid":"745","subgroups":[]},"81":{"uid":"81","parent_group":"68","title":"Studiengang Bachelor Informations- und Elektrotechnik","sys_language_uid":"0","pid":"745","subgroups":[]},"82":{"uid":"82","parent_group":"68","title":"Studiengang Diplom Informations- und Elektrotechnik","sys_language_uid":"0","pid":"745","subgroups":[]},"83":{"uid":"83","parent_group":"68","title":"Studiengang Master Media Communications Technology","sys_language_uid":"0","pid":"745","subgroups":[]},"84":{"uid":"84","parent_group":"68","title":"Studiengang Diplom Fernsehtechnik und elektronische Medien","sys_language_uid":"0","pid":"745","subgroups":[]},"85":{"uid":"85","parent_group":"68","title":"Studiengang Bachelor Medientechnik","sys_language_uid":"0","pid":"745","subgroups":[]},"151":{"uid":"151","parent_group":"68","title":"Studiengang Bachelor Kooperatives Ingenieurstudium Elektrotechnik","sys_language_uid":"0","pid":"745","subgroups":[]}}},"69":{"uid":"69","parent_group":"5","title":"Studienbereich Maschinenbau","sys_language_uid":"0","pid":"745","subgroups":{"101":{"uid":"101","parent_group":"69","title":"Studiengang Diplom BIS-Maschinenbau","sys_language_uid":"0","pid":"745","subgroups":[]},"104":{"uid":"104","parent_group":"69","title":"Studiengang Diplom Kooperatives Ingenieurstudium Systems Engineering (KIS)","sys_language_uid":"0","pid":"745","subgroups":[]},"105":{"uid":"105","parent_group":"69","title":"Studiengang Bachelor Kooperatives Ingenieurstudium Systems Engineering (KIS)","sys_language_uid":"0","pid":"745","subgroups":[]},"106":{"uid":"106","parent_group":"69","title":"Studiengang Diplom Maschinenbau","sys_language_uid":"0","pid":"745","subgroups":[]},"107":{"uid":"107","parent_group":"69","title":"Studiengang Bachelor Maschinenbau","sys_language_uid":"0","pid":"745","subgroups":[]},"108":{"uid":"108","parent_group":"69","title":"Studiengang Master Fahrzeugentwicklung und Produktionsplanung (F&P)","sys_language_uid":"0","pid":"745","subgroups":[]},"109":{"uid":"109","parent_group":"69","title":"Studiengang Product Development and Manufacturing (PD&M)","sys_language_uid":"0","pid":"745","subgroups":[]},"115":{"uid":"115","parent_group":"69","title":"Studiengang Diplom Internationales Wirtschaftsingenieurwesen","sys_language_uid":"0","pid":"745","subgroups":[]},"116":{"uid":"116","parent_group":"69","title":"Studiengang Bachelor Internationales Wirtschaftsingenieurwesen","sys_language_uid":"0","pid":"745","subgroups":[]},"153":{"uid":"153","parent_group":"69","title":"Studiengang Bachelor Kooperatives Internationales Wirtschaftsingenieurwesen","sys_language_uid":"0","pid":"745","subgroups":[]}}},"70":{"uid":"70","parent_group":"5","title":"Studienbereich Physikalische Technik","sys_language_uid":"0","pid":"745","subgroups":{"112":{"uid":"112","parent_group":"70","title":"Studiengang Diplom Patentingenieurwesen\/Technische Physik","sys_language_uid":"0","pid":"745","subgroups":[]},"113":{"uid":"113","parent_group":"70","title":"Studiengang  Bachelor Physikalische Technik","sys_language_uid":"0","pid":"745","subgroups":[]},"114":{"uid":"114","parent_group":"70","title":"Studiengang Diplom Physikalische Technik","sys_language_uid":"0","pid":"745","subgroups":[]},"154":{"uid":"154","parent_group":"70","title":"Studiengang Master Angewandte Physik","sys_language_uid":"0","pid":"745","subgroups":[]}}},"71":{"uid":"71","parent_group":"5","title":"Studienbereich Umwelttechnik und Dienstleistung","sys_language_uid":"0","pid":"745","subgroups":{"110":{"uid":"110","parent_group":"71","title":"Studiengang Diplom Umwelttechnik\/Umweltmesstechnik","sys_language_uid":"0","pid":"745","subgroups":[]},"111":{"uid":"111","parent_group":"71","title":"Studiengang Bachelor Umwelttechnik","sys_language_uid":"0","pid":"745","subgroups":[]},"158":{"uid":"158","parent_group":"71","title":"Studiengang Master Bio- und Umweltverfahrenstechnik","sys_language_uid":"0","pid":"745","subgroups":[]}}},"155":{"uid":"155","parent_group":"5","title":"Institut CeBiS - Centrum f\u00fcr Berufsintegriertes Studieren","sys_language_uid":"0","pid":"745","subgroups":[]}}}};

var groupData = subgroups_data;

function subGroupChanged( selector )
{
	id = selector.options[ selector.selectedIndex ].value;

	// get parent group id from selector name..
	var regex = /.*\[(\d+)\]/;
	var result = regex.exec( selector.name );
	var pid = ( (result != null)? result[1] : null );

	getGroupData( id, subgroups_data )

	if( ! groupData )
		return;

	fadeOutChildren( pid, subgroups_data );

	addSubgroupSelector( id );
}

function addSubgroupSelector( id )
{
	if( isNaN(id) || id == "" )
		return false;

	if( groupData['subgroups'] == undefined )
		return false;

	//@todo: clone original element in order to maintain template adaptions..
	//var selectField = $("form#personnelSearch fieldset#subgroup_selectors select#firstSubgroup").clone();
	var fieldset = document.createElement( "fieldset" );
	fieldset.id = ( "fieldset_" + id );
	var selectField = document.createElement( "select" );
	selectField.name = "subGroupSelector[" + id + "]";
	//selectField.id = id;
	//needed for third level subgroups..
	selectField.setAttribute( "onChange", "subGroupChanged( this )" );
	var optCount = 0;

	selectField.options[ optCount++ ] = new Option( "Alle anzeigen" );

	for( var i in groupData['subgroups'] ) {
		selectField.options[ optCount++ ] = new Option(
			groupData['subgroups'][i]['title'],
			groupData['subgroups'][i]['uid'],
			false,
			false
		);
	}

//	console.log( selectField );

	$( fieldset ).append( selectField );
	$("form#personnelSearch div#subgroup_selectors").append( fieldset );
	selectField.focus();
}

function fadeOutChildren( pid, data )
{
	for( var i in data ) {
		if( pid == data[i]['parent_group'] ) {
			if( data[i]['subgroups'] != undefined ) {
				fadeOutChildren( data[i]['uid'], data[i]['subgroups'] );
			}
			$( "form#personnelSearch div#subgroup_selectors fieldset#fieldset_" + data[i]['uid'] ).remove();
		}
		else if( data[i]['subgroups'] != undefined ) {
			fadeOutChildren( pid, data[i]['subgroups'] );
		}
	}
}

function getGroupData( id, data )
{
	for( var i in data ) {
		if( i == id ) {
			groupData = data[i];
			return true;
		}
		if( data[i]['subgroups'] != undefined )
			if( getGroupData(id, data[i]['subgroups']) )
				return true;
	}
	return false;
}

function toggleTypeOptions()
{
	document.forms.personnelSearch.showTypeOptions.value = ( document.forms.personnelSearch.showTypeOptions.value == 0 ? 1 : 0 );
	$('div#catgroup_selectors').toggle('normal');
}
