var DrE = new Array(3);
  DrE[0] = new Array(0,1,-1,-1,1,1,1,1,1,1,1,1,1,-1,1,1,1,-1,1,1,1,1,-1,-1,1,1,1,1,1,1,1,1,1,-1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1);
  DrE[1] = new Array(0,1,1,1,1,1,-1,-1,1,-1,-1,-1,1,1,-1,-1,-1,1,-1,-1,-1,1,1,1,1,1,-1,-1,1,-1,-1,-1,1,1,-1,-1,-1,1,-1,-1,-1,1,1,1,1,1,1,1,1,1);
  DrE[2] = new Array(0,1,-1,1,1,1,1,1,-1,1,1,1,-1,1,-1,-1,-1,1,-1,-1,-1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);


function getFrame()
{
    var radioButtons=document.getElementsByName("Frame");
    for (var i=0;i<radioButtons.length;i++)
      if (radioButtons[i].checked)
        return radioButtons[i].value;
}


function getStep()
{
    var radioButtons=document.getElementsByName("Step");
    for (var i=0;i<radioButtons.length;i++)
      if (radioButtons[i].checked)
        return radioButtons[i].value;
}


function getFloor()
{
    var radioButtons=document.getElementsByName("Floor");
    for (var i=0;i<radioButtons.length;i++)
      if (radioButtons[i].checked)
        return radioButtons[i].value;
}


function BodenHaftung()
{
  var vsf=100000;
  var vsm=1.e38;

  if (xyz[ 8][3]<=vsf) vsf=xyz[ 8][3];
  if (xyz[12][3]<=vsf) vsf=xyz[12][3];
  if (xyz[41][3]<=vsf) vsf=xyz[41][3];
  if (xyz[42][3]<=vsf) vsf=xyz[42][3];

  if (xyz[28][3]<=vsm) vsm=xyz[28][3];
  if (xyz[32][3]<=vsm) vsm=xyz[32][3];
  if (xyz[43][3]<=vsm) vsm=xyz[43][3];
  if (xyz[44][3]<=vsm) vsm=xyz[44][3];

  acv[1][3]=acv[1][3]-vsf; //v[41][3]=(acv[1][3]-acv[3][3])*10.0;
  acv[2][3]=acv[2][3]-vsm; //v[42][3]=(acv[2][3]-acv[4][3])*10.0;
  geometrie();
}


function MoveUp()
{
  var b1,b2,bv1,bv2,FRM,SLG,FFX;

  b1=0.01*Math.PI; bv1=0.2;
  b2=0.05*Math.PI; bv2=1.0;

  FRM=getFrame();
  SLG=getStep();
  FFX=getFloor();

  if (SLG=="small"){
    if (FRM==0 || FRM==1){
      if ((gelenk== 4 || gelenk==49) && FFX=="no") acv[ 1][3]=acv[ 1][3]+bv1*DrE[FRM][gelenk];
      if ((gelenk==24 || gelenk==49) && FFX=="no") acv[ 2][3]=acv[ 2][3]+bv1*DrE[FRM][gelenk];
    }
    if (FRM==2){
      if (gelenk== 4 || gelenk==49) acv[ 1][2]=acv[ 1][2]+bv1*DrE[FRM][gelenk];
      if (gelenk==24 || gelenk==49) acv[ 2][2]=acv[ 2][2]+bv1*DrE[FRM][gelenk];
    }
  } else {
    if (FRM==0 || FRM==1){
      if ((gelenk== 4 || gelenk==49) && FFX=="no") acv[ 1][3]=acv[ 1][3]+bv2*DrE[FRM][gelenk];
      if ((gelenk==24 || gelenk==49) && FFX=="no") acv[ 2][3]=acv[ 2][3]+bv2*DrE[FRM][gelenk];
    }
    if (FRM==2){
      if (gelenk== 4 || gelenk==49) acv[ 1][2]=acv[ 1][2]+bv2*DrE[FRM][gelenk];
      if (gelenk==24 || gelenk==49) acv[ 2][2]=acv[ 2][2]+bv2*DrE[FRM][gelenk];
    }
  }

  geometrie();
  if (FFX=="yes") BodenHaftung();
  delGraphs();
  neuzeich();
}


