User:Js/ajaxPreview.js

window.ajaxPreviewMsg = {

emptydiff: 'No changes',

difftip: 'shift-click the button to show changes compared to this old version',

diff2old: 'comparison to old version',

viewtip: 'shift-click the button to update interwiki and categories as well\

(more)'

};

function ajaxPreviewButtons(){

var ajaxPreviewPos = window.ajaxPreviewPos || 'right'

if( !document.getElementById('wpSave') ){

return;

}

mw.loader.load( '//en.wikipedia.org/w/index.php?title=User:Js/preview2.js&action=raw&ctype=text/javascript' );

if( ajaxPreviewPos != 'bottom' ){

var previewToolbar = $('

')

if ( mw.user.options.get('usebetatoolbar') ) {

$('#wikiPreview').after('

', previewToolbar)

} else {

var el = $('#toolbar')

if( el.length ) el.prepend(previewToolbar)

else $('#editform').before(previewToolbar)

}

}

addBtn(window.ajaxPreviewButton, 'wpPreview', window.ajaxPreviewKey || 'p')

if( mw.config.get( 'wgArticleId' ) )

addBtn(window.ajaxDiffButton, 'wpDiff', window.ajaxDiffKey || 'v')

function addBtn(name, id, akey){

var $btnOld = $(document.getElementById(id))

if( $btnOld.length === 0 ) return

var $btn = $('')

.attr('id', id + 'Live')

.attr( 'title', $btnOld.val() + ' (ajax)');

if( ajaxPreviewPos == 'bottom' ){

$btn.val( $btnOld.val() ).insertBefore( $btnOld.val('>') )

}else{

if( !name ){ //extract last word from standard buttons

var name = $btnOld.val(); var i = name.lastIndexOf(' ') + 1

name = name.substring(i, i+1).toUpperCase() + name.substring(i+1)

}

$btn.val(name).css({height:'22px', padding:'0 1px'}).appendTo(previewToolbar)

}

if( akey ){ //reassign acces key

if( $btnOld.attr('accesskey') == akey )

$btnOld.removeAttr('accesskey').updateTooltipAccessKeys()

$btn.attr('accesskey', akey).updateTooltipAccessKeys()

}

}

}

if( $.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1 && mw.config.get('wgCanonicalNamespace') !== 'Special' ){

mw.loader.using( ['mediawiki.util', 'user.options', 'jquery.textSelection'], function () {

$(ajaxPreviewButtons);

} );

}