

$.fn.iFadeSlide = function (iSet) {

        iSet = $.extend({ high: 'high', interval: 3000, leaveTime: 150, fadeOutTime: 400, fadeInTime: 400 }, iSet);
        var imgField = $(iSet.field || '#slide>img');
        var icoField = $(iSet.ico || '#ico');
        var curIndex = 0;
        var slideInterval = iSet.interval || 3000;
        var hoverTime = iSet.leaveTime || 150;
        var fadeOutTime = iSet.fadeOutTime || 400;
        var fadeInTime = iSet.fadeInTime || 400;
        var icos = null, fastHoverFun = null, autoSlideFun = null, hasIcoHighCls = null, changeFun = null, max = null; ;
        var icoHtml = '<ul>';
        max = imgField.size();

        imgField.each(function (i) {
            icoHtml += '<li>' + (i + 1) + '</li>';
        });
        icoHtml += '</ul>';
        icoField.append(icoHtml);

        changeFun = function (n) {
            imgField.filter(':visible').fadeOut(fadeOutTime, function () {
                imgField.eq(n).fadeIn(fadeInTime)
                icos.eq(n).addClass(iSet.high).siblings().removeClass(iSet.high);
            });
        }
        icos = icoField.find('ul>li');

        icos.first().addClass(iSet.high);

        icos.hover(function () {
            clearInterval(autoSlideFun);
            curIndex = icos.index(this);
            hasIcoHighName = $(this).hasClass(iSet.high);

            fastHoverFun = setTimeout(function () {

                if (!hasIcoHighName) {
                    changeFun(curIndex);
                }
            }, hoverTime);
        }, function () {
            clearTimeout(fastHoverFun);

            autoSlideFun = setInterval(function () {
                curIndex++;
                changeFun(curIndex);
                if (curIndex == max) {
                    changeFun(0);
                    curIndex = 0;
                }
            }, slideInterval)
        }).eq(0).trigger('mouseleave');

        imgField.hover(function () {
            curIndex = imgField.index(this);
            clearInterval(autoSlideFun);
        }, function () {
            icos.eq(curIndex).trigger('mouseleave');
        });
    }

    $(function () {

        $(document).iFadeSlide({
            field: $('div#slide_b a'),
            ico: $('div.ico_b'),
            high: 'high_b',
            interval: 4000
        });


    });
