function getElement(aID) { 
	return (document.getElementById) ? document.getElementById(aID)
																	 : document.all[aID];
}
function dbg(str, append)
{
	var dbgObj = document.getElementById("dbg");
	dbgObj.innerHTML = append? (dbgObj.innerHTML + str): str;
}

// Diese Funktion füllt das Untermenüdropdown je nach gewähltem Hauptmenü
// Parameter:
//			 menu_id = ID der Menü-Datenquelle
//						nr = Position des gewählten Hauptmenüeintrags; -1, um diesen hier ermitteln zu lassen
//	elem_id 		 = "id"-Parameter des HTML-<select>-Elements
//	vorbelegung  = ggf. ID-Wert (nicht Position) des per Default ausgewählten Untermenüeintrags
function um_fuellen(menu_id, nr, elem_id, vorbelegung, alle)
{
// Alle Elemente aus dem Untermenü löschen
	while ( getElement(elem_id).length > 0 )
	{
		getElement(elem_id).options[getElement(elem_id).length-1] = null;
	}

	// Ermittle ggf. erst den Eintrag auf Hauptmenüebene aufgrund übergebener Vorbelegung
	if ( nr == -1 ) {
		for ( i=0; i < a[menu_id].length; i++ )
		{
			for( j=0; j < a[menu_id][i][1].length; j++ )
			{
				if ( a[menu_id][i][1][j][1] == vorbelegung )
				{
					nr = i;
				}
			}
		}
	}
	if ( !alle ) alle = ' Alle ';
	x=new Option(' - ' + alle + ' - ', '', true);
	getElement(elem_id).options[getElement(elem_id).length] = x;
	// Wenn gewähltes Hauptmenü Untermenüs hat und ein Hauptmenüeintrag gewählt wurde
	if( nr > 0 && a[menu_id][nr][1].length > 0 )
	{
	// Mit Werten aus dem entsprechenden Array füllen
		var sel_hm_id = 0;
		var sel_index = 0;
		for( i=0; i < a[menu_id][nr][1].length; i++ )
		{
//		dbg(" nr:"+nr+"i:"+i+" men:"+a[menu_id][nr][1][i][0]+", "+a[menu_id][nr][1][i][1]+"<br>",true);
		if( a[menu_id][nr][1][i][0] != '' )
		{
			x=new Option(a[menu_id][nr][1][i][0], a[menu_id][nr][1][i][1], (a[menu_id][nr][1][i][1]==vorbelegung));
				getElement(elem_id).options[getElement(elem_id).length] = x;
				if ( a[menu_id][nr][1][i][1] == vorbelegung )
				{
					sel_index = getElement(elem_id).length-1;
					sel_hm_id = a[menu_id][nr][0][1];
				}
			}
			getElement(elem_id).selectedIndex = sel_index;
		}
	} else { // Alle Untermenüeinträge eintragen
		var sel_hm_id = 0;
		nr = 0;
		var b = new Array();
		for ( ae in a[menu_id] )
		{
			for ( ae2 in a[menu_id][ae][1] )
			{
				if( a[menu_id][ae][1][ae2][0] != '' )
				{
					b.push(new Option(a[menu_id][ae][1][ae2][0], a[menu_id][ae][1][ae2][1], (a[menu_id][ae][1][ae2][1]==vorbelegung)));
				}
			}
			nr++;
		}
		
		b=b.sort(cmpOptions);
		for (i=0; i < b.length; i++ )
		{
			getElement(elem_id).options[getElement(elem_id).length] = b[i];
		}
	}
	return (sel_hm_id);
}

function cmpOptions( opt1, opt2 )
{
	for ( var i=0; i < opt1.text.length; i++ )
	{
		if ( opt1.text.charCodeAt(i) > opt2.text.charCodeAt(i) )
		{
			return 1;
		} else if ( opt1.text.charCodeAt(i) < opt2.text.charCodeAt(i) ) {
			return -1;
		}
	}
	return -1;
}

// Diese Funktion füllt das Hauptmenüdropdown
// "vorbelegung" bezieht sich auf den Wert aus a[i][0], nicht auf die Elementposition
function hm_fuellen(menu_id, elem_id, vorbelegung)
{
	// Alle Elemente aus dem Dropdown löschen
	while ( getElement(elem_id).length > 0 )
	{
		getElement(elem_id).options[getElement(elem_id).length-1] = null;
	}

	var sel_index = 0;
	// Mit Werten aus dem entsprechenden Array füllen
	for( i=0; i < a[menu_id].length - 1; i++ )
	{
		x = new Option(a[menu_id][i][0][0], a[menu_id][i][0][1], (a[menu_id][i][0][1]==vorbelegung));
		getElement(elem_id).options[getElement(elem_id).length] = x;
		if (a[menu_id][i][0][1]==vorbelegung)
		{
			sel_index = getElement(elem_id).length-1;
		}
	}
	getElement(elem_id).selectedIndex = sel_index;
}