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.