(function($) {
           
    function Animatesuccest() {
        $(document).ready(function() {    
            $.animatesuccest.allcount = $('.i_suggest .frame .slider .item').length;   
            if ($.animatesuccest.allcount > 1) {                
                $('.i_suggest h1 a').click(function() {      
                    $.animatesuccest.animate($(this).hasClass('next'));  
                    return false;
                });
                $('.i_suggest .frame .slider .item:first').addClass('current');
                $('.i_suggest')
                   .mouseenter(function(){
                       $.animatesuccest.setAutoanimate(false);                   
                    })
                   .mouseleave(function(){
                       $.animatesuccest.setAutoanimate(true);                   
                   });
                $.animatesuccest.setAutoanimate(true);
            }                   
        });    
    }
   $.extend(Animatesuccest.prototype, {

       allcount : 0,
       
       count : 0,
   
       animating : false,
       
       autoanimate : null,                           
   
       timeOut : null,
       
       setAutoanimate : function(set) {
           if (set) {
               this.autoanimate = true;
               if (this.timeOut)          
                  clearTimeout(this.timeOut);                
               this.timeOut = setTimeout("$.animatesuccest.animate(true);", 4000);
           } else {
               this.autoanimate = false;           
               clearTimeout(this.timeOut);               
           }
           this.buttons('.i_suggest .frame .slider');           
       },       
       
       animate : function(next) {
           var slider = $('.i_suggest .frame .slider');
           if (this.animating) {
               this.timeOut = setTimeout("$.animatesuccest.animate(" + next + ")", 100);
                                                                
           } else if ($(slider).find('.item:last').hasClass('current') && next) {
//               if (this.autoanimate) {
                   this.animateToFirst(slider);                   
//               }           
           } else if ($(slider).find('.item:first').hasClass('current') && !next) {
                   this.animateToLast(slider);                   
           } else {
               this.animateSlider(slider, next);
           }
       },
       animateSlider : function(slider, next) {
            this.animating = true;                   
            var cur = parseInt($(slider).css('margin-left'));
            $(slider).find('.current').removeClass('current');    
            $(slider).animate(
                {marginLeft: eval(cur + (next? '-' : '+') + '425') + "px"}, 
                1500, 
                function() {
                    $.animatesuccest.count = parseInt($(slider).css('margin-left')) / -425;                    
                    $(slider).find('.counter' + $.animatesuccest.count).addClass('current');
                    $.animatesuccest.buttons(slider);                        
                    $.animatesuccest.finish();
                }
            );
        },
        animateToFirst : function(slider) {
            this.animating = true;                   
            var fc = $(slider).find('.item:first').clone(true);
            $(slider).width($(slider).width() + 425 + 'px').append(fc);
                        
            var cur = parseInt($(slider).css('margin-left'));
            $(slider).find('.current').removeClass('current');    
            $(slider).animate(
                {marginLeft: cur - 425 + "px"}, 
                1500, 
                function() {
                    $(slider).css({marginLeft : '0px'});                                        
                    $(slider).find('.item:first').addClass('current');
                    $(slider).find('.item:last').remove();   
                    $(slider).width($(slider).width() - 425 + 'px');
                    $.animatesuccest.count = 0;                                                                             
                    $.animatesuccest.finish();
                    $.animatesuccest.buttons();                    
                }
            );
        },
        animateToLast : function(slider) {
            this.animating = true;                   
            var fc = $(slider).find('.item:last').clone(true);           
            $(slider).width($(slider).width() + 425 + 'px').prepend(fc).css('margin-left' , '-425px');                        
            $(slider).find('.current').removeClass('current');    
            $(slider).animate(
                {marginLeft: "0px"}, 
                1500, 
                function() {
                    $(slider).css({marginLeft : (- $.animatesuccest.allcount + 1) * 425  + 'px'});                                        
                    $(slider).find('.item:last').addClass('current');
                    $(slider).find('.item:first').remove();   
                    $(slider).width($(slider).width() - 425 + 'px');
                    $.animatesuccest.count = 0;                                                                             
                    $.animatesuccest.finish();
                    $.animatesuccest.buttons();                    
                }
            );
        },        
        buttons : function(slider){
        
            var anext = $('.i_suggest h1 a.next');
            var aprev = $('.i_suggest h1 a.prev');                                       
            if (!this.autoanimate) {
                
                if (this.allcount > 1) {
                    if (anext.css('display') == 'none')             
                        anext.show();
                    if (aprev.css('display') == 'none')             
                        aprev.show();                                            
                
/*                        
                    if ($(slider).find('.item:last').hasClass('counter' + this.count))
                        anext.hide();
                    else if (anext.css('display') == 'none')             
                        anext.show();
            
                    if ($(slider).find('.item:first').hasClass('counter' + this.count))
                        aprev.hide();
                    else if (aprev.css('display') == 'none')             
                        aprev.show();
*/                           
                 }
                
            } else {
                if (anext.css('display') != 'none')             
                    anext.hide();
                if (aprev.css('display') != 'none')             
                    aprev.hide();                                            
            }     
        },
        finish : function(){
            $.animatesuccest.animating = false;
            if (this.autoanimate) {
               if (this.timeOut)          
                  clearTimeout(this.timeOut);            
               this.timeOut = setTimeout("$.animatesuccest.animate(true);", 3000);
            }                                                                                   
                      
        }                 
                                                          
   });       
   $.animatesuccest = new Animatesuccest();      
})(jQuery);

