Вход Регистрация
Файл: js/api/widgets/al_like.js
Строк: 619
<?php
var like_loading false;
var 
like_anim false;
var 
like_hide_cb null;
var 
first false;
var 
next_stats false;

var 
WLike = {
  
init: function() {
    if (!
window.fastXDM) { return; }
    
window.checkbox ge('checkbox');
    
window.mainDiv ge('main');
    if (
window.leftTd ge('like_table_left')) {
      var 
prevDisplay = [getStyle(ge('like_left'), 'display'), getStyle(ge('like_right'), 'display')];
      
show('like_left');
      
show('like_right');
      
window.minW getSize(ge('like_left'))[0];
      
window.maxW minW getSize(ge('like_right'))[0];
      
setStyle(ge('like_left'), {'display'prevDisplay[0]});
      
setStyle(ge('like_right'), {'display'prevDisplay[1], widthmaxW minW});
      
setStyle(checkbox'width'hasClass(checkbox'checked') ? minW maxW);
      
removeClass(ge('like_right_border'), 'fl_l');
    }
    
addEvent(mainDiv'mouseover', function (e) {
      if (
noAuthVal || !Rpc) return;
      if (!
window.tooltipInited) {
        
window.tooltipInited true;
        
Rpc.callMethod('initTooltip'counter);
      } else if (
counter) {
        
Rpc.callMethod('showTooltip'true);
      }
    });
    
addEvent(checkbox'mouseup mousedown mouseover mouseout click', function (e) {
      if (
e.type == 'mouseup' || e.type == 'mousedown') {
        
window[e.type == 'mousedown' 'addClass' 'removeClass'](checkbox'checkbox_pressed');
        return;
      }
      if (
e.type == 'mouseover' || e.type == 'mouseout') {
        var 
isOver e.type == 'mouseover';
        
window[isOver 'addClass' 'removeClass'](this'checkbox_over');
        if (!
isOverremoveClass(checkbox'checkbox_pressed');
        return
      }
      if (
window.noAuthVal) return WLike.widgetAuth();
      
val = !hasClass(checkbox'checked');
      if (!
WLike.saveLike(val)) return;
      if (
val) {
        
addClass(checkbox'checked');
        
window.Rpc.callMethod('showTooltip'true);
      } else {
        
removeClass(checkbox'checked');
        
window.Rpc.callMethod('hideTooltip');
      }
      return 
cancelEvent(e);
    });
    
setInterval(resizeWidget1000);

    
window.Rpc = new fastXDM.Client({
      
onInit: function() {
      },
      
captcha: function(sidvalue) {
        
window.onCaptcha(sidvalue);
      },
      
captchaHide: function () {
        
window.onCaptchaHide();
      },
      
shareWLike.shareThisPage,
      
sharedWLike.sharedThisPage,
      
hide: function () {
        if (
like_hide_cblike_hide_cb();
      }
    }, {
safetrue});
  },
  
saveLike: function(val) {
    if (
like_loading || like_anim) return false;
    
like_loading true;
    
counter += val : -1;
    if (!
counter) {
      
window.Rpc.callMethod('hideTooltip'true);
    } else {
      if (
val && counter == 1window.Rpc.callMethod('showTooltip'true);
      else 
window.Rpc.callMethod('proxy'val 'showUser' 'hideUser');
    }
    if (!
val) {
      
window.Rpc.callMethod('proxy''unpublish');
    }

    
ajax.post('widget_like.php', {act'a_like'valueval 0hashlikeHashapp_aidpageQuery_pageQuery}, {
      
onDone: function(resp) {
        
like_loading false;
        
WLike.updateStats(resptrue);
        
window.Rpc.callMethod('proxy''update'resp);
        
next_stats extend({}, resp, {statsresp.next_stats});
        if (
val) {
          
window.Rpc.callMethod('publish''widgets.like.liked'resp.num);
        } else {
          
window.Rpc.callMethod('publish''widgets.like.unliked'resp.num);
        }
      },
      
onFail: function() {
        
like_loading false;
      },
      
hideProgress: function () {
        
hide('loading');
      }
    });
    if (!
hasClass(mainDiv'like_dived')) return true;
    var 
rightBorder geByClass('like_right'checkbox)[0], iconV geByClass('iconV'checkbox)[0], iconH geByClass('iconHeart'checkbox)[0];
    if (
iconH && iconV) {
      var 
hideIcon val iconV iconHshowIcon val iconH iconV;
      
like_anim true;
      
animate(hideIcon, {opacity0}, 150, function () {
        
hide(hideIcon);
        
like_anim false;
      });
      
setStyle(showIcon, {opacity0});
      
animate(showIcon, {opacity1}, 150);
    }
    if (!
ge('stats_text')) return true;
    if (
like_hide_cb !== null) {
      
like_hide_cb null;
    } else {
      
like_hide_cb = function () {
        
like_anim true;
        
animate(checkbox, {widthval minW maxW}, {duration200transitionFx.Transitions.sineInOutonComplete: function () {
          
like_anim false;
          
resizeWidget();
        }});
        
like_hide_cb null;
        if (
next_statsWLike.updateStats(next_stats);
        
next_stats false;
      };
    }
    if (!
val && like_hide_cb) {
      
setTimeout(like_hide_cb200);
      
like_hide_cb null;
    }
    return 
true;
  },
  
updateStats: function(statsnoAnim) {
    var 
statsNum ge('stats_num');
    
statsNum && animateCount(statsNumstats.num stats.num_text || '' '+1' , {str1leftOnly1});

    
counter stats.num;
    if (
ge('stats_text') && stripHTML(ge('stats_text').innerHTML).toLowerCase() != stripHTML(stats.stats).toLowerCase()) {
      var 
el ge('stats_text');
      if (
noAnim) {
        
el.innerHTML stats.stats || '';
        
resizeWidget();
        return;
      }
      if (!
el.innerHTML) {
        
setStyle(el, {opacity0});
        
el.innerHTML stats.stats;
        
animate(el, {opacity1}, 100);
      } else {
        
animate(el, {opacity0}, 100, function () {
          if (!(
el.innerHTML stats.stats)) return;
          
animate(el, {opacity1}, 100);
        });
      }
      
setTimeout(resizeWidget150);
    }
  },

  
shareThisPage: function(valhash) {
    if (
hash != shareData.wall_hash) return;
    var 
params = {
      
act'a_recommend',
      
hashshareData.wall_hash,
      
descriptionshareData.description,
      
titleshareData.title,
      
urllikeURL,
      
textshareData.text,
      
valval 0,
      
app_aid,
      
pageQuery_pageQuery
    
};
    
ajax.post('widget_like.php'params, {
      
onDone: function (text) {
        
WLike.sharedThisPage(textval);
      }
    });
    if (
val && !hasClass(checkbox'checked')) {
      
addClass(checkbox'checked');
      
counter++;
    }
  },
  
sharedThisPage: function(respval) {
    if (
val && !hasClass(checkbox'checked')) {
      
addClass(checkbox'checked');
      
counter++;
    }
    
// WLike.updateStats(resp);
    // window.Rpc.callMethod('proxy', 'update', resp);
    
if (val) {
      
window.Rpc.callMethod('publish''widgets.like.shared'resp.num);
    } else {
      
window.Rpc.callMethod('publish''widgets.like.unshared'resp.num);
    }
  },
  
widgetAuth: function() {
    var
      
screenX typeof window.screenX != 'undefined' window.screenX window.screenLeft,
      
screenY typeof window.screenY != 'undefined' window.screenY window.screenTop,
      
outerWidth typeof window.outerWidth != 'undefined' window.outerWidth document.body.clientWidth,
      
outerHeight typeof window.outerHeight != 'undefined' window.outerHeight : (document.body.clientHeight 22),
      
features 'width=554,height=207,left=' parseInt(screenX + ((outerWidth 554) / 2), 10) + ',top=' parseInt(screenY + ((outerHeight 207) / 2.5), 10);
      
this.active window.open('http://vk.com/login.php?app=-1&layout=widgets''vk_openapi'features);
      function 
checkWnd() {
         if (
window.active.closed) {
           
window.gotSession(true);
         } else {
            
setTimeout(checkWnd1000);
         }
      }
      
checkWnd();
  },
  
showMore: function() {
    if (
cur.loadingMore) {
      return 
false;
    }
    
cur.loadingMore true;
    
ajax.post('widget_like.php', {act'a_stats_box'offsetcur.shownappcur.aidurlcur.urlpagecur.pageobjcur.objfromcur.fromtabcur.tab || ''}, {
      
onDone: function(rowsshownmore) {
        
ge('like_users_cont').appendChild(cf(rows))
        
cur.shown shown;
        if (
more) {
          
show('like_more_link');
        } else {
          
hide('like_more_link');
        }
        
cur.loadingMore false;
      },
      
showProgress: function() {
        
hide('like_more_link');
        
show('like_more_progress');
      },
      
hideProgress: function() {
        
hide('like_more_progress');
      }
    });

  },
  
switchTab: function(tabNametitle) {
    if (
cur.loadingTab) {
      return 
false;
    }
    
cur.loadingTab true;
    
ajax.post('widget_like.php', {act'a_stats_box'offset0appcur.aidurlcur.urlpagecur.pageobjcur.objfromcur.fromtabtabName}, {
      
onDone: function(rowsshownmore) {
        var 
cont ge('like_users_cont');
        
cont.innerHTML '';
        
cont.appendChild(cf(rows))
        
cur.shown shown;
        if (
more) {
          
show('like_more_link');
        } else {
          
hide('like_more_link');
        }
        
cur.loadingTab false;
        
cur.loadingMore false;
        var 
tabsCont ge('like_tabs');
        var 
sel geByClass1('summary_tab_sel'tabsCont);
        
sel.className 'fl_l summary_tab';
        
ge('likes_tab_'+tabName).className 'fl_l summary_tab_sel';
        
curBox().setOptions({titletitle});
        
cur.tab tabName;
      },
      
showProgress: function() {
        
show('like_tabs_prg');
        
setStyle('like_tabs_prg');
      },
      
hideProgress: function() {
        
hide('like_tabs_prg');
      }
    });
  }
}



function 
resizeWidget() {
  if (!
ge('like_table') || !window.Rpc) return;
  var 
size getSize(ge('like_table'))[1];
  
// if (browser.msie && !browser.msie8 || browser.opera) size += 15;
  
window.Rpc.callMethod('resize'size);
}




function 
goAway(url) {return true}

function 
gotSession(session_data) {
  
setTimeout(function () {
    
location.reload();
  }, 
1000);
  
location.href location.href '&1';
}

function 
showCaptcha(sidimgonClickonShowonHide) {
  
Rpc.callMethod('showBox''captcha.php?' ajx2q({act'show_captcha_box'sidsidsrcimgneed_mobilewindow.need_mobile_act == 0widget1addCss'profile.css'}), {height201width322});
  
window.onCaptcha onClick;
  
window.onCaptchaHide onHide;
  return 
false;
}


/* Copy of al/common.js, but without val() */
function animateCount (elnewCountopts) {
  
el ge(el);
  
opts opts || {};

  if (
opts.str) {
    
newCount trim((newCount || '').toString()) || '';
  } else {
    
newCount positive(newCount);
  }
  if (!
el) return;
  if (
browser.msie6 || browser.mobile && !browser.safari_mobile && !browser.android) {
    
el.innerHTML newCount || '';
    return;
  }

  var 
curCount data(el'curCount'),
      
nextCount data(el'nextCount');

  if (
typeof nextCount == 'number' || opts.str && typeof nextCount == 'string') {
    if (
newCount != nextCount) {
      
data(el'nextCount'newCount);
    }
    return;
  }
  if (
typeof curCount == 'number' || opts.str && typeof curCount == 'string') {
    if (
newCount != curCount) {
      
data(el'nextCount'newCount);
    }
    return;
  }
  
curCount el.innerHTML;
  if (
opts.str) {
    
curCount trim(el.innerHTML.toString()) || '';
  } else {
    
curCount positive(el.innerHTML);
  }
  if (
curCount == newCount) {
    return;
  }
  
data(el'curCount'newCount);
  var 
incr opts.str curCount.length newCount.length curCount newCount,
      
big = (incr newCount curCount).toString(),
      
small = (incr curCount newCount).toString(),
      
constPart = [],
      
constEndPart = [],
      
bigPart '',
      
smallPart '',
      
ilj;

  if (!
opts.str) {
    
small = ((new Array(big.length small.length 1)).join('0')) + small;
  }
  for (
0big.lengthli++) {
    if ((
big.charAt(i)) !== small.charAt(i)) {
      break;
    }
    
constPart.push(j);
  }
  
bigPart big.substr(i);
  
smallPart small.substr(i);

  if (
opts.str && !opts.leftOnly) {
    for (
bigPart.length0i--) {
      if ((
bigPart.charAt(i)) !== smallPart.charAt(i)) {
        break;
      }
      
constEndPart.unshift(j);
    }
    if (
constEndPart.length) {
      
bigPart bigPart.substr(01);
      
smallPart smallPart.substr(01);
    }
  }

  
constPart constPart.join('').replace(/s$/, '&nbsp;');
  
constEndPart constEndPart.join('').replace(/^s/, '&nbsp;');

  if (!
trim(el.innerHTML)) {
    
el.innerHTML '&nbsp;';
  }
  var 
el.clientHeight || el.offsetHeight;
  
el.innerHTML '<div class="counter_wrap inl_bl"></div>';
  var 
wrapEl el.firstChild,
      
animwrapElanimEl,
      
vert true;

  if (
constPart.length) {
    
wrapEl.appendChild(ce('div', {className'counter_const inl_bl'innerHTMLconstPart}));
  }
  if (!
constPart.length) {
    
smallPart smallPart.replace(/^0+/, '');
  }
  if (!
smallPart || smallPart == '0') {
    
smallPart '&nbsp;';
    
vert constPart.length true false;
  }

  
wrapEl.appendChild(animwrapEl ce('div', {className'counter_anim_wrap inl_bl'}));
  
animwrapEl.appendChild(animEl ce('div', {
    
className'counter_anim ' + (incr 'counter_anim_inc' 'counter_anim_dec'),
    
innerHTML'<div class="counter_anim_big"><span class="counter_anim_big_c">' bigPart '</span></div>' +
               (
vert '<div class="counter_anim_small"><span class="counter_anim_small_c">' smallPart '</span></div>' '')
  }, 
vert ? {marginTopincr ? -0} : {right'auto'left0}));
  if (
opts.str) {
    
setStyle(animEl, {textAlign'left'right'auto'left0});
  }

  var 
bigW geByClass1('counter_anim_big_c'animEl'span').offsetWidth,
      
smallW vert ? (smallPart == '&nbsp;' bigW geByClass1('counter_anim_small_c'animEl'span').offsetWidth) : 0;

  if (
constEndPart.length) {
    
wrapEl.appendChild(ce('div', {className'counter_const inl_bl'innerHTMLconstEndPart}));
  }

  if (
browser.csstransitions === undefined) {
    var 
browserbv floatval(b.version);
    
browser.csstransitions =
      (
b.chrome && bv >= 9.0) ||
     (
b.mozilla && bv >= 4.0) ||
     (
b.opera && bv >= 10.5) ||
     (
b.safari && bv >= 3.2) ||
     (
b.safari_mobile) ||
     (
b.android);
  }
  var 
css3 browser.csstransitions;
  
setStyle(animwrapEl, {widthincr smallW bigW});
  
// return debugLog(css3, incr, curCount, newCount, animwrapEl, animEl, geByClass1('counter_anim_big_c', animEl, 'span'), geByClass1('counter_anim_small_c', animEl, 'span'), h, bigW, smallW);
  
var onDone = function () {
    
el.innerHTML newCount || ' ';
    var 
next data(el'nextCount');
    
data(el'curCount'false);
    
data(el'nextCount'false);
    if (
typeof next == 'number' || opts.str && typeof next == 'string') {
      
setTimeout(animateCount.pbind(elnextopts), 0);
    }
  }, 
margin vert ? {marginTopincr : -h} : {marginRightincr ? -smallW 0};
  if (
css3) {
    
getStyle(animwrapEl'width');
    
addClass(animwrapEl'counter_css_anim_wrap');
    if (
bigW != smallW) {
      
setStyle(animwrapEl, {widthincr bigW smallW});
    }
    if (
vertsetStyle(animElmargin);
    
setTimeout(onDone300);
  } else {
    if (
bigW != smallW) {
      
animate(animwrapEl, {widthincr bigW smallW}, {duration100});
    }
    if (
vert) {
      
animate(animElmargin, {duration300transitionFx.Transitions.easeOutCirconCompleteonDone});
    } else {
      
setTimeout(onDone300);
    }
  }
}
?>
Онлайн: 2
Реклама