function MoveDown()
{
  var b1,b2,bv1,bv2,FRM,SLG,FFX;

  b1=0.01*Math.PI; bv1=0.2;
  b2=0.05*Math.PI; bv2=1.0;

  FRM=getFrame();
  SLG=getStep();
  FFX=getFloor();

  if (SLG=="small"){
    if (FRM==0 || FRM==1){
      if ((gelenk== 4 || gelenk==49) && FFX=="no") acv[ 1][3]=acv[ 1][3]-bv1*DrE[FRM][gelenk];
      if ((gelenk==24 || gelenk==49) && FFX=="no") acv[ 2][3]=acv[ 2][3]-bv1*DrE[FRM][gelenk];
    }
    if (FRM==2){
      if (gelenk== 4 || gelenk==49) acv[ 1][2]=acv[ 1][2]-bv1*DrE[FRM][gelenk];
      if (gelenk==24 || gelenk==49) acv[ 2][2]=acv[ 2][2]-bv1*DrE[FRM][gelenk];
    }
  } else {
    if (FRM==0 || FRM==1){
      if ((gelenk== 4 || gelenk==49) && FFX=="no") acv[ 1][3]=acv[ 1][3]-bv2*DrE[FRM][gelenk];
      if ((gelenk==24 || gelenk==49) && FFX=="no") acv[ 2][3]=acv[ 2][3]-bv2*DrE[FRM][gelenk];
    }
    if (FRM==2){
      if (gelenk== 4 || gelenk==49) acv[ 1][2]=acv[ 1][2]-bv2*DrE[FRM][gelenk];
      if (gelenk==24 || gelenk==49) acv[ 2][2]=acv[ 2][2]-bv2*DrE[FRM][gelenk];
    }
  }

  geometrie();
  if (FFX=="yes") BodenHaftung();
  delGraphs();
  neuzeich();
}


function MoveLeft()
{
  var b1,b2,bv1,bv2,FRM,SLG,FFX;

  b1=0.01*Math.PI; bv1=0.2;
  b2=0.05*Math.PI; bv2=1.0;

  FRM=getFrame();
  SLG=getStep();
  FFX=getFloor();

  if (SLG=="small"){
    if (FRM==0){
      if (gelenk!= 4 && gelenk!=24 && gelenk!=49) acd[cpc[gelenk]][2]=acd[cpc[gelenk]][2]-b1*DrE[FRM][gelenk];
      if (gelenk== 4 || gelenk==49) acv[ 1][1]=acv[ 1][1]-bv1*DrE[FRM][gelenk];
      if (gelenk==24 || gelenk==49) acv[ 2][1]=acv[ 2][1]-bv1*DrE[FRM][gelenk];
    }
    if (FRM==1){
      if (gelenk!= 4 && gelenk!=24 && gelenk!=49) acd[cpc[gelenk]][3]=acd[cpc[gelenk]][3]-b1*DrE[FRM][gelenk];
      if (gelenk== 4 || gelenk==49) acv[ 1][2]=acv[ 1][2]-bv1*DrE[FRM][gelenk];
      if (gelenk==24 || gelenk==49) acv[ 2][2]=acv[ 2][2]-bv1*DrE[FRM][gelenk];
    }
    if (FRM==2){
      if (gelenk!= 4 && gelenk!=24 && gelenk!=49) acd[cpc[gelenk]][1]=acd[cpc[gelenk]][1]-b1*DrE[FRM][gelenk];
      if (gelenk== 4 || gelenk==49) acv[ 1][1]=acv[ 1][1]-bv1*DrE[FRM][gelenk];
      if (gelenk==24 || gelenk==49) acv[ 2][1]=acv[ 2][1]-bv1*DrE[FRM][gelenk];
    }
  } else {
    if (FRM==0){
      if (gelenk!= 4 && gelenk!=24 && gelenk!=49) acd[cpc[gelenk]][2]=acd[cpc[gelenk]][2]-b2*DrE[FRM][gelenk];
      if (gelenk== 4 || gelenk==49) acv[ 1][1]=acv[ 1][1]-bv2*DrE[FRM][gelenk];
      if (gelenk==24 || gelenk==49) acv[ 2][1]=acv[ 2][1]-bv2*DrE[FRM][gelenk];
    }
    if (FRM==1){
      if (gelenk!= 4 && gelenk!=24 && gelenk!=49) acd[cpc[gelenk]][3]=acd[cpc[gelenk]][3]-b2*DrE[FRM][gelenk];
      if (gelenk== 4 || gelenk==49) acv[ 1][2]=acv[ 1][2]-bv2*DrE[FRM][gelenk];
      if (gelenk==24 || gelenk==49) acv[ 2][2]=acv[ 2][2]-bv2*DrE[FRM][gelenk];
    }
    if (FRM==2){
      if (gelenk!= 4 && gelenk!=24 && gelenk!=49) acd[cpc[gelenk]][1]=acd[cpc[gelenk]][1]-b2*DrE[FRM][gelenk];
      if (gelenk== 4 || gelenk==49) acv[ 1][1]=acv[ 1][1]-bv2*DrE[FRM][gelenk];
      if (gelenk==24 || gelenk==49) acv[ 2][1]=acv[ 2][1]-bv2*DrE[FRM][gelenk];
    }
  }

  geometrie();
  if (FFX=="yes") BodenHaftung();
  delGraphs();
  neuzeich();
}


