

	// Variablen
	loading_s 	= false;
	loading_m 	= false;
	endoftree	= false;


/* *********************************************** */
/* ** XMLHttp-Funktionen						** */
/* *********************************************** */

	// XMLHttp-Verbidung herstellen
	function createRequest(){
		// Mozilla, Opera, Safari sowie Internet Explorer 7
		xmlHttp = '';
		if (typeof XMLHttpRequest != 'undefined') {
			xmlHttp = new XMLHttpRequest();
		}
		if (!xmlHttp) {
			// Internet Explorer 6 und älter
			try {
				xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
				try {
					xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
				} catch(e) {
					xmlHttp  = false;
				}
			}
		}
		return xmlHttp;
	}
	
	// XMLHttpRequest abschicken
	function sendRequest(file,funktion,altfunktion){
		var request = '';
		if (request = createRequest()) {
			if(!checkBrowserForRequest()){
				file = file + '&savevers=1';
			}
			request.open('GET', file, true);
			request.onreadystatechange = function () {
				if ((request.readyState == 4) && (request.status == 200)) {
					funktion(request.responseText);
				}
			};
			request.send(null);
		}else if(altfunktion!=''){
			altfunktion();
		}
	}
	
		function checkBrowserForRequest(){
			var name	= navigator.userAgent.toLowerCase();
			var version	= navigator.appVersion.toLowerCase();
			var number	= version.substr(0, version.indexOf("."));
			var vers	= 0;
			
			// Internet Explorer
			if ((name.indexOf("msie") >= -1)){
				if (number < 4 )
					vers = 3;
				if (number >= 4){
					vers = 4;
					if (version.indexOf("msie 5")!=-1)
						vers = 5;
					if (version.indexOf("msie 6")!=-1)
						vers = 6;
					if (version.indexOf("msie 7")!=-1)
						vers = 7;
				}
				return vers>=6;
			}
			return true;
		}



/* *********************************************** */
/* ** Regions-Funktionen						** */
/* *********************************************** */

	function setReg(lid,rid,oid){
		
		
		if(!rid){
			setSel('lid',lid); setSel('reg',''); setSel('rid','');
			mode	= 'l';
		// Urlaubsregion wurde gewählt
		}else if(rid && rid.length>1){
			setSel('rid',rid);
			mode	= 'r2';
		// Bundesland wurde gewählt
		}else if(rid && rid.length==1){
			setSel('reg',rid); setSel('rid','');
			mode	= 'r';
		}

		changeSel(mode);
		return !createRequest();
		
	}
	
	function stepBackReg(){
		lid					= getVal('lid');
		rid					= (getVal('rid')!='' ? getVal('rid') : getVal('reg'));
		if(rid!='')		rid	= rid.substring(0,rid.length-1);
		else			lid = '';
		setReg(lid,rid,'');
		return !createRequest();
	}



/* *********************************************** */
/* ** Karten-Funktionen							** */
/* *********************************************** */

	function changeMap(lid,rid,oid){

		loading_m	= true;
	
		hideBox('suche_karte');
		showBox('suche_karte_load');
		
		sendRequest('suche.htm?ak=map&lid='+lid+'&rid='+rid+'&rand='+Math.random(),showMap,submitSearchform);
		
	}
	
	function showMap(html){

			karte	= getBox('suche_karte');
			hdln	= getBox('suche_karte_hdln');
			backbt	= getBox('suche_karte_back');
			html	= html.split('||');
			karte.innerHTML = (html[2]!='' ? html[2] : '<div id="suche_karte_noregs"><h1>Diese Region hat keine weitere Unterteilung.</h1></div>');
			hdln.innerHTML	= '<h1>' + html[0] + '</h1>';
			backbt.style.display	= (html[1]==1 ? 'block' : 'none');
	
		if(!loading_s){
			hideBox('suche_karte_load');
			showBox('suche_karte');
		}
		
		loading_m	= false;
		
	}
	
	
/* *********************************************** */
/* ** Session-Abgleich							** */
/* *********************************************** */
	
	function refreshSession(){
		return true;
		sessold = document.forms.suchformular.sessold;
		if(sessold.value>1){
			var form	= document.forms.suchformular;
			var q		= '';
			for(var i=0 ; i<form.length ; i++){
				if(form[i].name=='srch')
					sess = form[i].value;
				else
					q	= q	+ ',' + form[i].name + '=' + form[i].value;
			}
			sendRequest('suchergebnis.htm?srch='+sess+'&ak=setSession&set='+q+'&rand='+Math.random(),sessionRefreshed,'');
		}
		sessold.value = parseInt(sessold.value)+1;
	}
	
	function sessionRefreshed(html){
		return true;					
	}
	
