/**
 * @preserve Galleria Classic Theme 2011-02-14
 * http://galleria.aino.se
 *
 * Copyright (c) 2011, Aino
 * Licensed under the MIT license.
 */
 
/*global jQuery, Galleria */

(function ($) {

    Galleria.addTheme({
        name: 'home',
        author: 'Galleria',
        css: 'galleria.home.css',
        defaults: {
            transition: "slide",
            thumbCrop: true,
            imageCrop: true,
            carousel: true,
            imagePan: true,
            clicknext: true,
            thumbnails: "numbers",
            showCounter: false,
            autoplay: 5000


            // set this to false if you want to show the caption all the time:
            //_toggleInfo: true
        },
        init: function (options) {

            $(".galleria-info").prepend("<div class=\"transparency\"></div>");

            // add some elements
            this.addElement('info-link', 'info-close');
            this.append({
                'info': ['info-link', 'info-close']
            });

            // cache some stuff
            var info = this.$('info-link,info-close,info-text'),
            touch = Galleria.TOUCH,
            click = touch ? 'touchstart' : 'click';

            // show loader & counter with opacity
            this.$('loader,counter').show().css('opacity', 0.4);

            // some stuff for non-touch browsers
            if (!touch) {
                this.addIdleState(this.get('image-nav-left'), { left: -50 });
                this.addIdleState(this.get('image-nav-right'), { right: -50 });
                this.addIdleState(this.get('counter'), { opacity: 0 });
            }

            // toggle info
            if (options._toggleInfo === true) {
                info.bind(click, function () {
                    info.toggle();
                });
            } else {
                info.show();
                this.$('info-link, info-close').hide();
            }

            // bind some stuff
            this.bind('thumbnail', function (e) {

                if (!touch) {
                    // fade thumbnails
                    $(e.thumbTarget).css('opacity', 0.6).parent().hover(function () {
                        $(this).not('.active').children().stop().fadeTo(100, 1);
                    }, function () {
                        $(this).not('.active').children().stop().fadeTo(400, 0.6);
                    });

                    if (e.index === options.show) {
                        $(e.thumbTarget).css('opacity', 1);
                    }
                }
            });

            this.bind('loadstart', function (e) {
                if (!e.cached) {
                    this.$('loader').show().fadeTo(200, 0.4);
                }

                this.$('info').toggle(this.hasInfo());

                $(e.thumbTarget).css('opacity', 1).parent().siblings().children().css('opacity', 0.6);
            });

            this.bind('loadfinish', function (e) {
                this.$('loader').fadeOut(200);
            });
        }
    });

} (jQuery));

