Index: branches/2.2/phpgwapi/js/browser/browserDetect.js
===================================================================
--- branches/2.2/phpgwapi/js/browser/browserDetect.js	(revision 4423)
+++ branches/2.2/phpgwapi/js/browser/browserDetect.js	(revision 4532)
@@ -15,7 +15,7 @@
             is_major = parseInt(is_minor);
         }
-
+        
         //Konqueror
-
+       
         var is_konq = false;
         var kqPos   = agt.indexOf('konqueror');
@@ -54,4 +54,5 @@
             // Chrome	
             ['chrome8', ( agt.indexOf('chrome/8') != -1 ) ],
+            ['chrome11', ( agt.indexOf('chrome/11') != -1 ) ],
 
             // EPIPHANY	
@@ -95,5 +96,5 @@
 
             // IS SAFARI/KHTML
-            ['safari', ((agt.indexOf('safari')!=-1) && (agt.indexOf('mac')!=-1)) ],
+            ['safari', ( agt.indexOf('safari') != -1 ) ],
             ['khtml', is_khtml ]
         ];
Index: branches/2.2/phpgwapi/js/x_tools/xtools.js
===================================================================
--- branches/2.2/phpgwapi/js/x_tools/xtools.js	(revision 4434)
+++ branches/2.2/phpgwapi/js/x_tools/xtools.js	(revision 4532)
@@ -17,5 +17,5 @@
 		{
 			var parser = new DOMParser();
-			var _xmlDoc = parser.parseFromString( pString, "text/xml" );
+			var _xmlDoc = parser.parseFromString(pString, "text/xml");
 		}
 
@@ -31,20 +31,28 @@
 		{
 			var _data = null;
-			
-			if ( document.implementation.createDocument )
+			if ( document.implementation && document.implementation.createDocument )
 			{
-				var xmlHttp = new window.XMLHttpRequest();
-					xmlHttp.open("GET",pFile + '?' + Date.parse(new Date),false );
-					xmlHttp.send(null);
-				
-				_data = xmlHttp.responseXML.documentElement;
+				XMLDocument.prototype.load = function(filePath)
+				{
+					var xmlhttp = new XMLHttpRequest();
+					xmlhttp.open("GET", filePath, false);
+					xmlhttp.setRequestHeader("Content-Type","text/xml");
+					xmlhttp.send(null);
+					var newDOM = xmlhttp.responseXML;
+					if( newDOM )
+					{
+						var newElt = this.importNode(newDOM.documentElement, true);
+						this.appendChild(newElt);
+						return true;
+					}
+				}
+
+				_data = document.implementation.createDocument("", "", null);
 			}
 			else
-			{
-				_data = new ActiveXObject( "Msxml2.FreeThreadedDOMDocument" );
-				_data.async = false;
-				_data.load( pFile + '?' + Date.parse(new Date) );
-			}
+				_data = new ActiveXObject("Msxml2.FreeThreadedDOMDocument");
 
+			_data.async = false;
+			_data.load( pFile + '?' + Date.parse(new Date));
 			_FILES[pFile] = _data;
 		}
@@ -64,5 +72,4 @@
 			pXSL = arguments[1];
 		}
-		
 		switch ( typeof pXML )
 		{
@@ -76,7 +83,6 @@
 			break;
 			default :
-				return { 'error' : 'invalid xml' } 
+				return {'error':'invalid xml'}
 		}
-		
 		switch ( typeof pXSL )
 		{
@@ -91,5 +97,4 @@
 
 		var fragment = null;
-		
 		if ( window.XSLTProcessor )
 		{
@@ -101,13 +106,11 @@
 				var params = arguments[2];
 				for (var i in params )
-					if ( params[ i ] && params[ i ].constructor != Function )
-						xslProc.setParameter(null, String( i ), String( params[i] ) );
+					 xslProc.setParameter(null, i, params[i]);
 			}
 
 			fragment = xslProc.transformToFragment(pXML, document);
 
-			// para retornar valor igual ao ie.
 			var aux = document.createElement("div");
-			aux.appendChild(fragment);
+			aux.appendChild( fragment );
 			fragment = aux.innerHTML;
 		}
@@ -124,8 +127,5 @@
 				var params = arguments[2];
 				for (var i in params )
-					if ( params[ i ] && params[ i ].constructor != Function )
-					{
-						xslProc.addParameter( String( i ), String( params[i] ), '');
-					}
+					 xslProc.addParameter(i, params[i], '');
 			}
 
@@ -155,11 +155,11 @@
 	{
 		var _argv = arguments;
-		this._PATH = ( _argv.length > 0 ) ? _argv[0] : '';
-
+		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.convert	= _convert;
 	xtools.prototype.load		= _load;
 	xtools.prototype.parse		= _parse;
