﻿var monthArr = ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"];

var Chart = function(config) {
  var _target = config.target;
  var _url = config.url;
  var _width = config.width;
  var _height = config.height;
  var _userid = config.userid;
  var _diaryAccess = config.diaryAccess;

  this.renderWeight = function(showGoal) {
    render({ charttype: showGoal ? 'WeightGoal' : 'Weight' });
  };
  this.renderWaist = function() {
    render({ charttype: 'WaistSeat' });
  };

  this.renderCalories = function(year, month) {

    var html = "<table><tr><td><button class=\"ui-state-default ui-corner-all calgraphbutton\" onclick=\"prevCalorieMonth()\">&laquo;</button></td><td style=\"vertical-align:middle\"><strong>" + monthArr[month] + " " + year + "</strong></td><td><button class=\"ui-state-default ui-corner-all calgraphbutton\" onclick=\"nextCalorieMonth()\">&raquo;</button></td></tr></table>";
    render({ html: html, charttype: 'Calories', year: year, month: month + 1 });
  };

  var month, year;
  var date = new Date();
  this.renderCustom = function(options) {
    var type = options.type;

    month = date.getMonth();
    year = date.getFullYear();

    if (type == 'carbs') {
      var html = '<table><tr><td><button id=\"prevbtn\" class=\"ui-state-default ui-corner-all calgraphbutton\">&laquo;</button></td><td style=\"vertical-align:middle\"><strong>' + monthArr[month] + ' ' + year + '</strong></td><td><button id=\"nextbtn\" class=\"ui-state-default ui-corner-all calgraphbutton\">&raquo;</button></td></tr></table>';
      render({
        charttype: type,
        year: year,
        month: month + 1,
        html: html
      });

      $('#prevbtn').click(function() {
        date.setMonth(date.getMonth() - 1);
        otherChart.renderCustom(options);
      });
      $('#nextbtn').click(function() {
        date.setMonth(date.getMonth() + 1);
        otherChart.renderCustom(options);
      });
    }
  };


  var measuresData = null;
  this.renderTable = function() {

    if (measuresData == null) {
      diaryAccess.getDiaryMeasures(null, null, function(data) {
        measuresData = data;
        renderTableHtml(measuresData);
      });
    }
    else {
      renderTableHtml(measuresData);
    }
  };

  function renderTableHtml(data) {
    var arrDate = new Array();
    var arrWeight = new Array();
    var arrWaist = new Array();
    var arrSeat = new Array();
    for (var i = 0; i < data.results.length; i++) {
      arrDate.push("<td><strong>");
      arrDate.push(data.results[i].d.getDate());
      arrDate.push("/");
      arrDate.push(data.results[i].d.getMonth() + 1);
      arrDate.push("</strong></td>");

      arrWeight.push("<td>");
      arrWeight.push(data.results[i].w);
      arrWeight.push("</td>");

      arrWaist.push("<td>");
      arrWaist.push(data.results[i].wst);
      arrWaist.push("</td>");

      arrSeat.push("<td>");
      arrSeat.push(data.results[i].s);
      arrSeat.push("</td>");
    }

    var arrTable = new Array();
    arrTable.push("<div id=\"tableCanvas\"><table border=\"0\" cellspacing=\"1\" cellpadding=\"1\" class=\"weighttable\"><tr class=\"weighttableheader\"><td><strong>Datum</strong></td>");
    arrTable.push(arrDate.join(""));
    arrTable.push("</tr><tr><td><strong>Vikt</strong></td>");
    arrTable.push(arrWeight.join(""));
    arrTable.push("</tr><tr><td><strong>Midja</strong></td>");
    arrTable.push(arrWaist.join(""));
    arrTable.push("</tr><tr><td><strong>Stuss</strong></td>");
    arrTable.push(arrSeat.join(""));
    arrTable.push("</tr></table></div>");

    $(_target).html(arrTable.join(""));
  };

  function render(options) {
    var arr = new Array();
    arr.push(_url);
    arr.push('?');
    arr.push('userid=');
    arr.push(_userid);
    arr.push('&type=');
    arr.push(options.charttype);
    arr.push('&width=');
    arr.push(_width);
    arr.push('&height=');
    arr.push(_height);
    if (options.year != null) {
      arr.push('&year=');
      arr.push(options.year);
    }
    if (options.month != null) {
      arr.push('&month=');
      arr.push(options.month);
    }
    imgUrl = arr.join('');


    $(_target).html(options.html != null ? options.html : '');
    $(_target).append($('<img />').attr('src', imgUrl));
  };
};
