//Life Cover Shortfall

//Variables

//height
var height_min = 122;
var height_max = 215;
var height_initial = 182;
var current_height_value = height_initial;
var heightValues = null;

//weight
var weight_min = 30;
var weight_max = 130;
var weight_initial = 82;
var current_weight_value = weight_initial;
var weightValues = null;



//Only call the function when you need to - on mouse up
var cancelAjax = true;


// Set Inital Values and create slider Arrays

function InitializeHowMuchCanIBorrowCalculator()
{   

//height slider values
	heightValues = CreateSliderValues(new Array(), height_min, 215, 1);

	
//weight slider values
	weightValues = CreateSliderValues(new Array(), weight_min, 130, 1);
    


	//height slider
	   $('#heightTrack').slider({
        min: 0,
        max: heightValues.length - 1,
        steps: heightValues.length,
        change: function(e, ui)
		
        {
            current_height_value = heightValues[ui.value]; 
            ShowResult();
        },
        slide: function(e, ui)
        {
            $('#heightTextInput').val(heightValues[ui.value]);
        }
    });



//weight slider
   $('#weightTrack').slider({
        min: 0,
        max: weightValues.length - 1,
        steps: weightValues.length,
        change: function(e, ui)
		
        {
            current_weight_value = weightValues[ui.value]; 
            ShowResult();
        },
        slide: function(e, ui)
        {
            $('#weightTextInput').val(weightValues[ui.value]);
        }
    });

 
//height
    $('#heightTextInput').change(function(eventArgs) { return handleKeyPress(eventArgs, heightValues, 'heightTrack'); });
    $('#heightTextInput').val(current_height_value);
	
//weight
    $('#weightTextInput').change(function(eventArgs) { return handleKeyPress(eventArgs, weightValues, 'weightTrack'); });
    $('#weightTextInput').val(current_weight_value);
	

	
//height
    $('#heightTrack').slider("value", FindValueIndex(heightValues, current_height_value));

//loans
    $('#weightTrack').slider("value", FindValueIndex(weightValues, current_weight_value));


       
	// setting this to false will trigget the ajax call
	cancelAjax = false;
    
}

function handleKeyPress(eventArgs, valuesArr, trackId)
{
//    if (eventArgs.keyCode == 13)
//    {
        var v = parseFloat($(eventArgs.target).val());

        // is it a number?
        if (isNaN(v))
        {
            alert('Sorry, the amount is invalid.');
            return false;
        }
        else
        {
            var sliderIdx = FindValueIndex(valuesArr, v);

            if (!isNaN(sliderIdx))
            {
                // cancel this ajax request - we'll call it later on
                cancelAjax = true;
                $('#' + trackId).slider("value", sliderIdx);
                cancelAjax = false;
            }
            else
            {
                alert('Please enter a value higher than ' + valuesArr[0] + ' and lower than ' + valuesArr[valuesArr.length - 1] + '.');
                return false;
            }
        }

        $(eventArgs.target).val(v);

       
		
		
        ShowResult(); // calling the ajax request here will send the correct "current" values
        //return false;
 
}



function ShowResult()
{

// don't keep doing it, honestly, everything will go crazy.  
    if (cancelAjax) { return; }    
	var height = 	parseFloat(document.getElementById("heightTextInput").value);
	height = height/100
	var weight = 	parseFloat(document.getElementById("weightTextInput").value);
	var BMI = weight / (height * height)
	BMI = parseInt(BMI*100)/100
	var targetlower = 18.5 * (height * height)
	targetlower = parseInt(targetlower*100)/100
	var targethigher = 25 * (height * height)
	targethigher = parseInt(targethigher*100)/100
	var category = ""
	
	if (BMI<18.5){category="Under weight"}
	else if (BMI<25){category="Healthy weight"}
	else if (BMI<30){category="Overweight"}
	else if (BMI<40){category="Obese"}
	else if (BMI>39.99){category="Severely Obese"}

	
	document.getElementById("BMI").innerHTML = BMI
	document.getElementById("category").innerHTML = category
	document.getElementById("targetlower").innerHTML = targetlower
	document.getElementById("targethigher").innerHTML = targethigher	
	
	document.getElementById('resultPane').style.display = "block";


}

function calculateheight(){
var feet = document.getElementById("heightfeet").value; 
var inches = document.getElementById("heightinches").value; 
if(isNaN(feet)){document.getElementById("heightmessage").innerHTML ="Please only enter numbers"}
if(isNaN(inches)){document.getElementById("heightmessage").innerHTML ="Please only enter numbers"}
var cm = ((30.48 * feet) + (2.54 * inches))
cm = Math.round(cm)
if(isNaN(cm)){document.getElementById("heightmessage").innerHTML ="Please only enter numbers"}
else {document.getElementById("heightTextInput").value = cm
$('#heightTrack').slider("value", (cm-122));
}
}

function calculateweight(){
var stones = document.getElementById("weightstones").value; 
var pounds = document.getElementById("weightpounds").value; 
if(isNaN(stones)){document.getElementById("weightmessage").innerHTML ="Please only enter numbers"}
if(isNaN(pounds)){document.getElementById("weightmessage").innerHTML ="Please only enter numbers"}
stones = parseFloat(stones.replace(/[^0-9.]/g, ''));
pounds = parseFloat(pounds.replace(/[^0-9.]/g, ''));


var weightdecimal = stones + (pounds/14);


var weight = (6.35029318 * weightdecimal)
weight = Math.round(weight)
if(isNaN(weight)){document.getElementById("weightmessage").innerHTML ="Please only enter numbers"}
else {document.getElementById("weightTextInput").value = weight
$('#weightTrack').slider("value", (weight-30));
}
}




function showeelement(id){
document.getElementById(id).style.display = "block";
}

$(document).ready(InitializeHowMuchCanIBorrowCalculator);







 
