
// ---------------------------------
// detail relacie
// ---------------------------------

// nacitanie detailu relacie
function getShowDetail(id, back) {
    if (id > 0) {
        if (sd[id] == null) {
            var url_main = appBaseHref;
            var url_addon = 'Program/GetShowDetail?id=' + id;
            var url_complete = url_main + url_addon;
            showLoader();
            $.get(url_complete, null, function (data) {
                sd[id] = data;
                fillShowDetail(id, back);
                hideLoader();
            }, 'json');
        } else {
            fillShowDetail(id, back);
        }
        //setHash(back + '&s=' + id);
    }
    return false;
}

// zobrazenie detailu relacie
function fillShowDetail(id, back) {
    handleHash();
    if ($('#app-container-epg').length > 0) { $('#app-container-epg').css('display', 'none'); }
    if ($('#app-container-channel').length > 0) { $('#app-container-channel').css('display', 'none'); }
    if ($('#app-container-detail').length == 0) {
        // hlavny app kontainer pre detail
        $('<div class="app-container-detail" id="app-container-detail" style="display: none;"></div>').appendTo('#app-container');
        $('<a href="#" id="close-btn" class="close-btn" onclick="return cancelShowDetail();"></a>').appendTo('#app-container-detail');
        $('<div class="detail-allinfo" id="detail-allinfo"></div>').appendTo('#app-container-detail');
        $('<div class="detail-title" id="detail-title"></div>').appendTo('#detail-allinfo');
        $('<div class="detail-channel" id="detail-channel"></div>').appendTo('#detail-allinfo');
        $('<div class="detail-date" id="detail-date"></div>').appendTo('#detail-allinfo');
        $('<div class="detail-time" id="detail-time"></div>').appendTo('#detail-allinfo');
        $('<div class="detail-info" id="detail-info"></div>').appendTo('#detail-allinfo');
        $('<div class="detail-desc" id="detail-desc"></div>').appendTo('#detail-allinfo');
    }
    else {
        $('#close-btn').remove();
        $('<a href="#" id="close-btn" class="close-btn" onclick="return cancelShowDetail();"></a>').prependTo('#app-container-detail');
    }


    if (sd[id] != '') {
        $('#app-container-detail').css('display', 'block');

        $('#detail-title').text(sd[id]['LONG_TITLE']);
        $('#detail-channel').html('<b>' + sd[id]['LONG_NAME'] + '</b>');
        $('#detail-date').text(sd[id]['DAY_DATE']);
        $('#detail-time').html('<b>' + sd[id]['START_TIME'] + ' - ' + sd[id]['END_TIME'] + '</b>');
        var dInfo = getShowDetailInfo(sd[id]['D']);
        $('#detail-info').html(dInfo);
        $('#detail-desc').text(sd[id]['LONG_DESC']);
        if (dInfo == '' && sd[id]['LONG_DESC'] == '') $('#detail-desc').text(msg[31]);
        //handleHash();
        //setHash('action=kategorie&k=' + _hash['k'] + '&s=' + id);

        // zobrazenie tlacidiel k nahravaniu
        if ($('#detail-ab').length == 0) {
            $('<div class="detail-ab" id="detail-ab"></div>').appendTo('#app-container-detail');
        }
        $('#detail-ab').empty();

        var html = '<ul>';

        var date = new Date();


        // ak ide o nahravku planovanu cez web, mozem ju zrusit
        if (sd[id].IS_FROM_WEB_SCHEDULED != undefined && sd[id].IS_FROM_WEB_SCHEDULED == true) {
            html += '<li><a href="#action=' + _hash['action'] + '" class="reccancel-btn" onclick="return cancelScheduledRecording(\'' + sd[id].Id + '\', \'' + sd[id].ProgramId + '\', \'' + sd[id].DefinitionId + '\');"></a></li>';
        } else {
            if (sd[id]['END_TIMESTAMP'] > Math.ceil(date.getTime() / 1000)) {
                // nahrat epizodu
                if (undefined == sd[id].NO_RECORDING || false == sd[id].NO_RECORDING) {
                    html += '<li><a href="#" class="recepisode-btn" onclick="return setEpisodeRecording(\'' + id + '\');"></a></li>';
                }

                // ak mam seriu, ponuknem nahranie serie
                if (sd[id]['D'].SERIES_UID != undefined) {
                    html += '<li><a href="#" class="recseries-btn" onclick="return setSeriesRecording(\'' + id + '\');"></a></li>';
                }
            }
        }


        // ak ide o hotovu nahravku zadanu cez web, mozem ju zmazat
        // zial, cez toto rozhranie nie je mozne mazat hotove nahravky
        if (sd[id].IS_RECORDED != undefined && sd[id].IS_RECORDED == true) {
            html += '<li><a href="#" class="recdelete-btn" onclick="return deleteRecording(\'' + sd[id].Id + '\');"></a></li>';
        }

        html += '</ul>';

        $('#detail-ab').html(html);
    }

    if (back != undefined) { $('a.close-btn').unbind('click'); $('a.close-btn').click(back); }

    _l = $('#app-container-detail');
}

