BKV={


	defaultRequestPath:"/s/ajaxAddress.gos",

	lastSearch:"",lastMode:"",

	clearFlag:false,
	currentLang:(document.getElementsByTagName("HTML")[0].lang!=""?document.getElementsByTagName("HTML")[0].lang:"de"),
	
	Clipboard:{
		suche:"",
		suchemodus:""
	},

	cMoniker:{
		de:{
			person:"Bitte geben Sie den Vor- oder Nachname Ihres Kaminfegermeisters ein.",
			strasse:"In den St&auml;dten Bern, Biel, K&ouml;niz, Thun und Steffisburg k&ouml;nnen Sie  nach Ihrem Strassennamen suchen.",
			gemeinde:"Bitte geben Sie den Namen einer Gemeinde ein.<br />F&uuml;r Bern, Biel, K&ouml;niz, Thun und Steffisburg benutzen Sie bitte die Strassensuche.",
			kreis:"Bitte geben Sie die Kreisnummer ein."
		},
		fr:{
			person:"Veuillez entrer le nom ou pr&eacute;nom de votre Ma&icirc;tre ramoneur.",
			strasse:"Pour les villes de Berne, Bienne, K&ouml;niz, et Thun, vous pouvez rechercher d&rsquo;apr&egrave;s votre nom de la rue.",
			gemeinde:"Veuillez entrer le nom d'une commune.<br />Pour les villes de Berne, Bienne, K&ouml;niz, Thoune et Steffisburg veuillez utiliser la recherche par nom de rue.",
			kreis:"Veuillez entrer le num&eacute;ro de l'arrondissement."
		}
	},

	
	changeSearchMode:function(searchMode){
		//alert(searchMode);
		if(BKV.clearFlag){
			BKV.field_search.value="";
		}else{
			BKV.clearFlag=true;
		}
		
		if($("sucheperson")){
			BKV.field_suchemodus.value=searchMode;
			$("sucheperson").className="pas";
			$("suchekreis").className="pas";
			$("suchestrasse").className="pas";
			$("suchegemeinde").className="pas";
	
			$("suche"+searchMode).className="act"
			$("suche").focus();
			$("moniker").update(BKV.cMoniker[BKV.currentLang][searchMode]);
		}
		

	},

	ajaxAddressReq:function(theform,theBlock){
		if($("submitState")){
			$("submitState").wait_start();
		}
		new Ajax.Request(myPath,{ 
			method: 'post',
			postBody:'act=test&suche='+escape(BKV.mySearchVal)+'&suchemodus='+escape(BKV.mySearchMode),
			onSuccess: function(transport) {
				myBlock=$(theBlock);
				myBlock.update(transport.responseText);
				$("moniker").update(BKV.cMoniker[BKV.currentLang][BKV.field_suchemodus.getValue()]);
				if($("submitState")){
					$("submitState").wait_stop();
				}
			}
		});
	},
	
	getKreise:function(reccode_staff,targetBlock){
		if($("submitState")){
			$("submitState").wait_start();
		}
		new Ajax.Request(BKV.defaultRequestPath+"?act=getkreise&reccode="+reccode_staff,{ 
			method: 'get',
			onSuccess: function(transport) {
				targetBlock=$(targetBlock);
				targetBlock.update(transport.responseText);
				targetBlock.show();
				if($("submitState")){
					$("submitState").wait_stop();
				}
			}
		});
	},
	
	checkAndSearch:function(pe){
		BKV.mySearchVal=BKV.field_search.getValue();
		BKV.mySearchMode=BKV.field_suchemodus.getValue();
		if((BKV.lastSearch!=BKV.mySearchVal)||(BKV.lastMode!=BKV.mySearchMode)){
			if(BKV.mySearchVal.length>=BKV.minTextLength){
				if($("submitState")){
					if(!$('submitState').waitState){
						BKV.saveToClipboard(BKV.lastSearch,BKV.lastMode);
						BKV.lastSearch=BKV.mySearchVal;
						BKV.lastMode=BKV.mySearchMode;
						BKV.ajaxAddressReq(BKV.myForm,'ajaxBlock');
					}
				}
			}
		}
	},
	wait_start:function(){
		this.src="/i/icn/wait_4-0.gif";
		this.waitState=true;
	},
	wait_stop:function(){
		this.src="/i/spacer.gif";
		this.waitState=false;
	},
	
	autofill:function(suche,suchemodus){
		//alert(suche +" "+suchemodus)
		if(this.interfaceMode=="suche"){
			BKV.changeSearchMode(suchemodus);
		
			BKV.field_search.value=suche;
			var io=0;
			/*
			while(BKV.field_suchemodus.options[io]){
				BKV.field_suchemodus.options[io].selected=BKV.field_suchemodus.options[io].value==suchemodus?"selected":"";
				io++;
			}
			
			*/
			
			BKV.field_search.focus();
		}else{
		

			BKV.field_suchemodus.value=suchemodus;
			BKV.field_search.value=suche;
			this.myForm.submit();
			//self.location.href="/adressen/suche/"+"?act=&suche="+suche+"&suchemodus="+suchemodus
		
		}
	},
	
	saveToClipboard:function(search,mode){
		BKV.Clipboard.suche=search?search:BKV.field_search.value;
		BKV.Clipboard.suchemodus=mode?mode:$(BKV.field_suchemodus).getValue();
	},

	loginpanel:function(mode,link){
		if(mode=="open"){
			this.panelOpen('user',link);
			$("user_login").reset();
		}else{
			this.panelClose('user',link);
		}
		return false;
	},
	contactpanel:function(mode,link){
		if(mode=="open"){
			this.panelOpen('kontakt',link);
			$("adr").reset();
		}else{
			this.panelClose('user',link);
		}
		return false;
	},
	panelOpen:function(panel,link){
		if(link){$(link).addClassName("act");}
		$(panel).setStyle({display:'block'});
		$("user_login").focusFirstElement();
		return false;
	},
	panelClose:function(panel,link){
		$$("#lang li.login a")[0].removeClassName("act");
		$(panel).setStyle({display:'none'});
		return false;
	},
	setUmgebung:function(prepath,o){
		if(o.options[o.selectedIndex].value!=""){
			self.location.href=prepath+"?umgebung="+o.options[o.selectedIndex].value;
		}
	}
};




