function newslink_pulseStep() {

	var	objMenuFlash			=	document.getElementById( 'menulink_news' );

	if ( newslink_directionWhite ) {

		//	Einblenden läuft

		newslink_colorBase			+=	16;
		var	c						=	newslink_colorBase;
		objMenuFlash.style.color	=	'rgb( '+ c + ' , ' + c + ', ' + c + ' )';

		if ( newslink_colorBase >= 200 ) {
			newslink_colorBase			=	200;
			newslink_directionWhite		=	false;
		}

		window.setTimeout( 'newslink_pulseStep()', 50 );

	}
	else {

		//	Ausblenden läuft

		newslink_colorBase			-=	16;
		var	c						=	newslink_colorBase;
		objMenuFlash.style.color	=	'rgb( '+ c + ' , ' + c + ', ' + c + ' )';

		if ( newslink_colorBase <= 0 ) {
			newslink_colorBase			=	0;
			newslink_directionWhite		=	true;
		}

		window.setTimeout( 'newslink_pulseStep()', 50 );

	}

}

//	Aufgerufen um beim Laden der Seite das Menü aufblinken zu lassen
//	Das geschieht, indem die Deckkraft des oberen Bildes manipuliert wird

function newslink_startPulse() {

	var	objMenuFlash			=	document.getElementById( 'menulink_news' );

	if ( objMenuFlash ) {

		newslink_colorBase		=	0;
		newslink_directionWhite	=	true;

		newslink_pulseStep();

	}

}



function changeArticle( id ) {

	if ( id == '0' ) {
		return;
	}


	var	objElement		=	document.getElementById( 'artikeleintrag_eintrag_' + id );

	if ( objLastElementArticle != null ) {
		objLastElementArticle.style.display	=	'none'; 
	}

	if ( objElement ) {
		objElement.style.display	=	'block';
		objLastElementArticle		=	objElement;
	}

}

//	Die Maus bewegt sich über dem Artikel-Bild
function zoomMoved() {

	var	elementX		=	objLastElementArticle.offsetLeft;
	var	elementY		=	objLastElementArticle.offsetTop;
	var	elementWidth	=	objLastElementArticle.offsetWidth;
	var	elementHeight	=	objLastElementArticle.offsetHeight;

	var	posMouseRelX	=	g_mouseX - elementX;
	var	posMouseRelY	=	g_mouseY - elementY;

	posMouseRelX		=	Math.max( posMouseRelX, 0 );
	posMouseRelX		=	Math.min( posMouseRelX, elementWidth - 1 );

	posMouseRelY		=	Math.max( posMouseRelY, 0 );
	posMouseRelY		=	Math.min( posMouseRelY, elementHeight - 1 );

	//	Wir haben die Position der Maus relativ zum Artikel-Element

	//	Ziel:	Im Zentrum des Zooms soll das stehen, worauf die Maus im Grossbild zeigt.

	var	factor2ZoomX	=	c_zoomimage_width / elementWidth;
	var	factor2ZoomY	=	c_zoomimage_height / elementHeight;

	var	posZoomX		=	Math.ceil( posMouseRelX * factor2ZoomX );
	var	posZoomY		=	Math.ceil( posMouseRelY * factor2ZoomY );

	//	Auf zentriert umstellen

	posZoomX			-=	c_zoomcontainer_width / 2;
	posZoomY			-=	c_zoomcontainer_height / 2;

	posZoomX			=	Math.ceil( posZoomX );
	posZoomY			=	Math.ceil( posZoomY );

	//	min/max Min ist je 0 und Max ist Zoom-Bild minus Container

	posZoomX			=	Math.max( 0, Math.min( (c_zoomimage_width - c_zoomcontainer_width ), posZoomX ) );
	posZoomY			=	Math.max( 0, Math.min( (c_zoomimage_height - c_zoomcontainer_height ), posZoomY ) );

	objZ				=	document.getElementById( 'zoom_image' );
	objZ.style.left		=	"-" + posZoomX + "px";	
	objZ.style.top		=	"-" + posZoomY + "px";	

}


function getBodyElement() {

	var	arrElements				=	document.getElementsByTagName("body");

	return	arrElements[0];

}

