Вход Регистрация
Файл: js/al/walledit.js
Строк: 270
<?php
var WallEdit = {
  
handleEditEsc: function(e) {
    if (
e.keyCode == KEY.ESC) {
      
WallEdit.cancelEditPost();
    }
  },
  
editPost: function(post, text, mediaData, hash, opts, types) {
    if (
cur.editingPost && (cur.editingPost[0] != post || cur.editingPost[1]) && ge('wpe_text')) {
      return 
elfocus('wpe_text');
    }
    var 
acts = opts.wkview ? 'wl_post_actions_wrap' : ('wpe_bottom' + post),
        
node = 'wpt' + post,
        
postNode;
    if (
opts.reply == 'photo_comment') {
      
postNode = ge('pv_comment' + post.replace(/(d+)photo_(d+)pv/, '$1_$2'));
    } else if (
opts.reply == 'video_comment') {
      
postNode = ge('mv_comment' + post.replace(/(d+)video_(d+)mv/, '$1_$2'));
    } else {
      
postNode = ge('post' + post);
    }
    
cur.editingPost = [post, node, acts, opts];
    
node = ge(node);
    var 
author = null;
    if (
opts.wkview) {
      
author = geByClass1('wl_owner_head_name', ge('wl_post'), 'a');
      
WkView.wallOnEdit(post, opts);
    } else {
      
author = geByClass1(opts.reply ? 'fw_reply_author' : 'fw_post_author', node.parentNode) || geByClass1('author', node.parentNode);
    }
    
hide(geByClass1('wall_signed', domPN(node)));
    var 
info = ce('span', {className: 'wpe_info'});
    var 
likeWrap = geByClass1(opts.reply ? 'like_wrap' : 'post_full_like_wrap', postNode, 'div');
    if (
author && author.nextSibling) {
      if (
author.nextSibling.className == 'wpe_info') {
        
re(author.nextSibling);
      }
    }
    
cur.editingPost.push(author.nextSibling ? author.parentNode.insertBefore(info, author.nextSibling) : author.parentNode.appendChild(info));
    
cur.editingPost.push(likeWrap);

    
cur.lang = extend(cur.lang || {}, opts.lang);
    
cur.options = extend(cur.options || {}, {share: opts.share});
    
cur.editHash = hash;
    
val(info, ' - ' + (opts.reply ? getLang('wall_editing_reply') : getLang('wall_editing_post')));

    
addEvent(window, 'keydown', WallEdit.handleEditEsc);

    var 
checkev = browser.opera_mobile ? 'blur' : 'keyup';
    
node.parentNode.insertBefore(ce('div', {id: 'wpe_cont', innerHTML: '
<div class="clear_fix"><textarea id="wpe_text" class="fl_l" on' 
+ checkev + '="' + (!opts.copy ? 'wall.checkPostLen('wpe_text', 'wpe_warn', this.value)' : 'wall.likeShareCheckLen('wpe_text', 'wpe_warn')') + '" onkeypress="onCtrlEnter(event, WallEdit.savePost)">' + text + '</textarea></div>
<div id="wpe_warn"></div>
<div id="wpe_media_preview" class="clear_fix media_preview"></div>
<div id="wpe_media_preview" class="clear_fix media_preview"></div>
' 
+ (opts.signed ? ('<div id="wpe_signed" class="checkbox' + (opts.signed > 0 ? ' on' : '') + '" onclick="checkbox(this)"><div></div>' + getLang('wall_suggest_subscribe') + '</div>') : '') + '
' 
+ (opts.add ? '<div class="wpe_auth">' + opts.add + '</div>' : '') + '
<div class="wpe_buttons">' 
+
  ((!
opts.copy) ? '<div id="wpe_add_media" class="fl_r"><span class="add_media_lnk">' + getLang('global_add_media') + '</span></div>' : '') +
  
'<div class="button_blue fl_l">
    <button onclick="WallEdit.savePost()">' 
+ getLang('global_save') + '</button>
  </div>
  <div class="button_cancel wpe_cancel fl_l">
    <div class="button" onclick="WallEdit.cancelEditPost()">' 
+ getLang('global_cancel') + '</div>
  </div>
  <div class="progress fl_l" id="wpe_prg"></div>
</div>'
}, {display: 'none'}), node);

    
autosizeSetup('wpe_text', {minHeight: 50});
    var 
mentionsLang = {introText: getLang('profile_mention_start_typing'), noResult: getLang('profile_mention_not_found')};

    if (
opts.copy) {
      
setTimeout(function () {
        var 
previewEl = ge('wpe_media_preview');
        
show(node.previousSibling, previewEl);
        
replaceClass(previewEl, 'media_preview', 'multi_media_preview');
        
hide(node, acts, likeWrap);
        
cur.wallEditComposer = Composer.init(ge('wpe_text'), {lang: mentionsLang});
        
elfocus('wpe_text');
      }, 
0);
      return;
    }

    
setTimeout(function() {
      
show(node.previousSibling);
      
hide(node, acts, likeWrap);

      var 
mediaTypes = [], mediaOpts;
      if (
opts.reply) {
        
each (types, function () {
          if (
inArray(this[0], ['photo', 'video', 'audio', 'doc', 'link'])) {
            
mediaTypes.push(this);
          }
        });
      } else {
        
mediaTypes = types;
      }
      if (
mediaTypes.length > 0) {
        
mediaOpts = {
          
lnk: ge('wpe_add_media').firstChild,
          
preview: 'wpe_media_preview',
          
types: mediaTypes,
          
options: {
            
toId: post.split('_')[0],
            
limit: opts.reply ? 2 : 10,
            
toggleLnk: opts.reply,
            
editable: !opts.reply,
            
sortable: !opts.reply
          
}
        };
        if (
opts.reply == 'photo_comment' || opts.reply == 'video_comment') {
          
mediaOpts.options.nocl = 1;
        }
      }

      
cur.wallEditComposer = Composer.init(ge('wpe_text'), {
        
lang: mentionsLang,
        
media: mediaOpts
      
});

      if (
mediaOpts) {
        
cur.wallEditMedia = cur.wallEditComposer.addMedia;

        for (var 
i = 0, l = mediaData.length; i < l; ++i) {
          
cur.wallEditMedia.chooseMedia.apply(cur.wallEditMedia, mediaData[i]);
          if (
mediaData[i][0] == 'postpone') {
            
cur.editingPost.push(mediaData[i][1]);
          }
        }
      }
      
elfocus('wpe_text');
    }, 
0);
  },
  
cancelEditPost: function(data, html, fronly) {
    if (!
cur.editingPost) return;
    var 
post = cur.editingPost[0],
        
node = ge(cur.editingPost[1]),
        
acts = ge(cur.editingPost[2]),
        
opts = cur.editingPost[3],
        
prg = ge('wpe_prg'),
        
info = cur.editingPost[4],
        
likeWrap = cur.editingPost[5],
        
postponeDate = cur.editingPost[6];

    if (!
post || !node || !acts || !prg || isVisible(prg)) return;

    if (
data === 0) {
      return 
elfocus('wpe_text');
    }

    
cur.editingPost = false;
    
removeEvent(window, 'keydown', WallEdit.handleEditEsc);

    
Wall.deinitComposer(ge('wpe_text'));

    var 
mediaEl = ge('wpe_add_media');

    
mediaEl && cleanElems(mediaEl.firstChild);

    if (
data == -1) {
      
val('wall_postponed', html);
      return;
    } else if (
data !== undefined) {
      
val(node, data);
      
val(info, ' - ' + (opts && opts.reply ? getLang('wall_reply_saved') : getLang('wall_post_saved')));
      var 
dcont = geByClass1('rel_date', acts);
      if (
postponeDate) {
        if (
html && dcont) {
          
dcont.innerHTML = html;
        }
        var 
fronlyEl = geByClass1('page_fronly', node.parentNode);
        if (
fronly && !fronlyEl) {
          if (
info.nextSibling) info.parentNode.insertBefore(se(fronly), info.nextSibling);
          else 
info.parentNode.appendChild(se(fronly));
        } else if (!
fronly && fronlyEl) {
          
re(fronlyEl);
        }
      }
      
setTimeout(animate.pbind(info, {opacity: 0}, 500, re.pbind(info)), 1500);
      if (
post.match(/^-?d+photo_/)) {
        
Photoview.commSaved(post);
      } else if (
post.match(/^-?d+video_/)) {
        
Videoview.commSaved(post);
      }
    } else {
      
re(info);
    }
    
show(acts, node, likeWrap);
    
show(geByClass1('wall_signed', domPN(node)));
    
re(node.previousSibling);
    if (
opts.wkview) {
      
WkView.wallOnEdited(post);
    }
    var 
_a = window.audioPlayer;
    if (
_a && _a.showCurrentTrack) _a.showCurrentTrack();
  },
  
savePost: function() {
    if (!
cur.editingPost) return;
    var 
post = cur.editingPost[0],
        
prg = ge('wpe_prg'),
        
opts = cur.editingPost[3];

    if (!
post || !prg || isVisible(prg)) return;

    var 
composer = cur.wallEditComposer,
        
addMedia = cur.wallEditMedia || {},
        
params = Composer.getSendParams(composer, WallEdit.savePost);

    if (
params.delayed) {
      return;
    }

    
extend(params, {
      
act: 'save',
      
post: post,
      
whole: 1,
      
hash: cur.editHash,
      
signed: isChecked('wpe_signed'),
      
from: cur.onepost ? 'one' : ((window.wkcur || {}).shown ? 'wk' : '')
    });
    var 
chk;
    if (
chk = ge('status_export' + addMedia.lnkId)) {
      
params.status_export = isChecked(chk);
    }
    if (
chk = ge('facebook_export' + addMedia.lnkId)) {
      
params.facebook_export = isChecked(chk);
    }
    if (
chk = ge('friends_only' + addMedia.lnkId)) {
      
params.friends_only = isChecked(chk);
    }

    if (!
params.attach1_type && !params.message && !opts.copy) {
      return 
elfocus('wpe_text');
    }

    
ajax.post('al_wall.php', Wall.fixPostParams(params), {
      
progress: prg,
      
onDone: WallEdit.cancelEditPost
    
});
  }
};

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