 	// global xmlhttprequest object
	var xmlHttp = false;
	
	var selSite = "";
	

	
	/** AJAX functions **/
	
	// constants
	var REQUEST_GET		= 0;
	var REQEST_POST		= 2;
	var REQUEST_HEAD	= 1;
	var REQUEST_XML		= 3;
	
	
	
	/**
	 * instantiates a new xmlhttprequest object
	 *
	 * @return xmlhttprequest object or false
	 */
	function getXMLRequester( )
	{
		var xmlHttp = false;
				
		// try to create a new instance of the xmlhttprequest object		
		try
		{
			// Internet Explorer
			if( window.ActiveXObject )
			{
				for( var i = 5; i; i-- )
				{
					try
					{
						// loading of a newer version of msxml dll (msxml3 - msxml5) failed
						// use fallback solution
						// old style msxml version independent, deprecated
						if( i == 2 )
						{
							xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP" );	
						}
						// try to use the latest msxml dll
						else
						{
							
							xmlHttp = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
						}
						break;
					}
					catch( excNotLoadable )
					{						
						xmlHttp = false;
					}
				}
			}
			// Mozilla, Opera und Safari
			else if( window.XMLHttpRequest )
			{
				xmlHttp = new XMLHttpRequest();
			}
		}
		// loading of xmlhttp object failed
		catch( excNotLoadable )
		{
			xmlHttp = false;
		}
		return xmlHttp ;
	}
	
	
	/**
	 * sends a http request to server
	 *
	 * @param strSource, String, datasource on server, e.g. data.php
	 *
	 * @param strData, String, data to send to server, optionally
	 *
	 * @param intType, Integer,request type, possible values: REQUEST_GET, REQUEST_POST, REQUEST_XML, REQUEST_HEAD default REQUEST_GET
	 *
	 * @param strData, Integer, ID of this request, will be given to registered event handler onreadystatechange', optionally
	 *
	 * @return String, request data or data source
	 */
	function sendRequest( strSource, strData, intType, intID )
	{
		if( !strData )
			strData = '';
	
		// default type (0 = GET, 1 = xml, 2 = POST )
		if( isNaN( intType ) )
			intType = 0; // GET
	
		// previous request not finished yet, abort it before sending a new request
		if( xmlHttp && xmlHttp.readyState )
		{
			xmlHttp.abort( );
			xmlHttp = false;
		}
			
		// create a new instance of xmlhttprequest object
		// if it fails, return
		if( !xmlHttp )
		{
			xmlHttp = getXMLRequester( );
			if( !xmlHttp )
				return;
		}
		
		// parse query string
		if( intType != 1 && ( strData && strData.substr( 0, 1 ) == '&' || strData.substr( 0, 1 ) == '?' ) )
			strData = strData.substring( 1, strData.length );

		// data to send using POST
		var dataReturn = strData ? strData : strSource;
		
		switch( intType )
		{
			case 1:	// xml
				strData = "xml=" + strData;
			case 2: // POST
				// open the connection 
				xmlHttp.open( "POST", strSource, true );
				xmlHttp.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
				xmlHttp.setRequestHeader( 'Content-length', strData.length );
				break;
			case 3: // HEAD
				// open the connection 
				xmlHttp.open( "HEAD", strSource, true );
				strData = null;
				break;
			default: // GET
				// open the connection 
				var strDataFile = strSource + (strData ? '?' + strData : '' );
				xmlHttp.open( "GET", strDataFile, true );
				strData = null;
		}
		
		// set onload data event-handler
		xmlHttp.onreadystatechange = new Function( "", "processResponse(" + intID + ")" ); ;

		// send request to server
		xmlHttp.send( strData );	// param = POST data
		
		return dataReturn;
	}
		
	
	/**
	 * process the response data from server
	 *
	 * @param intID, Integer, ID of this response
	 */
	function processResponse( intID )
	{
		// status 0 UNINITIALIZED open() has not been called yet.
		// status 1 LOADING send() has not been called yet.
		// status 2 LOADED send() has been called, headers and status are available.
		// status 3 INTERACTIVE Downloading, responseText holds the partial data.
		// status 4 COMPLETED Finished with all operations.
		switch( xmlHttp.readyState )
		{
			// uninitialized
			case 0:
			// loading
			case 1:
			// loaded
			case 2:
			// interactive
			case 3:
				break;
			// complete
			case 4:	
				// check http status
				if( xmlHttp.status == 200 )	// success
				{
					processData( xmlHttp, intID );
				}
				// loading not successfull, e.g. page not available
				else
				{
					if( window.handleAJAXError )
						handleAJAXError( xmlHttp, intID );
					else
						alert( "ERROR\n HTTP status = " + xmlHttp.status + "\n" + xmlHttp.statusText ) ;
				}
		}
	}
	
	/** End AJAX functions **/

	
	
	/** real application functions **/
	
	
	// process data from server
	function processData( xmlHttp, intID )
	{
	// process text data
		updateMenu( xmlHttp.responseText );
	}
	
	
	function getDataTechnik( objSelect )
	{
		document.getElementById("LoadImage").style.display = "block";
		selSite = "technic";
		var strURL = "admin/getDynamicData.php?get=technic&date=" + objSelect.options[ objSelect.options.selectedIndex ].value;
		//var strURL = "data2.txt";//"data" + objSelect.options[ objSelect.options.selectedIndex ].value + ".txt";
		sendRequest( strURL );
	}
	
	function getDataDojo( objSelect )
	{
		document.getElementById("LoadImage").style.display = "block";
		selSite = "dojo";
		var strURL = "admin/getDynamicData.php?get=dojo&dojoid=" + objSelect.options[ objSelect.options.selectedIndex ].value;
		//var strURL = "data2.txt";//"data" + objSelect.options[ objSelect.options.selectedIndex ].value + ".txt";
		sendRequest( strURL );
	}
	
  function getDataDojoTrainer( objSelect )
	{
		document.getElementById("LoadImage").style.display = "block";
		selSite = "dojotrainer";
		var strURL = "admin/getDynamicData.php?get=dojotrainer&trainerid=" + objSelect.options[ objSelect.options.selectedIndex ].value;
		//var strURL = "data2.txt";//"data" + objSelect.options[ objSelect.options.selectedIndex ].value + ".txt";
		sendRequest( strURL );
	}
	
	function getDataNews( objSelect )
	{
		document.getElementById("LoadImage").style.display = "block";
		
		document.getElementById("k-submit").style.display = "";
		document.getElementById("k-reset").style.display = "";
		document.getElementById("k-submitdel").style.display = "block";
		
		selSite = "news";
		var strURL = "admin/getDynamicData.php?get=news&newsid=" + objSelect.options[ objSelect.options.selectedIndex ].value;
		//var strURL = "data2.txt";//"data" + objSelect.options[ objSelect.options.selectedIndex ].value + ".txt";
		sendRequest( strURL );
	}
	
	function getDataNewsArch( objSelect )
	{
		document.getElementById("LoadImage").style.display = "block";
		
		document.getElementById("k-submit").style.display = "none";
		document.getElementById("k-reset").style.display = "none";
		document.getElementById("k-submitdel").style.display = "none";
		
		selSite = "newsarch";
		var strURL = "admin/getDynamicData.php?get=news&newsid=" + objSelect.options[ objSelect.options.selectedIndex ].value;
		//var strURL = "data2.txt";//"data" + objSelect.options[ objSelect.options.selectedIndex ].value + ".txt";
		sendRequest( strURL );
	}
	
	function getDataLehrgang( objSelect )
	{
		document.getElementById("LoadImage").style.display = "block";
		selSite = "lehrgang";
		var strURL = "admin/getDynamicData.php?get=lehrgang&action=info&lehrgangid=" + objSelect.options[ objSelect.options.selectedIndex ].value;
		//var strURL = "data2.txt";//"data" + objSelect.options[ objSelect.options.selectedIndex ].value + ".txt";
		sendRequest( strURL );
	}
	
	function getDataTrainer( objSelect, TrID )
	{
		document.getElementById("LoadImage").style.display = "block";
		selSite = "dojoTrainer";
		var strURL = "getDynamicData.php?get=trainer&trid=" + TrID;
		sendRequest( strURL );
	}
	
	function setDataGBShow( objSelect, GBID )
	{
		selSite = "gbShow";
		var strURL = "admin/getDynamicData.php?set=gbshow&select="+objSelect.checked+"&gbid=" + GBID;
		//var strURL = "data2.txt";//"data" + objSelect.options[ objSelect.options.selectedIndex ].value + ".txt";
		sendRequest( strURL );
	}
	
	function setDataGBDelete( objSelect, GBID )
	{
		selSite = "gbDelete";
		if(confirm('Wollen Sie den Gästebucheintrag (ID='+GBID+') wirklich löschen?'))
		{
		  var strURL = "admin/getDynamicData.php?set=gbdelete&gbid=" + GBID;
		  sendRequest( strURL );
		  objSelect.parentNode.parentNode.style.display = 'none';
		}
	}
	
	function setDataImageCatalogClick( album )
	{
		selSite = "ImageCatalogClick";
		var strURL = "getDynamicData.php?set=ImageCatalogClick&album=" + album;
		sendRequest( strURL );
	}
	
	function setDataREGDelete( objSelect, LID, REGname )
	{
		selSite = "regDelete";
		if(confirm('Wollen Sie die Registrierung (Name='+REGname+') wirklich löschen?'))
		{
		  var strURL = "admin/getDynamicData.php?set=regdelete&lid=" + LID;
		  sendRequest( strURL );
		  objSelect.parentNode.parentNode.style.display = 'none';
		}
	}
	
	// process data from server, updates second select menu
	// data from server comes with this format: value=data&value=data...
	function updateMenu( strData )
	{
		if( strData )
		{
			if( selSite == "technic" )
			{
				var arrOptions = strData.split( '{/*/}' );
				var objTechnicMonth = document.getElementById( "technicmonth" );
				var objTechnicYear = document.getElementById( "technicyear" );
				var objTechnicLegend = document.getElementById( "techniclegend" );
	
				objTechnicMonth.value = arrOptions[ 0 ];
//				objTechnicMonth.disabled = "";
				objTechnicYear.value = arrOptions[ 1 ];
//				objTechnicYear.disabled = "";
				var objSubmit = document.getElementById( "k-submit" );
//				objSubmit.style.visibility = "visible";
//				document.getElementById( "k-reset" ).style.visibility = "visible";
				if(document.getElementById( "kontakt_error" ))document.getElementById( "kontakt_error" ).style.display = "none";
				if(document.getElementById( "kontakt_info" ))document.getElementById( "kontakt_info" ).style.display = "none";
				
				objTechnicLegend.innerHTML = "Technik für " + document.getElementById( "technicdate" ).options[document.getElementById( "technicdate" ).selectedIndex].innerHTML;
				
				if( arrOptions[ 0 ] != "" || arrOptions[ 1 ] != "" )
					objSubmit.value="Ändern";
				else
					objSubmit.value="Hinzufügen";
//				var objSelect = document.getElementById( "select2" );
//				objSelect.options.length = 0;
				
//				for( var i = 0; i < arrOptions.length; i++ )
//				{
//					arrOption = arrOptions[ i ].split( '=' );
//					objSelect.options[ i ] = new Option( arrOption[ 1 ], arrOption[ 0 ], false, false );
//				}
				
//				document.getElementById( "seldiv2" ).style.visibility = "visible";
			}
			else if( selSite == "dojo" )
			{
				var arrOptions = strData.split( '{/*/}' );
				var objSubmit = document.getElementById( "k-submit" );
				var objDojoWho = document.getElementById( "dojowho" );
				var objDojoTrainer = document.getElementById( "dojotrainer" );
				var objDojoOrt = document.getElementById( "dojoort" );
				var objDojoWeekday = document.getElementById( "dojoweekday" );
				var objDojoTime = document.getElementById( "dojotime" );
				var objDojoSword = document.getElementById( "dojosword" );
				var objDojoSwordTime = document.getElementById( "dojoswordtime" );
        var objDojoStick = document.getElementById( "dojostick" );
				var objDojoStickTime = document.getElementById( "dojosticktime" );

        if(arrOptions[ 0 ] == '(A)') objDojoWho.selectedIndex = 1; else if(arrOptions[ 0 ] == '(F)') objDojoWho.selectedIndex = 2; else if(arrOptions[ 0 ] == '(A/F)') objDojoWho.selectedIndex = 3; else objDojoWho.selectedIndex = 0;
        for(i = 1; i < objDojoTrainer.options.length; i++) if(objDojoTrainer.options[i].childNodes[0].nodeValue == arrOptions[ 1 ])
        {
          objDojoTrainer.selectedIndex = i;
          break;
        }
        for(i = 1; i < objDojoOrt.options.length; i++) if(objDojoOrt.options[i].childNodes[0].nodeValue == arrOptions[ 2 ])
        {
          objDojoOrt.selectedIndex = i;
          break;
        }
        objDojoWeekday.selectedIndex = arrOptions[ 3 ];
        objDojoTime.value = arrOptions[ 4 ]?arrOptions[ 4 ]:'';
        if(arrOptions[ 5 ] == 't'){objDojoSword.value = "checked"; objDojoSword.checked = "checked"}
				else{{objDojoSword.value = ""; objDojoSword.checked = ""}}
				objDojoSwordTime.value = arrOptions[ 6 ]?arrOptions[ 6 ]:'';
				if(arrOptions[ 7 ] == 't'){objDojoStick.value = "checked"; objDojoStick.checked = "checked"}
				else{{objDojoStick.value = ""; objDojoStick.checked = ""}}
			  objDojoStickTime.value = arrOptions[ 8 ]?arrOptions[ 8 ]:'';
	
        if( arrOptions[ 0 ] != "" && arrOptions[ 1 ] != "" && arrOptions[ 2 ] != "" && sendtext != "" && arrOptions[ 3 ] != "" &&  arrOptions[ 4 ] != "")
				{
					objSubmit.value="Ändern";
					document.getElementById("k-submitdel").style.display = "block";
				}
				else
				{
					objSubmit.value="Hinzufügen";
					document.getElementById("k-submitdel").style.display = "none";
				}
			}
			else if( selSite == "dojotrainer" )
			{
				var arrOptions = strData.split( '{/*/}' );
				var objSubmit = document.getElementById( "t-submit" );
				var objDojoTrainerName = document.getElementById( "dojotrainername" );
				var objDojoTrainerGrad = document.getElementById( "dojotrainergrad" );
				var objDojoTrainerPosition = document.getElementById( "dojotrainerposition" );
				var objDojoTrainerImage = document.getElementById( "dojotrainerimage" );
        var objDojoTrainerDesc = document.getElementById( "dojotrainerdesc" );
				var objDojoTrainerShow = document.getElementById( "dojotrainershow" );
				
        
        objDojoTrainerName.value = arrOptions[ 0 ]?arrOptions[ 0 ]:'';
        objDojoTrainerGrad.value = arrOptions[ 1 ]?arrOptions[ 1 ]:'';
        objDojoTrainerPosition.value = arrOptions[ 2 ]?arrOptions[ 2 ]:'';
        objDojoTrainerImage.value = arrOptions[ 3 ]?arrOptions[ 3 ]:'';
        objDojoTrainerDesc.value = arrOptions[ 4 ]?arrOptions[ 4 ]:'';
        if(arrOptions[ 5 ] == 't'){objDojoTrainerShow.value = "checked"; objDojoTrainerShow.checked = "checked"}
				else{{objDojoTrainerShow.value = ""; objDojoTrainerShow.checked = ""}}
        	
        if( arrOptions[ 0 ] != "" && arrOptions[ 1 ] != "")
				{
					objSubmit.value="Ändern";
					document.getElementById("t-submitdel").style.display = "block";
				}
				else
				{
					objSubmit.value="Hinzufügen";
					document.getElementById("t-submitdel").style.display = "none";
				}
			}
			else if( selSite == "news" || selSite == "newsarch")
			{
				var sendtext = "";
				var arrOptions = strData.split( '{/*/}' );
				var objSubmit = document.getElementById( "k-submit" );
				var objNewsName = document.getElementById( "k-name" );
				var objNewsMail = document.getElementById( "k-mail" );
				var objNewsTitle = document.getElementById( "k-head" );
				objNewsName.value = arrOptions[ 0 ]?arrOptions[ 0 ]:'';
				objNewsMail.value = arrOptions[ 1 ]?arrOptions[ 1 ]:'';
				objNewsTitle.value = arrOptions[ 2 ]?arrOptions[ 2 ]:'';
				for( var i = 3; i < arrOptions.length ; i++ )
				{
					//if( i > 3 ) sendtext = sendtext + "&";
					sendtext = sendtext + arrOptions[i];
				}
        var oEditor = FCKeditorAPI.GetInstance('FCKeditor1');
  			oEditor.SetHTML(sendtext);
				if( arrOptions[ 0 ] != "" && arrOptions[ 1 ] != "" && arrOptions[ 2 ] != "" && sendtext != "")
				{
				  if(selSite != "newsarch")
				  {
					objSubmit.value="Ändern";
					document.getElementById("k-submitdel").style.display = "block";
				  }
				}
				else
				{
					objSubmit.value="Hinzufügen";
					document.getElementById("k-submitdel").style.display = "none";
				}
			}
			else if( selSite == "lehrgang" )
			{
				var sendtext = "";
				var arrOptions = strData.split( '{/*/}' );
				var objSubmit = document.getElementById( "l-submit" );
				var objLehrgangName = document.getElementById( "l-name" );
				var objLehrgangAm = document.getElementById( "l-am" );
				var objLehrgangIn = document.getElementById( "l-in" );
				var objLehrgangMit = document.getElementById( "l-mit" );
				var objLehrgangShowonpage = document.getElementById( "l-showonpage" );
				var objLehrgangOnlinereg = document.getElementById( "l-onlinereg" );
				var objLehrgangFoodlist = document.getElementById( "l-foodlist" );
				objLehrgangName.value = arrOptions[ 1 ]?arrOptions[ 1 ]:'';
				objLehrgangAm.value = arrOptions[ 2 ]?arrOptions[ 2 ]:'';
				objLehrgangIn.value = arrOptions[ 3 ]?arrOptions[ 3 ]:'';
				objLehrgangMit.value = arrOptions[ 4 ]?arrOptions[ 4 ]:'';

        /* Ausschreibung */
     		selSite = "lehrgang_ausschreibung";
    		var strURL = "admin/getDynamicData.php?get=lehrgang&action=ausschreibung&lehrgangid=" + arrOptions[ 0 ];
    		sendRequest( strURL );
        /* Ausschreibung ENDE*/


				if(arrOptions[ 5 ] == 't'){objLehrgangShowonpage.value = "checked"; objLehrgangShowonpage.checked = "checked"}
				else{{objLehrgangShowonpage.value = ""; objLehrgangShowonpage.checked = ""}}
				if(arrOptions[ 6 ] == 't'){objLehrgangOnlinereg.value = "checked"; objLehrgangOnlinereg.checked = "checked";document.getElementById( "show-onlinereg" ).style.visibility = "visible";document.getElementById( "show-onlinereg" ).childNodes[1].href = "?show=admin&ashow=register&LID="+arrOptions[ 0 ];}
				else{{objLehrgangOnlinereg.value = ""; objLehrgangOnlinereg.checked = "";document.getElementById( "show-onlinereg" ).style.visibility = "hidden";}}
				if(arrOptions[ 7 ] == 't'){objLehrgangFoodlist.value = "checked"; objLehrgangFoodlist.checked = "checked";document.getElementById( "show-foodlist" ).style.visibility = "visible";document.getElementById( "show-foodlist" ).childNodes[1].href = "?show=admin&ashow=foodsupplydl&LID="+arrOptions[ 0 ];}
				else{{objLehrgangFoodlist.value = ""; objLehrgangFoodlist.checked = "";document.getElementById( "show-foodlist" ).style.visibility = "hidden";}}
				
				var ul = document.getElementById("l-images");
				while(ul.hasChildNodes()){ul.removeChild(ul.lastChild)}
				
				if(arrOptions[8] == '0')
				{
					var newB = document.createElement('b');
					newB.appendChild(document.createTextNode("kein Bild gefunden..."));
					var newLi = document.createElement("li");
          newLi.appendChild(newB);
          ul.appendChild(newLi);
          
          var IamgeDIVTag = document.getElementById( "admin_lehrgang_image_show_head" );
	        while(IamgeDIVTag.hasChildNodes()){IamgeDIVTag.removeChild(IamgeDIVTag.lastChild)}
	        var newB = document.createElement('b');
	        newB.appendChild(document.createTextNode("kein Bild geladen"));
          IamgeDIVTag.appendChild(newB);
  
          var ImageDIVTag = document.getElementById( "admin_lehrgang_image_show_image" );
          while(ImageDIVTag.hasChildNodes()){ImageDIVTag.removeChild(ImageDIVTag.lastChild)}
	      	var newFont = document.createElement('font');
	      	newFont.setAttribute('style', "font-family:'Verdana';font-size:120px; font-weight:bold; color:#999999;");
	        newFont.appendChild(document.createTextNode("X"));
          ImageDIVTag.appendChild(newFont);
				}
				else
			  {
				  for( var i = 0 ; i < arrOptions[8] ; i++ )
				  {
				    var newA = document.createElement('a');
            newA.setAttribute('href', "javascript:setLehrgangImage('"+ arrOptions[ 0 ] + "', '" + arrOptions[9 +i] + "');");
            newA.appendChild(document.createTextNode(arrOptions[9 +i]));
            var newLi = document.createElement("li");
            newLi.appendChild(newA);
            ul.appendChild(newLi);
          }
				}

				var oEditor = FCKeditorAPI.GetInstance('FCKeditor1') ;
  			oEditor.SetHTML(arrOptions[9+parseInt(arrOptions[8])]);
  			var mEditor = FCKeditorAPI.GetInstance('FCKeditor2') ;
  			mEditor.SetHTML(arrOptions[10+parseInt(arrOptions[8])]);
  			
  			if( arrOptions[ 0 ] != "undefined")
				{
					objSubmit.value="Ändern";
					document.getElementById("k-submitdel").style.display = "block";
					document.getElementById("admin_lehrgang_image").style.display = "block";
					document.getElementById("admin_lehrgang_ausschreibung").style.display = "block";
				}
				else
			  {
					objSubmit.value="Hinzufügen";
					document.getElementById("k-submitdel").style.display = "none";
					document.getElementById("admin_lehrgang_image").style.display = "none";
					document.getElementById("admin_lehrgang_ausschreibung").style.display = "none";
        }
					
			}
      else if( selSite == "lehrgang_ausschreibung" )
      {
      	var sendtext = "";

				var arrOptions = strData.split( '{/*/}' );
      	var ul = document.getElementById("l-ausschreibung");
				while(ul.hasChildNodes()){ul.removeChild(ul.lastChild)}
				if(arrOptions.length > 0) for( var i = 0; i < arrOptions.length ; i+=2 )
				{
  	      var newA = document.createElement('a');
          newA.setAttribute('href', 'getimage.php?get=ausschreibung&LGAus_ID='+arrOptions[ i ]);
          newA.appendChild(document.createTextNode(arrOptions[1 + i]));
          var newLi = document.createElement("li");
          newLi.appendChild(newA);
          ul.appendChild(newLi);
        }
      }
			else if( selSite == "dojoTrainer" )
			{
				var arrOptions = strData.split( '{/*/}' );
				var objTrainerDesc = document.getElementById( "dojotrainerdesc" );
				var objTrainerImg = document.getElementById( "dojotrainerimg" );

				if(arrOptions[ 3 ] != "") objTrainerImg.src = 'images/' + arrOptions[ 3 ];	else objTrainerImg.src = '###';
				objTrainerImg.style.display = "";
				objTrainerDesc.innerHTML = "<font style=\"font-weight: bold;\">"+arrOptions[ 0 ]+" "+arrOptions[ 1 ]+"</font><br />"+arrOptions[ 2 ]+"<br /><br />" + arrOptions[ 4 ];
				objTrainerDesc.style.display = "";
			}
		}
		  if(document.getElementById("LoadImage"))document.getElementById("LoadImage").style.display = "none";
	}





