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

init: function(curExtend) {
  
cur.module 'pages';
  
cur.contentCache = {};
  
extend(curcurExtend);
  
cur.nav.push((function(changedoldn) {
    if (
changed[0] === undefined && changed['section']) {
      
this.switchSection(n['section'], changedoldn);
      return 
false;
    }
  }).
bind(this));
},

switchTab: function(tabevparams) {
  if (
ev && (ev.button == || ev.ctrlKey)) {
    return 
false;
  }
  var 
el ge('tab_' tab);
  if (
el) {
    var 
tabs geByClass('active_link'ge('pages_tabs'));
    for (var 
i in tabs) {
      
removeClass(tabs[i], 'active_link');
    }
    
addClass(el'active_link');
  }
  
show('pages_progress');
  
hide('pages_right_link');
  
nav.change(extend({sectiontab}, params));
  return 
false;
},

switchSection: function(sectionchangedoldndraft) {
  if (
section == 'history') {
    
delete n.hid;
    
delete n.hid2;
  }
  var 
params = clone(n);
  
extend(params, {sectionsectionact'edit'load1});
  if (
cur.page) {
    
params['page'] = cur.page;
  } else {
    
params['oid']  = cur.oid;
    
params['id'] = cur.pid;
  }

  var 
curSection nav.objLoc.section;
  if (!
curSection) {
    if (
isVisible('pages_cont_cache_source')) {
      
curSection 'source';
    } else if (
isVisible('pages_cont_cache_edit')) {
      
curSection 'edit';
    } else {
      
curSection 'view';
    }
    
old.section curSection;
  }

  var 
wrap ge('pages_wrap');
  var 
childs wrap.childNodes;
  var 
cacheId 'pages_cont_cache_' section;
  var 
callback = function() {
    
ge('pages').className 'pages_section_'+section;
    
Pages.hideError();
    var 
loc extend(n, {sectionsection})
    
nav.setLoc(loc);
    return;
  }

  var 
cache ge(cacheId);

  if (
draft) {
    
params['draft'] = 1;
  } else if (
cache) {
    for (var 
i in childs) {
      
hide(childs[i]);
    }
    
show(cache);
    
callback();

    if (
section != 'view') {
      
hide('pages_progress');
      
show('pages_right_link');
      return;
    }
  }

  
/*if ((section == 'edit' || section == 'view') && curSection == 'source') {
    params['Body'] = ge('pages_body_source').value;
    params['draft'] = 1;
  }*/
  
if ((section == 'source' || section == 'view') && (curSection == 'edit' || curSection == 'source')) {
    if (
section != 'source') {
      
//params['Body'] = cur.editor.convertToWiki();
      
params['Body'] = cur.editor.val();
    }
    
params['draft'] = 1;
  }
  
ajax.post('al_pages.php'params, {
    
onDone: function(contentscriptinfo) {
      
hide('pages_progress');
      
hide('pages_bottom_preview');
      
show('pages_right_link');
      if (
curSection != (old.section || 'view')) {
        return;
      }
      for (var 
i in childs) {
        
hide(childs[i]);
      }
      if (
cache) {
        
cache.innerHTML content;
        
show(cache);
      } else {
        
wrap.appendChild(ce('div', {
          
idcacheId,
          
className'pages_cont_cache',
          
innerHTMLcontent
        
}));
      }

      if (
script) eval(script);
      return 
callback();
    },
    
onFailPages.showError
  
});
},


pageAccess: function(layer) {
  var 
= (layer) ? wkcur cur;
  
showBox('al_pages.php', {act'page_access'idc.pidoidc.oid}, {
  });
},

viewVersion: function(hid) {
  
re('pages_cont_cache_edit');
  
re('pages_cont_cache_source');
  return 
Pages.switchTab('view'event, {hidhid});
},

