
BigScrollAnnounce = function() {
  this.Constructor();
}

$.extend(BigScrollAnnounce.prototype, {

	CurrentCellNum:	0,
	NumberOfCells:	0,
	DragStartX:		0,
	DragStartY:		0, 
	DragStartImgX:	0,
	DragStartImgY:	0,
	StartImageDrag:	false,
	Animating:		false,
	AutoScrollTimer: null,
	LastAutoDirection: 'right',
	
	
	/** constructor */
	Constructor: function() {
		
		// событие на ресайз окна
		var __instance = this; 			// хак, из-за того, что this не работает внутри jquery-конструкций
		$(window).resize(function() {
			__instance.AdjustCellsWidth();
		});
		
		
		this.InitMode();
			
		// скролл стрелочками
		this.InitScrollArrows();
		
		// меню настроек
		this.InitSettingsMenu();
		
		__instance.AutoScrollTimer = setTimeout(function() {__instance.AutoScroll()}, 5000);
		
	},
	
	
	InitMode: function() {
		
		this.CurrentCellNum = 0;
		
		// начальное позиционирование
		$("#main-announce .viewport .window").scrollTo( '0px', { axis:'x' } );

		/*if( parseInt($("#main-announce").attr('current_mode')) == 1 ) {
			var NewX = ($("#main-announce .viewport").width() - 2000 ) / 2;
			var NewY = ($("#main-announce .viewport").height() - 1000 ) / 2;
			$("#main-announce .viewport .current-cell").css('background-position', NewX+'px '+NewY+'px');
			$("#main-announce .viewport .cell").css('background-position', NewX+'px '+NewY+'px');
			IeShowPng();
		}*/
	
		this.AdjustCellsWidth();
		
		// количество ячеек
		this.NumberOfCells = $("##main-announce .viewport .cell").length;

		// спрячем невидимые ячейки
		$("#main-announce .viewport .cell:not(:eq("+this.CurrentCellNum+"))").css('visibility', 'hidden')

		// уберем или покажем стрелочки
		this.CheckArrowsAvailability();
		
		if( parseInt($("#main-announce").attr('current_mode')) != 3 ) {
			$(".big-image-scroller").show();
		} else {
			$(".big-image-scroller").hide();
		}
		
		$(".big-image-scroller A").removeClass('active');
		$(".big-image-scroller A:eq("+(this.CurrentCellNum+1)+")").addClass('active');
		
	},
	
		
	/*-------------------------------- ENABLE|DISABLE ARROWS ------------------------------------------*/
	CheckArrowsAvailability: function() {
		$("#main-announce .scroll-right, #main-announce .scroll-left").hide();
			if( this.CurrentCellNum == 0 ) {
				$("#main-announce .scroll-left").hide();
				$(".scroll-left1").addClass('inactive');
			} else {
				$("#main-announce .scroll-left").show();
				$(".scroll-left1").removeClass('inactive');
			}
			if( this.CurrentCellNum == this.NumberOfCells-1 ) {
				$("#main-announce .scroll-right").hide();
				$(".scroll-right1").addClass('inactive');
			} else {
				$("#main-announce .scroll-right").show();
				$(".scroll-right1").removeClass('inactive');
			}
//			if( parseInt($("#main-announce").attr('current_mode'))  1 ) {
//				$("#main-announce .scroll-right, #main-announce .scroll-left").hide();
//			}
	},	
	
	
	AutoScroll: function() {
		if( this.LastAutoDirection=='right' && $("#main-announce .scroll-right").is(':visible') ) {
			this.LastAutoDirection = 'right';
		} else {
			if( $("#main-announce .scroll-left").is(':visible') ) {
				this.LastAutoDirection = 'left';
			} else {
				this.LastAutoDirection = 'right';
			}
		}
		
		$("#main-announce .scroll-"+this.LastAutoDirection).trigger('click');
		
	},
	
	/*-------------------------------- СКРОЛЛ СТРЕЛОЧКАМИ ------------------------------------------------*/
	InitScrollArrows: function() {
		var __instance = this; 
		$("#main-announce .scroll-left, #main-announce .scroll-right, .scroll-left1, .scroll-right1").click(function() {
			
			clearTimeout(__instance.AutoScrollTimer);
			__instance.AutoScrollTimer = null;
			
			if( __instance.Animating ) return false;
			var DirectionLeft = ($(this).is('.scroll-left') || $(this).is('.scroll-left1')) ? true : false;

			if( (DirectionLeft && __instance.CurrentCellNum == 0) || ( !DirectionLeft && __instance.CurrentCellNum == __instance.NumberOfCells - 1 ) ) return false;

			$("#main-announce .viewport .cell:not(:eq("+__instance.CurrentCellNum+"))").css('visibility', 'visible')
			
			$("#main-announce .viewport .current-cell").hide();
			
			var ScrollBy = (DirectionLeft?'-':'+') + '='+$("#main-announce .viewport").width()+'px';
			$("#main-announce .scroll-left, #main-announce .scroll-right").hide();
			__instance.Animating = true;
			$("#main-announce .viewport .window").scrollTo( ScrollBy , 500, { easing:'swing', axis:'x', onAfter:function(){
				
				__instance.CurrentCellNum += (DirectionLeft?-1:1);
				
				if( parseInt($("#main-announce").attr('current_mode')) == 1 ) {
					$("#main-announce .viewport .current-cell").css('background-image', $("#main-announce .viewport .cell:eq("+__instance.CurrentCellNum+")").css('background-image'));
					$("#main-announce .viewport .current-cell").css('background-position', $("#main-announce .viewport .cell:eq("+__instance.CurrentCellNum+")").backgroundPosition());
					if( h = $("#main-announce .viewport .cell:eq("+__instance.CurrentCellNum+")").parent().attr('href') ) {
						$("#main-announce .viewport .current-cell").parent().attr('href', h);
					} else {
						$("#main-announce .viewport .current-cell").parent()[0].removeAttribute('href');
					}                                                                           
				}

				$("#main-announce .viewport .current-cell").html($("#main-announce .viewport .cell:eq("+__instance.CurrentCellNum+")").html()).show();
				
				$("#main-announce .viewport .cell:not(:eq("+__instance.CurrentCellNum+"))").css('visibility', 'hidden')
				
				$(".big-image-scroller A").removeClass('active');
				$(".big-image-scroller A:eq("+(__instance.CurrentCellNum+1)+")").addClass('active');
				
				__instance.CheckArrowsAvailability();
				__instance.Animating = false;
				
				__instance.AutoScrollTimer = setTimeout(function() {__instance.AutoScroll()}, 5000);
				
				
	 		} } );
	 		
	 		return false;
		});
		
/*		$(".big-image-scroller A:not(:first):not(:last)").click(function() {
			if( !$(this).is('.active') && !__instance.Animating ) {
				var new_num = $(this).attr('href').substring(1) - 1;
				if(new_num<0||new_num>5) return;
				__instance.Animating = true;
				var scrollby =  (new_num - __instance.CurrentCellNum) * $("#main-announce .viewport").width();
				
				if( scrollby > 0 ) { 
					scrollby = "+="+scrollby;
				} else {
					scrollby = "-="+Math.abs(scrollby);
				}
				scrollby += "px";
				//$(".scroll-left1, .scroll-right1").hide();
				$("#main-announce .viewport .cell:not(:eq("+__instance.CurrentCellNum+"))").css('visibility', 'visible')
				
				$("#main-announce .viewport .current-cell").hide();
				$("#main-announce .viewport .window").scrollTo( scrollby , 500+(Math.abs(new_num - __instance.CurrentCellNum)*200), { easing:'swing', axis:'x', onAfter:function(){
					__instance.CurrentCellNum = new_num;
					
					if( parseInt($("#main-announce").attr('current_mode')) == 1 ) {
						$("#main-announce .viewport .current-cell").css('background-image', $("#main-announce .viewport .cell:eq("+__instance.CurrentCellNum+")").css('background-image'));
						$("#main-announce .viewport .current-cell").css('background-position', $("#main-announce .viewport .cell:eq("+__instance.CurrentCellNum+")").backgroundPosition());
					}
	
					$("#main-announce .viewport .current-cell").html($("#main-announce .viewport .cell:eq("+__instance.CurrentCellNum+")").html()).show();
					
					$("#main-announce .viewport .cell:not(:eq("+__instance.CurrentCellNum+"))").css('visibility', 'hidden')
					
					$(".big-image-scroller A").removeClass('active');
					$(".big-image-scroller A:eq("+(__instance.CurrentCellNum+1)+")").addClass('active');
					
					__instance.CheckArrowsAvailability();
					__instance.Animating = false;
					
		 		} } );
			
			
			
			}
			return false;
		});   */
		
	},	
   
	
	CopyBackPositionToCurrentCell: function() {
		$("#main-announce .viewport .cell:eq("+this.CurrentCellNum+")").css('background-position', $("#main-announce .viewport .current-cell").backgroundPosition());
	},
	
	
	
	/*---------------------- ВЫРАВНИВАНИЕ РАЗМЕРА ВЬЮПОРТА В СООТВЕТСТВИИ С ОКНОМ БРАУЗЕРА ----------------------*/
	AdjustCellsWidth: function() {

		/*if( parseInt($("#main-announce").attr('current_mode')) == 1 ) {
			tmpArr = $("#main-announce .viewport .current-cell").backgroundPosition().split(' ');	
			CurX = parseInt(tmpArr[0]);
			CurY = parseInt(tmpArr[1]);
		
			// Если при ресайзе у нас правый кусок уезжает больше, чем можно, то сдвигаем вправо
			if( CurX < $("#main-announce .viewport").width() - 2000 ) CurX = $("#main-announce .viewport").width() - 2000;
			$("#main-announce .viewport .current-cell").css('background-position', CurX+'px '+CurY+'px');
		
			// Копируем стиль в ячейку
			this.CopyBackPositionToCurrentCell();
		}*/		
	
		// Позиционируем окошко и изменяем размеры всех ячеек в соответствии с новым размером вьюпорта
		$("#main-announce .viewport .window").scrollTo( (this.CurrentCellNum*$("#main-announce .viewport").width())+'px', { axis:'x' } );
		$("#main-announce .viewport .cell").width($("#main-announce .viewport").width());
	},
	
	
	
	
	/* ------------------------------------------ НАСТРОЙКИ ----------------------------------------------*/
	InitSettingsMenu: function() {
		var __instance = this;
		
		
		$("#main-announce .settings-menu-2 .button").click(function() {
			if( !$(this).is('.active') ) {
				var CurrentMode = $(this).siblings('.active').removeClass('active').attr('href').substring(1);
				var SelectedMode = parseInt($(this).addClass('active').attr('href').substring(1));
				if( SelectedMode != CurrentMode && SelectedMode >=1 && SelectedMode<=3) {
					$.post(sHtmlRoot+"_ajax_handler.phtml", { SetMainAnnounceMode: SelectedMode },
					function(data){
						$("#main-announce").attr('current_mode', SelectedMode);
						$("#main-announce").removeClass('mode_'+CurrentMode);
						$("#main-announce").addClass('mode_'+SelectedMode);
						$("#main-announce .viewport").html(data);

						__instance.InitMode();
						
					}, "html");			
				}
			}
		});
	
		
		$("#main-announce .settings-button").click(function() {
			if($(this).is('.opened')) {
				var SelectedMode = parseInt($("#main-announce .settings-menu INPUT:checked").val());
				var CurrentMode = parseInt($("#main-announce").attr('current_mode'));
				if( SelectedMode != CurrentMode && SelectedMode >=1 && SelectedMode<=3) {
					$.post(sHtmlRoot+"_ajax_handler.phtml", { SetMainAnnounceMode: SelectedMode },
					function(data){
						$("#main-announce").attr('current_mode', SelectedMode);
						$("#main-announce").removeClass('mode_'+CurrentMode);
						$("#main-announce").addClass('mode_'+SelectedMode);
						$("#main-announce .viewport").html(data);
						$("#main-announce  .settings-menu .menu-container .wrapper LABEL.selected").removeClass('selected');
						$("#main-announce  .settings-menu .menu-container .wrapper LABEL[for=announce_settings_"+SelectedMode+"]").addClass('selected');

						__instance.InitMode();
						
					}, "html");			
				}
				
				$(this).removeClass('opened');
				$("#main-announce .settings-menu").fadeOut();
			} else {
				$(this).addClass('opened');
				$("#main-announce .settings-menu").fadeIn();
			}
			return false;
		});
		
		//initial value - to negate form-autocomplete
		$( "#announce_settings_" + $("#main-announce").attr('current_mode') ).attr('checked', true);
		$("#main-announce .settings-menu").css('opacity', 0.9);
	}
	
   
   
});










