Вход Регистрация
Файл: js/al/board.js
Строк: 904
<?php
var Board = {
  
createTopic: function(oidhash) {
    var 
title trim(val('bnt_title')), post trim(val('bnt_text')), questionanswers = [];
    var 
chosen cur.boardNewMedia.chosenMedias || {}, media = [], types = [];
    for (var 
0chosen.lengthl; ++i) {
      var 
chosen[i];
      if (
m) {
        
types.push(m[0]);
        
media.push(m[1]);
      }
    }
    if (!
title) return elfocus('bnt_title');
    if (!
post && !media.length) return elfocus('bnt_text');
    if (
cur.pollPreview) {
      
question trim(val('bnt_poll_question'));
      if (!
question) {
        return 
elfocus('bnt_poll_question');
      }
      for (var 
el ge('bnt_poll_answers').firstChildelel el.nextSibling) {
        if (!
isVisible(el)) break;
        var 
answer trim(val(el));
        if (
answer) {
          
answers.push(answer);
        }
      }
      if (!
answers.length) {
        return 
elfocus(ge('bnt_poll_answers').firstChild);
      }
    }

    
ajax.post('al_board.php', {
      
act'do_create',
      
oidoid,
      
hashhash,
      
titletitle,
      
postpost,
      
media_typestypes,
      
mediamedia,
      
questionquestion,
      
from_groupisChecked('bnt_from_group'),
      
answersanswers
    
}, {
      
showProgresslockButton.pbind(ge('bnt_subm')),
      
hideProgressunlockButton.pbind(ge('bnt_subm'))
    });
  },
  
attachPoll: function() {
    var 
prev ge('bnt_media_preview');
    
cur.pollPreview prev.parentNode.insertBefore(ce('div', {id'bnt_poll'innerHTML'
<div class="bnt_header">' 
getLang('voting_topic') + '</div>
<input type="text" class="text" id="bnt_poll_question" />
<nobr class="no_select fl_r" onselectstart="return false;" ondblclick="return false;">
  <a id="bnt_poll_add" onclick="Board.incPoll('
bnt')">' getLang('voting_variants_add') + '</a><span class="sdivide">|</span><a id="bnt_poll_delete" class="bnt_disabled" onclick="Board.decPoll('bnt')">' getLang('voting_variants_del') + '</a>
</nobr>
<div class="bnt_header">' 
getLang('voting_variants') + '</div>
<div id="bnt_poll_answers"></div>
    '
}, {display'none'}), prev);
    
Board.initAddPoll('bnt');
    
slideDown(cur.pollPreview200, function() {
      
show('bnt_cancel_poll');
      
elfocus('bnt_poll_question');
    });
  },
  
initAddPoll: function(prefix) {
    var 
html = [];
    for (var 
020; ++i) {
      
html.push('<input type="text" class="text ' prefix '_poll_answer" style="' + ('display: none' '') + '" />');
    }
    
ge(prefix '_poll_answers').innerHTML html.join('');
  },
  
cancelPoll: function() {
    
hide('bnt_cancel_poll');
    
slideUp(cur.pollPreview200, function() {
      
re(cur.pollPreview);
      
cur.pollPreview false;
      
show('bnt_attach');
    });
  },
  
incPoll: function(prefix) {
    var 
answers ge(prefix '_poll_answers');
    for (var 
el answers.firstChildelel el.nextSibling) {
      if (!
isVisible(el)) {
        break;
      }
    }
    if (
el) {
      
ge(prefix '_poll_delete').className '';
      
show(el);
    }
    if (!
el || !el.nextSibling) {
      
ge(prefix '_poll_add').className prefix '_disabled';
    }
  },
  
decPoll: function(prefix) {
    var 
answers ge(prefix '_poll_answers'), first answers.firstChild;
    for (var 
el answers.lastChildelel el.previousSibling) {
      if (
isVisible(el)) {
        break;
      }
    }
    if (
el) {
      if (
el == first || el == first.nextSibling) {
        
el false;
      }
      if (
el) {
        
ge(prefix '_poll_add').className '';
        
hide(el);
      }
    }
    if (!
el || !el.previousSibling || el.previousSibling == first.nextSibling) {
      
ge(prefix '_poll_delete').className prefix '_disabled';
    }
  },

  
scrollResize: function() {
    if (
browser.mobile || cur.pvShown) return;

    var 
docEl document.documentElement;
    var 
ch window.innerHeight || docEl.clientHeight || bodyNode.clientHeight;
    var 
st scrollGetY();
    var 
lnk ge('blst_load_more');

    if (!
isVisible(lnk)) return;
    if (
st ch lnk.offsetTop) {
      
Board.load();
    }
  },
  
initScroll: function() {
    
cur.module 'board';

    
Board.scrollnode browser.msie6 pageNode window;

    
addEvent(Board.scrollnode'scroll'Board.scrollResize);
    
addEvent(window'resize'Board.scrollResize);
    
removeEvent(window'load'Board.initScroll);
    
cur.destroy.push(Board.deinitScroll);
  },
  
deinitScroll: function() {
    
removeEvent(Board.scrollnode'scroll'Board.scrollResize);
    
removeEvent(window'resize'Board.scrollResize);
  },
  
loaded: function(offrows) {
    
cur.offset off;

    var 
cont ge('blst_cont'), ce('div', {innerHTMLrows});
    while (
d.firstChild) {
      
cont.appendChild(d.firstChild);
    }

    if (
off >= cur.count || !rows) {
      
hide('blst_load_more');
      return;
    }
    
cur.loading 1;
    var 
params cur.query ? {act'search'qcur.query} : {ordercur.order};
    
ajax.post('/board' cur.gidextend(params, {offsetcur.offsetpart1}), {cache1onDone: function() {
      if (
cur.loading == 2) {
        
Board.loaded.apply(windowarguments);
      } else {
        
cur.loading false;
      }
    }, 
onFail: function() {
      
cur.loading 0;
      return 
true;
    }});
  },
  
load: function() {
    if (!
isVisible('blst_load_more') || isVisible('blst_more_progress')) return;
    if (
cur.loading) {
      
cur.loading 2;
      return;
    }

    var 
params cur.query ? {act'search'qcur.query} : {ordercur.order};
    
ajax.post('/board' cur.gidextend(params, {offsetcur.offsetpart1}), {onDoneBoard.loadedonFail: function() {
      
cur.loading 0;
      return 
true;
    }, 
showProgress: function() {
      
show('blst_more_progress');
      
hide(ge('blst_load_more').firstChild);
    }, 
hideProgress: function() {
      
show(ge('blst_load_more').firstChild);
      
hide('blst_more_progress');
    }, 
cache1});
  },

  
topicFieldUpdated: function() {
    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) {
      
Board.topicOnScroll(falsefalsetrue);
    }
  },
  
