tieba_At_Ta

百度贴吧@它

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name           tieba_At_Ta
// @description    百度贴吧@它
// @include        http://tieba.baidu.com/*
// @include        https://tieba.baidu.com/*
// @exclude        http://tieba.baidu.com/mo/*
// @exclude        http://tieba.baidu.com/i/*
// @exclude        http://tieba.baidu.com/f/like*
// @exclude        http://tieba.baidu.com/club/*
// @exclude        http://tieba.baidu.com/shipin/*
// @exclude        http://tieba.baidu.com/bakan*
// @exclude        http://tieba.baidu.com/f/good*
// @exclude        http://tieba.baidu.com/daquan*
// @exclude        http://tieba.baidu.com/f/tupian*
// @exclude        http://tieba.baidu.com/tb/*
// @exclude        http://tieba.baidu.com/*postBrowserBakan*
// @icon           http://imgsrc.baidu.com/forum/pic/item/6fd108fb43166d229cb84fac452309f79152d2e2.png
// @require        http://libs.baidu.com/jquery/2.0.0/jquery.min.js
// @author         congxz6688
// @version        2017.2.28.1
// @grant          GM_getValue
// @grant          GM_setValue
// @grant          GM_deleteValue
// @namespace https://greasyfork.org/scripts/153
// ==/UserScript==


function addStyle(css){
	document.head.appendChild(document.createElement("style")).textContent = css;
}

//下面这一段CSS,可帮助编辑器工具栏不够用的同学,没有这个需要的同学可删除它。
var forCss2er = ".cut_screen{display:none!important;}";
forCss2er += ".tb-editor-wrapper{width:720px !important}";
forCss2er += ".recentImgDiv>.tb-editor-overlay{left:28% !important; top:30px !important;} .arrow.down{left: 218px !important;}";
addStyle(forCss2er);

//脚本主css
var replyCss = "";
replyCss += ".icon_author,.icon_replyer{display:none!important;}";
replyCss += ".tb_icon_author, .tb_icon_author_rely{background:none !important;background-position:none !important; white-space:nowrap !important;}";
replyCss += ".insertAt{padding:0px 0px 0px 0px; margin:1px 1px; cursor:pointer; background-color:lightGrey; display:inline-block;}";
replyCss += "#attaDiv{background-color:lightGrey; width:450px; border:4px double gray;} #ATTAnewEditDiv *:not(.pageTitle){font-size:12px !important;}";
replyCss += ".leftDiv{font-size:12px; display:inline-block; background-color:lightGrey;padding:5px 6px; width:48px;}";
replyCss += ".rightDiv{font-size:12px; display:inline-block; background-color:lightGrey; padding:4px 6px; width:375px;}";
replyCss += ".addPlus{cursor:pointer; margin:0px 2px 0px 0px; width:20px; color:blue;}";
replyCss += ".addPlusBack{cursor:pointer; margin:0px 2px 0px 0px; width:20px; color:red;}";
replyCss += ".picFrd{cursor:pointer; margin:0px 2px 0px -1px; width:20px; color:#A0522D; font-size:13px} .bbaa{cursor:pointer; margin:0px 2px 0px -1px; width:20px; color:green; font-size:13px} .bbaaB{cursor:pointer; margin:0px 2px 0px -1px; width:20px; color:#1E90FF; font-size:13px}";
replyCss += ".picFrdTab{cursor:pointer; margin:0px 2px 0px 2px; width:20px; color:#A0522D;} .bbaaTab{cursor:pointer; margin:0px 2px 0px 2px; width:20px; color:green;} .bbaaTabB{cursor:pointer; margin:0px 2px 0px 2px; width:20px; color:#1E90FF;}";
replyCss += ".addPlusTab{cursor:pointer; margin:0px 2px 0px 2px; width:20px; color:blue;}";
replyCss += ".addPlusTabBack{cursor:pointer; margin:0px 2px 0px 2px; width:20px; color:red;}";
replyCss += ".closeDivbt{cursor:pointer; float:right; margin:0px -2px; width:16px; height:16px;}";
replyCss += "#atta{cursor:pointer; margin:0 0 0 12px; display:inline-block; color:#3163B6; padding: 1px 1px 10px 1px; position:relative; top:0px}";
replyCss += "#atta_lzl{margin:0 5px 3px 5px; float:right;cursor:pointer; font-size:14px; display:inline-block; color:#3163B6;}";
replyCss += ".thread_alt>td:nth-child(4){width:110px} .thread_alt>td:nth-child(5){width:160px}";
replyCss += ".ATeditFaceTxtTb{width:150px; padding:1px 1px 0 0;} .inputInTd{width:149px;} .FTbutton{margin:10px 10px 0px 0px}";
replyCss += "#ATTAnewEditDiv{border: 1px solid gray; z-index:10002; background-color:#EEEEEE; padding:20px; position:fixed; left:300px; bottom:80px;}";
replyCss += ".pageTitle{font-size : 16px; margin-bottom : 15px;}";
replyCss += ".tb_icon_author.no_icon_author{padding-left:21px !important;}.pull_right>.no_icon_author{padding-left:0 !important;}";
addStyle(replyCss);

