var Portfolio = {

    duration: 500,
    imagesBase: "",
    holder: "",
    position: 0,
    images: Array(),
    text: Array(),

    setText: function() {
        this.text = $('text_box').getElements('div.text');
        this.text.each(function(item, index) {
            item.setStyle('display', 'none');
        });
        this.newText();
    },

    newText: function() {
        Portfolio.text.each(function(item, index) {
            item.setStyle('display', 'none');
        });
        Portfolio.text[Portfolio.position].setStyle('display', 'block');
        EyeCandy.text();
    },

    images: function(images) {
        this.images = images;
        this.holder = $(this.holder);
        this.total = images.length;
        this.createPagination();
    },

    createPagination: function() {
        Portfolio.holder.empty();

        var previous = new Element("a", { 'href': 'javascript:Portfolio.previous();', 'html': '<&nbsp;' + (Portfolio.position + 1) });
        previous.inject(Portfolio.holder);

        var span = new Element("span", { 'html': '&nbsp;of&nbsp;' });
        span.inject(Portfolio.holder);

        var next = new Element("a", { 'href': 'javascript:Portfolio.next();', 'html': Portfolio.total + '&nbsp;>' });
        next.inject(Portfolio.holder);
    },

    next: function() {
        var img = $$('#header img')[0];
        if (img) {
            var headerFx = new Fx.Tween(img, { 'duration': Portfolio.duration });
            headerFx.addEvent("complete", function() {
                img.destroy();
                Portfolio.createNext();
            });
            headerFx.start('opacity', '0.0');
        } else {
            Portfolio.createNext();
        }
    },

    createNext: function() {
        if (Portfolio.position >= (Portfolio.total - 1)) {
            Portfolio.position = 0;
        } else {
            Portfolio.position++;
        }
        Portfolio.loadMedia();
    },

    previous: function() {
        var img = $$('#header img')[0];
        if (img) {
            var headerFx = new Fx.Tween(img, { 'duration': Portfolio.duration });
            headerFx.addEvent("complete", function() {
                img.destroy();
                Portfolio.createPrevious();
            });
            headerFx.start('opacity', '0.0');
        } else {
            Portfolio.createPrevious();
        }
    },

    createPrevious: function() {
        if (Portfolio.position == 0) {
            Portfolio.position = (Portfolio.total - 1);
        } else {
            Portfolio.position--;
        }
        Portfolio.loadMedia();
    },

    loadMedia: function() {

        $('header').empty();

        var loader = new Element("div", { 'id': 'loader' });
        loader.inject($('header'));

        var filename = Portfolio.images[Portfolio.position];

        if (filename.indexOf("swf") != "-1") {

            $('loader').destroy();
            var swfbox = new Element("div", { 'class': 'swfbox' });

            var obj = new Swiff(Portfolio.imagesBase + filename, { 'width': 444, 'height': 249 });
            obj.inject(swfbox);
            swfbox.inject($('header'));

            Portfolio.newText();

        } else if (filename.indexOf("youtube") != "-1") {

            $('loader').destroy();
            var swfbox = new Element("div", { 'class': 'swfbox' });

            var obj = new Swiff(filename, { 'width': 444, 'height': 249 });
            obj.inject(swfbox);
            swfbox.inject($('header'));

            Portfolio.newText();

        } else {

            var next = new Asset.image(Portfolio.imagesBase + filename, {
                onload: function() {
                    $('loader').destroy();
                    this.inject($('header'));
                    new Fx.Tween(this, { 'duration': Portfolio.duration }).start('opacity', '1.0');
                    Portfolio.newText();
                }
            });
            next.setStyle('opacity', '0.0');

        }

        Portfolio.createPagination();
    }

};