compare: function(hid) {
  var 
row ge('pages_row'+hid);
  var 
obj = Array.prototype.slice.apply(geByClass('pages_diff'+hidrow));
  var 
obj2 geByClass1('pages_diff'+hidge('pages_compare_cont'));
  if (
obj2) {
    
obj.push(obj2);
  }
  if (
hasClass(row'pages_compare')) {
    for (var 
i in obj) {
      
obj[i].innerHTML cur.lang['pages_compare'];
    }
    
removeClass(row'pages_compare');
    if (
cur.compare2 === undefined) {
      
Pages.disableCompare();
      
slideUp('pages_compare_cont'100);
      
delete cur.compare1;
    } else {
      if (
hid == cur.compare2) {
        
ge('pages_compare2').innerHTML cur.compareEmptyCont;
        
Pages.disableCompare();
        
delete cur.compare2;
      } else {
        
ge('pages_compare1').innerHTML ge('pages_compare2').innerHTML;
        
ge('pages_compare2').innerHTML cur.compareEmptyCont;
        
cur.compare1 cur.compare2;
        
Pages.disableCompare();
        
delete cur.compare2;
      }
    }
  } else {
    for (var 
i in obj) {
      
obj[i].innerHTML cur.lang['pages_cancel2'];
    }
    
addClass(row'pages_compare');
    if (
cur.compare1 === undefined) {
      
cur.compare1 hid;
      
ge('pages_compare1').innerHTML row.innerHTML;
      
slideDown('pages_compare_cont'100);
      
Pages.disableCompare();
    } else {
      if (
cur.compare2 !== undefined) {
        
Pages.compare(cur.compare2);
      }
      if (!
cur.compareEmptyCont) {
        
cur.compareEmptyCont ge('pages_compare2').innerHTML;
      }
      
cur.compare2 hid;
      
ge('pages_compare2').innerHTML row.innerHTML;
      
Pages.enableCompare();
    }
  }
},

compareView: function() {
  
/*if (cur.compare1 > cur.compare2) {*/
    
var hid cur.compare1;
    var 
hid2 cur.compare2;
  
/*} else {
    var hid = cur.compare2;
    var hid2 = cur.compare1;
  };*/
  
return Pages.switchTab('view'false, {hidhidhid2hid2});
},


disableCompare: function() {
  if (!
cur.compareDisabler) {
    
cur.compareDisabler ge('pages_compare_disabler');
    
cur.compareButton ge('pages_compare_button');
    var 
size getSize(cur.compareButton);
    
setStyle(cur.compareDisabler, {widthsize[0]+'px'heightsize[1]+'px'});
  }
  
show(cur.compareDisabler);
},

enableCompare: function() {
  
hide(cur.compareDisabler);
},


showError: function(error) {
  
hide('pages_progress');
  
show('pages_right_link');
  var 
editError ge('pages_error');
  
show(ge('pages_error_wrap'));
  
cur.errorShown true;
  
editError.innerHTML error;
  
scrollToTop(200);
  return 
true;
},

hideError: function() {
  if (
cur.errorShown) {
    
hide('pages_error_wrap');
    
cur.errorShown false;
  }
},

onScroll: function(resize) {
  var 
scrollGetY();
  var 
panel ge('pages_buttons_panel');
  if (!
panel) return;
  var 
py getXY(ge('pages_buttons_cont'))[1];
  if (!
cur.bottomSize) {
    
cur.bottomSize getSize(panel);
  }

  var 
ph cur.bottomSize[1];

  var 
wndHeight window.innerHeight || document.documentElement.clientHeight;

  if (
resize && !cur.fixedBottom && wndHeight ph py 20) {
    
scrollToY(py 20 - (wndHeight ph), 0);
  } else if (
wndHeight ph py) {
    if (!
cur.fixedBottom || resize) {
      
cur.fixedBottom true;
      
setStyle(panel, {
        
position'fixed',
        
top: (wndHeight ph) + 'px'
      
});
      
addClass(panel'pages_panel_fixed');
    }
  } else {
    if (
cur.fixedBottom || resize) {
      
cur.fixedBottom false;
      
setStyle(panel, {
        
position'static',
        
top'0px'
      
});
      
removeClass(panel'pages_panel_fixed');
    }
  }

  if (
resize && cur.fixedBottom) {
    
setStyle(panel, {leftgetXY(ge('pages_cont_cache_edit'))[0]+'px'})
  }

  if (!
cur.editorLayer) {
    
cur.editorLayer ge('wke_buttons_cont');
  }

  var 
bottomPos ph 14;
  if (
py bottomPos) {
    
setStyle(ge('wke_buttons'), {toppy bottomPos});
    
hide('pages_top_toolbox_shadow');
    
cur.hiddenTop true;
  } else {
    if (
cur.hiddenTop) {
      
setStyle(ge('wke_buttons'), {top0});
      
show('pages_top_toolbox_shadow');
      
cur.hiddenTop false;
    }
  }
  var 
pos getXY(cur.editorLayer);
  if (
pos[1]) {
    if (!
cur.fixedTop) {
      
cur.fixedTop true;
      
addClass(ge('pages_cont_cache_edit'), 'pages_top_fixed');
      
cur.editor.floatPanel true;
    }
  } else {
    if (
cur.fixedTop) {
      
cur.fixedTop false;
      
removeClass(ge('pages_cont_cache_edit'), 'pages_top_fixed');
      
cur.editorLayer.style.paddingTop '0px';
      
cur.editor.floatPanel false;
    }
  }
},