topicOnProgress: function() {
    
Board.topicFieldUpdated();
  },
  
topicCheckAttach: function() {
    var 
img geByClass1('photo'cur.addAttach);
    if (!
img) return;
    if (
img.width && img.height) {
      
Board.topicFieldUpdated();
    } else {
      
img.onload Board.topicCheckAttach;
    }
  },
  
topicAttachAdded: function() {
    
Board.topicFieldUpdated();
    
Board.topicCheckAttach();
  },
  
topicAttachWillAdd: function() {
    
setTimeout(Board.topicAttachAdded10);
    
setTimeout(Board.topicAttachAdded100);
    
setTimeout(Board.topicAttachAdded1000);
  },
  
repliesCount: function() {
    var 
cur.addText.match(/[postd+|[^]]+]/g), res 0;
    for (var 
i in (|| {})) ++res;
    return 
res;
  },
  
replyPost: function(postmid) {
    if (
browser.mobile) return elfocus(cur.addField);
    
cur.addForce true;
    
Board.topicOnScroll(falsefalsetrue);
    var 
count Board.repliesCount();
    if (
count >= 10) {
      return 
setTimeout(elfocus.pbind(cur.addField), 0);
    }
    var 
insert replaceEntities(cur.names[mid].replace('{post_id}''post' post)), pos;
    if (
document.selection) {
      var 
range document.selection.createRange();
      if (
range.parentElement() == cur.addField) {
        
range.text insert + (range.text || '');
        
pos = -1;
        
range.select();
      } else {
        
val(cur.addFieldcur.addText insert);
        
pos cur.addText.length insert.length;
      }
    } else {
      
pos cur.addField.selectionEnd insert.length;
      
cur.addField.blur();
      
val(cur.addFieldcur.addText.substr(0cur.addField.selectionStart) + insert cur.addText.substr(cur.addField.selectionStart));
    }
    if (
pos >= 0) {
      
elfocus(cur.addFieldpospos);
    }
    
cur.addText val(cur.addField);
  },
  
