jQuery.fn.extend({
	bgSlider:function(opt){
		var src=this
		var block=false,strchCSS={width:'100%',height:'100%',left:0,top:0,position:'absolute','z-index':-1},
		dfl={
			interval:4000,
			speed:1500,
			pags:false,
			slideshow:false,
			preload:false,
			current:0
		}
		opt=$.extend(dfl,opt)
		if(opt.pags)opt.pags=$(opt.pags)
		if(opt.preload){
			var tmp=[]
			for(var i=0;i<this.length;i++){
				tmp[i]=new Image()
				tmp[i].src=this[i]
			}
		}
		var loadSrc=function(bgi){
			var next
			if(bgi.toString().length==1)bgi=bgi<src.length?src[bgi]:src.slice(src.length-bgi,src.length-bgi)
			if(opt.pags)opt.pags.parent().eq(opt.current).addClass('current').siblings().removeClass('current')
			if(!block){
				bgSlider.append(t=$('<div></div>').css(strchCSS).css({'background-image':'url('+bgi+')'}))
				block=true
				t.css({opacity:0}).animate({opacity:1},opt.speed,function(){
					$(this).siblings().remove()
					block=false
					bgSlider.trigger('next')
				})
			}else{
				next=bgi
				bgSlider.unbind('next').bind('next',function(){loadSrc(next)})
			}
		}
		
		$('body').append(bgSlider=$('<div id="bgSlider"></div>').css(strchCSS))
		
		bgSlider.bind('bgSliderNext',function(){
			if(!block){
				block=true
				opt.current++
				if(!(opt.current<src.length))opt.current=0
				loadSrc(src[opt.current])
			}
		})
		bgSlider.bind('bgSliderPrev',function(){
			if(!block){
				block=true
				if(opt.current==0)opt.current=src.length
				opt.current--
				loadSrc(src[opt.current])
			}
		})		
		if(opt.pags)$(opt.pags).live('click',function(){
			if(!block)
				block=true,
				loadSrc(src[opt.current=this.rel-1])
			return false
		})
		if(opt.slideshow)setInterval(function(){bgSlider.trigger('bgSliderNext')},opt.interval)
		bgSlider.loadSrc=loadSrc
		loadSrc(src[opt.current])
	}
})
