function changeValue(id,step,add) {
  var min = parseFloat(document.getElementById('min_range_' + id).innerHTML);
  var max = parseFloat(document.getElementById('max_range_' + id).innerHTML);

  var val_str = document.getElementById(id).value;
  var val = parseFloat(val_str);
  var step_int = parseInt(step);
  var step_str = step;
  var step = parseFloat(step);


  if( isNaN(val_str) || val_str == '' ){ val = parseInt(((max-min)/2)+min); }
  else{
    if(step <= 1){
      var step_multi = 1/step;
      var val_tst = val*step_multi;
    }else{ val_tst = val; }

    if(add == 'up'){
      if(val_tst != parseInt(val_tst)){  val = Math.ceil(val*step_multi)/step_multi; }
      else{ val = val+step; }
    }else{
      if((val_tst) !=  parseInt(val_tst)){  val = Math.floor(val*step_multi)/step_multi; }
      else{ val = val-step; }
    }

  }

  if(val <= min){ val = min; }
  if(val >= max){ val = max; }

  if(step == step_int){ var fix = 0; }
  else{ var fix = step_str.length-2; }


  document.getElementById(id).value = val.toFixed(fix);
  
  //if ((document.getElementById(id).value >= 4) || (document.getElementById(id).value <= -4)) document.forms[0].submit();     
  
}

/* Rundet eine Zahl auf eine bestimmte Stellenzahl */
function RelativesRunden(Wert, Stellen) { 
    if (Wert == 0) 
    return 0
    else
    with (Math) {
        // Bereinigung der Stellenzahl
        Stellen = Math.floor(Math.abs(Stellen))
        if (Stellen == 0) { Stellen = 1 }

        var Exponent = Math.round(Math.log(Math.abs(Wert)) * LOG10E)
        if (Math.abs(Wert) < Math.pow(10, Exponent)) { Exponent-- }
        var Potenz = Math.pow(10, 1 + Exponent - Stellen)
        return ((Wert < 0) ? "-" : "") + Math.round(Math.abs(Wert) / Potenz) * Potenz
    }

 }
                                                   
function triggerPrism(key, side, step, prism, add){
  var prism1 = parseFloat(document.getElementById('correction_' + side + '_basevalues_prism1').value);
  var prism2 = parseFloat(document.getElementById('correction_' + side + '_basevalues_prism2').value);
  var prism = parseFloat(prism);

  var prism1_range = Math.sqrt(Math.pow(prism, 2)-Math.pow(prism2, 2));
  var prism2_range = Math.sqrt(Math.pow(prism, 2)-Math.pow(prism1, 2));
  
  // These 6 lines are for the 0.25 precision calculation of the prism value
  var tmp_prism1 = prism1_range * 4;
  var tmp_prism2 = prism2_range * 4;
  var tmp1_prism1 = tmp_prism1.toFixed(0);
  var tmp1_prism2 = tmp_prism2.toFixed(0);
  var tmp2_prism1 = tmp1_prism1/4;
  var tmp2_prism2 = tmp1_prism2/4;
  
  document.getElementById('correction_' + side + '_basevalues_prism1_range').innerHTML = tmp2_prism1.toPrecision(3);
  document.getElementById('correction_' + side + '_basevalues_prism2_range').innerHTML = tmp2_prism2.toPrecision(3);

  if( key == 'prism1' ){
    var val_str = document.getElementById('correction_' + side + '_basevalues_prism1').value;
    var val = prism1;
    var range = prism1_range;
  }else{
    var val_str = document.getElementById('correction_' + side + '_basevalues_prism2').value;
    var val = prism2;
    var range = prism2_range;
  }
  var step = parseFloat(step);

  if(isNaN(val_str) || val_str == ''){ val = 0; }
  else{
    if(add == 'up'){
//       window.alert ("val/step:  " + val/step + "  parseInt(val/step):  " + parseInt(val/step) + "  Operation: " + ((val/step) !=  parseInt(val/step)));
      if(RelativesRunden((val/step),5) !=  RelativesRunden(parseInt(val/step),5)){  val = Math.ceil(val); }
      
      
      else{ val = val+step; }

    }else{

      if(RelativesRunden((val/step),5) !=  RelativesRunden(parseInt(val/step),5)){  val = Math.ceil(val); }
      
      else{ val = val-step; }

    }
  }

  if(val <= 0){ val = 0; }
  if(val >= range){ val = range; }
  
  document.getElementById('correction_' + side + '_basevalues_' + key).value = val.toFixed(2);
}