function ajaxPreview(mode,obj,recID,queryString){
	
	var myA=$('line_'+recID).down('a', 0);
	if(typeof queryString !='undefined'){
		queryString="&"+queryString;
	}else{
		queryString="";
	}

	if($('preview_'+recID).style.height != "0px"){
		slideup('preview_'+recID);
		lastRecID='';
		currentRecID='';
		myA.removeClassName('cur');
		return false;
	}
	
	url=obj.href;
	currentRecID=recID;
	if(lastRecID){
		$('line_'+lastRecID).down('a', 0).removeClassName('cur');
	}

	myA.addClassName('cur');

	new Ajax.Request(url, {
		encoding:'UTF-8',
		method: 'post',
		postBody:'previewMode=ajax'+queryString,
		onComplete:function(transport){
			//$('preview').update(eval((transport.responseText)));
			if(lastRecID){
				//toggleSlide('preview_'+lastRecID);					

				//$('preview_'+lastRecID).update('');
				//$('line_'+lastRecID).toggle();
				//toggleSlide('line_'+lastRecID);
				//slidedown('line_'+lastRecID);					
			}

			//$('line_'+currentRecID).toggle();	
			
			$('preview_'+currentRecID).update(transport.responseText);
			//toggleSlide('line_'+currentRecID);
			
			if(lastRecID){

				//crossfade('preview_'+currentRecID,'preview_'+lastRecID);
				slidedown('preview_'+currentRecID);
				slideup('preview_'+lastRecID);

			}else{
				$('line_'+currentRecID).scrollTo();
				slidedown('preview_'+currentRecID);

			}
			
			lastRecID=currentRecID;
		}

	});
};