unsafeWindow.PageData.user.is_login =1;
//var Tds = []; //数据修改用列表
var thisPageTitle = document.getElementById("wd1").value + "吧";

//脚本双存储数据相互恢复
if (!localStorage.myBaFriends && GM_getValue("myBaFriends", "") != "") {
	localStorage.myBaFriends = GM_getValue("myBaFriends");
}
if (GM_getValue("myBaFriends", "") == "" && localStorage.myBaFriends) {
	GM_setValue("myBaFriends", localStorage.myBaFriends);
}
if (!localStorage.publicFriends && GM_getValue("publicFriends", "") != "") {
	localStorage.publicFriends = GM_getValue("publicFriends");
}
if (GM_getValue("publicFriends", "") == "" && localStorage.publicFriends) {
	GM_setValue("publicFriends", localStorage.publicFriends);
}

//函数 数组字符串重排序
String.prototype.reIndexStr = function () {
	var lastSt = this.split(",");
	var lastStr = lastSt.sort(function (a, b) {
			return a.localeCompare(b)
		});
	return lastStr;
}

//长ID缩略显示
String.prototype.reComLength = function () {
	var yn = 0;
	var kuu = "";
	for (w in this) {
		if (w < this.length) {
			if (/[a-zA-Z0-9]/.exec(this[w])) {
				yn += 1;
			} else {
				yn += 2;
			}
			if (yn < 13) {
				kuu += this[w];
			}
		}
	}
	var uui = yn > 14 ? kuu + "..." : this;
	return uui;
}
//元素精确监听
function addNodeInsertedListener(elCssPath, handler, executeOnce, noStyle) {
	var animName = "anilanim",
	prefixList = ["-o-", "-ms-", "-khtml-", "-moz-", "-webkit-", ""],
	eventTypeList = ["animationstart", "webkitAnimationStart", "MSAnimationStart", "oAnimationStart"],
	forEach = function (array, func) {
		for (var i = 0, l = array.length; i < l; i++) {
			func(array[i]);
		}
	};
	if (!noStyle) {
		var css = elCssPath + "{",
		css2 = "";
		forEach(prefixList, function (prefix) {
			css += prefix + "animation-duration:.001s;" + prefix + "animation-name:" + animName + ";";
			css2 += "@" + prefix + "keyframes " + animName + "{from{opacity:.9;}to{opacity:1;}}";
		});
		css += "}" + css2;
		addStyle(css);
	}
	if (handler) {
		var bindedFunc = function (e) {
			var els = document.querySelectorAll(elCssPath),
			tar = e.target,
			match = false;
			if (els.length !== 0) {
				forEach(els, function (el) {
					if (tar === el) {
						if (executeOnce) {
							removeNodeInsertedListener(bindedFunc);
						}
						handler.call(tar, e);
						return;
					}
				});
			}
		};
		forEach(eventTypeList, function (eventType) {
			document.addEventListener(eventType, bindedFunc, false);
		});
		return bindedFunc;
	}
}
//移除精确监听
function removeNodeInsertedListener(bindedFunc) {
	var eventTypeList = ["animationstart", "webkitAnimationStart", "MSAnimationStart", "oAnimationStart"],
	forEach = function (array, func) {
		for (var i = 0, l = array.length; i < l; i++) {
			func(array[i]);
		}
	};
	forEach(eventTypeList, function (eventType) {
		document.removeEventListener(eventType, bindedFunc, false);
	});
}
//获取本吧各数组
function thisBaArray(ww) {
	if (ww == "publicFriends") {
		var bbarray = (localStorage.publicFriends) ? localStorage.publicFriends.split(",") : [];
	} else {
		if (window.location.href.indexOf("https") != -1) {//HTTPS贴子读不到LocalStorage,所以换个办法
			var getBazhu = JSON.parse(GM_getValue(ww, "{}"));
		}else{
			var getBazhu = JSON.parse((localStorage[ww]) ? localStorage[ww] : "{}");
		}
		var bbarray = getBazhu[thisPageTitle] ? getBazhu[thisPageTitle] : [];
	}
	return bbarray
}
//函数 载入各名单
function loadThe(ww) {
	switch (ww) {
	case "myBaFriends":
		$("#td22div").empty();
		var parentDiv = document.getElementById("td22div");
		break;
	case "bigBaToday":
		var parentDiv = document.getElementById("td12div");
		break;
	case "smallBaToday":
		var parentDiv = document.getElementById("td42div");
		break;
	case "publicFriends":
		$("#td32div").empty();
		var parentDiv = document.getElementById("td32div");
		break;
	}
	if (thisBaArray(ww).length != 0) {
		myFri = thisBaArray(ww).toString().reIndexStr();
		for (l = 0; l < myFri.length; l++) {
			var ddoi = document.createElement("span");
			ddoi.innerHTML = "&nbsp;@" + myFri[l] + "&nbsp;";
			ddoi.className = "insertAt";
			ddoi.addEventListener("click", insertEdiror, false);
			parentDiv.appendChild(ddoi);
		}
	}
}

