Вход Регистрация
Файл: js/api/widgets/al_community.js
Строк: 713
<?php
var Community = {

init: function() {
  
cur.Rpc = new fastXDM.Client({
    
onInit: function() {
      
setTimeout(function () {
        
Community.resizeWidget();
      }, 
500);
    },
    
authorised: function (args) {
      var 
href location.href;
      if (
href.indexOf('fieldText=') != -1href href.replace(/fieldText=.+?(&|$)/, 'fieldText=' winToUtf(ge('commentFiled').getValue()) + '1');
      else 
href href '&fieldText=' winToUtf(ge('commentFiled').getValue());

      if (
href.indexOf('autoLogin=1') != -1href href.replace('autoLogin=1''autoLogin=0');
      
location.href href;
      return;
    },
    
unauthorised: function (args) {
      var 
href location.href;
      if (
href.indexOf('autoLogin=0') != -1href href.replace('autoLogin=0''autoLogin=1');
      else 
href href '&autoLogin=1';

      
cur.Rpc.callMethod('auth');
      
location.href href;
      return;
    },
    
mouseMove: function(screenY) {
      
cur.mouseMove(screenY);
    },
    
mouseUp: function() {
      
cur.mouseUp();
    }
  }, {
safetrue});

  
cur.mainDiv ge('main');
  
Community.resizeWidget();
  if (
window.wall) {
    
wall.postTooltip = function() {};
  }

  
setTimeout(function () {
    
Community.resizeWidget();
  }, 
0);

},

resizeWidget: function() {
  
onBodyResize(true);
  if (!
cur.mainDiv || !cur.Rpc) return;
  var 
size getSize(cur.mainDiv)[1];
  
cur.Rpc.callMethod('resize'size);
},

sendChangeState: function(stateoidcallbackisEvent) {
  if (
state) {
    
cur.Rpc.callMethod('publish''widgets.groups.joined');
  } else {
    
cur.Rpc.callMethod('publish''widgets.groups.leaved');
  }
  var 
hiddenDomain ge('hiddenDomain');
  if (
hiddenDomain) {
    
domain hiddenDomain.value;
  } else {
    
domain '';
  }
  
ajax.post('/widget_community.php', {
    
act'a_change_state',
    
statestate,
    
oidoid,
    
hashcur.hash,
    
domaindomain,
    
is_eventisEvent 0
  
}, {
    
onDone: function(resultstr) {
      if (
callback) {
        
callback(resultstr);
      }
    }
  });
},


changeGroupState: function(statecallback) {
  if (
cur.isAdmin) {
    if (!
confirm(cur.isAdminLang)) { return false; }
  }
  if (
cur.noAuth) {
    
Community.widgetAuth();
    
window.gotSession = function(autorzied) {
      if (
autorzied == -1) {
        
setTimeout(function () {
          
location.reload();
        }, 
1000);
        
location.href location.href '&1';
      }
      if (
autorzied) {
        
ajax.post('/widget_community.php', {act'a_get_info'oidcur.oid}, {
          
onDone: function(result) {
            if (
result.hash) {
              
cur.noAuth false;
              
cur.justAuth true;
              
cur.hash result.hash;
              
cur.can_subscribe result.can_subscribe;
              if (
result.subscribed) {
                
addClass(cur.join_community'community_checked');
              } else {
                
removeClass(cur.join_community'community_checked');
              }
              
Community.changeGroupState(statecallback);
            }
          }
        });
      } else {
      }
    }
    return 
false;
  } else {
    if (!
cur.justAuth && ge('community_anim_row')) {
      if (
state) {
        
animate(ge('community_anim_row'), {marginLeft0}, 200);
        
ge('members_count').innerHTML cur.count_in;
      } else {
        
animate(ge('community_anim_row'), {marginLeft: -cur.mWidth}, 200);
        
ge('members_count').innerHTML cur.count_out;
      }
    }
    
Community.sendChangeState(statecur.oid);
    
callback();
    return 
true;
  }
},

changeEventState: function(stateoidbtn) {
  if (
cur.noAuth) {
    
Community.widgetAuth();
    
window.gotSession = function(autorzied) {
      
cur.noAuth false;
      
ajax.post('/widget_community.php', {act'a_get_info'oidcur.oid}, {
        
onDone: function(result) {
          if (
result.hash) {
            
cur.hash result.hash;
            
cur.can_subscribe result.can_subscribe;
            
Community.changeEventState(stateoidbtn);
          }
        }
      });
    }
    return 
false;
  }
  if (
state == -1) {
    
cur.linkCont btn.innerHTML;
    
btn.innerHTML '<img src="/images/upload.gif" />';
  } else {
    
lockButton(btn);
  }
  
Community.sendChangeState(statecur.oid, function(html) {
    if (
state == -1) {
      
btn.innerHTML cur.linkCont;
    } else {
      
unlockButton(btn);
    }
    
ge('community_event_join').innerHTML html;
    
Community.resizeWidget();
  }, 
1);
},


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);
    
window.activePopup window.open('/login.php?app=-1&layout=widgets''vk_openapi'features);
    function 
checkWnd() {
       if (
window.activePopup.closed) {
         
window.gotSession(true);
       } else {
          
setTimeout(checkWnd1000);
       }
    }
    
checkWnd();
},

toggleStat: function(oidwidth) {
  if (
cur.statShown) {
    
setStyle(ge('community_groups_main'), {height'auto'});
    
hide('hide_stat');
    
show('show_stat');
    
show('community_content');
    
hide('stat_info');
    
setTimeout(Community.resizeWidget0);
  } else {
    
cur.oldHeight getSize('community_groups_main')[1];
    
show('hide_stat');
    
hide('show_stat');
    
hide('community_content');
    
show('stat_info');
    
setTimeout(Community.resizeWidget0);
    
setTimeout(Community.resizeWidget500);
    if (!
cur.statLoaded) {
      
setStyle(ge('community_groups_main'), {heightcur.oldHeight 8});
      
setStyle(ge('wcomments_progress'), {marginTopcur.oldHeight 40});
      
ajax.post('/widget_community.php', {act'a_get_stat'widthwidthoidoid}, {
        
onDone: function(text) {
          
setStyle(ge('community_groups_main'), {height'auto'});
          
cur.statLoaded true;
          
ge('stat_info').innerHTML text;
          
setTimeout(Community.resizeWidget0);
          
setTimeout(Community.resizeWidget500);
        }
      });
    } else {
      
setStyle(ge('community_groups_main'), {height'auto'});
    }
  }
  
cur.statShown = !cur.statShown;
},

membersBox: function(oid) {
  
cur.Rpc.callMethod('showBox''widget_community.php?act=members_box&oid='+oid, {height442width498});
},

subscribeGroupState: function(stateoid) {
  
ajax.post('/widget_community.php', {act'a_subscribe'statestateoidoidhashcur.hash}, {
    
onDone: function(t) {

    },
    
onFail: function() {
      return 
true;
    }
  });
  return 
true;
},

hideStat: function(oidwidth) {
  
hide('hide_stat');
  
show('show_stat');
  
show('community_content');
  
hide('stat_info');
  
setTimeout(Community.resizeWidget0);
},

subscribeSimple: function() {
  
Community.changeGroupState(1, function() {
    
hide('subscribe_button');
    
show('unsubscribe_button');
    if (
cur.canSwitch) {
      
hide('community_friends');
      
show('community_like');
    }
  });
},

unsubscribeSimple: function() {
  
Community.changeGroupState(0, function() {
    
show('subscribe_button');
    
hide('unsubscribe_button');
    if (
cur.canSwitch) {
      
show('community_friends');
      
hide('community_like');
    }
  });
},

headerOver: function(ev) {
  if (
cur.nameOutTimeout) {
    
clearTimeout(cur.nameOutTimeout);
  }
  if (
cur.headTween) {
    return;
  }
  var 
obj ge('wcommunity_name_cont');
  
addClass(obj'wcommuinty_name_scrolling');
  var 
anim ge('wcommunity_name_anim');
  var 
width getSize(anim)[0] - getSize(obj)[0];
  if (
width 0) {
    return 
false;
  }
  var 
speed width 40;
  if (
cur.headTimeout) {
    
clearTimeout(cur.headTimeout);
  }
  
cur.headTween animate(anim, {marginLeft: -width}, {durationspeedtransitionFx.Transitions.linearonComplete:function() {
    
cur.headTimeout setTimeout(function() {
      
cur.headTween animate(anim, {marginLeft0}, {durationspeedtransitionFx.Transitions.linearonComplete: function() {
        
cur.headTween false;
        
cur.headTimeout setTimeout(Community.headerOver.pbind(ev), 1000);
      }});
    }, 
1000);
}});

},

headerOut: function(ev) {
  var 
obj ge('wcommunity_name_cont');
  if (
cur.headTimeout) {
    
clearTimeout(cur.headTimeout);
  }
  
cur.nameOutTimeout setTimeout(function() {
    var 
anim ge('wcommunity_name_anim');
    
cur.headTween animate(anim, {marginLeft0}, 200, function() {
      
removeClass(obj'wcommuinty_name_scrolling');
      
cur.headTween false;
    });
    if (
cur.headTimeout) {
      
clearTimeout(cur.headTimeout);
    }
  }, 
50);
},

_eof1};try{stManager.done('api/widgets/al_community.js');}catch(e){}


window.gotSession = function(session_data) {
  
//pass
}

var 
communityWall = {
  
postTooltip: function(elpostopts) {
    if (
cur.viewAsBox) return;
    var 
poll geByClass('poll'el);
    if (
poll.length && cur.baseUrl) {
      
el.href cur.baseUrl 'wall'+post;
    }
    return 
true;
  },
  
showMore: function() {
    if (
cur.wallLoaded) {
      return 
false;
    }
    if (
cur.loadingMore) {
      
cur.meedMore true;
      return;
    }
    
cur.loadingMore true;
    
hide('wall_more_text');
    
show('wall_more_progress');
    var 
params = {
      
act'load_more',
      
offsetcur.offset,
      
oidcur.oid
    
};
    if (
cur.mode) {
      
params.mode 1;
    }
    
ajax.post('/widget_community.php'params, {
      
onDone: function(wallContcountlimit) {
        
cur.offset += limit;
        if (
cur.offset >= count) {
          
cur.wallLoaded true;
          
hide('wall_more_cont');
        }
        
ge('page_wall_posts').appendChild(ce('div', {
          
innerHTMLwallCont
        
}))
        
Community.resizeWidget();
        
setTimeout(Community.resizeWidget500);
        
show('wall_more_text');
        
hide('wall_more_progress');
        
cur.loadingMore false;
        if (
cur.meedMore) {
          
cur.meedMore false;
          
setTimeout(function() {
            
communityWall.showMore()
          }, 
0);
        }
        if (
cur.scrollbar) {
          
cur.scrollbar.update();
        }
      },
      
onFail: function() {
        return 
true;
      }
    })
  }
}

function 
goAway(url) { return true; }

function 
showPhoto (photo, list) {
  var 
607607;

  
cur.Rpc.callMethod('showBox''al_photos.php?' ajx2q({act'photo_box'photophotowall_ownerphoto.split('_')[0], widget1, list: list, widget_width654widget1}), {heightwindow.outerHeight || screen.availHeight || 768widthwindow.outerWidth || screen.availWidth || 1028});
  return 
false;
}

function 
showVideo(video, list) {
  
cur.Rpc.callMethod('showBox''al_video.php?' ajx2q({act'video_box'videovideo, list: list, wall_ownervideo.split('_')[0], widget_width654widget1}), {heightwindow.outerHeight || screen.availHeight || 768widthwindow.outerWidth || screen.availWidth || 1028});
  return 
false;
}

function 
showFriends(oid) {
  if (
oid 0) return true;
  
cur.Rpc.callMethod('showBox''al_page.php?' ajx2q({act'show_members_box'gid: -oidtab'friends'widget1}), {height495width432});
  return 
false;
}


// Tiny Scrollbars start (from al_community.js)
(function(w) {
w.Scrollbar = function (objoptions) {
  
this.obj obj ge(obj);
  
this.options options || {};

  
setTimeout((function() {
    if (!
obj) return;
    
setStyle(obj, {
      
overflow'hidden'
    
});

    var 
size getSize(obj);
    if (
size[0] < 100 && options.width) {
      
size[0] = options.width 2;
    }
    
this.scrollHeight size[1];

    
this.scrollbar ce('div', {
      
className'scrollbar_cont'
    
});
    
setStyle(this.scrollbar, {
      
right'1px',
      
left'auto',
      
heightsize[1] + 'px'
    
});

    
this.inner ce('div', {
      
className'scrollbar_inner'
    
});
    
this.scrollbar.appendChild(this.inner);

    if (
options.shadows) {
      
this.topShadowDiv ce('div', {
        
className'scrollbar_top'
      
});
      
this.bottomShadowDiv ce('div', {
        
className'scrollbar_bottom',
        
widthsize[0]+'px'
      
});
      
this.bottomShadowDiv.style.width this.topShadowDiv.style.width size[0]+'px';
      
obj.parentNode.insertBefore(this.topShadowDivobj);
      
obj.parentNode.insertBefore(this.bottomShadowDivobj.nextSibling);
    }

    
obj.parentNode.insertBefore(this.scrollbarobj);

    
this.mouseMove this._mouseMove.bind(this);
    
this.mouseUp this._mouseUp.bind(this);

    var 
self this;

    function 
down(event) {
      if (
self.moveY) return;

      
addEvent(w.document'mousemove'self.mouseMove);
      
addEvent(w.document'mouseup'self.mouseUp);


      
self.moveY event.screenY - (parseInt(self.inner.style.marginTop) || 0);

      
w.document.body.style.cursor 'pointer';
      
addClass(self.inner'scrollbar_hovered');
      if (
options.startDrag) {
        
options.startDrag();
      }
      
self.isDown true;
      return 
cancelEvent(event);
    }
    
this.mouseDown down;


    function 
keydown(event) {
      var 
key event.keyCode;
      switch (
key) {
        case 
40:  self.obj.scrollTop += 20; break;
        case 
38:  self.obj.scrollTop -= 20; break;
        case 
34:  self.obj.scrollTop += self.scrollHeight; break;
        case 
33:  self.obj.scrollTop -= self.scrollHeight; break;
        default: return 
true;
      }
      
self.update(true);
      return 
cancelEvent(event);
    }

    
addEvent(obj'mousewheel'this.wheel.bind(this));
    
addEvent(w'DOMMouseScroll'this.wheel.bind(this));

    
addEvent(this.scrollbar'mouseover'this.contOver.bind(this));
    
addEvent(this.scrollbar'mouseout'this.contOut.bind(this));
    
addEvent(this.scrollbar'mousedown'this.contDown.bind(this));

    if (
browser.safari_mobile) {
      
addEvent(obj'touchstart', function(event) {
        
cur.touchY  event.touches[0].pageY;
        
//return cancelEvent(event);
      
});
      
addEvent(obj'touchmove', function(event) {
        var 
touchY event.touches[0].pageY;
        
cur.touchDiff cur.touchY touchY;
        
obj.scrollTop += cur.touchDiff;
        
cur.touchY touchY;

        if (
obj.scrollTop && self.shown !== false) {
          
self.update(true);
          return 
cancelEvent(event);
        }
      });
      
addEvent(obj'touchend', function() {
        
cur.animateInt setInterval(function() {
          
cur.touchDiff cur.touchDiff 0.9;
          if (
cur.touchDiff && cur.touchDiff > -1) {
            
clearInterval(cur.animateInt);
          } else {
            
obj.scrollTop += cur.touchDiff;
            
self.update(true);
          }
        }, 
0);
      })
    }

    
addEvent(this.inner'mousedown'down);
    
addEvent(w'keydown'keydown);

    if (
this.contHeight() <= this.scrollHeight) {
      
hide(this.bottomShadowDiv);
    } else {
      
this.bottomShadow true;
    }
    
this.inited true;
    
this.update(true);
  }).
bind(this), 0);
}

Scrollbar.prototype.contOver = function() {
  
this.isOut false;
  
addClass(this.scrollbar'scrollbar_c_overed');
}
Scrollbar.prototype.contOut = function() {
  
this.isOut true;
  if (
this.isDown) return;
  
removeClass(this.scrollbar'scrollbar_c_overed');
}
Scrollbar.prototype.contDown = function(ev) {
  var 
ev.offsetY this.innerHeight 5;// - this.innerHeight;
  
var scrH this.scrollHeight this.innerHeight;

  var 
newScroll Math.floor((this.contHeight() - this.scrollHeight) * Math.min(1scrH));
  
this.obj.scrollTop newScroll;
  
this.update(true);
  
this.mouseDown(ev);
}

w.Scrollbar.prototype._mouseMove = function(event) {
  
this.obj.scrollTop Math.floor((this.contHeight() - this.scrollHeight) * Math.min(1, (event.screenY this.moveY) / (this.scrollHeight 26)));
  
this.update(true);
  return 
false;
}

w.Scrollbar.prototype._mouseUp = function(event) {
  
this.moveY false;
  
this.isDown false;
  if (
this.isOut) {
    
this.contOut();
  }
  
removeEvent(w.document'mousemove'this.mouseMove);
  
removeEvent(w.document'mouseup'this.mouseUp);
  
w.document.body.style.cursor 'default';
  
removeClass(this.inner'scrollbar_hovered');
  if (
this.options.stopDrag) {
    
this.options.stopDrag();
  }
  return 
false;
}

w.Scrollbar.prototype.wheel = function(event) {
  if (!
eventevent window.event;
  var 
delta 0;
  if (
event.wheelDeltaY || event.wheelDelta) {
    
delta = (event.wheelDeltaY || event.wheelDelta) / 2;
  } else if (
event.detail) {
    
delta = -event.detail 10
  
}
  var 
stWas this.obj.scrollTop;
  
this.obj.scrollTop -= delta;
  if (
stWas != this.obj.scrollTop && this.shown !== false) {
    
this.update(true);
    return 
false;
  }
}

w.Scrollbar.prototype.contHeight = function() {
  if (
this.contHashCash) {
    return 
this.contHashCash;
  }
  var 
nodes this.obj.childNodes;
  var 
height 0;
  var 
nodes.length;
  while (
i--) {
    
height += nodes[i].offsetHeight || 0;
  }
  
this.contHashCash height;
  return 
height;
}

w.Scrollbar.prototype.update = function(noChangeupdateScroll) {
  if (!
this.inited) {
    return;
  }
  if (!
noChange) {
    
this.contHashCash false;
    if (
this.moveY) {
      return 
true;
    }
  }
  if (
updateScroll) {
    var 
size getSize(this.obj);
    
this.scrollHeight size[1];
  }

  var 
height this.contHeight();
  if (
height <= this.scrollHeight) {
    
hide(this.inner);
    
this.shown false;
    return;
  } else if (!
this.shown) {
    
show(this.inner);
    
this.shown true;
  }
  var 
progress Math.min(1this.obj.scrollTop / (height this.scrollHeight));
  if (
progress != this.topShadow && this.topShadowDiv) {
    (
this.topShadow hide show)(this.topShadowDiv);
    
this.topShadow = !this.topShadow;
  }
  if (
progress != this.bottomShadow && this.bottomShadowDiv) {
    (
this.bottomShadow hide show)(this.bottomShadowDiv);
    
this.bottomShadow = !this.bottomShadow;
  }
  
this.innerHeight Math.max(40Math.floor(this.scrollHeight this.scrollHeight height));
  
this.inner.style.height this.innerHeight 'px';
  if (
height this.obj.scrollTop this.scrollHeight 2) {
    
this.options.more();
  }
  
this.inner.style.marginTop Math.floor((this.scrollHeight this.innerHeight 4) * progress 2) + 'px';
  
// console.log(this.scrollHeight, height, progress);
}
})(
window);
// Tiny Scrollbars end



/* Old */
?>
Онлайн: 2
Реклама