﻿var CategoryNavState = { unloaded: 0, initialized: 1, loaded: 2 };
    
var categorynavstate = CategoryNavState.unloaded;
var currentcategorynavindex = -1;
var showtimeout;
var hidetimeout;

//RequestHandler - wird aufgerufen wenn ein Ajax-Request beendet wurde.
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function EndRequestHandler(sender, args)
{
    if (args.get_error() != undefined)
    {
        //Fehlermeldung abfangen
        args.set_errorHandled(true);
    }
});

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function (sender, args)
{
    var panels = args.get_panelsUpdated();

    for (var i = 0; i < panels.length; i++)
    {
        if (panels[i].id.toLowerCase().indexOf('up_categorynav') > -1)
        {
            categorynavstate = CategoryNavState.loaded;

            if (currentcategorynavindex > -1)
                ShiftCategoryNavContent(currentcategorynavindex);
        }
    }

});

function OnEvent_ShowCategoryNavItem(index)
{
    if(index > 0)
    {
        window.clearTimeout(hidetimeout);
    
        //Inhalte laden
        if(categorynavstate == CategoryNavState.unloaded)
            InitializeCategoryNav();

        currentcategorynavindex = index;

       
        window.clearTimeout(showtimeout);
        showtimeout = window.setTimeout(function(){
            
            ShiftCategoryNavContent(index);
            
        }, 300);
    }
}

function OnEvent_MoveCategoryNavItem(index)
{
    window.clearTimeout(showtimeout);
    window.clearTimeout(hidetimeout);
}

function OnEvent_HideCategoryNavItem()
{
    window.clearTimeout(showtimeout);
    window.clearTimeout(hidetimeout);
    hidetimeout = window.setTimeout(function(){ ResetCategoryNav(); }, 300);
}

function InitializeCategoryNav()
{
    categorynavstate = CategoryNavState.initialized;
    __doPostBack(up_categorynav, '');
}

function ShiftCategoryNavContent(index)
{
    if(categorynavstate == CategoryNavState.loaded)
    {
        var alreadyvisible = $("categorynav_" + index).visible();
        
        ResetCategoryNav();
    
        var sourcewrapper = $('bottomteaserlistitem_' + index);
        var contentwrapper = $('categorynavcontent_' + index);
        
        $('categorynav_' + index).show();
        $('subnavlink_' + index).className = 'hover';
        
        if(contentwrapper.innerHTML.length == 0)
            contentwrapper.update(sourcewrapper.innerHTML);
        
        if(!alreadyvisible)
        {
            contentwrapper.show();
            //Effect.Appear(contentwrapper, { duration: 0.25 });
        }
    }
}

function ResetCategoryNav()
{
    currentcategorynavindex = -1;
    $$('span.categorynav').each(function(item){item.hide();});
    $$('span.categorynavcontent').each(function(item){item.innerHTML = '';});
    $$('#navigation2 a.hover').each(function(item){item.className='';});
}

