User:The Goblin/monobook.js

From Homestar Runner Wiki

< User:The Goblin
Revision as of 04:32, 13 December 2007 by The Goblin (Talk | contribs)
Jump to: navigation, search

Note: After saving, you may have to bypass your browser's cache to see the changes.

  • Mozilla / Firefox: hold down Shift while clicking Reload, or press Ctrl-Shift-R (Cmd-Shift-R on Apple Mac)
  • Safari: press Cmd-Option-E
  • IE: hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Konqueror: simply click the Reload button, or press F5
  • Opera users may need to completely clear their cache in Tools→Preferences.
 // include utility functions
 document.write('<script type="text/javascript" src="/index.php?title=User:Phlip/utilities.js&amp;action=raw&amp;ctype=text/javascript&amp;dontcountme=s"></script>');
 // include sandbox reset button
 document.write('<script type="text/javascript" src="/index.php?title=User:The_Goblin/sandreset.js&amp;action=raw&amp;ctype=text/javascript&amp;dontcountme=s"></script>');

 function addValidatorLink()
 {
   utilities.addMonobookTab("http://validator.w3.org/check?uri=" + escape(utilities.getArticleURL()), "Validate", true)
   utilities.addMonobookTab("http://www.hrwiki.org/index.php?title=" + utilities.getArticleFullTitle() + "&action=edit&section=0", "0", true)
   utilities.addMonobookTab("http://www.hrwiki.org/index.php?title=" + utilities.getArticleFullTitle() + "&action=purge", "purge", true)
   utilities.addMonobookNavboxLink(utilities.localurl("Category:HRWiki Maintenance"), "HRW Maintenance")
   utilities.addMonobookNavboxLink(utilities.localurl("User:Techgeekmbg/monobook.js"), "Javascript", "tb")
   utilities.addMonobookNavboxLink("http://www.hrwiki.org" + utilities.localurl(utilities.getArticleTitle(), utilities.getArticleNamespace()) + "?action=edit&section=new&preload=User:The_Goblin/welcome&editintro=User:The_Goblin/editintro&create=Welcome", "Welcome User", "tb")
 }
 addOnloadHook(addValidatorLink);

 function addSnow()
 {
   // Set the number of snowflakes (more than 30 - 40 not recommended)
   var snowmax=30
   
   // Set the colors for the snow. Add as many colors as you like
   var snowcolor=new Array("#AAAACC","#DDDDFF","#CCCCDD","#F3F3F3","#F0FFFF","#DCDCDC")
   
   // Set the fonts, that create the snowflakes. Add as many fonts as you like
   var snowtype=new Array("Arial Black","Arial Narrow","Times","Comic Sans MS","Verdana")
   
   // Set the letter that creates your snowflake (recommended: * )
   var snowletter="*"
   
   // Set the speed of sinking (recommended values range from 0.3 to 2)
   var sinkspeed=2
   
   // Set the maximum-size of your snowflakes
   var snowmaxsize=10
   
   // Set the minimal-size of your snowflakes
   var snowminsize=0
   
   // Set the snowing-zone
   // Set 1 for all-over-snowing, set 2 for left-side-snowing
   // Set 3 for center-snowing, set 4 for right-side-snowing
   var snowingzone=1
   
   /*
   // * NO CONFIGURATION BELOW HERE *
   */
   
   // Do not edit below this line
   var snow=new Array()
   var marginbottom
   var marginright
   var timer
   var i_snow=0
   var x_mv=new Array();
   var crds=new Array();
   var lftrght=new Array();
   var browserinfos=navigator.userAgent
   var ie5=document.all&&document.getElementById&&!browserinfos.match(/Opera/)
   var ns6=document.getElementById&&!document.all
   var opera=browserinfos.match(/Opera/)
   var browserok=ie5||ns6||opera
   
   function randommaker(range) {
   rand=Math.floor(range*Math.random())
   return rand
   }

   function initsnow() {
   if (ie5 || opera) {
   marginbottom = document.body.clientHeight
   marginright = document.body.clientWidth
   }
   else if (ns6) {
   marginbottom = window.innerHeight
   marginright = window.innerWidth
   }
   var snowsizerange=snowmaxsize-snowminsize
   for (i=0;i<=snowmax;i++) {
   crds[i] = 0;
   lftrght[i] = Math.random()*15;
   x_mv[i] = 0.03 + Math.random()/10;
   snow[i]=document.getElementById("s"+i)
   snow[i].style.fontFamily=snowtype[randommaker(snowtype.length)]
   snow[i].size=randommaker(snowsizerange)+snowminsize
   snow[i].style.fontSize=snow[i].size
   snow[i].style.color=snowcolor[randommaker(snowcolor.length)]
   snow[i].sink=sinkspeed*snow[i].size/5
   if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)}
   if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)}
   if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4}
   if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2}
   snow[i].posy=randommaker(2*marginbottom-marginbottom-2*snow[i].size)
   snow[i].style.left=snow[i].posx
   snow[i].style.top=snow[i].posy
   }
   movesnow()
   }
   
   function movesnow() {
   for (i=0;i<=snowmax;i++) {
   crds[i] += x_mv[i];
   snow[i].posy+=snow[i].sink
   snow[i].style.left=snow[i].posx+lftrght[i]*Math.sin(crds[i]);
   snow[i].style.top=snow[i].posy
   
   if (snow[i].posy>=marginbottom-2*snow[i].size || parseInt(snow[i].style.left)>(marginright-3*lftrght[i])){
   if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)}
   if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)}
   if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4}
   if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2}
   snow[i].posy=0
   }
   }
   var timer=setTimeout("movesnow()",50)
   }
   
   for (i=0;i<=snowmax;i++) {
   document.write("<span id='s"+i+"' style='position:absolute;top:-"+snowmaxsize+"'>"+snowletter+"</span>")
   }
   if (browserok) {
   window.onload=initsnow
   }
 }
 addOnloadHook(addSnow);