saveInfo: function(from) {
  var 
curSection nav.objLoc.section;
  if (!
curSection) {
    if (
isVisible('pages_cont_cache_edit')) {
      
curSection 'edit';
    } else {
      
curSection 'view';
    }
  }
  var 
body cur.editor.val();
  if (!
body) {
    return 
false;
  }
  var 
params = {
    
act'save',
    
pagecur.page,
    
oidcur.oid,
    
idcur.pid,
    
hashcur.hash,
    
'Body'body,
    
plaincur.editor.plainMode 0,
    
view: (from == 'wysiwyg') ? 1
  
}
  var 
titleEl ge('pages_edit_title');
  if (
titleEl) {
    
params['title'] = titleEl.value;
  }
  
Pages.draftCancel();
  
ajax.post('al_pages.php'params, {
    
onDone: function(text) {
      var 
saveEl ge('pages_save_info_'+from);
      
saveEl.innerHTML text;
      
show(saveEl);
      
hide('pages_preview_'+curSection+'_link');
      
setTimeout(function() {
        
fadeOut(saveEl200, function() {
          
fadeIn(ge('pages_preview_'+curSection+'_link'), 200);
        });
      }, 
1500);

      
Pages.hideError();

      if (
nav.objLoc.hid) {
        var 
loc = clone(nav.objLoc);
        
delete loc.hid;
        
delete loc.hid2;
        
nav.setLoc(loc);
        
hide(geByClass1('pages_info_line'ge('pages_cont_cache_'+(nav.objLoc.section || 'view'))));
      }

      
Pages.clearCache();
    },
    
showProgress: function() {
      
lockButton(ge('pages_save_'+from));
    },
    
hideProgress: function() {
      
unlockButton(ge('pages_save_'+from));
    },
    
onFailPages.showError
  
})
},

clearCache: function() {
  var 
childs ge('pages_wrap').childNodes;
  for (var 
i in childs) {
    if (
childs[i].className == 'pages_cont_cache' && !isVisible(childs[i])) {
      
re(childs[i]);
    }
  }
},

getScrollWidth: function() {
  if (!
window.scrollbarWidth) {
    var 
test document.createElement('div');
    
with (test.style) {
      
overflowY 'scroll';
      
position 'absolute';
      
height '100px';
      
width '100px';
    }
    
test.innerHTML '<div style="height:200px;">1<br/>1<br/>1<br/>1<br/></div>';
    var 
body geByTag('BODY')[0];
    
body.appendChild(test);
    
window.scrollbarWidth test.offsetWidth geByTag('div'test)[0].offsetWidth 1;
    
body.removeChild(test);
    
delete test;
  }
},

revert: function(dataobj) {
  
obj.innerHTML '<img src="/images/upload.gif" />';
  
ajax.post('al_pages.php'extend(data, {act'revert'pagecur.pagehashcur.hash}), {
    
onDone: function(res) {
      if (
parseInt(res) == -1) {
        return 
re(obj);
      } else {
        
nav.reload();
      }
    }
  });
},

banUser: function(dataobjpagehash) {
  
obj.innerHTML '<img src="/images/upload.gif" />';
  var 
unban hasClass(obj'banned') ? 0;
  
ajax.post('al_pages.php'extend(data, {
    
act'ban_user',
    
pagepage || cur.page,
    
hashhash || cur.hash,
    
unbanunban
  
}), {
    
onDone: function(text) {
      
obj.innerHTML text;
      
addClass(obj'banned');
      if (
unban) {
        
removeClass(obj'banned');
      } else {
        
addClass(obj'banned');
      }
    }
  });
},

