Lookup Table Test

Final working version

by scotp71

HTML

<h1>
Lookup Table
</h1>
<br/>

<input type="textbox" id="v" value="" />
<input type="button" value="Enter Value" onclick="doRainfallLookup()"/>


<div id="output"></div>

JavaScript

//Look up table
function rainfallLookup(_val){
	var results = "";
  var lookup = {
  	"0": 0,
    "1": 0.04,
    "2": 0.11,
    "3": 0.60,
    "4": 0.87,
    "5": 0.95,
    "6": 1.00
  };
  
  results = lookup[_val];
  return results;
}

//Main function to deal with input below/above table values and
//to determine if interpolation is needed
function doRainfallLookup(){
	var val = document.getElementById("v").value;
  if (val < 0){
  	document.getElementById("output").innerHTML = "Enter a number greater than 0.";
    return;
  }
  if (val > 6){
  	document.getElementById("output").innerHTML = "Enter a number less than 6.";
    return;
  }
  for (var i=0; i<7; i++){
  	if (val==i){		
      document.getElementById("output").innerHTML = "Results: " + rainfallLookup(val);
		return;
    }
	}
  document.getElementById("output").innerHTML = figureInterpol(val);
}

//Global variables
var dec = 0;
var lower = 0;
var upper = 0;
var calc = 0;
var calc2 = 0;
var a =0;
var b =0;

//fucntion to set up values used to calculate interpolation values 
function figureInterpol(_val){
	var val = _val;
  if(val < 1){
    calc2 = calcInterpol(val, 0, 1);
    return calc2;
  }
  else if (val > 1 && val < 2){ 
    calc2 = calcInterpol(val, 1, 2);
    return calc2;
  }
  else if (val > 2 && val < 3){
    calc2 = calcInterpol(val, 2, 3);
    return calc2;
  }
  else if (val > 3 && val < 4){
    calc2 = calcInterpol(val, 3, 4);
    return calc2;
  }
  else if (val > 4 && val < 5){
    calc2 = calcInterpol(val, 4, 5);
    return calc2;
  }
  else{
    calc2 = calcInterpol(val, 5, 6);
    return calc2;
  }
}

//function to calculation interpolation values
function calcInterpol(_val, a, b){
		var val = _val;
    lower = rainfallLookup(a);
    upper = rainfallLookup(b);
    dec = upper - lower;
    calc = ((val-a) * dec) + lower;
    calc2 = calc.toFixed(2);
    return calc2;
}