Index: branches/2.2.0.1/phpgwapi/js/x_tools/xtools.js
===================================================================
--- branches/2.2.0.1/phpgwapi/js/x_tools/xtools.js	(revision 4482)
+++ branches/2.2.0.1/phpgwapi/js/x_tools/xtools.js	(revision 4482)
@@ -0,0 +1,170 @@
+(function()
+{
+	var _FILES = [];
+
+	function _convert(pString)
+	{
+		if ( typeof pString != 'string' )
+			return false;
+
+		if ( window.ActiveXObject )
+		{
+			var _xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
+			_xmlDoc.async = "false";
+			_xmlDoc.loadXML(pString);
+		}
+		else
+		{
+			var parser = new DOMParser();
+			var _xmlDoc = parser.parseFromString( pString, "text/xml" );
+		}
+
+		return _xmlDoc;
+	}
+
+	function _load(pFile)
+	{
+                if( pFile.indexOf("/") == -1 )
+                    pFile = this._PATH + 'xsl/' + pFile;
+                
+		if ( !(_FILES[pFile]) )
+		{
+			var _data = null;
+			
+			if ( document.implementation.createDocument )
+			{
+				var xmlHttp = new window.XMLHttpRequest();
+					xmlHttp.open("GET",pFile + '?' + Date.parse(new Date),false );
+					xmlHttp.send(null);
+				
+				_data = xmlHttp.responseXML.documentElement;
+			}
+			else
+			{
+				_data = new ActiveXObject( "Msxml2.FreeThreadedDOMDocument" );
+				_data.async = false;
+				_data.load( pFile + '?' + Date.parse(new Date) );
+			}
+
+			_FILES[pFile] = _data;
+		}
+		return _FILES[pFile];
+	}
+
+	function _parse()
+	{
+		if ( arguments.length == 1 )
+		{
+			pXML = _xml('root');
+			pXSL = arguments[0];
+		}
+		else
+		{
+			pXML = arguments[0];
+			pXSL = arguments[1];
+		}
+		
+		switch ( typeof pXML )
+		{
+			case 'object' :
+			break;
+			case 'string' :
+				if ( pXML.indexOf('<') == 0 )
+					pXML = _convert(pXML);
+				else
+					pXML = _load.call(this, pXML);
+			break;
+			default :
+				return { 'error' : 'invalid xml' } 
+		}
+		
+		switch ( typeof pXSL )
+		{
+			case 'object' :
+			break;
+			case 'string' :
+				pXSL = _load.call(this, pXSL);
+			break;
+			default :
+				return {'error':'invalid xsl'}
+		}
+
+		var fragment = null;
+		
+		if ( window.XSLTProcessor )
+		{
+			var xslProc = new XSLTProcessor();
+			xslProc.importStylesheet(pXSL);
+
+			if ( (arguments.length == 3) && (typeof arguments[2] == 'object') )
+			{
+				var params = arguments[2];
+				for (var i in params )
+					if ( params[ i ] && params[ i ].constructor != Function )
+						xslProc.setParameter(null, String( i ), String( params[i] ) );
+			}
+
+			fragment = xslProc.transformToFragment(pXML, document);
+
+			// para retornar valor igual ao ie.
+			var aux = document.createElement("div");
+			aux.appendChild(fragment);
+			fragment = aux.innerHTML;
+		}
+		else
+		{
+			var xslTemplate = new ActiveXObject("MSXML2.XSLTemplate");
+			xslTemplate.stylesheet = pXSL;
+
+			var xslProc = xslTemplate.createProcessor();
+			xslProc.input = pXML;
+
+			if ( (arguments.length == 3) && (typeof arguments[2] == 'object') )
+			{
+				var params = arguments[2];
+				for (var i in params )
+					if ( params[ i ] && params[ i ].constructor != Function )
+					{
+						xslProc.addParameter( String( i ), String( params[i] ), '');
+					}
+			}
+
+			xslProc.transform();
+			fragment = xslProc.output;
+		}
+		return fragment;
+	}
+
+	function _xml()
+	{
+		var a = false;
+		if ( document.implementation.createDocument )
+			a = document.implementation.createDocument("", "", null);
+		else if ( ActiveXObject )
+			a = new ActiveXObject("Msxml2.DOMDocument");
+
+		if ( arguments.length == 1 && typeof arguments[0] == 'string' )
+			a.appendChild(a.createElement(arguments[0]));
+		//with ( a )
+		//	appendChild(createProcessingInstruction("xml", "version='1.0'"));
+
+		return a;
+	}
+
+	function xtools()
+	{
+		var _argv = arguments;
+		this._PATH = ( _argv.length > 0 ) ? _argv[0] : '';
+
+		if ( this._PATH != '' && this._PATH.lastIndexOf('/') != (this._PATH.length - 1) )
+			this._PATH += '/';
+	}
+
+	xtools.prototype.convert	= _convert;
+	xtools.prototype.load		= _load;
+	xtools.prototype.parse		= _parse;
+	xtools.prototype.xml		= _xml;
+	
+	window.xtools = xtools;
+}
+)();
Index: branches/2.2.0.1/phpgwapi/templates/default/xsl/navigatorCompatible.xsl
===================================================================
--- branches/2.2.0.1/phpgwapi/templates/default/xsl/navigatorCompatible.xsl	(revision 4482)
+++ branches/2.2.0.1/phpgwapi/templates/default/xsl/navigatorCompatible.xsl	(revision 4482)
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+	<xsl:output method="html" omit-xml-declaration="yes"/>
+
+	<xsl:param name="path" />
+
+	<xsl:template match="navigator">
+
+
+		<div style="font:9pt; margin:2px 5px 2px 5px; text-align:justify;">
+			<p>
+			Seu navegador Ã© <span style="color:red;font-weight: bold;">incompatÃ­vel</span> 
+			com o serviÃ§o de mensagem instantÃ¢nea do expresso.
+			Favor instalar ou atualizar a versÃ£o do seu navegador,
+			solicite a sua Ã¡rea de suporte local a instalaÃ§Ã£o.
+			</p>
+		</div>
+		
+		<div style="height: 285px; font:9pt; margin:0px 5px 2px 5px; text-align: justify; overflow-y:scroll;">
+			<p style="font-weight:bold;">:: Navegadores CompatÃ­veis ::</p>
+			
+			<fieldset style="margin-bottom:10px;">
+				<legend><img src="{$path}images/compatible_epiphany.png" align="middle"/><span style="margin:5px;">Epiphany</span></legend>
+				<span> VersÃ£o : 2.22 ou superior </span><br/>
+				<span> AvaliaÃ§Ã£o : <span style="color:red;font-weight:bold;">Ideal para o uso</span></span>
+			</fieldset>
+			
+			<fieldset style="margin-bottom:10px;">
+				<legend><img src="{$path}images/compatible_iceweasel.png" align="middle"/><span style="margin:5px;">Iceweasel</span></legend>
+				<span> VersÃ£o : 3.06 ou superior </span><br/>
+				<span> AvaliaÃ§Ã£o : <span style="color:red;font-weight:bold;">Ideal para o uso</span></span>
+			</fieldset>
+			
+			<fieldset style="margin-bottom:10px;">
+				<legend><img src="{$path}images/compatible_ie.gif" align="middle" /><span style="margin:5px;">Internet Explorer ( IE )</span></legend>
+				<span> VersÃ£o : 8.0 </span><br/>
+				<span> AvaliaÃ§Ã£o : Recomendado</span>
+			</fieldset>
+		
+			<fieldset>
+				<legend><img src="{$path}images/compatible_firefox.gif" align="middle"/><span style="margin:5px;">Mozilla Firefox</span></legend>
+				<span> VersÃ£o : 3.0 ou superior </span><br/>
+				<span> AvaliaÃ§Ã£o : <span style="color:red;font-weight:bold;">Ideal para o uso</span></span>
+			</fieldset>
+		</div>		
+		
+	</xsl:template>
+
+</xsl:stylesheet>