function format_prism(side, key){
    //var thisval = parseFloat(document.getElementById('correction_' + side + '_basevalues_' + key).value.replace(",",".")).toFixed(2);
    //document.getElementById('correction_' + side + '_basevalues_' + key).value = thisval;
    var rawvalue = document.getElementById('correction_' + side + '_basevalues_' + key).value.replace("'","");
    var thisval = new Number(rawvalue.replace(",","."));
    thisval = Math.round(thisval*20)/20;
    document.getElementById('correction_' + side + '_basevalues_' + key).value = thisval.toFixed(2);
    clientdata_setreqest('/Correction/?basket=1&' + key + '_' + side + '=' + thisval.toFixed(2));        
}

function format_base(side, key){
    var rawvalue = document.getElementById('correction_' + side + '_basevalues_' + key).value.replace("'","");
    var thisval = new Number(rawvalue.replace(",","."));
    thisval = Math.round(thisval);
    document.getElementById('correction_' + side + '_basevalues_' + key).value = thisval.toFixed(0);
    clientdata_setreqest('/Correction/?basket=1&' + key + '_' + side + '=' + thisval.toFixed(0));        
}

function format_sphere(side){
    //var thisval = document.getElementById('correction_' + side + '_basevalues_sphere').value.replace(",",".");
    //document.getElementById('correction_' + side + '_basevalues_sphere').value = thisval;
    var rawvalue = document.getElementById('correction_' + side + '_basevalues_sphere').value.replace("'","");
    var thisval = new Number(rawvalue.replace(",","."));
    thisval = Math.round(thisval*20)/20;
    document.getElementById('correction_' + side + '_basevalues_sphere').value = thisval.toFixed(2);
    clientdata_setreqest('/Correction/?basket=1&sphere_' + side + '=' + thisval.toFixed(2));        
}

function format_cylinder(side){
    //var thisval = document.getElementById('correction_' + side + '_basevalues_cylinder').value.replace(",",".");
    //document.getElementById('correction_' + side + '_basevalues_cylinder').value = thisval;
    //set_next_focus('correction_' + side + '_basevalues_axis');
    //document.forms[0].submit();
    var rawvalue = document.getElementById('correction_' + side + '_basevalues_cylinder').value.replace("'","");
    var thisval = new Number(rawvalue.replace(",","."));
    thisval = Math.round(thisval*20)/20;
    document.getElementById('correction_' + side + '_basevalues_cylinder').value = thisval.toFixed(2);
    clientdata_setreqest('/Correction/?basket=1&cylinder_' + side + '=' + thisval.toFixed(2));
}

function format_addition(side){
    //var thisval = document.getElementById('correction_' + side + '_basevalues_addition').value.replace(",",".");
    //document.getElementById('correction_' + side + '_basevalues_addition').value = thisval;
    var rawvalue = document.getElementById('correction_' + side + '_basevalues_addition').value.replace("'","");
    var thisval = new Number(rawvalue.replace(",","."));
    thisval = Math.round(thisval*20)/20;
    document.getElementById('correction_' + side + '_basevalues_addition').value = thisval.toFixed(2);
    clientdata_setreqest('/Correction/?basket=1&addition_' + side + '=' + thisval.toFixed(2));        
}

