var tn_on_id=-1;
function tn_lo(id) {if (tn_on_id!=id) {tn_set(id,"lo");}}
function tn_hi(id) {if (tn_on_id!=id) {tn_set(id,"hi");}}
function tn_on(id) {tn_set(tn_on_id,"lo"); tn_on_id=id; tn_set(tn_on_id,"on");}
function tn_set(id,mode)
{
	var className="tn";
	var obj=null;
	if (mode=="hi") {className+="_hi";} else if (mode=="on") {className+="_on";}
	if (id>=0) {obj=document.getElementById('tn_'+id);}
	if (obj) {obj.className=className;}
}

function fup_draw_emil(name,domain,inlink,intag,prolog,link_txt,epilog)
{
	var emil=name+'@'+domain;
	if (!name || !domain) {return;}
	if (!inlink) {inlink="";}
	if (!intag) {intag="";} else {intag=" "+intag;}
	if (!prolog) {prolog="";}
	if (!link_txt) {link_txt=emil;}
	if (!epilog) {epilog="";}
	document.write('<a href="mailto:'+emil+inlink+'"'+intag+'>'+prolog+link_txt+epilog+'</a>');
}

function fup_sticky()
{
	// Styles
	this.title_css_class = "fup_sticky_title";
	this.content_css_class = "fup_sticky_content";
	this.width = 185;
	this.height = 100;
	this.border = 1;
	this.border_color = "#000000";
	this.shadow = 2;
	this.shadow_color = "#999999";
	this.absolutx = 0;
	this.absoluty = 0;
	this.offsetx = 5;
	this.offsety = 15;

	// Values
	this.x = 0;
	this.y = 0;
	this.snow = 0;
	this.sw = 0;
	this.cnt = 0;
	this.dir = "right";

	// reg Values
	this.id = 0;
	this.layname = "";
	this.layobj = null;
	this.laystyle= null;
	this.init_complete=false;

	// PUBLIC Functions
	this.popup 			= fup_sticky_popup;
	this.close 			= fup_sticky_close;

	// PRIVATE Functions
	this.init			= fup_sticky_init;
	this.write 			= fup_sticky_write;
	this.display 		= fup_sticky_display;
	this.show			= fup_sticky_show;
	this.hide			= fup_sticky_hide;
	this.mousemove		= fup_sticky_mousemove;
	this.move			= fup_sticky_move;

	// Init
	this.init();
}

// ==================================================================
// PRIVATE
// ==================================================================
function fup_sticky_init()
{
	// cannot init without body
	var body=document.getElementsByTagName("body")[0];
	if (!body) {return false;}
	
	// Add to Stack
	this.id=sticky_stack.add(this);

	// Layer
	this.layname='fupstickylayer'+this.id;
	// document.write('<style type="text/css">#'+this.layname+' {position:absolute; left:0; top:0; width:'+this.width+'; height:'+this.height+'; z-index:1; visibility: hidden;}</style>');
	// document.write('<div id="'+this.layname+'"></div>');

	this.layobj=document.createElement("div");
	this.layobj.id=this.layname;
	this.layobj.style.position="absolute";
	this.layobj.style.left=0;
	this.layobj.style.width=this.width;
	this.layobj.style.height=this.height;
	this.layobj.style.zIndex=1;
	this.layobj.style.visibility="hidden";
	body.appendChild(this.layobj);
	
	// this.layobj=(ns6)? document.getElementById(this.layname) : document.all[this.layname];
	this.laystyle=this.layobj.style;
	
	this.init_complete=true;
	return true;
}

