Toolbar Image Buttons visibility.

Hello. I have a problem when creating a toolbar and hiding some buttons.



goto the string marked !!!++++++ the explanation is over there.

I also can send you a full usecase exmple if you can give me a email, where I can sent to.

Thank You.



My js file looks like.

zen_toolbar.js

=============================



var mainToolBar;

var signupToolBar;



// ==== Constants =======

var DEFAULT_TOOLBAR_HEIGHT = ‘30px’;



//menu’s ids

var FILEBOX = ‘filebox’;

var TOOLBOX = ‘toolbox’;

var SQUAWKBOX = ‘squawkbox’;

var SANDBOX = ‘sandbox’;

var FILES = ‘files’;

var RESOURCES = ‘resources’;

var MY_PROFILE = ‘my_profile’;

var GROUPS = ‘groups’;

var PORTAL = ‘portal’;

var FRIENDS = ‘friends’;

var HELP = ‘help’;

var SIGN_OUT = ‘sign_out’;



/**

* Basic toolbar creation method.

/

function createToolbar(userName) {

mainToolBar = new dhtmlXToolbarObject(document.getElementById(‘toolbar_zone’), ‘100%’, DEFAULT_TOOLBAR_HEIGHT, “User Name(in sen._toolbar.js)”);

mainToolBar.setOnClickHandler(onButtonClick);

mainToolBar.loadXML(“init_xmls/basetoolbar.xml”)

mainToolBar.setTitleText(userName)

mainToolBar.showBar();



signupToolBar = new dhtmlXToolbarObject(document.getElementById(‘sign_up_zone’), ‘100%’, DEFAULT_TOOLBAR_HEIGHT, “”);

signupToolBar.setOnClickHandler(onButtonClick);

signupToolBar.loadXML(“init_xmls/signintoolbar.xml”)

signupToolBar.showBar();



initFileBoxButtons(); // !!!++++++ Here I’m calling the method that should make some buttons invisible

// but these buttons stay visible in FF and Opera for some reason(in IE everythig forks fine). But when I run the debug mode in FF everuthing works fine.



}



/
*

* Function that catches the events whe button clicked.

/

function onButtonClick(itemId, itemValue) {

switch (itemId)

{

case FILEBOX:

initFileBoxButtons();

break;

case TOOLBOX:

initToolBoxButtons();

break;

case SQUAWKBOX:

initSquawkBoxButtons();

break;

case SANDBOX:

initSandBoxButtons();

break;

case FILES:

alert(FILES);

break;

case RESOURCES:

alert(RESOURCES);

break;

case MY_PROFILE:

alert(MY_PROFILE);

break;

case GROUPS:

alert(GROUPS);

break;

case PORTAL:

alert(PORTAL);

break;

case FRIENDS:

alert(FRIENDS);

break;

case HELP:

alert(‘Help is comming soon’);

break;

case SIGN_OUT:

document.location = “login.do?method=logout”;

break;

default:

alert(‘Nothing was found’);

}

}



/
*

* Leaves visible only buttons that correspond to filebox

/

function initFileBoxButtons() {

mainToolBar.showItem(FILES);

mainToolBar.showItem(RESOURCES);

mainToolBar.hideItem(MY_PROFILE);

mainToolBar.hideItem(GROUPS);

mainToolBar.hideItem(PORTAL);

mainToolBar.hideItem(FRIENDS);

}



/
*

* Leaves visible only buttons that correspond to toolbox

/

function initToolBoxButtons() {

mainToolBar.hideItem(FILES);

mainToolBar.hideItem(RESOURCES);

mainToolBar.showItem(MY_PROFILE);

mainToolBar.showItem(GROUPS);

mainToolBar.showItem(PORTAL);

mainToolBar.hideItem(FRIENDS);

}



/
*

* Leaves visible only buttons that correspond to squawkbox

/

function initSquawkBoxButtons() {

mainToolBar.hideItem(FILES);

mainToolBar.hideItem(RESOURCES);

mainToolBar.hideItem(MY_PROFILE);

mainToolBar.hideItem(GROUPS);

mainToolBar.hideItem(PORTAL);

mainToolBar.showItem(FRIENDS);

}



/
*

* Leaves visible only buttons that correspond to sandbox

*/

function initSandBoxButtons() {

mainToolBar.hideItem(FILES);

mainToolBar.hideItem(RESOURCES);

mainToolBar.hideItem(MY_PROFILE);

mainToolBar.hideItem(GROUPS);

mainToolBar.hideItem(PORTAL);

mainToolBar.hideItem(FRIENDS);

}





init_xmls/basetoolbar.xml

=======================================



<?xml version='1.0' encoding='iso-8859-1'?>































text.html



===============================================















    











































Data loading is async, in your case code executed when XML with configuration not loaded yet.
To resolve issue rewrite your code as

signupToolBar.loadXML(“init_xmls/signintoolbar.xml”,function(){
//code here will be called only after xml loading
initFileBoxButtons();
}) ;
signupToolBar.showBar();