function format_axis(side){
    var rawvalue = document.getElementById('correction_' + side + '_basevalues_axis').value.replace("'","");
    var thisval = new Number(rawvalue.replace(",","."));
    thisval = Math.round(thisval);
    document.getElementById('correction_' + side + '_basevalues_axis').value = thisval.toFixed(0);
    clientdata_setreqest('/Correction/?basket=1&axis_' + side + '=' + thisval.toFixed(0));        
}

function triggerDiameter(diam_id, side, diam, from_mer, to_mer, from_cyl, to_cyl, cylslope_f, cylslope_t, cyl_prefix){
  var sphere = parseFloat(document.getElementById('correction_' + side + '_basevalues_sphere').value);

  var cylinder = Math.abs(parseFloat(document.getElementById('correction_' + side + '_basevalues_cylinder').value));

  var diam = parseFloat(diam);
  var from_mer = parseFloat(from_mer);
  var to_mer = parseFloat(to_mer);

  var from_cyl = parseFloat(from_cyl);
  var to_cyl = parseFloat(to_cyl);
  var cyl_range = to_cyl-from_cyl;

  var cylslope_f = parseFloat(cylslope_f);
  var cylslope_t = parseFloat(cylslope_t);

  if(cyl_prefix == "positive"){

    var show = false;
    if(cylslope_f != 0 && cylslope_t != 0){

      if( from_mer-cylinder <= sphere &&
          to_mer-cylinder >= sphere &&
          from_cyl <= cylinder &&
          to_cyl >= cylinder
      ){ show = true; }

    }else if(cylslope_f == 0 && cylslope_t != 0){

      if( from_mer <= sphere &&
          to_mer-cylinder >= sphere &&
          from_cyl <= cylinder &&
          to_cyl >= cylinder
      ){ show = true; }

    }else if(cylslope_f != 0 && cylslope_t == 0){

      if( from_mer-cylinder <= sphere &&
          to_mer >= sphere &&
          from_cyl <= cylinder &&
          to_cyl >= cylinder
      ){ show = true; }

    }else if(cylslope_f == 0 && cylslope_t == 0){

      if( from_mer <= sphere &&
          to_mer >= sphere &&
          from_cyl <= cylinder &&
          to_cyl >= cylinder
      ){ show = true; }

    }

  }else{

    var show = false;
    if(cylslope_f != 0 && cylslope_t != 0){

      if( from_mer <= sphere &&
          to_mer >= sphere &&
          from_cyl <= cylinder &&
          to_cyl >= cylinder
      ){ show = true; }

    }else if(cylslope_f == 0 && cylslope_t != 0){

      if( from_mer+cylinder <= sphere &&
          to_mer >= sphere &&
          from_cyl <= cylinder &&
          to_cyl >= cylinder
      ){ show = true; }

    }else if(cylslope_f != 0 && cylslope_t == 0){

      if( from_mer <= sphere &&
          to_mer+cylinder >= sphere &&
          from_cyl <= cylinder &&
          to_cyl >= cylinder
      ){ show = true; }

    }else if(cylslope_f == 0 && cylslope_t == 0){

      if( from_mer+cylinder <= sphere &&
          to_mer+cylinder >= sphere &&
          from_cyl <= cylinder &&
          to_cyl >= cylinder
      ){ show = true; }

    }

  }

  if(show){
    if(document.getElementById(diam_id).style.display != "inline"){
      document.getElementById(diam_id).style.display = "inline";
    }
  }
  else{
    if(document.getElementById(diam_id).style.display != "none"){
      document.getElementById(diam_id).style.display = "none";
      document.getElementById(diam_id).style.background = "url(/.file/diameter_bg.gif) center no-repeat";

      ax('/Correction/index.php/?basket=1&diameter_' + side + '=NULL', document.getElementById('basket_dialogue'));
    
    }
  }
}

function check_customer_reference(customer_reference_str) {
    if (string.length(customer_reference_str) > 0 ) {
        return true;
    } else {
        return false;
    }
}

