// +---------------------------------------------------------------------------+
// | Copyright SCC Informationssysteme GmbH                                    |
// | Internet: http://www.scc-gmbh.com                                         |
// +---------------------------------------------------------------------------+

// +----------------------------------------------------------------------------
// | Funktion.: getClientX()
// | Zweck....: Liefert die x-Koordinate einers Maus Ereignisses.
// |
// | Argumente: event - Ereignis
// |
// | Datum       Author            Bemerkung
// | ----------  ----------------  ---------------------------------------------
// | 11.09.2001  H.Schulz (SCC)    Erstversion
// |
// +----------------------------------------------------------------------------
function getClientX(event) {
	if (ie || opera) {
		return window.event.clientX;
	} else {
		return event.clientX;
	}
}

// +----------------------------------------------------------------------------
// | Funktion.: getClientY()
// | Zweck....: Liefert die y-Koordinate einers Maus Ereignisses.
// |
// | Argumente: event - Ereignis
// |
// | Datum       Author            Bemerkung
// | ----------  ----------------  ---------------------------------------------
// | 11.09.2001  H.Schulz (SCC)    Erstversion
// |
// +----------------------------------------------------------------------------
function getClientY(event) {
	if (ie || opera) {
		return window.event.clientY;
	} else {
		return event.clientY;
	}
}

// +----------------------------------------------------------------------------
// | Funktion.: onbevoreserversend(Button)
// | Zweck....: Dient fuer Sicherheitsabfragen beim Loeschen von Saetzen,
// |
// | Argumente: Object
// |
// | Datum       Author            Bemerkung
// | ----------  ----------------  ---------------------------------------------
// | 02.01.2001  G.Schulz (SCC)    Erstversion
// |
// +----------------------------------------------------------------------------

function onbevoreserversend(objButton) {
	var ButtonName	= objButton.id;
	var msgText		= "";
	var msgFlag		= false;

	// Meldungstext bestimmen
	switch ( ButtonName.toLowerCase() ) {
		case "delforum" :
				msgText  = "Attention!!\n";
				msgText += "Do you realy want to delete this forum?\n";
				msgText += "---------------------------------------------------------------\n";
				msgText += " If you delete this forum, all related messages\n";
				msgText += " will be deleted from the database too.\n";
				msgText += "---------------------------------------------------------------";
				msgFlag = true;
				break;
		case "deltopic" :
				msgText = "Do you realy want to delete this Topic?";
				msgFlag = true;
				break;
		case "delarticle" :
				msgText = "Do you realy want to delete this Message?";
				msgFlag = true;
				break;
		case "deluser" :
				msgText = "Do you realy want to delete this User?";
				msgFlag = true;
				break;
		default :
				msgText = "";
				msgFlag = false;
	}

	// Meldung mit Text anzeigen
	if (msgFlag && confirm(msgText)) {
		// Aktion ausfuehren
		event.returnValue = true;
	}
	else{
		// Aktion abbrechen
		event.returnValue = !msgFlag;
	}
}

// *****************************************************************************
// ** Popup Fenster                                                           **
// *****************************************************************************

// number of milliseconds
var popupTimeCount	= 480;
var popupTimerID	= null;
var popupLast		= null;

// +----------------------------------------------------------------------------
// | Funktion.: startPopupTimer()
// | Zweck....: Startet einen Timer nach dessen Ablauf alle geoeffneten
// |            Popup Fenster geschlossen werden
// |
// | Argumente: -
// |
// | Datum       Author            Bemerkung
// | ----------  ----------------  ---------------------------------------------
// | 11.09.2001  H.Schulz (SCC)    Erstversion
// |
// +----------------------------------------------------------------------------
function startPopupTimer() {
	popupTimerID = setTimeout("resetPopup()", popupTimeCount);
}

// +----------------------------------------------------------------------------
// | Funktion.: stopTimer()
// | Zweck....: Der Timer fuer Popup Fenster wird angehalten.
// |
// | Argumente: -
// |
// | Datum       Author            Bemerkung
// | ----------  ----------------  ---------------------------------------------
// | 11.09.2001  H.Schulz (SCC)    Erstversion
// |
// +----------------------------------------------------------------------------
function stopPopupTimer() {
	if (popupTimerID != null) {
		clearTimeout(popupTimerID);
		popupTimerID = null;
	}
}

// +----------------------------------------------------------------------------
// | Funktion.: resetPopup()
// | Zweck....: Entfernt alle geoeffneten Popup Fenster
// |
// | Argumente: -
// |
// | Datum       Author            Bemerkung
// | ----------  ----------------  ---------------------------------------------
// | 11.09.2001  H.Schulz (SCC)    Erstversion
// |
// +----------------------------------------------------------------------------
function resetPopup() {
	if (popupLast != null) {
		var hideElement = document.getElementById(popupLast);
		hideElement.style.visibility = 'hidden';

		popupLast	= null;
	}
}

// +----------------------------------------------------------------------------
// | Funktion.: showPopup(popupId, event)
// | Zweck....: Zeigt das angegebene Popup Fenster an den Mauskoordinaten an
// |
// | Argumente: popupId - Die Id des Popup Elementes
// |            event   - Ereignis
// |
// | Datum       Author            Bemerkung
// | ----------  ----------------  ---------------------------------------------
// | 11.09.2001  H.Schulz (SCC)    Erstversion
// |
// +----------------------------------------------------------------------------
function showPopup(popupId, event) {

	// Zuerst ein moegliches geoeffnetes Fenster verbergen
	resetPopup();

	var popup = document.getElementById(popupId);
	if (popup != null) {
		// auslesen der Mauskoordinaten
		var x = getClientX(event) + document.body.scrollLeft + 15;
		var y = getClientY(event) + document.body.scrollTop  + 15;
	
		// Horizontale Ausrichtung anpassen
		var maxX		= document.body.clientWidth + document.body.scrollLeft;
		var popupWidth	= popup.offsetWidth;
	
		if ((x + popupWidth) > maxX) {
			x = x + (maxX - x - popupWidth);
		}
	
		if (x < 0) {
			x = 0;
		}
	
		// Vertikale Ausrichtung anpassen
		var maxY		= document.body.clientHeight + document.body.scrollTop;
		var popupHeight	= popup.offsetHeight;
	
		if ((y + popupHeight) > maxY) {
			y = y + (maxY - y - popupHeight);
		}
	
		if (y < 0) {
			y = 0;
		}
	
		popup.style.top			= y;
		popup.style.left		= x;
		popup.style.zIndex		= 10;
		popup.style.visibility	= "visible";
	
		// Geoeffnetes Fenster merken
		popupLast = popupId;
	}
}
