<!--
//This code supports the Runtime Conversions application

function square(n) {
    return n*n
}
function toOneDecimal(n) {
    n = Math.round(n*10.0)
    var w = Math.floor(n/10)
    var f = Math.floor(n%10)
    return w + "." + f
}
function speed_from_kFactor(kFactor, r_ratio) {
    return Math.round(Math.sqrt((Math.log(r_ratio)/kFactor) * (1.0e13/3600.0))/0.10472)
}
function kFactor_from_speed(speed, r_ratio) {
    return (Math.log(r_ratio)/square(speed * 0.10472)) * (1.0e13/3600.0);
}

var rMAX1
var rMIN1
var maxRPM1
var rMAX2
var rMIN2
var maxRPM2
var i

function setup_Rotor_vars (form, whichRotors) {
    if (whichRotors & 1) {
       var ri=form.Rotor1.selectedIndex;
       if (ri < 0) {	// shouldn't happen
          form.rMAX1.value = ""
          form.rMIN1.value = ""
          form.maxRPM1.value = ""
          return false
       }
       if (ri == 0) {	// -Custom- rotor
          rMAX1=parseFloat(form.rMAX1.value)
          rMIN1=parseFloat(form.rMIN1.value)
          maxRPM1=parseFloat(form.maxRPM1.value)
       } else {
          rMAX1=rMAXmm[ri]
          rMIN1=rMINmm[ri]
          maxRPM1=RmaxRPM[ri]
          form.rMAX1.value = rMAX1
          form.rMIN1.value = rMIN1
          form.maxRPM1.value = maxRPM1
       }
    }

    if (whichRotors & 2) {
       var ri=form.Rotor2.selectedIndex;
       if (0 >= ri) {	//  -ve ri shouldn't happen // reversed compare because (ri "le" 0) doesn't parse right (NS)
          form.rMAX2.value = ""
          form.rMIN2.value = ""
          form.maxRPM2.value = ""
          return false
       }
       rMAX2=rMAXmm[ri]
       rMIN2=rMINmm[ri]
       maxRPM2=RmaxRPM[ri]
       form.rMAX2.value = rMAX2
       form.rMIN2.value = rMIN2
       form.maxRPM2.value = maxRPM2
    }
    return true
}

function calcKF1(form) {
    if (!setup_Rotor_vars (form, 1)) {
        form.kFactor1.value = ""
        return 0
    }
    var speed = parseFloat(form.RPM1.value)
    if (0 >= speed) {
        form.kFactor1.value = ""
        return 0
    }
    if (speed > maxRPM1) {
        speed = maxRPM1
        form.RPM1.value = speed
    }
    var kFactor = kFactor_from_speed(speed, rMAX1/rMIN1)
    form.kFactor1.value = toOneDecimal(kFactor)
    return kFactor
}
function calcKF2(form) {
    if (!setup_Rotor_vars (form, 2)) {
        form.kFactor2.value = ""
        return 0
    }
    var speed = parseFloat(form.RPM2.value)
    if (0 >= speed) {
        form.kFactor2.value = ""
        return 0
    }
    if (speed > maxRPM2) {
        speed = maxRPM2
        form.RPM2.value = speed
    }
    var kFactor = kFactor_from_speed(speed, rMAX2/rMIN2)
    form.kFactor2.value = toOneDecimal(kFactor)
    return kFactor
}
function compute_Time2(form) {
    var time1 = parseFloat(form.Time1.value)
    var kFactor1 = calcKF1(form)
    var kFactor2 = calcKF2(form)
    if (kFactor1 != 0 && kFactor2 != 0 && time1 != 0) {
        form.Time2.value = Math.round((time1 * kFactor2) / kFactor1)
    }
    return false
}

function go(form)
{
location=document.test.RightMenu.options[document.test.RightMenu.selectedIndex].value
}

//-->