function floorCylinderRange(id, min_cyl, max_cyl, cyl_prefix) {
    if (cyl_prefix == "positive") {
        var min_cyl = parseFloat(min_cyl);
        var max_cyl = parseFloat(max_cyl);
        document.getElementById('max_range_' + id).innerHTML = min_cyl.toFixed(2);
        document.getElementById('min_range_' + id).innerHTML = max_cyl.toFixed(2);
    } else {
        var min_cyl = parseFloat(min_cyl)*(-1);
        var max_cyl = parseFloat(max_cyl)*(-1);
        document.getElementById('max_range_' + id).innerHTML = max_cyl.toFixed(2);
        document.getElementById('min_range_' + id).innerHTML = min_cyl.toFixed(2);
    }
}

function triggerCylinderRange(id, side, from_mer, to_mer, from_cyl, to_cyl, cylslope_f, cylslope_t, cyl_prefix) {
    var sphere = parseFloat(document.getElementById('correction_' + side + '_basevalues_sphere').value);
    var from_mer = parseFloat(from_mer);
    var to_mer = parseFloat(to_mer);
    var from_cyl = parseFloat(from_cyl);
    var to_cyl = parseFloat(to_cyl);
    var cyl_range = to_cyl-from_cyl;
    var cylslope_f = parseFloat(cylslope_f);
    var cylslope_t = parseFloat(cylslope_t);
    var max_cyl = "notset";
    var min_cyl = "notset";
    if (cyl_prefix == "positive") {
        if ((to_mer >= sphere) && (sphere > (to_mer-cyl_range))) {
            if (cylslope_t != 0) {
                max_cyl = Math.abs(to_mer-sphere);
                min_cyl = from_cyl;
            } else {
                max_cyl = to_cyl;
                min_cyl = from_cyl;
            }
        } else if(((to_mer-cyl_range) >= sphere) && (sphere >= from_mer)) {
            max_cyl = to_cyl;
            min_cyl = from_cyl;
        } else if ((from_mer > sphere) && (sphere >= (from_mer-cyl_range))) {
            if (cylslope_f != 0) {
                max_cyl = to_cyl;
                min_cyl = Math.abs(sphere-from_mer);
            }
        }
    } else {
        if (((to_mer+cyl_range) >= sphere) && (sphere > to_mer)) {
            if (cylslope_t == 0) {
                max_cyl = to_cyl;
                min_cyl = Math.abs(sphere-to_mer);
            }
        } else if (to_mer >= sphere && sphere >= (from_mer+cyl_range)) {
            max_cyl = to_cyl;
            min_cyl = from_cyl;
        } else if (((from_mer+cyl_range) > sphere) && (sphere >= from_mer)) {
            if (cylslope_f != 0) {
                max_cyl = to_cyl;
                min_cyl = from_cyl;
            } else {
                max_cyl = Math.abs(from_mer-sphere);
                min_cyl = from_cyl;
            }
        }
    }
    var innerHTML_max_cyl = parseFloat(document.getElementById('max_range_' + id).innerHTML);
    var innerHTML_min_cyl = parseFloat(document.getElementById('min_range_' + id).innerHTML);
    if (cyl_prefix == "positive") {
        if ((max_cyl != "notset") && (max_cyl > innerHTML_max_cyl)) {
            document.getElementById('max_range_' + id).innerHTML = max_cyl.toFixed(2);
        }
    } else {
        if (min_cyl != "notset") {
            min_cyl = min_cyl*(-1);
            if (min_cyl > innerHTML_max_cyl) {
                document.getElementById('max_range_' + id).innerHTML = min_cyl.toFixed(2);
            }
        }
    }
    if (cyl_prefix == "positive") {
        if ((min_cyl != "notset") && (min_cyl < innerHTML_min_cyl)) {
            document.getElementById('min_range_' + id).innerHTML = min_cyl.toFixed(2);
        }
    } else {
        if (max_cyl != "notset") {
            max_cyl = max_cyl*(-1);
            if (max_cyl < innerHTML_min_cyl) {
                document.getElementById('min_range_' + id).innerHTML = max_cyl.toFixed(2);
            }
        }
    }
}




