//#######################################//#####  Michael BŸrge   24.11.99   #####//#######################################ns4 = (document.layers)? true:false;ie4 = (document.all)? true:false;//##### Layer-Object-Constructorfunction LayerObj(id,nest,frame) {	if (ns4) {		this.css=(nest)? eval('document.'+nest+'.document.layers[id]'):document.layers[id]			this.x=this.css.left		this.y=this.css.top		this.doc=this.css.document		this.elm=this.css	}	else if (ie4) {		this.css=document.all[id].style		this.elm=document.all[id] 		this.x=this.elm.offsetLeft		this.y=this.elm.offsetTop		this.doc=document	}	this.obj=id.slice(0,id.indexOf('Div'));//	this.obj=id+'DYNSCRIPT'//	eval(this.obj+'=this')	this.show=DYNSCRIPTshow	this.hide=DYNSCRIPThide	this.moveTo=DYNSCRIPTmoveTo	this.moveBy=DYNSCRIPTmoveBy	this.slideTo=DYNSCRIPTslideTo	this.slideBy=DYNSCRIPTslideBy	this.doSlide=doSlide	this.circleSlideBy=circleSlideBy	this.doCircleSlide=doCircleSlide	this.setBg=DYNSCRIPTsetBg	this.write=write	this.addit=addit}function addit(method,methodname) {	if (!methodname) eval('this.'+method+'='+method)	else eval('this.'+method+'='+methodname)}//##### show/hide Methodsfunction DYNSCRIPTshow() {this.css.visibility=(ns4)? 'show':'visible'}function DYNSCRIPThide() {this.css.visibility=(ns4)? 'hide':'hidden'}//##### Move Methodsfunction DYNSCRIPTmoveTo(x,y) {	this.x=x	this.y=y	this.css.left=this.x	this.css.top=this.y}function DYNSCRIPTmoveBy(x,y) {this.moveTo(this.x+x,this.y+y)}//##### Color Handling #####//##########################function DYNSCRIPTsetBg(color) {	if (ie4) this.css.backgroundColor=color	else if (ns4) this.doc.bgColor=color}//##### Slide Methods #####//#########################//## linear slidefunction DYNSCRIPTslideTo(x,y,step,speed,action) {	if (this.slide) {		clearTimeout(this.slide.time);		this.slide=null;	}	if (!step) step=10;       //SchrittlŠnge	if (!speed) speed=10;	var Ax=this.x;            //Ausgangspunkt A	var Ay=this.y;	var Bx=x 	                //Zielpunkt B	var By=y	var ABx=Bx-Ax;            //Verbindungsvektor AB	var ABy=By-Ay;	var bAB=Math.sqrt(Math.pow(ABx,2)+Math.pow(ABy,2)) //Betrag von AB	var eABx=ABx/bAB;         //Einheitsvektor von sd	var eABy=ABy/bAB;	var steps=Math.round(bAB/step); 	//Anzahl Schritte	var dABx=eABx*bAB/steps;  //Verschiebungsvektor	var dABy=eABy*bAB/steps;	this.slide=new SlideObj(dABx,dABy,steps,speed,action);	this.doSlide();}function DYNSCRIPTslideBy(x,y,step,speed,action) {	this.slideTo(this.x+x,this.y+y,step,speed,action)}function SlideObj(dABx,dABy,steps,speed,action) {	this.dx=dABx;	this.dy=dABy;	this.steps=steps;	this.done=0;		this.speed=speed;	this.time=0;	this.action=action;}function doSlide() {	if (this.slide.done<this.slide.steps) {		this.slide.done+=1;			this.moveBy(this.slide.dx,this.slide.dy);		this.slide.time=setTimeout(this.obj+'.doSlide()',this.slide.speed);	}	else {		var temp=this.slide.action;		this.slide=null;		eval(temp);	}}//## slide following a circlefunction circleSlideBy(angle,centerX,centerY,action,step,speed) {	if (this.slide) {		clearTimeout(this.slide.time);		this.slide=null;	}	if (!step) step=10;	if (!speed) speed=10;	var dX=this.x-centerX;	var dY=-(this.y-centerY);	var actangle=Math.atan2(dY,dX)    //aktueller Winkel	if (actangle<0) actangle+=2*Math.PI;	var radius=Math.sqrt(Math.pow(dX,2)+Math.pow(dY,2));	var steps=Math.round(radius*angle/step);	if (steps<0) steps*=-1;   //angle kann negativ sein	var dangle=angle/steps;	this.slide=new CircleSlideObj(dangle,actangle,centerX,centerY,radius,steps,speed,action)	this.doCircleSlide();} function CircleSlideObj(dangle,actangle,centerX,centerY,radius,steps,speed,action) {	this.dangle=dangle;	this.actangle=actangle;	this.centerX=centerX;	this.centerY=centerY;	this.radius=radius;	this.steps=steps;	this.done=0;	this.speed=speed;	this.time=0;	this.action=action;}function doCircleSlide() {	if (this.slide.done<this.slide.steps) {		this.slide.done+=1;		this.slide.actangle+=this.slide.dangle;	this.moveTo(this.slide.centerX + this.slide.radius * Math.cos(this.slide.actangle),this.slide.centerY - this.slide.radius * Math.sin(this.slide.actangle))		this.slide.time=setTimeout(this.obj+'.doCircleSlide()',this.slide.speed)	}	else {		var temp=this.slide.action;		this.slide=null;		eval(temp);	}}//##### Writing to a Layer #####//##############################function write(code) {		if (ns4) {			this.doc.open();			this.doc.write(code);			this.doc.close();	}	else if (ie4) this.doc.innerHTML=code;}//##### DEBUG ##################//##############################var codecode;function debug() {	document.onkeydown=keyDown	if (document.layers) document.captureEvents(Event.KEYDOWN)}function evaluate() {	codecode=prompt("Code to evaluate:",codecode)	eval(codecode);}function keyDown(e) {	if (ns4) {var nKey=e.which; var ieKey=0}	if (ie4) {var nKey=0; var ieKey=event.keyCode}	if (nKey==100 || ieKey==68) evaluate();}
