
//*******************************************//
//-- Scriptname:		 glossar.js
//-- Beschreibung:       Logig fuer das Glossar
//-- erstellt:           03-12-2006
//-- input:
//*******************************************//


function focusInput()
{  document.frm_ajaxSuche.suchbegriff.value = ""; }

function blurInput()
{
 var inp = document.frm_ajaxSuche.suchbegriff.value;
 if(inp.length < 3)
 { document.frm_ajaxSuche.suchbegriff.value = "Suchbegriff eingeben"; }
}


//*******************************************//
//-- XML-Request erstellen
//*******************************************//
function erzXMTHttpRequestObject()
{
 var resObjekt = null;
 try
 { resObjekt = new ActiveXObject("Microsoft.XMLHTTP"); }
 catch(Error)
 { try
   { resObjekt = new ActiveXObject("MSXML2.XMLHTTP"); }
   catch(Error)
   { try
     { resObjekt = new XMLHttpRequest(); }
     catch(Error)
    { alert("Erzeugen eines XMLHttpRequest-Objekts ist nicht möglich"); }
  }
 }
 return resObjekt;
}

// ************************************************ //
//-- Suche ueber das Textfeld -//
// ************************************************ //
	function setResult()
	{
	  var input = document.frm_ajaxSuche.suchbegriff.value.toLowerCase();
	  if(input.length > 2)
	  {
		resObjekt = erzXMTHttpRequestObject();
		resObjekt.open('get', '../scripte_php/glossar/AJAX_glossar.php?eingabe='+input, true);
		resObjekt.onreadystatechange = handleRespunseGlossar;
		resObjekt.send(null);
	  }
	  else
	  { document.getElementById("ajax_result").innerHTML = "min 3 Zeichen!"; }
	}
	
	
	function handleRespunseGlossar()
	{
	 if(resObjekt.readyState == 4)
	 { document.getElementById("ajax_result").innerHTML = unescape(resObjekt.responseText); }
	 else
	 { document.getElementById("ajax_result").innerHTML = "Bitte warten<br /><br />Sollte die Suche länger dauern, so ist das ein gutes Zeichen dafür, dass AJAX nun an seine Grenzen gestoßen ist!"; }
	}


//*******************************************//
//-- Oeffnet das Fenster zum anzeigen eines IT-Begriffs
//*******************************************//

	  //-- Bildschirmkoordinaten ermitteln --//
	  //-- Diese Koordinaten werden fuer die Darstellen benoetigt --//
	  var xpos=0;
	  var ypos=0;
	  var y_screen, x_screen;
	  if(document.layers) {							//-- FF / NC
		window.captureEvents(Event.MOUSEDOWN);
		window.onmousedown=koordinaten;		
	  }
	  else { document.onmousedown=koordinaten; }	//-- IE 
	  
	  function koordinaten(e) {	
		xpos = (document.layers || (document.getElementById && !document.all) ) ? e.pageX : document.body.scrollLeft + event.clientX;
		ypos = (document.layers || (document.getElementById && !document.all) ) ? e.pageY : document.body.scrollTop + event.clientY;
	  }
 
	//-- Anzeige positionieren --//
	function openGlossar(no,x,y)
	{
		xpos = xpos + x;	//-- Berechnen der X / Y-Position aus der Koordinate + Differenzwert aus dem link
		ypos = ypos + y;
		document.getElementById('showBegriff').style.top = ypos + 'px';
		document.getElementById('showBegriff').style.left = xpos + 'px';
		setBegriff(no);
	}
	
	// ****************************************************** //
	//-- Funktion zum ermitteln und Anzeiges eines Begriffs --//
	//-- input:	int inpNo -> lfdnr des Begriffs
	// ****************************************************** //
	function setBegriff(inpNo)
	{
	  resObjekt = erzXMTHttpRequestObject();
	  resObjekt.open('get', '../scripte_php/glossar/AJAX_showBegriff.php?begriffNo='+inpNo, true);
	  resObjekt.onreadystatechange = handleRespunseSetBegriff;
	  resObjekt.send(null);
	}

	function handleRespunseSetBegriff()
	{
	 if(resObjekt.readyState == 4)
	 {
		var rueckgabe = unescape(resObjekt.responseText).split("~@~"); 			//-- Rueckgabewert aufnehmen und trenne
	  	document.getElementById("headlineBegriff").innerHTML = rueckgabe[0];	//-- Begriffsbezeichnung in der Ueberschrift darstellen 
	  	document.getElementById("descriptionBegriff").innerHTML = rueckgabe[1];	//-- Begriffsbeschreibung darstellen
		// document.getElementById("LinkAddBegriff").href = "javascript:openAddBegriff( " + xpos + " , " + ypos + ")";
		// document.getElementById('LinkAddBegriff').title = "weitere IT-Begriffe anmelden";
		// document.getElementById('LinkAddBegriff').innerHTML = " &#187; weitere IT-Begriffe anmelden &#171;";
		document.getElementById('showBegriff').onclick = function () 			//-- Steuer das Ausblenden der Anzeige
		{ javascript:hiddSubmenue(this.id); }
	 }
	 else
	 { document.getElementById("headlineBegriff").innerHTML = " ** Bitte warten **" }
	 
	 document.getElementById('showBegriff').style.display = 'block';			//-- Ergebnis sichtbar schalten
	}
	
	
