function eu_byte2hex(b)
{
	if(b >= 16)
	{
		return b.toString(16).toUpperCase();
	}
	return '0' + b.toString(16).toUpperCase();
}

function eu_myURLEncode(str)
{
	var i;
	var enc = '';
	for(i=0; i<str.length; i++)
	{
		if
		(
			((str[i] >= '0') && (str[i] <= '9')) ||
			((str[i] >= 'a') && (str[i] <= 'z')) ||
			((str[i] >= 'A') && (str[i] <= 'Z')) ||
			((str[i] == '/') || (str[i] == '_') || (str[i] == '.'))
        )
		{
			enc += str[i];
		}
		else
		{
			// Use UTF-8 charset
			var c = str.charCodeAt(i);

			if (c < 128)
			{
				enc += '-' + eu_byte2hex(c);
			}
			else if((c > 127) && (c < 2048))
			{
				enc += '-' + eu_byte2hex((c >> 6) | 192);
				enc += '-' + eu_byte2hex((c & 63) | 128);
			}
			else if(c < 65536)
			{
				enc += '-' + eu_byte2hex((c >> 12) | 224);
				enc += '-' + eu_byte2hex(((c >> 6) & 63) | 128);
				enc += '-' + eu_byte2hex((c & 63) | 128);
			}
			else
			{
				enc += '-' + eu_byte2hex((c  >> 18) | 240);
				enc += '-' + eu_byte2hex(((c >> 12) & 63) | 128);
				enc += '-' + eu_byte2hex(((c >> 6) & 63)  | 128);
				enc += '-' + eu_byte2hex((c & 63) | 128);
			}
		}
	}
	return enc;
}

function domainFromURL(url)
{
	url = url.toLowerCase();
	url = url.split('://');
	url = url[1].split('/');
	url = url[0];
	return url;
}

function isExternalURL(url, ld)
{
	url = url.toLowerCase();
	url = url.split('://');

	if((url[0] != 'http') && (url[0] != 'https'))
	{
		return false;
	}

	url = url[1].split('/');
	url = url[0];
	if((url.indexOf('earthrangers.com') >= 0) || (url.indexOf('earthrangers.org') >= 0))
	{
		return false;
	}

	return (url != ld);
}

$
(
	function()
	{
		var ld   = domainFromURL(new String(window.location));
		var self = new String(window.location);

		if(window.top && window.top.location)
		{
			self = new String(window.top.location);
		}

		if(self.indexOf('/outconfirm?') > 0)
		{
			return;
		}
		self = eu_myURLEncode(self);

		$('a').each
		(
			function(i, a)
			{
				var url = new String($(a).attr('href'));
				if( isExternalURL(url, ld) )
				{
					$(a).attr('href', '/outconfirm?next=' + eu_myURLEncode(url) + '&back=' + self);
				}
			}
		);
	}
);




