if (typeof(BACookie) != "object") {
	BAAppendJS("/shared/js/json.js");
	BAAppendJS("/shared/js/compress.js");
	BAAppendJS("/shared/js/cookie.js");
}
function rollbackLink(root) {
	this.root      = root;
	this.node      = null;
	this.text      = "前のページへ戻る";
	this.storage   = new BACookie("hash", 0, (root || "/"), "", false);
	this.init();
}
rollbackLink.prototype = {
	init : function() {
		if (document.referrer && document.referrer != window.location.href && document.referrer.match(/^(https?:\/\/.+?\/)(.*)$/)) {
			var domain   = RegExp.$1;
			var pathname = "/" + RegExp.$2;
			if ((domain && window.location.href.indexOf(domain) == 0) && (pathname && pathname.indexOf(this.root) == 0)) {
				this.node = document.createElementBA("li");
				this.node.appendClassNameBA("rollback");
				this.node.appendClassNameBA("rollover");
				var link = document.createElementBA("a");
				var href = document.referrer;
				if (href.indexOf("#") == -1) {
					href += (this.storage.get()) ? "#" + this.storage.get() : "";
				}
				this.storage.erase();
				link.setAttributeBA("href", href);
				link.appendChildBA(this.text);
				this.node.appendChildBA(link);
			}
		}
	}
}
BAAddOnload(function(){
	if (!__LN_ROLLBACK_ROOTPATH__) return;

	var rollback = new rollbackLink(__LN_ROLLBACK_ROOTPATH__);
	if (!rollback.node) return;

	var localNav = document.getElementsByClassNameBA("local-navigation", "dl")[0];
	if (!localNav) return;

	var target = localNav.getElementsByTagNameBA("ul")[0];
	if (!target) return;
	var toCategoryTop = target.getElementsByClassNameBA("to-category-top")[0];
	if (toCategoryTop) {
		if (target.insertBefore) {
			target.insertBefore(rollback.node, toCategoryTop);
		} else {
			target.removeChildBA(toCategoryTop);
			target.appendChildBA(rollback.node);
			target.appendChildBA(toCategoryTop);
		}
	} else {
		target.appendChildBA(rollback.node);
	}
});

var __LN_ROLLBACK_ROOTPATH__ = "";

