// DataTables hook
var filterColumn = function(i, table) {
    table.DataTable().column(i).search(
        $('#col'+i+'_filter').val(),
        false,
        false
    ).draw();
};

$(document).ready(function() {
    // sortable tables
    $('.tableClassifications').DataTable({
        'paging': false,
        'ordering': true,
        'info': false,
        'bFilter': false,
        'order': [],
        'columnDefs': [
            { 'orderable': false, 'targets': 0 }
        ]
    });
    $('.tableDocuments').DataTable({
        'paging': false,
        'ordering': true,
        'info': false,
        'bFilter': false,
        'order': [],
        'columnDefs': [
            { 'orderable': false, 'targets': 0 }
        ],
        "order": [[ 2, "asc" ]]
    });
    $('#tableUsers').DataTable({
        'paging': true,
        'ordering': true,
        "searching": true,
        'info': false,
        'bFilter': false,
        'order': [],
        'columnDefs': [
            { 'orderable': false, 'targets': 10 }
        ],
        "order": [[ 0, "asc" ]]
    });
    $('#tableContacts').DataTable({
        'paging': true,
        'ordering': true,
        "searching": true,
        'info': false,
        'bFilter': false,
        'order': [],
        'columnDefs': [
            { 'orderable': false, 'targets': 7 }
        ],
        "order": [[ 6, "desc" ]]
    });

    // select All Checkboxes
    $('.selectAllCheckboxes').bind('change', function() {
        var table = $(this).closest('table');
        if ($(this).val() == 1) {
            $(this).val(0);
            $('td > input[type=checkbox]', table).prop('checked', false);
        } else {
            $(this).val(1);
            $('td > input[type=checkbox]', table).prop('checked', true);
        }
    });

    // delete modal on click
    $('.delete').on('click', function(e) {
        var element = $(this);
        showDelete(element);
        e.preventDefault();
    });

    // message modal on click
    $('.message').on('click', function(e) {
        var element = $(this);
        showMessage(element);
        e.preventDefault();
    });

    // search showMore button
    $('button.showMore').on('click', function () {
        $(this).prev().hide();
        $(this).next().show();
        $(this).hide();
    });

    // datepicker contact export
    $('#contact-export-form .input-daterange').datepicker({
        format: "yyyy-mm-dd"
    });
    // submit button contact-export
    $('#contact-export-form a').on('click', function () {
        $('#contact-export-form').submit();
    });
});

// delete modal
function showDelete(element) {
    var deleteTarget = '#';
    var message = 'Are you sure you wish to delete this?';
    var title = 'Delete';

    deleteTarget = element.attr('href');
    if (typeof element.attr('data-message') !== "undefined") {
        message = element.attr('data-message');
    }
    if (typeof element.attr('data-title') !== "undefined") {
        title = element.attr('data-title');
    }

    // show modal
    var modal = $('#confirmDeleteModal');
    $('.modal-body p', modal).html(message);
    $('.modal-title', modal).html(title);
    $('.btn-success', modal).attr('href', deleteTarget);
    modal.modal('show');
}

// message modal
function showMessage(element) {
    var message = '--no message--';
    var title = '--message--';

    if (typeof element.attr('data-message') !== "undefined") {
        message = element.attr('data-message');
    }
    if (typeof element.attr('data-title') !== "undefined") {
        title = element.attr('data-title');
    }

    // show modal
    var modal = $('#messageModal');
    $('.modal-body p', modal).html(message.replace(/\n/g,"<br>"));
    $('.modal-title', modal).html(title);
    modal.modal('show');
}