Вход Регистрация
Файл: js/al/wall.js
Строк: 541
<?php
var FullWall = {
  
getsect: function() {
    var 
current ge('full_wall_filters').firstChild;
    for (; !
hasClass(current'active_link') && current;) {
      
current current.nextSibling;
    }
    return 
current;
  },
  
failed: function(oldtext) {
    
FullWall.getsect().className '';
    if (
oldold.className 'active_link';
    if (!
text) return;

    
setTimeout(showFastBox(getLang('global_error'), text).hide2000);
    return 
true;
  },
  
go: function(elev) {
    var 
current FullWall.getsect();
    var 
result nav.go(elev, {onFailFullWall.failed.pbind(current)});
    if (
result === false) {
      if (
currentcurrent.className '';
      
el.parentNode.className 'active_link';
    }
  },
  
scrollCheck: function(est) {
    var 
ch lastWindowHeighttopntop 0elnelbitsposts = [];
    if (
domPN(cur.topRow) != cur.pgCont) {
      
cur.topRow domFC(cur.pgCont);
    }
    if (
      !
vk.id ||
      !
cur.topRow ||
      ((
window.curNotifier || {}).idle_manager || {}).is_idle
    
) {
      return;
    }
    for (
el domPS(cur.topRow); el && cur.topRow.offsetTop stel domPS(el)) cur.topRow el;
    for (
el cur.topRowelel nel) {
      
top ntop ntop el.offsetTop;
      if (
top >= st ch) break;

      
nel domNS(el);

      
ntop nel nel.offsetTop top el.offsetHeight;
      if (
ntop st && nelcur.topRow nel;

      
bits el.bits || 0;
      if (
bits >= 3) continue;

      if (
bits |= ((top >= st && top st ch) ? 0) | ((ntop >= st && ntop st ch) ? 0)) {
        
el.bits bits;
        if (
bits == 3) {
          
posts.push(FullWall.postsGetRaws(el));
        }
      }
    }
    
Page.postsSeen(posts);
  },
  
postsGetRaws: function(el) {
    var 
mres = {};
    if (
el.id.match(new RegExp('^post(' cur.oid '_\d+)$'''))) {
      
res[m[1]] = 1;
      if (
= (el.getAttribute('data-copy') || '').match(/^(-?d+_d+)$/)) {
        
res[m[1]] = -1;
      }
    }
    return 
res;
  },
  
init: function(optspreload) {
    
extend(cur, {
      
optionsopts,
      
module'wall',

      
pgStartopts.start,
      
pgOffsetopts.offset,
      
pgCountopts.count,
      
pgPerPageopts.per_page,
      
pgContge('page_wall_posts'),
      
pgMorege('fw_load_more'),
      
pgPagesge('fw_pages'),
      
pgMorePrgge('fw_more_progress'),
      
pgPreloadpreload,
      
pgUrlopts.url,
      
pgOnScrollFullWall.scrollCheck,

      
pgParamsopts.params,
      
pgHrefopts.href,

      
pgPostProcessFullWall.loadedPosts,
      
pgNoArrowNavFullWall.noArrowNav,

      
oidopts.owner_id,
      
postToopts.owner_id,
      
fullPostViewtrue
    
});
    
wall.init(opts);
    if (!
opts.wall_type || opts.wall_type != 'cards' && opts.wall_type != 'supp' && opts.wall_type != 'phone_info') {
      
Pagination.init();
    }
    
cur.destroy.push(Pagination.deinit);
    if (
opts.with_id) return;

    if (
opts.search) {
      var 
searchEl ge('wall_search');
      
placeholderSetup(searchEl, {back1});
      
addEvent(searchEl'keydown', function (e) {
        if (
e.keyCode == KEY.RETURN) {
          
FullWall.doSearch();
          
searchEl.blur();
          return 
cancelEvent(e);
        }
      });
      
elfocus(searchEl);
      
setTimeout(elfocus.pbind(searchEl), 100);
      if (
val(searchEl)) show('wall_reset_search');
    }

    
wall.initUpdates(opts.add_queue_key);
    if (
opts.wall_type && (opts.wall_type == 'cards' || opts.wall_type == 'supp' || opts.wall_type == 'phone_info')) return;
    
cur.nav.push(function(changedcurrentnext) {
      var 
own changed.own;
      
delete(changed.own);
      
delete(changed.offset);
      if (!
isEmpty(changed) || own === undefined) return;
      
ajax.post('al_wall.php', {
        
act's',
        
owner_idcur.oid,
        
ownnext.own || undefined,
        
lnav1,
        
offsetnext.offset || undefined
      
}, {onDone: function(summaryrowsnameshrefstartoffsetperpagecountpreloadqueue) {
        
ge('fw_summary_wrap').innerHTML summary;
        
Pagination.deinit();
        
extend(cur, {
          
pgStartstart,
          
pgOffsetoffset,
          
pgCountcount,
          
pgParamsnext.own ? {own1} : false,
          
pgHrefhref,
          
pgPagesge('fw_pages'),
          
pgPreloadpreload
        
});
        
toggle(cur.pgMore, (count offset cur.pgPerPage));
        
wall.cancelEdit();
        var 
posts ge('page_wall_posts');
        
posts.innerHTML rows;
        
each(geByTag('textarea'posts), function() { placeholderSetup(this, {fast1}); });
        
Pagination.init();
        
wall.initUpdates(queue);

        for (var 
mid in names) {
          
cur.options.reply_names[mid] = names[mid];
        }

        
cur.wallType 'full_' + (next.own 'own' 'all');
        
nav.setLoc(next);

        
scrollToTop();

        
ge('wall_' + (next.own 'all' 'own') + '_filter').className '';
        var 
selFilter ge('wall_' + (next.own 'own' 'all') + '_filter');
        
selFilter.className 'active_link';
      }, 
showProgress: function() {
        
hide('full_wall_return''fw_search_toggler');
        
show('full_wall_progress');
      }, 
hideProgress: function() {
        
hide('full_wall_progress');
        
show('full_wall_return''fw_search_toggler');
      }, 
onFailFullWall.failed.pbind(FullWall.getsect())});
      return 
false;
    });
  },
  
loadedPosts: function(countfromrowsoffsetpagespreloadnames) {
    if (
preload) {
      
each(geByTag('textarea'cur.pgCont), function() { placeholderSetup(this, {fast1}); });
      
wall.cancelEdit();
    } else {
      var 
cur.pgCont.childNodes.length0;
      for (var 
el cur.pgCont.lastChildel && ++<= cur.pgPerPageel el.previousSibling) {
        
placeholderSetup(geByTag1('textarea'el), {fast1});
      }
      
names offset;
    }
    for (var 
mid in names) {
      
cur.options.reply_names[mid] = names[mid];
    }
    
FullWall.updateSummary(count);
  },
  
updateSummary: function(count) {
    var 
ds re('wall_datesearch_wrap');
    if (
count 1) {
      
ge('fw_summary').innerHTML getLang('wall_x_posts_at_all'counttrue);
    } else if (
count 0) {
      
ge('fw_summary').innerHTML getLang('wall_one_post');
    } else {
      
ge('fw_summary').innerHTML getLang('wall_no_posts');
    }
    if (
dsge('fw_summary').appendChild(ds);
  },
  
noArrowNav: function() {
    return 
cur.__focused || (ge('own_reply_field') || {}).focused || cur.editingPost;
  },

  
initOnePost: function(optspreload) {
    
Page.postsSeen(opts.seen);
    
extend(cur, {
      
oneposttrue,
      
optionsopts,
      
module'wall',

      
dockedfalse,

      
addFieldge('fwr_text'),
      
addBlockge('fwr_form'),
      
addBlockWrapge('fwr_wrap'),

      
pgStartopts.start,
      
pgOffsetopts.offset,
      
pgCountopts.count,
      
pgPerPageopts.per_page,
      
pgContge('fw_replies_rows'),
      
pgMorege('fwp_load_more'),
      
pgPagesge('fw_pages'),
      
pgMorePrgge('fw_more_progress'),
      
pgPreloadpreload,
      
pgUrlopts.url,
      
pgParamsopts.params,
      
pgHrefopts.href,

      
pgPostProcessFullWall.loadedReplies,
      
pgOnScrollFullWall.onePostOnScroll,
      
pgNoArrowNavFullWall.noArrowNav,

      
oidopts.owner_id,
      
pidopts.post_id,
      
nidopts.note_id,
      
fullPostViewtrue,
      
named: {repliesge('fw_one_replies_wrap')}
    });
    
wall.init(opts);

    if (
cur.addField) {
      
placeholderSetup(cur.addField);
      
autosizeSetup(cur.addField, {minHeightopts.note 62 42maxHeight300});
      
addEvent(cur.addField'change keydown keyup paste'FullWall.replyFieldUpdated);

      var 
mediaTypes = [];
      
each (cur.options.rmedia_types, function () {
        if (
inArray(this[0], ['photo''video''audio''doc''link''page'])) {
          
mediaTypes.push(this);
        }
      });
      var 
media;
      if (
mediaTypes.length) {
        
media = {
          
lnkge('fwr_reply_media_lnk').firstChild,
          
previewge('fwr_reply_media_preview'),
          
typesmediaTypes,
          
options: {limit2disabledTypes: ['album'], toggleLnktrue}
        };
      }
      
Wall.initComposer(cur.addField, {
        
lang: {
          
introTextgetLang('profile_mention_start_typing'),
          
noResultgetLang('profile_mention_not_found')
        },
        
mediamedia
      
});
      
FullWall.replyFieldUpdated();
    }
    
Pagination.init(opts.scroll);
    
cur.destroy.push(Pagination.deinit);

    
wall.initUpdates(opts.add_queue_key);
  },
  
scrollToEnd: function() {
    var 
st cur.addBlockTop cur.addBlockHeight 20 lastWindowHeight;
    if (
scrollGetY() < st) {
      
Pagination.setScroll(st);
    }
  },
  
replyFieldUpdated: function() {
    if (!
cur.addField) return;

    var 
newt val(cur.addField), newh getSize(cur.addBlock)[1];
    var 
ch = (cur.addBlockHeight != newh), ct = (cur.addText != newt);
    if (
ch) {
      
cur.addBlockHeight newh;
      
cur.addBlockWrap.style.height newh 'px';
    }
    if (
ct) {
      
cur.addText newt;
    }
    if (
ch || ct) {
      
FullWall.onePostOnScroll(falsefalsetrue);
    }
  },
  
onePostResetStyle: function() {
    
cur.addBlock.style.left '';
  },
  
onePostOnScroll: function(estpp) {
    if (!
cur.addField) return;

    if (
st === false || st === undefined) {
      
st scrollGetY();
    }
    if (
pp === true) {
      
cur.addBlockTop getXY(cur.addBlockWrap)[1];
      if (
browser.msie6cur.addBlockTop += st;
    }
    var 
needDock = (cur.addText || cur.addForce) && (st lastWindowHeight cur.addBlockTop cur.addBlockHeight);
    if (
needDock && !cur.docked) {
      
cur.addBlock.className 'fixed';
      if (
browser.msie6) {
        
bodyNode.appendChild(cur.addBlock);
        
= {type'resize'};
      }
      
cur.docked true;
      
show('fwr_cancel');
      
cur.addForce true;
    } else if (!
needDock && cur.docked) {
      
FullWall.cancelAddReply();
    }
    if (
cur.docked && && e.type == 'resize') {
      if (
browser.msie6) {
        
cur.addBlock.style.left getXY(ge('content'))[0] + 'px';
      } else {
        
cur.addBlock.style.left = (ge('page_layout').offsetLeft ge('content').offsetLeft) + 'px';
        
setTimeout(FullWall.onePostResetStyle0);
      }
    }
  },
  
loadedReplies: function(countfromrowsoffsetpagespreloadnames) {
    if (!
preload) {
      
names offset;
    }
    for (var 
mid in names) {
      
cur.options.reply_names[mid] = names[mid];
    }
    
FullWall.onePostOnScroll(falsefalsetrue);
    
FullWall.repliesSummary(count);
  },
  
repliesSummary: function(count) {
    var 
summary ge('fw_summary');
    
summary.innerHTML count getLang('wall_n_replies'count) : getLang('wall_no_replies');
    
show(summary.parentNode);
  },
  
sendReply: function() {
    var 
rf ge('fwr_text'),
        
composer rf && data(rf'composer'),
        
params composer Composer.getSendParams(composerFullWall.sendReply) : {messagetrim(val(rf))},
        
replyName cur.reply_to && cur.options.reply_names[cur.reply_to[0]],
        
state;

    if (
params.delayed) {
      return;
    }

    if (!
params.attach1_type) {
      if (!
params.message ||
          
isArray(replyName) && !replyName[1].indexOf(params.message)) {
        
elfocus(rf);
        return;
      }
    }

    
rf.blur();
    
cur.wallMyReplied[cur.oid '_' cur.pid] = 1;
    
cur.wallMyOpened[cur.oid '_' cur.pid] = 1;
    if (
cur.pid) {
      var 
replyTo cur.oid '_' cur.pid;
    } else {
      var 
replyTo cur.oid '_note' cur.nid;
    }

    if (
composer) {
      
state Composer.reset(composer);
    } else {
      
val(rf'');
    }

    
extend(params, {
      
act'post',
      
typecur.wallType,
      
reply_toreplyTo,
      
reply_to_msgval('fwr_to'),
      
reply_to_usercur.reply_to && cur.reply_to[0] || 0,
      
last: ((cur.pgCont.lastChild || {}).id || '').split('_')[1],
      
from_groupisChecked('fwr_as_group'),
      
hashcur.options.post_hash
    
});
    
ajax.post('al_wall.php'params, {
      
onDone: function(countfromrowsoffsetpagespreloadnames) {
        
cur.wallMyReplied[cur.oid '_' cur.pid] = 0;
        
Pagination.loaded.apply(windowarguments);
        
FullWall.cancelAddReply(true);
        
setTimeout(FullWall.scrollToEnd0);
        if (
pages && offset) {
          
nav.setLoc(extend(nav.objLoc, {offsetoffset}));
        }
      },
      
onFail: function () {
        if (
composer) {
          
Composer.restore(composerstate);
        }
      },
      
showProgresslockButton.pbind(ge('fwr_send')),
      
hideProgressunlockButton.pbind(ge('fwr_send'))
    });
  },
  
cancelAddReply: function(clear) {
    
cur.addForce false;
    
hide('fwr_cancel');
    
cur.addBlock.className '';
    if (
browser.msie6) {
      
cur.addBlockWrap.appendChild(cur.addBlock);
    }
    
cur.docked false;
    if (
clear === true) {
      
val(cur.addField'');
      
hide('fwr_warn');
      
cur.addField.autosize.update();
      
FullWall.cancelReplyTo();
      
FullWall.replyFieldUpdated();
    }
  },

  
replyTo: function(posttoMsgIdtoIdevent) {
    
event normEvent(event);
    
val('fwr_to'toMsgId);
    var 
replyName cur.options.reply_names[toId], cancel '<span class="fwr_no_to" onclick="FullWall.cancelReplyTo(); elfocus('fwr_text');"></span>';
    if (
isArray(replyName)) {
      
val('fwr_to_title'replyName[0] + cancel);
      var 
rf ge('fwr_text'), replyNameOld cur.reply_to && cur.options.reply_names[cur.reply_to[0]], trim(val(rf));
      if (!
|| replyNameOld && isArray(replyNameOld) && !replyNameOld[1].indexOf(v)) {
        
val(rf, !checkEvent(event) ? replaceEntities(replyName[1]) : '');
        
FullWall.replyFieldUpdated();
      }
    } else {
      
val('fwr_to_title'replyName cancel);
    }
    
cur.reply_to = [toIdtoMsgId];
    
cur.addForce true;
    
FullWall.onePostOnScroll();
    
setTimeout(elfocus.pbind(cur.addField), 0);
    return 
false;
  },
  
cancelReplyTo: function() {
    var 
rf ge('fwr_text'), replyNameOld cur.reply_to && cur.options.reply_names[cur.reply_to[0]], trim(val(rf));
    
val('fwr_to_title''');
    
val('fwr_to''');
    
cur.reply_to false;
    if (!
|| replyNameOld && isArray(replyNameOld) && !replyNameOld[1].indexOf(v)) {
      
val(rf'');
      
FullWall.replyFieldUpdated();
    }
  },
  
deletePost: function(posthash) {
    return 
FullWall.replyAction('delete'posthash);
  },
  
markAsSpam: function(posthash) {
    return 
FullWall.replyAction('spam'posthash);
  },
  
restorePost: function(posthashroot) {
    if (!
root) {
      if (
cur.pid) {
        
root = (post == cur.oid '_' cur.pid);
      } else {
        
root = (post == cur.oid 'note_' cur.nid);
      }
    }
    
ajax.post('al_wall.php', {act'restore'postposthashhashrootroot 0}, {onDone: function() {
      var 
root ge('fw_post') : ge('post' post);
      if (!
|| isVisible(p.firstChild)) return;
      if (
root) {
        
cur.pgPaused false;
        
show('fwr_wrap''fw_one_replies_wrap''post_publish' post);
      } else {
        
Pagination.recache(1);
        
FullWall.repliesSummary(cur.pgCount);
      }
      
show(p.firstChild);
      
re(p.firstChild.nextSibling);
    }});
  },
  
replyAction: function(actposthash) {
    if (
cur.pid) {
      var 
root = (post == cur.oid '_' cur.pid);
    } else {
      var 
root = (post == cur.oid 'note_' cur.nid);
    }
    
cur.wallMyDeleted[post] = act == 'restore' 1;
    
ajax.post('al_wall.php', {actactpostposthashhashfrom'full'rootroot 0}, {onDone: function(msgdeleted) {
      var 
root ge('fw_post') : ge('post' post);
      if (!
p) return;
      if (
root) {
        
cur.pgPaused true;
        
hide('fwr_wrap''fw_one_replies_wrap''post_publish' post);
      }
      if (
p.firstChild.nextSibling) {
        
p.firstChild.nextSibling.innerHTML msg;
      } else {
        
p.appendChild(ce('div', {id'post_del' postinnerHTMLmsgclassName'fw_deleted'}));
        
hide(p.firstChild);
        if (
deleted && !root) {
          
Pagination.recache(-1);
          
FullWall.repliesSummary(cur.pgCount);
        }
      }
    }, 
progressge('wpe_prg' post) || geByClass1('fw_reply_prg'ge('post' post))});
  },

  
addTetaTet: function(replsev) {
    var 
upd = {
      
own_reply_link'',
      
tet_a_tet''
    
};
    if (
ev[9] && ev[9] != ev[2].split('_')[0] && cur.wallTpl.tet_a_tet) {
      
upd.tet_a_tet cur.wallTpl.tet_a_tet.replace('%from_uid%'ev[9]);
    } else {
      
upd.own_reply_link cur.wallTpl.own_reply_link.replace('%post_id%'ev[2]);
    }
    
// debugLog(ev[9], ev[2], cur.wallTpl.tet_a_tet, upd);
    
return upd;
  },

  
notePart: function(objobj_id) {
    
hide(obj);
    
show(obj_id);
  },

  
doSearch: function () {
    var 
trim(val('wall_search'));
    if (
nav.objLoc[0].split('/').length 1) {
      
nav.change({0'wall'+cur.oidq|| falsesearch: !&& 1offsetfalse});
    } else {
      
nav.change({q|| falsesearch: !&& 1offsetfalse});
    }
    
lockButton('wall_search_btn');
  },
  
fixPost: function (linkposthashvalue) {
    
ajax.post('al_wall.php', {act'a_fix_post'postposthashhashvaluevalue}, {
      
progressge('wpe_prg' post),
      
onDone: function () {
        
val(linkgetLang(value 'wall_unfix_post' 'wall_fix_post'));
        
link.onclick = function () {
          return 
FullWall.fixPost(linkposthashvalue 1);
        }
      }
    });
    return 
false;
  },
  
calendar: function() {
    
stManager.add(['ui_controls.js''datepicker.js''datepicker.css'], function() {
      if (!
cur.wallDP) {
        
cur.wallSD val('wall_datesearch');
        
cur.wallDP = new Datepicker(ge('wall_datesearch'), {
          
width140,
          
resfmt'plain',
          
addRowsnav.objLoc.day '<tr><td class="wall_cal_clear" colspan="7"><a onclick="nav.change({day: false, offset: false, search: nav.objLoc.q ? false : 1})" id="wall_cal_clear_lnk">' getLang('wall_clear_date_filter') + '</a></td></tr>' '',
          
onUpdate: function() {
            if (
cur.wallSD != val('wall_datesearch')) {
              var 
nd val('wall_datesearch').split('.');
              
nav.change({'day': (nd[0] < 10 '0' '') + nd[0] + (nd[1] < 10 '0' '') + nd[1] + nd[2], searchfalseoffsetfalse});
            }
          }
        });
      }
      
triggerEvent(geByClass1('datepicker_control'ge('wall_datesearch_cont')), 'mousedown'falsetrue);
      
ge('wall_datesearch_cal_box').style[vk.rtl 'right' 'left'] = Math.floor((ge('wall_datesearch_lnk').offsetWidth ge('wall_datesearch_cal_div').offsetWidth) / ge('wall_datesearch_lnk')[vk.rtl 'offsetRight' 'offsetLeft']) + 'px';
      
ge('wall_datesearch_cal_box').style.marginTop '-2px';
    });
  }
}

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