(function( $ ){
  $.fn.imageCycle = function(options) {
		var settings = {
			slideTime:7000,
			slideDuration:2000
		};
		if ( options ) { 
			$.extend( settings, options );
		}
		
		var animTimeout = null;
		var curSlide = 0;
		var slideList = [];
  		if(this.length == 0) {
			return;
		}				
		var slideList = this.find('img');
		var slideTime = settings.slideTime;
		var slideDuration = settings.slideDuration;
		if(slideList.length < 2) {
			return;
		}
		
		var hideSlides = function(el) {
				if(el.parent()[0].tagName.toUpperCase == 'A') {			
					el.parent().hide();
				} else {
					el.hide();
				}
		}
		
		slideList.each(function(i){
				slideList[i] = $(this);
				if(i > 0) {
					hideSlides($(this));
				}
		});		
			
		var slideNext = function(curSlide) {	
				var animating = false;
				for(var i=0;i <= slideList.length;i++) {
					var currentIndex = i;				
					if(typeof(slideList[currentIndex]) != 'undefined') {
						if(i == curSlide) {
							slideList[curSlide].show();
							slideList[curSlide].animate({
								opacity: 0
								},{
								duration:slideDuration,
								step: function(n,x) {
									if((n < 0.6) && (!animating)) {
										curSlide = curSlide + 1;
										if(curSlide >= slideList.length) {
											curSlide = 0;
										}
										slideList[curSlide].css('opacity','0').show();
										slideList[curSlide].animate({
											opacity:1
										},{
											duration:slideDuration
										});
										animating = true;
									}
								},
								complete: function() {
									$(this).hide();
									animating = false;
								}
							  });							
						} else {
							slideList[currentIndex].hide();
						}		
					} else {
						slideList.splice(i);
					}
				}
				animTimeout = setTimeout(function(){
								slideNext(curSlide)
				},slideTime);
		};
		setTimeout(function(){
			slideNext(curSlide)
		},slideTime);		
  };
})( jQuery );
