function lyrnotfnd(lyr) { alert(lyr+" not found."); }

function findlyr(lyr) { // neu - ohne NS4-Layers
	var result=false;
	if (document.all) { // IE4+ / OPStealth
		result = document.all.tags("div")[lyr];
	} else if (document.getElementById) { // MOZ / OP
		result = document.getElementById(lyr);
	}
	if (!result) { lyrnotfnd(lyr); }
	return result;
}

// -------

function showhidelyr(lyr,sh) { // neu - ohne NS4-Layers
	var lyrhandle=findlyr(lyr);
	if (lyrhandle) {
		if (sh) { cmd="visible"; } else { cmd="hidden"; }
		lyrhandle.style.visibility=cmd;
	}
}

function hidelyr(lyr) { showhidelyr(lyr,0); }
function showlyr(lyr) { showhidelyr(lyr,1); }
function reshowlyr(lyr) { hidelyr(lyr); showlyr(lyr); }

// -------

function hidetext(pers,spr,txt) {
	hidelyr(pers+"_Spr_"+spr); hidelyr(pers+"_Text_"+txt);
}

function showtext(pers,spr,txt) {
	showlyr(pers+"_Spr_"+spr); showlyr(pers+"_Text_"+txt);
}

function changetext(pers,alttxt,neutxt) {
	hidelyr(pers+"_Text_"+alttxt); showlyr(pers+"_Text_"+neutxt);
}

// -------

function showhidegroup(lyr,fromnr,tonr,sh) {
	for(i=fromnr; i<=tonr; i++) { showhidelyr(lyr+"_"+i,sh); }
}

function hidegroup(lyr,fromnr,tonr) { showhidegroup(lyr,fromnr,tonr,0); }
function showgroup(lyr,fromnr,tonr) { showhidegroup(lyr,fromnr,tonr,1); }

function reshowgroup(lyr,fromnr,tonr) {
	hidegroup(lyr,fromnr,tonr); showgroup(lyr,fromnr,tonr);
}

// -------

var tweens=new Array();
var multitweens=new Array();

function lyrpos(lyr,y,x) {
	var lyrhandle=findlyr(lyr);
	if (lyrhandle) { lyrhandle.style.left=x; lyrhandle.style.top=y; }
}

function dotween(tween) {
	var lyr=tweens[tween][0];
	var lyrhandle=findlyr(lyr);
	if (lyrhandle) {
		var pos=tweens[tween][1];
		var cnt=tweens[tween][2];
		var itv=tweens[tween][3];
		var starty=tweens[tween][4];
		var startx=tweens[tween][5];
		var endy=tweens[tween][6];
		var endx=tweens[tween][7];
		pos=pos+1;
		if (pos>=cnt) {
			lyrpos(lyr,endy,endx);
			var clb=tweens[tween][8];
			tweens[tween]=false;
			if (clb) { clb(); }
		} else {
			perc=pos/cnt;
			dify=endy-starty; difx=endx-startx;
			cury=starty+perc*dify; curx=startx+perc*difx;
			lyrpos(lyr,cury,curx);
			tweens[tween][1]=pos;
			window.setTimeout("dotween("+tween+")",itv);
		}
	}
}

function tweenlyr(tween,lyr,starty,startx,endy,endx,clb,scs,fps) {
	var lyrhandle=findlyr(lyr);
	if (lyrhandle) {
		showlyr(lyr); lyrpos(lyr,starty,startx);
		if (!fps) { fps=15; } // deffps
		if (!scs) { scs=1,5; } // defscs
		if (!clb) { clb=null; }
		var itv=1000/fps;
		var cnt=scs*fps;
		tweens[tween]=new Array(lyr,0,cnt,itv,starty,startx,endy,endx,clb);
		window.setTimeout("dotween("+tween+")",itv);
	}
}

function domultitween(tween) {
	if (multitweens[tween]) {
		curpos=multitweens[tween][0]; nxtpos=curpos+1;
		finpos=multitweens[tween][1];
		lyr=multitweens[tween][2];
		coords=multitweens[tween][3];
		clb=multitweens[tween][4];
		scs=multitweens[tween][5];
		fps=multitweens[tween][6];
		if (nxtpos<finpos) {
			multitweens[tween][0]=nxtpos;
			clb=new Function("intertween"+tween,"domultitween("+tween+");");
		}
		tweenlyr(tween,lyr,coords[curpos][0],coords[curpos][1],coords[nxtpos][0],coords[nxtpos][1],clb,scs,fps);
	}
}

function multitweenlyr(tween,lyr,coords,clb,scs,fps) {
	if (!clb) { clb=null; }
	if (!scs) { scs=false; }
	if (!fps) { fps=false; }
	multitweens[tween]=new Array(0,coords.length-1,lyr,coords,clb,scs,fps);
	domultitween(tween);
}

// -------
