/**********************************************************
Standard Javascript funktionen

Autor: Michael Schneider, Fr. 18.Nov 2005 16:21
***********************************************************/







/***********************************************************
 Allgemeine Informationen auslesen
***********************************************************/
var mausX, mausY, aufloesungX, aufloesungY, scrollX, scrollY;

function getData(e) {
    	mausX = (document.all) ? window.event.clientX + document.body.scrollLeft : e.pageX;
    	mausY = (document.all) ? window.event.clientY + document.body.scrollTop  : e.pageY;

    	aufloesungX = (document.all) ? document.documentElement.clientWidth : window.innerWidth;
    	aufloesungY = (document.all) ? document.documentElement.clientHeight : window.innerHeight;

    	scrollX = (document.all) ? document.documentElement.scrollLeft : pageXOffset;
    	scrollY = (document.all) ? document.documentElement.scrollTop : pageYOffset;

        //document.getElementById("infobox").innerHTML += scrollY+"<br />";
}








/***********************************************************
 Layerfunktionen 
***********************************************************/
function showlayer( layerid ) {
	document.getElementById( layerid ).style.display='block';
return false;
}

function hidelayer( layerid ) {
	document.getElementById( layerid ).style.display='none';
return false;
}








/*********************************************************************
 Zeigt ein Overlay an und positioniert ihn anhand der Scrollbalken
 und deaktiviert scrolling beim body, damit er sich nicht bewegt
 beim drehen des Mausrades
*********************************************************************/
function showOverlay( layerid ) {
    document.getElementById(layerid).style.display = "block";
    document.getElementById(layerid).style.top = scrollY;
    document.getElementById(layerid).style.left = scrollX;
    document.getElementsByTagName('body')[0].style.overflow = "hidden";
// Rückgabe für return-Links
return false;
}

// Wieder ausblenden
function hideOverlay( layerid ) {
    document.getElementById(layerid).style.display = "none";
    document.getElementsByTagName('body')[0].style.overflow = "auto";
// Rückgabe für return-Links
return false;
}











/***********************************************************
 Öffnet Layer beim Aufruf und schließt sie wieder wenn ein
 Anderer geöffnet werden muss.
 
 Parameter:
    layerid     = Layer der geöffnet werden soll
    layersArray = Array mit den IDs aller Layer die
                  geschlossen sein  müssen wenn ein neuer
                  geöffnet werden soll.
***********************************************************/

function showhide(layerid, layersArray) {
    var dontOpen = false;
    var openlayer = false;
    var delaytime = 0;

    // Prüfen welche Layer schon geöffnet sind.
    for ( i=0; i<layersArray.length; i++ ) {
        if( document.getElementById( layersArray[i] ).style.display != 'none' ) {
            openlayer = layersArray[i];
        }
    }
    
    // Prüfen ob dieses Element bereits geöffnet ist
    if ( openlayer == layerid ) {
        var dontOpen = true;
    }

    // Wenn ein Element geöffnet ist dieses schließen
    if ( openlayer ) {
        //document.getElementById( openlayer ).style.display='none';
        new Effect.SlideUp(openlayer, {duration:0.3});
        delaytime = 0.3;
        openlayer = false;
    }

    // Element einblenden wenn es ein anderes ist als das bereits geöffnete
    if ( !dontOpen ) {
        //document.getElementById( layerid ).style.display='block';
        new Effect.SlideDown(layerid, {delay:delaytime, duration:0.3});
        openlayer = layerid;
    }



    return false;
}









// -----
// Schließt alle Elemente im Array damit sie nachher mit showhide geöffnet
// werden koennen
// -----
function hideByArray( elementarray ) {
    for ( var i=0; i<elementarray.length; i++ ) {
        if ( elementarray[i] != false )
            document.getElementById(elementarray[i]).style.display = "none";
    }
}









/************************************************************
 Funktion zum überblenden von Bildern

  Parameter:
    bilderarray =   Array mit den Pfaden zu den Bildern
    zielimg1    =   ID erstes Zielbild (zuerst sichtbar)
    zielimg2    =   ID zweites Zielbild (anfangs ausgeblendet)
************************************************************/
preloadNext = new Image();
var pictureblend_i = 2;

function pictureblend( bilderarray ) {
    window.setInterval("pictureblend_update(bilderarray, 'titelbild1', 'titelbild1')", 10000);
}


function pictureblend_update( bilderarray ) {
    // Das übernächste Bild vorrausladen
    preloadNext.src = bilderarray[pictureblend_i];


    if ( pictureblend_i%2 == 0 ) {
        // Bei geraden Werten das vordere Bild (zielimg2) einblenden
        document.getElementById('pictureblend2').src = bilderarray[(pictureblend_i-1)];
        new Effect.Appear('pictureblend2', {duration:3});
    } else {
        // Bei ungeraden Werten das vordere Bild ausblenden
        document.getElementById('pictureblend1').src = bilderarray[(pictureblend_i-1)];
        new Effect.Fade('pictureblend2', {duration:3});
    }

    pictureblend_i++;
    if (pictureblend_i > bilderarray.length)
        pictureblend_i = 1;
}













