var myTable = {};
(function () {

var total = 0;
var count = 0;
var tbody = null;
var pagin = null;

function buildTable($tbody, data)
{
  var i = 1;
  $tbody.html('');
  for (var i = 0; i < data.length; i++) {
    var el = data[i];
    var $tr = null;
    if ((i % 2) == 1) {
      $tr = $('<tr class="gradeA even" role="row"></tr>');
    } else {
      $tr = $('<tr class="gradeA odd" role="row"></tr>');
    }

    // title
    $td = $('<td class="text-center"></td>');
    $td.text(el.title);
    $tr.append($td);

    // type
    if (el.data_type == 1) {
      $td = $('<td class="text-center"> <span class="label label-primary">数据表</span></td>');
    } else if (el.data_type == 2) {
      $td = $('<td class="text-center"> <span class="label label-primary">配置项</span></td>');
    } else if (el.data_type == 3) {
      $td = $('<td class="text-center"> <span class="label label-primary">关联配置</span></td>');
    }
    $tr.append($td);

    // url
    var url = el.url;
    if (el.data_args)
      url = el.url + '#!args=' + bin2hex(el.data_args);

    $td = $('<td class="text-center"><a class="btn btn-info btn-xs" href="' + url + '">' + el.url + '</a></td>');
    $tr.append($td);

    // ctime
    $td = $('<td class="text-center">' + el.ctime + '</td>');
    $tr.append($td);

    $a = $('<a class="btn btn-outline btn-danger btn-xs" href="#">删除</a>');
    (function (el) {
      var url = '/api/favorite/del/' + el.favorite_id;
      $a.click(function () {
        $this = $(this);
        $.ajax({
          type: "POST",
          url: url,
          dataType: 'json',
          success: function (data) {
            if (data.errcode != 0) {
              alert("删除收藏" + el.title + "失败: retcode=" + data.errcode + ",errMsg=" + data.errmsg);
              return;
            }

            $this.parent().parent().remove();
          },
          error: function () {
            alert("删除收藏" + el.title + "失败");
          },
        });
      });
    })(el);

    $td = $('<td class="text-center"></td>');
    $td.append($a);
    $tr.append($td);

    $tbody.append($tr);
  }
};

// data = { "retcode": 0, "errMsg", "data": { "total" : 0, "page" : 0, "count": 10, "list" : [] }}
myTable.init = function ($tbody, $paginate, data) {
  if (data.errcode != 0) {
    alert("获取数据失败: retcode=" + data.errcode + ",errMsg=" + data.errmsg);
    return;
  }

  var data = data.data;

  total = data.total;
  count = data.count;
  tbody = $tbody;
  pagin = $paginate;

  buildTable($tbody, data.list);
  paginate($paginate, total, count, data.page, myTable.getData);
};

myTable.getData = function (pageNo) {
  $.ajax({
    type: "GET",
    url: '/api/favorite/getlist/?page=' + pageNo + '&count=' + count,
    dataType: 'json',
    success: function (data) {
      if (data.errcode != 0) {
        alert("获取数据失败: retcode=" + data.errcode + ",errMsg=" + data.errmsg);
        return;
      }

      data = data.data;
      if (total != data.total || count != data.count) {
        total = data.total;
        count = data.count;
        paginate(pagin, data.total, data.count, data.page, myTable.getData);
      }

      buildTable(tbody, data.list);
    },
    error: function () {
      alert("获取业务列表数据失败");
    },
  });
};
})();