/// <reference path="jquery-1.3.2-vsdoc.js"/>

PHOTO.portfolio = {
    images: []
};

var port = function() {
    var current = 0;

    var getLeftOffset = function() {
        var pnl = $('#portfolioImg');
        var x = pnl.offset().left;
        return x;
    };

    var getRightOffset = function() {
        var pnl = $('#portfolioImg');
        var x = pnl.offset().left + pnl.width() - $('#right').width();
        return x;
    };

    var retrieveUrl = function() {
        var url = location.href;
        return url.indexOf('#') === -1 ? '' : url.substr(url.indexOf('#') + 1);
    };

    var getNavPosition = function(urlPos) {
        urlPos = urlPos || retrieveUrl();
        var pos;
        if (urlPos === '') {
            pos = current;
        } else if (urlPos === 'prev') {
            pos = current - 1;
            if (pos < 0) { pos = 0; }
        } else if (urlPos === 'next') {
            pos = current + 1;
            if (pos >= PHOTO.portfolio.images.length) { pos = current; }
        } else {
            pos = parseInt(urlPos) - 1;
        }
        current = pos;
    };

    var setEvents = function() {
        $('a.nav').click(function() {
            var url = $(this).attr('href').substr(1);
            PHOTO.UI.displayLoader('#portfolioImg');
            getNavPosition(url);
            displayImage();
        });
        $('a[href=next]').click(function() {
            var index = current === 0 ? 1 : current + 1;
            if (index < $('a.nav').length) {
                location.href = '#' + (index + 1);
                $('a.nav:eq(' + (index) + ')').click();
            }
            return false;
        });
        $('a[href=prev]').click(function() {
            if (current > 0) {
                location.href = '#' + current;
                $('a.nav:eq(' + (current - 1) + ')').click();
            }
            return false;
        });
    };

    var displayImage = function() {
        $('#portfolioImg').click(function() { location.href = PHOTO.portfolio.images[current]; }).children('img').attr('src', PHOTO.portfolio.images[current]);
        $('nav.portfolio > a').removeClass('selected');
        $('nav.portfolio > a:eq(' + (current + 1) + ')').addClass('selected');
    };

    return {
        init: function() {
            PHOTO.UI.displayLoader('#portfolioImg');
            getNavPosition();
            setEvents();
            displayImage();
            
            $('#portfolioImg > img').load(function () {
                $('#portfolioImg').width($('#portfolioImg > img').width() + 'px');
                PHOTO.UI.hideLoader();
            })
        }
    };
} ();

PHOTO.addlScripts.push(port);
