//var trace = function (txt)
//{
//    if (window.console) console.log(txt);
//}


$(document).ready(function()
{
    var accordion = new NewsAccordion();
    accordion.init();
});

function NewsAccordion()
{
    var SELECTOR_ACCORDION_ITEM = '.newsItem .accordion';

    var STYLE_COLLAPSED = 'newsItemCollapsed';
    var STYLE_EXPANDED = 'newsItemExpanded';
    var HOVER = 'Hover';

    this.init = function()
    {
        collapseAll();

        var newsItems = $(SELECTOR_ACCORDION_ITEM);
        newsItems.click(function()
        {
            expandCollapse(this);
        });

        newsItems.mouseover(function()
        {
            hoverOn(this);
        });

        newsItems.mouseout(function()
        {
            hoverOff(this);
        });

        //newsItems.focusin(function()
        //{
        //    hoverOn(this);
        //});
        //
        //
        //newsItems.focusout(function()
        //{
        //    hoverOff(this);
        //});

        // expand first news item
        expandCollapse(newsItems[0]);
    }

    /**
     * Collapses all Newsitems.
     */
    var collapseAll = function ()
    {
        var newsItems = $(SELECTOR_ACCORDION_ITEM);
        newsItems.removeClass(STYLE_EXPANDED);
        newsItems.addClass(STYLE_COLLAPSED);
    }

    /**
     * Toggles the state (expanded/collapsed) of the Newsitem.
     *
     * @param item
     */
    var expandCollapse = function (item)
    {
        if ($(item).hasClass(STYLE_COLLAPSED))
        {
            $(item).removeClass(STYLE_COLLAPSED);
            $(item).addClass(STYLE_EXPANDED);
            hoverOff(item);
        } else
        {
            $(item).removeClass(STYLE_EXPANDED);
            $(item).addClass(STYLE_COLLAPSED);
        }
    }

    /**
     * Enables hover of newsitem.
     *
     * @param item
     */
    var hoverOn = function (item)
    {
        if ($(item).hasClass(STYLE_COLLAPSED))
        {
            $(item).addClass(STYLE_COLLAPSED + HOVER);
        }
        else if ($(item).hasClass(STYLE_EXPANDED))
        {
            $(item).addClass(STYLE_EXPANDED + HOVER);
        }
    }

    /**
     * Disables hover of newsitem.
     *
     * @param item
     */
    var hoverOff = function (item)
    {
        if ($(item).hasClass(STYLE_COLLAPSED + HOVER))
        {
            $(item).removeClass(STYLE_COLLAPSED + HOVER);
        }
        else if ($(item).hasClass(STYLE_EXPANDED + HOVER))
        {
            $(item).removeClass(STYLE_EXPANDED + HOVER);
        }


    }

}