/* *********************************************** */
/* ** Zähl-Funktionen							** */
/* *********************************************** */

	function getAnz(){
		var form	= document.forms.suchformular;
		var q		= '';
		for(var i=0 ; i<form.length ; i++){
			q	= q	+ '&' + form[i].name + '=' + form[i].value;
		}
		sendRequest('suchergebnis.htm?suchen_y=1&ak=getAnz'+q+'&rand='+Math.random(),showAnz,delAnz);
		
	}

	var anzinfotext;
	function showAnz(html){
			html				= html.split('||');
			var anzahl			= getBox('suche_anztreffer');
			if(!anzinfotext){
				anzinfotext		= anzahl.innerHTML;
				anzinfotext2	= anzahl.innerHTML.replace(/über /,'');
			}
			anzahl.innerHTML	= (html[0]>=500 ? anzinfotext.replace(/([0-9\.]+)/,html[1]) : anzinfotext2.replace(/([0-9\.]+)/,html[1]));
					
	}
	
	function delAnz(){

			anzahl				= getBox('suche_anztreffer');
			anzahl.innerHTML	= '';
					
	}
	
	
/* *********************************************** */
/* ** JS-Menues									** */
/* *********************************************** */
	
	function openMen(id){
		men = document.getElementById(id+'_men');
		if(!men)
			return true;
		men.style.display = 'block';
		return false;
	}
	
	function closeMen(id){
		men = document.getElementById(id+'_men');
		if(!men)
			return true;
		men.style.display = 'none';
		return false;
	}
	


/* *********************************************** */
/* ** Regions-Funktionen						** */
/* *********************************************** */

	function changeSel(mode){
		
		if(mode=='l'){
			setSel('oldlid',getVal('lid'));
			actSel('reg','inactive');
			setSel('reg','');
			if(getVal('lid')!='' && getVal('lid').slice(0, 4)!='kont')
				updateSelect('reg','lid='+getVal('lid'));
		}
		if(mode=='l' || mode=='r'){
			actSel('rid','inactive');
			setSel('rid','');
			if(getVal('reg')!='')
				updateSelect('rid','lid='+getVal('lid')+'&rid='+getVal('reg'));
		}
		
		if(mode!=''){
			changeMap(getVal('lid'),(getVal('rid')!='' ? getVal('rid') : getVal('reg')));
		}
			
		getAnz();
		
		
	}
	
	
	
	function updateSelect(name,params){
		loading_s	= true;
		sendRequest('suche.htm?ak=regs&'+params+'&test=1&rand='+Math.random(),popSelect,submitSearchform);
	}
	


	function popSelect(xml){
		var tmp 	= xml.split('||');
		endoftree 	= (tmp[0]==1);
		xml			= tmp[1];
		selname		= tmp[2];
		sel			= TF_getInput(selname);
		
		loading_s 	= false;
		if(!loading_m){
			hideBox('suche_karte_load');
			showBox('suche_karte');
		}

		sel.length					= 1;
		if(xml==''){
			endoftree = true;
			return false;
		}else{
			var x 						= '';
			arr 						= xml.split("\n");
			for(i=0 ; i<arr.length ; i++){
				x						= arr[i].split(';;');
				sel.options[sel.length] = new Option(x[2],x[1]);
			}
			actSel(selname,'active');
			return true;
		}
		
	}
	


	function setSel(name,val){
		TF_getInput(name).value	= val;
	}
	
	function getVal(name){
		inp	= TF_getInput(name);
		if(inp && inp.value && inp.value!='')
			return inp.value;
		return '';
	}
	
	function actSel(id,act){
	
		box	= getBox(id+'box');
		sel	= TF_getInput(id);
	
		if(box)
			box.className	= "row "+act;
	
		if(sel)
			sel.disabled	= (act=='active' ? false : true);
		
	}



/* *********************************************** */
/* ** Hilfsfunktionen							** */
/* *********************************************** */

	function getBox(id){
		return document.getElementById(id);
	}
	function TF_getInput(name){
		return document.getElementsByName(name)[0];
	}
	
	function hideBox(id){
		getBox(id).style.display = 'none';
	}
	function showBox(id){
		getBox(id).style.display = 'block';
	}
	
	
	function initForm(){
		lid	= getVal('lid');
		reg	= getVal('reg');
		rid	= getVal('rid');
		if(reg!='' && rid!='' && reg != rid.substring(0,1))
			setReg(lid,reg);
		getAnz();
	}
	
	function submitSearchform(){ 
		if(submited) return; 
		submited = true; 
		document.forms.suchformular.submit(); 
	}
	