Вход Регистрация
Файл: js/al/mail.js
Строк: 1025
<?php
var mail = {
  
fastGo: function(locev) {
    if (
checkEvent(ev)) {
      var 
matches loc.match(/mail?act=show&id=(d+)/);
      if (
matches) {
        var 
msg_id matches[1], msg cur.mail_cached[msg_id];
        if (
msg && msg.unread && !msg.deleted) {
          
cur.new_msg--;
          
mail.updateUnread();
          
msg.unread false;
          
ge('mess' msg_id).className '';
        }
      }
      return 
false;
    }
    return 
nav.go(loc);
  },
  
getListParams: function () {
    var 
params = {sectioncur.section};
    if (
params.section == 'inbox') {
      
params.filter cur.filter;
    }
    if (
cur.section == 'search') {
      
params.val('s_search');
      if (!
params.q) {
        
delete params.section;
        
delete params.q;
      }
    }
    if (!
params.section || params.section == 'inbox') {
      
delete params.section;
    }
    return 
params;
  },
  
updateList: function (params) {
    
nav.go(extend({'0''mail'}, mail.getListParams(), params || {}));
  },
  
updateUnread: function () {
    
handlePageCount('msg'cur.new_msg);
  },
  
showMessage: function (msg_id) {
    var 
msg cur.mail_cached[msg_id];
    if (!
msg) return;
    if (
msg.deleted) {
      return 
false;
    }
    
ge('mail_top_msg_wrap').innerHTML '';

    if (
msg.unread) {
      
ge('mess' msg_id).className '';
      
msg.unread false;
      if (
cur.filter == 'new') {
        
cur.count--;
        
mail.updateSummary();
      }
      
ajax.post('al_mail.php', {act'show'idmsg_id}, {onDone: function(unread_num) {
        if (
cur.filter == 'new') {
          
cur.offset--;
          
cur.count unread_num;
        }
        if (
cur.section == 'spam') {
          var 
spam_unread ge('mail_unread_spam_count'),
              
spam_unread_cnt val(geByTag1('b'spam_unread)) - 1;
          
val(spam_unreadspam_unread_cnt '(<b>' spam_unread_cnt '</b>)' '');
        }
        
cur.new_msg unread_num;
        
mail.updateUnread();
      }, 
ads1});
      
cur.new_msg--;
      
mail.updateUnread();
    } else {
      
ajax.post('ads_rotate.php', {act'al_update_ad'}, {ads1});
    }

    var 
content cur.msg_tpl;
    
each(['id''photo''link''date''topic''message''header''warning''button_label''history''online''buttons'], function (kv) {
      
content content.replace('%' '%'msg[v]);
    });

    var 
_back cur._backwNode ge('mail_content'), cur_loc hab.getLoc();
    var 
newW ce('div', {id'mail_content'innerHTMLcontent}), st scrollNode.scrollTop;
    
cur._back_local = {
      
contentwNode.parentNode.replaceChild(newWwNode),
      
sectioncur.section,
      
filtercur.filter || 'all',
      
htitledocument.title.toString(),
      
loccur_loc,
      
scrollTopst,
      
back: (window._tbLink && _tbLink.loc) ? [_tbLink.locval(_tbLink), _tbLink.fast] : false
    
};
    
document.title msg.htitle;
    
mail.setSection('msg');
    
nav.setLoc('mail?act=show&id=' msg_id);
    
showBackLink(cur._back_local.locgetLang('mail_return_to_list'), true);
    
scrollNode.scrollTop 0;
    !
browser.mobile && elfocus('mail_reply_field');
    
mail.initThread(extend(msg.options, {media_typescur.msg_media_types}));
    return 
false;
  },
  
showMsgsList: function (paramsbackaddLoc) {
    if (!
cur._back_local) return true;

    var 
hist cur._back_local;
    if (
params !== false) {
      var 
next_section params.section || 'inbox'next_filter params.filter || 'all';
      if (
cur.ignore_local || hist.section != next_section || next_section == 'inbox' && hist.filter != next_filter) {
        return 
true;
      }
    }
    
cur._back_local false;

    var 
_back cur._backwNode ge('mail_content');
    
wNode.parentNode.replaceChild(hist.contentwNode);
    
mail.setSection(hist.section);
    
document.title hist.htitle;
    if (
hist.back) {
      
showBackLink(hist.back[0], hist.back[1], hist.back[2]);
    } else {
      
showBackLink(false);
    }
    
nav.setLoc(hist.loc);
    if (
back) {
      
scrollNode.scrollTop hist.scrollTop;
    } else {
      
scrollNode.scrollTop 0;
      
mail.updateList(addLoc);
    }
    return 
false;
  },
  
doPost: function () {
    var 
btn ge('mail_send');
    if (
geByClass1('button_lock'btn.parentNode'span')) return;
    var 
inp cur.section == 'msg' ge('mail_reply_field') : ge('mail_write_field');
    if (!
inp) return;
    var 
msg trim(val(inp)), chosenMedias cur.addMailMedia && cur.addMailMedia.chosenMedias || [];
    if (!
msg && !chosenMedias.length) {
      
notaBene(inp);
      return;
    }
    if (
cur.section == 'write' && !cur.toPeople.val()) {
      
cur.toPeople.input.focus();
      return;
    }
    
lockButton(btn);

    var 
params = {act'a_send'chasmail.decodehash(cur.thread.hash), messagemsg};
    if (
chosenMedias.length) {
        var 
media = [], 1;

      if (
chosenMedias) {
        
each (chosenMedias, function (kv) {
          if (!
v) return;
          
media.push(v[0] + ':' v[1]);
        });
        
params.media media.join(',');
      }
    }
    if (
cur.section == 'write') {
      
extend(params, {
        
to_idscur.toPeople.val(),
        
titleval('mail_topic'),
        
from'write'
      
});
      if (
cur.thread.extra_hash) {
        
params.extra_chas mail.decodehash(cur.thread.extra_hash);
      }
    } else {
      
extend(params, {
        
to_idcur.thread.id,
        
titlecur.thread.reply_title,
        
from'msg',
        
to_replycur.thread.msg_id
      
});
    }
    
ajax.post('al_mail.php'params, {onDone: function(msg_idrowtop_msgloc) {
      if (
cur._back_local) {
        
mail.showMsgsList(falsefalseloc);
        
ge('mail_top_msg_wrap').innerHTML top_msg;
        if (
cur.section == 'outbox') {
          var 
ce('div', {innerHTML'<table><tbody>' row '</tbody></table>'}).firstChild.rows[0];
          
ge('mail_rows_t').insertRow(r0);
        }
      } else {
        
nav.go(extend({'0''mail'}, loc));
      }
    }, 
onFail: function (msg) {
      if (!
msg) return;
      
setTimeout(showFastBox(getLang('global_error'), msg).hide5000);
      
unlockButton(btn);
      return 
true;
    }});
  },
  
showHistory: function () {
    
ajax.post('/al_mail.php', {act'history'idcur.thread.id}, {
      
onDone: function (optionsrows) {
        
ge('mail_history').innerHTML rows;
        
mail.applyThreadOptions(options);
        
mail.scrollCheck();
      },
      
showProgress: function () {
        
show('mail_history_open_progress');
        
hide('mail_history_open');
        
cur.isMailLoading true;
      },
      
hideProgress: function () {
        
hide('mail_history_open_progress');
        
cur.isMailLoading false;
      }
    });
  },

  
showMoreThread: function () {
    if (
cur.isMailLoading) {
      return;
    }
    var 
show_more_link ge('show_more_link'), main_t geByTag1('tbody'ge('mail_history_t')), next_t ge('mail_history_t_next') && geByTag1('tbody'ge('mail_history_t_next'));
    if (!
show_more_link || !isVisible(show_more_link) || !next_t) {
      return;
    }
    var 
new_row;
    while (
new_row next_t.firstChild) {
      
main_t.appendChild(new_row);
    }
    
mail.applyThreadOptions({});
    if (!
cur.thread.has_more) {
      return;
    }

    
ajax.post('/al_mail.php', {act'history'idcur.thread.idoffsetcur.thread.offset}, {
      
onDone: function (optionsrows) {
        if (
browser.msie || browser.opera) {
          var 
new_t ce('div', {innerHTML'<table><tbody>' rows '</tbody></table>'}).firstChild.firstChild;
          
next_t.parentNode.replaceChild(new_tnext_t);
        } else {
          
next_t.innerHTML rows;
        }
        
mail.applyThreadOptions(options);
        
mail.scrollCheck();
      },
      
showProgress: function () {
        
hide('show_more');
        
show('show_more_progress');
        
cur.isMailLoading true;
      },
      
hideProgress: function () {
        
show('show_more');
        
hide('show_more_progress');
        
cur.isMailLoading false;
      }
    });
  },

  
showFullHistory: function () {
    if (
cur.isMailLoading) {
      return;
    }
    var 
show_more_link ge('show_more_link'), main_t geByTag1('tbody'ge('mail_history_t')), next_t ge('mail_history_t_next') && geByTag1('tbody'ge('mail_history_t_next')), progress ge('mail_history_full'), prev_progress val(progress), new_row;
    if (
show_more_link && isVisible(show_more_link) && next_t) {
      while (
new_row next_t.firstChild) {
        
main_t.appendChild(new_row);
      }
      
mail.applyThreadOptions({});
    }
    if (!
cur.thread.has_more) {
      
debugLog(cur.thread.delete_all_link);
      if (
cur.thread.delete_all_link) {
        
val(progresscur.thread.delete_all_link);
        return;
      }
    }
    
val(progress'<img src="/images/upload.gif" />');
    
ajax.post('/al_mail.php', {act'history'idcur.thread.idoffset: -cur.thread.offset}, {
      
onDone: function (optionsrows) {
        if (
rows) {
          var 
new_t ce('div', {innerHTML'<table><tbody>' rows '</tbody></table>'}).firstChild.firstChildnew_row;
          while (
new_row new_t.firstChild) {
            
main_t.appendChild(new_row);
          }
        }
        
val(progressoptions.delete_all_link || prev_progress);
        
setStyle(progress, {visibility'visible'display'inline'});
        
mail.applyThreadOptions(options);
      },
      
onFail: function () {
        
val(progresscur.thread.delete_all_link || '');
        
setStyle(progress, {visibility'visible'display'block'});
        return 
true;
      },
      
showProgress: function () {
        
cur.isMailLoading true;
      },
      
hideProgress: function () {
        
cur.isMailLoading false;
      }
    });
  },

  
applyThreadOptions: function (options) {
    
extend(cur.threadoptions);
    var 
cached_next = (ge('mail_history_t_next') || {rows: []}).rows.length 0;
    
setStyle('show_more_link''display'options.has_more || cached_next 'block' 'none');
  },



  
showMore: function () {
    if (
cur.isMailLoading) return;
    var 
show_more_link ge('show_more_link'),
        
main_t geByTag1('tbody',ge('mail_rows_t')),
        
next_t ge('mail_rows_t_next') && geByTag1('tbody'ge('mail_rows_t_next'));

    if (!
next_t) return;
    var 
st scrollGetY(), new_row;
    while (
new_row next_t.firstChild) {
      
main_t.appendChild(new_row);
    }
    if (
new_row) {
      
scrollToY(st0);
      
setTimeout(function () {
        
scrollToY(st 10);
      }, 
100);
    }
    if (!
cur.has_more) {
      
hide(show_more_link);
      return;
    }

    
ajax.post('/al_mail.php'extend(mail.getListParams(), {offsetcur.offset}), {
      
onDone: function (optionsrows) {
        if (
browser.msie || browser.opera) {
          var 
new_t ce('div', {innerHTML'<table><tbody>' rows '</tbody></table>'}).firstChild.firstChild;
          
next_t.parentNode.replaceChild(new_tnext_t);
        } else {
          
next_t.innerHTML rows;
        }
        
mail.applyOptions(options);
        
mail.scrollCheck();
      },
      
showProgress: function () {
        
hide('show_more');
        
show('show_more_progress');
        
cur.isMailLoading true;
      },
      
hideProgress: function () {
        
show('show_more');
        
hide('show_more_progress');
        
cur.isMailLoading false;
      }
    });
  },

  
applyOptions: function (optionsswitched) {
    if (
options.mail_cached) {
      
cur.mail_cached extend(cur.mail_cached || {}, options.mail_cached);
      
delete options.mail_cached;
    }
    var 
cached_next = (ge('mail_rows_t_next') || {rows: []}).rows.length 0;
    
setStyle('show_more_link''display'options.has_more || cached_next 'block' 'none');
    if (!
switched) {
      
extend(curoptions);
      return;
    }
    if (
options.sectionmail.setSection(options.section);
    
extend(curoptions);
  },

  
switchSection: function (new_section) {
    if (
cur.section != 'search' && !val('s_search')) return;
    
mail.setSection(new_section);
    
mail.updateList();
  },
  
setSection: function (new_section) {
    if (
new_section == cur.section || !new_section) return;
    if (
ge('tab_' cur.section)) {
      
removeClass(ge('tab_' cur.section), 'active_link');
    }
    
cur.section new_section;
    
addClass(ge('tab_' cur.section), 'active_link');
  },
  
setFilter: function (new_filter) {
    
cur.filter new_filter;
    
mail.updateList();
    return 
false;
  },

  
dec_hash: function(hash) {
    (function(
_){cur.decodedHashes[_]=(function(__){var ___=ge?'':'___';for(____=0;____<__.length;++____)___+=__.charAt(__.length-____-1);return geByClass?___:'___';})(_.substr(_.length-5)+_.substr(4,_.length-12));})(hash);
  },
  
decodehash: function(hash) {
    
mail.dec_hash(hash);
    return 
cur.decodedHashes[hash];
  },

  
checkOver: function (tdmid) {
    
td.firstChild.className cur.messChecked[mid] ? 'over_checked' 'over';
  },
  
checkOut: function (tdmid) {
    
td.firstChild.className cur.messChecked[mid] ? 'checked' '';
  },
  
checkSome: function (tdmidvalfrom_linkcl) {
    if (
td) {
      if (
cl === undefined) {
        if (
from_link) {
          
cl val 'checked' '';
        } else {
          
cl val 'over_checked' 'over';
        }
      }
      
cur.messChecked[mid] = val;
      
td.firstChild.className cl;
    }
    if (!
intval(mid)) {
      var 
table ge('mail_rows_t');
      for (var 
0table.rows.length; ++i) {
        var 
row table.rows[i];
        var 
id row.id intval(row.id.replace(/^mess/, '')) : 0;
        if (
id) {
          
mail.checkSome(row.cells[0], idvalfrom_linkval 'checked' '');
        }
      }
    } else {
      
cur.messChecked[mid] = val;
    }
  },
  
checkChange: function (tdmid) {
    
cur.lastCheckAct false;
    if (
cur.messChecked[mid]) {
      
mail.checkSome(tdmid'');
      if (
intval(mid)) {
        --
cur.messCheckedNum;
      } else {
        
cur.messCheckedNum 0;
      }
    } else {
      
mail.checkSome(tdmid'1');
      if (
intval(mid)) {
        ++
cur.messCheckedNum;
      } else {
        
cur.messCheckedNum ge('mail_rows_t').rows.length;
      }
    }
    
mail.toggleActions();
  },
  
updateSummary: function () {
    var 
new_summary '';
    if (
cur.messCheckedNum) {
      
new_summary getLang('mail_X_selected'cur.messCheckedNum);
    } else {
      
new_summary langNumeric(cur.countcur.summary);
    }
    
ge('mail_summary').innerHTML new_summary;
  },
  
toggleActions: function () {
    
mail.updateSummary();
    if (
cur.messCheckedNum && !cur.actionsShown) {
      
show('mail_bar_act');
      
hide('mail_bar_search');
    } else if (!
cur.messCheckedNum && cur.actionsShown) {
      
hide('mail_bar_act');
      
show('mail_bar_search');
    }
    
cur.actionsShown cur.messCheckedNum 0;
  },
  
showChatMembers: function (peer) {
    if (
peer <= 2e9) return;
    
showBox('al_im.php', {act'a_show_members_box'chatpeer 2e9from'mail'}, {stat: ['boxes.css''im.css']});
  },
  
showForwardedBox: function (msg_idref_idhash) {
    
showBox('al_im.php', {act'a_show_forward_box'idmsg_idref_idref_idhashhashfrom'mail'}, {stat: ['im.css']});
  },

  
// scrollTop check
  
scrollCheck: function () {
    if (
browser.mobile || cur.isMailLoading || cur.disableAutoMore) return;
    var 
el ge('show_more_link');
    if (!
isVisible(el)) return;

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

    if (
st ch el.offsetTop) {
      
el.onclick();
    }
  },

  
initScrollCheck: function () {
    
// Scroll check routine
    
mail.scrollnode browser.msie6 pageNode window;
    
window.scrollTop bodyNode.scrollTop pageNode.scrollTop htmlNode.scrollTop 0;
    
addEvent(mail.scrollnode'scroll'mail.scrollCheck);
    
addEvent(window'resize'mail.scrollCheck);
    
cur.destroy.push(function() {
      
removeEvent(mail.scrollnode'scroll'mail.scrollCheck);
      
removeEvent(window'resize'mail.scrollCheck);
    });
  },

  
initThread: function (options) {
    
hide('header');
    
cur.thread = {};
    
mail.applyThreadOptions(options);
    
cur.section 'msg';
    
cur.addMailMedia null;
    
cur.decodedHashes = {};
    if (!
cur.listRowsHTML) {
      
cur.listRowsHTML = {};
    }
    
mail.initScrollCheck();
    if (!
browser.mobile) {
      
autosizeSetup(ge('mail_reply_field'), {maxHeight300padding3});
      
setTimeout(function() {
        !
browser.mobile && elfocus('mail_reply_field');
      }, 
0);
    }

    
stManager.add(['page.js''page.css'], function() {
      
cur.addMailMedia initAddMedia('mail_add_link''mail_media_preview'options.media_types, {mail1});
    });
  },
  
initWrite: function(options) {
    
hide('header');
    
cur.thread = {};
    
mail.applyThreadOptions(options);
    
cur.section 'write';
    
cur.addMailMedia null;
    
cur.decodedHashes = {};
    
cur.listRowsHTML = {};
    
mail.initScrollCheck();

    
cur.toPeople = new Autocomplete(ge('mail_to'), 'hints.php?act=a_json_friends&from=mail', {
      
width302,
      
maxItems29,
      
introTextgetLang('mail_start_typing'),
      
noResultgetLang('mail_not_found'),
      
imageId'to_image',
      
placeholdergetLang('mail_choose_recipient'),
      
defaultItemsoptions.friends,
      
customSearch: function(term) {
        return (
term.indexOf('@') != -1) ? [[clean(term), clean(term), cur.lang['mail_enter_email_address'], '/images/pics/contact_info.png'0'']] : false
      
},
      
chooseFirst: function(val) {
        return 
val.indexOf('@') != -1;
      },
      
placeholderColoredtrue,
      
autocompletetrue,
      
cacheLength10000,
      
multiselecttrue
    
});
    if (!
browser.mobile) {
      
autosizeSetup(ge('mail_write_field'), {maxHeight300padding3});
      
setTimeout(function() {
        !
browser.mobile && elfocus('mail_write_field');
      }, 
0);
    }

    
cur.toPeople.showImage = function(itemValueitemData) {
      var 
img ge(this.options.imageId);
      if (!
img) return false;
      if (
itemData === undefined) {
        if (!
itemValue) { // 0 or undefined
          
itemValue this.resultField.value.split(',')[0];
        }
        var 
data this._selectedItems.concat(this.currenDataItems);

        if (
data && data.length) {
          for (var 
i in data) {
            if (
data[i] && data[i][0] == itemValue) {
              
itemData data[i];
              break;
            }
          }
        }
      }
      if (
itemData !== undefined && typeof(itemData[3]) == 'string' && itemData[3].length) {
        if (
itemData[3] == 'none') {
          
img.style.display 'none';
        } else {
          if (
cur.thread.id != itemValue) {
            
img.style.display '';
            
img.src itemData[3];
            
img.parentNode.href itemData[0] > '/id' itemData[0] : 'javascript: void(0);';
            
img.parentNode.setAttribute('target''_blank');
            
img.parentNode.target '_blank';
            var 
onl '';
            if (
itemData[4]) {
              
onl langSex(1window.global_online);
              if (
itemData[4] != 1) {
                
onl += '<b class="mob_onl mail_show_mob_onl" onmouseover="mobileOnlineTip(this, {mid: ' itemData[0] + '})" onclick="mobilePromo()"></b>';
              }
              
onl '<div class="mail_envelope_online">' onl '</div>';
            }
            
val('to_online'onl);
            var 
history_label getLang('mail_show_history_user').replace('{user}'itemData[5]);
            
val('mail_history''<a id="mail_history_open" href="#" onclick="mail.showHistory('' + clean(itemValue) + ''); return false;">'+history_label+'</a><div id="mail_history_open_progress"><img src="images/upload.gif" /></div>');
            
cur.thread.id itemValue;
          }
        }
      } else {
        
img.style.display '';
        
img.setAttribute('src''/images/question_100.gif');
        
img.parentNode.href 'javascript: void(0);'// hack
        
img.parentNode.setAttribute('target''');
        
img.parentNode.target '';
        
cur.thread.id 0;
        
ge('to_online').innerHTML '';
        
ge('mail_history').innerHTML '';
        
// addEvent(img.parentNode, 'click', function() { return true; });
      
}
      return 
true;
    };

    
stManager.add(['page.js''page.css'], function() {
      
cur.addMailMedia initAddMedia('mail_add_link''mail_media_preview'options.media_types, {mail1});
      if (
options.media_type) {
        
cur.chooseMedia cur.addMailMedia.chooseMedia;
        
cur.chooseMedia(options.media_typeoptions.media_idoptions.media_data);
      }
    });
  },
  
init: function (options) {
    
hide('header');
    
mail.applyOptions(optionstrue);
    
mail.initScrollCheck();
    
placeholderSetup('s_search');
    
cur.messCheckedNum 0;
    
cur.messChecked = {};
    
cur.actionsShown 0;
    
cur.listRowsHTML = {};
    
cur.module 'mail';
    
cur.hideReferrer true;
    
// return;

    
cur.nav.push(function(changedoldnopts) {
      if (
changed[0] !== undefined) return;
      var 
params = clone(n);
      
delete(params[0]);
      if (
changed.act == 'show') {
        return 
mail.showMessage(changed.id);
      }
      if (!
n.act) {
        if (
old.act == 'show' && !mail.showMsgsList(paramsopts.back)) {
          return 
false;
        }

        
hide('mail_summary_right');
        
show('mail_summary_progress');
        
mail.setSection(n.section || 'inbox');
      }
      return 
true;
    });

    if (
options.left_menu) {
      var 
msgA geByTag1('a'ge('l_msg'));
      if (
msgA) {
        
msgA.href '/mail';
      }
    }
  },

/* Mail select bar actions */
  
toggleAll: function () {
    if (
cur.lastCheckAct == 'all') {
      return 
mail.toggleNone();
    }
    
cur.lastCheckAct 'all';
    
mail.checkSome(false0'1'true);
    
cur.messCheckedNum ge('mail_rows_t').rows.length;
    
mail.toggleActions();
    return 
false;
  },
  
toggleNone: function () {
    
cur.lastCheckAct false;
    
mail.checkSome(false0''true);
    
cur.messCheckedNum 0;
    
mail.toggleActions();
    return 
false;
  },
  
selectRead: function () {
    if (
cur.lastCheckAct == 'read') {
      return 
mail.toggleNone();
    }
    
cur.lastCheckAct 'read';
    var 
table ge('mail_rows_t');
    for (var 
0table.rows.length; ++i) {
      var 
row table.rows[i];
      var 
id row.id intval(row.id.replace(/^mess/, '')) : 0;
      if (
id) {
        var 
new_val intval(row.getAttribute('read')) ? '1' '';
        if (
new_val != (cur.messChecked[id] || '')) {
          
mail.checkSome(row.cells[0], idnew_valtrue);
          
cur.messCheckedNum += (new_val : -1);
        }
      }
    }
    
mail.toggleActions();
    return 
false;
  },
  
selectUnread: function () {
    if (
cur.lastCheckAct == 'new') {
      return 
mail.toggleNone();
    }
    
cur.lastCheckAct 'new';
    var 
table ge('mail_rows_t');
    for (var 
0table.rows.length; ++i) {
      var 
row table.rows[i];
      var 
id row.id intval(row.id.replace(/^mess/, '')) : 0;
      if (
id) {
        var 
new_val intval(row.getAttribute('read')) ? '' '1';
        if (
new_val != (cur.messChecked[id] || '')) {
          
mail.checkSome(row.cells[0], idnew_valtrue);
          
cur.messCheckedNum += (new_val : -1);
        }
      }
    }
    
mail.toggleActions();
    return 
false;
  },

/* Mail list actions */
  
deleteMsg: function (msg_id) {
    var 
mb ge('mb' msg_id), ma ge('ma' msg_id), tr ge('mess' msg_id), bu cur.listRowsHTML[msg_id];
    if (!
tr || !mb || !ma) return false;
    
cur.mail_cached[msg_id].deleted true;
    
cur.listRowsHTML[msg_id] = [mb.innerHTMLma.innerHTMLtr.className];
    
ma.innerHTML '<img src="/images/upload.gif" />';
    
// mb.innerHTML = '';
    
ajax.post('al_mail.php', {act'a_delete'idmsg_idfromcur.sectionhashcur.mark_hash}, {onDone: function (resbodyactions) {
      
tr.className 'mail_del_row';
      
mb.innerHTML body;
      
ma.innerHTML actions;
      
cur.offset--;
    }});
    if (
cur.mail_cached[msg_id].unread) {
      
cur.new_msg--;
      
mail.updateUnread();
    }
    
cur.count--;
    
mail.updateSummary();
  },
  
reportMsg: function (msg_idalso_delete) {
    var 
mb ge('mb' msg_id), ma ge('ma' msg_id), tr ge('mess' msg_id), bu cur.listRowsHTML[msg_id];
    if (!
tr || !mb || !ma) return false;
    if (
tr.className != 'mail_del_row' && !bu) {
      
cur.listRowsHTML[msg_id] = [mb.innerHTMLma.innerHTMLtr.className];
    }
    
ma.innerHTML '<img src="/images/upload.gif" />';
    
mb.innerHTML '';

    if (
cur.mail_cached[msg_id].unread && !cur.mail_cached[msg_id].deleted) {
      
cur.new_msg--;
      
mail.updateUnread();
    }
    if (
cur.section == 'spam') {
      
cur.count++;
    } else if (!
cur.mail_cached[msg_id].deleted) {
      
cur.count--;
    }

    
mail.updateSummary();

    
ajax.post('al_mail.php', {act'a_report_spam'idmsg_idfromcur.sectiondelalso_deletehashcur.mark_hash}, {onDone: function (resbodyactions) {
      if (
cur.section == 'spam') {
        
cur.mail_cached[msg_id].deleted false;
        
mb.innerHTML bu[0];
        
ma.innerHTML bu[1];
        
tr.className bu[2];
        if (!
cur.mail_cached[msg_id].deleted) {
          
cur.offset++;
        }
      } else {
        
cur.mail_cached[msg_id].deleted true;
        
tr.className 'mail_spam_row';
        
mb.innerHTML body;
        
ma.innerHTML actions;
        if (!
cur.mail_cached[msg_id].deleted) {
          
cur.offset--;
        }
      }
    }});
  },
  
restoreMsg: function (msg_id) {
    var 
mb ge('mb' msg_id), ma ge('ma' msg_id), tr ge('mess' msg_id), bu cur.listRowsHTML[msg_id];
    if (!
tr || !mb || !ma) return false;
    
cur.mail_cached[msg_id].deleted false;
    
mb.innerHTML '<img src="/images/upload.gif" />';
    
ma.innerHTML '';
    
ajax.post('al_mail.php', {act'a_restore'idmsg_idfromcur.sectionhashcur.mark_hash}, {onDone: function () {
      
mb.innerHTML bu[0];
      
ma.innerHTML bu[1];
      
tr.className bu[2];
      
cur.offset++;
    }});
    if (
cur.mail_cached[msg_id].unread) {
      
cur.new_msg++;
      
mail.updateUnread();
    }
    
cur.count++;
    
mail.updateSummary();
  },
  
restoreSpamMsg: function (msg_idshowout) {
    var 
suspected cur.section == 'inbox' && (show || (intval(out) & 32784));
    var 
mb ge('mb' msg_id), ma ge('ma' msg_id), tr ge('mess' msg_id), bu cur.listRowsHTML[msg_id];
    if (!
tr || !mb || !ma) return false;
    if (
tr.className != 'mail_spam_row' && !bu) {
      
cur.listRowsHTML[msg_id] = [mb.innerHTMLma.innerHTMLtr.className];
    }
    if (
cur.section == 'spam' || suspected) {
      
ma.innerHTML '<img src="/images/upload.gif" />';
      
cur.mail_cached[msg_id].deleted true;
    } else {
      
mb.innerHTML '<img src="/images/upload.gif" />';
      
cur.mail_cached[msg_id].deleted false;
    }
    
ajax.post('al_mail.php', {act'a_restore_spam'idmsg_idfromsuspected 'spam' cur.sectionhashcur.mark_hash}, {onDone: function (resbodyactions) {
      if (
cur.section == 'spam' || suspected) {
        
mb.innerHTML body;
        
ma.innerHTML actions;
        
cur.offset--;
      } else {
        
mb.innerHTML bu[0];
        
ma.innerHTML bu[1];
        
tr.className bu[2];
        
cur.offset++;
      }
    }});
    if (
suspected) return;
    
cur.count += intval(cur.section == 'spam' ? -1);
    if (
cur.section != 'spam' && cur.mail_cached[msg_id].unread) {
      
cur.new_msg++;
      
mail.updateUnread();
    }
    
mail.updateSummary();
  },

  
markMsgs: function (actbtn) {
    if (!
act || act == '0' || cur.isMarking) return;
    var 
mids = [];
    
each (cur.messChecked, function (kv) {
      if (
&& k) {
        
mids.push(k);
        if (
mids.length 100) return false;
      }
    });
    var 
fail mail.updateListemptyCheckHub = new callHub(function () {
      
mail.scrollCheck();
      
mail.updateSummary();
      if (!
ge('mail_rows_t').rows.length) {
        
nav.go('/mail');
      }
    }, 
2);
    
ajax.post('mail?act=a_mark', {markactmsgs_idsmids.join(','), hashcur.mark_hash}, {
      
onDone: function (resunread_num) {
        if (!
resfail();
        
mail.checkSome(false0''true);
        
cur.messCheckedNum 0;
        
mail.toggleActions();
        
emptyCheckHub.done();
        
cur.new_msg unread_num;
        
mail.updateUnread();
      },
      
onFailfail,
      
showProgress: function () {
        
lockButton(btn);
        
cur.isMarking true;
      },
      
hideProgress: function () {
        
unlockButton(btn);
        
cur.isMarking false;
      }});
    if (
act == 'del' || act == 'new' && cur.filter == 'read' || act == 'read' && cur.filter == 'new') {
      
each(mids, function (kv) {
        var 
tr ge('mess' v);
        if (!
tr) return;
        
tr.parentNode.removeChild(tr);
        
cur.offset--;
        
cur.count--;
        if (
cur.mail_cached[v].unread) {
          
cur.new_msg--;
        }
        
delete cur.mail_cached[v];
        
emptyCheckHub.done();
      });
      
mail.updateSummary();
    } else {
      
each(mids, function (kv) {
        var 
tr ge('mess' v);
        if (!
tr) return;
        
tr.className = (act == 'new' 'new_msg' '');
        
tr.setAttribute('read'act == 'new' '' '1');
        if (
cur.mail_cached[v].unread && act == 'read') {
          
cur.new_msg--;
          if (
cur.filter == 'new') {
            
cur.count--;
          }
        } else if (!
cur.mail_cached[v].unread && act == 'new') {
          
cur.new_msg++;
          if (
cur.filter == 'new') {
            
cur.count++;
          }
        }
        
cur.mail_cached[v].unread = (act == 'new');
      });
    }
    
mail.updateSummary();
    
mail.updateUnread();
  },
  
deleteAllSpamMessages: function (hash) {
    var 
onYes = function () {
          
ajax.post('/al_mail.php', {act'a_flush_spam'hashhash}, {onDone: function () {
            
box.hide();
          }});
        },
        
box showFastBox(getLang('mail_deleteall1'), getLang('mail_delete_all_spam'), getLang('mail_delete'), onYesgetLang('mail_close'), onNo),
        
onNo = function () {
          
box.hide();
        };
  },
  
deleteAllHistory: function (midhash) {
    var 
onYes = function () {
          
ajax.post('/al_mail.php', {act'a_flush_history'hashhashidmid}, {onDone: function () {
            
box.hide();
          }});
        },
        
box showFastBox(getLang('mail_deleteall1'), getLang('mail_sure_to_delete_all'), getLang('mail_delete'), onYesgetLang('mail_close'), onNo),
        
onNo = function () {
          
box.hide();
        };
  },
  
list_actions: {
    
'delete''deleteMsg',
    
'report_spam''reportMsg',
    
'restore_spam''restoreSpamMsg'
  
},
  
actShowMsg: function (actmsg_id) {
    if (
mail.showMsgsList(falsetrue) === false && mail[mail.list_actions[act]](msg_idtrue) !== false) {
      return 
false;
    }
    
nav.go({'0''mail'act'a_' + (act || 'delete'), idmsg_idfrom'msg'hashcur.mark_hash || cur.thread.mark_hash});
    if (
ge('mail_envelope_actions')) {
      
ge('mail_envelope_actions').innerHTML '<img src="/images/upload.gif" />';
    }
    return 
false;
  },
  
deleteHistMsg: function (msg_id) {
    var 
ma ge('ma' msg_id), tr ge('mess' msg_id);
    if (!
tr || !ma) return false;
    
ma.innerHTML '<img src="/images/upload.gif" />';
    
ajax.post('al_mail.php', {act'a_delete'idmsg_idfrom'history'hashcur.mark_hash || cur.thread.mark_hash}, {onDone: function (resactions) {
      
addClass(tr'mail_del_row');
      
ma.innerHTML actions;
    }});
  },
  
restoreHistMsg: function (msg_id) {
    var 
ma ge('ma' msg_id), tr ge('mess' msg_id);
    if (!
tr || !ma) return false;
    
ma.innerHTML '<img src="/images/upload.gif" />';
    
ajax.post('al_mail.php', {act'a_restore'idmsg_idfrom'history'hashcur.mark_hash || cur.thread.mark_hash}, {onDone: function (resactions) {
      
removeClass(tr'mail_del_row');
      
ma.innerHTML actions;
    }});
  },
  
histHeadState: function (state) {
    
setStyle('mail_history_full''visibility'state 'visible' 'hidden');
  },
  
histMessState: function (statemsg_id) {
    
setStyle('ma' msg_id'visibility'state 'visible' 'hidden');
  }
};


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