First off PM... thanks so much. With that error catching code, if I can't eliminate the runtime error, at least I have that.
You ask if I've used google, do you mean 'for finding out solutions'? I have been doing that endlessly for many problems I've encountered with my site over the past 6 years, with many good results. And I'm STILL googling around for this particular problem. But... as you know, googling for answeres doesn't always work (most of the time, but not always). But there is still MORE googling to be done here with these runtime errors.
After 6 years, I FINALLY remembered the validation option in Macromedia's Homesite. So I ran it yesterday. Unfortunately, it has problems with stuff like this (a snippet from my complex image-map mouseover img swap script):
The problem my validator has is that once it hits the single-quotes, it can't read and validate the rest of my page properly. It sees every character as an 'issue'. I could CUT those image maps out and then run it, but hopefully I can avoid that, as there are 22 LARGE image maps being used on the site.
<a href="" onMouseOver="document.France_TXT.src='images/France_over.png';"
<area name="FRANCE - $265" shape="poly"
OnMouseOver="mouseover3('Europe_Map_France');window.defaultStatus=''; window.status='FRANCE\''; return true"..." OnMouseOut="mouseover3('Europe_Map_Default')"
But... what really intrigues me about your reply PM, is your mention of Math.floor. I am using math.floor for both my dice rolling and my draw-card decks. What issues are there with Math.floor (I will google), but if you could help me figure out how to clean up my random code, that could solve my runtime error. However I am not using Math.ceil. Here is my random code (for 1 die):
I found this quote from another site, and from it, it would seem that math.floor is more appropriate, as my dice are images used in an array, thus the random needs to access the  placeholder in the array, right?
here's the quote:
"Random integers are often used to assign array items as values.
Math.floor(Math.random()*array.length) will return an index between 0 and the largest array index.
Math.ceil in the same expression will never return array and will occasionally return array[array.length], which is one more than the largest array item, and an error if you don't catch it.
Suit yourself, but often there is a reason one method is used instead of another"
ps. I placed your error-catch code in its own js file and linked it in the header section. Is that ok with this code?