var selected_id = false;
var selected_form_id = false;


function getDynamicMultibox(){
	
	var advanced = new multiBox('advanced', {
			overlay: new overlay(),
			initialWidth: 390,
			//descClassName: 'advancedDesc',
			contentColor: '#fff',
			showControls: false,
			showNumbers: false
		});
}

function get_GET_params() {
   var GET = new Array();
   if(location.search.length > 0) {
      var get_param_str = location.search.substring(1, location.search.length);
      var get_params = get_param_str.split("&");
      for(i = 0; i < get_params.length; i++) {
         var key_value = get_params[i].split("=");
         if(key_value.length == 2) {
            var key = key_value[0];
            var value = key_value[1];
            GET[key] = value;
         }
      }
   }
   return(GET);
}
 
function get_GET_param(key) {
   var get_params = get_GET_params();
   if(get_params[key])
      return(get_params[key]);
   else
      return false;
}



function isSingle(){
	
	var strQueryString = "";
	var hasQueryString = document.URL.indexOf('?');
	
	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("&");
			
			var mySplitResultType 	= null;
			var mySplitResultSid 	= null;
			
			var i = 0;
			
			if(get_GET_param("show")!=false && get_GET_param("sid")!=false){
					selected_id = 'single';
					getSearchResults(selected_id, get_GET_param("sid"));	
			}
			else {
				getSearchResults('start', 0);
			}
		}else{
			getSearchResults('start',0);
		} 
	}else{
		getSearchResults('start',0);
	}
}
	
function getSearchResults(action,sid){
	switch (action) {
		case 'kategorie':
			getSelectData('bereich', 'fileadmin/templates/php/www.hud-training.de/courses/getXmlData.php?show=bereich', 'kategorie');
		break;
		case 'bereich':
			getSelectData('gruppe', 'fileadmin/templates/php/www.hud-training.de/courses/getXmlData.php?show=gruppe', 'bereich');
		break;
		case 'gruppe':
			getSelectData('kurs', 'fileadmin/templates/php/www.hud-training.de/courses/getXmlData.php?show=kurs', 'gruppe');
		break;
		case 'kurs':
			getSelectDataResult('result', 'fileadmin/templates/php/www.hud-training.de/courses/getXmlData.php?show=result', 'kurs');
		break;
		case 'single':
			getSelectDataResultSingle('single', 'fileadmin/templates/php/www.hud-training.de/courses/getXmlData.php?show=single&sid=' + sid);
			break;
		default:
			// Start
			document.getElementById("kategorie").style.visibility = "visible";
			document.getElementById("kategorie").style.display = "block";
			
			document.getElementById("kurs").style.visibility = "hidden";
			document.getElementById("kurs").style.display = "block";
			
			getSelectData('kategorie','fileadmin/templates/php/www.hud-training.de/courses/getXmlData.php?show=kategorie','')
		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){
		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(active_select_obj, id, name);			
	}
	active_select_obj.disabled = false;	
}

// option element zu select liste hinzufügen
function add_element(obj, id, name){
	//now add new elements 
	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){
	
	// Erhalten wir die allId? 
	if (selected_id != 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;
				
			}
		}
	}
	
	if(selected_id == "kategorie") {
		document.forms.courses.bereich.disabled=true;
		
		if(document.forms.courses.bereich.options.length > 0){
			document.forms.courses.bereich.options.length = 0;
		}
		
		document.getElementById("bereich").style.visibility = "visible";
		document.getElementById("bereich").style.display = "block";
		
		document.getElementById("gruppe").style.visibility = "hidden";
		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 == "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 (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 != ""){
		activId = eval("document.forms.courses." + selected_id + ".value");
		
		url += "&id=" + activId;
	}
	
	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);	
}

/*************** SINGLE AUSGABE *****************************/
function getSelectDataResultSingle(select_name, url){
	
	if (selected_id == 'single') {
		
		document.getElementById("kursSpacer1").style.visibility = "hidden";
		document.getElementById("kursSpacer1").style.display = "none";
		
		document.getElementById("kursSpacer2").style.visibility = "hidden";
		document.getElementById("kursSpacer2").style.display = "none";
	}

	active_select_obj = false;
	
	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";
	}
}


window.addEvent('domready', isSingle);