<html><head><title>Netscape/Mozilla/Firefox/IE6 tested</title>
<script language="javascript" type="text/javascript">
  function randColor(){
    var hex = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E", "F");
    var r = hex[Math.floor(Math.random()*16)];
    var g = hex[Math.floor(Math.random()*16)];
    var b = hex[Math.floor(Math.random()*16)];
	return new String("#"+r+g+b);
  }
  function blip(){
       var r = Math.floor(Math.random()*total);
       var name = "b"+r;
       document.getElementById(name).style.background = randColor();
  }
  function init(){
      var isIE = (navigator.userAgent.indexOf('MSIE')>=0);
      var width = screen.width;
      var height= screen.height;
      total = Math.floor(width/100)*Math.floor(height/100);
      for(var n=0;n<total;n++){
         var name = "b"+n;
         if(isIE)       	  	  		document.getElementById(name).attachEvent("onmousemove",blip,false);
         else     	 	                                                                                                                                                                   	      document.getElementById(name).addEventListener("mousemove",blip,false);
      }
  }
  function gotoArtcontext(){
	window.location.href='http://artcontext.org';
  }
  var total; 
  document.onclick = gotoArtcontext;
</script>
</head><body name="body" onload="init()">
<script language="javascript">
 var height= screen.height;
 var width = screen.width;
 var n = 0;
 for(var y=0;y<height;y+=100){
   for(var x=0;x<width;x+=100){
	document.write('<span id="b'+n+'" style="position:absolute;height: 100px;');
	document.write('left:'+x+'px;top:'+y+'px;width:100px;background-color:red">');
    document.write('</span>\n');
	n++;
   }
 }
</script></body></html>

Notes: notice the different use of addEventListener (Mozilla) vs. attachEvent (IE). The naming convention for the event name (onmousemove vs. mousemove) is also notable.