	function P80_1DPendulum_init()
	{
		this.x0=1.0*this.movable.x+.5;
		this.xp=1.*this.x0;
		this.x=1.*this.xp;
		this.xm=1.*this.x0;
	}
	function P80_1DPendulum_moveNext() {
		this.xp=1.*this.a1*this.x+1.*this.a2*this.xm+1.*this.a3*1.*this.x_eq;
		this.xm=1.*this.x;
		this.x=1.*this.xp;
		this.movable.moveToX(Math.floor(this.x));
	}

	function P80_1DPendulum_setEquilibrium(pos)
	{
		this.x_eq=1.*pos;
	}

	function P80_1DPendulum_resetEquilibrium()
	{
		this.x_eq=1.*this.x0;
	}

	function P80_1DPendulum(elementid,mass,resistance,springforce,dt)
	{
		this.movable=new P80_Movable(elementid);
		this.x0=1.0*this.movable.x+.5;
		this.y=this.movable.y;
		this.x_eq=this.movable.x;
		this.mass=mass;
		this.resistance=resistance;
		this.springforce=springforce;
		this.a1=(2.0*mass-springforce*dt*dt)/(mass+.5*resistance*dt);
		this.a2=(.5*resistance*dt-mass)/(mass+.5*resistance*dt);
		this.a3=springforce*dt*dt/(mass+.5*resistance*dt);
		this.xp=1.*this.x0;
		this.x=1.*this.xp;
		this.xm=1.*this.x0;
		this.moveNext=P80_1DPendulum_moveNext;
		this.setEquilibrium=P80_1DPendulum_setEquilibrium;
		this.resetEquilibrium=P80_1DPendulum_resetEquilibrium;
		this.init=P80_1DPendulum_init;

	}
