(function() {

	jQuery.fn.bSlider = function(config){

		config = jQuery.extend({
			serviceCnt: 1,
			IntvlTime: 6000,
			slideWidth: 748,
			ExContDiv: null
		}, config);

		var timerID = null;
		var target = this;
		target.hide();

		if ($.browser.msie){
			target.show();
		}else{
			target.fadeIn(1000);
		}

		setList();

		function setList() {
			var currentServiceX = 1;
			setServiceX();
			setTimerEvent();

			function setTimerEvent() {
				if (timerID) {
					clearTimeout(timerID);
				}
				timerID = setTimeout(changeService, config.IntvlTime);
			}

			function changeService() {
				if (currentServiceX == config.serviceCnt) {
					currentServiceX = 1;
				}else{
					currentServiceX++;
				}
				setServiceX();
				setTimerEvent();
			}

			$('ul', target).mouseover(function(e) {
				clearTimeout(timerID);
			});

			$('ul', target).mouseleave(function(e) {
				setTimerEvent();
			});

			$('.sBtnPrev', target).click(function() {
				currentServiceX--;
				setServiceX();
				setTimerEvent();
			});

			$('.sBtnNext', target).click(function() {
				currentServiceX++;
				setServiceX();
				setTimerEvent();
			});

			function setServiceX() {
				if (currentServiceX == 1) {
					$('.sBtnPrev', target).hide();
				}else{
					$('.sBtnPrev', target).show();
				}
				if (currentServiceX == config.serviceCnt) {
					$('.sBtnNext', target).hide();
				}else{
					$('.sBtnNext', target).show();
				}
				var targetX = currentServiceX * -config.slideWidth + config.slideWidth;
				$('ul', target).animate({"left": targetX + "px"}, "slow");
			}

			if (config.ExContDiv != null) {
				$('ul li', config.ExContDiv).css('cursor', 'pointer');

				$('ul li', config.ExContDiv).click(function(){
					var index = $("ul li", config.ExContDiv).index(this) + 1;
					var thumindex;
					if (index == 1) {
						thumindex = index;
					}else if (index > 1 && index < 7) {
						thumindex = index + 1;
					}else if (index == 7) {
						thumindex = 14;
					}else if (index > 7) {
						thumindex = index + 11;
					}
					currentServiceX = thumindex;
					setServiceX();
					setTimerEvent();
				});
			}

		}
	};
})(jQuery);
