Index: trunk/expressoAdmin1_2/js/jscode/managers.js
===================================================================
--- trunk/expressoAdmin1_2/js/jscode/managers.js	(revision 317)
+++ trunk/expressoAdmin1_2/js/jscode/managers.js	(revision 414)
@@ -2,5 +2,5 @@
 function copy_manager(manager)
 {
-	if (!(new_manager = prompt("Digite o login do novo gerente:","")))
+	if (!(new_manager = prompt(get_lang('Type new managers login') + ':',"")))
 	{
 		return;
@@ -12,5 +12,5 @@
 			location.reload();
 		else
-			alert('Erro ao copiar gerente.');
+			alert(get_lang('Error at copy manager') + '.');
 	}
 	cExecute ('$this.db_functions.copy_manager&manager='+manager+'&new_manager='+new_manager, handler_copy_manager);
Index: trunk/expressoAdmin1_2/js/jscode/groups.js
===================================================================
--- trunk/expressoAdmin1_2/js/jscode/groups.js	(revision 309)
+++ trunk/expressoAdmin1_2/js/jscode/groups.js	(revision 414)
@@ -7,10 +7,10 @@
 	
 	if (document.forms[0].cn.value == ''){
-		alert('Campo NOME do grupo está vazio.');
+		alert(get_lang('NAME field is empty') + '.');
 		return;
 	}
 		
 	if (document.forms[0].description.value == ''){
-		alert('Campo DESCRIÇÃO está vazio.');
+		alert(get_lang('DESCRIPTION field is empty') + '.');
 		return;
 	}
@@ -21,8 +21,8 @@
 		if ( (cn_tmp.length < 3) || ((cn_tmp[0] != 'grupo') && (cn_tmp[0] != 'smb')) ){
 			alert(
-				'O campo NOME do grupo está incompleto.\n' +
-				'O nome do grupo deve ser formado assim:\n' +
-				'grupo-ORGANIZACAO-NOME_DO_GRUPO.\n' +
-				'Ex: grupo-celepar-rh.');
+				get_lang('NAME field is incomplete') + '.\n' +
+				get_lang('the name field must be formed like') + ':\n' +
+				get_lang('group') + '-' + get_lang('organization') + '-' + get_lang('group name') + '.\n' +
+				get_lang('eg') + ': ' + 'grupo-celepar-rh.');
 			return;
 		}