wysiwygInit: function(options) {
  if (
browser.ipod || browser.ipad || browser.iphone) return;
  
this.getScrollWidth();
  var 
simpleToolBar 'bold,italic,gray,underline,strike,sub,sup,left,center,right,marker_list,numeric_list,outdent,indent,h1,h2,h3,image,link,unlink';
  var 
extendedToolBar 'bold,italic,gray,underline,strike,sub,sup,left,center,right,marker_list,numeric_list,outdent,indent,pre,h1,h2,h3,image,break,';
  
extendedToolBar += 'table,table_delete,insert_row_before,insert_row_after,insert_col_before,insert_col_after,delete_row,delete_col,col_width,link,unlink,citate,character,video,audio,doc,hider';
  var 
editorParams extend({
    
editorName'pageWysiwyg',
    
replaceElemID'pages_html',
    
contentCSS'/css/al/wysiwyg.css',
    
htmlge('pages_html').value,
    
wikige('pages_body') ? ge('pages_body').value '',
    
height326,
    
simpleToolBarsimpleToolBar,
    
extendedToolBarextendedToolBar,
    
defaultMode'simple',
    
skinFile'pages',
    
photoMinSize: { w50h50 },
    
photoMaxSize: { w500h400 },
    
userID0,
    
userName'',
    
groupID0,
    
debugfalse,
    
onChange: function() {
      
Pages.draftChanged(falsetrue);
    }
  }, 
options || {});

  if (
options && options.layer) {
    
editorParams.onHeightChange = function() {
      
WkView.onScroll();
    }
  }

  
window.editorName editorParams.editorName;
  var 
editor window[editorParams.editorName] = new Wysiwyg(editorParams);
  if (
options && options.layer) {
    
wkcur.editor editor;
  } else {
    
cur.editor editor;
  }
},

_animDelX: function(aidopacityset_active) {
  var 
el ge('pages_delete_row' aid);
  if (!
el) return;
  if (
set_active !== undefined) {
    
el.active set_active;
  } else if (
el.active) {
    return;
  }
  
animate(el, {opacityopacity}, 200);
},