//函数 插入到编辑器
function insertEdiror(e) {
	var InsertText = e.target.innerHTML;
	var editor = (localStorage['which_editor']) ? localStorage['which_editor'] : 'atta';
	(editor == "atta") ? unsafeWindow.test_editor.execCommand("inserthtml", InsertText) : unsafeWindow.LzlEditor._s_p._se.execCommand("inserthtml", InsertText);
	closeAttable();
}
//函数 这是隐藏的福利,我会说吗?
function insertAll(e) {
	var idd = e.target.id;
	which_ed = (localStorage['which_editor']) ? localStorage['which_editor'] : 'atta';
	var bazhuST = "";
	switch (idd) {
	case "td42div":
		var lmo = thisBaArray("smallBaToday");
		break;
	case "td12div":
		var lmo = thisBaArray("bigBaToday");
		break;
	case "td22div":
		var lmo = thisBaArray("myBaFriends");
		break;
	case "td32div":
		var lmo = thisBaArray("publicFriends");
		break;
	}
	if (lmo.length != 0) {
		for (p = 0; p < lmo.length; p++) {
			bazhuST += "@" + lmo[p] + "&nbsp;";
		}
	}
	(which_ed == "atta") ? unsafeWindow.test_editor.execCommand("inserthtml", bazhuST) : unsafeWindow.LzlEditor._s_p._se.execCommand("inserthtml", bazhuST);
	closeAttable();
}
//列表创建函数
function creaseTable(UrlLength) {
	var tablepp = document.createElement("table");
	tablepp.id = "ATTAtablepp";
	var trs = [];
	for (ly = 0; ly <= Math.ceil(UrlLength / 3); ly++) {
		var tr = document.createElement("tr");
		mmd = trs.push(tr);
		tablepp.appendChild(tr);
	}
	for (ls = 0; ls < trs.length * 3; ls++) {
		var td = document.createElement("td");
		td.className = "ATeditFaceTxtTb";
		td.innerHTML = "<input type='text' class='inputInTd' value=''>";
		//wq = Tds.push(td);
		trs[Math.floor(ls / 3)].appendChild(td);
	}
	return tablepp
}
//函数 编辑我的本吧吧友名单
function promptMyfriend(el) {
	if (!document.getElementById("ATTAnewEditDiv")) {
		kpp = el.target.getAttribute("eclass");
		if (kpp == "promptMyfriend") {
			var ujuy = JSON.parse((localStorage["myBaFriends"]) ? localStorage["myBaFriends"] : "{}");
			var myfris = ujuy[thisPageTitle] ? ujuy[thisPageTitle] : [];
		} else {
			var myfris = ((localStorage["publicFriends"]) ? localStorage["publicFriends"] : "").split(",");
		}
		var ATTAnewEditDiv = document.createElement("div");
		ATTAnewEditDiv.id = "ATTAnewEditDiv";

		var pageTitle = document.createElement("div");
		pageTitle.className = "pageTitle";
		pageTitle.innerHTML = "可直接修改或添加:";
		ATTAnewEditDiv.appendChild(pageTitle);

		newTable = creaseTable(myfris.length);
		ATTAnewEditDiv.appendChild(newTable);

		var yesButton = document.createElement("input");
		yesButton.type = "button";
		yesButton.className = "FTbutton";
		yesButton.value = "确定";
		yesButton.addEventListener("click", function () {
			var reGetArray = [];
			var hht = document.getElementsByClassName("inputInTd");
			for (hh = 0; hh < hht.length; hh++) {
				if (hht[hh].value != "") {
					ko = reGetArray.push(hht[hh].value.trim());
				}
			}
			if (reGetArray.length > 0) {
				if (kpp == "promptMyfriend") {
					ujuy[thisPageTitle] = reGetArray;
				} else {
					localStorage["publicFriends"] = reGetArray.toString();
					GM_setValue("publicFriends", reGetArray.toString());
				}
			} else {
				if (kpp == "promptMyfriend") {
					delete ujuy[thisPageTitle];
				} else {
					localStorage.removeItem("publicFriends");
					GM_deleteValue("publicFriends");
				}
			}
			if (kpp == "promptMyfriend") {
				localStorage["myBaFriends"] = JSON.stringify(ujuy);
				GM_setValue("myBaFriends", JSON.stringify(ujuy));
				loadThe("myBaFriends");
			} else {
				loadThe("publicFriends");
			}
			$(".inputInTd").html("");
			$("#ATTAtablepp").remove();
			$("#ATTAnewEditDiv").remove();
		}, false);
		ATTAnewEditDiv.appendChild(yesButton);

		var addButton = document.createElement("input");
		addButton.type = "button";
		addButton.className = "FTbutton";
		addButton.value = "加行";
		addButton.addEventListener("click", function () {
			var tdNum = document.getElementsByClassName("inputInTd").length;
			var newTr = document.createElement("tr");
			document.getElementById("ATTAtablepp").appendChild(newTr);
			for (es = 0; es < 3; es++) {
				var newTD = document.createElement("td");
				newTD.className = "ATeditFaceTxtTb";
				newTD.innerHTML = "<input type='text' class='inputInTd' value=''>";
				newTr.appendChild(newTD);
			}
		}, false);
		ATTAnewEditDiv.appendChild(addButton);
		document.body.appendChild(ATTAnewEditDiv);

		for (ss = 0; ss < myfris.length; ss++) {
			document.getElementsByClassName("inputInTd")[ss].value = myfris[ss];
		}
	}
}
//函数 绝对定位
function getElementLeft(element) {
	var actualLeft = element.offsetLeft;
	var current = element.offsetParent;
	while (current !== null) {
		actualLeft += current.offsetLeft;
		current = current.offsetParent;
	}
	return actualLeft;
}
//函数 绝对定位
function getElementTop(element) {
	var actualTop = element.offsetTop;
	var current = element.offsetParent;
	while (current !== null) {
		actualTop += current.offsetTop;
		current = current.offsetParent;
	}
	return actualTop;
}
//主函数 由编辑窗上方的@@@调用,展开主列表
function createAttable(ete) {
	if (!document.getElementById("attaDiv")) {
		var ortt = ete.target;
		localStorage.which_editor = (ortt.id == "atta") ? 'atta' : 'atta_lzl';
		var getTop = (ortt.id == "atta") ? getElementTop(ortt) + 32 : getElementTop(ortt) + 20;
		//定位主列表位置
		if ($('#tb_rich_poster').css('position')=='fixed' && ortt.id == "atta") { //原子的悬浮窗
			var attaDiv = $("<div>", {
					id : "attaDiv"
				}).css({
					"position" : "fixed",
					"z-index" : "10002",
					"left" : getElementLeft(ortt) - 200,
					"bottom" : "0"
				}).appendTo(document.body);
		} else if (ortt.id == "atta_lzl") { //楼中楼回复
			var attaDiv = $("<div>", {
					id : "attaDiv"
				}).css({
					"position" : "absolute",
					"z-index" : "9999",
					"left" : getElementLeft(ortt) - 200,
					"top" : getTop - 120
				}).appendTo(document.body);
		} else { //主窗
			var attaDiv = $("<div>", {
					id : "attaDiv"
				}).css({
					"position" : "absolute",
					"z-index" : "9999",
					"left" : getElementLeft(ortt) - 200,
					"top" : getTop
				}).appendTo(document.body);
		}
		//建表
		var atTable = $("<table>", {
				"border" : "1",
				"bordercolor" : "#B8B3FF",
				"cellpadding" : "6"
			}).appendTo(attaDiv);
		//TR
		var attr1 = $("<tr>").appendTo(atTable);
		var attr4 = $("<tr>").appendTo(atTable);
		var attr2 = $("<tr>").appendTo(atTable);
		var attr3 = $("<tr>").appendTo(atTable);

		//左TD
		var td11 = $("<td>").appendTo(attr1);
		$("<div>", {
			html : "伟大吧主",
			class : "leftDiv"
		}).appendTo(td11);
		var td41 = $("<td>").appendTo(attr4);
		$("<div>", {
			html : "各位小吧",
			class : "leftDiv"
		}).appendTo(td41);
		var td21 = $("<td>", {
				"eclass" : "promptMyfriend",
				click : promptMyfriend
			}).appendTo(attr2);
		$("<div>", {
			"eclass" : "promptMyfriend",
			html : "本吧吧友",
			class : "leftDiv",
			title : "点击这里,可编辑本吧吧友名单"
		}).appendTo(td21);
		var td31 = $("<td>", {
				"eclass" : "promptPubfriend",
				click : promptMyfriend
			}).appendTo(attr3);
		$("<div>", {
			"eclass" : "promptPubfriend",
			html : "通用吧友",
			class : "leftDiv",
			title : "点击这里,可编辑通用吧友名单"
		}).appendTo(td31);

		//右TD
		var td12 = $("<td>").appendTo(attr1);
		$("<div>", {
			id : "td12div",
			class : "rightDiv",
			dblclick : insertAll
		}).appendTo(td12);
		var td42 = $("<td>").appendTo(attr4);
		$("<div>", {
			id : "td42div",
			class : "rightDiv",
			dblclick : insertAll
		}).appendTo(td42);
		var td22 = $("<td>").appendTo(attr2);
		$("<div>", {
			id : "td22div",
			class : "rightDiv",
			dblclick : insertAll
		}).appendTo(td22);
		var td32 = $("<td>").appendTo(attr3);
		$("<div>", {
			id : "td32div",
			class : "rightDiv",
			dblclick : insertAll
		}).appendTo(td32);

		//关闭按钮
		var closeDivbt = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA8UlEQVR42pWSMQrCQBBFcwPvI3gNKwtvYGVhaStqJYiFjY0IFmIrWEXRFIISiIqohYUYFcTC1gc/BFkSEmGyzMz/f3ZmNlaxMSvU7JQG2eJzdvdEW3j++vgstZ1AsNz6OgHkG6EpCFPe5S2qjHBzfgGZAuLV4TGw952Rg6MMVEKSZEyB7V6BW8NlJlcu1ccUPt0+1e6UkBMIgtkSKUi9iStSsz/H4SQJFD00ALXRZPMV2FxISDJ2S2qMpiVggFhB2BJsjaEB0ES3FO4k7dAqQHmm/F0rISMBRWxJjFQPF8IC9DsYoV42EOAlGtdyWyD4y76WWDtXsJol3gAAAABJRU5ErkJggg==";
		$("<span>", {
			class : "closeDivbt",
			click : closeAttable,
			html : "<img src='" + closeDivbt + "' alt='X' />"
		}).appendTo("#td12div");

		//载入吧主到列表中
		loadThe("bigBaToday");
		//载入小吧到列表中
		loadThe("smallBaToday");
		//载入我的吧友
		loadThe("myBaFriends");
		//载入通用吧友
		loadThe("publicFriends");
	}
}
//关闭@@@列表
function closeAttable() {
	$(".insertAt").detach();
	$(".rightDiv").detach();
	$(".leftDiv").detach();
	$("#attaDiv").detach();
}

