﻿/// <reference path="./Cineplex.js" />

Agility.RegisterNamespace("Cineplex.Home");

(function(Home) {

	var _api = null;
	var _isPlaying = true;
	var _playingTimeout = -1;
	var _selectedIndex = 0;
	var _rotationSpeed = 5000;
	var _cancelAfterAnimation = false;
	var _mainElem = null;

    $(function() {

		_mainElem = $("div.FeaturedItemsRotator .MainElement");
		var _rotationSpeed = parseInt($("div.FeaturedItemsRotator").attr("rotationSpeed"));
		if (isNaN(_rotationSpeed)) _rotationSpeed = 5;
		_rotationSpeed = _rotationSpeed * 1000;
		
		var scrollable = $("div.FeaturedItemsRotator .scrollable");
		
		var htest = $("div.FeaturedItemsRotator .scrollable .items").height() + 38;
		if (htest > 230) {
			scrollable.css("minHeight", htest);
		}

        //init the featured rotator
        _api = scrollable.scrollable({size: 5, clickable: false}).navigator({api: true});

		var wrapper = _api.getItemWrap();
		  
		
		$(".item", wrapper).click(function(event) {
			_cancelAfterAnimation = true;
			clearTimeout(_playingTimeout);
			_playingTimeout = -1;	
						
			if (event.target != null && event.target.tagName == "A") {
				return true;
			}
			
						
			
			var items = _api.getVisibleItems();									
			
			var index = $(items).index($(this));

			_selectedIndex = index -1;
			_moveSelectedItem();
			return false;
			
		});
						
		_api.onBeforeSeek = function() {
			_cancelAfterAnimation = true;
			clearTimeout(_playingTimeout);
			_playingTimeout = -1;			
			$("div.FeaturedItemsRotator div.SelectedThumb").hide();
		};
		
		_api.onSeek =  function(e, index) {
			
			_selectedIndex = -1;
			_moveSelectedItem();
		};
		
		
		$("div.FeaturedItemsRotator .PlayPauseCtrl").click(function() {
			
			if (_isPlaying) {			
				_isPlaying = false;
				clearTimeout(_playingTimeout);
				_playingTimeout = -1;
				$("img", this).attr("className", "btnPlay").attr("alt", "Play");
				
			} else {
				_isPlaying = true;
				_moveSelectedItem();
				$("img", this).attr("className", "btnPause").attr("alt", "Pause");
				
			}
			
		});
		
		//kick off the timer...
		_playingTimeout = setTimeout(_moveSelectedItem, _rotationSpeed);
		
    });
    
    function _moveSelectedItem() 
	{
		++_selectedIndex;
	
		if (_selectedIndex >= _api.getVisibleItems().size()) {

			if (_api.getPageAmount() < 2) {
				_selectedIndex =-1;
				_moveSelectedItem();
			} else {
				if (_api.getPageAmount() > _api.getPageIndex() + 1) {
					_api.nextPage();
				} else {
					_api.begin();
				}
			}
			return;
		}						
				
		var items = _api.getVisibleItems();
		var wrapper = _api.getItemWrap();
		var currentIndex = _api.getIndex();
		
		var itemIndex = _selectedIndex;
		
		var item = $(items.get(itemIndex));
		if (item.size() == 0 || $("div.Link a", item).size() == 0) {
			//if we can't get the item, kick the scroller back to the beginning...
			if (_api.getPageAmount() < 2) {
				_moveSelectedItem(-1);
			} else {
				_api.begin();
			}
			return;
		}
		
		$("div.FeaturedItemsRotator div.SelectedThumb").hide();
				
		$("div.SelectedThumb", item).fadeIn("fast");
		
		var mainFileUrl = item.attr("mainFileUrl");
		var mainFileLabel = item.attr("mainFileLabel");
		var linkUrl = $("div.Link a", item).attr("href");
		var linkTarget = $("div.Link a", item).attr("target");
		
		_cancelAfterAnimation = false;
		
		$("img", _mainElem).attr("src", mainFileUrl).attr("alt", mainFileLabel);
		$("a", _mainElem).attr("href", linkUrl).attr("target", linkTarget);
		
			if (_isPlaying && ! _cancelAfterAnimation) {
				_playingTimeout = setTimeout(_moveSelectedItem, _rotationSpeed);
			}	
    }


})(Cineplex.Home);

