var CurrentMode = 'all';
var CHANNELSID  = {};
var allChecked;

Array.prototype.unique = function() {
    var a = [];
    var l = this.length;
    for(var i=0; i<l; i++) {
      for(var j=i+1; j<l; j++) {
        // If this[i] is found later in the array
        if (this[i] === this[j])
          j = ++i;
      }
      a.push(this[i]);
    }
    return a;
}

function showChannels(firstTime)
{
    var tmpi = 0;
    var i,j;
    var html;
    var out  = [];
    if (firstTime)
        for (i=0; i < CHANNELS.length; i++)
            CHANNELSID[CHANNELS[i].canal_id] = i;

    if (CurrentMode != 'all')
    {
        for (i=0; i < PACKAGES.length; i++)
            if (PACKAGES[i].package_type == CurrentMode && $('#package_'+PACKAGES[i].package_id).get(0).checked)
                for (j=0; j < PACKAGES[i].channels.length; j++) out.push(PACKAGES[i].channels[j].canal_id);
        out = out.unique();
    }

    if (CurrentMode != 'all' && out.length == 0)
    {
        html = '<p>Список каналов пуст</p><br/><br/>';
    }
    else
    {
        var tmpmid = 0;
        var tmpfirst = 0;
        html = '<table id="tv-listrings"><col width="50%">';
        if (CurrentMode == 'all')
        {
            var middle = Math.ceil(CHANNELS.length/2);
            for (i=0; i < CHANNELS.length; i++)
            {
                if (i % 2 == 0) 
                {
                    html += '<tr><td style="height:24px"><input type="checkbox" name="channels" value="'+CHANNELS[tmpfirst].canal_id+'" checked="true">'+CHANNELS[tmpfirst].image_24+' <span class="descr">'+CHANNELS[tmpfirst].name+'</span></td>';
                    tmpfirst++;
                }
                else
                {
                    html += '<td style="height:24px"><input type="checkbox" name="channels" value="'+CHANNELS[middle+tmpmid].canal_id+'" checked="true">'+CHANNELS[middle+tmpmid].image_24+' <span class="descr">'+CHANNELS[middle+tmpmid].name+'</span></td></tr>';
                    tmpmid++;
                }
            }
        }
        else
        {
            var middle = Math.ceil(out.length/2);
            for (i=0; i < out.length; i++)
            {
                if (i % 2 == 0) 
                {
                    html += '<tr><td style="height:24px"><input type="checkbox" name="channels" value="'+CHANNELS[CHANNELSID[out[tmpfirst]]].canal_id+'" checked="true">'+CHANNELS[CHANNELSID[out[tmpfirst]]].image_24+' <span class="descr">'+CHANNELS[CHANNELSID[out[tmpfirst]]].name+'</span></td>';
                    tmpfirst++;
                }
                else
                {
                    html += '<td style="height:24px"><input type="checkbox" name="channels" value="'+CHANNELS[CHANNELSID[out[middle+tmpmid]]].canal_id+'" checked="true">'+CHANNELS[CHANNELSID[out[middle+tmpmid]]].image_24+' <span class="descr">'+CHANNELS[CHANNELSID[out[middle+tmpmid]]].name+'</span></td></tr>';
                    tmpmid++;
                }
            }
        }
        html += '</table>';
    }
    $('#channelsdiv').html(html);
    html = '';
    if (!firstTime) $('#channelsdiv').jNice();
}

function changeMode(mode)
{
    CurrentMode = mode;
    $('#packages p input[type=checkbox]').parent().parent().addClass('hidden');
    $('#td_'+mode+' p input[type=checkbox]').parent().parent().removeClass('hidden');
    showChannels();
}

function initTvProgram()
{
    $('#hidechannels').bind('click', function(){if ($(this).hasClass('minus')) {this.className = 'plus';} else{this.className = 'minus';}; $('#channelsdiv').toggle();});
    $('#show').bind('click', function(){getProgram();});
    $('#packages input[type=checkbox]').each(function(){
            $(this).get(0).onclick = function(){
                showChannels();
            };
        });
}

function getProgram()
{
    if ($('#forprint').get(0).checked)
    {
        document.forms['programme'].submit();
    }
    else
    {
        $('#tvresult').html('').html('<img src="/i/ajax/tvajax.gif" alt="Загрузка..." />');
        
        $.post('/ajax'+TOPICURL, $('#programme').serialize(), function(data){
             $('#tvresult').html(data);
        });
    }
}

function toggleCheck()
{
    allChecked = ($('#channelsdiv input:checked').length < $('#channelsdiv input').length);
    $('#channelsdiv input').each(function(){$(this).get(0).checked=!allChecked;});
    $('#channelsdiv .jNiceCheckbox').click();
}