privacyChanged: function(key) {
    if (
key == 'voting_action') {
      
Board.votingAction(key);
    } else if (
key == 'topic_action') {
      
Board.topicAction(key);
    }
  },
  
topicAction: function(key) {
    
ge('privacy_edit_topic_action').innerHTML getLang('global_edit');
    var 
act cur.privacy[key][0];
    
cur.privacy[key] = [00, []];
    if (
act == 'edit') {
      
showFastBox(getLang('board_edit_topic'), '
<div class="bte_label fl_l">' 
getLang('board_new_topic_title') + '</div>
<div class="bte_labeled fl_l">
  <input id="bte_title" class="text" type="text" onchange="curBox().changed = true;" onkeypress="if (event.keyCode == 10 || event.keyCode == 13) Board.saveTopic()" />
</div><br class="clear">
      '
getLang('global_save'), Board.saveTopicgetLang('global_cancel'));
      
val('bte_title'winToUtf(val('bt_title')));
      
elfocus('bte_title');
    } else if (
act == 'voting') {
      
showBox('al_board.php', {act'create_voting'topiccur.topic});
    } else if (
act == 'delete') {
      
showFastBox(getLang('board_edit_topic'), '<div>' getLang('board_sure_delete_topic') + '</div>'getLang('global_delete'), Board.deleteTopicgetLang('global_cancel'));
    } else if (
act == 'open' || act == 'close') {
      
ajax.post('al_board.php', {act: (act == 'open') ? 'open_topic' 'close_topic'topiccur.topichashcur.hashoffsetnav.objLoc.offset}, {
        
showProgress: function() {
          
hide('privacy_edit_topic_action');
          
show('edit_topic_prg');
        },
        
hideProgress: function() {
          
hide('edit_topic_prg');
          
show('privacy_edit_topic_action');
        }
      });
    } else if (
act == 'fix' || act == 'unfix') {
      var 
cur.topic;
      
ajax.post('al_board.php', {act: (act == 'fix') ? 'fix_topic' 'unfix_topic'topicthashcur.hash}, {
        
onDone: function(textpriv) {
          if (
cur.topic !== t) return;
          
cur.privacy.topic_action_types priv;
          var 
msg ge('bt_msg');
          if (!
msg) {
            
msg ge('content').insertBefore(ce('div', {id'bt_msg'className'msg'}), ge('bt_title').parentNode.nextSibling);
            
re('bv_msg');
          }
          
msg.innerHTML text;
          
msg.style.backgroundColor '#F4EBBD';
          
animate(msg, {backgroundColor'#F9F6E7'}, 2000);
        },
        
showProgress: function() {
          
hide('privacy_edit_topic_action');
          
show('edit_topic_prg');
        },
        
hideProgress: function() {
          
hide('edit_topic_prg');
          
show('privacy_edit_topic_action');
        }
      });
    }
  },
  
saveTopic: function() {
    var 
newtitle trim(val('bte_title'));
    if (!
newtitle) {
      return 
elfocus('bte_title');
    }
    
ajax.post('al_board.php', {act'save_topic'topiccur.topichashcur.hashtitlenewtitle}, {onDone: function(text) {
      
ge('bt_title').innerHTML text;
      
curBox().hide();
    }, 
progresscurBox().progress});
  },
  
deleteTopic: function() {
    
ajax.post('al_board.php', {act'delete_topic'topiccur.topichashcur.hash}, {progresscurBox().progress});
  },
  
