//***********//
// AJAX-INIT //
//***********//

var XMLHTTP = null;

if(window.XMLHttpRequest){
	XMLHTTP = new XMLHttpRequest();
}
else if (window.ActiveXObject){
	try{
		XMLHTTP = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(ex){
		try{
			XMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(ex){}
	}
}



//*************//
// AJAX-SEARCH //
//*************//

function output_search(){
	if(XMLHTTP.readyState == 4 && XMLHTTP.responseText != ""){
		sr = document.getElementById("search_results");
		sr.innerHTML = XMLHTTP.responseText;
		sr.style.visibility = "visible";
	}
	else
		reset_search();
}


last_search = "";
function do_search(s){
	s = s.replace(/^\s*|\s*$/g,"");
	if(s.length > 2 && last_search != s){
		if(document.getElementById("search_results") == null){
			reset_search();
		}
		
		if(XMLHTTP.readyState < 4){
			XMLHTTP.abort();
		}
		
		var url_do_search = path_script_dir + "do_search.php";
		
		XMLHTTP.open("POST", url_do_search);
		XMLHTTP.onreadystatechange = output_search;
		XMLHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		XMLHTTP.send("s="+s);
		last_search = s;
	}
	else if(s.length < 3)
		reset_search();
}

cleared = false;
function clear_search(t){
	if(cleared == false && t.value == "Suchbegriff"){
		t.value = "";
		t.style.color = "#000000";
		cleared = true;
	}
}

function reset_search(){
	//console.log("reset");
	sr = document.getElementById("search_results");
	sr.innerHTML = "";
	sr.style.visibility = "hidden";
}



//***************//
// AJAX-CALENDAR //
//***************//

var termine = new Object();
function load_calendar(m, y){
	var url_get_calendar = path_script_dir + "kalender.php";
	var url_get_events = path_script_dir + "js/termine.js";
	
	if(XMLHTTP.readyState < 4){
		XMLHTTP.abort();
	}
	
	XMLHTTP.open("POST", url_get_calendar);
	XMLHTTP.onreadystatechange = output_cal;
	XMLHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	XMLHTTP.send("m="+m+"&y="+y);	
	
	loadJSFile(url_get_events + '?m='+m+'&y='+y);
}


function output_cal(){
	if(XMLHTTP.readyState == 4 && XMLHTTP.responseText != ""){
		cc = document.getElementById("calContainer");
		cc.innerHTML = XMLHTTP.responseText;
	}
}



//*********//
// TOOLTIP //
//*********//

var IE = document.all?true:false
if (!IE) document.captureEvents(Event.MOUSEMOVE)
var tempX = 0
var tempY = 0
var tt;

function show_tooltip(id){
	if(termine[id] != undefined){
		document.onmousemove = getMouseXY;
		tt = document.getElementById('cal_tooltip');
		tt.innerHTML = termine[id];
		tempX = 0;
		tempY = 0;
		setOpacity(tt, 90);
		tt.style.visibility = "visible";
		
	}
}

function hide_tooltip(){
	document.onmousemove = null;
	tt = document.getElementById('cal_tooltip');
	tt.style.visibility = "hidden";
	tempX = 0;
	tempY = 0;
}

function getMouseXY(e) {
	if (IE){
		tempX = event.clientX + document.body.scrollLeft
		tempY = event.clientY + document.body.scrollTop
	}else{
		tempX = e.pageX
		tempY = e.pageY
	}

	if (tempX < 0){tempX = 0}
	if (tempY < 0){tempY = 0}  
	
	tt.style.left = (tempX-265)+"px";
	tt.style.top = (tempY+15)+"px";
	
	return true
}



//****************//
// AJAX-JS-LOADER //
//****************//

var ljsf;
var alreadyIncluded = "";
function loadJSFile(filename, includeOnce){
	if(ljsf != null && ljsf.readyState < 4){
		ljsf.abort();
	}
	
	if (includeOnce) {
		if (alreadyIncluded.indexOf("|"+filename+"|")!=-1) return true;
		alreadyIncluded = alreadyIncluded + "|" + filename + "|";
	}
	
	if (ljsf == null) ljsf = (navigator.userAgent.indexOf("MSIE")+1)?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest;
		ljsf.open('get',filename,true);
		ljsf.setRequestHeader("Connection","close");
		ljsf.onreadystatechange = function() {
		if(ljsf.readyState == 4){
			eval(ljsf.responseText);        
		}
	}
	
	ljsf.send(null);
}



//***********//
// SONSTIGES //
//***********//

function popup(link, width, height, sb){
	sb = sb == undefined ? 1 : 0;
	PopUp=window.open(link,'_blank','width='+width+',height='+height+',scrollbars='+sb+',toolbar=0,resizable=0');
	PopUp.document.close();
	return;
}

function popup_img(link, width, height){
	PopUpIMG = window.open(false,'_blank','width='+width+',height='+height+',scrollbars=0,toolbar=0,resizable=0');
	PopUpIMG.document.write('<html><head><title>Gro&szlig;ansicht</title></head><body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginheight="0" marginwidth="0" style="margin:0;padding:0;">');
	PopUpIMG.document.write('<img src="'+link+'" style="cursor:pointer" onclick="self.close()" alt="[Fenster schlie&szlig;en]" title="[Fenster schlie&szlig;en]" />');
	PopUpIMG.document.write('</body></html>');
	PopUpIMG.document.close();
}

function setOpacity(obj, opacity){
	opacity = (opacity == 100)?99.999:opacity;
	
	// IE/Win
	obj.style.filter = "alpha(opacity:"+opacity+")";

	// Safari<1.2, Konqueror
	obj.style.KHTMLOpacity = opacity/100;

	// Older Mozilla and Firefox
	obj.style.MozOpacity = opacity/100;

	// Safari 1.2, newer Firefox and Mozilla, CSS3
	obj.style.opacity = opacity/100;
}

function arrayShuffle(){
	var tmp, rand;
	for(var i=0; i<this.length; i++){
		rand = Math.floor(Math.random() * this.length);
		tmp = this[i]; 
		this[i] = this[rand]; 
		this[rand] = tmp;
	}
}
Array.prototype.shuffle = arrayShuffle;