// function checkValue(id, step){
// 
//   var min = parseFloat(document.getElementById('min_range_' + id).innerHTML);
//   var max = parseFloat(document.getElementById('max_range_' + id).innerHTML);
// 
//   var step_int = parseInt(step);
//   var step_str = step;
//   var step = parseFloat(step);
// 
//   var val = document.getElementById(id).value;                                                    //alert(step.length);
//   if(isNaN(val)){ val = 0; }
// 
//   var val = parseFloat(val);
// 
//   if(step == step_int){ var fix = 0; }
//   else{ var fix = step_str.length-2; }
// 
// 
// //       ax('/Correction/index.php/?basket=1&diameter_' + side + '=NULL', document.getElementById('basket_dialogue'));
// 
// 
// }


function focusThis(id){
    document.getElementById(id).focus();
    document.getElementById(id).select();
}


function selectPrism(value, side){

document.getElementById('prism_none_image_' + side).src = "/.file/option.gif";
document.getElementById('prism_selected_image_' + side).src = "/.file/option.gif";
if(value == '0'){ document.getElementById('prism_none_image_' + side).src = "/.file/option_o.gif"; }
else{ document.getElementById('prism_selected_image_' + side).src = "/.file/option_o.gif"; }

document.getElementById('prism_selected_' + side).value = value;
}


function selectExtra(input_type, side){

document.getElementById('extra_none_image_' + side).src = "/.file/option.gif";
document.getElementById('extra_middle_image_' + side).src = "/.file/option.gif";
document.getElementById('extra_border_image_' + side).src = "/.file/option.gif";

document.getElementById('extra_' + input_type + '_image_' + side).src = "/.file/option_o.gif";

document.getElementById('extra_selected_' + side).value = input_type;

}

function sidecopy() {
     
    if (document.getElementById('correction_right_basevalues_sphere')) {
        document.getElementById('correction_left_basevalues_sphere').value = document.getElementById('correction_right_basevalues_sphere').value;
    }
    if (document.getElementById('correction_right_basevalues_cylinder')) {
        document.getElementById('correction_left_basevalues_cylinder').value = document.getElementById('correction_right_basevalues_cylinder').value; 
    }
    if (document.getElementById('correction_right_basevalues_axis')) {
        document.getElementById('correction_left_basevalues_axis').value = document.getElementById('correction_right_basevalues_axis').value; 
    }
    if (document.getElementById('correction_right_basevalues_addition')) {
        document.getElementById('correction_left_basevalues_addition').value = document.getElementById('correction_right_basevalues_addition').value; 
    }
    if ((document.getElementById('correction_right_basevalues_prism1')) && (document.getElementById('correction_left_basevalues_prism1'))) {
        document.getElementById('correction_left_basevalues_prism1').value = document.getElementById('correction_right_basevalues_prism1').value;
        focusThis('correction_left_basevalues_prism1'); 
        selectPrism('1', 'left'); 
    }
    if ((document.getElementById('correction_right_basevalues_prism2')) && (document.getElementById('correction_left_basevalues_prism2'))) {
        document.getElementById('correction_left_basevalues_prism2').value = document.getElementById('correction_right_basevalues_prism2').value;
        focusThis('correction_left_basevalues_prism2'); 
        selectPrism('2', 'left'); 
    }
    if ((document.getElementById('correction_right_basevalues_base1')) && (document.getElementById('correction_left_basevalues_base1'))) {
        document.getElementById('correction_left_basevalues_base1').value = document.getElementById('correction_right_basevalues_base1').value;
    }
    if ((document.getElementById('correction_right_basevalues_base2')) && (document.getElementById('correction_left_basevalues_base2'))) {
        document.getElementById('correction_left_basevalues_base2').value = document.getElementById('correction_right_basevalues_base2').value;
    }
    
   document.forms[0].diameter_right_button.value = '6570';
   document.forms[0].submit();
}