﻿
$.bannerbox =
{
    bannerbox: function(_this, setting) {

        $.bannerbox.showImg(_this, setting.pageIndex, setting);
//        $.bannerbox.autoChange(_this, setting);
        window.setInterval(function() {
                
                if(setting.autoChange)
                {
                    if (setting.pageIndex > setting.btnOnList.split("|").length) {
                        setting.pageIndex = 1;
                    }
                    $.bannerbox.showImg(_this, setting.pageIndex, setting);
                    setting.pageIndex++;
                }
            },
            3000);
        _this.find(setting.box).mouseover( function()
        {
            setting.autoChange = false;
        }
        );
        _this.find(setting.box).mouseout( function()
        {
            setting.autoChange = true;
        }
        );
        _this.find(setting.btnList + " li").mouseover(
            function() {
                var imgUrl = $(this).find("img").attr("src");
                var isChange = false;
                var pageIndex = 0;

                $.each(setting.btnOffList.split(setting.split), function(i, value) {
                    if (imgUrl == value) {
                        pageIndex = i + 1;
                        isChange = true;
                    }
                });

                if (isChange) {
                    setting.pageIndex = pageIndex;
                    $.bannerbox.showImg(_this, pageIndex, setting);
                }
                setting.autoChange = false;
            });
            
             _this.find(setting.btnList + " li").mouseout(function(){
                setting.autoChange = true;}
                );
    },
    showImg: function(_this, pageIndex, setting) {

        _this.find(setting.box).html($.bannerbox.boxHtml(pageIndex, setting));

        $.each(setting.btnOffList.split(setting.split), function(i, value) {

            _this.find(setting.btnList).find('li').find('img')[i].src = value;
        });

        $.each(setting.btnOnList.split(setting.split), function(i, value) {
            if (i == pageIndex - 1) {
                _this.find(setting.btnList).find('li').find('img')[i].src = value;
            }
        });
    },
    boxHtml: function(pageIndex, setting) {
        var result = setting.boxHtml;

        $.each(setting.data, function(i, text) {
            if (i == pageIndex - 1) {
                $.each(text.split(setting.split), function(j, value) {
                    result = result.replace("{" + j + "}", value);

                });
            }

        });

        return result;

    }
//    autoChange: function(_this, setting) {
//        if (setting.autoChange) {
//            window.setInterval(function() {
//                if (setting.pageIndex > setting.btnOnList.split("|").length) {
//                    setting.pageIndex = 1;
//                }
//                $.bannerbox.showImg(_this, setting.pageIndex, setting);
//                setting.pageIndex++;

//            },
//            3000);
//        }

//    }
}


 $.fn.bannerbox = function(options) {

        var defaults = {
            data: new Array('#|images/comm/temp/banner01.jpg','#|images/comm/temp/banner02.jpg','#|images/comm/temp/banner03.jpg','#|images/comm/temp/banner04.jpg'), 
            box:'.bannerimg', //展示框
            boxHtml:'<a href="{0}" target="_blank"><img src="{1}" /></a>',
            btnList:'.bannerbtn',
            //未选择按钮组
            //btnOffList:'images/comm/btn/bannerbtn01_off.gif|images/comm/btn/bannerbtn02_off.gif|images/comm/btn/bannerbtn03_off.gif|images/comm/btn/bannerbtn04_off.gif',
            //btnOnList:'images/comm/btn/bannerbtn01_on.gif|images/comm/btn/bannerbtn02_on.gif|images/comm/btn/bannerbtn03_on.gif|images/comm/btn/bannerbtn04_on.gif',
            pageIndex: 1,
            split:'|',
            setTime: 3000,
            autoChange:true
            
        };

        var opt = $.extend(defaults, options);

        return this.each(function(){
     
        $.bannerbox.bannerbox($(this), defaults);
        });
}





