Index: sandbox/expresso2.2/phpgwapi/expressoAjax/coder.js
===================================================================
--- sandbox/expresso2.2/phpgwapi/expressoAjax/coder.js	(revision 1661)
+++ sandbox/expresso2.2/phpgwapi/expressoAjax/coder.js	(revision 1662)
@@ -298,3 +298,3 @@
 	return temp.toLowerCase();
 }
-
+expresso.coder = new coder();
Index: sandbox/expresso2.2/contactcenter/inc/class.ui_data.inc.php
===================================================================
--- sandbox/expresso2.2/contactcenter/inc/class.ui_data.inc.php	(revision 1656)
+++ sandbox/expresso2.2/contactcenter/inc/class.ui_data.inc.php	(revision 1662)
@@ -105,5 +105,5 @@
 			$GLOBALS['phpgw']->template->set_file(array('index' => 'index.tpl'));
 			$GLOBALS['phpgw']->template->set_var('cc_root_dir', $GLOBALS['phpgw_info']['server']['webserver_url'].'/contactcenter/');
-
+			$GLOBALS['phpgw']->template->set_var("txt_loading",lang("Loading"));
 			/* Quick Add */
 			$GLOBALS['phpgw']->template->set_var('cc_qa_alias',lang('Alias').':');
Index: sandbox/expresso2.2/contactcenter/js/cc_tree.js
===================================================================
--- sandbox/expresso2.2/contactcenter/js/cc_tree.js	(revision 1598)
+++ sandbox/expresso2.2/contactcenter/js/cc_tree.js	(revision 1662)
@@ -37,5 +37,4 @@
 		this.afterSetCatalog = params['afterSetCatalog'];
 		this.catalog_perms = -1;
-		this.Connector = params['connector'];
 
 		/* Build the Inicial Tree */ 
@@ -72,5 +71,5 @@
 			}
 		};
-		Connector.newRequest(this.name+'catalog', CC_url+'set_catalog&catalog='+catalog, 'GET', handler);
+		expresso.connector.newRequest(this.name+'catalog', CC_url+'set_catalog&catalog='+catalog, 'GET', handler);
 	}
 	
@@ -101,5 +100,5 @@
 			
 		};
-		Connector.newRequest(this.name+'catalog', CC_url+'set_catalog&catalog='+catalog, 'GET', handler);
+		expresso.connector.newRequest(this.name+'catalog', CC_url+'set_catalog&catalog='+catalog, 'GET', handler);
 	}
 		
@@ -179,5 +178,5 @@
 		};
 		
-		Connector.newRequest(this.name+'actual', CC_url+'get_actual_catalog', 'GET', handler);
+		expresso.connector.newRequest(this.name+'actual', CC_url+'get_actual_catalog', 'GET', handler);
 	}
 
@@ -269,4 +268,4 @@
 			}
 		};
-		Connector.newRequest(this.name+'update', CC_url+'get_catalog_tree&level='+level, 'GET', handler);
-	}
+		expresso.connector.newRequest(this.name+'update', CC_url+'get_catalog_tree&level='+level, 'GET', handler);
+	}
Index: sandbox/expresso2.2/contactcenter/js/cc_search.js
===================================================================
--- sandbox/expresso2.2/contactcenter/js/cc_search.js	(revision 1598)
+++ sandbox/expresso2.2/contactcenter/js/cc_search.js	(revision 1662)
@@ -38,9 +38,6 @@
 		this.DOMresult = document.createElement('div');
 
-		this.Connector = params['Connector'];
-		this.Connector.setProgressContent(1, params['conn_1_msg']);
-		this.Connector.setProgressContent(2, params['conn_2_msg']);
-		this.Connector.setProgressContent(3, params['conn_3_msg']);
-		this.Connector.setProgressHolder(this.DOMprogHold);
+		expresso.connector.showProgressBar();
+
 
 		/* Initialization */
@@ -288,4 +285,4 @@
 		};
 
-                this.Connector.newRequest('search', CC_url+'search&data='+serialize(data), 'GET', handler);
+                expresso.connector.newRequest('search', CC_url+'search&data='+serialize(data), 'GET', handler);
 	}
Index: sandbox/expresso2.2/contactcenter/js/cc.js
===================================================================
--- sandbox/expresso2.2/contactcenter/js/cc.js	(revision 1655)
+++ sandbox/expresso2.2/contactcenter/js/cc.js	(revision 1662)
@@ -293,5 +293,5 @@
 
         };
-	Connector.newRequest('populateSharingSelect', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=get_cards_data', 'POST', handler);
+	expresso.connector.newRequest('populateSharingSelect', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=get_cards_data', 'POST', handler);
 }
 
@@ -375,5 +375,5 @@
 	};
 
-	Connector.newRequest('populateFullAddConst', CC_url+'get_contact_full_add_const', 'GET', handler);
+	expresso.connector.newRequest('populateFullAddConst', CC_url+'get_contact_full_add_const', 'GET', handler);
 }
 
