jQuery(function() {
    jQuery('.article_photogallery').articlePhotogallery();
    
});


jQuery.fn.articlePhotogallery = function(options){
    
    jQuery('.article_photogallery_innerbox').each(function(){
        var width = jQuery('a', this).length * (jQuery('a:first', this).width()+2);
        jQuery(this).css('width', width+'px');
    });

    jQuery('.article_photogallery_prev').click(function(){
        jQuery(this).parent().find('.article_photogallery_next').addClass('show_me');
        var constrain = jQuery(this).parent();
        var duration = 1500;
        var easing = 'easeOutBack';
        var move = jQuery(this).parent().find('.article_photogallery_innerbox_mask').width();
        var left = jQuery('.article_photogallery_innerbox', constrain).css('margin-left').slice(0, -2);
        var max  = 0;
        var newleft = parseInt(left, 10) + move;
        
        if (left === 0 ||  jQuery.data(document, 'ge_enabled') == false) return;
        jQuery.data(document, 'ge_enabled', false);
        if (newleft === left) return;
        jQuery('.article_photogallery_innerbox', constrain).animate({
            "margin-left": Math.min( newleft, max)
        }, duration, easing, function(){
            var constrain = jQuery(this).parent().parent();
            var left = jQuery('.article_photogallery_innerbox', constrain).css('margin-left').slice(0, -2);
            if ( left == 0 ) {
            	jQuery('.article_photogallery_prev', constrain).removeClass('show_me');
            }// if
            jQuery.data(document, 'ge_enabled', true);
        });
    });

    jQuery('.article_photogallery_next').click(function(){
        jQuery(this).parent().find('.article_photogallery_prev').addClass('show_me');
        var constrain = jQuery(this).parent();
        var duration = 1500;
        var easing = 'easeOutBack';
        var move = jQuery(this).parent().find('.article_photogallery_innerbox_mask').width();
        var left = jQuery('.article_photogallery_innerbox', constrain).css('margin-left').slice(0, -2);
        var min  = parseInt( jQuery('.article_photogallery_innerbox', constrain).css('width').slice(0, -2), 10);
            min  = - (min - ( min % move ));
        var newleft = Math.max( parseInt(left, 10)-move, min);
        
        if (newleft === left || jQuery.data(document, 'ge_enabled') == false) return;
        jQuery.data(document, 'ge_enabled', false);
        jQuery('.article_photogallery_innerbox', constrain).animate({
            "margin-left": newleft
        }, duration, easing, function(){
            if ( newleft == min ) {
            	jQuery('.article_photogallery_next', constrain).removeClass('show_me');
            }// if
            jQuery.data(document, 'ge_enabled', true);
        } );
    });
    
    jQuery('.article_photogallery_next').addClass('show_me');
    jQuery.data(document, 'ge_enabled', true);
}

