linkTracking = new Object();

linkTracking.init =
	function()
	{
		if( window.location.hostname.indexOf( 'reg.' ) != -1 ) return false;

		if( !document.getElementsByTagName ) return false;

//thanh - turn off jumplink
/*
		// 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 (linkTracking.isGrounded(link))
				return false;

			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.isGrounded =
	function( domObject ) {
		if (typeof(domObject) == 'undefined' || domObject == null)
			return false;

		if (domObject && domObject.className) {
			var classList = domObject.className.split(' ');
			for (var idx = 0; idx < classList.length; idx++) {
				if (classList[idx] == 'grounded')
					return true;
			}
		}

		return linkTracking.isGrounded(domObject.parentNode);
	};

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.length )
							if( token.length > 1 )
								if( biParams.indexOf( token[ 0 ].toLowerCase() ) != -1 )
								{
									var tokenToEval = token[0].toLowerCase();
									if (tokenToEval == 'intref')
									{
										if (href.indexOf(window.location.hostname) == -1)
											tokenToEval = 'loc';
									}
									if (typeof(extractedBiParams[tokenToEval]) == 'undefined') {
										extractedBiParams[tokenToEval] = token[1];
									}

									href = href.replace( '&' + token[ 0 ] + '=' + token[ 1 ], '' )
									href = href.replace( '?' + token[ 0 ] + '=' + token[ 1 ], '?' )
								}
					}
					catch( e )
					{
						// Trap IE error
					}
				}
			}
		}

		var biParamsStr = '';
		for (var idx in extractedBiParams)
		{
			biParamsStr += '&' + idx + '=' + extractedBiParams[idx];
		}

		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') + biParamsStr;

		return href;
	};