function MoveRight()
{
  var b1,b2,bv1,bv2,FRM,SLG,FFX;

  b1=0.01*Math.PI; bv1=0.2;
  b2=0.05*Math.PI; bv2=1.0;

  FRM=getFrame();
  SLG=getStep();
  FFX=getFloor();

  if (SLG=="small"){
    if (FRM==0){
      if (gelenk!= 4 && gelenk!=24 && gelenk!=49) acd[cpc[gelenk]][2]=acd[cpc[gelenk]][2]+b1*DrE[FRM][gelenk];
      if (gelenk== 4 || gelenk==49) acv[ 1][1]=acv[ 1][1]+bv1*DrE[FRM][gelenk];
      if (gelenk==24 || gelenk==49) acv[ 2][1]=acv[ 2][1]+bv1*DrE[FRM][gelenk];
    }
    if (FRM==1){
      if (gelenk!= 4 && gelenk!=24 && gelenk!=49) acd[cpc[gelenk]][3]=acd[cpc[gelenk]][3]+b1*DrE[FRM][gelenk];
      if (gelenk== 4 || gelenk==49) acv[ 1][2]=acv[ 1][2]+bv1*DrE[FRM][gelenk];
      if (gelenk==24 || gelenk==49) acv[ 2][2]=acv[ 2][2]+bv1*DrE[FRM][gelenk];
    }
    if (FRM==2){
      if (gelenk!= 4 && gelenk!=24 && gelenk!=49) acd[cpc[gelenk]][1]=acd[cpc[gelenk]][1]+b1*DrE[FRM][gelenk];
      if (gelenk== 4 || gelenk==49) acv[ 1][1]=acv[ 1][1]+bv1*DrE[FRM][gelenk];
      if (gelenk==24 || gelenk==49) acv[ 2][1]=acv[ 2][1]+bv1*DrE[FRM][gelenk];
    }
  } else {
    if (FRM==0){
      if (gelenk!= 4 && gelenk!=24 && gelenk!=49) acd[cpc[gelenk]][2]=acd[cpc[gelenk]][2]+b2*DrE[FRM][gelenk];
      if (gelenk== 4 || gelenk==49) acv[ 1][1]=acv[ 1][1]+bv2*DrE[FRM][gelenk];
      if (gelenk==24 || gelenk==49) acv[ 2][1]=acv[ 2][1]+bv2*DrE[FRM][gelenk];
    }
    if (FRM==1){
      if (gelenk!= 4 && gelenk!=24 && gelenk!=49) acd[cpc[gelenk]][3]=acd[cpc[gelenk]][3]+b2*DrE[FRM][gelenk];
      if (gelenk== 4 || gelenk==49) acv[ 1][2]=acv[ 1][2]+bv2*DrE[FRM][gelenk];
      if (gelenk==24 || gelenk==49) acv[ 2][2]=acv[ 2][2]+bv2*DrE[FRM][gelenk];
    }
    if (FRM==2){
      if (gelenk!= 4 && gelenk!=24 && gelenk!=49) acd[cpc[gelenk]][1]=acd[cpc[gelenk]][1]+b2*DrE[FRM][gelenk];
      if (gelenk== 4 || gelenk==49) acv[ 1][1]=acv[ 1][1]+bv2*DrE[FRM][gelenk];
      if (gelenk==24 || gelenk==49) acv[ 2][1]=acv[ 2][1]+bv2*DrE[FRM][gelenk];
    }
  }

  geometrie();
  if (FFX=="yes") BodenHaftung();
  delGraphs();
  neuzeich();
}


