Вход Регистрация
Файл: js/al/bugs.js
Строк: 1190
<?php
Bugs 
= {

switchTab: function(nameevt) {
  if (
checkEvent(evt)) return true;
  var 
oldTab false;
  
each(geByClass('active_link'ge('bugs_tabs')), function(iv) {
    if (
hasClass(v'active_link')) {
      
oldTab v;
      
removeClass(v'active_link');
    }
  });
  
addClass(ge(name '_tab'), 'active_link');
  if (
name == 'show') {
    
show('show_tab''bugs_new_link');
    
hide('new_tab''extra_tab');
    return 
false;
  } else if (
name == 'extra') {
    
hide('show_tab''new_tab');
    
show('extra_tab''bugs_new_link');
  } else {
    
hide('extra_tab''show_tab''new_tab');
    
show('bugs_new_link');
    if (
evt === false) {
      return 
false;
    } else {
      return 
nav.go(ge(name '_tab').firstChildevt);
    }
  }
},

switchSection: function(nameevt) {
  if (
checkEvent(evt)) return true;
  
each(geByClass('selected'ge('bugs_section_filters')), function() {
    
removeClass(this'selected');
  });
  
addClass(ge('filter_' name).firstChild'selected');
  
delete cur._back;
  
nav.go({0'bugs'actname});
  return 
false;
},

getPage: function(offset) {
  
show('bugs_pages_top');
  
show('bugs_pages_bottom');
  var 
_n nav.objLocact nav.objLoc.act || cur.sectionquery = {actactoffsetoffsetload1};
  for (var 
v in _n) {
    if (
!= '0' && != 'act' && != 'offset'query[v] = _n[v];
  }
  
ajax.post('bugs'query, {
    
cache1,
    
onDone: function(contentscriptsummarytags) {
      
ge('bugs_table').innerHTML content;
      if (
window.tooltipstooltips.hideAll();
      
scrollToTop();
      if (
summary) {
        
ge('summary').innerHTML se(summary).innerHTML;
      }
      if (
ge('bugs_tags')) {
        
ge('bugs_tags').innerHTML tags;
      }
      
toggle('tags_wrap', !!tags);
      if (
offset) {
        
extend(nav.objLoc, {offsetoffset});
      } else {
        
delete nav.objLoc.offset;
      }
      
hide('bugs_pages_top');
      
hide('bugs_pages_bottom');
      
nav.setLoc(nav.objLoc);
    },
    
onFail: function() {
      
hide('bugs_pages_top');
      
hide('bugs_pages_bottom');
    }
  });
  return 
false;
},

subscribeBug: function(btnsubscribe) {
  
ajax.post('bugs', {act'subscribe'idcur.bug_idsubscribesubscribehashcur.hashes.subscribe_hash}, {
    
onDone: function(html) {
      if (
htmlge('bugs_view_subscribe').innerHTML html;
    },
    
showProgresslockButton.pbind(btn),
    
hideProgressunlockButton.pbind(btn)
  })
},


getSearchParams: function(obj) {
  var 
params = {qtrim(val(obj)), load1cache1};
  var 
status 0;
  if (
cur.bugsDD) {
    
status intval(cur.bugsDD.val());
  }
  if (!
status) {
    
status = (isChecked('bugs_chk_opened') ? 0) + (isChecked('bugs_chk_closed') ? 0) + (isChecked('bugs_chk_declined') ? 0);
  }
  if (
cur.tags) {
    var 
tags = [];
    for (var 
i in cur.tags) {
      
tags.push(i);
    }
    if (
tags.lengthparams.tags tags.join(',');
  }
  var 
defaultStatus cur.type == 'subscriptions' 1;
  if (
status != defaultStatusparams.status '' status;
  if ((
params.|| params.tags) && nav.objLoc != 'all' && nav.objLoc.act != 'my') {
    
nav.objLoc.act 'all';
  }
  if (
nav.objLoc.actparams.act nav.objLoc.act;
  return 
params;
},
sameParams: function(params) {
  if (!
cur.params) return false;
  for (var 
i in params) {
    if (
params[i] != cur.params[i]) return false;
  }
  for (var 
i in cur.params) {
    if (
params[i] != cur.params[i]) return false;
  }
  return 
true;
},

updateAllSearch: function(objdelay) {
  
delay delay || 10;
  
clearTimeout(cur.searchTimeout);
  
cur.searchTimeout setTimeout((function() {
    var 
params Bugs.getSearchParams(obj);
    
toggleClass(ge('bugs_search_reset'), 'shown', !!params.q);
    if ((!
Bugs.sameParams(params) || cur.ignoreEqual)) {
      
delete cur.ignoreEqual;
      
cur.params params;
      
cur.searchStr params.q;
      
Bugs.searchAll(cur.searchStr);
    }
    
scrollToTop();
  }).
bind(this), delay);
},

searchAll: function() {
  var 
query cur.params || Bugs.getSearchParams(ge('bugs_search_input'));
  
setStyle(ge('bugs_search_reset'), {opacity.6});
  if (
query.|| query.tags) {
    
each(geByClass('selected'ge('bugs_section_filters')), function() {
      
removeClass(this'selected');
    });
    
addClass(ge('filter_' query.act).firstChild'selected');
  }
  
ajax.post('bugs'query, {
    
cache1,
    
onDone: function(contscriptsummarytags) {
      
ge('bugs_table').innerHTML cont;
      if (
script) eval(script);
      if (
summary) {
        
ge('summary').innerHTML se(summary).innerHTML;
      }
      if (
ge('bugs_tags')) {
        
ge('bugs_tags').innerHTML tags;
      }
      
toggle('tags_wrap', !!tags);
      
delete nav.objLoc.offset;
      
each(['q''status''tags'], function(iv) {
        if (
query[v]) {
          
nav.objLoc[v] = query[v];
        } else {
          
delete nav.objLoc[v];
        }
      });
      
nav.setLoc(nav.objLoc);
    },
    
showProgressaddClass.pbind(ge('bugs_search'), 'loading'),
    
hideProgressremoveClass.pbind(ge('bugs_search'), 'loading')
  });
},

clearAllSearch: function(elevent) {
  var 
field ge('bugs_search_input');
  
setStyle(el, {opacity.6});
  
field.value '';
  
field.focus();
  
this.updateAllSearch(field);
},

showNewBox: function() {
  return !
showBox('bugs', {act'new_box'}, {
    
stat: ['wide_dd.js''wide_dd.css''page.css''page.js''upload.js'],
    
cache1,
    
params: {
      
width500,
      
hideButtonstrue,
      
bodyStyle'border: 0px; padding: 0px'
    
}
  });
},

checkTextLength: function(elmaxLenwarn) {
  var 
trim(el.value).replace(/nnn+/g'nn');
  if (
el.lastLen === v.length) return;

  var 
realLen el.lastLen v.length;
  var 
brCount realLen v.replace(/n/g'').length;

  
warn ge(warn);
  if (
realLen maxLen 100 || brCount 10) {
    
show(warn);
    if (
realLen maxLen) {
      
warn.innerHTML getLang('global_recommended_exceeded'realLen maxLen);
    } else if (
brCount 10) {
      
warn.innerHTML getLang('global_recommended_lines'brCount 10);
    } else {
      
warn.innerHTML getLang('text_N_symbols_remain'maxLen realLen);
    }
  } else {
    
hide(warn);
  }
},

checkNewFields: function() {
  if (!
trim(val('bugs_new_title'))) {
    
notaBene(ge('bugs_new_title'));
    return 
false;
  }
  if (
cur.wdd && cur.wdd.wdd_new_tags) {
    var 
tags = [];
    for (var 
i in cur.wdd.wdd_new_tags.selected) {
      
tags.push(cur.wdd.wdd_new_tags.selected[i][0]);
    }
    if (!
tags.length) {
      
notaBene(ge('wdd_new_tags'));
      
notaBene(ge('bugs_new_tags'));
      return 
false;
    }
  }

  return 
true;
},

saveBug: function(bug_id) {
  if (!
this.checkNewFields()) return false;

  var 
query = {act'save'hashcur.hashes.save_hashtitletrim(val('bugs_new_title')), textval('bugs_new_text')};
  if (
bug_id) {
    
query.id bug_id;
  }
  if (
cur.wdd && cur.wdd.wdd_new_tags) {
    var 
tags = [];
    for (var 
i in cur.wdd.wdd_new_tags.selected) {
      
tags.push(cur.wdd.wdd_new_tags.selected[i][0]);
    }
    if (
tags.length) {
      
query.tags tags;
    }
  }
  var 
attachs = [], chosen cur.bugsNewMedia.chosenMedias;
  if (
attachs) {
    for (var 
i in chosen) {
      var 
att chosen[i], type att[0], value att[1];
      if (
type == 'photo' || type == 'doc') {
        
attachs.push(type+','+value);
      }
    }
  }
  if (
attachs.lengthquery.attachs attachs;
  
ajax.post('bugs'query, {
    
showProgresslockButton.pbind('bugs_submit_button'),
    
hideProgress: function() {
      if (
curBox()) curBox().hide();
    },
    
onDone: function(descriptiondatamsg) {
      if (
descriptionge('bugs_view_description').innerHTML description;
      if (
datage('bugs_view_data').innerHTML data;
      if (
msgBugs.showMsg(msg);
    },
    
onFail: function(msg) {
      return 
Bugs.showError(msg);
    }
  });
  return 
false;
},
addBug: function() {
  return 
Bugs.saveBug();
},
editBug: function() {
  return 
Bugs.saveBug(cur.bug_id);
},

addScreen: function(onShow) {
  var 
opts = {titlegetLang('bugs_adding_screen'), width440bodyStyle'padding: 0px'};
  if (
onShow) {
    
opts.onShow onShow;
  }
  return 
showFastBox(optscur.screenBox);
},
addDoc: function(onShow) {
  var 
opts = {titlegetLang('bugs_adding_doc'), width440bodyStyle'padding: 0px'};
  if (
onShow) {
    
opts.onShow onShow;
  }
  return 
showFastBox(optscur.docBox);
},
choosePhotoUploaded: function(infoparams) {
  var 
info.ind !== undefined info.ind info,
      
fileName info.fileName info.fileName info,
      
ind info.fileName '_' info.fileName info,
      
prg ge('upload' ind '_progress_wrap');

  
prg && hide(geByClass1('progress_x'prg));
  
ajax.post('al_photos.php'extend({act'choose_uploaded_support'}, params), {
    
onDone: function(mediadata) {
      
cur.bugsNewMedia.chooseMedia('photo'mediaextend(data, {upload_ind'_' fileName}));
    },
    
onFailBugs.chooseFail.pbind(info)
  });
},
chooseDocUploaded: function(infoparams) {
  var 
info.ind !== undefined info.ind info,
      
fileName info.fileName info.fileName info,
      
ind info.fileName '_' info.fileName info,
      
prg ge('upload' ind '_progress_wrap');

  
prg && hide(geByClass1('progress_x'prg));
  
ajax.post('docs.php'extend({act'a_save_doc'from'choose'}, params), {
    
onDone: function(oididdata) {
      
re('upload'+ind+'_progress_wrap');
      
cur.bugsNewMedia.chooseMedia('doc'oid+'_'+iddata);
    },
    
onFailBugs.chooseFail.pbind(info)
  });
},
chooseFail: function(infocode) {
  var 
info.ind !== undefined info.ind infofileName info.fileName info.fileName info;
  if (
Upload.types[i] == 'fileApi' && !Upload.options[i].wiki_editor) {
    var 
lnkIdind info.fileName i+'_'+info.fileName info;
    if (
cur.imMedia) {
      
re('upload'+ind+'_progress_wrap');
      
lnkId cur.imMedia.lnkId;
      
cur.addMedia[lnkId].unchooseMedia();
    } else if (
cur.addMedia) {
      
re('upload'+ind+'_progress_wrap');
      
lnkId = (cur.attachMediaIndexes || {})[fileName];
      if (
lnkIdcur.addMedia[lnkId].unchooseMedia();
    }
  }
  
topError('Upload failed', {dt: -1type102url: (ge('file_uploader_form' i) || {}).action});
  
Upload.embed(i);
},

initPhotoUpload: function(elparams) {
  
el ge(el);
  if (!
el) return;

  if (!
cur.screenscur.screens = {};
  var 
uploadData cur.uploadPhotoDataopts uploadData.options;
  return 
Upload.init(eluploadData.urluploadData.vars, {
    
file_name'photo',

    
file_size_limit1024*1024*5// 5Mb
    
file_types_description'Image files (*.jpg, *.jpeg, *.png, *.gif)',
    
file_types'*.jpg;*.JPG;*.jpeg;*.JPEG;*.png;*.PNG;*.gif;*.GIF',
    
accept'image/jpeg,image/png,image/gif',
    
file_match'.(gif|jpg|jpeg|png)$',
    
langopts.lang,

    
onUploadStart: function(infores) {
      var 
info.ind !== undefined info.ind infooptions Upload.options[i];
      if (
Upload.types[i] == 'form') {
        
geByClass1('file'el).disabled true;
      }
      if (
Upload.types[i] == 'fileApi') {
        if (
cur.notStarted) {
          if (
params && params.hideOnStartboxQueue.hideLast();
          
delete cur.notStarted;
        }
        if (
options.multi_progressthis.onUploadProgress(info00);
      }
      
curBox().changed true;
    },
    
onUploadComplete: function(infores) {
      var 
paramsinfo.ind !== undefined info.ind infofileName info.fileName info.fileName info;
      try {
        
params = eval('(' res ')');
      } catch(
e) {
        
params q2ajx(res);
      }
      if (!
params.photos) {
        
Upload.onUploadError(info);
        return;
      }
      
Bugs.choosePhotoUploaded(infoparams);
    },
    
onUploadProgress: function(infobytesLoadedbytesTotal) {
      var 
info.ind !== undefined info.ind info;
      if (
Upload.types[i] == 'fileApi') {
        var 
lnkId = (cur.attachMediaIndexes || {})[i];
        if (
lnkId === undefined || lnkId && cur.addMedia[lnkId].chosenMedia || cur.imMedia) {
          var 
data = {loadedbytesLoadedtotalbytesTotal};
          if (
info.fileNamedata.fileName info.fileName;
          
cur.bugsNewMedia.showMediaProgress('photo'idata);
        }
      } else if (
Upload.types[i] == 'flash') {
        if (!
ge('form'+i+'_progress')) {
          var 
obj Upload.obj[i], objHeight getSize(obj)[1], tm objHeight 10;
          var 
node obj.firstChild;
          while (
node) {
            if (
node.nodeType == 1) {
              if (
node.id == 'uploader'+&& browser.msie) {
                
setStyle(node, {position'relative'left'-5000px'});
              } else {
                
setStyle(node, {visibility'hidden'});
              }
            }
            
node node.nextSibling;
          }
          
obj.appendChild(ce('div', {innerHTML'<div class="bugs_progress_wrap">
            <div id="form' 
'_progress" class="bugs_progress" style="width: 0%;"></div>
          </div></div>'
}, {heighttm 'px'marginTop: -tm 'px'}));
        }
        var 
percent intval(bytesLoaded bytesTotal 100);
        
setStyle(ge('form' '_progress'), {widthpercent '%'});
      }
    },
    
onUploadErrorBugs.chooseFail,
    
onUploadCompleteAll: function (info) {
      var 
info.ind !== undefined info.ind info;
      if (
Upload.types[i] !== 'fileApi') {
        if (
params.hideOnStart) {
          
boxQueue.hideLast();
        } else {
          
Upload.embed(i);
        }
      }
    },

    
multiple1,
    
multi_progress1,
    
max_filesparams && params.max_files || 5,
    
max_files_hide_last1,
    
clear1,
    
type'photo',
    
max_attempts3,
    
file_inputcurBox().inp,
    
serveropts.server,
    
erroropts.default_error,
    
error_hashopts.error_hash,
    
dropbox'bas_dropbox'
  
});
},

initDocUpload: function(elparams) {
  
el ge(el);
  if (!
el) return;

  var 
uploadData cur.uploadDocDataopts uploadData.options;
  return 
Upload.init(eluploadData.urluploadData.vars, {
    
file_name'file',

    
file_size_limit1024*1024*200// 200Mb
    
file_types_description'Documents',
    
file_types'*.*;',
    
langopts.lang,

    
onUploadStart: function(infores) {
      var 
info.ind !== undefined info.ind infooptions Upload.options[i];
      if (
Upload.types[i] == 'form') {
        
geByClass1('file'el).disabled true;
      }
      if (
Upload.types[i] == 'fileApi') {
        if (
cur.notStarted) {
          if (
params && params.hideOnStartboxQueue.hideLast();
          
delete cur.notStarted;
        }
        if (
options.multi_progressthis.onUploadProgress(info00);
      }
      
curBox().changed true;
    },
    
onUploadComplete: function(infores) {
      var 
paramsinfo.ind !== undefined info.ind infofileName info.fileName info.fileName info;
      try {
        
params = eval('(' res ')');
      } catch(
e) {
        
params q2ajx(res);
      }
      if (!
params.file) {
        
Upload.onUploadError(info);
        return;
      }
      
Bugs.chooseDocUploaded(infoparams);
    },
    
onUploadProgress: function(infobytesLoadedbytesTotal) {
      var 
info.ind !== undefined info.ind info;
      if (
Upload.types[i] == 'fileApi') {
        var 
lnkId = (cur.attachMediaIndexes || {})[i];
        if (
lnkId === undefined || lnkId && cur.addMedia[lnkId].chosenMedia || cur.imMedia) {
          var 
data = {loadedbytesLoadedtotalbytesTotal};
          if (
info.fileNamedata.fileName info.fileName;
          
cur.bugsNewMedia.showMediaProgress('doc'idata);
        }
      } else if (
Upload.types[i] == 'flash') {
        if (!
ge('form'+i+'_progress')) {
          var 
obj Upload.obj[i], objHeight getSize(obj)[1], tm objHeight 10;
          var 
node obj.firstChild;
          while (
node) {
            if (
node.nodeType == 1) {
              if (
node.id == 'uploader'+&& browser.msie) {
                
setStyle(node, {position'relative'left'-5000px'});
              } else {
                
setStyle(node, {visibility'hidden'});
              }
            }
            
node node.nextSibling;
          }
          
obj.appendChild(ce('div', {innerHTML'<div class="bugs_progress_wrap">
            <div id="form' 
'_progress" class="bugs_progress" style="width: 0%;"></div>
          </div></div>'
}, {heighttm 'px'marginTop: -tm 'px'}));
        }
        var 
percent intval(bytesLoaded bytesTotal 100);
        
setStyle(ge('form' '_progress'), {widthpercent '%'});
      }
    },
    
onCheckCompleteparams && params.onCheckComplete || false,
    
onUploadErrorBugs.chooseFail,
    
onUploadCompleteAll: function (info) {
      var 
info.ind !== undefined info.ind info;
      if (
Upload.types[i] !== 'fileApi') {
        if (
params.hideOnStart) {
          
boxQueue.hideLast();
        } else {
          
Upload.embed(i);
        }
      }
    },

    
multiple1,
    
multi_progress1,
    
max_filesparams && params.max_files || 5,
    
max_files_hide_last1,
    
clear1,
    
type'photo',
    
max_attempts3,
    
file_inputcurBox().inp,
    
serveropts.server,
    
erroropts.default_error,
    
error_hashopts.error_hash,
    
dropbox'bas_dropbox'
  
});
},

initAddMedia: function(lnkpreviewIdmediaTypesopts) {
  var 
types = [], bgposes = {photo3doc: -64}, addMedia;
  
opts opts || {};
  
each (mediaTypes || [], function (iv) {
    if (!
v[1]) return;
    var 
handler false;
    switch (
v[0]) {
      case 
'photo':
        
handler = function() {
          if (
opts.oneClick) {
            var 
inp ge('bug_photo_input'), par ge('bugs_view_comments') || curBox() && geByClass1('bugs_new_cont'curBox().bodyNode);
            if (!
inpinp par.appendChild(ce('input', {
              
type'file',
              
multiple'true',
              
id'bug_photo_input',
              
onchange: function() {
                
data(this'changed'true);
                
curBox().inp this;
                
Bugs.initPhotoUpload('bas_upload');
              }
            }));
            
inp.click();
          } else {
            
Bugs.addScreen(Bugs.initPhotoUpload.pbind('bas_add_data', {hideOnStarttrue}));
          }
        }
        break;
      case 
'doc':
        
handler = function() {
          if (
opts.oneClick) {
            var 
inp ge('bug_doc_input'), par ge('bugs_view_comments') || curBox() && geByClass1('bugs_new_cont'curBox().bodyNode);
            if (!
inpinp par.appendChild(ce('input', {
              
type'file',
              
multiple'true',
              
id'bug_doc_input',
              
onchange: function() {
                
data(this'changed'true);
                
curBox().inp this;
                
Bugs.initDocUpload('bas_upload');
              }
            }));
            
inp.click();
          } else {
            
Bugs.addDoc(Bugs.initDocUpload.pbind('bas_add_data', {hideOnStarttrue}));
          }
        }
        break;
    }
    var 
icon falsebgpos = ('3px ' bgposes[v[0]] + 'px'), url falsename v[1].replace(/s/g'&nbsp;');
    
types.push([v[0], v[1], bgposhandlerurlicon]);
  });

  var 
limit opts.limit || 10;

  var 
menu initCustomMedia(lnktypes, {
    
onShow: function () {
      
cur.chooseMedia addMedia.chooseMedia;
      
cur.showMediaProgress addMedia.showMediaProgress;
      
cur.attachCount addMedia.attachCount;
    },
    
onItemClick: function(type) {
      if (
addMedia.attachCount() >= limit) {
        
showFastBox(getLang('global_error'), getLang('attachments_limit'limit));
        return 
false;
      }
      return 
true;
    }
  });

  if (!
menu) return;
  
previewId previewId || 'media_preview';

  var 
lnkId menu.id,
      
previewEl ge(previewId),
      
progressElpicsEldocsEl;

  
val(previewEl'<div id="page_pics_preview' lnkId '" class="page_pics_preview media_preview clear_fix"></div><div id="page_docs_preview' lnkId '" class="page_docs_preview media_preview clear_fix"></div><div id="page_progress_preview' lnkId '" class="page_progress_preview media_preview clear_fix"></div>');
  var 
picsEl previewEl.childNodes[0],
      
docsEl previewEl.childNodes[1],
      
progressEl previewEl.childNodes[2];
  
removeClass(previewEl'media_preview');
  
addClass(previewEl'multi_media_preview');

  
addMedia = {
    
_addMediaLinklnk,
    
lnkIdlnkId,
    
menumenu,
    
handlers: {},
    
chosenMedias: [],
    
_showAddMedia: function() {
      
menu.show();
    },
    
_hideAddMedia: function(noTimeout) {
      
menu.hide(noTimeout);
    },
    
chooseMedia: function(typemediadataurlnoboxhide) {
      if (
addMedia.onChange && addMedia.onChange(typemediadata) === false) {
        return 
false;
      }
      if (
addMedia.attachCount() >= limit && data.upload_ind === undefined) {
        return 
false;
      }
      var 
preview ''postview ''toPics falseoncl;
      switch (
type) {
        case 
'photo':
          if (!
isObject(data)) {
            
data = {
              
thumb_mdata[0] || '',
              
thumb_sdata[1] || '',
              list: 
data[2] || '',
              
view_optsdata[3] || '',
              
upload_inddata.upload_ind || undefined
            
};
          }
          
vkImage().src data.thumb_s;
          
oncl opts.nocl '' ' onclick="return Bugs.showPhoto('' + media + '', '' + data.list + '', ' data.view_opts.replace(/"/g, '&quot;') + ');"';
          preview = '
<div ' + oncl + ' class="fl_l page_preview_photo"><img class="page_preview_photo" src="' + data.thumb_s + '" /></div>';
          toPics = true;
          break;
        case '
doc':
          if (!data.lang) return false;
          if (data.thumb && data.thumb_s) {
            preview = '
<a target="_blank" href="' + data.href + '" class="fl_l"><div class="page_preview_doc_photo"><img src="' + data.thumb_s + '" align="center"></div><div class="page_preview_doc_photo_hint">' + data.title + '</div></a>';
            toPics = true;
          } else {
            preview = '
<a target="_blank" href="' + data.href + '" class="medadd_h medadd_h_doc inl_bl">' + data.lang.profile_choose_doc + '</a>';
            postview = '
<div class="medadd_c medadd_c_doc"><a target="_blank" href="' + data.href + '">' + data.title + '</a></div>';
          }
          break;
      }
      var medias = addMedia.chosenMedias,
          ind = medias.length,
          mediaEl = (type == '
photos_list') ?
            se('
<div class="page_preview_' + type + '_wrap" style="position: relative">' + preview + '<div class="page_photos_count">' + media.split(',').length + '</div></div>') :
            se('
<div class="page_preview_' + type + '_wrap"' + (opts.nocl ? ' style="cursor: default"' : '') + '>' + preview + '<div class="page_media_x_wrap inl_bl" '+ (browser.msie ? 'title' : 'tootltip') + '="'+getLang('bugs_dont_attach')+'" onmouseover="if (browser.msie) return; showTooltip(this, {text: this.getAttribute('tootltip'), shift: [13, 3, 3], black: 1})" onclick="cur.addMedia['+addMedia.lnkId+'].unchooseMedia(' + ind + ')"><div class="page_media_x"></div></div>' + postview + '</div>');
      addClass(mediaEl, toPics ? '
fl_l' : 'clear_fix');
      if (data.upload_ind !== undefined) re('
upload' + data.upload_ind + '_progress_wrap');
      (toPics ? picsEl : docsEl).appendChild(mediaEl);
      medias.push([type, media, mediaEl, url]);

      toggle(picsEl, picsEl.childNodes.length > 0);
      toggle(docsEl, docsEl.childNodes.length > 0);
      toggle(progressEl, progressEl.childNodes.length > 0);

      if (!cur.fileApiUploadStarted && noboxhide !== true) {
        boxQueue.hideLast();
      }

      cur.lastPostMsg = false;
      if (opts.onMediaAdd) {
        opts.onMediaAdd();
      }

      if (data.upload_ind !== undefined) {
        delete data.upload_ind;
      }
      return false;
    },
    unchooseMedia: function(ind) {
      if (addMedia.onChange && addMedia.onChange(false, ind) === false) {
        return false;
      }
      if (ind === undefined) {
        each (addMedia.chosenMedias, function (k, v) {
          if (v && k !== undefined) addMedia.unchooseMedia(k);
        });
        return;
      }
      var medias = addMedia.chosenMedias, x;
      if (medias[ind]) {
        if ((x = geByClass1('
page_media_x_wrap', medias[ind][2], 'div')) && x.tt && x.tt.el) {
          x.tt.destroy();
        }
        re(medias[ind][2]);
        medias[ind] = false;
      }
      toggle(picsEl, picsEl.childNodes.length > 0);
      toggle(docsEl, docsEl.childNodes.length > 0);
      toggle(progressEl, progressEl.childNodes.length > 0);

      cur.lastPostMsg = false;

      if (addMedia.onChange) addMedia.onChange(false);
    },
    showMediaProgress: function(type, i, info) {
      if (addMedia.onProgress && addMedia.onProgress(type, i, info) === false) {
        return false;
      }
      var frac = info.loaded / info.total, percent = intval(frac * 100),
          fileName = info.fileName || info.name || '',
          ind = fileName ? i + '
_' + fileName : i,
          label = fileName ? (fileName.length > 33 ? fileName.substr(0, 30) + '
...' : fileName) : '';

      var prg = ge('
upload' + ind + '_progress');
      if (!prg) {
        if (!cur.attachMediaIndexes) cur.attachMediaIndexes = {};
        cur.attachMediaIndexes[ind] = lnkId;

        var progress = '
<div class="fl_l"><div class="page_attach_progress_wrap" style="margin-top: 3px; margin-bottom: 4px;">
  <
div id="upload' + ind + '_progress" class="page_attach_progress"></div>
</
div></div></div>' + (label ? '<div class="attach_label fl_l">' + label + '</div>' : '') + '<div class="progress_x fl_l" onmouseover="animate(this, {opacity: 1}, 200); showTooltip(this, {text: '' + getLang('bugs_dont_attach') + '', shift: [6, 3, 3]})" onmouseout="animate(this, {opacity: 0.6}, 200);" onclick="Upload.terminateUpload(' + i + ', '' + (fileName || i) + '');"></div>';

        progressEl.appendChild(ce('
div', {id: 'upload' + ind + '_progress_wrap', innerHTML: progress, className: 'clear_fix upload_' + i + '_progress'}, {marginTop: '6px'}));
        show(progressEl);
        prg = ge('
upload' + ind + '_progress');
        prg.full = false;

        if (percent) {
          setStyle(prg, {width: prg.full ? (intval(prg.full * frac) + '
px') : percent + '%'})
        } else {
          setStyle(prg, {width: '
1px'});
          hide(prg);
        }
      } else {
        show(prg);
        if (prg.full) {
          var tw = data(prg, '
tween'), w = intval(prg.full * frac);
          if (tw && tw.isTweening) {
            tw.to.width = w;
          } else {
            animate(prg, {width: w + '
px'}, 500);
          }
        } else {
          setStyle(prg, {width: percent + '
%'});
        }
      }
    },

    attachCount: function() {
      if (addMedia.attachedCount) {
        return addMedia.attachedCount();
      }
      if (!previewEl) {
        return 0;
      }
      var num = picsEl.childNodes.length + docsEl.childNodes.length + progressEl.childNodes.length;
      return num;
    },
  }

  if (!cur.addMedia) {
    cur.addMedia = {};
  }

  cur.addMedia[lnkId] = addMedia;
  return addMedia;
},

showMsg: function(text) {
  var msg = ge('
bugs_msg');
  if (!msg) {
    var parent;
    switch (cur.section) {
      case '
show':
        parent = ge('
bugs_content');
        break;
      case '
list':
        parent = ge('
bugs_table');
        break;
    }
    msg = parent.insertBefore(ce('
div', {id: 'bugs_msg', className: 'msg'}), parent.firstChild);
  }
  re('
bugs_error');
  msg.innerHTML = text;
  msg.style.backgroundColor = '
#F4EBBD';
  
animate(msg, {backgroundColor'#F9F6E7'}, 2000);
  return 
true;
},

showError: function(error) {
  var 
err ge('bugs_error');
  if (!
err) {
    var 
parent;
    switch (
cur.section) {
      case 
'show':
        
parent ge('bugs_content');
        break;
      case 
'list':
        
parent ge('bugs_table');
        break;
    }
    
err parent.insertBefore(ce('div', {id'bugs_error'className'error'}), parent.firstChild);
  }
  
re('bugs_msg');
  
hide('bugs_progress');
  
err.innerHTML error;
  
err.style.backgroundColor '#FACEBB';
  
animate(err, {backgroundColor'#FFEFE8'}, 2000);
  
scrollToTop(200);
  return 
true;
},

showDeleteBox: function() {
  
box showFastBox('''');
  
box.setOptions({
    
hideButtonstrue,
    
titlefalse,
    
width460,
    
bodyStyle'border: 0px; padding: 0px;'
  
});
  
box.bodyNode.innerHTML getLang('bugs_sure_delete_bug');
  
box.setOptions({});
},

showEditBox: function() {
  return !
showBox('bugs', {act'edit_box'idcur.bug_id}, {
    
stat: ['wide_dd.js''wide_dd.css''page.css''page.js''upload.js'],
    
params: {
      
width500,
      
hideButtonstrue,
      
bodyStyle'border: 0px; padding: 0px'
    
}
  });
},

showStatusBox: function() {
  return !
showBox('bugs', {act'status_box'idcur.bug_id}, {
    
stat: ['ui_controls.js''ui_controls.css'],
    
params: {
      
width500,
      
hideButtonstrue,
      
bodyStyle'border: 0px; padding: 0px'
    
}
  });
},

saveStatus: function() {
  var 
query = {act'status'hashcur.hashes.save_hashstatuscur.statusSelect.val(), idcur.bug_idtextval('bugs_new_text')};
  
ajax.post('bugs'query, {
    
showProgresslockButton.pbind('bugs_submit_button'),
    
hideProgress: function() {
      if (
curBox()) curBox().hide();
    },
    
onDone: function(descriptiondatamsg) {
      if (
descriptionge('bugs_view_description').innerHTML description;
      if (
datage('bugs_view_data').innerHTML data;
      if (
msgBugs.showMsg(msg);
    },
    
onFail: function(msg) {
      return 
Bugs.showError(msg);
    }
  });
  return 
false;
},

deleteBug: function(btn) {
  
ajax.post('bugs', {act'delete'idcur.bug_idhashcur.hashes.delete_hash}, {
    
showProgresslockButton.pbind(btn),
    
hideProgress: function() {
      if (
curBox()) curBox().hide();
    }
  });
},

deleteReply: function(replyIdhash) {
  var 
el ge('bug_update'+replyId);
  if (!
el) return;
  
ajax.post('bugs', {act'delete_reply'idreplyIdhashhash}, {
    
onDone: function(msg) {
      
cur.deletedReplies cur.deletedReplies || {};
      
cur.deletedReplies[replyId] = el.innerHTML;
      
el.innerHTML msg;
    },
    
onFail: function(msg) {
      return 
Bugs.showError(msg);
    }
  });
  return 
false;
},

restoreReply: function(replyIdhash) {
  var 
el ge('bug_update'+replyId);
  if (!
el) return;
  
ajax.post('bugs', {act'restore_reply'idreplyIdhashhash}, {
    
onDone: function() {
      
el.innerHTML = (cur.deletedReplies || {})[replyId];
    },
    
onFail: function(msg) {
      return 
Bugs.showError(msg);
    }
  });
  return 
false;
},

editReply: function(replyIdhash) {
  if (
cur.editStarted) return false;
  if (
cur.editing) {
    
this.cancelEditReply(cur.editing);
  }
  var 
cont geByClass1('bugs_update_text'ge('bug_update'+replyId));
  var 
mrg '1px 0 0 -3px'wdt '385px'btn_mrg '8px';
  if (
browser.mozilla) {
    
mrg '1px 0 0 -4px';
  } else if (
browser.opera) {
    
mrg '2px 0 0 -3px';
  } else if (
browser.msie) {
    
btn_mrg '10px';
  }

  
cur.editStarted true;
  
ajax.post('bugs', {act'get_reply'idreplyIdhashhash}, {
    
onDone: function(t) {
      
delete cur.editStarted;
      
cont.parentNode.insertBefore(ce('div', {id'bug_update_edit'+replyIdinnerHTML'
<textarea class="bug_edit_update" id="bug_update'
+replyId+'edit" onkeydown="Bugs.saveReply(event, ''+replyId+'', ''+hash+'')" style="width: '+wdt+'; margin: '+mrg+';">' '</textarea>
<div style="margin: '
+btn_mrg+' 0 8px -3px; height: 23px">
  <div class="fl_l button_blue">
    <button id="save_butn'
+replyId+'" onclick="Bugs.doSaveReply(''+replyId+'', ''+hash+'')">'+getLang('global_save')+'</button>
  </div>
  <div class="fl_l button_gray" style="margin-left: 10px;">
    <button id="cancel_butn'
+replyId+'" onclick="Bugs.cancelEditReply(''+replyId+'')">'+getLang('global_cancel')+'</button>
  </div>
  <div id="edit_progress'
+replyId+'" style="margin: 5px 0px 0px 10px; vertical-align: 0px; float: left; display: none"><img src="/images/upload.gif"/></div>
</div>'
}, {display'none'}), cont);
      
autosizeSetup(ge('bug_update'+replyId+'edit'), {minHeight17});

      
setTimeout(function() {
        
show(cont.previousSibling);
        
hide(geByClass1('bugs_update_text'ge('bug_update'+replyId)));
        
hide(geByClass1('bugs_update_info'ge('bug_update'+replyId)));
        
elfocus('bug_update'+replyId+'edit');
        
cur.editing replyId;
      }, 
0);
    },
    
onFail: function(error) {
      
delete cur.editStarted;
      return 
Bugs.showError(error);
    }
  });
  return 
false;
},

saveReply: function(eventreplyIdhash) {
  if (
event && event.keyCode == 27) {
    
this.cancelEditReply(cur.editing);
    return;
  }
  if (
event && event.ctrlKey && (event.keyCode == 10 || event.keyCode == 13)) {
    
this.doSaveReply(replyIdhash);
  }
},

cancelEditReply: function(replyId) {
  
show(geByClass1('bugs_update_text'ge('bug_update'+replyId)));
  
show(geByClass1('bugs_update_info'ge('bug_update'+replyId)));
  
re('bug_update_edit'+replyId);
  
delete cur.editing;
},

doSaveReply: function(replyIdhash) {
  var 
trim(val('bug_update'+replyId+'edit'));
  
ajax.post('bugs', {act'edit_reply'idreplyIdtextvhashhash}, {
    
onDone: function(text) {
      var 
cont geByClass1('bugs_update_text'ge('bug_update'+replyId)), acts geByClass1('bugs_update_info'ge('bug_update'+replyId));
      
cont.innerHTML text;
      
show(contacts);
      
re('bug_update_edit'+replyId);
      
delete cur.editing;
    },
    
onFail: function(error) {
      return 
Bugs.showError(error);
    },
    
showProgresslockButton.pbind(ge('save_butn'+replyId)),
    
hideProgressunlockButton.pbind(ge('save_butn'+replyId))
  });
},

showPhoto: function(photoRawlistIdopts) {
  var 
cbox curBox();
  
cur.boxBackup document.createDocumentFragment();
  var 
boxBody cbox.bodyNode;
  
cur.scrollTopBack boxLayerWrap.scrollTop;
  
opts.onShow = function() {
    while(
boxBody.firstChild) {
      
cur.boxBackup.appendChild(boxBody.firstChild);
    }
  }
  
opts.onHide = function() {
    
box showFastBox('''');
    
box.setOptions({
      
hideButtonstrue,
      
titlefalse,
      
width500,
      
bodyStyle'border: 0px; padding: 0px;'
    
});
    
box.bodyNode.appendChild(cur.boxBackup);
    
box.setOptions({}); // clear box coords
    
boxLayerWrap.scrollTop cur.scrollTopBack;
  }
  return 
showPhoto(photoRawlistIdopts);
},

selectTag: function(tage) {
  if (
checkEvent(e) || cur.type == 'subscriptions') return false;
  
cur.tags cur.tags || {};
  
cur.tags[tag] = 1;
  
addClass(ge('filter_tag'+tag), 'summary_tab_sel');
  
removeClass(ge('filter_tag'+tag), 'summary_tab');
  
ge('bugs_selected_tags').appendChild(ge('filter_tag'+tag));
  
toggle('selected_tags_wrap'geByClass('bugs_filter_tag'ge('bugs_selected_tags')).length);
  
toggle('tags_wrap'geByClass('bugs_filter_tag'ge('bugs_tags')).length);
  
Bugs.updateAllSearch(ge('bugs_search_input'));
},
deselectTag: function(tage) {
  if (
checkEvent(e) || cur.type == 'subscriptions') return false;
  
delete cur.tags[tag];
  
removeClass(ge('filter_tag'+tag), 'summary_tab_sel');
  
addClass(ge('filter_tag'+tag), 'summary_tab');
  
ge('bugs_tags').appendChild(ge('filter_tag'+tag));
  
toggle('selected_tags_wrap'geByClass('bugs_filter_tag'ge('bugs_selected_tags')).length);
  
toggle('tags_wrap'geByClass('bugs_filter_tag'ge('bugs_tags')).length);
  
Bugs.updateAllSearch(ge('bugs_search_input'));
},

showSubscribed: function(bug_id) {
  return !
showBox('bugs', {act'subscribers_box'idbug_id || cur.bug_id}, {
    
params: {
      
width500,
      
bodyStyle'padding: 0px'
    
}
  });
},

registerDragZone: function(opts) {
  
addEvent(document"dragenter dragover", function(ev) {
    if (
Bugs.checkHtml5Uploader()) {
      
setTimeout(function() {
        
clearTimeout(cur.dragTimer);
        
delete cur.dragTimer;
      }, 
0);
      
opts.on(ev);
      return 
cancelEvent(ev);
    }
  });
  
addEvent(document"dragleave", function(ev) {
    if (
cur.dragTimer) {
      
clearTimeout(cur.dragTimer);
      
delete cur.dragTimer;
    }
    
cur.dragTimer setTimeout(function() {
      
opts.un(ev);
    }, 
100);
    
cancelEvent(ev);
  });
  
addEvent(document"drop", function(ev) {
    
opts.un(evtrue);
    
opts.drop(ev.dataTransfer.filesev);
    return 
cancelEvent(ev);
  });
  
cur.destroy.push(function() {
    
removeEvent(document"dragenter dragover");
    
removeEvent(document"dragleave");
    
removeEvent(document"drop");
  });
},

checkHtml5Uploader: function() {
  return (
window.XMLHttpRequest || window.XDomainRequest) && (window.FormData || window.FileReader && (window.XMLHttpRequest && XMLHttpRequest.sendAsBinary ||  window.ArrayBuffer && window.Uint8Array && (window.MozBlobBuilder || window.WebKitBlobBuilder || window.BlobBuilder)));
},

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