// 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('khtml') == -1) && (clientPC.indexOf('netscape/7.0')==-1));
var is_safari = ((clientPC.indexOf('AppleWebKit')!=-1) && (clientPC.indexOf('spoofer')==-1));
var is_khtml = (navigator.vendor == 'KDE' || ( document.childNodes && !document.all && !navigator.taintEnabled ));
if (clientPC.indexOf('opera')!=-1) {
// don't run anything below this for non-dom browsers
if(!(document.getElementById && document.getElementsByTagName)) return;
histrowinit();
+ unhidetzbutton();
+ tabbedprefs();
+ akeytt();
}
if (window.addEventListener) window.addEventListener("load",onloadhook,false);
else if (window.attachEvent) window.attachEvent("onload",onloadhook);
// document.write special stylesheet links
-function addcss ( stylepath ) {
+if(typeof stylepath != 'undefined' && typeof skin != 'undefined') {
if (is_opera_preseven) {
- document.write('<link rel="stylesheet" type="text/css" href="'+stylepath+'Opera6Fixes.css">');
+ document.write('<link rel="stylesheet" type="text/css" href="'+stylepath+'/'+skin+'/Opera6Fixes.css">');
} else if (is_opera_seven) {
- document.write('<link rel="stylesheet" type="text/css" href="'+stylepath+'Opera7Fixes.css">');
+ document.write('<link rel="stylesheet" type="text/css" href="'+stylepath+'/'+skin+'/Opera7Fixes.css">');
} else if (is_khtml) {
- document.write('<link rel="stylesheet" type="text/css" href="'+stylepath+'KHTMLFixes.css">');
+ document.write('<link rel="stylesheet" type="text/css" href="'+stylepath+'/'+skin+'/KHTMLFixes.css">');
}
- return;
}
-
// Un-trap us from framesets
if( window.top != window ) window.top.location = window.location;
function histrowinit () {
hf = document.getElementById('pagehistory');
if(!hf) return;
- lis = hf.getElementsByTagName('li');
+ lis = hf.getElementsByTagName('LI');
for (i=0;i<lis.length;i++) {
inputs=lis[i].getElementsByTagName('INPUT');
if(inputs[0] && inputs[1]) {
var oli = false; // the li where the oldid radio is checked
hf = document.getElementById('pagehistory');
if(!hf) return;
- lis = hf.getElementsByTagName('li');
+ lis = hf.getElementsByTagName('LI');
for (i=0;i<lis.length;i++) {
inputs=lis[i].getElementsByTagName('INPUT');
if(inputs[1] && inputs[0]) {
}
}
+// generate toc from prefs form, fold sections
+// XXX: needs testing on IE/Mac and safari
+// more comments to follow
+function tabbedprefs() {
+ prefform = document.getElementById('preferences');
+ if(!prefform || !document.createElement) return;
+ if(prefform.nodeName == 'A') return; // Occasional IE problem
+ prefform.className = prefform.className + 'jsprefs';
+ var sections = new Array();
+ children = prefform.childNodes;
+ var seci = 0;
+ for(i=0;i<children.length;i++) {
+ if(children[i].nodeName.indexOf('FIELDSET') != -1) {
+ children[i].id = 'prefsection-' + seci;
+ children[i].className = 'prefsection';
+ if(is_opera || is_khtml) children[i].className = 'prefsection operaprefsection';
+ legends = children[i].getElementsByTagName('LEGEND');
+ sections[seci] = new Object();
+ if(legends[0] && legends[0].firstChild.nodeValue)
+ sections[seci].text = legends[0].firstChild.nodeValue;
+ else
+ sections[seci].text = '# ' + seci;
+ sections[seci].secid = children[i].id;
+ seci++;
+ if(sections.length != 1) children[i].style.display = 'none';
+ else var selectedid = children[i].id;
+ }
+ }
+ var toc = document.createElement('UL');
+ toc.id = 'preftoc';
+ toc.selectedid = selectedid;
+ for(i=0;i<sections.length;i++) {
+ var li = document.createElement('LI');
+ if(i == 0) li.className = 'selected';
+ var a = document.createElement('A');
+ a.href = '#' + sections[i].secid;
+ a.onclick = uncoversection;
+ a.innerHTML = sections[i].text;
+ a.secid = sections[i].secid;
+ li.appendChild(a);
+ toc.appendChild(li);
+ }
+ prefform.insertBefore(toc, children[0]);
+ document.getElementById('prefsubmit').id = 'prefcontrol';
+}
+function uncoversection() {
+ oldsecid = this.parentNode.parentNode.selectedid;
+ newsec = document.getElementById(this.secid);
+ if(oldsecid != this.secid) {
+ ul = document.getElementById('preftoc');
+ document.getElementById(oldsecid).style.display = 'none';
+ newsec.style.display = 'block';
+ ul.selectedid = this.secid;
+ lis = ul.getElementsByTagName('LI');
+ for(i=0;i< lis.length;i++) {
+ lis[i].className = '';
+ }
+ this.parentNode.className = 'selected';
+ }
+ return false;
+}
+
// Timezone stuff
// tz in format [+-]HHMM
function checkTimezone( tz, msg ) {
document.write( junk[0] + "UTC" + tzString + junk[1] );
}
}
+function unhidetzbutton() {
+ tzb = document.getElementById('guesstimezonebutton')
+ if(tzb) tzb.style.display = 'inline';
+}
// in [-]HH:MM format...
// won't yet work with non-even tzs
// 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_opera) pref = 'shift-esc-';
+ for(id in ta) {
+ n = document.getElementById(id);
+ if(n){
+ 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 {
+ ak = '';
+ }
+ n.title = ta[id][1]+ak;
+ }
+ }
+ }
+}