@@ -398,5 +398,5 @@
 		//populateRelations(data['relations']);
 	};
-	Connector.newRequest('populateFullEdit', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=get_full_data&id=' + id + "&catalog="+catalog, 'GET', handler);
+	expresso.connector.newRequest('populateFullEdit', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=get_full_data&id=' + id + "&catalog="+catalog, 'GET', handler);
 }
 
@@ -443,7 +443,7 @@
 	ccAddGroup.clear(true);			
 	if(!shared)
-		Connector.newRequest('populateEditGroup', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=get_group&id='+id, 'GET', handler);
+		expresso.connector.newRequest('populateEditGroup', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=get_group&id='+id, 'GET', handler);
 	else
-		Connector.newRequest('populateEditGroup', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=get_group&id='+id+'&shared_from='+shared, 'GET', handler);
+		expresso.connector.newRequest('populateEditGroup', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=get_group&id='+id+'&shared_from='+shared, 'GET', handler);
 }
 
@@ -565,5 +565,5 @@
 	};
 
-	Connector.newRequest('postFullAddInfo', CC_url+'post_full_add', 'POST', handler, getFullAddData());
+	expresso.connector.newRequest('postFullAddInfo', CC_url+'post_full_add', 'POST', handler, getFullAddData());
 }
 
@@ -588,5 +588,5 @@
 		updateCards();
 	};
-	Connector.newRequest('postFullAddInfoShared', CC_url+'post_full_add_shared', 'POST', handler, getFullAddData());
+	expresso.connector.newRequest('postFullAddInfoShared', CC_url+'post_full_add_shared', 'POST', handler, getFullAddData());
 }
 
@@ -1000,5 +1000,5 @@
 	};
 
-	Connector.newRequest('populateStates', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=get_states&country='+Element('cc_addr_countries').value, 'GET', handler);
+	expresso.connector.newRequest('populateStates', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=get_states&country='+Element('cc_addr_countries').value, 'GET', handler);
 }
 
@@ -1115,5 +1115,5 @@
 	};
 