//函数 加入到我的吧友
function addTomyFriend(elk) {
	var iopo = elk.target;
	var Ta = iopo.getAttribute("value");
	var r = confirm("把 " + Ta + " 添加到我的吧友?");
	if (r == true) {
		var ujuyu = JSON.parse((localStorage["myBaFriends"]) ? localStorage["myBaFriends"] : "{}");
		if (thisBaArray("bigBaToday").indexOf(Ta) == -1 && thisBaArray("smallBaToday").indexOf(Ta) == -1 && thisBaArray("publicFriends").indexOf(Ta) == -1) {
			if (ujuyu[thisPageTitle]) {
				if (ujuyu[thisPageTitle].indexOf(Ta) == -1) {
					ioii = ujuyu[thisPageTitle].push(Ta);
				}
			} else {
				ujuyu[thisPageTitle] = Ta.split(",");
			}
			localStorage["myBaFriends"] = JSON.stringify(ujuyu);
			setTimeout(function () {
				GM_setValue("myBaFriends", JSON.stringify(ujuyu));
			}, 0);
		} else {
			window.location = window.location.href;
		}
		temppp = "." + iopo.getAttribute("class") + "[value='" + Ta + "']";
		temppq = "." + iopo.getAttribute("class") + "[value='@" + Ta + "']";
		$(temppp + "," + temppq).each(function () {
			$(this).replaceWith($("<spam>", {
					title : "从我的@吧友中删除",
					value : Ta,
					html : "㈠",
					class : iopo.getAttribute("class") + "Back",
					click : removeFriend
				}));
		});
	}
}
//函数 从我的吧友中删除
function removeFriend(bad) {
	var iopo = bad.target;
	var Ta = iopo.getAttribute("value");
	var r = confirm("把 " + Ta + " 从我的吧友中删除?");
	if (r == true) {
		var ujuyu = JSON.parse((localStorage["myBaFriends"]) ? localStorage["myBaFriends"] : "{}");
		var BaList = ujuyu[thisPageTitle] ? ujuyu[thisPageTitle].toString() : ""; //此判断仅用于A页已执行过删除,B页中尚未知觉的情况
		if (BaList != "") {
			if (BaList == Ta) {
				delete ujuyu[thisPageTitle];
			} else {
				BaList = BaList.replace(Ta + ',', '').replace(',' + Ta, '');
				ujuyu[thisPageTitle] = BaList.split(",");
			}
		}
		localStorage["myBaFriends"] = JSON.stringify(ujuyu);
		setTimeout(function () {
			GM_setValue("myBaFriends", JSON.stringify(ujuyu));
		}, 0);
		temppp = "." + iopo.getAttribute("class") + "[value='" + Ta + "']";
		temppq = "." + iopo.getAttribute("class") + "[value='@" + Ta + "']";
		$(temppp + "," + temppq).each(function () {
			$(this).replaceWith($("<spam>", {
					title : "添加到我的@吧友",
					value : Ta,
					html : "㈩",
					class : iopo.getAttribute("class").replace("Back", ""),
					click : addTomyFriend
				}));
		});
	}
}
//直接@它
function justAtta(T) {
	var iopo = T.target;
	var Ta = iopo.innerHTML.replace("@", "");
	temp = '&nbsp;<span class="at">@' + Ta + '</span>&nbsp;';
	if (document.getElementById("Mark1") || document.getElementById("cMark")) { //兼容小脸
		smallFaceEnble();
	}
	if ($("#btUnminify").css("display") == "block") {//兼容原子的悬浮窗
		unsafeWindow.unminifyShare();
	}
	unsafeWindow.test_editor.execCommand("inserthtml", temp);
}
//大吧小吧来召唤
function bbsbCall(ba) {
	var iopo = ba.target;
	var Ta = iopo.getAttribute("value");
	temp = '&nbsp;<span class="at">@' + Ta + '</span>&nbsp;';
	if (document.getElementById("Mark1") || document.getElementById("cMark")) { //兼容小脸
		smallFaceEnble();
	}
	if ($("#btUnminify").css("display") == "block") {//兼容原子的悬浮窗
		unsafeWindow.unminifyShare();
	}
	unsafeWindow.test_editor.execCommand("inserthtml", temp);
}

