get_category_names = function(i) { i = parseFloat(i); var cat_names = []; for (var j = -20; j <= 20; ++j) { if (isNaN(i) || Math.abs(j) % 4 !== 0) { cat_names.push("") } else { cat_names.push((i+(j/20)).toFixed(2).toString()); } } return cat_names; }; calc_bar_values = function(conf) { var bar_values = []; var c_inv = 20 - conf; var f = 1 - (conf * 0.03); {#var x = c_inv * 5 / 2;#} var x = (30 * Math.log(c_inv + 1)) / 2; if (conf === 0) { var uni = 100 / 41; for (var j = -20; j <= 20; ++j) { if (j !== 0) { bar_values.push({y: uni, color: 'black'}) } else { bar_values.push({y: uni, color: 'gray'}) } } } else { for (var j = -20; j <= 20; ++j) { if (j >= -c_inv && j <= c_inv) { if (j !== 0) { var j_abs = Math.abs(j); var m = x * Math.pow(f, j_abs - 1) * (1 - f) / (1 - Math.pow(f, c_inv)); bar_values.push({y: m, color: 'gray'}) } else if (j === 0) { var m = 100 - x * 2; bar_values.push({y: m, color: 'black'}) } } else { bar_values.push({y: 0, color: 'gray'}) } } } return bar_values; }; updateBars = function() { valuation = parseFloat(document.getElementById("answer").value); slid_value = parseInt(document.getElementById("confidence").value); // change ("form")[1] if I want to have the slider without the guess on the same page myChart.series[0].setData(calc_bar_values(slid_value)); myChart.xAxis[0].setCategories(get_category_names(valuation)); //myChart.series[2].setData([slid_value/2]); // ignore };