function TurnLeft()
{
  var b1,b2,bv1,bv2,FRM,SLG,FFX;

  b1=0.01*Math.PI; bv1=0.2;
  b2=0.05*Math.PI; bv2=1.0;

  FRM=getFrame();
  SLG=getStep();
  FFX=getFloor();

  if (SLG=="small"){
    if (FRM==0){
      if (gelenk== 4 || gelenk==49) {acd[ 2][2]=acd[ 2][2]-b1*DrE[FRM][gelenk]; acd[ 3][2]=acd[ 3][2]-b1*DrE[FRM][gelenk];}
      if (gelenk==24 || gelenk==49) {acd[17][2]=acd[17][2]-b1*DrE[FRM][gelenk]; acd[18][2]=acd[18][2]-b1*DrE[FRM][gelenk];}
    }
    if (FRM==1){
      if (gelenk== 4 || gelenk==49) {acd[ 2][3]=acd[ 2][3]-b1*DrE[FRM][gelenk]; acd[ 3][3]=acd[ 3][3]-b1*DrE[FRM][gelenk];}
      if (gelenk==24 || gelenk==49) {acd[17][3]=acd[17][3]-b1*DrE[FRM][gelenk]; acd[18][3]=acd[18][3]-b1*DrE[FRM][gelenk];}
    }
    if (FRM==2){
      if (gelenk== 4 || gelenk==49) {acd[ 2][1]=acd[ 2][1]-b1*DrE[FRM][gelenk]; acd[ 3][1]=acd[ 3][1]-b1*DrE[FRM][gelenk];}
      if (gelenk==24 || gelenk==49) {acd[17][1]=acd[17][1]-b1*DrE[FRM][gelenk]; acd[18][1]=acd[18][1]-b1*DrE[FRM][gelenk];}
      if (gelenk==49) {AbsDreh=true; AbsWkl=-b1*DrE[FRM][gelenk];}
    }
  } else {
    if (FRM==0){
      if (gelenk== 4 || gelenk==49) {acd[ 2][2]=acd[ 2][2]-b2*DrE[FRM][gelenk]; acd[ 3][2]=acd[ 3][2]-b2*DrE[FRM][gelenk];}
      if (gelenk==24 || gelenk==49) {acd[17][2]=acd[17][2]-b2*DrE[FRM][gelenk]; acd[18][2]=acd[18][2]-b2*DrE[FRM][gelenk];}
    }
    if (FRM==1){
      if (gelenk== 4 || gelenk==49) {acd[ 2][3]=acd[ 2][3]-b2*DrE[FRM][gelenk]; acd[ 3][3]=acd[ 3][3]-b2*DrE[FRM][gelenk];}
      if (gelenk==24 || gelenk==49) {acd[17][3]=acd[17][3]-b2*DrE[FRM][gelenk]; acd[18][3]=acd[18][3]-b2*DrE[FRM][gelenk];}
    }
    if (FRM==2){
      if (gelenk== 4 || gelenk==49) {acd[ 2][1]=acd[ 2][1]-b2*DrE[FRM][gelenk]; acd[ 3][1]=acd[ 3][1]-b2*DrE[FRM][gelenk];}
      if (gelenk==24 || gelenk==49) {acd[17][1]=acd[17][1]-b2*DrE[FRM][gelenk]; acd[18][1]=acd[18][1]-b2*DrE[FRM][gelenk];}
      if (gelenk==49) {AbsDreh=true; AbsWkl=-b2*DrE[FRM][gelenk];}
    }
  }

  geometrie();
  if (FFX=="yes") BodenHaftung();
  if (AbsDreh==true) AbsGeoDreh();
  delGraphs();
  neuzeich();
}


