fma.music = {
    
    artist: {
        init: function() {
            this.discography.init();
            this.images.init();
        },
        
        images: {
            init: function() {
                var images = $('#artist-images .artist-image');
                $('#artist-images .artist-images-row').css('width', images.length * 300);
                for(i=1;i<=images.length;i++) {
                    $('#artist-images .imgcircles').append(
                        $('<a />').attr('id','imgcircle-'+i).addClass('imgcircle').click(function(){
                            var image = $(this).attr('id').split('-',2)[1];
                            fma.music.artist.images.selectImage(image);
                        })
                    );
                }
                this.selectImage(1);
                                
                $('#artist-images').css('display','block');
            },
            
            selectImage: function(num) {
                $('#artist-images .imgcircle-sel').removeClass('imgcircle-sel');
                $('#artist-images .imgcircles #imgcircle-'+num).addClass('imgcircle-sel');
                
                var width = 300;
                var offset = width * (num - 1) * -1;
                $("#artist-images .artist-images-row").animate({'left': offset+'px'}, "normal","swing");
            }
        },
                
        discography: {
            
            iCropWidth: 0,
            iTotalWidth: 0,
            
            /**
             * @param integer iAlbums Number of albums to show per 'slide pane'
             */
            init: function(iAlbums) {
                
                iAlbums = (iAlbums === undefined) ? 4 : iAlbums;
                var self = this;
                var albums = $('#discography .album');
                
                // Find widths
                
                albums.each(function(idx, el) {
                    
                    var iWidth = parseInt($(el).css('width'), 10);
                    var iMargin = parseInt($(el).css('margin-right'), 10);
                    
                    if (idx < iAlbums) {
                        self.iCropWidth += iWidth;
                        self.iCropWidth += iMargin;
                    }
                    self.iTotalWidth += iWidth;
                    self.iTotalWidth += iMargin;
                    
                });
                
                $('#discography .album-row').css('width', this.iTotalWidth);
                
                // Add pagination buttons and click event
                
                if(albums.length > iAlbums) {
                    var pages = Math.ceil(albums.length / iAlbums);
                    for(i=1; i<=pages; i++) {
                        $('#discography .imgcircles').append(
                            $('<a />').attr('id','imgcircle-'+i).addClass('imgcircle').click(function(){
                                var page = $(this).attr('id').split('-',2)[1];
                                fma.music.artist.discography.selectPage(page);
                            })
                        );
                    }
                    this.selectPage(1);
                }
                
                $('#discography .album-row-wrap').css('display','block');
            },
            
            selectPage: function(page) {
                $('#discography .imgcircle-sel').removeClass('imgcircle-sel');
                $('#discography .imgcircles #imgcircle-'+page).addClass('imgcircle-sel');
                
                var offset = this.iCropWidth * (page - 1) * -1;
                $("#discography .album-row").animate({'left': offset+'px'}, "normal","swing");
            }
        }
        
    },
    
    album: {
        
        init: function() {
            this.albums.init();
            this.images.init();
        },
        
        images: {
            init: function() {
                var images = $('#album-images .album-image');
                $('#album-images .album-images-row').css('width', images.length * 300);
                for(i=1;i<=images.length;i++) {
                    $('#album-images .imgcircles').append(
                        $('<a />').attr('id','imgcircle-'+i).addClass('imgcircle').click(function(){
                            var image = $(this).attr('id').split('-',2)[1];
                            fma.music.album.images.selectImage(image);
                        })
                    );
                }
                this.selectImage(1);
                                
                $('#album-images').css('display','block');
            },
            
            selectImage: function(num) {
                $('#album-images .imgcircle-sel').removeClass('imgcircle-sel');
                $('#album-images .imgcircles #imgcircle-'+num).addClass('imgcircle-sel');
                
                var width = 300;
                var offset = width * (num - 1) * -1;
                $("#album-images .album-images-row").animate({'left': offset+'px'}, "normal","swing");
            }
        },
        
        albums: {
            init: function() {
                var albums = $('#more-albums .album');
                $('#more-albums .albums').css('width', albums.length * 300);
                if(albums.length > 1) {
                for(i=1;i<=albums.length;i++) {
                    $('#more-albums .imgcircles').append(
                        $('<a />').attr('id','imgcircle-'+i).addClass('imgcircle').click(function(){
                            var album = $(this).attr('id').split('-',2)[1];
                            fma.music.album.albums.selectAlbum(album);
                        })
                    );
                }
                }
                this.selectAlbum(1);
                
                $('#more-albums .albums-wrap').css('display','block');
            },
            
            selectAlbum: function(num) {
                $('#more-albums .imgcircle-sel').removeClass('imgcircle-sel');
                $('#more-albums .imgcircles #imgcircle-'+num).addClass('imgcircle-sel');
                
                var width = 300;
                var offset = width * (num - 1) * -1;
                $("#more-albums .albums").animate({'left': offset+'px'}, "normal","swing");
            }
        }
           
    },
    
    label: {
        init: function() {
            this.discography.init();
        },
                
        discography: {
            
            init: function() {
                var albums = $('#discography .album');
                $('#discography .album-row').css('width', Math.ceil(albums.length / 3) * 165);
                $('#discography .album-row .album').css('height', 220 + 'px');
                if(albums.length > 4) {
                    var pages = Math.ceil(albums.length / 12);
                    for(i=1;i<=pages;i++) {
                        $('#discography .imgcircles').append(
                            $('<a />').attr('id','imgcircle-'+i).addClass('imgcircle').click(function(){
                                var page = $(this).attr('id').split('-',2)[1];
                                fma.music.label.discography.selectPage(page);
                            })
                        );
                    }
                    this.selectPage(1);
                }
                
                $('#discography .album-row-wrap').css('display','block');
            },
            
            selectPage: function(page) {
                $('#discography .imgcircle-sel').removeClass('imgcircle-sel');
                $('#discography .imgcircles #imgcircle-'+page).addClass('imgcircle-sel');
                
                var width = 660;
                var offset = width * (page - 1) * -1;
                $("#discography .album-row").animate({'left': offset+'px'}, "normal","swing");
            }
        }        
    },
    
    charts: {
        
        init: function() {
            
            // Drop select filters
            
            $('#charts-filter select').each(function(i, item) {
                $(this).change(function() {
                    $('#charts-filter').submit();
                });
            });
            
        }
        
    }
};