$(function () {

'use strict';

/* ChartJS
 * -------
 * Here we will create a few charts using ChartJS
 */

// -----------------------
// - MONTHLY SALES CHART -
// -----------------------

// Get context with jQuery - using jQuery's .get() method.
var salesChartCanvas = $('#salesChart').get(0).getContext('2d');
// This will get the first returned node in the jQuery collection.
var salesChart       = new Chart(salesChartCanvas);

var salesChartData = {
  labels  : ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
  datasets: [
    {
      label               : 'Electronics',
      fillColor           : 'rgb(210, 214, 222)',
      strokeColor         : 'rgb(210, 214, 222)',
      pointColor          : 'rgb(210, 214, 222)',
      pointStrokeColor    : '#c1c7d1',
      pointHighlightFill  : '#fff',
      pointHighlightStroke: 'rgb(220,220,220)',
      data                : [65, 59, 80, 81, 56, 55, 40]
    },
    {
      label               : 'Digital Goods',
      fillColor           : 'rgba(60,141,188,0.9)',
      strokeColor         : 'rgba(60,141,188,0.8)',
      pointColor          : '#3b8bba',
      pointStrokeColor    : 'rgba(60,141,188,1)',
      pointHighlightFill  : '#fff',
      pointHighlightStroke: 'rgba(60,141,188,1)',
      data                : [28, 48, 40, 19, 86, 27, 90]
    }
  ]
};

var salesChartOptions = {
  // Boolean - If we should show the scale at all
  showScale               : true,
  // Boolean - Whether grid lines are shown across the chart
  scaleShowGridLines      : false,
  // String - Colour of the grid lines
  scaleGridLineColor      : 'rgba(0,0,0,.05)',
  // Number - Width of the grid lines
  scaleGridLineWidth      : 1,
  // Boolean - Whether to show horizontal lines (except X axis)
  scaleShowHorizontalLines: true,
  // Boolean - Whether to show vertical lines (except Y axis)
  scaleShowVerticalLines  : true,
  // Boolean - Whether the line is curved between points
  bezierCurve             : true,
  // Number - Tension of the bezier curve between points
  bezierCurveTension      : 0.3,
  // Boolean - Whether to show a dot for each point
  pointDot                : false,
  // Number - Radius of each point dot in pixels
  pointDotRadius          : 4,
  // Number - Pixel width of point dot stroke
  pointDotStrokeWidth     : 1,
  // Number - amount extra to add to the radius to cater for hit detection outside the drawn point
  pointHitDetectionRadius : 20,
  // Boolean - Whether to show a stroke for datasets
  datasetStroke           : true,
  // Number - Pixel width of dataset stroke
  datasetStrokeWidth      : 2,
  // Boolean - Whether to fill the dataset with a color
  datasetFill             : true,
  // String - A legend template
  legendTemplate          : '<ul class=\'<%=name.toLowerCase()%>-legend\'><% for (var i=0; i<datasets.length; i++){%><li><span style=\'background-color:<%=datasets[i].lineColor%>\'></span><%=datasets[i].label%></li><%}%></ul>',
  // Boolean - whether to maintain the starting aspect ratio or not when responsive, if set to false, will take up entire container
  maintainAspectRatio     : true,
  // Boolean - whether to make the chart responsive to window resizing
  responsive              : true
};

// Create the line chart
salesChart.Line(salesChartData, salesChartOptions);

// ---------------------------
// - END MONTHLY SALES CHART -
// ---------------------------

// -------------
// - PIE CHART -
// -------------
// Get context with jQuery - using jQuery's .get() method.
var pieChartCanvas = $('#pieChart').get(0).getContext('2d');
var pieChart       = new Chart(pieChartCanvas);
var PieData        = [
  {
    value    : 700,
    color    : '#f56954',
    highlight: '#f56954',
    label    : 'Chrome'
  },
  {
    value    : 500,
    color    : '#00a65a',
    highlight: '#00a65a',
    label    : 'IE'
  },
  {
    value    : 400,
    color    : '#f39c12',
    highlight: '#f39c12',
    label    : 'FireFox'
  },
  {
    value    : 600,
    color    : '#00c0ef',
    highlight: '#00c0ef',
    label    : 'Safari'
  },
  {
    value    : 300,
    color    : '#3c8dbc',
    highlight: '#3c8dbc',
    label    : 'Opera'
  },
  {
    value    : 100,
    color    : '#d2d6de',
    highlight: '#d2d6de',
    label    : 'Navigator'
  }
];
var pieOptions     = {
  // Boolean - Whether we should show a stroke on each segment
  segmentShowStroke    : true,
  // String - The colour of each segment stroke
  segmentStrokeColor   : '#fff',
  // Number - The width of each segment stroke
  segmentStrokeWidth   : 1,
  // Number - The percentage of the chart that we cut out of the middle
  percentageInnerCutout: 50, // This is 0 for Pie charts
  // Number - Amount of animation steps
  animationSteps       : 100,
  // String - Animation easing effect
  animationEasing      : 'easeOutBounce',
  // Boolean - Whether we animate the rotation of the Doughnut
  animateRotate        : true,
  // Boolean - Whether we animate scaling the Doughnut from the centre
  animateScale         : false,
  // Boolean - whether to make the chart responsive to window resizing
  responsive           : true,
  // Boolean - whether to maintain the starting aspect ratio or not when responsive, if set to false, will take up entire container
  maintainAspectRatio  : false,
  // String - A legend template
  legendTemplate       : '<ul class=\'<%=name.toLowerCase()%>-legend\'><% for (var i=0; i<segments.length; i++){%><li><span style=\'background-color:<%=segments[i].fillColor%>\'></span><%if(segments[i].label){%><%=segments[i].label%><%}%></li><%}%></ul>',
  // String - A tooltip template
  tooltipTemplate      : '<%=value %> <%=label%> users'
};
// Create pie or douhnut chart
// You can switch between pie and douhnut using the method below.
pieChart.Doughnut(PieData, pieOptions);
// -----------------
// - END PIE CHART -
// -----------------

/* jVector Maps
 * ------------
 * Create a world map with markers
 */
$('#world-map-markers').vectorMap({
  map              : 'world_mill_en',
  normalizeFunction: 'polynomial',
  hoverOpacity     : 0.7,
  hoverColor       : false,
  backgroundColor  : 'transparent',
  regionStyle      : {
    initial      : {
      fill            : 'rgba(210, 214, 222, 1)',
      'fill-opacity'  : 1,
      stroke          : 'none',
      'stroke-width'  : 0,
      'stroke-opacity': 1
    },
    hover        : {
      'fill-opacity': 0.7,
      cursor        : 'pointer'
    },
    selected     : {
      fill: 'yellow'
    },
    selectedHover: {}
  },
  markerStyle      : {
    initial: {
      fill  : '#00a65a',
      stroke: '#111'
    }
  },
  markers          : [
    { latLng: [41.90, 12.45], name: 'Vatican City' },
    { latLng: [43.73, 7.41], name: 'Monaco' },
    { latLng: [-0.52, 166.93], name: 'Nauru' },
    { latLng: [-8.51, 179.21], name: 'Tuvalu' },
    { latLng: [43.93, 12.46], name: 'San Marino' },
    { latLng: [47.14, 9.52], name: 'Liechtenstein' },
    { latLng: [7.11, 171.06], name: 'Marshall Islands' },
    { latLng: [17.3, -62.73], name: 'Saint Kitts and Nevis' },
    { latLng: [3.2, 73.22], name: 'Maldives' },
    { latLng: [35.88, 14.5], name: 'Malta' },
    { latLng: [12.05, -61.75], name: 'Grenada' },
    { latLng: [13.16, -61.23], name: 'Saint Vincent and the Grenadines' },
    { latLng: [13.16, -59.55], name: 'Barbados' },
    { latLng: [17.11, -61.85], name: 'Antigua and Barbuda' },
    { latLng: [-4.61, 55.45], name: 'Seychelles' },
    { latLng: [7.35, 134.46], name: 'Palau' },
    { latLng: [42.5, 1.51], name: 'Andorra' },
    { latLng: [14.01, -60.98], name: 'Saint Lucia' },
    { latLng: [6.91, 158.18], name: 'Federated States of Micronesia' },
    { latLng: [1.3, 103.8], name: 'Singapore' },
    { latLng: [1.46, 173.03], name: 'Kiribati' },
    { latLng: [-21.13, -175.2], name: 'Tonga' },
    { latLng: [15.3, -61.38], name: 'Dominica' },
    { latLng: [-20.2, 57.5], name: 'Mauritius' },
    { latLng: [26.02, 50.55], name: 'Bahrain' },
    { latLng: [0.33, 6.73], name: 'São Tomé and Príncipe' }
  ]
});

/* SPARKLINE CHARTS
 * ----------------
 * Create a inline charts with spark line
 */

// -----------------
// - SPARKLINE BAR -
// -----------------
$('.sparkbar').each(function () {
  var $this = $(this);
  $this.sparkline('html', {
    type    : 'bar',
    height  : $this.data('height') ? $this.data('height') : '30',
    barColor: $this.data('color')
  });
});

// -----------------
// - SPARKLINE PIE -
// -----------------
$('.sparkpie').each(function () {
  var $this = $(this);
  $this.sparkline('html', {
    type       : 'pie',
    height     : $this.data('height') ? $this.data('height') : '90',
    sliceColors: $this.data('color')
  });
});

// ------------------
// - SPARKLINE LINE -
// ------------------
$('.sparkline').each(function () {
  var $this = $(this);
  $this.sparkline('html', {
    type     : 'line',
    height   : $this.data('height') ? $this.data('height') : '90',
    width    : '100%',
    lineColor: $this.data('linecolor'),
    fillColor: $this.data('fillcolor'),
    spotColor: $this.data('spotcolor')
  });
});

});