/*
    @author   : Igor "SkAZi" Potapov <igor@potapoff.org>
    @copyright: Plan-B Ltd.
    @requires : Mootools 1.2
*/

var ImageCollection = new Class({
    'initialize': function(a){
        this.all = a;
        this.i = 0;
    },
    'first': function(){
        this.i = 0;
        return this.all[this.i]? this.all[this.i]: null;
    },
    'next': function(){
        return this.all[++this.i]? this.all[this.i]: null;
    },
    'last': function(){
        this.i = this.all.length - 1;
        return this.all[this.i]? this.all[this.i]: null;
    },
    'prev': function(){
        return this.all[--this.i]? this.all[this.i]: null;
    },
    'full_width': function(){
        var width = 0;
        this.all.each(function(item){
            width += item.getSize().x;
        });
        return width;
    }
});

window.addEvent('load', function(){
    if(!$('news-head-photos')) return false;
    
    $$('#news-head-photos img').getLast().setStyle('borderRight', '0 none');
    var images = new ImageCollection($$('#news-head-photos img'));
    var scroll = 0;
    var view_width = $('news-head-photos').getSize().x;
    
    $('news-head-photos-inside').set('tween', {
        'transition': 'back:out',
        'duration': 700
    });
    
    var scrollRight = function(){
        $('scroll-left').setStyle('display', 'block');
        var next = images.first();
        var l = 0;
        while(l < scroll && next){
            l += next.getSize().x;
            next = images.next();
        }
        if(!next) return;
        if(l > scroll) images.prev();
        
        var w = 0;
        while(w < view_width && next){
            w += next.getSize().x;
            next = images.next();
        }
        if(w > view_width) w -= images.prev().getSize().x;
        
        var scroll_to = next?
            (w > view_width? l + w - next.getSize().x: l + w)
            : images.full_width() - view_width;
            
        scroll = scroll_to;
       
        if(scroll_to == images.full_width() - view_width)
            $('scroll-right').setStyle('display', 'none')
        
        $('news-head-photos-inside').tween('marginLeft', -scroll_to);
        return false;
    }

    var scrollLeft = function(){
        $('scroll-right').setStyle('display', 'block');
        var next = images.first();
        var l = 0;
        while(l < scroll && next){
            l += next.getSize().x;
            next = images.next();
        }
        if(!next) return;
        
        var w = 0;
        while(w < view_width && next){
            w += next.getSize().x;
            next = images.prev();
        }
        if(w > view_width && (next = images.prev())) w -= next.getSize().x;
        
        var scroll_to = l > view_width? l - w: 0;
            
        scroll = scroll_to;
        
        if(scroll_to == 0)
            $('scroll-left').setStyle('display', 'none');
        
        $('news-head-photos-inside').tween('marginLeft', -scroll_to);
        return false;
    }

    if(images.full_width() - 10 > view_width){
        $('scroll-left').addEvent('click', scrollLeft);
        $('scroll-right').addEvent('click', scrollRight);
        $('scroll-right').setStyle('display', 'block');
    } else {
        $('scroll-left').destroy();
        $('scroll-right').destroy();
    }

});
