(function () {
if(navigator.appName == 'Netscape'){
	var resolver = document.createNSResolver(document.documentElement);
	var nodes = document.evaluate(
			'/descendant::*[not(contains(" TITLE STYLE SCRIPT TEXTAREA XMP ", concat(" ", local-name(), " ")))]/child::text()',
			document.documentElement,
			resolver,
			XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
			null
		);

	var zen = "っゎゃゅょヶヵ、。，．・：；？！゛゜´｀¨＾￣＿ヽヾゝゞ〃仝々〆〇ー―‐／＼～∥｜…‥‘’“”（）〔〕［］｛｝〈〉《》「」『』【】＋－±×÷＝≠＜＞≦≧∞∴♂♀°′″℃￥＄￠￡％＃＆＊＠§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓∈∋⊆⊇⊂⊃∪∩∧∨￢⇒⇔∀∃∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬Å‰＃♭♪†‡¶◯∮∑∟⊿￤＇＂";
	//var regexp = new RegExp("(\]]|[ァ～ワ①-⑳Ⅰ-Ⅸⅰ-ⅹ０-９Ａ-Ｚａ-ｚΑ-Ωα-ωА-Яа-я─-╂]|["+ zen +"]|&amp;)");
	var regexp = new RegExp("([a-zA-Z0-9ｧ-ｫｬ-ｮｱ-ﾝｦｯ゛゜ー･､｡!-%'-\/\\:=?@\[-`{}()-~<>\^\|\*\";#&+.,_]|[ァ～ワ①-⑳Ⅰ-Ⅸⅰ-ⅹ０-９Ａ-Ｚａ-ｚΑ-Ωα-ωА-Яа-я─-╂]|["+ zen +"]|&amp;)");
	var range  = document.createRange();
	var wbr    = document.createElement('wbr');
	var lastIndex;
	var node;
	for (var i = 0; i < nodes.snapshotLength; i++)
	{
		node = nodes.snapshotItem(i);
		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();
}
})();
