$(function(){

    var createCookie = function(name,value,days) {
	    if (days) {
		    var date = new Date();
		    date.setTime(date.getTime()+(days*24*60*60*1000));
		    var expires = "; expires="+date.toGMTString();
	    }
	    else var expires = "";
	    document.cookie = name+"="+value+expires+"; path=/";
    };

    var readCookie = function(name) {
	    var nameEQ = name + "=";
	    var ca = document.cookie.split(';');
	    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) return c.substring(nameEQ.length,c.length);
	    }
	    return null;
    };

    var eraseCookie = function(name) {
	    createCookie(name,"",-1);
    };
   
    $expandable = $('.expandable');
    $expandable.parent().next().hide();

    var listsExpandedVal = readCookie('lists_expanded');
    if ("on" == listsExpandedVal) {
        $('.nav_header a:contains("Lists")')
        .prev()
        .removeClass('expandable_closed')
        .addClass('expandable_open')
        .parent().next().show();
    }
    var contactsExpandedVal = readCookie('contacts_expanded');
    if ("on" == contactsExpandedVal) {
        $('.nav_header a:contains("Contacts")')
        .prev()
        .removeClass('expandable_closed')
        .addClass('expandable_open')
        .parent().next().show();
    }
    var feedsExpandedVal = readCookie('feeds_expanded');
    if ("on" == feedsExpandedVal) {
        $('.nav_header a:contains("Feeds")')
        .prev()
        .removeClass('expandable_closed')
        .addClass('expandable_open')
        .parent().next().show();
    }
    var linksExpandedVal = readCookie('links_expanded');
    if ("on" == linksExpandedVal) {
        $('.nav_header a:contains("Links")')
        .prev()
        .removeClass('expandable_closed')
        .addClass('expandable_open')
        .parent().next().show();
    }

    $('.on').parent().parent().show().prev().children('.expandable').removeClass('expandable_closed').addClass('expandable_open');
    
    $expandable.click(function(e){
        var $this = $(this);
        if ($this.hasClass('.expandable_closed')){
            $this.parent().next().show();  
            $this.removeClass('expandable_closed').addClass('expandable_open'); 
            setExpandedCookie($this.next().html(),
                'on');
        } else {
            $this.parent().next().hide();   
            $this.removeClass('expandable_open').addClass('expandable_closed'); 
            setExpandedCookie($this.next().html(),
                'off');
        }
        e.preventDefault();
    });
    
    var setExpandedCookie = function(name, value){
        if ('Lists' == name) {
            createCookie('lists_expanded', value);
        } else if ('Contacts' == name){
            createCookie('contacts_expanded', value);
        } else if ('Feeds' == name){
            createCookie('feeds_expanded', value);
        } else if ('Links' == name){
            createCookie('links_expanded', value);
        }
    };
});