function TurnRight()
{
  var b1,b2,bv1,bv2,FRM,SLG,FFX;

  b1=0.01*Math.PI; bv1=0.2;
  b2=0.05*Math.PI; bv2=1.0;

  FRM=getFrame();
  SLG=getStep();
  FFX=getFloor();

  if (SLG=="small"){
    if (FRM==0){
      if (gelenk== 4 || gelenk==49) {acd[ 2][2]=acd[ 2][2]+b1*DrE[FRM][gelenk]; acd[ 3][2]=acd[ 3][2]+b1*DrE[FRM][gelenk];}
      if (gelenk==24 || gelenk==49) {acd[17][2]=acd[17][2]+b1*DrE[FRM][gelenk]; acd[18][2]=acd[18][2]+b1*DrE[FRM][gelenk];}
    }
    if (FRM==1){
      if (gelenk== 4 || gelenk==49) {acd[ 2][3]=acd[ 2][3]+b1*DrE[FRM][gelenk]; acd[ 3][3]=acd[ 3][3]+b1*DrE[FRM][gelenk];}
      if (gelenk==24 || gelenk==49) {acd[17][3]=acd[17][3]+b1*DrE[FRM][gelenk]; acd[18][3]=acd[18][3]+b1*DrE[FRM][gelenk];}
    }
    if (FRM==2){
      if (gelenk== 4 || gelenk==49) {acd[ 2][1]=acd[ 2][1]+b1*DrE[FRM][gelenk]; acd[ 3][1]=acd[ 3][1]+b1*DrE[FRM][gelenk];}
      if (gelenk==24 || gelenk==49) {acd[17][1]=acd[17][1]+b1*DrE[FRM][gelenk]; acd[18][1]=acd[18][1]+b1*DrE[FRM][gelenk];}
      if (gelenk==49) {AbsDreh=true; AbsWkl=b1*DrE[FRM][gelenk];}
    }
  } else {
    if (FRM==0){
      if (gelenk== 4 || gelenk==49) {acd[ 2][2]=acd[ 2][2]+b2*DrE[FRM][gelenk]; acd[ 3][2]=acd[ 3][2]+b2*DrE[FRM][gelenk];}
      if (gelenk==24 || gelenk==49) {acd[17][2]=acd[17][2]+b2*DrE[FRM][gelenk]; acd[18][2]=acd[18][2]+b2*DrE[FRM][gelenk];}
    }
    if (FRM==1){
      if (gelenk== 4 || gelenk==49) {acd[ 2][3]=acd[ 2][3]+b2*DrE[FRM][gelenk]; acd[ 3][3]=acd[ 3][3]+b2*DrE[FRM][gelenk];}
      if (gelenk==24 || gelenk==49) {acd[17][3]=acd[17][3]+b2*DrE[FRM][gelenk]; acd[18][3]=acd[18][3]+b2*DrE[FRM][gelenk];}
    }
    if (FRM==2){
      if (gelenk== 4 || gelenk==49) {acd[ 2][1]=acd[ 2][1]+b2*DrE[FRM][gelenk]; acd[ 3][1]=acd[ 3][1]+b2*DrE[FRM][gelenk];}
      if (gelenk==24 || gelenk==49) {acd[17][1]=acd[17][1]+b2*DrE[FRM][gelenk]; acd[18][1]=acd[18][1]+b2*DrE[FRM][gelenk];}
      if (gelenk==49) {AbsDreh=true; AbsWkl=b2*DrE[FRM][gelenk];}
    }
  }

  geometrie();
  if (FFX=="yes") BodenHaftung();
  if (AbsDreh==true) AbsGeoDreh();
  delGraphs();
  neuzeich();
}


