JS 地址
http://mat1.gtimg.com/www/mb/js/mi.Capture_110307.js
MI.Capture = {}; (function (f, g) { var h = navigator, i = h.userAgent.toLowerCase(), q = /(windows|win32)/.test(i), l = i.indexOf("opera") > -1, p = i.indexOf("compatible") > -1 && !l || i.indexOf("msie") > -1; l = /(khtml|konqueror|applewebkit)/.test(i); l = i.indexOf("gecko") > -1 && !l; var m = /firefox\/((\d|\.)+)/i.test(i) && RegExp.$1, o = { screencapture: 0, uploader: 2, ftn: 3, dropfile: 4 }, r = function (a) { return [a, +new Date, Math.random()].join("").split(".").join("") }("FF"), d = { _mbAble: false }; if (p) d = { _msLastWholeVer: "1.0.1.32", _msCurWholeVer: "", _mbAble: true, _moProgId: ["TXGYMailActiveX.ScreenCapture", "", "TXGYMailActiveX.Uploader", "TXFTNActiveX.FTNUpload", "TXGYMailActiveX.DropFile"], _moCurVer: new Array(5), _moBaseVer: ["0.0.0.1", "", "1.0.1.31", "1.0.0.12", "1.0.0.8"], _moLastVer: ["1.0.1.31", "", "1.0.1.31", "1.0.0.12", "1.0.0.8"], _moMiniVer: ["1.0.0.28", "", "1.0.1.28", "1.0.0.10", "1.0.0.7"] }; else if (l) { m = m.split("."); d = { _msLastWholeVer: "1.0.1.32", _msCurWholeVer: "", _mbAble: q && l && m[0] >= 3 && (m[1] > 0 || m[2] >= 8 || parseInt(h.buildID.substr(0, 8)) >= 20090701), _moProgId: ["ScreenCapture", "", "Uploader", "FTNUpload", ""], _moPluginName: ["QQMail Plugin", "", "QQMail Plugin", "Tencent FTN plug-in", "QQMail Plugin"], _moCurVer: new Array(5), _moBaseVer: ["0.0.0.2", "", "1.0.1.32", "1.0.0.1", "1.0.0.0"], _moLastVer: ["1.0.1.32", "", "1.0.1.32", "1.0.0.1", "1.0.0.2"], _moMiniVer: ["1.0.0.28", "", "1.0.1.28", "1.0.0.1", "1.0.0.0"] } } var k = { lastVersion: d._msLastWholeVer, getVersion: function (a) { if (!d._mbAble) return ""; var b = this; a = typeof a == "number" ? a : o[a]; if (a === g) { if (d._msCurWholeVer) return d._msCurWholeVer; var c; a = [0, 0, 0, 0]; for (var e = 0; e < 5; e++) if (c = b.getVersion(e)) { c = c.split("."); for (var j = d._moBaseVer[e].split("."), n = 0; n < 4; n++) a[n] += parseInt(c[n]) - j[n] } return a[0] ? (d._msCurWholeVer = a.join(".")) : "" } else { e = d._moCurVer; e[a] || b._createActiveX(a, r); return e[a] || "" } }, isSupport: function (a) { var b = this, c = o[a]; if (c !== g) { if (!/:\.(qq|foxmail)\.com\//i.test(f.location.href) && document.domain != "qq.com") return -4; if (!d._mbAble) return -3; if (!(a = b.getVersion(a))) return -2; if (a == d._moLastVer[c]) return 2; a = a.split("."); c = d._moMiniVer[c].split("."); for (b = 0; b < 4; b++) if (parseInt(a[b]) < parseInt(c[b])) return -1; return 1 } return -5 }, getInstance: function (a) { a = o[a]; if (d._mbAble && a !== g) try { return new[k._screencapture, null, k._uploader, k._ftn, k._dropfile][a](k._createActiveX(a)) } catch (b) {} return null }, openDonwload: function () { d._msCurWholeVer = ""; d._moCurVer = new Array(5); return true }, _createActiveX: function (a, b) { var c = this; _oInstance = null; if (p) try { _oInstance = new ActiveXObject(d._moProgId[a]); d._moCurVer[a] = a == 4 ? d._moLastVer[4] : _oInstance.version } catch (e) {} else if (c._checkInstallPlugin(a)) { c = f.document; var j = "QQMailFFPluginIns"; if (a == 3) { j = b || j + +new Date; if (!(b = c.getElementById(j))) { b = c.createElement("embed"); b.id = j; b.type = "application/txftn"; b.setAttribute("hidden", "true"); c.body.appendChild(b) } _oInstance = b.Version ? b : null } else { if (!(b = c.getElementById(j))) { b = c.createElement("embed"); b.id = j; b.type = "application/x-tencent-qmail"; b.setAttribute("hidden", "true"); c.body.appendChild(b) } c = { 0: "CreateScreenCapture", 2: "CreateUploader", 4: "CreateDragDropManager" }[a]; if (typeof b[c] != "undefined") _oInstance = b[c]() } if (_oInstance) d._moCurVer[a] = _oInstance.Version } return _oInstance }, _checkInstallPlugin: function (a) { var b = d._moPluginName[a]; a = a != 3 && (i.indexOf("vista") > -1 || /nt 6/gi.test(i)); var c = h.plugins; if (d._mbAble && c && b) for (var e = c.length - 1; e >= 0; e--) if (c[e].name.indexOf(b) != -1) if (!(a && !c[e].description.split("#")[1])) return true; return false } }; k._uploader = function (a) { var b = this; b._moActiveX = a; b._moBaseConfig = {} }; k._screencapture = function (a) { this._moActiveX = a }; MI.Capture = k })(window); MI.Capture.createActiveX = function (f) { return MI.Capture.getInstance(f)._moActiveX }; MI.Capture.enable = MI.Capture.isSupport("screencapture") > 0; MI.Capture.install = function () { UI.ready(function () { UI.append(UI.html('<iframe οnlοad="if(MI && MI.dialog)MI.dialog.hide();" src="http://mail.qq.com/cgi-bin/readtemplate?check=false&t=control_install&action=install" style="display:none"></iframe>')[0], document.body) }) }; UI.ready(function () { if (MI.Capture.enable) { MI.Capture.screen = MI.Capture.createActiveX("screencapture"); if (MI.Capture.screen) MI.Capture.screen.OnCaptureFinished = function () { MI.Capture.screen.BringToFront(window); MI.Capture.upload() }; MI.Capture.uploader = MI.Capture.createActiveX("uploader"); if (MI.Capture.uploader) { MI.Capture.uploader.URL = "http://upload.t.qq.com/asyn/uploadpic.php"; MI.Capture.uploader.CodePage = 65001; MI.Capture.uploader.AddHeader("cookie", document.cookie); MI.Capture.uploader.OnEvent = function (f, g) { switch (g) { case 1: break; case 2: break; case 3: if (MI.talkBox) { f = MI.Capture.uploader.Response.replace("parent.MI", "MI").replace("'image'", "'fileName':MI.Capture.fileName,'image'"); UI.evalScript(f) } break } } } MI.Capture.fileName = ""; MI.Capture.upload = function () { var f = MI.Capture.screen.IsClipBoardImage, g = MI.Capture.uploader.GetClipboardFiles(), h; if ((f || g) && MI.talkBox && MI.talkBox.pic) MI.alert("每条广播只能插入一张照片"); else { if (f) { h = MI.Capture.screen.SaveClipBoardBmpToFile(1); MI.Capture.fileName = "截屏.jpg" } else if (g) { h = g.split(" ")[0]; MI.Capture.fileName = g.replace(h + " ", "").split("\r")[0] } if (h) { MI.Capture.uploader.StopUpload(); MI.Capture.uploader.ClearFormItems(); MI.Capture.uploader.AddFormItem("pic", 1, 0, h); MI.Capture.uploader.StartUpload(); MI.talkBox && MI.talkBox.uploadPic(); MI.Bos("btnPicCapture") } } } } }); /* |xGv00|9325922e0b144f0a88e292fdd7b6b5e7 */ < html xmlns = "http://www.w3.org/1999/xhtml" > < body xmlns = "http://www.w3.org/1999/xhtml" > < div xmlns = "http://www.w3.org/1999/xhtml" > < img width = '77' height = '5' src = 'chrome://livemargins/skin/monitor-background-horizontal.png' style = 'position: absolute;left:-77px;top:-5px' / > < img src = 'chrome://livemargins/skin/monitor-background-vertical.png' style = 'position: absolute;left:0;top:-5px;' / > < img id = 'monitor-play-button' src = 'chrome://livemargins/skin/monitor-play-button.png' onmouseover = 'this.style.opacity=1' onmouseout = 'this.style.opacity=0.5' style = 'position: absolute;left:1px;top:0;opacity:0.5;cursor:pointer' / >
http://mat1.gtimg.com/www/mb/js/mi_110520a.js
String.prototype.hasString = function (c) { if (typeof c == "object") { for (var f = 0, n = c.length; f < n; f++) if (!this.hasString(c[f])) return false; return true } else if (this.indexOf(c) != -1) return true }; String.prototype.breakWord = function (c, f) { f || (f = "<wbr/>"); return this.replace(RegExp("(\\w{" + (c ? c : 0) + "})(\\w)", "g"), function (n, a, b) { return a + f + b }) }; UI = window.UI || { ajax: function (c) { var f = c.xhr || UI.xmlHttp(), n, a; f.onreadystatechange = function () { if (f.readyState == 1) { if (c.timeout && c.fail) a = setTimeout(function () { if (!n) { f.abort(); c.fail() } }, c.timeout) } else if (f.readyState == 2) c.send && c.send(); else if (f.readyState == 4) { n = 1; if (f.status == 200) try { c.success(f.responseText) } catch (g) {} else if (c.fail) { clearTimeout(a); c.fail() } } }; if (UI.isObject(c.data)) { var b = [], e; for (e in c.data) b.push(e + "=" + encodeURIComponent(c.data[e])); c.data = b.join("&") } if (c.type == "get") { f.open("GET", c.url + (c.url.hasString("?") ? "&" : "?") + c.data, true); f.send(null) } else { f.open("POST", c.url, true); f.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); f.send(c.data) } return f }, get: function (c, f, n) { var a = UI.xmlHttp(), b = c.hasString("?") ? "&" : "?"; a.onreadystatechange = function () { if (a.readyState == 4 && a.status == 200) try { n(a.responseText) } catch (h) {} else return a }; if (f != undefined) if (UI.isObject(f)) { var e = [], g; for (g in f) e.push(g + "=" + encodeURIComponent(f[g])); c += b + e.join("&") } else c += b + f; a.open("GET", c, true); a.send(null); return a }, xmlHttp: function () { var c; if (window.ActiveXObject) c = new ActiveXObject("Microsoft.XMLHTTP"); else if (window.XMLHttpRequest) c = new XMLHttpRequest; return c }, crossAsynJson: function (c, f, n, a) { var b = UI.DC("script"), e = UI.GT(document, "head")[0]; window[f] = function (g) { window[f] = undefined; try { delete window[f] } catch (h) {} n(g); e && setTimeout(function () { e.removeChild(b) }, 5) }; a && UI.A(b, "charset", a); UI.A(b, "type", "text/javascript"); UI.A(b, "src", c); e.appendChild(b) }, getScript: function (c, f, n, a) { var b = UI.DC("script"); if (f) if (UI.B.ie) b.onreadystatechange = function () { if (b.readyState == "loaded" || b.readyState == "complete") { f(); a || UI.remove(b) } }; else b.onload = function () { f(); a || UI.remove(b) }; n && UI.A(b, "charset", n); UI.A(b, "type", "text/javascript"); UI.A(b, "src", c); UI.A(b, "async", "true"); UI.GT(document, "head")[0].appendChild(b) }, getCss: function (c, f, n) { var a = n ? n : UI.DC("link"); if (f) a.onload = f; if (!n) { UI.A(a, "rel", "stylesheet"); UI.A(a, "type", "text/css"); UI.GT(document, "head")[0].appendChild(a) } UI.A(a, "href", c) }, evalScript: function (c) { var f = this.regExp.script; (c = c.match(RegExp(f, "img"))) && UI.each(c, function (n) { eval(n.match(RegExp(f, "im"))[1]) }) }, regExp: { script: "<script[^>]*>([\\S\\s]*?)<\/script>" }, encode: function (c) { return escape(UI.utfEncode(c)) }, decode: function (c) { return UI.utfDecode(unescape(c)) }, utfEncode: function (c) { c = c.replace(/\r\n/g, "\n"); for (var f = "", n = 0; n < c.length; n++) { var a = c.charCodeAt(n); if (a < 128) f += String.fromCharCode(a); else { if (a > 127 && a < 2048) f += String.fromCharCode(a >> 6 | 192); else { f += String.fromCharCode(a >> 12 | 224); f += String.fromCharCode(a >> 6 & 63 | 128) } f += String.fromCharCode(a & 63 | 128) } } return f }, utfDecode: function (c) { for (var f = "", n = 0, a = c1 = c2 = 0; n < c.length;) { a = c.charCodeAt(n); if (a < 128) { f += String.fromCharCode(a); n++ } else if (a > 191 && a < 224) { c2 = c.charCodeAt(n + 1); f += String.fromCharCode((a & 31) << 6 | c2 & 63); n += 2 } else { c2 = c.charCodeAt(n + 1); c3 = c.charCodeAt(n + 2); f += String.fromCharCode((a & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3 } } return f }, parseUrl: function (c, f) { var n = c ? c : document.location.href, a = {}; f = f || "?"; if (!n.hasString(f)) return a; n = n.split(f)[1].split("&"); for (var b = 0; b < n.length; b++) { var e = n[b].replace(/#.*$/g, "").split("="); e[1] || (e[1] = ""); a[e[0]] = UI.B.ie ? e[1] : UI.decode(e[1]) } return a }, cookie: function (c, f, n, a) { if (f == undefined) { c += "="; f = document.cookie.split(";"); for (n = 0; n < f.length; n++) { for (a = f[n]; a.charAt(0) == " ";) a = a.substring(1, a.length); if (a.indexOf(c) == 0) return decodeURIComponent(a.substring(c.length, a.length)) } return null } else { var b = ""; if (n) { b = new Date; b.setTime(b.getTime() + n * 864E5); b = "; expires=" + b.toGMTString() } document.cookie = c + "=" + f + b + "; path=/" + (a ? ";domain=" + a : "") } }, drag: function (c, f, n) { var a = document; n = n != undefined ? n : true; UI.EA(c, "mousedown", function (b) { f.start && f.start(b); if (n) if (c.setCapture) c.setCapture(); else window.captureEvents && window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP); if (f.drag) a.onmousemove = f.drag; a.onmouseup = function () { if (n) if (c.releaseCapture) c.releaseCapture(); else window.captureEvents && window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP); f.stop && f.stop(b); a.onmousemove = null; a.onmouseup = null; f.call && f.call(b) } }) }, animate: function (c, f, n, a, b, e) { b = b || 0.4; var g = f.hasString("scroll"), h = "height,width,marginLeft,marginTop".hasString(f), k, j = setInterval(function () { var l, o, m, q = f == "opacity"; l = h ? c.style[f] : g ? c[f] : UI.C(c, f); if (q) { l *= 100; n *= 100; if (n > 100) n = 100 } else g || (l = l == "auto" ? 0 : Number(l.slice(0, -2))); if (Math.abs(n - l) <= 3 || g && k == l) { l = n; clearInterval(j) } m = (n - l) * b; if (!q) if (m > 0 && m < 1) m = 1; else if (m < 0 && m > -1) m = -1; o = k = l + m; if (!q && (m < 0 && n - o > 0 || m > 0 && o - n > 0)) o = n; if (h) c.style[f] = o + "px"; else if (g) c[f] = parseInt(o); else UI.C(c, f, !q ? o + "px" : o / 100 + ""); if (l == n) if (UI.isString(a)) eval(a); else a && a() }, e || 40); return j }, getX: function (c) { return (c.offsetParent ? c.offsetLeft + UI.getX(c.offsetParent) : c.offsetLeft) + (UI.C(c, "position") == "fixed" ? UI.scrollX() : 0) }, getY: function (c) { return (c.offsetParent ? c.offsetTop + UI.getY(c.offsetParent) : c.offsetTop) + (UI.C(c, "position") == "fixed" ? UI.scrollY() : 0) }, within: function (c, f) { var n = UI.getX(f) - UI.scrollX(), a = UI.width(f) + n, b = UI.getY(f) - UI.scrollY(), e = UI.height(f) + b, g = {}; if (c[0] > n && c[0] < a && c[1] > b && c[1] < e) { if (c[0] - n < (a - n) / 2) g.left = true; if (c[1] - b < (e - b) / 2) g.top = true; return g } }, frameX: function (c) { return c.frameElement ? UI.getX(c.frameElement) + UI.frameX(c.parent) : 0 }, frameY: function (c) { return c.frameElement ? UI.getY(c.frameElement) + UI.frameY(c.parent) : 0 }, width: function (c) { return parseInt(c.offsetWidth) }, height: function (c) { return parseInt(c.offsetHeight) }, pageWidth: function () { return document.body.scrollWidth || document.documentElement.scrollWidth }, pageHeight: function () { return document.body.scrollHeight || document.documentElement.scrollHeight }, windowWidth: function () { var c = document.documentElement; return self.innerWidth || c && c.clientWidth || document.body.clientWidth }, windowHeight: function () { var c = document.documentElement; return self.innerHeight || c && c.clientHeight || document.body.clientHeight }, scrollX: function (c) { var f = document.documentElement; if (c) { var n = c.parentNode, a = c.scrollLeft || 0; if (c == f) a = UI.scrollX(); return n ? a + UI.scrollX(n) : a } return self.pageXOffset || f && f.scrollLeft || document.body.scrollLeft }, scrollY: function (c) { var f = document.documentElement; if (c) { var n = c.parentNode, a = c.scrollTop || 0; if (c == f) a = UI.scrollY(); return n ? a + UI.scrollY(n) : a } return self.pageYOffset || f && f.scrollTop || document.body.scrollTop }, scrollTo: function (c, f, n) { if (c == document.documentElement || c == document.body) return window.scrollTo(f, n) }, hide: function (c) { if (UI.isString(c)) c = this.G(c); if (c) { var f = this.C(c, "display"); if (f != "none") c.__curDisplay = f; c.style.display = "none" } }, show: function (c) { if (UI.isString(c)) c = this.G(c); if (c) c.style.display = c.__curDisplay || "" }, toggle: function (c) { if (UI.isString(c)) c = this.G(c); this.C(c, "display") == "none" ? this.show(c) : this.hide(c) }, hasClass: function (c, f) { if (!c || !c.className) return false; return c.className != c.className.replace(RegExp("\\b" + f + "\\b"), "") }, addClass: function (c, f) { if (c) if (c.className) if (this.hasClass(c, f)) return false; else c.className += " " + f; else c.className = f }, removeClass: function (c, f) { if (c) c.className = c.className.replace(RegExp("\\b" + f + "\\b"), "") }, toggleClass: function (c, f) { this.hasClass(c, f) ? this.removeClass(c, f) : this.addClass(c, f) }, next: function (c) { c = c.nextSibling; if (c == null) return false; return UI.isElement(c) ? c : this.next(c) }, prev: function (c) { c = c.previousSibling; if (c == null) return false; return UI.isElement(c) ? c : this.prev(c) }, remove: function (c) { c && c.parentNode && c.parentNode.removeChild(c) }, append: function (c, f) { f.appendChild(c) }, prepend: function (c, f) { var n = f.firstChild; n ? UI.before(c, n) : UI.append(c, f) }, after: function (c, f) { var n = f.parentNode; n.lastChild == c ? n.appendChild(c) : n.insertBefore(c, f.nextSibling) }, before: function (c, f) { f.parentNode.insertBefore(c, f) }, replace: function (c, f) { f.parentNode.replaceChild(c, f) }, tmpl: function () { var c = {}; return function f(n, a) { var b = !/\W/.test(n) ? c[n] = c[n] || f(UI.G(n).innerHTML) : UI.tmplString(n); return a ? b(a) : b } }(), tmplString: function (c) { return new Function("obj", "var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('" + c.replace(/[\r\t\n]/g, " ").split("<%").join("\t").replace(/((^|%>)[^\t]*)'/g, "$1\r").replace(/\t=(.*?)%>/g, "',$1,'").split("\t").join("');").split("%>").join("p.push('").split("\r").join("\\'") + "');}return p.join('');") }, html: function (c) { var f = UI.DC("div"), n = []; f.innerHTML = c; UI.each(f.childNodes, function (a) { n.push(a) }); return n }, css: function (c, f) { var n; if (!f) { f = UI.DC("style"); UI.A(f, "type", "text/css"); UI.append(f, UI.GT(document, "head")[0]) } if (f.styleSheet) f.styleSheet.cssText = c; else { n = document.createTextNode(c); UI.append(n, f) } }, text: function (c) { var f = []; c = c.childNodes; for (var n, a = 0, b = c.length; a < b; a++) { n = c[a].nodeName.toUpperCase(); n == "STYLE" || n == "SCRIPT" || f.push(c[a].nodeType != 1 ? c[a].nodeValue : UI.text(c[a])) } return f.join("") }, parent: function (c, f) { if (UI.isArray(c)) { var n = []; UI.each(c, function (a) { if (f && UI.hasClass(a.parentNode, f) || !f) n.push(a.parentNode) }); return n } return c.parentNode }, parents: function (c, f) { if (f) { var n = [], a = UI.parents(c); UI.each(a, function (b) { UI.hasClass(b, f) && n.push(b) }); return n } a = c.parentNode; return a.nodeName == "HTML" ? [a] : [a].concat(UI.parents(a)) }, children: function (c, f) { var n = []; if (f) f = f.split("|"); UI.each(c.childNodes, function (a) { var b = false; if (f) for (var e = 0, g = f.length; e < g; e++) if (UI.hasClass(a, f[e])) { b = true; break } if (UI.isElement(a) && (!f || b)) n.push(a) }); return n }, A: function (c, f, n) { if (n == undefined) return c.getAttribute(f); else n == "" ? c.removeAttribute(f) : c.setAttribute(f, n) }, C: function (c, f, n) { if (n == undefined) if (window.getComputedStyle) { f = f.replace(/([A-Z])/g, "-$1"); f = f.toLowerCase(); return window.getComputedStyle(c, null).getPropertyValue(f) } else { if (c.currentStyle) { if (f == "opacity") return c.style.filter.indexOf("opacity=") >= 0 ? parseFloat(c.style.filter.match(/opacity=([^)]*)/)[1]) / 100 : "1"; return c.currentStyle[f] } } else if (f == "opacity" && UI.B.ie && !UI.B.ie9) c.style.filter = (c.filter || "").replace(/alpha\([^)]*\)/, "") + "alpha(opacity=" + n * 100 + ")"; else c.style[f] = n }, DC: function (c) { return document.createElement(c) }, E: function (c) { if (c && c.clone) return c; c = window.event || c; return { clone: true, stop: function () { if (c && c.stopPropagation) c.stopPropagation(); else c.cancelBubble = true }, prevent: function () { if (c && c.preventDefault) c.preventDefault(); else c.returnValue = false }, target: c.target || c.srcElement, x: c.clientX || c.pageX, y: c.clientY || c.pageY, button: c.button, key: c.keyCode, shift: c.shiftKey, alt: c.altKey, ctrl: c.ctrlKey, type: c.type, wheel: c.wheelDelta / 120 || -c.detail / 3 } }, EA: function (c, f, n, a) { if (UI.isString(c)) { var b = n; n = function () { eval(b) } } if (c.addEventListener) { if (f == "mousewheel") f = "DOMMouseScroll"; c.addEventListener(f, n, a); return true } else return c.attachEvent ? c.attachEvent("on" + f, n) : false }, ER: function (c, f, n) { if (c.removeEventListener) { c.removeEventListener(f, n, false); return true } else return c.detachEvent ? c.detachEvent("on" + f, n) : false }, G: function (c) { return document.getElementById(c) }, GT: function (c, f) { return c.getElementsByTagName(f) }, GC: function () { function c(j, l) { if (!l) { l = j; j = document } j = j || document; if (!/^[\w\-_#]+$/.test(l) && j.querySelectorAll) return f(j.querySelectorAll(l)); if (l.indexOf(",") > -1) { for (var o = l.split(/,/g), m = [], q = 0, p = o.length; q < p; ++q) m = m.concat(c(j, o[q])); return k(m) } o = l.match(a); p = o.pop(); m = (p.match(e) || h)[1]; var r = !m && (p.match(b) || h)[1]; q = p.split(".").slice(2); p = !m && (p.match(g) || h)[1]; if (r && !p && j.getElementsByClassName) p = f(j.getElementsByClassName(r)); else { p = !m && f(j.getElementsByTagName(p || "*")); if (r) { r = RegExp("(^|\\s)" + r + "(\\s|$)"); var s = -1, u, x = -1, w = []; for (q = q || ""; u = p[++s];) if (r.test(u.className) && u.className.hasString(q)) w[++x] = u; p = w } if (m) return (o = j.getElementById(m)) ? [o] : [] } return o[0] && p[0] ? n(o, p) : p } function f(j) { try { return Array.prototype.slice.call(j) } catch (l) { for (var o = [], m = 0, q = j.length; m < q; ++m) o[m] = j[m]; return o } } function n(j, l, o) { var m = j.pop(); if (m === ">") return n(j, l, true); var q = [], p = -1, r = (m.match(e) || h)[1], s = !r && (m.match(b) || h)[1]; m = !r && (m.match(g) || h)[1]; var u = -1, x, w, y; for (m = m && m.toLowerCase(); x = l[++u];) { w = x.parentNode; do { y = (y = (y = !m || m === "*" || m === w.nodeName.toLowerCase()) && (!r || w.id === r)) && (!s || RegExp("(^|\\s)" + s + "(\\s|$)").test(w.className)); if (o || y) break } while (w = w.parentNode); if (y) q[++p] = x } return j[0] && q[0] ? n(j, q) : q } var a = /(?:[\w\-\\.#]+)+(?:\[\w+?=([\'"])?(?:\\\1|.)+?\1\])?|\*|>/ig, b = /^(?:[\w\-_]+)?\.([\w\-_]+)/, e = /^(?:[\w\-_]+)?#([\w\-_]+)/, g = /^([\w\*\-_]+)/, h = [null, null], k = function () { var j = +new Date, l = function () { var o = 1; return function (m) { var q = m[j], p = o++; if (!q) { m[j] = p; return true } return false } }(); return function (o) { for (var m = o.length, q = [], p = -1, r = 0, s; r < m; ++r) { s = o[r]; if (l(s)) q[++p] = s } j += 1; return q } }(); return c }(), isDate: function (c) { return this.getType(c) == "Date" }, cloneDate: function (c) { if (!c) return c; d = new Date; d.setTime(c.getTime()); return d }, formatDate: function (c, f) { for (var n = f.replace(/\W/g, ",").split(","), a = ["yyyy", "MM", "dd", "hh", "mm", "ss", "ww"], b = { y: c.getFullYear(), M: c.getMonth() + 1, d: c.getDate(), h: c.getHours(), m: c.getMinutes(), s: c.getSeconds(), w: c.getDay() }, e = 0, g = n.length; e < g; e++) for (var h = n[e], k = 0; k < 7; k++) { var j = a[k].slice(-1); if (h.hasString(j)) { if (j == "w" && b[j] == 0) b[j] = 7; f = h.hasString(a[k]) ? f.replace(RegExp(a[k], "g"), this.addZero(b[j])) : f.replace(RegExp(a[k].slice(a[k].length / 2), "g"), b[j]) } } return f }, parseDate: function (c, f) { f || (f = "yyyy-MM-dd"); f = f.replace(/\W/g, ",").split(","); c = c.replace(/\D/g, ",").split(","); var n = 2E3, a = 0, b = 1, e = 0, g = 0, h = 0; UI.each(f, function (k, j) { if (c[j] != "" && !isNaN(c[j])) { if (k.hasString("y")) n = Number(c[j]); if (k.hasString("M")) a = Number(c[j]) - 1; if (k.hasString("d")) b = Number(c[j]); if (k.hasString("h")) e = Number(c[j]); if (k.hasString("m")) g = Number(c[j]); if (k.hasString("s")) h = Number(c[j]); if (k.hasString("w")) h = Number(c[j]) } }); return new Date(n, a, b, e, g, h) }, zoneDate: function (c, f) { var n = new Date(Number(c)); n = n.getTime() + n.getTimezoneOffset() * 6E4; return new Date(n + 36E5 * f) }, isObject: function (c) { return typeof c == "object" }, isElement: function (c) { return c && c.nodeType == 1 }, isUndefined: function (c) { return typeof c == "undefined" }, isFunction: function (c) { return this.getType(c) == "Function" }, isNumber: function (c) { return this.getType(c) == "Number" }, isString: function (c) { return this.getType(c) == "String" }, isArray: function (c) { return this.getType(c) == "Array" }, getType: function (c) { return Object.prototype.toString.call(c).slice(8, -1) }, addZero: function (c, f) { f || (f = 2); return Array(Math.abs(("" + c).length - (f + 1))).join(0) + c }, trim: function (c) { return c.replace(/^\s+|\s+$/g, "") }, random: function (c, f) { if (c == undefined) c = 0; if (f == undefined) f = 9; return Math.floor(Math.random() * (f - c + 1) + c) }, has: function (c, f) { for (var n = 0, a = c.length; n < a; n++) if (c[n] == f) return true; return false }, each: function (c, f) { if (UI.isUndefined(c[0])) for (var n in c) UI.isFunction(c[n]) || f(n, c[n]); else { n = 0; for (var a = c.length; n < a; n++) UI.isFunction(c[n]) || f(c[n], n) } }, merge: function (c, f) { var n = []; if (f) { UI.each(f, function (a) { UI.has(c, a) || n.push(a) }); return c.concat(n) } else { UI.each(c, function (a) { UI.has(n, a) || n.push(a) }); return n } }, ready: function (c) { if (UI.ready.done) return c(); if (UI.isReady.done) UI.readyDo.push(c); else { UI.readyDo = [c]; UI.isReady() } }, readyDo: [], isReady: function () { if (!UI.isReady.done) { UI.isReady.done = true; if (document.readyState == "complete") UI.onReady(); else if (document.addEventListener) document.addEventListener("DOMContentLoaded", function () { document.removeEventListener("DOMContentLoaded", arguments.callee, false); UI.onReady() }, false); else if (document.attachEvent) { var c = top != self; if (c) document.attachEvent("onreadystatechange", function () { if (document.readyState === "complete") { document.detachEvent("onreadystatechange", arguments.callee); UI.onReady() } }); else document.documentElement.doScroll && !c && function () { if (!UI.ready.done) { try { document.documentElement.doScroll("left") } catch (f) { setTimeout(arguments.callee, 0); return } UI.onReady() } }() } UI.EA(window, "load", UI.onReady) } }, onReady: function () { if (!UI.ready.done) { UI.ready.done = true; for (var c = 0, f = UI.readyDo.length; c < f; c++) try { UI.readyDo[c]() } catch (n) {} UI.readyDo = null } }, B: function () { var c = {}, f = navigator.userAgent; c.win = f.hasString("Windows") || f.hasString("Win32"); c.ie6 = f.hasString("MSIE 6") && !f.hasString("MSIE 7") && !f.hasString("MSIE 8"); c.ie8 = f.hasString("MSIE 8"); c.ie9 = f.hasString("MSIE 9"); c.ie = f.hasString("MSIE"); c.opera = window.opera || f.hasString("Opera"); c.safari = f.hasString("WebKit"); c.ipad = f.hasString("iPad"); c.mac = f.hasString("Mac"); c.firefox = f.hasString("Firefox"); return c }() }; UI.B.ie && document.execCommand("BackgroundImageCache", false, true); (function () { var c = UI.G, f = UI.GC; if (!(window.MIApp && !window.MIApp.lib)) { window.$ = UI.G; window.$$ = UI.GC } if (!window._) window._ = function (a) { if (arguments.length == 1) return a; var b = Array.prototype.slice.call(arguments, 1); return a.replace(/\{(\d+)\}/g, function (e, g) { return b[g] }) }; onerror = function (a, b, e) { if (!MI.user.isLab) { var g = encodeURIComponent(document.location.href) + ","; if (e) g += e + ","; if (a) g += a + ","; if (b) g += b + ","; g += window.navigator.userAgent; MI.Bos("btnOnerror", encodeURIComponent(g)); return true } }; try { document.domain = "qq.com" } catch (n) {} MI = { time: null, user: { fun: {} }, string: { length: function (a) { var b = a.match(/[^\x00-\x80]/g); return a.length + (b ? b.length : 0) }, escape: function (a) { return MI.string.html(a).replace(/'/g, "\\'") }, escapeReg: function (a) { for (var b = [], e = 0; e < a.length; e++) { var g = a.charAt(e); switch (g) { case ".": case "$": case "^": case "{": case "[": case "(": case "|": case ")": case "*": case "+": case "?": case "\\": b.push("\\x" + g.charCodeAt(0).toString(16).toUpperCase()); break; default: b.push(g) } } return b.join("") }, html: function (a) { return a.replace(/</g, "<").replace(/>/g, ">") }, cut: function (a, b, e) { e = UI.isUndefined(e) ? "..." : e; var g = [], h = ""; if (MI.string.length(a) > b) { a = a.split(""); h = 0; for (var k = a.length; h < k; h++) if (b > 0) { g.push(a[h]); b -= MI.string.length(a[h]) } else break; h = g.join("") + e } else h = a; return h }, id: function (a) { return (a = a.match(/[^\/]+$/g)) && a[0] ? a[0].replace("#M", "") : "" }, account: function (a) { return (a = a.match(/@[^@]+$/g)) && a[0] ? a[0].slice(1, -1) : "" } }, number: { format: function (a) { return (a + "").replace(/(?=(?!\b)(?:\w{3})+$)/g, ",") } }, random: function (a) { return parseInt((new Date).getTime() / (a || 1)) }, drop: {}, delay: {}, validate: {}, canvas: {}, focus: function (a) { var b = a.value.length; a.focus(); MI.selectTxt(a, b, b, b) }, blur: function () { this.blur() }, click: function () { return false }, hideFocus: function () { UI.A(this, "hideFocus", "true"); this.onmouseover = null }, boss: null, ajax: 0, talkNew: [], talkMore: [], crs: [], lazy: {}, json: function (a) { var b = {}; try { b = eval("(" + a + ")") } catch (e) {} return b }, music: { info: "", state: null, box: "" }, tmpl: { picTool: '<div class="tools"><a href="#" class="btnBack"><em></em>' + _("向左转") + '</a><span& gt;|</span><a href="#" class="btnPrev"><em></em>' + _("向右转") + '</a><a href="$Url/2000" class="btnOriginal" οnclick="MI.Bos(\'btnPicSource\')" target="_blank">' + _("查看原图") + "</a></div>", reply: '<div class="talkWrap"><div class="SA"><em>◆</em><span>◆</span></div>\t<div class="top"><span class="left"><span class="number cNote"></span><span class="replyTitle"></span><span class="addReply"></span></span><a href="#" class="close" title="' + _("关闭") + '">' + _("关闭") + '</a>\t</div>\t<iframe class="comts" src="about:blank" frameborder="0" scrolling="no" style="height:0"></iframe>\t<div class="cont"><textarea class="inputTxt"></textarea></div>\t<div class="bot"><div class="insertFun"><div class="newTopic"><a href="#" class="creatNew" title="' + _("汇聚相同热点的广播") + '" tabindex="3">' + _("话题") + '</a></div><div class="atSome"><span class="ico_at"></span><a class="txt" href="#" title="' + _("@朋友帐号就可以提到他") + '">' + _("朋友") + '</a></div><div class="insertFace"><span class="ico_face"></span><a class="txt" href="#" title="' + _("表情") + '">' + _("表情") + '</a></div></div>< div class="left"></div><input type="button" class="inputBtn sendBtn" value="" /><a hrer="#" class="autoBackspace" style="display:none">[自动缩减]</a><span class="countTxt"></span>\t</div>\t<div class="talkSuc" style="display:none"><span class="ico_tsW"><span class="ico_ts"></span></span><span class="msg"></span></div></div>' }, selectTxt: function (a, b, e) { if (document.createRange) a.setSelectionRange(b, e); else { a = a.createTextRange(); a.collapse(1); a.moveStart("character", b); a.moveEnd("character", e - b); a.select() } }, insertTxt: function (a, b, e, g) { if (g == undefined) g = 0; a.focus(); if (document.selection) { a = document.selection.createRange(); a.moveStart("character", -g); a.text = b } else { var h = a.value, k = e + b.length - g; a.value = h.substring(0, e - g) + b + h.substring(e, h.length); MI.selectTxt(a, k, k, k) } }, cursorX: function (a) { if (document.selection) { var b = document.selection.createRange(), e = 0; b.moveStart("character", -a.value.length); a = b.text.split(""); return e = a[a.length - 1].replace(/\r/g, "").length } else return a.selectionStart }, countNum: function (a, b, e) { if (!(!a || a.innerHTML.hasString(_("超过")))) { var g = a.innerHTML.replace(/\D/g, "") || 0; g = e ? MI.number.format(parseInt(g.replace(/,/g, "")) + b) : parseInt(g) + b; a.innerHTML = g < 0 ? 0 : g } }, countTxt: function (a, b) { var e = MI.string.length(a), g, h = 0, k = 0, j = a.match(RegExp(" ((news|telnet|nttp|file|http|ftp|https)://){1}(([-A-Za-z0-9]+(\\.[-A-Za- z0-9]+)*(\\.[-A-Za-z]{2,5}))|([0-9]{1,3}(\\.[0-9]{1,3}){3}))(:[0-9]*)? (/[-A-Za-z0-9_\\$\\.\\+\\!\\*\\(\\),;:@&=\\?/~\\#\\%]*)*", "gi")) || []; if (e < 500) { b && UI.each(j, function (l) { a = a.replace(l, "_"); k++; g = l.length; if (g > 256) h += g - 256 }); e = Math.ceil((MI.string.length(UI.trim(a).replace(RegExp(_("#输入话题标题#"), "g"), "")) + k * 20 + h) / 2) } return e }, fC: { numFormat: [], num: [] }, follow: function (a, b, e, g) { if (!MI.fC.init) { MI.fC.numFormat = f(".followNumFormat"); MI.fC.num = f(".followNum"); MI.fC.init = 1 }(function () { if (!b.sending) { var h = -1, k; k = b.className; var j = c("followedNum_" + a), l = c("followNum_" + a), o = k != "addAttention" && k != "delAttention"; if (k == "addAttention" || o) { h = 1; k = "/follow.php" } else k = "/unfollow.php"; b.sending = 1; var m, q, p, r; m = +new Date; UI.ajax({ url: k, data: { u: a, r: MI.random(), veriCode: g || "" }, success: function (s) { q = +new Date - m; b.sending = 0; s = MI.json(s); if (s.result == 0) { if (!o) b.className = h == 1 ? "delAttention" : "addAttention"; j && MI.countNum(j, h); l && MI.countNum(l, h); for (var u = 0, x = MI.fC.numFormat.length; u < x; u++) MI.countNum(MI.fC.numFormat[u], h, 1); u = 0; for (x = MI.fC.num.length; u < x; u++) UI.A(MI.fC.num[u], "rel") == a && MI.countNum(MI.fC.num[u], h); if (!UI.isUndefined(s.followTips)) MI.user.fun.followList = s.followTips; if (MI.user.fun.followList && s.info && h == 1 && amp; !a.hasString(",")) MI.Tag && MI.Tag.sayHiStorage() == "" || MI.app({ List: function () { MI.List.listFollow(a) } }); e && e(h); b.value = h == 1 ? _("取消收听") : _("收听"); h == 1 && MI.S("time", 0) } else if (MI.code.check(s.result)) MI.code.show({ msg: s.msg, code: s.info, call: function (w) { MI.follow(a, b, e, w) } }); else s.msg && MI.alert(s.msg); p = +new Date - m; setTimeout(function () { r = +new Date - m; MI.Speed("t_asyn_follow", 0.1, q, p, r) }, 0) } }) } })() }, sFollowTip: [_("添加到特别收听"), _("取消特别收听")], topic: function (a, b, e) { if (!b.sending) { var g = e || UI.hasClass(b, "delAttention"), h = g ? "2" : "1", k = c("gzTopic"); k && UI.A(k, "tab", 2); UI.ajax({ url: "/asyn/topic.php", data: { tid: a, type: h, r: MI.random() }, success: function (j) { j = MI.json(j); if (j.result == 0) { if (e) { var l = b.parentNode; UI.animate(l, "opacity", 0, function () { UI.remove(l); MI.updateTopic() }) } else { b.className = g ? "addAttention" : "delAttention"; b.value = g ? _("收听") : _("取消收听"); MI.updateTopic() } MI.countNum(c("followedNum_" + a), g ? -1 : 1) } else MI.alert(j.msg); b.sending = 0 } }) } b.sending = 1 }, topicDel: function (a, b) { MI.topic(a, b, 1) }, topicOp: function (a, b, e) { if (b) { if (!b.sending) { var g = e || UI.A(b, "fo") == "1", h = c("gzTopic"); h && UI.A(h, "tab", 3); UI.ajax({ url: "/asyn/messageSearch.php", data: { type: g ? 3 : 2, name: a, r: MI.random() }, success: function (k) { k = MI.json(k); if (k.result == 0) if (e) { var j = b.parentNode; UI.animate(j, "opacity", 0, function () { UI.remove(j); MI.updateTopic() }) } else { b.innerHTML = g ? "+" + _("订阅关键词") : "-" + _("取消订阅"); UI.A(b, "fo", g ? "0" : "1"); MI.updateTopic() } b.sending = 0 } }) } b.sending = 1 } }, updateTopic: function (a, b) { if (a = a || c("gzTopic")) { var e = a.unfold || 0, g = UI.A(a, "tab"); if (b) e = e ? 0 : 1; var h = "t=topic&unfold=" + e + "&r=" + MI.random(); if (g) h += "&tab=" + g; UI.get("/asyn/mysidebar.php", h, function (k) { k = MI.json(k); if (k.result == 0) { if (k.info && k.info.topic) { if (b) a.unfold = e; a.innerHTML = k.info.topic; UI.evalScript(k.info.topic) } MI.Load.bottom() } }); if (b) MI.Bos(e ? "btnMoreSub" : "btnLessSub") } }, newCount: function (a, b, e) { function g() { var j = { type: a }; if (k < 6) { if (MI.newCount.data) { for (var l in MI.newCount.data) j[l] = MI.newCount.data[l]; if (MI.talkList && MI.talkList.first && MI.talkList.first.id && !MI.newCount.data.id) { j.id = MI.talkList.first.id; j.time = MI.talkList.first.time } } var o, m, q; o = +new Date; if (MI.user.fun.newCount) { j.cb = "MI.newCountShow"; h = "http://t.qq.com" + h; var p = []; for (l in j) p.push(l + "=" + j[l]); h.hasString("?") || (h += "?"); UI.getScript(h + p.join("&"), function () { m = +new Date - o; setTimeout(function () { q = +new Date - o; MI.Speed("t_asyn_newmsg", 0.02, void 0, m, q) }, 0) }, "utf-8") } else UI.get(h, j, function (r) { r = MI.json(r); MI.newCountShow(r); m = +new Date - o; setTimeout(function () { q = +new Date - o; MI.Speed("t_asyn_newmsg", 0.02, void 0, m, q) }, 0) }) } } a = a || "4,3,2,1"; var h = "/asyn/newMsgCount.php"; if (b && typeof b == "string") h = b; b = 3E4; if (e && typeof e == "number") b = e * 1E3; setInterval(g, b); setTimeout(function () { g() }, 10); var k = 0; MI.newCountShow = function (j) { if (j.result == 0) { var l, o, m, q, p; UI.each(j.info, function (r) { o = r.value; if (r.type == 1) if ((l = c("newCountFollower")) && o) { var s = l.firstChild; c("followerNum"); m = 999; s.innerHTML = o > m ? m + "+" : "+" + o; s.title = _("有{0}个新听众", o > m ? _("超过") + m : o); UI.addClass(UI.next(s), "bubble"); UI.show(l) } else l && UI.hide(l); if (r.type == 8) if ((l = c("newListonNum")) && o) { s = l.firstChild; m = 999; s.innerHTML = o > m ? m + "+" : "+" + o; s.title = _("有{0}个新名单收录你", o > m ? _("超过") + m : o); UI.addClass(UI.next(s), "bubble"); UI.show(l) } else l && UI.hide(l); if (r.type == 2) if (l = c("newCoutMsg")) l.innerHTML = l & amp; & o ? " (" + o + ")" : ""; if ((r.type == 3 || r.type == 5 || r.type == 6 || r.type == 7 || r.type == 16 || r.type == 32) & amp; & !MI.noNewCount) if (MI.talkList && MI.talkList._new) { m = 5E4; if (r.type == 6 || r.type == 7) m = 100; if (r.type == 16) m = 30; q = o >= m ? _("超过< strong>{0}</strong>条的", m) : _("<strong>{0}</strong> 条", o); p = MI.talkList._new; p.innerHTML = '<a href="javascript:void(0)" tabindex="4">' + _("约{0}新广播,点击查看", q) + "</a>"; if (!document.titleTmp) document.titleTmp = document.title; document.title = o > m ? "(" + m + "+) " + document.titleTmp : (o ? "(" + o + ") " : "") + document.titleTmp; if (o) p.style.display = "block"; else UI.hide(p); if (p.num != o) { UI.C(p, "opacity", 0); UI.animate(p, "opacity", 1) } p.num = o } if (r.type == 4) { l = c("newCoutAt"); if (UI.isArray(o)) o = o[0]; if (l) l.innerHTML = l && o ? "(" + o + ")" : "" } if (r.type == 13) if (l = c("newCoutAt")) l.innerHTML = l && o ? "(" + o + ")" : "" }); k = 0 } else j.result == -1 && k++ } }, addHover: function (a) { var b, e; a.onmouseover = function () { var g = this; clearTimeout(e); b = setTimeout(function () { UI.B.ie6 && UI.addClass(g, "hover") }, 20) }; a.onmouseout = function () { var g = this; clearTimeout(b); e = setTimeout(function () { UI.removeClass(g, "hover"); UI.removeClass(g, "newMsg") }, 20) } }, bottom: function (a) { if (c(a)) { var b = f(".main .LC"), e = UI.parents(c(a), "main")[0], g, h = 0; if (e) g = e.parentNode; b.length || (b = f(".LC")); if ((b = b[b.length - 1]) && UI.height(c(a))) { UI.C(b, "marginBottom", 0); if (e) h = UI.height(e) - UI.height(g); else { g = c("mainWrapper"); UI.each(g.childNodes, function (k) { if (k.nodeType == 1) h += UI.height(k) }); h -= UI.height(g) } UI.C(b, "marginBottom", h < -1 ? -h + "px" : "") } } }, goHome: function () { document.location.href = "/" + MI.user.account }, reply: function (a, b, e) { MI.app({ Base: function () { MI.card.chName = a; MI.card.bkname = MI.card.name = b; MI.card._reply.onclick(); MI.card.reply.talkBox._txt.value = e || "" } }) }, chat: function (a, b, e) { MI.app({ WebQQ: function () { MI.WebQQ.chat(a, b, e) } }) }, recom: function (a, b) { MI.app({ Base: function () { MI.card.account = a; MI.card.bkname = MI.card.name = b; MI.card._recom.onclick() } }) }, message: function (a, b) { MI.app({ Base: function () { if (MI.user.fun.msgLab) MI.pmcompose(a, 3); else { MI.card.chName = a; MI.card._msg.onclick(); MI.card.msg.talkBox._txt.value = b || "" } } }) }, report: function (a) { a && a.match(/[^\d]/g) ? jubao_user(a) : jubao_msg(a) }, alert: function (a, b) { a && MI.dialog.alert(a, b) }, tip: function (a, b) { a && MI.dialog.showTip({ html: a, end: b }) }, picError: function (a) { var b = a.src; if (b.hasString("qlogo.cn") || b.hasString("qpic.cn")) a.src = b.replace(/\/t[\d]/, "/tb"); MI.Bos("btnOnerrorPic"); a.onerror = null }, version: function () { var a = { ui: { DatePicker: "110303", ColorPicker: "110107" }, mi: { Base: "110519", City: "110406", CityAll: "110406", Validate: "110508", ValidateNew: "110517", RelateSelect: "110407", Slide: "110402", College: "110422", Theme: "110307", Tag: "110422", List: "110519a", SettingEdu: "110307", SettingWork: "110518", TalkListUpdate: "110505", Scroll: "101111", Capture: "110307", Music: "110513", QQMusicInstance: "110406a", QQMusicPlayer: "110307", QQMusicWmpPlayer: "110406a",