$(document).ready(function() {
	/* bubble no css transitions */
	$('.no-csstransitions nav li a').each(function () {
	    // options
	    var distance = 20
	    var time = 200
	    var hideDelay = 250
	    var hideDelayTimer = null

	    // tracker
	    var beingShown = false
	    var shown = false
  
	    var trigger = $(this)
			if($(trigger).parent().hasClass("current")){
				// do nothing
			}
			else {
				var popup = trigger.children(".popup").first()
	      popup.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: -50,
		          left: 100,
		          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);
		    });
			}
	  });
  
});
