$(document).ready(function(){
    $('.home-refer').each(function(){
        var option = {
            rotateTime: 5000,
            animateTime: 1000
        };
        var time = null;
        var elements = {
            main: $(this),
            wrapbox: $('ul.reset', this),
            item: $('ul.reset li', this),
            itemEq: 0,
            next: $('.next', this),
            prev: $('.prev', this)
        }
        
        elements.main.addClass('js');
        
        function next(){
            time = clearTimeout(time);
            elements.next.unbind('click', next);
            elements.next.bind('click', function(){return false});
            elements.item.eq(elements.itemEq).animate({
                marginLeft : -570 + 'px'
            }, option.animateTime, function(){
                $(this).css('margin-left', '0').appendTo(elements.wrapbox);
                if(elements.itemEq+1 < elements.item.size())
                    elements.itemEq++;
                else{
                    elements.itemEq = 0;
                }
                elements.next.bind('click', next);
                time = setTimeout(function(){next()}, option.rotateTime);
            });
            return false;    
        };
        
        function prev(){
            time = clearTimeout(time);
            elements.prev.unbind('click', prev);
            elements.prev.bind('click', function(){return false});
            if(elements.itemEq-1 >= 0)
                elements.itemEq--;
            else{
                elements.itemEq = elements.item.size() - 1;
            }
            elements.item.eq(elements.itemEq).css('margin-left', '-570px').prependTo(elements.wrapbox);
            elements.item.eq(elements.itemEq).animate({
                marginLeft : 0 + 'px'
            }, option.animateTime, function(){
                elements.prev.bind('click', prev);
                time = setTimeout(function(){next()}, option.rotateTime);   
            });
        };
        
        elements.next.bind('click', next);
        elements.prev.bind('click', prev);
        
        time = setTimeout(function(){next()}, option.rotateTime);
    });
});