function EditNull()
{
  var i;

  if (gelenk== 4) {
    for (i = 1; i <= 3; ++i) acv[1][i]=0.0;
  }
  if (gelenk==24) {
    for (i = 1; i <= 3; ++i) acv[2][i]=0.0;
  }
  if (gelenk==49) {
    for (i = 1; i <= 3; ++i) acv[1][i]=0.0;
    for (i = 1; i <= 3; ++i) acv[2][i]=0.0;
  }

  for (i = 1; i <= 3; ++i) acd[cpc[gelenk]][i]=0.0;

  if (gelenk== 4) {
    for (i = 1; i <= 3; ++i) acd[ 3][i]=0.0;
  }
  if (gelenk== 6) {
    for (i = 1; i <= 3; ++i) acd[ 5][i]=0.0;
    for (i = 1; i <= 3; ++i) acd[ 6][i]=0.0;
  }
  if (gelenk== 7) {
    for (i = 1; i <= 3; ++i) acd[ 6][i]=0.0;
  }
  if (gelenk==10) {
    for (i = 1; i <= 3; ++i) acd[ 8][i]=0.0;
    for (i = 1; i <= 3; ++i) acd[ 9][i]=0.0;
  }
  if (gelenk==11) {
    for (i = 1; i <= 3; ++i) acd[ 9][i]=0.0;
  }
  if (gelenk==14) {
    for (i = 1; i <= 3; ++i) acd[11][i]=0.0;
    for (i = 1; i <= 3; ++i) acd[12][i]=0.0;
  }
  if (gelenk==15) {
    for (i = 1; i <= 3; ++i) acd[12][i]=0.0;
  }
  if (gelenk==18) {
    for (i = 1; i <= 3; ++i) acd[14][i]=0.0;
    for (i = 1; i <= 3; ++i) acd[15][i]=0.0;
  }
  if (gelenk==19) {
    for (i = 1; i <= 3; ++i) acd[15][i]=0.0;
  }

  if (gelenk==24) {
    for (i = 1; i <= 3; ++i) acd[18][i]=0.0;
  }
  if (gelenk==26) {
    for (i = 1; i <= 3; ++i) acd[20][i]=0.0;
    for (i = 1; i <= 3; ++i) acd[21][i]=0.0;
  }
  if (gelenk==27) {
    for (i = 1; i <= 3; ++i) acd[21][i]=0.0;
  }
  if (gelenk==30) {
    for (i = 1; i <= 3; ++i) acd[23][i]=0.0;
    for (i = 1; i <= 3; ++i) acd[24][i]=0.0;
  }
  if (gelenk==31) {
    for (i = 1; i <= 3; ++i) acd[24][i]=0.0;
  }
  if (gelenk==34) {
    for (i = 1; i <= 3; ++i) acd[26][i]=0.0;
    for (i = 1; i <= 3; ++i) acd[27][i]=0.0;
  }
  if (gelenk==35) {
    for (i = 1; i <= 3; ++i) acd[27][i]=0.0;
  }
  if (gelenk==38) {
    for (i = 1; i <= 3; ++i) acd[29][i]=0.0;
    for (i = 1; i <= 3; ++i) acd[30][i]=0.0;
  }
  if (gelenk==39) {
    for (i = 1; i <= 3; ++i) acd[30][i]=0.0;
  }

  geometrie();
  delGraphs();
  neuzeich();
}


function Reset()
{
  nullvar();
  delGraphs();
  neuzeich();
}


function CopyText()
{
  var i,i20;
  var v = new Array(43);
    for (i = 0; i < v.length; ++i) v[i] = new Array(4);
  var text = "";

  for (i = 1; i <= 20; ++i) {
    i20 = i+20;
    for (j = 1; j <= 3; ++j) v[i][j]   = acd[cpc[i]][j]*200.0/Math.PI;
    for (j = 1; j <= 3; ++j) v[i20][j] = acd[cpc[i20]][j]*200.0/Math.PI;
  }
    for (j = 1; j <= 3; ++j) v[41][j] = acv[1][j]*10.0;  /* 41 Verschiebung Frau */
    for (j = 1; j <= 3; ++j) v[42][j] = acv[2][j]*10.0;  /* 42 Verschiebung Mann */

  for (i = 1; i <= 20; ++i) {
    i20 = i+20;
    for (j = 1; j <= 3; ++j) text=text+String(Math.round(v[i][4-j])) + ", ";
    for (j = 1; j <= 3; ++j) text=text+String(Math.round(v[i20][4-j])) + ", "; text=text + "\n";
  }
    for (j = 1; j <= 3; ++j) text=text+String(Math.round(v[41][j])) + ", ";
    for (j = 1; j <= 3; ++j) text=text+String(Math.round(v[42][j])) + ", "; text=text + "\n";

  document.FormCopy.MailPara.value = text;
}


