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

switchTab: function(nameevt) {
  if (
evt.button) return true;
  var 
oldTab false;
  
each(geByClass('active_link'ge('faq_tabs')), function(iv) {
    if (
hasClass(v'active_link')) {
      
oldTab v;
      
removeClass(v'active_link');
    }
  });
  
addClass(ge(name '_tab'), 'active_link');
  if (
name == 'new') {
    
hide('extra_tab''show_tab''edit_tab''new_link');
    
show('new_tab');
    var 
newLoc extend(nav.objLoc, {act'new'});
    if (
cur.langsDD) {
      
extend(newLoc, {langcur.langsDD.val()});
    }
    return 
nav.go(newLocevt, {onFail: function(text) {
      
hide('new_tab');
      
show('new_link');
      
removeClass(ge(name '_tab'), 'active_link');
      if (
oldTab) {
        
addClass(oldTab'active_link');
      }
      
setTimeout(showFastBox(getLang('global_error'), text).hide2000);
      return 
true;
    }});
  } else if (
name == 'edit') {
    
show('edit_tab''new_link');
    
hide('new_tab''show_tab''extra_tab');
  } else if (
name == 'extra') {
    
show('extra_tab''new_link');
    
hide('new_tab''show_tab''edit_tab');
  } else {
    
hide('extra_tab''new_tab''edit_tab');
    
show('new_link');
    var 
newLoc extend({0nav.objLoc[0], langnav.objLoc.lang}, {actname});
    if (
cur.section == 'edit' && name == 'all' && cur.langsDD) {
      
extend(newLoc, {langcur.langsDD.val()});
    }
    return 
nav.go(newLocevt);
  }
},

switchSubTab: function(ellinkevt) {
  if (
checkEvent(evt) || hasClass(el'active')) return false;
  
each(geByClass('faq_subtab1'ge('faq_subtabs')), function(iv) {
    
removeClass(v'active');
  });
  
addClass(el'active');
  return 
nav.go(linkevt);
},

showMsg: function(text) {
  var 
msg ge('faq_msg');
  if (!
msg) {
    var 
parent;
    switch (
cur.section) {
      case 
'all':
        
parent cur.tlmd ge('tickets_faq_list') : ge('faq_list');
        break;
      case 
'new':
        
parent ge('faq_msg_p');
        
show('faq_msg_p');
        break;
    }
    
msg parent.insertBefore(ce('div', {id'faq_msg'className'msg'}), parent.firstChild);
  }
  
re('faq_error');
  
msg.innerHTML text;
  
msg.style.backgroundColor '#F4EBBD';
  
animate(msg, {backgroundColor'#F9F6E7'}, 2000);
  return 
true;
},

showError: function(error) {
  var 
err ge('faq_error');
  if (!
err) {
    var 
parent;
    switch (
cur.section) {
      case 
'all':
        
parent ge('faq_list');
        break;
      case 
'new':
        
parent ge('faq_msg_p');
        
show('faq_msg_p');
        break;
    }
    
err parent.insertBefore(ce('div', {id'faq_error'className'error'}), parent.firstChild);
  }
  
re('faq_msg');
  
hide('faq_progress');
  
err.innerHTML error;
  
err.style.backgroundColor '#FACEBB';
  
animate(err, {backgroundColor'#FFEFE8'}, 2000);
  
scrollToTop(200);
  return 
true;
},

handleTagsPos: function() {
  if (!
ge('faq_tags_td')) return false;
  var 
st scrollGetY(), wh window.lastWindowHeight || 0pos 0,
      
filt ge('faq_tags_td'), filtPos getXY(filt)[1], filtY getSize(filt)[1],
      
sf ge('faq_tags'), sfPos getXY(sf)[1], sfY getSize(sf)[1],
      
bottomPad Math.max(0st wh filtY filtPos),
      
tooBig = (filtY sfY 20),
      
lastPos cur.filterLastPos || 0lastSt cur.lastSt || 0;
  if  (
st filtPos && !tooBig) {
    
addClass(sf'fixed');
    
pos = (wh sfY) ? Math.min(0wh sfY bottomPad) : Math.max(Math.min(0lastPos lastSt st), wh sfY bottomPad);
  } else {
    
removeClass(sf'fixed');
    
pos 0;
  }
  
cur.filterLastPos pos;
  
cur.lastSt st;
  
setStyle(sf, {toppos 'px'});
},