//兼容小脸
function smallFaceEnble() {
	$('#cLinkContent1').css({
		"display" : 'table-cell'
	}); //兼容旧版小脸,打开编辑窗
	$('#cLinkContent').css({
		"display" : 'table-cell'
	}); //兼容新版小脸,打开编辑窗
	$('#menuSwitch').html('>>'); //兼容小脸,打开编辑窗
}


/***************************华丽的分割线,以上为函数,以下为运行程序********************************/

//帖子内启动其功能函数
if (window.location.href.indexOf("/p/") != -1 || window.location.href.indexOf("ct=") != -1 || window.location.href.indexOf("kz=") != -1) {
	//各ID加+
	addNodeInsertedListener('.p_author_name,a.at', function () {
		if (this.innerHTML.trim() == "贴吧游戏") {
			$(this.parentElement.parentElement.parentElement.parentElement).detach();
		}
		var Lhtml = this.innerHTML.replace("@", "");
		if (thisBaArray("bigBaToday").indexOf(Lhtml) != -1) {
			var ttitle = "这是大吧,可围观不可酱油,轻易别@它";
			var hhtml = "⑨";
			var cclass = "bbaaTabB";
			var cclick = bbsbCall;
		} else if (thisBaArray("smallBaToday").indexOf(Lhtml) != -1) {
			var ttitle = "这是小吧,想@就@吧~~";
			var hhtml = "②";
			var cclass = "bbaaTab";
			var cclick = bbsbCall;
		} else if (thisBaArray("publicFriends").indexOf(Lhtml) != -1) {
			var ttitle = "这是通用吧友,就是用来@的~~";
			var hhtml = "@";
			var cclass = "picFrdTab";
			var cclick = bbsbCall;
		} else if (thisBaArray("myBaFriends").indexOf(Lhtml) != -1) {
			var ttitle = "从我的@吧友中删除";
			var hhtml = "㈠";
			var cclass = "addPlusTabBack";
			var cclick = removeFriend;
		} else {
			var ttitle = "添加到我的@吧友";
			var hhtml = "㈩";
			var cclass = "addPlusTab";
			var cclick = addTomyFriend;
		}
		if ($(this).siblings("spam[value='" + Lhtml + "']").length == 0) {
			$("<spam>", {
				title : ttitle,
				html : hhtml,
				value : Lhtml,
				class : cclass,
				click : cclick
			}).insertAfter(this);
		}
		//帖子内点击直接@它 删除下面这几行即可去掉这一功能,要想彻底删干净,就把函数justAtta也删掉
		this.title += " 点击直接@它";
		this.href = "javascript:void(0);";
		this.removeAttribute("target");
		this.removeAttribute("onmouseover");
		this.removeAttribute("onmouseout");
		this.addEventListener("click", justAtta, false);
	});
	//楼中楼加@@@
	addNodeInsertedListener('.lzl_panel_wrapper>tbody>tr>td:first-child', function () {
		if (!document.getElementById("atta_lzl")) {
			$("<eas>", {
				id : "atta_lzl",
				html : "@@@",
				click : createAttable
			}).appendTo(this);
		}
	});
}

