// Table page
$(document).ready(function() {
  // ------------------------------
  // Settings
  // ------------------------------
//  var AJAX_URL = 'https://localhost:3002';

  var selectAllChk = '#select-all';
  var chkExport = '.checkbox-export';
  var chkDelete = '.checkbox-delete';
  var counter = '.actions-counter';
  var counterExport = '.actions-export-counter';
  var deleteBtn = '.js-delete-items';
  var exportBtn = '.js-export-items'

  // Action block
  var actionView = '.action-block-view';
  var actionEdit = '.action-block-edit';
  var actionDelete = '.action-block-delete';

  function actionData(element) {
    var id = parseInt($(element).closest('tr').find('.checkbox').prop('id'));
    var type = $(element).data().type;
    var elementDetails = {
      id: id,
      type: type
    };
    return elementDetails;
  }

  function updateCounter(chkBoxSelector, button) {
    var count = 0;
    var presentSelected = $(chkBoxSelector + ':checked').length > 0 ? false : true;
    var selectedLength = $(chkBoxSelector).each(function(index, item) {
      $(item).prop('checked') === true
        ? count++
        : ''
    });
    $(button).find(counter).text(count);
    $(button).prop('disabled', presentSelected);
  }

  function deleteData() {
    var items = {
      id: [],
      type: 'deleteAll'
    };
    var selectedLength = $('.checkbox-delete').each(function(index, item) {
      $(item).prop('checked') === true
        ? items.id.push($(item).closest('tr').prop('id'))
        : ''
    });
    return items;
  }

  function exportData() {
    var items = {
      id: [],
      type: 'exportAll'
    };
    var selectedLength = $('.checkbox-export').each(function(index, item) {
      $(item).prop('checked') === true
        ? items.id.push($(item).closest('tr').prop('id'))
        : ''
    });
    console.log(items);
    return items;
  }

    function getCookie(cname) {
        var name = cname + "=";
        var ca = document.cookie.split(';');
        for (var i = 0; i < ca.length; i++) {
          var c = ca[i];
          while (c.charAt(0) == ' ') {
            c = c.substring(1);
          }
          if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
          }
        }
        return "";
      }

  function ajaxPost(url, data) {
    $.ajax({
        headers: { 'X-CSRFToken': getCookie('csrftoken') },
        type: "POST", //rest Type
        dataType: 'json', //mispelled
        data: JSON.stringify(data),
        url: url,
        async: true,
        contentType: "application/json; charset=utf-8",
        success: function (msg) {
            var ids = data.id
            console.log(ids)
            if (data.type === 'deleteAll') {
                removeItems(ids)
                updateButtons()
            }
            if (data.type === 'exportAll') {
                removeItems(ids)
                updateButtons()
            }
//            window.location.reload()
//            window.location.replace(window.location.href);

        }
    })
  }
  function removeItems (ids) {
    ids.forEach(function(item) {
       $('.form').find('tr').each(function(index, itemRow) {
        $(itemRow).attr('id') === item
          ? $(itemRow).remove()
          : ''
       })
    })
  }
  function updateButtons () {
      updateCounter(chkExport, exportBtn);
      updateCounter(chkDelete, deleteBtn);
  }
  updateButtons()
//  $(selectAllChk).click(function () {
//    $(chk).prop('checked', $(this).prop('checked'));
//    updateCounter();
//  });

  $(chkDelete).on('click', updateButtons);
  $(chkExport).on('click', updateButtons);

  $(deleteBtn).on('click', function(e) {

    var data = deleteData();
    ajaxPost('/news/', data);
  });

  $(exportBtn).on('click', function(e) {

    var data = exportData();
    ajaxPost('/news/', data);
  });

  $(actionDelete).on('click', function(e) {
//    e.preventDefault();
    updateCounter();
//    var data = actionData(this);
//    console.log(data);
//    ajaxPost('/news/', data);
  });
});

function getUrlParameter(name) {
    name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
    var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
    var results = regex.exec(location.search);
    return results === null ? null : decodeURIComponent(results[1].replace(/\+/g, ' '));
};

$('.text-white').on('click', function(e) {
    e.preventDefault();
    var from = getUrlParameter('from_date');
    var to = getUrlParameter('to_date');
    var media = getUrlParameter('media');
    var word = getUrlParameter('search');
    var order = getUrlParameter('order_by');
    var reverse = getUrlParameter('reverse');
    var res = '?';
    if (from){res += 'from_date=' + from + '&'}
    if (to){res += 'to_date=' + to + '&'}
    if (media){res += 'media=' + media + '&'}
    if (word){res += 'search=' + word + '&'}

    var orderName = $(this).attr('href').replace("?order_by=", "")
    if (order == orderName){res +='order_by=' + orderName + '&' + 'reverse=' + '1&'} else
    {
        res += 'order_by=' + orderName + '&'

    }
    window.location.href = res;
})


// Index Page
$(document).ready(function() {
  $('.multiselect').fastselect();
  $('#publish-date').datepicker();
});