@@ -33,5 +33,5 @@
 	
 	if(!reCn.test(document.forms[0].cn.value)){
-		alert('Campo NOME DO GRUPO comtém caracteres não permitidos.');
+		alert(get_lang('NAME field contains characters not allowed') + '.');
 		document.forms[0].cn.focus();
 		return;
@@ -39,5 +39,5 @@
 
 	if(!reDesc.test(document.forms[0].description.value)){
-		alert('Campo DESCRIÇÃO comtém caracteres não permitidos.');
+		alert(get_lang('DESCRIPTION field contains characters not allowed') + '.');
 		document.forms[0].description.focus();
 		return;
@@ -47,5 +47,5 @@
 	if ( (document.forms[0].email.value != '') && (!reEmail.test(document.forms[0].email.value)) )
 	{
-		alert("Campo E-mail não é válido.");
+		alert(get_lang('EMAIL field is empty') + '.');
 		return false;
 	}
@@ -90,5 +90,5 @@
 		alert(data.msg);
 	else{
-		alert('Grupo criado com êxito!');
+		alert(get_lang('Group sucess created') + '.');
 		location.href="./index.php?menuaction=expressoAdmin1_2.uigroups.list_groups";
 	}
@@ -107,5 +107,5 @@
 		alert(data.msg);
 	else{
-		alert('Grupo salvo com êxito!!');
+		alert(get_lang('Group sucess saved') + '.');
 		location.href="./index.php?menuaction=expressoAdmin1_2.uigroups.list_groups";
 	}
@@ -156,5 +156,5 @@
 	if ((recursive) && (document.forms[0].ldap_context.value == document.getElementById('ea_combo_org_groups').value))
 	{
-		alert('Nao é possível selecionar todos os usuários da organização raiz.')
+		alert(get_lang('It is not allow select all users from the root organization') + '.');
 		document.getElementById('ea_check_allUsers').checked = false;
 
@@ -241,5 +241,5 @@
 	clearTimeout(finderTimeout);	
 	var oWait = document.getElementById("ea_span_searching");
-	oWait.innerHTML = 'Buscando...';
+	oWait.innerHTML = get_lang('Searching') + '...';
 	var finderTimeout = setTimeout("optionFinder('"+obj.id+"')",500);
 }
@@ -270,5 +270,5 @@
 function delete_group(cn, gidnumber)
 {
-	if (confirm("Realmente deletar Grupo " + cn + " ??"))
+	if (confirm(get_lang('Do you really want delete the group') + ' ' + cn + " ??"))
 	{
 		var handler_delete_group = function(data)
@@ -277,5 +277,5 @@
 				alert(data.msg);
 			else
-				alert('Grupo deletado com êxito!!');
+				alert(get_lang('Group success deleted') + '.');
 			
 			location.href="./index.php?menuaction=expressoAdmin1_2.uigroups.list_groups";
Index: trunk/expressoAdmin1_2/js/jscode/expressoadmin.js
===================================================================
--- trunk/expressoAdmin1_2/js/jscode/expressoadmin.js	(revision 379)
+++ trunk/expressoAdmin1_2/js/jscode/expressoadmin.js	(revision 414)
@@ -8,4 +8,27 @@
 	*  option) any later version.														*
 	\************************************************************************************/
+
+function load_lang(){
+	cExecute ('$this/inc/load_lang', handler_load_lang);
+}
+
+var global_langs = new Array();
+
+function handler_load_lang(data)
+{
+	global_langs = eval(data);
+}
+
+function get_lang(key_raw)
+{
+	key = key_raw.replace(/ /g,"_");
+	key = key.replace(/-/g,"");
+	lang = eval("global_langs."+key.toLowerCase());
+	
+	if (typeof(lang)=='undefined')
+		return key_raw + '*';
+	else
+		return lang;
+}
 
 function emailSuggestion_expressoadmin(use_suggestion_in_logon_script, concatenateDomain)
@@ -141,2 +164,3 @@
 		campo.value = vr.substr( 0, tam - 1 );
 }
+load_lang();
Index: trunk/expressoAdmin1_2/js/jscode/maillists.js
===================================================================
--- trunk/expressoAdmin1_2/js/jscode/maillists.js	(revision 317)
+++ trunk/expressoAdmin1_2/js/jscode/maillists.js	(revision 414)
@@ -4,12 +4,12 @@
 	document.forms[0].uid.value = document.forms[0].uid.value.toLowerCase();
 	document.forms[0].old_uid.value = document.forms[0].old_uid.value.toLowerCase();
-	
+
 	if (document.forms[0].uid.value == ''){
-		alert('Campo LOGIN da lista está vazio.');
+		alert(get_lang('LOGIN field is empty') + '.');
 		return;
 	}
 
 	if (document.forms[0].cn.value == ''){
-		alert('Campo NOME da lista está vazio.');
+		alert(get_lang('NAME field is empty') + '.');
 		return;
 	}
@@ -20,8 +20,8 @@
 		if ((uid_tmp.length < 3) || (uid_tmp[0] != 'lista')){
 			alert(
-				'O campo LOGIN da lista está incompleto.\n' +
-				'O nome da lista deve ser formado assim:\n' +
-				'lista-ORGANIZACAO-NOME_DA_LISTA.\n' +
-				'Ex: lista-celepar-rh.');
+				get_lang('LOGIN field is incomplete') + '.\n' +
+				get_lang('the login field must be formed like') + ':\n' +
+				get_lang('list') + '-' + get_lang('organization') + '-' + get_lang('listname') + '.\n' +
+				get_lang('eg') + ': ' + 'lista-celepar-rh.');
 			return;
 		}
@@ -29,5 +29,5 @@
 		
 	if (document.forms[0].uid.value.split(" ").length > 1){
-		alert('Campo LOGIN comtém espaços.');
+		alert(get_lang('LOGIN field contains characters not allowed') + '.');
 		document.forms[0].uid.focus();
 		return;
@@ -35,5 +35,5 @@
 	
 	if (document.forms[0].mail.value == ''){
-		alert('Campo E-MAIL da lista está vazio.');
+		alert(get_lang('EMAIL field is empty') + '.');
 		document.forms[0].mail.focus();
 		return;
@@ -41,5 +41,5 @@
 	var reEmail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
 	if(!reEmail.test(document.forms[0].mail.value)){
-		alert("Campo E-mail não é válido.");
+		alert(get_lang('Email field is not valid') + '.');
 		return false;
 	}
@@ -47,5 +47,5 @@
 	select_userInMaillist = document.getElementById('ea_select_usersInMaillist');
 	if (select_userInMaillist.options.length == 0){
-		alert('Nenhum usuário faz parte da lista.');
+		alert(get_lang('Any user is in the list') + '.');
 		return;
 	}
@@ -95,5 +95,5 @@
 		alert(data.msg);
 	else{
-		alert('Lista de emails criada com êxito!');
+		alert(get_lang('Email list sucess created') + '.');
 		location.href="./index.php?menuaction=expressoAdmin1_2.uimaillists.list_maillists";
 	}
@@ -112,5 +112,5 @@
 		alert(data.msg);
 	else{
-		alert('Lista de emails salva com êxito!!');
+		alert(get_lang('Email list sucess saved') + '.');
 		location.href="./index.php?menuaction=expressoAdmin1_2.uimaillists.list_maillists";
 	}
@@ -137,5 +137,5 @@
 		alert(data.msg);
 	else
-		alert('Sending Control List salva com êxito!!');
+		alert(get_lang('SCL sucess saved') + '.');
 	location.href="./index.php?menuaction=expressoAdmin1_2.uimaillists.list_maillists";
 	return;
@@ -185,5 +185,5 @@
 	if ((recursive) && (document.forms[0].ldap_context.value == document.getElementById('ea_combo_org_maillists').value))
 	{
-		alert('Nao é possível selecionar todos os usuários da organização raiz.')
+		alert(get_lang('It is not allow select all users from the root organization') + '.');
 		document.getElementById('ea_check_allUsers').checked = false;
 		
@@ -325,5 +325,5 @@
 	clearTimeout(finderTimeout);	
 	var oWait = document.getElementById("ea_span_searching");
-	oWait.innerHTML = 'Buscando...';
+	oWait.innerHTML = get_lang('Searching') + '...';
 	finderTimeout = setTimeout("optionFinder('"+obj.id+"')",500);
 }
@@ -358,5 +358,6 @@
 function delete_maillist(uid, uidnumber)
 {
-	if (confirm("Realmente deletar Lista " + uid + " ??"))
+	if (confirm(get_lang('Do you really want delete the email list') + ' ' + uid + " ??"))
+	
 	{
 		var handler_delete_maillist = function(data)
@@ -365,5 +366,5 @@
 				alert(data.msg);
 			else
-				alert('Lista de email deletada com êxito!!');
+				alert(get_lang('Email list success deleted') + '.');
 			
 			location.href="./index.php?menuaction=expressoAdmin1_2.uimaillists.list_maillists";
Index: trunk/expressoAdmin1_2/js/jscode/users.js
===================================================================
--- trunk/expressoAdmin1_2/js/jscode/users.js	(revision 355)
+++ trunk/expressoAdmin1_2/js/jscode/users.js	(revision 414)
@@ -8,9 +8,9 @@
 		
 		if (document.forms[0].uid.value == ''){
-			alert('Campo LOGIN está vazio.');
+			alert(get_lang('LOGIN field is empty') + '.');
 			return;
 		}
 		else if (document.forms[0].uid.value.length < document.forms[0].minimumSizeLogin.value){
-			alert('Campo LOGIN deve ter mais que '+document.forms[0].minimumSizeLogin.value+' caracteres.');
+			alert(get_lang('LOGIN field must be bigger than') + ' ' + document.forms[0].minimumSizeLogin.value + ' ' + get_lang('characters') + '.');
 			return;
 		}
@@ -22,6 +22,5 @@
 			var reUid = /^([a-zA-Z0-9_\-])+$/;
 		if(!reUid.test(document.forms[0].uid.value)){
-			alert('Campo LOGIN comtém caracteres não permitidos.');
-			document.forms[0].account_lid.focus();
+			alert(get_lang('LOGIN field contains characters not allowed') + '.');
 			return;
 		}
@@ -29,9 +28,9 @@
 		//PASSWORD's
 		if (document.forms[0].password1.value == ''){
-			alert('Campo SENHA está vazio.');
+			alert(get_lang('Password field is empty') + '.');
 			return;
 		}
 		if (document.forms[0].password2.value == ''){
-			alert('Campo RE-SENHA está vazio.');
+			alert(get_lang('Re-Password field is empty') + '.');
 			return;
 		}
@@ -39,5 +38,5 @@
 
 	if (document.forms[0].password1.value != document.forms[0].password2.value){
-		alert('Campo SENHA e RE-SENHA são diferentes.');
+		alert(get_lang('Password and Re-Password are different') + '.');
 		return;
 	}
@@ -50,5 +49,5 @@
 		if(!re_employeenumber.test(document.forms[0].corporative_information_employeenumber.value))
 		{
-			alert('Campo matrícula contém caracteres não permitidos. Somente números são permitidos.');
+			alert(get_lang('EmployeeNumber contains characters not allowed') + '. ' + get_lang('Only numbers are allowed') + '.');
 			document.forms[0].corporative_information_employeenumber.focus();
 			return;
@@ -56,34 +55,13 @@
 	}
 
-	/* Validation cpf is in php now.
-	/*
-	if (document.forms[0].corporative_information_cpf.value != "")
-	{
-		var re_cpf = /^([0-9])+$/;
-
-		if(!re_cpf.test(document.forms[0].corporative_information_cpf.value))
-		{
-			alert('Campo cpf contém caracteres não permitidos. Somente números são permitidos');
-			document.forms[0].corporative_information_employeenumber.focus();
-			return;
-		}
-	
-		if (! validarCPF(document.forms[0].corporative_information_cpf.value) )
-		{
-			alert("Campo CPF invalido.");
-			document.forms[0].corporative_information_cpf.focus();
-			return;
-		}
-	}*/
-	
 	//MAIL
 	document.forms[0].mail.value = document.forms[0].mail.value.toLowerCase();
 	if (document.forms[0].mail.value == ''){
-		alert('Campo E-MAIL está vazio.');
+		alert(get_lang('Email field is empty') + '.');
 		return;
 	}
 	var reEmail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
 	if(!reEmail.test(document.forms[0].mail.value)){
-		alert("Campo E-mail não é válido.");
+		alert(get_lang('Email field is not valid') + '.');
 		return false;
 	}
@@ -92,9 +70,9 @@
 	var reGivenname = /^[a-zA-Z0-9 \-\.]+$/;
 	if(!reGivenname.test(document.forms[0].givenname.value)){
-		alert('Primeiro Nome contém caracteres inválidos.');
+		alert(get_lang('First name field contains characters not allowed') + '.');
 		return false;
 	}
 	else if (document.forms[0].givenname.value == ''){
-		alert('Campo PRIMEIRO NOME está vazio.');
+		alert(get_lang('First name field is empty') + '.');
 		return;
 	}
@@ -103,9 +81,9 @@
 	var reSn = /^[a-zA-Z0-9 \-\.]+$/;
 	if(!reSn.test(document.forms[0].sn.value)){
-		alert('Último Nome contém caracteres inválidos.');
+		alert(get_lang('Last name field contains characters not allowed') + '.');
 		return false;
 	}
 	else if (document.forms[0].sn.value == ''){
-		alert('Campo ÚLTIMO NOME está vazio.');
+		alert(get_lang('Last name field is empty') + '.');
 		return;
 	}
@@ -117,5 +95,5 @@
 		if (!reg_tel.exec(document.forms[0].telephonenumber.value))
 		{
-			alert('Campo Telefone incorreto.');
+			alert(get_lang('Phone field is incorrect') + '.');
 			return;
 		}
@@ -124,5 +102,5 @@
 	//FORWAR ONLY
 	if ((document.forms[0].deliverymode.checked) && (document.forms[0].mailforwardingaddress.value == '')){
-		alert('Campo E-MAIL DE ENCAMINHAMENTO está vazio.');
+		alert(get_lang('Forward email is empty') + '.');
 		return;
 	}
@@ -130,5 +108,5 @@
 	// Email Quota
 	if (document.forms[0].mailquota.value == ''){
-		alert('Usuário sem COTA.');
+		alert(get_lang('User without email quota') + '.');
 		return;
 	}
@@ -136,5 +114,5 @@
 	//GROUPS
 	if (document.getElementById('ea_select_user_groups').length < 1){
-		alert('Nenhum GRUPO selecionado.');
+		alert(get_lang('User is not in any group') + '.');
 		return;
 	}
@@ -143,9 +121,9 @@
 	if (document.getElementById('tabcontent6').style.display != 'none'){
 		if ((document.forms[0].sambalogonscript.value == '') && (!document.forms[0].sambalogonscript.disabled)){
-			alert('Script de logon do usuário está vazio.');
+			alert(get_lang('Logon script is empty') + '.');
 			return;
 		}
 		if ((document.forms[0].sambahomedirectory.value == '') && (!document.forms[0].sambahomedirectory.disabled)){
-			alert('Diretório Home do usuário está vazio.');
+			alert(get_lang('Users home directory is empty') + '.');
 			return;
 		}
@@ -187,4 +165,5 @@
 				document.getElementById('mailforwardingaddress').disabled = false;
 				document.getElementById('mailalternateaddress').disabled = false;
+				document.getElementById('passwd_expired').disabled = false;
 				document.getElementById('accountstatus').disabled = false;
 				document.getElementById('deliverymode').disabled = false;
@@ -225,5 +204,5 @@
 		alert(data.msg);
 	else
-		alert('Usuário criado com êxito!');
+		alert(get_lang('User sucess created') + '.');
 
 	location.href="./index.php?menuaction=expressoAdmin1_2.uiaccounts.list_users";
@@ -244,5 +223,5 @@
 	}
 	else{
-		alert('Usuário salvo com êxito!!');
+		alert(get_lang('User sucess saved') + '.');
 	}
 	location.href="./index.php?menuaction=expressoAdmin1_2.uiaccounts.list_users";
@@ -467,5 +446,5 @@
 			alert(data.msg);
 		else
-			alert('Senha default cadastrada com êxito!!');
+			alert(get_lang('Default password sucess saved') + '.');
 		return;
 	}
@@ -480,5 +459,5 @@
 			alert(data.msg);
 		else
-			alert('Senha do usuário retornado com êxito!!');
+			alert(get_lang('Users password sucess returned') + '.');
 		return;
 	}
@@ -488,5 +467,5 @@
 function delete_user(uid, uidnumber)
 {
-	if (confirm("Realmente deseja deletar o usuário " + uid + " ??"))
+	if (confirm(get_lang("Do you really want delete the user") + " " + uid + "?"))
 	{
 		var handler_delete_user = function(data)
@@ -495,5 +474,5 @@
 				alert(data.msg);
 			else
-				alert('Usuário deletado com êxito!!');
+				alert(get_lang('User sucess deleted') + '.');
 			
 			location.href="./index.php?menuaction=expressoAdmin1_2.uiaccounts.list_users";
@@ -511,8 +490,8 @@
 		var reUid = /^([a-zA-Z0-9_\-])+$/;
 
-	new_uid = prompt("Alterar login do usuário " + uid + " para: ", uid);
+	new_uid = prompt(get_lang('Rename users login from') + ': ' + uid + " " + get_lang("to") + ': ', uid);
 
 	if(!reUid.test(new_uid)){
-		alert('Campo LOGIN comtém caracteres não permitidos.');
+		alert(get_lang('LOGIN field contains characters not allowed') + '.');
 		document.forms[0].account_lid.focus();
 		return;
@@ -547,5 +526,5 @@
 		alert(data.msg);
 	else{
-		alert("Usuário renomeado com êxito!\n" + data.exec_return);
+		alert(get_lang('User login sucess renamed') + "\n" + data.exec_return);
 		location.href="./index.php?menuaction=expressoAdmin1_2.uiaccounts.list_users";
 	}
@@ -563,5 +542,5 @@
 	clearTimeout(finderTimeout_maillist);
 	var oWait = document.getElementById("ea_span_searching_maillist");
-	oWait.innerHTML = 'Buscando...';
+	oWait.innerHTML = get_lang('Searching') + '...';
 	finderTimeout_maillist = setTimeout("optionFinder_maillist('"+obj.id+"')",500);
 }
@@ -597,5 +576,5 @@
 	clearTimeout(finderTimeout_group);
 	var oWait = document.getElementById("ea_span_searching_group");
-	oWait.innerHTML = 'Buscando...';
+	oWait.innerHTML = get_lang('Searching') + '...';
 	finderTimeout_group = setTimeout("optionFinder_group('"+obj.id+"')",500);
 }
@@ -655,5 +634,5 @@
 function empty_inbox(uid)
 {
-	var action = "Limpado INBOX do usuario";
+	var action = get_lang('Cleanned user mailbox');
 	var handler_write_log = function(){}
 	var handler_empty_inbox = function(data)
@@ -663,5 +642,5 @@
 		else{
 			cExecute ('$this.user.write_log_from_ajax&_action='+action+'&userinfo='+uid, handler_write_log);
-			alert("Esvaziados '" + data.inbox_size + "' MB da caixa postal do usuário");
+			alert(get_lang('Emptied ') + data.inbox_size + ' ' + get_lang('MB from user inbox'));
 			document.getElementById('mailquota_used').value = data.mailquota_used;
 		}
@@ -702,20 +681,4 @@
 }
 
-/*
-function search_organization(key)
-{
-	var organizations = document.getElementById('ea_combo_org_info');
-	var RegExp_org = new RegExp("\\b"+key, "i");
-	
-	for(i = 0; i < organizations.length; i++)
-	{
-		if (RegExp_org.test(organizations[i].text))
-		{
-			organizations[i].selected = true;
-			return;
-		}
-	}
-}*/
-
 function search_organization(key, element)
 {
