(function() {
	if (navigator.appName=='Netscape') {
		var resolver = document.createNSResolver(document.documentElement);
		var nodes = document.evaluate(
			'/descendant::*[local-name() = "A"]/descendant::text()',
			document.documentElement,
			resolver,
			XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
			null
		);
		var regexp = new RegExp("([!-%'-/:=\\?@\\[-`\\{-~]|&amp;)");
		var range = document.createRange();
		var wbr = document.createElement('wbr');
		for (var i=0; i<nodes.snapshotLength; i++) {
			var node = nodes.snapshotItem(i);
			var lastIndex = 0;
			range.selectNode(node);
			while (node && (lastIndex=range.toString().search(regexp))>-1) {
				range.setStart(node, lastIndex+RegExp.$1.length);
				range.insertNode(wbr.cloneNode(true));
				node = node.nextSibling.nextSibling;
				range.selectNode(node);
			}
		}
		range.detach();
	}
})();
