﻿function isSelectedMultiple(oTable)
{
    var rows = oTable.rows({ selected: true }).count();
    if (rows == 0) {
        return false;
    }
    return true;
}

function isSelectedSingle(oTable)
{
    var rows = oTable.rows({ selected: true }).count();
    if (rows === 0 || rows > 1) {
        return false;
    }
    return true;
}
// this is creating some customized settings for the data table
function setupDataTableSetting(languageUrl, serverSide, columns, ajax, select, order, emptyMessage)
{
    var setting ;
    try
    {
        setting ={
            "dom": "<'row'<'col-md-6 col-12'l><'col-md-6 col-12'f>>tr<'row'<'col-md-6 col-12'i><'col-md-6 col-12'p>>",
            "responsive": true,
            "lengthMenu": [5, 10, 20, 50, 100],
            "paging": true,
            "ordering": true,
            "info": true,
            "searching": true,
            oLanguage: {
                sUrl: languageUrl
            },
            "destroy": true,
            retrieve: true,
            order: [[0, 'asc']],
            stateSave: true,
            select: {info:false}
        };
    

        setting.processing = true;
        setting.serverSide = serverSide;
        setting.ajax = ajax;
        setting.columns = columns;

        if (select !== undefined)
        {
            setting.select = select;
        }

        if (order !== undefined)
        {
            setting.order = order;
        }
        if (emptyMessage)
        {
            setting.oLanguage.sEmptyTable = emptyMessage;
        }
        
    }
    catch(err)
    {
        console.log(err);
    }

    return setting;
}
 
function ReBindDataTable(pageing)
{
    try {
        var tables = $('.dt-responsive');
        tables.each(function (e)
        {
            if ($.fn.dataTable.isDataTable(this.id)) {
                $('#' + this.id).DataTable().responsive.recalc();
            }
            else {
                $('#' + this.id).DataTable(
                    {
                        "paging": pageing,
                        "ordering": pageing,
                        "searching": pageing,
                        "bInfo": pageing,
                        "autoWidth": false,
                        "responsive": true,
                        "retrieve": true
                    });
            }
        }
        );
    }
    catch (err) {

        console.log(err);
    }
    finally {
        var str = "";
    }
}

function setTableResponsive(languageUrl)
{
    var table = $(".dt-responsive").DataTable({
        "dom": "<'row'<'col-md-6 col-12'l><'col-md-6 col-12'f>>tr<'row'<'col-md-6 col-12'i><'col-md-6 col-12'p>>",
        "responsive": true,
        "lengthMenu": [5, 10, 20, 50, 100],
        "paging": true,
        "ordering": true,
        "searching": true,
        "bInfo": true,
        "autoWidth": true,
        "retrieve": true,
        stateSave: true,
        "language": {
            "url": languageUrl
        }
    });
    return table;
}

function SetupDataTable(setting, elemId, tableClass, pageSize)
{
    $.fn.dataTable.ext.errMode = 'throw';
    var table;
    if (elemId === undefined || elemId === '') {
        if (tableClass === undefined || tableClass === '')
        {
            table = $(".dt-responsive").DataTable(setting);
        }
        else{
            table = $('.' + tableClass).DataTable(setting);
        }
    }
    else {
        table = $('#' + elemId).DataTable(setting);
    }
    //var iPageSize = parseInt(pageSize);
    //if (isNaN(iPageSize)) {
    //    iPageSize = 10;
    //}
    //table.page.len(iPageSize);
    return table;
}

function checkTableResponsive(ispaging, languageUrl)
{
    var setting = {
        "dom": "<'row'<'col-md-6 col-12'l><'col-md-6 col-12'f>>tr<'row'<'col-md-6 col-12'i><'col-md-6 col-12'p>>",
        "responsive": true,
        "lengthMenu": [5, 10, 20, 50, 100],
        "paging": ispaging,
        "ordering": ispaging,
        "searching": ispaging,
        "bInfo": ispaging,
        "autoWidth": true,
        "retrieve": true,
        stateSave: true,
        "language": {
            "url": languageUrl
        }
    };

    try {
        if ($.fn.dataTable !== undefined) {
            if ($.fn.dataTable.isDataTable('.dt-responsive')) {
                if (ispaging === true) {
                    $(".dt-responsive").DataTable(
                        {
                            stateSave: true,
                            "retrieve": true,
                        }
                        );
                }
            }
            else {
                SetupDataTable(setting, "");
            }

            var tableCustome = $('.dt-responsive-custom').DataTable(setting);
        }
    }
    catch (err) {
        console.log(err);
    }
}

function getSelectGuids(oTable)
{

    var rows = oTable.rows({ selected: true }).count();
    var selectedData = oTable.rows({ selected: true }).data();
    var guids = [];
    for (var i = 0; i < rows; i++) {
        guids.push(selectedData[i].PrimaryKey);

    }
    return guids;
}

function ShowAlert(title, content, buttonText)
{
    $.alert({
        title: title ,
        content:  content ,
        buttons: {
            OK: {
                btnClass: 'btn-blue',
                text:  buttonText,
                action: function () { }
            }

        }
    }
   );
}

function redraw(oTable)
{
    oTable.draw(false);
}

function cellValue(type, displaydata, sortdata) {
    switch (type) {
        case "display":
        case "filter":
            return displaydata;
        case "type":
        case "sort":
            return sortdata
        default:
            return displaydata;
    }
}
