PageSourceSearch

https://www.nguoicham.com/PF.Base/static/jscript/user_info.js?v=dcbfd3

js nguoicham.com collected 2026-10-02 12:56:49 UTC 4,967 bytes, 163 lines download raw bytes

1var $bUserToolTipIsHover = false;
2var $bUserActualToolTipIsHover = false;
3var $iUserToolTipWaitTime = 900;
4var $iUserToolTipCloseTime = 900;
5var $oUserToolTipObject = null;
6var $sHoveringOn = null;
7var aHideUsers = new Array();
8var bUserInfoLogDebug = false;
9var bEnableUserTooltip = false;
10
11// get setting from header settings
12if (typeof oParams.enableUserTooltip !== 'undefined') {
13  bEnableUserTooltip = !!oParams.enableUserTooltip;
14}
15
16$(document).on('mouseleave', '.user_profile_link_span', function () {
17  $bUserToolTipIsHover = false;
18  $bUserActualToolTipIsHover = false;
19});
20
21$Core.userInfoLog = function (sLog) {
22  if (bUserInfoLogDebug) {
23    p(sLog);
24  }
25};
26
27$Core.loadUserToolTip = function ($sUserName) {
28  var d = new Date();
29  localStorage.setItem('tooltip_last', d.getTime());
30  setTimeout('$Core.showUserToolTip(\'' + $sUserName + '\');', $iUserToolTipWaitTime);
31};
32
33$Core.closeUserToolTip = function (sUser) {
34  var d = new Date();
35  var lastRun = localStorage.getItem('tooltip_last');
36  if (typeof lastRun != 'undefined' && lastRun > 0 && (d.getTime() - lastRun) < 2000) {
37    return;
38  }
39  if ($bUserActualToolTipIsHover === true && sUser == $sHoveringOn) {
40    $Core.userInfoLog('CANCEL CLOSE: ' + sUser);
41    return;
42  }
43
44  aHideUsers[sUser] = true;
45
46  $Core.userInfoLog('CLOSE: ' + sUser);
47
48  $('#js_user_tool_tip_cache_' + sUser + '').parent().parent().hide();
49  localStorage.setItem('tooltip_last', d.getTime());
50};
51
52$Core.showUserToolTip = function (sUser) {
53  var $oObj = $oUserToolTipObject;
54
55  $('.js_user_tool_tip_holder').hide();
56
57  if ($bUserToolTipIsHover === false) {
58    $Core.userInfoLog('NO LOAD: ' + sUser);
59    return;
60  }
61
62  if (isset(aHideUsers[sUser])) {
63    $Core.userInfoLog('HIDING: ' + sUser);
64    delete aHideUsers[sUser];
65    return;
66  }
67
68  if (sUser != $sHoveringOn) {
69    $Core.userInfoLog('NO SHOW: ' + sUser);
70    return;
71  }
72
73  $Core.userInfoLog('SHOWING: ' + sUser);
74
75  var $oOffset = $($oObj).offset();
76
77  var obj = $('#js_user_tool_tip_cache_' + sUser + '').parent().parent();
78  var pos = $(window).width() - ($oOffset.left + obj.width());
79  if (parseInt(pos) < 10) {
80    $oOffset.left = ($oOffset.left - obj.width()) + $($oObj).width();
81  }
82  var obj = $('#js_user_tool_tip_cache_' + sUser + '').parent().parent();
83  bodyCssTop = $('body').offset().top,
84    screenHeight = $(window).height(),
85    objHeight = obj.height(),
86    compareHeight = ($oOffset.top + objHeight + 16) - screenHeight;
87  obj.css('display', 'block')
88    .css('top', ($oOffset.top + 16) + 'px')
89    .css('left', $oOffset.left + 'px')
90    .css('transform', 'translateY(' + 0 + 'px)');
91  if (compareHeight > 0) {
92    obj.css('top', ($oOffset.top - (objHeight + 16)) + 'px')
93  }
94  if (bodyCssTop < 0) {
95    obj.css('transform', 'translateY(' + -bodyCssTop + 'px)');
96  }
97  obj.closest('.js_user_tool_tip_holder').on('mouseenter', function () {
98    $bUserActualToolTipIsHover = true;
99  }).on('mouseleave', function () {
100    $bUserActualToolTipIsHover = false;
101    setTimeout('$Core.closeUserToolTip(\'' + sUser + '\');', $iUserToolTipCloseTime);
102  });
103
104  $('span#js_user_name_link_' + sUser).on('mouseleave', function () {
105    setTimeout('$Core.closeUserToolTip(\'' + sUser + '\');', $iUserToolTipCloseTime);
106  });
107};
108
109$(document).on('click', '#main', function () {
110  $('.js_user_tool_tip_holder').fadeOut();
111});
112
113$Behavior.userHoverToolTip = function () {
114  if (!bEnableUserTooltip) {
115    return false;
116  }
117  $('.user_profile_link_span a, .user_profile_hover a').mouseover(function () {
118    $Core.userInfoLog(
119      '----------------------------- START -----------------------------');
120
121    var $sUserName = $(this).parent().attr('id').replace('js_user_name_link_', '');
122
123    if (empty($sUserName)) {
124      return;
125    }
126
127    if ($('#js_user_tool_tip_cache_' + $sUserName + '').length <= 0) {
128      $('body').append('<div class="js_user_tool_tip_holder"><div class="js_user_tool_tip_body"><div id="js_user_tool_tip_cache_' +
129        $sUserName + '"></div></div></div>');
130
131      $.ajaxCall('user.tooltip', 'user_name=' + $sUserName, 'GET');
132      $('#js_user_tool_tip_cache_' + $sUserName + '').mouseenter(function () {
133        $bUserActualToolTipIsHover = true;
134        $Core.userInfoLog('MOUSE ON');
135      }).mouseleave(function () {
136        oCloseObject = $(this).attr('id').replace('js_user_tool_tip_cache_', '');
137        setTimeout('$Core.closeUserToolTip(\'' + oCloseObject + '\');',
138          $iUserToolTipCloseTime);
139        $bUserActualToolTipIsHover = false;
140        $Core.userInfoLog('MOUSE OFF');
141      });
142    }
143
144    if (isset(aHideUsers[$sUserName])) {
145      delete aHideUsers[$sUserName];
146    }
147
148    $bUserToolTipIsHover = true;
149    $sHoveringOn = $sUserName;
150
151    $Core.userInfoLog('HOVER: ' + $sUserName);
152
153    $('.js_user_tool_tip_holder').hide();
154    $oUserToolTipObject = this;
155
156    if ($('#js_user_tool_tip_cache_' + $sUserName).html().length <= 0) {
157
158    }
159    else {
160      $Core.loadUserToolTip($sUserName);
161    }
162  });
163};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.