var j = jQuery.noConflict();

j( function()
{
	
	// homepage speakers auto switch
	setTimeout(function() {
	    j().speakers_fader('true');
	}, 6000);
	
	// homepage speakers manual switch
	j('.home .arrow').click( function(){
		j().speakers_fader('false');
		return false;
	});
	
	/* Sponsors */
			  
	  j('#sponsors ul li').each(function () {
	    
	    // options
	    var time = 350;
	    var hideDelay = 500;
	
	    var hideDelayTimer = null;
	
	    // tracker
	    var beingShown = false;
	    var shown = false;
	    
	    var trigger = j('img', this);
	    var popup = j('.popup', this).css('opacity', 0);
	
	    // set the mouseover and mouseout on both element
	    j([trigger.get(0), popup.get(0)]).mouseover(function () {
	      // stops the hide event if we move from the trigger to the popup element
	      if (hideDelayTimer) clearTimeout(hideDelayTimer);
	
	      // don't trigger the animation again if we're being shown, or already visible
	      if (beingShown || shown) {
	        return;
	      } else {
	        beingShown = true;
	        
	        var distance = j(this).parent().parent().find('.popup').height() + 88;
	
	        // reset position of popup box
	        popup.css({
	          top: '0px',
	          left: '-30px',
	          display: 'block' // brings the popup back in to view
	        })
	
	        // (we're using chaining on the popup) now animate it's opacity and position
	        .animate({
	          top: '-=' + distance + 'px',
	          opacity: 1,
	        }, time, 'swing', function() {
	          // once the animation is complete, set the tracker variables
	          beingShown = false;
	          shown = true;
	        });
	      }
	    }).mouseout(function () {
	      // reset the timer if we get fired again - avoids double animations
	      if (hideDelayTimer) clearTimeout(hideDelayTimer);
	      
	      // store the timer so that it can be cleared in the mouseover if required
	      hideDelayTimer = setTimeout(function () {
	      	
	      	var distance = 20
	      	
	        hideDelayTimer = null;
	        popup.animate({
	          top: '-=' + distance + 'px',
	          opacity: 0
	        }, time, 'swing', function () {
	          // once the animate is complete, set the tracker variables
	          shown = false;
	          // hide the popup entirely after the effect (opacity alone doesn't do the job)
	          popup.css('display', 'none');
	        });
	      }, hideDelay);
	    });
	  });
		
});

j.fn.speakers_fader = function(repeat)
{	

	var current = j('.people:visible');
	var next = j('.people:hidden');
	
	if(repeat == 'false' && !next.hasClass('stopped')) next.addClass('stopped');
	
	if( j('.people:animated').size() == 0 && ( !current.hasClass('stopped') || repeat == 'false' ) )
	{
	
		if(repeat == 'false' && !current.hasClass('stopped')) current.addClass('stopped');
		
		current.fadeOut( repeat, function(){		
			next.fadeIn( repeat, function(){
				if( !current.hasClass('stopped') )
				{
					setTimeout(function() {
					    j().speakers_fader('true');
					}, 6000);
				}
			});
		});
	}
	
};