/* ---------- motionpack Slide -------- */


var timerlen = 5;
var slideAniLen = 250;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

function slidedown(objname){
	if(moving[objname])
		return;
	
	if($(objname).style.height != "0px")
		return; // cannot slide down something that is already visible
	
	$(objname).setStyle({'height' : $(objname).scrollHeight + 'px'});
	moving[objname] = true;
	dir[objname] = "down";
	startslide(objname);
}

function slideup(objname){
	if(moving[objname])
		return;
	
	if($(objname).style.height == "0px")
		return; // cannot slide up something that is already hidden
	
	moving[objname] = true;
	dir[objname] = "up";
	startslide(objname);
}

function startslide(objname){
	obj[objname] = $(objname);
	
	endHeight[objname] = parseInt(obj[objname].style.height);
	startTime[objname] = (new Date()).getTime();
	if(dir[objname] == "down"){
		obj[objname].style.height = "1px";
	}
	
	timerID[objname] = setInterval('slidetick(\'' + objname +'\');',timerlen);
}

function slidetick(objname){
	var elapsed = (new Date()).getTime() - startTime[objname];
	
	if (elapsed > slideAniLen)
		endSlide(objname)
		else {
			var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
			if(dir[objname] == "up")
				d = endHeight[objname] - d;
			
			obj[objname].style.height = d + "px";
		}
	
	return;
}

function endSlide(objname){
	clearInterval(timerID[objname]);
	
	if(dir[objname] == "up")
		obj[objname].style.height = "0px";
	else
		obj[objname].style.height = endHeight[objname]+"px";	//damit auch wirklich endgroesse erreicht
	
	delete(moving[objname]);
	delete(timerID[objname]);
	delete(startTime[objname]);
	delete(endHeight[objname]);
	delete(obj[objname]);
	delete(dir[objname]);
	
	return;
}

function toggleSlide(objname){
	if($(objname).style.height == "0px"){
		// div is hidden, so let's slide down
		var questions = $('questions').getElementsByTagName('div');
		var questions= $A(questions);
		questions.each(function(question){
					   if(question.style.height != "0px") slideup(question);
					   });
		slidedown(objname);
	}else{
		// div is not hidden, so slide up
		slideup(objname);
	}
}



function initBKV() {

	if(!$('form1')){
		return;
	}
	BKV.myForm=$('form1');
	BKV.field_suchemodus=$("suchemodus");
	BKV.field_search=$("suche");

	BKV.minTextLength=2;

	BKV.field_suchemodus.onchange=function(){
	
		BKV.changeSearchMode(BKV.field_suchemodus.getValue());
		//$("suche").focus();
		//$("moniker").update(BKV.cMoniker[BKV.currentLang][BKV.field_suchemodus.getValue()]);
	}
/*
	BKV.field_search.onchange=function(){
	
		//BKV.changeSearchMode(BKV.field_suchemodus.getValue());
		//$("suche").focus();
		//$("moniker").update(BKV.cMoniker[BKV.currentLang][BKV.field_suchemodus.getValue()]);
	return (true)
	}
	*/
	BKV.interfaceMode=$("interfaceMode").getValue();
	//console.dir(BKV);
	BKV.changeSearchMode(BKV.field_suchemodus.getValue());
	$("moniker").update(BKV.cMoniker[BKV.currentLang][BKV.field_suchemodus.getValue()]);
	new PeriodicalExecuter(BKV.checkAndSearch,1);
	if($("submitState")){
		$("submitState").wait_start=BKV.wait_start;
		$("submitState").wait_stop=BKV.wait_stop;
	}
}; 


window.onload=function(){
	outLinks();
	initBKV();
}

