Advertisement
quark_zju

js.tudouui.com/js/page/index/v2/userInfo_27.js

Mar 1st, 2012
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * @modified $Author: feigao $
  3.  * @version $Rev: 21738 $
  4.  * @path STATIC/js/page/index/v2/userInfo.js
  5.  */
  6. TUI.ns("TUI.accessor", function (f) {
  7.     f = f || {};
  8.     var e = f.data || {},
  9.         d = f.event || new TUI.eventClass(),
  10.         c, g = f.set ||
  11.     function (i, h) {
  12.         return e[i] = h
  13.     }, b = f.get ||
  14.     function (h) {
  15.         return e[h]
  16.     };
  17.  
  18.     function a() {
  19.         e = {};
  20.         if (f.data) {
  21.             f.data = e
  22.         }
  23.     }
  24.     return TUI.mix(function (i, h, l) {
  25.         if (i === undefined) {
  26.             return e
  27.         }
  28.         if (h === undefined) {
  29.             if (typeof i != "object") {
  30.                 return b.call(e, i)
  31.             } else {
  32.                 for (var j in i) {
  33.                     g.call(e, j, i[j], l)
  34.                 }
  35.                 return arguments.callee
  36.             }
  37.         }
  38.         g.call(e, i, h, l);
  39.         return h
  40.     }, {
  41.         event: d,
  42.         clear: a,
  43.         mix: function (i, h) {
  44.             if ($.type(i) == "array") {
  45.                 i.forEach(function (j) {
  46.                     e[j[h]] = j
  47.                 })
  48.             } else {
  49.                 TUI.mix(e, i || {})
  50.             }
  51.         },
  52.         each: function (h) {
  53.             for (var i in e) {
  54.                 h(i, e[i])
  55.             }
  56.         }
  57.     })
  58. });
  59. TUI.ns("TUI.accessorUtils", {
  60.     setterMixObj: function (b, a, e) {
  61.         if (TUI.isPlainObject(this[b]) && TUI.isPlainObject(a)) {
  62.             var d = this[b];
  63.             for (var c in a) {
  64.                 d[c] = a[c]
  65.             }
  66.         } else {
  67.             this[b] = a
  68.         }
  69.     }
  70. });
  71. (function (d) {
  72.     var f = d.footprint;
  73.  
  74.     function e(p, o) {
  75.         if (p === undefined) {
  76.             p = this.handler
  77.         }
  78.         var l = this;
  79.         if (d.isPlainObject(p)) {
  80.             $.each(p, function (r, q) {
  81.                 e.call(l, r, q)
  82.             })
  83.         } else {
  84.             if (/\s/.test(p)) {
  85.                 var j = p.match(/^([^\s]+)\s(.+)/),
  86.                     k;
  87.                 if (j[1].indexOf("@") == 0) {
  88.                     if (j[1] != "@PRT") {
  89.                         k = l.delegate(j[1]) || l.delegate(l.element[j[1].slice(1)] || false)
  90.                     } else {
  91.                         k = l.parent && l.parent.subDelegate
  92.                     }
  93.                     if (k) {
  94.                         k.bind(j[2], o)
  95.                     }
  96.                 } else {
  97.                     (l.el(j[2]) || $(j[2]))[j[1]](o)
  98.                 }
  99.             } else {
  100.                 var n = p.split(","),
  101.                     m = $.type(o) == "array" ? o : [o];
  102.                 n.forEach(function (r) {
  103.                     var q;
  104.                     if (r.indexOf("~") == -1) {
  105.                         q = l.event
  106.                     } else {
  107.                         var s = r.split("~");
  108.                         r = s[1];
  109.                         q = l.com(s[0]).event
  110.                     }
  111.                     m.forEach(function (t) {
  112.                         q.bind(r, t)
  113.                     })
  114.                 })
  115.             }
  116.         }
  117.         return this
  118.     }
  119.     function b(j, k) {
  120.         if (typeof j !== "string") {
  121.             return false
  122.         }
  123.         k = k || "click";
  124.         this.delegate("@" + j, d.eventProxy(j, k));
  125.         return this
  126.     }
  127.     function a(l) {
  128.         var k, j;
  129.         l = l || this.element;
  130.         for (k in l) {
  131.             j = l[k];
  132.             if (!j) {
  133.                 throw new Error("invalid element: " + k + " " + j)
  134.             }
  135.             if (j.charAt(0) == "@") {
  136.                 j = j.slice(1);
  137.                 this.addDelegate(j)
  138.             }
  139.             this.el(k, j)
  140.         }
  141.         return this
  142.     }
  143.     function g(l, k, m) {
  144.         var j = this;
  145.         if (d.isPlainObject(l)) {
  146.             $.each(l, function (p, o) {
  147.                 j.component(p, o);
  148.                 o.parent = j
  149.             })
  150.         } else {
  151.             j.component(l, k);
  152.             for (var n in m) {
  153.                 if (n.indexOf("~") == 0) {
  154.                     m[l + n] = m[n];
  155.                     delete m[n]
  156.                 }
  157.             }
  158.             $.extend(j.handler, m || {});
  159.             k.parent = j
  160.         }
  161.         return this
  162.     }
  163.     function i(l, j) {
  164.         return this[l] = $(j)
  165.     }
  166.     function c(j) {
  167.         var k = $.extend({}, this.setupConfig, j || {});
  168.         if (k.beforeSetup() === false) {
  169.             return
  170.         }
  171.         if (k.ui) {
  172.             this.setupUI()
  173.         }
  174.         if (k.bind) {
  175.             this.bind()
  176.         }
  177.         if (k.sub) {
  178.             this.com.each(function (l, m) {
  179.                 m.setup()
  180.             })
  181.         }
  182.         k.afterSetup();
  183.         return this
  184.     }
  185.     function h() {
  186.         return this
  187.     }
  188.     d.ns("TUI.app", function (k) {
  189.         k = k || {};
  190.         var j = $.extend({
  191.             mix: $.extend,
  192.             parent: null,
  193.             component: d.accessor(),
  194.             event: new d.eventClass(),
  195.             db: {},
  196.             model: {},
  197.             templating: {},
  198.             delegate: d.accessor(),
  199.             subDelegate: null,
  200.             el: d.accessor({
  201.                 set: i
  202.             }),
  203.             element: {},
  204.             handler: {},
  205.             bind: e,
  206.             addDelegate: b,
  207.             addComponent: g,
  208.             setupUI: a,
  209.             setup: c,
  210.             setupConfig: {
  211.                 beforeSetup: function () {},
  212.                 afterSetup: function () {},
  213.                 ui: true,
  214.                 bind: true,
  215.                 sub: true
  216.             },
  217.             teardown: h,
  218.             config: d.accessor()
  219.         }, k || {});
  220.         $.extend(j.setupConfig, k.setupConfig || {});
  221.         j.com = j.component;
  222.         j.addCom = j.addComponent;
  223.         j.$ = j.setupUI;
  224.         if (k.beforeSetup) {
  225.             j.setupConfig.beforeSetup = k.beforeSetup
  226.         }
  227.         if (k.afterSetup) {
  228.             j.setupConfig.afterSetup = k.afterSetup
  229.         }
  230.         return j
  231.     });
  232.     d.ns("TUI.mixAppConfig", function (j, l, k) {
  233.         return $.extend(true, {}, j || {}, l || {}, k)
  234.     })
  235. })(TUI);
  236. TUI.K = function (a) {
  237.     return a
  238. };
  239. TUI.emptyFunction = function () {};
  240. TUI.ns("TUI.Model", {
  241.     create: function (a) {
  242.         return function () {
  243.             var b = a.apply(null, $.makeArray(arguments));
  244.             a = TUI.emptyFunction;
  245.             return b
  246.         }
  247.     },
  248.     data: function (d, a) {
  249.         var b = d || {};
  250.  
  251.         function c(e, f) {
  252.             if (!e) {
  253.                 return b
  254.             }
  255.             if (typeof e == "object") {
  256.                 for (var g in e) {
  257.                     c(g, e[g])
  258.                 }
  259.                 return
  260.             }
  261.             if (a && !e in b) {
  262.                 throw "member not exsits: " + e
  263.             }
  264.             return f === undefined ? b[e] : b[e] = f
  265.         }
  266.         return c
  267.     }
  268. });
  269. TUI.ns("TUI.templating", function (i, h, d) {
  270.     var c = typeof h == "string" ?
  271.     function () {
  272.         return h
  273.     } : h;
  274.     var b = TUI.accessor(),
  275.         j;
  276.  
  277.     function e(l, k) {
  278.         if (k) {
  279.             return TUI.convertTpl(c(l), $.extend({}, i(l), {
  280.                 OPTION: k
  281.             }))
  282.         } else {
  283.             return TUI.convertTpl(c(l), $.extend(i(l), {
  284.                 OPTION: {}
  285.             }))
  286.         }
  287.     }
  288.     function a(l, k) {
  289.         if (k) {
  290.             return e(l, k)
  291.         }
  292.         return b(l) || b(l, e(l))
  293.     }
  294.     function g() {
  295.         b.clear()
  296.     }
  297.     function f() {
  298.         g();
  299.         for (var k in i()) {
  300.             b(k, e(k))
  301.         }
  302.     }
  303.     j = {
  304.         render: a,
  305.         flush: g,
  306.         refresh: f
  307.     };
  308.     return j
  309. });
  310. TUI.ns("TUI.Model.common", {
  311.     getProgramUrl: function (a) {
  312.         return main_domain + "/programs/view/" + a + "/"
  313.     },
  314.     getPlaylistUrl: function (c, f) {
  315.         if (!c) {
  316.             return ""
  317.         }
  318.         var a = main_domain + (c != -1 ? "/playlist/p/l<%=lid%><%=iid%>.html<%=params%>" : "/playlist/play/quicklist.html<%=params%>"),
  319.             b = {
  320.                 lid: c
  321.             },
  322.             d, e;
  323.         if (TUI.isPlainObject(f)) {
  324.             d = f.iid;
  325.             delete f.iid
  326.         } else {
  327.             d = f
  328.         }
  329.         if (d && c != -1) {
  330.             b.iid = "i" + d
  331.         }
  332.         e = $.param(f || {});
  333.         if (e) {
  334.             b.params = "?" + e
  335.         }
  336.         return TUI.renderTpl(a, b)
  337.     },
  338.     getPlayalbumUrl: function (c, f) {
  339.         if (!c) {
  340.             return ""
  341.         }
  342.         var a = main_domain + "/playlist/p/a<%=aid%><%=iid%>.html<%=params%>",
  343.             b = {
  344.                 aid: c
  345.             },
  346.             d, e;
  347.         if (TUI.isPlainObject(f)) {
  348.             d = f.iid;
  349.             delete f.iid
  350.         } else {
  351.             d = f
  352.         }
  353.         if (d) {
  354.             b.iid = "i" + d
  355.         }
  356.         e = $.param(f || {});
  357.         if (e) {
  358.             b.params = "?" + e
  359.         }
  360.         return TUI.renderTpl(a, b)
  361.     },
  362.     getUserHomeUrl: function (a) {
  363.         return main_domain + "/home/" + a
  364.     },
  365.     parseUrl: function (b) {
  366.         var a = b.match(/programs\/view\/([\w-]{11})\/?/);
  367.         if (a) {
  368.             return {
  369.                 type: "program",
  370.                 code: a[1]
  371.             }
  372.         }
  373.         a = b.match(/playlist\/p\/l(\d+)(i(\d+)){0,1}\.html/);
  374.         if (a) {
  375.             return {
  376.                 type: "playlist",
  377.                 lid: a[1],
  378.                 iid: a[3]
  379.             }
  380.         }
  381.         a = b.match(/playlist\/p\/a(\d+)(i(\d+)){0,1}\.html/);
  382.         if (a) {
  383.             return {
  384.                 type: "album",
  385.                 aid: a[1],
  386.                 iid: a[3]
  387.             }
  388.         }
  389.         return {
  390.             type: "",
  391.             code: ""
  392.         }
  393.     }
  394. });
  395. var parseAt = (function () {
  396.     var c = TUI.escapeHTML;
  397.  
  398.     function a(e, f) {
  399.         return e.replace(/@(\d+)(\s|$|:|:)/g, function (h, g, j) {
  400.             var i = f(g);
  401.             if (!i) {
  402.                 return h
  403.             }
  404.             return '<a class="atUser" uid="' + g + '" href="' + main_domain + "/home/tui/u" + i.id + 't1.html" target="_blank">@' + c(i.nic) + "</a>" + j
  405.         }).replace(/([^>]|^)(@[^\s::]+)/g, function (i, h, j) {
  406.             var g = j.substr(1);
  407.             return h + '<a class="atUser" unic="' + g + '" href="' + main_domain + "/my/tui/home.html?nic=" + encodeURIComponent(g) + '" target="_blank">' + j + "</a>"
  408.         }).replace(/#([^#]+)#/g, function (h, g) {
  409.             return '<a class="atTopic" href="' + tui_domain + "/searchResult.html?kw=" + g + '" target="_blank">' + h + "</a>"
  410.         }).replace(/http:\/\/t.cn\/(\w+)?/g, function (g) {
  411.             return '<a href="' + g + '" target="_blank">' + g + "</a>"
  412.         })
  413.     }
  414.     function d(e, f, g) {
  415.         return e.replace(/@(\d+)(\s|$|:|:)/g, function (i, h, k) {
  416.             var j = f(h);
  417.             if (!j) {
  418.                 return i
  419.             }
  420.             return "@" + (g ? j.nic : c(j.nic)) + k
  421.         })
  422.     }
  423.     function b(e, f) {
  424.         return {
  425.             txtEsc: d(e, f),
  426.             txtHtml: a(e, f),
  427.             txt: d(e, f, true)
  428.         }
  429.     }
  430.     return {
  431.         html: a,
  432.         text: d,
  433.         all: b
  434.     }
  435. })();
  436. TUI.ns("T.stat", function (c, a, d, b) {
  437.     if (c.indexOf("http://") == 0) {
  438.         TUI.getRequest(c)
  439.     } else {
  440.         TUI.getRequest("http://stats.tudou.com/e/tudou/" + c + "/?v=1&s=" + [uid, encodeURIComponent(location.href), encodeURIComponent(a), encodeURIComponent(d), b].join("|"))
  441.     }
  442. });
  443. TUI.truename = function (c, d) {
  444.     TUI.module.use("/fn/tuidefer2", function () {
  445.         c = c ||
  446.         function () {};
  447.         d = d ||
  448.         function () {};
  449.         var b = '<div class="first"><p class="i">按照国家法律和政策要求,使用土豆网的土豆推相关功能, 需要经过实名认证</p><a href="#" id="startTrueName">开启实名认证</a></div>',
  450.             q = '<form id="subTrueName"><div class="row"><label class="l">真实姓名:</label><input class="text" name="identityCardName"/></div><div class="row"><label class="l">身份证号码:</label><input class="text" name="identityCardId"/></div><input type="submit" class="sub" value=""/></form>',
  451.             r = '<div class="loading">认证中...</div>',
  452.             s = '<div class="res fix"><b class="icon"></b><div class="txt success_txt"><h4 class="h">恭喜,已认证成功</h4><div class="c"><span id="time">2</span>秒后自动关闭</div></div><div class="txt error_txt"><h4 class="h">抱歉,实名认证失败</h4><div class="c"><div class="msg">失败原因</div><p>如果你有任何问题,请 <a href="http://www.tudou.com/service/" target="_blank">联系我们</a>。</p><a href="#" id="reStart">重新认证</a></div></div></div>',
  453.             y = TUI.panel("<!--noicon,nobutton-->" + b + q + r + s, "实名认证"),
  454.             u = y.getUI("content"),
  455.             z = u.find("#startTrueName"),
  456.             x = u.find("#subTrueName"),
  457.             w = u.find("div.loading"),
  458.             t = u.find("div.res"),
  459.             v = t.find("#time"),
  460.             a = t.find("#reStart");
  461.         $("#tudou_panel").addClass("tui_truename");
  462.         y.info('此信息仅供互联网身份认证中心认证个人真实身份使用,你的信息不会提供给任何其他人或第三方。有其他问题? <a href="http://www.tudou.com/service/" target="_blank">联系我们</a>');
  463.         z.click(function (e) {
  464.             e.preventDefault();
  465.             u.find(".first").hide();
  466.             x.show()
  467.         });
  468.         x.submit(function () {
  469.             x.hide();
  470.             w.show();
  471.             $.get(main_domain + "/my/tui/saveIdentity.html", x.serialize(), function (e) {
  472.                 t.show();
  473.                 w.hide();
  474.                 if (e.status == 1) {
  475.                     t.children(".icon").removeClass("error").addClass("success");
  476.                     t.children(".txt").hide();
  477.                     t.children(".success_txt").show();
  478.                     p()
  479.                 } else {
  480.                     t.children(".icon").removeClass("success").addClass("error");
  481.                     t.children(".txt").hide();
  482.                     t.children(".error_txt").show().find(".msg").html(e.msg)
  483.                 }
  484.             }, "jsonp");
  485.             return false
  486.         });
  487.         a.click(function (e) {
  488.             e.preventDefault();
  489.             t.hide();
  490.             x.show()
  491.         });
  492.  
  493.         function p() {
  494.             var e = 1,
  495.                 f = setInterval(function () {
  496.                     if (e < 0) {
  497.                         clearInterval(f);
  498.                         y.close();
  499.                         c()
  500.                     }
  501.                     v.html(e--)
  502.                 }, 1000);
  503.             y.unbindEvent("close", d).bindEvent("close", function () {
  504.                 clearInterval(f);
  505.                 c()
  506.             })
  507.         }
  508.         y.bindEvent("close", d)
  509.     })
  510. };
  511. var pageidCidMap = {
  512.     1: "05",
  513.     2: "05",
  514.     3: "05",
  515.     4: "05",
  516.     5: "05",
  517.     107: "01",
  518.     10: "04",
  519.     11: "06",
  520.     701: "08",
  521.     702: "11"
  522. };
  523. TUI.ns("TUI.getResourceId", function (b, a) {
  524.     return (uid || 0) + "_" + (b || 0) + "_" + (pageidCidMap[window.pageId] || 0) + "_" + (a || 0)
  525. });
  526. TUI.ns("TUI.Model.tweet", function (n) {
  527.     n = n || {};
  528.     var s = n.event || TUI.event,
  529.         x = n.db || g(),
  530.         a = TUI.Model.tweet.targetTypes,
  531.         b = [],
  532.         t;
  533.  
  534.     function g() {
  535.         var A = {},
  536.             z = "tweet,user,program,playlist,plupdate,comment,tuya";
  537.         z.split(",").map(function (o) {
  538.             A[o] = TUI.accessor()
  539.         });
  540.         return A
  541.     }
  542.     function r(G, o, F, E, B, z, C, H) {
  543.         var A = $.param({
  544.             targetId: G,
  545.             code: "",
  546.             targetType: o,
  547.             targetData: F,
  548.             source: z || "",
  549.             memo: B,
  550.             uid: uid,
  551.             sync: E,
  552.             resourceId: TUI.getResourceId("01", "0"),
  553.             parentId: C || ""
  554.         });
  555.         var D = arguments.callee;
  556.         $.getJSON(tui_domain + "/addAct.html?" + A + "&callback=?", function (I) {
  557.             if (I.status == -99) {
  558.                 TUI.truename(function () {
  559.                     D(G, o, F, E, B, z, C, H)
  560.                 });
  561.                 if (window.isPlayPage) {
  562.                     $(".tui_panel").addClass("tui_truename")
  563.                 }
  564.                 return
  565.             }
  566.             if (H && H(I, b) === false) {
  567.                 return
  568.             }
  569.             d(I);
  570.             if (I.status === 1) {
  571.                 if (o == 3) {
  572.                     s.fire("retweet:success", [I.actmsg[0], I, G])
  573.                 } else {
  574.                     s.fire("add:success", [I.actmsg[0], I])
  575.                 }
  576.             } else {
  577.                 s.fire("add:fail", [I.msg, I])
  578.             }
  579.         })
  580.     }
  581.     function i(z, o) {
  582.         $.getJSON(tui_domain + "/deleteAct.html?id=" + z + "&callback=?", function (A) {
  583.             if (o(A) === false) {
  584.                 return
  585.             }
  586.             if (A.status === 1) {
  587.                 s.fire("delTweet:success", [A])
  588.             } else {
  589.                 s.fire("delTweet:failed", [A.msg, A])
  590.             }
  591.         })
  592.     }
  593.     var q = ["/getActIndex.html", "/getMySubAct.html", "/getPlayerListChanges.html", "/getMyAct.html", "/getAtMeList.html", "/getNewActMsg.html", "/getFreshActMsg.html"];
  594.  
  595.     function j(o, A) {
  596.         s.fire("search:loading");
  597.         var z = $.param($.extend({
  598.             topic: "",
  599.             pageSize: 25,
  600.             currentPage: 1
  601.         }, o));
  602.         A = A ||
  603.         function () {};
  604.         $.getJSON(tui_domain + "/searchTopicByPage.html?" + z + "&callback=?", function (B) {
  605.             d(B);
  606.             if (A(B) === false) {
  607.                 return
  608.             }
  609.             s.fire("searchTweet:success", [B])
  610.         })
  611.     }
  612.     function k(z, A) {
  613.         s.fire("themeTweet:loading");
  614.         var o = $.param($.extend({
  615.             pageSize: 25,
  616.             currentPage: 1
  617.         }, z));
  618.         A = A ||
  619.         function () {};
  620.         $.getJSON(tui_domain + "/getTopicMsgListForPage.html?" + o + "&callback=?", function (B) {
  621.             d(B);
  622.             if (A(B) === false) {
  623.                 return
  624.             }
  625.             s.fire("themeTweet:success", [B])
  626.         })
  627.     }
  628.     function v(C, B, A, z, o, D, F) {
  629.         s.fire("get:loading");
  630.         var E = {
  631.             datePoint: B,
  632.             pageSize: A,
  633.             uid: z,
  634.             limit: o
  635.         };
  636.         if (window.pageId == 107 || window.pageId == 114 || window.pageId == 110) {
  637.             E.authenticate = 1
  638.         }
  639.         if (D) {
  640.             E.channel = D
  641.         }
  642.         TUI.getJSON(tui_domain + q[C], E, function (G) {
  643.             if (F(G) === false) {
  644.                 return
  645.             }
  646.             if (G.status == 1 && G.status == 2) {
  647.                 s.fire("get:success", [G])
  648.             } else {
  649.                 s.fire("get:fail", [G])
  650.             }
  651.         }, {
  652.             charset: "utf-8",
  653.             callbackName: "callback"
  654.         })
  655.     }
  656.     var p = ["/getNewActIndexNum.html", "/getNewMySubActNum.html", "/getNewPlChangeSize.html", "/getNewMyActNum.html", "/getNewAtMeSize.html", "/getNewActMsgSize.html", ""];
  657.  
  658.     function u(z, o) {
  659.         param = $.param({
  660.             datePoint: b[0] + 999,
  661.             uid: o
  662.         });
  663.         $.getJSON(tui_domain + p[z] + "?" + param + "&callback=?", function (A) {
  664.             if (A.status == 1) {
  665.                 t = A.num;
  666.                 s.fire("check:success", [A.num, A])
  667.             } else {
  668.                 s.fire("check:fail", [A])
  669.             }
  670.         })
  671.     }
  672.     function m(A, o, C) {
  673.         var z, B;
  674.         if (TUI.isPlainObject(C)) {
  675.             z = C.sync;
  676.             B = C.targetData || "";
  677.             C = C.callback
  678.         }
  679.         if (A.type == 3) {
  680.             l(A, o, C);
  681.             return
  682.         }
  683.         r(A.id, A.type, B, z, o, "", "", C);
  684.         T.stat("pushDetail", "", "", 1)
  685.     }
  686.     function w(A, C, D) {
  687.         var z, o = 0;
  688.         if (TUI.isPlainObject(D)) {
  689.             z = D.sync;
  690.             o = D.isNotCreate;
  691.             D = D.callback
  692.         }
  693.         var B = $.param({
  694.             targetId: A,
  695.             memo: C,
  696.             uid: uid,
  697.             sync: z,
  698.             isNotCreate: o
  699.         });
  700.         D = D ||
  701.         function () {};
  702.         $.getJSON(tui_domain + "/addItemUploadAct.html?" + B + "&callback=?", function (E) {
  703.             if (D(E) === false) {
  704.                 return
  705.             }
  706.             if (E.status == 1) {
  707.                 s.fire("addUpload:success", [E])
  708.             } else {
  709.                 s.fire("addUpload:fail", [E])
  710.             }
  711.         })
  712.     }
  713.     function l(C, o, D) {
  714.         var z, B;
  715.         if (TUI.isPlainObject(D)) {
  716.             z = D.sync;
  717.             B = D.targetData || "";
  718.             D = D.callback
  719.         }
  720.         if ($.type(C) == "number") {
  721.             C = x.tweet(C)
  722.         }
  723.         var A = C.targetType == 3 ? C.targetId : C.id;
  724.         r(A, 3, B, z, o, "", C.id, D);
  725.         T.stat("refPushDetail", "", "", 1)
  726.     }
  727.     function y(z, o) {
  728.         o = o || x.tweet;
  729.         if (typeof z == "string") {
  730.             z = o(z)
  731.         }
  732.         if (z.targetType == 3) {
  733.             return o(z.targetId)
  734.         }
  735.         return z
  736.     }
  737.     function e(A, z) {
  738.         z = z || x.tweet;
  739.         var o = x[a[A.ownerType]](A.ownerId);
  740.         if (A.targetType == 3) {
  741.             if (A.ownerType == 7) {
  742.                 return "  //@" + o.nic + ":" + A.txt
  743.             }
  744.         } else {
  745.             if (A.ownerType == 7) {
  746.                 return ""
  747.             } else {
  748.                 if (A.ownerType == 2) {
  749.                     return "//豆单:" + o.title + ":" + x.program(A.targetId).title
  750.                 }
  751.             }
  752.         }
  753.     }
  754.     function d(z) {
  755.         z.program = {};
  756.         z.playlist = {};
  757.         z.tweet = {};
  758.         z.tuya = {};
  759.         z.plupdate = {};
  760.         if (!z.actmsg) {
  761.             z.actmsg = []
  762.         }
  763.         var o;
  764.         for (var A in z.item) {
  765.             o = A.split("&");
  766.             z[a[o[0]]][o[1]] = z.item[A]
  767.         }
  768.         delete z.item;
  769.         x.user.mix(z.user);
  770.         x.program.mix(z.program);
  771.         x.playlist.mix(z.playlist);
  772.         x.tuya.mix(z.tuya);
  773.         for (var A in z.tweet) {
  774.             if (z.tweet[A].status) {
  775.                 $.extend(z.tweet[A], parseAt.all(z.tweet[A].txt, x.user))
  776.             }
  777.             x.tweet(A, z.tweet[A])
  778.         }
  779.         z.actmsg.forEach(function (B) {
  780.             if (B.type == 3) {
  781.                 $.extend(B, parseAt.all(B.txt, x.user));
  782.                 x.tweet(B.id, B)
  783.             } else {
  784.                 if (B.type == 5) {
  785.                     x.plupdate(B.id, B)
  786.                 }
  787.             }
  788.         });
  789.         if (z.timestamp) {
  790.             window.localtimefix = z.timestamp - +new Date()
  791.         }
  792.     }
  793.     function f(o, z) {
  794.         $.getJSON(tui_domain + "/getItemInfo.html?code=" + o, z)
  795.     }
  796.     function h(z, A) {
  797.         delete z.type;
  798.         $.getJSON(tui_domain + "/getItemInfo.html", z, A)
  799.     }
  800.     function c(A, z) {
  801.         var o = [A.title];
  802.         if (A.desc && A.title !== A.desc) {
  803.             o.push(" - " + TUI.substr($.trim(A.desc).replace(/[\n\r]+/g, ""), 100))
  804.         }
  805.         if (z && A.oid != z && (A.onic || A.onick)) {
  806.             if (A.onick) {
  807.                 A.onic = A.onick
  808.             }
  809.             if (A.type == 1 || A.type == 4) {
  810.                 o.push(" (@" + A.onic + " 上传)")
  811.             } else {
  812.                 if (A.type == 2) {
  813.                     o.push(" (@" + A.onic + " 创建)")
  814.                 }
  815.             }
  816.         }
  817.         return o.join("")
  818.     }
  819.     return {
  820.         isRetweet: function (o) {
  821.             return o.targetType == 3
  822.         },
  823.         themeTweet: k,
  824.         search: j,
  825.         updateDB: d,
  826.         db: x,
  827.         event: s,
  828.         add: m,
  829.         tweet: m,
  830.         addUpload: w,
  831.         retweet: l,
  832.         del: function (o, z) {
  833.             i(o.id, z)
  834.         },
  835.         get: v,
  836.         check: u,
  837.         older: function (z, A) {
  838.             s.fire("older:loading");
  839.             v(z.type, b[b.length - 1] || 0, z.size, z.uid, 0, z.channel, function (o) {
  840.                 if (window.pageId == 107 || window.pageId == 114 || window.pageId == 110) {
  841.                     if (o.status == -99) {
  842.                         $("#stream").html('<div id="authentication" class="authentication"><a id="authenticationBtn" class="authentication_btn" href="javascript:;"></a></div>');
  843.                         $("#authenticationBtn").click(function () {
  844.                             TUI.truename(function () {
  845.                                 location.reload()
  846.                             });
  847.                             $("#startTrueName").click();
  848.                             return false
  849.                         });
  850.                         return
  851.                     }
  852.                 }
  853.                 if (o.actmsg) {
  854.                     if (o.actmsg.length) {
  855.                         if (!b.length) {
  856.                             b.push(o.actmsg[0].dt)
  857.                         }
  858.                         b.push(o.actmsg[o.actmsg.length - 1].dt)
  859.                     }
  860.                 }
  861.                 d(o);
  862.                 if (A && A(o) === false) {
  863.                     return
  864.                 }
  865.                 if (o.status == 1) {
  866.                     s.fire("older:success", [o])
  867.                 } else {
  868.                     s.fire("older:fail", [o.msg, o])
  869.                 }
  870.             })
  871.         },
  872.         newer: function (z) {
  873.             s.fire("newer:loading");
  874.             v(z.type, b[0] + 999, t, z.uid, 20, z.channel, function (o) {
  875.                 if (o.status == -99) {
  876.                     return
  877.                 }
  878.                 if (o.actmsg) {
  879.                     if (o.actmsg.length) {
  880.                         if (!b.length) {
  881.                             b.push(o.actmsg[o.actmsg.length - 1].dt)
  882.                         }
  883.                         b.unshift(o.actmsg[0].dt)
  884.                     }
  885.                     d(o)
  886.                 }
  887.                 if (o.status == 1) {
  888.                     s.fire("newer:success", [o])
  889.                 } else {
  890.                     if (o.status == 2) {
  891.                         s.fire("page:refresh")
  892.                     } else {
  893.                         s.fire("newer:fail", [o.msg, o])
  894.                     }
  895.                 }
  896.             })
  897.         },
  898.         targetTypes: a,
  899.         getTweetUrl: TUI.Model.tweet.getTweetUrl,
  900.         getOritweet: y,
  901.         parseTweetTxt: parseAt,
  902.         stamps: function (z, o) {
  903.             o ? b.push(z) : b.unshift(z)
  904.         },
  905.         getItemByCode: f,
  906.         getItem: h,
  907.         getDefaultTweetText: c,
  908.         getDefaultRetweetText: e,
  909.         getStamps: function () {
  910.             return b
  911.         }
  912.     }
  913. });
  914. TUI.Model.tweet.targetTypes = [0, "program", "playlist", "tweet", "tuya", "plupdate", 0, "user"];
  915. TUI.Model.tweet.getTweetUrl = function (a) {
  916.     return tui_domain + "/details.html?id=" + a
  917. };
  918. var tpl_page_mydou_v2_channel_stream = '<%for(var i = 0, count = 0; i < d.length; i++){%> <% if(count == visibleSize)break; var msg = d[i]; if(!msg.targetType||msg.status==0)continue;  var oriTweet = mod.getOritweet(msg, db.tweet); if(!oriTweet.targetType||oriTweet.status==0)continue;  var target = db[mod.targetTypes[oriTweet.targetType]](oriTweet.targetId); if(target.status==0)continue;  var user = db.user(msg.userId); if(!user || user.status == 0)continue;  if($(\'#twt_\' + msg.id).length)continue;  var  pt = TUI.escapeHTML(target.title), uu = TUI.Model.common.getUserHomeUrl(user.name), un = escapeHTML(user.nic), pu = \'\', tu = tui_domain+\'/details/?id=\'+msg.id; if(msg.ownerType==7){ pu = TUI.Model.common.getProgramUrl(target.code); }else{ pu = TUI.Model.common.getPlaylistUrl(target.id,{targetData: msg.targetData}); }; count++; %> <div class="stream_item" id="twt_<%=msg.id%>" mid="<%=msg.id%>"> <div class="pic"> <a href="<%=tu%>" target="_blank" title="<%=pt%>"><img src="<%=target.pic%>" width="91" height="55" /></a> <%if(target.time){%> <span class="vpbg"></span> <a class="vinf" href="<%=tu%>" target="_blank"><%=target.time%></a> <%};%> </div> <div class="txt"> <%if(msg.ownerType==7){%> <a href="<%=uu%>" target="_blank" title="<%=un%>" class="atUser" unic="<%=user.nic%>"><%=escapeHTML(user.nic)%></a> <%}else if(msg.ownerType==2){%> <em>豆单</em> <%};%>:<a href="<%=tu%>" target="_blank" class="link" title="<%=msg.txtEsc%>"><%=TUI.substr(msg.txtEsc,100)%></a>(<%=beautiTime(msg.dt)%>) </div> </div> <%};%>';
  919. var tpl_page_mydou_v2_recommendUsers_recommendUsers = '<%data.forEach(function(item){%> <% var uu = TUI.Model.common.getUserHomeUrl(item.username), un = TUI.escapeHTML(item.nickname), uinfo = TUI.escapeHTML(item.info); %> <div class="pack pack_user" uid="<%=item.userId%>" > <div class="pic"> <a href="<%=uu%>" title="<%=un%>" target="_blank"> <img class="atUser" unic="<%=item.nickname%>" width="50" height="50" src="<%=item.userpic%>" /> </a> </div> <div class="txt"> <h6 class="caption"> <a href="<%=uu%>" title="<%=un%>" class="atUser" unic="<%=item.nickname%>" target="_blank"><%=un%></a><%if(item.isVuser){%><span class="vip"></span><%}%> </h6> <%if($.trim(item.info)!=\'\'){%><p title="<%=uinfo%>"><%=uinfo%></p><%};%> <span class="follow_btn_lite"><a href="#" class="follow">加为关注</a></span> </div> </div> <%});%>';
  920. TUI.Model.userSubscribe = function (h, j, e) {
  921.     e = e || {};
  922.     var b = e.event || j.event,
  923.         n = e.db || j.accessor();
  924.     var g = 0;
  925.  
  926.     function f(q, s) {
  927.         var r = h.param({
  928.             pageSize: s.size,
  929.             uid: s.uid,
  930.             currentPage: s.page || 1,
  931.             china: s.china || 0,
  932.             key: s.key || ""
  933.         });
  934.         return [tui_domain, "/", q, "?", r, "&callback=?"].join("")
  935.     }
  936.     function m(q, r) {
  937.         h.getJSON(f("mysub.html", q), function (o) {
  938.             if (r && r(o) === false) {
  939.                 return
  940.             }
  941.             if (o.status == 1) {
  942.                 if (!o.users.userList) {
  943.                     o.users.userList = []
  944.                 }
  945.                 n.mix(o.users.userList, "uid");
  946.                 b.fire("getFollowing:success", [o.users.userList, o])
  947.             } else {
  948.                 b.fire("getFollowing:fail", [o.msg, o])
  949.             }
  950.         })
  951.     }
  952.     function a(q, r) {
  953.         h.getJSON(f("subme.html", q), function (o) {
  954.             if (r && r(o) === false) {
  955.                 return
  956.             }
  957.             if (o.status == 1) {
  958.                 if (!o.users.userList) {
  959.                     o.users.userList = []
  960.                 }
  961.                 n.mix(o.users.userList, "uid");
  962.                 b.fire("getFollower:success", [o.users.userList, o])
  963.             } else {
  964.                 b.fire("getFollower:fail", [o.msg, o])
  965.             }
  966.         })
  967.     }
  968.     function k(q, s, r) {
  969.         var o = "";
  970.         if (j.isPlainObject(r)) {
  971.             o = r.position || "";
  972.             r = r.callback ||
  973.             function () {}
  974.         }
  975.         T.stat("attention", o, s, 1);
  976.         h.get(tui_domain + "/multiSub.html", {
  977.             uid: q,
  978.             subUids: s
  979.         }, function (t) {
  980.             if (r(t) === false) {
  981.                 return
  982.             }
  983.             if (t.status == 1) {
  984.                 b.fire("multiFollow:success", [s])
  985.             } else {
  986.                 b.fire("multiFollow:fail", [t.msg, s])
  987.             }
  988.         }, "jsonp")
  989.     }
  990.     function d(q, r, s) {
  991.         var o = "";
  992.         if (j.isPlainObject(s)) {
  993.             o = s.position || "";
  994.             s = s.callback ||
  995.             function () {}
  996.         }
  997.         T.stat("attention", o, r, 1);
  998.         j.getJSON(tui_domain + "/sub.srv", {
  999.             uid: q,
  1000.             subUid: r
  1001.         }, function (t) {
  1002.             if (s(t) === false) {
  1003.                 return
  1004.             }
  1005.             if (t.status == 1) {
  1006.                 b.fire("follow:success", [r])
  1007.             } else {
  1008.                 b.fire("follow:fail", [t.msg, r])
  1009.             }
  1010.         }, {
  1011.             charset: "utf-8",
  1012.             callbackName: "callback"
  1013.         })
  1014.     }
  1015.     function p(q, r, s) {
  1016.         var o = "";
  1017.         if (j.isPlainObject(s)) {
  1018.             o = s.position || "";
  1019.             s = s.callback ||
  1020.             function () {}
  1021.         }
  1022.         T.stat("cancelattention", o, r, 1);
  1023.         j.getJSON(tui_domain + "/unsub.srv", {
  1024.             uid: q,
  1025.             subUid: r
  1026.         }, function (t) {
  1027.             if (s(t) === false) {
  1028.                 return
  1029.             }
  1030.             if (t.status == 1) {
  1031.                 b.fire("unfollow:success", [r])
  1032.             } else {
  1033.                 b.fire("unfollow:fail", [t.msg, r])
  1034.             }
  1035.         }, {
  1036.             charset: "utf-8",
  1037.             callbackName: "callback"
  1038.         })
  1039.     }
  1040.     function i(q, o, s) {
  1041.         var r = {
  1042.             pageSize: o,
  1043.             page: q
  1044.         };
  1045.         if (j.isPlainObject(s)) {
  1046.             if (s.channel) {
  1047.                 r.channel = s.channel
  1048.             }
  1049.             if (s.type) {
  1050.                 r.type = s.type
  1051.             }
  1052.             s = s.callback ||
  1053.             function () {}
  1054.         }
  1055.         j.getJSON(tui_domain + "/getOfficialVuserForSub.html", r, function (t) {
  1056.             if (s(t) === false) {
  1057.                 return
  1058.             }
  1059.             if (t.status && t.user.length > 0) {
  1060.                 b.fire("suggestFollow:success", [t.user, t])
  1061.             } else {
  1062.                 b.fire("suggestFollow:fail", [t])
  1063.             }
  1064.         }, {
  1065.             charset: "utf-8",
  1066.             callbackName: "callback"
  1067.         })
  1068.     }
  1069.     function l(o, q) {
  1070.         h.getJSON(tui_domain + "/checkSub.srv?subUid=" + o + "&callback=?", q)
  1071.     }
  1072.     function c(o, q) {
  1073.         j.getJSON(tui_domain + "/multyCheckSub.srv", {
  1074.             users: o
  1075.         }, function (r) {
  1076.             if (q && q(r) === false) {
  1077.                 return
  1078.             }
  1079.             if (r && r.status == 1) {
  1080.                 delete r.status;
  1081.                 b.fire("checkFollow:success", [r])
  1082.             } else {
  1083.                 b.fire("checkFollow:fail", [r])
  1084.             }
  1085.         }, {
  1086.             charset: "utf-8",
  1087.             callbackName: "callback"
  1088.         })
  1089.     }
  1090.     return {
  1091.         isFollow: l,
  1092.         checkFollow: c,
  1093.         follow: d,
  1094.         multiFollow: k,
  1095.         unfollow: p,
  1096.         getFollower: a,
  1097.         getFollowing: m,
  1098.         getSuggestion: i,
  1099.         getUserById: function (o) {
  1100.             return followerMap[o] || followingMap[o] || null
  1101.         }
  1102.     }
  1103. };
  1104. TUI.ns("T.recommendUsers", function (n, p, g, m) {
  1105.     var l = false;
  1106.     var a = n && n.event,
  1107.         f = TUI.app({
  1108.             event: a,
  1109.             element: {
  1110.                 data: "#recommendUsers",
  1111.                 wrap: "@.recom",
  1112.                 change: "#changeRecoms"
  1113.             },
  1114.             handler: {
  1115.                 "suggestFollow:success": function (r, q) {
  1116.                     d().page++;
  1117.                     c("data").append(TUI.convertTpl("page/mydou/v2/recommendUsers/recommendUsers.tpl", {
  1118.                         data: k(r)
  1119.                     }));
  1120.                     c("wrap").fadeIn();
  1121.                     if (!l) {
  1122.                         a.fire("appLoaded", ["recommendUsers", +new Date()]);
  1123.                         l = true
  1124.                     }
  1125.                     j = q.remains;
  1126.                     h() ? c("change").show() : c("change").hide()
  1127.                 },
  1128.                 "@.recom .follow": function (s) {
  1129.                     var r = $(s.target),
  1130.                         q = r.closest(".pack_user");
  1131.                     b(q, "#recommendUsers")
  1132.                 },
  1133.                 "@.recom #changeRecoms": function (q) {
  1134.                     i();
  1135.                     return false
  1136.                 },
  1137.                 "recommendUser:needSupply": function () {
  1138.                     e.getSuggestion(d("page"), d("getSize"), {
  1139.                         channel: d("channel"),
  1140.                         type: d("type")
  1141.                     })
  1142.                 },
  1143.                 "suggestFollow:fail": function () {
  1144.                     if (!h()) {
  1145.                         c("change").hide()
  1146.                     }
  1147.                 }
  1148.             }
  1149.         }),
  1150.         c = f.el,
  1151.         d = f.config($.extend({
  1152.             getSize: 20,
  1153.             visibleSize: 4,
  1154.             page: 1,
  1155.             channel: 0,
  1156.             type: 0
  1157.         }, g || {})),
  1158.         j = false;
  1159.     var e = m && m.user || TUI.Model.userSubscribe($, TUI, {
  1160.         event: a
  1161.     });
  1162.  
  1163.     function b(q, r) {
  1164.         TUI.needLogin(function () {
  1165.             e.follow(uid, q.attr("uid"), {
  1166.                 position: r,
  1167.                 callback: function (s) {
  1168.                     if (s.status == 1 || s.status == -3) {
  1169.                         q.fadeOut(function () {
  1170.                             q.remove();
  1171.                             o();
  1172.                             T.stat("expo", "#recommendUsers", $("#recommendUsers .pack_user").slice(d("visibleSize") - 1, d("visibleSize")).attr("uid"), 0)
  1173.                         })
  1174.                     } else {
  1175.                         TUI.panel(s.msg)
  1176.                     }
  1177.                 }
  1178.             })
  1179.         })
  1180.     }
  1181.     function h() {
  1182.         return $(".pack_user", c("data")).length > d("visibleSize")
  1183.     }
  1184.     function i() {
  1185.         $(".pack_user", c("data")).slice(0, d("visibleSize")).remove();
  1186.         o();
  1187.         var q = [];
  1188.         $("#recommendUsers .pack_user").slice(0, d("visibleSize")).forEach(function (r) {
  1189.             q.push($(r).attr("uid"))
  1190.         });
  1191.         T.stat("expo", "#recommendUsers", q.join(","), 0)
  1192.     }
  1193.     function o() {
  1194.         if ($(".pack_user", c("data")).length < (d("visibleSize") * 2)) {
  1195.             n.event.fire("recommendUser:needSupply")
  1196.         }
  1197.         if (!h() && !j) {
  1198.             c("change").hide()
  1199.         }
  1200.     }
  1201.     function k(s) {
  1202.         var r = [],
  1203.             q;
  1204.         while (q = s.length) {
  1205.             r.push(s.splice(Math.floor(Math.random() * q), 1)[0])
  1206.         }
  1207.         return r
  1208.     }
  1209.     return f.mix({
  1210.         load: function () {
  1211.             e.getSuggestion(d("page"), d("getSize"), {
  1212.                 channel: d("channel"),
  1213.                 type: d("type")
  1214.             })
  1215.         },
  1216.         change: i,
  1217.         follow: b,
  1218.         test: function () {
  1219.             setTimeout(function () {
  1220.                 c("wrap").find(".follow").eq(0).click()
  1221.             }, 0);
  1222.             setTimeout(function () {
  1223.                 c("wrap").find("#changeRecoms").click()
  1224.             }, 1000)
  1225.         }
  1226.     })
  1227. });
  1228. var tpl_view_select_select = '<%if(init){%> <div class="tui_select <%=className%>" id="<%=id%>"> <%}%> <div class="selected"> <a href="#" class="selected_option" val="<%=options[selected].val%>"><%=options[selected].label%></a> </div> <div class="options"> <%options.forEach(function(item){%> <div class="item<%=options[selected] == item ? \' current\' : \'\'%>"><a href="#" class="option" val="<%=item.value%>"><%=item.label%></a></div> <%});%> </div> <%if(init){%> </div> <%}%>';
  1229. (function (a, d, c) {
  1230.     var b = 0;
  1231.     a.ns("TUI.view.select", function (u, o) {
  1232.         o = d.extend({
  1233.             defaults: 0,
  1234.             event: new a.eventClass(),
  1235.             className: "",
  1236.             id: "tui_select_" + b++
  1237.         }, o || {});
  1238.         var e = o.event,
  1239.             s, k = o.defaults,
  1240.             g = null;
  1241.  
  1242.         function l() {
  1243.             return (u[k] || {}).value
  1244.         }
  1245.         function t(v) {
  1246.             if (arguments.length == 2) {
  1247.                 v = i(v, arguments[1])
  1248.             }
  1249.             if (typeof v != "number" || v >= u.length || v == -1) {
  1250.                 return false
  1251.             }
  1252.             if (k === v) {
  1253.                 return false
  1254.             }
  1255.             k = v;
  1256.             r();
  1257.             h()
  1258.         }
  1259.         function h() {
  1260.             e.fire("change", [k, u[k].value, u[k].label])
  1261.         }
  1262.         function i(w, y) {
  1263.             for (var x = 0, v = u.length; x < v; ++x) {
  1264.                 if (u[x][w] == y) {
  1265.                     return x
  1266.                 }
  1267.             }
  1268.             return -1
  1269.         }
  1270.         function f(w) {
  1271.             var v = m({
  1272.                 init: true,
  1273.                 id: o.id,
  1274.                 className: o.className
  1275.             });
  1276.             d(w).append(v);
  1277.             j()
  1278.         }
  1279.         function j() {
  1280.             d("#" + o.id).mouseover(function (v) {
  1281.                 if (g) {
  1282.                     clearTimeout(g)
  1283.                 }
  1284.                 d(this).addClass("active").find(".options").show();
  1285.                 return false
  1286.             }).mouseout(function (w) {
  1287.                 var v = d(this);
  1288.                 g = setTimeout(function () {
  1289.                     v.removeClass("active").find(".options").hide()
  1290.                 }, 0);
  1291.                 return false
  1292.             });
  1293.             d("#" + o.id).click(function (v) {
  1294.                 var w = v.target.className;
  1295.                 if (w == "option") {
  1296.                     if (!t("value", d(v.target).attr("val"))) {
  1297.                         d(this).find(".options").hide()
  1298.                     }
  1299.                 }
  1300.                 return false
  1301.             })
  1302.         }
  1303.         function r() {
  1304.             d("#" + o.id).html(m({
  1305.                 init: false
  1306.             }))
  1307.         }
  1308.         function m(v) {
  1309.             return a.convertTpl("view/select/select.tpl", d.extend({
  1310.                 options: u,
  1311.                 selected: k
  1312.             }, v || {}))
  1313.         }
  1314.         function n(v) {
  1315.             s = v;
  1316.             e.bind("change", function (w) {
  1317.                 s.onParentChange(w)
  1318.             })
  1319.         }
  1320.         function p(w, v) {
  1321.             u = w;
  1322.             k = v || 0;
  1323.             r();
  1324.             h()
  1325.         }
  1326.         function q() {
  1327.             return u
  1328.         }
  1329.         return {
  1330.             event: e,
  1331.             sub: n,
  1332.             render: f,
  1333.             select: t,
  1334.             getValue: l,
  1335.             setOptions: p,
  1336.             getOptions: q,
  1337.             onParentChange: function () {},
  1338.             fire: h
  1339.         }
  1340.     })
  1341. })(TUI, $, window);
  1342.  
  1343. function beautiTime(g) {
  1344.     var b = +new Date() + (window.localtimefix || 0);
  1345.     if (!g) {
  1346.         return ""
  1347.     }
  1348.     var e = "前";
  1349.     var i = (b - g) / 60000;
  1350.     if (i <= 1) {
  1351.         return "刚刚"
  1352.     }
  1353.     if (i < 60) {
  1354.         return Math.floor(i) + "分钟" + e
  1355.     }
  1356.     var c = i / 60;
  1357.     if (c > 1 && c < 24) {
  1358.         return Math.floor(c) + "小时" + e
  1359.     }
  1360.     var f = c / 24;
  1361.     if (f < 30) {
  1362.         return Math.floor(f) + "天" + e
  1363.     }
  1364.     var a = f / 30;
  1365.     if (a < 12) {
  1366.         return Math.floor(a) + "个月" + e
  1367.     }
  1368.     return Math.floor(a / 12) + "年" + e
  1369. }
  1370. TUI.ns("T.channel", function (o, p, n, b, h, i) {
  1371.     var a = o.event || new TUI.eventClass(),
  1372.         g = TUI.app({
  1373.             event: a,
  1374.             element: $.extend({
  1375.                 streamWrap: "@#stream",
  1376.                 dataContainer: "#streamContainer"
  1377.             }, i || {})
  1378.         }),
  1379.         c = g.el;
  1380.     var j = [{
  1381.         label: "首页",
  1382.         value: 0
  1383.     }, {
  1384.         label: "原创",
  1385.         value: 99
  1386.     }, {
  1387.         label: "电视剧",
  1388.         value: 30
  1389.     }, {
  1390.         label: "电影",
  1391.         value: 22
  1392.     }, {
  1393.         label: "综艺",
  1394.         value: 31
  1395.     }, {
  1396.         label: "热点",
  1397.         value: 29
  1398.     }, {
  1399.         label: "财富",
  1400.         value: 24
  1401.     }, {
  1402.         label: "汽车",
  1403.         value: 26
  1404.     }, {
  1405.         label: "科技",
  1406.         value: 21
  1407.     }, {
  1408.         label: "体育",
  1409.         value: 15
  1410.     }, {
  1411.         label: "娱乐",
  1412.         value: 1
  1413.     }, {
  1414.         label: "音乐",
  1415.         value: 14
  1416.     }, {
  1417.         label: "动漫",
  1418.         value: 9
  1419.     }, {
  1420.         label: "游戏",
  1421.         value: 10
  1422.     }, {
  1423.         label: "搞笑",
  1424.         value: 5
  1425.     }, {
  1426.         label: "风尚",
  1427.         value: 32
  1428.     }, {
  1429.         label: "女性",
  1430.         value: 27
  1431.     }, {
  1432.         label: "乐活",
  1433.         value: 3
  1434.     }, {
  1435.         label: "教育",
  1436.         value: 25
  1437.     }, {
  1438.         label: "健康",
  1439.         value: 33
  1440.     }, {
  1441.         label: "美容",
  1442.         value: 34
  1443.     }];
  1444.     var k = T.recommendUsers(g, p.user, h, n),
  1445.         m = TUI.view.select(j, {
  1446.             event: a
  1447.         }),
  1448.         l = n && n.tweet || TUI.Model.tweet({
  1449.             event: a,
  1450.             db: p
  1451.         });
  1452.     g.addComponent({
  1453.         recommendUser: k
  1454.     });
  1455.     m.event.bind("change", function (q, r) {
  1456.         e(r);
  1457.         d(r)
  1458.     });
  1459.  
  1460.     function f(q, r) {
  1461.         m.select("value", q);
  1462.         if (r) {
  1463.             m.fire()
  1464.         }
  1465.     }
  1466.     function e(q) {
  1467.         l.getStamps().length = 0;
  1468.         l.older($.extend(b, {
  1469.             channel: q
  1470.         }), function (r) {
  1471.             c("dataContainer").html(TUI.convertTpl("page/mydou/v2/channel/stream.tpl", {
  1472.                 db: p,
  1473.                 d: r.actmsg,
  1474.                 mod: l,
  1475.                 visibleSize: b.visibleSize || 4
  1476.             }))
  1477.         })
  1478.     }
  1479.     function d(q) {
  1480.         k.el("data").html("");
  1481.         k.config({
  1482.             page: 1,
  1483.             channel: q
  1484.         });
  1485.         k.load()
  1486.     }
  1487.     return g.mix({
  1488.         channel: f,
  1489.         loadStream: e,
  1490.         loadRecommends: d,
  1491.         getSelector: function () {
  1492.             return m
  1493.         }
  1494.     })
  1495. });
  1496. TUI.ns("TUI.Model.tweetComment", function (c) {
  1497.     var a = c.event || TUI.event,
  1498.         j = c.db || TUI.accessor(),
  1499.         e = [];
  1500.  
  1501.     function h(m, l, k, o) {
  1502.         var n = {
  1503.             datePoint: m || 0,
  1504.             pageSize: l,
  1505.             uid: k
  1506.         };
  1507.         if (TUI.isPlainObject(o)) {
  1508.             n.isAsc = o.isAsc || 0;
  1509.             o = o.callback ||
  1510.             function () {}
  1511.         }
  1512.         $.getJSON(tui_domain + "/myComment.html", n, function (p) {
  1513.             b(p);
  1514.             if (o && o(p) === false) {
  1515.                 return
  1516.             }
  1517.             if (p.status == 1) {
  1518.                 a.fire("getMyComments:success", [p])
  1519.             }
  1520.         })
  1521.     }
  1522.     function f(m, l, k, o) {
  1523.         var n = {
  1524.             datePoint: m || 0,
  1525.             pageSize: l,
  1526.             uid: k
  1527.         };
  1528.         if (TUI.isPlainObject(o)) {
  1529.             n.isAsc = o.isAsc || 0;
  1530.             o = o.callback ||
  1531.             function () {}
  1532.         }
  1533.         $.getJSON(tui_domain + "/commentMe.html", n, function (p) {
  1534.             b(p);
  1535.             if (o && o(p) === false) {
  1536.                 return
  1537.             }
  1538.             if (p.status == 1) {
  1539.                 a.fire("getCommentsMe:success", [p])
  1540.             }
  1541.         })
  1542.     }
  1543.     function d(n, m, l, k, o) {
  1544.         o = o ||
  1545.         function () {};
  1546.         $.getJSON(tui_domain + "/comment.html?method=get&" + $.param({
  1547.             currentPage: m || 1,
  1548.             pageSize: l,
  1549.             tid: n,
  1550.             uid: k
  1551.         }) + "&callback=?", function (p) {
  1552.             p.status = 1;
  1553.             b(p);
  1554.             if (o(p) === false) {
  1555.                 return
  1556.             }
  1557.             if (p.status == 1) {
  1558.                 a.fire("getTweetComment:success", [p, n])
  1559.             }
  1560.         })
  1561.     }
  1562.     function i(n, m, l, k, o) {
  1563.         o = o ||
  1564.         function () {};
  1565.         $.getJSON(tui_domain + "/comment.html?method=add&" + $.param({
  1566.             parentId: l || "",
  1567.             content: m,
  1568.             tid: n,
  1569.             uid: k
  1570.         }) + "&callback=?", function (p) {
  1571.             if (o(p) === false) {
  1572.                 return
  1573.             }
  1574.             if (p.status == 1) {
  1575.                 a.fire("addTweetComment:success", [p, n])
  1576.             } else {
  1577.                 a.fire("addTweetComment:fail", [p, n])
  1578.             }
  1579.         })
  1580.     }
  1581.     function g(m, k, l) {
  1582.         l = l ||
  1583.         function () {};
  1584.         $.getJSON(tui_domain + "/comment.html?method=delete&" + $.param({
  1585.             id: m,
  1586.             uid: k
  1587.         }) + "&callback=?", function (n) {
  1588.             if (l(n) === false) {
  1589.                 return
  1590.             }
  1591.             if (n.status == 1) {
  1592.                 a.fire("delTweetComment:success", [n, m])
  1593.             }
  1594.         })
  1595.     }
  1596.     function b(k) {
  1597.         if (k.status != 1) {
  1598.             return
  1599.         }
  1600.         var l;
  1601.         j.user.mix(k.user);
  1602.         for (l in k.tui) {
  1603.             if (k.tui[l].status) {
  1604.                 $.extend(k.tui[l], parseAt.all(k.tui[l].memo, j.user));
  1605.                 k.tui[l].memo = k.tui[l].txt
  1606.             }
  1607.             j.tweet(l, k.tui[l])
  1608.         }
  1609.         k.comment.forEach(function (m) {
  1610.             $.extend(m, parseAt.all(m.content, j.user));
  1611.             m.content = m.txt;
  1612.             j.comment(m.id, m)
  1613.         });
  1614.         j.program.mix(k.item)
  1615.     }
  1616.     return {
  1617.         getMyComments: h,
  1618.         getCommentsMe: f,
  1619.         get: d,
  1620.         add: i,
  1621.         del: function (m, k, l) {
  1622.             if ($.type(m) == "string") {
  1623.                 m = j.comment(m)
  1624.             }
  1625.             g(m.id, k, l)
  1626.         }
  1627.     }
  1628. });
  1629. var tpl_page_index_v2_irec = '<div class="h"> <h2><span>推荐给我</span></h2> <div class="aw"></div> </div> <div class="c"> <div id="iRec" class="sc4"> <%data.forEach(function(item, i){%> <% var vu = main_domain + \'/programs/view/\' + item.code + \'/?fr=rec2\'; %> <div class="pack pack_video_card" id="irec_<%=item.model%>_<%=i+1%>"> <div class="pic"> <a href="<%=vu%>" model="<%=item.model%>" itemid="<%=item.itemId%>" title="<%=item.title%>" target="new" class="inner" coords="_tAA"><img width="132" height="99" src="<%=item.picUrl%>" alt="<%=item.title%>" class="pack_clipImg"/></a> </div> <div class="txt"> <h6 class="caption"><a href="<%=vu%>" model="<%=item.model%>" itemid="<%=item.itemId%>" target="new" title="<%=item.title%>" coords="_tAB"><%=TUI.escapeHTML(TUI.substr(item.title, 28))%></a></h6> <ul class="info"> <li>播客: <a title="<%=item.ownerName%>" href="<%=main_domain%>/home/_<%=item.ownerId%>" target="_blank" coords="_tK@"><%=TUI.escapeHTML(item.ownerName)%></a> <%if(item.director == \'1\'){%> <a target="_blank" title="更多豆角儿" href="<%=main_domain%>/my/dj/"><img src="<%=css_domain%>/skin/__g/img/sprite.gif" class="sprite sprite_director" alt="豆角儿!"/></a> <%};%> </li> <li class="d_nums"> <span class="d_play" title="播放"><%=item.playAmount%></span> <span class="d_cmt" title="评论"><%=item.commentCount%></span> </li> </ul> </div> </div> <%});%> </div> </div> ';
  1630. if (!$.type) {
  1631.     $.type = TUI.type
  1632. }
  1633. TUI.ns("TUI.irec", function (e, h, b, d) {
  1634.     var f = e && e.event || new TUI.eventClass(),
  1635.         g = TUI.app({
  1636.             event: f,
  1637.             element: $.extend({
  1638.                 wrap: "@#iRec"
  1639.             }, b || {}),
  1640.             handler: $.extend({
  1641.                 "getIRec:success": function (i) {
  1642.                     c("wrap").html(TUI.convertTpl("page/index/v2/irec.tpl", {
  1643.                         data: i
  1644.                     })).slideDown();
  1645.                     window.initQuick(c("wrap"))
  1646.                 }
  1647.             }, d || {})
  1648.         }),
  1649.         c = g.el,
  1650.         h = $.extend({
  1651.             userid: uid,
  1652.             juid: TUI.cookie("juid"),
  1653.             channel: 0,
  1654.             count: 4
  1655.         }, h || {});
  1656.     if (!uid) {
  1657.         TUI.storage("local-view-records@global").ready(function (i) {
  1658.             if (i) {
  1659.                 var j = [];
  1660.                 i.replace(/\"iid\":(\d+)\,/g, function (l, k) {
  1661.                     if (k) {
  1662.                         j.push(k)
  1663.                     }
  1664.                 });
  1665.                 h.items = j.join(",")
  1666.             }
  1667.         })
  1668.     }
  1669.     function a() {
  1670.         $.getJSON(tjpt_domain + "/tjpt/recommend?callback=?", h, function (i) {
  1671.             if (i.status == "1") {
  1672.                 f.fire("getIRec:success", [i.recommendItems, i])
  1673.             }
  1674.         })
  1675.     }
  1676.     return g.mix({
  1677.         load: function () {
  1678.             if (uid) {
  1679.                 a()
  1680.             } else {
  1681.                 TUI.storage("local-view-records@global").ready(function (i) {
  1682.                     i = i || [];
  1683.                     if (i.length) {
  1684.                         var j = [];
  1685.                         i.replace(/\"iid\":(\d+)\,/g, function (l, k) {
  1686.                             if (k) {
  1687.                                 j.push(k)
  1688.                             }
  1689.                         });
  1690.                         h.items = j.join(",")
  1691.                     }
  1692.                     a()
  1693.                 })
  1694.             }
  1695.         }
  1696.     })
  1697. });
  1698. var tpl_page_index_v2_userSub = '<div class="h <%if(!window.uid){%>anonymous<%};%>"> <h2> <%if(window.uid){%> <a href="<%=tui_domain%>/got/" target="_blank">我的土豆</a> <%}else{%> <a href="<%=tui_domain%>/square.html" target="_blank">大家正在推</a> <%};%> </h2> <div class="ap"> <ul> <li><a href="<%=tui_domain%>/follow/" target="_blank">关注的人</a></li> <li><a href="<%=tui_domain%>/follow/playlist.html" target="_blank">关注的豆单</a></li> </ul> </div> <div class="diyselect" id="mnDiyselect"> </div> <span class="arrow"></span> </div> <div class="c"> <div class="tui"> <div id="stream"> <div id="streamContainer" class="stream"></div> </div> <%if(window.uid){%> <a class="mo" href="<%=tui_domain%>/got/" target="_blank">查看更多</a> <%}else{%> <a class="mo" href="<%=tui_domain%>/square.html" target="_blank">查看更多</a> <%};%> </div> <div class="recom"> <h3>有趣的人</h3> <div id="recommendUsers" class="showcase"></div> <a id="changeRecoms" href="#">换一组</a> </div> </div>';
  1699. var tpl_page_mydou_v2_channel_noresult = '<div class="no_result"> <p class="text"> 呦,还没人最近发过推。<br/>或者该频道下暂时没有相关的推。</p> <div class="todo"> <p> 你可以</p> <ul> <li>去<a href="<%=tui_domain%>/square.html" target="_blank">土豆广场</a>找找感兴趣的人!</li> <li><a href="<%=main_domain%>/my/setting/findFriend.action" target="_blank">找到认识的朋友</a>,关注他们,就会在这里随时看到他们推的最新视频。</li> </ul> </div> </div> ';
  1700. var tpl_page_mydou_v2_profile_profilePanel = '<%if(id != 0 && status != 0){ var uu = TUI.Model.common.getUserHomeUrl(name), unic = nic; %> <div class="user_pack"> <div class="pic"> <a target="_blank" href="<%=uu%>" title="<%=unic%>"><img width="50" height="50" src="<%=pic%>"></a> </div> <div class="txt"> <div class="name"><a target="_blank" title="<%=unic%>" href="<%=uu%>"><%=unic%></a><%if(isVuser){%><span class="vip_user"></span><%}%></div> <div class="info"><%if(sex==\'\'){%><span class="male"></span><%}else if(sex==\'\'){%><span class="female"></span><%}else{%><%=sex%><%};%><%if(location!=\'\'){%><span class="location"><%=location%></span><%}%></div> <div class="summary"> <ul> <li> <a href="<%=main_domain%>/home/tui/u<%=id%>t3.html" target="_blank"><%=subNum%><span>关注</span></a> </li> <li> <a href="<%=main_domain%>/home/tui/u<%=id%>t2.html" target="_blank"><%=subedNum%><span>粉丝</span></a> </li> <li> <a href="<%=main_domain%>/home/tui/u<%=id%>t1.html" target="_blank"><%=twtNum%><span>推</span></a> </li> <li class="last"> <a href="<%=main_domain%>/home/item_u<%=id%>s0p1.html" target="_blank"><%=itemNum%><span>视频</span></a> </li> </ul> </div> <%if(desc!=\'\'){%><div class="desc"><%=desc%></div><%}%> </div> </div> <%if(uid != id){%> <div class="do"> <%if(relationship > 1){%> <a class="private_message" target="_blank" href="http://message.tudou.com/addMsg.html?u=<%=id%>">私信</a> <%}%> <div class="follow_wrap"> <span class="eachother" <%if(relationship != 3){%>style="display: none"<%}%>></span> <%if(relationship == 1 || relationship == 3){%> <span class="unfollow_btn">已关注<a class="unfollow" uid="<%=id%>" href="#">取消</a></span> <%}else{%> <span class="follow_btn"><a class="follow" uid="<%=id%>" href="#">加为关注</a></span> <%}%> </div> </div> <%}%> <%}else{%> <p class="not_exist">貌似这个昵称不存在:(</p> <%}%>';
  1701. TUI.ns("T.panel", function (f) {
  1702.     var a, e;
  1703.     $("#tudou_panel").remove();
  1704.     if (typeof f == "string") {
  1705.         f = {
  1706.             content: f
  1707.         }
  1708.     }
  1709.     f = $.extend({
  1710.         btns: [],
  1711.         content: "",
  1712.         title: "",
  1713.         className: "",
  1714.         mask: true,
  1715.         size: {
  1716.             minHeight: 1,
  1717.             minWidth: 1
  1718.         }
  1719.     }, f || {});
  1720.     var c = [f.content, f.title || ""];
  1721.     for (var d = 0, b = f.btns.length; d < b; d += 2) {
  1722.         c.push({
  1723.             value: f.btns[d],
  1724.             handler: f.btns[d + 1]
  1725.         })
  1726.     }
  1727.     c.push({
  1728.         mask: f.mask,
  1729.         size: f.size,
  1730.         className: "tudou_panel tweet_dlg " + f.className,
  1731.         afterLoaded: function () {
  1732.             this.getUI("holder").after('<div class="bg"></div>');
  1733.             this.getUI("holder").parent().addClass("tudou_panel_inn").after('<div class="sin"></div>')
  1734.         }
  1735.     });
  1736.     var a = (TUI.panel2 || TUI.panel).apply(null, c);
  1737.     return a
  1738. });
  1739. TUI.ns("T.profilePanel", function (m, n) {
  1740.     var g = '<div class="profile_loading"><img src="http://at-img1.tdimg.com/board/2011/1/loading.gif" style="margin: 0 auto;"></div>';
  1741.     var b = m && m.event || new TUI.eventClass(),
  1742.         d = TUI.app({
  1743.             event: b,
  1744.             handler: {
  1745.                 "profilePanel:in": function () {
  1746.                     clearTimeout(i)
  1747.                 },
  1748.                 "profilePanel:out": function () {
  1749.                     i = setTimeout(function () {
  1750.                         f()
  1751.                     }, 500)
  1752.                 },
  1753.                 "mouseover body": function (o) {
  1754.                     if (o.target.className != "atUser") {
  1755.                         return
  1756.                     }
  1757.                     if (i) {
  1758.                         clearTimeout(i)
  1759.                     }
  1760.                     i = setTimeout(function () {
  1761.                         l(o.target)
  1762.                     }, 200)
  1763.                 },
  1764.                 "mouseout body": function (o) {
  1765.                     if (o.target.className != "atUser") {
  1766.                         return
  1767.                     }
  1768.                     if (i) {
  1769.                         clearTimeout(i)
  1770.                     }
  1771.                     i = setTimeout(function () {
  1772.                         f()
  1773.                     }, 500)
  1774.                 }
  1775.             },
  1776.             beforeSetup: function () {
  1777.                 if (!uid) {
  1778.                     return false
  1779.                 }
  1780.             }
  1781.         }),
  1782.         k = TUI.Model.userSubscribe($, TUI, {
  1783.             event: m.event,
  1784.             db: n.user
  1785.         }),
  1786.         a, h, j, i;
  1787.  
  1788.     function e(r, t) {
  1789.         var q = $("#gTop").width(),
  1790.             p = $(r).offset().left - $("#gTop").offset().left,
  1791.             s = q - p > 400,
  1792.             o = ($(r).offset().top - document.documentElement.scrollTop) > 150,
  1793.             u, v;
  1794.         if (s) {
  1795.             u = o ? 11 : 7
  1796.         } else {
  1797.             u = o ? 1 : 5
  1798.         }
  1799.         TUI.stick(r, t[0], u);
  1800.         t[0].className = t[0].className.replace(/profile_pos_\d+/, "");
  1801.         t.addClass((u == 5 || u == 7) ? "profile_pos_6" : "profile_pos_12");
  1802.         if (u < 6) {
  1803.             t.find(".sin").css("left", "270px")
  1804.         }
  1805.     }
  1806.     function l(t) {
  1807.         var r = $(t),
  1808.             q = r.attr("uid"),
  1809.             p = r.attr("unic");
  1810.         var o = $("#tudou_panel");
  1811.         if (!p) {
  1812.             p = n.user(q).nic
  1813.         }
  1814.         if (h == p) {
  1815.             if (j != t) {
  1816.                 e(t, o);
  1817.                 j = t
  1818.             }
  1819.             return
  1820.         }
  1821.         j = t;
  1822.         h = p;
  1823.         u();
  1824.         var s = $("#tudou_panel").height();
  1825.         TUI.getJSON(tui_domain + "/userInfo.html", {
  1826.             nic: p
  1827.         }, function (v) {
  1828.             v.id = v.uid;
  1829.             delete v.uid;
  1830.             v.twtNum = v.actNum;
  1831.             v.pic = v.userpic;
  1832.             v.name = v.username;
  1833.             v.nic = v.nickname;
  1834.             n.user(v.id, v);
  1835.             $("#tudou_panel .tui_panel_content").html(TUI.convertTpl("page/mydou/v2/profile/profilePanel.tpl", v));
  1836.             $("#tudou_panel").css({
  1837.                 top: parseInt($("#tudou_panel").css("top")) - $("#tudou_panel").height() + s
  1838.             })
  1839.         }, {
  1840.             charset: "utf-8",
  1841.             callbackName: "callback"
  1842.         });
  1843.  
  1844.         function u() {
  1845.             var v = g;
  1846.             a = T.panel({
  1847.                 content: "<!--noicon,nobutton,nocenter-->" + v,
  1848.                 className: "profile_panel",
  1849.                 mask: false,
  1850.                 size: {
  1851.                     minHeight: 1,
  1852.                     minWidth: 1
  1853.                 }
  1854.             });
  1855.             o = $("#tudou_panel");
  1856.             if (q == window.uid) {
  1857.                 o.addClass("profile_self")
  1858.             }
  1859.             o.mouseover(function () {
  1860.                 b.fire("profilePanel:in", [h, j])
  1861.             }).mouseout(function () {
  1862.                 b.fire("profilePanel:out", [h, j])
  1863.             });
  1864.             o.eventProxy("click", {
  1865.                 ".follow": function (y) {
  1866.                     var x = $(y.target),
  1867.                         w = x.attr("uid");
  1868.                     k.follow(uid, w, function (z) {
  1869.                         if (z.status == 1) {
  1870.                             if (n.user(w).relationship == 3) {
  1871.                                 x.closest(".do").find(".eachother").show()
  1872.                             }
  1873.                             x.closest(".follow_btn").html('已关注<a href="#" uid="' + w + '" class="unfollow">取消</a>')[0].className = "unfollow_btn"
  1874.                         } else {
  1875.                             TUI.panel(z.msg)
  1876.                         }
  1877.                     })
  1878.                 },
  1879.                 ".unfollow": function (y) {
  1880.                     var x = $(y.target),
  1881.                         w = x.attr("uid");
  1882.                     k.unfollow(uid, w, function (z) {
  1883.                         if (z.status == 1) {
  1884.                             x.closest(".do").find(".eachother").hide();
  1885.                             x.closest(".unfollow_btn").html('<a href="#" uid="' + w + '" class="follow">加为关注</a>')[0].className = "follow_btn"
  1886.                         } else {
  1887.                             TUI.panel(z.msg)
  1888.                         }
  1889.                     })
  1890.                 }
  1891.             });
  1892.             if (t) {
  1893.                 setTimeout(function () {
  1894.                     e(t, o)
  1895.                 }, 200)
  1896.             }
  1897.         }
  1898.     }
  1899.     function f() {
  1900.         if (a) {
  1901.             a.close();
  1902.             a = null;
  1903.             h = null;
  1904.             j = null
  1905.         }
  1906.     }
  1907.     function c() {
  1908.         return !!a
  1909.     }
  1910.     return d.mix({
  1911.         show: l,
  1912.         hide: f,
  1913.         visible: c
  1914.     })
  1915. });
  1916. var tpl_page_mydou_v2_profile_userInfo = '<% var uu = TUI.Model.common.getUserHomeUrl(username), unic = nickname, pageId = window.pageId; %> <div class="user_pack"> <div class="pic"> <a target="_blank" href="<%=uu%>" title="<%=unic%>"><img width="50" height="50" src="<%=userpic%>"<%if(window.uid != id){ %> class="atUser" unic="<%=nickname%>"<%} %>></a> <%if(isXN){ %><span class="xn"></span><%} %> <%if(isSINA){ %><span class="sina"></span><%} %> <%if(isQZONE){ %><span class="qzone"></span><%} %> <%if(isMSN){ %><span class="msn"></span><%} %> <%if(isTWEIBO){ %><span class="tweibo"></span><%} %> <%if(isKAIXIN){ %><span class="kaixin"></span><%} %> <%if(isFEIXIN){ %><span class="feixin"></span><%} %> </div> <div class="txt"> <div class="name"> <a target="_blank" title="<%=unic%>" href="<%=uu%>"<%if(window.uid != id){ %> class="atUser" unic="<%=nickname%>"<%} %>><%=unic %></a> <%if(isVuser){ %> <span class="vip_user"></span> <%} %> </div> <div class="link"> <%if(window.uid == id){ %> <a target="_blank" title="<%=unic%>" href="<%=main_domain%>/my/tui/got/">我的土豆</a> <%} %> <a target="_blank" title="<%=unic%>" href="<%=uu%>">个人主页</a> </div> </div> </div> <div class="my_summary"> <ul> <%if([120,201,202,203].indexOf(pageId) > -1){ %> <li> <a href="<%=main_domain%>/home/tui/u<%=id%>t3.html"<%=pageId==120 ? \'target="_blank"\' : \'\' %>><%=subNum %><span>关注</span></a> </li> <li> <a href="<%=main_domain%>/home/tui/u<%=id%>t2.html"<%=pageId==120 ? \'target="_blank"\' : \'\' %>><%=subedNum %><span>粉丝</span></a> </li> <li class="last"> <a href="<%=main_domain%>/home/tui/u<%=id%>t1.html"<%=pageId==120 ? \'target="_blank"\' : \'\' %>><%=actNum %><span>推</span></a> </li> <%}else{ %> <li> <a href="<%=tui_domain%>/follow/"><%=subNum %><span>关注</span></a> </li> <li> <a href="<%=tui_domain%>/fans/"><%=subedNum %><span>粉丝</span></a> </li> <li class="last"> <a href="<%=tui_domain%>/act/"><%=actNum %><span>推</span></a> </li> <%} %> </ul> </div> <div class="my_titles"> <ul> <%if(isDirector){ %> <li> <a class="dou_title dou_director" title="豆角" href="<%=main_domain%>/my/dj/" target="_blank">豆角</a> </li> <%} %> <li> <a class="dou_title dou_lv dou_lv_<%=level%>" title="豆花<%=level%>级!" href="<%if(window.uid == id){%><%=main_domain%>/my/douhua/<%}else{%><%=main_domain%>/community/intro.html<%};%>" target="_blank">豆花<%=level %>级</a> </li> <%if(isLandlord){ %> <li> <a class="dou_title dou_lord" title="豆地主!" href="<%=main_domain%>/community/doudizu.html" target="_blank">豆地主</a> </li> <%} %> </ul> </div> <%if(window.uid != id){ %> <div class="my_follow"> <div id="followBtnWrap"></div> </div> <%}%>';
  1917. TUI.ns("T.profile", function (b, a, e) {
  1918.     e = e || uid;
  1919.     var c = b && b.event || new TUI.eventClass(),
  1920.         d = TUI.app({
  1921.             event: c,
  1922.             setup: function () {
  1923.                 this.setupUI();
  1924.                 this.bind();
  1925.                 $.getJSON(tui_domain + "/userInfo.html?uid=" + e + "&callback=?", function (f) {
  1926.                     if (f.status != 1) {
  1927.                         return
  1928.                     }
  1929.                     f.id = e;
  1930.                     d.el("wrap").html(TUI.convertTpl("page/mydou/v2/profile/userInfo.tpl", f)).fadeIn();
  1931.                     c.fire("appLoaded", ["profile", +new Date()])
  1932.                 });
  1933.                 this.model.userSub.isFollow(e, function (f) {
  1934.                     $("#followBtnWrap").html(f.subFlag != 1 ? '<span class="follow_btn"><a class="follow" href="#">加为关注</a></span>' : '<span class="unfollow_btn">已关注<a class="unfollow" href="#">取消</a></span>')
  1935.                 })
  1936.             },
  1937.             model: {
  1938.                 userSub: TUI.Model.userSubscribe($, TUI, {
  1939.                     event: c
  1940.                 })
  1941.             },
  1942.             element: $.extend({
  1943.                 wrap: "@#profile"
  1944.             }, a || {}),
  1945.             handler: {
  1946.                 "@wrap .follow": function (g) {
  1947.                     var f = $(g.target);
  1948.                     d.model.userSub.follow(uid, e, function (h) {
  1949.                         if (h.status == 1 || h.status == -3) {
  1950.                             f.closest(".follow_btn").html('已关注<a href="#" class="unfollow">取消</a>')[0].className = "unfollow_btn"
  1951.                         } else {
  1952.                             TUI.panel(h.msg)
  1953.                         }
  1954.                     })
  1955.                 },
  1956.                 "@wrap .unfollow": function (g) {
  1957.                     var f = $(g.target);
  1958.                     d.model.userSub.unfollow(uid, e, function (h) {
  1959.                         if (h.status == 1) {
  1960.                             f.closest(".unfollow_btn").html('<a class="follow" href="#">加为关注</a>')[0].className = "follow_btn"
  1961.                         } else {
  1962.                             TUI.panel(h.msg)
  1963.                         }
  1964.                     })
  1965.                 }
  1966.             }
  1967.         });
  1968.     return d
  1969. });
  1970. TUI.ns("TUI.getRequestParam", function (d) {
  1971.     var a = {},
  1972.         c = location.search.substring(1).split("&");
  1973.     for (var b = 0; b < c.length; b++) {
  1974.         var e = c[b].indexOf("=");
  1975.         if (e == -1) {
  1976.             continue
  1977.         }
  1978.         a[c[b].substring(0, e)] = unescape(c[b].substring(e + 1))
  1979.     }
  1980.     return a
  1981. });
  1982. TUI.domain.join({
  1983.     tjpt: "tjpt.my.tudou.com"
  1984. });
  1985. if (!$.type) {
  1986.     $.type = TUI.type
  1987. }
  1988. function getLoginUserData() {
  1989.     $("#iSub").html(TUI.convertTpl("page/index/v2/userSub.tpl", {}));
  1990.     var a = TUI.app(),
  1991.         h = {
  1992.             program: TUI.accessor(),
  1993.             playlist: TUI.accessor(),
  1994.             tweet: TUI.accessor(),
  1995.             tuya: TUI.accessor(),
  1996.             user: TUI.accessor(),
  1997.             comment: TUI.accessor(),
  1998.             plupdate: TUI.accessor()
  1999.         };
  2000.     mod = {
  2001.         tweet: TUI.Model.tweet({
  2002.             event: a.event,
  2003.             db: h
  2004.         }),
  2005.         user: TUI.Model.userSubscribe($, TUI, {
  2006.             event: a.event
  2007.         })
  2008.     }, streamConfig = {
  2009.         uid: uid,
  2010.         type: uid ? 0 : 6,
  2011.         size: 8,
  2012.         db: h
  2013.     }, noResultHtml = TUI.convertTpl("page/mydou/v2/channel/noresult.tpl", {});
  2014.     var f = true;
  2015.     var c = T.channel(a, h, mod, streamConfig, {
  2016.         visibleSize: 3,
  2017.         type: 2
  2018.     }),
  2019.         i = T.profilePanel(a, h),
  2020.         g = TUI.irec(a, {
  2021.             channel: 0,
  2022.             count: 4
  2023.         }, {
  2024.             wrap: "@#recTabBox"
  2025.         });
  2026.     a.addComponent({
  2027.         channel: c,
  2028.         profilePanel: i,
  2029.         iRec: g
  2030.     });
  2031.     a.setup();
  2032.     channelSelContainer = $("#mnDiyselect");
  2033.     c.getSelector().render(channelSelContainer);
  2034.     if (uid) {
  2035.         $("#recTabBox").css({
  2036.             marginBottom: "0",
  2037.             top: "-14px"
  2038.         })
  2039.     }
  2040.     g.load();
  2041.     c.bind({
  2042.         change: function () {
  2043.             channelSelContainer.find(".options div:gt(4)").addClass("secondary");
  2044.             channelSelContainer.find(".secondary:lt(2)").addClass("edge")
  2045.         },
  2046.         "older:success": function (j) {
  2047.             if (!j.actmsg.length) {
  2048.                 setTimeout(function () {
  2049.                     c.el("dataContainer").html(noResultHtml);
  2050.                     $("#iSub .mo").hide()
  2051.                 }, 0)
  2052.             } else {
  2053.                 $("#iSub .mo").show()
  2054.             }
  2055.             if (f) {
  2056.                 setTimeout(function () {
  2057.                     $("#iSub").slideDown()
  2058.                 }, 300);
  2059.                 f = false
  2060.             }
  2061.         }
  2062.     });
  2063.     var d = {
  2064.         imake: 99,
  2065.         tv: 30,
  2066.         movie: 22,
  2067.         zy: 31,
  2068.         news: 29,
  2069.         fortune: 24,
  2070.         auto: 26,
  2071.         it: 21,
  2072.         sports: 15,
  2073.         ent: 1,
  2074.         music: 14,
  2075.         cartoon: 9,
  2076.         game: 10,
  2077.         fun: 5,
  2078.         fashion: 32,
  2079.         lady: 27,
  2080.         life: 3,
  2081.         edu: 25,
  2082.         health: 33,
  2083.         beauty: 34
  2084.     },
  2085.         b = 0;
  2086.     if (window.SUBDOMAIN) {
  2087.         b = d[SUBDOMAIN]
  2088.     }
  2089.     if (uid) {
  2090.         isLogined(function () {
  2091.             c.channel(b, b ? null : true);
  2092.             T.profile({
  2093.                 event: new TUI.eventClass()
  2094.             }, {
  2095.                 wrap: "@#myInfo"
  2096.             }, window.homeUserId || window.uid).bind({
  2097.                 appLoaded: function () {
  2098.                     $("#iLog").hide();
  2099.                     $("#myInfo").show().find("a").each(function () {
  2100.                         $(this).attr("target", "_blank")
  2101.                     })
  2102.                 }
  2103.             }).setup()
  2104.         })
  2105.     }
  2106.     e();
  2107.     $.extend(window, {
  2108.         db: h
  2109.     });
  2110.  
  2111.     function e() {
  2112.         $.getJSON(tjpt_domain + "/tjpt/service/getData?" + (location.search.indexOf("mockForTest") != -1 ? "mockForTest&" + $.param(TUI.getRequestParam()) : "") + "&userId=" + uid + "&keys=tjLocal,location&callback=?", function (n) {
  2113.             if (n.tjLocal && n.tjLocal.status == 1) {
  2114.                 var k = n.tjLocal.datas || {};
  2115.                 for (var m = 0, l = k.length > 2 ? 2 : k.length; m < l; m++) {
  2116.                     $("#moFocus .bc:eq(0) li:eq(" + (m + 1) + ")").html(TUI.convertTpl('<a target="new" title="<%=itemTitle%>" href="<%=itemUrl%>">【<%=tag%>】<%=itemTitle%></a>', k[m]))
  2117.                 }
  2118.             }
  2119.             if (n.location && n.location.status == 1) {
  2120.                 var k = n.location.datas || {};
  2121.                 for (var m = 0, l = k.length > 2 ? 2 : k.length; m < l; m++) {
  2122.                     $("#moFocus .bc:eq(1) li:eq(" + m + ")").html(TUI.convertTpl('<a target="new" title="<%=title%>" href="<%=main_domain%>/programs/view/<%=code%>"><%=title%></a>', k[m]))
  2123.                 }
  2124.             }
  2125.         })
  2126.     }
  2127. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement