
	linkTracking = new Object();

	linkTracking.init =
		function()
		{
			if( window.location.hostname.indexOf( 'reg.' ) != -1 ) return false;
	
			if( !document.getElementsByTagName ) return false;

			// Fetch all links
			var links = document.getElementsByTagName( 'A' );

			// Make all external links into jumplinks
			for( var i = 0; i < links.length; i++ )
				linkTracking.modifyLink( links[ i ] );

			return true;
		};

	linkTracking.modifyLink =
		function( link ) {
			if( link.getAttribute( 'href' ) )
			{
				var url = link.getAttribute( 'href' );
				var site_url = window.location.hostname;
				var lc_url = url.toLowerCase();
				var lc_site_url = site_url.toLowerCase();
				var displayText = link.innerHTML;

				if( link.getAttribute( 'target' ) )
					var url_target = link.getAttribute( 'target' ).toLowerCase();
				else
					var url_target = '';

				if( url.indexOf( '//' ) > -1 && url.indexOf( '//' ) <= 8 && lc_url.indexOf( lc_site_url.replace( /www\./gi, '' ) ) < 0
					&& url_target <= '' && url.indexOf( 'mailto:' ) == -1 )
				{
					link.setAttribute( 'href', linkTracking.makeJumplink( url, site_url ) );
					link.innerHTML = displayText;
				}
			}
			else
			{
				return false;
			}
		};

	linkTracking.makeJumplink =
		function( href, site_url, jumplink_prefix, jumplink_query_string_parameter ) {
			if( jumplink_prefix == null ) jumplink_prefix = "/common/jumplink.php"
			if( jumplink_query_string_parameter == null ) jumplink_query_string_parameter = "target";

			// Extract jumplink parameters from non-jumplink URL's with parameters already applied
			var extractedBiParams = '';

			if( href.indexOf( '?' ) > 0 )
			{
				var queryString = href.substring( href.indexOf( '?' ) + 1 );

				if( queryString.indexOf( '&' ) > -1 )
					var tokens = queryString.split( '&' );
				else
					var tokens = [ queryString ];

				var biParams = [ 'loc', 'sponsor', 'intref' ];

				for( var i = 0; i < tokens.length; i++ )
				{
					if( tokens[ i ].indexOf( '=' ) > -1 )
					{
						var token = tokens[ i ].split( '=' );

						try {
							if( token.lnegth );
								if( token.length > 1 )
									if( biParams.indexOf( token[ 0 ].toLowerCase() ) != -1 )
									{
										extractedBiParams = '&' + token[ 0 ] + '=' + token[ 1 ];

										href = href.replace( '&' + token[ 0 ] + '=' + token[ 1 ], '' )
										href = href.replace( '?' + token[ 0 ] + '=' + token[ 1 ], '?' )
									}
						}
						catch( e )
						{
							// Trap IE error
						}
					}
				}
			} 

			if( href.indexOf( '?' ) == href.length - 1 )
				href = href.substring( 0, href.length - 1 );

			href = href.replace( '?&', '?' );
			href = jumplink_prefix + "?" + jumplink_query_string_parameter + "=" + escape( href ).replace(/\+/g,'%2B') + extractedBiParams;

			return href;
		};
