﻿// --- Klasse quickinfo --- PS 17.9.07 ---

function quickinfo( node )
{
	this.node			= node;
	this.node.quickinfo = this;
	this.activ			= false;
	this.fixed			= false;
	this.quickWidth	= 400;
	this.quickHeader	= "";
	this.quickBody		= "";
	
	this.div				= "";
	this.divHeader		= "";
	this.divBody		= "";
	
	this.init			= quickinfoInit;
	this.start			= quickinfoStart;
	this.move			= quickinfoMove;
	this.stop			= quickinfoStop;
	this.isFixed		= quickinfoIsFixed;
	this.setFixed		= quickinfoSetFixed;
	this.getNode		= quickinfoGetNode;
	this.isActiv		= quickinfoIsActiv;
	this.mouseover		= quickinfoMouseover;
	this.mousemove		= quickinfoMousemove;
	this.mouseout		= quickinfoMouseout;
	this.mouseclick	= quickinfoMouseclick;
	
	this.node.onmouseover	= this.mouseover;
	this.node.onmousemove	= this.mousemove;
	this.node.onmouseout		= this.mouseout;
	this.node.onclick			= this.mouseclick;
	
	// --- Sprechblase einfügen ---
	
	var bubble = document.createElement("img");
	
	bubble.border = "0";
	bubble.src = "/img/tooltip.png";

	node.appendChild( bubble );
}

function quickinfoInit()
{
	this.div			= document.createElement( "div" );
	this.divHeader	= document.createElement( "div" );
	this.divBody	= document.createElement( "div" );
	
	this.div.className			= "quickinfo";
	this.divHeader.className	= "quickinfo_header";
	this.divBody.className		= "quickinfo_body";

	this.div.appendChild( this.divHeader );
	this.div.appendChild( this.divBody );
	
	this.div.style.position		= "absolute";
	this.div.style.visibility	= "hidden";
	
	document.body.appendChild( this.div );

	if( this.node.title.length > 0 )
	{
		var items = GetDfn( this.node.title );

		this.quickWidth	= items[0];
		this.quickHeader	= items[1];
		this.quickBody		= items[2];
	}
	
	this.div.style.width			= this.quickWidth;	
	this.divHeader.innerHTML	= this.quickHeader;
	this.divBody.innerHTML		= this.quickBody;
}

function quickinfoStart()
{
	this.init();
	this.activ = true;
}

function quickinfoMove( pos )
{
	this.div.style.left			= pos.x + 5;
	this.div.style.top			= pos.y + 10;
	this.div.style.visibility	= 'visible';
}

function quickinfoStop()
{
	this.div.style.visibility	= 'hidden';
	this.activ	= false;
}

function quickinfoIsFixed()
{
	var ret = false;
	
	if( this.fixed == true )
		ret = true;
		
	return( ret );
}

function quickinfoSetFixed( state )
{
	this.fixed = state;
}

function quickinfoGetNode()
{
	return( this.div );
}

function quickinfoIsActiv()
{
	var ret = false;
	
	if( this.activ == true )
		ret = true;
		
	return( ret );
}

function quickinfoMouseover(e)
{
	e ? evt = e : evt = event;

	if( this.quickinfo.isFixed() != true )
	{
		if( this.quickinfo.isActiv() != true )
			if( this.quickinfo.node.nodeName == "DFN" )
				this.quickinfo.start();
		
		if( this.quickinfo.isActiv() == true )
			this.quickinfo.move( getVisiblePos(evt,this.quickinfo.div) );
	}
}

function quickinfoMousemove(e)
{
	e ? evt = e : evt = event;

	if( this.quickinfo.isActiv() )
		if( this.quickinfo.isFixed() != true )
			this.quickinfo.move( getVisiblePos(evt,this.quickinfo.div) );
}

function quickinfoMouseout()
{
	if( this.quickinfo.isActiv() == true )
		if( this.quickinfo.isFixed() != true )
			this.quickinfo.stop();
}

function quickinfoMouseclick()
{
	if( this.quickinfo.isFixed() == true )
		this.quickinfo.setFixed( false );
	else if( this.quickinfo.isActiv() == true )
		this.quickinfo.setFixed( true );
	
	return( true );
}