/************************************************************
 Hilfeelemente für Formulare
************************************************************/
// Layer auf die gleiche Höhe wie das Formularelement bringen und anzeigen
function showFormHelp( layerid, formel ) {
	layerel = document.getElementById( layerid );
	
	var neuPos = getY(formel) + "px";
	layerel.style.top = neuPos;
	//alert(neuPos);
	
	layerel.style.display="block";
}
// Position eines Objektes ermitteln
function getY (el) {
  var y = parseInt( el.offsetTop );
  return y;
}







/***********************************************************
 Popupscript
***********************************************************/
var pop = null;

// Funktion zum schließen eines geöffneten Popups
function popdown() {
  if (pop && !pop.closed) pop.close();
}

function fenster ( url, breite, hoehe, toolb, menub ) {
	 // Fenterposition festlegen
	aufl_x = screen.width;
	aufl_y = screen.height;   

	pos_x = (aufl_x - breite) / 2;
	pos_y = (aufl_y - hoehe) / 2;
	
	// Standardeistellungen setzen, wenn nicht übergeben
	if( !breite ) { breite = 800; }
	if( !hoehe ) { hoehe = 550; }
	if( !toolb ) { toolb = "no"; }
	if( !menub ) { menub = "no"; }

    // evtl. geöffnete Fenster schließen
    popdown();

	// Fenster öffnen
	pop = window.open( url, "popup", "width="+breite+", height="+hoehe+", scrollbars=yes, resizable=yes, screenX="+pos_x+", screenY="+pos_y+", toolbar="+toolb +", menubar="+ menub);
	if (pop)
		return false;
	else
		return true;
}

// Popup schließen wenn Seite verlassen wird oder Seite wieder fixiert wird.
//window.onunload = popdown;


























/***********************************************************
 Tooltops einblenden

 Funktionen:
    showWMTT(id)        = Tooltip mit der id "id" einblenden
    hideWMTT()          = Tooltip wieder ausblenden
    
    showTT_update(id, text, bild)   = Tooltip einblenden und
                                      ein Textfeld und ein img aktualisieren.
    hideTT_update       = Tooltip ausblenden und text rücksetzen
    
 Parameter:
    id      = ID des Elements das als Tooltop verwendet wird
              dieses Element muss Absolut positioniert werden!
    text    = ID des Textfeldes im Tooltip das aktualisiert werden
              soll
    bild    = ID des img-Tags bei dem das Bild eingesetzt werden soll.
***********************************************************/
wmtt = null;
document.onmousemove = updateWMTT;

function updateWMTT(e) {
    // Allgemeine Daten ermitteln bei Mausbewegung
    getData(e);

    if (wmtt != null) {
        // Prüfen ob Platz reicht
        
        if ( (mausX + 15 + wmtt.offsetWidth) < aufloesungX ) {
            wmtt.style.left = (mausX+15) + "px";
        } else {
            wmtt.style.left = ( mausX - 15 - wmtt.offsetWidth ) + "px";
        }
        if ( (mausY + 15 + wmtt.offsetHeight) < aufloesungY ) {
            wmtt.style.top 	= (mausY+15) + "px";
        } else {
            wmtt.style.top = ( mausY - wmtt.offsetHeight ) + "px";
        }
        //document.getElementById("tooltip_text").innerHTML = (mausX + 15 + wmtt.offsetWidth);
		
		
	}
}

function showWMTT(id) {
	wmtt = document.getElementById(id);
	wmtt.style.display = "block"
}

function hideWMTT() {
	wmtt.style.display = "none";
}

function showTT_update(id, text, bild) {
	wmtt = document.getElementById(id);
	wmtt.style.display = "block"

	// Bild und Text aktualisieren
	document.getElementById("tooltip_grafik").src = bild;
	document.getElementById("tooltip_text").innerHTML = text;
}

function hideTT_update() {
	wmtt.style.display = "none";

	// Bild und Text aktualisieren
	document.getElementById("tooltip_grafik").src = "templates/ladeanz.gif";
	document.getElementById("tooltip_text").innerHTML = "Lade Daten...";
}












/***********************************************************
 Funktion zum laden einer neuen Seite per AJAX

***********************************************************/
var XMLHTTPZiel;

function getPage( seite, sendedaten, ziel, getDaten ) {
    XMLHTTPZiel = ziel;

    // Zuerst Rahmen ausblenden
    //new Effect.BlindUp(XMLHTTPZiel, {duration:1});
    document.getElementById('contentrahmen').style.display = 'none';

    // Anfage schicken
    XMLHTTP.open("POST", "index2.php?p="+ seite +"&ajax=true" +getDaten);
    XMLHTTP.onreadystatechange = DatenAusgeben;

    if ( sendedaten != null )
        XMLHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    XMLHTTP.send(sendedaten);

return false;
}

function DatenAusgeben() {
  if (XMLHTTP.readyState == 4) {
    var d = document.getElementById(XMLHTTPZiel);
    d.innerHTML = XMLHTTP.responseText;

    // Feld wieder einblenden
    new Effect.BlindDown(XMLHTTPZiel, {duration:2});
    //document.getElementById(XMLHTTPZiel).style.display = 'block';
  }
}














/***********************************************************
 XMLHttpRequest instantiieren
***********************************************************/
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) {
    }
  }
}






