jQuery.fn.slideShow = function(_options){    
	// defaults options	    
	var _options = jQuery.extend({		
		slideEl:'div.img-hold img',		
		numElementLink:'div.nav li a',		
		duration:500,		
		autoSlideShow:false,		
		switchTime:3000,		
		event:'click'
	},_options);
    return this.each(function(){
	    var _THIS = jQuery(this);
		var _linkNext = false, _linkPrev = false, _linkPause = false, _numElementLink = false, _numElement = false;
		var _slideEl = $(_options.slideEl, _THIS);
		var _elTagName = _options.slideEl;
		var _duration = _options.duration;
		var _switchTime = _options.switchTime;
		var _numElActive, _n, _timer = false, _hover = false;
		
		if (!_slideEl.filter('.active').length)
				_slideEl.eq(0).addClass('active');
				
		$(_slideEl).not(".active").css('display','none');
		
		if ($(_numElement).length) {activeNumEl()}
		
		if (_options.autoSlideShow) {
				_timer = setTimeout(function(){nextEl()},_switchTime);
		}
		
		if (_options.numElementLink) {
			var _switcher = '<ul>';
			_slideEl.each(function(i){
				_switcher += '<li><a href="#">'+(i+1)+'</a></li>';
			});
			_switcher += '</ul>';
			$('div.sub-nav span', _THIS).after(_switcher);
			var _numElementLink = $('div.sub-nav ul a', _THIS);
			var _numElement = _numElementLink.parent();
			_numElement.filter(':first').addClass('active');
			$(_numElementLink).bind(_options.event, function(){
					if (_timer) {
							clearTimeout(_timer);
							_timer = setTimeout(function(){nextEl()},_switchTime);
					}
					_n = _numElement.index($(this).parent());
					if (!$(_slideEl).eq(_n).hasClass("active")){
						$(_slideEl).eq(_n).addClass("next");
						fadeElement();
						activeNumEl();
					}
					return false;
			});
		}

		$(document).keydown(function (e) {
				if (!e) evt = window.event;
				if (e.keyCode == 39 || e.keyCode == 37) {
					if (e.keyCode == 39) {
						if (_timer) {
								clearTimeout(_timer);
								_timer = setTimeout(function(){nextEl()},_switchTime);
						}
						if ($(_slideEl).filter(".active").next().is(_elTagName)) {
							$(_slideEl).filter(".active").next().addClass("next");
						} else {
							$(_slideEl).eq(0).addClass("next");
						}
					} else if (e.keyCode == 37) {
						if (_timer) {
							clearTimeout(_timer);
							_timer = setTimeout(function(){nextEl()},_switchTime);
						}
						if ($(_slideEl).filter(".active").prev().is(_elTagName)) {
							$(_slideEl).filter(".active").prev().addClass("next");
						} else {
							$(_slideEl).filter(":last-child").addClass("next");
						}
					}
					fadeElement();
					activeNumEl();
				}
		});

		function nextEl(){
			if (_THIS.is(':visible')) {
				if ($(_slideEl).filter(".active").next().is(_elTagName)){
					$(_slideEl).filter(".active").next().addClass("next");
				} else {
					$(_slideEl).eq(0).addClass("next");
				}
				fadeElement();
				activeNumEl();
				_timer = setTimeout(function(){nextEl()},_switchTime);
			}
		};		
		function activeNumEl() {
			$(_numElement).removeClass("active");
			_numElActive = $(_slideEl).index($(_slideEl).filter(".active")[0]);
			$(_numElement).eq(_numElActive).addClass("active");
		};
		function fadeElement(){
			$(_slideEl).filter(".active").fadeOut(_duration).removeClass("active");
			$(_slideEl).filter(".next").fadeIn(_duration).addClass("active").removeClass("next");
			if (_options.currentEl || _options.allEl) currentNum();
		};
    });
}