// ==================================================================
// PUBLIC :: Sticky popup
// ==================================================================
function fup_sticky_popup(title_text,content_text)
{
	// Check if init is complete. If not try to init.
	if (!this.init_complete) {if (!this.init()) {return false;}}
	
	// title_text - start after ":"
	// title_text='<nobr>'+title_text.replace(/:/,":<br>")+'</nobr>';
	title_text='<nobr>'+title_text.replace(/.*: /,"")+'</nobr>';
	
	with (this)
	{
		html='';
		if (shadow)
		{
			html+='<table width='+width+' cellspacing=0 cellpadding=0 border=0>';
			html+='<tr height='+(shadow)+'>';
			html+='<td colspan=2 rowspan=2>';
		}

		html+='<table width='+(width-shadow)+' cellspacing=0 cellpadding='+border+' border=0><tr><td bgcolor="'+border_color+'">';
		if (title_text) {html+='<table width="100%" cellspacing=0 cellpadding=2 border=0><tr><td class="'+title_css_class+'">'+title_text+'</td></tr></table>';}
		html+='<table width="100%" cellspacing=0 cellpadding=5 border=0><tr><td class="'+content_css_class+'">'+content_text+'</td></tr></table><!-- (c) by feig-partner.de -->';
		html+='</td></tr></table>';

		if (shadow)
		{
			html+='</td>';
			html+='<td><img src="/_images/spacer.gif" width='+(shadow)+' height='+(shadow)+'></td>';
			html+='</tr>';
			html+='<tr>';
			html+='<td bgcolor="'+(shadow_color)+'"><img src="/_images/spacer.gif" width='+(shadow)+' height=20></td>';
			html+='</tr>';
			html+='<tr height='+(shadow)+'>';
			html+='<td><img src="/_images/spacer.gif" width='+(shadow)+' height='+(shadow)+'></td>';
			html+='<td bgcolor="'+(shadow_color)+'"><img src="/_images/spacer.gif" width='+(width-(2*shadow))+' height='+(shadow)+'></td>';
			html+='<td bgcolor="'+(shadow_color)+'"><img src="/_images/spacer.gif" width='+(shadow)+' height='+(shadow)+'></td>';
			html+='</tr>';
			html+='</table>';
		}
		write(html);
		display();
	}
}

// ==================================================================
// PUBLIC :: Sticky close
// ==================================================================
function fup_sticky_close()
{
	// Check if init is complete. If not try to init.
	if (!this.init_complete) {if (!this.init()) {return false;}}
	
	if (this.cnt>=1) {this.sw=0;}
	if (this.sw==0)
	{
		this.snow=0;
		this.hide(this.laystyle);
	}
	else
	{
		this.cnt++;
	}
}

// ==================================================================
// PRIVATE
// ==================================================================
function fup_sticky_write(html)
{
	this.layobj.innerHTML=html;
}

// ==================================================================
// PRIVATE
// ==================================================================	
function fup_sticky_display()
{
	if (this.snow==0)
	{
		if (this.dir=="center")
		{
			this.move(this.laystyle,this.x+this.offsetx-(this.width/2),this.y+this.offsety);
		}
		else if (this.dir=="left")
		{
			this.move(this.laystyle,this.x-this.offsetx-this.width,this.y+this.offsety);
		}
		else
		{
			this.move(this.laystyle,this.x+this.offsetx,this.y+this.offsety);
		}
		this.show(this.laystyle);
		this.snow=1;
	}
}

// ==================================================================
// PRIVATE
// ==================================================================	
function fup_sticky_mousemove(e)
{
	if (e)
	{
		// NS
		this.x=e.pageX; this.y=e.pageY;
	}
	else
	{
		// IE
		this.x=event.x+document.body.scrollLeft; this.y=event.y+document.body.scrollTop;
	}

	if (this.snow)
	{
		if (this.dir=="center")
		{
			if (this.absolutx) {newx=this.absolutx;} else {newx=this.x+this.offsetx-(this.width/2);}
		}
		else if (this.dir=="left")
		{
			if (this.absolutx) {newx=this.absolutx;} else {newx=this.x-this.offsetx-this.width;}
		}
		else
		{
			if (this.absolutx) {newx=this.absolutx;} else {newx=this.x+this.offsetx}
		}
		if (this.absoluty) {newy=this.absoluty;} else {newy=this.y+this.offsety;}
		newx=Math.max(0,newx);
		newy=Math.max(0,newy);
		this.move(this.laystyle,newx,newy);
	}
}

// ==================================================================
// PRIVATE
// ==================================================================	
function fup_sticky_show(obj)
{
	obj.visibility = "visible";
}