// vygeneruje detailne info o relacii
function getShowDetailInfo(d) {
    var ret = '';
    if (undefined != d['CATEGORY']) ret += '<b>' + texts[0] + '</b> ' + d['CATEGORY'] + '<br />';
    if (undefined != d['COUNTRY']) ret += '<b>' + texts[1] + '</b> ' + d['COUNTRY'] + '<br />';
    ret += getShowDetailInfoItem(d['D'], texts[3]);
    ret += getShowDetailInfoItem(d['A'], texts[2]);
    ret += getShowDetailInfoItem(d['G'], texts[4]);
    ret += getShowDetailInfoItem(d['M'], texts[5]);
    ret += getShowDetailInfoItem(d['P'], texts[6]);
    ret += getShowDetailInfoItem(d['S'], texts[7]);
    return ret;
}

function getShowDetailInfoItem(d, t) {
    if (!d || !d.length)
        return '';
    var ret = '<b>' + t + '</b> ';
    var info = '';
    for (var i in d) {
        if (info != '') info += ', ' + d[i];
        else info += ' ' + d[i];
    }
    ret += info + '<br />';
    return ret;
}

function cancelShowDetail() {
    $('#app-container-detail').css('display', 'none');
    if ($('#app-container-channel').length != 0) { $("#app-container-channel").empty(); }
    if ($('#app-container-epg').length != 0) {
        $('#app-container-epg').css('display', 'block');
        if ($('#epg-cal-holder').length != 0) {
            var date = new Date();
            generateCalendar('epg-cal-holder', date.format('yyyy-mm-dd'), getProgramList);
            $('#calendar-container').css('left', '25px');
            $('#calendar-container').css('top', '23px');
            $('#calendar-container').css('z-index', '20');
        }
    }
    //handleHash();
    //setHash('action=kategorie&k=' + _hash['k']);
    return false;
}

// zadanie nahravanie jednej relacie
function setEpisodeRecording(id) {
    // zistim, ci mi vratil nahravky, alebo poziadal o prihlasenie
    if (id > 0) {
        var url_main = appBaseHref;
        var url_addon = 'Recordings/SetEpisodeRecording?id=' + id;
        var url_complete = url_main + url_addon;
        showLoader();
        $.get(url_complete, null, function (data) {
            //alert(data);
            if (data.restricted != undefined && data.restricted == true) {
                // zobrazim prihlasovaci formular
                showDialog(msg[43], function () {
                    $('#app-container-detail').css('display', 'none');
                    handleApp_login();
                    // zapamatam si, kam som chcel ist
                    //_lf = handleApp_kategorie;

                });

            } else {
                if (data.result == 'ok') {
                    //alert(msg[32]);
                    sd[id] = null;
                    showDialog(msg[32], function () {
                        $('#app-container-detail').css('display', 'none');
                        handleHashAndGo();
                    });
                } else {
                    showDialog(msg[33]);
                }
            }
            hideLoader();
        }, 'json');
    }
    return false;
}

// zadanie nahravania celej serie
function setSeriesRecording(id) {
    if (id > 0) {
        var url_main = appBaseHref;
        var url_addon = 'Recordings/SetSeriesRecording?id=' + id;
        var url_complete = url_main + url_addon;
        showLoader();
        $.get(url_complete, null, function (data) {
            // alert(data);
            if (data.restricted != undefined && data.restricted == true) {
                // zobrazim prihlasovaci formular
                showDialog(msg[43], function () {
                    $('#app-container-detail').css('display', 'none');
                    handleApp_login();
                    // zapamatam si, kam som chcel ist
                    //_lf = handleApp_kategorie;

                });
            } else {
                if (data.result == 'ok') {
                    //alert(msg[32]);
                    showDialog(msg[32], function () {
                        $('#app-container-detail').css('display', 'none');
                        handleHashAndGo();
                    });
                    //getShowDetail(id);
                } else {
                    showDialog(msg[33]);
                }
            }
            hideLoader();
        }, 'json');
    }
    return false;
}

