SIX.Tool.ToolbarLogo = function (toolbar, sImage, sToolTip, params) 
{
	if (arguments.length < 3)
		var sToolTip = "";
	SIX.Tool.call(this, toolbar, SIX.eToolTypes.NONE, sImage, sToolTip, params);
	this.setClass("toolbarLogo");

	var data = {logo : this, toolbar : toolbar};
	toolbar.addCallback(SIX.eToolbarCallbacks.ONRESIZE, 
				function (data) {
					var toolbar = data.toolbar;
					var logo = data.logo;
					var elemToolbar = document.getElementById(toolbar.toolbarUid);
					var elemLogo = document.getElementById(logo.containerUid);
					elemLogo.style.visibility = "hidden";
					elemLogo.style.display = "block";
					
					var nLogoLeft = SIX.Util.findPosX(elemLogo);
					var nLogoRight = nLogoLeft + elemLogo.offsetWidth;
	
					var bLogoVisible = true;
					for (var i=0; i<logo.toolGroup.aTools.length; i++)
					{
						var tool = logo.toolGroup.aTools[i];
						if (logo != tool && tool.bVisible)
						{
							var elemTool = document.getElementById(tool.containerUid);
							if (elemTool)
							{
								var nToolLeft = SIX.Util.findPosX(elemTool);
								var nToolRight = nToolLeft + elemTool.offsetWidth;
								if ((nToolLeft > nLogoLeft && nToolLeft < nLogoRight) ||
									(nToolRight > nLogoLeft && nToolRight < nLogoRight))
								{
									bLogoVisible = false;
									break;
								}
							}
						}
					}
					elemLogo.style.display = bLogoVisible ? "block" : "none";
					elemLogo.style.visibility = bLogoVisible ? "visible" : "hidden";
				}, data);	
}
SIX.Util.extend(SIX.Tool.ToolbarLogo, SIX.Tool);
