function slideSetup(target,slides,delay) {
	// build slideshow display
	t = $(target);
	t.prepend('<div id="slideOffer"><a href="#" id="slideOfferLink">View Offer</a></div><div id="slideControls"><a href="#" class="playpause" id="playpause">Play/Pause Slideshow</a><p>More Offers:</p></div>');
	t.data('slides', slides).data('delay', delay);
	c = $('#slideControls');
	for (i=0;i<slides.length;i++){
		c.append('<a id="slide_'+(i+1)+'" class="number" href="#">'+(i+1)+'</a>');
	}
	// set up event handlers
	t.bind('slide', function(e, slideNum){
		t.trigger('startTimer');
		var s = $(this).data('slides');
		var goTo = Math.max(0, parseInt(slideNum.replace('slide_','')) - 1);
		goTo = Math.min(goTo, s.length - 1);
		$('#slideOffer').css('backgroundImage', $('#slideOfferLink').css('backgroundImage'));
		$('#slideOfferLink').hide().css('backgroundImage', 'url("'+s[goTo].image+'")').attr('href', s[goTo].link).fadeIn();
	})
	t.bind('startShow', function(){
		t.trigger('advanceSlide'); // trigger first immediately
		t.trigger('startTimer');
	})
	t.bind('stopShow', function(){
		window.clearInterval(t.data('slideTimer'));
	})
	t.bind('startTimer', function(){
		window.clearInterval(t.data('slideTimer'));
		t.data('slideTimer', window.setInterval('$("'+target+'").trigger("advanceSlide")', t.data('delay')));
	})
	t.bind('advanceSlide', function(){
		var nextSlide = 1;
		var curSlide = $('#slideControls a.number-on');
		if (curSlide.length > 0) {
			nextSlide = parseInt(curSlide.get(0).id.replace('slide_','')) + 1;
		}
		if (nextSlide > t.data('slides').length) {
			nextSlide = 1;
		}
		$('#slideControls a#slide_'+nextSlide).click();
	})
	// set up click handlers
	$('#slideControls #playpause').click(function(){
		if (this.className=='playpause-on') {
			t.trigger('stopShow');
			this.className='playpause';
		} else {
			t.trigger('startShow');
			this.className='playpause-on';
		}
		return false;
	})
	$('#slideControls a.number').click(function(){
		$('#slideControls a.number-on').removeClass('number-on').addClass('number');
		$(this).removeClass('number').addClass('number-on');
		t.trigger('slide', [this.id]);
		return false;
	})
	
	// preload all slides
	var imgs = [];
	for (i=0;i<slides.length;i++){
		imgs[imgs.length] = slides[i].image;
	}
	preloadImages(imgs);
	
	// start the show!
	$('#slideControls #playpause').click();
}