﻿window.addEvent('domready', function() {
    var intro = $('intro');
    intro.bookmarks = [];
    //var bookmarks = intro.getElements('.bookmarks .bookmark');
    var headers = intro.getElements('.copy h2');

    var bookmarks_list = new Element('ul', { 'class': 'bookmarks' });
    bookmarks_list.inject(intro, 'top');
    bookmarks_list.setSelectedBookmark = function(el) {
        bookmarks_list.getElements('li').removeClass('selected');
        el.addClass('selected');
    };

    new MooScroll();
    var scroller = new Fx.Scroll(intro.getElement('.contentEl'));

    headers.each(function(header) {
        var title = header.get('text').trim();

        var parent = header.getParent('.paddingEl');
        var nextHeader = headers[headers.indexOf(header) + 1];

        header.startY = header.getPosition(parent).y;
        header.endY = ($defined(nextHeader)) ? nextHeader.getPosition(parent).y : parent.getStyle('height').toInt();

        var bookmarks_element = new Element('li', {
            'class': 'bookmark',
            'text': title
        });

        var scrolled = function() {
            if (this.element.scrollTop >= header.startY && this.element.scrollTop < header.endY) {
                bookmarks_list.setSelectedBookmark(bookmarks_element);
            }
        } .bind(scroller);

        bookmarks_element.addEvent('click', function(e) {
            new Event(e).stop();
            scroller.start(0, header.startY);
        });

        scroller.element.addEvent('scroll', scrolled);
        //scroller.addEvent('complete', scrolled);

        bookmarks_list.adopt(bookmarks_element);
    });

    bookmarks_list.getChildren()[0].addClass('selected');


    var softwareInfo = $('softwareInfo');
    softwareInfo.tabs = softwareInfo.getElements('.tab');
    softwareInfo.canvas = softwareInfo.getElement('.canvas');
    softwareInfo.slides = softwareInfo.getElements('.slide');

    softwareInfo.slides.setStyle('position', 'absolute');
    softwareInfo.canvas.setStyle('height', softwareInfo.slides[0].getStyle('height'));

    softwareInfo.tabs.each(function(tab) {
        //Allow both slide and tab to know who eachother are.
        tab.slide = softwareInfo.canvas.getElement('.' + tab.get('class').split(' ')[0]);
        tab.slide.tab = tab;

        if (tab.hasClass('selected')) {
            tab.set('opacity', 1);
            softwareInfo.canvas.adopt(tab.slide.dispose());
        }
        else {
            tab.set('opacity', .6);
        }

        tab.addEvent('click', function(e) {
            new Event(e).stop();

            if (!tab.hasClass('selected')) {
                var currentSlide = softwareInfo.canvas.getElement('.selected');

                softwareInfo.slides.removeClass('selected');
                softwareInfo.tabs.removeClass('selected');

                tab.addClass('selected');
                tab.slide.addClass('selected');

                softwareInfo.tabs.tween('opacity', .6);
                tab.tween('opacity', 1);

                softwareInfo.canvas.adopt(tab.slide.dispose());
                tab.slide.setStyles({
                    'display': 'block',
                    'left': softwareInfo.getSize().x
                });
                tab.slide.tween('left', '0');
            }
        });
    });
});