initTopic: function(optspreload) {
    
extend(cur, {
      
module'board',

      
dockedfalse,
      
topicopts.topic,
      
owneropts.owner,
      
hashopts.hash,
      
postLimitopts.limit,
      
postTo'board' + (-opts.owner),

      
namesopts.names,
      
mediaTypesopts.media,

      
addFieldge('ba_text'),
      
addBlockge('ba_post'),
      
addAttachge('ba_media_preview'),
      
addBlockWrapge('ba_post_wrap'),

      
pgStartopts.start,
      
pgOffsetopts.offset,
      
pgCountopts.count,
      
pgPerPageopts.perpage,
      
pgContge('bt_rows'),
      
pgMorege('bt_load_more'),
      
pgPagesge('bt_pages'),
      
pgMorePrgge('bt_more_progress'),
      
pgPreloadpreload,
      
pgUrlopts.url,
      
pgHrefopts.url '?offset=',

      
pgPostProcessBoard.loadedPosts,
      
pgOnScrollBoard.topicOnScroll,
      
pgNoArrowNavBoard.noArrowNav,

      
onPrivacyChangedBoard.privacyChanged,
      
updatesopts.updates,
      
topicMyRepliedfalse,
      
topicMyDeleted: {}
    });
    
cur.privacy extend(cur.privacy || {}, opts.privacy);
    
Board.initUpdates();

    if (
cur.addField) {
      
cur.boardAddMedia initAddMedia(ge('ba_add_media').firstChild'ba_media_preview'cur.mediaTypes, {
        
limit10,
        
editable1,
        
sortable1,
        
teWidth280,
        
teHeight200
      
});
      
cur.boardAddMedia.onChange Board.topicAttachWillAdd;
      
cur.boardAddMedia.onProgress Board.topicOnProgress;
      
placeholderSetup(cur.addField);
      
autosizeSetup(cur.addField, {minHeight42maxHeight160});
      
addEvent(cur.addField'change keydown keyup paste'Board.topicFieldUpdated);
      
Board.topicFieldUpdated();
    }

    
Board.topicOnScroll(falsefalsetrue);

    
Pagination.init(opts.bottom);
    
cur.destroy.push(Pagination.deinit);
    
cur.destroy.push(removeEvent.pbind(window'keydown'Board.handleEditEsc));
  },
  
initUpdates: function () {
    if (!
cur.updates || !window.Notifier) {
      return
    }
    
Board.checkUpdates();
    
cur.updates.unread 0;
    
cur.updates.interval setInterval(Board.checkUpdates20000);
    
cur.destroy.push(function () {
      
clearInterval(cur.updates.interval);
    });

    if (!
isArray(cur.onUnidle)) {
      
cur.onUnidle = [];
    }
    
cur.onUnidle.push(function () {
      
Board.updateTitle(true);
    });
  },
  
checkUpdates: function () {
    if (!
cur.updates || !cur.updates.queue) {
      return;
    }
    
Notifier.addKey(cur.updates.queueBoard.checkedUpdates);
  },
  
getAbsDate: function (ts) {
    var 
date = new Date(ts || vkNow()),
        
hours date.getHours(),
        
minutes date.getMinutes(),
        
ampm ''numhours;
    if (
cur.updates.time_system) {
      
ampm cur.updates.time_system[hours 11 0];
      
hours = (hours 12) || 12;
    }
    
numhours hours hours : ('0' hours);
    
minutes minutes minutes : ('0' minutes);
    return 
cur.updates.date_format.replace('{am_pm}'ampm).replace('{hour}'hours).replace('{num_hour}'numhours).replace('{minute}'minutes);
  },
  