//*******************************************//
//-- Oeffnet das Fenster zum anmelden von IT-Begriffen
//-- input: int x -> X-position
//--		int y -> Y-position
//*******************************************//
function openAddBegriff(x,y)	//-- uebergeben werden die Positionswerte fuer das DIV-Element --//
{	
	//-- Eingabeelemente erstellen --//
	var inputBegriff 		= "<input type='text' id='newBegriff' value='** IT-Begriff **'/>";		
	var inputBeschreibung 	= "<textarea id='newBeschreibung'>** Beschreibung **</textarea>";
	
	//-- Positionieren --//
 	document.getElementById('showBegriff').style.top = y + 'px';			
	document.getElementById('showBegriff').style.left = x + 'px';
	
	//-- Eingabeelemete zuweisen --//
	document.getElementById("headlineBegriff").innerHTML = inputBegriff;	
	document.getElementById("descriptionBegriff").innerHTML = inputBeschreibung;
	
	//-- Mouse-Events fuer onblur und onfocus zuweisen
	document.getElementById('newBegriff').onfocus = function() { focusElement('newBegriff','** IT-Begriff **'); }
	document.getElementById('newBegriff').onblur = function() { blurElement('newBegriff','** IT-Begriff **'); }
	document.getElementById('newBeschreibung').onfocus = function() { focusElement('newBeschreibung','** Beschreibung **'); }
	document.getElementById('newBeschreibung').onblur = function() { blurElement('newBeschreibung','** Beschreibung **'); }
	
	//-- Steuer das Ausblenden der Anzeige WICHTIG
	document.getElementById('showBegriff').onclick = function () { var hund = "wau"; }	
	
	//-- Link neu erstellen
	document.getElementById('LinkHiddElement').href = "javascript:hiddSubmenue('showBegriff')";
	document.getElementById('LinkHiddElement').title = "schließen";
	document.getElementById('LinkHiddElement').innerHTML = "&#187; Fenster schließen &#171;";
	
	document.getElementById('LinkAddBegriff').href = "javascript:sheckNewBegriff()";
	document.getElementById('LinkAddBegriff').title = "IT-Begriff anmelden";
	document.getElementById('LinkAddBegriff').innerHTML = "&#187; IT-Begriff anmelden &#171;";
	
	//-- Element anzeigen
	document.getElementById('showBegriff').style.display = 'block';	
}

	//*******************************************//
	//-- leert die Eingabefelder, wenn 'value' = Vorgabewert ist
	//-- input:	string eleId -> ID-des Elements
	//--		string eleVorgane -> der Vorgabewert im Value
 	//*******************************************//
	function focusElement(eleId,eleVorgabe)
	{
		if(document.getElementById(eleId).value == eleVorgabe)	
		{ document.getElementById(eleId).value = ""; }
	}
	
	//*******************************************//
	//-- setzt Vorgabewert, wenn keine Eingabe vorhanden ist
	//-- input:	string eleId -> ID-des Elements
	//--		string eleVorgane -> der Vorgabewert im Value
	//*******************************************//
	function blurElement(eleId,eleVorgabe)
	{
		if(document.getElementById(eleId).value == "" )							
		{ document.getElementById(eleId).value = eleVorgabe; }
		//-- schriftfarbe auf Blaus setzen
		document.getElementById(eleId).style.color = '#000099';
	}
	
	//*******************************************//
	//-- prueft die eingabefelder vor dem versenden 
	//*******************************************//
	function sheckNewBegriff()
	{
		var sheck = true;
		pruefung('newBegriff', '** IT-Begriff **');
		pruefung('newBeschreibung', '** Beschreibung **');
		
		function pruefung(eleId, eleVorgabe)
		{
			if(document.getElementById(eleId).value == eleVorgabe)
			{
				document.getElementById(eleId).style.color = '#FF0000';
				sheck = false;
			}
		}
		
		if(sheck == true) { sendeBegriff(); }		//-- leitet das Versenden des Begriffs ein
	}
	
	//-- funktion zum versenden des nachricht
	function sendeBegriff()
	{
		var begriff 		= escape(document.getElementById('newBegriff').value);
		var beschreibung 	= escape(document.getElementById('newBeschreibung').value);
		
		resObjekt = erzXMTHttpRequestObject();
		resObjekt.open('get', '../scripte_php/glossar/AJAX_meldeBegriff.php?begriff='+begriff+'&beschreibung='+beschreibung, true);
		resObjekt.onreadystatechange = handleRespunseSendeBegriff;
	 	resObjekt.send(null);		
	}
	
	function handleRespunseSendeBegriff()
	{
	 if(resObjekt.readyState == 4)
	 {
		document.getElementById('headlineBegriff').innerHTML = "Danke für Ihre Hilfe!!";
		document.getElementById('descriptionBegriff').innerHTML = "Der von Inen geneldete IT-Begriff wird in kürze aufgenommen.";
		//-- links neu erstellen
		document.getElementById('LinkAddBegriff').href = "javascript:hiddSubmenue('showBegriff')";
		document.getElementById('LinkAddBegriff').innerHTML = "&#187; Fenster schließen &#1741; ";
		document.getElementById('LinkAddBegriff').title = "&#187; Fenster schließen &#1741; ";
		document.getElementById('LinkHiddElement').href = "#";
		document.getElementById('LinkHiddElement').title = "";
		document.getElementById('LinkHiddElement').innerHTML = "";
	 }
	 else
	 {
		document.getElementById('headlineBegriff').innerHTML = " ** Bitte warten ** ";
		document.getElementById('descriptionBegriff').innerHTML = " ** Ich bin nicht so schnell ** ";
		//-- links neu erstellen -> alle werte auf leer, somit link abschalten
		document.getElementById('LinkAddBegriff').href = "#";
		document.getElementById('LinkAddBegriff').innerHTML = "";
		document.getElementById('LinkAddBegriff').title = "";
		document.getElementById('LinkHiddElement').href = "#";
		document.getElementById('LinkHiddElement').title = "";
		document.getElementById('LinkHiddElement').innerHTML = "";
	 } 
	}