//主编辑器添加@@@
addNodeInsertedListener('.edui-btn-toolbar', function () {
	if (!document.getElementById("atta")) {
		$("<div>", {
			id : "atta",
			html : "@@@",
			click : createAttable
		}).appendTo(this);
	}
})


//主题列表
if (window.location.href.indexOf("kw=") != -1) {
	//最后一页
	addNodeInsertedListener('#thread_list_table tr>td:nth-child(2),.threadlist_rep_num', function () {
		if (this.nodeName == "DIV" || this.nodeName == "SPAN") { //新版
			var getThisUrl = $(this.parentNode.parentNode).find("a").attr("href");
		} else { //旧版
			var getThisUrl = $(this.parentNode).find("a").attr("href");
		}
		var klii = this.innerHTML;
		if (klii > 30) {
			this.innerHTML = "";
			$("<a>", {
				href : "javascript:void(0);",
				title : "直达最后一页",
				html : klii
			}).click(function () {
				var jih = getThisUrl.split("/p/")[1];
				var rtt = "http://tieba.baidu.com/mo/m?kz=" + jih;
				var getStartPage=new XMLHttpRequest();
				getStartPage.open("GET", rtt, true);
				getStartPage.send(null);
				getStartPage.onreadystatechange = function () {
					if (getStartPage.readyState == 4) {
						if (getStartPage.status == 200) {
							var pn = $(getStartPage.responseText).find('[name="pnum"]').attr('value');
							if (pn == undefined) {
								var lastRes = getStartPage.responseText.match(/<a[ ]href[^>]+?pid=\d+/g);
								var lastRe = lastRes[lastRes.length - 1].replace(/<a[ ]href[^>]+?pid=/, "");
								window.location = 'http://tieba.baidu.com/f?ct=335675392&tn=baiduPostBrowser&sc=' + lastRe + "&z=" + jih + "#" + lastRe;
							} else {
								//var lastUrl = "http://tieba.baidu.com" + getStartPage.responseText.match(/<\/a>&#160;<a[ ]href=".*last=1.*?(?=">)/)[0].replace('</a>&#160;<a href="', "").replace(/&amp;/g, "&");
								//var directGo = new XMLHttpRequest();
								//directGo.open("GET", lastUrl, true);
								//directGo.send(null);
								//directGo.onreadystatechange = function () {
								//	if (directGo.readyState == 4) {
								//		if (directGo.status == 200) {
								//			var lastRe = directGo.responseText.match(/flr\?pid=\d+(?=&)/)[0].replace('flr?pid=', '');
								//			window.location = 'http://tieba.baidu.com/f?ct=335675392&tn=baiduPostBrowser&sc=' + lastRe + "&z=" + jih + "#" + lastRe;
								window.location = 'http://tieba.baidu.com/p/' + jih + "?pn=99999";
								//		}
								//	}
								//}
							}
						}
					}
				}
			}).appendTo(this);
		}
	});

	//今天的日期和本吧名
	var yuy = new Date();
	var fulltime = yuy.toLocaleDateString();

	//收集每日各贴吧吧主信息
	var Bafid = unsafeWindow.PageData.forum.id;
	var bigBaToday = JSON.parse((localStorage["bigBaToday"]) ? localStorage["bigBaToday"] : "{}");
	var getSmallbas = JSON.parse((localStorage["smallBaToday"]) ? localStorage["smallBaToday"] : "{}");
	if ($(".manager_btn,.user_avt_card>.media_vertical,.manager_groups>.media_vertical").length > 0 && (bigBaToday.date != fulltime || !bigBaToday[thisPageTitle])) {
		console.log(thisPageTitle + " " + fulltime + " " + "吧主信息收集,每天只一次。");
		var smallbaUrl = window.location.href.replace("f?", "f/bawu/admin_group?") + "&ie=utf-8&fid=" + Bafid;
		var xmlHttp=new XMLHttpRequest();
		xmlHttp.open("GET", smallbaUrl, true);
		xmlHttp.send(null);
		xmlHttp.onreadystatechange = function () {
			if (xmlHttp.readyState == 4) {
				if (xmlHttp.status == 200) {
					var retxt1 = xmlHttp.responseText.replace(/\r/gi, "").replace(/\n/gi, "");
					//以下是大吧获取
					var bigbass = retxt1.replace(/.*本吧吧主:<\/td[ ]><td[ ]style="padding-bottom:20px;"[ ]>&nbsp;/, "").replace(/<tr[ ]valign="top"[ ]><td[ ]width="70"[ ]align="right"[ ]>小吧主:.*/, "");
					var bigtxt = bigbass.match(/<a[ ].*?"[ ]>.*?</g);
					if (bigtxt.length > 0) {
						bigbarrs = "";
						for (w = 0; w < bigtxt.length; w++) {
							bigbarrs += ((bigbarrs == "") ? "" : ",") + bigtxt[w].match(/>(.*)</)[1];
						}
						if (bigBaToday.date != fulltime) {
							bigBaToday = {};
							bigBaToday.date = fulltime;
							bigBaToday[thisPageTitle] = bigbarrs.split(",");
						} else {
							bigBaToday[thisPageTitle] = bigbarrs.split(",");
						}
						localStorage['bigBaToday'] = JSON.stringify(bigBaToday);
						GM_setValue('bigBaToday', JSON.stringify(bigBaToday));
					}
					//以下是小吧获取
					var retxt2 = retxt1.replace(/.*小吧主:<\/td[ ]><td[ ]style="padding-bottom:20px;"[ ]>&nbsp;/, "").replace(/<tr[ ]valign="top"[ ]><td[ ]width="70"[ ]align="right"[ ]>图片小编:.*/, "");
					var retxt = retxt2.match(/" >.*?</g);
					if (retxt.length > 0) {
						smallbar = "";
						for (w = 0; w < retxt.length; w++) {
							smallbar += ((smallbar == "") ? "" : ",") + retxt[w].replace(/[" ><]/g, "");
						}
						if (getSmallbas.date != fulltime) {
							getSmallbas = {};
							getSmallbas.date = fulltime;
							getSmallbas[thisPageTitle] = smallbar.split(",");
						} else {
							getSmallbas[thisPageTitle] = smallbar.split(",");
						}
						localStorage['smallBaToday'] = JSON.stringify(getSmallbas);
						GM_setValue('smallBaToday', JSON.stringify(getSmallbas));
					}
				}
			}
		}
	}

	//各ID加+
	addNodeInsertedListener('.frs-author-name-wrap>a,.tb_icon_author_rely>a', function () {
		if (this.parentNode.title) {
			Lhtml = this.parentNode.title.search(/[::]/)!=-1 ? this.parentNode.title.match(/.*[::]\s?(.*)/)[1] : this.parentNode.title;
		} else if (this.parentNode.parentNode.title) {
			Lhtml = this.parentNode.parentNode.title.match(/.*[::]\s?(.*)/)[1];
		}
		this.innerHTML = Lhtml.reComLength();
		if (thisBaArray("bigBaToday").indexOf(Lhtml) != -1) {
			var ttitle = "这是大吧,可围观不可酱油,轻易别@它";
			var hhtml = "⑨";
			var cclass = "bbaaB";
			var cclick = bbsbCall;
		} else if (thisBaArray("smallBaToday").indexOf(Lhtml) != -1) {
			var ttitle = "这是小吧,想@就@吧~~";
			var hhtml = "②";
			var cclass = "bbaa";
			var cclick = bbsbCall;
		} else if (thisBaArray("publicFriends").indexOf(Lhtml) != -1) {
			var ttitle = "这是通用吧友,就是用来@的~~";
			var hhtml = "@";
			var cclass = "picFrd";
			var cclick = bbsbCall;
		} else if (thisBaArray("myBaFriends").indexOf(Lhtml) != -1) {
			var ttitle = "从我的@吧友中删除";
			var hhtml = "㈠";
			var cclass = "addPlusBack";
			var cclick = removeFriend;
		} else {
			var ttitle = "添加到我的@吧友";
			var hhtml = "㈩";
			var cclass = "addPlus";
			var cclick = addTomyFriend;
		}
		if ($(this).siblings("spam").length == 0) {
			$("<spam>", {
				title : ttitle,
				html : hhtml,
				value : Lhtml,
				class : cclass,
				click : cclick
			}).insertBefore(this);
		}
	});
}

//上传图片默认不选中“加本吧水印”的复选框
addNodeInsertedListener('.i_checkbox', function () {
	this.checked = false;
});