function calccpo(form,index)
{
  // transforms polar and cartesian coordinates, December 27, 2009
  // copyright Bernd Krueger, 2010-2011

  if(index==0) {                                     // input cartesian coordinates
    v = parseFloat(eval(form.xxx.value));
    if(!isFinite(v)) { warnings(1); form.xxx.value = ' '; return; }
    else { form.storx.value = v; l=1; }}
  if(index==1) {
    v = parseFloat(eval(form.yyy.value));
    if(!isFinite(v)) { warnings(1); form.yyy.value = ' '; return; }
    else { form.story.value = v; l=1; }}
  if(index==2) {                                     // input polar coordinates
    v = parseFloat(eval(form.rrr.value));
    if(!isFinite(v)) { warnings(1); form.rrr.value = ' '; return; }
    else { form.storr.value = v; l=2; }}
  if(index==3) {
    v = parseFloat(eval(form.deg.value));
    if(!isFinite(v)) { warnings(1); form.deg.value = ' '; return; }
    else { form.stort.value = v/180.*Math.PI; l=2; 
      form.bog.value = ausga(form,v/180.*Math.PI); form.mpi.value = ausga(form,v/180.); }}
  if(index==4) {
    v = parseFloat(eval(form.bog.value));
    if(!isFinite(v)) { warnings(1); form.bog.value = ' '; return; }
    else { form.stort.value = v; l=2; 
      form.deg.value = ausga(form,v*180./Math.PI); form.mpi.value = ausga(form,v/Math.PI); }}
  if(index==5) {
    v = parseFloat(eval(form.mpi.value));
    if(!isFinite(v)) { warnings(1); form.mpi.value = ' '; return; }
    else { form.stort.value = v*Math.PI; l=2;
      form.deg.value = ausga(form,v*180.); form.bog.value = ausga(form,v*Math.PI); }}
  form.last.value = l;

  if(form.last.value==1) {
    var x = parseFloat(form.storx.value); var y = parseFloat(form.story.value);
    if( isFinite(x) && isFinite(y) ) {
      r = Math.sqrt(x*x + y*y);
      if (x>0 && y>=0) { rad = Math.atan(y/x); }
      if (x>0 && y<0)  { rad = Math.atan(y/x) + 2.*Math.PI; }
      if (x<0)         { rad = Math.atan(y/x) + Math.PI; }
      if (x==0 && y>0) { rad = Math.PI/2.; }
      if (x==0 && y<0) { rad = Math.PI*3./2.; }
      if (x==0 && y==0){ rad = 0.; }
      form.storr.value = r; form.stort.value = rad;
      form.rrr.value = ausga(form,r);
      form.deg.value = ausga(form,rad/Math.PI*180.);
      form.bog.value = ausga(form,rad);
      form.mpi.value = ausga(form,rad/Math.PI);
      document.getElementsByName('xxx')[0].style.backgroundColor = '#f0fff0';
      document.getElementsByName('yyy')[0].style.backgroundColor = '#f0fff0';
      document.getElementsByName('rrr')[0].style.backgroundColor = '#fff0f5';
      document.getElementsByName('deg')[0].style.backgroundColor = '#fff0f5';
      document.getElementsByName('bog')[0].style.backgroundColor = '#fff0f5';
      document.getElementsByName('mpi')[0].style.backgroundColor = '#fff0f5';
  }}
  if(form.last.value==2) {
    var r = parseFloat(form.storr.value); var rad = parseFloat(form.stort.value);
    if( isFinite(r) && isFinite(rad) ) {
      x = r * Math.cos(rad); y = r * Math.sin(rad);
      form.storx.value = x; form.story.value = y;
      form.xxx.value = ausga(form,x);
      form.yyy.value = ausga(form,y);
      document.getElementsByName('xxx')[0].style.backgroundColor = '#fff0f5';
      document.getElementsByName('yyy')[0].style.backgroundColor = '#fff0f5';
      document.getElementsByName('rrr')[0].style.backgroundColor = '#f0fff0';
      document.getElementsByName('deg')[0].style.backgroundColor = '#f0fff0';
      document.getElementsByName('bog')[0].style.backgroundColor = '#f0fff0';
      document.getElementsByName('mpi')[0].style.backgroundColor = '#f0fff0';
  }}
 return;
}
function backcpo(form,index)
{
  form.last.value = 0;
  form.storx.value = ""; form.story.value = "";
  form.storr.value = ""; form.stort.value = "";
    document.getElementsByName('xxx')[0].style.backgroundColor = 'ivory';
    document.getElementsByName('yyy')[0].style.backgroundColor = 'ivory';
    document.getElementsByName('rrr')[0].style.backgroundColor = 'ivory';
    document.getElementsByName('deg')[0].style.backgroundColor = 'ivory';
    document.getElementsByName('bog')[0].style.backgroundColor = 'ivory';
    document.getElementsByName('mpi')[0].style.backgroundColor = 'ivory';
  return;
}
