// $Id: script.js,v 1.1 2008/10/01 03:26:19 jwolf Exp $ 

Drupal.behaviors.tntIEFixes = function (context) {
	// IE6 & less-specific functions
	// Add hover class to primary menu li elements on hover
	if ($.browser.msie && ($.browser.version < 7)) {
		$('#primary-menu li').hover(function() {
			$(this).addClass('hover');
		}, function() {
			$(this).removeClass('hover');
		});
	};
};


$(document).ready(function() { 
	$('ul.mt-nav').superfish({ 
		delay:       500,                             // .5 second delay on mouseout 
		animation:   {opacity:'show',height:'show'},  // fade-in and slide-down animation 
		speed:       'fast',                          // faster animation speed 
		autoArrows:  false,                           // disable generation of arrow mark-up 
		dropShadows: false                            // disable drop shadows 
	});
}); 

$(document).ready(function() {
	var $home_clients_link_hover = $('#contentdiv span.homeclientslinkhover');
	var $home_clients_link_out   = $('#contentdiv span.homeclientslinkout');
	var duration = 300; // miliseconds for client fade effect
	
	if ($.browser.msie) {
		$home_clients_link_hover.hide();
		$("#contentdiv a.homeclientslink").hover(
			function() {
				$home_clients_link_hover.show();
			},
			function() {
				$home_clients_link_hover.hide();
			}
		);
	}
	else {
		
		// fadeTo doesn't set the display property, so make sure the element
		// will be visible once the opacity is set. 
		$home_clients_link_hover.css({'display' : 'block', 'opacity' : 0 });
		$("#contentdiv a.homeclientslink").hover(
				function () {
				if ( $home_clients_link_hover.data('currently') == 'showing'
					|| $home_clients_link_out.data('currently') == 'showing'
				) {
					return;
				}
				$home_clients_link_hover.data('currently', 'showing');
				$home_clients_link_out.data('currently', 'showing');
				$home_clients_link_out
					.stop()
					.fadeTo(duration, 0.4, function() {
						$home_clients_link_out.data('currently', '');
					});
				$home_clients_link_hover
					.stop()
					.fadeTo(duration, 1, function() {
						$home_clients_link_hover.data('currently', '');
					})
				;
				},
				function () {
					if ( $home_clients_link_out.data('currently') != 'showing' ) {
						$home_clients_link_out.stop();
					}
					if ( $home_clients_link_hover.data('currently') != 'showing' ) {
						$home_clients_link_hover.stop();
					}
					$home_clients_link_out.fadeTo(duration, 1);
					$home_clients_link_hover.fadeTo(duration, 0);
				}
		);
	}
	
	//end document ready
});


$(function () {
	$('.haspopup').each(function () {
		// options
		var distance = -10;
		var time = 250;
		var hideDelay = 100;
		
		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({
					position: 'absolute',
					//top: 30,
					//left: trigger.css('left'),
					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;
					//console.log( 'after show the top of', popup.attr('id'), 'is', popup.css('top') );
				});
			}
		}).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)
					//console.log( 'after hide the top of', popup.attr('id'), 'is', popup.css('top') );
					popup.css({'display' : 'none', 'top' : 215 });
				});
			}, hideDelay);
		});
	});
});