-	Connector.newRequest('populateCities', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=get_cities&'+requestStr, 'GET', handler);
+	expresso.connector.newRequest('populateCities', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=get_cities&'+requestStr, 'GET', handler);
 }
 
@@ -1793,5 +1793,5 @@
 	if(result) {
 		if(result.toLowerCase() == number)
-			Connector.newRequest('removeAllEntries', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=remove_all_entries', 'GET', handler);
+			expresso.connector.newRequest('removeAllEntries', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=remove_all_entries', 'GET', handler);
 		else
 			alert('Código Incorreto');
@@ -1829,5 +1829,5 @@
 	typeArg = (type == 'groups' ? 'group' : 'entry');
 
-	Connector.newRequest('removeEntry', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=remove_'+typeArg+'&remove=' + id, 'GET', handler);
+	expresso.connector.newRequest('removeEntry', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=remove_'+typeArg+'&remove=' + id, 'GET', handler);
 }
 
@@ -2356,5 +2356,5 @@
 	};
 
-	Connector.newRequest('setMaxCards', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=set_n_cards&ncards=' + ncards, 'GET');
+	expresso.connector.newRequest('setMaxCards', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=set_n_cards&ncards=' + ncards, 'GET');
 }
 
@@ -2675,5 +2675,5 @@
 
 	var info = "letter="+letter+"&page="+CC_actual_page+"&ids="+ids;
-	Connector.newRequest('showCards', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=get_cards_data', 'POST', handler, info);
+	expresso.connector.newRequest('showCards', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=get_cards_data', 'POST', handler, info);
 }
 
@@ -2825,5 +2825,5 @@
 	resetQuickAdd();
 
-	Connector.newRequest('quickAdd', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=quick_add', 'POST', handler, 'add='+escape(str));
+	expresso.connector.newRequest('quickAdd', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=quick_add', 'POST', handler, 'add='+escape(str));
 }
 
@@ -2839,4 +2839,4 @@
         }
 	}
-	Connector.newRequest('voip', "../../expressoMail1_2/controller.php?action=expressoMail1_2.functions.callVoipconnect&to="+phoneUser+"&typePhone="+typePhone, 'POST', handler_voip);
-	}
+	expresso.connector.newRequest('voip', "../../expressoMail1_2/controller.php?action=expressoMail1_2.functions.callVoipconnect&to="+phoneUser+"&typePhone="+typePhone, 'POST', handler_voip);
+	}
Index: sandbox/expresso2.2/contactcenter/js/ccMain.js
===================================================================
--- sandbox/expresso2.2/contactcenter/js/ccMain.js	(revision 1598)
+++ sandbox/expresso2.2/contactcenter/js/ccMain.js	(revision 1662)
@@ -1,2 +1,4 @@
+expresso.connector.buildBar();
+
 var last_id = 0;	
 
@@ -14,6 +16,5 @@
 var Main_load = function () 
 	{
-		Connector.setProgressBox(Element('cc_loading'), true);
-		Connector.setProgressHolder(Element('cc_loading_inner'));		
+		expresso.connector.showProgressBar();
 		/* Associate the Quick Add Button with the Plugin */
 					
@@ -32,5 +33,4 @@
 		search_params['conn_3_msg'] = Element('cc_loading_3').value;
 		search_params['button_text'] = Element('cc_panel_search_text').value;
-		search_params['Connector'] = Connector;
 
 		ccSearch = new ccSearchClass(search_params);
@@ -38,7 +38,6 @@
 		ccSearch.onSearchFinish = ccSearchUpdate;
 			
-		Connector.setProgressBox(Element('cc_loading'), true);
-		Connector.setProgressHolder(Element('cc_loading_inner'));
-
+		expresso.connector.showProgressBar();
+		expresso.connector.hideProgressBar();
 		try
 		{
@@ -57,5 +56,5 @@
 			}
 
-			Connector.newRequest('ViewLdap', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=get_visible_all_ldap', 'GET', ViewLdap);		
+			expresso.connector.newRequest('ViewLdap', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=get_visible_all_ldap', 'GET', ViewLdap);		
 			
 			ccTree.Connector = Connector;						
Index: sandbox/expresso2.2/contactcenter/js/ccAux.js
===================================================================
--- sandbox/expresso2.2/contactcenter/js/ccAux.js	(revision 1612)
+++ sandbox/expresso2.2/contactcenter/js/ccAux.js	(revision 1662)
@@ -57,207 +57,13 @@
 function serialize(data)
 {
-	var f = function(data)
-	{
-		var str_data;
-
-		if (data == null || 
-			(typeof(data) == 'string' && data == ''))
-		{
-			str_data = 'N;';
-		}
-
-		else switch(typeof(data))
-		{
-			case 'object':
-				var arrayCount = 0;
-
-				str_data = '';
-
-				for (i in data)
-				{
-					if (i == 'length')
-					{
-						continue;
-					}
-					
-					arrayCount++;
-					switch (typeof(i))
-					{
-						case 'number':
-							str_data += 'i:' + i + ';' + serialize(data[i]);
-							break;
-
-						case 'string':
-							str_data += 's:' + i.length + ':"' + i + '";' + serialize(data[i]);
-							break;
-
-						default:
-							showMessage(Element('cc_msg_err_serialize_data_unknown').value);
-							break;
-					}
-				}
-
-				if (!arrayCount)
-				{
-					str_data = 'N;';	
-				}
-				else
-				{
-					str_data = 'a:' + arrayCount + ':{' + str_data + '}';
-				}
-				
-				break;
-		
-			case 'string':
-				str_data = 's:' + data.length + ':"' + data + '";';
-				break;
-				
-			case 'number':
-				str_data = 'i:' + data + ';';
-				break;
-
-			case 'boolean':
-				str_data = 'b:' + (data ? '1' : '0') + ';';
-				break;
-
-			default:
-				showMessage(Element('cc_msg_err_serialize_data_unknown').value);
-				return null;
-		}
-
-		return str_data;
-	}
-
-	var sdata = f(data);
-	return sdata;
+	return expresso.connector.serialize(data);
 }
 
 function unserialize(str)
 {
-	var f = function (str)
-	{
-		switch (str.charAt(0))
-		{
-			case 'a':
-				
-				var data = new Array();
-				var n = parseInt( str.substring( str.indexOf(':')+1, str.indexOf(':',2) ) );
-				var arrayContent = str.substring(str.indexOf('{')+1, str.lastIndexOf('}'));
-			
-				for (var i = 0; i < n; i++)
-				{
-					var pos = 0;
-
-					/* Process Index */
-					var indexStr = arrayContent.substr(pos, arrayContent.indexOf(';')+1);
-					var index = unserialize(indexStr);
-					pos = arrayContent.indexOf(';', pos)+1;
-					
-					/* Process Content */
-					var part = null;
-					switch (arrayContent.charAt(pos))
-					{
-						case 'a':
-							var pos_ = matchBracket(arrayContent, arrayContent.indexOf('{', pos))+1;
-							part = arrayContent.substring(pos, pos_);
-							pos = pos_;
-							data[index] = unserialize(part);
-							break;
-					
-						case 's':
-							var pval = arrayContent.indexOf(':', pos+2);
-							var val  = parseInt(arrayContent.substring(pos+2, pval));
-							pos = pval + val + 4;
-							data[index] = arrayContent.substr(pval+2, val);
-							break;
-
-						default:
-							part = arrayContent.substring(pos, arrayContent.indexOf(';', pos)+1);
-							pos = arrayContent.indexOf(';', pos)+1;
-							data[index] = unserialize(part);
-							break;
-					}
-					arrayContent = arrayContent.substr(pos);
-				}
-				break;
-				
-			case 's':
-				var pos = str.indexOf(':', 2);
-				var val = parseInt(str.substring(2,pos));
-				var data = str.substr(pos+2, val);
-				str = str.substr(pos + 4 + val);
-				break;
-
-			case 'i':
-			case 'd':
-				var pos = str.indexOf(';');
-				var data = parseInt(str.substring(2,pos));
-				str = str.substr(pos + 1);
-				break;
-			
-			case 'N':
-				var data = null;
-				str = str.substr(str.indexOf(';') + 1);
-				break;
-
-			case 'b':
-				var data = str.charAt(2) == '1' ? true : false;
-				break;
-		}
-		
-		return data;
-	}
-
-	return f(str);
-}
-
-function matchBracket(strG, iniPosG)
-{
-	var f = function (str, iniPos)
-	{
-		var nOpen, nClose = iniPos;
-		var startIn = nClose + 1;
-
-		do
-		{
-			startIn = nClose + 1;
-			do
-			{
-				nOpen = str.indexOf( '{', startIn );
-				var escapeEndIn = str.indexOf( '";', nOpen + 1 );
-				var escapeBeginIn = str.indexOf( ':"', nOpen + 1 );
-				if ( escapeEndIn < escapeBeginIn )
-					startIn = nOpen + 1;
-			}
-			while ( escapeEndIn < escapeBeginIn );
-
-			startIn = nClose + 1;
-			do
-			{
-				nClose = str.indexOf( '}', startIn );
-				var escapeEndIn = str.indexOf( '";', nClose + 1 );
-				var escapeBeginIn = str.indexOf( ':"', nClose + 1 );
-				if ( escapeEndIn < escapeBeginIn )
-					startIn = nClose + 1;
-			}
-			while ( escapeEndIn < escapeBeginIn );
-
-			if (nOpen == -1)
-			{
-				return nClose;
-			}
-
-			if (nOpen < nClose )
-			{
-				nClose = matchBracket(str, nOpen);
-			}
-
-		} while (nOpen < nClose);
-
-		return nClose;
-	}
-
-	return f(strG, iniPosG);
-}
+	return expresso.connector.unserialize(str);
+}
+
+
 
 /***********************************************\
Index: sandbox/expresso2.2/contactcenter/js/connector.js
===================================================================
--- sandbox/expresso2.2/contactcenter/js/connector.js	(revision 2)
+++ 	(revision )
@@ -1,313 +1,0 @@
-  /***************************************************************************\
-  * eGroupWare - Contacts Center                                              *
-  * http://www.egroupware.org                                                 *
-  * Written by:                                                               *
-  *  - Raphael Derosso Pereira <raphaelpereira@users.sourceforge.net>         *
-  *  sponsored by Thyamad - http://www.thyamad.com                            *
-  * ------------------------------------------------------------------------- *
-  *  This program is free software; you can redistribute it and/or modify it  *
-  *  under the terms of the GNU General Public License as published by the    *
-  *  Free Software Foundation; either version 2 of the License, or (at your   *
-  *  option) any later version.                                               *
-  \***************************************************************************/
-
-	function cConnector()
-	{
-		/* Public Attributes */
-		this.requests = new Array();
-		this.progressContents = new Array();
-		this.visible = false;
-
-		var _this = this;
-
-		/* Private Attributes */
-		this._progressBox = null;
-		this._progressHolder = document.createElement('span');
-		this._progressBlank   = null;
-
-		this._progressHolder.style.visibility = 'hidden';
-//		this._progressHolder.style.backgroundColor = '#db7e22';
-	}
-
-	cConnector.prototype.newRequest = function (id, target, method, handler, data)
-	{
-		var _this = this;
-		
-		if (this.requests[id] && this.requests[id] != null)
-		{
-			
-			//this.requests[id].abort();
-			//delete this.requests[id];
-			//this.requests[id] = null;
-			
-			//setTimeout(function() { _this.newRequest(id, target, method, handler, data); }, 100);
-
-			return;
-		}
-
-		var oxmlhttp = null;
-		
-		try
-		{ 
-			oxmlhttp = new XMLHttpRequest();
-			oxmlhttp.overrideMimeType('text/xml');
-		}
-		catch (e)
-		{ 
-			try
-			{
-				oxmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
-			}
-			catch (e1)
-			{ 
-				try
-				{
-					oxmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
-				}
-				catch (e2)
-				{
-					oxmlhttp = null;
-				}
-			}
-		}
-		
-		if (!oxmlhttp)
-		{
-			return false;
-		}
-		
-		this.requests[id] = oxmlhttp;
-
-		var _this = this;
-		
-		var sub_handler = function ()
-		{
-			try
-			{
-				_this._setProgressState(oxmlhttp.readyState);
-				
-				if (oxmlhttp.readyState == 4 )//&& oxmlhttp.channel.status == 0)
-				{
-					switch (oxmlhttp.status)
-					{
-						case 200:
-							if (typeof(handler) == 'function')
-							{
-								handler(oxmlhttp.responseText);
-							}
-							delete _this.requests[id];
-							_this.requests[id] = null;
-							break;
-
-						case 404:
-							alert('Page Not Found!');
-							break;
-
-						default:
-							//alert('Some problem while accessing the server. The status is '+oxmlhttp.status);
-					}
-				}
-			}
-			catch (e)
-			{
-				//showMessage(e);
-			}
-		}
-
-		try
-		{ 
-			if (method == '' || method == 'GET')
-			{
-				if (typeof(handler) == 'function')
-				{
-					oxmlhttp.onreadystatechange = sub_handler;
-				}
-				oxmlhttp.open("GET",target,true);
-				oxmlhttp.send(null);
-			}
-			else if (method == 'POST')
-			{
-				if (typeof(handler) == 'function')
-				{
-					oxmlhttp.onreadystatechange = sub_handler;
-				}
-				oxmlhttp.open("POST",target, true);
-				oxmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
-				oxmlhttp.send(data);
-				//oxmlhttp.setRequestHeader('Content-Type','multipart/form-data; boundary=-----------------------------1156053686807595044986274307');
-				//oxmlhttp.setRequestHeader('Accept', 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5');
-			}
-		}
-		catch(e)
-		{ 
-			//showMessage(e);
-		}
-		
-		return true;
-	}
-
-	cConnector.prototype.cancelRequest = function (id)
-	{
-		if (!this.requests[id])
-		{
-			return false;
-		}
-
-		this.requests[id].abort();
-	}
-
-	cConnector.prototype.setProgressContent = function (state, content)
-	{
-		switch (state)
-		{
-			case 0:
-			case 'UNINITIALIZED':
-				this.progressContents[0] = content;
-				break;
-
-			case 1:
-			case 'LOADING':
-				this.progressContents[1] = content;
-				break;
-
-			case 2:
-			case 'LOADED':
-				this.progressContents[2] = content;
-				break;
-
-			case 3:
-			case 'INTERACTIVE':
-				this.progressContents[3] = content;
-				break;
-
-			case 4:
-			case 'COMPLETED':
-				this.progressContents[4] = content;
-				break;
-
-			default:
-				throw('INVALID STATE!');
-		}
-	}
-
-	cConnector.prototype.setProgressHolder = function (holder)
-	{
-		var objHolder;
-		
-		if (typeof(holder) == 'string')
-		{
-			objHolder = Element(holder);
-		}
-		else if (typeof(holder) == 'object')
-		{
-			objHolder = holder;
-		}
-		else
-		{
-			return false;
-		}
-
-		objHolder.appendChild(this._progressHolder);
-	}
-
-	cConnector.prototype.setProgressBox = function (box, auto)
-	{
-		var objBox;
-
-		if (typeof(box) == 'string')
-		{
-			objBox = Element(box);
-		}
-		else if (typeof(box) == 'object')
-		{
-			objBox = box;
-		}
-		else
-		{
-			return false;
-		}
-
-		this._progressBox = objBox;
-		this._progressBoxAuto = auto ? true : false;
-	}
-
-	cConnector.prototype.setVisible = function (visible)
-	{
-		this.visible = visible;
-		if (!visible)
-		{
-			this._progressHolder.style.visibility = 'hidden';
-		}
-	}
-
-	/****************************************************************************\
-	 *                          Private Methods                                 *
-	\****************************************************************************/
-	
-	cConnector.prototype._setProgressState = function (state)
-	{
-		switch (state)
-		{
-			case 0:
-			case 4:
-				if (this._progressBox != null)
-				{
-					this._progressBox.style.visibility = 'hidden';
-					this._progressBox.style.zIndex = '-1';
-				
-					if (is_ie && this._progressBlank)
-						this._progressBlank.style.visibility = 'hidden';
-				}
-				
-				this._progressHolder.style.visibility = 'hidden';
-				this._progressHolder.style.zIndex = '-1';
-				
-				if (is_ie && this._progressBlank)
-					this._progressBlank.style.visibility = 'hidden';
-				
-				break;
-
-			default:
-				if (this.visible && Element('cc_connector_visible').value == 'true')
-				{
-					if (this._progressBox != null)
-					{
-						if (this._progressBoxAuto)
-						{
-							if (is_ie)
-							{
-								this._progressBox.style.top = parseInt(document.body.offsetHeight)/2 + 'px';
-								this._progressBox.style.left = parseInt(document.body.offsetWidth)/2 + 'px';
-								this._progressBlank = document.getElementById('divBlank');								
-								if(! this._progressBlank ) {
-									document.body.insertAdjacentHTML("beforeEnd", '<iframe id="divBlank" src="about:blank" style="position:absolute" scrolling="no" frameborder="0"></iframe>');
-									this._progressBlank = document.getElementById('divBlank');
-									this._progressBlank.style.top = parseInt(document.body.offsetHeight)/2 + 'px';
-									this._progressBlank.style.left = parseInt(document.body.offsetWidth)/2 + 'px';
-									this._progressBlank.style.height = "36px";
-									this._progressBlank.style.width = "130px";
-								}
-							}
-							else
-							{
-								this._progressBox.style.top = parseInt(window.innerHeight)/2 + parseInt(window.pageYOffset) - this._progressBox.style.height/2 + 'px';
-								this._progressBox.style.left = parseInt(window.innerWidth)/2 + parseInt(window.pageXOffset) - this._progressBox.style.width/2 + 'px';
-							}
-						}
-						this._progressBox.style.visibility = 'visible';
-						this._progressBox.style.zIndex = '1000';
-					}
-					
-					this._progressHolder.style.visibility = 'visible';
-					this._progressHolder.style.zIndex = '1000';
-					
-					this._progressHolder.innerHTML = this.progressContents[state] ? this.progressContents[state] : '';
-
-					if(is_ie) {
-						this._progressBlank.style.visibility = 'visible';
-						this._progressBlank .style.zIndex = '999';
-					}					
-					
-				}
-		}
-	}
Index: sandbox/expresso2.2/contactcenter/templates/classic/api_common.tpl
===================================================================
--- sandbox/expresso2.2/contactcenter/templates/classic/api_common.tpl	(revision 2)
+++ sandbox/expresso2.2/contactcenter/templates/classic/api_common.tpl	(revision 1662)
@@ -29,5 +29,4 @@
 <link rel="stylesheet" type="text/css" href="{cc_dtree_css}" />
 <script type="text/javascript" src="{cc_js_aux}"></script>
-<script type="text/javascript" src="{cc_js_connector}"></script>
 <script type="text/javascript" src="{cc_js_wz_dragdrop}"></script>
 <script type="text/javascript" src="{cc_js_dtree}"></script>
@@ -43,8 +42,3 @@
 	</table>
 </div>
-
-<script type="text/javascript">
-	var Connector = new cConnector();
-	Connector.setVisible(true);
-</script>
 <!-- ContactCenter API End -->
Index: sandbox/expresso2.2/contactcenter/templates/classic/index.tpl
===================================================================
--- sandbox/expresso2.2/contactcenter/templates/classic/index.tpl	(revision 1517)
+++ sandbox/expresso2.2/contactcenter/templates/classic/index.tpl	(revision 1662)
@@ -13,4 +13,5 @@
 <script src="js/cc.js" type="text/javascript"></script>
 <!-- JS MESSAGES -->
+<input type="hidden" value="{txt_loading}" id="txt_loading">
 <input id="cc_msg_not_allowed" type="hidden" value="{cc_msg_not_allowed}">
 <input id="cc_msg_unavailable" type="hidden" value="{cc_msg_unavailable}">
Index: sandbox/expresso2.2/contactcenter/templates/default/api_common.tpl
===================================================================
--- sandbox/expresso2.2/contactcenter/templates/default/api_common.tpl	(revision 1496)
+++ sandbox/expresso2.2/contactcenter/templates/default/api_common.tpl	(revision 1662)
@@ -37,5 +37,4 @@
 </div>
 <script type="text/javascript" src="{cc_js_aux}"></script>
-<script type="text/javascript" src="{cc_js_connector}"></script>
 <script type="text/javascript" src="{cc_js_wz_dragdrop}"></script>
 <script type="text/javascript" src="{cc_js_dtree}"></script>
@@ -43,7 +42,3 @@
 <script type="text/javascript" src="{cc_js_djswin}"></script>
 <script type="text/javascript" src="{cc_js_catalog_tree}"></script>
-<script type="text/javascript">
-	var Connector = new cConnector();
-	Connector.setVisible(true);
-</script>
 <!-- ContactCenter API End -->
Index: sandbox/expresso2.2/contactcenter/templates/default/index.tpl
===================================================================
--- sandbox/expresso2.2/contactcenter/templates/default/index.tpl	(revision 1600)
+++ sandbox/expresso2.2/contactcenter/templates/default/index.tpl	(revision 1662)
@@ -13,4 +13,5 @@
 <script src="js/cc.js" type="text/javascript"></script>
 <!-- JS MESSAGES -->
+<input type="hidden" value="{txt_loading}" id="txt_loading">
 <input id="cc_msg_not_allowed" type="hidden" value="{cc_msg_not_allowed}">
 <input id="cc_msg_unavailable" type="hidden" value="{cc_msg_unavailable}">
Index: sandbox/expresso2.2/calendar/inc/class.uicalendar.inc.php
===================================================================
--- sandbox/expresso2.2/calendar/inc/class.uicalendar.inc.php	(revision 1645)
+++ sandbox/expresso2.2/calendar/inc/class.uicalendar.inc.php	(revision 1662)
@@ -5081,6 +5081,5 @@
 											'<script type="text/javascript" src="phpgwapi/js/dJSWin/dJSWin.js"></script>'.		
 											"<script src='calendar/js/edit_exmail.js' type='text/javascript'></script>" .
-											$load_lang_vars.																			
-											"<script src='".$module_name."/js/connector.js' type='text/javascript'></script>".
+											$load_lang_vars.				
 											"<script type='text/javascript'>var DEFAULT_URL = '".$module_name."/controller.php?action=';</script> ".											
 											"<script type='text/javascript'>" .
Index: sandbox/expresso2.2/calendar/js/edit_exmail.js
===================================================================
--- sandbox/expresso2.2/calendar/js/edit_exmail.js	(revision 1643)
+++ sandbox/expresso2.2/calendar/js/edit_exmail.js	(revision 1662)
@@ -217,5 +217,5 @@
 function loadScript(scriptPath){
 
-	if(!connector)
+	if(!expresso.connector)
 		throw new Error("Error : Connector is not loaded.");
 		
@@ -224,9 +224,9 @@
    	}
   	
-	connector.oxmlhttp.open("GET", scriptPath, false);
-    connector.oxmlhttp.setRequestHeader('Content-Type','text/plain');
-	connector.oxmlhttp.send(null);
-	if(connector.oxmlhttp.status != 0 && connector.oxmlhttp.status != 200 || 	connector.oxmlhttp.status == 0 && connector.oxmlhttp.responseText.length == 0)
-		throw new Error("Error " + connector.oxmlhttp.status + "("+connector.oxmlhttp.statusText+") when loading script file '"+scriptPath+"'");
+	expresso.connector.oxmlhttp.open("GET", scriptPath, false);
+    expresso.connector.oxmlhttp.setRequestHeader('Content-Type','text/plain');
+	expresso.connector.oxmlhttp.send(null);
+	if(expresso.connector.oxmlhttp.status != 0 && expresso.connector.oxmlhttp.status != 200 || 	expresso.connector.oxmlhttp.status == 0 && expresso.connector.oxmlhttp.responseText.length == 0)
+		throw new Error("Error " + expresso.connector.oxmlhttp.status + "("+expresso.connector.oxmlhttp.statusText+") when loading script file '"+scriptPath+"'");
 	
 	var head = document.getElementsByTagName("head")[0];
@@ -234,5 +234,5 @@
 	script.id = 'uploadscript_'+scriptPath;
 	script.type = 'text/javascript';		
-	script.text = connector.oxmlhttp.responseText;
+	script.text = expresso.connector.oxmlhttp.responseText;
 	head.appendChild(script);
 	return;	
Index: sandbox/expresso2.2/calendar/templates/default/delegate.tpl
===================================================================
--- sandbox/expresso2.2/calendar/templates/default/delegate.tpl	(revision 1646)
+++ sandbox/expresso2.2/calendar/templates/default/delegate.tpl	(revision 1662)
@@ -3,5 +3,4 @@
 <script src='{url_template}/../../js/edit_exmail.js' type='text/javascript'></script>
 <script src='{module_name}/inc/load_lang.php' type='text/javascript'></script>
-<script src='{module_name}/js/connector.js' type='text/javascript'></script>
 <script type='text/javascript'>var DEFAULT_URL = '{module_name}/controller.php?action=';</script> 
 <font color="#FF0000">{error_msg}</font>
Index: sandbox/expresso2.2/expressoMail1_2/js/manifest
===================================================================
--- sandbox/expresso2.2/expressoMail1_2/js/manifest	(revision 1622)
+++ sandbox/expresso2.2/expressoMail1_2/js/manifest	(revision 1662)
@@ -19,10 +19,8 @@
       { "url": "ccQuickAdd.js?1.222" },
       { "url": "color_palette.js?1.222" },
-	  { "url": "connector.js?1.222" },
 	  { "url": "common_functions.js?1.222" },
 	  { "url": "doiMenuData.js?1.222" },
 	  { "url": "drag_area.js?1.222" },
 	  { "url": "draw_api.js?1.222" },
-	  { "url": "md5.js?1.222" },
 	  { "url": "DropDownContacts.js?1.222" },
 	  { "url": "filter.js?1.222" },
Index: sandbox/expresso2.2/expressoMail1_2/js/md5.js
===================================================================
--- sandbox/expresso2.2/expressoMail1_2/js/md5.js	(revision 1335)
+++ 	(revision )
@@ -1,205 +1,0 @@
-/**
- * @author MD5 (Message-Digest Algorithm)
- * *  http://www.webtoolkit.info/
- *
- */
-var MD5 = function (string) {
- 
-	function RotateLeft(lValue, iShiftBits) {
-		return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
-	}
- 
-	function AddUnsigned(lX,lY) {
-		var lX4,lY4,lX8,lY8,lResult;
-		lX8 = (lX & 0x80000000);
-		lY8 = (lY & 0x80000000);
-		lX4 = (lX & 0x40000000);
-		lY4 = (lY & 0x40000000);
-		lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
-		if (lX4 & lY4) {
-			return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
-		}
-		if (lX4 | lY4) {
-			if (lResult & 0x40000000) {
-				return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
-			} else {
-				return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
-			}
-		} else {
-			return (lResult ^ lX8 ^ lY8);
-		}
- 	}
- 
- 	function F(x,y,z) { return (x & y) | ((~x) & z); }
- 	function G(x,y,z) { return (x & z) | (y & (~z)); }
- 	function H(x,y,z) { return (x ^ y ^ z); }
-	function I(x,y,z) { return (y ^ (x | (~z))); }
- 
-	function FF(a,b,c,d,x,s,ac) {
-		a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
-		return AddUnsigned(RotateLeft(a, s), b);
-	};
- 
-	function GG(a,b,c,d,x,s,ac) {
-		a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
-		return AddUnsigned(RotateLeft(a, s), b);
-	};
- 
-	function HH(a,b,c,d,x,s,ac) {
-		a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
-		return AddUnsigned(RotateLeft(a, s), b);
-	};
- 
-	function II(a,b,c,d,x,s,ac) {
-		a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
-		return AddUnsigned(RotateLeft(a, s), b);
-	};
- 
-	function ConvertToWordArray(string) {
-		var lWordCount;
-		var lMessageLength = string.length;
-		var lNumberOfWords_temp1=lMessageLength + 8;
-		var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
-		var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
-		var lWordArray=Array(lNumberOfWords-1);
-		var lBytePosition = 0;
-		var lByteCount = 0;
-		while ( lByteCount < lMessageLength ) {
-			lWordCount = (lByteCount-(lByteCount % 4))/4;
-			lBytePosition = (lByteCount % 4)*8;
-			lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount)<<lBytePosition));
-			lByteCount++;
-		}
-		lWordCount = (lByteCount-(lByteCount % 4))/4;
-		lBytePosition = (lByteCount % 4)*8;
-		lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
-		lWordArray[lNumberOfWords-2] = lMessageLength<<3;
-		lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
-		return lWordArray;
-	};
- 
-	function WordToHex(lValue) {
-		var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
-		for (lCount = 0;lCount<=3;lCount++) {
-			lByte = (lValue>>>(lCount*8)) & 255;
-			WordToHexValue_temp = "0" + lByte.toString(16);
-			WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
-		}
-		return WordToHexValue;
-	};
- 
-	function Utf8Encode(string) {
-		string = string.replace(/\r\n/g,"\n");
-		var utftext = "";
- 
-		for (var n = 0; n < string.length; n++) {
- 
-			var c = string.charCodeAt(n);
- 
-			if (c < 128) {
-				utftext += String.fromCharCode(c);
-			}
-			else if((c > 127) && (c < 2048)) {
-				utftext += String.fromCharCode((c >> 6) | 192);
-				utftext += String.fromCharCode((c & 63) | 128);
-			}
-			else {
-				utftext += String.fromCharCode((c >> 12) | 224);
-				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
-				utftext += String.fromCharCode((c & 63) | 128);
-			}
- 
-		}
- 
-		return utftext;
-	};
- 
-	var x=Array();
-	var k,AA,BB,CC,DD,a,b,c,d;
-	var S11=7, S12=12, S13=17, S14=22;
-	var S21=5, S22=9 , S23=14, S24=20;
-	var S31=4, S32=11, S33=16, S34=23;
-	var S41=6, S42=10, S43=15, S44=21;
- 
-	string = Utf8Encode(string);
- 
-	x = ConvertToWordArray(string);
- 
-	a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
- 
-	for (k=0;k<x.length;k+=16) {
-		AA=a; BB=b; CC=c; DD=d;
-		a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
-		d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
-		c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
-		b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
-		a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
-		d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
-		c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
-		b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
-		a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
-		d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
-		c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
-		b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
-		a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
-		d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
-		c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
-		b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
-		a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
-		d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
-		c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
-		b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
-		a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
-		d=GG(d,a,b,c,x[k+10],S22,0x2441453);
-		c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
-		b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
-		a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
-		d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
-		c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
-		b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
-		a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
-		d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
-		c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
-		b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
-		a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
-		d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
-		c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
-		b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
-		a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
-		d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
-		c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
-		b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
-		a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
-		d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
-		c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
-		b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
-		a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
-		d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
-		c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
-		b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
-		a=II(a,b,c,d,x[k+0], S41,0xF4292244);
-		d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
-		c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
-		b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
-		a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
-		d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
-		c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
-		b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
-		a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
-		d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
-		c=II(c,d,a,b,x[k+6], S43,0xA3014314);
-		b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
-		a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
-		d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
-		c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
-		b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
-		a=AddUnsigned(a,AA);
-		b=AddUnsigned(b,BB);
-		c=AddUnsigned(c,CC);
-		d=AddUnsigned(d,DD);
-	}
- 
-	var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);
- 
-	return temp.toLowerCase();
-}
