var selected_id = false;
var selected_form_id = false;
var kategorie_id = false;

function getDynamicMultibox(){
	
	var advanced = new multiBox('advanced', {
			overlay: new overlay(),
			initialWidth: 390,
			//descClassName: 'advancedDesc',
			contentColor: '#fff',
			showControls: false,
			showNumbers: false
		});
}

function isSingle(katId, startId){
	
	// startId -> übergebene ID des Bereichs 
	// alert('übergebene ID des Bereichs ->' + startId);
	
	selected_id = '';
	getSearchResults(selected_id, startId, katId);	
	return false;
	
	var strQueryString = "";
	var hasQueryString = document.URL.indexOf('?');
	
	// alert('Prüfe Single');
	if (hasQueryString != -1) {
		//Single Seite Ausgeben;
		strQueryString = document.URL.substring(hasQueryString + 1, document.URL.length);
		var getVals = strQueryString.split("?");	
		var hasParaString = document.URL.indexOf('&');
		
		if (hasParaString != -1) {
			var getParas = strQueryString.split("&");
			
			// Typ
			var mySplitResultType 	= getParas[0].split("=");
			// SID
			var mySplitResultSid 	= getParas[1].split("=");
				
			if (mySplitResultType[0] == "show" & mySplitResultSid[0] == "sid" & mySplitResultType[1] == "single" & mySplitResultSid[1] >= 1) {
					var sid = mySplitResultSid[1];
					selected_id = 'single';
					getSearchResults(selected_id, sid);	
			}
			else {
				getSearchResults('start', 0);
			}
		}else{
			getSearchResults('start',0);
		} 
	}else{
		getSearchResults('start',0);
	}
}

	
function getSearchResults(action,idBereich, idKategorie){
	switch (action) {
		case 'bereich':
			getSelectData('gruppe','fileadmin/templates/php/www.hud-training.de/courses/getXmlData.php?show=gruppeNavigation', 'bereich', 0);
			getSelectData('gruppe','fileadmin/templates/php/www.hud-training.de/courses/getXmlData.php?show=gruppeNavigation&kategorie='+idKategorie,'bereich', 0)
		break;
		case 'gruppe':
			getSelectData('kurs', 'fileadmin/templates/php/www.hud-training.de/courses/getXmlData.php?show=kursNavigation', 'gruppe', 0);
		break;
		case 'kurs':
			getSelectDataResult('result', 'fileadmin/templates/php/www.hud-training.de/courses/getXmlData.php?show=result', 'kurs', 0);
		break;
		case 'single':
			getSelectDataResultSingle('single', 'fileadmin/templates/php/www.hud-training.de/courses/getXmlData.php?show=single&sid=' + sid);
		break;
		default:
			// Start
			document.getElementById("gruppe").style.visibility = "visible";
			document.getElementById("gruppe").style.display = "block";
			
			document.getElementById("kurs").style.visibility = "hidden";
			document.getElementById("kurs").style.display = "block";
			
			getSelectData('gruppe','fileadmin/templates/php/www.hud-training.de/courses/getXmlData.php?show=gruppeNavigation&kategorie='+idKategorie,'bereich', idBereich)
		break;
	}
}

var xmlhttp;
var active_select_obj = null;
var allId = 1000000;

function getXMLData(url){
	if(xmlhhtp = getXMLHttpObject() == false) {
		alert("Fehler beim Anlegen des XMLHttpObject");
		return;
	}
	xmlhttp.open("GET", url , true);
	xmlhttp.onreadystatechange = handleHttpState;
	xmlhttp.send(null);
}

function getXMLHttpObject(){
	try{ 
	 xmlhttp = new XMLHttpRequest(); 
	}catch (error){
	 try 
	 { 
	   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
	 }catch (error) { 
	   return false; 
	 } 
	}
}

function switchCommentVisibility(id){
	
	element = document.getElementById(id).style;
	if(element.visibility == "hidden")
	{
    	element.visibility = "visible";
    	element.display = "";
    }
    else
    {
    	element.visibility = "hidden";
    	element.display = "none";
    }
}

function switchFormVisibility(id){
	
	var element = document.getElementById(id);
	
	if (element != null){
		
		if(selected_form_id!=false){
			selected_form_id.style.visibility = "hidden";
    		selected_form_id.style.display 	= "none";
		}
		
		element.style.visibility = "visible";
    	element.style.display = "block";
		
		selected_form_id = document.getElementById(id);	    	
	}
}

function handleHttpState(){
  
  switch (xmlhttp.readyState) {
    case 0 : // UNINITIALIZED
	case 1 : // LOADING
	case 2 : // LOADED
		// switchCommentVisibility('waitForResult');
	break;
    case 3 : // INTERACTIVE
    break;
    case 4 : // COMPLETED
      if ( xmlhttp.status == 200) {
			parseData();
		} else {
			// Fehler
			// alert("Fehler beim Abrufen der XML Daten");
		}
      break;
    default : ; // fehlerhafter Status
  }
}

