﻿var workoutsTable;
var selectedWorkouts = new Array();
var selectRow;


jQuery.fn.dataTableExt.oSort['natural-asc'] = stripNaturalSortAsc;
jQuery.fn.dataTableExt.oSort['natural-desc'] = stripNaturalSortDesc;
jQuery.fn.dataTableExt.oSort['distance-asc'] = distanceSortAsc;
jQuery.fn.dataTableExt.oSort['distance-desc'] = distanceSortDesc;
function initTable(drawCallback) {
    workoutsTable = $('#my_workouts').dataTable({
        "bStateSave": true,
        "bAutoWidth": false,
        "aaSorting": [[2, "desc"]],
        "bLengthChange": false,
        "bFilter": true,
        "iDisplayLength": 5,
        "sPaginationType": "full_numbers",
        "fnRowCallback": fnRowCallback,
        "aoColumns": [
                {
                    "sType": "string",
                    "sWidth": "10%"
                },
                {
                    "bSortable": false,
                    "sWidth": "8%"
                },
                {
                    "sWidth": "20%",
                    "bSortable": true,
                    "sType": "natural"
                },
                {
                    "sType": "distance",
                    "sWidth": "12%"
                },
                {
                    "sType": "natural",
                    "sWidth": "13%"
                },
                {
                    "sType": "natural",
                    "sWidth": "13%"
                },
                {
                    "sType": "natural",
                    "sWidth": "15%"
                },
                {
                    "bSortable": false,
                    "bVisible": false
                    //"sWidth": "7%"
                },
                {
                    "bSortable": false,
                    "bVisible": false
                },
                {
                    "bSortable": "false",
                    "sWidth": "5%"
                }
            ],
        "fnDrawCallback": function() {
            //console.log("Draw");
            //setTimeout(applyDateCorrector, 1);
        },
        "oLanguage": {
            "sInfo": "Showing _START_ to _END_ of <b>_TOTAL_</b> workouts",
            "sZeroRecords": '<p>&nbsp;</p><p>Still no workouts, <a href="/Download" title="Download SportyPal">download SportyPal</a> and start rolling workouts.</p>'
        }
    });
    $(".paginate_button").live('click', function() { setTimeout(drawCallback, 1); });
    $('.grid').show();
    return workoutsTable;
}

/* Get the rows which are currently selected */
function fnGetSelected(oTableLocal) {
    var aReturn = new Array();
    var aTrs = oTableLocal.fnGetNodes();
    for (var i = 0; i < aTrs.length; i++) {
        if ($(aTrs[i]).hasClass('row_selected')) {
            aReturn.push(aTrs[i]);
        }
    }
    return aReturn;
}

var deletedRow = function(data) {
    var anSelected = fnGetSelected(workoutsTable);
    for (var i = 0; i < anSelected.length; i++) {
        var iRow = workoutsTable.fnGetPosition(anSelected[i]);
        workoutsTable.fnDeleteRow(iRow);
    }
    selectedWorkouts = new Array();
}

function selectRow(id) {
    var row = document.getElementById("tr_" + id);
    if ($(row).hasClass('row_selected')) {
        $(row).removeClass('row_selected');
        $("#cb_" + id).attr('checked', false);
        var temp = new Array();
        for (var i = 0; i < selectedWorkouts.length; i++) {
            if (selectedWorkouts[i] != id) {
                temp.push(selectedWorkouts[i]);
            }
        }
        selectedWorkouts = temp;
    } else {
        $(row).addClass('row_selected');
        $("#cb_" + id).attr('checked', true);
        selectedRow = $(row);
        selectedWorkouts.push(id);
    }
    return false;
}

$(document).ready(function() {
    $(".clickDetails").click(gotoWorkoutDetails);
    $(".workout_checkbox").attr("checked", false);
});

var gotoWorkoutDetails = function() {
    rowId = this.parentNode.id;
    var wId = rowId.split("_")[1];
    window.location = "/Workouts/Details/" + wId;
    // "#filter=" + getWorkoutsFiltered();
}


var fnRowCallback = function(nRow, aData, iDisplayIndex) {
    shiftDateTZ($(nRow).children(".date-field"));
    return nRow;
}

var getWorkoutsFiltered = function() {
    var workoutsFiltered = workoutsTable.fnGetFilteredNodes();
    var workoutFilteredIds = [];
    for (var k = 0; k < workoutsFiltered.length; ++k) {
        workoutFilteredIds.push(workoutsFiltered[k].id.split("_")[1]);
    }
    return workoutFilteredIds.join(",");
}