checkedUpdates: function (keydata) {
    if (!
cur.updates || !cur.updates.queue || cur.updates.queue.key != key) {
      return;
    }
    if (
data.failed) {
      
cur.updates.queue false;
      return;
    }
    
cur.updates.queue.ts data.ts;
    if (!
isArray(data.events) || !data.events.length) {
      return;
    }
    
// debugLog('board updated', data);
    
var count false;
    
each(data.events, function () {
      var 
ev this.split('<!>'), evVer ev[0], evType ev[1],
          
topicId ev[2], postId ev[4], el ge('post' postId);

      if (
evVer != cur.updates.qversion) {
        
location.reload();
        return 
false;
      }
      if (
ev[3] > -1count ev[3];
      
// debugLog(ev, count, evType);
      
switch (evType) {
        case 
'new_post':
          if (
cur.topicMyReplied || el || cur.pgOffset cur.pgCount) break;

          var 
data = {
            
actions'',
            
owner_idcur.owner,
            
topic_rawcur.topic,
            
post_rawpostId,
            
post_idev[5],
            
post_uidev[6],
            
nameev[7],
            
photoev[8],
            
linkev[9],
            
textev[10],
            
mediaev[11],
            
dateBoard.getAbsDate(),
            
online''
          
}, skin cur.updates.skinactions '';
          if (
vk.id) {
            if (
vk.id == data.post_uid || cur.updates.admin_level 0) {
              if (
vk.id == data.post_uid || cur.updates.admin_level 1) {
                
actions += skin.sep skin.act_edit;
              }
              
actions += skin.sep skin.act_delete;
            } else if (
vk.id != data.post_uid) {
              
actions += skin.sep skin.act_report;
            }
            if (
vk.id != data.post_uid) {
              
actions += skin.sep skin.act_reply;
            }
          }
          
data.actions actions;
          
cur.names[data.post_uid] = ev[12];

          var 
newEl se(rs(skin.postdata));
          
// debugLog(skin, data, actions);
          
ge('bt_rows').appendChild(newEl);
          
setStyle(newEl, {backgroundColor'#FEFAE4'});
          
animate(newEl, {backgroundColor'#FFF'}, 6000);

          
cur.pgOffset++;
          
cur.pgCount++;
          if (
window.curNotifier && curNotifier.idle_manager && curNotifier.idle_manager.is_idle) {
            
cur.updates.unread++;
          }
          break;

        case 
'del_post':
          if (
cur.topicMyDeleted[ev[4]] || !el) break;
          
hide(el);
          
cur.pgOffset--;
          
cur.pgCount--;
          break;

        case 
'res_post':
          if (
isVisible(el)) break;
          
show(el);
          
cur.pgOffset++;
          
cur.pgCount++;
          break;
      }
    });
    if (
count !== false) {
      
val('bt_summary'count getLang('board_msgs_in_topic'count) : getLang('board_no_msgs_in_topic'));
      
Pagination.pageReady(false);
      
Board.topicOnScroll(falsefalsetrue);
      
Board.updateTitle();
    }
  },
  
updateTitle: function (unidle) {
    if (!
cur.updates) {
      return;
    }
    if (
unidle) {
      
cur.updates.unread 0;
    }
    
document.title replaceEntities((cur.updates.unread '('cur.updates.unread ') ' '') + cur.updates.skin.title);
  },
  
cancelAddPost: function(clear) {
    
cur.addForce false;
    
hide('ba_cancel');
    
cur.addBlock.className '';
    
cur.boardAddMedia.menu.updateFixed(false);
    if (
browser.msie6) {
      
cur.addBlockWrap.appendChild(cur.addBlock);
    }
    
cur.docked false;
    if (
clear === true) {
      
val(cur.addField'');
      
cur.boardAddMedia.unchooseMedia();
      
hide('bp_warn');
      
cur.addField.autosize.update();
      
Board.topicFieldUpdated();
    }
  },
  
topicResetStyle: function() {
    
cur.addBlock.style.left '';
  },
  
topicOnScroll: function(estpp) {
    if (
st === false || st === undefined) {
      
st scrollGetY();
    }
    if (!
cur.addField) return;
    if (
pp === true) {
      
cur.addBlockTop getXY(cur.addBlockWrap)[1];
      if (
browser.msie6cur.addBlockTop += st;
    }
    var 
needDock = (cur.addText || cur.addForce || cur.boardAddMedia.chosenMedia) && (st lastWindowHeight cur.addBlockTop cur.addBlockHeight);
    if (
needDock && !cur.docked) {
      
cur.addBlock.className 'fixed';
      if (
browser.msie6) {
        
bodyNode.appendChild(cur.addBlock);
        
= {type'resize'};
      } else {
        
cur.boardAddMedia.menu.updateFixed(true);
      }
      
cur.docked true;
      
show('ba_cancel');
      
cur.addForce true;
    } else if (!
needDock && cur.docked) {
      
Board.cancelAddPost();
    }
    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(Board.topicResetStyle0);
      }
    }
  },
  
