(function($) {

	$.fn.picFade = function(settings) {
		var config = {'delay': 4000};
 
		if (settings) $.extend(config, settings);
		
		this.each(function() {
			var picFadeImages=$(this).find('img');
			var picFadeCurrent=0;
			var picFadeInterval=null;
			
			if (picFadeImages.length > 1) {
				for (var i = 0; i < picFadeImages.length; i++) {
					var node = document.createElement('div');
					node.style.right = -10 + picFadeImages.length * 25 - i * 25 + 'px';
					if (i == 0) 
						node.className = 'sel';
					this.appendChild(node);
				}
				
				var navBits = $(this).find('div');
				
				for (var i = 1; i < picFadeImages.length; i++) picFadeImages.eq(i).hide().removeClass('prehide');
				
				function fadeTo(index){
					if (index != picFadeCurrent) {
						picFadeImages.eq(index).hide();
						for (var i = 0; i < picFadeImages.length; i++) {
							var z = 1;
							if (i == picFadeCurrent) 
								z = 2;
							if (i == index) 
								z = 3;
							picFadeImages.eq(i).css('z-index', z);
							
							if (i == index) {
								navBits.eq(i).addClass('sel');
							}
							else {
								navBits.eq(i).removeClass('sel');
							}
						}
						picFadeImages.eq(index).fadeIn(1000);
						picFadeCurrent = index;
					}
				}
				
				function stopFade(){
					if (picFadeInterval != null) {
						window.clearInterval(picFadeInterval);
						picFadeInterval = null;
					}
				}
				
				function startFade(){
					if (picFadeInterval == null) {
						picFadeInterval = window.setInterval(function(){
							var nextPic = picFadeCurrent + 1;
							if (nextPic >= picFadeImages.length) 
								nextPic = 0;
							fadeTo(nextPic);
						}, config.delay)
					}
				}				
				
				$(this).hover(stopFade, startFade);
				navBits.mouseover(stopFade);
				navBits.click(function() {fadeTo(navBits.index(this));})
				
				startFade();
			}

			
		});
		return this;
	};
 })(jQuery);

