Yeah, we know what's happening, we just don't know why it's happening. We had planned a forum update for this weekend but we're delaying that a few days due to our designer not finishing the coding. In the mean time we keep trying fixes but can't recreate the problem with consistency.
I did a little more digging and think I may have found the source of your menu script (white space) problem, or at least part of it. As far as I can tell, the error is occurring on the following line of the script block quoted below.
this.controlobj = fetch_object(this.controlkey);
After locating and examining the fetch_object() function, it appears as if the problem is with the way the function is called. If the this.controlkey object is null, then the fetch_object() function will always return null, thus causing the menu script to fail. Adding a try...catch statement to handle the error should solve the problem, if I am correct.
Code:
[b]From: [url]http://www.tractorbynet.com/forums/clientscript/vbulletin_menu.js?v=372[/url][/b]
vB_Popup_Menu.prototype.init_control = function (A) {
this.controlobj = fetch_object(this.controlkey);
this.controlobj.state = false;
if (this.controlobj.firstChild && (this.controlobj.firstChild.tagName == "TEXTAREA" || this.controlobj.firstChild.tagName == "INPUT")) {} else {
if (!A && !(is_mac && is_ie)) {
var C = document.createTextNode(" ");
this.controlobj.appendChild(C);
var B = document.createElement("img");
B.src = this.imgsrc;
B.border = 0;
B.title = "";
B.alt = "";
this.img = this.controlobj.appendChild(B)
}
this.controlobj.unselectable = true;
if (!A) {
this.controlobj.style.cursor = pointer_cursor
}
this.controlobj.onclick = vB_Popup_Events.prototype.controlobj_onclick;
this.controlobj.onmouseover = vB_Popup_Events.prototype.controlobj_onmouseover
}
};
Code:
[b]From: [url]http://www.tractorbynet.com/forums/clientscript/vbulletin_global.js?v=372[/url][/b]
function fetch_object(A) {
if (document.getElementById) {
return document.getElementById(A)
} else {
if (document.all) {
return document.all[A]
} else {
if (document.layers) {
return document.layers[A]
} else {
return null
}
}
}
}