var propValue = 0.0;

var shareAmt = 0.0;
    
var income = 0.0;
    
var deposit = 0.0;
    
var outgoings = 0.0;

var expandedPropVal = 0.0;

var percentage = 0.0;

var mortgage = 0.0;

var comparison = 0.0;

var rent = 0.0;

var serviceCharge = 25.40;

var term = 25;

var repayment = 0.0;

/*
 * Get preset value of property from form and
 * convert to an integer
 */
window.onload = function(){    
    propValue = document.getElementById("propvalue");
    propValue = propValue.value;
    propValue = parseInt(propValue);
    if(isNaN(propValue)){
        propValue = 0;
    }        
}

function setPropVal(el){
    var aPropValue = "";
    propValue = el;
    propValue = propValue.value;
    for(var i=0; i<propValue.length; i++){
        if(propValue.charAt(i) >= '0' && propValue.charAt(i) <= '9'){
            aPropValue += propValue.charAt(i);
        }
    }
    aPropValue = parseInt(aPropValue);
    propValue = aPropValue;
    if(isNaN(propValue)){
        propValue = 0;
    }
}

function enterPropVal(event, el){
    var key = event.keyCode;
    if (key == 13){
        setPropVal(el);
    }    
}

function setShareAmt(el){
    if(el.value != "none"){
        shareAmt = parseInt(el.value);
    }
    
}

function enterShareAmt(event, el){
    var key = event.keyCode;
    if (key == 13){
        setShareAmt(el);
    }    
}

function setIncome(el){
    income = el;
    income = income.value;
    income = parseInt(income);
    if(isNaN(income)){
        income = 0;
    }
    
}

function enterIncome(event, el){
    var key = event.keyCode;
    if (key == 13){
        setIncome(el);
    }
}

function setDeposit(el){
    deposit = el;
    deposit = deposit.value;
    deposit = parseFloat(deposit);
    if(isNaN(deposit)){
        deposit = 0;
    }
    
}

function enterDeposit(event, el){
    var key = event.keyCode;
    if (key == 13){
        setDeposit(el);
    }
}

function setOutgoings(el){
    outgoings = el;
    outgoings = outgoings.value;
    outgoings = parseFloat(outgoings);
    if(isNaN(outgoings)){
        outgoings = 0;
    }
    
}

function enterOutgoings(event, el){
    var key = event.keyCode;
    if (key == 13){
        setOutgoings(el);
    }
}

/*
 * If all values are set then display the results 
 * of the calculations
 */
function showResult(){
    var fail1 = document.getElementById("fail1");
    var fail2 = document.getElementById("fail2");
    var congrats = document.getElementById("congrats");    
    setVariables();
    var aMortgage = setMortgage();
	var aComparison = setComparison();
    var aRent = setRent();
    var aTotal = setTotalAmount(aMortgage, aRent);
    var disposableIncome = setDisposableIncome(aTotal);
	
	//alert('Disposable income is '+disposableIncome+'% of income after outgoings');
    
	if(disposableIncome >= 54){
        //alert(disposableIncome);
        fail1.style.display = "none";
        congrats.style.display = "none";
        fail2.style.display = "block";
    }else if(disposableIncome >=45 && disposableIncome < 54){
        //alert(disposableIncome);
        fail1.style.display = "none";
        fail2.style.display = "none";
        congrats.style.display = "block";
    }else{
        //alert(disposableIncome);
        fail2.style.display = "none";
        congrats.style.display = "none";
        fail1.style.display = "block";
    }
    //alert("Property Value:- "+propValue+"\nShare:- "+shareAmt+"\nIncome:- "+income+"\nDeposit:- "+deposit+"\nOutgoings:- "+outgoings);
}



function setVariables(){
    expandedPropVal = propValue;
    percentage = shareAmt / 100;
    mortgage = expandedPropVal * percentage - deposit;
	comparison = expandedPropVal * 1 - deposit;
    rent = expandedPropVal - mortgage - deposit;
}

function setMortgage(){
    //totalCost = mortgage * 1.065;//interest rate
	//repayment = (totalCost / (term*12));
	repayment = (mortgage/1000)*6.83;
    repayment = repayment.toFixed(2);
    var thisMortgage = repayment;
    var mortgageField = document.getElementById("mortgage");
    mortgageField.value = thisMortgage;
    return repayment;
}

function setComparison(){
	//comparison = comparison * 0.065;//interest rate
	//repayment = (expandedPropVal / (term*12));
    //comparison = comparison / 12;
	//comparison = comparison + repayment;
	comparison = (expandedPropVal/1000)*6.83;
    comparison = comparison.toFixed(2);
	var thisComparison = comparison;
	var comparisonField = document.getElementById("comparison");
	comparisonField.value = thisComparison;
	return comparison;
}

function setRent(){
    rent = rent * 0.0275;
    rent = rent / 12;
	rent = rent + serviceCharge;
    rent = rent.toFixed(2);
    var thisRent = rent;
    var rentField = document.getElementById("rent");
    rentField.value = thisRent;
    return rent;
}

function setTotalAmount(aMortgage, aRent){
    aMortgage = parseFloat(aMortgage);
    aRent = parseFloat(aRent);    
    var total = aMortgage + aRent;
    total = total.toFixed(2);
    var totalField = document.getElementById("total");
    totalField.value = total;
    return total;
}

function setDisposableIncome(total){    
    var aTotal = parseFloat(total);
    var totalOutgoings = parseFloat(outgoings);
    totalOutgoings = totalOutgoings + aTotal;
    //alert(totalOutgoings);
    var disposableIncome = totalOutgoings / income;
    disposableIncome = parseFloat(disposableIncome.toFixed(2) * 100);
    disposableIncome = 100 - disposableIncome;
    //alert(disposableIncome);
    return disposableIncome;
}