rowActive: function(nidtt) {
  
Pages._animDelX(nid11);
  if (
ttshowTooltip(ge('pages_delete_row' nid), {textttshowdt500});
},

rowInactive: function(nid) {
  
Pages._animDelX(nid0.50);
},

rowOver: function(nid) {
  
Pages._animDelX(nid0.5);
},

rowOut: function(nid) {
  
Pages._animDelX(nid0);
},

deleteNotification: function(nidhash) {
  var 
row ge('pages_notification'+nid);
  
//cur['restore'+nid] = row.innerHTML;
  
ajax.post('al_pages.php', {act'a_delete_notification'nidnidhashhash}, {
    
onDone: function(text) {
      
row.innerHTML text;
    },
    
showProgress: function() {
      
setStyle(row, {opacity0.5});
    },
    
hideProgress: function() {
      
setStyle(row, {opacity1});
    }
  })
},

preview: function() {
  var 
curSection nav.objLoc.section;
  if (!
curSection) {
    if (
isVisible('pages_cont_cache_source')) {
      
curSection 'source';
    } else if (
isVisible('pages_cont_cache_edit')) {
      
curSection 'edit';
    } else {
      
curSection 'view';
    }
  }
  if (
curSection == 'edit') {
    var 
body cur.editor.val();
  }
  
/*if (curSection == 'source') {
    var body = ge('pages_body_source').value;
  }*/

  
var prevBtn ge('pages_preview_'+curSection+'_link');
  if (!
cur.previewTextBackup) {
    
cur.previewTextBackup prevBtn.innerHTML;
  }
  
prevBtn.innerHTML '<img src="/images/upload.gif" />';

  
ajax.post('al_pages.php', {Bodybody,  act'edit'idcur.pidoidcur.oidsection'view''load'1}, {
    
onDone: function(contentjsinfo) {
      
prevBtn.innerHTML cur.previewTextBackup;
      var 
prev ge('pages_bottom_preview');
      
show(prev);
      
prev.innerHTML content;
      
scrollToY(getXY(prev)[1] - 45);
    },
    
onFail: function() {
      
prevBtn.innerHTML cur.previewTextBackup;
      
hide('pages_bottom_preview');
    }
  });
},

isWysiwyg: function() {
  var 
curSection nav.objLoc.section;
  return 
curSection ? (curSection == 'edit') : isVisible('pages_cont_cache_edit');
},

initDraft: function() {
  var 
textfield ge('pages_body');
  
cur.destroy.push(function() {
    
clearTimeout(cur.draftTimeout);
    if (
Pages.isWysiwyg()) {
      
Pages.saveDraft(cur.editor.convertToWiki(true));
    } else {
      
Pages.saveDraft(val('pages_body_source'));
    }
  });
},

draftChanged: function(valwysiwygforce) {
  
clearTimeout(cur.draftTimeout);
  
cur.draftTimeout setTimeout(function() {
    if (!
val && wysiwyg) {
      
val cur.editor.val();
    }
    
Pages.saveDraft(val);
  }, 
5000);
},

saveDraft: function(val) {
  if (
val == cur.lastSavedWiki) return;
  var 
draftCont geByClass('pages_draft_info'ge('pages_wrap'))[0];
  if (
draftCont && isVisible(draftCont)) return;
  var 
params = {
    
act'save_draft',
    
pagecur.page,
    
oidcur.oid,
    
idcur.pid,
    
hashcur.drafthash,
    
'Body'val
  
}
  
cur.lastSavedWiki val;
  
ajax.post('al_pages.php'params, {
    
onFail: function() {
      return 
true;
    }
  });
},

draftCancel: function(save) {
  var 
draftCont geByClass('pages_draft_info'ge('pages_wrap'));
  if (
draftCont) {
    for (var 
i in draftCont) {
      if (
isVisible(draftCont[i])) {
        
slideUp(draftCont[i], 100);
      } else {
        
hide(draftCont[i]);
      }
    }
  }
  if (
save) {
    var 
params = {
      
act'clear_draft',
      
pagecur.page,
      
oidcur.oid,
      
idcur.pid,
      
hashcur.drafthash
    
}
    
ajax.post('al_pages.php'params);
  }
},

restoreDraft: function(btn) {
  
lockButton(btn);
  
Pages.switchSection(nav.objLoc.section, {}, nav.objLocnav.objLoctrue);
},

applyVersion: function(hidoidpidmidhashobjcallback) {
  var 
params = {
    
act'apply_version',
    
oidoid,
    
pidpid,
    
hidhid,
    
hashhash,
    
midmid
  
}
  
ajax.post('al_pages.php'params, {
    
onDone: function(text) {
      if (
callback) return callback(pidtext);
      
obj.innerHTML '<img src="/images/upload.gif"/>';
      var 
loc = clone(nav.objLoc)
      
delete loc.hid;
      
nav.go(loc);
    },
    
showProgress: function() {
      if (!
cur.applyVersionCont) {
        
cur.applyVersionCont obj.innerHTML;
      }
      
obj.innerHTML '<img src="/images/upload.gif"/>';
    },
    
hideProgress: function() {
      if (
cur.applyVersionCont) {
        
obj.innerHTML cur.applyVersionCont;
      }
    }
  })
},

versionApplied: function(pidtext) {
  var 
obj ge('pages_notification'+pid);
  
obj.innerHTML text;
},

abuseBox: function(oidpidhash) {
  
showBox('al_pages.php', {
    
act'report_box',
    
oidoid,
    
pidpid,
    
hashhash
  
});
},

actReport: function(report_idhashobjact) {
  
ajax.post('al_pages.php', {
    
actact,
    
report_idreport_id,
    
hashhash
  
}, {
    
onDone: function(text) {
      var 
obj ge('pages_abuse'+report_id);
      
obj.innerHTML text;
    },
    
showProgress: function() {
      if (
obj.tagName == 'BUTTON') return lockButton(obj);
      if (!
cur.applyVersionCont) {
        
cur.applyVersionCont obj.innerHTML;
      }
      
obj.innerHTML '<img src="/images/upload.gif"/>';
    },
    
hideProgress: function() {
      if (
obj.tagName == 'BUTTON') return unlockButton(obj);
      if (
cur.applyVersionCont) {
        
obj.innerHTML cur.applyVersionCont;
      }
    }
  });
},

sendReport: function(oidpidhidhid2midhashobj) {
  
ajax.post('al_reports.php', {
    
act'report',
    
item_type5,
    
oidoid,
    
pidpid,
    
place_idhid,
    
hidhid,
    
hid2hid2,
    
hashhash,
    
type4,
    
item_idmid,
    
comment''
  
}, {
    
onDone: function(text) {
      
obj.parentNode.innerHTML text;
    },
    
showProgress: function() {
      if (!
cur.applyVersionCont) {
        
cur.applyVersionCont obj.innerHTML;
      }
      
obj.innerHTML '<img src="/images/upload.gif"/>';
    },
    
hideProgress: function() {
      if (
cur.applyVersionCont) {
        
obj.innerHTML cur.applyVersionCont;
      }
    }
  });
},

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