loadedPosts: function(countfromrowsoffsetpagespreloadnames) {
    
Board.topicOnScroll(falsefalsetrue);
    
ge('bt_summary').innerHTML count getLang('board_msgs_in_topic'count) : getLang('board_no_msgs_in_topic');
    if (
preload) { // got new page
      
Board.cancelEditPost();
    } else {
      
names offset;
    }
    
extend(cur.namesnames);
  },
  
noArrowNav: function() {
    return 
cur.__focused || cur.bEditingPost;
  },
  
scrollToEnd: function() {
    var 
st cur.addBlockTop cur.addBlockHeight 20 lastWindowHeight;
    if (
scrollGetY() < st) {
      
Pagination.setScroll(st);
    }
  },
  
sendPost: function() {
    var 
prg ge('ba_progress');
    if (
isVisible(prg)) return;

    var 
value trim(val(cur.addField)),
        
addmedia cur.boardAddMedia || {},
        
media addmedia.chosenMedia || {},
        
medias cur.boardAddMedia addmedia.getMedias() : [],
        
params = {
      
act'post_comment',
      
topiccur.topic,
      
hashcur.hash,
      
commentvalue,
      
lastlast,
      
from_groupisChecked('ba_from_group')
    }, 
attachI 0;

    if (
isArray(media) && media.length) {
      
medias.push(clone(media));
    }

    if (
medias.length) {
      
each(medias, function(kv) {
        if (!
v) return;
        ++
attachI;
        
params['attach' attachI '_type'] = this[0];
        
params['attach' attachI] = this[1];
      });
    }
    if (!
attachI && !value) {
      return 
elfocus(cur.addField);
    }

    
cur.topicMyReplied true;
    var 
last = ((cur.pgCont.childNodes[cur.pgNodesCount 1].id || '').match(/d+$/) || [0])[0];
    
ajax.post('al_board.php'params, {onDone: function(countfromrowsoffsetpagespreload) {
      
cur.topicMyReplied false;
      
re('b_no_content');
      
Pagination.loaded.apply(windowarguments);
      
Board.cancelAddPost(true);
      
setTimeout(Board.scrollToEnd0);
      if (
pages && offset) {
        
nav.setLoc(extend(nav.objLoc, {offsetoffset}));
      }
    }, 
progressprg});
  },
  
deleteReportPost: function(postact) {
    
post cur.owner '_' post;
    var 
prg geByClass1('bp_progress'ge('post' post));
    if (
isVisible(prg)) return;

    
cur.topicMyDeleted[post] = 1;
    
ajax.post('al_board.php', {actactpostposthashcur.hash}, {onDone: function(textdeleted) {
      var 
info ge('post' post).firstChild.nextSibling;
      if (
info) {
        
info.firstChild.rows[0].cells[0].innerHTML text;
      } else {
        
info ge('post' post).appendChild(ce('div', {className'bp_deleted'innerHTML'
<table cellspacing="0" cellpadding="0" style="width: 100%"><tr><td class="bp_deleted_td">
  ' 
text '
</td></tr></table>'
}));
        
hide(info.previousSibling);
      }

      if (
deleted) {
        
Pagination.recache(-1);
        
Board.loadedPosts(cur.pgCount);
      }
    }, 
progressprg});
  },
  
deletePost: function(post) {
    
Board.deleteReportPost(post'delete_comment');
  },
  
reportPost: function(post) {
    
Board.deleteReportPost(post'spam_comment');
  },
  
restorePost: function(post) {
    
post cur.owner '_' post;
    
cur.topicMyDeleted[post] = 0;
    
ajax.post('al_board.php', {act'restore_comment'postposthashcur.hash}, {onDone: function() {
      var 
info ge('post' post).firstChild.nextSibling;
      if (
info) {
        
show(info.previousSibling);
        
re(info);

        
Pagination.recache(1);
        
Board.loadedPosts(cur.pgCount);
      }
    }});
  },
  
