﻿function ivSlide(elem, height, delay){
    var oUl = $('.ivSlideUl', elem);
    if (oUl.size() == 0) 
        return;
    var iLiNumbers = $('li', oUl).size();
    if (iLiNumbers <= 1) 
        return;
    var aOffset = [];
    for (var i = 0; i < iLiNumbers; i++) {
        aOffset.push(i * height);
    }
    var iOffset = height;
    var iTotalHeight = (iLiNumbers - 1) * height;
    var iAutoSlideTimer = false;
    
    // 当前滚动索引值
    var currentIndex = 1;
    
    // 显示默认隐藏的li
    $('li', oUl).css('display', 'block');
    
    
    // 生成Navigation，从1开始
    var ivNavUl = $('<ul class="ivNavigation">');
    for (var i = 1; i <= iLiNumbers; i++) {
        $('<li>' + i + '</li>').appendTo(ivNavUl);
    }
    ivNavUl.find('li:first').addClass('ivNavCurrent');
    ivNavUl.insertAfter('.ivSlideUl');
    
    $('.ivNavigation li').each(function(){
        // li在当前列表的位置
        var oNavCurrentLi = $(this);
        var iNavIndex = $('.ivNavigation li').index(this);
        $(this).mouseover(function(){
            currentIndex = iNavIndex;
            if (iAutoSlideTimer) 
                clearInterval(iAutoSlideTimer);
            oUl.stop().animate({
                marginTop: -aOffset[currentIndex]
            }, 300, function(){
                $('.ivNavCurrent').removeClass('ivNavCurrent');
                $('.ivNavigation li:eq(' + (currentIndex) + ')').addClass('ivNavCurrent');
                if (currentIndex >= aOffset.length - 1) {
                    currentIndex = 0;
                }
                else {
                    currentIndex++;
                }
                autoSlide();
            })
        })
    })
    // 生成结束
    
    function autoSlide(){
        iAutoSlideTimer = setInterval(function(){
            height = aOffset[currentIndex];
            oUl.animate({
                marginTop: -height
            }, 300, function(){
                $('.ivNavCurrent').removeClass('ivNavCurrent');
                $('.ivNavigation li:eq(' + (currentIndex) + ')').addClass('ivNavCurrent');
                if (currentIndex >= aOffset.length - 1) {
                    currentIndex = 0;
                }
                else {
                    currentIndex++;
                }
            })
        }, delay)
    }
    
    autoSlide();
}

ivSlide($('.ivSlide'), 300, 4000);

