$j.fn.photoslide = function(){

	$j(this.selector).css({ position: 'relative', height: $j('img:first', this.selector).css('height') });
	$j('> *', this.selector).css({ position: 'absolute', opacity: 0.0, top: '0px', left: '0px' });
	$j('> :first', this.selector).css({ opacity: 1.0 }).addClass('show');
	$j('<div class="caption"><div class="content"></div></div>').appendTo(this.selector);
	$j('.caption', this.selector).css({ position: 'absolute', top: 'auto', bottom: '0px', zIndex: 600, height: '100px', width: $j('img:first', this.selector).css('width') });
	$j('.content', this.selector).html($j('img:first', this.selector).attr('rel'));

	this.gallery = function(selector){
		var current = $j('.show', selector);
		var next = ((current.next().length > 0) ? ((current.next().hasClass('caption')) ? $j('> :first', selector) : current.next()) : $j('> :first', selector));
		var caption = ((next.attr('rel') == undefined) ? next.find('img').attr('rel') : next.attr('rel'));

		$j('.caption', selector).animate({ height: '1px' }, { queue: true, duration: 300, complete: function(){ $j('.content', selector).html(caption) } });
		next.css({ opacity: 0.0 }).addClass('show').animate({ opacity: 1.0 }, 1000);
		current.animate({ opacity: 0.0 }, 1000).removeClass('show');
		$j('.caption', selector).animate({ height: '100px' }, 500);
	}

	var self = this;

	setInterval( function (){ self.gallery(self.selector) } , 6000);

};