editPost: function(post) {
    if (
cur.bEditingPost) {
      return 
ge('bpe_text') ? elfocus('bpe_text') : false;
    }
    
post cur.owner '_' post;
    
cur.bEditingPost post;

    var 
postNode ge('post' post), dataNode ge('bp_data' post);
    var 
bottom geByClass1('bp_bottom'postNode), prg geByClass1('bp_progress'bottom);
    
ajax.post('al_board.php', {act'edit_comment'postpost}, {onDone: function(textmediaadd) {
      
addEvent(window'keydown'Board.handleEditEsc);
      var 
textField dataNode.parentNode.insertBefore(ce('div', {className'bpe_wrap'innerHTML'
<textarea id="bpe_text" onkeyup="checkTextLength(cur.postLimit, this, '
bpe_warn')" onkeypress="onCtrlEnter(event, Board.savePost)">' text '</textarea>
<div id="bpe_warn"></div>
<div id="bpe_media_preview" class="clear_fix media_preview"></div>
+ (add '<div class="wpe_auth">' add '</div>' '') + '
<div class="bpe_buttons">
  <div id="bpe_add_media" class="fl_r"><span class="add_media_lnk">' 
getLang('board_add_attach') + '</span></div>
  <div class="button_blue fl_l">
    <button onclick="Board.savePost()">' 
getLang('global_save') + '</button>
  </div>
  <div class="button_cancel bpe_cancel fl_l">
    <div class="button" onclick="Board.cancelEditPost()">' 
getLang('global_cancel') + '</div>
  </div>
  <div class="progress fl_l" id="bpe_progress"></div>
</div>'
}), dataNode).firstChild;
      
autosizeSetup(textField, {minHeight17delta0});
      
setTimeout(function() {
        
show(textField.parentNode);
        
elfocus(textField);
        
hide(dataNodebottom);
        
cur.boardEditMedia initAddMedia(ge('bpe_add_media').firstChild'bpe_media_preview'cur.mediaTypes, {limit10editable1sortable1teWidth280teHeight200});
        if (
media && media.length) {
          for (var 
0= (media || []).lengthl; ++i) {
            
cur.boardEditMedia.chooseMedia.apply(windowmedia[i]);
          }
        }
      }, 
0);
    }, 
onFail: function() {
      
cur.bEditingPost false;
    }, 
progressprg});
  },
  
cancelEditPost: function(ntnmne) {
    var 
post cur.bEditingPostprg ge('bpe_progress');
    if (!
post || isVisible(prg)) return;

    
cur.bEditingPost false;
    if (!
prg) return;

    
removeEvent(window'keydown'Board.handleEditEsc);
    
cleanElems(ge('bpe_add_media').firstChild);

    var 
postNode ge('post' post), dataNode ge('bp_data' post);
    var 
textNode dataNode.firstChildmediaNode textNode.nextSibling;
    var 
bottom geByClass1('bp_bottom'postNode);

    if (
nt !== undefined) {
      
val(textNodent);
      (
nt show hide)(textNode);
    }
    if (
nm !== undefined) {
      if (
mediaNode && !nm) {
        
re(mediaNode);
      } else if (
nm) {
        if (!
mediaNode) {
          
mediaNode dataNode.appendChild(ce('div'));
        }
        
dataNode.replaceChild(ce('div', {innerHTMLnm}).firstChildmediaNode);
      }
    }
    if (
ne !== undefined) {
      var 
ed geByClass1('bp_edited_by'postNode);
      
val(edne);
      (
ne show hide)(ed);
    }
    
show(bottomdataNode);
    
re(ge('bpe_text').parentNode);
  },
  
handleEditEsc: function(e) {
    if (
e.keyCode == KEY.ESC) {
      
Board.cancelEditPost();
    }
  },
  