// ==================================================================
// PRIVATE
// ==================================================================	
function fup_sticky_hide(obj)
{
	obj.visibility = "hidden"
}

// ==================================================================
// PRIVATE
// ==================================================================	
function fup_sticky_move(obj,x,y)
{
	obj.left = x
	obj.top = y
}

// ==================================================================
// PRIVATE
// ==================================================================	
function fup_sticky_stack()
{
	this.sticky	= new Array();
	this.add		= fup_sticky_stack_add;
}

// ==================================================================
// PRIVATE
// ==================================================================	
function fup_sticky_stack_add(addsticky)
{
	id=this.sticky.length
	this.sticky[id]=addsticky;
	return id;
}

// ==================================================================
// PRIVATE
// ==================================================================	
function fup_mousemove(e)
{
	if (sticky_stack)
	{
		for (a=0; a<sticky_stack.sticky.length; a++)
		{
			sticky_stack.sticky[a].mousemove(e);
		}
	}
}



// ==================================================================
// INFOPAC
// ==================================================================	
function fup_infopac_screenshot_popup(id,width,height)
{
	var max_width=Math.max(screen.width,800);
	var max_height=Math.max(screen.height,600);
	var pop_width=Math.min(width,max_width);
	var pop_height=Math.min(height,max_height);
	if ((width>pop_width)||(height>pop_height))
	{
		var additionals=",scrollbars=yes,resizable=yes";
	}
	else
	{
		var additionals=",scrollbars=no,resizable=no";
	}
	var screenshot=window.open("/infopac/infopac_screenshot.php?id="+id,"screenshot","width="+pop_width+",height="+pop_height+additionals);
	if (screenshot) {screenshot.focus();}
}



// Browsercheck
var ie4=document.all?1:0;
var ns6=document.getElementById&&!document.all?1:0;

// Vars4MouseOver
var on_img="";
var on_txt="";
var preload_complete=0;
var button=new Array();
var button_lo=new Array();
var button_hi=new Array();
var txt=new Array();
var swap_timer=null;

// Global Inits
var sticky_stack=new fup_sticky_stack();
var cm_sticky=new fup_sticky();

// EventHandler
if (ns6||ie4)
{
	document.onmousemove = fup_mousemove;
	if (ns6) document.captureEvents(Event.MOUSEMOVE);
}



// ==================================================================
// ActiveX Handler
// ==================================================================
function ACX_embed()
{
  var ret = ACX_GetArgs(arguments);
  ACX_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function ACX_SWF_embed()
{
	var ret = ACX_GetArgs(arguments);
	ret.params['movie']=ret.embedAttrs['src'];
	ret.objAttrs['classid']='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000';
	ret.embedAttrs['type']='application/x-shockwave-flash';
	ret.embedAttrs['pluginspage']='http://www.macromedia.com/go/getflashplayer';
	ACX_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function ACX_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str='';
  str+='<object '; for (var i in objAttrs) {str+=i+'="'+objAttrs[i]+'" ';} str+='>';
  for (var i in params) str+='<param name="'+i+'" value="'+params[i]+'" /> ';
  str+='<embed ';  for (var i in embedAttrs) {str+=i+'="'+embedAttrs[i]+'" ';} str+=' ></embed></object>';
  document.write(str);
}

function ACX_GetArgs(args)
{
	var currArg='';
	var ret=new Object();
	ret.embedAttrs = new Object();
	ret.params = new Object();
	ret.objAttrs = new Object();
	for (var i=0; i < args.length; i=i+2)
	{
		currArg = args[i].toLowerCase();    
		if (currArg.substring(0,2)=='on') {currArg='on*';}
		
		switch (currArg)
		{	
			case "pluginspage":
			case "type":
			case "src":
				ret.embedAttrs[args[i]] = args[i+1];
				break;
			case "data":
			case "codebase":
			case "classid":
			case "id":
			case "on*":
				ret.objAttrs[args[i]] = args[i+1];
				break;
			case "width":
			case "height":
			case "align":
			case "vspace": 
			case "hspace":
			case "class":
			case "title":
			case "accesskey":
			case "name":
			case "tabindex":
				ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
				break;
			default:
				ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
		}
	}
	return ret;
}