/* Holt die über die Hierarchie summierte offsetLeft und offsetTop-Werte inklusive dem Element selbst */ 
function getElementOffsets( objElement ) {

	var	offsetX		=	0;
	var	offsetY		=	0;

	offsetX			+=	objElement.offsetLeft;
	offsetY			+=	objElement.offsetTop;

	while ( ( objElement = objElement.offsetParent ) != null ) {
		offsetX			+=	objElement.offsetLeft;
		offsetY			+=	objElement.offsetTop;
	} 

	return	new Array( offsetX, offsetY );

}

/* Wird vom onmouseover des angezeigten Artikels aufgerufen */
function mouseOverArticleIn( objArticle, urlZoom ) {

	g_hidingCancelled				=	true;

	if ( g_zoomIsVisible ) {

		//	Geht die Maus über ein Kind des Artikels (z.B. Daten-Text), so
		//	loest das in manchen Browsern ein mouseover des Container aus,
		//	welches wir abfangen um ein Zucken des Bildes zu verhindern.

		return;
	}

	if ( g_zoomContainer == null ) {

/*

		//	Ist doch gleich in der Seite

		g_zoomContainer					=	document.createElement( "div" );

		var objAttrib					=	document.createAttribute( "id" );
		objAttrib.nodeValue				=	"zoom_container";

		g_zoomContainer.setAttributeNode( objAttrib );

		var	objBody						=	getBodyElement();
		objBody.appendChild( g_zoomContainer );
*/
	}

	g_zoomContainer					=	document.getElementById( 'zoom_container' );

	//	Die bei jedem Enter zu neu durchzufuehrenden Aktionen: Bild erzeugen,
	//	Platzieren, sichtbar machen.

	var	source						=	"<img id=\"zoom_image\" src=\"" + urlZoom + "\" alt=\"Zoom\" />";
	g_zoomContainer.innerHTML		=	source;

	var	elementArticlesList			=	document.getElementById( 'page_layout_content_right_left' );

	var	offsets						=	getElementOffsets( elementArticlesList );

	g_zoomContainer.style.left		=	offsets[0] + "px";
	g_zoomContainer.style.top		=	offsets[1] + "px";

	g_zoomContainer.style.display	=	'block';

	g_zoomIsVisible					=	true;

}

//	Von mouseOverArticleOut()per Timeout aufgerufen
function hideZoomContainer() {

	if ( !g_hidingCancelled ) {
		g_zoomContainer.style.display	=	'none';
		g_zoomIsVisible					=	false;
	}

}

/* Wird vom onmouseout des angezeigten Artikels aufgerufen */
function mouseOverArticleOut( objArticle ) {

	//	Diverse Browser loesen ein onmouseout aus, wenn der Zeiger ueber
	//	ein Kindelement des Containers geht. Wir reagieren daher mit
	//	einer kurzen Verzoegerung während der ein erneuter Aufruf von
	//	mouseOverArticleIn() das wegschalten verhindert

	if ( g_zoomContainer != null ) {
		g_hidingCancelled				=	false;
		window.setTimeout( "hideZoomContainer()", 200 );
	}


}

function event_mouseMoved( event ) {

	if ( !event ) {
		event		=	window.event;
	}

	if ( typeof( event.clientX ) != 'undefined' ) {
		g_mouseX		=	event.clientX;
		g_mouseY		=	event.clientY;
	}
	else {
		g_mouseX		=	event.pageX;
		g_mouseY		=	event.pageY;
	}

	if ( g_zoomIsVisible ) {
		zoomMoved();
	}

}

document.onmousemove			=	event_mouseMoved;

var g_zoomContainer				=	null;		//	Element

var	g_zoomIsVisible				=	false;

var g_mouseX					=	0;
var g_mouseY					=	0;

var	g_hidingCancelled			=	false;

var objLastElementArticle		=	null;

/* Passend zu config_common_inc.php */
var	c_zoomimage_width			=	972;
var	c_zoomimage_height			=	1740;

var	c_zoomcontainer_width		=	320;
var	c_zoomcontainer_height		=	598;

var	newslink_colorBase			=	0;
var	newslink_directionWhite		=	true;			//	true = blendet auf, false = ab

