(function($) {
	var html = '<div class="dSlideWrapper"><ul class="dSlidePics"></ul><div class="dSlidePages"><div><ul><li><a href="#" class="prev"></a></li><li><span>#</span> <span>of</span> <span>#</span></li><li><a href="#" class="next"></a></li></ul></div></div></div>';
  jQuery.fn.dSlide = function(options) {
		var t = $(this);
		o = jQuery.extend({
	    width : 300,
	    height : 250,
	    pics : null,
	    nextText: '&#9658;',
	    prevText: '&#9668;',
	    ofText:'of',
	    nav : 'bottom'
	  }, options);
	  t.data('dSlide_currentPic', 0);
		t.each(function(){
			$t = $(this);
			if(o.pics===null){$t.html("<h1>You don't have an image array :( </h1>");};
			var imgLen = o.pics.length;
			
			$t.append(html).add('.dSlideWrapper')
				.css({
					width: o.width,
					height: o.height
				}).end().find('.dSlideWrapper')
				.css({
					position:'relative'
				}).find('.dSlidePics').add('.dSlidePages').css({
					position : 'absolute',
					left:0,
					top:0,
					width:'100%',
					height:o.height-22,
					overflow:'hidden'
				}).end().find('.dSlidePics li').css({
					position:'absolute',
					left:0,
					top:0
				}).end().end().find('.dSlidePages').css({
					bottom:o.nav === 'top' ? 'auto' : 0,
					top:o.nav === 'top' ? 0 : 'auto',
					height:22,
					width:'100%',
					zIndex : 2
				}).find('div').add('ul').add('li').css({
					float:'left',
					clear:'left',
					width:'100%',
					position:'relative'
				}).end().find('ul').add('li').css({
					left:'50%',
					clear:'none',
					width:'auto',
					lineHeight:'22px',
					height:22
				}).end().find('li').css({
					left:'auto',
					right:'50%',
					display:'inline', // IE6 FTW!
					margin:'0 5px'
				}).eq(0).find('a').html(o.prevText).click(function(){
					if(t.find('li:animated').size()!==0 || t.find('.dSlidePics li:first').is(':visible') ) {return false;}
					t.find('.dSlidePics li:visible').hide().prev().show();
					if(t.data('dSlide_currentPic')>1){
						t.data('dSlide_currentPic', t.data('dSlide_currentPic')-1);
						updateCounter();
					}
					$(this).blur();
					return false;
				}).end().end().eq(2).find('a').html(o.nextText).click(function(){
					if(t.find('li:animated').size()!==0 || t.data('dSlide_currentPic')==imgLen){return false;}
					if(t.find('.dSlidePics li').eq(t.data('dSlide_currentPic')).size()===0) {
						t.find('.dSlidePics li:visible').hide();
						t.find('.dSlidePics').append('<li><img src="'+o.pics[t.data('dSlide_currentPic')].url+'" alt="'+o.pics[t.data('dSlide_currentPic')].title+'" title="'+o.pics[t.data('dSlide_currentPic')].title+'" /></li>');
					}else {
						t.find('.dSlidePics li:visible').hide().next().show();
					}
					t.data('dSlide_currentPic', t.data('dSlide_currentPic')+1);
					updateCounter();
					$(this).blur();
					return false;
				}).end().end().eq(1).find('span').eq(0).html('1')
					.next().html(o.ofText).next().html(imgLen);
				t.find('.dSlidePages').hide(1).show(1); // IE6 FTW!				
				function updateCounter() {
						t.find('.dSlidePages span:eq(0)').html(t.data('dSlide_currentPic'));
				};//updateCounter
				t.find('.dSlidePages .next').click();
		});
	};
})(jQuery);