//wait until the markup is loaded
jQuery(document).ready(function(){
	//menu dropdown effects function
	menuDE();
	
	$( '#latest-preview > li' ).hover( function() {
		$( '.latest' ).fadeOut( 'fast' );
		$( this ).addClass( 'dock-active' );
		$( this ).children( 'span' ).fadeIn( 200 );
	}).bind( "mouseleave", function() {		
		$( this ).removeClass( 'dock-active' );	
		$( this ).children( 'span' ).fadeOut( 200 );
	} );
			
	$( '#latest-preview' ).bind( "mouseleave", function() {
		$( '.latest' ).fadeIn( 1000 );
	} );
	
	
	
	$(function () {
	$('.bubbleInfo').each(function () {
	// options
    var distance = 10;
    var time = 150;
    var hideDelay = 200;

    var hideDelayTimer = null;

    // tracker
    var beingShown = false;
    var shown = false;
    
    var trigger = $('.trigger', this);
    var popup = $('.popup', this).css('opacity', 0);

    // set the mouseover and mouseout on both element
    $([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;

        // reset position of popup box
        popup.css({
          top: -30,
          left: -37,
          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 () {
        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);
    });
  });
});
	
	
	
});

//menu dropdown effects function
function menuDE(){
	//add the hasUL class to the <li> tags that have an ul parent
	$('#nav ul li').parent().parent().addClass("hasUl")
	//add an arrow image to the <a> tag that is in a <li> tag that has the hasUl class
	$('#nav ul li.hasUl').children('li a').append('<span class="arrow"></span>')
	
	//stops the menu from flickering
	//$("#nav ul ul").css({display: "none"});
	
	//hover function of <li> with <ul id="nav">
	/*$("#nav ul li").hover(
		function(){//mouse in function
			//get the first <ul> from the list and show it with a speed of 200
			$(this).find('ul:first:hidden').css({visibility: "visible",display: "none"}).slideDown(150);
		},
		function(){//mouse out function
			//get the first <ul> from the list and hide it with a speed of 200
			$(this).find('ul:first').slideUp(250);
		}
	);*/
}