$(document).ready(function() {
    $(".sub_menu span.h3").click(function(event) {
        if($(this).siblings('ul:visible').length == 0) {
            addActiveLeftMenu($(this).attr('id'));
            $(this).siblings('ul').slideDown();
        } else {
            $(this).siblings('ul').slideUp();
            removeActiveLeftMenu($(this).attr('id'));
        }

        event.stopPropagation();
    });

    $(".sub_menu ul li").click(function(event) {
        if($(this).children('ul:visible').length == 0) {
            addActiveLeftMenu($(this).attr('id'));
            $(this).children('ul').slideDown();
        } else {
            removeActiveLeftMenu($(this).attr('id'));
            $(this).children('ul').slideUp();
        }

        event.stopPropagation();
    });

    openActiveLeftMenuItems();
});

function addActiveLeftMenu(elemId)
{
    elemId = elemId.replace('lmenu_', '');

    var items = localStorage.getItem('leftMenuOpenedItems');
    if(items == null) {
        items = new Array();
        items.push(elemId);
    } else {
        items = items.split(',');
        var isSet = false;
        for(var i = 0; i < items.length; i++) {
            if(items[i] == elemId) {
                isSet = true;
                break;
            }
        }
        if(isSet == false) {
            items.push(elemId);
        }
    }

    localStorage.setItem('leftMenuOpenedItems', items);
}

function removeActiveLeftMenu(elemId)
{
    elemId = elemId.replace('lmenu_', '');
    var items = localStorage.getItem('leftMenuOpenedItems');
    if(items == null) {
        return;
    } else {
       items = items.split(','); 
    }

    for(var i = 0; i < items.length; i++) {
        if(items[i] == elemId) {
            items.splice(i, 1);
            break;
        }
    }

    localStorage.setItem('leftMenuOpenedItems', items);
}

function openActiveLeftMenuItems()
{
    var items = localStorage.getItem('leftMenuOpenedItems');
    if(items == null) {
        return;
    } else {
       items = items.split(',');
    }

    for(var i = 0; i < items.length; i++) {
        var $siblings = $('#lmenu_' + items[i]).siblings('ul'); // if parent menu
        var $children = $('#lmenu_' + items[i]).children('ul'); // if children menu

        if($siblings.length != 0) {
            $siblings.show();
        }
        if($children.length != 0) {
            $children.show();
        }
    }
}