selectTag: function(tagevent) {
  
cur.tagsDD.addTag('#' tag);
  
scrollToTop();
},

toggleAllRows: function(el) {
  
cur.faqRowsOpened = !cur.faqRowsOpened;
  
each(geByClass('faq_row'ge('tickets_faq_list')), setTimeout.pbind(function(iel) {
    var 
id el.id.substr(7);
    if (
id) {
      
toggleClass(geByClass1('faq_inner_row'el), 'detailed'cur.faqRowsOpened);
    }
  }, 
0));
  
toggleClass(el'shown');
},

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);
  }
},

saveFAQ: function(hash) {
  var 
title trim(val('faq_title')),
      
text trim(val('faq_text')),
      
keywords trim(val('faq_keywords')),
      
description trim(val('faq_description'));
  if (!
title) {
    return 
notaBene('faq_title');
    return;
  }
  var 
imgs = [];
  if (
cur.screens) {
    for (var 
i in cur.screens) {
      
imgs.push(cur.screens[i][0]);
    }
  }
  if (!
text && !imgs.length) {
    
notaBene('faq_text');
    return;
  }
  var 
language cur.langsDD && cur.langsDD.val() || 0;
  
ajax.post(nav.objLoc[0], {act'save'titletitletexttextkeywordskeywordsdescriptiondescriptionhashhashimgsimgsfaq_idcur.idfixedcur.fixFAQ.val(), urgentcur.urgentFAQ.val(), servertrim(val('faq_server')), id_masktrim(val('faq_id_mask')), languagelanguageparent_id: (language cur.parentId 0)}, {
    
onFailFAQ.showError,
    
showProgresslockButton.pbind(ge('faq_send')),
    
hideProgressunlockButton.pbind(ge('faq_send'))
  });
},

// screenshot attachment