savePost: function() {
    var 
post cur.bEditingPostprg ge('bpe_progress');
    if (!
post || !prg || isVisible(prg)) return;

    var 
newtext trim(val('bpe_text')),
        
addmedia cur.boardEditMedia || {},
        
media addmedia.chosenMedia || {},
        
medias cur.boardEditMedia addmedia.getMedias() : [],
        
params = {
      
act'save_comment',
      
postpost,
      
hashcur.hash,
      
commentnewtext
    
}, attachI 0;

    if (
isArray(media) && media.length) {
      
medias.push(clone(media));
    }

    if (
medias.length) {
      
each(medias, function(kv) {
        if (!
v) return;
        ++
attachI;
        
params['attach' attachI '_type'] = this[0];
        
params['attach' attachI] = this[1];
      });
    }
    if (!
attachI && !newtext) {
      return 
elfocus('bpe_text');
    }

    
ajax.post('al_board.php'params, {
      
onDoneBoard.cancelEditPost,
      
progressprg
    
});
  },

  
votingUpdate: function(htmljs) {
    if (
curBox()) {
      
curBox().hide();
    }

    var 
wrap ge('bv_wrap');
    
wrap.innerHTML html;
    if (
js) eval(js);
    if (!/^
boardd+([?#]|$)/.test(_tbLink.loc || '')) {
      
globalHistoryDestroy(_tbLink.loc);
    }
    if (
html) {
      
delete(cur.privacy.topic_action_types.voting);
    } else {
      var 
newTypes = {editcur.privacy.topic_action_types.editvotinggetLang('board_create_voting')};
      for (var 
i in cur.privacy.topic_action_types) {
        
newTypes[i] = cur.privacy.topic_action_types[i];
      }
      
cur.privacy.topic_action_types newTypes;
    }
  },
  
vote: function(eloidvidoption) {
    var 
pr hasClass(el.firstChild'progress') ? el.firstChild el.insertBefore(ce('span', {className'fl_r progress'}), el.firstChild);
    
ajax.post('al_voting.php', {
      
act'vote',
      
option_idoption,
      
owner_idoid,
      
voting_idvid,
      
context'topic',
      
hashcur.polls[vid].hash
    
}, {onDoneBoard.votingUpdateprogresspr});
  },
  
votingAction: function(key) {
    
ge('privacy_edit_voting_action').innerHTML getLang('voting_settings');
    var 
act intval(cur.privacy[key][0]);
    
cur.privacy[key] = [00, []];
    
Board.votingActionPerform(act);
  },
  
votingActionPerform: function(actsure) {
    if (
act == 105) {
      if (
sure) {
        
curBox().hide();
      } else {
        return 
showFastBox(getLang('global_warning'), getLang('voting_sure_del_quiz'), getLang('global_delete'), Board.votingActionPerform.pbind(acttrue), getLang('global_cancel'));
      }
    }
    var 
state 0;
    switch (
act) {
      case 
101act 'openclose'state 0; break;
      case 
102act 'openclose'state 1; break;
      case 
103act 'tomain';    state 0; break;
      case 
104act 'tomain';    state 1; break;
      case 
105act 'delete';    state 0; break;
    }
    
ajax.post('al_voting.php', {
      
actact,
      
owner_idcur._voting.oid,
      
voting_idcur._voting.vid,
      
statestate,
      
context'topic',
      
hashcur._voting.hash
    
}, {onDoneBoard.votingUpdateshowProgress: function() {
      
hide('privacy_edit_voting_action');
      
show('bv_progress');
    }, 
onHideProgress: function() {
      
hide('bv_progress');
      
show('privacy_edit_voting_action');
    }});
  },

  
mentionOver: function(el) {
    var 
post = ((el.getAttribute('mention') || '').match(/^bp(-?d+_d+)$/) || {})[1];
    if (!
post) {
      
mentionOver(el);
      return;
    }
    
showTooltip(el, {
      
url'al_board.php',
      
params: {act'post_tt'postpost},
      
slide15,
      
shift: [78, -30],
      
ajaxdt100,
      
showdt400,
      
hidedt200,
      
className'rich board_tt'
    
});
  },
  
docTooltip: function(elpostdoc) {
    
showTooltip(el, {
      
url'al_board.php',
      
params: {act'doc_tt'postpostdocdoc},
      
slide15,
      
shift: [78, -30],
      
ajaxdt100,
      
showdt400,
      
hidedt200,
      
className'rich board_tt'
    
});
  },

  
searchGo: function(elev) {
    return 
nav.go(elev, {params: {qnav.objLoc.q}});
  }

}

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