// zrusenie planovanej nahravky
function cancelScheduledRecording(reid, rpid, rdid) {
    //alert(id);
    if (reid != undefined) {
        var url_main = appBaseHref;
        var url_addon = 'Recordings/CancelScheduledRecording?reid=' + reid + '&rpid=' + rpid + '&rdid=' + rdid;
        var url_complete = url_main + url_addon;
        showLoader();
        $.get(url_complete, null, function (data) {
            //alert(data);
            if (data.restricted != undefined && data.restricted == true) {
                // zobrazim prihlasovaci formular
                handleApp_login();
                // zapamatam si, kam som chcel ist
                //_lf = handleApp_mojenahravky;
            }
            hideLoader();
            sd = new Array();
            showDialog(msg[39], function () {
                $('#app-container-detail').css('display', 'none');
                handleHashAndGo();

            });
        }, 'json');
    }
    return false;
}

// zmazanie hotovej nahravky
function deleteRecording(id) {
    //alert(id);
    // return false;
    if (id != undefined) {
        var url_main = appBaseHref;
        var url_addon = 'Recordings/DeleteRecording?id=' + id;
        var url_complete = url_main + url_addon;
        showLoader();
        $.get(url_complete, null, function (data) {
            // alert(data);
            if (data.restricted != undefined && data.restricted == true) {
                // zobrazim prihlasovaci formular
                handleApp_login();
                // zapamatam si, kam som chcel ist
                //_lf = handleApp_kategorie;
            } else {
                showDialog(msg[34], function () {
                    $('#app-container-detail').css('display', 'none');
                    handleHashAndGo();
                });

            }
            hideLoader();
        }, 'json');
    }
    return false;
}
// koniec detailu relacie

// moje nahravky
function handleApp_mojenahravky(sort) {
    // vzdy urobim poziadavku na moje nahravky
    handleHash();
    if (sort != undefined) {
        if (sort == 'd') {
            var url_addon = 'Recordings/GetAllRecordings?order=d';
        }
        else if (sort == 'n') {
            var url_addon = 'Recordings/GetAllRecordings?order=n';
        }
    }
    else if (_hash['s'] != undefined && sort == undefined) {
        if (_hash['s'] == 'd') {
            var url_addon = 'Recordings/GetAllRecordings?order=d';
        }
        else if (_hash['s'] == 'n') {
            var url_addon = 'Recordings/GetAllRecordings?order=n';
        }
    } else {
        var url_addon = 'Recordings/GetAllRecordings?order=d';
    }

    var url_main = appBaseHref;
    var url_complete = url_main + url_addon;

    showLoader();

    $.get(url_complete, null, function (data) {
        // alert(data);
        if (data != undefined) {
            // zistim, ci mi vratil nahravky, alebo poziadal o prihlasenie
            if (data.restricted != undefined && data.restricted == true) {
                // zobrazim prihlasovaci formular
                handleApp_login();
                // zapamatam si, kam som chcel ist
                _lf = handleApp_mojenahravky;
            } else if (data.recordings != undefined) {
                // zobrazim moje nahravky
                mnShowRecordings(data.recordings);
            }
        }

        hideLoader();
    }, 'json');
    return false;
}

