/**
 * This library is used for handling articles list
 * update without page reload.
 */
if ( activeTab == undefined ) {
    var activeTab  = "";
}
if ( urlPrefix == undefined ) {
    var urlPrefix  = "";
}
if ( filterDate == undefined ) {
    var filterDate = "";
}

function htmlspecialchars(html) {
      // Сначала необходимо заменить &
      html = html.replace(/&/g, "&amp;");
      // А затем всё остальное в любой последовательности
      html = html.replace(/</g, "&lt;");
      html = html.replace(/>/g, "&gt;");
      html = html.replace(/"/g, "&quot;");
      // Возвращаем полученное значение
      return html;
}

function changeCursor( newShape ) {
/*
    document.body.style.cursor = newShape;

    if ( newShape == "progress" ) {
        $("a").addClass("cursor-wait");
    }
    else {
        $("a").removeClass("cursor-wait");
    }
*/
    $(".prev-next td.next").html('');
    $(".prev-next td.prev").html('');
    if ( newShape == "progress" ) {
        $("#articles-list").html('<div class="ajax-progress"><img src="/media/images/ajax-progress.gif" width="32" height="32" alt="Загрузка данных"></div>');
    }
    else {
        $("#articles-list").html('');
    }
}

function changeTab( newTab ) {
    if ( newTab == activeTab ) {
        return;
    }

    changeCursor("progress");

    //$.getJSON("/ajax/articles-list.json", {type: newTab, url_prefix: urlPrefix, date: filterDate}, processResponse);
    $.ajax({
        url: "/ajax/articles-list.json",
        type: "GET",
        data: {type: newTab, url_prefix: urlPrefix, date: filterDate, tag: tag},
        dataType: "json",
        error: function() {changeCursor("default");},
        success: processResponse
    });

    activeTab = newTab;

} // end of function changeTab()

function processResponse( json ) {

    changeCursor("default");
    if ( json.error != "" ) {
        alert(json.error);
        return;
    }

    redrawTabs(json["type"]);
    redrawList(json);

} // end of function processResponse()

function redrawTabs( newTab ) {

    var html = '<table class="tabs"><tr>';

    html += '<td' + ((newTab == "news") ? ' class="selected"' : ((newTab == "articles") ? ' class="before-selected"' : "" )) + '><a href="' + urlPrefix + '/news/'+ filterDate +'" onclick="changeTab(\'news\'); return false;">Новости</a></td>';
    html += '<td' + ((newTab == "articles") ? ' class="selected-last last"' : ' class="last"') +'><a href="' + urlPrefix + '/articles/'+ filterDate +'" onclick="changeTab(\'articles\'); return false;">Статьи</a></td>';

    html += '</tr></table>';
    html += '<a class="rss" href="/news.xml"><img src="/media/images/icons/rss.png" width="29" height="14" alt="RSS" class="rss"></a>';

    $("#article-tabs").html(html);

} // end of function redraw_tabs()

function redrawList( json ) {

    // Changing date
    $(".articles-date div").html(json["title_date"]);

    // Changing previous day
    if ( json["prev_next"]["prev"]["url"] == "" ) {
        $(".prev-next td.prev").html('');
    }
    else {
        $(".prev-next td.prev").html('<div><a href="'+ htmlspecialchars(json["prev_next"]["prev"]["url"]) +'">'+ htmlspecialchars(json["prev_next"]["prev"]["title"]) +'</a></div>');
    }

    // Changing next day
    if ( json["prev_next"]["next"]["url"] == "" ) {
        $(".prev-next td.next").html('');
    }
    else {
        $(".prev-next td.next").html('<div><a href="'+ htmlspecialchars(json["prev_next"]["next"]["url"]) +'">'+ htmlspecialchars(json["prev_next"]["next"]["title"]) +'</a></div>');
    }

    // Redraw articles list
    if ( json["type"] == "articles" ) {
        redrawArticlesList(json);
    }
    else {
        redrawNewsList(json);
    }

} //  end of function redraw_list()

function redrawArticlesList( json ) {

    if ( !json.articles.length ) {
        var html = '<p style="margin-top: 20px; margin-bottom: 20px;">За указанный период статей нет</p>';
    }
    else {

        var html = '';
        var cur_date = '';
        for ( var k in json["articles"] ) {
            if ( cur_date != json["articles"][k]["date"] ) {
                // This is new date
                if ( cur_date != '' ) {
                    html += '</table>';
                }
                html += '<div class="articles-date">';
                html += '<div>' + json["articles"][k]["date"] + '</div>';
                html += '</div>';
                html += '<table class="articles">';
                cur_date = json["articles"][k]["date"];
            }
            html += '<tr>';
            if ( json["articles"][k]["image"] != '' ) {
                html += '<td><a href="' + htmlspecialchars(json["articles"][k]["url"]) + '"><img src="'+ htmlspecialchars(json["articles"][k]["image"]) +'" width="102" height="102" alt="" /></a></td><td>';
            }
            else {
                html += '<td colspan="2">';
            }

            html += '<p class="time">' + htmlspecialchars(json["articles"][k]["time"]) + '</p>';
            html += '<h4><a href="'+ htmlspecialchars(json["articles"][k]["url"]) +'">' + htmlspecialchars(json["articles"][k]["title"]) + '</a></h4>';
            html += '<div>' + json["articles"][k]["brief"] + '</div>';
            html += '</td>';

            html += '</tr>';
        }
        html += '</table>';
    }

    $("#articles-list").html(html);

} // end of function redrawArticlesList()

function redrawNewsList( json ) {

    if ( !json.articles.length ) {
        var html = '<p style="margin-top: 20px; margin-bottom: 20px;">За указанный период статей нет</p>';
    }
    else {
        var html = '';
        var cur_date = '';

        for ( var k in json["articles"] ) {
            if ( cur_date != json["articles"][k]["date"] ) {
                // This is new date
                if ( cur_date != '' ) {
                    html += '</table>';
                }
                html += '<div class="articles-date">';
                html += '<div>' + json["articles"][k]["date"] + '</div>';
                html += '</div>';
                html += '<table class="news">';
                cur_date = json["articles"][k]["date"];
            }

            html += '<tr><td>';

            html += '<td><p class="time">' + htmlspecialchars(json["articles"][k]["time"]) + '</p></td>';
            html += '<td>';
            html += '<h4><a href="'+ htmlspecialchars(json["articles"][k]["url"]) +'">' + htmlspecialchars(json["articles"][k]["title"]) + '</a></h4>';
            html += '<div>' + json["articles"][k]["brief"] + '</div>';

            html += '</td></tr>';
        }
        html += '</table>';
    }
    //$("#articles-list").html("");
    $("#articles-list").html(html);

} // end of function redrawNewsList()



