Вход Регистрация
Файл: js/al/tooltips.js
Строк: 385
<?php
var tooltips = {
  
show: function(eloptions) {
    if (
el.hidetimer) {
      if (
el.hidetimerclearTimeout(el.hidetimer);
      
el.hidetimer 0;
      return;
    }
    if (!
el.tt) return;
    if (
el.ttimerclearTimeout(el.ttimer);

    var 
opts extend(el.tt.opts ? clone(el.tt.opts) : {}, options || {});
    if (!
el.tt.el) {
      
el.tt 'show';
      
el.ttimer setTimeout(function() {
        if (
el.tt.el) {
          
opts.showdt 0;
          
tooltips.show(elopts);
          return;
        }
        
el.tt 'shownow';
      }, 
opts.showdt || 0);
      return;
    }
    var 
canshow opts.js ? (eval('(function(){return function(){var tip=this;' opts.js '};})()').apply(el.tt) !== false) : true;
    if (!
canshow) {
      return;
    }
    if (
isVisible(el.tt.container)) {
      if (!
el.tt.showing) {
        
animate(el.tt.container, {opacity1}, opts.showsp !== undefined opts.showsp 200);
      }
      return;
    }
    
el.ttimer setTimeout(function() {
      var 
container el.tt.container;
      if (
isVisible(container)) return;

      var 
fix el.tt.isFixed || falsexy opts.forcexy opts.forcexy getXY(elfix),
          
elsize opts.forcesize opts.forcesize getSize(el),
          
toup opts.toup,
          
asrtl vk.rtl && !opts.asrtl || opts.asrtl && !vk.rtl;
      if (!
elsize[0] && !elsize[1]) {
        
hide(el.tt.container);
        return;
      }

      
container.style.opacity 0;
      
show(container);
      
container.firstChild.className 'toup' + (opts.toup '');
      var 
st fix : (bodyNode.scrollTop || htmlNode.scrollTop || 0), ttsize getSize(container), needDown = (xy[1] - ttsize[1] - opts.shift[1]) < stneedUp = (xy[1] + elsize[1] + ttsize[1] + opts.shift[2] - lastWindowHeight) > st;
      if (
browser.msie7) {
        
setStyle(container, {widthttsize[0]});
      }

      var 
needLeft = (opts.black && lastWindowWidth && lastWindowWidth - (xy[0] + ttsize[0]) < 1);

      if (
toup && needDown) {
        
toup false;
      } else if (!
toup && needUp && !needDown) {
        
toup true;
      }
      if (
opts.forcetodowntoup false;
      if (
opts.forcetouptoup true;
      if (
toup != opts.toup || needLeft) {
        
container.firstChild.className 'toup' + (toup '') + (needLeft ' toleft' '');
        
ttsize getSize(container);
      }
      var 
newtop xy[1] + (toup ? -(ttsize[1] + opts.shift[1]) : (elsize[1] + opts.shift[2]));
      var 
starttop newtop intval(opts.slide) * (toup ? -1);
      var 
newleft xy[0] + (asrtl ? (opts.shift[0] + elsize[0] - ttsize[0]) : (toup ? -opts.shift[0] : -(opts.shift[3] || opts.shift[0])));
      if (
needLeft) {
        
newleft -= ttsize[0] - 39;
      }

      if (
opts.center && ttsize[0] != elsize[0]) {
        
newleft -= (ttsize[0] - elsize[0]) / 2;
        var 
pointer geByClass1(toup 'bottom_pointer' 'top_pointer'container)
        if (
pointer) {
          
setStyle(pointer, {marginLeft: ((ttsize[0] - getSize(pointer)[0]) / || 0) + 'px'});
        }
      }

      var 
startleft newleft intval(opts.slideX);

      
el.tt.showing true;
      
setStyle(container, {topstarttopleftstartleft});
      
animate(container, {topnewtopleftnewleftopacity1}, opts.showsp !== undefined opts.showsp 200, function() {
        
el.tt && el.tt.showing && (el.tt.showing false);
        if (
opts.onShowEndopts.onShowEnd();
      });
      if (
opts.onShowStartopts.onShowStart(el.tt);
    }, 
opts.showdt || 0);
  },
  
hide: function(eloptions) {
    if ((
options || {}).fasthide) {
      
clearTimeout(el.hidetimer);
      
clearTimeout(el.ttimer);
      
el.hidetimer 0;
      if (
el.tt && el.tt.elhide(el.tt.container);
      return;
    }
    if (
el.hidetimer) return;
    
el.hidetimer setTimeout(function() {
      
el.hidetimer 0;
      
clearTimeout(el.ttimer);
      if (!
el.tt || el.tt == 'hide' || el.tt.el && !isVisible(el.tt.container)) return;

      var 
opts extend(el.tt.opts ? clone(el.tt.opts) : {}, options || {});
      if (!
el.tt.el) {
        
el.tt 'hide';
        return;
      }
      
el.ttimer setTimeout(function() {
        if (!
opts.hasover) {
          
setStyle(el.tt.container, {pointerEvents'none'});
        }
        
fadeOut(el.tt.containeropts.showsp !== undefined opts.showsp 200, function() {
          
setStyle(el.tt.container, {pointerEvents'auto'});
        });
        if (
opts.onHide) {
          
opts.onHide();
        }
      }, 
opts.hidedt || 0);
    }, 
1);
  },
  
hideAll: function() {
    if (!
cur.tooltips) return;
    for (var 
0cur.tooltips.length; ++i) {
      if (
cur.tooltips[i].el && cur.tooltips[i].el.ttimer) {
        
clearTimeout(cur.tooltips[i].el.ttimer);
      }
      
cur.tooltips[i].hide({fasthidetrue});
    }
  },
  
rePositionAll: function() {
    if (!
cur.tooltips) return;
    for (var 
0cur.tooltips.length; ++i) {
      var 
opts cur.tooltips[i].opts;
      if (!
opts || !opts.nohideover && !opts.nohide) continue;

      var 
el cur.tooltips[i].el,
          
tt cur.tooltips[i],
          
container tt.container;

      var 
fix tt.isFixed || falsexy getXY(elfix),
          
elsize getSize(el),
          
asrtl vk.rtl && !opts.asrtl || opts.asrtl && !vk.rtl;
      if (!
elsize[0] && !elsize[1]) continue;

      var 
ttsize getSize(container);
      var 
needLeft = (opts.black && lastWindowWidth && lastWindowWidth - (xy[0] + ttsize[0]) < 1);
      var 
toup hasClass(container.firstChild'toup1');
      var 
newleft xy[0] + (asrtl ? (opts.shift[0] + elsize[0] - ttsize[0]) : (toup ? -opts.shift[0] : -(opts.shift[3] || opts.shift[0])));
      if (
needLeft) {
        
newleft -= ttsize[0] - 39;
      }
      if (
opts.center && ttsize[0] != elsize[0]) {
        
newleft -= (ttsize[0] - elsize[0]) / 2;
      }
      var 
startleft newleft intval(opts.slideX);
      
setStyle(container, {leftstartleft});
    }
  },
  
destroy: function(el) {
    if (!
el) return;

    
clearTimeout(el.ttimer);
    
clearTimeout(el.hidetimer);

    if (
el.tt && el.tt.el) {
      if (
el.tt.onCleanel.tt.onClean();

      
cleanElems(el.tt.container);
      
removeEvent(el'mouseout'el.tthide);
      if (
el.tt.container) { // somehow ?? it can be undefined here
        
bodyNode.removeChild(el.tt.container);
      }

      
el.tt.el false;
    }
    
removeAttr(el'tt''tthide''ttimer''hidetimer');
  },
  
destroyAll: function(ancestor) {
    if (!
cur.tooltips) return;

    for (var 
0cur.tooltips.length; ++i) {
      if (
ancestor && !isAncestor(cur.tooltips[i].elancestor)) {
        continue;
      }
      
cur.tooltips[i].destroy();
    }
    if (!
ancestor) {
      
delete cur.tooltips;
    }
  },

  
create: function(eloptions) {
    var 
opts extend({
      
shift: (options.black ? [1133] : [233]), // [leftShift, toupTopShift, notToupTopShift]
      
touptrue
    
}, options);
    if (!
el.tthide) {
      
el.tthide tooltips.hide.pbind(el);
      if (!
options.nohideaddEvent(el'mouseout'el.tthide);
    }
    var 
no_shadow opts.no_shadow ' no_shadow' '';
    if (!
opts.content) {
      if (
el.tt && !opts.force) {
        if (
el.hidetimer) {
          
clearTimeout(el.hidetimer);
          
el.hidetimer 0;
          return;
        }
        return;
      }
      if (!
opts.text) {
        if (!
opts.url) return;
        
clearTimeout(el.ttimer);
        
el.ttimer setTimeout(function() {
          
el.tt 'show';
          
ajax.post(opts.urlopts.params || {}, {onDone: function(htmljs) {
            var 
old el.ttoptions = clone(opts);
            
extend(options, {contenthtml || ' 'jsjs});
            
tooltips.create(eloptions);
            if (
old == 'shownow') {
              
tooltips.show(elextend(options, {showdt0}));
            }
          }, 
onFail: function() { return true; }});
          
tooltips.show(elopts);
        }, 
opts.ajaxdt || 0);
        return;
      }
      
opts.content '<div class="tt_text">' opts.text '</div>';
    }
    var 
cls = (opts.black 'ttb ' 'tt ') + (opts.className || '');
    if (
el.tt && el.tt.el) {
      var 
cont el.tt.container;
      if (
el.tt.onCleanel.tt.onClean();
      
geByClass1('wrapped'cont).innerHTML opts.content;
      
extend(el.tt, {
        
optsopts,
        
showtooltips.show.pbind(eloptions)
      });
      
cont.className cls;
      
hide(cont);
    } else {
      if (
opts.black) {
        var 
ce('div', {
          
innerHTML'<div><div class="top_pointer"></div><div class="ttb_cont">'+opts.content+'</div><div class="bottom_pointer"></div></div>',
          
classNamecls
        
}, {display'none'});
      } else {
        var 
ce('div', {
          
innerHTML'<table cellspacing="0" cellpadding="0">
    <tr><td colspan="3" class="tt_top"><div class="top_pointer"></div></td></tr>
    <tr>
      <td class="side_sh"></td>
      <td class="outer"><table cellspacing="0" cellpadding="0">
        <tr><td class="side_sh"></td>
          <td class="wrapped">' 
opts.content '</td>
        <td class="side_sh"></td></tr>
        <tr><td colspan="3"><div class="bottom_sh"></div></td></tr>
      </table></td>
      <td class="side_sh"></td>
    </tr>
    <tr><td colspan="3" class="tt_bottom"><div class="bottom_sh"></div><div class="bottom_pointer'
+no_shadow+'"></div></td></tr>
  </table>'
,
          
classNamecls
        
}, {display'none'});
      }
      
bodyNode.appendChild(c);
      var 
res extend({
        
elel,
        
optsopts,
        
showtooltips.show.pbind(eloptions),
        
hideel.tthide,
        
destroytooltips.destroy.pbind(el),
        
containerc
      
}, opts.tip || {});
      if (!
opts.nohideover && (!opts.text || opts.hasover)) {
        
addEvent(c'mouseover'res.show);
        
addEvent(c'mouseout' res.hide);
      }
      var 
isFixed falsepel el;
      while (
pel) {
        if (
getStyle(pel'position') == 'fixed') {
          
isFixed true;
          break;
        }
        
pel pel.offsetParent;
      }
      if (
isFixed) {
        
addClass(res.container'fixed');
        
setStyle(res.container, {position'fixed'});
      } else {
        
removeClass(res.container'fixed');
        
setStyle(res.container, {position'absolute'});
      }
      
res.isFixed isFixed;
      
el.tt res;
      if (!
cur.tooltips) {
        
cur.tooltips = [];
      }
      
cur.tooltips.push(res);
    }
    if (
opts.initopts.init(res);
  },
  
pollFastShare: function(posturlhashaidpoll_id) {
    
ajax.post('widget_poll.php', {
      
act'a_share',
      
sidpost,
      
urlurl,
      
hashhash,
      
appaid,
      
poll_idpoll_id,
      
no_widget1
    
}, {
      
onDone: function(t) {
        
el.innerHTML t;
      },
      
showProgress: function() {
        
show(el.previousSibling);
        
hide(el);
      },
      
hideProgress: function() {
        
hide(el.previousSibling);
        
show(el);
      }
    });
  },

  
pollVote: function(postoptionattachI) {
    var 
pr ge('poll_bottom' post);
    
ajax.post('widget_poll.php', {
      
act'a_vote',
      
option_idoption,
      
hashcur.polls[post].hash,
      
appcur.polls[post].aid,
      
poll_idcur.polls[post].id,
      
no_widget1,
      
urlcur.polls[post].url,
      
sidpost,
      
iattachI
    
}, {
      
onDone: function(htmljs) {
        var 
lnk ge('post_media_lnk' post '_' attachI), opts extend(lnk.tt.opts, {
          
className'wall_tt',
          
contenthtml || ' ',
          
showdt0,
          
jsjs
        
});
        
tooltips.create(lnkopts);
        
lnk.tt.show();
      },
      
showProgress: function() {
        
show(pr.nextSibling);
        
hide(pr);
      },
      
hideProgress: function() {
        
show(pr);
        
hide(pr.nextSibling);
      }
    });
  },

  
addAudio: function(eloidaidhash) {
    
ajax.post('audio.php', {
      
act'a_add',
      
oidoid,
      
aidaid,
      
hashhash
    
}, {
      
onDone: function() {
        
el.parentNode.replaceChild(ce('div', {className'fl_r add_audio_plus done'}), el);
      },
      
onFail: function() {
        return 
true;
      },
      
showProgress: function() {
        
hide(el.nextSibling);
        
show(el.previousSibling);
      },
      
hideProgress: function() {
        
hide(el.previousSibling);
        
show(el.nextSibling);
      }
    });
  }
}

try{
stManager.done('tooltips.js');}catch(e){}
?>
Онлайн: 0
Реклама