Jump to content

User:Saintrain/J1/ifWikiPage.js

From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
//<pre>
//================  deSpamWiki  ============================================================
function deSpamWiki()
{
var GBUG = false;
var  BUG = GBUG;

var SpamObj = { id:"", class:"", clsNdx:0,   act:"" };

var spamList = new Array();

/*  This example simply displays the names of all the properties of the 'drink' object.
var i;
for(i in drink)
   document.write(i + "<BR>"); 
 window.menubar.xxx
 window.personalbar.xxx
 window.status(= "message")
 window.statusbar.xxx
 window.alert("message")
 window.setInterval(expression/function, milliseconds)
 window.prompt(message[, defaultInput])

 object.toGMTString( )
 object.toLocaleString( )
 object.toUTCString( )
 object.toString([radix])  

 object.indexOf(searchValue,[fromIndex])  // returns the index of the first occurance of the specified searchValue argument, starting from the specified fromIndex argument. 
 object.lastIndexOf(searchValue,[fromIndex])  // returns the index of the last occurrence

 Object.watch(property, handlerfunction) 

 navigator.appCodeName  .appName  .userAgent  .preference(prefName[, setValue]) 


/* */

var sndx  = 0;
spamList[sndx] = SpamObj = { id : "newarticletext",         act : "delete node" };  sndx++;
spamList[sndx] = SpamObj = { id : "userinvalidcssjstitle",  act : "delete node" };  sndx++;
spamList[sndx] = SpamObj = { id : "editpage-copywarn",      act : "delete node" };  sndx++;
spamList[sndx] = SpamObj = { id : "editpage-copywarn2",     act : "delete node" };  sndx++;
spamList[sndx] = SpamObj = { id : "editpage-copywarn3",     act : "delete node" };  sndx++;
spamList[sndx] = SpamObj = { id : "editpage-specialchars",  act : "hide node" };    sndx++;
spamList[sndx] = SpamObj = { id : "talkpagetext",           act : "delete node" };  sndx++;
spamList[sndx] = SpamObj = { id : "talkpagetext",           act : "delete node" };  sndx++;

for(var s=0; s<spamList.length; s++) {
  if(BUG)console.log('dSW: spamList[',s,'].id={',spamList[s].id,'}  .class={',spamList[s].class,'}  .act={',spamList[s].act,'} ');
  var spamStr;
  with( spamList[s] ) {
    if( "" != id ) {
      spamStr = id;
      var spam = document.getElementById( id );
      }
     else if( "" != class ) {
      spamStr = class;
      var hits = document.getElementsByClass( class, null, null );
      if( hits )
        var spam = hits[clsNdx];  // this is silly!  just use 1st.
      }
     else { if(BUG)console.log('dSW: spamList[s][',s,'].id == .class == "" '); continue; }

    if ( !spam ) { if(BUG)console.log('dSW: NO FIND spam={',spamStr,'}' ); continue; }

    switch( act ) {
      case "delete node":  //==========  "delete node"  =======================================
        if( !GBUG ) BUG = false;
        var spamMom = spam.parentNode;
        if ( !spamMom ) { if(BUG)console.log('dSW: NO FIND spam={',spamStr,'}.parentNode' ); continue; }
        spamMom.removeChild( spam );
        spam = null;
        break;

      case "hide node":  //==========  "hide node"  =======================================
        if( !GBUG ) BUG = false;
        var spamMom = spam.parentNode;
        if ( !spamMom ) { if(BUG)console.log('dSW: NO FIND spam={',spamStr,'}.parentNode' ); continue; }
  
        var hndx = 666 + s;  // bump index so as not to interfere with "legit" navframe stuff
  
        var NavFrame = document.createElement("div");
        NavFrame.setAttribute('id', 'NavFrame' + hndx );
        NavFrame.className = 'NavFrame';
        spamMom.insertBefore( NavFrame, spam );
  
        var NavHead = document.createElement( "div" );
        NavHead.textContent = spamStr;
        NavHead.className = 'NavHead';
        NavFrame.appendChild( NavHead );
  
        var NavToggle = document.createElement("a");
        NavHead.appendChild( NavToggle );
        NavToggle.className = 'NavToggle';
        NavToggle.setAttribute('id', 'NavToggle' + hndx );
        NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + hndx + ');');
        NavToggle.textContent = "[hide]";
  
        spam.id = "NavFrame" + hndx;
        spam.className += " NavContent";
        NavFrame.appendChild( spam );  // re-parents "spam"
  
        toggleNavigationBar( hndx );
        break;
  

      case "delete last kids":  //==========  "delete last kids"  =======================================
        if( !GBUG ) BUG = false;
        if( ! spam.hasChildNodes()) { if(BUG)console.log('dSW: NO FIND spam={',spamStr,'}.hasChildNodes()' ); continue; }
        var c0 = spam.firstChild;
          if(BUG)console.log('dSW: LEAVING: tagName={',c0.tagName,'}, name={',c0.name,'}, kid=',c0 );
          if(BUG)console.log('  innerHTML={',c0.innerHTML,'}' );
        while( 1 < spam.childNodes.length ) {
        var lc = spam.lastChild;
          if(BUG)console.log('dSW: removing: tagName={',lc.tagName,'}, name={',lc.name,'}, kid=',lc );
          if(BUG)console.log('  innerHTML={',lc.innerHTML,'}' );
          spam.removeChild( spam.lastChild ); 
          if(BUG)console.log(' ');
          }
        break;
  
      case "delete last tags":  //==========  "delete last tags"  =======================================
        if( !GBUG ) BUG = false;      
        if( ! spam.hasChildNodes()) { if(BUG)console.log('dSW: NO FIND spam={',spamStr,'}.hasChildNodes()' ); continue; }
        var it0 = -1;
        for(k=0; k<spam.childNodes.length; k++) {
          if( spam.childNodes[k].tagName ) {  // 1st tag
            it0 = k + 1; 
            break;
            }
          }
        if( it0 < 0 )  // no tags
          break;
        var tag0 = spam.childNodes[it0];
          if(BUG)console.log('dSW: LEAVING: tagName={',tag0.tagName,'}, name={',tag0.name,'}, kid=',tag0 );
          if(BUG)console.log('  innerHTML={',tag0.innerHTML,'}' );
        while( it0 < spam.childNodes.length ) {
          var lc = spam.lastChild;
            if(BUG)console.log('dSW: removing: tagName={',lc.tagName,'}, name={',lc.name,'}, kid=',lc );
            if(BUG)console.log('  innerHTML={',lc.innerHTML,'}' );
          spam.removeChild( spam.lastChild ); 
            if(BUG)console.log(' ');
          }
        break;
  
      default:
        if(BUG)console.log('dSW: UNKNOWN act[',s,'] = {',act,'}.' ); 
        continue; 
      }  // switch
    }  // with( spam )
  BUG = GBUG;
  }  // for(s)
}
//============================================================================
addOnloadHook( deSpamWiki);



//</pre>