jQuery.fn.gallFader = function(_options){
	// defaults options	
	var _options = jQuery.extend({
		duration: 700
	},_options);

	return this.each(function(){
		var _hold = $(this);
		var _speed = _options.duration;
		var _el = _hold.find('> li');
		var _count = _el.index(_el.filter(':last'));
		var _active = 0;
		
		//_el.removeClass('active').eq(_active).addClass('active');
		function nextAnimEl(){
			switch (_active) {
				case 0: 
					_el.eq(_active).css({opacity:0, zIndex:3});
					_el.eq(_active).find('.list1').css({opacity: 1});
					_el.eq(_active).find('.list1').css({opacity: 'auto'});
					_el.eq(_active).find('.list2').css({opacity: 0});
					_el.eq(_active).find('.list1 > .item3').css({opacity: 0});
					_el.eq(_active).find('.list1 > .item2').css({opacity: 0, left: 84});
					_el.eq(_active).animate({opacity:1}, 1000, function(){
						_el.eq(_active).css({opacity: 'auto'});
						_el.eq(_count).css({zIndex:1});
						_el.eq(0).css({zIndex:2});
						_el.eq(_active).find('.list1 > .item3').animate({opacity: 1}, 1000, function(){
							_el.eq(_active).find('.list1 > .item3').css({opacity: 'auto'});
							setTimeout(function(){
								_el.eq(_active).find('.list1 > .item2').animate({opacity: 1, left: 180}, 1000, function(){
									_el.eq(_active).find('.list1 > .item2').css({opacity: 'auto'});
									setTimeout(function(){
										_el.eq(_active).find('.list1').animate({opacity: 0}, 1000, function(){
											_el.eq(_active).find('.list2 > .item2').css({opacity: 0});
											_el.eq(_active).find('.list2').animate({opacity: 1}, 1000, function(){
												_el.eq(_active).find('.list2').css({opacity: 'auto'});
												_el.eq(_active).find('.list2 > .item2').animate({opacity: 1}, 1000, function(){
													_el.eq(_active).find('.list2 > .item2').css({opacity: 'auto'});
													setTimeout(function(){
														_active++;
														nextAnimEl();
													}, 1000);
												});
											});
										});
									}, 500);
								});
							}, 800);
						});
					});
					break; 
				case 1: 
					_el.eq(_active).css({opacity: 0, zIndex:3});
					_el.eq(_active).find('span').css({opacity: 0});
					_el.eq(_active).find('.item2').css({left: 54});
					_el.eq(_active).animate({opacity: 1}, 1000, function(){
						_el.eq(_active).css({opacity: 'auto'});
						_el.eq(0).css({zIndex:1});
						_el.eq(1).css({zIndex:2});
						setTimeout(function(){
							_el.eq(_active).find('.item1').animate({opacity: 1}, 1000, function(){
								_el.eq(_active).find('.item1').css({opacity: 'auto'});
								_el.eq(_active).find('.item3').animate({opacity: 1}, 1000, function(){
									_el.eq(_active).find('.item3').find('.item1')
									_el.eq(_active).find('.item2').animate({opacity: 1, left:200}, 1000, function(){
										_el.eq(_active).find('.item2').css({opacity: 'auto'});
										setTimeout(function(){
											_active++;
											nextAnimEl();
										}, 1000);
									});
								});
							});
						}, 500);
					});
					break; 
				case 2: 
					_el.eq(_active).css({opacity: 0, zIndex:3});
					_el.eq(_active).find('.list1').css({opacity: 1});
					_el.eq(_active).find('.list1').css({opacity: 'auto'});
					_el.eq(_active).find('.list2').css({opacity: 0});
					_el.eq(_active).find('.list1 span').css({opacity: 0});
					_el.eq(_active).animate({opacity: 1}, 1000, function(){
						_el.eq(_active).css({opacity: 'auto'});
						_el.eq(1).css({zIndex:1});
						_el.eq(2).css({zIndex:2});
						setTimeout(function(){
							_el.eq(_active).find('.list1 span').animate({opacity: 1}, 1000, function(){
								_el.eq(_active).find('.list1 span').css({opacity: 'auto'});
								setTimeout(function(){
									_el.eq(_active).find('.list2 > .item1').css({opacity: 0});
									_el.eq(_active).find('.list2 > .item2').css({opacity: 0, left: 105});
									_el.eq(_active).find('.list1').animate({opacity: 0}, 1000);
									_el.eq(_active).find('.list2').animate({opacity: 1}, 1000, function(){
										_el.eq(_active).find('.list2').css({opacity: 'auto'});
										setTimeout(function(){
											_el.eq(_active).find('.list2 > .item1').animate({opacity: 1}, 1000, function(){
												_el.eq(_active).find('.list2 > .item1').css({opacity: 'auto'});
												_el.eq(_active).find('.list2 > .item2').animate({opacity: 1, left: 258}, 1000, function(){
													_el.eq(_active).find('.list2 > .item2').css({opacity: 'auto'});
													setTimeout(function(){
														_active++;
														nextAnimEl();
													}, 1000);
												});
											});
										}, 500);
									});
								}, 1500);
							});
						}, 700);
					});
					break; 
				case 3: 
					_el.eq(_active).css({opacity: 0, zIndex:3});
					_el.eq(_active).find('span').css({opacity: 0});
					_el.eq(_active).animate({opacity: 1}, 1000, function(){
						//_el.eq(_active).css({opacity: 'auto'});
						_el.eq(2).css({zIndex:1});
						_el.eq(3).css({zIndex:2});
						setTimeout(function(){
							_el.eq(3).find('.item1').animate({opacity: 1}, 1000, function(){
								//_el.eq(3).find('.item1').css({opacity: 'auto'});
								_el.eq(3).find('.item2').animate({opacity: 1}, 1000, function(){
									//_el.eq(3).find('.item2').css({opacity: 'auto'});
									setTimeout(function(){
										_el.eq(3).find('.item1').animate({opacity: 0}, 1000);
										_el.eq(3).find('.item3').animate({opacity: 1}, 1000, function(){
											//_el.eq(3).find('.item3').css({opacity: 'auto'});
											_el.eq(3).find('.item4').animate({opacity: 1}, 1000, function(){
												//_el.eq(3).find('.item4').css({opacity: 'auto'});
												_el.eq(3).find('.item2').animate({opacity: 0}, 1000, function(){
													setTimeout(function(){
														_active = 0;
														nextAnimEl();
													}, 1000);
												});
											});
										});
									}, 1000);
								});
							});
						}, 500);
					});
					break; 
				default: 
					break; 
			}
		}
		nextAnimEl();
	});
}
jQuery.fn.gallFaderIE = function(_options){
	// defaults options	
	var _options = jQuery.extend({
		duration: 700
	},_options);

	return this.each(function(){
		var _hold = $(this);
		var _speed = _options.duration;
		var _el = _hold.find('> li');
		var _count = _el.index(_el.filter(':last'));
		var _active = 0;
		
		function nextAnimEl(){
			switch (_active) {
				case 0: 
					_el.eq(_active).css({display: 'none', zIndex:3});
					_el.eq(_active).find('.list1').css({display: 'block'});
					_el.eq(_active).find('.list2').css({display: 'none'});
					_el.eq(_active).find('.list1 > .item3').css({display: 'none'});
					_el.eq(_active).find('.list1 > .item2').css({opacity: 0, left: 84});
					_el.eq(_active).fadeIn(1000, function(){
						_el.eq(_count).css({zIndex:1});
						_el.eq(0).css({zIndex:2});
						_el.eq(_active).find('.list1 > .item3').fadeIn(1000, function(){
							setTimeout(function(){
								_el.eq(_active).find('.list1 > .item2').animate({opacity: 1, left: 180}, 1000, function(){
									setTimeout(function(){
										_el.eq(_active).find('.list1').fadeOut(1000, function(){
											_el.eq(_active).find('.list2 > .item2').css({display: 'none'});
											_el.eq(_active).find('.list2').fadeIn(1000, function(){
												_el.eq(_active).find('.list2 > .item2').fadeIn(1000, function(){
													setTimeout(function(){
														_active++;
														nextAnimEl();
													}, 1000);
												});
											});
										});
									}, 500);
								});
							}, 800);
						});
					});
					break; 
				case 1: 
					_el.eq(_active).css({opacity: 0, zIndex:3});
					_el.eq(_active).find('span').css({opacity:0});
					_el.eq(_active).find('.item2').css({left: 54});
					_el.eq(_active).animate({opacity: 1}, 1000, function(){
						_el.eq(0).css({zIndex:1});
						_el.eq(1).css({zIndex:2});
						setTimeout(function(){
							_el.eq(_active).find('.item1').animate({opacity: 1}, 1000, function(){
								_el.eq(_active).find('.item3').animate({opacity: 1}, 1000, function(){
									_el.eq(_active).find('.item2').animate({opacity: 1, left:200}, 1000, function(){
										setTimeout(function(){
											_active++;
											nextAnimEl();
										}, 1000);
									});
								});
							});
						}, 500);
					});
					break; 
				case 2: 
					_el.eq(_active).css({display: 'none', zIndex:3});
					_el.eq(_active).find('.list1').css({display: 'block'});
					_el.eq(_active).find('.list2').css({display: 'none'});
					_el.eq(_active).find('.list1 span').css({display: 'none'});
					_el.eq(_active).fadeIn(1000, function(){
						_el.eq(1).css({zIndex:1});
						_el.eq(2).css({zIndex:2});
						setTimeout(function(){
							_el.eq(_active).find('.list1 span').fadeIn(1000, function(){
								setTimeout(function(){
									_el.eq(_active).find('.list2 > .item1').css({display: 'none'});
									_el.eq(_active).find('.list2 > .item2').css({opacity: 0, left: 105});
									_el.eq(_active).find('.list1').fadeOut(1000);
									_el.eq(_active).find('.list2').fadeIn(1000, function(){
										setTimeout(function(){
											_el.eq(_active).find('.list2 > .item1').fadeIn(1000, function(){
												_el.eq(_active).find('.list2 > .item2').animate({opacity: 1, left: 258}, 1000, function(){
													setTimeout(function(){
														_active++;
														nextAnimEl();
													}, 1000);
												});
											});
										}, 500);
									});
								}, 1500);
							});
						}, 700);
					});
					break; 
				case 3: 
					_el.eq(_active).css({display: 'none', zIndex:3});
					_el.eq(_active).find('span').css({display: 'none'});
					_el.eq(_active).fadeIn(1000, function(){
						_el.eq(2).css({zIndex:1});
						_el.eq(3).css({zIndex:2});
						setTimeout(function(){
							_el.eq(3).find('.item1').fadeIn(1000, function(){
								_el.eq(3).find('.item2').fadeIn(1000, function(){
									setTimeout(function(){
										_el.eq(3).find('.item1').fadeOut(1000);
										_el.eq(3).find('.item3').fadeIn(1000, function(){
											_el.eq(3).find('.item4').fadeIn(1000, function(){
												_el.eq(3).find('.item2').fadeOut(1000, function(){
													setTimeout(function(){
														_active = 0;
														nextAnimEl();
													}, 1000);
												});
											});
										});
									}, 1000);
								});
							});
						}, 500);
					});
					break; 
				default: 
					break; 
			}
		}
		nextAnimEl();
	});
}

$(document).ready(function(){
	if($.browser.msie && $.browser.version == 8){
		$('ul.photobannerJS').gallFaderIE();
	}
	else{
		$('ul.photobannerJS').gallFader();
	}
});
