$(document).ready(function () {

    var current = {};
    $('div.gallery').each(function () {
        $gall = $(this);
        // hide images
        $gall.find('p:not(:first)').hide();
        // init fancybox
        $gall.find('p a').fancybox();
        // init thumbnail browsing
        if ($gall.find('img').length > 1) {
            current[$gall.attr('id')] = 0;
            $gall.find('div.desc').after(
                '<div class="navi"><a href="#" class="prev">&laquo; previous</a>'
                + ' Viewing image <span class="current">1</span> of <span class="total">?</span>. '
                + '<a href="#" class="next">next &raquo;</a></div>'
            );
            $gall.find('span.total').text($gall.find('p').length);
            $gall.find('a.prev').click(function () {
                var $g = $(this).parents('div.gallery');
                var gid = $g.attr('id');
                var total = $g.find('span.total').text() - 1;
                var next = current[gid] == 0 ? total : current[gid] - 1;
                $g.find('p:eq(' + current[gid] + ')').hide();
                $g.find('p:eq(' + next + ')').show();
                $g.find('span.current').text(next + 1);
                current[gid] = next;
                return false;
            });
            $gall.find('a.next').click(function () {
                var $g = $(this).parents('div.gallery');
                var gid = $g.attr('id');
                var total = $g.find('span.total').text() - 1;
                var next = current[gid] == total ? 0 : current[gid] + 1;
                $g.find('p:eq(' + current[gid] + ')').hide();
                $g.find('p:eq(' + next + ')').show();
                $g.find('span.current').text(next + 1);
                current[gid] = next;
                return false;
            });
        }
    });

});
