function lyrnotfnd(lyr) { alert(lyr+" not found."); }

function findlyr(lyr) { // neu - ohne NS4-Layers
	var result=false;
	if (document.getElementById) { // MOZ / OP
		result = document.getElementById(lyr);
	} else if (document.all) { // IE4+ / OPStealth
		result = document.all.tags("div")[lyr];
	}
	if (!result) { lyrnotfnd(lyr); }
	return result;
}

// -------

function settxt(lyr,what) {
	var lyrhandle=findlyr(lyr);
	if (lyrhandle) {
		lyrhandle.firstChild.nodeValue=what;
	}
}

// -------

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]) {
		var curpos=multitweens[tween][0]; var nxtpos=curpos+1;
		var finpos=multitweens[tween][1];
		var lyr=multitweens[tween][2];
		var coords=multitweens[tween][3];
		var clb=multitweens[tween][4];
		var scs=multitweens[tween][5];
		var fps=multitweens[tween][6];
		if (nxtpos<finpos) {
			multitweens[tween][0]=nxtpos;
			var 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);
}

// -------

var sequs=new Array();

function dosequ(sequ) {
	if (sequs[sequ]) {
		var curpos=sequs[sequ][0]; var nxtpos=curpos+1;
		var finpos=sequs[sequ][1];
		var currlyr=sequs[sequ][2][curpos];
		var lastlyr=sequs[sequ][3];
		if (lastlyr) { hidelyr(lastlyr); }
		if (currlyr) { showlyr(currlyr); }
		sequs[sequ][3]=currlyr;
		sequs[sequ][0]=nxtpos;
		var itv=sequs[sequ][6];
		if (nxtpos<=finpos) {
			window.setTimeout("dosequ("+sequ+")",itv);
		} else {
			var rep=sequs[sequ][5];
			if ( (rep>1) || (rep<0) ) {
				if (rep>1) { rep-=1; }
				sequs[sequ][5]=rep;
				sequs[sequ][0]=0;
				window.setTimeout("dosequ("+sequ+")",itv);
			} else {
				var clb=sequs[sequ][4];
				if (clb) { clb(); }
			}
		}
	}
}

function sequenz(sequ,lyrs,clb,rep,fps) {
	if (!clb) { clb=null; }
	if (!rep) { rep=1; }
	if (!fps) { fps=1; }
	var itv=1000/fps;
	sequs[sequ]=new Array(0,lyrs.length-1,lyrs,null,clb,rep,itv);
	dosequ(sequ);
}

function unsequenz(sequ) {
	var s=sequs[sequ];
	sequs[sequ]=null;
	if (s) {
		for(i=0;(i<s[2].length);i++) {
			if (s[2][i]) { hidelyr(s[2][i]); }
		}
	}
}

function blinklyr(sequ,lyr) {
  sequenz(sequ,new Array(null,lyr),null,-1,2);
}

function unblinklyr(sequ) { unsequenz(sequ); }

// -------

