Images in toolbar don't load first time
Hi,
I need assistance with a toolbar class that I created. The code is below.
When I mouse over and mouse out, the images act correctly and look good.
They also load correctly when I navigate away and then back to the page in
question. However, if I shut down IE and go the the page (or refresh the
page), most of the images won't show up.
Any help is appreciated.
Thanks,
John
function CToolbar(strParent)
{
var _self=this;
var _strParentElementID = strParent;
var _aButtons = new Array();
this.addButton = function(newButton)
{
newButton.setToolbar(this);
_aButtons.push(newButton);
}
this.addDivider = function()
{
var newDivider= new CDivider();
_aButtons.push(newDivider);
}
this.initializeToolbar = function()
{
var parentElement = document.getElementById(_strParentElementID);
for (buttonIdx in _aButtons)
{
_aButtons[buttonIdx].appendImg(parentElement);
_aButtons[buttonIdx].initializeButton();
}
}
this.resetGroup = function(strGroupName)
{
for (buttonIdx in _aButtons)
{
_aButtons[buttonIdx].resetByGroup(strGroupName);
}
}
}
function CDivider()
{
var _imgDivider = new Image();
_imgDivider.src="./images/divider.gif";
this.getImgNode = function()
{
var newImg = document.createElement("img");
newImg.src = _imgDivider.src;
newImg.style.verticalAlign = "middle";
return newImg;
}
this.initializeButton = function()
{
}
this.resetByGroup = function(strGroupName)
{
}
this.appendImg = function(parentElement)
{
parentElement.appendChild(this.getImgNode());
}
}
function CButton(strName,
strDefaultSrc,
strMouseOverSrc,
strMouseDownSrc,
strPressedSrc,
strPressFunction,
strUnpressFunction)
{
var _self = this;
var _toolbar = "";
var _strName = strName;
var _state = "eUnpressed";
var _strOpposedGroup = "";
var _bIsSticky = "TRUE";
if (strUnpressFunction=="") _bIsSticky = "FALSE";
var _imgDefault = new Image();
_imgDefault.src=strDefaultSrc;
var _imgMouseOver = new Image();
_imgMouseOver.src=strMouseOverSrc;
var _imgMouseDown = new Image();
_imgMouseDown.src=strMouseDownSrc;
var _imgPressed = new Image();
_imgPressed.src = strPressedSrc;
var _pressCall = new Function(strPressFunction + "()");
var _unpressCall = "";
if (strUnpressFunction!="") _unpressCall = new Function(strUnpressFunction
+ "()");
this.mouseDown = function()
{
var currentImage = document.getElementById(_strName);
// Set image
currentImage.src=_imgMouseDown.src;
}
this.mouseUp = function()
{
// Detemine state
var currentImage = document.getElementById(_strName);
if (_bIsSticky == "TRUE")
{
if(_state!="ePressed")
{
if (_strOpposedGroup != "")
{
_toolbar.resetGroup(_strOpposedGroup);
}
currentImage.src=_imgPressed.src;
_state = "ePressed";
_pressCall();
}
else
{
if (_strOpposedGroup == "")
{
currentImage.src=_imgMouseOver.src;
_state = "eUnpressed";
_unpressCall();
}
}
}
else
{
currentImage.src=_imgMouseOver.src;
_pressCall();
}
}
this.mouseOver = function mouseOver ()
{
var currentImage = document.getElementById(_strName);
if (currentImage.src!=_imgPressed.src) currentImage.src=_imgMouseOver.src;
}
this.mouseOut = function()
{
var currentImage = document.getElementById(_strName);
if (currentImage.src!=_imgPressed.src) currentImage.src=_imgDefault.src;
}
this.getName = function()
{
return _strName;
}
this.getDefaultImageSrc = function()
{
return _imgDefault.src;
}
this.initializeButton = function()
{
var currentImage = document.getElementById(this.getName());
currentImage.src =this.getDefaultImageSrc();
currentImage.onmouseout = this.mouseOut;
currentImage.onmouseover = this.mouseOver;
currentImage.onmousedown = this.mouseDown;
currentImage.onmouseup = this.mouseUp;
}
this.getImgNode = function()
{
var newImg = document.createElement("img");
newImg.id=this.getName();
newImg.style.verticalAlign = "middle";
return newImg;
}
this.appendImg = function(parentElement)
{
//_toolbar = toolbar;
parentElement.appendChild(this.getImgNode());
}
this.setToolbar = function(toolbar)
{
_toolbar = toolbar;
}
this.setOpposedGroup = function(strGroupName)
{
_strOpposedGroup = strGroupName;
}
this.resetByGroup = function(strGroupName)
{
if (strGroupName == _strOpposedGroup && _state == "ePressed")
{
var currentImage = document.getElementById(_strName);
currentImage.src=_imgDefault.src;
_state = "eUnpressed";
_unpressCall();
}
}
this.setOpposedGroup = function(strGroupName)
{
_strOpposedGroup = strGroupName;
}
}
} |