Snapizzi = {
    init: function () {
        Shadowbox.init();
        // Snapizzi.Gallery.init();
        // Snapizzi.Pages.init();
        Snapizzi.Snippets.init();
    },
    Pages: {
        selected: '',
        pages: [],
        subscribers: {},
        init: function () {
            Snapizzi.Pages.selected = $$('#tabs-area ul li:first-child').first().id.split('-').last();
            $$('#tabs-area li a').each(function (tlink) {
                Snapizzi.Pages.pages.push(tlink.parentNode.id.split('-').last());
                Event.observe(tlink, 'click', function (ev) {
                    Snapizzi.Pages.switchPage(ev.element().parentNode.id.split('-').last());
                });
            });
            var pageFromUrl = document.location.toString().split('#').last().toLowerCase().stripScripts();
            if (Snapizzi.Pages.pages.indexOf(pageFromUrl) != -1) {
                Snapizzi.Pages.switchPage(pageFromUrl);
            } else {
                Snapizzi.Pages.switchPage(Snapizzi.Pages.selected);
            }
        },
        show: function (id) {
            $('page-' + id).show();
        },
        hide: function (id) {
            $('page-' + id).hide();
        },
        switchPage: function (newPageId) {
            if (Snapizzi.Pages.selected) {
                Snapizzi.Pages.triggerEvent('onunselect', Snapizzi.Pages.selected);
                $('tab-' + Snapizzi.Pages.selected).removeClassName('tabs-selected');
                Snapizzi.Pages.hide(Snapizzi.Pages.selected);
            }
            Snapizzi.Pages.selected = newPageId;
            $('tab-' + Snapizzi.Pages.selected).addClassName('tabs-selected');
            Snapizzi.Pages.show(Snapizzi.Pages.selected);
            Snapizzi.Pages.triggerEvent('onselect', Snapizzi.Pages.selected);
        },
        subscribe: function (options) {
            try {
                Snapizzi.Pages.subscribers[options.page] = {
                    onselect: options.onselect,
                    onunselect: options.onunselect
                };
            } catch (e) {};
        },
        triggerEvent: function (triggerEvent, page) {
            try {
                (Snapizzi.Pages.subscribers[page][triggerEvent])(triggerEvent, page);
            } catch (e) { };
        }
    },
    Gallery: {
        blessed: false,
        preload: function () {
            Galleria.loadTheme('/js/galleria/src/themes/dots/galleria.dots.js');
        },
        init: function () {
            if (Snapizzi.Gallery.blessed) return;
            // Snapizzi.Pages.subscribe({ page: 'inpics', onselect: function () {
                Snapizzi.Gallery.bless();
            // }});
        },
        bless: function () {
            if (Snapizzi.Gallery.blessed) return;
            jQuery('.galleria-container').galleria({
                autoplay: false
            });
            Snapizzi.Gallery.blessed = true;
        }
    },
    Snippets: {
        max: 0,
        count: 0,
        period: 4000, /* 4 seconds */
        timer: null,
        items: [
            // 'Snapizzi signs Letter of Intent with Bay Photo.',
            'Snapizzi CEO presents international expansion plans at Software City in Liverpool, UK.',
            'Snapizzi opens up its core matching technology for strategic partners.',
            'Snapizzi sponsored by Samsung to present at Plug and Play International Expo.'
        ],
        preText: '<img align="absmiddle" src="/images/icons/newspaper_32.png"/> &nbsp; ',
        init: function () {
            Snapizzi.Snippets.max = Snapizzi.Snippets.items.length;
            Snapizzi.Snippets.start();
        },
        start: function () {
            Snapizzi.Snippets.timer = window.setInterval(Snapizzi.Snippets.next, Snapizzi.Snippets.period);
            Snapizzi.Snippets.next();
        },
        next: function () {
            jQuery('#snippet-item').fadeOut(function () {
                $('snippet-item').update(
                    Snapizzi.Snippets.preText + Snapizzi.Snippets.items[Snapizzi.Snippets.count++]
                    + '&nbsp; &nbsp; <a href="/news">More news &#187;</a>'
                );
                jQuery('#snippet-item').fadeIn();
            });
            if (Snapizzi.Snippets.count == Snapizzi.Snippets.max) {
                Snapizzi.Snippets.count = 0;
            }
        },
        stop: function () {
            window.clearInterval(Snapizzi.Snippets.timer);
            Snapizzi.Snippets.timer = null;
        }
    },
    Service: {
        postServer: 'http://service.snapizzi.com',
        modules: {
            login   : '/homepage_form/login',
            demo    : '/homepage_form/request_demo',
            support : '/homepage_form/support_request'
        },
        doPost: function (module, serializedData, callback) {
            jQuery.post(Snapizzi.Service.postServer + module, serializedData, callback);
        },
        trials: {
            individual  : 'http://service.snapizzi.com/main/free-trial?plan_type=rev-tier1',
            small       : 'http://service.snapizzi.com/main/free-trial?plan_type=sub-individual',
            medium      : 'http://service.snapizzi.com/main/free-trial?plan_type=sub-basic'
        },
        openTrial: function (link) {
            window.open(link);
        }
    }
}
Event.observe(window, 'load', function () { Snapizzi.init(); });
// Snapizzi.Gallery.preload();

