var tooltip = null;
var XMLHttp = null;
var ajaxcache = new Array();
document.onmousemove = tooltippos;

function tooltippos(e) {
	if (tooltip != null) {
		if ((navigator.appName == "Microsoft Internet Explorer") && (parseFloat(navigator.appVersion.split("MSIE")[1]) < 9)) {
			x = window.event.x + tooltip.offsetParent.scrollLeft;
			y = window.event.y + tooltip.offsetParent.scrollTop;
		} else {
			x = e.pageX;
			y = e.pageY;
		}
		if (x > 600) { tooltip.style.left = (x - 420) + "px"; } else { tooltip.style.left = (x + 20) + "px"; }
		tooltip.style.top = (y + 20) + "px";
	}
}

function preparetooltip() {
	//Füllt den Tooltip mit Inhalt und blendet ihn ein.
	if (XMLHttp.readyState == 4) {
	  var resp = XMLHttp.responseXML;
	  var kset = resp.getElementsByTagName("FragenSet")[0];
      var fragenid = kset.getElementsByTagName("Id")[0].firstChild.nodeValue;
	  var frage = kset.getElementsByTagName("Frage")[0].firstChild.nodeValue;
	  var antwort = kset.getElementsByTagName("Antwort")[0].firstChild.nodeValue;
	  
	  var ausgabe = "<p class=\"fragenblock\">Frage #" + fragenid + "<br /><span class=\"frage\">" + frage + "</span>";
	  ausgabe = ausgabe + "<br />" + antwort + "</p>";
	  
	  //Speichern im Ajax-Cache
	  ajaxcache[fragenid] = ausgabe;
	  
	  tooltip.innerHTML = ausgabe;
	}
}

function anzeigen(fragenid) {
  tooltip = document.getElementById("tooltip");
  
  if (typeof(ajaxcache[fragenid]) == "undefined") {
    //falls Frage noch nicht im Cache ist, laden
	
	if (XMLHttp == null) {
    //XMLHttp-Objekt erstellen
		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) {
			}
		}
		}
	}
  
    //evtl. vorhandene Anfrage abbrechen
    if (XMLHttp.readyState < 4) {
      XMLHttp.abort();
    }
	
	tooltip.innerHTML = "<p class=\"mitte\"><img src=\"images/kwload.gif\" width=\"42\" height=\"43\" alt=\"Frage lädt\"></p>";
	tooltip.style.display = "block";

    var anfragestr = "fragen_holen.php?id=" + fragenid;
    XMLHttp.open("GET", anfragestr, true);
    XMLHttp.onreadystatechange = preparetooltip;
    XMLHttp.send(null);
  
  } else {
	//Falls Frage im Cache ist, Text in Tooltip laden und anzeigen.
    tooltip.innerHTML = ajaxcache[fragenid];
	tooltip.style.display = "block"; 
  }

}  

function verstecken() {
  if (XMLHttp != null) {
      XMLHttp.abort();
  }
  tooltip.style.display = "none";
}

function anleitung() {
  var anleitung = document.getElementById("anleitung");
  if (anleitung.style.display == "block") {
	anleitung.style.display = "none";
  } else {
	anleitung.style.display = "block";
  }
}

function einschalten(bereich) {
  var area = document.getElementById(bereich);
  area.style.display = "block";
}

function ausschalten(bereich) {
  var area = document.getElementById(bereich);
  area.style.display = "none";
}

function addsmiley(code) {
  var feld = document.getElementsByName("neufrage")[0];
  var dingens = feld.value;
  feld.value = dingens + code;
}

function setcookie() {
	var boxxy = (document.getElementsByName("seitencookie")[0].checked);
	var dathelp = new Date();
	//altes Cookie löschen
	dathelp.setTime(dathelp.getTime()-(24*60*60*1000));
	document.cookie = "seite=;expires="+dathelp.toGMTString();
	
	//neues Cookie setzen, Gültigkeit etwa ein Jahr
	dathelp.setYear(dathelp.getFullYear()+1);
	if (boxxy == true) {
		document.cookie = "seite=lang;expires="+dathelp.toGMTString();
		einschalten("seitenlang");
		ausschalten("seitenkurz");
	} else {
	    document.cookie = "seite=kurz;expires="+dathelp.toGMTString();
		einschalten("seitenkurz");
		ausschalten("seitenlang");
	}
}

function getcookievalue(name) {
	var keks = document.cookie;
	if (keks.indexOf(name) == -1) {
		return null;
	}
	var lname = name + "=";
	var start = keks.indexOf(lname) + lname.length;
	var ende = keks.indexOf(";", start)
	if (ende == -1) {
		ende = keks.length;
	}
	var laenge = ende - start;
	var wert = unescape(keks.substr(start, laenge));
	return wert;
}

function setpreferences() {
  if (document.cookie) {
	if (getcookievalue("seite") == "lang") {
	  einschalten("seitenlang");
	  ausschalten("seitenkurz");
	  document.getElementsByName("seitencookie")[0].checked = true;
	}
  }
}
