    var running = false;
    var category = 'featured';

    function pageload(hash){
        if(hash != ''){
            var oldCategory = category;
            category = decodeURIComponent(hash);

            $('#gallery-menu li a').each(function() { $(this).removeClass('active'); });
            $('#gallery-menu li a[rel="' + category + '"]').addClass('active');

            var listArray = $('#cats li');
            var selectedLI = listArray.index( listArray.find('.active').parent() )

            if(selectedLI == -1){
                category = oldCategory;
                $('#gallery-menu li a').each(function() { $(this).removeClass('active'); });
                $('#gallery-menu li a[rel="' + category + '"]').addClass('active');
            }

            moveSlider();
        }
        pagination.load(category, 1);
    }

    function moveSlider()
    {
        // Scroll down to the proper category
        var listArray = $('#cats li');
        var selectedLI = listArray.index( listArray.find('.active').parent() );
        var ps = 100 / ($('#cats').children().size() - 1);
        $( "#content-slider" ).slider("value", 100 - (ps * selectedLI));
    }

    $(function() {
        var current_hash = location.hash.replace(/\?.*$/, '');
        if(!current_hash){
            pagination.load(category, 1);
        }

        $( "#content-slider" ).slider({
            change: handleSliderChange,
            slide: handleSliderSlide,
            orientation: 'vertical',
            animate: true,
            value: 80
        });

        $.historyInit(pageload, '');

        $('#gallery').mousewheel(function(event, delta) {
            if(running == true) return false;
            running = true;
            max = parseInt($('#pagination').attr('max'));
            page = parseInt($('#pagination').attr('rel')) + (-1 * delta);

            if(page < 1 || page > max){
                running = false;
                return false;
            }

            pagination.load(category, page);
            return false;
        });

        $('#gallery-menu li a').click(function() {
            $('#gallery-menu li a').each(function() { $(this).removeClass('active'); });
            $(this).addClass('active');
            $.historyLoad($(this).attr('rel'));
            return false;
        });
    });

    var pagination = function() {

        var page, max;
        this.cat = '';

        return {

            load: function(cat, page) {
                category = cat;
                pagination.cat = cat;
                pagination.showLoader();
                page = parseInt(page);

                $.ajax({
                    url: 'ajaxGallery.php',
                    data: ({'cat': cat, 'page': page}),
                    success: function(data, textStatus, XMLHttpRequest) {
                        $('#gallery').hide().html(data).fadeIn('fast');
                        running = false;
                        max = $('#pagination').attr('max');

                        if ($('#pageLeft').attr('rel') == 'on') {
                            $('#pageLeft').click(function() { pagination.load(cat, page-1); return false; });
                        } else {
                            $('#pageLeft').click(function() { return false; });
                        }
                        if ($('#pageRight').attr('rel') == 'on') {
                            $('#pageRight').click(function() { pagination.load(cat, page+1); return false; });
                        } else {
                            $('#pageRight').click(function() { return false; });
                        }

                        $('#pagination li a').click(function() { return false; });

                        $('#pagination a.page').click(function() {
                            pagination.load(cat, $(this).attr('rel'));
                            return false;
                        });

                        if (page>1)    $('#pagination a[rel=first]').click(function() { pagination.load(cat, 1); });
                        if ((page-1)>=1)   $('#pagination a[rel=prev]').click(function() { pagination.load(cat, page-1); });
                        if ((page+1)<=max) $('#pagination a[rel=next]').click(function() { pagination.load(cat, page+1); });
                        if (page < max)    $('#pagination a[rel=last]').click(function() { pagination.load(cat, max); });

                        if (page == 1) $('#pageLeft').attr('disabled', 'disabled').css('opacity', '0.3');
                        if (page == max) $('#pageRight').attr('disabled', 'disabled').css('opacity', '0.3');

                        pagination.hideLoader();
                    }
                });
                return false;
            },

            getCat: function() { return cat; },
            getPage: function() { return page; },
            getMax: function() { return max; },

            showLoader: function() {
                $('#gallery').html('<div class="loader"></div>');
            },

            hideLoader: function() {
                $('#gallery .loader').remove();
            }
        }

    }();

    function  handleSliderChange(e, ui)
    {
        var maxScroll = $("#content-scroll").attr("scrollHeight") - $("#content-scroll").height();
        $("#content-scroll").animate({scrollTop: (100-ui.value) * (maxScroll / 100) }, 400);
    }

    function handleSliderSlide(e, ui)
    {
        var maxScroll = $("#content-scroll").attr("scrollHeight") - $("#content-scroll").height();
        $("#content-scroll").attr({scrollTop: (100-ui.value) * (maxScroll / 100) });
    }


