(function() {
	YAHOO.namespace('ll.global');
	
	var Util = (ll.global.Util = function ()
	{
		return {
			makeExternalUrl : function(el)
			{
				if (!el && !el.length)
				{
					return;
				}
				
				if (YAHOO.lang.isArray(el))
				{
					for (var i = 0; i < el.length; i++)
					{
						Util.makeExternalUrl(el[i]);
					}
					return;
				}
				
				Event.on(el, 'click', function (evt) {
					var href = this.href;
					
					window.open(href, '_blank');
					
					Event.preventDefault(evt);
				});
			}
		};
	}());
	
	String.format = function (sFormat, mValueMap)
	{
		//stuff leading white space so the format string will never start with a value to replace 
		var split = (' ' + sFormat).replace(/%7E/gi, '~').split('~');
		
		for (var i = 0; i < split.length; i++)
		{
			if (i % 2)
			{
				// If escaped ~ split[i] will === '' else use mValueMap value
				// If a replacement value isn't found, return ~split[i]~
				var value = split[i] === '' ? '~' : mValueMap[split[i]];
				if (value === undefined)
				{
					value = '~' + split[i] + '~';
				}
				split[i] = value;
			}
		}
		return split.join('').substr(1); //trim stuffed space
	};
})();
