﻿// set group values
var groupValueAry = new Array(15);
for (var i = 0; i < groupValueAry.length; i++){
  groupValueAry[i] = i + 1;
}

// set results div
var results = document.getElementById('results').style;

 // set default values
var groupValue = document.getElementById('group');
var accountEquity = document.getElementById('equity');
var contract = document.getElementById('contracts');

// declare maximum leverage calculation elements
var levMargin = document.getElementById('levMargin');
var levValue = document.getElementById('levValue');
var levTotal = document.getElementById('levTotal');

// declare maximum margin calculation elements
var marPositions = document.getElementById('marPositions');
var marContracts = document.getElementById('marContracts');
var marPFGBest = document.getElementById('marPFGBest');
var marTotal = document.getElementById('marTotal');

// declare subscription fee elements
var subRate = document.getElementById('subRate');
var subEquity = document.getElementById('subEquity');
var subFee = document.getElementById('subFee');

function calculate(){
  // check for empty input
  if ((accountEquity.value != "") && (contract.value != "")){
  
    // if results are hidden, show them
    if (results.display == "none"){
      results.display = "block";
    }
        
    // calculate maximum margin
    marPositions.innerHTML = addCommas(groupValueAry[groupValue.value]);
    var x = groupValueAry[groupValue.value] * contract.value;
    marContracts.innerHTML = addCommas(x);
    var y = (groupValueAry[groupValue.value] * contract.value) * marPFGBest.innerHTML;
    marTotal.innerHTML = addCommas(y);
    
    // calculate maximum leverage
    levMargin.innerHTML = addCommas(((y / accountEquity.value) * 100).toFixed(1));
    levValue.innerHTML = addCommas(10000 * x);
    levTotal.innerHTML = addCommas(((10000 * x) / accountEquity.value).toFixed(1));
    
    // calculate subscription fees
    subFee.innerHTML = addCommas(subRate.innerHTML * x);
    subEquity.innerHTML = addCommas(((subRate.innerHTML * x / accountEquity.value) * 100).toFixed(2));
  }
}

// function to add commas for readability
function addCommas(nStr){nStr += ''; x = nStr.split('.'); x1 = x[0]; x2 = x.length > 1 ? '.' + x[1] : '';var rgx = /(\d+)(\d{3})/;while (rgx.test(x1)){x1 = x1.replace(rgx, '$1' + ',' + '$2');}return x1 + x2;}

// reset function
function resetCalc(){
  // if results are showing, hide them
  if (results.display == "block"){
    results.display = "none";
  }
  
  groupValue.value = "0";
  accountEquity.value = "";
  contract.value = "";
}

function checkInput(x){x.value = x.value.replace(/[^0-9\-]|(-{2,})/gi, (RegExp.$1.indexOf("-") > -1) ? "-" : "");}