function handleHttpStateResult(){
  
  switch (xmlhttp.readyState) {
    case 0 : // UNINITIALIZED
	case 1 : // LOADING
	case 2 : // LOADED
		//switchCommentVisibility('waitForResult');
	break;
    case 3 : // INTERACTIVE
    break;
    case 4 : // COMPLETED
      if ( xmlhttp.status == 200) {
			showResult(xmlhttp);
			getDynamicMultibox();
		} else {
			// Fehler
			//alert("Fehler beim Abrufen der XML Daten");
		}
      break;
    default : ; // fehlerhafter Status
  }
}

function parseData(){
	
	document.getElementById("result").style.visibility = "hidden";
	document.getElementById("result").style.display = "none";
	
	var xmlDocument = xmlhttp.responseXML;
	
	if (active_select_obj == null) {
		active_select_obj = document.forms.courses.gruppe;
	}
		
	
	if(active_select_obj){
		while(active_select_obj.length > 0) {
			active_select_obj.remove(0);
		}
	}
	
	// add new options to list
	for(var i=0; i< xmlDocument.getElementsByTagName("data").length; i++) 
	{
		var base = xmlDocument.getElementsByTagName("data")[i];
		var id = base.getElementsByTagName("id")[0].childNodes[0].nodeValue;
		var name = base.getElementsByTagName("name")[0].childNodes[0].nodeValue;
		add_element(this.active_select_obj, id, name);			
	}
	active_select_obj.disabled = false;	
}

// option element zu select liste hinzufügen
function add_element(obj, id, name){
	var new_opt = document.createElement("option");
	new_opt.value = id;
	new_opt.text = name;
	obj.options.add(new_opt);
}


function getSelectData(select_name, url, selected_id, idBereich){
	
	var all = idBereich;
	
	if (selected_id != 0 && idBereich==0){
			var all = eval("document.forms.courses." + selected_id + ".value");
			
			if(all == allId){
				if(selected_id=='bereich'){
					
					select_name = "kurs";
					active_select_obj = eval("document.forms.courses." + select_name);
					
					url+= "&id=" + allId + '&show=alleBereich';
					getXMLData(url);
						
					document.getElementById("gruppe").style.visibility = "hidden";
					document.getElementById("gruppe").style.display = "block";
					
					document.getElementById("kurs").style.visibility = "visible";
					document.getElementById("kurs").style.display = "block";
					
					return false;
				}
				if(selected_id=='gruppe'){
					
					select_name = "kurs";
					active_select_obj = eval("document.forms.courses." + select_name);
					
					url+= "&id=" + allId + '&show=alleGruppe';
					
					getXMLData(url);
					
					document.getElementById("kurs").style.visibility = "visible";
					document.getElementById("kurs").style.display = "block";
					
					return false;
				}
			}
		}

	document.forms.courses.gruppe.disabled=false;
	
	if(selected_id == "bereich") {
		document.getElementById("gruppe").style.visibility = "visible";
		document.getElementById("gruppe").style.display = "block";
		
		document.getElementById("kurs").style.visibility = "hidden";
		document.getElementById("kurs").style.display = "block";
		
		document.getElementById("result").style.visibility = "hidden";
		document.getElementById("result").style.display = "block";
	}
	
	if(selected_id == "gruppe" & all!=allId) {
		document.getElementById("gruppe").style.visibility = "visible";
		document.getElementById("gruppe").style.display = "block";
		
		document.getElementById("kurs").style.visibility = "visible";
		document.getElementById("kurs").style.display = "block";
	}
	
	if(idBereich!=0){
		url += "&id=" + idBereich;
		getXMLData(url);
		return false;
	}
	
	if (all != allId) {
		if (selected_id != "") {
			url += "&id=" + eval("document.forms.courses." + selected_id + ".value");
		}
			
		active_select_obj = eval("document.forms.courses." + select_name);
		getXMLData(url);
	}
	
}

function getSelectDataResult(select_name, url, selected_id){
	
	if(selected_id != ""){
		url += "&id=" + eval("document.forms.courses." + selected_id + ".value");
	}
	
	document.getElementById("result").style.visibility = "visible";
	document.getElementById("result").style.display = "block";
	
	active_select_obj = eval("document.forms.courses." + select_name);
	
	if(xmlhhtp = getXMLHttpObject() == false) {
		alert("Fehler beim Anlegen des XMLHttpObject");
	}
	
	xmlhttp.open("GET", url , true);
	xmlhttp.onreadystatechange = handleHttpStateResult;
	xmlhttp.send(null);	
}

function showResult(xmlhttp){
		
	var xmlDocument = xmlhttp.responseXML;
	var base 	= xmlDocument.getElementsByTagName('data')[0];	
	var name 	= xmlDocument.getElementsByTagName("name")[0].childNodes[0].nodeValue;
	
	document.getElementById("result").style.visibility 			= "visible";
	document.getElementById("result").style.display 			= "block";
	document.getElementById("result").innerHTML = name;
	
	if (selected_id=='single'){
		document.getElementById("kategorie").style.visibility 	= "hidden";
		document.getElementById("kategorie").style.display 		= "none";
	}
}