docs: function(message, width, close, icon)
  	{
  		var div = document.createElement('div');
  		div.style.padding = '20px';
  
  		var img = document.createElement('img');
  		img.setAttribute('src', icon || mxUtils.errorImage);
  		img.setAttribute('valign', 'bottom');
  		img.style.verticalAlign = 'middle';
  		div.appendChild(img);
  
  		div.appendChild(document.createTextNode('\u00a0')); // &nbsp;
  		div.appendChild(document.createTextNode('\u00a0')); // &nbsp;
  		div.appendChild(document.createTextNode('\u00a0')); // &nbsp;
  		mxUtils.write(div, message);
  
  		var w = document.body.clientWidth;
  		var h = (document.body.clientHeight || document.documentElement.clientHeight);
  		var warn = new mxWindow(mxResources.get(mxUtils.errorResource) ||
  			mxUtils.errorResource, div, (w-width)/2, h/4, width, null,
  			false, true);
  
  		if (close)
  		{
  			mxUtils.br(div);
  			
  			var tmp = document.createElement('p');
  			var button = document.createElement('button');
  
  			if (mxClient.IS_IE)
  			{
  				button.style.cssText = 'float:right';
  			}
  			else
  			{
  				button.setAttribute('style', 'float:right');
  			}
  
  			mxEvent.addListener(button, 'click', function(evt)
  			{
  				warn.destroy();
  			});
  
  			mxUtils.write(button, mxResources.get(mxUtils.closeResource) ||
  				mxUtils.closeResource);
  			
  			tmp.appendChild(button);
  			div.appendChild(tmp);
  			
  			mxUtils.br(div);
  			
  			warn.setClosable(true);
  		}
  		
  		warn.setVisible(true);
  		
  		return warn;
  	}