﻿//Applies behaviour rules to the classes

var AlbumCarouselBehavior = Class.create();
AlbumCarouselBehavior.Load = function() {
    OS.RegisterBehaviour(AlbumCarouselBehavior.CarouselRules);
}
AlbumCarouselBehavior.CarouselRules = {
    '#albumCarousel': function(element) {
        //Pictures
        AlbumCarouselBehavior.AlbumCarousel = new Carousel('AlbumCarousel', element, 100, 100, AlbumCarouselBehavior, {
            setSize: 4,
            duration: .5,
            direction: 'horizontal',
            itemParser: function(item) {
                //Given html element you can build a data object for the item if needed for later activation
                return null;
            },
            setItemEvents: function(carousel, itemElement, carouselItem, observer) {
                //This allows you to set events to the item like rollovers/mouse events
                Event.observe(itemElement, 'click', function() {
                    carousel.activate(carouselItem);
                });
            },
            allowAutoLoopOnSet: false,
            allowAutoLoopOnIndividual: false
        });
        AlbumCarouselBehavior.AlbumCarousel.load();
    }
}

//EVENT OBSERVATION
AlbumCarouselBehavior.fireActiveCarouselLoaded = function(carousel) {
}
AlbumCarouselBehavior.fireActiveCarouselItem = function(carousel, element, item) {
    element.addClassName('selected');

    // Here we can update any part of the DOM to represent our data
    // In this sample we will use the same generic viewer element for all carousels
    switch(carousel.key) {
        case 'albumCarousel':
          alert(item.value.name);
          //Element.show('Viewer');
          break;
    }
}
AlbumCarouselBehavior.fireDeactiveCarouselItem = function(carousel, element, item) {
    element.removeClassName('selected');

    switch(carousel.key) {
        case 'AlbumCarousel': 
            //Element.hide('Viewer');
            break;
    }
}

AlbumCarouselBehavior.Load();
	
