<!DOCTYPE html>
<meta charset="utf-8">
<link href="../src/d3.css" rel="stylesheet" type="text/css">
<style>

body {
  overflow-y:scroll;
}

text {
  font: 12px sans-serif;
}

</style>
<body>

<svg id="test1"></svg>

<script src="../lib/d3.v2.js"></script>
<script src="../nv.d3.js"></script>
<script src="../src/models/bar.js"></script>
<script> 

  var testdata = [
    { 
      label: "One is a very long",
      y: 5
    },
    { 
      label: "Two is also very long",
      y: 2
    },
    { 
      label: "Three",
      y: 9
    },
    { 
      label: "Four",
      y:  7
    },
    { 
      label: "Five",
      y: 4
    },
    {
        label: "Six",
        y: 3
    }
  ];


  var testdata2 = [
      {
          label: "One is a very long",
          y: 1
      },
      {
          label: "Two is also very long",
          y: 12
      },
      {
          label: "Three",
          y: -9
      },
      {
          label: "Four",
          y:  4
      },
      {
          label: "Five",
          y: 6
      }
  ];

  var td = 0;
  var a = (Math.random()*10)+1;
  if (a > 5) td = 1;

//Format A
nv.addGraph({
  generate: function() {
    var width = nv.utils.windowSize().width - 40,
        height = nv.utils.windowSize().height - 40;

    var chart = nv.models.bar()
        .width(width)
        .height(height)
        .labelField('label')
        .dataField('y')
        .showLabels(true)
        .title("This is a sample chart title")
         ;

    if (td === 0) {
      d3.select("#test1")
        .attr('width', width)
        .attr('height', height)
        .datum(testdata)
        .call(chart);
    } else {
        d3.select("#test1")
                .attr('width', width)
                .attr('height', height)
                .datum(testdata2)
                .call(chart);
    }

    return chart;
  },
  callback: function(graph) {

      graph.dispatch.on('tooltipShow', function(e) {
          var offsetElement = document.getElementById("chart"),
                  left = e.pos[0],
                  top = e.pos[1];

          var content = '<h3>' + e.label + '</h3>' +
                  '<p>' +
                  e.value +
                  '</p>';

          nv.tooltip.show([left, top], content);
      });

      graph.dispatch.on('tooltipHide', function(e) {
          nv.tooltip.cleanup();
      });

      graph.dispatch.on('elementClick', function(e) {
          console.log("Bar Click",e);
      });

      graph.dispatch.on('chartClick', function(e) {
          console.log("Chart Click",e);
      });

      graph.dispatch.on('chartClick', function(e) {
          console.log('Click Switching to');
          if (td === 0) {
              d3.select("#test1")
                      .datum(testdata2)
                      .call(graph);
              td = 1;

          } else {
              d3.select("#test1")
                      .datum(testdata)
                      .call(graph);
              td = 0;
          }
      });


      window.onresize = function() {
      var width = nv.utils.windowSize().width - 40,
          height = nv.utils.windowSize().height - 40;

      d3.select("#test1")
        .attr('width', width)
        .attr('height', height)
        .call(
          graph
            .width(width)
            .height(height)
        )
    };
  }
});

/*
//Format B
nv.addGraph(function() {
    var selection = d3.select("body")
        .datum(irwinHallDistribution(10000, 10));

    var chart = nv.models.histogram()
          .bins(d3.scale.linear().ticks(20))
          .tickFormat(d3.format(".02f"));

    chart(selection);

    return chart;
}, function(g) { console.log(g.width(), g.height()) })

//Format C
nv.addGraph(function() {
  return nv.models.histogram()
           .bins(d3.scale.linear().ticks(20))
           .tickFormat(d3.format(".02f"))(
             d3.select("body")
              .datum(irwinHallDistribution(10000, 10))
             );
}, function(g) { console.log(g.width(), g.height()) })
*/



</script>