﻿// ==UserScript==
// @name            url_breaker+
// @namespace       http://piro.sakura.ne.jp/
// @description     URL Breaker Modified Version
// @include         *
// ==/UserScript==

(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 regexp = new RegExp("([!-%'-/:=\\?@\\[-`\\{-~]|&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();
}
})();

/*
	Original Script:
		url_breaker (made by asukaze)
		http://www.asukaze.net/soft/url_breaker/url_breaker.user.js
*/