﻿
$(document).ready(function() {
    $('.accordian_menu li a:not(.accordian_menu li ul li a)').click(
        function() {
            OpenAccordianTab($(this));

            var curState = new SidebarAccordianState($(this).attr('id'));

            curState.Serialize();
        }
    );

    var behave = 'persist';
    try {
        behave = ppBehavior;
    }
    catch (e) {
    }

    var accToOpen = '123nothing';
    try {
        accToOpen = accordionToOpen;
    }
    catch (e) {
    }

    var stateRead = new SidebarAccordianState(accToOpen, behave);

    stateRead.Deserialize();
    
    $('.accordian_menu ul').hide();
    try {
        if ($('.accordian_menu li ' + stateRead.OpenedID).length > 0) {
            OpenAccordianTab($('.accordian_menu li ' + stateRead.OpenedID));
        }
        else {
            OpenAccordianTab($('.accordian_menu li a:first'));
        }
    }
    catch (e) {
        OpenAccordianTab($('.accordian_menu li a:first'));
    }
});


function OpenAccordianTab(someTab) {
    var opened = $('.accordian_menu li .opened');
    if (opened.attr('id') != someTab.attr('id')) {
        opened.toggleClass('opened');
        opened.parents('.accordian_menu li').children('.sidebarSection_inner').children('ul').slideToggle('normal');
    }
    someTab.toggleClass('opened');
    someTab.parents('.accordian_menu li').children('.sidebarSection_inner').children('ul').slideToggle('normal');
}



// class for persisting the sidebar
function SidebarAccordianState(openedID, behavior) {
    this.CookieName = 'sidebarAccordianCookie';

    this.OpenedID = openedID;
    this.Behavior = behavior;

    this.Serialize = function() {
            
        var date = new Date();
        date.setTime(date.getTime() + (7 * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
            
        document.cookie = this.CookieName + "=#" + this.OpenedID + expires + "; path=/";                       

        return this.OpenedID;
    };

    this.Deserialize = function() {

        var nameEQ = this.CookieName + "=";
        var ca = document.cookie.split(';');

        var cookieVal = '';

        for (var i = 0; i < ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') c = c.substring(1, c.length);
            if (c.indexOf(nameEQ) == 0) cookieVal = c.substring(nameEQ.length, c.length);
        }

        switch (this.Behavior) {
            case 'doNothing':                
                break;
            case 'persist':
            default:
                if (cookieVal != null) {
                    if (cookieVal.length > 0) {
                        this.OpenedID = cookieVal;
                    }
                }
                break;
        }
    };
}






