var Slider = new Class({
    Implements: Options,
    
    currentItem : 0,
    
    options: {
        imgbox: null,
        list : [],
        lbt  : null,
        rbt  : null,
        llnk : null,
        rlnk : null
    },
    
    initialize: function(options){
        $(options.lbt).addEvent('click', function(e) {
            this.prev();
        }.bind(this));
        
        $(options.llnk).addEvent('click', function(e) {
            this.prev();
            return false;
        }.bind(this));
       
        $(options.rbt).addEvent('click', function(e) {
            this.next();
        }.bind(this));
        
        $(options.rlnk).addEvent('click', function(e) {
            this.next();
            return false;
        }.bind(this));
        
        $(options.imgbox).addEvent('click', function(e) {
            this.next();
        }.bind(this));
        
        this.setOptions(options);
    },
    
    next : function() {
        if ((this.currentItem + 1) >= this.options.list.length) {
            return ;
        }else if((this.currentItem + 1) >= this.options.list.length - 1){
            $(this.options.rbt).setStyles({'display':'none'});
            $(this.options.rlnk).setStyles({'display':'none'});
        }else{
            $(this.options.rbt).setStyles({'display':'block'});
            $(this.options.rlnk).setStyles({'display':'inline'});
        }
        this.currentItem++;
        
        var box = $(this.options.imgbox);
        var src = this.options.list[this.currentItem];
        
        box.tween('opacity', '0.1'); 
        var myImage = Asset.image( src, {
            onLoad: function() { 
                    box.empty();
                    this.inject(box);
                    box.tween('opacity', 0.1, 1); 
                }
        } )

        $(this.options.lbt).setStyles({'display':'block'});
        $(this.options.llnk).setStyles({'display':'inline'});
    },
    
    prev : function() {
        if ((this.currentItem) <= 0) {
            return ;
        }else if((this.currentItem) == 1) {
            $(this.options.lbt).setStyles({'display':'none'});
            $(this.options.llnk).setStyles({'display':'none'});
        }else{    
            $(this.options.lbt).setStyles({'display':'block'});
            $(this.options.llnk).setStyles({'display':'inline'});
        }
        this.currentItem--;
        var box = $(this.options.imgbox);
        var src = this.options.list[this.currentItem];
        
        box.tween('opacity', 1, 0.1);
        var myImage = Asset.image( src, {
            onLoad: function() { 
                    box.empty();
                    this.inject(box);
                    box.tween('opacity', 0.1, 1); 
                }
        } )
        
        $(this.options.rbt).setStyles({'display':'block'});
        $(this.options.rlnk).setStyles({'display':'inline'});
    }
    
});
