// ==UserScript==
// @name           arinomama.tumblr.com post expander
// @namespace      http://libelabo.jp/
// @description    Expand Post of arinomama.tumblr.com
// @include        http://twitter.com/*
// ==/UserScript==

(function(){
	
	function insertArinomamaPost(root){
		arinomamaA = $x('.//a[contains(@href,"http://arinomama.tumblr.com/post/")]',root);
		if(!arinomamaA) return;
		arinomamaA.forEach(function(a){
			var img = document.createElement('img');
			img.src = a.href.replace("arinomama","data").replace("/post","").concat("_r1_500.jpg");
			a.parentNode.insertBefore(img,a.nextSibling);
		});
	}
	
	function $x(exp, context) {
		if (!context) context = document;
		var resolver = function (prefix) {
			var o = document.createNSResolver(context)(prefix);
			return o ? o : (document.contentType == "text/html") ? "" : "http://www.w3.org/1999/xhtml";
		}
		var exp = document.createExpression(exp, resolver);
		var result = exp.evaluate(context, XPathResult.ANY_TYPE, null);
		switch (result.resultType) {
			case XPathResult.STRING_TYPE : return result.stringValue;
			case XPathResult.NUMBER_TYPE : return result.numberValue;
			case XPathResult.BOOLEAN_TYPE: return result.booleanValue;
			case XPathResult.UNORDERED_NODE_ITERATOR_TYPE: {
				result = exp.evaluate(context, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
				var ret = [];
				for (var i = 0, len = result.snapshotLength; i < len ; i++) {
						ret.push(result.snapshotItem(i));
				}
				return len != 0 ? ret : null;
			}
		}
		return null;
	}
	
	insertArinomamaPost(document);
	
	if(window.AutoPagerize && window.AutoPagerize.addFilter) {
		window.AutoPagerize.addFilter(
		function(docs) {
			if(!docs) return;
			docs.forEach(function(doc){if(!doc) return; insertArinomamaPost(doc)});
		}
	);
	}
})();
