﻿$.fn.disable = function () {
    return this.each(function () {
        if (typeof this.disabled != "undefined") this.disabled = true;
    });
}

$.fn.splitTime = function (time) {
    return this.each(function () {
        //if (typeof this.disabled != "undefined") this.disabled = true;
        $(this).text(splitTime(time));
    });
}

$.fn.puzzleTable = function () {
    return this.each(function () {
        $(this).find("td[id^=grid_]").click(function (event) {
            var id = $(this).attr('id');
            var parts = id.split('_');
            var dim_ids = parts[1].split('x');
            var opt_ids = parts[2].split('x');
            var new_class = '';
            if ($(this).hasClass('unknown')) {
                new_class = 'incorrect';
            } else if ($(this).hasClass('incorrect')) {
                new_class = 'correct';
                $("td[id^=grid_" + parts[1] + "_" + opt_ids[0] + "x]").removeClass();
                $("td[id^=grid_" + parts[1] + "_" + opt_ids[0] + "x]").addClass('incorrect');
                $("td[id^=grid_" + parts[1] + "_][id$=x" + opt_ids[1] + "]").removeClass();
                $("td[id^=grid_" + parts[1] + "_][id$=x" + opt_ids[1] + "]").addClass('incorrect');
                $("#sol_" + dim_ids[1] + "_" + opt_ids[0]).val(opt_ids[1]);
            } else if ($(this).hasClass('correct')) {
                new_class = 'unknown';
                $("td[id^=grid_" + parts[1] + "_" + opt_ids[0] + "x]").removeClass();
                $("td[id^=grid_" + parts[1] + "_" + opt_ids[0] + "x]").addClass('unknown');
                $("td[id^=grid_" + parts[1] + "_][id$=x" + opt_ids[1] + "]").removeClass();
                $("td[id^=grid_" + parts[1] + "_][id$=x" + opt_ids[1] + "]").addClass('unknown');
                $("#sol_" + dim_ids[1] + "_" + opt_ids[0]).val(-1);
            }

            $(this).removeClass();
            $(this).addClass(new_class);

        });
    });
}

function splitTime(a) {
    var tm = new Date(a * 1000)
    var hours = tm.getUTCHours();
    var minutes = tm.getUTCMinutes();
    var seconds = tm.getUTCSeconds();

    tt = "";

    var days = Math.floor(a / 86400);
    //console.log(days);
    //console.log(a);


    if (days > 0) {
        tt += days + " day(s) and ";
    }

    tt += hours < 10 ? "0" + hours : hours;
    tt += ":";
    tt += minutes < 10 ? "0" + minutes : minutes;
    tt += ":";
    tt += seconds < 10 ? "0" + seconds : seconds;
    return tt;
}


