/*
 * @copyright Art. Lebedev Studio(http://artlebedev.ru)
 * @author Kotelnikov Dmitriy(dimonnot@design.ru)
 */
$(
	function(){
		//Запущена ли анимация смены баннеров
		var isRunning = 1;
		
		//Вид баннеров к которому нужно переключиться
		var changeTo = '';
		
		//Ответ Web сервера
		var response = '', isAnimateFinished = 0, banner = $('#banner'), bannerClass = new Banner(banner);
		
		function runNext(){
			if( changeTo != '' )
				swapBanners( changeTo );
			else{
				isRunning = 0;
			}
		}
		
		/*
		 * Меняем содержимое баннеров
		 */
		function swapBannersContent(){
			var isChangeFinished = 1, isAnimateFinished = 0;
			$('#layout').append('<div class="hidden" id="response">'+response.substr(response.indexOf('<div'),response.lastIndexOf('</div>') - response.indexOf('<div') + 6)+'</div>');
			
			//Находим все баннеры, которые нужно заменить
			$('#response').find('.animate').each(
				function( index ){
					$(elements[index]).html(this.innerHTML);
				}
			);
			//Заменяем длинный баннер
			$('#response').find('.banner-inner').each(
				function(){
					isChangeFinished = 0;
					bannerClass.onChanged = function(){
						isChangeFinished = 1;
						if( isAnimateFinished ){
							runNext();
						}
					}
					bannerClass.reset(this.innerHTML);
				}
			);
			animateShow( 1, function(){
				isAnimateFinished = 1;
				if( isChangeFinished )
					runNext();
			});
			$('#response').remove();
		}
		
		/*
		 * Меняет баннеры при переключении между табами
		 * @param {String} url Адрес страницы на которой расположены баннеры
		 */
		function swapBanners( url ){
			changeTo = '';
			response = '';
			isAjaxFinished = 0;
			
			//Отправляем запрос
			$.ajax({
				type:"GET",
				url:url,
				dataType:"text",
				success: function( data ){
					response = data;
					//Если анимация закончилась
					if( isAnimateFinished )
						swapBannersContent();	
				}
			});
					
			//Начинаем анимацию
			animateShow( 0,
				function(){
					isAnimateFinished = 1;
					//Если ответ от сервера уже пришёл
					if( response != '' )
						swapBannersContent();
				}
			);
		}
			
		/*
		 * Анимированно показывает баннеры
		 * @param {Boolean} isShow Отображаем или скрваем баннеры
		 * @param {Function} [onComplete] Событие на завершение анимации
		 * @param {Number} [i] Номер баннера
		 */
		function animateShow( isShow, onComplete, i ){
			if( !i )
				i = 0;
			
			if( i >= elements.length ){
				if( onComplete )
					onComplete();
				return;	
			}
			
			
			if( !$.browser.msie ){
				$(elements[i]).animate(
					{'opacity':isShow ? 1 : 0},
					elements[i].clientHeight * 1.3,
					function(){
						animateShow(isShow, onComplete, i + 1);
					}
				);	
			}
			else{
				animateShow(isShow, onComplete, i + 1);
			}
		}
		/*
		var elements = $('#services > .wrap .animate');
		if( !$.browser.msie )
			elements.css('opacity', 0);
			
		//Анимированно показываем баннеры
		animateShow(1, 
			function(){
				isRunning = 0;
			}
		);
		
		//Добавляем обработку нажатия на пункты меню
		
		$('#navigation li').click(
			function(){
				changeTo = $(this).find('a').attr('href');
				if( !isRunning ){
					isRunning = 1;
					swapBanners( changeTo );	
				}
			}
		);
		
		var chageTimeout = 0;
		$('#subnavigation li').hover(
			function(){
				var that = this;
				if( chageTimeout )
					clearTimeout(chageTimeout);
				
				chageTimeout = setTimeout(
					function(){
						chageTimeout = 0;
						changeTo = $(that).find('a').attr('href') + 'banner/';
						if( !isRunning ){
							isRunning = 1;
							swapBanners( changeTo );	
						}
					},
					1000
				);
			}
		);
		*/
	}
)
