//Schnickschnack javascript for cointosscalc.html
//Copyright 2008 by Stefan Hollos and Richard Hollos

// function initPage() is a Window.onload event handler
//   invoked in the <body> tag of multireturn.html
function initPage(){

simulateCoinToss();
kellyf();

}

function kellyf()
{
    var prob = parseFloat(document.cointoss.prob.value);
    var ret = parseFloat(document.cointoss.ret.value);
    var loss = parseFloat(document.cointoss.loss.value);
    var kf = -((ret-loss)*prob + loss) / (ret * loss);
    document.cointoss.kf.value = kf.toFixed(6);
    document.cointoss.betfrac.value = kf.toFixed(6);
}

function simulateCoinToss()
{
    var prob = parseFloat(document.cointoss.prob.value);
    var ret = parseFloat(document.cointoss.ret.value);
    var loss = parseFloat(document.cointoss.loss.value);
    var nbets = parseFloat(document.cointoss.nbets.value);
    var betfrac = parseFloat(document.cointoss.betfrac.value);
    var vec = sim_fbet(nbets,[ret,loss],[prob,1-prob],betfrac);
    var outstr = "";

    for(var i=0; i<vec.length; ++i)
        outstr += vec[i].valueOf().toFixed(4) + "\n";

    /* write result to web page, removing the ", " at end of outstr. */
    //document.cointoss.results.value = outstr.substr(0, outstr.length-2);
    document.cointoss.results.value = outstr;

    drawSimPlot(vec);
}

function drawSimPlot(data2plot)
{
  var d1 = new Array(data2plot.length);

  for(var i=0; i<data2plot.length; ++i)
    d1[i] = [i+1,data2plot[i]];

  new Proto.Chart($('PlotContainer'),
    [{
      data: d1,label: "Simulation Dataset",
      lines: {show: true, fill: false},
      points: {show: true}
    }]
  );

  /*  Make plot label */
  var container = document.getElementById("PlotContainer");
  var plotlabel = document.createElement("div");
  plotlabel.style.position = "absolute";
  plotlabel.style.left = (Math.floor(container.offsetWidth/4) + 50) + "px";
  plotlabel.style.top = "-25px";
  var plotlabeltext = document.createElement("i");
  plotlabeltext.innerHTML = "<strong>" + "Total Assets" + "</strong>";
  plotlabel.appendChild(plotlabeltext);
  container.appendChild(plotlabel);
}