addScreen: function(forEdit) {
  
showFastBox({titlegetLang('support_adding_screen'), width440bodyStyle'padding: 0px'}, '
<div class="fis_box">
  <div class="info_msg fis_about">' 
getLang('support_screen_you_can') + '</div>
  <div id="fis_add_data"></div>
  <div class="fis_warn_text">' 
getLang('support_screen_warn') + '</div>
  <div id="fis_dropbox" class="dropbox">
    <div class="dropbox_wrap">
      <div class="dropbox_area">' 
getLang('drop_files_here') + '</div>
    </div>
  </div>
</div>
  '
);
  
stManager.add('upload.js'FAQ.initUpload.pbind(forEdit));
},
attachCount: function(forEdit) {
  var 
previewEl ge('fis_preview' + (forEdit '_edit' '')),
      
progressNode ge('fis_prg_preview' + (forEdit '_edit' ''));
  return (
previewEl.childNodes.length progressNode.childNodes.length);
},
unchoose: function(indforEdit) {
  
re('fis_preview' ind);
  if (
forEdit) {
    
delete(cur.screensEdit[ind]);
  } else {
    
delete(cur.screens[ind]);
  }
  
toggle('fis_add_lnk' + (forEdit '_edit' ''), FAQ.attachCount(forEdit) < 5);
},
choose: function(indforEditmediadata) {
  var 
preview '',
      
previewEl ge('fis_preview' + (forEdit '_edit' '')),
      
prgNode ge('fis_prg_preview' + (forEdit '_edit' ''));

  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;
  
preview '<div onclick="return showPhoto('' + media + '', '' + data.list + '', ' data.view_opts.replace(/"/g, '&quot;') + ');" class="fl_l fis_preview"><img class="fis_photo" src="' + data.thumb_s + '" /></div>';
  var mediaEl = ce('
div', {innerHTML: '<div id="fis_preview' + ind + '" class="fis_preview_wrap">' + preview + '<div class="fis_x fl_l" ' + (browser.msie ? 'title' : 'tooltip') + '="' + getLang('dont_attach') + '" onmouseover="if (browser.msie) return; showTooltip(this, {text: this.getAttribute('tooltip'), shift: [6, 3, 3]})" onclick="FAQ.unchoose('' + ind + ''' + (forEdit ? ', 1' : '') + ')"></div></div>'}).firstChild;

  addClass(mediaEl, '
fl_l');
  re('
upload' + ind + '_progress_wrap');
  previewEl.appendChild(mediaEl);

  if (forEdit) {
    cur.screensEdit[ind] = [media, mediaEl];
  } else {
    cur.screens[ind] = [media, mediaEl];
  }
  if (!cur.fileApiUploadStarted) {
    boxQueue.hideLast();
  }
  toggle('
fis_add_lnk' + (forEdit ? '_edit' : ''), FAQ.attachCount(forEdit) < 5);
},
chooseUploaded: function(info, params) {
  var i = info.ind !== undefined ? info.ind : info,
      fileName = info.fileName ? info.fileName : info,
      ind = info.fileName ? i + '
_' + info.fileName : info;
  if (ge('
upload' + ind + '_progress_wrap')) {
    var x = geByClass1('
fis_prg_x', ge('upload' + ind + '_progress_wrap'));
    if (x) hide(x);
  }
  ajax.post('
al_photos.php', extend({act: 'choose_uploaded_support'}, params), {
    onDone: FAQ.choose.pbind(ind, Upload.options[i].forEdit),
    onFail: FAQ.chooseFail.pbind(info),
    progress: (Upload.types[i] == '
form' && curBox()) ? curBox().progress : null
  });
},
chooseFail: function(info, code) {
  var i = info.ind !== undefined ? info.ind : info, fileName = info.fileName ? info.fileName : info;
  var forEdit = Upload.options[i].forEdit;
  if (Upload.types[i] == '
fileApi') {
    var ind = info.fileName ? i + '
_' + info.fileName : info;
    re('
upload' + ind + '_progress_wrap');
    FAQ.unchoose(ind, forEdit);
  }
  if (curBox()) hide(curBox().progress);
  topError('
Upload failed', {dt: -1, type: 102, url: (ge('file_uploader_form' + i) || {}).action});
  Upload.embed(i);
  toggle('
fis_add_lnk' + (forEdit ? '_edit' : ''), FAQ.attachCount(forEdit) < 5);
},
showScreenProgress: function(i, data) {
  var forEdit = Upload.options[i].forEdit,
      prgNode = ge('
fis_prg_preview' + (forEdit ? '_edit' : '')),
      percent = intval(data.loaded / data.total * 100),
      fileName = data.fileName || data.name || '',
      ind = fileName ? i + '
_' + fileName : i,
      label = fileName ? (fileName.length > 33 ? fileName.substr(0, 30) + '
...' : fileName) : '';

  if (!prgNode) return;

  if (!ge('
upload' + ind + '_progress_wrap')) {
    var progress = '
<div class="fis_progress_wrap">
  <
div id="upload' + ind + '_progress" class="fis_progress" style="width: ' + percent + '%;"></div>
</
div></div>';
    var progressEl = ce('
div', {id: 'upload' + ind + '_progress_wrap', innerHTML: '<div class="fl_l">' + progress + '</div>' + (label ? '<div class="fis_label fl_l">' + label + '</div>' : '') + '<div class="fis_prg_x fl_l" onmouseover="animate(this, {opacity: 1}, 200); showTooltip(this, {text: '' + getLang('dont_attach') + '', shift: [6, 3, 3]})" onmouseout="animate(this, {opacity: 0.6}, 200);" onclick="Upload.terminateUpload(' + i + ', '' + (fileName || i) + '');"></div>', className: 'clear_fix'}, {marginTop: '6px'});
    prgNode.appendChild(progressEl);
    show(prgNode);
    toggle('
fis_add_lnk' + (forEdit ? '_edit' : ''), FAQ.attachCount(forEdit) < 5);
    if (!percent) {
      hide('
upload' + ind + '_progress');
    }
  } else {
    setStyle(ge('
upload' + ind + '_progress'), {width: percent + '%'});
    show('
upload' + ind + '_progress');
  }
  return false;
},

initUpload: function(forEdit) {
  if (!ge('
fis_add_data')) return;

  if (!cur.screens) cur.screens = {};
  var opts = cur.uploadData.options;
  Upload.init('
fis_add_data', cur.uploadData.url, cur.uploadData.vars, {
    file_name: '
photo',

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

    onUploadStart: function(info, res) {
      var i = info.ind !== undefined ? info.ind : info, options = Upload.options[i];
      if (Upload.types[i] == '
form') {
        if (curBox()) show(curBox().progress);
        geByClass1('
file', ge('fis_add_data')).disabled = true;
      }
      if (Upload.types[i] == '
fileApi') {
        if (cur.notStarted) {
          curBox().hide();
          delete cur.notStarted;
        }
        if (options.multi_progress) this.onUploadProgress(info, 0, 0);
      }
    },
    onUploadComplete: function(info, res) {
      var params, i = info.ind !== undefined ? info.ind : info, fileName = info.fileName ? info.fileName : info;
      try {
        params = eval('
(' + res + ')');
      } catch(e) {
        params = q2ajx(res);
      }
      if (!params.photos) {
        Upload.onUploadError(info);
        return;
      }
      var options = Upload.options[i];
      FAQ.chooseUploaded(info, params);
    },
    onUploadProgress: function(info, bytesLoaded, bytesTotal) {
      var i = info.ind !== undefined ? info.ind : info;
      if (Upload.types[i] == '
fileApi') {
        var data = {loaded: bytesLoaded, total: bytesTotal};
        if (info.fileName) data.fileName = info.fileName;
        FAQ.showScreenProgress(i, data);
      }
    },
    onUploadError: FAQ.chooseFail,

    noFlash: 1,
    multiple: 1,
    multi_progress: 1,
    max_files: 5 - FAQ.attachCount(forEdit),
    clear: 1,
    type: '
photo',
    max_attempts: 3,
    server: opts.server,
    error: opts.default_error,
    error_hash: opts.error_hash,
    dropbox: '
fis_dropbox',
    forEdit: forEdit
  });
},

deleteFAQ: function(faq_id, hash) {
  var box = showFastBox({title: cur.lang['
delete_title'], width: 430}, cur.lang['delete_confirm'], cur.lang['delete'], function() {
    ajax.post(nav.objLoc[0], {act: '
delete', faq_id: faq_id, hash: hash}, {
      progress: box.progress,
      onFail: function(text) {
        box.hide();
        FAQ.showError(text);
        return true;
      }
    });
  }, getLang('
global_cancel'));
  return false;
},

toggleRow: function(id, el, evt) {
  if (!evt.target) {
    evt.target = evt.srcElement || document;
  }
  if (evt.target.tagName.toLowerCase() == '
a') return true;
  toggle('
faq_short_text'+id, !isVisible('faq_short_text'+id));
  toggle('
faq_full_text'+id, !isVisible('faq_full_text'+id));
  if (isVisible('
faq_full_text'+id)) {
    addClass(el, '
detailed');
    if (cur.tlmd) {
      ajax.post(nav.objLoc[0], {act: '
faq_clicked', faq_id: id, hash: cur.faq_hash}, {cache: 1});
    }
  } else {
    removeClass(el, '
detailed');
  }
  return false;
},

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