function slideShow(options) {
    var settings = {
                    slideBy:1,
                    slideSpeed: 3000,
                    currentItem:0,
                    slideContainerSelector: $('#slider .item-wrapper>ul.slides-container'),
                    slideItemSelector: $('#slider .item-wrapper>ul.slides-container>li'),
                    slideNavItemSelector: $('#slide-nav>li'),
                    slidePreviewItemSelector: $('#slide-preview>li')
                 };
    jQuery.extend(settings, options);
	$('#slide-nav').css('z-index', '100001');

	var liWidth = parseInt(settings.slideItemSelector.css('width'))
	                + parseInt(settings.slideItemSelector.css('margin-left')) 
	                + parseInt(settings.slideItemSelector.css('margin-right'));

	if (settings.slideItemSelector.length > settings.slideBy) {
	    settings.slideContainerSelector.css('width', (liWidth));

	    settings.slideNavItemSelector.click(function() {
			var currentItem = settings.slideNavItemSelector.index(this);
			slide(currentItem);
			slideAnimate(true);
	
		});

		settings.slidePreviewItemSelector.click(function() {
			var currentItem = settings.slidePreviewItemSelector.index(this);
			slide(currentItem);
			slideAnimate(true);
	
		});

		function slideAnimate(clicked) 
		{
		    if (!clicked)
			{
			    timeout = setTimeout(function() { slideAnimate(false); }, settings.slideSpeed * 2);
			    settings.currentItem++;
			    slide(settings.currentItem % 4);
            }
            else 
            {
                clearTimeout(timeout);
			}
		}

		function slide(currentItem) {
		    var oldItem = settings.slideItemSelector.filter('.slide-current');
		    var newItem = settings.slideItemSelector.eq(currentItem);
		    oldItem.animate({ 'opacity': '0' }, settings.slideSpeed, 'linear', function() { $(this).removeClass('slide-current'); });
		    newItem.addClass('slide-next');
		    newItem.animate({ 'opacity': '1' }, settings.slideSpeed, 'linear', function() { $(this).removeClass('slide-next'); $(this).addClass('slide-current'); });

		    settings.slideNavItemSelector.removeClass('current');
		    settings.slideNavItemSelector.eq(currentItem).addClass('current');
		}

		// init
		var timeout;
		slide(settings.currentItem);
		timeout = setTimeout(function() { slideAnimate(false); }, settings.slideSpeed * 2);
	}
}



