//=======================================================================================================
//-------------------------------------------------------------------------------------------------------
//	Custom Javascript functions
//-------------------------------------------------------------------------------------------------------
//=======================================================================================================
$(document).ready(function(){	
 
	//Bind tracking classes
	$(".trackDownload,.trackOutbound,.trackEmail").click(function(){
 
		var eventType = this.className,
			relValue = $(this).attr("rel"),
			eventCategory;		
 
		//Check if rel attribute is set. If so, use the rel value as the event label.
		if (relValue.length) {
 
			var eventLabel = relValue;
 
			if (eventType == "trackDownload") {
				eventCategory = "downloads";
			} else if (eventType == "trackOutbound") {
				eventCategory = "outbound";
			} else {
				eventCategory = "mailto";
			}
		}
		//Otherwise we'll use the URL or filename as the event label.
		else {	
 
			var trackURL = $(this).attr("href"),
				eventLabel;
 
			if (eventType == "trackDownload") {
				eventLabel = trackURL.substr(trackURL.lastIndexOf("/") + 1);
				eventCategory = "downloads";
			} else if (eventType == "trackOutbound") {
				eventLabel = trackURL;
				eventCategory = "outbound";
			} else {
				eventLabel = trackURL.substr(7);
				eventCategory = "mailto";
			}
		}
 
		//Send the event to Analytics
		pageTracker._trackEvent(eventCategory, 'click', eventLabel);		
 
	});




	//	Positioning + Hover
	//	Menu positioning, fixes IE 2 pixel offset
	$("#nav-main a").hover( function() {
		var button_id	= $(this).attr("id");
		var	menu_id		= "#m-" + button_id.substring( 2, button_id.length );

		var p = $( this );
		var offset = p.offset();

		$( menu_id ).css( "top", ( offset.top + $( this ).height() ) );
		$( menu_id ).css( "left", offset.left );
	}
	);







	//	Emulate :before content CSS for IE
	if( jQuery.browser.msie && jQuery.browser.version < 9 )
	{
		$('#related-publications li,#cfbed ul li').prepend(':: ');
	}






//-------------------------------------------------------------------------------------------------------
//	Leaving the site
//-------------------------------------------------------------------------------------------------------
	$("a.external,a[href^='http://'],a[href^='https://']").attr("rel","#leavingsite");

	var triggers = $("a.external,a[href^='http://'],a[href^='https://']").overlay({

		//	Load the URL
		onBeforeLoad: function(e) {

			//	the original triggering element
			var element = e.originalTarget || e.srcElement;

			//	Get the href attribute
			var	url	= $(element).attr("href");

			//	Make sure the trigger element is a link
			while( !url )
			{
				element	= $(element).parent();

				//	Get the href attribute
				var	url	= $(element).attr("href");
			}

			$("#leavingsite-msg").load("/site/leavingsite_msg.html");

			//	Show the URL
			$("#displaylink").html( url );
		},

		//	Mask the dialog box
		mask: {
			color: '#8F8F81',
			loadSpeed: 200,
			opacity: 0.9
		},

		//	Don't allow clicking outside of dialog box
		closeOnClick: false
	});
		
	var buttons = $("#leavingsite button").click(function(e) {
		
		// get user input
		var yes = buttons.index(this) === 1;

		if( yes )
		{
			window.location.href	= $("#displaylink").html();
		}
	});
		






});