// zobrazim moje nahravky
function mnShowRecordings(data) {
    // alert(data);
    $('#app-container').attr('className', 'app-bcg');
    // vycistenie obsahu kontainera app-container
    $('#app-container').empty();
    if ($('#app-container-nahravky').length == 0) {
        $('<div class="app-container-nahravky" id="app-container-nahravky">').appendTo('#app-container');
        $('<div class="ab-planovane">'
         + '<a href="#action=mojenahravky&a=add" class="pridat-nahravku-btn" id="pridat-nahravku-btn"></a>'
         + '<div class="planovane-notice" id="planovane-notice">' + msg[21] + '</div>'
         + '<div class="planovane-list" id="planovane-list"></div>'
         + '</div>').appendTo('#app-container-nahravky');
        $('#pridat-nahravku-btn').unbind('click');
        $('#pridat-nahravku-btn').click(mnShowManualForm);

        $('<div class="ab-nahrane">'
         + '<a href="#action=mojenahravky&s=d" class="datum-btn" id="sort-datum-btn"></a>'
         + '<a href="#action=mojenahravky&s=n" class="nazov-btn" id="sort-nazov-btn"></a>'
         + '<div class="nahravky-notice" id="nahravky-notice">' + msg[22] + '</div>'
         + '<div class="nahravky-list" id="nahravky-list"></div>'
         + '</div>').appendTo('#app-container-nahravky');
    } else {
        $('#app-container-nahravky').css('display', 'block');
    }

    if (data.planed != undefined) {
        //alert('planed');
        var html = '<ul>';
        for (var i in data.planed) {
            html += '<li class="planovane-list-item"><a href="#" class="planovane-list-item-btn" '
                + 'onclick="return mnShowDetail(\'' + data.planed[i].Id + '\', \'' + data.planed[i].ProgramId + '\', '
                + '\'' + data.planed[i].DefinitionId + '\');"><span class="channel-date">' + data.planed[i].ChannelName + '<br>' + data.planed[i].StartTimeModified + '</span>' + data.planed[i].Title + '</a></li>';
        }


        html += '</ul>';
        $('#planovane-list').html(html);
        $('#planovane-notice').hide();
    }

    if (data.done != undefined) {
        //alert('done');
        var html = '<ul>';
        for (var i in data.done) {
            html += '<li class="nahravky-list-item"><a href="#" class="nahravky-list-item-btn" '
                + 'onclick="return mnShowDetail(\'' + data.done[i].Id + '\', \'' + data.done[i].ProgramId + '\', '
                + '\'' + data.done[i].DefinitionId + '\');"><span class="channel-date">' + data.done[i].ChannelName + '<br>' + data.done[i].StartTimeModified + '</span>' + data.done[i].Title + '</a></li>';
        }
        html += '</ul>';
        $('#nahravky-list').html(html);
        $('#nahravky-notice').hide();
    }

    handleHash();
    if (_hash['a'] != undefined && _hash['a'] == 'add') mnShowManualForm();

    if (_hash['s'] == 'n') { $("#sort-datum-btn").removeClass("datum-btn-sel"); $("#sort-nazov-btn").addClass("nazov-btn-sel"); }
    else if (_hash['s'] == undefined || _hash['s'] == 'd') { $("#sort-nazov-btn").removeClass("nazov-btn-sel"); $("#sort-datum-btn").addClass("datum-btn-sel"); }

    $('#sort-datum-btn').unbind('click');
    $('#sort-datum-btn').click(function () {
        handleApp_mojenahravky('d');
    });

    $('#sort-nazov-btn').unbind('click');
    $('#sort-nazov-btn').click(function () {
        handleApp_mojenahravky('n');
    });

}

// zobrazenie detailu nahravky
function mnShowDetail(EventId, ProgramId, DefinitionId) {
    //alert(id);
    //alert(ProgramId);
    $('.planovane-end').hide();
    $('.planovane-start').hide();
    // vzdy urobim poziadavku na moje nahravky
    var url_main = appBaseHref;
    var url_addon = 'Recordings/GetShowDetail?reid=' + EventId + '&rpid=' + ProgramId + '&rdid=' + DefinitionId;
    var url_complete = url_main + url_addon;
    //alert(url_complete);
    showLoader();
    $.get(url_complete, null, function (data) {
        //alert(data);
        sd[EventId] = data;
        sd[EventId].ProgramId = ProgramId;
        sd[EventId].DefinitionId = DefinitionId;
        fillShowDetail(EventId, mnCancelRecording);
        hideLoader();
    }, 'json');
    return false;
}

// zobrazenie formulara na zadanie manualnej nahravky
function mnShowManualForm() {
    // skryjem zoznam planovanych nahravok
    $('#planovane-list').hide();
    // skryjem informacny text
    $('#planovane-notice').hide();

    if ($('#planovane-form-manual').length == 0) {
        // vyrobim si formular na zadanie manualnej nahravky
        $('<div class="planovane-channel"><span class="planovane-channel-picker">'
                + '<a href="#" class="kategorie-channel-picker"><b>' + texts[15] + '</b></a>'
                + '</span></div>').appendTo('#app-container-nahravky');

        getChannelSelector('app-container-nahravky', 'mnSetRecordingChannel');

        $('<input type="hidden" id="nahravka-channel" value="">').appendTo('#app-container-nahravky');
        $('<div class="planovane-start">' + texts[10] + '<br />' + getDateTimeFields('nahravka-start') + '</div>').appendTo('#app-container-nahravky');
        $('<div class="planovane-end">' + texts[11] + '<br />' + getDateTimeFields('nahravka-end') + '</div>').appendTo('#app-container-nahravky');
        /*$('<div class="planovane-save">' + texts[12] + '<br />'
        + '<select name="nahravka-save"><option value="1">' + texts[13] + '</option>'
        + '<option value="2">' + texts[14] + '</option></select></div>').appendTo('#app-container-nahravky');//*/

        $('<div class="planovane-action">'
                + '<a href="#" class="planovane-nahrat" id="planovane-nahrat"></a>'
                + '<a href="#action=mojenahravky" class="planovane-zrusit" id="planovane-zrusit"></a>'
                + '</div>').appendTo('#app-container-nahravky');

        $('<div class="alert" id="planovane-error" style="top:303px;left:15px;width:405px;text-align:center;">' + msg[37] + '</div>').appendTo('#app-container-nahravky');
        $('div#planovane-error').hide();

        $('a#planovane-nahrat').unbind('click');
        $('a#planovane-nahrat').click(function () {
            return mnSetManualRecording();
        });
        $('a#planovane-zrusit').unbind('click');
        $('a#planovane-zrusit').click(function () {
            return mnCancelRecording();
        });
    }
    return true;
}

