// Wikipedia JavaScript support functions
-// if this is true, the toolbar will no longer overwrite the infobox when you move the mouse over individual items
-var noOverwrite=false;
-var alertText;
+
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var is_gecko = ((clientPC.indexOf('gecko')!=-1) && (clientPC.indexOf('spoofer')==-1)
&& (clientPC.indexOf('khtml') == -1) && (clientPC.indexOf('netscape/7.0')==-1));
// we use it to avoid creating the toolbar where javascript is not enabled
function addButton(imageFile, speedTip, tagOpen, tagClose, sampleText) {
- speedTip=escapeQuotes(speedTip);
+ // Don't generate buttons for browsers which don't fully
+ // support it.
+ if(!document.selection && !is_gecko) {
+ return false;
+ }
+ imageFile=escapeQuotesHTML(imageFile);
+ speedTip=escapeQuotesHTML(speedTip);
tagOpen=escapeQuotes(tagOpen);
tagClose=escapeQuotes(tagClose);
sampleText=escapeQuotes(sampleText);
var mouseOver="";
- // we can't change the selection, so we show example texts
- // when moving the mouse instead, until the first button is clicked
- if(!document.selection && !is_gecko) {
- // filter backslashes so it can be shown in the infobox
- var re=new RegExp("\\\\n","g");
- tagOpen=tagOpen.replace(re,"");
- tagClose=tagClose.replace(re,"");
- mouseOver = "onMouseover=\"if(!noOverwrite){document.infoform.infobox.value='"+tagOpen+sampleText+tagClose+"'};\"";
- }
-
document.write("<a href=\"javascript:insertTags");
document.write("('"+tagOpen+"','"+tagClose+"','"+sampleText+"');\">");
-
- document.write("<img width=\"23\" height=\"22\" src=\""+imageFile+"\" border=\"0\" alt=\""+speedTip+"\" title=\""+speedTip+"\""+mouseOver+">");
+ document.write("<img width=\"23\" height=\"22\" src=\""+imageFile+"\" border=\"0\" alt=\""+speedTip+"\" title=\""+speedTip+"\""+mouseOver+">");
document.write("</a>");
return;
}
-function addInfobox(infoText,text_alert) {
- alertText=text_alert;
- var clientPC = navigator.userAgent.toLowerCase(); // Get client info
-
- var re=new RegExp("\\\\n","g");
- alertText=alertText.replace(re,"\n");
-
- // if no support for changing selection, add a small copy & paste field
- // document.selection is an IE-only property. The full toolbar works in IE and
- // Gecko-based browsers.
- if(!document.selection && !is_gecko) {
- infoText=escapeQuotesHTML(infoText);
- document.write("<form name='infoform' id='infoform'>"+
- "<input size=80 id='infobox' name='infobox' value=\""+
- infoText+"\" readonly='readonly'></form>");
- }
-
-}
-
function escapeQuotes(text) {
var re=new RegExp("'","g");
text=text.replace(re,"\\'");
- re=new RegExp('"',"g");
- text=text.replace(re,'"');
re=new RegExp("\\n","g");
text=text.replace(re,"\\n");
- return text;
+ return escapeQuotesHTML(text);
}
function escapeQuotesHTML(text) {
+ var re=new RegExp('&',"g");
+ text=text.replace(re,"&");
var re=new RegExp('"',"g");
text=text.replace(re,""");
+ var re=new RegExp('<',"g");
+ text=text.replace(re,"<");
+ var re=new RegExp('>',"g");
+ text=text.replace(re,">");
return text;
}
txtarea.selectionEnd=cPos;
txtarea.scrollTop=scrollTop;
- // All others
- } else {
- var copy_alertText=alertText;
- var re1=new RegExp("\\$1","g");
- var re2=new RegExp("\\$2","g");
- copy_alertText=copy_alertText.replace(re1,sampleText);
- copy_alertText=copy_alertText.replace(re2,tagOpen+sampleText+tagClose);
- var text;
- if (sampleText) {
- text=prompt(copy_alertText);
- } else {
- text="";
- }
- if(!text) { text=sampleText;}
- text=tagOpen+text+tagClose;
- document.infoform.infobox.value=text;
- // in Safari this causes scrolling
- if(!is_safari) {
- txtarea.focus();
- }
- noOverwrite=true;
+ // All other browsers get no toolbar.
+ // There was previously support for a crippled "help"
+ // bar, but that caused more problems than it solved.
}
// reposition cursor if possible
if (txtarea.createTextRange) txtarea.caretPos = document.selection.createRange().duplicate();
function akeytt() {
if(typeof ta == "undefined" || !ta) return;
pref = 'alt-';
- if(is_safari || navigator.userAgent.toLowerCase().indexOf( 'mac' ) + 1 ) pref = 'control-';
+ if(is_safari || navigator.userAgent.toLowerCase().indexOf( 'mac' ) + 1
+ || navigator.userAgent.toLowerCase().indexOf( 'konqueror' ) + 1 ) pref = 'control-';
if(is_opera) pref = 'shift-esc-';
+
for(id in ta) {
n = document.getElementById(id);
if(n){
+ // Are we putting accesskey in it
+ if(ta[id][0].length > 0) {
+ // Is this object a object? If not assume it's the next child.
+
+ if ( n.nodeName.toLowerCase() == "a" ) {
+ a = n;
+ } else {
a = n.childNodes[0];
+ }
+
if(a){
- if(ta[id][0].length > 0) {
a.accessKey = ta[id][0];
ak = ' ['+pref+ta[id][0]+']';
- } else {
- ak = '';
}
- a.title = ta[id][1]+ak;
- } else {
- if(ta[id][0].length > 0) {
- n.accessKey = ta[id][0];
- ak = ' ['+pref+ta[id][0]+']';
} else {
+ // We don't care what type the object is when assigning tooltip
+ a = n;
ak = '';
}
- n.title = ta[id][1]+ak;
+
+ if (a) {
+ a.title = ta[id][1]+ak;
}
}
}
}
+
+function setupRightClickEdit() {
+ if( document.getElementsByTagName ) {
+ var divs = document.getElementsByTagName( 'div' );
+ for( var i = 0; i < divs.length; i++ ) {
+ var el = divs[i];
+ if( el.className == 'editsection' ) {
+ addRightClickEditHandler( el );
+ }
+ }
+ }
+}
+
+function addRightClickEditHandler( el ) {
+ for( var i = 0; i < el.childNodes.length; i++ ) {
+ var link = el.childNodes[i];
+ if( link.nodeType == 1 && link.nodeName.toLowerCase() == 'a' ) {
+ var editHref = link.getAttribute( 'href' );
+
+ // find the following a
+ var next = el.nextSibling;
+ while( next.nodeType != 1 )
+ next = next.nextSibling;
+
+ // find the following header
+ next = next.nextSibling;
+ while( next.nodeType != 1 )
+ next = next.nextSibling;
+
+ if( next && next.nodeType == 1 &&
+ next.nodeName.match( /^[Hh][1-6]$/ ) ) {
+ next.oncontextmenu = function() {
+ document.location = editHref;
+ return false;
+ }
+ }
+ }
+ }
+}
+
+function fillDestFilename() {
+ if (!document.getElementById) return;
+ var path = document.getElementById('wpUploadFile').value;
+ // Find trailing part
+ var slash = path.lastIndexOf( '/' );
+ var backslash = path.lastIndexOf( '\\' );
+ var fname;
+ if ( slash == -1 && backslash == -1 ) {
+ fname = path;
+ } else if ( slash > backslash ) {
+ fname = path.substring( slash+1, 10000 );
+ } else {
+ fname = path.substring( backslash+1, 10000 );
+ }
+
+ // Capitalise first letter and replace spaces by underscores
+ fname = fname.charAt(0).toUpperCase().concat(fname.substring(1,10000)).replace( / /g, '_' );
+
+ // Output result
+ var destFile = document.getElementById('wpDestFile');
+ if (destFile) destFile.value = fname;
+}
+
+
+function considerChangingExpiryFocus() {
+ if (!document.getElementById) return;
+ var drop = document.getElementById('wpBlockExpiry');
+ if (!drop) return;
+ var field = document.getElementById('wpBlockOther');
+ if (!field) return;
+ var opt = drop.value;
+ if (opt == 'other')
+ field.style.display = '';
+ else
+ field.style.display = 'none';
+}