$j.Avaya.FlashMarqueeSub = function(options){
	var self = this,
		presets = {
			$container : '#marquee',
			
			$speed : 7000,
			$animSpeed : 500,
			$navSpeed : 300,
			$rotLimit : 2,
			
			$marqueenav : '#marquee-nav',
			$navOpt : '.marquee-nav-option',
			$navOn : '.marquee-nav-option-on',
			$navHover : '.marquee-nav-option-hover',
			
			$cards : '.card',
			$onClass : '.card-on',
			
			$cardCallback : function(){ },
			$navCallback : function(){ },
			$initCallback : function(){ }
		};
	
	this.s = $j.extend(presets, options);
	this.current = this.next = this.rot = 0;
	
	
	var fp = swfobject.getFlashPlayerVersion();
	
	if( typeof $j.Avaya.QueryString != 'undefined' && ( new $j.Avaya.QueryString() ).key[ "flash" ] == "off" ||
		fp.major < 9 ||
			fp.major == 9 && fp.minor === 0 && fp.release < 11 ) {
				
				this.disable();
	
	}
	
	
	var $cardNum = $j(this.s.$container).find(this.s.$cards).size();
	
	if($cardNum < 2) { $j(this.s.$marqueenav).remove(); }
	else {
		for(var i=0; i<$cardNum; i++)
			$j(this.s.$marqueenav).append('<a href="javascript:void(0)" class="'+this.s.$navOpt.substr(1)+'"><div><p /></div></a>');
		
		$j(this.s.$navOpt).eq(this.current).addClass(this.s.$navOn.substr(1)).find('div').css('height','10px');
		
		$j(this.s.$cards).width($j(this.s.$container).width()+'px').height($j(this.s.$container).height()+'px').each(
			function(ix, item){
				if($j(this).hasClass(self.s.$onClass.substr(1))) $j(this).removeClass(self.s.$onClass.substr(1));
				if(ix === self.current) $j(this).addClass(self.s.$onClass.substr(1));
				
				if($j(this).children('h2').size() > 0){
					new $j.Avaya.ToolTipTrigger($j(self.s.$navOpt).eq(ix), {
						staticContent: '<p>' + $j(item).find("h2").html() + '</p>',
						location: 'NE', width: 150, yOffset: 23, xOffset: -28, fixed: false
					});
				}
			}
		);
		
		$j(this.s.$cards).find( 'a' )
			.click(
				function( e ) {
					
					var el = $j( this );
					
					
					if( el.hasClass( 'video' ) ) {
						
						e.stopPropagation();
					e.preventDefault();
					
						$j.Avaya.Page.setPopupCookie();
						
						window.open(
							el.attr('href'), 'VideoPlayer', 'width=605,height=470,top=250,left=300,scrollbars=yes'
						);
						
					}
					
				}
			);
		
		this.aInterval = this.animateInterval();
		
		$j(this.s.$container).one('mousemove', function(){
			$j(this).mouseenter();
		}).hover(function(){
			if(typeof self.aInterval != 'undefined') clearInterval(self.aInterval);
		}, function(){
			if(typeof self.aInterval != 'undefined') self.aInterval = self.animateInterval();
		});
		
		$j(this.s.$marqueenav).children(this.s.$navOpt).each(function(ix){
			$j(this).click(function(e){
				e.preventDefault();
				
				self.current = self.next; self.next = ix;
				delete self.aInterval;
				if(ix == self.current) return;
				
				$j.Avaya.global.Tracking.clickEvent("marqueeItemClicked_"+ix);
				$j(self.s.$cards).add(self.s.$navOpt).stop(true, true);
				self.showCard();
				self.shiftNav();
			});
			
			$j(this).hover(
				function(){ $j(this).addClass(self.s.$navHover.substr(1)); },
				function(){ $j(this).removeClass(self.s.$navHover.substr(1)); }
			);
		});
	}
	
	this.s.$initCallback();
};


$j.Avaya.FlashMarqueeSub.prototype = {
	
	disable : function() {
			
		$j( 'body' ).addClass( 'no-flash-marquee' );
		
	},
	
	animateInterval : function(){
		var self = this;
		
		if( !$j( 'body' ).hasClass( 'no-flash-marquee' ) ) return;
		
		return setInterval(function(){
			self.current = self.next;
			
			if(!$j(self.s.$cards).eq(self.current).next(self.s.$cards).size()) {
				self.next = 0;
				self.rot++;
			} else {
				self.next = self.current+1;
			}
			
			self.showCard();
			self.shiftNav();
			
			if(self.rot == self.s.$rotLimit){
				clearInterval(self.aInterval);
				delete self.aInterval;
			}
		}, this.s.$speed);
	},
	
	showCard : function(){
		$j(this.s.$cards).eq(this.current).fadeOut(this.s.$animSpeed);
		$j(this.s.$cards).eq(this.next).fadeIn(this.s.$animSpeed);
		this.s.$cardCallback();
	},
	
	shiftNav : function(){
		var $current = $j(this.s.$navOpt).eq(this.current),
			$next = $j(this.s.$navOpt).eq(this.next);
		
		$current.removeClass(this.s.$navOn.substr(1)).children('div').animate({ height:'-=5' },this.s.$navSpeed);
		$next.addClass(this.s.$navOn.substr(1)).children('div').animate({ height:'+=5' },this.s.$navSpeed);
		
		this.s.$navCallback();
	}
	
};


$j(function(){
	
	if( $j( '#marquee' ).size() > 0 ) {
		
		new $j.Avaya.FlashMarqueeSub( {} );
		
	}
	
});


function marqueeChangeSize(id,height){
	var $flash = $j('#'+id),
		fHeight = $flash.height(),
		amt = 15.
		$finderMod = $j("#finder-mod");
	
	$flash.parent().height('auto');
	if (height > fHeight) _grow();
	else if (height < fHeight) _shrink();

	function _grow(){
		$finderMod.hide();
		$flash.height(height);
		$j.Avaya.Page.Sizing.resize();
		$flash.css({zoom: 1});
	}

	function _shrink(){
		$finderMod.show();
		$flash.height(height);
		$j.Avaya.Page.Sizing.resize();
		$flash.css({zoom: 1});
	}
}
