function mornings(){

if(document.body.createTextRange){
  keyword =" 05:00";
  var keywordLength = keyword.length;
  var tree = document.body.createTextRange(), prevnode;
  while(tree.findText(keyword)) {
    tree.text ="";
    tree.move('character',keywordLength);
    // moveしておかないと無限ループになるので注意
  }
}

};


function morning2(){

  keyword =" 05:00";
  var keywordLength = keyword.length;
	if(document.evaluate){// XPathが使える場合
		xpath();
	} else if (document.body.createTextRange) {
		var tree = document.body.createTextRange();
		while(tree.findText(keyword)) {
    tree.text =" 朝刊";
    tree.move('character',keywordLength);

		}
	} else {
		// XPathもcreateTextRangeも使えない場合
		// 一応、Safari 3.0.4などが該当する
		walker(document.body);

	}





	function xpath(){
		var TEXT = 'descendant::text()[contains(self::text(),' + escapeXPathExpr(keyword) +
		    ') and not(ancestor::'+ ['textarea','script','style','head'].join(' or ancestor::') + ')]';
		var exp = document.evaluate(TEXT,document.body, null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);
		var len = exp.snapshotLength;
		for (var i = 0; i < len; i++) {
			var txt = exp.snapshotItem(i);
			var text = txt.nodeValue, index;
			var parent = txt.parentNode;
			while (text && (index=text.indexOf(keyword)) >= 0 ){
				// テキストを分割し、後ろ側のノードを取得
				var _txt = txt.splitText(index);
				// キーワードの終わりで再度分割
				var __txt = _txt.splitText(keywordLength);
				var s = document.createElement('span');
				s.className ='XXX';
				s.appendChild(_txt);
				//parent.insertBefore(s, __txt);
				text = __txt.nodeValue;
				txt = __txt;
				// ループ用に初期化
			}
		}
	}
	function escapeXPathExpr(text) {
		var matches = text.match(/[^"]+|"/g);
		function esc(t) {
			return t == '"' ? ('\'' + t + '\'') : ('"' + t + '"');
		}
		if (matches) {
			if (matches.length == 1) {
				return esc(matches[0]);
			} else {
				var results = [];
				for (var i = 0, len = matches.length; i < len; i ++) {
					results.push(esc(matches[i]));
				}
				return 'concat(' + results.join(', ') + ')';
			}
		} else {
			return '""';
		}
	}
	function walker(node) {
		if (node.nodeType === 3) {
			if (node.nodeValue.indexOf(keyword) >= 0) {
				var text = node.nodeValue, index;
				var parent = node.parentNode;
				while (text && (index=text.indexOf(keyword)) >= 0 ){
					// テキストを分割し、後ろ側のノードを取得
					var _txt = node.splitText(index);
					// キーワードの終わりで再度分割
					var __txt = _txt.splitText(keywordLength);
					var s = document.createElement('span');
					s.className ='XXX';
					s.appendChild(_txt);
					parent.insertBefore(s, node.nextSibling);
					text = __txt.nodeValue;
					node = __txt;

				}
			}
		} else if (node.nodeType === 1 && !/^(STYLE|SCRIPT|HEAD|TEXTAREA)$/.test(node.tagName)) {
			var childNodes = node.childNodes;
			for (var i = 0, len = childNodes.length; i < len; ++i) {
				walker(childNodes[i]);
			}
		}
	}
};


var userAgent = navigator.userAgent.toLowerCase();

(function(){
	if(document.addEventListener){ 
		document.addEventListener("DOMContentLoaded", morning2, false);
	} else if(/msie/.test(userAgent)){ 
		try {
			document.documentElement.doScroll("left");
		} catch(error){
			setTimeout(arguments.callee, 0);
			return;
		}
		morning2();
	} else { 
		window.onload = morning2;
	}
})();