// zrusenie zadavania nahravania
function mnCancelRecording(back) {
    setHash('action=mojenahravky');
    handleHash();
    doAction('mojenahravky');
    return true;
}

function mnSetRecordingChannel(channel) {
    $('input#nahravka-channel').val(channel);
    var name = null;
    for (var i in channelsData) {
        channels2 = channelsData[i];
        for (var ii in channels2) {
            if (channel == channels2[ii]['ID']) { name = channels2[ii]['SHORT_NAME']; break; break; }
        }
    }
    $("a.kategorie-channel-picker").empty();
    $("<strong>" + name + "</strong>").appendTo("a.kategorie-channel-picker");

}

// potvrdenie manualnej nahravky
function mnSetManualRecording() {
    var channel = $('input#nahravka-channel').val();

    // idem skontrolovat vyplnene udaje
    var start = new Date();
    start.setDate($('#nahravka-start-day').val());
    start.setMonth($('#nahravka-start-month').val());
    start.setFullYear($('#nahravka-start-year').val());
    start.setHours($('#nahravka-start-hour').val());
    start.setMinutes($('#nahravka-start-minute').val());
    var end = new Date();
    end.setDate($('#nahravka-end-day').val());
    end.setMonth($('#nahravka-end-month').val());
    end.setFullYear($('#nahravka-end-year').val());
    end.setHours($('#nahravka-end-hour').val());
    end.setMinutes($('#nahravka-end-minute').val());
    //var save = $('#nahravka-save').val();

    if (channel.length == 0) {
        $('div#planovane-error').text(msg[46]);
        $('div#planovane-error').show();
    }
    else {

        if (Date.parse(start) == Date.parse(end)) {
            $('div#planovane-error').text(msg[44]);
            $('div#planovane-error').show();
        }
        else if (Date.parse(start) > Date.parse(end)) {
            $('div#planovane-error').text(msg[45]);
            $('div#planovane-error').show();

        }
        else if (((Date.parse(end) - Date.parse(start)) / 1000) > 12 * 60 * 60) {
            // chyba
            //alert('zly rozsah');
            $('div#planovane-error').text(msg[38]);
            $('div#planovane-error').show();
        } else {
            // vsetko OK
            // odoslem udaje na server
            //if (channel == undefined) channel = 3;
            var post = { 'channel': channel,
                'start': start.getTime(),
                'end': end.getTime()
            };
            if ('' != post.channel && '' != post.start && '' != post.end) {
                var url_main = appBaseHref;
                var url_addon = 'Recordings/SetManualRecording';
                var url_complete = url_main + url_addon;
                $('div#planovane-error').hide();
                showLoader();
                $.post(url_complete, post, function (data) {
                    //alert(data);
                    mnSetManualRecordingResponse(data);
                    hideLoader();
                }, 'json');
            }
        }
    }
    return false;
}

// spracujem navratovy stav zadanej nahravky
function mnSetManualRecordingResponse(data) {
    if (data != undefined) {
        if (data.error != undefined && data.error != false) {
            // mame chybu
            $('div#planovane-error').text(msg[37]);
            $('div#planovane-error').show();
        }
        if (data.result != undefined && data.result == 'ok') {
            // vsetko ok, tak sa vratim spat na planovane nahravky
            showDialog(msg[42], function () {
                mnCancelRecording();
            });
        }
    }
}


// ---------------------------------
// koniec moje nahravky
// ---------------------------------

