/* Minification failed. Returning unminified contents.
(4,45-50): run-time warning JS1028: Expected identifier or string: class
(27,42-47): run-time warning JS1028: Expected identifier or string: class
(28,43-48): run-time warning JS1028: Expected identifier or string: class
(29,42-47): run-time warning JS1028: Expected identifier or string: class
(30,41-46): run-time warning JS1028: Expected identifier or string: class
(37,38-43): run-time warning JS1028: Expected identifier or string: class
(53,39-44): run-time warning JS1028: Expected identifier or string: class
(75,40-45): run-time warning JS1028: Expected identifier or string: class
 */

function rssItemHtml(item) {

    var imageContainer = $('<div></div>', { class: 'rss-feed-image' });
    var itemImage;

    if (!item.image) {
        itemImage = [
            '<span class="no-image">',
            '<span>', portalScriptResources.No_Image, '</span>',
            '<img src="/content/sr/images/blank-image-120x120.png" alt="', portalScriptResources.No_Image, '" />',
            '</span>'
        ].join('');
    } else {
        var imageSrc = document.createElement("A");
        imageSrc.href = item.image;

        $(imageContainer).attr('style', 'background-image: url(' + imageSrc.origin + imageSrc.pathname + ');');
        itemImage = '<img src="' + imageSrc.origin + imageSrc.pathname + '" alt="' + Gap.Common.UI.escapeHtml(item.title) + '" />';
    };

    $(imageContainer).append(itemImage);

    var itemLink = $('<a></a>', { href: item.link });
    $(itemLink).attr('rel', 'follow');

    var rssFeedItem = $('<div></div>', { class: 'rss-feed-item' });
    var imageContent = $('<div></div>', { class: 'rss-feed-image-content' });
    var textContent = $('<div></div>', { class: 'rss-feed-text-content' });
    var rssFeedTitle = $('<h3></h3>', { class: 'rss-feed-title cut-text' }).html(item.title);

    var shortDate = new Date(item.pubDate.toString().slice(5,16));
    var day = shortDate.toLocaleString('default', { day: 'numeric' });
    var month = shortDate.toLocaleString('default', { month: 'long' });
    var year = shortDate.toLocaleString('default', { year: 'numeric' });
    var formattedDate = day + ' ' + month + ' ' + year;
    var rssFeedDate = $('<p></p>', { class: 'rss-feed-date' }).text(formattedDate);

    $(imageContent).append(imageContainer);
    $(textContent).append(rssFeedDate, rssFeedTitle);
    $(rssFeedItem).append(imageContent, textContent);
    $(itemLink).append(rssFeedItem);

    return itemLink;
}

function loadHomepageRssDesktop(items, desktop) {
    if (typeof items === 'undefined')
        throw 'No items from RSS feed retrieved - desktop';

    $.each(items, function (i, item) {

        var card = $('<div></div>', { class: 'rss-feed-card' });
        $(card).append(rssItemHtml(item));

        desktop.append(card);

    });

    var cards = desktop.find('.rss-feed-card');

    cards.first().wrapAll('<div class="half-width first-col"></div>');

    for(var i = 1; i < cards.length; i+=3) {
      cards.slice(i, i+3).wrapAll('<div class="half-width second-col"></div>');
    }
}

function loadHomepageRssSlick(items, carousel) {
    if (typeof items === 'undefined')
        throw 'No items from RSS feed retrieved - mobile';

    $.each(items, function (i, item) {

        var slide = $('<div></div>', { class: 'rss-feed-slide' });
        $(slide).append(rssItemHtml(item));

        carousel.append(slide);

    });

    carousel.slick({
        dots: false,
        arrows: false,
        infinite: false,
        slidesToShow: 2,
        mobileFirst: true,
        variableWidth: true,
    });
}

function gotHomepageRssError(err) {
    throw 'RSS Feed error: ' + err;
}

function gotHomepageRssData(result, desktop, carousel, container) {
    if (result) {
        try {
            container.removeClass('hide');

            loadHomepageRssSlick(result, carousel);

            var subsetResults = result.slice(0, 4);
            loadHomepageRssDesktop(subsetResults, desktop);
        }
        catch (err) {
            gotHomepageRssError(err);
        }
    }
}

function readHomepageRssFeed(url) {
    try {
        $.get(url)
            .done(function (result) { gotHomepageRssData(result, latestNewsStatic, latestNewsCarousel, latestNewsContainer) })
            .fail(function (error) { gotHomepageRssError(error); });
    }
    catch (err) {
        gotHomepageRssError('Unable to read RSS feed - ' + err);
    }
}

$(document).ready(function () {
    readHomepageRssFeed(latestNewsFeedUrl);
});;