Edit in JSFiddle

External resources loaded into this fiddle:

(function() {

    var $container = $('#main'),
        $article = $container.find('figure'),
        $gridNav = $('#view .grid'),
        $listNav = $('#view .list');

    // Functions...


    function gridMode() {
        $article.addClass('grid');
        $gridNav.addClass('active');
        $listNav.removeClass('active');
        $container.masonry({
            itemSelector: ".grid",
            isAnimated: true,
            isFitWidth: true
        });
        createCookie('grid', null, 7000);
        return false;
    }

    function listMode() {
        $article.removeClass('grid');
        $gridNav.removeClass('active');
        $listNav.addClass('active');
        $container.masonry("destroy");
        eraseCookie('grid');
        return false;
    }

    // Initialize...
    // If the 'grid' cookie reads
    if (readCookie('grid')) {
        gridMode();
        $(window).load(function() {
            $container.masonry("reload");
        });
        eraseCookie('grid');
    } else {
        listMode();
    }

    // By user...
    $listNav.click(listMode);
    $gridNav.click(gridMode);

})();
<nav id="view">
    <a class="grid" href="#">Grid</a>
    <a class="list" href="#">List</a>
</nav>
<div id="main">
    <figure><img src="http://lorempixel.com/200/100/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/200/200/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/100/200/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/120/100/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/80/100/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/200/100/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/100/200/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/120/100/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/80/100/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/200/100/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/100/200/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/200/200/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/120/100/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/80/100/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/200/200/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/200/100/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/200/200/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/100/200/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/120/100/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/80/100/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/200/100/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/100/200/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/120/100/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/80/100/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/200/100/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/100/200/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/200/200/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/120/100/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/80/100/animals/" alt="loading..."></figure>
    <figure><img src="http://lorempixel.com/200/200/animals/" alt="loading..."></figure>
</div>
* {
    margin:0;
    padding:0;
}

#view {
    display:block;
    width:95%;
    margin:10px auto;
}

#view a {
    display:inline-block;
    background-color:darkblue;
    padding:2px 7px;
    text-decoration:none;
    color:white;
}

#view a.active {
    background-color:darkred;
}

#main {
    width:98%;
    margin:10px auto;
}

figure {
    display:block;
    background-color:black;
    font:normal 11px Arial,Sans-Serif;
    color:white;
    padding:10px 15px;
    margin:0 2px 2px 0;
}

figure img {
    display:block;
    margin:0 auto;
}

figure.grid {
    float:left;
    width:auto;
    padding:2px;
}