//
// Preparing rss form for either adding or 
// editing.
//
function set_rss_form_for_add()
{
    var f = document.forms['form_rss'];
    
    f.action.value = 'ajax_add_rss';
    f.rss_id.value = '';
    f.title.value = '';
    f.url.value = '';
    f.max_num_items.value = 5;
    $('#flag_is_snippet_1').attr('checked', 'checked');
    $('#button_del_rss').hide();
}

function set_rss_form_for_edit(id)
{
    var f = document.forms['form_rss'];
    
    f.action.value = 'ajax_save_rss';
    f.rss_id.value = id;
    f.title.value = $('#rss_title_'+id).html();
    f.url.value = q_unescape($('#rss_url_'+id).html());
    f.max_num_items.value = q_unescape($('#rss_max_num_items_'+id).html());
    $('#flag_is_snippet_'+$('#rss_is_snippet_'+id).html()).attr('checked', 'checked');
    $('#button_del_rss').show();
}

//
// Send rss form.
//
function send_rss_form()
{
    var f = document.forms['form_rss'];
    
    var title = f.title.value;
    var url = f.url.value;
    var max_num_items = f.max_num_items.value;
    var flag_is_snippet = $("input[@name='flag_is_snippet']:checked").val();
    
    if ((title == '') || (url == '') || (max_num_items == ''))
    {
        my_alert('all field are must')
        return false;
    }

    var data = $("#form_rss").serialize();

    var code = "display_rss(%%%);";
    code += "close_modals();";
    code += "set_rss_form_for_add();";

    ajax(data, code, "", "button_rss", "saving_rss");
    
    return false;
}

//
// Deletes an rss url.
//
function del_rss()
{
    if (confirm(translate('should I delete the rss'))) 
    {
        document.forms['form_rss'].action.value = 'ajax_delete_rss';
        var data = $("#form_rss").serialize();

        var code = "display_rss(%%%);";
        code += "close_modals();";
        code += "set_rss_form_for_add();";

        ajax(data, code, '', 'button_del_rss', 'saving_del_rss');
    }

    return false;
}

//
// Displays rss media - SW mode.
//
function display_rss(data)
{                
    var html = "";
    var rss, rss_id, rss_title, rss_url, max_num_items, is_snippet;
    
    //
    // Go over rss items.
    //
    for (var i=0; i<data.length; i++)
    {
        //
        // Parse item data.
        //
        rss = data[i];

        rss_id = rss['id'];
        rss_title = rss['title'];
        rss_url = rss['url'];
        max_num_items = rss['max_num_items'];
        is_snippet = rss['flag_snippet'];
        
        //
        // Build rss html.
        //
        if (IS_CLIENT && IS_SW_MODE)
        {
            html += "<div class='handle rss' id='rss_item_"+rss_id+"'>";
                
                html += "<h1 rel='#form_rss' class='modal_input rss_title edit' id='rss_title_"+rss_id+"' onclick='set_rss_form_for_edit("+rss_id+")' alt='"+translate('click to edit')+"' title='"+translate('click to edit')+"'>"+rss_title+"</h1>";
                
                html += "<div id='rss_url_"+rss_id+"' style='display: none'>"+rss_url+"</div>";
                html += "<div id='rss_max_num_items_"+rss_id+"' style='display: none'>"+max_num_items+"</div>";
                html += "<div id='rss_is_snippet_"+rss_id+"' style='display: none'>"+is_snippet+"</div>";
                
                html += "<div id='rss_content_"+rss_id+"'></div>";
                
            html += "</div>";
        }
        
        else
        {
            html += "<div class='rss'>";
                
                html += "<h1 class='rss_title'>"+rss_title+"</h1>";
                html += "<div id='rss_content_"+rss_id+"'></div>";
                
            html += "</div>";
        }        
        
        //
        // Append display of rss items.
        //
        $.jGFeed
        (
            //
            // NOTE: the first two values go into the first 
            // two arguments of the following function.
            //
            is_snippet,
            'rss_content_'+rss_id,
            rss_url,
            
            function(is_snippet, rss_div_id, feeds)
            {       
                //
                // Case RSS failed.
                //
                if ( ! feeds)
                {
                    return;
                }
                
                //
                // Parse RSS.
                //
                var rss_title = feeds.title;
                var rss_url = feeds.url;
                var rss_author = feeds.author;
                var rss_description = feeds.description;
                var rss_type = feeds.type; // RSS type (atom10, etc.)
                
                var entry, title, url, author, date, snippet, content, categories;

                var html = '';
                
                for (var i=0; i < feeds.entries.length; i++)
                {
                    //
                    // Parse entry.
                    //
                    entry = feeds.entries[i];
                    
                    title = entry.title;
                    url = entry.link;
                    author = entry.author;
                    date = entry.publishedDate;
                    snippet = entry.contentSnippet; // Usually content short version (no images, shorter text etc.)
                    content = entry.content;
                    categories = entry.categories.join(';'); // Array.
                    
                    //
                    // Aplly 'rss image' class to images contained
                    // in conetnt.
                    //
                    content = content.replace('<img', '<img class="rss_image" align="'+translate('text-align')+'"');
                    content = content.replace('<div>', ''); // It interrupted with CSS box control.
                    content = content.replace('</div>', '');
                    
                    //
                    // Build entry HTML.
                    //
                    html += '<p class="rss_item_title"><a href="'+url+'" target="_blank">'+title+'</a></p>';
                    
                    if (date != '')
                    {
                        //html += '<p class="rss_item_date">'+date+'</p>'; // Skipped - RSS means 'latest content' anyhow.
                    }
                    
                    html += '<p class="rss_item_body" onclick="window.open(\''+url+'\');">';
                        html += (is_snippet == 1) ? snippet : content;
                    html += '</p>';
                }
                
                $('#'+rss_div_id).html(html);
            }, 
            
            max_num_items
        );
    }
    
    //
    // Display rss items.
    //
    $('#page_rss').html(html);
    
    //
    // jQuery for making rss items sortable.
    // See: http://docs.jquery.com/UI/Sortable
    //
    $("#page_rss").sortable(
    { 
        items: '.handle',
        opacity: 0.6,
        revert: true,
        
        update : function () 
        { 
            var f = document.forms['form_rss'];
            var page_id = get_form_field('form_rss', FLD_PAGE_ID);
            var ids = $('#page_rss').sortable('toArray'); 

            var data = 'action=ajax_save_rss_order&'+FLD_PAGE_ID+'='+page_id+'&rss_ids='+ids;
            var url = "";
            
            ajax(data, url, 'screen-message');
        } 
    });
    
    //
    // Make rss forms modal. 
    //
    make_modals('#rss');    
}
