Index: tags/expressoMail1_2/1.234/setup/phpgw_es-es.lang
===================================================================
--- tags/expressoMail1_2/1.234/setup/phpgw_es-es.lang	(revision 343)
+++ tags/expressoMail1_2/1.234/setup/phpgw_es-es.lang	(revision 343)
@@ -0,0 +1,365 @@
+1 Day	expressoMail1_2	es-es	1 Día
+2 Days	expressoMail1_2	es-es	2 Días
+3 Days	expressoMail1_2	es-es	3 Días
+4 Days	expressoMail1_2	es-es	4 Días
+5 Day	expressoMail1_2	es-es	5 Días
+5 Days	expressoMail1_2	es-es	5 Días
+Access right	expressoMail1_2	es-es	Derechos de Acceso
+Action	expressoMail1_2	es-es	Acción
+Add BCC	expressoMail1_2	es-es	Añadir Cco
+Add CC	expressoMail1_2	es-es	Añadir CC
+Add Contact	expressoMail1_2	es-es	Añadir Contacto
+Add user into my IM	expressoMail1_2	es-es	Añadir a mí IM
+all	expressoMail1_2	es-es	Todas
+Also check message against next rule	expressoMail1_2	es-es	Verificar mensaje contra próxima regla también
+Answered	expressoMail1_2	es-es	Respondidas
+A read confirmation was sent.	expressoMail1_2	es-es	Una confirmación de lectura fue enviada.
+At %1, %2 hours, %3 wrote:	expressoMail1_2	pt-br	En %1 las %2 horas, %3 escribió:
+attachment	expressoMail1_2	es-es	anexo
+Attachments: add+	expressoMail1_2	es-es	Anexos: añadir+
+Attachments: 	expressoMail1_2	es-es	Datos adjuntos
+Attachments	expressoMail1_2	es-es	Datos adjuntos
+Back	expressoMail1_2	es-es	Volver
+<b>Answer messages from:</b> %1 - <b>Status:</b><font color='red'> %2</font> - <b>message:</b> %3</a>	expressoMail1_2	es-es	<b>Responder mensajes de:</b> %1 - <b>Estado:</b><font color='red'> %2</font> - <b>mensaje:</b> %3</a>
+BCC	expressoMail1_2	es-es	CCO
+Big	expressoMail1_2	es-es	grande
+Block Sender	expressoMail1_2	es-es	Boquear remitente
+Bold	expressoMail1_2	es-es	Negrita
+<b>Tip:</b> For faster save, click over the image with <u>right button</u>.	expressoMail1_2	es-es	<b>Tip:</b> Para guardar rápidamente, haga clic sobre la imagen con el <u>botón derecho</u> del mouse.
+Call to Comercial Number	expressoMail1_2	es-es	Discar para teléfono comercial
+Call to Mobile Number	expressoMail1_2	es-es	Discar para teléfono móvil
+cancel	expressoMail1_2	es-es	Cancelar
+CC	expressoMail1_2	es-es	Con Copia
+CCo	expressoMail1_2	es-es	CCo
+Change folder	expressoMail1_2	es-es	Cambiar carpeta
+Choose a name	expressoMail1_2	es-es	Elija un nombre
+Chose the text you want transform in link before.	expressoMail1_2	es-es	Seleccione el texto que desea transformar en enlace
+Clean	expressoMail1_2	es-es	Limpiar
+Click here do view (+)	expressoMail1_2	es-es	Haga clic en la imagen para ampliar (+).
+Click here to add into the fields	expressoMail1_2	es-es	Haga clic aquí para añadir en los espacios
+Close	expressoMail1_2	es-es	Cerrar
+Coincident	expressoMail1_2	es-es	Coincidente
+Command for spam	admin	es-es	Comando que será ejecutado al marcar como spam
+Command for unmark spam	admin	es-es	Comando que será ejecutado al marcar como no siendo spam
+Config for ExpressoMail	expressoMail1_2	es-es	Configuraciones para el ExpressoMail
+Cyrus IMAP Server	expressoMail1_2	es-es	Servidor de IMAP Cyrus
+Date: 	expressoMail1_2	es-es	Fecha:
+Date	expressoMail1_2	es-es	Fecha
+day(s)	expressoMail1_2	es-es	Día(s)
+Define some criterion to the fields From, To and Subject with more than 3 characters!	expressoMail1_2	es-es	Defina algún critério para los campos De, Para, Asunto com más de 3 caracteres!
+Define some search parameters!	expressoMail1_2	es-es	Defina algunos parámetros para la búsqueda
+Delete	expressoMail1_2	es-es	Eliminar
+Delete folder	expressoMail1_2	es-es	Borrar carpeta
+Delete trash messages after how many days?	expressoMail1_2	es-es	Eliminar mensajes después de cuantos días en la papelera?
+Delete your sub-folders first	expressoMail1_2	es-es	Primero elimine sus subcarpetas
+DISABLED	expressoMail1_2	es-es	Deshabilitada
+Disable	expressoMail1_2	es-es	Deshabilitar
+Download all atachments	expressoMail1_2	es-es	Descargar todos de una vez
+Download manual	expressoMail1_2	es-es	Descargar manual
+Do you really want to empty your trash folder?	expressoMail1_2	es-es	¿Esta seguro de que desea eliminar su papelera?
+Do you wanna receive an alert for new messages?	expressoMail1_2	es-es	¿Desea recibir una alerta de nuevos mensajes?
+Do you want to block this e-mail?	expressoMail1_2	es-es	¿Quieres bloquear este e-mail?
+Do you want to log the sent messages?	admin	es-es	¿Quieres registrar los mensajes enviados?
+Do you want to use the spam filter?	admin	es-es	¿A usted le gustaría utilizar el filtro anti-spam
+Do you wish to exclude the folder 	expressoMail1_2	es-es	¿Usted quiere eliminar la carpeta?
+Draft	expressoMail1_2	es-es	Borrador
+Drafts	expressoMail1_2	es-es	Borradores
+Drafts Folder name	admin	es-es	Nombre de la carpeta de borradores
+During (days off the office)	expressoMail1_2	es-es	Durante (días fuera de la oficina)
+During	expressoMail1_2	es-es	Durante
+Edit	expressoMail1_2	es-es	Editar
+Edit filters	expressoMail1_2	es-es	Editar filtros
+Edit folders	expressoMail1_2	es-es	Editar carpetas
+E-mail rule	expressoMail1_2	es-es	reglar del e-mail
+Emails of the account	expressoMail1_2	es-es	E-mails de la cuenta
+Empty Trash	expressoMail1_2	es-es	Limpiar papelera
+ENABLED	expressoMail1_2	es-es	Habilitada
+Enable	expressoMail1_2	es-es	Habilitar
+Enable Quick Reply	expressoMail1_2	es-es	Responder rápidamente (con detalles y al remitente)
+Enter a name for the box	expressoMail1_2	es-es	Entre con un nombre para la Bandeja
+Enter the name of the new folder:	expressoMail1_2	es-es	Entre con un nombre para la nueva carpeta: 
+Enter with link URL:", "http://"	expressoMail1_2	es-es	Entre con la URL del enlace: ",http://"
+Erase the message	expressoMail1_2	es-es	Elimine el mensaje
+Error compressing messages (ZIP). Contact the administrator.	expressoMail1_2	es-es	¡Error al comprimir los mensajes (ZIP)! Contacte al administrador
+Error in SMTP sending read confirmation.	expressoMail1_2	es-es	Error en el SMTP al enviar una confirmación de lectura
+Error moving message.	expressoMail1_2	es-es	Error al mover el mensaje
+Exclusion	expressoMail1_2	es-es	Exclusión
+Export	expressoMail1_2	es-es	Exportar
+Export messages	expressoMail1_2	es-es	Exportar mensajes
+ExpressoMail 1.2 Configuration	expressoMail1_2	es-es	Configuraciones del expressoMail 1.2
+expressoMail1_2	expressoMail1_2	es-es	ExpressoMail 1.2
+ExpressoMail settings	admin	es-es	Configuraciones del expresso Mail 1.2
+File extension forbidden	expressoMail1_2	es-es	Extensión de archivo prohibido
+files	expressoMail1_2	es-es	archivos
+Filters	expressoMail1_2	es-es	Filtros
+Filters maintenance	expressoMail1_2	es-es	Manutención de Filtros
+Filters management	expressoMail1_2	es-es	Gerenciar Filtros
+First	expressoMail1_2	es-es	Primera
+First Name	expressoMail1_2	pt-br	Primero nombre
+Folder	expressoMail1_2	es-es	Carpeta
+Folder Management	expressoMail1_2	es-es	Gerenciar Carpetas
+Folders	expressoMail1_2	es-es	Carpetas
+Font	expressoMail1_2	es-es	Fuente
+forecolor	expressoMail1_2	es-es	Color del texto
+Forwarded	expressoMail1_2	es-es	Reenviada
+Forwarded message	expressoMail1_2	es-es	Mensaje reenviada
+Forward	expressoMail1_2	es-es	Reenviar
+Forward to the address	expressoMail1_2	es-es	Reenvíe para la dirección
+From: 	expressoMail1_2	es-es	De:
+From	expressoMail1_2	es-es	Remitente
+Global Catalog	expressoMail1_2	es-es	Catálogo General
+Go back	expressoMail1_2	es-es	Volver
+greater than	expressoMail1_2	es-es	mayor que
+Groups	expressoMail1_2	es-es	Grupos
+Hide Menu Folders	expressoMail1_2	es-es	Ocultar Menú Carpetas
+Hide menu folders?	expressoMail1_2	es-es	Ocultar menú de las carpetas?
+Hide options	expressoMail1_2	es-es	Ocultar opciones
+Hide Search	expressoMail1_2	es-es	Ocultar busca
+hlp_msg_addcreate_acl	expressoMail1_2	es-es	Otros usuarios podrán CREAR/AÑADIR nuevos mensajes
+hlp_msg_delmov_acl	expressoMail1_2	es-es	Otros usuarios podrán ELIMINAR/MOVER sus mensajes
+hlp_msg_read_acl	expressoMail1_2	es-es	Otros usarios podrán LEER sus mensajes
+hlp_msg_sendlike_acl	expressoMail1_2	es-es	Otros usuarios podrán ENVIAR mensajes como siendo usted
+hours ago	expressoMail1_2	es-es	horas atrás
+Imap Folders Properties	admin	es-es	Características de las Carpetas del Imap
+Important	expressoMail1_2	es-es	Importantes
+In all the folders	expressoMail1_2	es-es	En todas las carpetas
+Inbox	expressoMail1_2	es-es	Bandeja de Entrada
+indent	expressoMail1_2	es-es	Tabulación a la izquierda
+Inform a forwarding e-mail	expressoMail1_2	es-es	¡Informe un e-mail de reenvío!
+Inform a message	expressoMail1_2	es-es	¡Informe um mensaje!
+Inform a text for rejection!	expressoMail1_2	es-es	¡Informe un texto para rechazar!
+Inform a valid e-mail!	expressoMail1_2	es-es	¡Informe um e-mail válido!
+Inform between 1 and 31!	expressoMail1_2	es-es	¡Informe entre  y 31!
+Inform the days!	expressoMail1_2	es-es	¡Informe los días!
+Inform the forwarding e-mail(s)	expressoMail1_2	es-es	¡Informe e-mail(s) para reenvío!
+Inform your search in the text fields	expressoMail1_2	es-es	Informe las búsqyedas en las cajas de texto
+insertorderedlist	expressoMail1_2	es-es	Insertar en lista ordenada
+Insert signature	expressoMail1_2	es-es	Insertar firma
+insertunorderedlist	expressoMail1_2	es-es	Insertar en lista no odenada
+in this message	expressoMail1_2	es-es	En el mensaje
+italic	expressoMail1_2	es-es	Cursiva
+Its %1 folder is not created. It is necessary to create so that it functions correctly.	expressoMail1_2	es-es	Su carpeta \"%1\" no esta creada. Es necesario crearla para que funcione correctamente
+It's not possible create inside: 	expressoMail1_2	es-es	No es posible crear dentro de: 
+It's not possible delete the folder: 	expressoMail1_2	es-es	No es posible remover la carpeta: 
+It's not possible	expressoMail1_2	es-es	No es posible
+It's not possible rename the folder: 	expressoMail1_2	es-es	No es posible cambiar el nombre de la carpeta: 
+It's not possible rename this folder, because it is being used in the moment!	expressoMail1_2	es-es	No es posible cambiar el nombre de esta carpeta, pues la misma está siendo usada en este momento!
+It's not possible rename this folder!	expressoMail1_2	es-es	No es posible cambiar el nombre de esta carpeta!
+justifycenter	expressoMail1_2	es-es	Centrar
+justifyfull	expressoMail1_2	es-es	Justificar
+justifyleft	expressoMail1_2	es-es	A la izquierda
+justifyright	expressoMail1_2	es-es	A la derecha
+Keep a copy of the message at your Inbox	expressoMail1_2	es-es	Guardar una copia del mensaje en su  Bandeja de Entrada
+Last	expressoMail1_2	es-es	última
+Last Name	expressoMail1_2	es-es	Apellido
+Less	expressoMail1_2	es-es	Menos
+Less than	expressoMail1_2	es-es	Menos que
+Link	expressoMail1_2	es-es	Enlace
+List All	expressoMail1_2	es-es	Listar Todo
+List Catalog	expressoMail1_2	es-es	Listar Catálogo
+List	expressoMail1_2	es-es	Listar
+list of the filters	expressoMail1_2	es-es	Lista de filtros
+Loading	expressoMail1_2	es-es	Cargando
+Mailbox Sharing	expressoMail1_2	es-es	Comparta Carpeta
+Manager your folders and export messages	expressoMail1_2	es-es	Administre sus carpetas y exporte mensajes
+Mark as	expressoMail1_2	es-es	Marcar como
+Mark as Spam	expressoMail1_2	es-es	Marcar como spam
+Max number of e-mails for page	expressoMail1_2	es-es	Número máximo de e-mails por página
+Max size	expressoMail1_2	es-es	Tamaño máximo
+Medium	expressoMail1_2	es-es	Medio
+Message body	expressoMail1_2	es-es	Cuerpo del mensaje
+message	expressoMail1_2	es-es	Mensaje
+Message Font	expressoMail1_2	es-es	Fuente del Mensaje
+Message Header	expressoMail1_2	es-es	Cabezal del Mensaje
+Message marked as 	expressoMail1_2	es-es	Mensaje marcado como 
+message(s) deleted from your trash folder.	expressoMail1_2	es-es	Mensaje(s) eliminado(s) de su papelera
+messages	expressoMail1_2	es-es	mensajes
+messages found in folder:	expressoMail1_2	es-es	mensajes encontrados en la carpeta
+Messages saved in %1 folder.	expressoMail1_2	es-es	Mensajes guardadas en la carpeta %1
+minute ago	expressoMail1_2	es-es	minuto atrás
+minutes ago	expressoMail1_2	es-es	minutos atrás
+More actions	expressoMail1_2	es-es	Más acciones
+More	expressoMail1_2	es-es	Más
+More options	expressoMail1_2	es-es	Más opciones
+More than %1 results. Please, try to refine your search.	expressoMail1_2	es-es	Más que %1 resultados fueron encontrados. Trate de refinar su búsqueda
+More than %1 results were found	expressoMail1_2	es-es	Más de %1 resultados fueron encontrados
+Move	expressoMail1_2	es-es	Mover
+Move to	expressoMail1_2	es-es	Mover para
+My Folders	expressoMail1_2	es-es	Mis Carpetas
+New	expressoMail1_2	es-es	Nuevo
+New folder	expressoMail1_2	es-es	Nueva carpeta
+New Message	expressoMail1_2	es-es	Nuevo Mensaje
+New rule	expressoMail1_2	es-es	Nueva Regla
+Next	expressoMail1_2	es-es	Próximo
+Nickname	expressoMail1_2	es-es	Apodo
+No data to search	expressoMail1_2	es-es	Ningún dato digitado para búsqueda
+None	expressoMail1_2	es-es	Ninguno
+None result was found.	expressoMail1_2	es-es	Ningún resultado fue encontrado
+No option marked!	expressoMail1_2	es-es	¡No fue marcada ninguna opción!
+normal	expressoMail1_2	es-es	normal
+No selected message.	expressoMail1_2	es-es	Ningún mensaje fue seleccionado
+No Subject	expressoMail1_2	es-es	Sin Asunto
+Note: This sharing will take action on all of your folders and messages.	expressoMail1_2	es-es	Atención: Esta acción de compartir tendrá acción en TODAS sus carpetas y mensajes
+Not Spam	expressoMail1_2	es-es	No es spam
+now	expressoMail1_2	es-es	ahora
+Open chat window	expressoMail1_2	es-es	Abrir ventana de conversación
+Open in New Window	expressoMail1_2	es-es	Abrir en Nueva Ventana
+Open search window...	expressoMail1_2	es-es	Abrir ventana de buca...
+Options	expressoMail1_2	es-es	Opciones
+Organization	expressoMail1_2	es-es	Organización
+outdent	expressoMail1_2	es-es	Tabulación a la derecha
+out office	expressoMail1_2	es-es	Fuera de la oficina
+Over quota	expressoMail1_2	es-es	Cuota de espacio excedida
+Page Not Found!	expressoMail1_2	es-es	Página no encontrada!
+People	expressoMail1_2	es-es	Personas
+Padding Email List	expressoMail1_2	es-es	Altura de las líneas de la lista de mensajes
+Personal Catalog	expressoMail1_2	es-es	Catálogo Personal
+Postfix with LDAP	expressoMail1_2	es-es	Postfix con LDAP
+Preferences	expressoMail1_2	es-es	Preferencias
+Previous	expressoMail1_2	es-es	Anterior
+Print	expressoMail1_2	es-es	Imprimir
+Public Lists	expressoMail1_2	es-es	Listas Públicas
+Reached maximum tab limit	expressoMail1_2	es-es	Límite máximo de abas alcanzado
+Read	expressoMail1_2	es-es	Lectura
+Redo	expressoMail1_2	es-es	Rehacer
+Refresh	expressoMail1_2	es-es	Actualizar
+Remove	expressoMail1_2	es-es	Eliminar
+Rename folder	expressoMail1_2	es-es	Cambiar nombre
+Reply	expressoMail1_2	es-es	Responder
+Reply sent messages to	expressoMail1_2	es-es	Responder mensajes enviados para
+Reply to all	expressoMail1_2	es-es	Responder a todos
+Reply to all with history	expressoMail1_2	es-es	Responder a todos con detalles
+Reply to all without history	expressoMail1_2	es-es	Responder a todos sin detalles
+Reply to	expressoMail1_2	es-es	Responder a
+Reply to sender	expressoMail1_2	es-es	Responder al Remitente
+Reply with history	expressoMail1_2	es-es	Responder con detalles
+Reply without history	expressoMail1_2	es-es	Responder sin detalles
+Result of the search	expressoMail1_2	es-es	Resultado de la búsqueda
+results found	expressoMail1_2	es-es	resultados encontrados
+Return receipt	expressoMail1_2	es-es	Conf. De Lectura
+Rule	expressoMail1_2	es-es	Regla
+Save as Draft	expressoMail1_2	es-es	Guardar como Borrador
+Save deleted messages in trash folder?	expressoMail1_2	es-es	¿Guardar mensajes eliminadas en la carpeta papelera?
+Save Draft	expressoMail1_2	es-es	Guardar Borrador
+Save	expressoMail1_2	es-es	Guardar
+Save in folder	expressoMail1_2	es-es	Guardar en la carpeta
+Save sent messages in folder	expressoMail1_2	es-es	Guardar las mensajes enviados en la carpeta
+Search	expressoMail1_2	es-es	Buscar
+Search for Organization	expressoMail1_2	es-es	Buscar por Organización
+Search in Catalog	expressoMail1_2	es-es	Buscando en el Catálogo
+Search in the Global Catalog	expressoMail1_2	es-es	Búsqueda en el catálogo general
+Search Results	expressoMail1_2	es-es	Resultado de la búsqueda
+ search results	expressoMail1_2	es-es	resultados encontrados
+Search the messages in these folders	expressoMail1_2	es-es	Busque mensajes en estas carpetas
+Search user...	expressoMail1_2	es-es	Búsqueda usuario...
+Search user	expressoMail1_2	es-es	Buscar usuarios
+Sector	expressoMail1_2	es-es	Sector
+Seen	expressoMail1_2	es-es	Leídas
+Select a folder:	expressoMail1_2	es-es	Seleccione una carpeta:
+Select a folder!	expressoMail1_2	es-es	Seleccione una carpeta!
+Select all messages.	expressoMail1_2	es-es	Seleccionar todos los mensajes
+Select a name	expressoMail1_2	es-es	Elija un nombre
+Select an organization and click on button <b>Search</b>	expressoMail1_2	es-es	Seleccione una Organización y haga clic en el Botón <b>Buscar</b>
+Select on send	expressoMail1_2	es-es	Seleccionar al enviar el mensaje
+Select the type of contact that you want to view	expressoMail1_2	es-es	Seleccione el tipo de contacto que desea ver
+Select the user	expressoMail1_2	es-es	Seleccionar al enviar el mensaje
+Send and file	expressoMail1_2	es-es	Enviar y Archivar
+Send a rejection message	expressoMail1_2	es-es	Envíe un mensaje de rechazo
+Sender's Information	expressoMail1_2	es-es	Datos del Remitente
+Send	expressoMail1_2	es-es	Enviar
+Send this message without a subject?	expressoMail1_2	es-es	¿Enviar este mensaje sin asunto?
+Send (without save)	expressoMail1_2	es-es	Enviar (sin archivar)
+Sent by	expressoMail1_2	es-es	Enviado por
+Sent	expressoMail1_2	es-es	Enviado
+Sent Folder name	admin	es-es	Nombre enviado de la carpeta
+Service unavailable	expressoMail1_2	es-es	Servicio no disponible
+Shared folders	expressoMail1_2	es-es	Carpetas compartidas
+Shared options saved with sucess	expressoMail1_2	es-es	Opciones de división guardadas con suceso
+Share mailbox	expressoMail1_2	es-es	Compartir carpetas
+Show default view on main screen?	expressoMail1_2	es-es	¿Mostrar resumen del ExpressoMail en la pantalla inicial?
+Showing only the results found in your organization	expressoMail1_2	es-es	Demostrando solamente los resultados encontró en su organización
+Show previous message, after delete actual message?	expressoMail1_2	es-es	Mostrar mensaje anterior, desoués de borrar mensaje actual?
+Signature	expressoMail1_2	es-es	Firma
+Signed message	expressoMail1_2	es-es	Mensaje firmado
+Size	expressoMail1_2	es-es	Tamaño
+Small	expressoMail1_2	es-es	pequeña
+Spam	expressoMail1_2	es-es	Espam
+Spam Folder name	admin	es-es	Nombre de la carpeta Spam
+standard IMAP server	expressoMail1_2	es-es	Servidor standar de IMAP
+standard POP3 server	expressoMail1_2	es-es	Servidor standar de POP3
+standard SMTP-Server	expressoMail1_2	es-es	standard SMTP-Server
+Status	expressoMail1_2	es-es	Estado
+Store at	expressoMail1_2	es-es	Archivar en 
+Subject: 	expressoMail1_2	es-es	Asunto: 
+Subject	expressoMail1_2	es-es	Asunto
+The Anti Pop-Up is enabled. Allow this site (%1) for print.	expressoMail1_2	es-es	El anti Pop-Up está habilitado. Desative-o para este sitio (%1) para permitir la impresión.
+The field \"%1\" of the message it contains	expressoMail1_2	es-es	El campo \"%1\" del mensaje contenga
+The field \"From:\" of the message it contains	expressoMail1_2	es-es	El campo "De:" del mensaje que contenga
+The field \"Subject: \" of the message it contains	expressoMail1_2	es-es	El campo "Asunto:" del mensaje que contenga
+The field \"To: \" of the message it contains	expressoMail1_2	es-es	El campo "Para:" del mensaje que contenga
+The folder %1 was successfully removed	expressoMail1_2	es-es	La carpeta %1 fue eliminada con éxito!
+The folder was not deleted!	expressoMail1_2	es-es	¡La carpeta no fue eliminada!
+The list has no participant.	expressoMail1_2	es-es	Esta lista no posee ningún participante
+The messages were deleted.	expressoMail1_2	es-es	Mesajes removidos
+The messages were moved to %1 folder 	expressoMail1_2	es-es	Mensajes movidos a la carpeta
+The message was deleted.	expressoMail1_2	es-es	Mensaje removido
+The message was moved to %1 folder 	expressoMail1_2	es-es	Mensaje fue movido a la carpeta 
+The origin folder and the destination folder are the same.	expressoMail1_2	es-es	La carpeta de origen y de destino son las mismas
+There's an action processing. Do you want abort it?	expressoMail1_2	es-es	Existe una acción que todavia está siendo procesada. ¿Cancelar la acción?
+The results were found in the Global Catalog	expressoMail1_2	es-es	Eventos enontrados en el Catálogo General
+The sender was blocked	expressoMail1_2	es-es	El remitente fue bloqueada
+The size of the message is	expressoMail1_2	es-es	El tamaño del mensaje sea
+The size of this message has exceeded  the limit (%1B).	expressoMail1_2	es-es	El tamaño del mensaje sea há excedido el límite (mayor que %1B)
+This list has no participants	expressoMail1_2	es-es	Esta lista no tiene participantes
+This mail box is empty	expressoMail1_2	es-es	Esta carpeta está vacía
+This message is already opened!	expressoMail1_2	es-es	¡Este mensaje ya está abierto!
+This message is already selected!	expressoMail1_2	es-es	Esta caja ya está en la selección!
+This message is signed, and you can trust.	expressoMail1_2	es-es	Se firma este mensaje, y usted puede confiar en.
+This message is signed, but it is invalid. You should not trust on it.	expressoMail1_2	es-es	Se firma este mensaje, pero es inválido. Usted no debe confiar en él.
+To: 	expressoMail1_2	es-es	Para:
+TO	expressoMail1_2	es-es	Para
+Tools	expressoMail1_2	es-es	Herramientas
+Trash	expressoMail1_2	es-es	Papelera
+Trash Folder name	admin	es-es	Nombre de la carpeta basura
+Type without spaces, dots or special characters!	expressoMail1_2	es-es	¡Escriba sin espacios, puntos o caracteres especiales! 
+underlined	expressoMail1_2	es-es	Subrayado
+underline	expressoMail1_2	es-es	Subrayado
+Undo	expressoMail1_2	es-es	Deshacer
+Unseen	expressoMail1_2	es-es	No leídas
+Use F9 Key as shortcut.	expressoMail1_2	es-es	Use la tecla F9 como atajo.
+User connected	instant_messenger	es-es	Esta conectado
+User didn't accepted you yet	instant_messenger	es-es	Todavia no te há aceptado
+User not connected	instant_messenger	es-es	Esta desconectado
+User not registered	instant_messenger	es-es	No está registrado
+Users	expressoMail1_2	es-es	Usuarios
+Use shortcuts?	expressoMail1_2	es-es	Usar teclas de atajo?
+View HTML source	expressoMail1_2	es-es	Ver código html
+View tips	expressoMail1_2	es-es	Ver tips
+Voided message	expressoMail1_2	es-es	Mensaje anulado
+Warning: Your Mailbox is almost full!	expressoMail1_2	es-es	Aviso: ¡Su Caja de Correo está casi llena!
+ was succefully removed	expressoMail1_2	es-es	fue eliminado con suceso
+What is the height of the lines in the list of messages?	expressoMail1_2	es-es	¿Cuál es la altura de las líneas en la lista de mensajes?
+What is the maximum number of messages per page?	expressoMail1_2	pt-br	¿Cuál es el número máximo de mensajes por página?
+What the font size in the list of messages?	expressoMail1_2	es-es	¿Cuál el tamaño de la fuente en la lista de mensajes?
+Who	expressoMail1_2	es-es	Quién
+With all	expressoMail1_2	es-es	Con todos
+Without Quota	expressoMail1_2	es-es	Sin espacio
+without save	expressoMail1_2	es-es	sin archivar
+with some	expressoMail1_2	es-es	con algunos
+With the following message	expressoMail1_2	es-es	Con el siguiente mensaje
+Write	expressoMail1_2	es-es	Escribir
+Write message	expressoMail1_2	es-es	Escribir mensaje
+wrote	expressoMail1_2	es-es	escribió
+You didn't accepted yet	instant_messenger	es-es	Usted todavía no há aceptó
+You have %1 new	expressoMail1_2	es-es	Usted tiene%1 nuevo(s)
+You must wait while the messages will be exported...	expressoMail1_2	es-es	Espere mientras los mensajes son exportados...
+Your Mailbox is 100% full! You must free more space or will not receive messages.	expressoMail1_2	es-es	¡Su caja de correo esta 100% llena! Libere espacio o no irá a recibir mensajes
+Your mailbox is shared with	expressoMail1_2	es-es	Su caja de correo esta compartida con 
+Your message has not been sent and will be discarted.	expressoMail1_2	es-es	Su mensaje no fue enviado y será perdido
+Your message has not been sent. Discard your message?	expressoMail1_2	es-es	Su mensaje no fue enviado. ¿Eliminar el mensaje?
+Your message was save as draft in folder %1.	expressoMail1_2	es-es	Su mensaje fue guardado como borrador en la carpeta %1
+Your message was sent and save.	expressoMail1_2	es-es	Su mensaje fue enviado y guardado
+Your message was sent.	expressoMail1_2	es-es	Su mensaje fue enviado
+Your search argument must be longer than 4 characters.	expressoMail1_2	es-es	Sus palavras para la búsqueda deben tener más que 4 dígitos
+your session could not be verified.	expressoMail1_2	es-es	Su sesión expiró. Entre nuevamente a su Expresso
+Your Trash folder was empty.	expressoMail1_2	es-es	Su carpeta Papelera fue vaciada
Index: tags/expressoMail1_2/1.234/setup/phpgw_en.lang
===================================================================
--- tags/expressoMail1_2/1.234/setup/phpgw_en.lang	(revision 799)
+++ tags/expressoMail1_2/1.234/setup/phpgw_en.lang	(revision 799)
@@ -0,0 +1,379 @@
+1 Day	expressoMail1_2	en	1 Day
+2 Days	expressoMail1_2	en	2 Days
+3 Days	expressoMail1_2	en	3 Days
+4 Days	expressoMail1_2	en	4 Days
+5 Day	expressoMail1_2	en	5 Day
+5 Days	expressoMail1_2	en	5 Days
+Access right	expressoMail1_2	en	Access rights
+Action	expressoMail1_2	en	Action
+Add BCC	expressoMail1_2	en	Add BCC
+Add CC	expressoMail1_2	en	Add CC
+Add Contact	expressoMail1_2	en	Add Contact
+Add user into my IM	expressoMail1_2	en	Add user into my IM
+Note: This sharing will take action on all of your folders and messages.	expressoMail1_2	en	Note: This sharing will take action on all your folders and messages.
+all	expressoMail1_2	en	all
+Also check message against next rule	expressoMail1_2	en	Also check message against next rule
+and save in	expressoMail1_2	en	and save in
+Answered	expressoMail1_2	en	Answered
+l_answered	expressoMail1_2	en	Answered
+<b>Answer messages from:</b> %1 - <b>Status:</b><font color='red'> %2</font> - <b>message:</b> %3</a>	expressoMail1_2	en	<b>Answer messages from:</b> %1 - <b>Status:</b><font color='red'> %2</font> - <b>message:</b> %3</a>
+A read confirmation was sent.	expressoMail1_2	en	A read notification was sent.
+At %1, %2 hours, %3 wrote:	expressoMail1_2	en	At %1, %2 hours, %3 wrote:
+Auto save draft	expressoMail1_2	en	Auto save draft
+Back	expressoMail1_2	en	Back
+BCC	expressoMail1_2	en	BCC
+Big	expressoMail1_2	en	Big
+Bold	expressoMail1_2	en	Bold
+Border	expressoMail1_2	en	Border
+Block Sender	expressoMail1_2	en	Block Sender
+<b>Tip:</b> For faster save, click over the image with <u>right button</u>.	expressoMail1_2	en	<b>Tip:</b> For faster save, click over the image with <u>right button</u>.
+Call to Comercial Number	expressoMail1_2	en	Call to Comercial Number
+Call to Mobile Number	expressoMail1_2	en	Call to Mobile Number
+cancel	expressoMail1_2	en	cancel
+CC	expressoMail1_2	en	CC
+CCo	expressoMail1_2	en	CCo
+Change folder	expressoMail1_2	en	Change folder
+Choose a name	expressoMail1_2	en	Choose a name
+Chose the text you want transform in link before.	expressoMail1_2	en	Select the text which will be transformed in link
+Clean	expressoMail1_2	en	Clear
+Click here do view (+)	expressoMail1_2	en	Click here do view (+)
+Click here to add into the fields	expressoMail1_2	en	Click here to add into the fields
+Close	expressoMail1_2	en	Close
+Coincident	expressoMail1_2	en	Coincident
+Command for spam	admin	en	Command for spam
+Command for unmark spam	admin	en	Command for unmark spam
+Config for ExpressoMail	expressoMail1_2	en	Config for ExpressoMail
+Cyrus IMAP Server	expressoMail1_2	en	Cyrus IMAP Server
+attachment	expressoMail1_2	en	attachment
+Attachments: add+	expressoMail1_2	en	Attachments: add+
+Attachments: 	expressoMail1_2	en	Attachments: 
+Attachments	expressoMail1_2	en	Attachments
+Date: 	expressoMail1_2	en	Date: 
+Date	expressoMail1_2	en	Date
+day(s)	expressoMail1_2	en	day(s)
+Define some criterion to the fields From, To and Subject with more than 3 characters!	expressoMail1_2	en	Define some criterion to the fields From, To and Subject with more than 3 characters!
+Define some search parameters!	expressoMail1_2	en	Define some search parameters!
+Delete	expressoMail1_2	en	Delete
+Delete trash messages after how many days?	expressoMail1_2	en	Delete trash messages after how many days?
+Delete your sub-folders first	expressoMail1_2	en	Delete your sub-folders first
+DISABLED	expressoMail1_2	en	DISABLED
+Disable	expressoMail1_2	en	Disable
+Download all atachments	expressoMail1_2	en	Download all atachments
+Download manual	expressoMail1_2	en	Download manual
+Do you really want to empty your trash folder?	expressoMail1_2	en	Do you really want to empty your trash folder?
+Do you wanna receive an alert for new messages?	expressoMail1_2	en	Do you wanna receive an alert for new messages?
+Do you want to block this e-mail?	expressoMail1_2	en	Do you want to block this e-mail?
+Do you want to log the sent messages?	admin	en	Do you want to log the sent messages?
+Do you want to use the spam filter?	admin	en	Do you want to use the spam filter?
+Do you wish to exclude the folder 	expressoMail1_2	en	Do you wish to exclude the folder 
+Draft	expressoMail1_2	en	Draft
+Drafts	expressoMail1_2	en	Drafts
+During	expressoMail1_2	en	During
+Drafts Folder name	admin	en	Drafts Folder name
+Edit	expressoMail1_2	en	Edit
+Edit filters	expressoMail1_2	en	Edit filters
+Edit folders	expressoMail1_2	en	Edit folders
+E-mail rule	expressoMail1_2	en	E-mail rule
+Emails of the account	expressoMail1_2	en	Emails of the account
+Empty Trash	expressoMail1_2	en	Empty Trash
+ENABLED	expressoMail1_2	en	ENABLED
+Enable	expressoMail1_2	en	Enable
+Enable Quick Reply	expressoMail1_2	en	Enable Quick Reply
+Enter a name for the box	expressoMail1_2	en	Enter a name for the box
+Enter the name of the new folder:	expressoMail1_2	en	Enter the name of the new folder:
+Enter with link URL:	expressoMail1_2	en	Enter with link URL:
+Delete folder	expressoMail1_2	en	Delete folder
+Erase the message	expressoMail1_2	en	Erase the message
+Error compressing messages (ZIP). Contact the administrator.	expressoMail1_2	en	Error compressing messages (ZIP). Contact the administrator.
+Error in SMTP sending read confirmation.	expressoMail1_2	en	Error in SMTP sending read confirmation.
+Error moving message.	expressoMail1_2	en	Error moving message.
+Exclusion	expressoMail1_2	en	Exclusion
+Export	expressoMail1_2	en	Export
+Export messages	expressoMail1_2	en	Export messages
+ExpressoMail 1.2 Configuration	expressoMail1_2	en	ExpressoMail 1.2 Configuration
+expressoMail1_2	expressoMail1_2	en	expressoMail1_2
+ExpressoMail settings	admin	en	ExpressoMail settings
+File extension forbidden	expressoMail1_2	en	File extension forbidden
+files	expressoMail1_2	en	files
+Filters	expressoMail1_2	en	Filters
+Filters maintenance	expressoMail1_2	en	Filters maintenance
+Filters management	expressoMail1_2	en	Filters management
+First	expressoMail1_2	en	First
+First Name	expressoMail1_2	en	First Name
+Folder	expressoMail1_2	en	Folder
+Folder Management	expressoMail1_2	en	Folder Management
+Folders	expressoMail1_2	en	Folders
+Font	expressoMail1_2	en	Font
+What the font size in the list of messages?	expressoMail1_2	en	What the font size in the list of messages?
+forecolor	expressoMail1_2	en	forecolor
+Forwarded	expressoMail1_2	en	Forwarded
+Forwarded message	expressoMail1_2	en	Forwarded message
+Forward	expressoMail1_2	en	Forward
+Forward to the address	expressoMail1_2	en	Forward to the address
+From: 	expressoMail1_2	en	From: 
+From	expressoMail1_2	en	From
+Global Catalog	expressoMail1_2	en	Global Catalog
+Go back	expressoMail1_2	en	Go back
+greater than	expressoMail1_2	en	greater than
+Groups	expressoMail1_2	en	Groups
+Hide menu folders?	expressoMail1_2	en	Hide menu folders?
+Hide options	expressoMail1_2	en	Hide options
+Hide Search	expressoMail1_2	en	Hide Search
+hlp_msg_addcreate_acl	expressoMail1_2	en	hlp_msg_addcreate_acl
+hlp_msg_delmov_acl	expressoMail1_2	en	hlp_msg_delmov_acl
+hlp_msg_read_acl	expressoMail1_2	en	hlp_msg_read_acl
+hlp_msg_sendlike_acl	expressoMail1_2	en	hlp_msg_sendlike_acl
+Image	expressoMail1_2	en	Image
+Imap Folders Properties	admin	en	Imap Folders Properties
+Important	expressoMail1_2	en	Important
+l_important	expressoMail1_2	en	Important
+In all the folders	expressoMail1_2	en	In all folders
+Inbox	expressoMail1_2	en	Inbox
+Include	expressoMail1_2	en	Include
+indent	expressoMail1_2	en	indent
+Inform a forwarding e-mail!	expressoMail1_2	en	Inform a forwarding e-mail!
+Inform a message	expressoMail1_2	en	Inform a message
+Inform a text for rejection!	expressoMail1_2	en	Inform a text for rejection!
+Inform a valid e-mail!	expressoMail1_2	en	Inform a valid e-mail!
+Inform between 1 and 31!	expressoMail1_2	en	Inform between 1 and 31!
+Inform the days!	expressoMail1_2	en	Inform the days!
+Inform the forwarding e-mail(s)	expressoMail1_2	en	Inform the forwarding e-mail(s)
+Inform your search in the text fields	expressoMail1_2	en	Inform your search in the text fields
+insertorderedlist	expressoMail1_2	en	Insert ordered list
+Insert Table	expressoMail1_2	en	Insert table
+Insert signature	expressoMail1_2	en	Insert signature
+Insert signature automatically in new messages?	expressoMail1_2	en	Insert signature automatically in new messages?
+insertunorderedlist	expressoMail1_2	en	Insert unordered list
+in this message	expressoMail1_2	en	in this message
+italic	expressoMail1_2	en	italic
+Its %1 folder is not created. It is necessary to create so that it functions correctly.	expressoMail1_2	en	Its %1 folder is not created. It is necessary to create so that it functions correctly.
+It's not possible create inside: 	expressoMail1_2	en	It's not possible to create inside: 
+It's not possible delete the folder: 	expressoMail1_2	en	It's not possible to delete the folder: 
+It's not possible rename the folder: 	expressoMail1_2	en	It's not possible to rename the folder: 
+It's not possible rename this folder!	expressoMail1_2	en	It's not possible to rename this folder!
+It's not possible rename this folder, because it is being used in the moment!	expressoMail1_2	en	It's not possible to rename this folder, because it's being used in the moment!
+justifycenter	expressoMail1_2	en	justify center
+justifyfull	expressoMail1_2	en	justify full
+justifyleft	expressoMail1_2	en	justify left
+justifyright	expressoMail1_2	en	justify right
+Keep a copy of the message at your Inbox	expressoMail1_2	en	Keep a copy of the message at your Inbox
+Last	expressoMail1_2	en	Last
+Last Name	expressoMail1_2	en	Last Name
+Less	expressoMail1_2	en	Less
+Less than	expressoMail1_2	en	Less than
+Link	expressoMail1_2	en	Link
+List All	expressoMail1_2	en	List All
+List Catalog	expressoMail1_2	en	List Catalog
+List	expressoMail1_2	en	List
+list of the filters	expressoMail1_2	en	list of the filters
+Loading	expressoMail1_2	en	Loading
+Mailbox Sharing	expressoMail1_2	en	Mailbox Sharing
+Manager your folders and export messages	expressoMail1_2	en	Manager your folders and export messages
+Mark as	expressoMail1_2	en	Mark as
+Mark as Spam	expressoMail1_2	en	Mark as Spam
+What is the maximum number of messages per page?	expressoMail1_2	en	What is the maximum number of messages per page?
+Max size	expressoMail1_2	en	Max size
+Medium	expressoMail1_2	en	Medium
+Message body	expressoMail1_2	en	Message body
+message	expressoMail1_2	en	message
+minute ago	expressoMail1_2	en	minute ago
+minutes ago	expressoMail1_2	en	minutes ago
+hours ago	expressoMail1_2	en	hours ago
+Message Font	expressoMail1_2	en	Message Font
+Message Header	expressoMail1_2	en	Message Header
+Message marked as 	expressoMail1_2	en	Message marked as 
+message(s) deleted from your trash folder.	expressoMail1_2	en	message(s) deleted from your trash folder.
+messages	expressoMail1_2	en	messages
+messages found in folder:	expressoMail1_2	en	messages found in folder:
+Messages saved in %1 folder.	expressoMail1_2	en	Messages saved in %1 folder.
+More actions	expressoMail1_2	en	More actions
+More	expressoMail1_2	en	More
+More options	expressoMail1_2	en	More options
+More than %1 results. Please, try to refine your search.	expressoMail1_2	en	More than %1 results. Please, try to refine your search.
+More than %1 results were found	expressoMail1_2	en	More than %1 results were found
+Move	expressoMail1_2	en	Move
+Move to	expressoMail1_2	en	Move to
+My Folders	expressoMail1_2	en	My Folders
+New	expressoMail1_2	en	New
+New folder	expressoMail1_2	en	New folder
+New Message	expressoMail1_2	en	New Message
+New rule	expressoMail1_2	en	New rule
+Next	expressoMail1_2	en	Next
+Nickname	expressoMail1_2	en	Nickname
+No data to search	expressoMail1_2	en	No data to search
+None	expressoMail1_2	en	None
+None result was found.	expressoMail1_2	en	None result was found.
+No option marked!	expressoMail1_2	en	No option marked!
+normal	expressoMail1_2	en	normal
+now	expressoMail1_2	en	now
+No selected message.	expressoMail1_2	en	No selected message.
+No Subject	expressoMail1_2	en	No Subject
+Not Spam	expressoMail1_2	en	Not Spam
+Open chat window	expressoMail1_2	en	Open chat window
+Open in New Window	expressoMail1_2	en	Open in New Window
+Open search window...	expressoMail1_2	en	Open search window...
+Options	expressoMail1_2	en	Options
+Organization	expressoMail1_2	en	Organization
+Original Attachments: add	expressoMail1_2	en	Original Attachments: add
+Original Attachments: remove	expressoMail1_2	en	Original Attachments: remove
+outdent	expressoMail1_2	en	outdent
+out office	expressoMail1_2	en	out office
+Over quota	expressoMail1_2	en	Over quota
+Personal Catalog	expressoMail1_2	en	Personal Catalog
+Postfix with LDAP	expressoMail1_2	en	Postfix with LDAP
+People	expressoMail1_2	en	People
+Preferences	expressoMail1_2	en	Preferences
+Previous	expressoMail1_2	en	Previous
+Print	expressoMail1_2	en	Print
+Public Lists	expressoMail1_2	en	Public Lists
+Read	expressoMail1_2	en	Read
+Redo	expressoMail1_2	en	Redo
+Refresh	expressoMail1_2	en	Refresh
+Remove	expressoMail1_2	en	Remove
+Rename folder	expressoMail1_2	en	Rename folder
+Reply	expressoMail1_2	en	Reply
+Reply sent messages to	expressoMail1_2	en	Reply sent messages to
+Reply to all	expressoMail1_2	en	Reply to all
+Reply to all with history	expressoMail1_2	en	Reply to all with history
+Reply to all without history	expressoMail1_2	en	Reply to all without history
+Reply to	expressoMail1_2	en	Reply to
+Reply to sender	expressoMail1_2	en	Reply to sender
+Reply with history	expressoMail1_2	en	Reply with history
+Reply without history	expressoMail1_2	en	Reply without history
+Result of the search	expressoMail1_2	en	Result of the search
+Return receipt	expressoMail1_2	en	Return receipt
+Rich Text	expressoMail1_2	en	Rich Text
+Rule	expressoMail1_2	en	Rule
+Save as Draft	expressoMail1_2	en	Save as Draft
+Save deleted messages in trash folder?	expressoMail1_2	en	Save deleted messages in trash folder?
+Save sent messages in folder	expressoMail1_2	en	Save sent messages in folder
+Save Draft	expressoMail1_2	en	Save Draft
+Save	expressoMail1_2	en	Save
+Save in folder	expressoMail1_2	en	Save in folder
+Save sent messages in folder?	expressoMail1_2	en	Save sent messages in folder?
+Search	expressoMail1_2	en	Search
+Search for Organization	expressoMail1_2	en	Search for Organization
+Search in Catalog	expressoMail1_2	en	Search in Catalog
+Search in the Global Catalog	expressoMail1_2	en	Search in the Global Catalog
+Search Results	expressoMail1_2	en	Search Results
+ search results	expressoMail1_2	en	 search results
+Search the messages in these folders	expressoMail1_2	en	Search the messages in these folders
+Search user...	expressoMail1_2	en	Search user...
+Search user	expressoMail1_2	en	Search user
+Sector	expressoMail1_2	en	Sector
+Seen	expressoMail1_2	en	Seen
+l_seen	expressoMail1_2	en	Seen
+Select a folder:	expressoMail1_2	en	Select a folder:
+Select a folder!	expressoMail1_2	en	Select a folder!
+Select all messages.	expressoMail1_2	en	Select all messages.
+Select a name	expressoMail1_2	en	Select a name
+Select an organization and click on button <b>Search</b>	expressoMail1_2	en	Select an organization and click on button <b>Search</b>
+Select on send	expressoMail1_2	en	Select on send
+Select the desired image file	expressoMail1_2	en	Select the desired image file
+Select the table size	expressoMail1_2	en	Select the table size
+Select the type of contact that you want to view	expressoMail1_2	en	Select the type of contact that you want to view
+Select the user	expressoMail1_2	en	Select the user
+Send and file	expressoMail1_2	en	Send and file
+Send a rejection message	expressoMail1_2	en	Send a rejection message
+Sender's Information	expressoMail1_2	en	Sender's Information
+Send	expressoMail1_2	en	Send
+Send this message without a subject?	expressoMail1_2	en	Send this message without a subject?
+Send (without save)	expressoMail1_2	en	Send (without save)
+Sent by	expressoMail1_2	en	Sent by
+Sent	expressoMail1_2	en	Sent
+Sent Folder name	admin	en	Sent Folder name
+Service unavailable	expressoMail1_2	en	Service unavailable
+Shared folders	expressoMail1_2	en	Shared folders
+Shared options saved with success	expressoMail1_2	en	Shared options saved with success
+Share mailbox	expressoMail1_2	en	Share mailbox
+Show default view on main screen?	expressoMail1_2	en	Show default view on main screen?
+Showing only the results found in your organization	expressoMail1_2	en	Showing only the results found in your organization
+Show previous message, after delete actual message?	expressoMail1_2	en	Show previous message, after delete actual message?
+Signature	expressoMail1_2	en	Signature
+Signature Configuration	expressoMail1_2	en	Signature Configuration
+Signature Type	expressoMail1_2	en	Signature Type
+Signed message	expressoMail1_2	en	Signed message
+Simple Text	expressoMail1_2	en	Simple Text
+Size	expressoMail1_2	en	Size
+Small	expressoMail1_2	en	Small
+Spam	expressoMail1_2	en	Spam
+Spam Folder name	admin	en	Spam Folder name
+standard IMAP server	expressoMail1_2	en	standard IMAP server
+standard POP3 server	expressoMail1_2	en	standard POP3 server
+standard SMTP-Server	expressoMail1_2	en	standard SMTP-Server
+Status	expressoMail1_2	en	Status
+Store at	expressoMail1_2	en	Store at
+Subject	expressoMail1_2	en	Subject
+Table	expressoMail1_2	en	Table
+The Anti Pop-Up is enabled. Allow this site (%1) for print.	expressoMail1_2	en	The Anti Pop-Up is enabled. Allow this site (%1) for print.
+The field \"%1\" of the message it contains	expressoMail1_2	en	The field \"%1\" of the message it contains
+The folder %1 was successfully removed	expressoMail1_2	en	The folder %1 was successfully removed
+The folder was not deleted!	expressoMail1_2	en	The folder was not deleted!
+The list has no participant.	expressoMail1_2	en	The list has no participant.
+The messages were deleted.	expressoMail1_2	en	The messages were deleted.
+The messages were moved to folder 	expressoMail1_2	en	The messages were moved to folder 
+The message was deleted.	expressoMail1_2	en	The message was deleted.
+The message was moved to folder 	expressoMail1_2	en	The message was moved to folder 
+The origin folder and the destination folder are the same.	expressoMail1_2	en	The origin folder and the destination folder are the same.
+There's an action processing. Do you want abort it?	expressoMail1_2	en	There's an action processing. Do you want abort it?
+The results were found in the Global Catalog	expressoMail1_2	en	The results were found in the Global Catalog
+The size of the message is	expressoMail1_2	en	The size of the message is
+The size of this message has exceeded  the limit (%1B).	expressoMail1_2	en	The size of this message has exceeded  the limit (%1B).
+This mail box is empty	expressoMail1_2	en	This mail box is empty.
+This message is already opened!	expressoMail1_2	en	This message is already opened!
+This message is already selected!	expressoMail1_2	en	This message is already selected!
+This message is signed, and you can trust.	expressoMail1_2	en	This message is signed, and you can trust.
+This message is signed, but it is invalid. You should not trust on it.	expressoMail1_2	en	This message is signed, but it is invalid. You should not trust on it.
+To: 	expressoMail1_2	en	To: 
+TO	expressoMail1_2	en	TO
+Tools	expressoMail1_2	en	Tools
+Trash	expressoMail1_2	en	Trash
+Trash Folder name	admin	en	Trash Folder name
+Type without spaces, dots or special characters!	expressoMail1_2	en	Type without spaces, dots or special characters!
+underlined	expressoMail1_2	en	underlined
+underline	expressoMail1_2	en	underline
+Undo	expressoMail1_2	en	Undo
+Unseen	expressoMail1_2	en	Unseen
+l_unseen	expressoMail1_2	en	Unseen
+Upload file	expressoMail1_2	en	Upload file
+Use F9 Key as shortcut.	expressoMail1_2	en	Use F9 Key as shortcut.
+Use shortcuts?	expressoMail1_2	en	Use shortcuts?
+User connected	instant_messenger	en	User connected
+User didn't accepted you yet	instant_messenger	en	User didn't accepted you yet
+Use dynamic contacts?	expressoMail1_2	en	Use dynamic contacts?
+User not connected	instant_messenger	en	User not connected
+User not registered	instant_messenger	en	User not registered
+Users	expressoMail1_2	en	Users
+View HTML source	expressoMail1_2	en	View HTML source
+View tips	expressoMail1_2	en	View tips
+Voided message	expressoMail1_2	en	Voided message
+Warning: Your Mailbox is almost full!	expressoMail1_2	en	Warning: Your Mailbox is almost full!
+ was succefully removed	expressoMail1_2	en	 was succefully removed
+What is the height of the lines in the list of messages?	expressoMail1_2	en	What is the height of the lines in the list of messages?
+Who	expressoMail1_2	en	Who
+With all	expressoMail1_2	en	With all
+Without Quota	expressoMail1_2	en	Without Quota
+without save	expressoMail1_2	en	without save
+with some	expressoMail1_2	en	with some
+With the following message	expressoMail1_2	en	With the following message
+Write	expressoMail1_2	en	Write
+Write message	expressoMail1_2	en	Write message
+wrote	expressoMail1_2	en	wrote
+You didn't accepted yet	instant_messenger	en	You didn't accepted yet
+You have %1 new	expressoMail1_2	en	You have %1 new
+You must wait while the messages will be exported...	expressoMail1_2	en	You must wait while the messages will be exported...
+Your Mailbox is 100% full! You must free more space or will not receive messages.	expressoMail1_2	en	Your Mailbox is 100% full! You must free more space or will not receive messages.
+Your mailbox is shared with	expressoMail1_2	en	Your mailbox is shared with
+Your message has not been sent and will be discarted.	expressoMail1_2	en	Your message has not been sent and will be discarted.
+Your message has not been sent. Discard your message?	expressoMail1_2	en	Your message has not been sent. Discard your message?
+Your message was save as draft in folder %1.	expressoMail1_2	en	Your message was save as draft in folder %1.
+Your message was sent and save.	expressoMail1_2	en	Your message was sent and save.
+Your message was sent.	expressoMail1_2	en	Your message was sent.
+Your search argument must be longer than 4 characters.	expressoMail1_2	en	Your search argument must be longer than 4 characters.
+your session could not be verified.	expressoMail1_2	en	your session could not be verified.
+Your Trash folder was empty.	expressoMail1_2	en	Your Trash folder was empty.
+Reached maximum tab limit	expressoMail1_2	en	Reached maximum tab limit
+Page Not Found!	expressoMail1_2	en	Page Not Found!
+This list has no participants	expressoMail1_2	en	This list has no participants
+Rows	expressoMail1_2	en	Rows
+Cols	expressoMail1_2	en	Cols
Index: tags/expressoMail1_2/1.234/setup/phpmailer.lang-br.php
===================================================================
--- tags/expressoMail1_2/1.234/setup/phpmailer.lang-br.php	(revision 399)
+++ tags/expressoMail1_2/1.234/setup/phpmailer.lang-br.php	(revision 399)
@@ -0,0 +1,24 @@
+<?php
+	/**
+	* PHPMailer language file.
+	* Portuguese Version
+	* By Paulo Henrique Garcia - paulo@controllerweb.com.br
+	*/
+	  
+	$PHPMAILER_LANG = array();
+	$PHPMAILER_LANG["provide_address"] = 'Voc&ecirc; deve fornecer pelo menos um endere&ccedil;o de destinat&aacute;rio de email.';
+	$PHPMAILER_LANG["mailer_not_supported"] = 'Mailer n&atilde;o suportado.';
+	$PHPMAILER_LANG["execute"] = 'N&atilde;o foi poss&iacute;vel executar: ';
+	$PHPMAILER_LANG["instantiate"] = 'N&atilde;o foi poss&iacute;vel instanciar a fun&ccedil;&atilde;o mail.';
+	$PHPMAILER_LANG["authenticate"] = 'Erro de SMTP: N&atilde;o foi poss&iacute;vel autenticar.';
+	$PHPMAILER_LANG["from_failed"] = 'Os endere&ccedil;os de remetente a seguir falharam: ';
+	$PHPMAILER_LANG["recipients_failed"] = 'Erro de SMTP: Os endere&ccedil;os de destinat&aacute;rio a seguir falharam: ';
+	$PHPMAILER_LANG["data_not_accepted"] = 'Erro de SMTP: Dados n&atilde;o aceitos.';
+	$PHPMAILER_LANG["connect_host"] = 'Erro de SMTP: N&atilde;o foi poss&iacute;vel conectar com o servidor SMTP.';
+	$PHPMAILER_LANG["file_access"] = 'N&atilde;o foi poss&iacute;vel acessar o arquivo: ';
+	$PHPMAILER_LANG["file_open"] = 'Erro de Arquivo: N&atilde;o foi poss&iacute;vel abrir o arquivo: ';
+	$PHPMAILER_LANG["encoding"] = 'Codifica&ccedil;&atilde;o desconhecida: ';
+	$PHPMAILER_LANG["not_allowed"] = 'Voc&ecirc; n&atilde;o tem permiss&atilde;o para enviar emails para: ';
+	$PHPMAILER_LANG["undisclosed-recipient"] = 'destinatarios nao divulgados';
+?>
+
Index: tags/expressoMail1_2/1.234/setup/tables_current.inc.php
===================================================================
--- tags/expressoMail1_2/1.234/setup/tables_current.inc.php	(revision 468)
+++ tags/expressoMail1_2/1.234/setup/tables_current.inc.php	(revision 468)
@@ -0,0 +1,23 @@
+<?php
+	/**************************************************************************\
+	* Expresso Administração                 										                                 *
+	* by Joao Alfredo Knopik Junior (joao.alfredo@gmail.com, jakjr@celepar.pr.gov.br)  	 *
+	* -----------------------------------------------------------------------------------------------------*
+	*  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.																						 *
+	\**************************************************************************/
+	$phpgw_baseline = array(
+		'phpgw_expressomail_contacts' => array(
+			'fd' => array(
+				'id_owner' => array( 'type' => 'int', 'precision' => 8, 'nullable' => false),
+				'data' => array( 'type' => 'text')
+			),
+			'pk' => array('id_owner'),
+			'fk' => array(),
+			'ix' => array(),
+			'uc' => array()
+		)
+	);
+?>
Index: tags/expressoMail1_2/1.234/setup/tables_update.inc.php
===================================================================
--- tags/expressoMail1_2/1.234/setup/tables_update.inc.php	(revision 655)
+++ tags/expressoMail1_2/1.234/setup/tables_update.inc.php	(revision 655)
@@ -0,0 +1,63 @@
+<?php
+	/**************************************************************************\
+	* ExpressoLivre - Setup                                                     *
+	* http://www.expressolivre.org                                              *
+	* --------------------------------------------                             *
+	* 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.                                               *
+	\**************************************************************************/
+	if ($GLOBALS['setup_info']['expressoMail1_2']['currentver'] == '1.232'){
+		$test[] = '1.232';													
+		function expressoMail1_2_upgrade1_232() {
+			$setup_info['expressoMail1_2']['currentver'] = '1.233';
+			return $setup_info['expressoMail1_2']['currentver'];
+		}
+	}	
+	if ($GLOBALS['setup_info']['expressoMail1_2']['currentver'] == '1.231'){
+		$test[] = '1.231';													
+		function expressoMail1_2_upgrade1_231() {
+			$setup_info['expressoMail1_2']['currentver'] = '1.232';
+			return $setup_info['expressoMail1_2']['currentver'];
+		}
+	}
+	
+	function expressoMail1_2_upgrade1_230() {
+		$oProc = $GLOBALS['phpgw_setup']->oProc;
+		$oProc->CreateTable('phpgw_expressomail_contacts',array(
+			'fd' => array(
+				'id_owner' => array( 'type' => 'int', 'precision' => 8, 'nullable' => false),
+				'data' => array( 'type' => 'text')
+			),
+			'pk' => array('id_owner'),
+			'fk' => array(),
+			'ix' => array(),
+			'uc' => array()	)
+		);
+		$setup_info['expressoMail1_2']['currentver'] = '1.231';
+		return $setup_info['expressoMail1_2']['currentver'];
+	}		
+				
+	if ($GLOBALS['setup_info']['expressoMail1_2']['currentver'] == '1.230'){
+		$test[] = '1.230';													
+		return expressoMail1_2_upgrade1_230();
+	}
+	if ($GLOBALS['setup_info']['expressoMail1_2']['currentver'] == '1.222'){
+		$test[] = '1.222';
+		function expressoMail1_2_upgrade1_222() {return expressoMail1_2_upgrade1_230();	}
+	}
+	if ($GLOBALS['setup_info']['expressoMail1_2']['currentver'] == '1.2211'){
+		$test[] = '1.2211';
+		function expressoMail1_2_upgrade1_2211() {return expressoMail1_2_upgrade1_230();}
+	}
+	if ($GLOBALS['setup_info']['expressoMail1_2']['currentver'] == '1.2201'){
+		$test[] = '1.2201';
+		function expressoMail1_2_upgrade1_2201() {return expressoMail1_2_upgrade1_230();}
+	}
+	
+	if ($GLOBALS['setup_info']['expressoMail1_2']['currentver'] == '1.2031'){
+		$test[] = '1.2031';
+		function expressoMail1_2_upgrade1_2031() {return expressoMail1_2_upgrade1_230();}
+	}	
+?>
Index: tags/expressoMail1_2/1.234/setup/setup.inc.php
===================================================================
--- tags/expressoMail1_2/1.234/setup/setup.inc.php	(revision 859)
+++ tags/expressoMail1_2/1.234/setup/setup.inc.php	(revision 859)
@@ -0,0 +1,39 @@
+<?php
+	/**********************************************************************************\
+	* Expresso Administração                 										   *
+	* by Joao Alfredo Knopik Junior (joao.alfredo@gmail.com, jakjr@celepar.pr.gov.br)  *
+	* ---------------------------------------------------------------------------------*
+	*  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.											           *
+	\**********************************************************************************/
+
+	$setup_info['expressoMail1_2']['name']      	= 'expressoMail1_2';
+	$setup_info['expressoMail1_2']['title']     	= 'ExpressoMail 1.2';
+	$setup_info['expressoMail1_2']['version']   	= '1.234';
+	$setup_info['expressoMail1_2']['app_order'] 	= 2;
+	$setup_info['expressoMail1_2']['tables'][]		= 'phpgw_expressomail_contacts';
+	$setup_info['expressoMail1_2']['enable']    	= 1;
+
+	$setup_info['expressoMail1_2']['author'] = 	'João Alfredo Knopik Junior'.
+												' (joao.alfredo@gmail.com / jakjr@celepar.pr.gov.br)<br>'.
+												'Nilton Emílio Bührer Neto'.
+												' (nilton.neto@gmail.com / niltonneto@celepar.pr.gov.br)';
+	$setup_info['expressoMail1_2']['maintainer'] =  'Empresa ou Instituição onde o seu Expresso está instalado.';
+	$setup_info['expressoMail1_2']['maintainer_email'] = '';
+
+	$setup_info['expressoMail1_2']['license']  = 'GPL';
+	$setup_info['expressoMail1_2']['description'] = 'Módulo de Email, usando metodologia AJAX';
+
+	/* The hooks this app includes, needed for hooks registration */
+	$setup_info['expressoMail1_2']['hooks'][] = 'preferences';
+	$setup_info['expressoMail1_2']['hooks'][] = 'admin';
+	$setup_info['expressoMail1_2']['hooks'][] = 'home';	
+	
+	/* Dependencies for this app to work */
+	$setup_info['expressoMail1_2']['depends'][] = array(
+		'appname' => 'phpgwapi',
+		'versions' => Array('0.9.14','0.9.15','1.0.0')
+	);
+?>
Index: tags/expressoMail1_2/1.234/preferences.php
===================================================================
--- tags/expressoMail1_2/1.234/preferences.php	(revision 689)
+++ tags/expressoMail1_2/1.234/preferences.php	(revision 689)
@@ -0,0 +1,378 @@
+<?php
+	/**************************************************************************/
+	
+	$GLOBALS['phpgw_info']['flags'] = array(
+		'currentapp' => 'expressoMail1_2',
+		'noheader'   => True, 
+		'nonavbar'   => True,
+		'enable_nextmatchs_class' => True
+	);
+
+	
+	include('../header.inc.php');
+	include('inc/class.imap_functions.inc.php');	
+	include_once("inc/fckeditor.php");
+	
+	if (!$_POST['try_saved'])
+	{
+		// Read Config and get default values;
+		
+		$GLOBALS['phpgw']->preferences->read_repository();
+		// Loading Admin Config Module
+    	$c = CreateObject('phpgwapi.config','expressoMail1_2');
+    	$c->read_repository();
+    	$current_config = $c->config_data;    
+		
+		
+		if($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['max_email_per_page'])
+			$GLOBALS['phpgw']->template->set_var('option_'.$GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['max_email_per_page'].'_selected','selected');
+		else
+		$GLOBALS['phpgw']->template->set_var('option_50_selected','selected');		
+
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['save_deleted_msg'])		
+			$GLOBALS['phpgw']->template->set_var('checked_save_deleted_msg','checked');
+		else
+			$GLOBALS['phpgw']->template->set_var('checked_save_deleted_msg','');
+
+		if($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['delete_trash_messages_after_n_days'])
+			$GLOBALS['phpgw']->template->set_var('delete_trash_messages_option_'.$GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['delete_trash_messages_after_n_days'].'_selected','selected');
+		else
+			$GLOBALS['phpgw']->template->set_var('delete_trash_messages_option_0_selected','selected');		
+		
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['delete_and_show_previous_message'])		
+			$GLOBALS['phpgw']->template->set_var('checked_delete_and_show_previous_message','checked');
+		else
+			$GLOBALS['phpgw']->template->set_var('checked_delete_and_show_previous_message','');
+
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['alert_new_msg'])		
+			$GLOBALS['phpgw']->template->set_var('checked_alert_new_msg','checked');
+		else
+			$GLOBALS['phpgw']->template->set_var('checked_alert_new_msg','');
+
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['mainscreen_showmail'])
+			$GLOBALS['phpgw']->template->set_var('checked_mainscreen_showmail','checked');
+		else
+			$GLOBALS['phpgw']->template->set_var('checked_mainscreen_showmail','');
+
+		if (!is_numeric($current_config['expressoMail_Number_of_dynamic_contacts'])) 
+		{										
+			$GLOBALS['phpgw']->template->set_var('checked_dynamic_contacts','');
+			$GLOBALS['phpgw']->template->set_var('checked_dynamic_contacts','disabled');
+		}
+		else
+		{
+			if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_dynamic_contacts'])
+				$GLOBALS['phpgw']->template->set_var('checked_dynamic_contacts','checked');
+			else
+				$GLOBALS['phpgw']->template->set_var('checked_dynamic_contacts','');
+		}
+
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_shortcuts'])
+			$GLOBALS['phpgw']->template->set_var('checked_shortcuts','checked');
+		else
+			$GLOBALS['phpgw']->template->set_var('checked_shortcuts','');
+
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['auto_save_draft'])
+			$GLOBALS['phpgw']->template->set_var('checked_auto_save_draft','checked');
+		else
+			$GLOBALS['phpgw']->template->set_var('checked_auto_save_draft','');
+
+		// Insert new expressoMail preference use_signature: defines if the signature will be automatically inserted
+		// at the e-mail body
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_signature'])
+			$GLOBALS['phpgw']->template->set_var('checked_use_signature','checked');
+		else
+			$GLOBALS['phpgw']->template->set_var('checked_use_signature','');
+
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['signature'])
+			$GLOBALS['phpgw']->template->set_var('text_signature',$GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['signature']);
+		else
+			$GLOBALS['phpgw']->template->set_var('text_signature','');
+		
+		if($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['type_signature']){
+			$GLOBALS['phpgw']->template->set_var('type_signature_option_'.$GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['type_signature'].'_selected','selected');
+			$GLOBALS['phpgw']->template->set_var('type_signature_td_'.($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['type_signature'] == 'html' ? 'text' : 'html'),'display:none');
+		}
+		else{
+			$GLOBALS['phpgw']->template->set_var('type_signature_option_text_selected','selected');
+			$GLOBALS['phpgw']->template->set_var('type_signature_td_html','display:none');
+		}
+
+		// BEGIN FCKEDITOR
+		$oFCKeditor = new FCKeditor('html_signature') ;
+		$oFCKeditor->BasePath 	= 'js/fckeditor/';
+		$oFCKeditor->ToolbarSet = 'ExpressoLivre';
+		if(is_array($GLOBALS['phpgw_info']['user']['preferences']['expressoMail'])) {
+			$oFCKeditor->Value 	= $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['signature'];
+		}
+		// First Time: The user has no preferences. If the template file exists, then it loads a default signature.
+		// See signature_example.tpl
+		elseif(file_exists($GLOBALS['phpgw']->template->root.'/signature.tpl')){
+			$filein = fopen($GLOBALS['phpgw']->template->root.'/signature.tpl',"r");
+			while (!feof ($filein))
+				$oFCKeditor->Value .= fgets($filein, 1024); 
+		}
+		$oFCKeditor->Value = str_replace("{full_name}",$phpgw_info['user']['fullname'],$oFCKeditor->Value);
+		$oFCKeditor->Value = str_replace("{first_name}",$phpgw_info['user']['firstname'],$oFCKeditor->Value);
+		
+		$GLOBALS['phpgw']->template->set_var('rtf_signature',$oFCKeditor->Create());
+		$GLOBALS['phpgw']->template->set_var('text_signature',strip_tags($oFCKeditor->Value));
+		// END FCKEDITOR
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['hide_folders'])
+			$GLOBALS['phpgw']->template->set_var('checked_menu','checked');
+		else
+			$GLOBALS['phpgw']->template->set_var('checked_menu','');
+
+		if($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['line_height'])
+			$GLOBALS['phpgw']->template->set_var('line_height_option_'.$GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['line_height'].'_selected','selected');
+		else
+			$GLOBALS['phpgw']->template->set_var('line_height_option_20_selected','selected');
+		
+		if($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['font_size'])
+			$GLOBALS['phpgw']->template->set_var('font_size_option_'.$GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['font_size'].'_selected','selected');
+		else
+			$GLOBALS['phpgw']->template->set_var('font_size_option_11_selected','selected');
+	    $c = CreateObject('phpgwapi.config','expressoMail1_2');
+	    $c->read_repository();
+	    $current_config = $c->config_data;
+		
+		if($current_config['enable_local_messages']!='True') {
+			$GLOBALS['phpgw']->template->set_var('open_comment_local_messages_config',"<!--");
+			$GLOBALS['phpgw']->template->set_var('close_comment_local_messages_config',"-->");
+		}
+		else {
+			$GLOBALS['phpgw']->template->set_var('open_comment_local_messages_config'," ");
+			$GLOBALS['phpgw']->template->set_var('close_comment_local_messages_config'," ");
+		}
+		
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_local_messages'])
+			$GLOBALS['phpgw']->template->set_var('use_local_messages_option_Yes_selected','selected');
+		else {
+			$GLOBALS['phpgw']->template->set_var('use_local_messages_option_No_selected','');
+			$GLOBALS['phpgw']->template->set_var('use_local_messages_option_Yes_selected','');
+		}
+		
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['keep_archived_messages'])
+			$GLOBALS['phpgw']->template->set_var('keep_archived_messages_option_Yes_selected','selected');
+		else {
+			$GLOBALS['phpgw']->template->set_var('keep_archived_messages_option_No_selected','');
+			$GLOBALS['phpgw']->template->set_var('keep_archived_messages_option_Yes_selected','');
+		}		
+		
+	}
+	else //Save Config
+	{
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['max_email_per_page'])
+			$GLOBALS['phpgw']->preferences->change('expressoMail','max_email_per_page',$_POST['max_emails_per_page']);
+		else
+			$GLOBALS['phpgw']->preferences->add('expressoMail','max_email_per_page',$_POST['max_emails_per_page']);
+		
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['save_deleted_msg'])
+			$GLOBALS['phpgw']->preferences->change('expressoMail','save_deleted_msg',$_POST['save_deleted_msg']);
+		else
+			$GLOBALS['phpgw']->preferences->add('expressoMail','save_deleted_msg',$_POST['save_deleted_msg']);
+
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['delete_trash_messages_after_n_days'])
+			$GLOBALS['phpgw']->preferences->change('expressoMail','delete_trash_messages_after_n_days',$_POST['delete_trash_messages_after_n_days']);
+		else
+			$GLOBALS['phpgw']->preferences->add('expressoMail','delete_trash_messages_after_n_days',$_POST['delete_trash_messages_after_n_days']);
+
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['delete_and_show_previous_message'])
+			$GLOBALS['phpgw']->preferences->change('expressoMail','delete_and_show_previous_message',$_POST['delete_and_show_previous_message']);
+		else
+			$GLOBALS['phpgw']->preferences->add('expressoMail','delete_and_show_previous_message',$_POST['delete_and_show_previous_message']);
+		
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['alert_new_msg'])
+			$GLOBALS['phpgw']->preferences->change('expressoMail','alert_new_msg',$_POST['alert_new_msg']);
+		else
+			$GLOBALS['phpgw']->preferences->add('expressoMail','alert_new_msg',$_POST['alert_new_msg']);
+
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['mainscreen_showmail'])
+			$GLOBALS['phpgw']->preferences->change('expressoMail','mainscreen_showmail',$_POST['mainscreen_showmail']);
+		else
+			$GLOBALS['phpgw']->preferences->add('expressoMail','mainscreen_showmail',$_POST['mainscreen_showmail']);
+
+		if (!is_numeric($_SESSION['phpgw_info']['server']['expressomail']['expressoMail_Number_of_dynamic_contacts'])) 
+		{										
+			$GLOBALS['phpgw']->template->set_var('checked_dynamic_contacts','');
+			$GLOBALS['phpgw']->template->set_var('checked_dynamic_contacts','disabled');
+		}
+		else
+		{
+			if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_dynamic_contacts'])
+			{
+				$GLOBALS['phpgw']->preferences->change('expressoMail','use_dynamic_contacts',$_POST['use_dynamic_contacts']);
+				if($_POST['use_dynamic_contacts'] == '')
+				{
+					$contacts = CreateObject('expressoMail1_2.dynamic_contacts');
+					$contacts->delete_dynamic_contacts();
+				}
+			}
+			else
+			$GLOBALS['phpgw']->preferences->add('expressoMail','use_dynamic_contacts',$_POST['use_dynamic_contacts']);
+		}
+
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_shortcuts'])
+			$GLOBALS['phpgw']->preferences->change('expressoMail','use_shortcuts',$_POST['use_shortcuts']);
+		else
+			$GLOBALS['phpgw']->preferences->add('expressoMail','use_shortcuts',$_POST['use_shortcuts']);
+			
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['auto_save_draft'])
+			$GLOBALS['phpgw']->preferences->change('expressoMail','auto_save_draft',$_POST['auto_save_draft']);
+		else
+			$GLOBALS['phpgw']->preferences->add('expressoMail','auto_save_draft',$_POST['auto_save_draft']);	
+
+		// Insert new expressoMail preference use_signature: defines if the signature will be automatically inserted
+		// at the e-mail body
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_signature'])
+			$GLOBALS['phpgw']->preferences->change('expressoMail','use_signature',$_POST['use_signature']);
+		else
+			$GLOBALS['phpgw']->preferences->add('expressoMail','use_signature',$_POST['use_signature']);
+
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['signature'])
+			$GLOBALS['phpgw']->preferences->change('expressoMail','signature',$_POST['signature']);
+		else
+			$GLOBALS['phpgw']->preferences->add('expressoMail','signature',$_POST['signature']);
+
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['type_signature'])
+			$GLOBALS['phpgw']->preferences->change('expressoMail','type_signature',$_POST['type_signature']);
+		else
+			$GLOBALS['phpgw']->preferences->add('expressoMail','type_signature',$_POST['type_signature']);
+
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['hide_folders'])
+			$GLOBALS['phpgw']->preferences->change('expressoMail','hide_folders',$_POST['check_menu']);
+		else
+			$GLOBALS['phpgw']->preferences->add('expressoMail','hide_folders',$_POST['check_menu']);
+			
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['save_in_folder'])
+			$GLOBALS['phpgw']->preferences->change('expressoMail','save_in_folder',$_POST['save_in_folder']);
+		else
+			$GLOBALS['phpgw']->preferences->add('expressoMail','save_in_folder',$_POST['save_in_folder']);
+
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['line_height'])
+			$GLOBALS['phpgw']->preferences->change('expressoMail','line_height',$_POST['line_height']);
+		else
+			$GLOBALS['phpgw']->preferences->add('expressoMail','line_height',$_POST['line_height']);
+		
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['font_size'])
+			$GLOBALS['phpgw']->preferences->change('expressoMail','font_size',$_POST['font_size']);
+		else
+			$GLOBALS['phpgw']->preferences->add('expressoMail','font_size',$_POST['font_size']);		
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_local_messages'])
+			$GLOBALS['phpgw']->preferences->change('expressoMail','use_local_messages',$_POST['use_local_messages']);
+		else
+			$GLOBALS['phpgw']->preferences->add('expressoMail','use_local_messages',$_POST['use_local_messages']);
+			
+		if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['keep_archived_messages'])
+			$GLOBALS['phpgw']->preferences->change('expressoMail','keep_archived_messages',$_POST['keep_archived_messages']);
+		else
+			$GLOBALS['phpgw']->preferences->add('expressoMail','keep_archived_messages',$_POST['keep_archived_messages']);			
+
+		$GLOBALS['phpgw']->preferences->save_repository();
+		
+		// Back to preferences.
+		$url = ($GLOBALS['phpgw']->link('/'.'expressoMail1_2'.'/index.php'));
+		$GLOBALS['phpgw']->redirect($url);
+	}
+	
+	$GLOBALS['phpgw']->common->phpgw_header();
+	print parse_navbar();
+
+	$GLOBALS['phpgw']->template->set_file(array(
+		'expressoMail_prefs' => 'preferences.tpl'
+	));
+
+	$GLOBALS['phpgw']->template->set_var('lang_config_expressoMail',lang('Config for ExpressoMail'));
+	$GLOBALS['phpgw']->template->set_var('lang_max_emails_per_page',lang('What is the maximum number of messages per page?'));
+	$GLOBALS['phpgw']->template->set_var('lang_save_deleted_msg',lang('Save deleted messages in trash folder?'));
+	$GLOBALS['phpgw']->template->set_var('lang_delete_trash_messages_after_n_days',lang('Delete trash messages after how many days?'));
+	$GLOBALS['phpgw']->template->set_var('lang_delete_and_show_previous_message',lang('Show previous message, after delete actual message?'));
+	$GLOBALS['phpgw']->template->set_var('lang_alert_new_msg',lang('Do you wanna receive an alert for new messages?'));
+	$GLOBALS['phpgw']->template->set_var('lang_hook_home',lang('Show default view on main screen?'));
+	$GLOBALS['phpgw']->template->set_var('lang_save_in_folder',lang('Save sent messages in folder'));
+	$GLOBALS['phpgw']->template->set_var('lang_hide_menu',lang('Hide menu folders?'));
+	$GLOBALS['phpgw']->template->set_var('lang_line_height',lang('What is the height of the lines in the list of messages?'));
+	$GLOBALS['phpgw']->template->set_var('lang_font_size',lang('What the font size in the list of messages?'));
+	$GLOBALS['phpgw']->template->set_var('lang_use_dynamic_contacts',lang('Use dynamic contacts?'));
+	$GLOBALS['phpgw']->template->set_var('lang_use_shortcuts',lang('Use shortcuts?'));
+	$GLOBALS['phpgw']->template->set_var('lang_auto_save_draft',lang('Auto save draft'));
+	$GLOBALS['phpgw']->template->set_var('lang_signature',lang('Signature'));
+	$GLOBALS['phpgw']->template->set_var('lang_none',lang('None'));
+	$GLOBALS['phpgw']->template->set_var('one_day',lang('1 Day'));
+	$GLOBALS['phpgw']->template->set_var('two_days',lang('2 Days'));
+	$GLOBALS['phpgw']->template->set_var('three_days',lang('3 Days'));
+	$GLOBALS['phpgw']->template->set_var('four_days',lang('4 Days'));
+	$GLOBALS['phpgw']->template->set_var('five_days',lang('5 Day'));
+	$GLOBALS['phpgw']->template->set_var('small',lang('Small'));
+	$GLOBALS['phpgw']->template->set_var('medium',lang('Medium'));
+	$GLOBALS['phpgw']->template->set_var('normal',lang('Normal'));
+	$GLOBALS['phpgw']->template->set_var('simple_text',lang('Simple Text'));
+	$GLOBALS['phpgw']->template->set_var('html_text',lang('Rich Text'));
+	$GLOBALS['phpgw']->template->set_var('lang_config_signature',lang('Signature Configuration'));
+	$GLOBALS['phpgw']->template->set_var('lang_type_signature',lang('Signature type'));
+	$GLOBALS['phpgw']->template->set_var('big',lang('Big'));
+	$GLOBALS['phpgw']->template->set_var('lang_Would_you_like_to_keep_archived_messages_?',lang('Would you like to keep archived messages?'));
+	$GLOBALS['phpgw']->template->set_var('lang_Yes',lang('Yes'));
+	$GLOBALS['phpgw']->template->set_var('lang_No',lang('No'));
+	$GLOBALS['phpgw']->template->set_var('lang_Would_you_like_to_use_local_messages_?',lang('Would you like to use local messages?'));
+	$GLOBALS['phpgw']->template->set_var('lang_use_signature',lang('Insert signature automatically in new messages?'));
+
+	$boemailadmin	= CreateObject('emailadmin.bo');
+	$emailadmin_profile = $boemailadmin->getProfileList();
+	$_SESSION['phpgw_info']['expressomail']['email_server'] = $boemailadmin->getProfile($emailadmin_profile[0]['profileID']);
+	$_SESSION['phpgw_info']['expressomail']['user'] = $GLOBALS['phpgw_info']['user'];
+	$e_server = $_SESSION['phpgw_info']['expressomail']['email_server'];
+ 	$imap = CreateObject('expressoMail1_2.imap_functions');	
+	$save_in_folder_selected = $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['save_in_folder'];	
+	// Load Special Folders (Sent, Trash, Draft, Spam) from EmailAdmin (if exists, else get_lang)
+	$specialFolders = array ("Trash" => lang("Trash"), "Drafts" => lang("Drafts"), "Spam" => lang("Spam"), "Sent" => lang("Sent"));	
+	foreach ($specialFolders as $key => $value){
+		if($e_server['imapDefault'.$key.'Folder'])
+			$specialFolders[$key] = $e_server['imapDefault'.$key.'Folder'];
+	}        
+	// First access on ExpressoMail, load default preferences...
+	if(!$GLOBALS['phpgw_info']['user']['preferences']['expressoMail']) {
+		$GLOBALS['phpgw']->template->set_var('checked_save_deleted_msg','checked');
+		$GLOBALS['phpgw']->template->set_var('checked_delete_and_show_previous_message','checked');
+		$GLOBALS['phpgw']->template->set_var('checked_alert_new_msg','checked');
+		$GLOBALS['phpgw']->template->set_var('checked_use_signature','checked');
+		$GLOBALS['phpgw']->template->set_var('checked_mainscreen_showmail','checked');
+		$save_in_folder_selected = "INBOX".$e_server['imapDelimiter'].$specialFolders["Sent"];
+	}
+	$o_folders = "<option value='-1' ".(!$save_in_folder_selected ? 'selected' : '' ).">".lang("Select on send")."</option>";	
+	
+	foreach($imap -> get_folders_list() as $id => $folder){
+		// Ignores numeric indexes and shared folders....
+		if(!is_numeric($id) || (strstr($folder['folder_id'],"user".$e_server['imapDelimiter'])))
+			continue;
+		// Translate INBOX (root folder)
+		elseif (strtolower($folder['folder_name']) == "inbox") 
+			$folder['folder_name'] = lang("Inbox");
+		// Translate Special Folders
+ 		elseif (($keyFolder = array_search($folder['folder_name'], $specialFolders)) !== false)
+ 			$folder['folder_name'] = lang($keyFolder);
+		// Identation for subfolders
+		$folder_id = explode($e_server['imapDelimiter'],$folder['folder_id']);		
+		$level = count($folder_id);
+		$ident = '';
+		for($i = 2; $level > 2 && $i < $level;$i++)
+			$ident .= ' - ';
+		$o_folders.= "<option value='".$folder['folder_id']."' ".($save_in_folder_selected == $folder['folder_id'] ? 'selected' : '' ).">".$ident.$folder['folder_name']."</option>";			
+	}
+
+	$GLOBALS['phpgw']->template->set_var('value_save_in_folder',$o_folders);
+	$GLOBALS['phpgw']->template->set_var('lang_save',lang('Save'));
+	$GLOBALS['phpgw']->template->set_var('lang_cancel',lang('Cancel'));
+	
+	$GLOBALS['phpgw']->template->set_var('save_action',$GLOBALS['phpgw']->link('/'.'expressoMail1_2'.'/preferences.php'));
+	$GLOBALS['phpgw']->template->set_var('th_bg',$GLOBALS['phpgw_info']["theme"][th_bg]);
+
+	$tr_color = $GLOBALS['phpgw']->nextmatchs->alternate_row_color($tr_color);
+	$GLOBALS['phpgw']->template->set_var('tr_color1',$GLOBALS['phpgw_info']['theme']['row_on']);
+	$GLOBALS['phpgw']->template->set_var('tr_color2',$GLOBALS['phpgw_info']['theme']['row_off']);
+
+	$GLOBALS['phpgw']->template->parse('out','expressoMail_prefs',True);
+	$GLOBALS['phpgw']->template->p('out');
+	// Com o Módulo do IM habilitado, ocorre um erro no IE
+	//$GLOBALS['phpgw']->common->phpgw_footer();
+?>
Index: tags/expressoMail1_2/1.234/docs/change_log.txt
===================================================================
--- tags/expressoMail1_2/1.234/docs/change_log.txt	(revision 51)
+++ tags/expressoMail1_2/1.234/docs/change_log.txt	(revision 51)
@@ -0,0 +1,101 @@
+Esse arquivo descreve todas as correções, alterações e novas implementações do 
+módulo ExpressoMail 1.2, e a partir da versão 07/12/2006 [1.2]
+Nilton Emilio Buhrer Neto.
+
+--------------------------- NOTA IMPORTANTE --------------------------
+
+A partir de Agosto de 2007, todos os registros de bugs aqui relatados foram
+transferidos para o site do ExpressoLivre, no Wiki-Trac do módulo.
+Vide: http://www.expressolivre.org/dev/wiki/mail/changelog
+
+----------------------------------------------------------------------
+06/02/2007 - [1.2022]
+- Fixado o layer que compreende o menu da nova mensagem (Enviar, Salvar,Pesquisar);
+- Implementado a pesquisa rápida de mensagens, em todas as pastas, na janela principal do módulo;
+- Corrigido problema ao imprimir mensagens com figuras (não estava aparecendo as figuras);
+- Corrigido problema do autocompletar, no Internet Explorer, quando tinha um scroll na aba, o layer em branco não estava posicionado corretamente;
+- Corrigido problema com envio de mensagens para grupos pessoais, quando o link vinha do módulo Contact Center;
+- Corrigido problema com mensagens que continham anexos TXT, que se expandia no corpo da mensagem. Agora não expande mais.
+
+16/02/2007 - [1.2023]
+- Inserido um atraso na abertura do menu Ferramentas, para não atrapalhar a navegação;
+- Implementado uma RegExp para que links dentro das mensagens sejam abertos em nova janela;
+- Corrigido problema da abertura da janela do "Enviar e Arquivar", que estava conflitando com o módulo IM;
+
+27/02/2007 - [1.2024]
+- Corrigido problemas eventuais ocasionados pelas novas versões do Firefox 1.5 (1.5.0.10) e 2.0 (2.0.0.2), que gerou problema
+no carregamento dos Javascripts sob demanda.
+
+03/03/2007 - [1.2025]
+- Corrigido problema na lista de mensagens, quando há assuntos com caracteres especiais.
+- Implementada mais uma funcionalidade: em Compartilhar Pastas, o usuário poderá liberar o seu nome/email para ser utilizado
+no envio de mensagens por outros usuários.
+- Corrigido problemas no manuseio da funcionalidade de compartilhar pastas.
+- Corrigido bug no DropDownContact (2 palavras) e scroll escondemos o DropDownContact caso o scroll seja utilizado.
+- Corrigido Scroll com Paleta de Cores no Texto Rico
+- Ordenado as teclas de TAB em nova mensagem.
+
+06/03/2007 - [1.2026]
+- Alterada a maneira de como está implementada, a funcionalidade de liberar usuários, para envio pela sua caixa postal. Agora
+o usuário que envia, seta o "Sender", e o usuário compartilhado permanece no "From", seguindo o padrão correto.
+- Corrigido problema no checkbox Ocultar Menu Pastas, na tela de Preferencias, que não estava salvando quando ia pelo link
+das "Minhas Preferências".
+- Corrigido problema ao Salvar Rascunho, onde os destinatários (Para,CC) estavam sendo salvos com charset incorreto.
+
+13/03/2007 - [1.2027]
+- Corrigido problema ao abrir mensagem formato HTML, contendo a tag HEADER: Influenciava no layout inteiro da página.
+- Corrigido problema ao inserir assinatura com apóstrofo, aspas, e outros caracteres especiais (addslashes);
+- Corrigido problema nas pastas com espaço: Ao enviar e salvar automático nessas pastas, dava problema.
+- Corrigido problema de visualização de algumas mensagens encaminhadas pelo Evolution, ThunderBird, etc.
+- Adicionada função getLang na classe Functions, para ser utilizada dentro das classes PHP do ExpressoMail.
+- Adicionada função replace_links na classe imap_functions, que será utilizada futuramente para habilitar links dentro das mensagens.
+
+29/03/2007 - [1.2028]
+- Corrigido problema ao encaminhar mensagens com anexos, pois não preservava o encoding original (base64,qprint,text).
+- Corrigido problema ao fazer download de anexos com extensão em caixa alta e com "." (pontos) no seu nome.
+- Corrigido problema ao fazer download de anexos no formato qprint. Função imap_qprint() contém um bug, e foi substituída pela
+função quoted_printable_decode().
+- Incluído validação do email a ser bloqueado pelo botão "Bloquear Remetente".
+- Incluído validação do email ao criar um regra na opção Filtros.
+- Corrigido problema que dava nas preferências do usuário, com a pasta de mensagens Enviadas. Quando mudava o cyrus delimiter
+no Expresso ("." ou "/"), a pasta de Enviados salva no banco ficava com delimitador diferente do atual, dando problema ao salvar
+mensagens enviadas e ao abrir janela de Preferências.
+
+01/04/2007 - [1.2029]
+- Corrigido problema na leitura de algumas mensagens do tipo text/plain, multipart e charset=utf-8. Dependendo da estrutura da
+mensagem, o atributo charset vinha em branco e ficava em outro lugar não padrão (parameters).
+em outro parametro não padrão.
+- Adicionada funcionalidade que compatibiliza mensagens encapsuladas, e com formato 7bit, serem visualizadas no ExpressoMail.
+
+10/05/2007 - [1.2030]
+- Implementado mesma funcionalidade do expandir Campo "Para" para o campo "CC", abrir uma mensagem. O objetivo é evitar travamento
+do navegador quando existem muito destinatários a serem expandidos com o plugin do Contact Center.
+- Corrigido problema de mensagens que têm nome de arquivos nos atributos "parameters" e "dparameters" de sua estrutura.
+- Implementado ocultação de usuários e grupos no expressoMail e na Calendar.
+- Corrigido imagem down.button.png que aparecia com fundo branco no IE;
+- Alterado nome do link "Mais opções" para "Opções", no menu de mensagem aberta;
+- Colocado link "Imprimir" entre os links "Opções" e "Encaminhar", no menu de mensagem aberta;
+
+10/05/2007 - [1.2031]
+- Mensagens plain com subtype = "mixed", com anexo, estavam sendo abertas no corpo da mensagem.
+- Correção de todas as chamadas da função imap_open, para não gerar erro com conexões não assinadas "/notls/novalidate-cert"
+- Implementado Busca Rápida de Detalhes do Remetente da Mensagem, se no Contato Pessoal e Geral.
+
+30/05/2007 - [1.2032]
+- Corrigido problema ao montar lista de mensagens, quando alguma delas tinha no campo "Para", caracteres especiais.
+- Modificada a implementação da Busca rápida de Detalhes do Remetente da Mensagem, para preparar a integração com os demais serviços.
+
+09/07/2007 - [1.2033]
+- Corrigido problema na funcionalidade filtros, que não permitia adicionar filtro quando se definia tamanho máximo de mensagem.
+- Corrigido problema no campo "Responder Para", quando esse possuía formato HTML.
+- Modificado link do botão Cancelar, do template das preferências.
+- Corrigido problema na busca rápida.
+
+02/08/2007 - [1.21]
+- Feito um "refactor" da classe imap_functions, para reduzir as conexoes criadas com o IMAP.
+- Implementado filtros por flag (todas, não lidas, lidas, respondidas, importantes) na lista de mensagens.
+- O link da Ajuda do módulo foi movido para a Ajuda Geral do Expresso, ao lado de Sugestões.
+- O link Dicas e a página foram removidos.
+- Alterado alguns valores de ajuste de layout.
+- Corrigido problema dos Filtros de mensagens, quando esses possuíam caracteres especiais.
+- Implementado suporte a caracteres especiais nas Pastas.
Index: tags/expressoMail1_2/1.234/help/dicas.html
===================================================================
--- tags/expressoMail1_2/1.234/help/dicas.html	(revision 2)
+++ tags/expressoMail1_2/1.234/help/dicas.html	(revision 2)
@@ -0,0 +1,74 @@
+<html>
+	<head>
+		<title>Expresso Livre</title>
+	</head>
+	<body style="margin:0px;padding:0">
+	<table width="100%"><tr><td align="right" background="images/fundo_topo.jpg"><a name="0"><img src="images/topo.jpg?1"></a></td></tr></table>
+	<div style="margin:10px">
+
+	<font face="Arial" size="2"><center><b>Dicas importantes de utilização</b></center></font><br>
+	<font face="Arial" size="2">
+		O <b><i>Expresso Mail 1.2</i></b> possui várias inovações e modificações.<br>Veja a seguir as dúvidas mais freqüentes:<br><br>		
+		<font face="Arial" size="2">
+		<div style="cursor:pointer" width="100%" onClick="javascript:location.href='#1'"><b><i>&nbsp;&nbsp;1.&nbsp;</i></b><font size="2" style="text-decoration:underline" color="DARKBLUE">Por que mudou o layout?</font></div>
+		<div style="cursor:pointer" width="100%" onClick="javascript:location.href='#2'"><b><i>&nbsp;&nbsp;2.&nbsp;</i></b><font size="2" style="text-decoration:underline" color="DARKBLUE">Onde está o menu Mais ações?</font></div>
+		<div style="cursor:pointer" width="100%" onClick="javascript:location.href='#3'"><b><i>&nbsp;&nbsp;3.&nbsp;</i></b><font size="2" style="text-decoration:underline" color="DARKBLUE">Como mover mensagens?</font></div>
+		<div style="cursor:pointer" width="100%" onClick="javascript:location.href='#4'"><b><i>&nbsp;&nbsp;4.&nbsp;</i></b><font size="2" style="text-decoration:underline" color="DARKBLUE">Como criar Pastas e subpastas?</font></div>
+		<div style="cursor:pointer" width="100%" onClick="javascript:location.href='#5'"><b><i>&nbsp;&nbsp;5.&nbsp;</i></b><font size="2" style="text-decoration:underline" color="DARKBLUE">Como pesquisar mensagens?</font></div>
+		<div style="cursor:pointer" width="100%" onClick="javascript:location.href='#6'"><b><i>&nbsp;&nbsp;6.&nbsp;</i></b><font size="2" style="text-decoration:underline" color="DARKBLUE">Como enviar novas mensagens?</font></div>
+		<div style="cursor:pointer" width="100%" onClick="javascript:location.href='#7'"><b><i>&nbsp;&nbsp;7.&nbsp;</i></b><font size="2" style="text-decoration:underline" color="DARKBLUE">Como ver mais informações de uma mensagem?</font></div>
+		<div style="cursor:pointer" width="100%" onClick="javascript:location.href='#8'"><b><i>&nbsp;&nbsp;8.&nbsp;</i></b><font size="2" style="text-decoration:underline" color="DARKBLUE">Como me proteger contra mensagens indesejáveis?</font></div>
+		<div style="cursor:pointer" width="100%" onClick="javascript:location.href='#9'"><b><i>&nbsp;&nbsp;9.&nbsp;</i></b><font size="2" style="text-decoration:underline" color="DARKBLUE">E as minhas preferências continuam as mesmas? </font></div>		
+		<div style="cursor:pointer" width="100%" onClick="javascript:location.href='#10'"><b><i>10.&nbsp;</i></b><font size="2" style="text-decoration:underline" color="DARKBLUE">Mais Dúvidas....</font></div><br>
+		<br><br></font>
+		<b><a name="1">1.&nbsp;</a>Por que mudou o layout?</b><p style="text-align:justify">As pastas agora estão dispostas na área esquerda do
+		Expresso Mail, facilitando a navegação entre elas. Foi extinto o menu principal, sendo substituído pelo
+		menu na área esquerda da tela. Essa área esquerda da tela pode ser ocultada (em Ferramentas / Preferências ), para aumentar sua visualização
+		das mensagens. A barra de capacidade da sua caixa postal foi movida para cima. Este novo layout vem 
+		para melhorar a visualização das ferramentas à sua disposição.<div style="cursor:pointer" align="right" width="100%" onClick="javascript:location.href='#0'" title="Subir para o topo da página"><img border=0 src ='../templates/default/images/arrow_descendant.gif'><font color="DARKBLUE" size="1"><b>Voltar</b></font></div></p>
+		<b><a name="2">2.&nbsp;</a>Onde está o menu Mais ações?</b><p style="text-align:justify">Para efetuar ações como marcar, apagar e exportar, que antes ficavam
+		acessíveis pelo menu principal, agora são feitas rapidamente clicando com o botão direito
+		sobre as mensagens selecionadas.<div style="cursor:pointer" align="right" width="100%" onClick="javascript:location.href='#0'" title="Subir para o topo da página"><img border=0 src ='../templates/default/images/arrow_descendant.gif'><font color="DARKBLUE" size="1"><b>Voltar</b></font></div></p>
+		<b><a name="3">3.&nbsp;</a>Como mover mensagens? </b><p style="text-align:justify">Com a implementação do item arrastar e soltar (<i>Drag'N Drop</i>), 
+		para mover as mensagens selecionadas, basta arrastá-las para a pasta de destino e soltar.
+		Caso a mensagem esteja aberta (sendo lida), apenas clique sobre o título na aba da mensagem, e arraste 
+		sobre a sua pasta de destino.<div style="cursor:pointer" align="right" width="100%" onClick="javascript:location.href='#0'" title="Subir para o topo da página"><img border=0 src ='../templates/default/images/arrow_descendant.gif'><font color="DARKBLUE" size="1"><b>Voltar</b></font></div></p>
+		<b><a name="4">4.&nbsp;</a>Como criar Pastas e subpastas? </b><p style="text-align:justify">O item <i>Editar Pastas</i> foi totalmente refeito. Além 
+		de ficar mais intuitivo para o usuário, permite criar subpastas. Basta clicar uma vez sobre a pasta
+		para selecioná-la, e escolher a ação desejada. Caso queria criar uma subpasta, clique em <i>Nova Pasta</i>.
+		Agora, as pastas principais estão mais protegidas, não permitindo excluir ou renomear 
+		as pastas principais.<div style="cursor:pointer" align="right" width="100%" onClick="javascript:location.href='#0'" title="Subir para o topo da página"><img border=0 src ='../templates/default/images/arrow_descendant.gif'><font color="DARKBLUE" size="1"><b>Voltar</b></font></div></p>
+		<b><a name="5">5.&nbsp;</a>Como pesquisar mensagens?</b><p style="text-align:justify"> O item <i>Pesquisar</i>, assim como a manutenção de pastas, também está
+		totalmente diferente. Preencha os campos de pesquisa referentes ao campos da mensagem pelos quais deseja
+		pesquisar, selecione as pastas em que deve ser feita a pesquisa e clique em <i>Pesquisar</i>. O resultado
+		da pesquisa abre na parte de baixo da própria janela, economizando tempo e espaço. Ao clicar na mensagem
+		resultante, a mensagem se abre na tela atrás.<div style="cursor:pointer" align="right" width="100%" onClick="javascript:location.href='#0'" title="Subir para o topo da página"><img border=0 src ='../templates/default/images/arrow_descendant.gif'><font color="DARKBLUE" size="1"><b>Voltar</b></font></div>
+		</p>
+		<b><a name="6">6.&nbsp;</a>Como enviar novas mensagens?</b><p style="text-align:justify"> Na tela de envio de nova mensagem, não existem mais botões, apenas
+		links. Haviam muitas reclamações com relação ao botão <i>Enviar e Salvar</i>, então agora ao clicar neste
+		link, abre uma janela pop-up onde basta selecionar a pasta e clicar em <i>Enviar e Salvar</i>. Além disso, é 
+		possível exibir o código HTML da mensagem clicando em <i>Ver código HTML</i>.<div style="cursor:pointer" align="right" width="100%" onClick="javascript:location.href='#0'" title="Subir para o topo da página"><img border=0 src ='../templates/default/images/arrow_descendant.gif'><font color="DARKBLUE" size="1"><b>Voltar</b></font></div>
+		</p>
+		<b><a name="7">7.&nbsp;</a>Como ver mais informações de uma mensagem?</b><p style="text-align:justify"> Cabeçalho e várias opções da mensagem ficam ocultos, para aumentar
+		a visualização da mensagem. Para mostrar estas informações, clique em <i>Mais opções</i>.
+		<div style="cursor:pointer" align="right" width="100%" onClick="javascript:location.href='#0'" title="Subir para o topo da página"><img border=0 src ='../templates/default/images/arrow_descendant.gif'><font color="DARKBLUE" size="1"><b>Voltar</b></font></div></p>
+		<b><a name="8">8.&nbsp;</a>Como me proteger contra mensagens indesejáveis?</b><p style="text-align:justify"> O ExpressoMail sempre teve um recurso de criação de
+		filtros para mensagens. Porém, agora este recurso está mais rápido e simples de usar. Acesse este recurso
+		no menu à esquerda, clicando em <i>Filtros</i>. Crie então uma regra para filtro de mensagens, escolhendo
+		 as condições em que essa regra será aplicada e o que ela fará com as mensagens analisadas pela regra.
+		<div style="cursor:pointer" align="right" width="100%" onClick="javascript:location.href='#0'" title="Subir para o topo da página"><img border=0 src ='../templates/default/images/arrow_descendant.gif'><font color="DARKBLUE" size="1"><b>Voltar</b></font></div></p>
+		<b><a name="9">9.&nbsp;</a>E as minhas preferências continuam as mesmas? </b><p style="text-align:justify"> Sim, além das preferências já existentes da versão anterior, o novo menu de <i>Preferências</i> traz novas opções de configuração do seu
+		ExpressoMail. Pode ser acessado através do menu na parte esquerda da tela.
+		<div style="cursor:pointer" align="right" width="100%" onClick="javascript:location.href='#0'" title="Subir para o topo da página"><img border=0 src ='../templates/default/images/arrow_descendant.gif'><font color="DARKBLUE" size="1"><b>Voltar</b></font></div></p>
+		<b><a name="10">10.&nbsp;</a>Dúvidas na utilização do Expresso</b><p style="text-align:justify">Você pode solucionar quaisquer dúvidas sobre utilização
+		 e configuração do Expresso, consultando o manual on-line, acessível através do menu <i>Ferramentas</i>
+		 na parte esquerda da tela, mandando sua dúvida por e-mail clicando no link <i>Sugestões</i> ou ainda,
+		 se os meios anteriores não funcionaram, entrando em contato com a Central de Atendimento Celepar, 
+		 no telefone (41)3350-5007.
+		<div style="cursor:pointer" align="right" width="100%" onClick="javascript:location.href='#0'" title="Subir para o topo da página"><img border=0 src ='../templates/default/images/arrow_descendant.gif'><font color="DARKBLUE" size="1"><b>Voltar</b></font></div></p><br>
+		</font>
+		<div style="margin-right:10px" align='right'><br><font face="Arial" size="1"><a href="#" onclick="javascript:window.close()">Fechar janela</a></font></div>
+		<center><img src="../../phpgwapi/templates/celepar/images/logo_celepar.gif"></center>
+	</div>	
+	</body> 
+</html>
Index: tags/expressoMail1_2/1.234/controller.php
===================================================================
--- tags/expressoMail1_2/1.234/controller.php	(revision 504)
+++ tags/expressoMail1_2/1.234/controller.php	(revision 504)
@@ -0,0 +1,64 @@
+<?php
+	//	Explode action from cExecuteForm function
+	$cExecuteFormReturn = false;
+ 	if($_POST['_action']) { 		
+ 		if($_FILES) {
+ 			$count_files = $_POST['countFiles'];
+			$array_files = array(); 		
+ 			for($idx = 1; $idx <= $count_files; $idx++) { 		
+ 				if($_FILES['file_'.$idx] && !$_FILES['file_'.$idx]['error'])
+ 					$array_files[] = $_FILES['file_'.$idx]; 					 
+ 			}
+ 			$_POST['FILES'] = $array_files;
+ 		} 		  		
+ 		list($app,$class,$method) = explode('.',@$_POST['_action']);
+ 		$cExecuteFormReturn = true;
+ 	}
+ 	//	Explode action from cExecute function
+ 	else if($_GET['action'])
+		list($app,$class,$method) = explode('.',@$_GET['action']);
+	// NO ACTION
+	else
+		return $_SESSION['response'] = 'Post-Content-Length';
+	
+	// Load dinamically class file.
+	if($app == '$this')
+		$filename = 'inc/class.'.$class.'.inc.php';
+	else
+		$filename = '../'.$app.'/inc/class.'.$class.'.inc.php';
+		
+	include_once($filename);	
+	
+	// Create new Object  (class loaded).	
+	$obj = new $class;
+	
+	// Prepare parameters for execution.	
+	$params = array();
+	
+	// If array $_POST is not null , the submit method is POST. 
+	if($_POST) {
+		$params = $_POST;
+	}
+	// If array $_POST is null , and the array $_GET > 1, the submit method is GET.
+	else if(count($_GET) > 1)	{		
+		array_shift($_GET);
+		$params = $_GET;
+	}
+
+	$result = array();
+	
+	
+	// if params is not empty, then class method with parameters.	
+	if($params)
+		$result = $obj -> $method($params);
+	else 		
+		$result = $obj -> $method();
+		
+	// Return result serialized.	
+	
+
+	if(!$cExecuteFormReturn)
+		echo serialize($result);
+	else
+		$_SESSION['response'] = $result;
+?>
Index: tags/expressoMail1_2/1.234/inc/hook_preferences.inc.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/hook_preferences.inc.php	(revision 2)
+++ tags/expressoMail1_2/1.234/inc/hook_preferences.inc.php	(revision 2)
@@ -0,0 +1,11 @@
+<?php
+{
+// Only Modify the $file and $title variables.....
+	$title = 'expressoMail1_2';
+	$file = Array(
+		'Preferences' => $GLOBALS['phpgw']->link('/'.$title.'/preferences.php'),
+	);
+//Do not modify below this line
+	display_section($appname,$title,$file);
+}
+?>
Index: tags/expressoMail1_2/1.234/inc/class.db_functions.inc.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/class.db_functions.inc.php	(revision 757)
+++ tags/expressoMail1_2/1.234/inc/class.db_functions.inc.php	(revision 757)
@@ -0,0 +1,408 @@
+<?php
+define('PHPGW_INCLUDE_ROOT','../');	
+define('PHPGW_API_INC','../phpgwapi/inc');	
+include_once(PHPGW_API_INC.'/class.db.inc.php');
+include_once('class.dynamic_contacts.inc.php');
+	
+class db_functions
+{	
+	
+	var $db;
+	var $user_id;
+	var $related_ids; 
+	
+	function db_functions(){
+		$this->db = new db();		
+		$this->db->Halt_On_Error = 'no';
+		$this->db->connect(
+				$_SESSION['phpgw_info']['expressomail']['server']['db_name'], 
+				$_SESSION['phpgw_info']['expressomail']['server']['db_host'],
+				$_SESSION['phpgw_info']['expressomail']['server']['db_port'],
+				$_SESSION['phpgw_info']['expressomail']['server']['db_user'],
+				$_SESSION['phpgw_info']['expressomail']['server']['db_pass'],
+				$_SESSION['phpgw_info']['expressomail']['server']['db_type']
+		);		
+		$this -> user_id = $_SESSION['phpgw_info']['expressomail']['user']['account_id'];	
+	}
+
+	// BEGIN of functions.
+	function get_cc_contacts()
+	{				
+		$result = array();
+		$stringDropDownContacts = '';		
+		
+		$query_related = $this->get_query_related('A.id_owner'); // field name for owner
+			
+		// Traz os contatos pessoais e compartilhados
+		$query = 'select A.names_ordered, C.connection_value from phpgw_cc_contact A, '.
+			'phpgw_cc_contact_conns B, phpgw_cc_connections C where '.
+			'A.id_contact = B.id_contact and B.id_connection = C.id_connection '.
+			'and B.id_typeof_contact_connection = 1 and ('.$query_related.') group by '. 
+			'A.names_ordered,C.connection_value	order by lower(A.names_ordered)';
+		
+        if (!$this->db->query($query))
+        	return null;
+		while($this->db->next_record())
+			$result[] = $this->db->row();
+
+		if (count($result) != 0) 
+		{
+			// Monta string				
+			foreach($result as $contact)
+				$stringDropDownContacts = $stringDropDownContacts . $contact['names_ordered']. ';' . $contact['connection_value'] . ',';
+			//Retira ultima virgula.
+			$stringDropDownContacts = substr($stringDropDownContacts,0,(strlen($stringDropDownContacts) - 1));
+		}
+		else 
+			return null;
+
+		return $stringDropDownContacts;
+	}
+	// Get Related Ids for sharing contacts or groups.
+	function get_query_related($field_name){		
+		$query_related = $field_name .'='.$this -> user_id;
+		// Only at first time, it gets all related ids...
+		if(!$this->related_ids) {
+			$query = 'select id_related from phpgw_cc_contact_rels where id_contact='.$this -> user_id.' and id_typeof_contact_relation=1';		
+			if (!$this->db->query($query)){
+    	    	return $query_related;
+			}
+			
+			while($this->db->next_record()){
+				$row = $this->db->row();
+				$result[] = $row['id_related'];
+			}
+			if($result)
+				$this->related_ids = implode(",",$result);
+		}
+		if($this->related_ids)
+			$query_related .= ' or '.$field_name.' in ('.$this->related_ids.')';
+		
+		return $query_related;
+	}
+	function get_cc_groups() 
+	{
+		// Pesquisa no CC os Grupos Pessoais.
+		$stringDropDownContacts = '';			
+		$result = array();
+		$query_related = $this->get_query_related('owner'); // field name for 'owner'		
+		$query = 'select title, short_name, owner from phpgw_cc_groups where '.$query_related.' order by lower(title)';
+
+		// Executa a query 
+		if (!$this->db->query($query))
+        	return null;
+		// Retorna cada resultado            	
+		while($this->db->next_record())
+			$result[] = $this->db->row();
+
+		// Se houver grupos ....				
+		if (count($result) != 0) 
+		{
+			// Create Ldap Object, if exists related Ids for sharing groups.
+			if($this->related_ids){
+				$_SESSION['phpgw_info']['expressomail']['user']['cc_related_ids']= array();
+				include_once("class.ldap_functions.inc.php");
+				$ldap = new ldap_functions();
+			}
+			foreach($result as $group){
+				// Searching uid (LDAP), if exists related Ids for sharing groups.
+				// Save into user session. It will used before send mail (verify permission).
+				if(!$_SESSION['phpgw_info']['expressomail']['user']['cc_related_ids'][$group['owner']] && $ldap){					
+					$_SESSION['phpgw_info']['expressomail']['user']['cc_related_ids'][$group['owner']] = $ldap -> uidnumber2uid($group['owner']);
+				}
+				if($this->user_id != $group['owner'])
+					$owneruid = "::".$_SESSION['phpgw_info']['expressomail']['user']['cc_related_ids'][$group['owner']];
+
+				$stringDropDownContacts .=  $group['title']. ';' . ($group['short_name'].$owneruid) . ',';
+			}
+			//Retira ultima virgula.
+			$stringDropDownContacts = substr($stringDropDownContacts,0,(strlen($stringDropDownContacts) - 1));
+		}
+		else
+			return null;		
+		return $stringDropDownContacts;
+	}
+	
+	function getContactsByGroupAlias($alias)
+	{
+		list($alias,$uid) = explode("::",$alias);		
+		$cc_related_ids = $_SESSION['phpgw_info']['expressomail']['user']['cc_related_ids'];		
+		// Explode personal group, If exists related ids (the user has permission to send email).
+		if(is_array($cc_related_ids) && $uid){
+			$owner =  array_search($uid,$cc_related_ids);			
+		}
+		
+		$query = "select C.id_connection, A.names_ordered, C.connection_value from phpgw_cc_contact A, ".
+		"phpgw_cc_contact_conns B, phpgw_cc_connections C,phpgw_cc_contact_grps D,phpgw_cc_groups E where ".
+		"A.id_contact = B.id_contact and B.id_connection = C.id_connection ".
+		"and B.id_typeof_contact_connection = 1 and ".
+		"A.id_owner =".($owner ? $owner : $this->user_id)." and ".			
+		"D.id_group = E.id_group and ".
+		"D.id_connection = C.id_connection and E.short_name = '".$alias."'";
+
+		if (!$this->db->query($query))
+		{
+			exit ('Query failed! File: '.__FILE__.' on line'.__LINE__);
+		}
+
+		$return = false;
+
+		while($this->db->next_record())
+		{
+			$return[] = $this->db->row(); 
+		}
+
+		return $return;
+	}
+
+	function getAddrs($array_addrs) {
+		$array_addrs_final = array();				
+
+		for($i = 0; $i < count($array_addrs); $i++){
+			$j = count($array_addrs_final);
+
+			if(!strchr($array_addrs[$i],'@') 
+					&& strchr($array_addrs[$i],'<')
+					 && strchr($array_addrs[$i],'>')) {		
+
+				$alias = substr($array_addrs[$i], strpos($array_addrs[$i],'<'), strpos($array_addrs[$i],'>'));				
+		 		$alias = str_replace('<','', str_replace('>','',$alias));
+		 		 		        	           		
+		 		$arrayContacts = $this -> getContactsByGroupAlias($alias);
+
+				if($arrayContacts) {
+					foreach($arrayContacts as $index => $contact){
+						if($contact['names_ordered']) {
+							$array_addrs_final[$j] = '"'.$contact['names_ordered'].'" <'.$contact['connection_value'].'>';
+						}
+						else 
+							$array_addrs_final[$j] = $contact['connection_value'];
+
+						$j++;
+					}
+				}
+	   		}
+	   		else
+	   			$array_addrs_final[$j++] = $array_addrs[$i]; 							
+		}
+		return $array_addrs_final;
+	}
+
+	function get_dropdown_contacts(){
+		
+		$contacts = $this -> get_cc_contacts();
+		$groups = $this -> get_cc_groups();
+		
+		if(($contacts) && ($groups))
+			$stringDropDownContacts = $contacts . ',' . $groups;
+		elseif ((!$contacts) && (!$groups))
+			$stringDropDownContacts = '';
+		elseif (($contacts) && (!$groups))
+			$stringDropDownContacts = $contacts;
+		elseif ((!$contacts) && ($groups))
+			$stringDropDownContacts = $groups;
+					
+		if($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['number_of_contacts'] &&
+			$_SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_dynamic_contacts']) {
+			$dynamic_contact = new dynamic_contacts();
+			$dynamic = $dynamic_contact->dynamic_contact_toString();
+			if ($dynamic)
+				$stringDropDownContacts .= ($stringDropDownContacts ? ',' : '') . $dynamic;
+		}
+		return $stringDropDownContacts;	
+	}
+	/*
+	function update_preferences($params){
+		
+		$aux = explode("##",$params['prefe_string']);
+		$new_prefe = array();
+		
+		foreach($aux as $key=>$tmp){
+			if($key == 0){
+				$new_prefe['max_email_per_page'] = $tmp;
+			}
+			if($key == 1){
+				$new_prefe['save_deleted_msg'] = $tmp;
+			}
+			if($key == 2){
+				$new_prefe['delete_trash_messages_after_n_days'] = $tmp;
+			}
+			if($key == 3){
+				$new_prefe['delete_and_show_previous_message'] = $tmp;
+			}
+			if($key == 4){
+				$new_prefe['alert_new_msg'] = $tmp;
+			}
+			if($key == 5){
+				$new_prefe['mainscreen_showmail'] = $tmp;
+			}
+			if($key == 10){
+				$new_prefe['signature'] = $tmp;
+			}
+			if($key == 7){
+				$new_prefe['hide_folders'] = $tmp;
+			}
+			if($key == 6){
+				$new_prefe['save_in_folder'] = $tmp;
+			}
+			if($key == 8){
+				$new_prefe['line_height'] = $tmp;
+			}
+			if($key == 9){
+				$new_prefe['font_size'] = $tmp;
+			}
+			if($key == 11){
+				$new_prefe['use_shortcuts'] = $tmp;
+			}
+		}
+		
+		$string_serial =  serialize($new_prefe);
+		$string_serial = get_magic_quotes_gpc() ? $string_serial : addslashes($string_serial);
+		$query = "update phpgw_preferences set preference_value = '".$string_serial."' where preference_app = 'expressoMail'".
+				 " and preference_owner = '".$this->user_id."'";
+		
+		if (!$this->db->query($query))
+        	return "Failed!";
+		else
+			return "OK!";
+	}
+	*/
+	function update_preferences($params){
+		$string_serial = urldecode($params['prefe_string']);				
+		$string_serial = get_magic_quotes_gpc() ? $string_serial : addslashes($string_serial);
+		$query = "update phpgw_preferences set preference_value = '".$string_serial."' where preference_app = 'expressoMail'".
+				 " and preference_owner = '".$this->user_id."'";
+		
+		if (!$this->db->query($query))
+        	return $this->db->error;
+		else
+			return array("success" => true);
+	}
+	function getUserByEmail($params){	
+		// Follow the referral
+		$email = $params['email'];
+		$query = 'select A.names_ordered, C.connection_name, C.connection_value, A.photo'. 
+				' from phpgw_cc_contact A, phpgw_cc_contact_conns B, '.
+				'phpgw_cc_connections C where A.id_contact = B.id_contact'. 
+ 				' and B.id_connection = C.id_connection and A.id_contact ='. 
+				'(select A.id_contact from phpgw_cc_contact A, phpgw_cc_contact_conns B,'. 
+				'phpgw_cc_connections C where A.id_contact = B.id_contact'. 
+				' and B.id_connection = C.id_connection and A.id_owner = '.$this -> user_id.
+				' and C.connection_value = \''.$email.'\') and '.
+				'C.connection_is_default = true and B.id_typeof_contact_connection = 2';
+
+        if (!$this->db->query($query))
+        	return null;
+
+
+		if($this->db->next_record()) {
+			$result = $this->db->row();
+
+			$obj =  array("cn" => $result['names_ordered'],
+					  "email" => $email,
+					  "type" => "personal",
+					  "telefone" =>  $result['connection_value']);
+
+			if($result['photo'])
+				$_SESSION['phpgw_info']['expressomail']['contact_photo'] =  array($result['photo']);				
+
+			return $obj;
+		}
+		return $result;
+	}
+	
+	function get_dynamic_contacts()
+	{				
+		// Pesquisa os emails e ultima inserção nos contatos dinamicos.
+ 		if(!$this->db->select('phpgw_expressomail_contacts','data',
+						  'id_owner ='.$this -> user_id,
+						  __LINE__,__FILE__))
+		{
+        	return $this->db->Error;
+}
+		while($this->db->next_record())
+		{
+			$result[] = $this->db->row();
+		}
+		if($result) foreach($result as $item) 
+		{
+			$contacts = unserialize($item['data']);
+		}
+		if (count($contacts) == 0)
+		{			
+			return null;
+		}	
+		//Sort by email
+		function cmp($a, $b) { return strcmp($a["email"], $b["email"]);} 
+		usort($contacts,"cmp");
+		return $contacts;
+	}
+	function update_contacts($contacts=array())
+	{			
+		// Atualiza um email nos contatos dinamicos.
+		if(!$this->db->update('phpgw_expressomail_contacts ','data=\''.serialize($contacts).'\'',
+							  'id_owner ='.$this -> user_id,
+							  __LINE__,__FILE__))
+		{
+		  	return $this->db->Error;
+		}
+    	return $contacts;
+	}	
+	
+	function insert_contact($contact)	
+	{
+		$contacts[] = array( 'timestamp' 	=> time(),
+								'email'		=> $contact );
+
+		// Insere um email nos contatos dinamicos.	
+		$query = 'INSERT INTO phpgw_expressomail_contacts (data, id_owner)  ' .
+					'values ( \''.serialize($contacts).'\', '.$this->user_id.')';
+		
+		if(!$this->db->query($query,__LINE__,__FILE__))
+    	  	return $this->db->Error;
+    	return $contacts;
+	}
+	
+	function remove_dynamic_contact($user_id,$line,$file)
+	{
+		$where = $user_id.' = id_owner';
+		$this->db->delete('phpgw_expressomail_contacts',$where,$line,$file);	
+	}
+	
+	function import_vcard($params){
+			
+		include_once('class.imap_functions.inc.php');
+		$objImap = new imap_functions();
+		$msg_number = $params['msg_number'];
+		$idx_file = $params['idx_file'];
+		$msg_part = $params['msg_part'];
+		$msg_folder = $params['msg_folder'];
+		$encoding = strtolower($params['encoding']);
+		$fileContent = "";
+
+		if($msg_number && $msg_part && $msg_folder && (intval($idx_file == '0' ? '1' : $idx_file))) {
+			$mbox_stream = $objImap->open_mbox($msg_folder);   	
+			$fileContent = imap_fetchbody($mbox_stream, $msg_number, $msg_part, FT_UID);
+			include_once('class.imap_attachment.inc.php');
+			$imap_attachment = new imap_attachment();
+			$a = $imap_attachment->download_attachment($mbox_stream, $msg_number);
+			$filename = $a[$idx_file]['name'];
+		}
+		else
+			$filename = $idx_file;
+					
+		if($fileContent) {
+			if($encoding == 'base64')
+				$calendar = imap_base64($fileContent);
+			else if($encoding == 'quoted-printable')
+				$calendar = quoted_printable_decode($fileContent);
+			else
+				$calendar = $fileContent;
+		}
+			
+		$uiicalendar = CreateObject("calendar.uiicalendar");
+		return $uiicalendar = $uiicalendar->import_from_mail($calendar);
+	}
+	
+}
+?>
Index: tags/expressoMail1_2/1.234/inc/class.imap_functions.inc.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/class.imap_functions.inc.php	(revision 830)
+++ tags/expressoMail1_2/1.234/inc/class.imap_functions.inc.php	(revision 830)
@@ -0,0 +1,2846 @@
+<?php
+include_once("class.functions.inc.php");
+include_once("class.ldap_functions.inc.php");
+include_once("class.exporteml.inc.php");
+
+class imap_functions
+{
+	var $public_functions = array
+	(	
+		'get_range_msgs'				=> True,
+		'get_info_msg'					=> True,
+		'get_info_msgs'					=> True,
+		'get_folders_list'				=> True,
+		'import_msgs'					=> True
+	);
+
+	var $ldap;
+	var $mbox;
+	var $imap_port;
+	var $has_cid;
+	var $imap_options = '';
+	var $functions;
+	var $foldersLimit;
+
+	function imap_functions (){
+		$this->foldersLimit = 200; //Limit of folders (mailboxes) user can see
+	 	$this->username 	  = $_SESSION['phpgw_info']['expressomail']['user']['userid'];
+		$this->password 	  = $_SESSION['phpgw_info']['expressomail']['user']['passwd'];
+		$this->imap_server	  = $_SESSION['phpgw_info']['expressomail']['email_server']['imapServer'];
+		$this->imap_port	  = $_SESSION['phpgw_info']['expressomail']['email_server']['imapPort'];
+		$this->imap_delimiter = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDelimiter'];
+		$this->functions	  = new functions();		
+		$this->has_cid = false;
+		
+		if ($_SESSION['phpgw_info']['expressomail']['email_server']['imapTLSEncryption'] == 'yes')
+		{
+			$this->imap_options = '/tls/novalidate-cert';
+		}
+		else
+		{
+			$this->imap_options = '/notls/novalidate-cert';
+		}
+	}
+	// BEGIN of functions.
+	function open_mbox($folder = False)
+	{
+		if (is_resource($this->mbox))
+			return $this->mbox;
+		$folder = mb_convert_encoding($folder, "UTF7-IMAP","ISO_8859-1");
+	 	$this->mbox = @imap_open("{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$folder, $this->username, $this->password) or die(serialize(array('imap_error' => $this->parse_error(imap_last_error()))));
+		return $this->mbox;
+	 }
+
+	function parse_error($error){
+		// This error is returned from Imap.
+		if(strstr($error,'Connection refused')) {
+			return str_replace("%1", $this->functions->getLang("Mail"), $this->functions->getLang("Connection failed with %1 Server. Try later."));
+		}
+		// This error is returned from Postfix.
+		elseif(strstr($error,'message file too big')) {
+			return str_replace("%1", ini_get('upload_max_filesize'),$this->functions->getLang('The size of this message has exceeded  the limit (%1B).'));			
+		}
+		elseif(strstr($error,'virus')) {
+			return str_replace("%1", $this->functions->getLang("Mail"), $this->functions->getLang("Your message was rejected by antivirus. Perhaps your attachment has been infected."));
+		}
+		// This condition verifies if SESSION is expired.
+		elseif(!count($_SESSION))			
+			return "nosession";
+
+		return $error;
+	}
+	
+	function get_range_msgs2($params)
+	{
+		$folder = $params['folder'];
+		$msg_range_begin = $params['msg_range_begin'];
+		$msg_range_end = $params['msg_range_end'];
+		$sort_box_type = $params['sort_box_type'];		
+		$sort_box_reverse = $params['sort_box_reverse'];
+		$search_box_type = $params['search_box_type'] != "ALL" && $params['search_box_type'] != "" ? $params['search_box_type'] : false;
+		$sort_array_msg = $this-> get_msgs($folder, $sort_box_type, $search_box_type, $sort_box_reverse,$msg_range_begin,$msg_range_end);
+		
+		$return = array();
+		$i = 0;
+		$num_msgs = imap_num_msg($this->mbox);
+		if(is_array($sort_array_msg)){
+			foreach($sort_array_msg as $msg_number => $value) 
+			{
+				$temp = $this->get_info_head_msg($msg_number);
+				if(!$temp)
+					return false;
+
+				$return[$i] = $temp;
+				$i++;
+			}
+		}
+		$return['num_msgs'] = $num_msgs;
+
+		return $return;
+	}
+
+	function get_info_head_msg($msg_number) {
+		$head_array = array();
+		include_once("class.imap_attachment.inc.php");
+		$imap_attachment = new imap_attachment();
+
+
+
+		/*Como eu preciso do atributo Importance para saber se o email é 
+		 * importante ou não, uso abaixo a função imap_fetchheader e busco
+		 * o atributo importance nela. Isso faz com que eu acesse o cabeçalho
+		 * duas vezes e de duas formas diferentes, mas em contrapartida, eu
+		 * não preciso reimplementar o método utilizando o fetchheader.
+		 * Como as mensagens são renderizadas em um número pequeno por vez,
+		 * não parece ter perda considerável de performance.
+		 */
+		$flag = preg_match('/importance *: *(.*)\r/i',
+			imap_fetchheader($this->mbox, imap_msgno($this->mbox, $msg_number)),
+			$importance);
+		$head_array['Importance'] = $flag==0?"Normal":$importance[1];
+
+
+		$header = $this->get_header($msg_number);
+		if (!is_object($header))
+			return false;
+		$head_array['Recent'] = $header->Recent;
+		$head_array['Unseen'] = $header->Unseen;
+		if($header->Answered =='A' && $header->Draft == 'X'){
+			$head_array['Forwarded'] = 'F';
+		}
+		else {
+			$head_array['Answered']	= $header->Answered;
+			$head_array['Draft']	= $header->Draft;
+		}
+		$head_array['Deleted'] = $header->Deleted;
+		$head_array['Flagged'] = $header->Flagged;
+
+		$head_array['msg_number'] = $msg_number;
+		//$head_array['msg_folder'] = $folder;
+
+		$date_msg = gmdate("d/m/Y",$header->udate);
+		if (gmdate("d/m/Y") == $date_msg)
+			$head_array['udate'] = gmdate("H:i",$header->udate);
+		else
+			$head_array['udate'] = $date_msg;
+
+		$head_array['aux_date'] = $date_msg; //Auxiliar apenas para mensagens locais.
+
+		$from = $header->from;
+		$head_array['from'] = array();
+		$tmp = imap_mime_header_decode($from[0]->personal);
+		$head_array['from']['name'] = $this->decode_string($tmp[0]->text);
+		$head_array['from']['email'] = $this->decode_string($from[0]->mailbox) . "@" . $from[0]->host;
+		if(!$head_array['from']['name'])
+			$head_array['from']['name'] = $head_array['from']['email'];
+		$to = $header->to;
+		$head_array['to'] = array();
+		$tmp = imap_mime_header_decode($to[0]->personal);
+		$head_array['to']['name'] = $this->decode_string($this->decode_string($tmp[0]->text));
+		$head_array['to']['email'] = $this->decode_string($to[0]->mailbox) . "@" . $to[0]->host;
+		if(!$head_array['to']['name'])
+			$head_array['to']['name'] = $head_array['to']['email'];
+		$head_array['subject'] = $this->decode_string($header->fetchsubject);
+
+		$head_array['Size'] = $header->Size;
+
+		$head_array['attachment'] = array();
+		$head_array['attachment'] = $imap_attachment->get_attachment_headerinfo($this->mbox, $msg_number);
+
+		return $head_array;
+	}
+
+	function decode_string($string)
+	{	
+		if ((strpos(strtolower($string), '=?iso-8859-1') !== false) || (strpos(strtolower($string), '=?windows-1252') !== false))
+		{
+			$tmp = imap_mime_header_decode($string);
+			foreach ($tmp as $tmp1)
+				$return .= $this->htmlspecialchars_encode($tmp1->text);
+			return $return;
+		}
+		else if (strpos(strtolower($string), '=?utf-8') !== false)
+		{
+			$elements = imap_mime_header_decode($string);
+	  		for($i = 0;$i < count($elements);$i++) {
+	   			$charset = $elements[$i]->charset;
+	   			$text =$elements[$i]->text;
+	   			if(!strcasecmp($charset, "utf-8") ||
+	       			!strcasecmp($charset, "utf-7"))	{
+	     			$text = iconv($charset, "ISO-8859-1", $text);
+	       		}
+	   			$decoded .= $this->htmlspecialchars_encode($text);
+	  		}
+	  		return $decoded;
+		}
+		else
+			return $this->htmlspecialchars_encode($string);
+	}
+	/**
+	* Função que importa arquivos .eml exportados pelo expresso para a caixa do usuário. Testado apenas
+	* com .emls gerados pelo expresso, e o arquivo pode ser um zip contendo vários emls ou um .eml.
+	*/
+	function import_msgs($params) {
+		if(!$this->mbox)		
+			$this->mbox = $this->open_mbox();
+		$errors = array();
+		$invalid_format = false;
+		$filename = $params['FILES'][0]['name'];
+		$quota = imap_get_quotaroot($this->mbox, $params["folder"]);
+		if((($quota['limit'] - $quota['usage'])*1024) <= $params['FILES'][0]['size']){
+			return array( 'error' => $this->functions->getLang("fail in import:").
+							" ".$this->functions->getLang("Over quota"));		
+		}
+		if(substr($filename,strlen($filename)-4)==".zip") {
+			$zip = zip_open($params['FILES'][0]['tmp_name']);
+
+			if ($zip) {
+				while ($zip_entry = zip_read($zip)) {
+					
+					if (zip_entry_open($zip, $zip_entry, "r")) {
+						$email = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
+						$status = @imap_append($this->mbox,
+								"{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$params["folder"],
+									$email
+									);
+						if(!$status)
+							array_push($errors,zip_entry_name($zip_entry));
+						zip_entry_close($zip_entry);
+					}
+				}
+				zip_close($zip);
+			}
+			}
+		else if(substr($filename,strlen($filename)-4)==".eml") {
+			$email = implode("",file($params['FILES'][0]['tmp_name']));
+			$status = @imap_append($this->mbox,
+								"{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$params["folder"],
+									$email
+									);
+			if(!$status){
+				array_push($errors,zip_entry_name($zip_entry));
+				zip_entry_close($zip_entry);
+			}
+		}
+		else 
+		{
+			return array("error" => $this->functions->getLang("wrong file format"));
+			$invalid_format = true;
+		}
+		
+		if(!$invalid_format) {
+			if(count($errors)>0) {
+				$message = $this->functions->getLang("fail in import:")."\n";
+				foreach($errors as $arquivo) {
+					$message.=$arquivo."\n";
+				}
+				return array("error" => $message);
+			}
+			else
+				return $this->functions->getLang("The import was executed successfully.");			
+		}
+	}	
+	/*
+		Remove os anexos de uma mensagem. A estratégia para isso é criar uma mensagem nova sem os anexos, mantendo apenas
+		a primeira parte do e-mail, que é o texto, sem anexos.
+		O método considera que o email é multpart.
+	*/
+	function remove_attachments($params) {
+		include_once("class.message_components.inc.php");
+		if(!$this->mbox || !is_resource($this->mbox))
+			$this->mbox = $this->open_mbox($params["folder"]);
+		$return["status"] = true;
+		$return["msg_num"] = $params["msg_num"];
+		$header = "";
+		
+		$headertemp = explode("\n",imap_fetchheader($this->mbox, imap_msgno($this->mbox, $params["msg_num"])));
+		foreach($headertemp as $head) {//Se eu colocar todo o header do email dá pau no append, então procuro apenas o que interessa.
+			$head1 = explode(":",$head);
+			if ( (strtoupper($head1[0]) == strtoupper("to")) || 
+					(strtoupper($head1[0]) == strtoupper("from")) || 
+					(strtoupper($head1[0]) == strtoupper("subject")) ||
+					(strtoupper($head1[0]) == strtoupper("date")) )
+				$header .= $head."\r\n";
+		}
+				
+		$msg = &new message_components($this->mbox);
+		$msg->fetch_structure($params["msg_num"]);/* O fetchbody tava trazendo o email com problemas na acentuação. 
+							     Então uso essa classe para verificar a codificação e o charset, 
+							     para que o método decodeBody do expresso possa trazer tudo certinho*/
+		
+		$status = @imap_append($this->mbox,
+				"{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$params["folder"],
+					$header.
+					"\r\n".
+					str_replace("\n","\r\n",$this->decodeBody(
+							imap_fetchbody($this->mbox,imap_msgno($this->mbox, $params["msg_num"]),"1"),
+							$msg->encoding[$params["msg_num"]][0], $msg->charset[$params["msg_num"]][0]
+							)					
+					)); //Append do novo email, só com header e conteúdo sem anexos.
+		
+		if(!$status) {
+			$return["status"] = false;
+			$return["msg"] = lang("error appending mail on delete attachments");
+		}
+	
+		@imap_delete($this->mbox, imap_msgno($this->mbox, $params["msg_num"])); //Insere o novo e-mail sem anexos.
+		@imap_expunge($this->mbox); //Deleta o e-mail com anexos
+		
+		return $return;
+		
+	}
+
+/**
+	 * 
+	 * @return 
+	 * @param $params Object
+	 */
+	function get_info_msgs($params) {
+		include_once("class.exporteml.inc.php");
+		$return = array();
+		$new_params = array();
+		$attach_params = array();
+		$new_params["msg_folder"]=$params["folder"];
+		$attach_params["folder"] = $params["folder"];
+		$msgs = explode(",",$params["msgs_number"]);
+		$exporteml = new ExportEml();
+		foreach($msgs as $msg_number) {
+			$new_params["msg_number"] = $msg_number;
+			//ini_set("display_errors","1");
+			$msg_info = $this->get_info_msg($new_params);
+
+			$this->mbox = $this->open_mbox($params['folder']); //Não sei porque, mas se não abrir de novo a caixa dá erro.
+			$msg_info['header'] = $this->get_info_head_msg($msg_number);
+
+			$attach_params["num_msg"] = $msg_number;
+			$msg_info['array_attach'] = $exporteml->get_attachments_in_array($attach_params);
+			$msg_info['url_export_file'] = $exporteml->export_to_archive($msg_number,$params["folder"]);
+			imap_close($this->mbox);
+			$this->mbox=false;
+			array_push($return,serialize($msg_info));
+		}
+		return $return;
+	}
+
+	function get_info_msg($params)
+	{
+		$return = array();
+		$msg_number = $params['msg_number'];
+		$msg_folder = $params['msg_folder'];
+		
+		if(!$this->mbox || !is_resource($this->mbox))
+			$this->mbox = $this->open_mbox($msg_folder);		
+		
+		$header = $this->get_header($msg_number);
+		if (!$header) {
+			$return['status_get_msg_info'] = "false";			
+			return $return;
+		}
+		
+		$header_ = imap_fetchheader($this->mbox, $msg_number, FT_UID);
+
+		$return_get_body = $this->get_body_msg($msg_number, $msg_folder);
+		
+		//Substituição de links em email para abrir no próprio expresso
+		$body = ereg_replace("<a[^>]*href=[\'\"]mailto:([^\"\']+)[\'\"]>([^<]+)</a>","<a href=\"javascript:new_message_to('\\1')\">\\2</a>",$return_get_body['body']);
+
+		$return['body'] 		= $body;
+		$return['attachments'] 	= $return_get_body['attachments'];
+		$return['thumbs'] 		= $return_get_body['thumbs'];
+		$return['signature']	= $return_get_body['signature'];
+
+		$pattern = '/^[ \t]*Disposition-Notification-To(^:)*:(.+)*@(.+)*$/isUm';
+		if (preg_match($pattern, $header_, $fields))
+		{
+			preg_match('/[[:alnum:]\._\-]+@[[:alnum:]_\-\.]+/',$fields[0], $matches);
+			$return['DispositionNotificationTo'] = "<".$matches[0].">";
+		}
+
+		$return['Recent']	= $header->Recent;
+		$return['Unseen']	= $header->Unseen;
+		$return['Deleted']	= $header->Deleted;		
+		$return['Flagged']	= $header->Flagged;
+
+		if($header->Answered =='A' && $header->Draft == 'X'){
+			$return['Forwarded'] = 'F';
+		}
+ 
+		else {
+			$return['Answered']	= $header->Answered;
+			$return['Draft']	= $header->Draft;	
+		}
+
+		$return['msg_number'] = $msg_number;
+		$return['msg_folder'] = $msg_folder;
+	
+		$date_msg = gmdate("d/m/Y",$header->udate);
+		if (date("d/m/Y") == $date_msg)
+			$return['udate'] = gmdate("H:i",$header->udate);
+		else
+			$return['udate'] = $date_msg;
+		
+		$return['msg_day'] = $date_msg; 
+		$return['msg_hour'] = gmdate("H:i",$header->udate);
+		
+		if (date("d/m/Y") == $date_msg) //no dia
+		{
+			$return['fulldate'] = gmdate("d/m/Y H:i",$header->udate);
+			$return['smalldate'] = gmdate("H:i",$header->udate);
+
+			$timestamp_now = strtotime("now");  			
+			$timestamp_msg_time = $header->udate;
+			// $timestamp_now is GMT and $timestamp_msg_time is MailDate TZ. 
+			// The variable $timestamp_diff is calculated without MailDate TZ.
+			$pdate = date_parse($header->MailDate);
+			$timestamp_diff = $timestamp_now - $timestamp_msg_time  + ($pdate['zone']*(-60));
+			
+			if (gmdate("H",$timestamp_diff) > 0)
+			{
+				$return['fulldate'] .= " (" . gmdate("H:i", $timestamp_diff) . ' ' . $this->functions->getLang('hours ago') . ')';
+			}
+			else
+			{
+				if (gmdate("i",$timestamp_diff) == 0){
+					$return['fulldate'] .= ' ('. $this->functions->getLang('now').')';
+				}
+				elseif (gmdate("i",$timestamp_diff) == 1){
+					$return['fulldate'] .= ' (1 '. $this->functions->getLang('minute ago').')';
+				}
+				else{
+					$return['fulldate'] .= " (" . gmdate("i",$timestamp_diff) .' '. $this->functions->getLang('minutes ago') . ')';
+				}
+			}
+		}
+		else{
+			$return['fulldate'] = gmdate("d/m/Y H:i",$header->udate);
+			$return['smalldate'] = gmdate("d/m/Y",$header->udate);
+		}
+		
+		$from = $header->from;
+		$return['from'] = array();
+		$tmp = imap_mime_header_decode($from[0]->personal);
+		$return['from']['name'] = $this->decode_string($tmp[0]->text);
+		$return['from']['email'] = $this->decode_string($from[0]->mailbox . "@" . $from[0]->host);
+		if ($return['from']['name'])
+		{
+			if (substr($return['from']['name'], 0, 1) == '"')
+				$return['from']['full'] = $return['from']['name'] . ' ' . '&lt;' . $return['from']['email'] . '&gt;';
+			else
+				$return['from']['full'] = '"' . $return['from']['name'] . '" ' . '&lt;' . $return['from']['email'] . '&gt;';
+		}
+		else
+			$return['from']['full'] = $return['from']['email'];
+		
+		// Sender attribute
+		$sender = $header->sender;
+		$return['sender'] = array();
+		$tmp = imap_mime_header_decode($sender[0]->personal);
+		$return['sender']['name'] = $this->decode_string($tmp[0]->text);
+		$return['sender']['email'] = $this->decode_string($sender[0]->mailbox . "@" . $sender[0]->host);
+		if ($return['sender']['name'])
+		{
+			if (substr($return['sender']['name'], 0, 1) == '"')
+				$return['sender']['full'] = $return['sender']['name'] . ' ' . '&lt;' . $return['sender']['email'] . '&gt;';
+			else
+				$return['sender']['full'] = '"' . $return['sender']['name'] . '" ' . '&lt;' . $return['sender']['email'] . '&gt;';
+		}
+		else
+			$return['sender']['full'] = $return['sender']['email'];
+
+		if($return['from']['full'] == $return['sender']['full'])
+			$return['sender'] = null;
+		$to = $header->to;
+		$return['toaddress2'] = "";
+		if (!empty($to))
+		{
+			foreach ($to as $tmp)
+			{
+				if (!empty($tmp->personal))
+				{
+					$personal_tmp = imap_mime_header_decode($tmp->personal);
+					$return['toaddress2'] .= '"' . $personal_tmp[0]->text . '"';
+					$return['toaddress2'] .= " ";
+					$return['toaddress2'] .= "&lt;";
+					if ($tmp->host != 'unspecified-domain')
+						$return['toaddress2'] .= $tmp->mailbox . "@" . $tmp->host;
+					else
+						$return['toaddress2'] .= $tmp->mailbox;
+					$return['toaddress2'] .= "&gt;";
+					$return['toaddress2'] .= ", ";
+				}
+				else
+				{
+					if ($tmp->host != 'unspecified-domain')
+						$return['toaddress2'] .= $tmp->mailbox . "@" . $tmp->host;
+					else
+						$return['toaddress2'] .= $tmp->mailbox;
+					$return['toaddress2'] .= ", ";
+				}
+			}
+			$return['toaddress2'] = $this->del_last_two_caracters($return['toaddress2']);
+		}
+		else
+		{
+			$return['toaddress2'] = "&lt;Empty&gt;";
+		}	
+		
+		$cc = $header->cc;
+		$return['cc'] = "";
+		if (!empty($cc))
+		{
+			foreach ($cc as $tmp_cc)
+			{
+				if (!empty($tmp_cc->personal))
+				{
+					$personal_tmp_cc = imap_mime_header_decode($tmp_cc->personal);
+					$return['cc'] .= '"' . $personal_tmp_cc[0]->text . '"';
+					$return['cc'] .= " ";
+					$return['cc'] .= "&lt;";
+					$return['cc'] .= $tmp_cc->mailbox . "@" . $tmp_cc->host;
+					$return['cc'] .= "&gt;";
+					$return['cc'] .= ", ";
+				}
+				else
+				{
+					$return['cc'] .= $tmp_cc->mailbox . "@" . $tmp_cc->host;
+					$return['cc'] .= ", ";
+				}
+			}
+			$return['cc'] = $this->del_last_two_caracters($return['cc']);
+		}
+		else
+		{
+			$return['cc'] = "";
+		}	
+
+		##
+		# @AUTHOR Rodrigo Souza dos Santos
+		# @DATE 2008/09/12
+		# @BRIEF Adding the BCC field.
+		##
+		$bcc = $header->bcc;
+		$return['bcc'] = "";
+		if (!empty($bcc))
+		{
+			foreach ($bcc as $tmp_bcc)
+			{
+				if (!empty($tmp_bcc->personal))
+				{
+					$personal_tmp_bcc = imap_mime_header_decode($tmp_bcc->personal);
+					$return['bcc'] .= '"' . $personal_tmp_bcc[0]->text . '"';
+					$return['bcc'] .= " ";
+					$return['bcc'] .= "&lt;";
+					$return['bcc'] .= $tmp_bcc->mailbox . "@" . $tmp_bcc->host;
+					$return['bcc'] .= "&gt;";
+					$return['bcc'] .= ", ";
+				}
+				else
+				{
+					$return['bcc'] .= $tmp_bcc->mailbox . "@" . $tmp_bcc->host;
+					$return['bcc'] .= ", ";
+				}
+			}
+			$return['bcc'] = $this->del_last_two_caracters($return['bcc']);
+		}
+		else
+		{
+			$return['bcc'] = "";
+		}	
+
+		$reply_to = $header->reply_to;
+		$return['reply_to'] = "";
+		if (is_object($reply_to[0]))
+		{
+			if ($return['from']['email'] != ($reply_to[0]->mailbox."@".$reply_to[0]->host))
+			{
+				if (!empty($reply_to[0]->personal))
+				{
+					$personal_reply_to = imap_mime_header_decode($tmp_reply_to->personal);
+					if(!empty($personal_reply_to[0]->text)) {
+						$return['reply_to'] .= '"' . $personal_reply_to[0]->text . '"';
+						$return['reply_to'] .= " ";
+						$return['reply_to'] .= "&lt;";
+						$return['reply_to'] .= $reply_to[0]->mailbox . "@" . $reply_to[0]->host;
+						$return['reply_to'] .= "&gt;";
+					}
+					else {
+						$return['reply_to'] .= $reply_to[0]->mailbox . "@" . $reply_to[0]->host;
+					}
+				}
+				else
+				{
+					$return['reply_to'] .= $reply_to[0]->mailbox . "@" . $reply_to[0]->host;
+				}
+			}
+		}
+		$return['reply_to'] = $this->decode_string($return['reply_to']);
+		$return['subject'] = $this->decode_string($header->fetchsubject);
+		$return['Size'] = $header->Size;
+		$return['reply_toaddress'] = $header->reply_toaddress;
+
+		//All this is to help in local messages
+		$return['timestamp'] = $header->udate;
+		$return['login'] = $_SESSION['phpgw_info']['expressomail']['user']['account_id'];//$GLOBALS['phpgw_info']['user']['account_id'];
+		$return['reply_toaddress'] = $header->reply_toaddress;
+
+		return $return;
+	}
+	
+	function get_body_msg($msg_number, $msg_folder)
+	{
+		include_once("class.message_components.inc.php");
+		$msg = &new message_components($this->mbox);
+		$msg->fetch_structure($msg_number);
+		$return = array();
+		$return['attachments'] = $this-> download_attachment($msg,$msg_number);		
+		if(!$this->has_cid)
+		{
+			$return['thumbs']  = $this->get_thumbs($msg,$msg_number,urlencode($msg_folder));
+			$return['signature'] = $this->get_signature($msg,$msg_number,$msg_folder);
+		}			
+		
+		if(!$msg->structure[$msg_number]->parts) //Simple message, only 1 piece
+		{
+			$attachment = array(); //No attachments
+			
+			$content = '';
+			if (strtolower($msg->structure[$msg_number]->subtype) == "plain")
+			{
+				$content .= nl2br($this->decodeBody((imap_body($this->mbox, $msg_number, FT_UID)), $msg->encoding[$msg_number][0], $msg->charset[$msg_number][0]));
+			}
+			else if (strtolower($msg->structure[$msg_number]->subtype) == "html")
+			{
+				$content .= $this->decodeBody(imap_body($this->mbox, $msg_number, FT_UID), $msg->encoding[$msg_number][0], $msg->charset[$msg_number][0]);
+			}
+		}
+		else 
+		{ //Complicated message, multiple parts
+			$html_body = '';
+			$content = '';
+			$has_multipart = true;
+			$this->has_cid = false;
+			
+			if (strtolower($msg->structure[$msg_number]->subtype) == "related")
+				$this->has_cid = true;
+			
+			if (strtolower($msg->structure[$msg_number]->subtype) == "alternative") {
+				$show_only_html = false;
+				foreach($msg->pid[$msg_number] as $values => $msg_part) {
+					$file_type = strtolower($msg->file_type[$msg_number][$values]);
+					if($file_type == "text/html")
+						$show_only_html = true;			
+				}
+			}
+			else
+				$show_only_html = false;
+
+			foreach($msg->pid[$msg_number] as $values => $msg_part)
+			{
+				
+				$file_type = strtolower($msg->file_type[$msg_number][$values]);
+				if($file_type == "message/rfc822")
+					$has_multipart = false;
+	
+				if($file_type == "multipart/alternative")
+					$has_multipart = false;
+	
+				if(($file_type == "text/plain" 
+					|| $file_type == "text/html")
+					&& $file_type != 'attachment')
+				{
+					if($file_type == "text/plain" && !$show_only_html && $has_multipart)
+					{
+						// if TXT file size > 100kb, then it will not expand.
+						if(!($file_type == "text/plain" && $msg->fsize[$msg_number][$values] > 102400)) {
+							$content .= nl2br(htmlentities($this->decodeBody(imap_fetchbody($this->mbox, $msg_number, $msg_part, FT_UID), $msg->encoding[$msg_number][$values], $msg->charset[$msg_number][$values])));							
+						}
+					}
+					// if HTML attachment file size > 300kb, then it will not expand.
+					else if($file_type == "text/html"  && $msg->fsize[$msg_number][$values] < 307200)
+					{
+						$content .= $this->decodeBody(imap_fetchbody($this->mbox, $msg_number, $msg_part, FT_UID), $msg->encoding[$msg_number][$values], $msg->charset[$msg_number][$values]);
+						$show_only_html = true;
+					}
+				}
+				else if($file_type == "message/delivery-status"){
+					$content .= "<hr align='left' width='95%' style='border:1px solid #DCDCDC'>";
+					$content .= nl2br($this->decodeBody(imap_fetchbody($this->mbox, $msg_number, $msg_part, FT_UID), $msg->encoding[$msg_number][$values], $msg->charset[$msg_number][$values]));						
+
+				}
+				else if($file_type == "message/rfc822" || $file_type == "text/rfc822-headers"){
+					
+					include_once("class.imap_attachment.inc.php");
+					$att = new imap_attachment();
+					$attachments =  $att -> get_attachment_info($this->mbox,$msg_number);
+					if($attachments['number_attachments'] > 0) {												
+						foreach($attachments ['attachment'] as $index => $attachment){
+							if(strtolower($attachment['type']) == "delivery-status" ||
+								strtolower($attachment['type']) == "rfc822" ||								
+								strtolower($attachment['type']) == "rfc822-headers" ||
+								strtolower($attachment['type']) == "plain"
+							){
+								$obj = imap_rfc822_parse_headers(imap_fetchbody($this->mbox, $msg_number, $msg_part, FT_UID), $msg->encoding[$msg_number][$values]);					
+								$content .= "<hr align='left' width='95%' style='border:1px solid #DCDCDC'>";					
+								$content .= "<br><table  style='margin:2px;border:1px solid black;background:#EAEAEA'>";
+								$content .= "<tr><td><b>".$this->functions->getLang("Subject").":</b></td><td>".$this->decode_string($obj->subject)."</td></tr>";
+								$content .= "<tr><td><b>".$this->functions->getLang("From").":</b></td><td>".$this->decode_string($obj->from[0]->mailbox."@".$obj->from[0]->host)."</td></tr>";
+								$content .= "<tr><td><b>".$this->functions->getLang("Date").":</b></td><td>".$obj->date."</td></tr>";
+								$content .= "<tr><td><b>".$this->functions->getLang("TO").":</b></td><td>".$this->decode_string($obj->to[0]->mailbox."@".$obj->to[0]->host)."</td></tr>";
+								$content .= !$obj->cc ? "</table><br>" :"<tr><td><b>".$this->functions->getLang("CC").":</b></td><td>".$this->decode_string($obj->cc[0]->mailbox."@".$obj->cc[0]->host)."</td></tr></table><br>";								
+								$ix_part = 	strtolower($attachment['type']) == "delivery-status" ? 1 : 0;
+								$content .= nl2br($this->decodeBody(imap_fetchbody($this->mbox, $msg_number, ($attachment['part_in_msg']+$ix_part).".1", FT_UID), $msg->encoding[$msg_number][$values], $msg->charset[$msg_number][$values]));								
+								break;			
+							}
+						}
+					}
+				}
+			}
+			if($file_type == "text/plain" && ($show_only_html &&  $msg_part == 1) ||  (!$show_only_html &&  $msg_part == 3)){
+				if(strtolower($msg->structure[$msg_number]->subtype) == "mixed" &&  $msg_part == 1)
+					$content .= nl2br(imap_base64(imap_fetchbody($this->mbox, $msg_number, $msg_part, FT_UID)));
+				else if(!strtolower($msg->structure[$msg_number]->subtype) == "mixed")
+					$content .= nl2br(imap_fetchbody($this->mbox, $msg_number, $msg_part, FT_UID));				
+			}
+		} 
+		// Force message with flag Seen (imap_fetchbody not works correctly)
+		$params = array('folder' => $msg_folder, "msgs_to_set" => $msg_number, "flag" => "seen");				
+		$this->set_messages_flag($params);
+		$content = $this->process_embedded_images($msg,$msg_number,$content, $msg_folder);
+		$content = $this->replace_special_characters($content);
+		$return['body'] = $content;
+		return $return;
+	}
+	
+	function htmlfilter($body)
+	{
+		require_once('htmlfilter.inc');
+		
+		$tag_list = Array(
+				false,
+				'blink',
+				'object',
+				'meta',
+				'html',
+				'link',
+				'frame',
+				'iframe',
+				'layer',
+				'ilayer',
+				'plaintext'
+		);
+
+		/**
+		* A very exclusive set:
+		*/
+		// $tag_list = Array(true, "b", "a", "i", "img", "strong", "em", "p");
+		$rm_tags_with_content = Array(
+				'script',
+				'style',
+				'applet',
+				'embed',
+				'head',
+				'frameset',
+				'xml',
+				'xmp'
+		);
+
+		$self_closing_tags =  Array(
+				'img',
+				'br',
+				'hr',
+				'input'
+		);
+
+		$force_tag_closing = true;
+
+		$rm_attnames = Array(
+    			'/.*/' =>
+				Array(
+					'/target/i',
+					//'/^on.*/i', -> onClick, dos compromissos da agenda.
+					'/^dynsrc/i',
+					'/^datasrc/i',
+					'/^data.*/i',
+					'/^lowsrc/i'
+				)
+		);
+
+		/**
+		 * Yeah-yeah, so this looks horrible. Check out htmlfilter.inc for
+		 * some idea of what's going on here. :)
+		 */
+
+		$bad_attvals = Array(
+    		'/.*/' =>
+	    	Array(
+	    	      '/.*/' =>
+		    	      Array(
+	    	    	        Array(
+            	    	          '/^([\'\"])\s*\S+\s*script\s*:*(.*)([\'\"])/si',
+                		          //'/^([\'\"])\s*https*\s*:(.*)([\'\"])/si', -> doclinks notes
+                        		  '/^([\'\"])\s*mocha\s*:*(.*)([\'\"])/si',
+	                        	  '/^([\'\"])\s*about\s*:(.*)([\'\"])/si'
+	    	                      ),
+    	    	            Array(
+        		   	              '\\1oddjob:\\2\\1',
+                		          //'\\1uucp:\\2\\1', -> doclinks notes
+                    		      '\\1amaretto:\\2\\1',
+                        		  '\\1round:\\2\\1'
+                          		)
+		                    ),     
+          
+		          '/^style/i' =>
+    		              Array(
+        		                Array(
+            		                  '/expression/i',
+                		              '/behaviou*r/i',
+                    		          '/binding/i',
+                        		      '/include-source/i',
+                            		  '/url\s*\(\s*([\'\"]*)\s*https*:.*([\'\"]*)\s*\)/si',
+		                              '/url\s*\(\s*([\'\"]*)\s*\S+\s*script:.*([\'\"]*)\s*\)/si'
+    		                         ),
+        		                Array(
+            		                  'idiocy',
+                		              'idiocy',
+                    		          'idiocy',
+                        		      'idiocy',
+                            		  'url(\\1http://securityfocus.com/\\1)',
+	                            	  'url(\\1http://securityfocus.com/\\1)'
+	    	                         )
+    	    	                )
+        	    	  )
+		    );
+
+		$add_attr_to_tag = Array(
+				'/^a$/i' => Array('target' => '"_new"')
+		);
+    	
+    	
+		$trusted_body = sanitize($body,
+				$tag_list,
+				$rm_tags_with_content,
+				$self_closing_tags,
+				$force_tag_closing,
+				$rm_attnames,
+				$bad_attvals,
+				$add_attr_to_tag
+		);
+    	
+	    return $trusted_body;
+	}
+	
+	function decodeBody($body, $encoding, $charset=null)
+	{
+		/**
+		* replace e-mail by anchor.
+		*/
+		// HTML Filter
+		//$body = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=# onclick=\"javascript:new_message('new_by_message', '\\2@\\3')\">\\2@\\3</a>", $body);
+    	//$body = str_replace("\r\n", "\n", $body);
+		if ($encoding == 'quoted-printable')
+		{
+			/*
+			
+			for($i=0;$i<256;$i++) {
+				$c1=dechex($i);
+				if(strlen($c1)==1){$c1="0".$c1;}
+				$c1="=".$c1;
+				$myqprinta[]=$c1;
+				$myqprintb[]=chr($i);
+			}	    	
+			 */
+			$body = str_replace($myqprinta,$myqprintb,($body));
+			$body = quoted_printable_decode($body);
+        	while (ereg("=\n", $body)) 
+        	{
+           		$body = ereg_replace ("=\n", '', $body);
+        	}
+    	}
+    	else if ($encoding == 'base64') 
+    	{
+        	$body = base64_decode($body);
+    	}
+    	else if ($encoding == '7bit') 
+    	{
+        	$body = quoted_printable_decode($body);        	        	        	
+    	}
+		// All other encodings are returned raw.
+		if (strtolower($charset) == "utf-8")
+			return utf8_decode($body);
+    	else
+			return $body;
+	}
+	
+	function process_embedded_images($msg, $msgno, $body, $msg_folder)
+	{
+		if (count($msg->inline_id[$msgno]) > 0)
+		{
+			foreach ($msg->inline_id[$msgno] as $index => $cid)
+			{
+				$cid = eregi_replace("<", "", $cid);
+				$cid = eregi_replace(">", "", $cid);
+				$msg_part = $msg->pid[$msgno][$index];
+				//$body = eregi_replace("alt=\"\"", "", $body);
+				$body = eregi_replace("<br/>", "", $body);
+				$body = str_replace("src=\"cid:".$cid."\"", " src=\"./inc/show_embedded_attach.php?msg_folder=$msg_folder&msg_num=$msgno&msg_part=$msg_part\" ", $body);
+				$body = str_replace("src='cid:".$cid."'", " src=\"./inc/show_embedded_attach.php?msg_folder=$msg_folder&msg_num=$msgno&msg_part=$msg_part\" ", $body);
+				$body = str_replace("src=cid:".$cid, " src=\"./inc/show_embedded_attach.php?msg_folder=$msg_folder&msg_num=$msgno&msg_part=$msg_part\" ", $body);
+			}
+		}
+		
+		return $body;
+	}
+	
+	function replace_special_characters($body)
+	{
+		// Suspected TAGS!
+		/*$tag_list = Array(   
+			'blink','object','meta',
+			'html','link','frame',
+			'iframe','layer','ilayer',
+			'plaintext','script','style','img',
+			'applet','embed','head',
+			'frameset','xml','xmp');
+		*/
+
+		// Layout problem: Change html elements 
+		// with absolute position to relate position, CASE INSENSITIVE. 
+		$body = @eregi_replace("POSITION: ABSOLUTE;","",$body);
+
+		$tag_list = Array('head','blink','object','frame',
+			'iframe','layer','ilayer','plaintext','script',
+			'applet','embed','frameset','xml','xmp','style');
+
+		$body = $this-> replace_links($body);
+		$blocked_tags = array();		
+		foreach($tag_list as $index => $tag) {
+			$new_body = eregi_replace("<$tag", "<!--$tag", $body);
+			if($body != $new_body) {
+				$blocked_tags[] = $tag;
+			}
+			$body = eregi_replace("</$tag>", "</$tag-->", $new_body);
+		}
+		// Malicious Code Remove
+		$dirtyCodePattern = "/(<([\w]+)([^>]*)on(mouse(move|over|down|up)|load|blur|change|click|dblclick|focus|key(down|up|press)|select)=[\"'][^>\"']*[\"']([^>]*)>)(.*)(<\/\\2>)?/isU";
+		preg_match_all($dirtyCodePattern,$body,$rest,PREG_PATTERN_ORDER);
+		foreach($rest[0] as $i => $val)
+			if (!(preg_match("/window\.open/i",$rest[1][$i]) && strtoupper($rest[4][$i]) == "CLICK" )) //Calendar events
+				$body = str_replace($rest[1][$i],"<".$rest[2][$i].$rest[3][$i].$rest[7][$i].">",$body);
+
+		return  "<span>".$body;
+	}
+
+	function replace_links($body) {					
+  		$matches = array();
+		// Verify exception.
+		@preg_match("/<a href=\"notes:\/\/\//",$body,$matches);
+		// It no has exception,then open the link in new window.
+		if(count($matches))
+			return $body;
+	
+		$pattern = '/(?<=[\s|(<br>)|\n|\r|;])((http(s?):\/\/((?:[\w]\.?)+(?::[\d]+)?[:\/.\-~&=?%;@#,+\w]*))|((?:www?\.)(?:\w\.?)*(?::\d+)?[\:\/\w.\-~&=?%;@+]*))/i';
+		$replacement = '<a href="http$3://$4$5" target="_blank">$1</a>';
+		return preg_replace($pattern, $replacement, $body); 
+		
+		// Original
+		//return preg_replace('/(?<=[\s|(<br>)|\n|\r|;])((http(s?):\/\/((?:[\w]\.?)+(?::[\d]+)?[\/.\-~&=?%;@#,+\w]*))|((?:www?\.)(?:\w\.?)*(?::\d+)?[\/\w.\-~&=?%;@+]*))/i', '<a href="http$3://$4$5" target="_blank">http$3://$4$5</a>', $body);
+	}
+
+	function get_signature($msg, $msg_number, $msg_folder)
+	{ 
+		foreach ($msg->file_type[$msg_number] as $index => $file_type)
+		{
+			$file_type = strtolower($file_type);
+			if(strtolower($msg->encoding[$msg_number][$index]) == 'base64') 
+			{
+				if ($file_type == 'application/x-pkcs7-signature' || $file_type == 'application/pkcs7-signature') 
+				{
+					$export_mail = new ExportEml();
+					$params['folder'] = $msg_folder;
+					$params['msgs_to_export'] = $msg_number;
+				    $tempDir = ini_get("session.save_path");
+					$cert_file = $tempDir."/certificate_".base_convert(microtime(), 10, 36).".crt";					
+					$result = openssl_pkcs7_verify($export_mail->export_msg($params),PKCS7_NOVERIFY,$cert_file);
+					if (file_exists($cert_file))
+					{
+						$handle = fopen ($cert_file,"r");
+						$pemout = fread($handle,filesize($cert_file));
+						fclose($handle);
+						$cert=openssl_x509_parse($pemout);
+						$temp = "\\nSigned by: ".$cert[subject][CN];
+						$temp .= "\\nEmail Address: ".$cert[subject][emailAddress];
+						$temp .= "\\nCertificate issued by: ".$cert[issuer][CN]."\\n";
+					}
+				    /* Message verified */
+				    if ($result === true)
+					    $sign = $temp;
+				     else
+					    $sign = "void";
+				}
+			}
+		}
+   		return $sign;	
+	}
+
+	function get_thumbs($msg, $msg_number, $msg_folder)
+	{
+		$thumbs_array = array();
+		$i = 0;
+    	foreach ($msg->file_type[$msg_number] as $index => $file_type)
+    	{
+    		$file_type = strtolower($file_type);
+    		if(strtolower($msg->encoding[$msg_number][$index]) == 'base64') {
+	    		if (($file_type == 'image/jpeg') || ($file_type == 'image/pjpeg') || ($file_type == 'image/gif') || ($file_type == 'image/png')) {
+	    			$img = "<IMG id='".$msg_folder.";;".$msg_number.";;".$i.";;".$msg->pid[$msg_number][$index].";;".$msg->encoding[$msg_number][$index]."' style='border:2px solid #fde7bc;padding:5px' title='".$this->functions->getLang("Click here do view (+)")."'src=./inc/show_thumbs.php?file_type=".$file_type."&msg_num=".$msg_number."&msg_folder=".$msg_folder."&msg_part=".$msg->pid[$msg_number][$index].">";
+	    			$href = "<a onMouseDown='save_image(event,this)' href='#".$msg_folder.";;".$msg_number.";;".$i.";;".$msg->pid[$msg_number][$index].";;".$msg->encoding[$msg_number][$index]."' onClick=\"window.open('./inc/show_img.php?msg_num=".$msg_number."&msg_folder=".$msg_folder."&msg_part=".$msg->pid[$msg_number][$index]."','mywindow','width=700,height=600,scrollbars=yes');\">". $img ."</a>";
+					$thumbs_array[] = $href;
+	    		}
+    			$i++;
+    		}
+    	}
+    	return $thumbs_array;
+	}
+		
+	/*function delete_msg($params)
+	{
+		$folder = $params['folder'];
+		$msgs_to_delete = explode(",",$params['msgs_to_delete']);
+		
+		$mbox_stream = $this->open_mbox($folder);
+		
+		foreach ($msgs_to_delete as $msg_number){
+			imap_delete($mbox_stream, $msg_number, FT_UID);
+		}
+		imap_close($mbox_stream, CL_EXPUNGE);
+		return $params['msgs_to_delete'];
+	}*/
+
+	// Novo
+	function delete_msgs($params)
+	{
+		
+		$folder = $params['folder'];
+		$folder =  mb_convert_encoding($folder, "UTF7-IMAP","ISO-8859-1");
+		$msgs_number = explode(",",$params['msgs_number']);
+		$border_ID = $params['border_ID'];
+		
+		$return = array();
+		
+		if ($params['get_previous_msg']){
+			$return['previous_msg'] = $this->get_info_previous_msg($params);
+			// Fix problem in unserialize function JS.
+			$return['previous_msg']['body'] = str_replace(array('{','}'), array('&#123;','&#125;'), $return['previous_msg']['body']);
+		}
+
+		//$mbox_stream = $this->open_mbox($folder);	 	
+	 	$mbox_stream = @imap_open("{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$folder, $this->username, $this->password) or die(serialize(array('imap_error' => $this->parse_error(imap_last_error()))));
+		
+		foreach ($msgs_number as $msg_number)
+		{
+			if (imap_delete($mbox_stream, $msg_number, FT_UID));
+				$return['msgs_number'][] = $msg_number;
+		}
+		
+		$return['folder'] = $folder;
+		$return['border_ID'] = $border_ID;
+		
+		if($mbox_stream)
+			imap_close($mbox_stream, CL_EXPUNGE);
+		return $return;
+	}
+
+		
+	function refresh($params)
+	{
+		include_once("class.imap_attachment.inc.php");
+		$imap_attachment = new imap_attachment();		
+		$folder = $params['folder'];
+		$msg_range_begin = $params['msg_range_begin'];
+		$msg_range_end = $params['msg_range_end'];
+		$msgs_existent = $params['msgs_existent'];
+		$sort_box_type = $params['sort_box_type'];		
+		$sort_box_reverse = $params['sort_box_reverse'];
+		$msgs_in_the_server = array();
+		$search_box_type = $params['search_box_type'] != "ALL" && $params['search_box_type'] != "" ? $params['search_box_type'] : false;
+		$msgs_in_the_server = $this->get_msgs($folder, $sort_box_type, $search_box_type, $sort_box_reverse,$msg_range_begin,$msg_range_end);
+		$msgs_in_the_server = array_keys($msgs_in_the_server);
+		if(!count($msgs_in_the_server))
+			return array();
+			
+		$num_msgs = (count($msgs_in_the_server) - imap_num_recent($this->mbox));
+		$msgs_in_the_client = explode(",", $msgs_existent);	
+
+		$msg_to_insert  = array_diff($msgs_in_the_server, $msgs_in_the_client);
+		$msg_to_delete = array_diff($msgs_in_the_client, $msgs_in_the_server);
+		
+		$msgs_to_exec = array();
+		if ((count($msg_to_insert)) && ($msgs_existent))
+		{
+			foreach($msg_to_insert as $index => $msg_number)
+			{
+				if ($msgs_in_the_server[$index+1])
+				{
+					//$msgs_to_exec[$msg_number] = 'Inserir mensage numero ' . $msg_number . ' antes da ' . $msgs_in_the_server[$index+1];
+					$msgs_to_exec[$msg_number] = 'box.insertBefore(new_msg, Element("'.$msgs_in_the_server[$index+1].'"));';
+				}
+				else
+				{
+					//$msgs_to_exec[$msg_number] = 'Inserir mensage numero ' . $msg_number . ' no final (append)';
+					$msgs_to_exec[$msg_number] = 'box.appendChild(new_msg);';
+				}
+			}
+			ksort($msgs_to_exec);
+		}
+		elseif(!$msgs_existent)
+		{
+			foreach($msgs_in_the_server as $index => $msg_number)
+			{
+				$msgs_to_exec[$msg_number] = 'box.appendChild(new_msg);';
+			}
+		}
+		
+		$return = array();
+		$i = 0;
+		foreach($msgs_to_exec as $msg_number => $command)
+		{
+			/*A função imap_headerinfo não traz o cabeçalho completo, e sim alguns
+			* atributos do cabeçalho. Como eu preciso do atributo Importance 
+			* para saber se o email é importante ou não, uso abaixo a função
+			* imap_fetchheader e busco o atributo importance nela para passar
+			* para as funções ajax. Isso faz com que eu acesse o cabeçalho
+			* duas vezes e de duas formas diferentes, mas em contrapartida, eu
+			* não preciso reimplementar o método utilizando o fetchheader.
+			* Como na atualização são poucas as mensagens que devem ser renderizadas,
+			* a perda em performance é insignificante.
+			*/
+			$flag = preg_match('/importance *: *(.*)\r/i',
+					@imap_fetchheader($this->mbox, imap_msgno($this->mbox, $msg_number))
+					,$importance);		
+			$return[$i]['Importance'] = $flag==0?"Normal":$importance[1];
+			
+			$header = $this->get_header($msg_number);
+			if (!is_object($header))
+				continue;
+
+			$return[$i]['msg_number']	= $msg_number;
+			$return[$i]['command']		= $command;
+			
+			$return[$i]['msg_folder']	= $folder;
+			$return[$i]['Recent']		= $header->Recent;
+			$return[$i]['Unseen']		= $header->Unseen;
+			$return[$i]['Answered']		= $header->Answered;
+			$return[$i]['Deleted']		= $header->Deleted;
+			$return[$i]['Draft']		= $header->Draft;
+			$return[$i]['Flagged']		= $header->Flagged;
+
+			$date_msg = gmdate("d/m/Y",$header->udate);
+			if (gmdate("d/m/Y") == $date_msg)
+				$return[$i]['udate'] = gmdate("H:i",$header->udate);
+			else
+				$return[$i]['udate'] = $date_msg;
+			
+			$from = $header->from;
+			$return[$i]['from'] = array();
+			$tmp = imap_mime_header_decode($from[0]->personal);
+			$return[$i]['from']['name'] = $tmp[0]->text;
+			$return[$i]['from']['email'] = $from[0]->mailbox . "@" . $from[0]->host;
+			//$return[$i]['from']['full'] ='"' . $return[$i]['from']['name'] . '" ' . '<' . $return[$i]['from']['email'] . '>'; 
+			if(!$return[$i]['from']['name'])
+				$return[$i]['from']['name'] = $return[$i]['from']['email'];
+			
+			/*$toaddress = imap_mime_header_decode($header->toaddress);
+			$return[$i]['toaddress'] = '';
+			foreach ($toaddress as $tmp)
+				$return[$i]['toaddress'] .= $tmp->text;*/
+			$to = $header->to;
+			$return[$i]['to'] = array();
+			$tmp = imap_mime_header_decode($to[0]->personal);
+			$return[$i]['to']['name'] = $tmp[0]->text;
+			$return[$i]['to']['email'] = $to[0]->mailbox . "@" . $to[0]->host;
+			$return[$i]['to']['full'] ='"' . $return[$i]['to']['name'] . '" ' . '<' . $return[$i]['to']['email'] . '>';
+			
+			$return[$i]['subject'] = $this->decode_string($header->fetchsubject);
+
+			$return[$i]['Size'] = $header->Size;
+			$return[$i]['reply_toaddress'] = $header->reply_toaddress;
+			
+			$return[$i]['attachment'] = array();
+			$return[$i]['attachment'] = $imap_attachment->get_attachment_headerinfo($this->mbox, $msg_number);
+			$i++;
+		}
+		$return['new_msgs'] = imap_num_recent($this->mbox);
+		$return['msgs_to_delete'] = $msg_to_delete;
+		if($this->mbox && is_resource($this->mbox))
+			imap_close($this->mbox);
+
+		return $return;
+	}
+
+	function get_folders_list($params = null)
+	{
+		$mbox_stream = $this->open_mbox();		
+		$serverString = "{".$this->imap_server.":".$this->imap_port.$this->imap_options."}";
+		$folders_list = imap_getmailboxes($mbox_stream, $serverString, "*");
+		$folders_list = array_slice($folders_list,0,$this->foldersLimit);
+
+		$tmp = array();
+		$result = array();
+		
+		if (is_array($folders_list)) {
+  			reset($folders_list);
+			
+			$i = 0;
+  			while (list($key, $val) = each($folders_list)) {
+  				$status = imap_status($mbox_stream, $val->name, SA_UNSEEN);
+  				$result[$i]['folder_unseen'] = $status->unseen;
+			
+  				//$tmp_folder_id = explode("}", imap_utf7_decode($val->name));
+  				$tmp_folder_id = explode("}", mb_convert_encoding($val->name, "ISO_8859-1", "UTF7-IMAP" ));
+  				$folder_id = $tmp_folder_id[1];
+				$result[$i]['folder_id'] = $folder_id;
+				
+				$tmp_folder_parent = explode($this->imap_delimiter, $folder_id);
+				$result[$i]['folder_name'] = array_pop($tmp_folder_parent);
+				$result[$i]['folder_name'] = $result[$i]['folder_name'] == 'INBOX' ? 'Inbox' : $result[$i]['folder_name'];
+				if (is_numeric($result[$i]['folder_name']))	{
+					$this->ldap = new ldap_functions();
+					if ($cn = $this->ldap->uid2cn($result[$i]['folder_name'])){
+						$result[$i]['folder_name'] = $cn;
+					}
+				}
+				
+				$tmp_folder_parent = implode($this->imap_delimiter, $tmp_folder_parent);
+				$result[$i]['folder_parent'] = $tmp_folder_parent == 'INBOX' ? '' : $tmp_folder_parent;
+					
+				if (($val->attributes == 32) && ($result[$i]['folder_name'] != 'Inbox'))
+					$result[$i]['folder_hasChildren'] = 1;
+				else
+					$result[$i]['folder_hasChildren'] = 0;
+
+				$i++;				
+  			}
+		}
+		
+		foreach ($result as $folder_info)
+		{
+			$array_tmp[] = $folder_info['folder_id'];
+		}
+		
+		natcasesort($array_tmp);
+		
+		foreach ($array_tmp as $key => $folder_id)
+		{
+			$result2[] = $result[$key];
+		}
+		
+		$current_folder = "INBOX";
+		if($params && $params['folder'])
+			$current_folder = $params['folder'];
+		return array_merge($result2, $this->get_quota(array(folder_id => $current_folder)));
+	}
+	
+	function create_mailbox($arr)
+	{
+		$namebox	= $arr['newp'];
+		$mbox_stream = $this->open_mbox();
+		$imap_server = $_SESSION['phpgw_info']['expressomail']['email_server']['imapServer'];
+		$namebox =  mb_convert_encoding($namebox, "UTF7-IMAP", "UTF-8");
+		
+		$result = "Ok";
+		if(!imap_createmailbox($mbox_stream,"{".$imap_server."}$namebox"))
+		{
+			$result = implode("<br />\n", imap_errors());
+		}	
+		
+		if($mbox_stream)
+			imap_close($mbox_stream);
+					
+		return $result;
+		
+	}
+	
+	function create_extra_mailbox($arr)
+	{
+		$nameboxs = explode(";",$arr['nw_folders']);
+		$result = "";
+		$mbox_stream = $this->open_mbox();
+		$imap_server = $_SESSION['phpgw_info']['expressomail']['email_server']['imapServer'];
+		foreach($nameboxs as $key=>$tmp){			
+			if($tmp != ""){
+				if(!imap_createmailbox($mbox_stream,imap_utf7_encode("{".$imap_server."}$tmp"))){
+					$result = implode("<br />\n", imap_errors());
+					if($mbox_stream)
+						imap_close($mbox_stream);					
+					return $result;
+				}
+			}
+		}
+		if($mbox_stream)
+			imap_close($mbox_stream);
+		return true;
+	}
+	
+	function delete_mailbox($arr)
+	{
+		$namebox = $arr['del_past'];
+		$imap_server = $_SESSION['phpgw_info']['expressomail']['email_server']['imapServer'];
+		$mbox_stream = $this->open_mbox();
+		//$del_folder = imap_deletemailbox($mbox_stream,"{".$imap_server."}INBOX.$namebox");
+		
+		$result = "Ok";
+		$namebox = mb_convert_encoding($namebox, "UTF7-IMAP","UTF-8");
+		if(!imap_deletemailbox($mbox_stream,"{".$imap_server."}$namebox"))
+		{
+			$result = implode("<br />\n", imap_errors());
+		}
+		if($mbox_stream)
+			imap_close($mbox_stream);
+		return $result;
+	}
+	
+	function ren_mailbox($arr)
+	{
+		$namebox = $arr['current'];
+		$new_box = $arr['rename'];
+		$imap_server = $_SESSION['phpgw_info']['expressomail']['email_server']['imapServer'];
+		$mbox_stream = $this->open_mbox();
+		//$ren_folder = imap_renamemailbox($mbox_stream,"{".$imap_server."}INBOX.$namebox","{".$imap_server."}INBOX.$new_box");
+		
+		$result = "Ok";
+		$namebox = mb_convert_encoding($namebox, "UTF7-IMAP","UTF-8");
+		$new_box = mb_convert_encoding($new_box, "UTF7-IMAP","UTF-8");
+		
+		if(!imap_renamemailbox($mbox_stream,"{".$imap_server."}$namebox","{".$imap_server."}$new_box"))
+		{
+			$result = imap_errors();			
+		}
+		if($mbox_stream)
+			imap_close($mbox_stream);
+		return $result;
+		
+	}
+	
+	function get_num_msgs($params)
+	{
+		$folder = $params['folder'];
+		if(!$this->mbox || !is_resource($this->mbox)) {
+			$this->mbox = $this->open_mbox($folder);
+			if(!$this->mbox || !is_resource($this->mbox))
+			return imap_last_error();
+		}		
+		$num_msgs = imap_num_msg($this->mbox);
+		if($this->mbox && is_resource($this->mbox))
+			imap_close($this->mbox);
+		
+		return $num_msgs;
+	}
+	
+	function send_mail($params)
+	{
+		include_once("class.phpmailer.php");
+		$mail = new PHPMailer();
+		include_once("class.db_functions.inc.php");
+		$db = new db_functions();
+		$fromaddress = $params['input_from'] ? explode(';',$params['input_from']) : "";
+		##
+		# @AUTHOR Rodrigo Souza dos Santos
+		# @DATE 2008/09/17
+		# @BRIEF Checks if the user has permission to send an email with the email address used.
+		##
+		if ( is_array($fromaddress) && ($fromaddress[1] != $_SESSION['phpgw_info']['expressomail']['user']['email']) )
+		{
+			$deny = true;
+			foreach( $_SESSION['phpgw_info']['expressomail']['user']['shared_mailboxes'] as $key => $val )
+				if ( array_key_exists('mail', $val) && $val['mail'][0] == $fromaddress[1] )
+					$deny = false and end($_SESSION['phpgw_info']['expressomail']['user']['shared_mailboxes']);
+
+			if ( $deny )
+				return "The server denied your request to send a mail, you cannot use this mail address.";
+		}
+
+		//new_message_to backs to mailto: pattern
+		$params['body'] = eregi_replace("<a href=\"javascript:new_message_to\('([^>]+)'\)\">[^>]+</a>","<a href='mailto:\\1'>\\1</a>",$params['body']);
+
+		$toaddress = implode(',',$db->getAddrs(explode(',',$params['input_to'])));
+		$ccaddress = implode(',',$db->getAddrs(explode(',',$params['input_cc'])));
+		$ccoaddress = implode(',',$db->getAddrs(explode(',',$params['input_cco'])));
+		$subject = $params['input_subject'];
+		$msg_uid = $params['msg_id'];
+		$return_receipt = $params['input_return_receipt'];
+		$is_important = $params['input_important_message'];
+		$body = $params['body'];
+		//echo "<script language=\"javascript\">javascript:alert('".$body."');</script>";
+		$attachments = $params['FILES'];
+		$forwarding_attachments = $params['forwarding_attachments'];
+		$local_attachments = $params['local_attachments'];
+		 
+		$folder =$params['folder'];
+		$folder = mb_convert_encoding($folder, "UTF7-IMAP","ISO_8859-1");		
+		$folder_name = $params['folder_name'];		
+		// Fix problem with cyrus delimiter changes.
+		// Dots in names: enabled/disabled.				
+		$folder = @eregi_replace("INBOX/", "INBOX".$this->imap_delimiter, $folder);
+		$folder = @eregi_replace("INBOX.", "INBOX".$this->imap_delimiter, $folder);
+		// End Fix.
+		if ($folder != 'null'){			
+			$mail->SaveMessageInFolder = $folder;
+		}
+////////////////////////////////////////////////////////////////////////////////////////////////////
+		$mail->SMTPDebug = false;
+				
+		$mail->IsSMTP();
+		$mail->Host = $_SESSION['phpgw_info']['expressomail']['email_server']['smtpServer'];
+		$mail->Port = $_SESSION['phpgw_info']['expressomail']['email_server']['smtpPort'];
+		$mail->From = $_SESSION['phpgw_info']['expressomail']['user']['email'];
+		$mail->FromName = $_SESSION['phpgw_info']['expressomail']['user']['fullname'];
+		if($fromaddress){
+			$mail->Sender = $mail->From;
+			$mail->SenderName = $mail->FromName;
+			$mail->FromName = $fromaddress[0];
+			$mail->From = $fromaddress[1];
+		}
+				
+		$this->add_recipients("to", $toaddress, &$mail);
+		$this->add_recipients("cc", $ccaddress, &$mail);
+		$this->add_recipients("cco", $ccoaddress, &$mail);
+		$mail->Subject = $subject;
+		$mail->IsHTML(true);
+		$mail->Body = $params['body'];
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+		//	Build CID for embedded Images!!!
+		$pattern = '/src="([^"]*?show_embedded_attach.php\?msg_folder=(.+)?&(amp;)?msg_num=(.+)?&(amp;)?msg_part=(.+)?)"/isU';
+		$cid_imgs = '';
+		$name_cid_files = array();
+		preg_match_all($pattern,$mail->Body,$cid_imgs,PREG_PATTERN_ORDER);
+		$cid_array = array();
+		foreach($cid_imgs[6] as $j => $val){
+				if ( !array_key_exists($cid_imgs[4][$j].$val, $cid_array) )
+      			{
+                $cid_array[$cid_imgs[4][$j].$val] = base_convert(microtime(), 10, 36);
+		        }
+		        $cid = $cid_array[$cid_imgs[4][$j].$val]; 
+        		$mail->Body = str_replace($cid_imgs[1][$j], "cid:".$cid, $mail->Body);
+        		
+				if ($msg_uid != $cid_imgs[4][$j]) // The image isn't in the same mail?
+				{
+					$fileContent = $this->get_forwarding_attachment($cid_imgs[2][$j], $cid_imgs[4][$j], $cid_imgs[6][$j], 'base64');
+					$fileName = "image_".($j).".jpg";
+					$fileCode = "base64";
+					$fileType = "image/jpg";
+				}
+				else
+				{
+					$attach_img = $forwarding_attachments[$cid_imgs[6][$j]-2];
+					$file_description = unserialize(rawurldecode($attach_img));
+
+					foreach($file_description as $i => $descriptor){				
+						$file_description[$i]  = eregi_replace('\'*\'','',$descriptor);
+					}
+					$fileContent = $this->get_forwarding_attachment($file_description[0], $msg_uid, $file_description[3], 'base64');
+					$fileName = $file_description[2];
+					$fileCode = $file_description[4];
+					$fileType = $this->get_file_type($file_description[2]);
+					unset($forwarding_attachments[$cid_imgs[6][$j]-2]);
+				}
+				$tempDir = ini_get("session.save_path");
+				$file = "cid_image_".base_convert(microtime(), 10, 36).".dat";					
+				$f = fopen($tempDir.'/'.$file,"w");
+				fputs($f,$fileContent);
+				fclose($f);
+				if ($fileContent)
+					$mail->AddEmbeddedImage($tempDir.'/'.$file, $cid, $fileName, $fileCode, $fileType);
+				//else
+				//	return "Error loading image attachment content";						
+
+		}
+////////////////////////////////////////////////////////////////////////////////////////////////////
+		//	Build Uploading Attachments!!!
+		if ((count($attachments)) && ($params['is_local_forward']!="1")) //Caso seja forward normal...
+		{
+			$total_uploaded_size = 0;
+			$upload_max_filesize = str_replace("M","",ini_get('upload_max_filesize')) * 1024 * 1024;
+			foreach ($attachments as $attach)
+			{
+				$mail->AddAttachment($attach['tmp_name'], $attach['name'], "base64", $this->get_file_type($attach['name']));  // optional name
+				$total_uploaded_size = $total_uploaded_size + $attach['size'];
+			}
+			if( $total_uploaded_size > $upload_max_filesize)
+				return $this->parse_error("message file too big");			
+		}
+		else if(($params['is_local_forward']=="1") && (count($local_attachments))) { //Caso seja forward de mensagens locais
+
+			$total_uploaded_size = 0;
+			$upload_max_filesize = str_replace("M","",ini_get('upload_max_filesize')) * 1024 * 1024;			
+			foreach($local_attachments as $local_attachment) {
+				$file_description = unserialize(rawurldecode($local_attachment));
+				$tmp = array_values($file_description);
+				foreach($file_description as $i => $descriptor){				
+					$tmp[$i]  = eregi_replace('\'*\'','',$descriptor);
+				}
+				$mail->AddAttachment($_FILES[$tmp[1]]['tmp_name'], $tmp[2], "base64", $this->get_file_type($tmp[2]));  // optional name
+				$total_uploaded_size = $total_uploaded_size + $_FILES[$tmp[1]]['size'];
+			}
+			if( $total_uploaded_size > $upload_max_filesize)
+				return 'false';
+		}
+////////////////////////////////////////////////////////////////////////////////////////////////////
+		//	Build Forwarding Attachments!!!
+		if (count($forwarding_attachments) > 0)
+		{
+			// Bug fixed for array_search function
+			if(count($name_cid_files) > 0) {
+				$name_cid_files[count($name_cid_files)] = $name_cid_files[0];
+				$name_cid_files[0] = null;
+			}			
+			
+			foreach($forwarding_attachments as $forwarding_attachment)
+			{
+					$file_description = unserialize(rawurldecode($forwarding_attachment));
+					$tmp = array_values($file_description);
+					foreach($file_description as $i => $descriptor){				
+						$tmp[$i]  = eregi_replace('\'*\'','',$descriptor);
+					}
+					$file_description = $tmp;					
+					$fileContent = $this->get_forwarding_attachment($file_description[0], $file_description[1], $file_description[3],$file_description[4]);
+					$fileName = $file_description[2];
+					if(!array_search(trim($fileName),$name_cid_files)) {
+						$mail->AddStringAttachment($fileContent, $fileName, $file_description[4], $this->get_file_type($file_description[2]));
+				}
+			}
+		}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+		// Important message
+		if($is_important)
+			$mail->isImportant();
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+		// Disposition-Notification-To
+		if ($return_receipt)
+			$mail->ConfirmReadingTo = $_SESSION['phpgw_info']['expressomail']['user']['email'];
+////////////////////////////////////////////////////////////////////////////////////////////////////
+
+		$sent = $mail->Send();
+		
+		if(!$sent)
+		{
+   			return $this->parse_error($mail->ErrorInfo);
+		}
+		else
+		{
+			if($_SESSION['phpgw_info']['server']['expressomail']['expressoMail_enable_log_messages'] == "True") 
+			{
+				$userid = $_SESSION['phpgw_info']['expressomail']['user']['userid'];
+				$userip = $_SESSION['phpgw_info']['expressomail']['user']['session_ip'];
+				$now = date("d/m/y H:i:s");
+				$addrs = $toaddress.$ccaddress.$ccoaddress;
+				$sent = trim($sent);									   			
+   				error_log("$now - $userip - $sent [$subject] - $userid => $addrs\r\n", 3, "/home/expressolivre/mail_senders.log");
+			}
+			if($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['number_of_contacts'] && 
+		   	   $_SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_dynamic_contacts']) {
+				$contacts = new dynamic_contacts();
+				$new_contacts = $contacts->add_dynamic_contacts($toaddress.",".$ccaddress.",".$ccoaddress);
+				return array("success" => true, "new_contacts" => $new_contacts);
+			}
+   			return array("success" => true);
+		}
+	}
+
+	function add_recipients($recipient_type, $full_address, $mail)
+	{
+		$parse_address = imap_rfc822_parse_adrlist($full_address, "");		
+		foreach ($parse_address as $val) 
+		{
+			//echo "<script language=\"javascript\">javascript:alert('".$val->mailbox."@".$val->host."');</script>";
+			if ($val->mailbox == "INVALID_ADDRESS")
+				continue;
+			
+			if (empty($val->personal))
+			{
+				switch($recipient_type)
+				{
+					case "to":
+						$mail->AddAddress($val->mailbox."@".$val->host);
+						break;
+					case "cc":
+						$mail->AddCC($val->mailbox."@".$val->host);
+						break;
+					case "cco":
+						$mail->AddBCC($val->mailbox."@".$val->host);
+						break;
+				}
+			}
+			else
+			{
+				switch($recipient_type)
+				{
+					case "to":
+						$mail->AddAddress($val->mailbox."@".$val->host, $val->personal);
+						break;
+					case "cc":
+						$mail->AddCC($val->mailbox."@".$val->host, $val->personal);
+						break;
+					case "cco":
+						$mail->AddBCC($val->mailbox."@".$val->host, $val->personal);
+						break;
+				}
+			}
+		}
+		return true;
+	}
+	
+	function get_forwarding_attachment($msg_folder, $msg_number, $msg_part, $encoding)
+	{
+		$mbox_stream = $this->open_mbox(utf8_decode(urldecode($msg_folder)));
+		$fileContent = imap_fetchbody($mbox_stream, $msg_number, $msg_part, FT_UID);		
+		if($encoding == 'base64')
+			# The function imap_base64 adds a new line
+			# at ASCII text, with CRLF line terminators.
+			# So is being exchanged for base64_decode.
+			#
+			#$fileContent = imap_base64($fileContent);
+			$fileContent = base64_decode($fileContent);
+		else if($encoding == 'quoted-printable')
+			$fileContent = quoted_printable_decode($fileContent);				
+		return $fileContent;
+	}
+	
+	function del_last_caracter($string)
+	{
+		$string = substr($string,0,(strlen($string) - 1));
+		return $string;	
+	}
+	
+	function del_last_two_caracters($string)
+	{
+		$string = substr($string,0,(strlen($string) - 2));
+		return $string;	
+	}
+	
+	function messages_sort($sort_box_type,$sort_box_reverse, $search_box_type,$offsetBegin,$offsetEnd)
+	{
+		$sort = array();
+		if ($offsetBegin > $offsetEnd) {$temp=$offsetEnd; $offsetEnd=$offsetBegin; $offsetBegin=$temp;}
+		$num_msgs = imap_num_msg($this->mbox);
+		if ($offsetEnd >  $num_msgs) {$offsetEnd = $num_msgs;}
+		if ($search_box_type == "" && $sort_box_type == "SORTARRIVAL")
+		{
+			// If I'm looking for any type of email doesn't need to see all imap box
+			if ($sort_box_reverse)
+			{
+				$numBegin = $num_msgs - $offsetEnd;
+				if ($numBegin < 0) $numBegin=0;
+				$numEnd = $num_msgs - ($offsetBegin-1);
+			}
+			else
+			{
+				$numBegin = ($offsetBegin-1);
+				$numEnd = $offsetEnd;
+			}
+			$slice_array = false;
+		}
+		else
+		{
+			// If I'm looking for a specific type of email I have to see entire imap box
+			$numBegin = 0;
+			$numEnd = $num_msgs;
+			$slice_array = true;
+		}
+		for ($i=$numBegin+1; $i<=$numEnd; $i++)
+		{
+			$iuid = @imap_uid($this->mbox,$i);
+			$header = $this->get_header($iuid);
+			// List UNSEEN messages.
+			if($search_box_type == "UNSEEN" &&  (!trim($header->Recent) && !trim($header->Unseen))){
+				continue;
+			}
+			// List SEEN messages.
+			elseif($search_box_type == "SEEN" && (trim($header->Recent) || trim($header->Unseen))){
+				continue;
+			}
+			// List ANSWERED messages.			
+			elseif($search_box_type == "ANSWERED" && !trim($header->Answered)){
+				continue;				
+			}
+			// List FLAGGED messages.			
+			elseif($search_box_type == "FLAGGED" && !trim($header->Flagged)){
+				continue;
+			}
+									
+			if($sort_box_type=='SORTFROM') {
+				if (($header->from[0]->mailbox . "@" . $header->from[0]->host) == $_SESSION['phpgw_info']['expressomail']['user']['email'])				
+					$from = $header->to;
+				else
+					$from = $header->from;
+				
+				$tmp = imap_mime_header_decode($from[0]->personal);			
+				
+				if ($tmp[0]->text != "")
+					$sort[$iuid] = $tmp[0]->text;
+				else
+					$sort[$iuid] = $from[0]->mailbox . "@" . $from[0]->host;
+			}
+			else if($sort_box_type=='SORTSUBJECT') {
+				$sort[$iuid] = $header->subject;
+			}
+			else if($sort_box_type=='SORTSIZE') {
+				$sort[$iuid] = $header->Size;
+			}
+			else {
+				$sort[$iuid] = $header->udate;
+			}
+
+		}
+		natcasesort($sort);
+
+		if ($sort_box_reverse)
+			$sort = array_reverse($sort,true);
+
+		if ($slice_array)
+			$sort = array_slice($sort,$offsetBegin-1,$offsetEnd-($offsetBegin-1),true);
+		return $sort;
+
+	}
+	
+	function move_search_messages($params){		
+		$params['selected_messages'] = urldecode($params['selected_messages']);	
+		$params['new_folder'] = urldecode($params['new_folder']);
+		$params['new_folder_name'] = urldecode($params['new_folder_name']);
+		$sel_msgs = explode(",", $params['selected_messages']);
+		@reset($sel_msgs);	
+		$sorted_msgs = array();
+		foreach($sel_msgs as $idx => $sel_msg) {
+			$sel_msg = explode(";", $sel_msg);
+			 if(array_key_exists($sel_msg[0], $sorted_msgs)){
+			 	$sorted_msgs[$sel_msg[0]] .= ",".$sel_msg[1];
+			 }	
+			 else {
+				$sorted_msgs[$sel_msg[0]] = $sel_msg[1];
+			 }
+		}
+		@ksort($sorted_msgs);
+		$last_return = false;		
+		foreach($sorted_msgs as $folder => $msgs_number) {			
+			$params['msgs_number'] = $msgs_number;
+			$params['folder'] = $folder;	
+			if($params['new_folder'] && $folder != $params['new_folder']){
+				$last_return = $this -> move_messages($params);				
+			}
+			elseif(!$params['new_folder'] || $params['delete'] ){
+				$last_return = $this -> delete_msgs($params);
+				$last_return['deleted'] = true;
+			}
+		}
+		return $last_return;
+	}
+	
+	function move_messages($params)
+	{
+		$folder = $params['folder'];		
+		$mbox_stream = $this->open_mbox($folder);		
+		$newmailbox = ($params['new_folder']);
+		$newmailbox = mb_convert_encoding($newmailbox, "UTF7-IMAP","ISO_8859-1");
+		$new_folder_name = $params['new_folder_name'];
+		$msgs_number = $params['msgs_number'];
+		$return = array('msgs_number' => $msgs_number,
+						'folder' => $folder,
+						'new_folder_name' => $new_folder_name,
+						'border_ID' => $params['border_ID'],
+						'status' => true); //Status foi adicionado para validar as permissoes ACL
+		
+		//Este bloco tem a finalidade de averiguar as permissoes para pastas compartilhadas
+        if (substr($folder,0,4) == 'user'){
+        	$acl = $this->getacltouser($folder);
+        	/*
+        	 *   l - lookup (mailbox is visible to LIST/LSUB commands)
+        	 *   r - read (SELECT the mailbox, perform CHECK, FETCH, PARTIAL, SEARCH, COPY from mailbox)
+        	 *   s - keep seen/unseen information across sessions (STORE SEEN flag)
+        	 *   w - write (STORE flags other than SEEN and DELETED)
+        	 *   i - insert (perform APPEND, COPY into mailbox)
+        	 *   p - post (send mail to submission address for mailbox, not enforced by IMAP4 itself)
+        	 *   c - create (CREATE new sub-mailboxes in any implementation-defined hierarchy)
+        	 *   d - delete (STORE DELETED flag, perform EXPUNGE)
+        	 *   a - administer (perform SETACL)
+			*/
+			if (strpos($acl, "d") === false){
+				$return['status'] = false;
+				return $return;
+			}
+        }
+        //Este bloco tem a finalidade de transformar o CPF das pastas compartilhadas em common name
+        if (substr($new_folder_name,0,4) == 'user'){
+        	$this->ldap = new ldap_functions();
+        	$tmp_folder_name = explode($this->imap_delimiter, $new_folder_name);
+			$return['new_folder_name'] = array_pop($tmp_folder_name);
+			if (is_numeric($return['new_folder_name']))
+				if( $cn = $this->ldap->uid2cn($return['new_folder_name']))
+					$return['new_folder_name'] = $cn;
+        }
+		
+		// Caso estejamos no box principal, nao eh necessario pegar a informacao da mensagem anterior. 		
+		if (($params['get_previous_msg']) && ($params['border_ID'] != 'null') && ($params['border_ID'] != ''))
+		{
+			$return['previous_msg'] = $this->get_info_previous_msg($params);
+			// Fix problem in unserialize function JS.
+			$return['previous_msg']['body'] = str_replace(array('{','}'), array('&#123;','&#125;'), $return['previous_msg']['body']);
+		}
+		
+		$mbox_stream = $this->open_mbox($folder);	
+		if(imap_mail_move($mbox_stream, $msgs_number, $newmailbox, CP_UID)) {
+			imap_expunge($mbox_stream);
+			if($mbox_stream)
+				imap_close($mbox_stream);
+			return $return;
+		}else {
+			if(strstr(imap_last_error(),'Over quota')) {				
+				$accountID	= $_SESSION['phpgw_info']['expressomail']['email_server']['imapAdminUsername'];
+				$pass		= $_SESSION['phpgw_info']['expressomail']['email_server']['imapAdminPW'];									
+				$userID 	= $_SESSION['phpgw_info']['expressomail']['user']['userid'];								
+				$server 	= $_SESSION['phpgw_info']['expressomail']['email_server']['imapServer'];
+				$mbox		= @imap_open("{".$this->imap_server.":".$this->imap_port.$this->imap_options."}INBOX", $accountID, $pass) or die(serialize(array('imap_error' => $this->parse_error(imap_last_error()))));
+				if(!$mbox)
+					return imap_last_error();
+				$quota 	= imap_get_quotaroot($mbox_stream, "INBOX");				
+				if(! imap_set_quota($mbox, "user".$this->imap_delimiter.$userID, 2.1 * $quota['usage'])) {
+					if($mbox_stream)
+						imap_close($mbox_stream);
+					if($mbox)									
+						imap_close($mbox);
+					return "move_messages(): Error setting quota for MOVE or DELETE!! ". "user".$this->imap_delimiter.$userID." line ".__LINE__."\n";								
+				}
+				if(imap_mail_move($mbox_stream, $msgs_number, $newmailbox, CP_UID)) {
+					imap_expunge($mbox_stream);
+					if($mbox_stream)
+						imap_close($mbox_stream);
+					// return to original quota limit.
+					if(!imap_set_quota($mbox, "user".$this->imap_delimiter.$userID, $quota['limit'])) {
+						if($mbox)
+							imap_close($mbox);
+						return "move_messages(): Error setting quota for MOVE or DELETE!! line ".__LINE__."\n";								
+					}
+					return $return;													
+				}
+				else {
+					if($mbox_stream)
+						imap_close($mbox_stream);
+					if(!imap_set_quota($mbox, "user".$this->imap_delimiter.$userID, $quota['limit'])) {
+						if($mbox)
+							imap_close($mbox);
+						return "move_messages(): Error setting quota for MOVE or DELETE!! line ".__LINE__."\n";								
+					}
+					return imap_last_error();				
+				}
+				
+			}
+			else {
+				if($mbox_stream)
+					imap_close($mbox_stream);
+				return "move_messages() line ".__LINE__.": ". imap_last_error()." folder:".$newmailbox;
+			}
+		}		
+	}
+	
+	function save_msg($params)
+	{
+		
+		include_once("class.phpmailer.php");
+		$mail = new PHPMailer();
+		include_once("class.db_functions.inc.php");
+		$toaddress = $params['input_to'];
+		$ccaddress = $params['input_cc'];
+		$subject = $params['input_subject'];
+		$msg_uid = $params['msg_id'];
+		$body = $params['body'];
+		$body = str_replace("%nbsp;","&nbsp;",$params['body']);
+		$body = preg_replace("/\n/"," ",$body);
+		$body = preg_replace("/\r/","",$body);
+		$forwarding_attachments = $params['forwarding_attachments'];
+		$attachments = $params['FILES'];
+		$return_files = $params['FILES'];
+		 
+		$folder = $params['folder'];
+		$folder = mb_convert_encoding($folder, "UTF7-IMAP","ISO_8859-1");		
+		// Fix problem with cyrus delimiter changes.
+		// Dots in names: enabled/disabled.				
+		$folder = @eregi_replace("INBOX/", "INBOX".$this->imap_delimiter, $folder);
+		$folder = @eregi_replace("INBOX.", "INBOX".$this->imap_delimiter, $folder);
+		// End Fix.
+					
+		$mail->SaveMessageInFolder = $folder;
+		$mail->SMTPDebug = false;
+						
+		$mail->IsSMTP();
+		$mail->Host = $_SESSION['phpgw_info']['expressomail']['email_server']['smtpServer'];
+		$mail->Port = $_SESSION['phpgw_info']['expressomail']['email_server']['smtpPort'];
+		$mail->From = $_SESSION['phpgw_info']['expressomail']['user']['email'];
+		$mail->FromName = $_SESSION['phpgw_info']['expressomail']['user']['fullname'];
+		
+		$mail->Sender = $mail->From;
+		$mail->SenderName = $mail->FromName;
+		$mail->FromName = $_SESSION['phpgw_info']['expressomail']['user']['fullname'];
+		$mail->From =  $_SESSION['phpgw_info']['expressomail']['user']['email'];
+				
+		$this->add_recipients("to", $toaddress, &$mail);
+		$this->add_recipients("cc", $ccaddress, &$mail);
+		$mail->Subject = $subject;
+		$mail->IsHTML(true);
+		$mail->Body = $body;
+		
+		//	Build CID for embedded Images!!!
+		$pattern = '/src="([^"]*?show_embedded_attach.php\?msg_folder=(.+)?&(amp;)?msg_num=(.+)?&(amp;)?msg_part=(.+)?)"/isU';
+		$cid_imgs = '';
+		$name_cid_files = array();
+		preg_match_all($pattern,$mail->Body,$cid_imgs,PREG_PATTERN_ORDER);
+		$cid_array = array();
+		foreach($cid_imgs[6] as $j => $val){
+				if ( !array_key_exists($cid_imgs[4][$j].$val, $cid_array) )
+      			{
+                $cid_array[$cid_imgs[4][$j].$val] = base_convert(microtime(), 10, 36);
+		        }
+		        $cid = $cid_array[$cid_imgs[4][$j].$val]; 
+        		$mail->Body = str_replace($cid_imgs[1][$j], "cid:".$cid, $mail->Body);
+        		
+				if ($msg_uid != $cid_imgs[4][$j]) // The image isn't in the same mail?
+				{
+					$fileContent = $this->get_forwarding_attachment($cid_imgs[2][$j], $cid_imgs[4][$j], $cid_imgs[6][$j], 'base64');
+					//prototype: get_forwarding_attachment ( folder, msg number, part, encoding)
+					$fileName = "image_".($j).".jpg";
+					$fileCode = "base64";
+					$fileType = "image/jpg";
+					$file_attached[0] = $cid_imgs[2][$j];
+					$file_attached[1] = $cid_imgs[4][$j];
+					$file_attached[2] = $fileName;
+					$file_attached[3] = $cid_imgs[6][$j];
+					$file_attached[4] = 'base64';
+					$file_attached[5] = strlen($fileContent); //Size of file
+					$return_forward[] = $file_attached;
+				}
+				else
+				{
+					$attach_img = $forwarding_attachments[$cid_imgs[6][$j]-2];
+					$file_description = unserialize(rawurldecode($attach_img));
+					foreach($file_description as $i => $descriptor){				
+						$file_description[$i]  = eregi_replace('\'*\'','',$descriptor);
+					}
+					$fileContent = $this->get_forwarding_attachment($file_description[0], $msg_uid, $file_description[3], 'base64');
+					$fileName = $file_description[2];
+					$fileCode = $file_description[4];
+					$fileType = $this->get_file_type($file_description[2]);
+					unset($forwarding_attachments[$cid_imgs[6][$j]-2]);
+					if (!empty($file_description))
+					{
+						$file_description[5] = strlen($fileContent); //Size of file
+						$return_forward[] = $file_description;
+					}
+				}
+				$tempDir = ini_get("session.save_path");
+				$file = "cid_image_".base_convert(microtime(), 10, 36).".dat";					
+				$f = fopen($tempDir.'/'.$file,"w");
+				fputs($f,$fileContent);
+				fclose($f);
+				if ($fileContent)
+					$mail->AddEmbeddedImage($tempDir.'/'.$file, $cid, $fileName, $fileCode, $fileType);
+				//else
+				//	return "Error loading image attachment content";						
+
+		}
+	
+	//	Build Forwarding Attachments!!!		
+		if (count($forwarding_attachments) > 0)
+		{
+			foreach($forwarding_attachments as $forwarding_attachment)
+			{
+				$file_description = unserialize(rawurldecode($forwarding_attachment));
+				$tmp = array_values($file_description);
+				foreach($file_description as $i => $descriptor){				
+					$tmp[$i]  = eregi_replace('\'*\'','',$descriptor);
+				}
+				$file_description = $tmp;
+				
+				$fileContent = $this->get_forwarding_attachment($file_description[0], $file_description[1], $file_description[3],$file_description[4]);
+				$fileName = $file_description[2];
+				
+				$file_description[5] = strlen($fileContent); //Size of file
+				$return_forward[] = $file_description;
+			
+					$mail->AddStringAttachment($fileContent, $fileName, $file_description[4], $this->get_file_type($file_description[2]));
+			}
+		}
+		
+		if ((count($return_forward) > 0) && (count($return_files) > 0))
+			$return_files = array_merge_recursive($return_forward,$return_files);
+		else
+			if (count($return_files) < 1)
+				$return_files = $return_forward;
+	
+		//	Build Uploading Attachments!!!
+		if (count($attachments))
+			foreach ($attachments as $attach)
+				$mail->AddAttachment($attach['tmp_name'], $attach['name'], "base64", $this->get_file_type($attach['name']));  // optional name			
+	
+	
+		
+		if(!empty($mail->AltBody))
+            $mail->ContentType = "multipart/alternative";
+
+		$mail->error_count = 0; // reset errors
+		$mail->SetMessageType();
+		$header = $mail->CreateHeader();
+		$body = $mail->CreateBody(); 
+
+		$mbox_stream = $this->open_mbox($folder);	
+		$new_header = str_replace("\n", "\r\n", $header);
+		$new_body = str_replace("\n", "\r\n", $body);
+		$return['append'] = imap_append($mbox_stream, "{".$this->imap_server.":".$this->imap_port."}".$folder, $new_header . $new_body, "\\Seen \\Draft");
+		$status = imap_status($mbox_stream, "{".$this->imap_server.":".$this->imap_port."}".$folder, SA_UIDNEXT);
+		$return['msg_no'] = $status->uidnext - 1;
+		$return['folder_id'] = $folder;
+
+		if($mbox_stream)
+			imap_close($mbox_stream);
+		if (is_array($return_files))		  
+			foreach ($return_files as $index => $_attachment) {
+				if (array_key_exists("name",$_attachment)){
+				unset($return_files[$index]);
+				$return_files[$index] = $_attachment['name']."_SIZE_".$return_files[$index][1] = $_attachment['size'];
+			}
+			else
+			{
+				unset($return_files[$index]);
+				$return_files[$index] = $_attachment[2]."_SIZE_". $return_files[$index][1] = $_attachment[5];
+			}
+		}
+		
+		$return['files'] = serialize($return_files);
+		$return["subject"] = $subject;
+				
+		if (!$return['append'])
+			$return['append'] = imap_last_error();
+		
+		return $return;
+	}
+	
+	function set_messages_flag($params)
+	{
+		$folder = $params['folder'];
+		$msgs_to_set = $params['msgs_to_set'];
+		$flag = $params['flag'];
+		$return = array();
+		$return["msgs_to_set"] = $msgs_to_set;
+		$return["flag"] = $flag;
+		
+		if(!$this->mbox && !is_resource($this->mbox))
+			$this->mbox = $this->open_mbox($folder);
+		
+		if ($flag == "unseen")
+			$return["status"] = imap_clearflag_full($this->mbox, $msgs_to_set, "\\Seen", ST_UID);
+		elseif ($flag == "seen")
+			$return["status"] = imap_setflag_full($this->mbox, $msgs_to_set, "\\Seen", ST_UID);
+		elseif ($flag == "answered"){
+			$return["status"] = imap_setflag_full($this->mbox, $msgs_to_set, "\\Answered", ST_UID);
+			imap_clearflag_full($this->mbox, $msgs_to_set, "\\Draft", ST_UID);
+		}
+		elseif ($flag == "forwarded")
+			$return["status"] = imap_setflag_full($this->mbox, $msgs_to_set, "\\Answered \\Draft", ST_UID);
+		elseif ($flag == "flagged")
+			$return["status"] = imap_setflag_full($this->mbox, $msgs_to_set, "\\Flagged", ST_UID);
+		elseif ($flag == "unflagged") {
+			$flag_importance = false;
+			$msgs_number = explode(",",$msgs_to_set);
+			$unflagged_msgs = "";
+			foreach($msgs_number as $msg_number) {
+				preg_match('/importance *: *(.*)\r/i',
+					imap_fetchheader($this->mbox, imap_msgno($this->mbox, $msg_number))
+					,$importance);		
+				if(strtolower($importance[1])=="high" && $_SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_important_flag']) {
+					$flag_importance=true;
+				}
+				else {
+					$unflagged_msgs.=$msg_number.",";
+				}				
+			}
+
+			if($unflagged_msgs!="") {
+				imap_clearflag_full($this->mbox,substr($unflagged_msgs,0,strlen($unflagged_msgs)-1), "\\Flagged", ST_UID);
+				$return["msgs_unflageds"] = substr($unflagged_msgs,0,strlen($unflagged_msgs)-1);
+			}
+			else {
+				$return["msgs_unflageds"] = false;
+			}
+
+			if($flag_importance && $_SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_important_flag']) {
+				$return["status"] = false;
+				$return["msg"] = $this->functions->getLang("At least one of selected message cant be marked as normal");
+			}
+			else {
+				$return["status"] = true;
+			}
+		}
+		
+		if($this->mbox && is_resource($this->mbox))
+			imap_close($this->mbox);
+		return $return;
+	}
+	
+	function get_file_type($file_name)
+	{
+		$file_name = strtolower($file_name);
+	   	$strFileType = strrev(substr(strrev($file_name),0,4));
+	   	if ($strFileType == ".asf") 
+   			return "video/x-ms-asf";
+	   	if ($strFileType == ".avi")
+   			return "video/avi";
+	   	if ($strFileType == ".doc")
+   			return "application/msword";
+	   	if ($strFileType == ".zip")
+   			return "application/zip";
+	   	if ($strFileType == ".xls")
+   			return "application/vnd.ms-excel";
+	   	if ($strFileType == ".gif")
+   			return "image/gif";
+	   	if ($strFileType == ".jpg" || $strFileType == "jpeg")
+   			return "image/jpeg";
+   		if ($strFileType == ".png")
+   			return "image/png";
+	   	if ($strFileType == ".wav")
+   			return "audio/wav";
+	   	if ($strFileType == ".mp3")
+   			return "audio/mpeg3";
+	   	if ($strFileType == ".mpg" || $strFileType == "mpeg")
+   			return "video/mpeg";
+	   	if ($strFileType == ".rtf")
+   			return "application/rtf";
+	   	if ($strFileType == ".htm" || $strFileType == "html")
+   			return "text/html";
+	   	if ($strFileType == ".xml") 
+   			return "text/xml";
+	   	if ($strFileType == ".xsl") 
+   			return "text/xsl";
+	   	if ($strFileType == ".css") 
+   			return "text/css";
+	   	if ($strFileType == ".php") 
+   			return "text/php";
+	   	if ($strFileType == ".asp") 
+   			return "text/asp";
+	   	if ($strFileType == ".pdf")
+   			return "application/pdf";
+	   	if ($strFileType == ".txt")
+   			return "text/plain";
+	   	if ($strFileType == ".wmv")
+   			return "video/x-ms-wmv";
+		if ($strFileType == ".sxc")
+			return "application/vnd.sun.xml.calc";
+		if ($strFileType == ".stc")
+			return "application/vnd.sun.xml.calc.template";
+		if ($strFileType == ".sxd")
+			return "application/vnd.sun.xml.draw";
+		if ($strFileType == ".std")
+			return "application/vnd.sun.xml.draw.template";
+		if ($strFileType == ".sxi")
+			return "application/vnd.sun.xml.impress";
+		if ($strFileType == ".sti")
+			return "application/vnd.sun.xml.impress.template";
+		if ($strFileType == ".sxm")
+			return "application/vnd.sun.xml.math";
+		if ($strFileType == ".sxw")
+			return "application/vnd.sun.xml.writer";
+		if ($strFileType == ".sxq")
+			return "application/vnd.sun.xml.writer.global";
+		if ($strFileType == ".stw")
+			return "application/vnd.sun.xml.writer.template";
+   		
+   		
+   		return "application/octet-stream";  		
+	}
+	
+	function htmlspecialchars_encode($str)
+	{
+		return  str_replace( array('&', '"','\'','<','>','{','}'), array('&amp;','&quot;','&#039;','&lt;','&gt;','&#123;','&#125;'), $str);
+	}
+	function htmlspecialchars_decode($str)
+	{
+		return  str_replace( array('&amp;','&quot;','&#039;','&lt;','&gt;','&#123;','&#125;'), array('&', '"','\'','<','>','{','}'), $str);
+	}
+	
+	function get_msgs($folder, $sort_box_type, $search_box_type, $sort_box_reverse,$offsetBegin = 0,$offsetEnd = 0)
+	{
+		if(!$this->mbox || !is_resource($this->mbox))
+			$this->mbox = $this->open_mbox($folder);
+
+		return $this->messages_sort($sort_box_type,$sort_box_reverse, $search_box_type,$offsetBegin,$offsetEnd);
+	}
+	
+	function get_info_next_msg($params)
+	{
+		$msg_number = $params['msg_number'];
+		$folder = $params['msg_folder'];
+		$sort_box_type = $params['sort_box_type'];
+		$sort_box_reverse = $params['sort_box_reverse'];
+		$reuse_border = $params['reuse_border'];
+		$search_box_type = $params['search_box_type'] != "ALL" && $params['search_box_type'] != "" ? $params['search_box_type'] : false;
+		$sort_array_msg = $this -> get_msgs($folder, $sort_box_type, $search_box_type, $sort_box_reverse);				
+		
+		$success = false;
+		if (is_array($sort_array_msg))
+		{
+			foreach ($sort_array_msg as $i => $value){
+				if ($value == $msg_number)
+				{
+					$success = true;
+					break;
+				}
+			}
+		}
+
+		if (! $success || $i >= sizeof($sort_array_msg)-1)
+		{
+			$params['status'] = 'false';
+			$params['command_to_exec'] = "delete_border('". $reuse_border ."');";
+			return $params;
+		}
+		
+		$params = array();
+		$params['msg_number'] = $sort_array_msg[($i+1)];
+		$params['msg_folder'] = $folder;
+		
+		$return = $this->get_info_msg($params);		
+		$return["reuse_border"] = $reuse_border;
+		return $return;
+	}
+
+	function get_info_previous_msg($params)
+	{
+		$msg_number = $params['msgs_number'];
+		$folder = $params['folder'];
+		$sort_box_type = $params['sort_box_type'];
+		$sort_box_reverse = $params['sort_box_reverse'];
+		$reuse_border = $params['reuse_border'];
+		$search_box_type = $params['search_box_type'] != "ALL" && $params['search_box_type'] != "" ? $params['search_box_type'] : false;
+		$sort_array_msg = $this -> get_msgs($folder, $sort_box_type, $search_box_type, $sort_box_reverse);
+		
+		$success = false;
+		if (is_array($sort_array_msg))
+		{
+			foreach ($sort_array_msg as $i => $value){
+				if ($value == $msg_number)
+				{
+					$success = true;
+					break;
+				}
+			}
+		}
+		if (! $success || $i == 0)
+		{
+			$params['status'] = 'false';
+			$params['command_to_exec'] = "delete_border('". $reuse_border ."');";
+			return $params;
+		}
+		
+		$params = array();
+		$params['msg_number'] = $sort_array_msg[($i-1)];
+		$params['msg_folder'] = $folder;
+		
+		$return = $this->get_info_msg($params);
+		$return["reuse_border"] = $reuse_border;
+		return $return;
+	}
+	
+	// This function updates the values: quota, paging and new messages menu.
+	function get_menu_values($params){
+		$return_array = array();
+		$return_array = $this->get_quota($params);
+		
+		$mbox_stream = $this->open_mbox($params['folder']);
+		$return_array['num_msgs'] = imap_num_msg($mbox_stream);		
+		if($mbox_stream)
+			imap_close($mbox_stream);
+				
+		return $return_array; 
+	}
+	
+	function get_quota($params){
+		// folder_id = user/{uid} for shared folders
+		if(substr($params['folder_id'],0,5) != 'INBOX' && preg_match('/user\\'.$this->imap_delimiter.'/i', $params['folder_id'])){
+			$array_folder =  explode($this->imap_delimiter,$params['folder_id']);
+			$folder_id = "user".$this->imap_delimiter.$array_folder[1];		
+		}
+		// folder_id = INBOX for inbox folders
+		else
+			$folder_id = "INBOX";
+		
+		if(!$this->mbox)
+			$this->mbox = $this->open_mbox();
+
+		$quota = imap_get_quotaroot($this->mbox, $folder_id);
+		if($this->mbox && is_resource($this->mbox))
+			imap_close($this->mbox);
+			
+		if (!$quota){
+			return array(
+				'quota_percent' => 0,
+				'quota_used' => 0,
+				'quota_limit' =>  0
+			);
+		}
+		
+		if(count($quota) && $quota['limit']) {
+			$quota_limit = (($quota['limit']/1024)* 100 + .5 )* .01;
+			$quota_used  = (($quota['usage']/1024)* 100 + .5 )* .01;
+			if($quota_used >= $quota_limit)
+			{
+				$quotaPercent = 100;
+			}
+			else
+			{
+			$quotaPercent = ($quota_used / $quota_limit)*100;
+			$quotaPercent = (($quotaPercent)* 100 + .5 )* .01;
+			}
+			return array(
+				'quota_percent' => floor($quotaPercent),
+				'quota_used' => floor($quota_used),
+				'quota_limit' =>  floor($quota_limit)
+			);
+		}
+		else 
+			return array();
+	}
+	
+	function send_notification($params){
+		require_once("class.phpmailer.php");
+		$mail = new PHPMailer();
+		 
+		$toaddress = $params['notificationto'];
+		
+		$subject = 'Confirmação de leitura: ' . $params['subject'];
+		$body = 'Sua mensagem: ' . $params['subject'] . '<br>';
+		$body .= 'foi lida por: ' . $_SESSION['phpgw_info']['expressomail']['user']['fullname'] . ' &lt;' . $_SESSION['phpgw_info']['expressomail']['user']['email'] . '&gt; em ' . date("d/m/Y H:i");
+		$mail->SMTPDebug = false;
+		$mail->IsSMTP();
+		$mail->Host = $_SESSION['phpgw_info']['expressomail']['email_server']['smtpServer'];
+		$mail->Port = $_SESSION['phpgw_info']['expressomail']['email_server']['smtpPort'];
+		$mail->From = $_SESSION['phpgw_info']['expressomail']['user']['email'];
+		$mail->FromName = $_SESSION['phpgw_info']['expressomail']['user']['fullname'];
+		$mail->AddAddress($toaddress);
+		$mail->Subject = $this->htmlspecialchars_decode($subject);
+
+		$mail->IsHTML(true);
+		$mail->Body = $body;
+		
+		if(!$mail->Send()){
+   			return $mail->ErrorInfo;
+		}
+		else
+   			return true;
+	}
+	
+	function empty_trash()
+	{
+		$folder = 'INBOX' . $this->imap_delimiter . $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder']; 
+		$mbox_stream = $this->open_mbox($folder);
+		$return = imap_delete($mbox_stream,'1:*');
+		if($mbox_stream)
+			imap_close($mbox_stream, CL_EXPUNGE);
+		return $return;
+	}
+	
+	function search($params)
+	{
+		include("class.imap_attachment.inc.php");
+		$imap_attachment = new imap_attachment();				
+		$criteria = $params['criteria'];
+		$return = array();
+		$folders = $this->get_folders_list();
+		
+		$j = 0;
+		foreach($folders as $folder)
+		{
+			$mbox_stream = $this->open_mbox($folder);
+			$messages = imap_search($mbox_stream, $criteria, SE_UID);
+			
+			if ($messages == '')
+				continue;
+		
+			$i = 0;
+			$return[$j] = array();
+			$return[$j]['folder_name'] = $folder['name'];
+			
+			foreach($messages as $msg_number)
+			{
+				$header = $this->get_header($msg_number);
+				if (!is_object($header))
+					return false;
+				
+				$return[$j][$i]['msg_folder']	= $folder['name'];
+				$return[$j][$i]['msg_number']	= $msg_number;
+				$return[$j][$i]['Recent']		= $header->Recent;
+				$return[$j][$i]['Unseen']		= $header->Unseen;
+				$return[$j][$i]['Answered']	= $header->Answered;
+				$return[$j][$i]['Deleted']		= $header->Deleted;
+				$return[$j][$i]['Draft']		= $header->Draft;
+				$return[$j][$i]['Flagged']		= $header->Flagged;
+	
+				$date_msg = gmdate("d/m/Y",$header->udate);
+				if (gmdate("d/m/Y") == $date_msg)
+					$return[$j][$i]['udate'] = gmdate("H:i",$header->udate);
+				else
+					$return[$j][$i]['udate'] = $date_msg;
+			
+				$fromaddress = imap_mime_header_decode($header->fromaddress);
+				$return[$j][$i]['fromaddress'] = '';
+				foreach ($fromaddress as $tmp)
+					$return[$j][$i]['fromaddress'] .= $this->replace_maior_menor($tmp->text);
+			
+				$from = $header->from;
+				$return[$j][$i]['from'] = array();
+				$tmp = imap_mime_header_decode($from[0]->personal);
+				$return[$j][$i]['from']['name'] = $tmp[0]->text;
+				$return[$j][$i]['from']['email'] = $from[0]->mailbox . "@" . $from[0]->host;
+				$return[$j][$i]['from']['full'] ='"' . $return[$j][$i]['from']['name'] . '" ' . '<' . $return[$j][$i]['from']['email'] . '>'; 
+
+				$to = $header->to;
+				$return[$j][$i]['to'] = array();
+				$tmp = imap_mime_header_decode($to[0]->personal);
+				$return[$j][$i]['to']['name'] = $tmp[0]->text;
+				$return[$j][$i]['to']['email'] = $to[0]->mailbox . "@" . $to[0]->host;
+				$return[$j][$i]['to']['full'] ='"' . $return[$i]['to']['name'] . '" ' . '<' . $return[$i]['to']['email'] . '>'; 
+
+				$subject = imap_mime_header_decode($header->fetchsubject);
+				$return[$j][$i]['subject'] = '';
+				foreach ($subject as $tmp)
+					$return[$j][$i]['subject'] .= $tmp->text;
+
+				$return[$j][$i]['Size'] = $header->Size;
+				$return[$j][$i]['reply_toaddress'] = $header->reply_toaddress;
+			
+				$return[$j][$i]['attachment'] = array();
+				$return[$j][$i]['attachment'] = $imap_attachment->get_attachment_headerinfo($mbox_stream, $msg_number);
+						
+				$i++;
+			}
+			$j++;
+			if($mbox_stream)
+				imap_close($mbox_stream);
+		}
+	
+		return $return;
+	}
+	
+	function delete_and_show_previous_message($params)
+	{
+		$return = $this->get_info_previous_msg($params);
+		
+		$params_tmp1 = array();
+		$params_tmp1['msgs_to_delete'] = $params['msg_number'];
+		$params_tmp1['folder'] = $params['msg_folder'];
+		$return_tmp1 = $this->delete_msg($params_tmp1);
+		
+		$return['msg_number_deleted'] = $return_tmp1;
+		
+		return $return;
+	}
+		
+	
+	function automatic_trash_cleanness($params)
+	{
+		$before_date = date("m/d/Y", strtotime("-".$params['before_date']." day"));
+		$criteria =  'BEFORE "'.$before_date.'"';
+		$mbox_stream = $this->open_mbox('INBOX'.$this->imap_delimiter.$_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder']);
+		$messages = imap_search($mbox_stream, $criteria, SE_UID);
+		if (is_array($messages)){
+			foreach ($messages as $msg_number){
+				imap_delete($mbox_stream, $msg_number, FT_UID);
+			}
+		}
+		if($mbox_stream)
+			imap_close($mbox_stream, CL_EXPUNGE);
+		return $messages;
+	}
+// 	Fix the search problem with special characters!!!!
+	function remove_accents($string) {
+		return strtr($string, 
+	 	"?Ó??ó?Ý?úÁÀÃÂÄÇÉÈÊËÍÌ?ÎÏÑÕÔÓÒÖÚÙ?ÛÜ?áàãâäçéèêëíì?îïñóòõôöúù?ûüýÿ", 
+	 	"SOZsozYYuAAAAACEEEEIIIIINOOOOOUUUUUsaaaaaceeeeiiiiinooooouuuuuyy");
+	}
+
+	function search_msg($params = ''){		
+		$retorno = "";
+		$mbox_stream = "";
+		if(strpos($params['condition'],"#")===false) { //local messages
+			$search=false;
+		}
+		else {
+			$search = explode(",",$params['condition']);			
+		}
+
+		if($search){
+			$search_criteria = '';
+			foreach($search as $tmp)
+			{
+				$tmp1 = explode("##",$tmp);
+				$name_box = $tmp1[0];
+				unset($filter);
+				foreach($tmp1 as $index => $criteria)
+				{
+					if ($index != 0 && strlen($criteria) != 0)
+					{
+						$filter_array = explode("<=>",rawurldecode($criteria));
+						$filter .= " ".$filter_array[0];
+						$filter .= '"'.$filter_array[1].'"';
+					}
+				}		
+				$name_box = mb_convert_encoding(utf8_decode($name_box), "UTF7-IMAP", "ISO_8859-1" ); 
+				$filter = $this->remove_accents($filter);
+				//Este bloco tem a finalidade de transformar o login (quando numerico) das pastas compartilhadas em common name
+				$folder_name = explode($this->imap_delimiter,$name_box);
+				if (is_numeric($folder_name[1])) {
+					$this->ldap = new ldap_functions();
+					if ($cn = $this->ldap->uid2cn($folder_name[1]))	{
+						$folder_name[1] = $cn;
+					}
+				}
+				$folder_name = implode($this->imap_delimiter,$folder_name);
+				
+				if(!is_resource($mbox_stream))
+					$mbox_stream = $this->open_mbox($name_box);
+				else
+					imap_reopen($mbox_stream, "{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$name_box);
+			
+				if (preg_match("/^.?\bALL\b/", $filter)){ // Quick Search, note: this ALL isn't the same ALL from imap_search 	
+				
+					$all_criterias = array ("TO","SUBJECT","FROM","CC");
+					foreach($all_criterias as $criteria_fixed)
+					{
+						$_filter = $criteria_fixed . substr($filter,4);
+					
+						$search_criteria = imap_search($mbox_stream, $_filter, SE_UID);
+						
+						if($search_criteria && count($search_criteria) < 50)
+						{
+							foreach($search_criteria as $new_search){
+								$m_token = trim("##".mb_convert_encoding( $name_box, "ISO_8859-1", "UTF7-IMAP" ) . "--" . $this->get_msg($new_search,$name_box,$mbox_stream) . "--".$new_search."##"."\n");
+								if(!@strstr($retorno,$m_token))
+									$retorno .= $m_token;
+							}
+						}						
+						else if(count($search_criteria) >= 50)							
+							return "many results";						
+					}
+				}
+				else {
+					$search_criteria = imap_search($mbox_stream, $filter, SE_UID);
+					if( is_array( $search_criteria) )
+					{
+						foreach($search_criteria as $new_search)
+							$retorno .= trim("##".mb_convert_encoding( $name_box, "ISO_8859-1", "UTF7-IMAP" ) . "--" . $this->get_msg($new_search,$name_box,$mbox_stream) . "--" . $new_search."##"."\n");
+					}
+				}
+			}
+		}
+		if($mbox_stream)
+			imap_close($mbox_stream);		
+						
+		return $retorno ? $retorno : "none";
+	}
+	
+	function get_msg($uid_msg,$name_box, $mbox_stream )
+	{
+		$header = $this->get_header($uid_msg);
+		include_once("class.imap_attachment.inc.php");
+		$imap_attachment = new imap_attachment();
+		$attachments =  $imap_attachment->get_attachment_headerinfo($mbox_stream, $uid_msg);
+		$attachments = $attachments['number_attachments'] > 0?"T".$attachments['number_attachments']:"";
+		$flag = $header->Unseen
+			.$header->Recent
+			.$header->Flagged
+			.$header->Draft
+			.$header->Answered
+			.$header->Deleted
+			.$attachments;
+
+
+		$subject = $this->decode_string($header->fetchsubject);
+		$from = $header->from[0]->mailbox;
+		if($header->from[0]->personal != "")
+			$from = $header->from[0]->personal;
+		$ret_msg = $this->decode_string($from) . "--" . $subject . "--". gmdate("d/m/Y",$header ->udate)."--". $this->size_msg($header->Size) ."--". $flag;
+		return $ret_msg;                    
+	}	
+
+	function size_msg($size){
+		$var = floor($size/1024);
+		if($var >= 1){
+			return $var." kb";	
+		}else{
+			return $size ." b";	
+		}
+	}
+
+	function ob_array($the_object)
+	{
+	   $the_array=array();
+	   if(!is_scalar($the_object))
+	   {
+	       foreach($the_object as $id => $object)
+	       {
+	           if(is_scalar($object))
+	           {
+	               $the_array[$id]=$object;
+	           }
+	           else
+	           {
+	               $the_array[$id]=$this->ob_array($object);
+	           }
+	       }
+	       return $the_array;
+	   }
+	   else
+	   {
+	       return $the_object;
+	   }
+	}
+	
+	function getacl()
+	{
+		$this->ldap = new ldap_functions();
+		
+		$return = array();
+		$mbox_stream = $this->open_mbox();	
+		$mbox_acl = imap_getacl($mbox_stream, 'INBOX');
+		
+		$i = 0;
+		foreach ($mbox_acl as $user => $acl)
+		{
+			if ($user != $this->username)
+			{
+				$return[$i]['uid'] = $user;
+				$return[$i]['cn'] = $this->ldap->uid2cn($user);
+			}
+			$i++;
+		}
+		return $return;
+	}
+	
+	function setacl($params)
+	{
+		$old_users = $this->getacl();
+		if (!count($old_users))
+			$old_users = array();
+		
+		$tmp_array = array();
+		foreach ($old_users as $index => $user_info)
+		{
+			$tmp_array[$index] = $user_info['uid'];
+		}
+		$old_users = $tmp_array;
+		
+		$users = unserialize($params['users']);
+		if (!count($users))
+			$users = array();
+		
+		//$add_share = array_diff($users, $old_users);
+		$remove_share = array_diff($old_users, $users);
+
+		$mbox_stream = $this->open_mbox();
+
+		$serverString = "{".$this->imap_server.":".$this->imap_port.$this->imap_options."}";
+		$mailboxes_list = imap_getmailboxes($mbox_stream, $serverString, "user".$this->imap_delimiter.$this->username."*");
+
+		/*if (count($add_share))
+		{
+			foreach ($add_share as $index=>$uid)
+			{
+		        if (is_array($mailboxes_list))
+        		{
+                	foreach ($mailboxes_list as $key => $val)
+                	{
+                        $folder = str_replace($serverString, "", imap_utf7_decode($val->name));
+						imap_setacl ($mbox_stream, $folder, "$uid", "lrswipcda");
+                	}
+        		}
+			}
+		}*/
+		
+		if (count($remove_share))
+		{
+			foreach ($remove_share as $index=>$uid)
+			{
+		        if (is_array($mailboxes_list))
+        		{
+                	foreach ($mailboxes_list as $key => $val)
+                	{
+                        $folder = str_replace($serverString, "", imap_utf7_decode($val->name));
+						imap_setacl ($mbox_stream, $folder, "$uid", "");
+                	}
+        		}
+			}	
+		}
+		
+		return true;
+	}
+	
+	function getaclfromuser($params)
+	{
+		$useracl = $params['user'];
+		
+		$return = array();
+		$return[$useracl] = 'false';
+		$mbox_stream = $this->open_mbox();	
+		$mbox_acl = imap_getacl($mbox_stream, 'INBOX');
+		
+		foreach ($mbox_acl as $user => $acl)
+		{
+			if (($user != $this->username) && ($user == $useracl))
+			{
+				$return[$user] = $acl;
+			}
+		}
+		return $return;
+	}
+
+	function getacltouser($user)
+	{
+		$return = array();
+		$mbox_stream = $this->open_mbox();
+		//Alterado, antes era 'imap_getacl($mbox_stream, 'user'.$this->imap_delimiter.$user);
+		//Afim de tratar as pastas compartilhadas, verificandos as permissoes de operacao sobre as mesmas
+		//No caso de se tratar da caixa do proprio usuario logado, utiliza a sintaxe abaixo
+		if(substr($user,0,4) != 'user')
+		$mbox_acl = imap_getacl($mbox_stream, 'user'.$this->imap_delimiter.$user);
+		else
+		  $mbox_acl = imap_getacl($mbox_stream, $user);
+		return $mbox_acl[$this->username];
+	}
+	
+
+	function setaclfromuser($params)
+	{
+		$user = $params['user'];
+		$acl = $params['acl'];
+		
+		$mbox_stream = $this->open_mbox();
+
+		$serverString = "{".$this->imap_server.":".$this->imap_port.$this->imap_options."}";
+		$mailboxes_list = imap_getmailboxes($mbox_stream, $serverString, "user".$this->imap_delimiter.$this->username."*");
+
+		if (is_array($mailboxes_list))
+		{
+			foreach ($mailboxes_list as $key => $val)
+			{
+				$folder = str_replace($serverString, "", imap_utf7_encode($val->name));
+				$folder = str_replace("&-", "&", $folder);
+				if (!imap_setacl ($mbox_stream, $folder, $user, $acl))
+				{
+					$return = imap_last_error();
+				}
+			}
+		}
+		if (isset($return))
+			return $return;
+		else
+			return true;
+	}
+	
+	function download_attachment($msg,$msgno)
+	{
+		$array_parts_attachments = array();		
+		$array_parts_attachments['names'] = '';
+		include_once("class.imap_attachment.inc.php");
+		$imap_attachment = new imap_attachment();		
+		
+		if (count($msg->fname[$msgno]) > 0)
+		{
+			$i = 0;
+			foreach ($msg->fname[$msgno] as $index=>$fname)
+			{
+				$array_parts_attachments[$i]['pid'] = $msg->pid[$msgno][$index];
+				$array_parts_attachments[$i]['name'] = $imap_attachment->flat_mime_decode($fname);
+				$array_parts_attachments[$i]['name'] = $array_parts_attachments[$i]['name'] ? $array_parts_attachments[$i]['name'] : "attachment.bin";
+				$array_parts_attachments[$i]['encoding'] = $msg->encoding[$msgno][$index];
+				$array_parts_attachments['names'] .= $array_parts_attachments[$i]['name'] . ', ';
+				$array_parts_attachments[$i]['fsize'] = $msg->fsize[$msgno][$index];
+				$i++;
+			}
+		}
+		$array_parts_attachments['names'] = substr($array_parts_attachments['names'],0,(strlen($array_parts_attachments['names']) - 2));
+		return $array_parts_attachments;
+	}	
+
+	function spam($params)
+	{
+		$is_spam = $params['spam'];
+		$folder = $params['folder'];
+		$mbox_stream = $this->open_mbox($folder);
+		$msgs_number = explode(',',$params['msgs_number']);
+
+		foreach($msgs_number as $msg_number) {
+			$header = imap_fetchheader($mbox_stream, imap_msgno($mbox_stream, $msg_number));
+			$body = imap_body($mbox_stream, imap_msgno($mbox_stream, $msg_number));
+			$msg = $header . $body;
+			$email = $_SESSION['phpgw_info']['expressomail']['user']['email'];
+			$username = $this->username;
+			strtok($email, '@');
+			$domain = strtok('@');
+
+			//Encontrar a assinatura do dspam no cabecalho
+			$v = explode("\r\n", $header);
+			foreach ($v as $linha){
+				if (eregi("^X-DSPAM-Signature", $linha)) {
+					
+					$args = explode(" ",$linha);
+					$signature = $args[1];
+				}
+			}
+
+			// feed dspam
+			switch($is_spam){
+				case 'true':  $cmd = $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_spam']; break;
+				case 'false': $cmd = $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_ham']; break;
+			}
+			$tags = array('##EMAIL##', '##USERNAME##', '##DOMAIN##', '##SIGNATURE##');
+			$cmd = str_replace($tags,array($email,$username,$domain,$signature),$cmd);
+ 			system($cmd);
+		}
+		imap_close($mbox_stream);
+		return false;
+	}
+	function get_header($msg_number){
+		$header = @imap_headerinfo($this->mbox, imap_msgno($this->mbox, $msg_number), 80, 255);
+		if (!is_object($header))
+			return false;
+		// Prepare udate from mailDate (DateTime arrived with TZ) for fixing summertime problem.
+		$pdate = date_parse($header->MailDate);
+ 		$header->udate +=  $pdate['zone']*(-60);
+		
+		if($header->Flagged != "F" && $_SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_important_flag']) {
+			$flag = preg_match('/importance *: *(.*)\r/i',
+						imap_fetchheader($this->mbox, imap_msgno($this->mbox, $msg_number))
+						,$importance);		
+			$header->Flagged = $flag==0?false:strtolower($importance[1])=="high"?"F":false;
+		}
+		
+		return $header;
+	}
+}
+?>
Index: tags/expressoMail1_2/1.234/inc/class.user.inc.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/class.user.inc.php	(revision 2)
+++ tags/expressoMail1_2/1.234/inc/class.user.inc.php	(revision 2)
@@ -0,0 +1,44 @@
+<?php
+	class user{
+		
+		function get_user(){
+			
+			return "<br><font color='blue'>GET USER</font>".			
+						"<br>usuario =".$_SESSION['phpgw_info']['expressomail']['user']['userid'].
+						"<br>senha =".$_SESSION['phpgw_info']['expressomail']['user']['passwd'];			
+		}
+							
+		function verify_user($params){
+			
+			$userId = $params['userid'];
+			$delay =  $params['delay'];
+			
+			if($delay)
+				sleep($delay);
+			
+			$result = '';					
+			
+			if($userId == $_SESSION['phpgw_info']['expressomail']['user']['userid'])				
+				$result =  '<br><font color="green">VERIFY USER ... VERIFIED</font>';			
+			else			
+				$result =  '<br><font color="red">VERIFY USER ... NOT VERIFIED</font>';
+			
+			return $result;											
+		}
+		
+		function verify_user_get($params){
+			
+			return $params;
+		}	
+		
+		function verify_user_post($params){
+			
+			return $this -> verify_user($params);
+		}
+		
+		function get_email(){
+			return $_SESSION['phpgw_info']['expressomail']['user']['email'];	
+		}
+		
+	}
+?>
Index: tags/expressoMail1_2/1.234/inc/class.exporteml.inc.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/class.exporteml.inc.php	(revision 711)
+++ tags/expressoMail1_2/1.234/inc/class.exporteml.inc.php	(revision 711)
@@ -0,0 +1,478 @@
+<?php
+/***************************************************************************************\
+* Export EML Format Message Mail														*
+* Written by Nilton Neto (Celepar) <niltonneto@celepar.pr.gov.br>						*
+* ------------------------------------------------------------------------------------	*
+*  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.															*
+\****************************************************************************************/
+// BEGIN CLASS
+class ExportEml
+{
+	var $msg;
+	var $folder;
+	var $mbox_stream;
+	
+	function connectImap(){
+	
+		$username = $_SESSION['phpgw_info']['expressomail']['user']['userid'];
+		$password = $_SESSION['phpgw_info']['expressomail']['user']['passwd'];
+		$imap_server = $_SESSION['phpgw_info']['expressomail']['email_server']['imapServer'];
+		$imap_port 	= $_SESSION['phpgw_info']['expressomail']['email_server']['imapPort'];
+		
+		if ($_SESSION['phpgw_info']['expressomail']['email_server']['imapTLSEncryption'] == 'yes')
+		{
+			$imap_options = '/tls/novalidate-cert';
+		}
+		else
+		{
+			$imap_options = '/notls/novalidate-cert';
+		}
+		$this->mbox_stream = imap_open("{".$imap_server.":".$imap_port.$imap_options."}".$this->folder, $username, $password);
+	}
+	
+	//export message to EML Format
+	function parseEml($header, $body)	
+	{		
+		$sEmailHeader = $header;
+		$sEmailBody = $body;
+		$sEMail = $sEmailHeader . "\r\n\r\n" . $sEmailBody;		
+		return $sEMail;
+	}
+	
+	// create EML File.
+    function createFileEml($sEMLData, $tempDir, $id)  
+    {
+        if($id)
+        {
+            $header    = imap_headerinfo($this->mbox_stream, imap_msgno($this->mbox_stream, $id), 80, 255);
+            $subject = $this->decode_subject($header->fetchsubject);
+            
+            if (strlen($subject) > 60)
+                $subject = substr($subject, 0, 59);
+ 
+            $subject = ereg_replace('/', '\'', $subject);            
+            $file =    $subject."_".$id.".eml";
+        }    
+        else{
+            $file =    "email_".md5(microtime()).".eml";
+        }
+        
+        $f = fopen($tempDir.'/'.$file,"w");
+        if(!$f)
+            return False;
+        
+        fputs($f,$sEMLData);
+        fclose($f);
+        
+        return $file;
+    } 
+
+	function createFileZip($files, $tempDir){		
+		$tmp_zip_filename =	"email_".md5(microtime()).".zip";
+		$command = "cd " . $tempDir . "; nice zip -m " . $tmp_zip_filename . " " . $files;			
+		if(!exec($command)) {
+			$command = 'cd ' . $tempDir . '; rm '.$files;
+			exec($command);
+			return null;
+		}
+		
+		return $tmp_zip_filename;
+				
+	}
+
+	function export_all($params){
+		
+		$this->folder = $params['folder'];
+		$this->folder = mb_convert_encoding($this->folder, "UTF7-IMAP","UTF-8");
+		$fileNames = "";
+		$tempDir = ini_get("session.save_path");
+		$this->connectImap();
+		
+		$msgs = imap_search($this->mbox_stream,"ALL",SE_UID);
+		foreach($msgs as $nMsgs){
+			$header	 	= $this-> getHeader($nMsgs);									
+			$body		= $this-> getBody($nMsgs);			
+			$sEMLData 	= $this -> parseEml($header, $body);
+			$fileName 	= $this -> CreateFileEml($sEMLData, $tempDir,$nMsgs);
+			if(!$fileName)	{
+				$error = True;					
+				break;
+			}
+			else
+				$fileNames .= "\"".$fileName."\" ";			
+			
+		}
+		imap_close($this->mbox_stream);
+		
+		$nameFileZip = 'False';			
+		if($fileNames && !$error) {			
+			$nameFileZip = $this -> createFileZip($fileNames, $tempDir);
+			if($nameFileZip)			
+				$file = $tempDir.'/'.$nameFileZip;
+			else {
+				$file = false;
+			}								
+		}
+		else 
+			$file = false;
+			
+		return $file;
+		
+	}
+
+	function makeAll($params) {
+		
+		$this-> folder = $params['folder'];
+		$this->folder = mb_convert_encoding($this->folder, "UTF7-IMAP","UTF-8");
+		$array_ids = explode(',', $params['msgs_to_export']);	
+		$error = False;		
+		$fileNames = "";
+		$tempDir = ini_get("session.save_path");
+		$this->connectImap();
+				
+		for($i = 0; $i < count($array_ids); $i++) {
+				
+			$header	 	= $this-> getHeader($array_ids[$i]);											
+			$body		= $this-> getBody($array_ids[$i]);			
+			$sEMLData 	= $this -> parseEml($header, $body);			
+			$fileName 	= $this -> CreateFileEml($sEMLData, $tempDir, $array_ids[$i]);
+			
+			if(!$fileName)	{
+				$error = True;					
+				break;
+			}
+			else
+				$fileNames .= "\"".$fileName."\" ";			
+			
+		}
+		imap_close($this->mbox_stream);
+		
+		
+		$nameFileZip = 'False';			
+		if($fileNames && !$error) {			
+			$nameFileZip = $this -> createFileZip($fileNames, $tempDir);
+			if($nameFileZip)			
+				$file = $tempDir.'/'.$nameFileZip;
+			else {
+				$file = false;
+			}								
+		}
+		else 
+			$file = false;
+			
+		return $file;
+	}
+
+	function export_msg($params) {
+		$this-> folder = $params['folder'];
+		$this->folder = mb_convert_encoding($this->folder, "UTF7-IMAP","UTF-8");
+		$id_number = $params['msgs_to_export'];
+		$tempDir = ini_get("session.save_path");
+		
+		$this->connectImap();
+		$header	 	= $this-> getHeader($id_number);
+		$body		= $this-> getBody($id_number);
+		
+		$file = "source_".md5(microtime()).".txt";
+		$f = fopen($tempDir.'/'.$file,"w");
+		fputs($f,$header ."\r\n\r\n". $body);
+		fclose($f);
+		
+		imap_close($this->mbox_stream);
+		return $tempDir.'/'.$file;
+	}
+
+	function export_to_archive($id_msg,$folder) {
+		$this->folder = $folder;
+		$this->folder = mb_convert_encoding($this->folder, "UTF7-IMAP","UTF-8");
+		$tempDir = dirname( __FILE__ ) . '/../tmpLclAtt';
+		
+		$phpheader = "<?php header('Content-Type: text/plain');
+				header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
+				header('Pragma: public');
+				header('Expires: 0'); // set expiration time
+	 	 		header('Content-Disposition: attachment; filename=\"fonte_da_mensagem.txt\"');?>";
+		
+		$this->connectImap();
+		$header	 	= $this-> getHeader($id_msg);
+		$body		= $this-> getBody($id_msg);
+		
+		$file = "source_".md5(microtime()).".php";
+		$f = fopen($tempDir.'/'.$file,"w");
+		fputs($f,$phpheader.$header ."\r\n\r\n". $body);
+		fclose($f);
+		$urlPath = 'tmpLclAtt/'.$file;
+		
+		imap_close($this->mbox_stream);
+		return $urlPath;
+	}
+
+	function remove_accents($string) {
+		/*
+			$array1 = array("á", "à", "â", "ã", "ä", "é", "è", "ê", "ë", "í", "ì", "î", "ï", "ó", "ò", "ô", "õ", "ö", "ú", "ù", "û", "ü", "ç" , "?", "\"", "!", "@", "#", "$", "%", "š", "&", "*", "(", ")", "-", "=", "+", "Ž", "`", "[", "]", "{", "}", "~", "^", ",", "<", ">", ";", ":", "/", "?", "\\", "|", "¹", "²", "³", "£", "¢", "¬", "§", "ª", "º", "°", "Á", "À", "Â", "Ã", "Ä", "É", "È", "Ê", "Ë", "Í", "Ì", "Î", "Ï", "Ó", "Ò", "Ô", "Õ", "Ö", "Ú", "Ù", "Û", "Ü", "Ç");
+			$array2 = array("a", "a", "a", "a", "a", "e", "e", "e", "e", "i", "i", "i", "i", "o", "o", "o", "o", "o", "u", "u", "u", "u", "c" , "" , ""  , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" ,  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "A", "A", "A", "A", "A", "E", "E", "E", "E", "I", "I", "I", "I", "O", "O", "O", "O", "O", "U", "U", "U", "U", "C");
+		  	return str_replace( $array1, $array2, $string );
+		*/
+		return strtr($string,
+			"áàâãäéèêëíìîïóòôõöúùûüç?\"!@#$%š&*()-=+Ž`[]{}~^,<>;:/?\\|¹²³£¢¬§ªº°ÁÀÂÃÄÉÈÊËÍÌÎÏÓÒÔÕÖÚÙÛÜÇ",
+			"aaaaaeeeeiiiiooooouuuuc__________________________________________AAAAAEEEEIIIIOOOOOUUUUC");
+	}
+	
+	function get_attachments_in_array($params) {
+		$return_attachments = array();
+
+		$id_number = $params['num_msg'];		
+		$attachments =unserialize(rawurldecode($params['s_attachments']));
+		
+		$tempDir = dirname( __FILE__ ) . '/../tmpLclAtt';
+//		$tempDir = $_SERVER["DOCUMENT_ROOT"]."tmpLclAtt";
+		$tempSubDir = md5(microtime());
+		exec('mkdir ' . $tempDir . '/'.$tempSubDir.'; cd ' . $tempDir . '/'.$tempSubDir);
+		
+		$this-> folder = $params['folder'];
+		$this->folder = mb_convert_encoding($this->folder, "UTF7-IMAP","UTF-8");
+		$this->connectImap();
+
+		include_once("class.imap_attachment.inc.php");
+
+		$imap_attachment = new imap_attachment();
+		$attachments = $imap_attachment->download_attachment($this->mbox_stream, $id_number);
+		
+
+		
+		foreach($attachments as $i => $attachment){
+			if($i && $i == 'names')
+				continue;
+			$fileNameReal = $this->remove_accents($attachment['name']);
+			$ContentType = $this->getFileType($fileNameReal);
+			$fileName = $fileNameReal . ".php";
+			$f = fopen($tempDir . '/'.$tempSubDir.'/'.$fileName,"wb");
+			if(!$f)
+				return $tempDir . '/'.$tempSubDir.'/'.$fileName;			
+
+			$fileContent = imap_fetchbody($this->mbox_stream, $id_number,$attachment['pid'], FT_UID);
+			$urlPath = 'tmpLclAtt/'.$tempSubDir.'/'.$fileName;
+			
+			$headers = "<?php header('Content-Type: ".$ContentType."');
+				header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
+				header('Pragma: public');
+				header('Expires: 0'); // set expiration time
+	 	 		header('Content-Disposition: attachment; filename=\"". addslashes($fileNameReal) ."\"');\n echo ";
+			
+			if($attachment['encoding'] == 'base64') {
+				$headers.=" imap_base64('".$fileContent."');?>";
+			}
+			else if($attachment['encoding'] == 'quoted_printable_decode') {
+				$headers.=" quoted_printable_decode('".$fileContent."');?>";
+			}
+			else {
+				$headers.=" '".$fileContent."';?>";
+			}
+			
+			fputs($f,$headers);
+
+			array_push($return_attachments,array('name' => $fileName,'url' => $urlPath,'pid' =>$attachment['pid']));
+			fclose($f);
+		}
+		imap_close($this->mbox_stream);
+		return $return_attachments;
+	}
+	
+	private function getFileType($nameFile) {
+		$strFileType = strrev(substr(strrev(strtolower($nameFile)),0,4));
+		$ContentType = "application/octet-stream";
+	   	if ($strFileType == ".asf") 
+	   		$ContentType = "video/x-ms-asf";
+	   	if ($strFileType == ".avi")
+	   		$ContentType = "video/avi";
+	   	if ($strFileType == ".doc")
+	   		$ContentType = "application/msword";
+	   	if ($strFileType == ".zip")
+	   		$ContentType = "application/zip";
+	   	if ($strFileType == ".xls")
+	   		$ContentType = "application/vnd.ms-excel";
+	   	if ($strFileType == ".gif")
+	   		$ContentType = "image/gif";
+	   	if ($strFileType == ".jpg" || $strFileType == "jpeg")
+	   		$ContentType = "image/jpeg";
+	   	if ($strFileType == ".wav")
+	   		$ContentType = "audio/wav";
+	   	if ($strFileType == ".mp3")
+	   		$ContentType = "audio/mpeg3";
+	   	if ($strFileType == ".mpg" || $strFileType == "mpeg")
+	   		$ContentType = "video/mpeg";
+	   	if ($strFileType == ".rtf")
+	   		$ContentType = "application/rtf";
+	   	if ($strFileType == ".htm" || $strFileType == "html")
+	   		$ContentType = "text/html";
+	   	if ($strFileType == ".xml") 
+	   		$ContentType = "text/xml";
+	   	if ($strFileType == ".xsl") 
+	   		$ContentType = "text/xsl";
+	   	if ($strFileType == ".css") 
+	   		$ContentType = "text/css";
+	   	if ($strFileType == ".php") 
+	   		$ContentType = "text/php";
+	   	if ($strFileType == ".asp") 
+	   		$ContentType = "text/asp";
+	   	if ($strFileType == ".pdf")
+	   		$ContentType = "application/pdf";
+	   	if ($strFileType == ".txt")
+	   		$ContentType = "text/plain";
+	   	if ($strFileType == ".log")
+	   		$ContentType = "text/plain";
+	   	if ($strFileType == ".wmv")
+	   		$ContentType = "video/x-ms-wmv";
+		if ($strFileType == ".sxc")
+			$ContentType = "application/vnd.sun.xml.calc";
+		if ($strFileType == ".odt")
+			$ContentType = "application/vnd.oasis.opendocument.text";
+		if ($strFileType == ".stc")
+			$ContentType = "application/vnd.sun.xml.calc.template";
+		if ($strFileType == ".sxd")
+			$ContentType = "application/vnd.sun.xml.draw";
+		if ($strFileType == ".std")
+			$ContentType = "application/vnd.sun.xml.draw.template";
+		if ($strFileType == ".sxi")
+			$ContentType = "application/vnd.sun.xml.impress";
+		if ($strFileType == ".sti")
+			$ContentType = "application/vnd.sun.xml.impress.template";
+		if ($strFileType == ".sxm")
+			$ContentType = "application/vnd.sun.xml.math";
+		if ($strFileType == ".sxw")
+			$ContentType = "application/vnd.sun.xml.writer";
+		if ($strFileType == ".sxq")
+			$ContentType = "application/vnd.sun.xml.writer.global";
+		if ($strFileType == ".stw")
+			$ContentType = "application/vnd.sun.xml.writer.template";
+		if ($strFileType == ".ps")
+			$ContentType = "application/postscript";
+		if ($strFileType == ".pps")
+			$ContentType = "application/vnd.ms-powerpoint";
+		if ($strFileType == ".odt")
+			$ContentType = "application/vnd.oasis.opendocument.text";
+		if ($strFileType == ".ott")
+			$ContentType = "application/vnd.oasis.opendocument.text-template";
+		if ($strFileType == ".oth")
+			$ContentType = "application/vnd.oasis.opendocument.text-web";
+		if ($strFileType == ".odm")
+			$ContentType = "application/vnd.oasis.opendocument.text-master";
+		if ($strFileType == ".odg")
+			$ContentType = "application/vnd.oasis.opendocument.graphics";
+		if ($strFileType == ".otg")
+			$ContentType = "application/vnd.oasis.opendocument.graphics-template";
+		if ($strFileType == ".odp")
+			$ContentType = "application/vnd.oasis.opendocument.presentation";
+		if ($strFileType == ".otp")
+			$ContentType = "application/vnd.oasis.opendocument.presentation-template";
+		if ($strFileType == ".ods")
+			$ContentType = "application/vnd.oasis.opendocument.spreadsheet";
+		if ($strFileType == ".ots")
+			$ContentType = "application/vnd.oasis.opendocument.spreadsheet-template";
+		if ($strFileType == ".odc")
+			$ContentType = "application/vnd.oasis.opendocument.chart";
+		if ($strFileType == ".odf")
+			$ContentType = "application/vnd.oasis.opendocument.formula";
+		if ($strFileType == ".odi")
+			$ContentType = "application/vnd.oasis.opendocument.image";
+		if ($strFileType == ".ndl")
+			$ContentType = "application/vnd.lotus-notes";
+		return $ContentType;
+	}
+	
+	function download_all_attachments($params) {
+		
+		$id_number = $params['num_msg'];		
+		$attachments =unserialize(rawurldecode($params['s_attachments']));
+		
+		$tempDir = ini_get("session.save_path");
+		$tempSubDir = md5(microtime());
+		$fileNames = '';
+		exec('mkdir ' . $tempDir . '/'.$tempSubDir.'; cd ' . $tempDir . '/'.$tempSubDir);
+		$this-> folder = $params['folder'];
+		$this->folder = mb_convert_encoding($this->folder, "UTF7-IMAP","UTF-8");
+		$this->connectImap();
+		include("class.imap_attachment.inc.php");
+		$imap_attachment = new imap_attachment();
+		$attachments = $imap_attachment->download_attachment($this->mbox_stream, $id_number);
+		
+		foreach($attachments as $i => $attachment){
+			if($i && $i == 'names')
+				continue;
+																		
+			
+			$fileName = $this->remove_accents($attachment['name']);
+			$f = fopen($tempDir . '/'.$tempSubDir.'/'.$fileName,"wb");
+			if(!$f)
+				return False;			
+						
+			$fileNames .= "'".$fileName."' ";
+			$fileContent = imap_fetchbody($this->mbox_stream, $id_number,$attachment['pid'], FT_UID);
+			if($attachment['encoding'] == 'base64')
+				fputs($f,imap_base64($fileContent));
+			else		
+				fputs($f,$fileContent);
+				
+			fclose($f);
+		
+		}
+		imap_close($this->mbox_stream);
+		$nameFileZip = '';
+		
+		if($fileNames) {
+			$nameFileZip = $this -> createFileZip($fileNames, $tempDir . '/'.$tempSubDir);						
+			if($nameFileZip)
+				$file =  $tempDir . '/'.$tempSubDir.'/'.$nameFileZip;
+			else {
+				$file = false;
+			}
+		}
+		else 
+			$file = false;
+				
+		return $file;
+	}
+
+	function getHeader($msg_number){			
+		return imap_fetchheader($this->mbox_stream, $msg_number, FT_UID);
+	}
+	
+	function getBody($msg_number){
+		$header = imap_headerinfo($this->mbox_stream, imap_msgno($this->mbox_stream, $msg_number), 80, 255);
+		$body = imap_body($this->mbox_stream, $msg_number, FT_UID);
+		if(($header->Unseen == 'U') || ($header->Recent == 'N')){
+			imap_clearflag_full($this->mbox_stream, $msg_number, "\\Seen", ST_UID);
+		}
+		return $body;
+	}
+
+	function decode_subject($string){
+		if ((strpos(strtolower($string), '=?iso-8859-1') !== false) 
+			|| (strpos(strtolower($string), '=?windows-1252') !== false)){
+			$elements = imap_mime_header_decode($string);
+			foreach ($elements as $el)
+				$return .= $el->text;
+		}
+		else if (strpos(strtolower($string), '=?utf-8') !== false) {
+			$elements = imap_mime_header_decode($string);
+			foreach ($elements as $el){
+	   			$charset = $el->charset;
+	   			$text	 = $el->text;
+	   			if(!strcasecmp($charset, "utf-8") ||
+	       			!strcasecmp($charset, "utf-7"))	{
+	     			$text = iconv($charset, "ISO-8859-1", $text);
+	       		}
+	       		$return .= $text;
+	  		}
+		}
+		else
+			$return = $string;
+
+		return $this->remove_accents($return);		
+	}
+}
+// END CLASS
+?>
Index: tags/expressoMail1_2/1.234/inc/htmlfilter.inc
===================================================================
--- tags/expressoMail1_2/1.234/inc/htmlfilter.inc	(revision 3)
+++ tags/expressoMail1_2/1.234/inc/htmlfilter.inc	(revision 3)
@@ -0,0 +1,1021 @@
+<?php
+/**
+ * htmlfilter.inc
+ * ---------------
+ * This set of functions allows you to filter html in order to remove
+ * any malicious tags from it. Useful in cases when you need to filter
+ * user input for any cross-site-scripting attempts.
+ *
+ * Copyright (C) 2002-2004 by Duke University
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  
+ * 02110-1301  USA
+ *
+ * @Author  Konstantin Riabitsev <icon@linux.duke.edu>
+ */
+
+/**
+ * This is a debugging function used throughout the code. To enable
+ * debugging you have to specify a global variable called "debug" before
+ * calling sanitize() and set it to true. 
+ *
+ * Note: Although insignificantly, debugging does slow you down even
+ * when $debug is set to false. If you wish to get rid of all
+ * debugging calls, run the following command:
+ *
+ * fgrep -v 'spew("' htmlfilter.inc > htmlfilter.inc.new
+ *
+ * htmlfilter.inc.new will contain no debugging calls.
+ *
+ * @param  $message  A string with the message to output.
+ * @return           void.
+ */
+function spew($message){
+    global $debug;
+    if ($debug == true){
+        echo "$message";
+    }
+}
+
+/**
+ * This function returns the final tag out of the tag name, an array
+ * of attributes, and the type of the tag. This function is called by 
+ * sanitize internally.
+ *
+ * @param  $tagname  the name of the tag.
+ * @param  $attary   the array of attributes and their values
+ * @param  $tagtype  The type of the tag (see in comments).
+ * @return           a string with the final tag representation.
+ */
+function tagprint($tagname, $attary, $tagtype){
+    $me = 'tagprint';
+    if ($tagtype == 2){
+        $fulltag = '</' . $tagname . '>';
+    } else {
+        $fulltag = '<' . $tagname;
+        if (is_array($attary) && sizeof($attary)){
+            $atts = Array();
+            while (list($attname, $attvalue) = each($attary)){
+                array_push($atts, "$attname=$attvalue");
+            }
+            $fulltag .= ' ' . join(' ', $atts);
+        }
+        if ($tagtype == 3){
+            $fulltag .= ' /';
+        }
+        $fulltag .= '>';
+    }
+    spew("$me: $fulltag\n");
+    return $fulltag;
+}
+
+/**
+ * A small helper function to use with array_walk. Modifies a by-ref
+ * value and makes it lowercase.
+ *
+ * @param  $val a value passed by-ref.
+ * @return      void since it modifies a by-ref value.
+ */
+function casenormalize(&$val){
+    $val = strtolower($val);
+}
+
+/**
+ * This function skips any whitespace from the current position within
+ * a string and to the next non-whitespace value.
+ * 
+ * @param  $body   the string
+ * @param  $offset the offset within the string where we should start
+ *                 looking for the next non-whitespace character.
+ * @return         the location within the $body where the next
+ *                 non-whitespace char is located.
+ */
+function skipspace($body, $offset){
+    $me = 'skipspace';
+    preg_match('/^(\s*)/s', substr($body, $offset), $matches);
+    if (sizeof($matches{1})){
+        $count = strlen($matches{1});
+        spew("$me: skipped $count chars\n");
+        $offset += $count;
+    }
+    return $offset;
+}
+
+/**
+ * This function looks for the next character within a string.  It's
+ * really just a glorified "strpos", except it catches the failures
+ * nicely.
+ *
+ * @param  $body   The string to look for needle in.
+ * @param  $offset Start looking from this position.
+ * @param  $needle The character/string to look for.
+ * @return         location of the next occurance of the needle, or
+ *                 strlen($body) if needle wasn't found.
+ */
+function findnxstr($body, $offset, $needle){
+    $me = 'findnxstr';
+    $pos = strpos($body, $needle, $offset);
+    if ($pos === FALSE){
+        $pos = strlen($body);
+        spew("$me: end of body reached\n");
+    }
+    spew("$me: '$needle' found at pos $pos\n");
+    return $pos;
+}
+
+/**
+ * This function takes a PCRE-style regexp and tries to match it
+ * within the string.
+ *
+ * @param  $body   The string to look for needle in.
+ * @param  $offset Start looking from here.
+ * @param  $reg    A PCRE-style regex to match.
+ * @return         Returns a false if no matches found, or an array
+ *                 with the following members:
+ *                 - integer with the location of the match within $body
+ *                 - string with whatever content between offset and the match
+ *                 - string with whatever it is we matched
+ */
+function findnxreg($body, $offset, $reg){
+    $me = 'findnxreg';
+    $matches = Array();
+    $retarr = Array();
+    $preg_rule = '%^(.*?)(' . $reg . ')%s';
+    preg_match($preg_rule, substr($body, $offset), $matches);
+    if (!isset($matches{0})){
+        spew("$me: No matches found.\n");
+        $retarr = false;
+    } else {
+        $retarr{0} = $offset + strlen($matches{1});
+        $retarr{1} = $matches{1};
+        $retarr{2} = $matches{2};
+        spew("$me: '$reg' found at pos $offset matching '".$matches{2}."'\n");
+    }
+    return $retarr;
+}
+
+/**
+ * This function looks for the next tag.
+ *
+ * @param  $body   String where to look for the next tag.
+ * @param  $offset Start looking from here.
+ * @return         false if no more tags exist in the body, or
+ *                 an array with the following members:
+ *                 - string with the name of the tag
+ *                 - array with attributes and their values
+ *                 - integer with tag type (1, 2, or 3)
+ *                 - integer where the tag starts (starting "<")
+ *                 - integer where the tag ends (ending ">")
+ *                 first three members will be false, if the tag is invalid.
+ */
+function getnxtag($body, $offset){
+    $me = 'getnxtag';
+    if ($offset > strlen($body)){
+        spew("$me: Past the end of body\n");
+        return false;
+    }
+    $lt = findnxstr($body, $offset, '<');
+    if ($lt == strlen($body)){
+        spew("$me: No more tags found!\n");
+        return false;
+    }
+    /**
+     * We are here:
+     * blah blah <tag attribute="value">
+     * \---------^
+     */
+    spew("$me: Found '<' at pos $lt\n");
+    $pos = skipspace($body, $lt + 1);
+    if ($pos >= strlen($body)){
+        spew("$me: End of body reached.\n");
+        return Array(false, false, false, $lt, strlen($body));
+    }
+    /**
+     * There are 3 kinds of tags:
+     * 1. Opening tag, e.g.:
+     *    <a href="blah">
+     * 2. Closing tag, e.g.:
+     *    </a>
+     * 3. XHTML-style content-less tag, e.g.:
+     *    <img src="blah"/>
+     */
+    $tagtype = false;
+    switch (substr($body, $pos, 1)){
+    case '/':
+        spew("$me: This is a closing tag (type 2)\n");
+        $tagtype = 2;
+        $pos++;
+        break;
+    case '!':
+        /**
+         * A comment or an SGML declaration.
+         */
+        if (substr($body, $pos+1, 2) == '--'){
+            spew("$me: A comment found. Stripping.\n");
+            $gt = strpos($body, '-->', $pos);
+            if ($gt === false){
+                $gt = strlen($body);
+            } else {
+                $gt += 2;
+            }
+            return Array(false, false, false, $lt, $gt);
+        } else {
+            spew("$me: An SGML declaration found. Stripping.\n");
+            $gt = findnxstr($body, $pos, '>');
+            return Array(false, false, false, $lt, $gt);
+        }
+        break;
+    default:
+        /**
+         * Assume tagtype 1 for now. If it's type 3, we'll switch values
+         * later.
+         */
+        $tagtype = 1;
+        break;
+    }
+    
+    $tag_start = $pos;
+    $tagname = '';
+    /**
+     * Look for next [\W-_], which will indicate the end of the tag name.
+     */
+    $regary = findnxreg($body, $pos, '[^\w\-_]');
+    if ($regary == false){
+        spew("$me: End of body reached while analyzing tag name\n");
+        return Array(false, false, false, $lt, strlen($body));
+    }
+    list($pos, $tagname, $match) = $regary;
+    $tagname = strtolower($tagname);
+    
+    /**
+     * $match can be either of these:
+     * '>'  indicating the end of the tag entirely.
+     * '\s' indicating the end of the tag name.
+     * '/'  indicating that this is type-3 xhtml tag.
+     * 
+     * Whatever else we find there indicates an invalid tag.
+     */
+    switch ($match){
+    case '/':
+        /**
+         * This is an xhtml-style tag with a closing / at the
+         * end, like so: <img src="blah"/>. Check if it's followed
+         * by the closing bracket. If not, then this tag is invalid
+         */
+        if (substr($body, $pos, 2) == '/>'){
+            spew("$me: XHTML-style tag found.\n");
+            $pos++;
+            spew("$me: Setting tagtype to 3\n");
+            $tagtype = 3;
+        } else {
+            spew("$me: Found invalid character '/'.\n");
+            $gt = findnxstr($body, $pos, '>');
+            spew("$me: Tag is invalid. Returning.\n");
+            $retary = Array(false, false, false, $lt, $gt);
+            return $retary;
+        }
+    case '>':
+        spew("$me: End of tag found at $pos\n");
+        spew("$me: Tagname is '$tagname'\n");
+        spew("$me: This tag has no attributes\n");
+        return Array($tagname, false, $tagtype, $lt, $pos);
+        break;
+    default:
+        /**
+         * Check if it's whitespace
+         */
+        if (preg_match('/\s/', $match)){
+            spew("$me: Tagname is '$tagname'\n");
+        } else {
+            /**
+             * This is an invalid tag! Look for the next closing ">".
+             */
+            spew("$me: Invalid characters found in tag name: $match\n");
+            $gt = findnxstr($body, $lt, '>');
+            return Array(false, false, false, $lt, $gt);
+        }
+    }
+    
+    /**
+     * At this point we're here:
+     * <tagname  attribute='blah'>
+     * \-------^
+     *
+     * At this point we loop in order to find all attributes.
+     */
+    $attname = '';
+    $atttype = false;
+    $attary = Array();
+    
+    while ($pos <= strlen($body)){
+        $pos = skipspace($body, $pos);
+        if ($pos == strlen($body)){
+            /**
+             * Non-closed tag.
+             */
+            spew("$me: End of body reached before end of tag. Discarding.\n");
+            return Array(false, false, false, $lt, $pos);
+        }
+        /**
+         * See if we arrived at a ">" or "/>", which means that we reached
+         * the end of the tag.
+         */
+        $matches = Array();
+        preg_match('%^(\s*)(>|/>)%s', substr($body, $pos), $matches);
+        if (isset($matches{0}) && $matches{0}){
+            /**
+             * Yep. So we did.
+             */
+            spew("$me: Arrived at the end of the tag.\n");
+            $pos += strlen($matches{1});
+            if ($matches{2} == '/>'){
+                $tagtype = 3;
+                $pos++;
+            }
+            return Array($tagname, $attary, $tagtype, $lt, $pos);
+        }
+        
+        /**
+         * There are several types of attributes, with optional
+         * [:space:] between members.
+         * Type 1:
+         *   attrname[:space:]=[:space:]'CDATA'
+         * Type 2:
+         *   attrname[:space:]=[:space:]"CDATA"
+         * Type 3:
+         *   attr[:space:]=[:space:]CDATA
+         * Type 4:
+         *   attrname
+         *
+         * We leave types 1 and 2 the same, type 3 we check for
+         * '"' and convert to "&quot" if needed, then wrap in
+         * double quotes. Type 4 we convert into:
+         * attrname="yes".
+         */
+        $regary = findnxreg($body, $pos, '[^\w\-_]');
+        if ($regary == false){
+            /**
+             * Looks like body ended before the end of tag.
+             */
+            spew("$me: End of body found before end of tag.\n");
+            spew("$me: Invalid, returning\n");
+            return Array(false, false, false, $lt, strlen($body));
+        }
+        list($pos, $attname, $match) = $regary;
+        $attname = strtolower($attname);
+        spew("$me: Attribute '$attname' found\n");
+        /**
+         * We arrived at the end of attribute name. Several things possible
+         * here:
+         * '>'  means the end of the tag and this is attribute type 4
+         * '/'  if followed by '>' means the same thing as above
+         * '\s' means a lot of things -- look what it's followed by.
+         *      anything else means the attribute is invalid.
+         */
+        switch($match){
+        case '/':
+            /**
+             * This is an xhtml-style tag with a closing / at the
+             * end, like so: <img src="blah"/>. Check if it's followed
+             * by the closing bracket. If not, then this tag is invalid
+             */
+            if (substr($body, $pos, 2) == '/>'){
+                spew("$me: This is an xhtml-style tag.\n");
+                $pos++;
+                spew("$me: Setting tagtype to 3\n");
+                $tagtype = 3;
+            } else {
+                spew("$me: Found invalid character '/'.\n");
+                $gt = findnxstr($body, $pos, '>');
+                spew("$me: Tag is invalid. Returning.\n");
+                $retary = Array(false, false, false, $lt, $gt);
+                return $retary;
+            }
+        case '>':
+            spew("$me: found type 4 attribute.\n");
+            spew("$me: Additionally, end of tag found at $pos\n");
+            spew("$me: Attname is '$attname'\n");
+            spew("$me: Setting attvalue to 'yes'\n");
+            $attary{$attname} = '"yes"';
+            return Array($tagname, $attary, $tagtype, $lt, $pos);
+            break;
+        default:
+            /**
+             * Skip whitespace and see what we arrive at.
+             */
+            $pos = skipspace($body, $pos);
+            $char = substr($body, $pos, 1);
+            /**
+             * Two things are valid here:
+             * '=' means this is attribute type 1 2 or 3.
+             * \w means this was attribute type 4.
+             * anything else we ignore and re-loop. End of tag and
+             * invalid stuff will be caught by our checks at the beginning
+             * of the loop.
+             */
+            if ($char == '='){
+                spew("$me: Attribute type 1, 2, or 3 found.\n");
+                $pos++;
+                $pos = skipspace($body, $pos);
+                /**
+                 * Here are 3 possibilities:
+                 * "'"  attribute type 1
+                 * '"'  attribute type 2
+                 * everything else is the content of tag type 3
+                 */
+                $quot = substr($body, $pos, 1);
+                if ($quot == '\''){
+                    spew("$me: In fact, this is attribute type 1\n");
+                    spew("$me: looking for closing quote\n");
+                    $regary = findnxreg($body, $pos+1, '\'');
+                    if ($regary == false){
+                        spew("$me: end of body reached before end of val\n");
+                        spew("$me: Returning\n");
+                        return Array(false, false, false, $lt, strlen($body));
+                    }
+                    list($pos, $attval, $match) = $regary;
+                    spew("$me: Attvalue is '$attval'\n");
+                    $pos++;
+                    $attary{$attname} = '\'' . $attval . '\'';
+                } else if ($quot == '"'){
+                    spew("$me: In fact, this is attribute type 2\n");
+                    spew("$me: looking for closing quote\n");
+                    $regary = findnxreg($body, $pos+1, '\"');
+                    if ($regary == false){
+                        spew("$me: end of body reached before end of val\n");
+                        spew("$me: Returning\n");
+                        return Array(false, false, false, $lt, strlen($body));
+                    }
+                    list($pos, $attval, $match) = $regary;
+                    spew("$me: Attvalue is \"$attval\"\n");
+                    $pos++;
+                    $attary{$attname} = '"' . $attval . '"';
+                } else {
+                    spew("$me: This looks like attribute type 3\n");
+                    /**
+                     * These are hateful. Look for \s, or >.
+                     */
+                    spew("$me: Looking for end of attval\n");
+                    $regary = findnxreg($body, $pos, '[\s>]');
+                    if ($regary == false){
+                        spew("$me: end of body reached before end of val\n");
+                        spew("$me: Returning\n");
+                        return Array(false, false, false, $lt, strlen($body));
+                    }
+                    list($pos, $attval, $match) = $regary;
+                    /**
+                     * If it's ">" it will be caught at the top.
+                     */
+                    spew("$me: translating '\"' into &quot;\n");
+                    $attval = preg_replace('/\"/s', '&quot;', $attval);
+                    spew("$me: wrapping in quotes\n");
+                    $attary{$attname} = '"' . $attval . '"';
+                }
+            } else if (preg_match('|[\w/>]|', $char)) {
+                /**
+                 * That was attribute type 4.
+                 */
+                spew("$me: attribute type 4 found.\n");
+                spew("$me: Setting value to 'yes'\n");
+                $attary{$attname} = '"yes"';
+            } else {
+                /**
+                 * An illegal character. Find next '>' and return.
+                 */
+                spew("$me: illegal character '$char' found.\n");
+                spew("$me: returning\n");
+                $gt = findnxstr($body, $pos, '>');
+                return Array(false, false, false, $lt, $gt);
+            }
+        }
+    }
+    /**
+     * The fact that we got here indicates that the tag end was never
+     * found. Return invalid tag indication so it gets stripped.
+     */
+    spew("$me: No tag end found\n");
+    return Array(false, false, false, $lt, strlen($body));
+}
+
+/**
+ * Translates entities into literal values so they can be checked.
+ *
+ * @param $attvalue the by-ref value to check.
+ * @param $regex    the regular expression to check against.
+ * @param $hex      whether the entites are hexadecimal.
+ * @return          True or False depending on whether there were matches.
+ */
+function deent(&$attvalue, $regex, $hex=false){
+    $me = 'deent';
+    spew("$me: matching '$regex' against: $attvalue\n");
+    $ret_match = false;
+    preg_match_all($regex, $attvalue, $matches);
+    if (is_array($matches) && sizeof($matches[0]) > 0){
+        spew("$me: found " . sizeof($matches[0]) . " matches\n");
+        $repl = Array();
+        for ($i = 0; $i < sizeof($matches[0]); $i++){
+            $numval = $matches[1][$i];
+            spew("$me: numval is $numval\n");
+            if ($hex){
+                $numval = hexdec($numval);
+                spew("$me: hex! Numval is now $numval\n");
+            }
+            $repl{$matches[0][$i]} = chr($numval);
+        }
+        $attvalue = strtr($attvalue, $repl);
+        spew("$me: attvalue after translation: $attvalue\n");
+        return true;
+    } else {
+        spew("$me: no matches! Returning false.\n");
+        return false;
+    }
+}
+
+/**
+ * This function checks attribute values for entity-encoded values
+ * and returns them translated into 8-bit strings so we can run
+ * checks on them.
+ *
+ * @param  $attvalue A string to run entity check against.
+ * @return           Nothing, modifies a reference value.
+ */
+function defang(&$attvalue){
+    $me = 'defang';
+    /**
+     * Skip this if there aren't ampersands or backslashes.
+     */
+    spew("$me: Checking '$attvalue' for suspicious content\n");
+    if (strpos($attvalue, '&') === false
+        && strpos($attvalue, '\\') === false){
+        spew("$me: no suspicious content found, returning.\n");
+        return;
+    }
+    $m = false;
+    do {
+        $m = false;
+        $m = $m || deent($attvalue, '/\&#0*(\d+);*/s');
+        $m = $m || deent($attvalue, '/\&#x0*((\d|[a-f])+);*/si', true);
+        $m = $m || deent($attvalue, '/\\\\(\d+)/s', true);
+        spew("$me: m=$m\n");
+    } while ($m == true);
+    $attvalue = stripslashes($attvalue);
+    spew("$me: translated into: $attvalue\n");
+}
+
+/**
+ * Kill any tabs, newlines, or carriage returns. Our friends the
+ * makers of the browser with 95% market value decided that it'd
+ * be funny to make "java[tab]script" be just as good as "javascript".
+ * 
+ * @param  attvalue  The attribute value before extraneous spaces removed.
+ * @return attvalue  Nothing, modifies a reference value.
+ */
+function unspace(&$attvalue){
+    $me = 'unspace';
+    if (strcspn($attvalue, "\t\r\n\0 ") != strlen($attvalue)){
+        spew("$me: Killing whitespace.\n");
+        $attvalue = str_replace(Array("\t", "\r", "\n", "\0", " "), 
+                                Array('',   '',   '',   '',   ''), $attvalue);
+    }
+    spew("$me: after unspace: $attvalue\n");
+}
+
+/**
+ * This function runs various checks against the attributes.
+ *
+ * @param  $tagname         String with the name of the tag.
+ * @param  $attary          Array with all tag attributes.
+ * @param  $rm_attnames     See description for sanitize
+ * @param  $bad_attvals     See description for sanitize
+ * @param  $add_attr_to_tag See description for sanitize
+ * @return                  Array with modified attributes.
+ */
+function fixatts($tagname, 
+                 $attary, 
+                 $rm_attnames,
+                 $bad_attvals,
+                 $add_attr_to_tag
+                 ){
+    $me = 'fixatts';
+    spew("$me: Fixing attributes\n");
+    while (list($attname, $attvalue) = each($attary)){
+        /**
+         * See if this attribute should be removed.
+         */
+        foreach ($rm_attnames as $matchtag=>$matchattrs){
+            if (preg_match($matchtag, $tagname)){
+                foreach ($matchattrs as $matchattr){
+                    if (preg_match($matchattr, $attname)){
+                        spew("$me: Attribute '$attname' defined as bad.\n");
+                        spew("$me: Removing.\n");
+                        unset($attary{$attname});
+                        continue;
+                    }
+                }
+            }
+        }
+        /**
+         * Remove any backslashes, entities, or extraneous whitespace.
+         */
+        defang($attvalue);
+        unspace($attvalue);
+        
+        /**
+         * Now let's run checks on the attvalues.
+         * I don't expect anyone to comprehend this. If you do,
+         * get in touch with me so I can drive to where you live and
+         * shake your hand personally. :)
+         */
+        foreach ($bad_attvals as $matchtag=>$matchattrs){
+            if (preg_match($matchtag, $tagname)){
+                foreach ($matchattrs as $matchattr=>$valary){
+                    if (preg_match($matchattr, $attname)){
+                        /**
+                         * There are two arrays in valary.
+                         * First is matches.
+                         * Second one is replacements
+                         */
+                        list($valmatch, $valrepl) = $valary;
+                        $newvalue = preg_replace($valmatch,$valrepl,$attvalue);
+                        if ($newvalue != $attvalue){
+                            spew("$me: attvalue is now $newvalue\n");
+                            $attary{$attname} = $newvalue;
+                        }
+                    }
+                }
+            }
+        }
+    }
+    /**
+     * See if we need to append any attributes to this tag.
+     */
+    foreach ($add_attr_to_tag as $matchtag=>$addattary){
+        if (preg_match($matchtag, $tagname)){
+            $attary = array_merge($attary, $addattary);
+            spew("$me: Added attributes to this tag\n");
+        }
+    }
+    return $attary;
+}
+
+/**
+ * This is the main function and the one you should actually be calling.
+ * There are several variables you should be aware of an which need
+ * special description.
+ *
+ * $tag_list
+ * ----------
+ * This is a simple one-dimentional array of strings, except for the
+ * very first one. The first member should be einter false or true.
+ * In case it's FALSE, the following list will be considered a list of
+ * tags that should be explicitly REMOVED from the body, and all
+ * others that did not match the list will be allowed.  If the first
+ * member is TRUE, then the list is the list of tags that should be
+ * explicitly ALLOWED -- any tag not matching this list will be
+ * discarded.
+ *
+ * Examples:
+ * $tag_list = Array(
+ *                   false,   
+ *                   "blink", 
+ *                   "link",
+ *		     "object",
+ *		     "meta",
+ *                   "marquee",
+ *                   "html"
+ *		            );
+ *
+ * This will allow all tags except for blink, link, object, meta, marquee, 
+ * and html.
+ *
+ * $tag_list = Array(
+ *                   true, 
+ *                   "b", 
+ *                   "a", 
+ *                   "i", 
+ *                   "img", 
+ *                   "strong", 
+ *                   "em", 
+ *                   "p"
+ *                  );
+ *
+ * This will remove all tags from the body except b, a, i, img, strong, em and
+ * p.
+ *
+ * $rm_tags_with_content
+ * ---------------------
+ * This is a simple one-dimentional array of strings, which specifies the
+ * tags to be removed with any and all content between the beginning and
+ * the end of the tag.
+ * Example:
+ * $rm_tags_with_content = Array(
+ *                               "script",
+ *                               "style", 
+ *                               "applet",
+ *                               "embed"
+ *                              );
+ *
+ * This will remove the following structure:
+ * <script>
+ *  window.alert("Isn't cross-site-scripting fun?!");
+ * </script>
+ * 
+ * $self_closing_tags
+ * ------------------
+ * This is a simple one-dimentional array of strings, which specifies which
+ * tags contain no content and should not be forcefully closed if this option
+ * is turned on (see further).
+ * Example:
+ * $self_closing_tags =  Array(
+ *                             "img",
+ *                             "br", 
+ *                             "hr",
+ *                             "input"
+ *                            );    
+ *
+ * $force_tag_closing
+ * ------------------
+ * Set it to true to forcefully close any tags opened within the document.
+ * This is good if you want to take care of people who like to screw up
+ * the pages by leaving unclosed tags like <a>, <b>, <i>, etc.
+ *
+ * $rm_attnames
+ * -------------
+ * Now we come to parameters that are more obscure. This parameter is
+ * a nested array which is used to specify which attributes should be
+ * removed. It goes like so:
+ * 
+ * $rm_attnames = Array(
+ *   "PCRE regex to match tag name" =>
+ *     Array(
+ *           "PCRE regex to match attribute name"
+ *           )
+ *   );
+ *
+ * Example:
+ * $rm_attnames = Array(
+ *   "|.*|" =>
+ *     Array(
+ *           "|target|i",
+ *           "|^on.*|i"  
+ *          )
+ *   );
+ *
+ * This will match all attributes (.*), and specify that all attributes
+ * named "target" and starting with "on" should be removed. This will take
+ * care of the following problem:
+ * <em onmouseover="window.alert('muahahahaha')">
+ * The "onmouseover" will be removed.
+ *
+ * $bad_attvals
+ * ------------
+ * This is where it gets ugly. This is a nested array with many levels.
+ * It goes like so:
+ *
+ * $bad_attvals = Array(
+ *   "pcre regex to match tag name" =>
+ *     Array(
+ *           "pcre regex to match attribute name" =>
+ *             Array(
+ *                   "pcre regex to match attribute value"
+ *                  )
+ *             Array(
+ *                   "pcre regex replace a match from above with"
+ *                  )
+ *          )
+ *   );
+ *
+ * An extensive example:
+ *
+ * $bad_attvals = Array(
+ *   "|.*|" =>
+ *      Array(
+ *            "/^src|background|href|action/i" =>
+ *                Array(
+ *                      Array(
+ *                            "/^([\'\"])\s*\S+script\s*:.*([\'\"])/si"
+ *                            ),
+ *                      Array(
+ *                            "\\1http://veryfunny.com/\\2"
+ *                            )
+ *                      ),
+ *            "/^style/i" =>
+ *                Array(
+ *                      Array(
+ *                            "/expression/si",
+ *                            "/url\(([\'\"])\s*https*:.*([\'\"])\)/si",
+ *                            "/url\(([\'\"])\s*\S+script:.*([\'\"])\)/si"
+ *                           ),
+ *                      Array(
+ *                            "idiocy",
+ *                            "url(\\1http://veryfunny.com/\\2)",
+ *                            "url(\\1http://veryfynny.com/\\2)"
+ *                           )
+ *                      )
+ *            )
+ *  );
+ *
+ * This will take care of nearly all known cross-site scripting exploits,
+ * plus some (see my filter sample at 
+ * http://www.mricon.com/html/phpfilter.html for a working version).
+ *
+ * $add_attr_to_tag
+ * ----------------
+ * This is a useful little feature which lets you add attributes to 
+ * certain tags. It is a nested array as well, but not at all like
+ * the previous one. It goes like so:
+ * 
+ * $add_attr_to_tag = Array(
+ *   "PCRE regex to match tag name" =>
+ *     Array(
+ *           "attribute name"=>'"attribute value"'
+ *          )
+ *   );
+ * 
+ * Note: don't forget quotes around attribute value.
+ * 
+ * Example:
+ * 
+ * $add_attr_to_tag = Array(
+ *   "/^a$/si" => 
+ *     Array(
+ *           'target'=>'"_new"'
+ *          )
+ *   );
+ * 
+ * This will change all <a> tags and add target="_new" to them so all links
+ * open in a new window.
+ *
+ *
+ *
+ * @param $body                 the string with HTML you wish to filter
+ * @param $tag_list             see description above
+ * @param $rm_tags_with_content see description above
+ * @param $self_closing_tags    see description above
+ * @param $force_tag_closing    see description above
+ * @param $rm_attnames          see description above
+ * @param $bad_attvals          see description above
+ * @param $add_attr_to_tag      see description above
+ * @return                      sanitized html safe to show on your pages.
+ */
+function sanitize($body, 
+                  $tag_list, 
+                  $rm_tags_with_content,
+                  $self_closing_tags,
+                  $force_tag_closing,
+                  $rm_attnames,
+                  $bad_attvals,
+                  $add_attr_to_tag
+                  ){
+    $me = 'sanitize';
+    /**
+     * Normalize rm_tags and rm_tags_with_content.
+     */
+    @array_walk($tag_list, 'casenormalize');
+    @array_walk($rm_tags_with_content, 'casenormalize');
+    @array_walk($self_closing_tags, 'casenormalize');
+    /**
+     * See if tag_list is of tags to remove or tags to allow.
+     * false  means remove these tags
+     * true   means allow these tags
+     */
+    $rm_tags = array_shift($tag_list);
+    $curpos = 0;
+    $open_tags = Array();
+    //$trusted = "<!-- begin sanitized html -->\n";
+    $trusted = "";
+    $skip_content = false;
+    /**
+     * Take care of netscape's stupid javascript entities like
+     * &{alert('boo')};
+     */
+    $body = preg_replace('/&(\{.*?\};)/si', '&amp;\\1', $body);
+    spew("$me: invoking the loop\n");
+    while (($curtag = getnxtag($body, $curpos)) != FALSE){
+        list($tagname, $attary, $tagtype, $lt, $gt) = $curtag;
+        spew("$me: grabbing free-standing content\n");
+        $free_content = substr($body, $curpos, $lt - $curpos);
+        spew("$me: " . strlen($free_content) . " chars grabbed\n");
+        if ($skip_content == false){
+            spew("$me: appending free content to trusted.\n");
+            $trusted .= $free_content;
+        } else {
+            spew("$me: Skipping free content.\n");
+        }
+        if ($tagname != FALSE){
+            spew("$me: tagname is '$tagname'\n");
+            if ($tagtype == 2){
+                spew("$me: This is a closing tag\n");
+                if ($skip_content == $tagname){
+                    /**
+                     * Got to the end of tag we needed to remove.
+                     */
+                    spew("$me: Finished removing tag with content\n");
+                    $tagname = false;
+                    $skip_content = false;
+                } else {
+                    if ($skip_content == false){
+                        if (isset($open_tags{$tagname}) && 
+                            $open_tags{$tagname} > 0){
+                            spew("$me: popping '$tagname' from open_tags\n");
+                            $open_tags{$tagname}--;
+                        } else {
+                            spew("$me: '$tagname' was never opened\n");
+                            spew("$me: removing\n");
+                            $tagname = false;
+                        }
+                    } else {
+                        spew("$me: Skipping this tag\n");
+                    }
+                }
+            } else {
+                /**
+                 * $rm_tags_with_content
+                 */
+                if ($skip_content == false){
+                    /**
+                     * See if this is a self-closing type and change
+                     * tagtype appropriately.
+                     */
+                    if ($tagtype == 1
+                        && in_array($tagname, $self_closing_tags)){
+                        spew("$me: Self-closing tag. Changing tagtype.\n");
+                        $tagtype = 3;
+                    }
+                    /**
+                     * See if we should skip this tag and any content
+                     * inside it.
+                     */
+                    if ($tagtype == 1 
+                        && in_array($tagname, $rm_tags_with_content)){
+                        spew("$me: removing this tag with content\n");
+                        $skip_content = $tagname;
+                    } else {
+                        if (($rm_tags == false 
+                             && in_array($tagname, $tag_list)) ||
+                            ($rm_tags == true 
+                             && !in_array($tagname, $tag_list))){
+                            spew("$me: Removing this tag.\n");
+                            $tagname = false;
+                        } else {
+                            if ($tagtype == 1){
+                                spew("$me: adding '$tagname' to open_tags\n");
+                                if (isset($open_tags{$tagname})){
+                                    $open_tags{$tagname}++;
+                                } else {
+                                    $open_tags{$tagname} = 1;
+                                }
+                            }
+                            /**
+                             * This is where we run other checks.
+                             */
+                            if (is_array($attary) && sizeof($attary) > 0){
+                                $attary = fixatts($tagname,
+                                                  $attary,
+                                                  $rm_attnames,
+                                                  $bad_attvals,
+                                                  $add_attr_to_tag);
+                            }
+                        }
+                    }
+                } else {
+                    spew("$me: Skipping this tag\n");
+                }
+            }
+            if ($tagname != false && $skip_content == false){
+                spew("$me: Appending tag to trusted.\n");
+                $trusted .= tagprint($tagname, $attary, $tagtype);
+            }
+        } else {
+            spew("$me: Removing invalid tag\n");
+        }
+        $curpos = $gt + 1;
+    }
+    spew("$me: Appending any leftover content\n");
+    $trusted .= substr($body, $curpos, strlen($body) - $curpos);
+    if ($force_tag_closing == true){
+        foreach ($open_tags as $tagname=>$opentimes){
+            while ($opentimes > 0){
+                spew("$me: '$tagname' left open. Closing by force.\n");
+                $trusted .= '</' . $tagname . '>';
+                $opentimes--;
+            }
+        }
+        $trusted .= "\n";
+    }
+    //$trusted .= "<!-- end sanitized html -->\n";
+    return $trusted;
+}
+?>
Index: tags/expressoMail1_2/1.234/inc/class.dynamic_contacts.inc.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/class.dynamic_contacts.inc.php	(revision 555)
+++ tags/expressoMail1_2/1.234/inc/class.dynamic_contacts.inc.php	(revision 555)
@@ -0,0 +1,208 @@
+<?php
+/**********************************************************************************\
+	* ExpressoMail1_2                 										   *
+	* by Gustavo Sandini Linden (gustavo.linden@serpro.gov.br)						   *
+	* ---------------------------------------------------------------------------------*
+	*  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.											           *
+	\**********************************************************************************/
+	
+$GLOBALS['phpgw_info']['flags'] = array(
+		'currentapp' => 'expressoMail1_2',
+		'noheader'   => True, 
+		'nonavbar'   => True,
+		'enable_nextmatchs_class' => True
+	);
+
+include_once('../header.inc.php');
+include_once('class.db_functions.inc.php');
+include_once('class.functions.inc.php');
+	
+	/**
+	 * dynamic_contacts - User's dynamic contact class
+	 * @package dynamic_contacts
+	 * @author Gustavo S. Linden
+	 * @copyright 2008 - Gustavo S. Linden
+	 * 
+	 * TODO: Check if email already exists in contactcenter!!
+	 * 
+	 */	
+	class dynamic_contacts
+	{
+		public $contacts;
+		public $db;
+		public $number_of_contacts;
+		public $functions; 
+		
+		/**
+     	* Constructor
+     	* 
+       	*/
+		function __construct()
+		{
+			$this->db = new db_functions();
+			$this->contacts = $this->db->get_dynamic_contacts();
+			$this->number_of_contacts = $_SESSION['phpgw_info']['user']['preferences']['expressoMail']['number_of_contacts'];
+			$this->functions = new functions();
+		}
+		
+		/**
+		* get dynamic contacts
+		*
+		* @return array $contacts The list of fields to be returned. The format is:
+				$contacts = array(
+					'timestamp' => '1220558565',
+					'email => 'some@email'
+				);
+		*/
+		function get_dynamic_contacts()
+		{
+			return $this->contacts;  
+		}
+		
+		/**
+		* get number of contacts
+		*
+		* @return int $number_of_contacts 
+		* maximum number of contact allowed by administration
+		* if not set return undefined  
+		*/
+		function get_number_of_contacts()
+		{
+			return $this->number_of_contacts;  
+		}
+	
+		/**
+		* get dynamic contacts in string format
+		*
+		* @return string $contact of contacts in format ';some@email,;other@email,'
+		* this is used in js/DropDownContacts.js  
+		*/
+		function dynamic_contact_toString()
+		{
+			$contact='';
+			if($this->contacts)
+			{
+				foreach($this->contacts as $item => $valor)
+					$contact .= ';'.$this->contacts[$item]['email'] . ',';
+				//Retira ultima virgula.
+				$contact = substr($contact,0,(strlen($contact) - 1));
+				return $contact;
+			}
+			else
+				return false;
+		}
+		
+		/**
+		* add dynamic contacts in database
+		*
+		* this function runs thru the array and check if the email sent has new contacts
+		* or not. If the contact is new, insert new array $contact in array $contacts else
+		* search existing contact to update timestamp. 
+		*
+		* @param string $full_email_address to add eg. 'some@address,other@email,email@address' 
+		* @return array $contacts The list of fields to be returned. The format is:
+				$contacts = array(
+					'timestamp' => '1220558565',
+					'email => 'some@email'
+				);
+		* this is used in inc/class.db_function.inc.php to insert/update in database  
+		*/
+		function add_dynamic_contacts($full_email_address)
+		{
+			// Trim all whitespaces and duplicated commas from full_email_address
+			$full_email_address = preg_replace('{(,)\1+}',',',ereg_replace( ' +', '', $full_email_address));
+			$parse_address = imap_rfc822_parse_adrlist($full_email_address, "");
+			$new_contacts = array();
+			foreach ($parse_address as $val)
+			{
+				if ($val->mailbox == "INVALID_ADDRESS")
+					continue;
+				if ($this->contact_exist_in_ContactCenter($val->mailbox."@".$val->host))
+					continue;
+
+				if(!$this->contacts) // Used one time to insert the first contact in database
+				{
+					$this->db->insert_contact($val->mailbox."@".$val->host);
+					// Just new contact added.
+					$new_contacts[] = $val->mailbox."@".$val->host;
+					$this->contacts = $this->db->get_dynamic_contacts();
+				}
+				else
+				{
+					$older_contact_time=time();
+					$new_contact_flag = true; // Assume that all email are new in dynamic contact
+					foreach($this->contacts as $item => $valor)
+					{
+						if($this->contacts[$item]['email'] == $val->mailbox."@".$val->host) // check if email already exists
+						{	
+							$this->contacts[$item]['timestamp'] = time(); //update timestamp of email
+							$new_contact_flag = false; //email exist!
+						}
+						if($this->contacts[$item]['timestamp'] < $older_contact_time) //search for oldest email
+						{
+							$older_contact = $item; 
+							$older_contact_time = $this->contacts[$item]['timestamp'];
+						}
+					}
+					if ($new_contact_flag == true) //new contact!
+					{
+						// Just new contact added.
+						$new_contacts[] = $val->mailbox."@".$val->host;
+						if($this->number_of_contacts > count($this->contacts))
+						{
+							$this->contacts[] = array( 'timestamp'	=> time(),
+														'email'		=> $val->mailbox."@".$val->host);
+						}
+						if($this->number_of_contacts <= count($this->contacts))
+						{
+							$this->contacts[$older_contact] = array( 'timestamp'	=> time(),
+																		'email'		=> $val->mailbox."@".$val->host);
+						}
+					}
+				}
+			}
+			$this->db->update_contacts($this->contacts);
+			return implode(",;",$new_contacts);
+		}
+		
+		/**
+		* Verify if contact exist in ContactCenter
+		*
+		* this function gets an email and check if the email sent is already on users's personal contacts
+		* or not.  
+		*
+		* @param string $full_email_address to add eg. 'some@address,other@email,email@address' 
+		* @return boolean  
+		*/
+		function contact_exist_in_ContactCenter($email)
+		{
+			$contactcenter_string = $this->db->get_cc_contacts();
+			$cc_email = explode(",",$contactcenter_string);
+			foreach ($cc_email as $item => $valor) 
+			{
+				$aux = explode(";",$cc_email[$item]);
+				if($email == $aux[1])
+				{
+					return true;	
+				}
+				  
+			}
+			return false;
+		}
+		
+		/**
+		* delete dynamic contacts from database
+		*
+		* This function removes the dynamic contacts of the current user from the database.
+		* It uses inc/class.db_function.inc.php to remove.
+		*
+		*/
+		function delete_dynamic_contacts()
+		{
+			$this->db->remove_dynamic_contact($this->db->user_id,__LINE__,__FILE__);
+		}
+	}
+?>
Index: tags/expressoMail1_2/1.234/inc/gotodownload.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/gotodownload.php	(revision 178)
+++ tags/expressoMail1_2/1.234/inc/gotodownload.php	(revision 178)
@@ -0,0 +1,159 @@
+<?
+	$msg_number = $_GET['msg_number'];
+	$idx_file = $_GET['idx_file'];
+	$newfilename = $_GET['newfilename'];
+	$msg_part = $_GET['msg_part'];
+	$msg_folder = $_GET['msg_folder'];
+	$msg_folder = mb_convert_encoding($msg_folder,"UTF7-IMAP", mb_detect_encoding($msg_folder, "UTF-8, ISO-8859-1", true));
+		
+	$encoding = strtolower($_GET['encoding']);
+	$fileContent = "";
+	
+	if($msg_number && $msg_part && $msg_folder && (intval($idx_file == '0' ? '1' : $idx_file))) {
+		$username = $_SESSION['phpgw_info']['expressomail']['user']['userid'];
+		$password = $_SESSION['phpgw_info']['expressomail']['user']['passwd'];
+		$imap_server = $_SESSION['phpgw_info']['expressomail']['email_server']['imapServer'];
+		$imap_port 	= $_SESSION['phpgw_info']['expressomail']['email_server']['imapPort'];		
+		if ($_SESSION['phpgw_info']['expressomail']['email_server']['imapTLSEncryption'] == 'yes')
+		{
+			$imap_options = '/tls/novalidate-cert';
+		}
+		else
+		{
+			$imap_options = '/notls/novalidate-cert';
+		}
+		$mbox_stream = imap_open("{".$imap_server.":".$imap_port.$imap_options."}".$msg_folder, $username, $password);   	
+   		$fileContent = imap_fetchbody($mbox_stream, $msg_number, $msg_part, FT_UID);
+		include("class.imap_attachment.inc.php");
+		$imap_attachment = new imap_attachment();	   		
+		$a = $imap_attachment->download_attachment($mbox_stream, $msg_number);
+		
+		$filename = $a[$idx_file]['name'];
+	}
+	else
+		$filename = $idx_file;
+			
+   	$filename 	 = $filename 	? $filename 	: "attachment.bin";
+   	$newfilename = $newfilename ? $newfilename 	: $filename;
+   	$strFileType = strrev(substr(strrev(strtolower($filename)),0,4));
+	
+   	downloadFile($strFileType, $filename, $newfilename, $fileContent, $encoding);
+   
+   function downloadFile($strFileType, $strFileName, $newFileName, $fileContent, $encoding) {
+   	$ContentType = "application/octet-stream";
+
+   	if ($strFileType == ".asf") 
+   		$ContentType = "video/x-ms-asf";
+   	if ($strFileType == ".avi")
+   		$ContentType = "video/avi";
+   	if ($strFileType == ".doc")
+   		$ContentType = "application/msword";
+   	if ($strFileType == ".zip")
+   		$ContentType = "application/zip";
+   	if ($strFileType == ".xls")
+   		$ContentType = "application/vnd.ms-excel";
+   	if ($strFileType == ".gif")
+   		$ContentType = "image/gif";
+   	if ($strFileType == ".jpg" || $strFileType == "jpeg")
+   		$ContentType = "image/jpeg";
+   	if ($strFileType == ".wav")
+   		$ContentType = "audio/wav";
+   	if ($strFileType == ".mp3")
+   		$ContentType = "audio/mpeg3";
+   	if ($strFileType == ".mpg" || $strFileType == "mpeg")
+   		$ContentType = "video/mpeg";
+   	if ($strFileType == ".rtf")
+   		$ContentType = "application/rtf";
+   	if ($strFileType == ".htm" || $strFileType == "html")
+   		$ContentType = "text/html";
+   	if ($strFileType == ".xml") 
+   		$ContentType = "text/xml";
+   	if ($strFileType == ".xsl") 
+   		$ContentType = "text/xsl";
+   	if ($strFileType == ".css") 
+   		$ContentType = "text/css";
+   	if ($strFileType == ".php") 
+   		$ContentType = "text/php";
+   	if ($strFileType == ".asp") 
+   		$ContentType = "text/asp";
+   	if ($strFileType == ".pdf")
+   		$ContentType = "application/pdf";
+   	if ($strFileType == ".txt")
+   		$ContentType = "text/plain";
+   	if ($strFileType == ".log")
+   		$ContentType = "text/plain";
+   	if ($strFileType == ".wmv")
+   		$ContentType = "video/x-ms-wmv";
+	if ($strFileType == ".sxc")
+		$ContentType = "application/vnd.sun.xml.calc";
+	if ($strFileType == ".odt")
+		$ContentType = "application/vnd.oasis.opendocument.text";
+	if ($strFileType == ".stc")
+		$ContentType = "application/vnd.sun.xml.calc.template";
+	if ($strFileType == ".sxd")
+		$ContentType = "application/vnd.sun.xml.draw";
+	if ($strFileType == ".std")
+		$ContentType = "application/vnd.sun.xml.draw.template";
+	if ($strFileType == ".sxi")
+		$ContentType = "application/vnd.sun.xml.impress";
+	if ($strFileType == ".sti")
+		$ContentType = "application/vnd.sun.xml.impress.template";
+	if ($strFileType == ".sxm")
+		$ContentType = "application/vnd.sun.xml.math";
+	if ($strFileType == ".sxw")
+		$ContentType = "application/vnd.sun.xml.writer";
+	if ($strFileType == ".sxq")
+		$ContentType = "application/vnd.sun.xml.writer.global";
+	if ($strFileType == ".stw")
+		$ContentType = "application/vnd.sun.xml.writer.template";
+	if ($strFileType == ".ps")
+		$ContentType = "application/postscript";
+	if ($strFileType == ".pps")
+		$ContentType = "application/vnd.ms-powerpoint";
+	if ($strFileType == ".odt")
+		$ContentType = "application/vnd.oasis.opendocument.text";
+	if ($strFileType == ".ott")
+		$ContentType = "application/vnd.oasis.opendocument.text-template";
+	if ($strFileType == ".oth")
+		$ContentType = "application/vnd.oasis.opendocument.text-web";
+	if ($strFileType == ".odm")
+		$ContentType = "application/vnd.oasis.opendocument.text-master";
+	if ($strFileType == ".odg")
+		$ContentType = "application/vnd.oasis.opendocument.graphics";
+	if ($strFileType == ".otg")
+		$ContentType = "application/vnd.oasis.opendocument.graphics-template";
+	if ($strFileType == ".odp")
+		$ContentType = "application/vnd.oasis.opendocument.presentation";
+	if ($strFileType == ".otp")
+		$ContentType = "application/vnd.oasis.opendocument.presentation-template";
+	if ($strFileType == ".ods")
+		$ContentType = "application/vnd.oasis.opendocument.spreadsheet";
+	if ($strFileType == ".ots")
+		$ContentType = "application/vnd.oasis.opendocument.spreadsheet-template";
+	if ($strFileType == ".odc")
+		$ContentType = "application/vnd.oasis.opendocument.chart";
+	if ($strFileType == ".odf")
+		$ContentType = "application/vnd.oasis.opendocument.formula";
+	if ($strFileType == ".odi")
+		$ContentType = "application/vnd.oasis.opendocument.image";
+	if ($strFileType == ".ndl")
+		$ContentType = "application/vnd.lotus-notes";
+	
+   	header ("Content-Type: $ContentType");
+   	header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
+    header("Pragma: public");
+    header("Expires: 0"); // set expiration time
+    header ("Content-Disposition: attachment; filename=\"". addslashes($newFileName)."\"");   	
+    
+	if($fileContent) {
+		if($encoding == 'base64')
+			echo imap_base64($fileContent);
+		else if($encoding == 'quoted-printable')
+			echo quoted_printable_decode($fileContent);
+		else
+			echo $fileContent;
+	}
+	else
+		readfile($strFileName);
+   }
+   ?>
Index: tags/expressoMail1_2/1.234/inc/show_thumbs.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/show_thumbs.php	(revision 178)
+++ tags/expressoMail1_2/1.234/inc/show_thumbs.php	(revision 178)
@@ -0,0 +1,39 @@
+<?php
+	$username = $_SESSION['phpgw_info']['expressomail']['user']['userid'];
+	$password = $_SESSION['phpgw_info']['expressomail']['user']['passwd'];
+	$imap_server = $_SESSION['phpgw_info']['expressomail']['email_server']['imapServer'];
+	$imap_port 	= $_SESSION['phpgw_info']['expressomail']['email_server']['imapPort'];
+	if ($_SESSION['phpgw_info']['expressomail']['email_server']['imapTLSEncryption'] == 'yes')
+	{
+		$imap_options = '/tls/novalidate-cert';
+	}
+	else
+	{
+		$imap_options = '/notls/novalidate-cert';
+	}
+
+	$file_type = $_GET['file_type'];
+	$msg_num = $_GET['msg_num'];
+	$msg_part = $_GET['msg_part'];
+	$msg_folder = $_GET['msg_folder'];
+	$msg_folder = mb_convert_encoding($msg_folder,"UTF7-IMAP", mb_detect_encoding($msg_folder, "UTF-8, ISO-8859-1", true));
+	$mb = imap_open("{".$imap_server.":".$imap_port.$imap_options."}".$msg_folder, $username, $password);
+
+	$image_mail = imap_fetchbody($mb, $msg_num, $msg_part, FT_UID);
+	$image = imap_base64($image_mail);
+	$image = imagecreatefromstring ($image);
+	
+	header("Content-Type: ".$file_type);
+	header("Content-Disposition: inline");
+ 
+	$pic = $image;
+    if ($pic) {
+        $width = imagesx($pic);
+        $height = imagesy($pic);
+        $twidth = 160; # width of the thumb 160 pixel
+        $theight = $twidth * $height / $width; # calculate height
+        $thumb = imagecreatetruecolor ($twidth, $theight);
+		imagecopyresized($thumb, $pic, 0, 0, 0, 0,$twidth, $theight, $width, $height); # resize image into thumb
+		imagejpeg($thumb,"",75); # Thumbnail as JPEG
+    }
+?>
Index: tags/expressoMail1_2/1.234/inc/class.ScriptS.inc.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/class.ScriptS.inc.php	(revision 564)
+++ tags/expressoMail1_2/1.234/inc/class.ScriptS.inc.php	(revision 564)
@@ -0,0 +1,547 @@
+<?php
+
+//Inclui o arquivo contendo a classe SieveS;
+include('class.SieveS.inc.php');
+
+class ScriptS {
+	
+	//Declaração de Variáveis;
+	var $SieveS;					// Var para criação do objeto;
+	var $reply;						// Var para resposta;
+	var $scriptfile;				// Nome do script;
+	var $username;					// Nome do usuario;
+	var $rules;						// Regras do sieve;
+	var $errstr;					// Erros retornados;
+	var $size;						// Tamanho;
+	var $so;						// Verifica se a regra foi criada por outro tipo serviço de filtros;
+	var $continuebit;
+	var $sizebit;
+	var $anyofbit;
+	var $keepbit;
+	var $regexbit;
+	var $newrules = array();
+	var $newout;
+	var $teste;
+	var $EmailVoip;
+	var $EmailExpresso;
+	
+	function ScriptS(){
+
+		//Cria o objeto;
+		$this->SieveS     = new SieveS();
+		
+		//$this->scriptfile = $GLOBALS['HTTP_SESSION_VARS']['phpgw_info']['expressomail']['user']['account_lid'];
+		$this->scriptfile = $_SESSION['phpgw_info']['expressomail']['user']['account_lid'];
+		$this->username   = $this->scriptfile;
+		
+		$this->reply      = "";
+		$this->rules	  = "";	
+		$this->errstr	  = "";
+		$this->size		  = "";
+		
+		$this->continuebit 	= 1;
+    	$this->sizebit 		= 2;
+    	$this->anyofbit 	= 4;
+    	$this->keepbit 		= 8;
+    	$this->regexbit 	= 128;
+    	
+    	$this->EmailVoip = trim($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['voip_email_redirect']);
+    	$this->EmailExpresso = trim($_SESSION['phpgw_info']['expressomail']['user']['email']);
+    	
+	}
+	
+	function init_a(){
+		
+		//Abre a conexão
+		$this->SieveS->start();
+		
+		$this->reply = $this->SieveS->getscript();
+		
+		if(!$this->reply){
+	
+			$aux = $this->SieveS->putscript($this->scriptfile, $this->createScript());
+			if(!$aux){
+				// Caso de erro, grava dentro da variável errstr;
+				$this->errstr = "O arquivo não foi criado";
+			}
+			// Mata a variavel;
+			unset($aux);
+			// Ativa o script;
+			$aux = $this->SieveS->activatescript($this->scriptfile);
+			
+			if(!$aux){
+				// Caso de erro, grava dentro da variavel errstr;
+				$this->errstr = "O arquivo não foi ativado";
+			}
+			else{
+				$this->reply = $this->SieveS->getscript();
+				$this->rules = $this->readScript($this->reply);
+			}
+		}else{
+			$this->rules = $this->readScript($this->reply);
+		}		
+
+		//Fecha a conexao
+		$this->SieveS->close();
+			
+		if($this->rules){		
+			return $this->rules;
+		}else{
+			return $this->errstr;
+		}
+			
+	}
+	
+	function rec_rules($params){
+		
+		$newr1  = array();
+		$newr2  = array();
+		$newr3  = array();
+	
+		$var_decode = rawurldecode($params['arfilter']);
+		
+		$narray  = explode("_end_",$var_decode);
+
+		foreach($narray as $key=>$tmp){
+			if($tmp != ""){
+				$newr1[] = $tmp;
+			}
+		}
+		unset($key);
+		unset($tmp);
+		foreach($newr1 as $key=>$tmp){
+			$tmp2 = explode("_begin_##", $tmp);
+			foreach($tmp2 as $tmp3){
+				if($tmp3 != ""){
+					$newr2[] = trim($tmp3);		
+				}	
+			}	
+		}
+		
+		unset($tmp);
+		unset($tmp2);
+		unset($tmp3);
+
+		foreach($newr2 as $tmp){
+			if(trim($tmp) != ""){	
+				$tmp2 = explode("##",$tmp);
+				foreach($tmp2 as $tmp3){
+					$tmp4 .= trim($tmp3) . "&&";	
+				}
+				$newr3[] = substr($tmp4,0,(strlen($tmp4)-4));			
+				unset($tmp2);
+				unset($tmp3);
+				unset($tmp4);
+			}
+		}
+		
+		$tmp = $newr3[count($newr3)-1];
+		
+		if(substr($tmp,0,9) == "#vacation"){
+			$this->newout = array_pop($newr3);
+			foreach($newr3 as $key=>$tmp){
+				$this->newrules[] = $tmp;
+			}
+		}else{
+			foreach($newr3 as $tmp){
+				$this->newrules[] = $tmp;	
+			}
+		}
+				
+		unset($tmp);
+		$tmp  = explode("&&",$this->newout);
+		$tmp1 = explode(",",$tmp[2]); 
+		foreach($tmp1 as $key=>$tmp2){
+			$tmp3 .= stripslashes(trim($tmp2)).", ";
+		}
+		$tmp3 = substr($tmp3,0,(strlen($tmp3)-2));
+		
+		unset($tmp);
+		unset($tmp1);
+		unset($tmp2);
+		unset($key);
+		$tmp = explode("&&",$this->newout);
+		foreach($tmp as $key=>$tmp1){
+			if($key == 2){
+				$tmp2 .= trim($tmp3) . "&&";	
+			}else{
+				$tmp2 .= trim($tmp1) . "&&";	
+			}	
+		}
+		unset($this->newout);
+		$this->newout = substr($tmp2,0,(strlen($tmp2)-2));
+		
+		//Abre a conexao
+		$this->SieveS->start();
+		$this->errstr = "";
+		
+		// Escreve a nova regra;
+		$this->reply = $this->SieveS->getscript();
+		
+		if($this->reply){
+			$this->errstr = $this->SieveS->deletescript($this->scriptfile);		
+		}
+
+		//Escreve a(s) nova(s) regra(s);
+		$this->errstr = $this->SieveS->putscript($this->scriptfile,$this->write_rule());
+		
+		//Ativa o script;
+		$this->errstr = $this->SieveS->activatescript($this->scriptfile);
+		
+		//Fecha a conexao
+		$this->SieveS->close();
+		
+		if($this->errstr){
+			return "Ok";
+		}else{
+			return "Problemas na criação do arquivo!\n" . $this->teste;
+		}
+	}
+
+    function convert_specialchar($input)
+    {
+      $special_char = false;
+	  for ( $i = 0; $i < strlen($input); $i++ )
+	  {
+	      if ( preg_match('/[ÁáÉéÍíÓóÚúÀàÈèÌìÒòÙùüÇçÃãÕõÂâÊêÔô®©§ªºÐ¹²³°¢¿Æ£µøæß«»Ø÷±¬]/', $input[$i]) )
+	      {
+	          $special_char = true;
+	          $input = preg_replace('/'.$input[$i].'/', '=' . bin2hex($input[$i]), $input);
+	      }
+	  }   
+      
+      if ( $special_char )
+	  {
+		   /* *
+		    * When using arrays with pattern and replacement, 
+		    * the keys are processed in the order they appear in the array. 
+		    * See preg_replace in php.net/preg_replace 
+		    * */
+		   $patterns[0] = '/=c3/i';
+		   $patterns[1] = '/ /';
+		   $replacements[1] = '';
+		   $replacements[0] = '_';
+		   $input = preg_replace($patterns, $replacements, $input);
+	   }
+       
+       return($input);
+    }
+
+	// Grava a nova regra;
+	function write_rule(){
+
+		// Variaveis;
+		$rule = array();
+		$vacation = array();
+		$newruletext = "";
+		$activerules = 0;
+		$regexused = 0;
+		$rejectused = 0;
+		$notify = 0;
+		$newscriptbody = "";
+    	$continue = 1;
+    	$tmpSubject = "";
+    	
+		// Recebe os valores das regras;
+		foreach($this->newrules as $tmp){
+		  $tmp1 = explode("&&",$tmp);
+		  $rule['priority']      = $tmp1[1];
+		  $rule['status']        = $tmp1[2];
+          $rule['from'] 	     = $this->convert_specialchar($tmp1[3]);
+          $rule['to']            = $this->convert_specialchar($tmp1[4]);
+	 	  $tmpSubject			 = $tmp1[5];
+	 	  $rule['subject'] 		 = $this->convert_specialchar($tmp1[5]);
+          $rule['action'] 	     = $tmp1[6];
+		  $rule['action_arg']    = utf8_encode(preg_replace("/\\r\\n/","\r\n",$tmp1[7]));
+          $rule['flg'] 		     = $tmp1[8];   
+          $rule['field'] 		 = $tmp1[9];
+          $rule['field_val']     = $tmp1[10];
+          $rule['size'] 		   = $tmp1[11];
+          $rule['continue'] 	   = ($tmp1[8] & $this->continuebit);
+          $rule['gthan'] 		   = ($tmp1[8] & $this->sizebit); 
+          $rule['anyof'] 		   = ($tmp1[8] & $this->anyofbit);
+          $rule['keep'] 	   	   = ($tmp1[8] & $this->keepbit);
+          $rule['regexp'] 	       = ($tmp1[8] & $this->regexbit);
+          $rule['unconditional']   = 0;
+		  
+		  if (!$rule['from'] && !$rule['to'] && !$rule['subject'] && !$rule['field'] && !$rule['size'] && $rule['action']){
+			 $rule['unconditional'] = 1;
+		  }
+   		  unset($tmp1);
+	      
+	      // Monta as regras;
+	      if ($rule['status'] != 'ENABLED') {
+	      }
+	      else {
+	        $activerules = 1;
+	 
+	        // Condições para montagem das regras;
+	        $anyall = "allof";
+	        if ($rule['anyof']) $anyall = "anyof";
+	        if ($rule['regexp']) {
+	            $regexused = 1;
+	        }
+	        $started = 0;
+	 
+	        if (!$rule['unconditional']) {
+	            if (!$continue) $newruletext .= "els";
+	            $newruletext .= "if " . $anyall . " (";
+	            if ($rule['from']) {
+	                if (preg_match("/^\s*!/", $rule['from'])){
+	                    $newruletext .= 'not ';
+	                    $rule['from'] = preg_replace("/^\s*!/","",$rule['from']);
+	                }
+	                $match = ':contains';
+	                if (preg_match("/\*|\?/", $rule['from'])) $match = ':matches';
+	                if ($rule['regexp']) $match = ':regex';
+	                $newruletext .= "header " . $match . " [\"From\"]";
+	                $newruletext .= " \"" . $rule['from'] . "\"";
+	                $started = 1;
+	            }
+	            if ($rule['to']) {
+	                if ($started) $newruletext .= ", ";
+	                if (preg_match("/^\s*!/", $rule['to'])){
+	                    $newruletext .= 'not ';
+	                    $rule['to'] = preg_replace("/^\s*!/","",$rule['to']);
+	                }
+	                $match = ':contains';
+	                if (preg_match("/\*|\?/", $rule['to'])) $match = ':matches';
+	                if ($rule['regexp']) $match = ':regex';
+	                $newruletext .= "address " . $match . " [\"To\",\"TO\",\"Cc\",\"CC\"]";
+	                $newruletext .= " \"" . $rule['to'] . "\"";
+	                $started = 1;
+	            }
+	            if ($rule['subject']) {
+	                if ($started) $newruletext .= ", ";
+	                if (preg_match("/^\s*!/", $rule['subject'])){
+	                    $newruletext .= 'not ';
+	                    $rule['subject'] = preg_replace("/^\s*!/","",$rule['subject']);
+	                }
+	                $match = ':contains';
+	                if (preg_match("/\*|\?/", $rule['subject'])) $match = ':matches';
+	                if ($rule['regexp']) $match = ':regex';
+	                $newruletext .= "header " . $match . " \"subject\"";
+	                $newruletext .= " \"" . $rule['subject'] . "\"";
+	                $started = 1;
+	            }
+	            if ($rule['field'] && $rule['field_val']) {
+	                if ($started) $newruletext .= ", ";
+	                if (preg_match("/^\s*!/", $rule['field_val'])){
+	                    $newruletext .= 'not ';
+	                    $rule['field_val'] = preg_replace("/^\s*!/","",$rule['field_val']);
+	                }
+	                $match = ':contains';
+	                if (preg_match("/\*|\?/", $rule['field_val'])) $match = ':matches';
+	                if ($rule['regexp']) $match = ':regex';
+	                $newruletext .= "header " . $match . " \"" . $rule['field'] . "\"";
+	                $newruletext .= " \"" . $rule['field_val'] . "\"";
+	                $started = 1;
+	            }
+	            if ($rule['size']) {
+	                $xthan = " :under ";
+	                if ($rule['gthan']) $xthan = " :over ";
+	                if ($started) $newruletext .= ", ";
+	                $newruletext .= "size " . $xthan . $rule['size'] . "K";
+	                $started = 1;
+	            }
+	 
+	        }
+	 
+	        // Ações
+	        if (!$rule['unconditional']) $newruletext .= ") {\n\t";
+	
+	        if (preg_match("/folder/i",$rule['action']))
+	        {
+	            $newruletext .= "fileinto \"" . $rule['action_arg'] . "\";";
+	        }
+	        
+	        if (preg_match("/reject/i",$rule['action']))
+	        {
+	            $newruletext .= "reject text: \n" . $rule['action_arg'] . "\n.\n;";
+	            $rejectused = 1;
+	        }
+	        
+	        if (preg_match("/address/i",$rule['action']))
+	        {
+	            $newruletext .= "redirect \"" . $rule['action_arg'] . "\";";
+	        }
+	        
+	        if (preg_match("/notify/i",$rule['action']))
+	        {
+				$newruletext .= "notify :method \"mailto\" :options [\"".$this->EmailVoip ."\"]:" .
+								"message \"<expressovoip><from>". $this->EmailExpresso."</from>".
+								"<br/><Subject>".utf8_encode($tmpSubject)."</Subject></expressovoip>\";";
+				$notify = 1;					        	
+	        }
+	        
+	        if (preg_match("/discard/i",$rule['action'])) {
+	            $newruletext .= "discard;";
+	        }
+	        if ($rule['keep']) $newruletext .= "\n\tfileinto \"INBOX\";";
+	        //if ($rule['keep']) $newruletext .= "\n\tkeep;";	        
+	        if (!$rule['unconditional']) $newruletext .= "\n}";
+	 
+	        $continue = 0;
+	        if ($rule['continue']) $continue = 1;
+	        if ($rule['unconditional']) $continue = 1;
+	 
+	        $newscriptbody .= $newruletext . "\n\n";
+	        unset($newruletext);
+	      }
+		}// Fim do Foreach;
+		$this->teste = $newscriptbody;		
+		// Para a regras fora do escritorio;
+        unset($tmp);
+        if($this->newout != ""){
+	        $aux 					= explode("&&",$this->newout);
+	        $vacation['days'] 		= $aux[1];
+	        $vacation['addresses']	= $aux[2];	        
+	        $vacation['text']		= preg_replace("/\\\\n/","\r\n",$aux[3]);
+	        $vacation['status'] 	= $aux[4];
+	    }
+		
+		// Monta a regra para fora do escritorio;
+	    if ($vacation['status'] == 'on') {
+			$newscriptbody .= "vacation :days " . $vacation['days'] . " :addresses [";
+            $newscriptbody .= $vacation['addresses'];
+            $newscriptbody .= "] text:\n" . utf8_encode($vacation['text']) . "\n.\n;\n\n";
+	    }
+		
+		// Cria o cabeçalho do arquivo;
+		$newscripthead  = "";
+		$newscripthead .= "#Mail filter rules for " .$this->username . "\n";
+		$newscripthead .= '#Generated by ' . $this->username . ' using Expressomail ';
+		$newscripthead .= "\n";
+
+		// Continuação do cabeçalho do arquivo; 		
+	    if ($activerules) {
+	        $newscripthead .= "require [\"fileinto\"";
+	        
+	        if($notify){
+	        	$newscripthead .= ",\"notify\"";	        	
+	        }
+	        if($regexused){
+	        	$newscripthead .= ",\"regex\"";
+	        }
+	        if($rejectused){
+	        	$newscripthead .= ",\"reject\"";
+	        }
+	        if($this->newout && $vacation['status'] == 'on'){
+	            $newscripthead .= ",\"vacation\"";
+	        }
+	        $newscripthead .= "];\n\n";
+	    }else{
+			if($vacation && $vacation['status'] == 'on'){
+			    $newscripthead .= "require [\"vacation\"];\n\n";
+			}
+	    }
+		
+	    // Cria o rodapé do arquivo;
+	    $newscriptfoot  = "";
+	    $newscriptfoot .= "##PSEUDO script start\n";
+	    // Lê as regras;
+	    foreach($this->newrules as $tmp){
+			$newscriptfoot .= preg_replace("/[\\n\\r]/"," ",$tmp). "\n";
+	    }
+	    // Lê as regras fora do escritório;
+	    if($this->newout != ""){
+			$newscriptfoot .= preg_replace("/[\\n\\r]/"," ",$this->newout)."\n";
+	    }
+		$newscriptfoot .= "#mode&&basic\n";
+		
+		$newscript = $newscripthead . $newscriptbody . $newscriptfoot; 
+
+		// Destroi as variaveis;
+		unset($rule);
+		unset($vacation);
+		unset($activerules);
+		unset($regexused);
+		unset($rejectused);
+		unset($newscripthead);
+		unset($newscriptbody);
+    	unset($newscriptfoot);
+    	unset($continue);
+    	unset($this->newrules);
+    	unset($this->newout);
+		
+		// Retorna o script construido;
+		return $newscript;
+	
+	}// Fim da Função
+
+	// Cria o script sieve, caso nao possua;
+	function createScript(){
+		
+		// Cria o cabeçalho do arquivo;
+		$newScriptHead  = "";
+		$newScriptHead .= "#Mail filter rules for " .$this->username . "\n";
+		$newScriptHead .= '#Generated by ' . $this->username . ' using ExpressoMail ';	
+		$newScriptHead .= "\n";
+
+		//Cria o rodapé do arquivo;
+		$newScriptFoot  = "";
+		$newScriptFoot .= "##PSEUDO Script Start\n";
+		$newScriptFoot .= "#mode&&basic\n";
+		
+		//Para passar para o arquivo;
+		$newScript = $newScriptHead . $newScriptFoot;
+
+		return $newScript;
+	}
+	
+	//Lê o conteúdo do script;
+	function readScript($scriptName){
+		
+		// Verifica se a conexão foi bem sucedida;
+		if(!$scriptName){	
+			$this->errstr = "Não foi possível conectar com o Servidor";
+			return "false 2";	
+		}
+		
+		// Recebe o conteúdo do array;
+		$lines = array();
+		$lines = preg_split("/\n/",$scriptName);
+		
+		// Pega o tamanho da regra na primeira do script;
+		$size_rule = array_shift($lines);
+		
+		// Recebe o tamanho do script, pela primeira linha;
+		$this->size = trim($size_rule);
+		
+		// Verifica a composição do script;
+		$line = array_shift($lines);
+		if(!preg_match("/^# ?Mail(.*)rules for/", $line)){
+			$this->errstr = "Formato nao reconhecido";
+			return false;
+		}
+		
+		// Variaveis para a regra e o campo ferias;
+		$regexps  = array('^ *##PSEUDO','^ *#rule','^ *#vacation','^ *#mode');
+		$retorno['rule'] 	 = array();
+		$retorno['vacation'] = array();
+		$retorno['mode']	 = array();
+		
+		$line = array_shift($lines);
+		while (isset($line)){
+			foreach($regexps as $regp){
+				if(preg_match("/$regp/i",$line)){
+					// Recebe todas as regras criadas no servidor;
+					if(preg_match("/^ *#rule&&/i",$line)){
+						$retorno['rule'][] = $line . "\n";
+					}
+					if(preg_match("/^ *#vacation&&/i",$line)){
+						$retorno['vacation'][] = $line . "\n";	
+					}
+					if(preg_match("/^ *#mode&&(.*)/i",$line)){
+						$retorno['mode'][]= $line . "\n";						
+					}					
+				}
+			}
+			// Pega a proxima linha do sript;
+			$line = array_shift($lines);
+		}
+		return $retorno;	
+	}
+		
+}//Fim da Classe
+?>
Index: tags/expressoMail1_2/1.234/inc/class.message_components.inc.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/class.message_components.inc.php	(revision 567)
+++ tags/expressoMail1_2/1.234/inc/class.message_components.inc.php	(revision 567)
@@ -0,0 +1,289 @@
+<?php
+
+    class message_components {
+
+        /**
+         *+----------------------------------------------------------------------------------------------------+
+         *| IMAP message scanner - scans information provided by imap_fetchstructure()                         |
+         *|                                                                                                    |
+         *| Author: Richard York                                                                               |
+         *| mailto:richy at smilingsouls.net                                                                    |
+         *| http://www.smilingsouls.net                                                                        |
+         *|                                                                                                    |
+         *| (c) Copyright 2004, Richard York, All Rights Reseverd                                              |
+         *+----------------------------------------------------------------------------------------------------+
+         **
+        */
+
+        var $mailbox;           // (resource)              Imap stream
+
+        var $data_types;        // (array)(string)         Various message part types
+        var $encoding_types;    // (array)(string)         Various encoding types
+
+        // first array uses message id as key
+        // nested array is offset corresponding with the number of parts
+        
+        var $structure;         // (array)(object)         Contains the complete body structure
+        var $pid;               // (array)(array)(str)     part id
+        var $file_type;         // (array)(array)(str)     mime type
+        var $disposition;       // (array)(array)(str)     inline | attachment
+        var $fsize;             // (array)(array)(int)     part size in bytes
+        var $encoding;          // (array)(array)(str)     message encoding
+        var $charset;           // (array)(array)(int)     message charset
+        var $fname;             // (array)(array)(str)     original file name
+        var $inline_id;         // (array)(array)(str)     string containing the id for multipart/related
+        var $has_attachments;   // (array)(array)(bool)
+
+        /** 
+         * CONSTRUCTOR
+         *
+         * void message_components(resource imap stream)
+         **
+        */
+        
+        function message_components($mailbox)
+        {
+            $this->data_types = array();
+
+                $this->data_types[0] = 'text';
+                $this->data_types[1] = 'multipart';
+                $this->data_types[2] = 'message';
+                $this->data_types[3] = 'application';
+                $this->data_types[4] = 'audio';
+                $this->data_types[5] = 'image';
+                $this->data_types[6] = 'video';
+                $this->data_types[7] = 'other';
+
+            $this->encoding_types = array();
+
+                $this->encoding_types[0] = '7bit';
+                $this->encoding_types[1] = '8bit';
+                $this->encoding_types[2] = 'binary';
+                $this->encoding_types[3] = 'base64';
+                $this->encoding_types[4] = 'quoted-printable';
+                $this->encoding_types[5] = 'other';
+
+            $this->mailbox = $mailbox;
+
+            return;
+        }
+        
+        /**
+         * void fetch_structure(int message id[, array recursive subpart[, array recursive parent part id[, int recursive counter[, bool recursive is a sub part[, bool recursive skip part]]]]])
+         * Indexes the structure of a message body.
+         * 
+         * Gather message information returned by imap_fetchstructure()
+         * Recursively iterate through each parts array
+         * Concatenate part numbers in the following format `1.1` each part id is separated by a period, each referring 
+         * to a part or subpart of a multipart message.  Create part numbers as such that they are compatible with imap_fetchbody()
+         **
+        */
+
+        function fetch_structure($mid, $sub_part = null, $sub_pid = null, $n = 0, $is_sub_part = false, $skip_part = false)
+        {
+            if (!is_array($sub_part))
+            {
+                $this->structure[$mid] = imap_fetchstructure($this->mailbox, $mid, FT_UID);
+            }
+            if (isset($this->structure[$mid]->parts) || is_array($sub_part))
+            {
+                if ($is_sub_part == false)
+                {
+                    $parts = $this->structure[$mid]->parts;
+                }
+                else
+                {
+                    $parts = $sub_part;
+                    $n++;
+                }
+
+                for($p = 0, $i = 1; $p < count($parts); $n++, $p++, $i++)
+                {
+                    // Skip the following...
+                    // Skip multipart/mixed!
+                    // Skip subsequent multipart/alternative if this part is message/rfc822
+                    // Skip multipart/related
+
+                    $ftype        = (empty($parts[$p]->type))?           $this->data_types[0].'/'.strtolower($parts[$p]->subtype) : $this->data_types[$parts[$p]->type].'/'.strtolower($parts[$p]->subtype);
+                    $encoding     = (empty($parts[$p]->encoding))?       $this->encoding_types[0] : $this->encoding_types[$parts[$p]->encoding];
+                    if(!preg_match("/5./",phpversion()))
+	                    $charset      = $parts[$p]->parameters[0]->value;                    
+                    else
+                    	$charset      = $parts->p->parameters[0]->value;
+                    $skip_next    = ($ftype == 'message/rfc822')?        true : false;
+
+                    if ($ftype == 'multipart/mixed' || $skip_part == true && $ftype == 'multipart/alternative')      				
+                    //	Por niltonneto: Mensagens do ThunderBird com format=flowed nao abrem, por isso comentado essa condicao:
+                    // 	|| $ftype == 'multipart/related')                    
+                    {
+                        $n--;
+                    }
+
+                    else
+                    {
+                        $this->pid[$mid][$n]       = ($is_sub_part == false)? $i : ($sub_pid == '' ? '1' : $sub_pid).'.'.$i;
+                        $this->file_type[$mid][$n] = $ftype;
+                        $this->encoding[$mid][$n]  = $encoding;
+						$this->charset[$mid][$n]   = $charset;
+                        $this->fsize[$mid][$n]     = (!isset($parts[$p]->bytes) || empty($parts[$p]->bytes))? 0 : $parts[$p]->bytes;
+						$hasAttachment = false;
+                        # Force inline disposition if none is present
+                        //if ($parts[$p]->ifdisposition == true)
+                        //{ por niltonneto, as vezes, inline anexos nao eram exibidos.
+                            $this->disposition[$mid][$n] = strtolower($parts[$p]->disposition);
+
+                            //if (strtolower($parts[$p]->disposition) == 'attachment')
+                            //{ por jakjr, as vezes, inline anexos nao eram exibidos.
+                                if ($parts[$p]->ifdparameters == true)
+                                {
+                                    $params = $parts[$p]->dparameters;
+
+                                    foreach ($params as $param)
+                                    {
+                                        if((strtolower($param->attribute) == 'filename') || (strtolower($param->attribute) == 'name'))
+                                        {
+                                            $this->fname[$mid][$n] = $param->value;
+                                            $hasAttachment = true;
+                                            break;
+                                        }                                        
+                                    }
+                                }
+                                
+                                // Alguns web-mails utilizam o parameters
+                                if ($parts[$p]->ifparameters == true && !$hasAttachment)
+                                {
+                                    $params = $parts[$p]->parameters;
+                                    foreach ($params as $param)
+                                    {
+                                        if((strtolower($param->attribute) == 'filename') || (strtolower($param->attribute) == 'name'
+                                         || strtolower($param->attribute) == 'filename*') || strtolower($param->attribute) == 'name*')
+                                        {
+                                        	if(strstr(strtolower($param->value), "iso-8859-1''")){
+                                        		
+                                        		$value = explode("''",$param->value);
+                                        		$this->fname[$mid][$n] = rawurldecode($value[1]);
+                                        	}
+                                        	else
+                                            	$this->fname[$mid][$n] = $param->value;
+                                            	
+                                            break;
+                                        }
+                                        if(strtolower($param->attribute) == 'charset'){
+                                         	if($this->charset[$mid][$n] == '')
+                                         		$this->charset[$mid][$n] = $param->value;                                         	
+                                        }
+                                    }
+								}
+                            //}
+                        /*}
+                        else
+                        {
+                            $this->disposition[$mid][$n] = 'inline';
+                        }*/
+
+                        if ($parts[$p]->ifid == true)
+                        {
+                            $this->inline_id[$mid][$n] = $parts[$p]->id;
+                        }
+                    }
+
+                    if (isset($parts[$p]->parts) && is_array($parts[$p]->parts))
+                    {
+                        $this->has_attachments[$mid][$n] = true;
+                        $n = $this->fetch_structure($mid, $parts[$p]->parts, $this->pid[$mid][$n], $n, true, $skip_next);
+                    }
+                    else
+                    {
+                        $this->has_attachments[$mid][$n] = false;
+                    }
+                }
+
+                if ($is_sub_part == true)
+                {
+                    return $n;
+                }
+            }
+
+            // $parts is not an array... message is flat
+            else
+            {
+                $this->pid[$mid][0] = 1;
+
+                if (empty($this->structure[$mid]->type)) 
+                {
+                    $this->structure[$mid]->type        = (int) 0;
+                }
+                
+                if (isset($this->structure[$mid]->subtype))
+                {
+                    $this->file_type[$mid][0]            = $this->data_types[$this->structure[$mid]->type].'/'.strtolower($this->structure[$mid]->subtype);
+                }
+            
+                if (empty($this->structure[$mid]->encoding))
+                {
+                    $this->structure[$mid]->encoding    = (int) 0;
+                }
+                
+                $this->encoding[$mid][0]              = $this->encoding_types[$this->structure[$mid]->encoding];
+                if(!preg_match("/5./",phpversion()))
+					$this->charset[$mid][0] = $this->structure[$mid]->parameters[0]->value;
+				else
+					$this->charset[$mid][0] = $this->structure->mid->parameters[0]->value;
+
+                if (isset($this->structure[$mid]->bytes))
+                {
+                    $this->fsize[$mid][0]                = strtolower($this->structure[$mid]->bytes);
+                }
+                
+				if (isset($this->structure[$mid]->ifdparameters))
+				{
+					$params = $this->structure[$mid]->dparameters;
+					$n = 0;
+					if($params)
+					foreach ($params as $param)
+					{
+						if((strtolower($param->attribute) == 'filename') || (strtolower($param->attribute) == 'name'))
+						{
+							$this->fname[$mid][$n] = $param->value;
+							break;
+						}
+						$n++;
+					}
+				}
+				if (isset($this->structure[$mid]->ifparameters))
+				{
+					$params = $this->structure[$mid]->parameters;
+					$n = 0;
+					if($params)
+					foreach ($params as $param)
+					{
+						if(strtolower($param->attribute) == 'charset'){
+                        	if($this->charset[$mid][$n] == '')
+                            	$this->charset[$mid][$n] = $param->value;
+                        }
+						$n++;
+					}
+				}
+				$this->disposition[$mid][0] = $this->structure[$mid]->disposition;
+                //$this->disposition[$mid][0] = 'inline';
+            }
+
+            return;
+        }		
+    }
+    
+/*
+    // Example usage -- dump part ids for the specified message..
+
+    $msg =& new message_components($mb);
+    $msg->fetch_structure(12905);
+
+    echo '<pre>';    
+    //print_r($msg->pid[12905]);
+    echo count ($msg->fname[12905]);
+    echo '</pre>';
+
+    // also important to note that the offset numbering in the sub array isn't precise... $msg->pid[$mid][0]..
+    // I have a bug somewhere in there.. but I use foreach when accessing these arrays anyway.
+*/
+?>
Index: tags/expressoMail1_2/1.234/inc/class.SieveS.inc.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/class.SieveS.inc.php	(revision 2)
+++ tags/expressoMail1_2/1.234/inc/class.SieveS.inc.php	(revision 2)
@@ -0,0 +1,329 @@
+<?php
+//Conecta com o Servidor e o serviço Sieve;
+class SieveS{
+		
+	var $host;
+	var $port;
+	var $user;
+	var $pass;
+	var $proxy;
+	
+	var $implementation;
+	var $saslmethods;
+	var $extensions;
+	var $starttls_avail;
+	var $socket;
+	var $socket_timeout;
+	
+	var $scriptlist;
+	var $activescript;
+	var $errstr;
+	var $errnum;
+	var $ScriptS;
+	
+	function SieveS(){
+		
+		$this->host = $_SESSION['phpgw_info']['expressomail']['email_server']['imapSieveServer'];
+		$this->port = $_SESSION['phpgw_info']['expressomail']['email_server']['imapSievePort'];
+		$this->user = $_SESSION['phpgw_info']['expressomail']['user']['account_lid'];	
+		$this->pass = $_SESSION['phpgw_info']['expressomail']['user']['passwd'];
+		$this->proxy = '';
+		
+		$this->socket_timeout = 5;
+		$this->implementation = array('unknown');
+		$this->saslmethods 	  = array('unknown');
+		$this->extensions 	  = array('unknown');
+		$this->starttls_avail = false;
+		$this->scriptlist     = array();
+		$this->activescript   = '';
+		$this->errstr 		  = '';
+		$this->errnum 		  = ''; 
+		
+	}	
+	
+	function start(){
+		// Cria a conexao;
+		if(!isset($this->socket)){
+			$this->socket = fsockopen($this->host, $this->port, $this->errnum, $this->errstr, "60");
+
+		}
+		// Verifica a conexao;
+		if(!$this->socket){
+			return "não conectado";
+		}
+		
+		$said = $this->read();
+		if (!preg_match("/timsieved/i",$said)) {
+		    $this->close();
+		    $this->errstr = "start: bad response from $this->host: $said";
+		    return false;
+		}
+		
+		if (preg_match("/IMPLEMENTATION/",$said)){
+		  while (!preg_match("/^OK/",$said)) {
+		    if (preg_match("/^\"IMPLEMENTATION\" +\"(.*)\"/",$said,$bits)){
+				$this->implementation = $bits[1];
+		    }
+		    elseif (preg_match("/^\"SASL\" +\"(.*)\"/",$said,$bits)) {
+				$auth_types = $bits[1];
+				$this->saslmethods = split(" ", $auth_types);
+		    }
+		    elseif (preg_match("/^\"SIEVE\" +\"(.*)\"/",$said,$bits)) {
+				$extensions = $bits[1];
+				$this->extensions = split(" ", $extensions);
+		    }
+	        elseif (preg_match("/^\"STARTTLS\"/",$said)){
+	           $this->starttls_avail = true;
+	        }
+		    $said = $this->read();
+		  }
+		}
+		else
+		{
+		    // assume cyrus v1.
+		    if (preg_match("/\"(.+)\" +\"(.+)\"/",$said,$bits)) {
+				$this->implementation = $bits[1];
+				$sasl_str = $bits[2];  // should look like: SASL={PLAIN,...}
+		    }
+			if (preg_match("/SASL=\{(.+)\}/",$sasl_str,$morebits)) {
+			    $auth_types = $morebits[1];
+			    $this->saslmethods = split(", ", $auth_types);
+			}else {
+				// a bit desperate if we get here.
+				$this->implementation = $said;
+				$this->saslmethods = $said;
+		    }
+		}
+		
+		$authstr = $this->proxy . "\x00" . $this->user . "\x00" . $this->pass;
+		$encoded = base64_encode($authstr);		
+		$len = strlen($encoded);
+
+		//fputs($this->socket,"AUTHENTICATE \"PLAIN\" \{$len+}\r\n");
+		//fputs($this->socket,"$encoded\r\n");
+
+		fwrite($this->socket, 'AUTHENTICATE "PLAIN" {' . $len . '+}' . "\r\n");
+		fwrite($this->socket,"$encoded\r\n");
+		
+		$said = $this->read();
+	
+		if (preg_match("/NO/",$said)) {
+		    $this->close();
+		    $this->errstr = "start: authentication failure connecting to $this->host";
+		    return false;
+		}
+		elseif (!preg_match("/OK/",$said)) {
+		    $this->close();
+		    $this->errstr = "start: bad authentication response from $this->host: $said";
+		    return false;
+		}
+	
+		return true;
+		
+	}
+	
+	function close(){
+	
+		if(!$this->socket){
+			return true;	
+		}	
+		fputs($this->socket,"LOGOUT\r\n");
+		$rc = fclose($this->socket);
+		if($rc != 1){
+			$this->errstr = "close: failed closing socket to $this->server";
+			return false;
+		}
+		return true;
+	}
+	
+	function read(){
+	
+		$buffer = '';
+		
+		// Verifca a conexao;
+		if(!$this->socket){
+			return $buffer;
+		}
+		
+		//Funções do php
+		socket_set_timeout($this->socket,$this->socket_timeout);
+		socket_set_blocking($this->socket,true);
+		
+		//Lê um caracter de cada vez e o adiciona na variavel buffer;
+		while(!feof($this->socket)){
+			$char = fread($this->socket,1);
+			
+			$status = socket_get_status($this->socket);
+			if($status['timed_out'])
+				return $buffer;
+			
+			if(($char == "\n") || ($char == "\r")){
+				if($char == "\r")
+					fread($this->socket,1);
+				return $buffer;
+			}
+			$buffer .= $char;
+		}
+		return $buffer;
+	}
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Manipulação dos scripts
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+		
+	function listscripts(){
+		
+		$bits = '';
+
+		//Verifica a conexao
+		if(!$this->socket){
+			$this->errstr = "listscripts: sem conexão para o servidor $this->host";
+			return false;
+		}
+
+		$scripts = array();
+		fputs($this->socket,"LISTSCRIPTS\r\n");
+	
+		$said = $this->read();
+		while (!preg_match("/^OK/",$said) && !preg_match("/^NO/",$said)) {
+	
+		    // Cyrus v1 script lines look like '"script*"' with the 
+		    // asterisk denoting the active script. Cyrus v2 script 
+		    // lines will look like '"script" ACTIVE' if active.
+	
+		    if (preg_match("/^\"(.+)\"\s*(.+)*$/m",$said,$bits)) {
+			if (preg_match("/\*$/",$bits[1])){
+			    $bits[1] = preg_replace("/\*$/","",$bits[1]);
+			    $this->activescript = $bits[1];
+			}
+			if (isset($bits[2]) && $bits[2] == 'ACTIVE')
+			    $this->activescript = $bits[1];
+			array_push($scripts,$bits[1]);
+		    }
+		    $said = $this->read();
+		}
+	
+		if (preg_match("/^OK/",$said)) {
+		    $this->scriptlist = $scripts;
+            return $this->scriptlist;
+        }
+		
+	}
+	
+	// Pega o conteudo do script no servidor	
+	function getscript(){
+
+		$scriptfile = $this->listscripts();
+		
+		// verifica se existe o script;
+		if($scriptfile == ""){
+			return "Falta o script";
+		}
+		
+		if(!$this->socket){
+			return "Falha na conexao";	
+		}
+		
+		$script = '';
+		
+		fputs($this->socket,"GETSCRIPT \"$scriptfile[0]\"\r\n");
+		$said = $this->read();
+		while ((!preg_match("/^OK/",$said)) && (!preg_match("/^NO/",$said))) {
+		    // replace newlines which read() removed
+		    if (!preg_match("/\n$/",$said)) $said .= "\n";
+		    $script .= $said;
+		    $said = $this->read();
+		}
+		
+		if($said == "OK"){
+			return $script;	
+		}else{
+			return false;
+		}
+	}
+
+	//envia para o servidor o nome do script($scriptfile) e seu conteudo($script)
+	function putscript ($scriptfile,$script) {
+		if (!isset($scriptfile)) {
+	            $this->errstr = "Não foi possível enviar o script para o servidor";
+	            return false;
+	    }
+		if (!isset($script)) {
+	            $this->errstr = "Não foi possível enviar o script para o servidor";
+	            return false;
+	    }
+		if (!$this->socket) {
+	            $this->errstr = "Sem conexão com o servidor $this->server";
+	            return false;
+	    }
+	
+		$len = strlen($script);
+
+		//fputs($this->socket,"PUTSCRIPT \"$scriptfile\" \{$len+}\r\n");
+		//fputs($this->socket,"$script\r\n");
+	
+		fwrite($this->socket, 'PUTSCRIPT "'.$scriptfile.'" {' . $len . '+}' . "\r\n");	
+		fwrite($this->socket,"$script\r\n");
+	
+		$said = '';
+		while ($said == '') {
+		    $said = $this->read();
+		}
+	 
+	    if (preg_match("/^OK/",$said)) {
+		    return true;
+		}
+	
+	    $this->errstr = "Não foi possível enviar o $scriptfile: $said";
+	    return false;
+    }
+    
+    // Ativa o script para o servico sieve;
+    function activatescript ($scriptfile) {
+		if (!isset($scriptfile)) {
+	            $this->errstr = "activatescript: no script file specified";
+	            return false;
+	    }
+	
+	    if (!$this->socket) {
+	            $this->errstr = "activatescript: no connection open to $this->server";
+	            return false;
+	    }
+	
+		fputs($this->socket,"SETACTIVE \"$scriptfile\"\r\n");
+	
+		$said = $this->read();
+	
+		if (preg_match("/^OK/",$said)) {
+	            return true;
+	    }
+	
+		$this->errstr = "activatescript: could not activate script $scriptfile: $said";
+	    return false;
+    }
+
+    // Deleta o script do serviço sieve;
+    function deletescript ($scriptName) {
+    	if(!isset($scriptName)){
+    		$this->errstr = "deletescript: no script file specified";
+    		return false;
+    	}
+    	
+    	// Verifica a conexão;
+    	if(!$this->socket){
+    		$this->errstr = "deletescript : no connection open to $this->server";
+    		return false;
+    	}
+    
+    	fputs($this->socket,"DELETESCRIPT \"$scriptName\"\r\n");
+    	
+    	$said = $this->read();
+    	
+    	if(preg_match("/^OK/",$said)) {
+    		return true;	
+    	}
+    	
+    	$this->errstr = "deletescript: could not delete script $scriptName: $said";
+    	return false;
+    }
+}
+?>
Index: tags/expressoMail1_2/1.234/inc/class.imap_attachment.inc.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/class.imap_attachment.inc.php	(revision 271)
+++ tags/expressoMail1_2/1.234/inc/class.imap_attachment.inc.php	(revision 271)
@@ -0,0 +1,89 @@
+<?php			
+class imap_attachment
+{
+	function get_attachment_info($mbox_stream, $msg_number) 
+	{	
+		$structure = imap_fetchstructure($mbox_stream,$msg_number,FT_UID);
+		$contentParts = count($structure->parts);
+	
+		$msg_info['number_attachments'] = $contentParts -1;
+	
+		if($contentParts > 1)
+		{
+	 		for($i=1; $i<$contentParts; $i++)
+			{
+				$msg_info['attachment'][$i]['part_in_msg']	= ($i+1);
+				$msg_info['attachment'][$i]['name']				= urlencode($structure->parts[$i]->dparameters[0]->value);
+				$msg_info['attachment'][$i]['type']				= $structure->parts[$i]->subtype;
+				$msg_info['attachment'][$i]['bytes']			= $structure->parts[$i]->bytes;
+   			}
+  		}
+  		return $msg_info;
+	}
+
+	function get_attachment_headerinfo($mbox, $msgno)
+	{
+		include_once("class.message_components.inc.php");
+
+		$msg =& new message_components($mbox);
+		$msg->fetch_structure($msgno);
+
+		$msg_info = array();
+		$msg_info['names'] = '';
+
+		$msg_info['number_attachments'] = count($msg->fname[$msgno]);
+		
+		if ($msg_info['number_attachments'])
+		{
+			foreach ($msg->fname[$msgno] as $fname)
+			{
+				$msg_info['names'] .= $this->flat_mime_decode($fname) . ', ';
+   			}
+		}
+		$msg_info['names'] = substr($msg_info['names'],0,(strlen($msg_info['names']) - 2));
+		
+		return $msg_info;
+	}
+	
+	function download_attachment($mbox, $msgno)
+	{
+		include_once("class.message_components.inc.php");
+
+		$msg =& new message_components($mbox);
+		$msg->fetch_structure($msgno);
+		$array_parts_attachments = array();		
+		$array_parts_attachments['names'] = '';
+		
+		//print_r($msg->fname[$msgno]);
+		
+		if (count($msg->fname[$msgno]) > 0)
+		{
+			$i = 0;
+			foreach ($msg->fname[$msgno] as $index=>$fname)
+			{
+				$array_parts_attachments[$i]['pid'] = $msg->pid[$msgno][$index];
+				$array_parts_attachments[$i]['name'] = $this->decode_mimeheader($fname);
+				//$array_parts_attachments[$i]['name'] = $this->flat_mime_decode($fname);
+				$array_parts_attachments[$i]['name'] = $array_parts_attachments[$i]['name'] ? $array_parts_attachments[$i]['name'] : "attachment.bin";
+				$array_parts_attachments[$i]['encoding'] = $msg->encoding[$msgno][$index];
+				$array_parts_attachments['names'] .= $array_parts_attachments[$i]['name'] . ', ';
+				$array_parts_attachments[$i]['fsize'] = $msg->fsize[$msgno][$index];
+				$i++;
+			}
+		}
+		$array_parts_attachments['names'] = substr($array_parts_attachments['names'],0,(strlen($array_parts_attachments['names']) - 2));
+		return $array_parts_attachments;
+	}
+	
+	function decode_mimeheader($string) {
+        return mb_decode_mimeheader($string);
+    }
+	function flat_mime_decode($string) {
+	   	$array = imap_mime_header_decode($string);
+	   	$str = "";
+	   	foreach ($array as $key => $part)
+	   		$str .= @eregi_replace("\{", "[",@eregi_replace("\}", "]",$part->text));
+	   	
+   		return $str;
+	}
+}
Index: tags/expressoMail1_2/1.234/inc/fckeditor.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/fckeditor.php	(revision 389)
+++ tags/expressoMail1_2/1.234/inc/fckeditor.php	(revision 389)
@@ -0,0 +1,162 @@
+<?php 
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckeditor.php
+ * 	This is the integration file for PHP.
+ * 	
+ * 	It defines the FCKeditor class that can be used to create editor
+ * 	instances in PHP pages on server side.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+class FCKeditor
+{
+	var $InstanceName ;
+	var $BasePath ;
+	var $Width ;
+	var $Height ;
+	var $ToolbarSet ;
+	var $Value ;
+	var $Config ;
+
+	// PHP 5 Constructor (by Marcus Bointon <coolbru@users.sourceforge.net>)
+	function __construct( $instanceName )
+ 	{
+		$this->InstanceName	= $instanceName ;
+		$this->BasePath		= '/fckeditor/' ;
+		$this->Width		= '100%' ;
+		$this->Height		= '275' ;
+		$this->ToolbarSet	= 'Default' ;
+		$this->Value		= '' ;
+
+		$this->Config		= array() ;
+	}
+	
+	// PHP 4 Contructor
+	function FCKeditor( $instanceName )
+	{
+		$this->__construct( $instanceName ) ;
+	}
+
+	function Create()
+	{
+		return $this->CreateHtml() ;
+	}
+	
+	function CreateHtml()
+	{
+		$HtmlValue = htmlspecialchars( $this->Value ) ;
+
+		$Html = '<div>' ;
+		
+		if ( $this->IsCompatible() )
+		{
+			if ( isset( $_GET['fcksource'] ) && $_GET['fcksource'] == "true" )
+				$File = 'fckeditor.original.html' ;
+			else
+				$File = 'fckeditor.html' ;
+
+			$Link = "{$this->BasePath}editor/{$File}?InstanceName={$this->InstanceName}" ;
+			
+			if ( $this->ToolbarSet != '' )
+				$Link .= "&amp;Toolbar={$this->ToolbarSet}" ;
+
+			// Render the linked hidden field.
+			$Html .= "<input type=\"hidden\" id=\"{$this->InstanceName}\" name=\"{$this->InstanceName}\" value=\"{$HtmlValue}\" style=\"display:none\" />" ;
+
+			// Render the configurations hidden field.
+			$Html .= "<input type=\"hidden\" id=\"{$this->InstanceName}___Config\" value=\"" . $this->GetConfigFieldString() . "\" style=\"display:none\" />" ;
+
+			// Render the editor IFRAME.
+			$Html .= "<iframe id=\"{$this->InstanceName}___Frame\" src=\"{$Link}\" width=\"{$this->Width}\" height=\"{$this->Height}\" frameborder=\"0\" scrolling=\"no\"></iframe>" ;
+		}
+		else
+		{
+			if ( strpos( $this->Width, '%' ) === false )
+				$WidthCSS = $this->Width . 'px' ;
+			else
+				$WidthCSS = $this->Width ;
+
+			if ( strpos( $this->Height, '%' ) === false )
+				$HeightCSS = $this->Height . 'px' ;
+			else
+				$HeightCSS = $this->Height ;
+
+			$Html .= "<textarea name=\"{$this->InstanceName}\" rows=\"4\" cols=\"40\" style=\"width: {$WidthCSS}; height: {$HeightCSS}\">{$HtmlValue}</textarea>" ;
+		}
+
+		$Html .= '</div>' ;
+		
+		return $Html ;
+	}
+
+	function IsCompatible()
+	{
+		global $HTTP_USER_AGENT ;
+
+		if ( isset( $HTTP_USER_AGENT ) )
+			$sAgent = $HTTP_USER_AGENT ;
+		else
+			$sAgent = $_SERVER['HTTP_USER_AGENT'] ;
+
+		if ( strpos($sAgent, 'MSIE') !== false && strpos($sAgent, 'mac') === false && strpos($sAgent, 'Opera') === false )
+		{
+			$iVersion = (float)substr($sAgent, strpos($sAgent, 'MSIE') + 5, 3) ;
+			return ($iVersion >= 5.5) ;
+		}
+		else if ( strpos($sAgent, 'Gecko/') !== false )
+		{
+			$iVersion = (int)substr($sAgent, strpos($sAgent, 'Gecko/') + 6, 8) ;
+			return ($iVersion >= 20030210) ;
+		}
+		else
+			return false ;
+	}
+
+	function GetConfigFieldString()
+	{
+		$sParams = '' ;
+		$bFirst = true ;
+
+		foreach ( $this->Config as $sKey => $sValue )
+		{
+			if ( $bFirst == false )
+				$sParams .= '&amp;' ;
+			else
+				$bFirst = false ;
+			
+			if ( $sValue === true )
+				$sParams .= $this->EncodeConfig( $sKey ) . '=true' ;
+			else if ( $sValue === false )
+				$sParams .= $this->EncodeConfig( $sKey ) . '=false' ;
+			else
+				$sParams .= $this->EncodeConfig( $sKey ) . '=' . $this->EncodeConfig( $sValue ) ;
+		}
+		
+		return $sParams ;
+	}
+
+	function EncodeConfig( $valueToEncode )
+	{
+		$chars = array( 
+			'&' => '%26', 
+			'=' => '%3D', 
+			'"' => '%22' ) ;
+
+		return strtr( $valueToEncode,  $chars ) ;
+	}
+}
+
+?>
Index: tags/expressoMail1_2/1.234/inc/show_img.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/show_img.php	(revision 178)
+++ tags/expressoMail1_2/1.234/inc/show_img.php	(revision 178)
@@ -0,0 +1,50 @@
+<?php	
+	header("Content-Type: image/jpeg");
+	if($_GET['msg_num'] && $_GET['msg_part'] && $_GET['msg_folder']) {
+		$username = $_SESSION['phpgw_info']['expressomail']['user']['userid'];
+		$password = $_SESSION['phpgw_info']['expressomail']['user']['passwd'];
+		$imap_server = $_SESSION['phpgw_info']['expressomail']['email_server']['imapServer'];
+		$imap_port 	= $_SESSION['phpgw_info']['expressomail']['email_server']['imapPort'];
+	if ($_SESSION['phpgw_info']['expressomail']['email_server']['imapTLSEncryption'] == 'yes')
+	{
+		$imap_options = '/tls/novalidate-cert';
+	}
+	else
+	{
+		$imap_options = '/notls/novalidate-cert';
+	}
+		
+		$msg_num = $_GET['msg_num'];
+		$msg_part = $_GET['msg_part'];
+		$msg_folder = $_GET['msg_folder'];
+		$msg_folder = mb_convert_encoding($msg_folder,"UTF7-IMAP", mb_detect_encoding($msg_folder, "UTF-8, ISO-8859-1", true));
+		
+	$mb = imap_open("{".$imap_server.":".$imap_port.$imap_options."}".$msg_folder, $username, $password);
+		
+		$image_mail = imap_fetchbody($mb, $msg_num, $msg_part, FT_UID);	
+
+		header("Content-Disposition: inline");
+		$image = imap_base64($image_mail);
+		echo $image;		
+	}
+	else if($_SESSION['phpgw_info']['expressomail']['contact_photo']){	
+		$data  = $_SESSION['phpgw_info']['expressomail']['contact_photo'];
+				
+		if($data) {
+			
+			$photo = imagecreatefromstring($data[0]);
+			if($photo){
+				$width = imagesx($photo);
+				$height = imagesy($photo);
+				$twidth = 60;
+				$theight = 80;
+				$small_photo = imagecreatetruecolor ($twidth, $theight);
+				imagecopyresampled($small_photo, $photo, 0, 0, 0, 0,$twidth, $theight, $width, $height);
+				imagejpeg($small_photo,'',100);
+				unset($_SESSION['phpgw_info']['expressomail']['contact_photo']);
+			}
+		}
+	}
+	else
+		readfile("./../../contactcenter/templates/default/images/photo_celepar.png");
+?>
Index: tags/expressoMail1_2/1.234/inc/show_embedded_attach.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/show_embedded_attach.php	(revision 205)
+++ tags/expressoMail1_2/1.234/inc/show_embedded_attach.php	(revision 205)
@@ -0,0 +1,33 @@
+<?php
+	$username = $_SESSION['phpgw_info']['expressomail']['user']['userid'];
+	$password = $_SESSION['phpgw_info']['expressomail']['user']['passwd'];
+	$imap_server = $_SESSION['phpgw_info']['expressomail']['email_server']['imapServer'];
+	$imap_port 	= $_SESSION['phpgw_info']['expressomail']['email_server']['imapPort'];
+	$msg_folder = $_GET['msg_folder'];
+	$msg_folder = mb_convert_encoding($msg_folder,"UTF7-IMAP", mb_detect_encoding($msg_folder, "UTF-8, ISO-8859-1", true));
+	if ($_SESSION['phpgw_info']['expressomail']['email_server']['imapTLSEncryption'] == 'yes')
+	{
+		$imap_options = '/tls/novalidate-cert';
+	}
+	else
+	{
+		$imap_options = '/notls/novalidate-cert';
+	}
+	
+	if (is_array($_SESSION['phpgw_info']['expressomail']['email_server']))
+	{
+		$mb = imap_open("{".$imap_server.":".$imap_port.$imap_options."}".$msg_folder, $username, $password);
+	
+		if ($mb)
+		{
+			$msgno = $_GET['msg_num'];
+			$embedded_part = $_GET['msg_part'];
+	
+			$embedded_body = imap_fetchbody($mb, $msgno, $embedded_part, FT_UID);
+	
+			header("Content-Type: image/jpeg");
+			header("Content-Disposition: inline");
+			echo imap_base64($embedded_body);
+		}
+	}
+?>
Index: tags/expressoMail1_2/1.234/inc/hook_admin.inc.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/hook_admin.inc.php	(revision 69)
+++ tags/expressoMail1_2/1.234/inc/hook_admin.inc.php	(revision 69)
@@ -0,0 +1,22 @@
+<?php
+	/**************************************************************************\
+	* eGroupWare                                                               *
+	* http://www.egroupware.org                                                *
+	* Written by Joseph Engo <jengo@phpgroupware.org>                          *
+	* --------------------------------------------                             *
+	*  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.                                              *
+	\**************************************************************************/
+
+{
+// Only Modify the $file and $title variables.....
+	$title = $appname;
+	$file = Array(
+		'Site Configuration' => $GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiconfig.index&appname=' . $appname),
+	);
+//Do not modify below this line
+	display_section($appname,$title,$file);
+}
+?>
Index: tags/expressoMail1_2/1.234/inc/hook_home.inc.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/hook_home.inc.php	(revision 139)
+++ tags/expressoMail1_2/1.234/inc/hook_home.inc.php	(revision 139)
@@ -0,0 +1,94 @@
+<?php
+	
+	$current_app = 'expressoMail1_2';
+	$current_name	 = 'ExpressoMail 1.2';
+  	$homedisplay = $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['mainscreen_showmail'];
+  	$homedisplay = 'True';
+	if($homedisplay=='True')
+	{
+		$homedisplay = 1;
+	}	
+	$homedisplay = intval($homedisplay);
+	
+	$prev_currentapp = $GLOBALS['phpgw_info']['flags']['currentapp'];
+	$GLOBALS['phpgw_info']['flags']['currentapp'] = $current_app;
+	 
+	if(intval($homedisplay))
+	{
+		$boemailadmin	= CreateObject('emailadmin.bo');
+		$emailadmin_profile = $boemailadmin->getProfileList();
+		$_SESSION['phpgw_info']['expressomail']['email_server'] = $boemailadmin->getProfile($emailadmin_profile[0]['profileID']);
+		$_SESSION['phpgw_info']['expressomail']['user'] = $GLOBALS['phpgw_info']['user'];
+		$_SESSION['phpgw_info']['expressomail']['server'] = $GLOBALS['phpgw_info']['server'];
+		$expressoMail	= CreateObject($current_app.'.imap_functions');
+		$mbox_stream = $expressoMail-> open_mbox(); 		
+		$messages	 = imap_sort($mbox_stream, SORTARRIVAL, true, SE_UID);
+		$num_new_messages = 0;
+		$subjects = array();
+		
+		for ($i = 0; $i < count($messages);$i++)
+		{
+			$msg_number = $messages[$i];
+			$header = @imap_headerinfo($mbox_stream, imap_msgno($mbox_stream, $msg_number), 80, 255);
+			if (!is_object($header))
+				return false;			
+
+			if($header->Recent != 'N' && $header->Unseen != 'U')
+				continue;
+			$new_m++;
+			if($new_m <= 10) { 				
+				$date_msg = date("d/m/Y",$header->udate);
+				if (date("d/m/Y") == $date_msg)
+					$date = date("H:i",$header->udate);
+				else
+					$date = $date_msg;
+				$subject = $expressoMail->decode_string($header->fetchsubject);				
+				$text = "<div style='overflow:hidden;white-space:nowrap'>".$date." .: ".$subject."</div>";
+				if(strlen($text) > 105)
+					$text = substr($text,0,105).' ...';
+			
+				$link_msg = $GLOBALS['phpgw']->link(
+						'/'.$current_app.'/index.php',
+						'msgball[msgnum]='.$msg_number.'&msgball[folder]=INBOX');
+				$data[] = array('text' => $text, 'link' => $link_msg);		
+			}			
+		}
+				
+		imap_close($mbox_stream);
+				
+		$title = $current_name." - ".($new_m > 1 ? lang("You have %1 new messages!","<font color=red>".$new_m."</font>") : ($new_m == 1 ? str_replace("1","<font color=red>1</font>",lang("you have 1 new message!")) : lang("you have no new messages")));			
+		$GLOBALS['phpgw']->translation->add_app($current_app);
+
+		if ((isset($prev_currentapp)) && ($prev_currentapp)	&& ($GLOBALS['phpgw_info']['flags']['currentapp'] != $prev_currentapp))		
+			$GLOBALS['phpgw_info']['flags']['currentapp'] = $prev_currentapp;
+		
+		$portalbox = CreateObject('phpgwapi.listbox',
+			Array(
+				'title'     => $title,
+				'primary'   => $GLOBALS['phpgw_info']['theme']['navbar_bg'],
+				'secondary' => $GLOBALS['phpgw_info']['theme']['navbar_bg'],
+				'tertiary'  => $GLOBALS['phpgw_info']['theme']['navbar_bg'],
+				'width'     => '100%',
+				'outerborderwidth' => '0',
+				'header_background_image' => $GLOBALS['phpgw']->common->image('phpgwapi/templates/phpgw_website','bg_filler')
+			)
+		);
+
+		$app_id = $GLOBALS['phpgw']->applications->name2id('expressoMail');
+		$GLOBALS['portal_order'][] = $app_id;
+
+		$var = Array(
+			'up'       => Array('url' => '/set_box.php', 'app' => $app_id),
+			'down'     => Array('url' => '/set_box.php', 'app' => $app_id),
+			'close'    => Array('url' => '/set_box.php', 'app' => $app_id),
+			'question' => Array('url' => '/set_box.php', 'app' => $app_id),
+			'edit'     => Array('url' => '/set_box.php', 'app' => $app_id)
+		);
+
+		while(list($key,$value) = each($var))		
+			$portalbox->set_controls($key,$value);
+
+		$portalbox->data = $data;
+					
+		echo "\n".'<!-- BEGIN Mailbox info -->'."\n".$portalbox->draw($extra_data).'<!-- END Mailbox info -->'."\n";
+	}
Index: tags/expressoMail1_2/1.234/inc/load_lang.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/load_lang.php	(revision 604)
+++ tags/expressoMail1_2/1.234/inc/load_lang.php	(revision 604)
@@ -0,0 +1,20 @@
+<?
+// Load the lang of the module.
+	if(!$_SESSION['phpgw_info']['expressomail']['lang']) 
+	{
+		$array_keys = array();
+		$fn = 'setup/phpgw_'.$_SESSION['phpgw_info']['expressomail']['user']['preferences']['common']['lang'].'.lang';			
+		if (file_exists($fn)){
+			$fp = fopen($fn,'r');
+			while ($data = fgets($fp,16000))	{
+				list($message_id,$app_name,$null,$content) = explode("\t",substr($data,0,-1));			
+				$_SESSION['phpgw_info']['expressomail']['lang'][$message_id] =  $content;
+			}
+			fclose($fp);
+		}
+	}
+	
+	foreach($_SESSION['phpgw_info']['expressomail']['lang'] as $key => $value)
+		$script .= "array_lang['".str_replace("'","\'",strtolower($key))."'] = '".str_replace("'","\'",$value)."';\n";
+	echo "<script type='text/javascript'>$script</script>";
+?>
Index: tags/expressoMail1_2/1.234/inc/class.ldap_functions.inc.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/class.ldap_functions.inc.php	(revision 757)
+++ tags/expressoMail1_2/1.234/inc/class.ldap_functions.inc.php	(revision 757)
@@ -0,0 +1,715 @@
+<?php
+include_once("class.imap_functions.inc.php");
+include_once("class.functions.inc.php");
+
+function ldapRebind($ldap_connection, $ldap_url)
+{
+	@ldap_bind($ldap_connection, $_SESSION['phpgw_info']['expressomail']['ldap_server']['acc'],$_SESSION['phpgw_info']['expressomail']['ldap_server']['pw']);
+}
+
+class ldap_functions
+{
+	var $ds;
+	var $ldap_host;
+	var $ldap_context;
+	var $imap;
+	var $external_srcs;
+	var $max_result;
+	var $functions;
+	function ldap_functions(){
+	// todo: Page Configuration for External Catalogs.
+		@include("../contactcenter/setup/external_catalogs.inc.php");
+		$this->external_srcs= $external_srcs;
+		$this->max_result 	= 200;
+		$this->functions = new functions();
+	}
+	// Using ContactCenter configuration.
+	function ldapConnect($refer = false,$catalog = 0){
+		if ($catalog > 0 && is_array($this->external_srcs)){
+			$this->ldap_host 	= $this->external_srcs[$catalog]['host'];
+			$this->ldap_context = $this->external_srcs[$catalog]['dn'];
+			$this->bind_dn 		= $this->external_srcs[$catalog]['acc'];
+			$this->bind_dn_pw 	= $this->external_srcs[$catalog]['pw'];
+			$this->object_class = $this->external_srcs[$catalog]['obj'];
+			$this->base_dn 		= $this->external_srcs[$catalog]['dn'];
+			$this->branch 		= $this->external_srcs[$catalog]['branch'];
+		}else {
+			$this->ldap_host 	= $_SESSION['phpgw_info']['expressomail']['ldap_server']['host'];
+			$this->ldap_context = $_SESSION['phpgw_info']['expressomail']['ldap_server']['dn'];
+			$this->bind_dn = $_SESSION['phpgw_info']['expressomail']['ldap_server']['acc'];
+			$this->bind_dn_pw = $_SESSION['phpgw_info']['expressomail']['ldap_server']['pw'];
+			$this->branch = 'ou';
+		}
+
+		$this->ds = ldap_connect($this->ldap_host);
+		ldap_set_option($this->ds, LDAP_OPT_PROTOCOL_VERSION, 3);
+		ldap_set_option($this->ds, LDAP_OPT_REFERRALS, $refer);
+		if ($refer)	{
+			ldap_set_rebind_proc($this->ds, ldapRebind);
+		}
+		@ldap_bind($this->ds,$this->bind_dn,$this->bind_dn_pw );
+	}
+
+	//Teste jakjr retornando o DS
+	function ldapConnect2($refer = false){
+		$ds = ldap_connect($_SESSION['phpgw_info']['expressomail']['ldap_server']['host']);
+
+		if (!$ds)
+			return false;
+
+		ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
+		ldap_set_option($ds, LDAP_OPT_REFERRALS, $refer);
+		if ($refer)
+			ldap_set_rebind_proc($ds, ldapRebind);
+		@ldap_bind($ds, $_SESSION['phpgw_info']['expressomail']['ldap_server']['acc'],$_SESSION['phpgw_info']['expressomail']['ldap_server']['pw']);
+
+		return $ds;
+	}
+
+
+	// usa o host e context do setup.
+	function ldapRootConnect($refer = false){
+		$this->ldap_host 	= $_SESSION['phpgw_info']['expressomail']['server']['ldap_host'];
+		$this->ldap_context = $_SESSION['phpgw_info']['expressomail']['server']['ldap_context'];
+		$this->ds 			= ldap_connect($this->ldap_host);
+		ldap_set_option($this->ds, LDAP_OPT_PROTOCOL_VERSION, 3);
+		ldap_set_option($this->ds, LDAP_OPT_REFERRALS, $refer);
+		ldap_bind($this->ds, $_SESSION['phpgw_info']['expressomail']['server']['ldap_root_dn'],$_SESSION['phpgw_info']['expressomail']['server']['ldap_root_pw']);
+
+	}
+
+	function quicksearch($params)
+	{
+		include_once("class.functions.inc.php");
+		$functions = new functions;
+
+		$search_for	= utf8_encode($params['search_for']);
+		$field		= $params['field'];
+		$ID			= $params['ID'];
+		
+		$search_for	= explode(" ",$search_for);
+		$aux="";
+		foreach ($search_for as $search)
+		{
+			if(!$aux)
+			{
+				$aux=$search;
+			}
+			else
+			{
+				if (strlen($search) > 2)
+				{
+					$aux=$aux."*".$search;
+				}
+				else
+				{
+					$aux=$aux." ".$search;
+				}
+			}
+		}
+		$search_for=$aux;
+		
+		$contacts_result = array();
+		$contacts_result['field'] = $field;
+		$contacts_result['ID'] = $ID;
+
+		// follow the referral
+		$this->ldapConnect(true);
+
+		if ($this->ds)
+		{
+			if (($field != 'null') && ($ID != 'null'))
+			{
+				$filter="(& (|(phpgwAccountType=u)(phpgwAccountType=l)) (|(cn=*$search_for*)(mail=*$search_for*)) (!(phpgwaccountvisible=-1)) )";
+				$justthese = array("cn", "mail", "telephoneNumber", "mobile", "phpgwAccountVisible", "uid", "employeeNumber", "ou");
+			}
+			else
+			{
+				$filter="(& (phpgwAccountType=u)(cn=*$search_for*) (!(phpgwaccountvisible=-1)) )";
+				$justthese = array("cn", "mail", "telephoneNumber", "mobile", "phpgwAccountVisible","jpegPhoto", "uid", "employeeNumber", "ou");
+			}
+			$sr=@ldap_search($this->ds, $this->ldap_context, $filter, $justthese, 0, $this->max_result + 1);
+			if(!$sr)
+				return null;
+			$count_entries = ldap_count_entries($this->ds,$sr);
+
+			// Get user org dn.
+			$user_dn = $_SESSION['phpgw_info']['expressomail']['user']['account_dn'];
+			$user_sector_dn = ldap_explode_dn ( $user_dn, false );
+			array_shift($user_sector_dn);
+			array_shift($user_sector_dn);
+			$user_sector_dn = implode(",", $user_sector_dn);
+
+			// New search only on user sector
+			if ($count_entries > $this->max_result)
+ 			{
+				// Close old ldap conection
+				ldap_close($this->ds);
+
+				// Reopen a local ldap connection, following referral
+				$this->ldapRootConnect(true);
+
+				$sr= ldap_search($this->ds, $user_sector_dn, $filter, $justthese);
+				if(!$sr)
+					return null;
+				$count_entries = ldap_count_entries($this->ds,$sr);
+
+				if ($count_entries > $this->max_result){
+					$return = array();
+					$return['status'] = false;
+					$return['error'] = "many results";
+					return $return;
+				}
+				else
+				{
+					$quickSearch_only_in_userSector = true;
+				}
+			}
+
+			$info = ldap_get_entries($this->ds, $sr);
+
+			$tmp = array();
+			$tmp_users_from_user_org = array();
+
+			if (!$quickSearch_only_in_userSector) {
+				$catalogsNum=count($this->external_srcs);
+				for ($i=0; $i<=count($this->external_srcs); $i++)	{
+					if ($this->external_srcs[$i]["quicksearch"]) {
+						$this->ldapConnect(true,$i);
+						$filter="(|(cn=*$search_for*)(mail=*$search_for*))";
+						$justthese = array("cn", "mail", "telephoneNumber", "mobile", "phpgwAccountVisible", "uid","employeeNumber", "ou");
+						$sr=@ldap_search($this->ds, $this->ldap_context, $filter, $justthese, 0, $this->max_result+1);
+						if(!$sr)
+							return null;
+						$count_entries = ldap_count_entries($this->ds,$sr);
+						$search = ldap_get_entries($this->ds, $sr);
+						for ($j=0; $j<$search["count"]; $j++) {
+							$info[] = $search[$j];
+						}
+						$info["count"] = count($info)-1;
+					}
+				}
+			}
+
+			for ($i=0; $i<$info["count"]; $i++)
+			{
+				if ($quickSearch_only_in_userSector)
+				{
+					$tmp[$info[$i]["mail"][0] . '%' . $info[$i]["telephonenumber"][0] . '%'. $info[$i]["mobile"][0] . '%' . $info[$i]["uid"][0] . '%' . $info[$i]["jpegphoto"]['count'] . '%' . $info[$i]["employeenumber"][0] . '%' . $info[$i]["ou"][0]] = utf8_decode($info[$i]["cn"][0]);
+				}
+				else
+				{
+					if (preg_match("/$user_sector_dn/i", $info[$i]['dn']))
+					{
+						$tmp_users_from_user_org[$info[$i]["mail"][0] . '%' . $info[$i]["telephonenumber"][0] . '%'. $info[$i]["mobile"][0] . '%' . $info[$i]["uid"][0] . '%' . $info[$i]["jpegphoto"]['count'] . '%' . $info[$i]["employeenumber"][0] . '%' . $info[$i]["ou"][0]] = utf8_decode($info[$i]["cn"][0]);
+					}
+					else
+					{
+						$tmp[$info[$i]["mail"][0] . '%' . $info[$i]["telephonenumber"][0] . '%'. $info[$i]["mobile"][0] . '%' . $info[$i]["uid"][0] . '%' . $info[$i]["jpegphoto"]['count'] . '%' . $info[$i]["employeenumber"][0] . '%' . $info[$i]["ou"][0]] = utf8_decode($info[$i]["cn"][0]);
+					}
+				}
+			}
+			natcasesort($tmp_users_from_user_org);
+			natcasesort($tmp);
+
+			if (($field != 'null') && ($ID != 'null'))
+			{
+				$i = 0;
+
+				$tmp = array_merge($tmp, $tmp_users_from_user_org);
+				natcasesort($tmp);
+
+				foreach ($tmp as $info => $cn)
+				{
+					$contacts_result[$i] = array();
+					$contacts_result[$i]["cn"] = $cn;
+					list ($contacts_result[$i]["mail"], $contacts_result[$i]["phone"], $contacts_result[$i]["mobile"], $contacts_result[$i]["uid"], $contacts_result[$i]["jpegphoto"], $contacts_result[$i]["employeenumber"], $contacts_result[$i]["ou"]) = split ('%', $info);
+					$i++;
+				}
+				$contacts_result['quickSearch_only_in_userSector'] = $quickSearch_only_in_userSector;
+			}
+			else
+			{
+				$options_users_from_user_org = '';
+				$options = '';
+
+				/* List of users from user org */
+				$i = 0;
+				foreach ($tmp_users_from_user_org as $info => $cn)
+				{
+					$contacts_result[$i] = array();
+					$options_users_from_user_org .= $this->make_quicksearch_card($info, $cn);
+					$i++;
+				}
+
+				/* List of users from others org */
+				foreach ($tmp as $info => $cn)
+				{
+					$contacts_result[$i] = array();
+					$options .= $this->make_quicksearch_card($info, $cn);
+					$i++;
+				}
+
+				if ($quickSearch_only_in_userSector)
+				{
+					if ($options != '')
+					{
+						$head_option =
+							'<tr class="quicksearchcontacts_unselected">' .
+								'<td colspan="2" width="100%" align="center">' .
+									str_replace("%1", $this->max_result,$this->functions->getLang('More than %1 results were found')) . '.<br>' .
+									$this->functions->getLang('Showing only the results found in your organization') . '.';
+								'</td>' .
+							'</tr>';
+						$contacts_result = $head_option . $options_users_from_user_org . $options;
+					}
+					else
+					{
+						$return = array();
+						$return['status'] = false;
+						$return['error'] = "many results";
+						return $return;
+					}
+				}
+				else
+				{
+					if (($options_users_from_user_org != '') && ($options != ''))
+					{
+						$head_option0 =
+							'<tr class="quicksearchcontacts_unselected">' .
+								'<td colspan="2" width="100%" align="center" style="background:#EEEEEE"><B>' .
+									$this->functions->getLang('Users from your organization') . '</B> ['.count($tmp_users_from_user_org).']';
+								'</td>' .
+							'</tr>';
+
+						$head_option1 =
+							'<tr class="quicksearchcontacts_unselected">' .
+								'<td colspan="2" width="100%" align="center" style="background:#EEEEEE"><B>' .
+									$this->functions->getLang('Users from others organizations') . '</B> ['.count($tmp).']';
+								'</td>' .
+							'</tr>';
+					}
+					$contacts_result = $head_option0 . $options_users_from_user_org . $head_option1 . $options;
+				}
+			}
+		}
+		ldap_close($this->ds);
+		return $contacts_result;
+	}
+
+	function make_quicksearch_card($info, $cn)
+	{
+		include_once("class.functions.inc.php");
+		$functions = new functions;
+
+		$contacts_result = array();
+		$contacts_result["cn"] = $cn;
+		list ($contacts_result["mail"], $contacts_result["phone"], $contacts_result["mobile"], $contacts_result["uid"], $contacts_result["jpegphoto"]) = split ('%', $info);
+
+		if ($contacts_result['jpegphoto'])
+			$photo_link = '<img src="./inc/show_user_photo.php?mail='.$contacts_result['mail'].'">';
+		else
+			$photo_link = '<img src="./templates/default/images/photo.png">';
+
+		$phoneUser = $contacts_result['phone'];
+
+		if($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['voip_enabled'] && $phoneUser) {
+			$phoneUser = '<a title="'.$this->functions->getLang("Call to Comercial Number").'" href="#" onclick="InfoContact.connectVoip(\''.$phoneUser.'\',\'com\')">'.$phoneUser.'</a>';
+			if($contacts_result['mobile']){
+				$phoneUser .= ' / <a title="'.$this->functions->getLang("Call to Mobile Number").'" href="#" onclick="InfoContact.connectVoip(\''.$contacts_result['mobile'].'\',\'mob\')">'.$contacts_result['mobile'].'</a>';
+			}
+		}
+		// Begin: nickname, firstname and lastname for QuickAdd.
+		$fn = $contacts_result["cn"];
+		$array_name = explode(" ", $fn);
+		if(count($array_name) > 1){			
+			$fn = $array_name[0];
+			array_shift($array_name);
+			$sn = implode(" ",$array_name);
+		}
+		// End:
+		$option =
+			'<tr class="quicksearchcontacts_unselected">' .
+				'<td class="cc" width="1%">' .
+					'<a title="'.$this->functions->getLang("Write message").'" onClick="javascript:QuickSearchUser.create_new_message(\''.$contacts_result["cn"].'\', \''.$contacts_result["mail"].'\')">' .
+						$photo_link .
+					'</a>' .
+				'</td>' .
+				'<td class="cc">' .
+					'<span name="cn">' . $contacts_result['cn'] . '</span>' . '<br>' .
+					'<a title="'.$this->functions->getLang("Write message").'" onClick="javascript:QuickSearchUser.create_new_message(\''.$contacts_result["cn"].'\', \''.$contacts_result["mail"].'\')">' .
+						'<font color=blue>' .
+						'<span name="mail">' . $contacts_result['mail'] . '</span></a></font>'.
+						'<img src="templates/default/images/user_card.png" style="cursor: pointer;" title="'.$this->functions->getLang("Add Contact").'" onclick="javascript:connector.loadScript(\'ccQuickAdd\');ccQuickAddOne.showList(\''.$fn.','.$fn.','.$sn.','.$contacts_result["mail"].'\')">'.
+					'<br>' .
+					$phoneUser .
+				'</td>' .
+				'</tr>';
+		return $option;
+	}
+
+	function get_catalogs(){
+		$catalogs = array();
+		$catalogs[0] = $this->functions->getLang("Global Catalog");
+		if($this->external_srcs)
+			foreach ($this->external_srcs as $key => $valor ){
+			$catalogs[$key] = $valor['name'];
+		}
+		return $catalogs;
+	}
+	function get_organizations($params){
+		$organizations = array();
+		$params['referral']?$referral = $params['referral']:$referral = false;
+		$cat = $params['catalog'];
+
+		$this->ldapConnect($referral,$cat);
+
+			if($this->branch != '') {
+				$filter=$this->branch."=*";
+				$justthese = array("$this->branch");
+			$sr = ldap_list($this->ds, $this->ldap_context, $filter, $justthese);
+			$info = ldap_get_entries($this->ds, $sr);
+
+			for ($i=0; $i<$info["count"]; $i++)
+				$organizations[$i] = $info[$i]["ou"][0];
+
+			ldap_close($this->ds);
+			sort($organizations);
+		return $organizations;
+			}else{
+			return null;
+	}
+	}
+	function get_organizations2($params){
+		$organizations = array();
+		$referral = $params['referral'];
+		$this->ldapRootConnect($referral);
+		if ($this->ds) {
+			$filter="ou=*";
+			$justthese = array("ou");
+			$sr = ldap_list($this->ds, $this->ldap_context, $filter, $justthese);
+			$info = ldap_get_entries($this->ds, $sr);
+
+			for ($i=0; $i<$info["count"]; $i++)
+			{
+				$organizations[$i]['ou'] = $info[$i]["ou"][0];
+				$organizations[$i]['dn'] = $info[$i]["dn"];
+			}
+
+			ldap_close($this->ds);
+			sort($organizations);
+		}
+		return $organizations;
+	}
+
+	function catalogsearch($params)
+	{
+		$cn	= $params['search_for'] ? "*".utf8_encode($params['search_for'])."*" : "*";
+		$max_result	  = $params['max_result'] ? $params['max_result'] : $this->max_result;
+		$catalog = $params['catalog'];
+		$error = False;
+
+		$this->ldapConnect(true,$catalog);
+
+		$params['organization'] == 'all' ? $user_context = $this->ldap_context :$user_context = $this->branch."=".$params['organization'].",".$this->ldap_context;
+
+		if ($this->ds) {
+			if ($catalog == 0){
+				//os atributos "employeeNumber" e "ou" foram adicionado ao vetor de busca;
+				$justthese = array("cn", "mail", "phpgwaccounttype", "phpgwAccountVisible", "employeeNumber", "ou");
+				$filter="(&(|(phpgwAccountType=u)(phpgwAccountType=l))(cn=".$cn."))";
+				//$user_context = "ou=".$params['organization'].",".$this->ldap_context;
+			}else {
+				//os atributos "employeeNumber" e "ou" foram adicionado ao vetor de busca;
+				$justthese = array("cn", "mail", "employeeNumber", "ou");
+				$filter="(&(objectClass=".$this->object_class.")(cn=".$cn."))";
+				//$user_context = $this->branch."=".$params['organization'].",".$external_srcs[$catalog]['dn'];
+			}
+
+			$sr=@ldap_search($this->ds, $user_context, $filter, $justthese, 0, $max_result+1);
+			if(!$sr)
+				return null;
+			$count_entries = ldap_count_entries($this->ds,$sr);
+			if ($count_entries > $max_result){
+				$info = null;
+				$error = True;
+			}
+			else
+				$info = ldap_get_entries($this->ds, $sr);
+
+			ldap_close($this->ds);
+
+			$u_tmp = array();
+			$g_tmp = array();
+
+			for ($i=0; $i<$info["count"]; $i++){
+				if((!$catalog==0)||(strtoupper($info[$i]["phpgwaccounttype"][0]) == 'U') && ($info[$i]["phpgwaccountvisible"][0] != '-1'))
+					//aqui eh feita a concatenacao do departamento ao cn;
+					$u_tmp[$info[$i]["mail"][0]] = utf8_decode($info[$i]["cn"][0]). '%' . $info[$i]["ou"][0];
+				if((!$catalog==0)||(strtoupper($info[$i]["phpgwaccounttype"][0]) == 'L') && ($info[$i]["phpgwaccountvisible"][0] != '-1'))
+					$g_tmp[$info[$i]["mail"][0]] = utf8_decode($info[$i]["cn"][0]);
+			}
+
+			natcasesort($u_tmp);
+			natcasesort($g_tmp);
+
+			$i = 0;
+			$users = array();
+
+			foreach ($u_tmp as $mail => $cn){
+
+				$tmp = explode("%", $cn); //explode o cn pelo caracter "%" e joga em $tmp;
+				$name = $tmp[0]; //pega o primeiro item (cn) do vetor resultante do explode acima;
+				$department = $tmp[1]; //pega o segundo item (ou) do vetor resultanto do explode acima;
+				$users[$i++] = array("name" => $name, "email" => $mail, "department" => $department);
+
+			}
+			unset($u_tmp);
+
+			$i = 0;
+			$groups = array();
+
+			foreach ($g_tmp as $mail => $cn){
+				$groups[$i++] = array("name" => $cn, "email" => $mail);
+			}
+			unset($g_tmp);
+
+			return  array('users' => $users, 'groups' => $groups, 'error' => $error);
+		}else
+		return null;
+	}
+
+	function get_emails_ldap(){
+
+		$result['mail']= array();
+		$result['mailalter']= array();
+		$user = $_SESSION['phpgw_info']['expressomail']['user']['account_lid'];
+		$this->ldapRootConnect(false);
+		if ($this->ds) {
+			$filter="uid=".$user;
+			$justthese = array("mail","mailAlternateAddress");
+			$sr = ldap_search($this->ds,$this->ldap_context, $filter, $justthese);
+			$ent = ldap_get_entries($this->ds, $sr);
+			ldap_close($this->ds);
+
+			for ($i=0; $i<$ent["count"]; $i++){
+				$result['mail'][] = $ent[$i]["mail"][0];
+				$result['mailalter'][] = $ent[$i]["mailalternateaddress"][0];
+			}
+		}
+		return $result;
+	}
+
+	//Busca usuarios de um contexto e ja retorna as options do select;
+	function get_available_users($params)
+    {
+        $this->ldapRootConnect();
+        //Monta lista de Grupos e Usuarios
+        $users = Array();
+        $groups = Array();
+        $user_context= $params['context'];
+        $owner = $_SESSION['phpgw_info']['expressomail']['user']['owner'];
+
+        if ($this->ds)
+        {
+            $justthese = array("gidNumber","cn");
+            if ($params['type'] == 'search')
+                $sr=ldap_search($this->ds, $user_context, ("(&(cn=*)(phpgwaccounttype=g)(!(phpgwaccountvisible=-1)))"),$justthese);
+            else
+                $sr=ldap_list($this->ds, $user_context, ("(&(cn=*)(phpgwaccounttype=g)(!(phpgwaccountvisible=-1)))"),$justthese);
+            $info = ldap_get_entries($this->ds, $sr);
+            for ($i=0; $i<$info["count"]; $i++)
+                $groups[$uids=$info[$i]["gidnumber"][0]] = Array('name'    =>    $uids=$info[$i]["cn"][0], 'type'    =>    g);
+            $justthese = array("phpgwaccountvisible","uidNumber","cn");
+            if ($params['type'] == 'search')
+                $sr=ldap_search($this->ds, $user_context, ("(&(cn=*)(phpgwaccounttype=u)(!(phpgwaccountvisible=-1)))"),$justthese);
+            else
+                $sr=ldap_list($this->ds, $user_context, ("(&(cn=*)(phpgwaccounttype=u)(!(phpgwaccountvisible=-1)))"),$justthese);
+
+            $info = ldap_get_entries($this->ds, $sr);
+            for ($i=0; $i<$info["count"]; $i++)
+            {
+                if ($info[$i]["phpgwaccountvisible"][0] == '-1')
+                    continue;
+                $users[$uids=$info[$i]["uidnumber"][0]] = Array('name'    =>    $uids=$info[$i]["cn"][0], 'type'    =>    u);
+            }
+        }
+        ldap_close($this->ds);
+
+        @asort($users);
+        @reset($users);
+        @asort($groups);
+        @reset($groups);
+        $user_options ='';
+        $group_options ='';
+
+        foreach($groups as $id => $user_array) {
+                $newId = $id.'U';
+                $group_options .= '<option  value="'.$newId.'">'.utf8_decode($user_array['name']).'</option>'."\n";
+        }
+        foreach($users as $id => $user_array) {
+            if($owner != $id){
+                $newId = $id.'U';
+                $user_options .= '<option  value="'.$newId.'">'.utf8_decode($user_array['name']).'</option>'."\n";
+            }
+        }
+        return array("users" => $user_options, "groups" => $group_options);
+    }
+
+	//Busca usuarios de um contexto e ja retorna as options do select;
+	function get_available_users2($params)
+	{
+		$this->ldapRootConnect();
+
+		$context= $params['context'];
+		$justthese = array("cn", "uid", "cn");
+		$filter = "(&(phpgwaccounttype=u)(!(phpgwaccountvisible=-1)))";
+
+	    if ($this->ds)
+	    {
+			$sr=ldap_search($this->ds, $context, $filter, $justthese);
+			$entries = ldap_get_entries($this->ds, $sr);
+
+			for ($i=0; $i<$entries["count"]; $i++){
+				if($_SESSION['phpgw_info']['expressomail']['user']['account_lid'] != $entries[$i]["uid"][0]){
+					$u_tmp[$entries[$i]["uid"][0]] = $entries[$i]["cn"][0];
+				}
+			}
+
+			natcasesort($u_tmp);
+
+			$i = 0;
+			$users = array();
+
+			if (count($u_tmp))
+			{
+				foreach ($u_tmp as $uidnumber => $cn)
+				{
+					$options .= "<option value=$uidnumber>$cn</option>";
+				}
+				unset($u_tmp);
+			}
+
+			ldap_close($this->ds);
+    		return $options;
+		}
+	}
+
+	function uid2cn($uid)
+	{
+		// do not follow the referral
+		$this->ldapRootConnect(false);
+		if ($this->ds)
+		{
+			$filter="(&(phpgwAccountType=u)(uid=$uid))";
+			$justthese = array("cn");
+			$sr=@ldap_search($this->ds, $this->ldap_context, $filter, $justthese);
+			if(!$sr)
+				return false;
+			$info = ldap_get_entries($this->ds, $sr);
+			return utf8_decode($info[0]["cn"][0]);
+		}
+		return false;
+	}
+	function uidnumber2uid($uidnumber)
+	{
+		// do not follow the referral
+		$this->ldapRootConnect(false);
+		if ($this->ds)
+		{
+			$filter="(&(phpgwAccountType=u)(uidnumber=$uidnumber))";
+			$justthese = array("uid");
+			$sr=@ldap_search($this->ds, $this->ldap_context, $filter, $justthese);
+			if(!$sr)
+				return false;
+			$info = ldap_get_entries($this->ds, $sr);
+			return $info[0]["uid"][0];
+		}
+		return false;
+	}
+	function getSharedUsersFrom($params){
+		$filter = '';
+		$i = 0;
+		if($params['uids']) {
+			$uids = explode(";",$params['uids']);
+			$this->imap = new imap_functions();
+			foreach($uids as $index => $uid){
+				$params = array();
+				$acl = $this->imap->getacltouser($uid);
+				if(preg_match("/a/",$acl))
+					$filter .= "(uid=$uid)";
+			}
+		}
+
+		$this->ldapRootConnect(false);
+		if ($this->ds) {
+			$justthese = array("cn","mail");
+			if($filter) {
+				$filter="(&(phpgwAccountType=u)(|$filter))";
+				$sr		=	ldap_search($this->ds, $this->ldap_context, $filter, $justthese);
+				ldap_sort($this->ds,$sr,"cn");
+				$info 	= 	ldap_get_entries($this->ds, $sr);
+				for ($i = 0;$i < $info["count"]; $i++)
+					$info[$i]['cn'][0] = utf8_decode($info[$i]['cn'][0]);
+			}
+			$info['myname'] = $_SESSION['phpgw_info']['expressomail']['user']['fullname'];
+
+			//Find institucional_account.
+			$filter="(&(phpgwAccountType=i)(mailForwardingAddress=".$_SESSION['phpgw_info']['expressomail']['user']['email']."))";
+			$sr	= ldap_search($this->ds, $this->ldap_context, $filter, $justthese);
+			##
+			# @AUTHOR Rodrigo Souza dos Santos
+			# @DATE 2008/09/17
+			# @BRIEF Changing to ensure that the variable session is always with due value.
+			##
+			if(ldap_count_entries($this->ds,$sr))
+			{
+				ldap_sort($this->ds,$sr,"cn");
+				$result = ldap_get_entries($this->ds, $sr);
+				for ($j = 0;$j < $result["count"]; $j++){
+					$info[$i]['cn'][0] = utf8_decode($result[$j]['cn'][0]);
+					$info[$i++]['mail'][0] = $result[$j]['mail'][0];
+				}
+			}
+
+			$_SESSION['phpgw_info']['expressomail']['user']['shared_mailboxes'] = $info;
+
+			return $info;
+		}
+	}
+
+	function getUserByEmail($params)
+	{
+		$filter="(&(phpgwAccountType=u)(mail=" . $params['email'] . "))";
+		$ldap_context = $_SESSION['phpgw_info']['expressomail']['ldap_server']['dn'];
+		$justthese = array("cn","uid","telephoneNumber","jpegPhoto","mobile");
+
+		// Follow the referral
+		$ds = $this->ldapConnect2(true);
+		if ($ds)
+		{
+			$sr=@ldap_search($ds, $ldap_context, $filter, $justthese);
+
+			if (!$sr)
+				return null;
+
+			$entry = ldap_first_entry($ds, $sr);
+
+			if($entry) {
+				$obj =  array("cn" => utf8_decode(current(ldap_get_values($ds, $entry, "cn"))),
+						  "email" => $params['email'],
+						  "uid" => ldap_get_values($ds, $entry, "uid"),
+						  "type" => "global",
+						  "mobile" =>  @ldap_get_values($ds, $entry, "mobile"),
+						  "telefone" =>  @ldap_get_values($ds, $entry, "telephonenumber")
+					);
+
+				$_SESSION['phpgw_info']['expressomail']['contact_photo'] = @ldap_get_values_len($ds, $entry, "jpegphoto");
+				ldap_close($ds);
+				return $obj;
+			}
+		}
+		return null;
+	}
+}
+?>
Index: tags/expressoMail1_2/1.234/inc/class.functions.inc.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/class.functions.inc.php	(revision 94)
+++ tags/expressoMail1_2/1.234/inc/class.functions.inc.php	(revision 94)
@@ -0,0 +1,115 @@
+<?php
+	class Functions{
+		
+		
+		function CallVoipConnect($params){
+			$fromNumber = $_SESSION['phpgw_info']['user']['preferences']['expressoMail']['telephone_number'];
+			if(!$fromNumber)
+				return false;
+			$fromNumber = substr($fromNumber,strlen($fromNumber) - 4, strlen($fromNumber) - 1);
+			$toNumber	= $params['to'] ? substr($params['to'],strlen($params['to']) - 4, strlen($params['to']) - 1) : 0;
+			
+			$voipServer	= $_SESSION['phpgw_info']['expressomail']['server']['voip_server'];
+			$voipUrl	= $_SESSION['phpgw_info']['expressomail']['server']['voip_url'];
+			$voipPort	= $_SESSION['phpgw_info']['expressomail']['server']['voip_port'];
+			
+			// Se for celular, passa os digitos do número e conecta com outro VoIP Server.....
+			if($params['typePhone'] == 'mob'){
+				$toNumber	= $params['to'];
+				$voipServer	= $_SESSION['phpgw_info']['expressomail']['server']['voip_server'];
+				$voipUrl	= $_SESSION['phpgw_info']['expressomail']['server']['voip_url'];
+				$voipPort	= $_SESSION['phpgw_info']['expressomail']['server']['voip_port'];				
+			}	
+				
+			if(!$voipServer || !$voipUrl || !$voipPort)
+				return false;
+			$url		= "http://".$voipServer.":".$voipPort.$voipUrl."?magic=1333&acao=liga&ramal=".$fromNumber."&numero=".$toNumber;			
+			$sMethod = 'GET ';
+            $crlf = "\r\n";
+            $sRequest = " HTTP/1.1" . $crlf;
+            $sRequest .= "Host: localhost" . $crlf;
+            $sRequest .= "Accept: */* " . $crlf;
+            $sRequest .= "Connection: Close" . $crlf . $crlf;            
+            $sRequest = $sMethod . $url . $sRequest;    
+            $sockHttp = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);            
+            if (!$sockHttp)  {
+                return false;
+            }
+            $resSocketConnect = socket_connect($sockHttp, $voipServer, $voipPort);
+            if (!$resSocketConnect) {
+                return false;
+            }
+            $resSocketWrite = socket_write($sockHttp, $sRequest, strlen($sRequest));
+            if (!$resSocketWrite) {
+                return false;
+            }    
+            $sResponse = '';    
+            while ($sRead = socket_read($sockHttp, 512)) {
+                $sResponse .= $sRead;
+            }            
+            
+            socket_close($sockHttp);            
+            $pos = strpos($sResponse, $crlf . $crlf);
+            return substr($sResponse, $pos + 2 * strlen($crlf));									
+		}
+
+		function getDirContents($dir){
+			//$dir = dirname($dir);
+	
+		   	if (!is_dir($dir)) 	{
+		   			return 'Error: Cannot load files in :'. $dir.' !';
+		   	}
+		   	
+		   	if ($root=@opendir($dir))	{
+		       
+		       while ($file=readdir($root))	{	           
+		           if($file!="." && $file!="..")
+			           $files[]=$dir."/".$file;           
+		       }
+		       
+		   	}
+		   	
+		   return $files;
+		}
+				
+		function getFilesJs($includeFiles = '', $update_version = ''){
+			
+			$files = $this -> getDirContents('js');
+			$str_files = '';
+			
+			if($includeFiles) {
+				$includeFiles = explode(",",trim($includeFiles));
+				// Bug fixed for array_search function
+				$includeFiles[count($includeFiles)] = $includeFiles[0];
+				$includeFiles[0] = null;
+				// End Bug fixed.
+			}														
+			for($i = 0; $i < count($files); $i++) {				
+				if(count(explode('.js',$files[$i])) > 1) {
+					if($includeFiles  && array_search(trim($files[$i]),$includeFiles)){	
+						$str_files .= "<script src='".$files[$i]."?".$update_version."' type='text/javascript'></script>";						
+					}
+				}
+			}
+			
+			return $str_files;
+		}								
+
+		function getReturnExecuteForm(){
+			$response = $_SESSION['response'];
+			$_SESSION['response'] = null;
+			return $response;
+		}
+		
+		function getLang($key){
+			if ($_SESSION['phpgw_info']['expressomail']['lang'][$key])
+			return $_SESSION['phpgw_info']['expressomail']['lang'][$key];			
+			else
+				return ($key . '*');
+		}
+
+		function get_preferences()	{
+			return $_SESSION['phpgw_info']['user']['preferences']['expressoMail'];
+		}
+	}
+?>
Index: tags/expressoMail1_2/1.234/inc/class.phpmailer.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/class.phpmailer.php	(revision 614)
+++ tags/expressoMail1_2/1.234/inc/class.phpmailer.php	(revision 614)
@@ -0,0 +1,1568 @@
+<?php
+////////////////////////////////////////////////////
+// PHPMailer - PHP email class
+//
+// Class for sending email using either
+// sendmail, PHP mail(), or SMTP.  Methods are
+// based upon the standard AspEmail(tm) classes.
+//
+// Copyright (C) 2001 - 2003  Brent R. Matzelle
+//
+// License: LGPL, see LICENSE
+////////////////////////////////////////////////////
+
+/**
+ * PHPMailer - PHP email transport class
+ * @package PHPMailer
+ * @author Brent R. Matzelle
+ * @copyright 2001 - 2003 Brent R. Matzelle
+ */
+class PHPMailer
+{
+    /////////////////////////////////////////////////
+    // PUBLIC VARIABLES
+    /////////////////////////////////////////////////
+
+    /**
+     * Email priority (1 = High, 3 = Normal, 5 = low).
+     * @var int
+     */
+    var $Priority          = 3;
+	/**
+	 * Email Importance.
+	 */
+	var $Importance        = "";
+
+    /**
+     * Sets the CharSet of the message.
+     * @var string
+     */
+    var $CharSet           = "iso-8859-1";
+
+    /**
+     * Sets the Content-type of the message.
+     * @var string
+     */
+    var $ContentType        = "text/plain";
+
+    /**
+     * Sets the Encoding of the message. Options for this are "8bit",
+     * "7bit", "binary", "base64", and "quoted-printable".
+     * @var string
+     */
+    var $Encoding          = "quoted-printable";
+
+    /**
+     * Holds the most recent mailer error message.
+     * @var string
+     */
+    var $ErrorInfo         = "";
+
+    /**
+     * Sets the From email address for the message.
+     * @var string
+     */
+    var $From               = "root@localhost";
+
+    /**
+     * Sets the From name of the message.
+     * @var string
+     */
+    var $FromName           = "Root User";
+
+    /**
+     * Sets the Sender email (Return-Path) of the message.  If not empty,
+     * will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode.
+     * @var string
+     */
+    var $Sender            = "";
+	var $SenderName		= "";
+    /**
+     * Sets the Subject of the message.
+     * @var string
+     */
+    var $Subject           = "teste";
+
+    /**
+     * Sets the Body of the message.  This can be either an HTML or text body.
+     * If HTML then run IsHTML(true).
+     * @var string
+     */
+    var $Body               = "";
+
+    /**
+     * Sets the text-only body of the message.  This automatically sets the
+     * email to multipart/alternative.  This body can be read by mail
+     * clients that do not have HTML email capability such as mutt. Clients
+     * that can read HTML will view the normal Body.
+     * @var string
+     */
+    var $AltBody           = "";
+
+    /**
+     * Sets word wrapping on the body of the message to a given number of 
+     * characters.
+     * @var int
+     */
+    var $WordWrap          = 0;
+
+    /**
+     * Method to send mail: ("mail", "sendmail", or "smtp").
+     * @var string
+     */
+    var $Mailer            = "mail";
+
+    /**
+     * Sets the path of the sendmail program.
+     * @var string
+     */
+    var $Sendmail          = "/usr/sbin/sendmail";
+    
+    /**
+     * Path to PHPMailer plugins.  This is now only useful if the SMTP class 
+     * is in a different directory than the PHP include path.  
+     * @var string
+     */
+    var $PluginDir         = "";
+
+    /**
+     *  Holds PHPMailer version.
+     *  @var string
+     */
+    var $Version           = "1.2";
+
+    /**
+     * Sets the email address that a reading confirmation will be sent.
+     * @var string
+     */
+    var $ConfirmReadingTo  = "";
+
+    /**
+     *  Sets the hostname to use in Message-Id and Received headers
+     *  and as default HELO string. If empty, the value returned
+     *  by SERVER_NAME is used or 'localhost.localdomain'.
+     *  @var string
+     */
+    var $Hostname          = "";
+	
+	var $SaveMessageInFolder = "";
+	var $SaveMessageAsDraft = "";
+
+    /////////////////////////////////////////////////
+    // SMTP VARIABLES
+    /////////////////////////////////////////////////
+
+    /**
+     *  Sets the SMTP hosts.  All hosts must be separated by a
+     *  semicolon.  You can also specify a different port
+     *  for each host by using this format: [hostname:port]
+     *  (e.g. "smtp1.example.com:25;smtp2.example.com").
+     *  Hosts will be tried in order.
+     *  @var string
+     */
+    var $Host        = "localhost";
+
+    /**
+     *  Sets the default SMTP server port.
+     *  @var int
+     */
+    var $Port        = 25;
+
+    /**
+     *  Sets the SMTP HELO of the message (Default is $Hostname).
+     *  @var string
+     */
+    var $Helo        = "";
+
+    /**
+     *  Sets SMTP authentication. Utilizes the Username and Password variables.
+     *  @var bool
+     */
+    var $SMTPAuth     = false;
+
+    /**
+     *  Sets SMTP username.
+     *  @var string
+     */
+    var $Username     = "";
+
+    /**
+     *  Sets SMTP password.
+     *  @var string
+     */
+    var $Password     = "";
+
+    /**
+     *  Sets the SMTP server timeout in seconds. This function will not 
+     *  work with the win32 version.
+     *  @var int
+     */
+    var $Timeout      = 300;
+
+    /**
+     *  Sets SMTP class debugging on or off.
+     *  @var bool
+     */
+    var $SMTPDebug    = false;
+
+    /**
+     * Prevents the SMTP connection from being closed after each mail 
+     * sending.  If this is set to true then to close the connection 
+     * requires an explicit call to SmtpClose(). 
+     * @var bool
+     */
+    var $SMTPKeepAlive = false;
+
+    /**#@+
+     * @access private
+     */
+    var $smtp            = NULL;
+    var $to              = array();
+    var $cc              = array();
+    var $bcc             = array();
+    var $ReplyTo         = array();
+    var $attachment      = array();
+    var $CustomHeader    = array();
+    var $message_type    = "";
+    var $boundary        = array();
+    var $language        = array();
+    var $error_count     = 0;
+    var $LE              = "\n";
+    /**#@-*/
+    
+    /////////////////////////////////////////////////
+    // VARIABLE METHODS
+    /////////////////////////////////////////////////
+
+	function isImportant() {
+		$this->Importance = "High";
+	}
+	
+    /**
+     * Sets message type to HTML.  
+     * @param bool $bool
+     * @return void
+     */
+    function IsHTML($bool) {
+        if($bool == true)
+            $this->ContentType = "text/html";
+        else
+            $this->ContentType = "text/plain";
+    }
+
+    /**
+     * Sets Mailer to send message using SMTP.
+     * @return void
+     */
+    function IsSMTP() {
+        $this->Mailer = "smtp";
+    }
+
+    /**
+     * Sets Mailer to send message using PHP mail() function.
+     * @return void
+     */
+    function IsMail() {
+        $this->Mailer = "mail";
+    }
+
+    /**
+     * Sets Mailer to send message using the $Sendmail program.
+     * @return void
+     */
+    function IsSendmail() {
+        $this->Mailer = "sendmail";
+    }
+
+    /**
+     * Sets Mailer to send message using the qmail MTA. 
+     * @return void
+     */
+    function IsQmail() {
+        $this->Sendmail = "/var/qmail/bin/sendmail";
+        $this->Mailer = "sendmail";
+    }
+
+
+    /////////////////////////////////////////////////
+    // RECIPIENT METHODS
+    /////////////////////////////////////////////////
+
+    /**
+     * Adds a "To" address.  
+     * @param string $address
+     * @param string $name
+     * @return void
+     */
+    function AddAddress($address, $name = "") {
+        $cur = count($this->to);
+        $this->to[$cur][0] = trim($address);
+        $this->to[$cur][1] = $name;
+    }
+
+    /**
+     * Adds a "Cc" address. Note: this function works
+     * with the SMTP mailer on win32, not with the "mail"
+     * mailer.  
+     * @param string $address
+     * @param string $name
+     * @return void
+    */
+    function AddCC($address, $name = "") {
+        $cur = count($this->cc);
+        $this->cc[$cur][0] = trim($address);
+        $this->cc[$cur][1] = $name;
+    }
+
+    /**
+     * Adds a "Bcc" address. Note: this function works
+     * with the SMTP mailer on win32, not with the "mail"
+     * mailer.  
+     * @param string $address
+     * @param string $name
+     * @return void
+     */
+    function AddBCC($address, $name = "") {
+        $cur = count($this->bcc);
+        $this->bcc[$cur][0] = trim($address);
+        $this->bcc[$cur][1] = $name;
+    }
+
+    /**
+     * Adds a "Reply-to" address.  
+     * @param string $address
+     * @param string $name
+     * @return void
+     */
+    function AddReplyTo($address, $name = "") {
+        $cur = count($this->ReplyTo);
+        $this->ReplyTo[$cur][0] = trim($address);
+        $this->ReplyTo[$cur][1] = $name;
+    }
+
+
+    /////////////////////////////////////////////////
+    // MAIL SENDING METHODS
+    /////////////////////////////////////////////////
+
+    /**
+     * Creates message and assigns Mailer. If the message is
+     * not sent successfully then it returns false.  Use the ErrorInfo
+     * variable to view description of the error.  
+     * @return bool
+     */
+    function Send() {
+    	
+    
+        $header = "";
+        $body = "";
+        $result = true;
+		
+        if(((count($this->to) + count($this->cc) + count($this->bcc)) < 1) && (!$this->SaveMessageAsDraft))
+        {
+            $this->SetError($this->Lang("provide_address"));            
+            return false;
+        }
+		
+        // Set whether the message is multipart/alternative
+        if(!empty($this->AltBody))
+            $this->ContentType = "multipart/alternative";
+
+        $this->error_count = 0; // reset errors
+        $this->SetMessageType();
+        $header .= $this->CreateHeader();
+        $body = $this->CreateBody();
+		
+        if($body == "") { return false; }
+		
+        // Choose the mailer
+        switch($this->Mailer)
+        {
+            case "sendmail":
+                $result = $this->SendmailSend($header, $body);
+                break;
+            case "mail":
+                $result = $this->MailSend($header, $body);
+                break;
+            case "smtp":
+                $result = $this->SmtpSend($header, $body);
+                break;
+            default:
+	            $this->SetError($this->Mailer . $this->Lang("mailer_not_supported"));
+                $result = false;
+                break;
+        }
+
+        return $result;
+    }
+    
+    /**
+     * Sends mail using the $Sendmail program.  
+     * @access private
+     * @return bool
+     */
+    function SendmailSend($header, $body) {
+        if ($this->Sender != "")
+            $sendmail = sprintf("%s -oi -f %s -t", $this->Sendmail, $this->Sender);
+        else
+            $sendmail = sprintf("%s -oi -t", $this->Sendmail);
+
+        if(!@$mail = popen($sendmail, "w"))
+        {
+            $this->SetError($this->Lang("execute") . $this->Sendmail);
+            return false;
+        }
+
+        fputs($mail, $header);
+        fputs($mail, $body);
+        
+        $result = pclose($mail) >> 8 & 0xFF;
+        if($result != 0)
+        {
+            $this->SetError($this->Lang("execute") . $this->Sendmail);
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Sends mail using the PHP mail() function.  
+     * @access private
+     * @return bool
+     */
+    function MailSend($header, $body) {
+        $to = "";
+        for($i = 0; $i < count($this->to); $i++)
+        {
+            if($i != 0) { $to .= ", "; }
+            $to .= $this->to[$i][0];
+        }
+
+        if ($this->Sender != "" && strlen(ini_get("safe_mode"))< 1)
+        {
+            $old_from = ini_get("sendmail_from");
+            ini_set("sendmail_from", $this->Sender);
+            $params = sprintf("-oi -f %s", $this->Sender);
+            $rt = @mail($to, $this->EncodeHeader($this->Subject), $body, 
+                        $header, $params);
+        }
+        else
+            $rt = @mail($to, $this->EncodeHeader($this->Subject), $body, $header);
+
+        if (isset($old_from))
+            ini_set("sendmail_from", $old_from);
+
+        if(!$rt)
+        {
+            $this->SetError($this->Lang("instantiate"));
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Sends mail via SMTP using PhpSMTP (Author:
+     * Chris Ryan).  Returns bool.  Returns false if there is a
+     * bad MAIL FROM, RCPT, or DATA input.
+     * @access private
+     * @return bool
+     */
+    function SmtpSend($header, $body) {
+        include_once($this->PluginDir . "class.smtp.php");
+        $error = "";
+        $bad_rcpt = array();
+
+        if(!$this->SmtpConnect())
+            return false;
+
+        $smtp_from = ($this->Sender == "") ? $this->From : $this->Sender;
+        if(!$this->smtp->Mail($smtp_from))
+        {
+            $error = $this->Lang("from_failed") . $smtp_from;
+            $this->SetError($error);
+            $this->smtp->Reset();
+            return false;
+        }
+
+        // Attempt to send attach all recipients
+        for($i = 0; $i < count($this->to); $i++)
+        {
+            if(!$this->smtp->Recipient($this->to[$i][0]))
+                $bad_rcpt[] = $this->to[$i][0];
+        }
+        for($i = 0; $i < count($this->cc); $i++)
+        {
+            if(!$this->smtp->Recipient($this->cc[$i][0]))
+                $bad_rcpt[] = $this->cc[$i][0];
+        }
+        for($i = 0; $i < count($this->bcc); $i++)
+        {
+            if(!$this->smtp->Recipient($this->bcc[$i][0]))
+                $bad_rcpt[] = $this->bcc[$i][0];
+        }
+
+        if(count($bad_rcpt) > 0) // Create error message
+        {
+            //Postfix version 2.3.8-2
+            $smtp_code_error = substr($this->smtp->error['smtp_msg'], 0, 5);
+            //Postfix version 2.1.5-9
+            $array_error = explode(":", $this->smtp->error['smtp_msg']);
+            
+            for($i = 0; $i < count($bad_rcpt); $i++)
+            {
+                if($i != 0) { $error .= ", "; }
+                $error .= $bad_rcpt[$i];
+            }
+            if (($smtp_code_error == '5.7.1') || (trim($array_error[2]) == 'Access denied'))
+            	$error = $this->Lang("not_allowed") . $error;
+            else
+            	$error = $this->Lang("recipients_failed") . $error;
+            $this->SetError($error);
+            $this->smtp->Reset();
+            return false;
+        }
+        $smtpSent = $this->smtp->Data($header . $body);
+        if(!$smtpSent)
+        {
+            $this->SetError($this->Lang("data_not_accepted") .' '. $this->smtp->error['error'] .','. $this->smtp->error['smtp_code'].','. $this->smtp->error['smtp_msg']);
+            $this->smtp->Reset();
+            return false;
+        }
+        if($this->SMTPKeepAlive == true)
+            $this->smtp->Reset();
+        else
+            $this->SmtpClose();
+
+    	if ($this->SaveMessageInFolder){
+			$username = $_SESSION['phpgw_info']['expressomail']['user']['userid'];
+			$password = $_SESSION['phpgw_info']['expressomail']['user']['passwd'];
+			$imap_server = $_SESSION['phpgw_info']['expressomail']['email_server']['imapServer'];
+			$imap_port 	= $_SESSION['phpgw_info']['expressomail']['email_server']['imapPort'];
+			
+			if ($_SESSION['phpgw_info']['expressomail']['email_server']['imapTLSEncryption'] == 'yes')
+			{
+				$imap_options = '/tls/novalidate-cert';
+			}
+			else
+			{
+				$imap_options = '/notls/novalidate-cert';
+			}	 	
+			$mbox_stream = imap_open("{".$imap_server.":".$imap_port.$imap_options."}".$this->SaveMessageInFolder, $username, $password);
+
+			##
+			# @AUTHOR Rodrigo Souza dos Santos
+			# @DATE 2008/09/11
+			# @BRIEF Adding arbitrarily the BCC field. You may need to
+			#        check if this field already exists in the header.
+			##
+			if ( count($this->bcc) > 0 )
+			{
+				$target = stripos($header, 'subject');
+				$header = substr($header, 0, $target) . $this->AddrAppend("Bcc", $this->bcc) . substr($header, $target);
+			}
+		
+			$new_header = str_replace("\n", "\r\n", $header);
+			$new_body = str_replace("\n", "\r\n", $body);
+			
+			if ($this->SaveMessageAsDraft){
+				imap_append($mbox_stream, "{".$imap_server.":".$imap_port."}".$this->SaveMessageInFolder, $new_header . $new_body, "\\Seen \\Draft");
+				return true;
+			}
+			else
+				imap_append($mbox_stream, "{".$imap_server.":".$imap_port."}".$this->SaveMessageInFolder, $new_header . $new_body, "\\Seen");
+    	}    	
+        
+        return $smtpSent;
+    }
+
+    /**
+     * Initiates a connection to an SMTP server.  Returns false if the 
+     * operation failed.
+     * @access private
+     * @return bool
+     */
+    function SmtpConnect() {
+        if($this->smtp == NULL) { $this->smtp = new SMTP(); }
+
+        $this->smtp->do_debug = $this->SMTPDebug;
+        $hosts = explode(";", $this->Host);
+        $index = 0;
+        $connection = ($this->smtp->Connected()); 
+
+        // Retry while there is no connection
+        while($index < count($hosts) && $connection == false)
+        {
+            if(strstr($hosts[$index], ":"))
+                list($host, $port) = explode(":", $hosts[$index]);
+            else
+            {
+                $host = $hosts[$index];
+                $port = $this->Port;
+            }
+
+            if($this->smtp->Connect($host, $port, $this->Timeout))
+            {
+                if ($this->Helo != '')
+                    $this->smtp->Hello($this->Helo);
+                else
+                    $this->smtp->Hello($this->ServerHostname());
+        
+                if($this->SMTPAuth)
+                {
+                    if(!$this->smtp->Authenticate($this->Username, 
+                                                  $this->Password))
+                    {
+                        $this->SetError($this->Lang("authenticate"));
+                        $this->smtp->Reset();
+                        $connection = false;
+                    }
+                }
+                $connection = true;
+            }
+            $index++;
+        }
+        if(!$connection)
+            $this->SetError($this->Lang("connect_host"));
+
+        return $connection;
+    }
+
+    /**
+     * Closes the active SMTP session if one exists.
+     * @return void
+     */
+    function SmtpClose() {
+        if($this->smtp != NULL)
+        {
+            if($this->smtp->Connected())
+            {
+                $this->smtp->Quit();
+                $this->smtp->Close();
+            }
+        }
+    }
+
+    /**
+     * Sets the language for all class error messages.  Returns false 
+     * if it cannot load the language file.  The default language type
+     * is English.
+     * @param string $lang_type Type of language (e.g. Portuguese: "br")
+     * @param string $lang_path Path to the language file directory
+     * @access public
+     * @return bool
+     */
+    function SetLanguage($lang_type, $lang_path = "setup/") {
+        if(file_exists($lang_path.'phpmailer.lang-'.$lang_type.'.php'))
+            include($lang_path.'phpmailer.lang-'.$lang_type.'.php');
+        else if(file_exists($lang_path.'phpmailer.lang-en.php'))
+            include($lang_path.'phpmailer.lang-en.php');
+        else
+        {
+            $this->SetError("Could not load language file");
+            return false;
+        }
+        $this->language = $PHPMAILER_LANG;
+    
+        return true;
+    }
+
+    /////////////////////////////////////////////////
+    // MESSAGE CREATION METHODS
+    /////////////////////////////////////////////////
+
+    /**
+     * Creates recipient headers.  
+     * @access private
+     * @return string
+     */
+    function AddrAppend($type, $addr) {
+        $addr_str = $type . ": ";
+        $addr_str .= $this->AddrFormat($addr[0]);
+        if(count($addr) > 1)
+        {
+            for($i = 1; $i < count($addr); $i++)
+                $addr_str .= ", " . $this->AddrFormat($addr[$i]);
+        }
+        $addr_str .= $this->LE;
+
+        return $addr_str;
+    }
+    
+    /**
+     * Formats an address correctly. 
+     * @access private
+     * @return string
+     */
+    function AddrFormat($addr) {
+        if(empty($addr[1]))
+            $formatted = $addr[0];
+        else
+        {
+            $formatted = $this->EncodeHeader($addr[1], 'phrase') . " <" . 
+                         $addr[0] . ">";
+        }
+
+        return $formatted;
+    }
+
+    /**
+     * Wraps message for use with mailers that do not
+     * automatically perform wrapping and for quoted-printable.
+     * Original written by philippe.  
+     * @access private
+     * @return string
+     */
+    function WrapText($message, $length, $qp_mode = false) {
+        $soft_break = ($qp_mode) ? sprintf(" =%s", $this->LE) : $this->LE;
+
+        $message = $this->FixEOL($message);
+        if (substr($message, -1) == $this->LE)
+            $message = substr($message, 0, -1);
+
+        $line = explode($this->LE, $message);
+        $message = "";
+        for ($i=0 ;$i < count($line); $i++)
+        {
+          $line_part = explode(" ", $line[$i]);
+          $buf = "";
+          for ($e = 0; $e<count($line_part); $e++)
+          {
+              $word = $line_part[$e];
+              if ($qp_mode and (strlen($word) > $length))
+              {
+                $space_left = $length - strlen($buf) - 1;
+                if ($e != 0)
+                {
+                    if ($space_left > 20)
+                    {
+                        $len = $space_left;
+                        if (substr($word, $len - 1, 1) == "=")
+                          $len--;
+                        elseif (substr($word, $len - 2, 1) == "=")
+                          $len -= 2;
+                        $part = substr($word, 0, $len);
+                        $word = substr($word, $len);
+                        $buf .= " " . $part;
+                        $message .= $buf . sprintf("=%s", $this->LE);
+                    }
+                    else
+                    {
+                        $message .= $buf . $soft_break;
+                    }
+                    $buf = "";
+                }
+                while (strlen($word) > 0)
+                {
+                    $len = $length;
+                    if (substr($word, $len - 1, 1) == "=")
+                        $len--;
+                    elseif (substr($word, $len - 2, 1) == "=")
+                        $len -= 2;
+                    $part = substr($word, 0, $len);
+                    $word = substr($word, $len);
+
+                    if (strlen($word) > 0)
+                        $message .= $part . sprintf("=%s", $this->LE);
+                    else
+                        $buf = $part;
+                }
+              }
+              else
+              {
+                $buf_o = $buf;
+                $buf .= ($e == 0) ? $word : (" " . $word); 
+
+                if (strlen($buf) > $length and $buf_o != "")
+                {
+                    $message .= $buf_o . $soft_break;
+                    $buf = $word;
+                }
+              }
+          }
+          $message .= $buf . $this->LE;
+        }
+
+        return $message;
+    }
+    
+    /**
+     * Set the body wrapping.
+     * @access private
+     * @return void
+     */
+    function SetWordWrap() {
+        if($this->WordWrap < 1)
+            return;
+            
+        switch($this->message_type)
+        {
+           case "alt":
+              // fall through
+           case "alt_attachments":
+              $this->AltBody = $this->WrapText($this->AltBody, $this->WordWrap);
+              break;
+           default:
+              $this->Body = $this->WrapText($this->Body, $this->WordWrap);
+              break;
+        }
+    }
+
+    /**
+     * Assembles message header.  
+     * @access private
+     * @return string
+     */
+    function CreateHeader() {
+        $result = "";
+        
+        // Set the boundaries
+        $uniq_id = md5(uniqid(time()));
+        $this->boundary[1] = "b1_" . $uniq_id;
+        $this->boundary[2] = "b2_" . $uniq_id;
+
+        $result .= $this->HeaderLine("Date", $this->RFCDate());
+        if($this->Sender == "")
+            $result .= $this->HeaderLine("Return-Path", trim($this->From));
+        else
+            $result .= $this->HeaderLine("Return-Path", trim($this->Sender));
+        
+        // To be created automatically by mail()
+        if($this->Mailer != "mail")
+        {
+            if(count($this->to) > 0)
+                $result .= $this->AddrAppend("To", $this->to);
+            else if ((count($this->cc) == 0) && (!$this->SaveMessageAsDraft))
+            {
+                $result .= $this->HeaderLine("To", $this->Lang('undisclosed-recipient'));
+            }
+            if(count($this->cc) > 0)
+                $result .= $this->AddrAppend("Cc", $this->cc);
+        }
+
+		if (!$this->SaveMessageAsDraft){
+	        $from = array();
+    	    $from[0][0] = trim($this->From);
+        	$from[0][1] = $this->FromName;
+	        $result .= $this->AddrAppend("From", $from);
+		} 
+		if($this->Sender) {
+			$sender = array();
+			$sender[0][0] = trim($this->Sender);
+        	$sender[0][1] = $this->SenderName;
+        	$result .= $this->AddrAppend("Sender", $sender);
+		}
+
+        // sendmail and mail() extract Bcc from the header before sending
+        if((($this->Mailer == "sendmail") || ($this->Mailer == "mail")) && (count($this->bcc) > 0))
+            $result .= $this->AddrAppend("Bcc", $this->bcc);
+
+        if(count($this->ReplyTo) > 0)
+            $result .= $this->AddrAppend("Reply-to", $this->ReplyTo);
+
+        // mail() sets the subject itself
+        if($this->Mailer != "mail")
+            $result .= $this->HeaderLine("Subject", $this->EncodeHeader(trim($this->Subject)));
+
+        $result .= sprintf("Message-ID: <%s@%s>%s", $uniq_id, $this->ServerHostname(), $this->LE);
+        $result .= $this->HeaderLine("X-Priority", $this->Priority);
+        $result .= $this->HeaderLine("Importance", $this->Importance);
+        $result .= $this->HeaderLine("X-Mailer", "ExpressoMail [version " . $this->Version . "]");
+        
+        if($this->ConfirmReadingTo != "")
+        {
+            $result .= $this->HeaderLine("Disposition-Notification-To", 
+                       "<" . trim($this->ConfirmReadingTo) . ">");
+        }
+
+        // Add custom headers
+        for($index = 0; $index < count($this->CustomHeader); $index++)
+        {
+            $result .= $this->HeaderLine(trim($this->CustomHeader[$index][0]), 
+                       $this->EncodeHeader(trim($this->CustomHeader[$index][1])));
+        }
+        $result .= $this->HeaderLine("MIME-Version", "1.0");
+
+        switch($this->message_type)
+        {
+            case "plain":
+                $result .= $this->HeaderLine("Content-Transfer-Encoding", $this->Encoding);
+                $result .= sprintf("Content-Type: %s; charset=\"%s\"",
+                                    $this->ContentType, $this->CharSet);
+                break;
+            case "attachments":
+                // fall through
+            case "alt_attachments":
+                if($this->InlineImageExists())
+                {
+                    $result .= sprintf("Content-Type: %s;%s\ttype=\"text/html\";%s\tboundary=\"%s\"%s", 
+                                    "multipart/related", $this->LE, $this->LE, 
+                                    $this->boundary[1], $this->LE);
+                }
+                else
+                {
+                    $result .= $this->HeaderLine("Content-Type", "multipart/mixed;");
+                    $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"');
+                }
+                break;
+            case "alt":
+                $result .= $this->HeaderLine("Content-Type", "multipart/alternative;");
+                $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"');
+                break;
+        }
+
+        if($this->Mailer != "mail")
+            $result .= $this->LE.$this->LE;
+
+        return $result;
+    }
+
+    /**
+     * Assembles the message body.  Returns an empty string on failure.
+     * @access private
+     * @return string
+     */
+    function CreateBody() {
+        $result = "";
+
+        $this->SetWordWrap();
+        switch($this->message_type)
+        {
+            case "alt":
+                $result .= $this->GetBoundary($this->boundary[1], "", 
+                                              "text/plain", "");
+                $result .= $this->EncodeString($this->AltBody, $this->Encoding);
+                $result .= $this->LE.$this->LE;
+                $result .= $this->GetBoundary($this->boundary[1], "", 
+                                              "text/html", "");
+                
+                $result .= $this->EncodeString($this->Body, $this->Encoding);
+                $result .= $this->LE.$this->LE;
+    
+                $result .= $this->EndBoundary($this->boundary[1]);
+                break;
+            case "plain":
+                $result .= $this->EncodeString($this->Body, $this->Encoding);
+                break;
+            case "attachments":
+                $result .= $this->GetBoundary($this->boundary[1], "", "", "");
+                $result .= $this->EncodeString($this->Body, $this->Encoding);
+                $result .= $this->LE;
+     
+                $result .= $this->AttachAll();
+                break;
+            case "alt_attachments":
+                $result .= sprintf("--%s%s", $this->boundary[1], $this->LE);
+                $result .= sprintf("Content-Type: %s;%s" .
+                                   "\tboundary=\"%s\"%s",
+                                   "multipart/alternative", $this->LE, 
+                                   $this->boundary[2], $this->LE.$this->LE);
+    
+                // Create text body
+                $result .= $this->GetBoundary($this->boundary[2], "", 
+                                              "text/plain", "") . $this->LE;
+
+                $result .= $this->EncodeString($this->AltBody, $this->Encoding);
+                $result .= $this->LE.$this->LE;
+    
+                // Create the HTML body
+                $result .= $this->GetBoundary($this->boundary[2], "", 
+                                              "text/html", "") . $this->LE;
+    
+                $result .= $this->EncodeString($this->Body, $this->Encoding);
+                $result .= $this->LE.$this->LE;
+
+                $result .= $this->EndBoundary($this->boundary[2]);
+                
+                $result .= $this->AttachAll();
+                break;
+        }
+        if($this->IsError())
+            $result = "";
+
+        return $result;
+    }
+
+    /**
+     * Returns the start of a message boundary.
+     * @access private
+     */
+    function GetBoundary($boundary, $charSet, $contentType, $encoding) {
+        $result = "";
+        if($charSet == "") { $charSet = $this->CharSet; }
+        if($contentType == "") { $contentType = $this->ContentType; }
+        if($encoding == "") { $encoding = $this->Encoding; }
+
+        $result .= $this->TextLine("--" . $boundary);
+        $result .= sprintf("Content-Type: %s; charset = \"%s\"", 
+                            $contentType, $charSet);
+        $result .= $this->LE;
+        $result .= $this->HeaderLine("Content-Transfer-Encoding", $encoding);
+        $result .= $this->LE;
+       
+        return $result;
+    }
+    
+    /**
+     * Returns the end of a message boundary.
+     * @access private
+     */
+    function EndBoundary($boundary) {
+        return $this->LE . "--" . $boundary . "--" . $this->LE; 
+    }
+    
+    /**
+     * Sets the message type.
+     * @access private
+     * @return void
+     */
+    function SetMessageType() {
+        if(count($this->attachment) < 1 && strlen($this->AltBody) < 1)
+            $this->message_type = "plain";
+        else
+        {
+            if(count($this->attachment) > 0)
+                $this->message_type = "attachments";
+            if(strlen($this->AltBody) > 0 && count($this->attachment) < 1)
+                $this->message_type = "alt";
+            if(strlen($this->AltBody) > 0 && count($this->attachment) > 0)
+                $this->message_type = "alt_attachments";
+        }
+    }
+
+    /**
+     * Returns a formatted header line.
+     * @access private
+     * @return string
+     */
+    function HeaderLine($name, $value) {
+        return $name . ": " . $value . $this->LE;
+    }
+
+    /**
+     * Returns a formatted mail line.
+     * @access private
+     * @return string
+     */
+    function TextLine($value) {
+        return $value . $this->LE;
+    }
+
+    /////////////////////////////////////////////////
+    // ATTACHMENT METHODS
+    /////////////////////////////////////////////////
+
+    /**
+     * Adds an attachment from a path on the filesystem.
+     * Returns false if the file could not be found
+     * or accessed.
+     * @param string $path Path to the attachment.
+     * @param string $name Overrides the attachment name.
+     * @param string $encoding File encoding (see $Encoding).
+     * @param string $type File extension (MIME) type.
+     * @return bool
+     */
+    function AddAttachment($path, $name = "", $encoding = "base64", 
+                           $type = "application/octet-stream") {
+        if(!@is_file($path))
+        {
+            $this->SetError($this->Lang("file_access") . $path);
+            return false;
+        }
+
+        $filename = basename($path);
+        if($name == "")
+            $name = $filename;
+
+        $cur = count($this->attachment);
+        $this->attachment[$cur][0] = $path;
+        $this->attachment[$cur][1] = $filename;
+        $this->attachment[$cur][2] = $name;
+        $this->attachment[$cur][3] = $encoding;
+        $this->attachment[$cur][4] = $type;
+        $this->attachment[$cur][5] = false; // isStringAttachment
+        $this->attachment[$cur][6] = "attachment";
+        $this->attachment[$cur][7] = 0;
+
+        return true;
+    }
+
+    /**
+     * Attaches all fs, string, and binary attachments to the message.
+     * Returns an empty string on failure.
+     * @access private
+     * @return string
+     */
+    function AttachAll() {
+        // Return text of body
+        $mime = array();
+
+        // Add all attachments
+        for($i = 0; $i < count($this->attachment); $i++)
+        {
+            // Check for string attachment
+            $bString = $this->attachment[$i][5];
+            if ($bString)
+                $string = $this->attachment[$i][0];
+            else
+                $path = $this->attachment[$i][0];
+
+            $filename    = $this->attachment[$i][1];
+            $name        = $this->attachment[$i][2];
+            $encoding    = $this->attachment[$i][3];
+            $type        = $this->attachment[$i][4];
+            $disposition = $this->attachment[$i][6];
+            $cid         = $this->attachment[$i][7];
+            
+            $mime[] = sprintf("--%s%s", $this->boundary[1], $this->LE);
+            $mime[] = sprintf("Content-Type: %s; name=\"%s\"%s", $type, $name, $this->LE);
+            $mime[] = sprintf("Content-Transfer-Encoding: %s%s", $encoding, $this->LE);
+
+            if($disposition == "inline")
+                $mime[] = sprintf("Content-ID: <%s>%s", $cid, $this->LE);
+
+            $mime[] = sprintf("Content-Disposition: %s; filename=\"%s\"%s", 
+                              $disposition, $name, $this->LE.$this->LE);
+
+            // Encode as string attachment
+            if($bString)
+            {
+                $mime[] = $this->EncodeString($string, $encoding);
+                if($this->IsError()) { return ""; }
+                $mime[] = $this->LE.$this->LE;
+            }
+            else
+            {
+                $mime[] = $this->EncodeFile($path, $encoding);                
+                if($this->IsError()) { return ""; }
+                $mime[] = $this->LE.$this->LE;
+            }
+        }
+
+        $mime[] = sprintf("--%s--%s", $this->boundary[1], $this->LE);
+
+        return join("", $mime);
+    }
+    
+    /**
+     * Encodes attachment in requested format.  Returns an
+     * empty string on failure.
+     * @access private
+     * @return string
+     */
+    function EncodeFile ($path, $encoding = "base64") {
+        if(!@$fd = fopen($path, "rb"))
+        {
+            $this->SetError($this->Lang("file_open") . $path);
+            return "";
+        }
+        $magic_quotes = get_magic_quotes_runtime();
+        set_magic_quotes_runtime(0);
+        $file_buffer = fread($fd, filesize($path));
+        $file_buffer = $this->EncodeString($file_buffer, $encoding);
+        fclose($fd);
+        set_magic_quotes_runtime($magic_quotes);
+
+        return $file_buffer;
+    }
+
+    /**
+     * Encodes string to requested format. Returns an
+     * empty string on failure.
+     * @access private
+     * @return string
+     */
+    function EncodeString ($str, $encoding = "base64") {
+        $encoded = "";
+        switch(strtolower($encoding)) {
+          case "base64":
+              // chunk_split is found in PHP >= 3.0.6
+              $encoded = @chunk_split(base64_encode($str), 76, $this->LE);
+              break;
+          case "7bit":
+          case "8bit":
+              $encoded = $this->FixEOL($str);
+              if (substr($encoded, -(strlen($this->LE))) != $this->LE)
+                $encoded .= $this->LE;
+              break;
+          case "binary":
+              $encoded = $str;
+              break;
+          case "quoted-printable":
+              $encoded = $this->EncodeQP($str);
+              break;
+          default:
+              $this->SetError($this->Lang("encoding") . $encoding);
+              break;
+        }
+        return $encoded;
+    }
+
+    /**
+     * Encode a header string to best of Q, B, quoted or none.  
+     * @access private
+     * @return string
+     */
+    function EncodeHeader ($str, $position = 'text') {
+      $x = 0;
+      
+      switch (strtolower($position)) {
+        case 'phrase':
+          if (!preg_match('/[\200-\377]/', $str)) {
+            // Can't use addslashes as we don't know what value has magic_quotes_sybase.
+            $encoded = addcslashes($str, "\0..\37\177\\\"");
+
+            if (($str == $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str))
+              return ($encoded);
+            else
+              return ("\"$encoded\"");
+          }
+          $x = preg_match_all('/[^\040\041\043-\133\135-\176]/', $str, $matches);
+          break;
+        case 'comment':
+          $x = preg_match_all('/[()"]/', $str, $matches);
+          // Fall-through
+        case 'text':
+        default:
+          $x += preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches);
+          break;
+      }
+
+      if ($x == 0)
+        return ($str);
+
+      $maxlen = 75 - 7 - strlen($this->CharSet);
+      // Try to select the encoding which should produce the shortest output
+      if (strlen($str)/3 < $x) {
+        $encoding = 'B';
+        $encoded = base64_encode($str);
+        $maxlen -= $maxlen % 4;
+        $encoded = trim(chunk_split($encoded, $maxlen, "\n"));
+      } else {
+        $encoding = 'Q';
+        $encoded = $this->EncodeQ($str, $position);
+        $encoded = $this->WrapText($encoded, $maxlen, true);
+        $encoded = str_replace("=".$this->LE, "\n", trim($encoded));
+      }
+
+      $encoded = preg_replace('/^(.*)$/m', " =?".$this->CharSet."?$encoding?\\1?=", $encoded);
+      $encoded = trim(str_replace("\n", $this->LE, $encoded));
+      
+      return $encoded;
+    }
+    
+    /**
+     * Encode string to quoted-printable.  
+     * @access private
+     * @return string
+     */
+    function EncodeQP ($str) {
+        $encoded = $this->FixEOL($str);
+        if (substr($encoded, -(strlen($this->LE))) != $this->LE)
+            $encoded .= $this->LE;
+
+        // Replace every high ascii, control and = characters
+        $encoded = preg_replace('/([\000-\010\013\014\016-\037\075\177-\377])/e',
+                  "'='.sprintf('%02X', ord('\\1'))", $encoded);
+        // Replace every spaces and tabs when it's the last character on a line
+        $encoded = preg_replace("/([\011\040])".$this->LE."/e",
+                  "'='.sprintf('%02X', ord('\\1')).'".$this->LE."'", $encoded);
+
+        // Maximum line length of 76 characters before CRLF (74 + space + '=')
+        $encoded = $this->WrapText($encoded, 74, true);
+		
+        return $encoded;
+    }
+
+    /**
+     * Encode string to q encoding.  
+     * @access private
+     * @return string
+     */
+    function EncodeQ ($str, $position = "text") {
+        // There should not be any EOL in the string
+        $encoded = preg_replace("[\r\n]", "", $str);
+        switch (strtolower($position)) {
+          case "phrase":
+            $encoded = preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded);
+            break;
+          case "comment":
+            $encoded = preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded);
+          case "text":
+          default:
+            // Replace every high ascii, control =, ? and _ characters
+            $encoded = preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e',
+                  "'='.sprintf('%02X', ord('\\1'))", $encoded);
+            break;
+        }
+        
+        // Replace every spaces to _ (more readable than =20)
+        $encoded = str_replace(" ", "_", $encoded);
+
+        return $encoded;
+    }
+
+    /**
+     * Adds a string or binary attachment (non-filesystem) to the list.
+     * This method can be used to attach ascii or binary data,
+     * such as a BLOB record from a database.
+     * @param string $string String attachment data.
+     * @param string $filename Name of the attachment.
+     * @param string $encoding File encoding (see $Encoding).
+     * @param string $type File extension (MIME) type.
+     * @return void
+     */
+    function AddStringAttachment($string, $filename, $encoding = "base64", 
+                                 $type = "application/octet-stream") {
+        // Append to $attachment array
+        $cur = count($this->attachment);
+        $this->attachment[$cur][0] = $string;
+        $this->attachment[$cur][1] = $filename;
+        $this->attachment[$cur][2] = $filename;
+        $this->attachment[$cur][3] = $encoding;
+        $this->attachment[$cur][4] = $type;
+        $this->attachment[$cur][5] = true; // isString
+        $this->attachment[$cur][6] = "attachment";
+        $this->attachment[$cur][7] = 0;
+    }
+    
+    /**
+     * Adds an embedded attachment.  This can include images, sounds, and 
+     * just about any other document.  Make sure to set the $type to an 
+     * image type.  For JPEG images use "image/jpeg" and for GIF images 
+     * use "image/gif".
+     * @param string $path Path to the attachment.
+     * @param string $cid Content ID of the attachment.  Use this to identify 
+     *        the Id for accessing the image in an HTML form.
+     * @param string $name Overrides the attachment name.
+     * @param string $encoding File encoding (see $Encoding).
+     * @param string $type File extension (MIME) type.  
+     * @return bool
+     */
+    function AddEmbeddedImage($path, $cid, $name = "", $encoding = "base64", 
+                              $type = "application/octet-stream") {
+    
+        if(!@is_file($path))
+        {
+            $this->SetError($this->Lang("file_access") . $path);
+            return false;
+        }
+
+        $filename = basename($path);
+        if($name == "")
+            $name = $filename;
+
+        // Append to $attachment array
+        $cur = count($this->attachment);
+        $this->attachment[$cur][0] = $path;
+        $this->attachment[$cur][1] = $filename;
+        $this->attachment[$cur][2] = $name;
+        $this->attachment[$cur][3] = $encoding;
+        $this->attachment[$cur][4] = $type;
+        $this->attachment[$cur][5] = false; // isStringAttachment
+        $this->attachment[$cur][6] = "inline";
+        $this->attachment[$cur][7] = $cid;
+    
+        return true;
+    }
+    
+    /**
+     * Returns true if an inline attachment is present.
+     * @access private
+     * @return bool
+     */
+    function InlineImageExists() {
+        $result = false;
+        for($i = 0; $i < count($this->attachment); $i++)
+        {
+            if($this->attachment[$i][6] == "inline")
+            {
+                $result = true;
+                break;
+            }
+        }
+        
+        return $result;
+    }
+
+    /////////////////////////////////////////////////
+    // MESSAGE RESET METHODS
+    /////////////////////////////////////////////////
+
+    /**
+     * Clears all recipients assigned in the TO array.  Returns void.
+     * @return void
+     */
+    function ClearAddresses() {
+        $this->to = array();
+    }
+
+    /**
+     * Clears all recipients assigned in the CC array.  Returns void.
+     * @return void
+     */
+    function ClearCCs() {
+        $this->cc = array();
+    }
+
+    /**
+     * Clears all recipients assigned in the BCC array.  Returns void.
+     * @return void
+     */
+    function ClearBCCs() {
+        $this->bcc = array();
+    }
+
+    /**
+     * Clears all recipients assigned in the ReplyTo array.  Returns void.
+     * @return void
+     */
+    function ClearReplyTos() {
+        $this->ReplyTo = array();
+    }
+
+    /**
+     * Clears all recipients assigned in the TO, CC and BCC
+     * array.  Returns void.
+     * @return void
+     */
+    function ClearAllRecipients() {
+        $this->to = array();
+        $this->cc = array();
+        $this->bcc = array();
+    }
+
+    /**
+     * Clears all previously set filesystem, string, and binary
+     * attachments.  Returns void.
+     * @return void
+     */
+    function ClearAttachments() {
+        $this->attachment = array();
+    }
+
+    /**
+     * Clears all custom headers.  Returns void.
+     * @return void
+     */
+    function ClearCustomHeaders() {
+        $this->CustomHeader = array();
+    }
+
+
+    /////////////////////////////////////////////////
+    // MISCELLANEOUS METHODS
+    /////////////////////////////////////////////////
+
+    /**
+     * Adds the error message to the error container.
+     * Returns void.
+     * @access private
+     * @return void
+     */
+    function SetError($msg) {
+        $this->error_count++;
+        $this->ErrorInfo = $msg;
+    }
+
+    /**
+     * Returns the proper RFC 822 formatted date. 
+     * @access private
+     * @return string
+     */
+    function RFCDate() {
+        $tz = date("Z");
+        $tzs = ($tz < 0) ? "-" : "+";
+        $tz = abs($tz);
+        $tz = ($tz/3600)*100 + ($tz%3600)/60;
+        $result = sprintf("%s %s%04d", date("D, j M Y H:i:s"), $tzs, $tz);
+
+        return $result;
+    }
+    
+    /**
+     * Returns the appropriate server variable.  Should work with both 
+     * PHP 4.1.0+ as well as older versions.  Returns an empty string 
+     * if nothing is found.
+     * @access private
+     * @return mixed
+     */
+    function ServerVar($varName) {
+        global $HTTP_SERVER_VARS;
+        global $HTTP_ENV_VARS;
+
+        if(!isset($_SERVER))
+        {
+            $_SERVER = $HTTP_SERVER_VARS;
+            if(!isset($_SERVER["REMOTE_ADDR"]))
+                $_SERVER = $HTTP_ENV_VARS; // must be Apache
+        }
+        
+        if(isset($_SERVER[$varName]))
+            return $_SERVER[$varName];
+        else
+            return "";
+    }
+
+    /**
+     * Returns the server hostname or 'localhost.localdomain' if unknown.
+     * @access private
+     * @return string
+     */
+    function ServerHostname() {
+        if ($this->Hostname != "")
+            $result = $this->Hostname;
+        elseif ($this->ServerVar('SERVER_NAME') != "")
+            $result = $this->ServerVar('SERVER_NAME');
+        else
+            $result = "localhost.localdomain";
+
+        return $result;
+    }
+
+    /**
+     * Returns a message in the appropriate language.
+     * @access private
+     * @return string
+     */
+    function Lang($key) {
+        if(count($this->language) < 1)
+            $this->SetLanguage("br"); // set the default language
+    
+        if(isset($this->language[$key]))
+            return $this->language[$key];
+        else
+            return "Language string failed to load: " . $key;
+    }
+    
+    /**
+     * Returns true if an error occurred.
+     * @return bool
+     */
+    function IsError() {
+        return ($this->error_count > 0);
+    }
+
+    /**
+     * Changes every end of line from CR or LF to CRLF.  
+     * @access private
+     * @return string
+     */
+    function FixEOL($str) {
+        $str = str_replace("\r\n", "\n", $str);
+        $str = str_replace("\r", "\n", $str);
+        $str = str_replace("\n", $this->LE, $str);
+        return $str;
+    }
+
+    /**
+     * Adds a custom header. 
+     * @return void
+     */
+    function AddCustomHeader($custom_header) {
+        $this->CustomHeader[] = explode(":", $custom_header, 2);
+    }
+}
+
+?>
Index: tags/expressoMail1_2/1.234/inc/class.smtp.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/class.smtp.php	(revision 756)
+++ tags/expressoMail1_2/1.234/inc/class.smtp.php	(revision 756)
@@ -0,0 +1,1051 @@
+<?php
+////////////////////////////////////////////////////
+// SMTP - PHP SMTP class
+//
+// Version 1.02
+//
+// Define an SMTP class that can be used to connect
+// and communicate with any SMTP server. It implements
+// all the SMTP functions defined in RFC821 except TURN.
+//
+// Author: Chris Ryan
+//
+// License: LGPL, see LICENSE
+////////////////////////////////////////////////////
+
+/**
+ * SMTP is rfc 821 compliant and implements all the rfc 821 SMTP
+ * commands except TURN which will always return a not implemented
+ * error. SMTP also provides some utility methods for sending mail
+ * to an SMTP server.
+ * @package PHPMailer
+ * @author Chris Ryan
+ */
+class SMTP
+{
+    /**
+     *  SMTP server port
+     *  @var int
+     */
+    var $SMTP_PORT = 25;
+    
+    /**
+     *  SMTP reply line ending
+     *  @var string
+     */
+    var $CRLF = "\r\n";
+    
+    /**
+     *  Sets whether debugging is turned on
+     *  @var bool
+     */
+    var $do_debug;       # the level of debug to perform
+
+    /**#@+
+     * @access private
+     */
+    var $smtp_conn;      # the socket to the server
+    var $error;          # error if any on the last call
+    var $helo_rply;      # the reply the server sent to us for HELO
+    /**#@-*/
+
+    /**
+     * Initialize the class so that the data is in a known state.
+     * @access public
+     * @return void
+     */
+    function SMTP() {
+        $this->smtp_conn = 0;
+        $this->error = null;
+        $this->helo_rply = null;
+
+        $this->do_debug = 0;
+    }
+
+    /*************************************************************
+     *                    CONNECTION FUNCTIONS                  *
+     ***********************************************************/
+
+    /**
+     * Connect to the server specified on the port specified.
+     * If the port is not specified use the default SMTP_PORT.
+     * If tval is specified then a connection will try and be
+     * established with the server for that number of seconds.
+     * If tval is not specified the default is 30 seconds to
+     * try on the connection.
+     *
+     * SMTP CODE SUCCESS: 220
+     * SMTP CODE FAILURE: 421
+     * @access public
+     * @return bool
+     */
+    function Connect($host,$port=0,$tval=30) {
+        # set the error val to null so there is no confusion
+        $this->error = null;
+
+        # make sure we are __not__ connected
+        if($this->connected()) {
+            # ok we are connected! what should we do?
+            # for now we will just give an error saying we
+            # are already connected
+            $this->error =
+                array("error" => "Already connected to a server");
+            return false;
+        }
+
+        if(empty($port)) {
+            $port = $this->SMTP_PORT;
+        }
+
+        #connect to the smtp server
+        $this->smtp_conn = fsockopen($host,    # the host of the server
+                                     $port,    # the port to use
+                                     $errno,   # error number if any
+                                     $errstr,  # error message if any
+                                     $tval);   # give up after ? secs
+        # verify we connected properly
+        if(empty($this->smtp_conn)) {
+            $this->error = array("error" => "Failed to connect to server",
+                                 "errno" => $errno,
+                                 "errstr" => $errstr);
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": $errstr ($errno)" . $this->CRLF;
+            }
+            return false;
+        }
+
+        # sometimes the SMTP server takes a little longer to respond
+        # so we will give it a longer timeout for the first read
+        // Windows still does not have support for this timeout function
+        if(substr(PHP_OS, 0, 3) != "WIN")
+           socket_set_timeout($this->smtp_conn, $tval, 0);
+
+        # get any announcement stuff
+        $announce = $this->get_lines();
+
+        # set the timeout  of any socket functions at 1/10 of a second
+        //if(function_exists("socket_set_timeout"))
+        //   socket_set_timeout($this->smtp_conn, 0, 100000);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $announce;
+        }
+
+        return true;
+    }
+
+    /**
+     * Performs SMTP authentication.  Must be run after running the
+     * Hello() method.  Returns true if successfully authenticated.
+     * @access public
+     * @return bool
+     */
+    function Authenticate($username, $password) {
+        // Start authentication
+        fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($code != 334) {
+            $this->error =
+                array("error" => "AUTH not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+
+        // Send encoded username
+        fputs($this->smtp_conn, base64_encode($username) . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($code != 334) {
+            $this->error =
+                array("error" => "Username not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+
+        // Send encoded password
+        fputs($this->smtp_conn, base64_encode($password) . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($code != 235) {
+            $this->error =
+                array("error" => "Password not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Returns true if connected to a server otherwise false
+     * @access private
+     * @return bool
+     */
+    function Connected() {
+        if(!empty($this->smtp_conn)) {
+            $sock_status = socket_get_status($this->smtp_conn);
+            if($sock_status["eof"]) {
+                # hmm this is an odd situation... the socket is
+                # valid but we aren't connected anymore
+                if($this->do_debug >= 1) {
+                    echo "SMTP -> NOTICE:" . $this->CRLF .
+                         "EOF caught while checking if connected";
+                }
+                $this->Close();
+                return false;
+            }
+            return true; # everything looks good
+        }
+        return false;
+    }
+
+    /**
+     * Closes the socket and cleans up the state of the class.
+     * It is not considered good to use this function without
+     * first trying to use QUIT.
+     * @access public
+     * @return void
+     */
+    function Close() {
+        $this->error = null; # so there is no confusion
+        $this->helo_rply = null;
+        if(!empty($this->smtp_conn)) {
+            # close the connection and cleanup
+            fclose($this->smtp_conn);
+            $this->smtp_conn = 0;
+        }
+    }
+
+
+    /***************************************************************
+     *                        SMTP COMMANDS                       *
+     *************************************************************/
+
+    /**
+     * Issues a data command and sends the msg_data to the server
+     * finializing the mail transaction. $msg_data is the message
+     * that is to be send with the headers. Each header needs to be
+     * on a single line followed by a <CRLF> with the message headers
+     * and the message body being seperated by and additional <CRLF>.
+     *
+     * Implements rfc 821: DATA <CRLF>
+     *
+     * SMTP CODE INTERMEDIATE: 354
+     *     [data]
+     *     <CRLF>.<CRLF>
+     *     SMTP CODE SUCCESS: 250
+     *     SMTP CODE FAILURE: 552,554,451,452
+     * SMTP CODE FAILURE: 451,554
+     * SMTP CODE ERROR  : 500,501,503,421
+     * @access public
+     * @return bool
+     */
+    function Data($msg_data) {    	
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Data() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"DATA" . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 354) {
+            $this->error =
+                array("error" => "DATA command not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+
+        # the server is ready to accept data!
+        # according to rfc 821 we should not send more than 1000
+        # including the CRLF
+        # characters on a single line so we will break the data up
+        # into lines by \r and/or \n then if needed we will break
+        # each of those into smaller lines to fit within the limit.
+        # in addition we will be looking for lines that start with
+        # a period '.' and append and additional period '.' to that
+        # line. NOTE: this does not count towards are limit.
+
+        # normalize the line breaks so we know the explode works
+        $msg_data = str_replace("\r\n","\n",$msg_data);
+        $msg_data = str_replace("\r","\n",$msg_data);
+        $lines = explode("\n",$msg_data);
+
+        # we need to find a good way to determine is headers are
+        # in the msg_data or if it is a straight msg body
+        # currently I'm assuming rfc 822 definitions of msg headers
+        # and if the first field of the first line (':' sperated)
+        # does not contain a space then it _should_ be a header
+        # and we can process all lines before a blank "" line as
+        # headers.
+        $field = substr($lines[0],0,strpos($lines[0],":"));
+        $in_headers = false;
+        if(!empty($field) && !strstr($field," ")) {
+            $in_headers = true;
+        }
+
+        $max_line_length = 998; # used below; set here for ease in change
+
+        while(list(,$line) = @each($lines)) {
+            $lines_out = null;
+            if($line == "" && $in_headers) {
+                $in_headers = false;
+            }
+            # ok we need to break this line up into several
+            # smaller lines
+            while(strlen($line) > $max_line_length) {
+                $pos = strrpos(substr($line,0,$max_line_length)," ");
+
+                # Patch to fix DOS attack
+                if(!$pos) {
+                    $pos = $max_line_length - 1;
+                }
+
+                $lines_out[] = substr($line,0,$pos);
+                $line = substr($line,$pos + 1);
+                # if we are processing headers we need to
+                # add a LWSP-char to the front of the new line
+                # rfc 822 on long msg headers
+                if($in_headers) {
+                    $line = "\t" . $line;
+                }
+            }
+            $lines_out[] = $line;
+			$messageCode = "";
+            # now send the lines to the server
+            while(list(,$line_out) = @each($lines_out)) {
+                if(strlen($line_out) > 0)
+                {
+                    if(substr($line_out, 0, 1) == ".") {
+                        $line_out = "." . $line_out;
+                    }
+                }
+                fputs($this->smtp_conn,$line_out . $this->CRLF);
+            }
+        }
+		
+        # ok all the message data has been sent so lets get this
+        # over with aleady
+        fputs($this->smtp_conn, $this->CRLF . "." . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250) {
+            $this->error =
+                array("error" => "DATA not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+        else {
+        	// Response from SMTP => "250 2.0.0 Ok: queued as AAAAAAAAAA"
+        	$idx = strcspn($rply,"as");
+        	$message_id = substr($rply,$idx+3);
+        	// $message_id = AAAAAAAAAA
+        	return $message_id ? $message_id : true;
+        }
+    }
+
+    /**
+     * Expand takes the name and asks the server to list all the
+     * people who are members of the _list_. Expand will return
+     * back and array of the result or false if an error occurs.
+     * Each value in the array returned has the format of:
+     *     [ <full-name> <sp> ] <path>
+     * The definition of <path> is defined in rfc 821
+     *
+     * Implements rfc 821: EXPN <SP> <string> <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250
+     * SMTP CODE FAILURE: 550
+     * SMTP CODE ERROR  : 500,501,502,504,421
+     * @access public
+     * @return string array
+     */
+    function Expand($name) {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Expand() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"EXPN " . $name . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250) {
+            $this->error =
+                array("error" => "EXPN not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+
+        # parse the reply and place in our array to return to user
+        $entries = explode($this->CRLF,$rply);
+        while(list(,$l) = @each($entries)) {
+            $list[] = substr($l,4);
+        }
+
+        return $list;
+    }
+
+    /**
+     * Sends the HELO command to the smtp server.
+     * This makes sure that we and the server are in
+     * the same known state.
+     *
+     * Implements from rfc 821: HELO <SP> <domain> <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250
+     * SMTP CODE ERROR  : 500, 501, 504, 421
+     * @access public
+     * @return bool
+     */
+    function Hello($host="") {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Hello() without being connected");
+            return false;
+        }
+
+        # if a hostname for the HELO wasn't specified determine
+        # a suitable one to send
+        if(empty($host)) {
+            # we need to determine some sort of appopiate default
+            # to send to the server
+            $host = "localhost";
+        }
+
+        // Send extended hello first (RFC 2821)
+        if(!$this->SendHello("EHLO", $host))
+        {
+            if(!$this->SendHello("HELO", $host))
+                return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Sends a HELO/EHLO command.
+     * @access private
+     * @return bool
+     */
+    function SendHello($hello, $host) {
+        fputs($this->smtp_conn, $hello . " " . $host . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER: " . $this->CRLF . $rply;
+        }
+
+        if($code != 250) {
+            $this->error =
+                array("error" => $hello . " not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+
+        $this->helo_rply = $rply;
+        
+        return true;
+    }
+
+    /**
+     * Gets help information on the keyword specified. If the keyword
+     * is not specified then returns generic help, ussually contianing
+     * A list of keywords that help is available on. This function
+     * returns the results back to the user. It is up to the user to
+     * handle the returned data. If an error occurs then false is
+     * returned with $this->error set appropiately.
+     *
+     * Implements rfc 821: HELP [ <SP> <string> ] <CRLF>
+     *
+     * SMTP CODE SUCCESS: 211,214
+     * SMTP CODE ERROR  : 500,501,502,504,421
+     * @access public
+     * @return string
+     */
+    function Help($keyword="") {
+        $this->error = null; # to avoid confusion
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Help() without being connected");
+            return false;
+        }
+
+        $extra = "";
+        if(!empty($keyword)) {
+            $extra = " " . $keyword;
+        }
+
+        fputs($this->smtp_conn,"HELP" . $extra . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 211 && $code != 214) {
+            $this->error =
+                array("error" => "HELP not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+
+        return $rply;
+    }
+
+    /**
+     * Starts a mail transaction from the email address specified in
+     * $from. Returns true if successful or false otherwise. If True
+     * the mail transaction is started and then one or more Recipient
+     * commands may be called followed by a Data command.
+     *
+     * Implements rfc 821: MAIL <SP> FROM:<reverse-path> <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250
+     * SMTP CODE SUCCESS: 552,451,452
+     * SMTP CODE SUCCESS: 500,501,421
+     * @access public
+     * @return bool
+     */
+    function Mail($from) {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Mail() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"MAIL FROM:<" . $from . ">" . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250) {
+            $this->error =
+                array("error" => "MAIL not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Sends the command NOOP to the SMTP server.
+     *
+     * Implements from rfc 821: NOOP <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250
+     * SMTP CODE ERROR  : 500, 421
+     * @access public
+     * @return bool
+     */
+    function Noop() {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Noop() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"NOOP" . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250) {
+            $this->error =
+                array("error" => "NOOP not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Sends the quit command to the server and then closes the socket
+     * if there is no error or the $close_on_error argument is true.
+     *
+     * Implements from rfc 821: QUIT <CRLF>
+     *
+     * SMTP CODE SUCCESS: 221
+     * SMTP CODE ERROR  : 500
+     * @access public
+     * @return bool
+     */
+    function Quit($close_on_error=true) {
+        $this->error = null; # so there is no confusion
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Quit() without being connected");
+            return false;
+        }
+
+        # send the quit command to the server
+        fputs($this->smtp_conn,"quit" . $this->CRLF);
+
+        # get any good-bye messages
+        $byemsg = $this->get_lines();
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $byemsg;
+        }
+
+        $rval = true;
+        $e = null;
+
+        $code = substr($byemsg,0,3);
+        if($code != 221) {
+            # use e as a tmp var cause Close will overwrite $this->error
+            $e = array("error" => "SMTP server rejected quit command",
+                       "smtp_code" => $code,
+                       "smtp_rply" => substr($byemsg,4));
+            $rval = false;
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $e["error"] . ": " .
+                         $byemsg . $this->CRLF;
+            }
+        }
+
+        if(empty($e) || $close_on_error) {
+            $this->Close();
+        }
+
+        return $rval;
+    }
+
+    /**
+     * Sends the command RCPT to the SMTP server with the TO: argument of $to.
+     * Returns true if the recipient was accepted false if it was rejected.
+     *
+     * Implements from rfc 821: RCPT <SP> TO:<forward-path> <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250,251
+     * SMTP CODE FAILURE: 550,551,552,553,450,451,452
+     * SMTP CODE ERROR  : 500,501,503,421
+     * @access public
+     * @return bool
+     */
+    function Recipient($to) {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Recipient() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"RCPT TO:<" . $to . ">" . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250 && $code != 251) {
+            $this->error =
+                array("error" => "RCPT not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Sends the RSET command to abort and transaction that is
+     * currently in progress. Returns true if successful false
+     * otherwise.
+     *
+     * Implements rfc 821: RSET <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250
+     * SMTP CODE ERROR  : 500,501,504,421
+     * @access public
+     * @return bool
+     */
+    function Reset() {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Reset() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"RSET" . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250) {
+            $this->error =
+                array("error" => "RSET failed",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Starts a mail transaction from the email address specified in
+     * $from. Returns true if successful or false otherwise. If True
+     * the mail transaction is started and then one or more Recipient
+     * commands may be called followed by a Data command. This command
+     * will send the message to the users terminal if they are logged
+     * in.
+     *
+     * Implements rfc 821: SEND <SP> FROM:<reverse-path> <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250
+     * SMTP CODE SUCCESS: 552,451,452
+     * SMTP CODE SUCCESS: 500,501,502,421
+     * @access public
+     * @return bool
+     */
+    function Send($from) {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Send() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"SEND FROM:" . $from . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250) {
+            $this->error =
+                array("error" => "SEND not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Starts a mail transaction from the email address specified in
+     * $from. Returns true if successful or false otherwise. If True
+     * the mail transaction is started and then one or more Recipient
+     * commands may be called followed by a Data command. This command
+     * will send the message to the users terminal if they are logged
+     * in and send them an email.
+     *
+     * Implements rfc 821: SAML <SP> FROM:<reverse-path> <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250
+     * SMTP CODE SUCCESS: 552,451,452
+     * SMTP CODE SUCCESS: 500,501,502,421
+     * @access public
+     * @return bool
+     */
+    function SendAndMail($from) {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                "error" => "Called SendAndMail() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"SAML FROM:" . $from . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250) {
+            $this->error =
+                array("error" => "SAML not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Starts a mail transaction from the email address specified in
+     * $from. Returns true if successful or false otherwise. If True
+     * the mail transaction is started and then one or more Recipient
+     * commands may be called followed by a Data command. This command
+     * will send the message to the users terminal if they are logged
+     * in or mail it to them if they are not.
+     *
+     * Implements rfc 821: SOML <SP> FROM:<reverse-path> <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250
+     * SMTP CODE SUCCESS: 552,451,452
+     * SMTP CODE SUCCESS: 500,501,502,421
+     * @access public
+     * @return bool
+     */
+    function SendOrMail($from) {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                "error" => "Called SendOrMail() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"SOML FROM:" . $from . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250) {
+            $this->error =
+                array("error" => "SOML not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * This is an optional command for SMTP that this class does not
+     * support. This method is here to make the RFC821 Definition
+     * complete for this class and __may__ be implimented in the future
+     *
+     * Implements from rfc 821: TURN <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250
+     * SMTP CODE FAILURE: 502
+     * SMTP CODE ERROR  : 500, 503
+     * @access public
+     * @return bool
+     */
+    function Turn() {
+        $this->error = array("error" => "This method, TURN, of the SMTP ".
+                                        "is not implemented");
+        if($this->do_debug >= 1) {
+            echo "SMTP -> NOTICE: " . $this->error["error"] . $this->CRLF;
+        }
+        return false;
+    }
+
+    /**
+     * Verifies that the name is recognized by the server.
+     * Returns false if the name could not be verified otherwise
+     * the response from the server is returned.
+     *
+     * Implements rfc 821: VRFY <SP> <string> <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250,251
+     * SMTP CODE FAILURE: 550,551,553
+     * SMTP CODE ERROR  : 500,501,502,421
+     * @access public
+     * @return int
+     */
+    function Verify($name) {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Verify() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"VRFY " . $name . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250 && $code != 251) {
+            $this->error =
+                array("error" => "VRFY failed on name '$name'",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+        return $rply;
+    }
+
+    /*******************************************************************
+     *                       INTERNAL FUNCTIONS                       *
+     ******************************************************************/
+
+    /**
+     * Read in as many lines as possible
+     * either before eof or socket timeout occurs on the operation.
+     * With SMTP we can tell if we have more lines to read if the
+     * 4th character is '-' symbol. If it is a space then we don't
+     * need to read anything else.
+     * @access private
+     * @return string
+     */
+    function get_lines() {
+        $data = "";
+        while($str = fgets($this->smtp_conn,515)) {
+            if($this->do_debug >= 4) {
+                echo "SMTP -> get_lines(): \$data was \"$data\"" .
+                         $this->CRLF;
+                echo "SMTP -> get_lines(): \$str is \"$str\"" .
+                         $this->CRLF;
+            }
+            $data .= $str;
+            if($this->do_debug >= 4) {
+                echo "SMTP -> get_lines(): \$data is \"$data\"" . $this->CRLF;
+            }
+            # if the 4th character is a space then we are done reading
+            # so just break the loop
+            if(substr($str,3,1) == " ") { break; }
+        }
+        return $data;
+    }
+
+}
+
+
+ ?>
Index: tags/expressoMail1_2/1.234/inc/show_user_photo.php
===================================================================
--- tags/expressoMail1_2/1.234/inc/show_user_photo.php	(revision 175)
+++ tags/expressoMail1_2/1.234/inc/show_user_photo.php	(revision 175)
@@ -0,0 +1,64 @@
+<?php
+	function ldapRebind($ldap_connection, $ldap_url)
+	{
+		@ldap_bind($ldap_connection, $_SESSION['phpgw_info']['expressomail']['ldap_server']['acc'],$_SESSION['phpgw_info']['expressomail']['ldap_server']['pw']);
+	}
+
+	if ($_SESSION['phpgw_info']['expressomail']['user']['account_lid'] == '')
+		exit;
+	
+	$mail = $_GET['mail'];
+	
+	if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$", $mail))
+		exit;
+	
+	$ldap_host 	= $_SESSION['phpgw_info']['expressomail']['ldap_server']['host'];
+	$ldap_context = $_SESSION['phpgw_info']['expressomail']['ldap_server']['dn'];
+	
+	$ldap_conn=ldap_connect($ldap_host);
+	ldap_set_option($ldap_conn, LDAP_OPT_PROTOCOL_VERSION, 3);
+	ldap_set_option($ldap_conn, LDAP_OPT_REFERRALS, 1);
+	ldap_set_rebind_proc($ldap_conn, ldapRebind);
+	
+	$r=ldap_bind($ldap_conn, $_SESSION['phpgw_info']['expressomail']['ldap_server']['acc'],$_SESSION['phpgw_info']['expressomail']['ldap_server']['pw']);
+	
+	if (!$r)
+	{
+		echo 'Sem BIND: ' . ldap_error ( $ldap_conn );
+		exit;
+	}
+
+	$justthese = array("jpegPhoto");
+	$filter="(mail=$mail)";
+	$search=ldap_search($ldap_conn, $ldap_context, $filter, $justthese);
+
+	$entry = ldap_first_entry($ldap_conn, $search);
+	$contact = ldap_get_attributes($ldap_conn, $entry);
+	
+	if($contact['jpegPhoto'])
+	{
+		$contact['jpegPhoto'] = ldap_get_values_len ($ldap_conn, $entry, "jpegPhoto");
+		$image = imagecreatefromstring ($contact['jpegPhoto'][0]); 
+	}
+	else
+	{
+		$loadFile = "../templates/default/images/photo.png";
+		$image = imagecreatefrompng($loadFile);
+	}
+	
+	header("Content-Type: image/jpeg");
+	
+ 	$pic = $image;
+	if ($pic)
+	{
+		$width = imagesx($pic);
+		$height = imagesy($pic);
+		$twidth = 60; # width of the thumb 160 pixel
+		$theight = $twidth * $height / $width; # calculate height
+		$thumb = imagecreatetruecolor ($twidth, $theight);
+		imagecopyresampled($thumb, $pic, 0, 0, 0, 0,$twidth, $theight, $width, $height); # resize image into thumb
+		imagejpeg($thumb,"",80); # Thumbnail as JPEG
+	}
+														    
+	ldap_close($ldap_conn);
+?>
Index: tags/expressoMail1_2/1.234/js/search.js
===================================================================
--- tags/expressoMail1_2/1.234/js/search.js	(revision 845)
+++ tags/expressoMail1_2/1.234/js/search.js	(revision 845)
@@ -0,0 +1,846 @@
+/**************************************************************************\
+ Início 
+\**************************************************************************/
+	function searchE()
+	{
+		this.searchW   = new Array;
+		this.name_box_search = "";
+		this.all_boxes = new Array;
+		this.type = "";
+		this.fields = new Array("_ass","_de","_body","_para","_cc","_cco");
+	}
+	
+	//Monta os forms dentro da janela;
+	searchE.prototype.showForms = function(value){
+		// Principal
+		if(!Element("window_search")) {
+			var form_search = document.createElement("DIV");
+			form_search.style.visibility = 'hidden';
+			form_search.style.top = '0px';
+			form_search.style.left = '0px';
+			form_search.id = "window_search";
+			document.body.appendChild(form_search);			
+		}
+		
+		// Pesquisa
+		if(!Element("div_form_search")){
+			var div_form_search = document.createElement("DIV");
+			div_form_search.id = "div_form_search";
+			div_form_search.style.position = "absolute";
+			div_form_search.style.left = "10px";
+			div_form_search.style.top  = "10px";
+			div_form_search.style.width = "635px";
+			div_form_search.style.height = "200px";
+			div_form_search.style.borderStyle = "outset";
+			div_form_search.style.borderColor = "black";
+			div_form_search.style.borderWidth = "1px";
+			div_form_search.style.overflow = "hidden";
+			div_form_search.innerHTML = "";
+			var call_form_search = EsearchE.mount_form();
+			div_form_search.appendChild(call_form_search);
+			form_search.appendChild(div_form_search);
+
+		}	
+		
+		if(!Element("div_button_search")){
+			var div_button_search    = document.createElement("DIV");
+				div_button_search.id = "div_button_search";
+				div_button_search.style.position = "absolute";
+				div_button_search.style.left = "10px";
+				div_button_search.style.top = "223px";
+				div_button_search.style.width = "600px";
+				div_button_search.style.height = "25px";
+				div_button_search.innerHTML = "<table border='0' width='50%' cellpadding='0' cellspacing='0' align='right'>"+
+											  "<tr>"+
+											  "<td><input type='button' value=" + get_lang('Search') + " onclick='EsearchE.func_search()'></td>"+
+											  "<td><input type='button' value=" + get_lang('Clean') + " onclick='EsearchE.func_clean()'></td>"+
+											  "<td><input type='button' value=" + get_lang('Close') + " onclick='EsearchE.func_close(\"hidden\")'></td>"+
+											  "</tr>"+
+											  "</table>";
+				form_search.appendChild(div_button_search);
+		}
+		
+		if(!Element("table_layer")){
+			var table_layer    = "";
+		}
+		
+		if(value == "")
+			EsearchE.showWindow(Element("window_search"));
+	
+		// Cria as caixas postais;
+		EsearchE.mount_folders();
+
+		if(value){
+			Element("check_all_msg").checked = true;
+			EsearchE.all_mailboxes();
+			EsearchE.func_search(value);
+		}
+
+	}
+	
+	//Form
+	searchE.prototype.mount_form = function(value){
+		var form_sch = document.createElement("FORM");
+		form_sch.id  = "form_sch";
+		form_sch.innerHTML = "<table id='table_princ' border='0' cellpading='0' cellspacing='0' align='center'>"+
+						     "<tr>"+
+						     "<td colspan='2'><b>" + get_lang('Inform your search in the text fields') + " :</b></td>"+
+						     "<td rowspan='7'>&nbsp"+
+						     "</td>"+
+						     "<td rowspan='8'>"+
+						     "<table border='0' cellpading='0' cellspacing='0'>"+
+						     "<tr>"+
+						     "<td colspan='3' valign='top'>&nbsp;<b>" + get_lang('Search the messages in these folders') + " :</b></td>"+
+						     "</tr>"+
+						     "<tr>"+
+						     "<td valign='top'><div id='folders' style='width:160px; height:150px'></div></td>"+
+						     "<td>"+
+						     "<input type='button' id='incluir' name='incluir' value='>>' onclick='EsearchE.add_mailboxes()'><br>"+
+						     "<input type='button' id='excluir' name='excluir' value='<<' onclick='EsearchE.del_mailboxes()'></td>"+
+						     "</td>"+
+						     "<td><select multiple id='sel_search_nm_box1' name='sel_search_nm_box1' size='10' style='width:160px'></select></td>"+
+						     "</tr>"+
+						     "<tr>"+
+						     "<td valign='top'><input type='checkBox' id='check_all_msg' name='check_all_msg' onclick='EsearchE.all_mailboxes()'><b>" + get_lang('In all the folders') + "</b></td>"+
+						     "</tr>"+
+						     "</table>"+
+						     "</td>"+
+						     "</tr>"+
+						     "<tr>"+
+						     "<td align='right'>" + get_lang('From') + " .: </td>"+
+						     "<td><input type='text' id='txt_de' size='20'></td>"+
+						     "</tr>"+
+						     "<tr>"+
+						     "<td align='right'>" + get_lang('To') + ".: </td>"+
+						     "<td><input type='text' id='txt_para' size='20'></td>"+
+						     "</tr>"+						     
+						     "<tr>"+
+						     "<td align='right'>" + get_lang('Cc') + " .: </td>"+
+						     "<td><input type='text' id='txt_cc' size='20'></td>"+
+						     "</tr>"+
+						     "<tr>"+
+						     "<td align='right'>" + get_lang('Subject') + " .: </td>"+
+						     "<td><input type='text' id='txt_ass' size='20'></td>"+
+						     "</tr>"+
+						     "<tr>"+
+ 							 "<td align='right'>" + get_lang('Message body') + " .:</td>"+
+						     "<td><input type='text' id='txt_body' size='20'></td>"+
+						     "</tr>"+
+						     "</table>";
+		return form_sch;
+	}
+
+	// Pastas;
+	searchE.prototype.mount_folders = function(){
+		connector.loadScript("TreeS");
+
+		if( Element("div_folders_search") == null){
+			var div_folders = document.createElement("DIV");
+				div_folders.id = "div_folders_search";
+				div_folders.style.width = "155px";
+				div_folders.style.height = "152px";
+				div_folders.style.borderStyle = "outset";
+				div_folders.style.borderColor = "black";
+				div_folders.style.borderWidth = "1px";
+				div_folders.style.background  = "#F7F7F7";
+				div_folders.style.overflow = "auto";
+				div_folders.innerHTML = "";
+				var dest_div = Element("folders");
+				dest_div.appendChild(div_folders);
+		}		
+		ttree.make_tree(folders,"div_folders_search","_folders_tree_search","","","","");
+	}
+	
+	//This func returns the most recent date
+	function date_comp(a,b)
+	{
+		var data1 = a.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g);
+		data1 = data1[0].substr(0, data1[0].indexOf('--'))
+		with ( data1 ) 
+			data1 = Date.UTC(substr(6), substr(3, 2), substr(0, 2));
+		var data2 = b.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g);
+		data2 = data2[0].substr(0, data2[0].indexOf('--'))
+		with ( data2 )
+			data2 = Date.UTC(substr(6), substr(3, 2), substr(0, 2));
+		return data2 - data1;
+	}
+	function date_comp_reverse(a,b)
+	{
+		return date_comp(b,a);
+	}
+	
+	function box_comp(a,b)
+	{
+	var compare = [];
+	compare[0] = a.substr(0, a.indexOf('--'));
+	compare[0] = compare[0].toLowerCase();
+	var temp=compare[0];
+	compare[1] = b.substr(0, b.indexOf('--'))
+	compare[1] = compare[1].toLowerCase();
+	compare.sort();
+	if (temp != compare[0])
+		return +1;
+	else
+		return -1;
+	}
+	function box_comp_reverse(a,b)
+	{
+		return box_comp(b,a);
+	}
+
+	function who_comp(a,b)
+	{
+	var compare = [];
+	compare[0] = a.substr(a.indexOf('--')+2);
+	compare[0] = compare[0].toLowerCase();
+	var temp=compare[0];
+	compare[1] = b.substr(b.indexOf('--')+2);
+	compare[1] = compare[1].toLowerCase();
+	compare.sort();
+	if (temp != compare[0])
+		return +1;
+	else
+		return -1;
+	}
+	function who_comp_reverse(a,b)
+	{
+		return who_comp(b,a);
+	}
+
+	function subject_comp(a,b)
+	{
+	var compare = [];
+	compare[0] = a.substr(a.indexOf('--')+2);
+	compare[0] = compare[0].substr(compare[0].indexOf('--')+2);
+	compare[0] = compare[0].toLowerCase();
+	var temp=compare[0];
+	compare[1] = b.substr(b.indexOf('--')+2);
+	compare[1] = compare[1].substr(compare[1].indexOf('--')+2);
+	compare[1] = compare[1].toLowerCase();
+	compare.sort();
+	if (temp != compare[0])
+		return +1;
+	else
+		return -1;
+	}
+	function subject_comp_reverse(a,b)
+	{
+		return subject_comp(b,a);
+	}
+
+	function size_comp(a,b)
+	{
+		var data1 = a.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g);
+		data1 = data1[0].substr(data1[0].indexOf('--')+2)
+		data1 = data1.substr(0,data1.indexOf('--'))
+		var size_a = parseInt(data1.substr(0,data1.indexOf(' ')));
+		if (data1.match("k"))
+			size_a = size_a * 1024;
+		else
+			if (data1.match("m"))
+				size_a = size_a * 1048576;
+		var data2 = b.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g);
+		data2 = data2[0].substr(data2[0].indexOf('--')+2)
+		data2 = data2.substr(0,data2.indexOf('--'))
+		var size_b = parseInt(data2.substr(0,data2.indexOf(' ')));
+		if (data2.match("k"))
+			size_b = size_b * 1024;
+		else
+			if (data2.match("m"))
+				size_b = size_b * 1048576;
+		return size_b - size_a;
+	}
+	function size_comp_reverse(a,b)
+	{
+		return size_comp(b,a);
+	}
+
+	// Form resultado
+	searchE.prototype.mount_result = function(data,sort_type){
+		var nw_array = new Array;
+		var var_tmp = data.substr(2, data.length - 4);
+		var_tmp  = var_tmp.split("####");
+		var cont = parseInt(0);
+		switch (sort_type)
+		{
+			case 'SORTDATE':
+				var_tmp.sort(date_comp);
+				break;
+			case 'SORTDATE_REVERSE':
+				var_tmp.sort(date_comp_reverse);
+				break;
+			case 'SORTBOX':
+				var_tmp.sort(box_comp);
+				break;
+			case 'SORTBOX_REVERSE':
+                                var_tmp.sort(box_comp_reverse);
+                                break;
+			case 'SORTSUBJECT':
+				var_tmp.sort(subject_comp);
+				break;
+			case 'SORTSUBJECT_REVERSE':
+                                var_tmp.sort(subject_comp_reverse);
+				break;
+			case 'SORTWHO':
+				var_tmp.sort(who_comp);
+				break;
+			case 'SORTWHO_REVERSE':
+                                var_tmp.sort(who_comp_reverse);
+				break;
+			case 'SORTSIZE':
+				var_tmp.sort(size_comp);
+				break;
+			case 'SORTSIZE_REVERSE':
+				var_tmp.sort(size_comp_reverse);
+				break;
+			default:
+				var showMsg = 1;
+		}
+
+		for(var i=0; i < var_tmp.length; i++){
+			if(var_tmp[i] != "")
+			{
+				nw_array[cont] = var_tmp[i];
+				cont++;
+			}
+		}
+		if(nw_array.length > 0 && showMsg)
+			write_msg(nw_array.length + " "+ get_lang('results found'));
+		numBox++;
+		var border_id = create_border(get_lang("Search Results"), "search_" + numBox);
+		currentTab = border_id;
+		openTab.type[currentTab] = 1;
+		var table = document.createElement("TABLE");
+		table.id    = "table_resultsearch_" + numBox;
+		table.frame = "void";
+		table.rules = "rows";
+		table.cellPadding = "0";
+		table.cellSpacing = "0";
+		table.className = "table_box";
+
+		var tbody = document.createElement("TBODY");
+		tbody.id    = "tbody_box_" + numBox;
+
+		for( var i=0; i < nw_array.length; i++){
+			var tr = document.createElement("TR");
+			tr.style.height = preferences.line_height;
+
+			if (nw_array[i].match(/.*--.*--\w*--\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g) != null) //subject with "--"
+			{
+				var aux1 = nw_array[i].match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g);
+				aux1 = aux1[0].split("--");
+				nw_array[i] = nw_array[i].substr(0, nw_array[i].indexOf(aux1[0])-2);
+				var aux = [];
+				aux[0] = nw_array[i].substr(0, nw_array[i].indexOf('--'));
+				nw_array[i] = nw_array[i].substr(nw_array[i].indexOf('--')+2);
+				aux[1] = nw_array[i].substr(0, nw_array[i].indexOf('--'));
+				aux[2] = nw_array[i].substr(nw_array[i].indexOf('--')+2);
+				aux = aux.concat(aux1);
+			}
+			else
+			{
+				var aux = nw_array[i].split("--");
+			}
+
+			var mailbox = aux[0];
+			var uid_msg = aux[6];
+			var subject = aux[2];
+			tr.id = uid_msg;
+			tr.setAttribute('name',mailbox);
+
+			var _onclick = function () { cExecute("$this.imap_functions.get_info_msg&msg_number="+this.parentNode.id+"&msg_folder="+url_encode(this.parentNode.getAttribute('name')),show_msg); };
+			for(var j=0 ; j < 10 ; j++)
+			{
+				var td = document.createElement("TD");
+				if (j == 0)
+				{
+					if (aux[5].match("U"))
+						tr.className = 'tr_msg_unread';
+					else
+						tr.className = 'tr_msg_read';
+					td.style.width = "1%";
+					var td1 = '<input type="checkbox" id="check_box_message_'+uid_msg+'"></input>';
+				}
+				if (j == 1)
+				{
+					td.style.width = "2%";
+					if (aux[5].match('T'))
+					{
+						attachNum = parseInt(aux[5].substr(aux[5].indexOf('T')+1));
+						td1 = "<img src='templates/"+template+"/images/clip.gif' title='"+attachNum +' '+ get_lang('attachment(s)')+"'>";
+					}
+					else
+						td1 = '';
+				}
+				if (j == 2)
+				{
+					td.style.width = "1%";
+					td.id = "td_message_answered_"+uid_msg;
+					if (aux[5].match('X'))
+						td1 = '<img src=templates/'+template+'/images/forwarded.gif title=Forwarded>';
+					else
+						if (aux[5].match('A'))
+							td1 = '<img src=templates/'+template+'/images/answered.gif>';
+						else
+							td1 = '';
+				}
+				if (j == 3)
+				{
+					td.style.width = "1%";
+					td.id = "td_message_important_"+uid_msg;
+					if (aux[5].match("F"))
+					{
+						tr.className = 'flagged_msg';
+						td1 = '<img title="Importante" src="templates/'+template+'/images/important.gif"/>';
+					}
+					else
+						td1 = '';
+				}
+				if (j == 4)
+				{
+					td.style.width = "1%";
+					td.id = "td_message_sent_"+uid_msg;
+					td1 = '';
+				}
+				if (j == 5)
+				{
+					td.style.width = "14%";
+					td.onclick = _onclick;
+					var nm_box = aux[0].split(cyrus_delimiter);
+					var td1 = nm_box.pop();
+					td.setAttribute("NoWrap","true");
+					td.style.overflow = "hidden";
+					td.style.color = "#42795b";
+					td.style.fontWeight = "bold";
+
+					if(td1 == "INBOX"){
+						var td1  = get_lang("Inbox");
+					}
+
+					if(proxy_mensagens.is_local_folder(td1)) {
+						var td1 = this.aux_local_folder_display(td1);
+					}
+				}
+				if( j == 6)
+				{
+					if (aux[1].length > 29)
+						aux[1] = aux[1].substr(0,29) + "...";
+					td.style.width = "20%";
+					td.onclick = _onclick;
+					td.setAttribute("NoWrap","true");
+                                        td.style.overflow = "hidden";
+					var td1  =  '<div style="width:100%;overflow:hidden">'+aux[1]+"</div>";
+				}
+				if( j == 7)
+				{
+					var subject_encode = url_encode(subject);
+					if (! subject_encode)
+						aux[2] = get_lang("no subject") + "...";
+					if (aux[2].length > 70)
+						aux[2] = aux[2].substr(0,70) + "...";
+					td.style.width = "35%";
+					td.onclick = _onclick;
+                                        td.setAttribute("NoWrap","true");
+                                        td.style.overflow = "hidden";
+					var td1  = aux[2];
+
+				}
+				if( j == 8)
+				{
+					td.style.width = "15%";
+					td.align = "center";
+					td.onclick = _onclick;
+					var td1  = aux[3];
+				}
+				if( j == 9)
+				{
+					td.style.width = "10%";
+					td.align = "center";
+					td.onclick = _onclick;
+					var td1  = aux[4];
+				}
+				if (j == 10)
+				{
+					if (aux[5].match("U"))
+						tr.className = 'tr_msg_unread';
+					else
+						tr.className = 'tr_msg_read';
+					if (aux[5].match("F"))
+						tr.className = 'flagged_msg';
+					var td1 = '';
+				}
+				td.innerHTML = td1;
+				tr.appendChild(td);
+			}
+			aux.splice(0,(aux.length));
+
+		_dragArea.makeDragged(tr, uid_msg, subject, true, mailbox);
+		tbody.appendChild(tr);
+		}
+		table.appendChild(tbody);
+
+	var content_search =  Element('content_id_search_' + numBox);
+	// BEGIN MAKE THE SCROLL HEIGHT		
+	var defaultWidth = document.body.offsetWidth - 31;
+	var menuHidden = Element("folderscol").style.display == 'none' ? true : false;
+	if(!menuHidden)
+		defaultWidth -= Element("folderscol").offsetWidth;			
+	var bar = Element("toolbar");
+	var offset = 0;
+	if(bar.style.visibility != 'hidden') 
+		offset = bar.offsetHeight ? bar.offsetHeight :  bar.clientHeight;		
+	var div_scroll_result = document.createElement("DIV");
+	div_scroll_result.id = "divScrollMain_"+numBox;
+	div_scroll_result.style.height = document.body.clientHeight - offset - 120;
+	content_search.style.height = document.body.clientHeight - offset - 80;
+	div_scroll_result.style.overflow = "auto";
+	div_scroll_result.style.width = defaultWidth - (is_ie ? 7 : 0);
+	// END MAKE THE SCROLL HEIGHT		
+		
+	
+		if(is_ie)
+			Element("border_table").width = "99.5%";
+		
+		// Put header
+		var table_element = document.createElement("TABLE");
+		var tbody_element = document.createElement("TBODY");
+		table_element.setAttribute("id", "table_message_header_box");
+		table_element.className = "table_message_header_box";
+		tr_element = document.createElement("TR");
+		tr_element.className = "message_header";
+		td_element0 = document.createElement("TD");
+		td_element0.setAttribute("width", "1%");
+		chk_box_element = document.createElement("INPUT");
+		chk_box_element.id  = "chk_box_select_all_messages";
+		chk_box_element.setAttribute("type", "checkbox");
+		chk_box_element.className = "checkbox";
+		chk_box_element.onclick = function(){select_all_search_messages(this.checked,content_search.id);};
+		chk_box_element.onmouseover = function () {this.title=get_lang('Select all messages.')};
+		chk_box_element.onkeydown = function (e){
+			if (is_ie)
+			{
+				if ((window.event.keyCode) == 46)
+					delete_msgs(current_folder,'selected','null');
+			}
+			else
+			{
+				if ((e.keyCode) == 46)
+					delete_msgs(current_folder,'selected','null');
+			}
+		};
+		
+		td_element0.appendChild(chk_box_element);
+		td_element1 = document.createElement("TD");
+		td_element1.setAttribute("width", "20%");
+		td_element1.align = "left";
+		if (sort_type == 'SORTBOX')
+		{
+			td_element1.onclick = function () { EsearchE.mount_result(data,'SORTBOX_REVERSE'); delete_border(border_id,false);};
+			td_element1.innerHTML ="<b>"+get_lang("Folder")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
+		}
+		else
+		{
+			td_element1.onclick = function () { EsearchE.mount_result(data,'SORTBOX'); delete_border(border_id,false);};
+			if  (sort_type == 'SORTBOX_REVERSE')
+				td_element1.innerHTML ="<b>"+get_lang("Folder")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
+			else
+				td_element1.innerHTML = get_lang("Folder");
+		}
+		td_element2 = document.createElement("TD");
+		td_element2.setAttribute("width", "20%");
+		td_element2.align = "left";
+		if (sort_type == 'SORTWHO')
+		{
+			td_element2.onclick = function () { EsearchE.mount_result(data,'SORTWHO_REVERSE'); delete_border(border_id,false);};
+			td_element2.innerHTML ="<b>"+get_lang("who")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
+		}
+		else
+		{
+			td_element2.onclick = function () { EsearchE.mount_result(data,'SORTWHO'); delete_border(border_id,false);};
+			if  (sort_type == 'SORTWHO_REVERSE')
+				td_element2.innerHTML ="<b>"+get_lang("who")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
+			else
+				td_element2.innerHTML = get_lang("who");
+		}
+		td_element3 = document.createElement("TD");
+		td_element3.setAttribute("width", "35%");
+		td_element3.align = "left";
+		if (sort_type == 'SORTSUBJECT')
+		{
+			td_element3.onclick = function () { EsearchE.mount_result(data,'SORTSUBJECT_REVERSE'); delete_border(border_id,false);};
+			td_element3.innerHTML ="<b>"+get_lang("subject")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
+		}
+		else
+		{
+			td_element3.onclick = function () { EsearchE.mount_result(data,'SORTSUBJECT'); delete_border(border_id,false);};
+			if  (sort_type == 'SORTSUBJECT_REVERSE')
+				td_element3.innerHTML ="<b>"+get_lang("subject")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
+			else
+				td_element3.innerHTML = get_lang("subject");
+		}
+		td_element4 = document.createElement("TD");
+		td_element4.setAttribute("width", "15%");
+		td_element4.align = "center";
+		if (sort_type == 'SORTDATE')
+		{
+			td_element4.onclick = function () { EsearchE.mount_result(data,'SORTDATE_REVERSE'); delete_border(border_id,false);};
+			td_element4.innerHTML ="<b>"+get_lang("Date")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
+		}
+		else
+		{
+			td_element4.onclick = function () { EsearchE.mount_result(data,'SORTDATE'); delete_border(border_id,false);};
+			if  (sort_type == 'SORTDATE_REVERSE')
+				td_element4.innerHTML ="<b>"+get_lang("Date")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
+			else
+				td_element4.innerHTML = get_lang("Date");
+		}
+		td_element5 = document.createElement("TD");
+		td_element5.setAttribute("width", "10%");
+		td_element5.align = "center";
+		if (sort_type == 'SORTSIZE')
+		{
+			td_element5.onclick = function () { EsearchE.mount_result(data,'SORTSIZE_REVERSE'); delete_border(border_id,false);};
+			td_element5.innerHTML ="<b>"+get_lang("size")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
+		}
+		else
+		{
+			td_element5.onclick = function () { EsearchE.mount_result(data,'SORTSIZE'); delete_border(border_id,false);};
+			if  (sort_type == 'SORTSIZE_REVERSE')
+				td_element5.innerHTML ="<b>"+get_lang("size")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
+			else
+				td_element5.innerHTML = get_lang("Size");
+		}
+		tr_element.appendChild(td_element0);
+		tr_element.appendChild(td_element1);
+		tr_element.appendChild(td_element2);
+		tr_element.appendChild(td_element3);
+		tr_element.appendChild(td_element4);
+		tr_element.appendChild(td_element5);
+		tbody_element.appendChild(tr_element);
+		table_element.appendChild(tbody_element);
+		content_search.appendChild(table_element);
+		// end of put header
+
+		div_scroll_result.appendChild(table);
+		content_search.appendChild(div_scroll_result);
+	}
+
+	searchE.prototype.open_msg = function(mailbox, uid_msg, subject){
+		var handler_get_msg = function(data){
+			if(Element("border_id_" + uid_msg + "_r")){alert(get_lang("This message is already opened!"));}
+			else{draw_message(data,create_border(url_decode(subject), uid_msg + "_r"));}
+			//set_msg_as_read(msgs_to_set[i], false);
+		}
+		proxy_mensagens.get_msg(uid_msg,mailbox,false,handler_get_msg);
+		/*var args   = "$this.imap_functions.get_info_msg";
+		var params = "msg_number=" + uid_msg + "&msg_folder=" + mailbox;
+		cExecute(args,handler_get_msg,params);*/
+
+	}
+
+	// Adiciona caixas postais na busca;
+	searchE.prototype.add_mailboxes = function(){
+		var sel = Element("sel_search_nm_box1");
+		if (!proxy_mensagens.is_local_folder(this.name_box_search)) {
+			var name_box     = this.name_box_search.split(cyrus_delimiter);
+			if(this.name_box_search == "")
+				return false;
+			var name_box_def = "";
+			if(name_box.length != 1){
+				name_box_def = name_box[(name_box.length-1)];
+			}else{
+				name_box_def = get_lang("Inbox");		
+			}
+		}
+		else {
+			if(this.name_box_search=='local_root')
+				return;
+			if(this.name_box_search=='local_Inbox')
+				name_box_def = get_lang("Inbox");
+			else
+				name_box_def = this.name_box_search.substr(6);//Retira o 'local_'
+		}
+		if( sel.length > 0){
+			for(var i=0; i < sel.options.length; i++){
+				if(sel.options[i].value == this.name_box_search){
+					alert(get_lang('This message is already selected!'));
+					return false;
+				}
+			}
+		}
+		var opt = new Option(lang_folder(name_box_def),this.name_box_search,false,true);
+		sel[sel.length] = opt;
+	}
+	// Remove as caixas postais na busca;
+	searchE.prototype.del_mailboxes = function(){
+		var sel = Element("sel_search_nm_box1");
+		if(sel.length > 0){
+			for(var i=0; i < sel.options.length; i++){
+				if(sel.options[i].selected == true){
+					sel.options[i] = null;
+					i--;
+				}
+			}
+		}
+	
+	}
+	// todas as caixas
+	searchE.prototype.all_mailboxes = function(){
+		var value = Element("check_all_msg").checked;
+		var cont = parseInt(0);
+		if(value){
+			if(EsearchE.all_boxes.length > 0){
+				EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));			
+			}
+			for(var i=0; i < folders.length; i++){
+				EsearchE.all_boxes[cont] = folders[i].folder_id;
+				cont++;
+			}
+		}else{
+			EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
+		}
+	}
+
+	// Search;
+	searchE.prototype.func_search = function(value){
+		var fields = "##";
+			// Verifica se os campos estão preenchidos;
+			if(trim(Element("txt_ass").value) != ""){
+				fields += "SUBJECT " +  "<=>" +url_encode(Element("txt_ass").value) + "##";
+			}
+			if(trim(Element("txt_body").value) != ""){
+				fields += "BODY " + "<=>" + url_encode(Element("txt_body").value) + "##";
+			}
+			if(trim(Element("txt_de").value) != ""){
+				fields += "FROM " + "<=>" + url_encode(Element("txt_de").value) + "##";
+			}
+			if(trim(Element("txt_para").value) != ""){
+				fields += "TO " + "<=>" + url_encode(Element("txt_para").value) + "##";
+			}
+			if(trim(Element("txt_cc").value) != ""){
+				fields += "CC " + "<=>" + url_encode(Element("txt_cc").value) + "##";
+			}
+			if(value) {
+				fields = "##ALL " +  "<=>" +url_encode(value) + "##";
+			}
+
+		if(fields == "##"){
+			alert(get_lang("Define some search parameters!"));
+			return false;
+		}
+		var local_folders = new Array();
+		var temp;
+		
+		if(Element("check_all_msg").checked){
+			this.all_mailboxes();
+			var nm_box = new Array;
+			for(var i=0; i < EsearchE.all_boxes.length; i++){
+				nm_box[i] = EsearchE.all_boxes[i] + fields;
+			}
+			if (preferences.use_local_messages == 1) {
+				temp = expresso_local_messages.list_local_folders();
+				for (var x in temp) {
+					local_folders.push(temp[x][0]);
+				}
+			}
+		}else{
+			var nm_box = new Array;
+			var sel_combo = Element("sel_search_nm_box1");
+			if( sel_combo.options.length <= 0){
+				alert(get_lang("Define the boxes to search!"));
+				return false;
+			}
+			
+			for(var i=0; i < sel_combo.options.length; i++){
+				sel_combo.options[i].selected = true;
+			}
+			for(var i=0; i < sel_combo.options.length; i++){
+				if(sel_combo.options[i].selected == true){
+					if(!proxy_mensagens.is_local_folder(sel_combo.options[i].value))
+						nm_box[nm_box.length] = sel_combo.options[i].value + fields;
+					else
+						local_folders.push(sel_combo.options[i].value.substr(6));
+				}
+			}
+		}
+		var handler = function(data){
+			var tmp;
+			var countTmp= new Array();
+			if (local_folders.length > 0) {
+				tmp = expresso_local_messages.search(local_folders, fields);
+				if (tmp!=false) {
+					var tmp2 = tmp.substr(2, data.length - 4);
+					countTmp = tmp.split('####');
+				}
+			}
+			if((data == "none") && (countTmp.length==0)){alert(get_lang("None result was found."));}
+			else if(countTmp.length > 50){alert(get_lang("More than %1 results. Please, try to refine your search.",50));}
+			else if(data == "many results"){alert(get_lang("More than %1 results. Please, try to refine your search.",50));}
+			else{EsearchE.mount_result((data=='none')?tmp:(countTmp.length==0)?data:data+tmp);}
+		}
+		var args   = "$this.imap_functions.search_msg";
+		var params = "condition=" + nm_box;
+		cExecute(args,handler,params);
+	}
+	// clean;
+	searchE.prototype.func_clean = function(){
+		// Limpa os campos;
+		for(var i=0; i < this.fields.length; i++){
+			if(Element("txt" + this.fields[i]) != null){Element("txt" + this.fields[i]).value = "";}
+		}
+	    if(Element("check_all_msg") != null){Element("check_all_msg").checked = false;}
+
+	    EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
+	  	EsearchE.del_mailboxes();
+	}
+
+	// close
+	searchE.prototype.func_close = function(type){
+		var _this = this;
+		_this.name_box_search = "";
+		EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
+		_this.type = type;
+		_this.searchW['window_search'].close();
+	}
+	// Monta a janela em tela;
+	searchE.prototype.showWindow = function(div){
+		if(!this.searchW[div.id]) {
+			div.style.width = "660px";
+			div.style.height = "255px";
+			div.style.visibility = "hidden";
+			div.style.position = "absolute";
+			div.style.zIndex = "10003";
+			var title = ":: "+ get_lang("Search")+" ::";
+			var wHeight = div.offsetHeight + "px";
+			var wWidth =  div.offsetWidth   + "px";
+
+			win = new dJSWin({
+				id: 'ccList'+div.id,
+				content_id: div.id,
+				width: wWidth,
+				height: wHeight,
+				title_color: '#3978d6',
+				bg_color: '#eee',
+				title: title,
+				title_text_color: 'white',
+				button_y_img: '../phpgwapi/images/win_min.gif',
+				button_x_img: '../phpgwapi/images/winclose.gif',
+				border: true });
+			this.searchW[div.id] = win;
+			win.draw();
+		}else{
+			var _this = this;
+			win = this.searchW[div.id];
+			if((_this.type == "close" && win.state == 0) || win.state == 2){EsearchE.func_clean();}
+			win.draw();
+		}
+		win.open();	
+	}
+	
+	searchE.prototype.aux_local_folder_display = function(folder) {
+		return "(Local) " + lang_folder(folder.substr(6));
+	}
+	
+// Cria o objeto
+	var EsearchE;
+	EsearchE = new searchE();
Index: tags/expressoMail1_2/1.234/js/drag_area.js
===================================================================
--- tags/expressoMail1_2/1.234/js/drag_area.js	(revision 790)
+++ tags/expressoMail1_2/1.234/js/drag_area.js	(revision 790)
@@ -0,0 +1,251 @@
+function DragArea(){
+
+	this.msg_number = false;
+	this.subject	= false;
+	this.folder		= '';
+	this.color_dd	= 'red';
+	this.from_list	= false;
+	this._mousemove = document.onmousemove;
+	this._mouseup = document.onmouseup;
+	this.div_dd = document.createElement("DIV");
+	this.id_messages_to_drag = new Array();
+	this.div_dd.style.position = 'absolute';
+	this.div_dd.style.zIndex = '15';
+	this.div_dd.style.border = '1px solid black';
+	this.div_dd.style.background ="#EEEEEE";
+	var value = "8.5";
+	this.div_dd.style.opacity = value/10;
+	this.div_dd.style.filter = 'alpha(opacity=' + value*10 + ')';	
+	this.div_dd.id = 'div_sel_messages';
+	this.div_dd.style.padding = "3px";
+	this.div_dd.style.width = "0px";
+	this.div_dd.style.height = "0px";
+	this.div_dd.style.display ='none';
+	this.envelope = new Image();
+	this.envelope.src = "templates/"+template+"/images/envelope.png";
+	document.body.appendChild(this.div_dd);
+	
+}
+
+DragArea.prototype.makeMenuBox = function(element){
+
+	element.oncontextmenu = function(e)
+	{
+		return false;
+	}
+	
+	var _this = this;
+	
+	element.onmousedown = function (e)
+	{
+		var _button = is_ie ? window.event.button : e.which;
+
+		if(_button == 2 || _button == 3)
+		{
+			var boxFolder = element.id.substr(1,element.id.indexOf('tree_folders')-1);
+			var boxName = element.firstChild.nextSibling.innerHTML;
+			ConstructBoxMenu(is_ie ? window.event : e,boxName,boxFolder);
+		}
+				
+		return true;
+	};	
+	
+}
+
+DragArea.prototype.makeDragged = function(element, msg_number, subject, from_list, folder){
+	element.oncontextmenu = function(e) {
+		return false;
+	}
+	var _this = this;
+	element.onmousedown = function (e){
+
+		var _button = is_ie ? window.event.button : e.which;
+	
+		if(_button == 2 || _button == 3) {
+			var _checkb = Element("check_box_message_"+ msg_number);
+
+			if(_checkb) {
+				if(!_checkb.checked) {
+					changeBgColor(is_ie ? window.event : e, msg_number);
+					_checkb.checked = true;
+				}
+				ConstructRightMenu(is_ie ? window.event : e);
+			}			
+			return false;
+		}
+
+		if(!_this.msg_number) {
+			_this.msg_number = msg_number;
+
+			if(!subject)
+				_this.subject = get_lang("No Subject");
+			//else if(subject.length > 40)
+			//	_this.subject = subject.substring(0,40) + '...';				
+			else
+				_this.subject	 = subject;
+
+			_this.from_list  = from_list;
+			_this.div_dd.style.width = "auto";
+			_this.div_dd.style.height = "auto";			
+			_this.folder = folder;
+		}
+		return true;
+	};	
+}
+DragArea.prototype.showLayerDrag = function(e){
+
+	var msg_number = _dragArea.from_list ? _dragArea.msg_number : _dragArea.msg_number.replace('_r','');
+	if(_dragArea.from_list) {
+
+		if((Element("check_box_message_"+msg_number)) && (! Element("check_box_message_"+msg_number).checked)) {
+			if (is_ie)
+				changeBgColor(window.event,msg_number);
+			else
+				changeBgColor(e,msg_number);
+			Element("check_box_message_"+ msg_number).checked = true;	
+		}
+		id_messages_to_drag = get_selected_messages();
+		id_messages_to_drag = id_messages_to_drag ? id_messages_to_drag.split(',') : new Array();
+	
+		if(id_messages_to_drag.length > 1)
+			this.subject = id_messages_to_drag.length +" mensagens selecionadas";
+	}
+
+	this.div_dd.innerHTML = "<img align='center' src='"+this.envelope.src+"'>&nbsp;<span id='content_dd'><font color='red' weight='bold'><b>"+this.subject+"</b></span></font>";
+	this.div_dd.style.display ='';
+}
+
+DragArea.prototype.onSelectStart = function(value){
+	if(!value) {
+		document.body.onselectstart = function (e){return false;}
+		document.body.ondragstart = function (e){return false;}
+	}
+	else {
+		document.body.onselectstart = function (e){return true;}
+		document.body.ondragstart = function (e){return true;}
+	}
+}
+
+DragArea.prototype.mouseMoveDrag = function(e){		
+	
+	var	e  = is_ie ? window.event : e;
+	var	_target = is_ie ? e.srcElement : e.target;
+	if(is_ie)
+		this.onSelectStart(false);
+
+	this.div_dd.style.left	= e.clientX + 5 + document.body.scrollLeft;
+	this.div_dd.style.top 	= e.clientY + 10 + document.body.scrollTop;		
+
+	if(this.div_dd.style.display == 'none')
+		this.showLayerDrag(e);
+	
+	var reg = /^((n|l)(?!root))(.*)tree_folders$/;
+	var _color = this.color_dd;
+
+	if(reg.test(_target.parentNode.id) )
+		_color ='green';
+	else
+		_color ='red';
+	
+	if(this.color_dd != _color) {
+		Element('content_dd').innerHTML = "<font color='"+_color+"' weight='bold'><b>"+this.subject+"</b></font>";
+		this.color_dd = _color;
+	}
+
+	return false;
+}	
+
+var _dragArea = new DragArea();
+
+document.onmousemove = function(e) {
+	var	_target = is_ie ? window.event.srcElement : e.target;
+	if(_dragArea._mousemove)
+		_dragArea._mousemove(e);
+	
+	else if(_dragArea.msg_number && _target.type != 'checkbox') {
+		_dragArea.mouseMoveDrag(e);
+	}
+};
+
+document.onmouseup = function(e) {
+
+	var	_event  = is_ie ? window.event : e;
+	var	_target = is_ie ? _event.srcElement : _event.target;
+	var _button = is_ie ? _event.button : _event.which;
+	
+	if(_button != 2 && _button != 3) {		
+
+		if(Element("div_rightbutton") && Element("div_rightbutton").style.display != 'none')
+		{
+						
+			if(!_target.id.match(/link_rightbutton_(.*)$/)){
+			
+				var id_messages_to_drag = get_selected_messages();
+				id_messages_to_drag = id_messages_to_drag ? id_messages_to_drag.split(',') : id_messages_to_drag;
+		
+				for(var i = 0; id_messages_to_drag && i < id_messages_to_drag.length; i++) {			
+					Element("check_box_message_"+id_messages_to_drag[i]).checked = false;				
+					changeBgColor(_event ,id_messages_to_drag[i]);				
+				}
+				Element("chk_box_select_all_messages").checked = false;
+				Element('div_rightbutton').style.display = 'none';
+				_dragArea.msg_number = false;
+				_dragArea.div_dd.style.display ='none';
+				return false;
+			}
+		}
+		if(is_ie)
+			_dragArea.onSelectStart(true);
+	
+		if (Element("div_rightbutton_folder") && Element("div_rightbutton_folder").style.display != 'none')
+		{	
+		Element('div_rightbutton_folder').style.display = 'none';
+		}
+	
+	}	
+
+
+	if(_dragArea.msg_number) {
+
+		var reg = /^((n|l)(?!root))(.*)tree_folders$/;
+		var new_folder;
+		
+		if(reg.test(_target.parentNode.id) ){
+			new_folder = _target.parentNode.id.substring(1,_target.parentNode.id.length).replace('tree_folders','');			
+			new_folder_name = new_folder.replace("INBOX"+cyrus_delimiter, "");
+			if(new_folder_name == 'INBOX')
+				new_folder_name = get_lang("Inbox");
+			if ( _dragArea.from_list )
+			{
+				if (numBox != 0)
+					move_search_msgs("content_id_search_" + numBox, new_folder, new_folder_name);
+				else	
+					proxy_mensagens.proxy_move_messages("null", 'selected', 0, new_folder, new_folder_name);
+			}
+			else
+			{
+				var msg_number = _dragArea.from_list ? _dragArea.msg_number : _dragArea.msg_number.replace('_r','');
+				proxy_mensagens.proxy_move_messages("null", msg_number, msg_number + "_r", new_folder, new_folder_name);
+			}
+		}
+		
+		else if(_dragArea.from_list && _target.type != 'checkbox' && _dragArea.div_dd.style.display !='none'){
+			var id_messages_to_drag = get_selected_messages();
+			if(id_messages_to_drag){
+				id_messages_to_drag = id_messages_to_drag.split(',');
+			
+				for(var i = 0; id_messages_to_drag && i < id_messages_to_drag.length; i++) {				
+					Element("check_box_message_"+id_messages_to_drag[i]).checked = false;				
+					changeBgColor(_event ,id_messages_to_drag[i]);				
+				}
+				Element("chk_box_select_all_messages").checked = false;			
+			}
+		}
+	
+		_dragArea.msg_number = false;
+		_dragArea.div_dd.style.display ='none';
+		if(is_ie)
+			_dragArea.onSelectStart(true);
+	}
+
+};
Index: tags/expressoMail1_2/1.234/js/abas.js
===================================================================
--- tags/expressoMail1_2/1.234/js/abas.js	(revision 801)
+++ tags/expressoMail1_2/1.234/js/abas.js	(revision 801)
@@ -0,0 +1,270 @@
+var BordersArray = new Array();
+BordersArray[0] = new setBorderAttributes(0);
+
+function setBorderAttributes(ID)
+{
+	this.border_id = "border_id_"+ID;
+	this.sequence = ID; 
+}
+
+
+function alternate_border(ID)
+{
+	if (! Element('border_id_'+ID))
+		return false; // Not possible to alternate
+	show_hide_span_paging(ID);
+	spanD = Element("span_D");
+	if (spanD)
+		spanD.style.display = (openTab.type[ID] == 0 ? '' : 'none');
+	var len = BordersArray.length;
+	for (var i=0; i < len; i++)
+	{
+		m = document.getElementById(BordersArray[i].border_id);
+		if ((m)&&(m.className == 'menu-sel'))
+		{
+			m.className = 'menu';
+			c = document.getElementById("content_id_"+BordersArray[i].sequence);
+			c.style.display = 'none';
+			if(Element("font_border_id_"+BordersArray[i].sequence))
+				Element("font_border_id_"+BordersArray[i].sequence).className = 'font-menu';	
+			var body = Element('body_'+BordersArray[i].sequence);
+			if (body)
+			{
+				try
+				{
+					if (Element('viewsource_rt_checkbox').checked)
+					{  
+						connector.loadScript("rich_text_editor");
+						RichTextEditor.viewsource(false);
+					}
+				}
+				catch(e)
+				{
+					//alert(e.message)
+				}
+			}
+		}
+	}
+
+	m = Element("border_id_"+ID);
+	if (m)
+		m.className = 'menu-sel';
+	if(Element("font_border_id_" + ID))
+		Element("font_border_id_" + ID).className = 'font-menu-sel';
+	var c = Element("content_id_"+ID)
+	if (c)
+		c.style.display = '';
+
+	body = document.getElementById('body_'+ ID);
+	if (body){
+		try{
+			if(ID){
+				connector.loadScript("rich_text_editor");
+				RichTextEditor.loadEditor(ID);
+			}
+			body.contentWindow.document.designMode="on";
+		}
+		catch(e){
+			//alert(e.message);
+		}
+	}
+
+	// hide the DropDrowContact, if necessary
+	window_DropDownContacts = Element('tipDiv');
+	if ((window_DropDownContacts)&&(window_DropDownContacts.style.visibility != 'hidden')){
+		window_DropDownContacts.style.visibility = 'hidden';
+	}
+
+	if (typeof(ID) == 'number')
+	{
+	 	current_folder = openTab.imapBox[ID];
+		openTab.type[ID] = 0;
+	 	numBox=ID;
+ 	}
+	else
+        	if (ID.match("search_"))
+                	numBox=ID.substr(7);
+        currentTab=ID;
+	return ID;
+}
+
+function create_border(borderTitle, id_value)
+{
+	var resize = false;
+	var offWidth = Element('border_blank').offsetWidth ? Element('border_blank').offsetWidth : Element('border_blank').clientWidth;
+	if (offWidth < 200) {
+		resize = resize_borders();
+		if (!resize){
+			alert(get_lang('Reached maximum tab limit'));
+			return false;
+		}
+	}
+	
+	if (! id_value) // Is new message?
+		var ID = parseInt(BordersArray[(BordersArray.length-1)].sequence) + 1;
+	else
+	{
+                if (Element("border_id_"+id_value)) // It's opened already!
+			return alternate_border(id_value);
+		var ID = id_value;
+	}
+	td = document.createElement("TD");
+	td.id="border_id_" + ID;
+	if(resize) {
+		td.setAttribute("width", parseInt(resize)+"px");
+		td.style.width = parseInt(resize)+"px";
+	}
+	else
+		td.setAttribute("width", "200px");
+
+	td.setAttribute("align", "right");
+	td.onclick = function(){alternate_border(ID);};
+	td.setAttribute("noWrap","true");
+
+	borderTitle = borderTitle ?  borderTitle : id_value ? get_lang("No Subject") : "&nbsp;"	;
+	td.value = borderTitle;
+	if (borderTitle.length > 21)
+		borderTitle = borderTitle.substring(0,21) + "...";
+
+	if (resize)
+		borderTitle = borderTitle.substring(0, resize*0.08);
+
+	td.innerHTML = "<table width=100% border=0 cellspacing=0 cellpadding=0><tr><td id=font_border_id_" + ID+" class='font-menu' width=*>" + borderTitle + "</td><td width=1px><img onmousedown='javascript:return false' style='cursor:pointer' onclick=delete_border('" + ID + "','false') src='templates/"+template+"/images/close_button.gif'></td></tr></table>";
+
+	bb = document.getElementById("border_blank");
+	parent_bb = bb.parentNode; //Pego o tbody
+	parent_bb.insertBefore(td, bb);
+
+	if(! Element("border_id_"+id_value+"_r") ||((typeof(id_value) == 'string') && id_value.match(/_r$/)))
+		_dragArea.makeDragged(td, id_value,td.value);
+
+	BordersArray[BordersArray.length] = new setBorderAttributes(ID);
+
+	var div = document.createElement("DIV");
+	div.id = "content_id_" + ID;
+	div.className = "conteudo";
+	div.style.display='';
+
+	var bar = document.getElementById("toolbar");
+	var offset = 0;
+	if(bar.style.visibility != 'hidden')
+		offset = bar.offsetHeight ? bar.offsetHeight :  bar.clientHeight;
+
+	div.style.height = document.body.clientHeight - offset - (is_ie ? 76 : 86);
+	div.style.overflow = "hidden";
+
+	if(!is_ie) {
+		var menuHidden = Element("folderscol").style.display == 'none' ? true : false;
+		var defaultWidth = document.body.clientWidth - 27;
+		if(!menuHidden)
+			defaultWidth -= Element("folderscol").offsetWidth;
+
+		div.style.width = defaultWidth;
+	}
+	Element("exmail_main_body").insertBefore(div,Element("footer_menu"));
+	alternate_border(ID);
+	return ID;
+}
+
+function resize_borders()
+{
+	var children;
+	var	numBorders = 0;	
+	var widthTD = 0;
+	var newWidthTD = 0;		
+	children = Element('border_tr').childNodes;	
+	for (var i=0; i<children.length; i++) {
+		if ((children[i].nodeName === 'TD') && (children[i].id!=='border_id_0') && (children[i].id!=='border_blank')) {
+			numBorders++;
+			if(!widthTD)
+				widthTD = children[i].clientWidth;				
+		}
+	}
+	if (numBorders > 8)
+		return false;
+	
+	newWidthTD = ((numBorders*widthTD)+(Element("border_blank").clientWidth-20))/(numBorders+1);
+	for (var i=0; i<children.length; i++) {
+		if ((children[i].nodeName === 'TD') && (children[i].id!=='border_id_0') && (children[i].id!=='border_blank')){
+			children[i].style.width = newWidthTD;
+			Element("font_"+children[i].id).innerHTML = Element("font_"+children[i].id).innerHTML.substring(0, newWidthTD*0.08);
+		}
+	}
+	return newWidthTD;
+}
+
+function delete_border(ID, msg_sent)
+{
+	var borderElem = Element("border_id_" + ID)
+	if (borderElem)
+		borderElem.onclick = null; // It's avoid a FF3 bug
+	else
+		return false;
+
+	if (msg_sent == 'false')
+	{
+		var body = document.getElementById('body_'+ ID);
+		if (body)
+		{
+				var save_link = Element("save_message_options_"+ID);
+				if (openTab.toPreserve[ID] == undefined)
+					openTab.toPreserve[ID] = false;
+				if ((! openTab.toPreserve[ID] && ! ID.toString().match("_r")) || ((body.contentWindow) == 'object' && body.contentWindow.document.designMode.toLowerCase() == 'on') && (save_link.onclick != ''))
+				{
+					var discard_msg = confirm(get_lang("Your message has not been sent. Discard your message?"), "");
+					if (!discard_msg)
+					{
+						Element("border_id_"+ID).onclick = function () { alternate_border(ID);};
+						return;
+					}
+					else
+					{
+						if (openTab.imapBox[ID] && !openTab.toPreserve[ID]){
+							delete_msgs(openTab.imapBox[ID], openTab.imapUid[ID].toString(), 0)
+							delete(openTab.imapBox[ID]);
+							openTab.toPreserve[ID] = false;
+							}
+							// Element('to_'+ID).focus(); It crash on IE
+					}
+				}
+		}
+	}
+
+	openTab.toPreserve[ID] = false;
+	openTab.imapUid[ID] = 0;
+
+	if (preferences.auto_save_draft == 1)
+	{
+		if (openTab.autosave_timer[ID])
+			clearTimeout(openTab.autosave_timer[ID]);
+		openTab.autosave_timer[ID] = false;
+	}
+
+	hold_session = false;
+	if (exist_className(Element('border_id_'+ID),'menu-sel'))
+	{
+		if (BordersArray[BordersArray.length-2].sequence == ID)
+			this.alternate_border(0);
+		else
+			this.alternate_border(BordersArray[BordersArray.length-2].sequence);
+	}
+
+	// Remove TD, title
+	border = Element('border_id_' + ID);
+	border.parentNode.removeChild(border);
+	var j=0;
+	var new_BordersArray = new Array();
+	for (i=0;i<BordersArray.length;i++)
+		if (document.getElementById(BordersArray[i].border_id) != null){
+			new_BordersArray[j] = BordersArray[i];
+			j++;
+		}
+	if(j == 1)
+		Element("footer_menu").style.display = '';
+	BordersArray = new_BordersArray;
+
+	// Remove Div Content
+	content = Element('content_id_' + ID);
+	content.parentNode.removeChild(content);
+	return true;
+}
Index: tags/expressoMail1_2/1.234/js/InfoContact.js
===================================================================
--- tags/expressoMail1_2/1.234/js/InfoContact.js	(revision 790)
+++ tags/expressoMail1_2/1.234/js/InfoContact.js	(revision 790)
@@ -0,0 +1,179 @@
+ function emInfoContact()
+{
+	this.email = "";
+	this.timeout = null;
+	this.timeout_hide = null;
+	this._mousemove = document.onmousemove;
+	this.td;
+	this.createCard();
+}
+
+emInfoContact.prototype.createCard = function(){
+	var pic= new Image(); 
+	pic.src="./templates/"+template+"/images/card.gif"; 
+	card = document.createElement("DIV");
+	card.id = "card_cc";
+	card.style.display = "none";
+	card.style.width = "244px";
+	card.style.backgroundImage = "url("+pic.src+")";
+	card.style.height = "134px";
+	card.style.position = "absolute";
+	card.innerHTML = "<table onmouseout='InfoContact.timeout_hide=setTimeout(\"InfoContact.hide()\",50);' onmouseover='clearTimeout(InfoContact.timeout_hide);' cellpadding=0 cellspacing=0 width='100%' height='100%'><tr><td valign='center' align='center' id='card_cc_td'></td></tr></table>";
+	document.body.appendChild(card);
+}
+emInfoContact.prototype.begin = function(td, email){
+
+	var card = Element("card_cc");
+	
+	if(this.td != td){
+		this.email = email;
+		this.td = td;
+		clearTimeout(this.timeout);
+		this.timeout = setTimeout("InfoContact.search('"+email+"')",1000);
+	}	
+}
+
+emInfoContact.prototype.label = function (text){
+	InfoContact.hide();
+	var div_label = Element("div_label");
+	if(!div_label) {
+		div_label = document.createElement("DIV");
+		div_label.id = "div_label";
+		div_label.style.padding = "2px";
+		div_label.style.display = "none";
+		div_label.style.position = "absolute";
+		div_label.style.border = "1px solid black";
+		div_label.style.backgroundColor="#FFFFDC";
+		document.body.appendChild(div_label);
+	}
+	div_label.innerHTML = text;
+	div_label.style.top = findPosY(this.td) + 20 - Element("divScrollMain_"+numBox).scrollTop;
+	div_label.style.left = findPosX(this.td) + 20;
+	div_label.style.display = '';
+	setTimeout("InfoContact.hide()",1000);
+}
+
+emInfoContact.prototype.connectVoip = function (phoneUser, typePhone){
+	var handler_connectVoip = function(data){
+		if(!data) {
+			alert(get_lang("Error contacting VoIP server."));
+		}
+		else{
+			alert(get_lang("Requesting a VoIP call")+":\n"+data);
+		}
+	}
+	cExecute ("$this.functions.callVoipConnect&to="+phoneUser+"&typePhone="+typePhone, handler_connectVoip);
+}
+
+emInfoContact.prototype.show = function (data){
+	var _this = this;
+	var card = Element("card_cc");
+
+	//if(card.style.display != '')
+	 {
+		card.style.left = findPosX(this.td) + 20;
+		var y = findPosY(this.td) + 20 - Element("divScrollMain_"+numBox).scrollTop;
+		var w_height = is_ie ? document.body.clientHeight + document.body.scrollTop : window.innerHeight + window.pageYOffset;
+		if(y + 160 > w_height)
+			card.style.top =  y - 160;	
+		else
+			card.style.top = y;		
+		card.style.display = '';
+		var cn = data.cn;
+		if(cn && cn.toString().length > 35)
+			cn = cn.toString().substring(0,30) + "...";
+		
+		var phoneUser = data.telefone;
+		if(preferences.voip_enabled && phoneUser) {
+			phoneUser = "<a title=\""+get_lang("Call to Comercial Number")+"\" href=\"#\" onclick=\"InfoContact.connectVoip('"+phoneUser+"', 'com')\">"+phoneUser+"</a>";
+			if(data.mobile){
+				phoneUser += " / <a title=\""+get_lang("Call to Mobile Number")+"\" href=\"#\" onclick=\"InfoContact.connectVoip('"+data.mobile+"', 'mob')\">"+data.mobile+"</a>";
+			}
+		}
+
+		Element("card_cc_td").innerHTML = "<table cellpadding=0 cellspacing=0 border=0 height='100%' width='100%'><tr><td width='70' height='93' style='padding-top:5px;padding-left:6px' align='center' valign='center'>"+
+											"<img src='./inc/show_img.php?email="+data.email+"'></td><td style='padding-left:2px' align='left' valign='top'>"+
+											"<br><img align='center' src='templates/"+template+"/images/"+(data.type)+"_catalog.png'><font size=1 color=BLACK>&nbsp;<b>"+get_lang("Sender's Information")+"</b></font>"+
+											_this.verifyIM(data.uid,data.email)+
+											"<br><img align='center' src='templates/"+template+"/images/phone.gif'>&nbsp;<font  size=1  color=BLACK>"+(phoneUser ? phoneUser : get_lang("None") )+"</font>"+
+											"</td></tr><tr><td valign='top' align='center' colspan='2'>"+
+											"<font size=1 color=BLACK>"+cn+"</font>"+
+											"<br><span title='"+get_lang("Write message")+"' style='cursor:pointer' onclick='InfoContact.sendMail(\""+cn+"\",\""+data.email+"\")'><font size=1 color=DARKBLUE><u>"+data.email+"</u></font></span>"+
+											"</td></tr></table>";
+
+
+	this.timeout_hide = setTimeout("InfoContact.hide()",1000);
+	}
+}
+
+emInfoContact.prototype.search = function (email){
+	var _this = this;
+	var ldapSearched = false;
+	var handler_search = function(data){
+		if(data != null){			
+			_this.show(data);
+		}
+		else if(!ldapSearched) {
+			ldapSearched = true;
+			cExecute ("$this.ldap_functions.getUserByEmail&email="+email, handler_search);
+		}
+		else
+			_this.label(email);
+			
+	}
+
+	if(findPosX(_this.td) == 0) {
+		_this.hide();
+		return;
+	}
+
+	handler_search();
+	//cExecute ("$this.db_functions.getUserByEmail&email="+email, handler_search);
+}
+
+emInfoContact.prototype.hide = function(){
+	this.email = "";
+	clearTimeout(this.timeout);
+	if(Element("div_label"))
+		Element("div_label").style.display = 'none';
+
+	if(Element("card_cc")) 
+		Element("card_cc").style.display = "none";	
+}
+
+emInfoContact.prototype.sendMail = function(name, email){
+	Element("msg_number").value = "\""+ name+"\" <"+email+">";
+	InfoContact.hide();
+	new_message("new","null");
+}
+
+emInfoContact.prototype.openChat = function(event, email){
+	IM.action_button(event, '1', email ,false);
+}
+
+emInfoContact.prototype.verifyIM = function(uid, email){
+
+	if ( !window.IM || !document.getElementById('myStatus') )
+		return  "<br/><br/>";
+
+	var status = IM.infoContact(uid);
+	var _return = '<br/>';
+
+	if ( status )
+	{
+		_return += '<img align="center" src="'+status.src+'" />';
+		_return	+= '<span onclick="IM.action_button(event,\''+status.jid+'\');"><font size="1" color=';
+		
+		if( status.src != img_unavailable.src)
+			_return 	+= '"DARKBLUE"><u style="cursor:pointer;">'+get_lang("User connected")+"</u>";
+		else
+			_return 	+= '"BLACK">'+get_lang("User not connected");
+
+		_return	+= "</font></span><br />";
+	}
+
+	return _return;
+}
+/* Build the Object */
+var emInfoContact;
+InfoContact = new emInfoContact();
Index: tags/expressoMail1_2/1.234/js/sniff_browser.js
===================================================================
--- tags/expressoMail1_2/1.234/js/sniff_browser.js	(revision 553)
+++ tags/expressoMail1_2/1.234/js/sniff_browser.js	(revision 553)
@@ -0,0 +1,19 @@
+    var agt=navigator.userAgent.toLowerCase();
+    var is_major = parseInt(navigator.appVersion);
+    var is_minor = parseFloat(navigator.appVersion);    
+    var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
+                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
+                && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
+    var is_gecko = (agt.indexOf('gecko') != -1);
+    var is_gecko1_5 = (agt.indexOf('firefox/1.5') != -1 || agt.indexOf('firefox/2') != -1 || agt.indexOf('iceweasel/2') != -1 || agt.indexOf('firefox/3'));
+    var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
+    var is_ie3    = (is_ie && (is_major < 4));
+    var is_ie4    = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
+    var is_ie4up  = (is_ie && (is_major >= 4));
+    var is_ie5    = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
+    var is_ie5_5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));
+    var is_ie5up  = (is_ie && !is_ie3 && !is_ie4);
+    var is_ie5_5up =(is_ie && !is_ie3 && !is_ie4 && !is_ie5);
+    var is_ie6    = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) );
+    var is_ie6up  = (is_ie && !is_ie3 && !is_ie4 && !is_ie5 && !is_ie5_5);    
+    var is_win   = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );
Index: tags/expressoMail1_2/1.234/js/messages_proxy.js
===================================================================
--- tags/expressoMail1_2/1.234/js/messages_proxy.js	(revision 670)
+++ tags/expressoMail1_2/1.234/js/messages_proxy.js	(revision 670)
@@ -0,0 +1,253 @@
+/**
+ * @author diogenes
+ */
+
+	function messages_proxy() {
+		
+	}
+/**
+ * Retorna os cabeçalhos das mensagens a serem desenhadas na caixa de email.
+ */
+	messages_proxy.prototype.messages_list = function(folder,msg_range_begin,emails_per_page,sort_box_type,search_box_type,sort_box_reverse,call_back) {
+		if(this.is_local_folder(folder)) {
+			var real_folder = folder.substr(6);		
+			var msgs = expresso_local_messages.get_local_range_msgs(real_folder,msg_range_begin,emails_per_page,sort_box_type,sort_box_reverse,search_box_type);
+			eval('call_back(msgs)');
+		}else {
+			cExecute ("$this.imap_functions.get_range_msgs2&folder="+folder+"&msg_range_begin="+msg_range_begin+"&msg_range_end="+emails_per_page+"&sort_box_type="+sort_box_type+ "&search_box_type="+ search_box_type +"&sort_box_reverse="+sort_box_reverse+"", call_back);
+		}
+	}
+
+	messages_proxy.prototype.get_msg = function(msg_number,msg_folder,set_flag,call_back) {
+		if(this.is_local_folder(msg_folder)) {
+			if(set_flag)
+				expresso_local_messages.set_messages_flag(msg_number,"seen");
+			var data = expresso_local_messages.get_local_mail(msg_number);	
+			eval("call_back(data)");
+		}else {
+			cExecute("$this.imap_functions.get_info_msg&msg_number="+ msg_number + "&msg_folder=" + msg_folder, call_back);
+		}
+	}
+	
+	messages_proxy.prototype.delete_msgs = function(folder, msgs_number, border_ID) {
+
+		if (folder == 'null')
+			folder = get_current_folder();
+		if (msgs_number == 'selected')
+			msgs_number = get_selected_messages();
+			
+		if (!this.is_local_folder(folder)) 
+			delete_msgs(folder, msgs_number, border_ID);
+		else 
+			expresso_local_messages.delete_msgs(msgs_number,border_ID);
+	}
+	
+	messages_proxy.prototype.link_anexo = function (info_msg,numero_ordem_anexo) {
+
+		if(info_msg.local_message==true) {
+			return "javascript:download_local_attachment('"+
+					expresso_local_messages.get_url_anexo(info_msg.msg_number,info_msg.attachments[numero_ordem_anexo].pid)+
+					"')";
+		}
+		else {
+			return "javascript:download_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"',"+numero_ordem_anexo+",'"+info_msg.attachments[numero_ordem_anexo].pid+"','"+info_msg.attachments[numero_ordem_anexo].encoding+"')";
+		}
+	}
+
+	messages_proxy.prototype.proxy_source_msg = function (id_msg,folder) {
+		if(!this.is_local_folder(folder)) {
+			source_msg(id_msg,folder);
+		}
+		else {
+			var num_msg = id_msg.substr(0,(id_msg.length - 2));
+			expresso_local_messages.get_source_msg(num_msg);
+		}
+	}
+	
+	messages_proxy.prototype.proxy_set_messages_flag = function (flag,msg_number){
+		if(this.is_local_folder(get_current_folder())) {
+			expresso_local_messages.set_messages_flag(msg_number,flag);
+		}
+		else {
+			set_messages_flag(flag,msg_number);
+		}
+	}
+	
+	messages_proxy.prototype.is_local_folder = function(folder) {
+		if(folder.indexOf("local_")==-1)
+			return false;
+		return true;
+	}
+	
+
+	messages_proxy.prototype.proxy_rename_folder = function(){
+
+		if (ttree.FOLDER == 'local_Inbox') {
+			alert(get_lang("It's not possible rename the folder: ") + lang_folder(ttree.FOLDER.substr(6)));
+			return false;
+		}
+		if(ttree.FOLDER == 'local_root') {
+				alert(get_lang("It's not possible rename this folder!"));
+				return false;
+		}
+		if (this.is_local_folder(ttree.FOLDER)) {
+			folder = prompt(get_lang("Enter a name for the box"), "");
+			if(trim(folder) == "" || trim(folder) == null){
+				alert(get_lang("you have to enter the name of the new folder"));
+				return false;
+			}
+			var temp = expresso_local_messages.rename_folder(folder, ttree.FOLDER.substr(6));
+			if (!temp) 
+				alert(get_lang("cannot rename folder. try other folder name"));
+			ttreeBox.update_folder();
+		}
+		else {
+			ttreeBox.validate("rename");
+		}
+		
+	}
+
+	messages_proxy.prototype.proxy_create_folder = function() {
+		if (ttree.FOLDER == 'local_root') {
+
+			folder = prompt(get_lang('Enter the name of the new folder:'), "");
+
+			if(trim(folder) == "" || trim(folder) == null){
+				alert(get_lang("you have to enter the name of the new folder"));
+				return false;
+			}
+			var temp = expresso_local_messages.create_folder(folder);
+			if (!temp) 
+				alert(get_lang("cannot create folder. try other folder name"));
+			ttreeBox.update_folder();
+		}
+		else 
+			if (!this.is_local_folder(ttree.FOLDER))
+				ttreeBox.validate("newpast");
+
+			else 
+				alert(get_lang("It's not possible create inside: ") + lang_folder(ttree.FOLDER.substr(6)));
+	}
+	
+	messages_proxy.prototype.proxy_remove_folder = function() {
+		if (this.is_local_folder(ttree.FOLDER)) {
+			if(ttree.FOLDER == 'local_root') {
+				alert(get_lang("Select a folder!"));
+				return false;
+			}
+			if (ttree.FOLDER == 'local_Inbox') {
+				alert(get_lang("It's not possible delete the folder: ")  + lang_folder(ttree.FOLDER.substr(6)));
+				return false;
+			}
+			var string_confirm = get_lang("Do you wish to exclude the folder ") + ttree.FOLDER.substr(6) + "?";
+
+			if (confirm(string_confirm)) {
+				expresso_local_messages.remove_folder(ttree.FOLDER.substr(6));
+				alert(get_lang("The folder %1 was successfully removed", ttree.FOLDER.substr(6)));
+				ttreeBox.update_folder();
+			}
+		}
+		else
+			ttreeBox.del();
+	}
+
+	messages_proxy.prototype.proxy_move_messages = function (folder, msgs_number, border_ID, new_folder, new_folder_name) {
+		if (! folder || folder == 'null')
+			folder = Element("input_folder_"+msgs_number+"_r") ? Element("input_folder_"+msgs_number+"_r").value : get_current_folder();
+
+		if ((this.is_local_folder(folder)) && (this.is_local_folder(new_folder))) { //Move entre pastas não locais...
+			if (folder == new_folder){
+				write_msg(get_lang('The origin folder and the destination folder are the same.'));
+				return;
+			}
+			if(msgs_number=='selected')
+				msgs_number = get_selected_messages();
+			if (new_folder == 'local_root')
+				alert(get_lang("Select a folder!"));
+			if (parseInt(msgs_number) > 0 || msgs_number.length > 0) {
+				expresso_local_messages.move_messages(new_folder.substr(6), msgs_number);
+				this.aux_interface_remove_mails(msgs_number, new_folder_name, border_ID);
+			}
+			else 
+				write_msg(get_lang('No selected message.'));
+		}
+		else 
+			if ((!this.is_local_folder(folder)) && (!this.is_local_folder(new_folder))) { //Move entre pastas locais...
+				move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name);
+			}
+			else if ((!this.is_local_folder(folder)) && (this.is_local_folder(new_folder))) {
+				if(msgs_number=='selected')
+					archive_msgs(folder,new_folder);
+				else
+					archive_msgs(folder,new_folder,msgs_number);
+			}
+			else {
+				write_msg(get_lang("you can't move mails from local to server folders"));
+			}
+		
+		
+	}
+	
+	messages_proxy.prototype.proxy_move_search_messages = function(border_id, new_folder, new_folder_name) {
+		
+		
+		/*
+		
+		
+		if ((this.is_local_folder(folder)) && (this.is_local_folder(new_folder))) { //Move entre pastas não locais...
+			if (folder == new_folder){
+				write_msg(get_lang('The origin folder and the destination folder are the same.'));
+				return;
+			}
+			if(msgs_number=='selected')
+				msgs_number = get_selected_messages();
+			if (new_folder == 'local_root')
+				alert(get_lang("Select a folder!"));
+			if (parseInt(msgs_number) > 0 || msgs_number.length > 0) {
+				expresso_local_messages.move_messages(new_folder.substr(6), msgs_number);
+				this.aux_interface_remove_mails(msgs_number, new_folder_name, border_ID);
+			}
+			else 
+				write_msg(get_lang('No selected message.'));
+		}
+		else 
+			if ((!this.is_local_folder(folder)) && (!this.is_local_folder(new_folder))) { //Move entre pastas locais...
+				move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name);
+			}
+			else if ((!this.is_local_folder(folder)) && (this.is_local_folder(new_folder))) {
+				archive_msgs(folder,new_folder);
+			}
+			else {
+				write_msg(get_lang("you can't move mails from local to server folders"));
+			}*/
+	}
+	
+	messages_proxy.prototype.aux_interface_remove_mails = function(msgs_number,new_folder_name,border_ID,previous_msg) {
+		Element('chk_box_select_all_messages').checked = false;
+		mail_msg = Element("tbody_box");
+		msgs_number = msgs_number.split(",");
+		var msg_to_delete;
+		for (var i=0; i<msgs_number.length; i++){
+			msg_to_delete = Element(msgs_number[i]);
+			if (msg_to_delete){
+				if ( (msg_to_delete.style.backgroundColor != '') && (preferences.use_shortcuts == '1') )
+					select_msg('null', 'down');
+				mail_msg.removeChild(msg_to_delete);
+			}
+		}
+		if (msgs_number.length == 1)
+			write_msg(get_lang("The message was moved to folder ") + new_folder_name);
+		else
+			write_msg(get_lang("The messages were moved to folder ") + new_folder_name);
+
+		if (border_ID != '' && border_ID != 'null'){
+				delete_border(border_ID,'false');
+		}
+		if(folder == get_current_folder())
+			Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) - msgs_number.length;			
+		refresh();		
+		
+	}
+
+	var proxy_mensagens;
+	proxy_mensagens = new messages_proxy();
Index: tags/expressoMail1_2/1.234/js/filters.js
===================================================================
--- tags/expressoMail1_2/1.234/js/filters.js	(revision 810)
+++ tags/expressoMail1_2/1.234/js/filters.js	(revision 810)
@@ -0,0 +1,240 @@
+var rules_limit = 300;
+
+	function cfilterSh(){
+		this.filter_Sh   = new Array;
+		this.qvfaf		 = "";
+		
+		// Images
+		this.grp_open_img = new Image();
+		this.grp_open_img.src = 'templates/'+template+'/images/filtro/group_open.gif';
+		this.grp_close_img = new Image();
+		this.grp_close_img.src = 'templates/'+template+'/images/filtro/group_close.gif';
+		this.filter_img = new Image();
+		this.filter_img.src = 'templates/'+template+'/images/filtro/filters.gif';
+		this.for_email_img = new Image();
+		this.for_email_img.src = 'templates/'+template+'/images/filtro/answered.gif';
+		this.telephone_voip = new Image();
+		this.telephone_voip.src = 'templates/'+template+'/images/filtro/telephone_voip.jpg';
+	}		
+
+	cfilterSh.prototype.Forms = function(){
+	
+		var form = document.createElement("DIV");
+		form.id  = "window_ffilter_ccform";
+		form.style.visibility = "hidden";
+		form.style.position = "absolute";
+		form.style.left = "0px";
+		form.style.top  = "0px"; 
+		form.style.width = "0px";
+		form.style.height = "0px";
+		document.body.appendChild(form);
+
+		var form_cont = document.createElement("SPAN");
+		form_cont.id = "form_status";
+		form_cont.style.display = "block";			
+		form_cont.style.position = "absolute";
+		form_cont.style.top = "10px";
+		form_cont.style.left = "600px";
+		form_cont.innerHTML = "";
+		form.appendChild(form_cont);
+		
+		var form_buttons = document.createElement("DIV");
+		form_buttons.id = "form_buttons";
+		form_buttons.style.position = "absolute";
+		form_buttons.style.display = "";
+		form_buttons.style.top = "320px";
+		form_buttons.style.left = "5px";
+		form_buttons.style.width = "655px";
+		form_buttons.innerHTML = "<input type='button' value="+get_lang("Enable")+" onclick='filter.enabled_disabled(\"ENABLED\");'>"+
+								 "&nbsp;<input type='button' value="+get_lang("Disable")+" onclick='filter.enabled_disabled(\"DISABLED\");'>"+	
+								 "&nbsp;<input type='button' value="+get_lang("Remove")+" onclick='filter.delete_r();'>"+
+ 								 "&nbsp;<input type='button' value="+get_lang("Close")+" onclick='filter.close_frm();'>";
+
+		form.appendChild(form_buttons);
+		
+		var form_body = document.createElement("DIV");
+		form_body.id = "form_body";
+		form_body.style.position = "absolute";
+		form_body.style.left = "5px";
+		form_body.style.top = "5px";
+		form_body.style.width = "668px";
+		form_body.style.height = "310px";
+		form_body.style.borderStyle = "outset";
+		form_body.style.borderColor = "black";
+		form_body.style.borderWidth = "1px";
+		form_body.style.overflow = "auto";
+		form.appendChild(form_body);	
+
+		this.showWindow(form);
+		filter.load_rules();
+		this.list_rules();			
+	
+	}
+
+	cfilterSh.prototype.list_rules = function(){
+		if(filter.rulest.length == 0)
+			setTimeout("filters.mount_list()",2500);
+		else
+			this.mount_list();
+	}
+
+	cfilterSh.prototype.mount_list = function(){
+
+		Element('form_status').innerHTML = "";
+		var list = "";
+	
+		// rules
+		if(filter.rulest.length == 0){
+			list = "<img id='set_rules_img' src='" + this.grp_close_img.src + "' border='0' />&nbsp;<span><b>"+get_lang('list of the filters') + " - ( " + filter.rulest.length + " ) </b></span> - " + "<a href='javascript:filters.n_rule()'>" + get_lang("new rule") + "</a>";		
+		}else{
+			if ( filter.rulest.length < rules_limit ) //Limit of rules
+				list = "<img id='set_rules_img' src='" + this.grp_open_img.src + "' onclick='visibleRulesFalse(\"set_rules\");' border='0' />&nbsp;<span><b>"+get_lang('list of the filters') + " - ( " + filter.rulest.length + " ) </b></span> - " + "<a href='javascript:filters.n_rule();'>" + get_lang("new rule") + "</a>";
+			else
+				list = "<img id='set_rules_img' src='" + this.grp_open_img.src + "' onclick='visibleRulesFalse(\"set_rules\");' border='0' />&nbsp;<span><b>"+get_lang('list of the filters') + " - ( " + filter.rulest.length + " ) </b></span> - " + get_lang("You have reached the maximum number of rules");
+			
+			list += "<div id='set_rules'>";
+			
+			for(var i= 0; i < filter.rulest.length; i++)
+			{
+				list += "<input id=rule_"+i+" type='checkBox'>&nbsp;<img src='"+this.filter_img.src+"' width='16' height='16' border='0' />&nbsp;" + get_lang("Rule")+" : " + parseInt(i+1) + " -- " + this.vl_rule(filter.rulest[i],i,'') + "<br>";
+			}
+			list += "</div>";			
+		}
+		
+		list += "<br/>";
+		
+		// out office
+		if(!filter.out_officeR){
+			list += "<img id='set_out_img' src='"+this.grp_close_img.src+"' border='0' />&nbsp;";
+			list += "<span><b>"+get_lang('out office') + " - ( 0 ) </b></span> " + "<a href='javascript:filters.n_out_office()'>" + get_lang("new rule") + "</a>";			
+		}else{
+			list += "<img id='set_out_img' src='"+this.grp_open_img.src+"' onclick='visibleRulesFalse(\"set_out\");' border='0' />&nbsp;";
+			list += "<span><b>"+get_lang('out office') + " - ( 1 )</b></span>";
+			list += "<div id='set_out'>";
+			list += "<input id='out_0' type='checkBox'><img id='set_out_form_email_img' src='"+this.for_email_img.src+"' border='0'>";
+			list += " " + this.vl_outOffice(filter.out_officeR) + " " ;
+			list += "</div>";
+		}
+		list += "<br/>";
+	
+		// Voip
+		if(preferences.voip_email_redirect)
+		{
+			if( filter.rulesVoip.length == 0)
+			{
+				list += "<img id='voip_rule_img' src='"+this.grp_close_img.src+"' border='0' />&nbsp;<span><b>" + get_lang('Phone Warnings List') + " - ( " + filter.rulesVoip.length + " ) </b></span> - " + "<a href='javascript:filters.n_voipFilter();'>" + get_lang("new rule") + "</a>";		
+			}
+			else
+			{
+				if ( filter.rulest.length < rules_limit ) //Limit of rules
+					list += "<img id='voip_rule_img' src='"+this.grp_open_img.src+"' onclick='visibleRulesFalse(\"voip_rule\");' border='0'/>&nbsp;<span><b>" + get_lang('Phone Warnings List') + " - ( " + filter.rulesVoip.length + " ) </b></span> - " + "<a href='javascript:filters.n_voipFilter()'>" + get_lang("new rule") + "</a>";
+				else
+					list += "<img id='voip_rule_img' src='"+this.grp_open_img.src+"' onclick='visibleRulesFalse(\"voip_rule\");' border='0'/>&nbsp;<span><b>" + get_lang('Phone Warnings List') + " - ( " + filter.rulesVoip.length + " ) </b></span> - " + get_lang("You have reached the maximum number of rules");
+					
+				list += "<div id='voip_rule'>";
+				for(var i= 0; i < filter.rulesVoip.length; i++)
+				{
+					list += "<input id='voip_rule_"+i+"' type='checkBox'>&nbsp;<img src='"+this.telephone_voip.src+"' width='16' height='16' border='0'/>&nbsp;" + get_lang("Rule")+" : " + parseInt(i+1) + " -- " + this.vl_rule(filter.rulesVoip[i],i,'voip') + "<br>";
+				}
+				list += "</div>";
+			}
+		}
+
+		Element("form_body").innerHTML = list;
+	}
+	
+	cfilterSh.prototype.vl_rule = function(rule,pos,type)
+	{
+		var fields = rule.split("&&");
+		if(type == 'voip')
+			return " <a href='javascript:void(0)' onclick=filter.form_r('"+pos+"','voip')><b>" + get_lang("Status") + " : </b>" + "<font color='red'>" + get_lang(fields[2]) + "</font>" + " - " + fields[3] + " <b>" + get_lang("Subject") + ":</b> " + fields[5] + "</a>";
+		else
+			return " <a href='javascript:void(0)' onclick=filter.form_r('"+pos+"','')><b>" + get_lang("Status") + " : </b>" + "<font color='red'>" + get_lang(fields[2]) + "</font>" + " - <b>" + get_lang("E-mail rule") + ":</b> " + fields[3] + " - <b>" + get_lang("Action") + ":</b> " + fields[6] + "</a>";
+	}
+	
+	cfilterSh.prototype.vl_outOffice = function(outOffice){		
+		var aux = outOffice.split("&&");
+		return get_lang("Rule") + " - <a href='javascript:void(0)' onclick=filter.form_out()> " + "<b>" + get_lang("Status") + " : </b><font color='red'>" + (aux[4] == "off" ? get_lang("Disabled") : get_lang("Enabled")) + "</font></a>";
+	}
+	
+	cfilterSh.prototype.n_rule = function()
+	{
+		Element('form_body').innerHTML = "";
+		Element('form_body').innerHTML = filter.forms_();	
+		Element('div_rule').style.display = "block";
+		filter.ac_form = "new_rule";
+		Element('form_buttons').style.display = 'none';
+		filter.sel_boxes();
+
+	}
+
+	cfilterSh.prototype.n_out_office = function()
+	{
+		Element('form_body').innerHTML = "";
+		Element('form_body').innerHTML = filter.forms_();	
+		Element('div_vacation').style.display = "block";			
+		Element('form_buttons').style.display = 'none';
+		filter.ac_form = "new_out";	
+	}
+
+	cfilterSh.prototype.n_voipFilter = function()
+	{
+		Element('form_body').innerHTML = "";
+		Element('form_body').innerHTML = filter.forms_();
+		Element('div_voipFilter').style.display = "block";	
+		Element('form_buttons').style.display = 'none';
+		filter.ac_form = "new_voip";
+	}
+
+	function visibleRulesFalse(el)
+	{
+		Element(el).style.display = "none";
+		Element(el+"_img").src = filters.grp_close_img.src;
+		Element(el+"_img").onclick = function(){visibleRulesTrue(el);};
+	}
+
+	function visibleRulesTrue(el)
+	{
+		Element(el).style.display = "";
+		Element(el+"_img").src = filters.grp_open_img.src;
+		Element(el+"_img").onclick = function(){visibleRulesFalse(el);};
+	}
+
+	cfilterSh.prototype.showWindow = function (div)
+	{
+		if(! this.filter_Sh[div.id]) {
+			div.style.width = "680px";
+			div.style.height = "345px";
+			div.style.visibility = "hidden";
+			div.style.position = "absolute";
+			div.style.zIndex = "10000";			
+			var title = ':: ' + get_lang('Filters management') + ' - ' + get_lang('Filters maintenance') + ':: ';
+			var wHeight = div.offsetHeight + "px";
+			var wWidth =  div.offsetWidth   + "px";
+
+			win = new dJSWin({			
+				id: 'filter'+div.id,
+				content_id: div.id,
+				width: wWidth,
+				height: wHeight,
+				title_color: '#3978d6',
+				bg_color: '#eee',
+				title: title,						
+				title_text_color: 'white',
+				button_x_img: '../phpgwapi/images/winclose.gif',
+				border: true });
+			
+			this.filter_Sh[div.id] = win;
+			win.draw();
+		}else{
+			div.innerHTML = '';
+			win = this.filter_Sh[div.id];
+			filter.form_m();			
+		}
+		win.open();
+	}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// build object
+ 	var filters;
+	filters = new cfilterSh();
Index: tags/expressoMail1_2/1.234/js/shortcut.js
===================================================================
--- tags/expressoMail1_2/1.234/js/shortcut.js	(revision 790)
+++ tags/expressoMail1_2/1.234/js/shortcut.js	(revision 790)
@@ -0,0 +1,522 @@
+/**
+ * http://www.openjs.com/scripts/events/keyboard_shortcuts/
+ * Version : 2.01.A
+ * By Binny V A
+ * License : BSD
+ */
+shortcut = {
+	'all_shortcuts':{},//All the shortcuts are stored in this array
+	'add': function(shortcut_combination,callback,opt) {
+		//Provide a set of default options
+		var default_options = {
+			'type':'keydown',
+			'propagate':false,
+			'disable_in_input':false,
+			'target':document,
+			'keycode':false
+		}
+		if(!opt) opt = default_options;
+		else {
+			for(var dfo in default_options) {
+				if(typeof opt[dfo] == 'undefined') opt[dfo] = default_options[dfo];
+			}
+		}
+
+		var ele = opt.target
+		if(typeof opt.target == 'string') ele = document.getElementById(opt.target);
+		var ths = this;
+		shortcut_combination = shortcut_combination.toLowerCase();
+
+		//The function to be called at keypress
+		var func = function(e) {
+			e = e || window.event;
+			
+			if(opt['disable_in_input']) { //Don't enable shortcut keys in Input, Textarea fields
+				var element;
+				if(e.target) element=e.target;
+				else if(e.srcElement) element=e.srcElement;
+				if(element.nodeType==3) element=element.parentNode;
+
+				if(element.tagName == 'INPUT' || element.tagName == 'TEXTAREA') return;
+			}
+	
+			//Find Which key is pressed
+			if (e.keyCode) code = e.keyCode;
+			else if (e.which) code = e.which;
+			var character = String.fromCharCode(code).toLowerCase();
+			
+			if(code == 188) character=","; //If the user presses , when the type is onkeydown
+			if(code == 190) character="."; //If the user presses , when the type is onkeydown
+	
+			var keys = shortcut_combination.split("+");
+			//Key Pressed - counts the number of valid keypresses - if it is same as the number of keys, the shortcut function is invoked
+			var kp = 0;
+			
+			//Work around for stupid Shift key bug created by using lowercase - as a result the shift+num combination was broken
+			var shift_nums = {
+				"`":"~",
+				"1":"!",
+				"2":"@",
+				"3":"#",
+				"4":"$",
+				"5":"%",
+				"6":"^",
+				"7":"&",
+				"8":"*",
+				"9":"(",
+				"0":")",
+				"-":"_",
+				"=":"+",
+				";":":",
+				"'":"\"",
+				",":"<",
+				".":">",
+				"/":"?",
+				"\\":"|"
+			}
+			//Special Keys - and their codes
+			var special_keys = {
+				'esc':27,
+				'escape':27,
+				'tab':9,
+				'space':32,
+				'return':13,
+				'enter':13,
+				'backspace':8,
+	
+				'scrolllock':145,
+				'scroll_lock':145,
+				'scroll':145,
+				'capslock':20,
+				'caps_lock':20,
+				'caps':20,
+				'numlock':144,
+				'num_lock':144,
+				'num':144,
+				
+				'pause':19,
+				'break':19,
+				
+				'insert':45,
+				'home':36,
+				'delete':46,
+				'end':35,
+				
+				'pageup':33,
+				'page_up':33,
+				'pu':33,
+	
+				'pagedown':34,
+				'page_down':34,
+				'pd':34,
+	
+				'left':37,
+				'up':38,
+				'right':39,
+				'down':40,
+	
+				'f1':112,
+				'f2':113,
+				'f3':114,
+				'f4':115,
+				'f5':116,
+				'f6':117,
+				'f7':118,
+				'f8':119,
+				'f9':120,
+				'f10':121,
+				'f11':122,
+				'f12':123
+			}
+	
+			var modifiers = { 
+				shift: { wanted:false, pressed:false},
+				ctrl : { wanted:false, pressed:false},
+				alt  : { wanted:false, pressed:false},
+				meta : { wanted:false, pressed:false}	//Meta is Mac specific
+			};
+                        
+			if(e.ctrlKey)	modifiers.ctrl.pressed = true;
+			if(e.shiftKey)	modifiers.shift.pressed = true;
+			if(e.altKey)	modifiers.alt.pressed = true;
+			if(e.metaKey)   modifiers.meta.pressed = true;
+                        
+			for(var i=0; k=keys[i],i<keys.length; i++) {
+				//Modifiers
+				if(k == 'ctrl' || k == 'control') {
+					kp++;
+					modifiers.ctrl.wanted = true;
+
+				} else if(k == 'shift') {
+					kp++;
+					modifiers.shift.wanted = true;
+
+				} else if(k == 'alt') {
+					kp++;
+					modifiers.alt.wanted = true;
+				} else if(k == 'meta') {
+					kp++;
+					modifiers.meta.wanted = true;
+				} else if(k.length > 1) { //If it is a special key
+					if(special_keys[k] == code) kp++;
+					
+				} else if(opt['keycode']) {
+					if(opt['keycode'] == code) kp++;
+
+				} else { //The special keys did not match
+					if(character == k) kp++;
+					else {
+						if(shift_nums[character] && e.shiftKey) { //Stupid Shift key bug created by using lowercase
+							character = shift_nums[character]; 
+							if(character == k) kp++;
+						}
+					}
+				}
+			}
+
+			if(kp == keys.length && 
+						modifiers.ctrl.pressed == modifiers.ctrl.wanted &&
+						modifiers.shift.pressed == modifiers.shift.wanted &&
+						modifiers.alt.pressed == modifiers.alt.wanted &&
+						modifiers.meta.pressed == modifiers.meta.wanted) {
+				callback(e);
+	
+				if(!opt['propagate']) { //Stop the event
+					//e.cancelBubble is supported by IE - this will kill the bubbling process.
+					e.cancelBubble = true;
+					e.returnValue = false;
+	
+					//e.stopPropagation works in Firefox.
+					if (e.stopPropagation) {
+						e.stopPropagation();
+						e.preventDefault();
+					}
+					return false;
+				}
+			}
+		}
+		this.all_shortcuts[shortcut_combination] = {
+			'callback':func, 
+			'target':ele, 
+			'event': opt['type']
+		};
+		//Attach the function with the event
+		if(ele.addEventListener) ele.addEventListener(opt['type'], func, false);
+		else if(ele.attachEvent) ele.attachEvent('on'+opt['type'], func);
+		else ele['on'+opt['type']] = func;
+	},
+
+	//Remove the shortcut - just specify the shortcut and I will remove the binding
+	'remove':function(shortcut_combination) {
+		shortcut_combination = shortcut_combination.toLowerCase();
+		var binding = this.all_shortcuts[shortcut_combination];
+		delete(this.all_shortcuts[shortcut_combination])
+		if(!binding) return;
+		var type = binding['event'];
+		var ele = binding['target'];
+		var callback = binding['callback'];
+
+		if(ele.detachEvent) ele.detachEvent('on'+type, callback);
+		else if(ele.removeEventListener) ele.removeEventListener(type, callback, false);
+		else ele['on'+type] = false;
+	}
+}
+
+/* ExpressMail Functions */
+var shift_up_count = 0;
+var shift_down_count = 0;
+shortcut.add("N",function(){ new_message("new","null"); },{'disable_in_input':true});
+
+shortcut.add("Esc",function(){
+	var window_closed = false;
+	for(var window in arrayJSWin)
+	{
+		if (arrayJSWin[window].visible)
+		{
+			arrayJSWin[window].close();
+			window_closed = true;
+		}
+	}
+	if (!window_closed)
+		delete_border(get_msg_id(), 'false');
+},{'disable_in_input':false});
+
+shortcut.add("I",function(){ exec_msg_action('print'); },{'disable_in_input':true});
+shortcut.add("E",function(){ exec_msg_action('forward'); },{'disable_in_input':true});
+shortcut.add("R",function(){ exec_msg_action('reply'); },{'disable_in_input':true});
+shortcut.add("Delete",function(){
+	if ( Element('border_id_0').className==='menu-sel' )
+	{
+		var selected_shortcut_msgs = '';
+		var tbody_box = Element('tbody_box');
+		all_messages = Element('tbody_box').childNodes;
+		
+		for (var i=0; i < all_messages.length; i++)
+		{
+			if ( exist_className(all_messages[i], 'selected_shortcut_msg') )
+			{
+				selected_shortcut_msgs += all_messages[i].id + ',';
+			}
+		}
+		
+		selected_shortcut_msgs = selected_shortcut_msgs.substring(0,(selected_shortcut_msgs.length-1));
+		proxy_mensagens.delete_msgs(current_folder, selected_shortcut_msgs, 'null');
+	}
+	else
+		exec_msg_action('delete');
+}
+,{'disable_in_input':true});
+
+shortcut.add("Ctrl+Up",function(){ exec_msg_action('previous'); select_msg('null', 'up', true);},{'disable_in_input':true});
+shortcut.add("Ctrl+Down",function(){ exec_msg_action('next'); select_msg('null', 'down', true);},{'disable_in_input':true});
+
+if (is_ie)
+{
+	shortcut.add("down",function(){ select_msg('null', 'down'); },{'disable_in_input':false});
+	shortcut.add("up",function(){ select_msg('null', 'up'); },{'disable_in_input':false});	
+	
+	shortcut.add("Shift+down",function(){
+		if ( Element('border_id_0').className==='menu-sel' )
+		{
+			if (shift_up_count > 0)
+				unselect_top_msg();
+			else
+				select_bottom_msg();
+		}
+	},{'disable_in_input':true, 'propagate':false});
+	
+	shortcut.add("Shift+up",function(){
+		if ( Element('border_id_0').className==='menu-sel' )
+		{
+			if (shift_down_count > 0)
+				unselect_bottom_msg();
+			else
+				select_top_msg();
+		}
+	},{'disable_in_input':true, 'propagate':false});
+}
+else
+{
+	shortcut.add("down",function(){ select_msg('null', 'down');},{'type':'keypress', 'disable_in_input':false});
+	shortcut.add("up",function(){ select_msg('null', 'up'); },{'type':'keypress', 'disable_in_input':false});
+	
+	shortcut.add("Shift+down",function(){
+		if ( Element('border_id_0').className==='menu-sel' )
+		{
+			if (shift_up_count > 0)
+				unselect_top_msg();
+			else
+				select_bottom_msg();
+		}
+	},{'type':'keypress','disable_in_input':true, 'propagate':false});
+	
+	shortcut.add("Shift+up",function(){
+		if ( Element('border_id_0').className==='menu-sel' )
+		{
+			if (shift_down_count > 0)
+				unselect_bottom_msg();
+			else
+				select_top_msg();
+		}
+	},{'type':'keypress', 'disable_in_input':true, 'propagate':false});
+}
+
+shortcut.add("return",function(){
+	if ( Element('border_id_0').className==='menu-sel' )
+	{
+		all_messages = Element('tbody_box').childNodes;
+		for (var i=0; i < all_messages.length; i++)
+		{
+			if ( exist_className(all_messages[i], 'selected_shortcut_msg') )
+			{
+				Element("td_who_" + all_messages[i].id).onclick();
+				return;
+			}
+		}
+	}
+}
+,{'disable_in_input':true});
+
+shortcut.add("f9",function(){
+	Element("em_refresh_button").onclick();
+	return;
+},{'disable_in_input':true});
+
+function exec_msg_action(action)
+{
+	var msg_id = get_msg_id();
+	if (msg_id)
+	{
+		var msg_id = 'msg_opt_' + action + '_' + msg_id;
+		try {Element(msg_id).onclick();}
+		catch(e){/*alert(e);*/}
+	}
+	return;
+}
+
+function get_msg_id()
+{
+	children = Element('border_tr').childNodes;
+	
+	for (var i=0; i<children.length; i++)
+	{
+		if ( (children[i].nodeName==='TD') && (children[i].className==='menu-sel') && children[i].id != 'border_id_0')
+		{
+			var border_selected = children[i];
+			var msg_id = border_selected.id.replace("border_id_","");
+			return msg_id;
+		}
+	}
+	return false;
+}
+
+function select_msg(msg_number, keyboard_action, force_msg_selection)
+{
+	//Select msg, even if the focus isn't the border_id_0
+	if ( (Element('border_id_0').className != 'menu-sel') && (!force_msg_selection) )
+		return;
+
+	shift_up_count = 0;
+	shift_down_count = 0;
+
+	if (msg_number != 'null')
+	{
+		unselect_all_msgs();
+		add_className(Element(msg_number), 'selected_shortcut_msg')
+	}
+	else
+	{
+		all_messages = Element('tbody_box').childNodes;
+		if (keyboard_action == 'down')
+		{
+			// Ultimo elemento ja esta selecionado
+			if ( exist_className(all_messages[all_messages.length-1], 'selected_shortcut_msg') )
+			{
+				unselect_all_msgs();
+				add_className(all_messages[all_messages.length-1], 'selected_shortcut_msg')
+				return false;
+			}
+			
+			for (var i=all_messages.length-1; i >=0; i--)
+			{
+				if ( exist_className(all_messages[i], 'selected_shortcut_msg') )
+				{
+					add_className(all_messages[i+1], 'selected_shortcut_msg')
+					var mailPos = i;
+					break;
+				}
+			}
+			for (; i>=0; i--)
+			{
+				remove_className(all_messages[i], 'selected_shortcut_msg');
+			}
+		var scrollMain = Element('divScrollMain_0');
+//		var selection_size = all_messages[1].offsetTop; 
+		var selection_size = parseInt(preferences.line_height) + 10;
+		
+		if ((mailPos) && (parseInt(scrollMain.style.height.substr(0,scrollMain.style.height.length-2)) + scrollMain.scrollTop < all_messages[mailPos].offsetTop + selection_size))
+			scrollMain.scrollTop += selection_size;
+		}
+		else
+		{
+			if ( exist_className(all_messages[0], 'selected_shortcut_msg') )
+			{
+				unselect_all_msgs();
+				add_className(all_messages[0], 'selected_shortcut_msg')
+				return false;
+			}
+			
+			for (var i=0; i < all_messages.length; i++)
+			{
+				if ( exist_className(all_messages[i], 'selected_shortcut_msg') )
+				{
+					add_className(all_messages[i-1], 'selected_shortcut_msg')
+					var mailPos = i;
+					break;
+				}
+			}
+			for (; i< all_messages.length; i++)
+			{
+				remove_className(all_messages[i], 'selected_shortcut_msg')
+			}
+		var scrollMain = Element('divScrollMain_0');
+		var selection_size = parseInt(preferences.line_height) + 10;
+		if (all_messages[mailPos].offsetTop <= scrollMain.scrollTop)
+			scrollMain.scrollTop -= selection_size+10;
+		}
+			return true;
+		}
+	}
+
+function select_bottom_msg()
+{
+	all_messages = Element('tbody_box').childNodes;
+	
+	if ( exist_className(all_messages[all_messages.length-1], 'selected_shortcut_msg') )
+		return;
+	
+	for (var i=all_messages.length-1; i >=0; i--)
+	{
+		if ( (exist_className(all_messages[i], 'selected_shortcut_msg')) && (i+1 <= all_messages.length-1) )
+		{
+			shift_down_count++;
+			add_className(all_messages[i+1], 'selected_shortcut_msg');
+			break;
+		}
+	}
+}
+
+function select_top_msg()
+{
+	all_messages = Element('tbody_box').childNodes;
+		
+	if ( exist_className(all_messages[0], 'selected_shortcut_msg') )
+		return;
+	
+	for (var i=0; i <=all_messages.length-1; i++)
+	{
+		if ( exist_className(all_messages[i], 'selected_shortcut_msg') )
+		{
+			shift_up_count++;
+			add_className(all_messages[i-1], 'selected_shortcut_msg');
+			break;
+		}
+	}
+}
+
+function unselect_bottom_msg()
+{
+	all_messages = Element('tbody_box').childNodes;
+	for (var i=all_messages.length-1; i >=0; i--)
+	{
+		if ( exist_className(all_messages[i], 'selected_shortcut_msg') )
+		{
+			shift_down_count--;
+			remove_className(all_messages[i], 'selected_shortcut_msg');
+			break;
+		}
+	}
+}
+
+function unselect_top_msg()
+{
+	all_messages = Element('tbody_box').childNodes;
+	for (var i=0; i <=all_messages.length-1; i++)
+	{
+		if ( exist_className(all_messages[i], 'selected_shortcut_msg') )
+		{
+			shift_up_count--;
+			remove_className(all_messages[i], 'selected_shortcut_msg');
+			break;
+		}
+	}
+}
+
+function unselect_all_msgs()
+{
+	all_messages = Element('tbody_box').childNodes;
+	for (var i=0; i <=all_messages.length-1; i++)
+	{
+		remove_className(all_messages[i], 'selected_shortcut_msg');
+	}
+}
Index: tags/expressoMail1_2/1.234/js/sharemailbox.js
===================================================================
--- tags/expressoMail1_2/1.234/js/sharemailbox.js	(revision 790)
+++ tags/expressoMail1_2/1.234/js/sharemailbox.js	(revision 790)
@@ -0,0 +1,368 @@
+	function cShareMailbox()
+	{
+		this.arrayWin = new Array();
+		this.el;
+		this.alert = false;
+	}
+
+	cShareMailbox.prototype.get_available_users = function(context)
+	{
+		var handler_get_available_users = function(data)
+		{
+			select_available_users = document.getElementById('em_select_available_users');
+		
+			//Limpa o select
+			for(var i=0; i<select_available_users.options.length; i++)
+			{
+				select_available_users.options[i] = null;
+				i--;
+			}
+
+			if ((data) && (data.length > 0))
+			{
+				// Necessario, pois o IE6 tem um bug que retira o primeiro options se o innerHTML estiver vazio.
+				select_available_users.innerHTML = '#' + data;
+				select_available_users.outerHTML = select_available_users.outerHTML;
+			
+				select_available_users.disabled = false;
+				select_available_users_clone = document.getElementById('em_select_available_users').cloneNode(true);
+				document.getElementById('em_input_searchUser').value = '';
+			}
+		}
+		cExecute ("$this.ldap_functions.get_available_users2&context="+context, handler_get_available_users);
+	}
+
+	cShareMailbox.prototype.getaclfromuser = function(user)
+	{
+		var handler_getaclfromuser = function(data)
+		{
+			Element('em_input_readAcl').checked = false;
+			Element('em_input_deleteAcl').checked = false;
+			Element('em_input_writeAcl').checked = false;
+			Element('em_input_sendAcl').checked = false;
+			
+			if (data[user].indexOf('lrs',0) >= 0)
+			{
+				Element('em_input_sendAcl').disabled = false;
+				Element('em_input_readAcl').checked = true;
+			}
+			else
+				Element('em_input_sendAcl').disabled = true;
+				
+			if (data[user].indexOf('d',0) >= 0)
+			{
+				Element('em_input_deleteAcl').checked = true;
+			}
+			if (data[user].indexOf('wip',0) >= 0)
+			{
+				Element('em_input_writeAcl').checked = true;
+			}
+			if (data[user] != "false" && data[user].indexOf('a',0) >= 0)
+			{
+				Element('em_input_sendAcl').disabled = false;
+				Element('em_input_sendAcl').checked = true;
+			}
+		}
+		cExecute ("$this.imap_functions.getaclfromuser&user="+user, handler_getaclfromuser);
+	}
+	
+	cShareMailbox.prototype.setaclfromuser = function()
+	{
+		var acl		= '';
+		var select 	= Element('em_select_sharefolders_users');
+
+		if(select.selectedIndex == "-1"){
+			alert("Selecione antes um usuário!");
+			return false;
+		}
+		var user = select.options[select.selectedIndex].value;
+		
+		if (Element('em_input_readAcl').checked) {
+			Element('em_input_sendAcl').disabled = false;
+			acl = 'lrs';
+		}
+		else{
+			Element('em_input_sendAcl').disabled = true;
+			Element('em_input_sendAcl').checked = false;
+		}
+				
+		if (Element('em_input_deleteAcl').checked)
+			acl += 'd';
+
+		if (Element('em_input_writeAcl').checked)
+			acl += 'wip';
+
+		if (Element('em_input_sendAcl').checked)
+			acl += 'a';
+		
+		var handler_setaclfromuser = function(data) {
+			if (!data)
+				alert(data);	
+			return true;
+		}
+		cExecute ("$this.imap_functions.setaclfromuser&user="+user+"&acl="+acl, handler_setaclfromuser);
+	}
+	
+	cShareMailbox.prototype.makeWindow = function(options)
+	{
+		_this = this;
+	
+		var el = document.createElement("DIV");
+		el.style.visibility = "hidden";
+		el.style.position = "absolute";
+		el.style.left = "0px";
+		el.style.top = "0px";
+		el.style.width = "0px";
+		el.style.height = "0px";
+		el.id = 'dJSWin_sharefolders';
+		document.body.appendChild(el);
+
+		if (Element('em_select_sharefolders_users'))
+		{
+			var select_users = Element('em_select_sharefolders_users');
+			select_users.innerHTML = '#' + options;
+			select_users.outerHTML = select_users.outerHTML;
+			
+			Element('em_input_readAcl').checked = false;
+			Element('em_input_deleteAcl').checked = false;
+			Element('em_input_writeAcl').checked = false;
+			Element('em_input_sendAcl').checked = false;
+		}
+		else
+		{
+			el.innerHTML = "<table border=0><tbody><tr>"+
+							
+							"<td valign='bottom'>"+
+								'<font color="red">'+
+									get_lang('Note: This sharing will take action on all of your folders and messages.')+
+									'<br><br>'+
+								'</font>'+
+								get_lang('Your mailbox is shared with')
+								+":<br><br>"+
+								"<select onchange=sharemailbox.getaclfromuser(this.value); id='em_select_sharefolders_users' size='13' style='width:250px;height:200px'>" + options + "</select>"+
+							"</td>"+
+							
+							"<td>"+
+								'<br><br><br><br><br><br>'+
+								'<img onClick="javascript:sharemailbox.add_user();" src="templates/'+template+'/images/arrow_left.png" style="vertical-align:middle;cursor:pointer;">' +
+								'<br><br>'+
+								'<img onClick="javascript:sharemailbox.remove_user();" src="templates/'+template+'/images/arrow_right.png" style="vertical-align:middle;cursor:pointer;">' +
+							"</td>"+
+							
+							"<td valign='bottom'><br>"+
+								get_lang('Organization')+":&nbsp;" + 
+								"<select id='em_combo_org' onchange='javascript:sharemailbox.get_available_users(this.value);'></select>"+
+								
+								"<br><br>"+get_lang('Search user')+":<br>" +
+								'<input id="em_input_searchUser" size="35" autocomplete="off"  onkeyup="javascript:sharemailbox.optionFinderTimeout(this)"><br>'+
+								
+								'<font color="red"><span id="em_span_searching">&nbsp;</span></font><br>'+
+								
+								"<select id='em_select_available_users' style='width:250px;height:200px' multiple></select></td>"+
+							'</tr>'+
+							'<tr><td>'+
+								'<table border=0><tbody><tr><td colspan=2>'+
+									get_lang('Access right')+':'+
+								'</td></tr>'+
+								'<tr><td>'+get_lang('Read')+':</td><td><input id=\'em_input_readAcl\' onClick="return sharemailbox.setaclfromuser();" type="checkbox"><img title="'+get_lang("hlp_msg_read_acl")+'." src=\'./templates/'+template+'/images/ajuda.jpg\'></td></tr>'+
+								'<tr><td>'+get_lang('Exclusion')+':</td><td><input id=\'em_input_deleteAcl\' onClick="return sharemailbox.setaclfromuser();" type="checkbox"><img title="'+get_lang('hlp_msg_delmov_acl')+'." src=\'./templates/'+template+'/images/ajuda.jpg\'></td></tr>'+
+								'<tr><td>'+get_lang('Write')+':</td><td><input id=\'em_input_writeAcl\' onClick="return sharemailbox.setaclfromuser();" type="checkbox"><img title="'+get_lang('hlp_msg_addcreate_acl')+'." src=\'./templates/'+template+'/images/ajuda.jpg\'></td></tr>'+
+								'<tr><td>'+get_lang('Send')+':</td><td><input id=\'em_input_sendAcl\' onClick="return sharemailbox.setaclfromuser();" type="checkbox"><img title="'+get_lang('hlp_msg_sendlike_acl')+'." src=\'./templates/'+template+'/images/ajuda.jpg\'></td></tr></tbody></table>'+
+							'</td></tr>'+
+			"</tbody></table>";
+		}
+
+		var handler_organizations = function(data){
+			var user_organization = Element('user_organization').value;
+			
+			for(i = 0; i < data.length; i++) {
+				Element('em_combo_org').options[i] = new Option(data[i].ou,data[i].dn);
+				if(user_organization.toUpperCase() == data[i].ou.toUpperCase())
+				{
+					Element('em_combo_org').options[i].selected = true;
+					_this.get_available_users(data[i].dn);
+				}
+			}
+		}
+		cExecute ("$this.ldap_functions.get_organizations2&referral=false", handler_organizations);
+
+		var butt = Element('dJSWin_wfolders_bok')
+		if (!butt){
+			butt = document.createElement('INPUT');
+			butt.id = 'dJSWin_wfolders_bok';
+			butt.type = 'button';
+			butt.value = get_lang('Save');
+			el.appendChild(butt);
+		}
+		butt.onclick = function ()
+		{
+			// Needed select all options from select
+			var users_setacl = new Array();
+			select_users = Element('em_select_sharefolders_users');
+			for(var i=0; i<select_users.options.length; i++)
+			{
+				users_setacl[i] = select_users.options[i].value;
+			}
+			attributes = connector.serialize(users_setacl);
+			
+			var handler_save = function(data)
+			{
+				if (data)
+				{
+					alert(get_lang('Shared options saved with success'));
+					sharemailbox.arrayWin[el.id].close();
+				}
+			}
+
+			cExecute ("$this.imap_functions.setacl", handler_save, 'users='+attributes);
+
+		}
+		
+		var space = document.createElement('SPAN');
+		space.innerHTML = "&nbsp;&nbsp;";
+		el.appendChild(space);
+		
+		var butt = document.createElement('BUTTON');
+		var buttext = document.createTextNode(get_lang('Close'));
+		butt.appendChild(buttext);
+		butt.onclick = function () {sharemailbox.arrayWin[el.id].close();};
+		el.appendChild(butt);
+		
+		_this.showWindow(el);
+	}
+	
+	cShareMailbox.prototype.showWindow = function (div)
+	{
+		if(! div) {
+			alert(get_lang('This list has no participants'));
+			return;
+		}
+		
+		if(! this.arrayWin[div.id])
+		{
+			div.style.height = "460px";
+			div.style.width = "540px";
+			var title = ":: "+get_lang("Mailbox Sharing")+" ::";
+			var wHeight = div.offsetHeight + "px";
+			var wWidth =  div.offsetWidth   + "px";
+			div.style.width = div.offsetWidth - 5;
+
+			win = new dJSWin({
+				id: 'win_'+div.id,
+				content_id: div.id,
+				width: wWidth,
+				height: wHeight,
+				title_color: '#3978d6',
+				bg_color: '#eee',
+				title: title,
+				title_text_color: 'white',
+				button_x_img: '../phpgwapi/images/winclose.gif',
+				border: true });
+			
+			this.arrayWin[div.id] = win;
+			win.draw();
+		}
+		else {
+			win = this.arrayWin[div.id];
+		}
+		Element('em_input_sendAcl').disabled = true;
+		win.open();
+	}
+	
+	var finderTimeout = '';
+	cShareMailbox.prototype.optionFinderTimeout = function(obj)
+	{
+		clearTimeout(finderTimeout);	
+		var oWait = document.getElementById("em_span_searching");
+		oWait.innerHTML = get_lang('Searching')+"...";
+		var finderTimeout = setTimeout("sharemailbox.optionFinder('"+obj.id+"')",500);
+	}
+	
+	cShareMailbox.prototype.optionFinder = function(id)
+	{
+		var oWait = document.getElementById("em_span_searching");
+		var oText = document.getElementById(id);
+			
+		//Limpa todo o select
+		
+		var select_available_users_tmp = document.getElementById('em_select_available_users')
+		for(var i = 0;i < select_available_users_tmp.options.length; i++)
+			select_available_users_tmp.options[i--] = null;
+
+		var RegExp_name = new RegExp("\\b"+oText.value, "i");
+		
+		//Inclui usuário começando com a pesquisa
+		for(i = 0; i < select_available_users_clone.length; i++){
+			if (RegExp_name.test(select_available_users_clone[i].text))
+			{
+				sel = select_available_users_tmp.options;
+				option = new Option(select_available_users_clone[i].text,select_available_users_clone[i].value);				
+				sel[sel.length] = option;
+			}
+		}
+		oWait.innerHTML = '&nbsp;';
+	}
+	
+	cShareMailbox.prototype.add_user = function()
+	{
+		var select_available_users = document.getElementById('em_select_available_users');
+		var select_users = document.getElementById('em_select_sharefolders_users');
+
+		var count_available_users = select_available_users.length;
+		var count_users = select_users.options.length;
+		var new_options = '';
+	
+		for (i = 0 ; i < count_available_users ; i++)
+		{
+			if (select_available_users.options[i].selected)
+			{
+				if(document.all)
+				{
+					if ( (select_users.innerHTML.indexOf('value='+select_available_users.options[i].value)) == '-1' )
+					{
+						new_options +=  '<option value='
+									+ select_available_users.options[i].value
+									+ '>'
+									+ select_available_users.options[i].text
+									+ '</option>';
+					}
+				}
+				else
+				{
+					if ( (select_users.innerHTML.indexOf('value="'+select_available_users.options[i].value+'"')) == '-1' )
+					{
+						new_options +=  '<option value='
+									+ select_available_users.options[i].value
+									+ '>'
+									+ select_available_users.options[i].text
+									+ '</option>';
+					}
+				}
+			}
+		}
+
+		if (new_options != '')
+		{
+			select_users.innerHTML = '#' + new_options + select_users.innerHTML;
+			select_users.outerHTML = select_users.outerHTML;
+		}
+	}
+
+	cShareMailbox.prototype.remove_user = function()
+	{
+		select_users = document.getElementById('em_select_sharefolders_users');
+	
+		for(var i = 0;i < select_users.options.length; i++)
+			if(select_users.options[i].selected)
+				select_users.options[i--] = null;
+				
+		Element('em_input_readAcl').checked = false;
+		Element('em_input_deleteAcl').checked = false;
+		Element('em_input_writeAcl').checked = false;
+		Element('em_input_sendAcl').checked = false;
+	}
+	
+	
+/* Build the Object */
+	var sharemailbox;
+	sharemailbox = new cShareMailbox();
Index: tags/expressoMail1_2/1.234/js/common_functions.js
===================================================================
--- tags/expressoMail1_2/1.234/js/common_functions.js	(revision 845)
+++ tags/expressoMail1_2/1.234/js/common_functions.js	(revision 845)
@@ -0,0 +1,856 @@
+// BEGIN: FUNCTION RESIZE WINDOW
+var _showBar = showBar;
+var _hideBar = hideBar;
+
+function __showBar(){
+	_showBar();
+	resizeWindow();
+}
+
+function __hideBar(){
+	_hideBar();
+	resizeWindow();
+}
+showBar = __showBar;
+hideBar = __hideBar;
+
+window.onresize = resizeWindow;
+
+function config_events(pObj, pEvent, pHandler)
+{
+    if( typeof pObj == 'object')
+    {
+        if( pEvent.substring(0, 2) == 'on')
+            pEvent = pEvent.substring(2, pEvent.length);
+
+        if ( pObj.addEventListener )
+            pObj.addEventListener(pEvent, pHandler, false);
+        else if( pObj.attachEvent )
+            pObj.attachEvent('on' + pEvent, pHandler );
+    }
+}
+
+function resizeWindow(){
+
+	var bar = Element("toolbar");
+	var offset = 0;
+	if(bar.style.visibility != 'hidden') 
+		offset = (bar.offsetHeight ? bar.offsetHeight :  bar.clientHeight);	
+
+	var screenHeight = document.body.clientHeight ? document.body.clientHeight : document.body.offsetHeight;
+	var defaultHeight = screenHeight - offset;
+
+	if(typeof(BordersArray) != 'undefined') {
+		for(var i = 1; BordersArray.length > 1 && i < BordersArray.length;i++) {
+			var div_scroll = Element("div_message_scroll_"+BordersArray[i].sequence);
+			var div = Element("content_id_"+BordersArray[i].sequence);
+
+			// This comented code cause Firefox to stuck some request 
+			if(div)
+//				div.setAttribute("style","height: "+parseInt(defaultHeight - 90)+"px;");
+				div.style.height = defaultHeight - 90;
+			if(div_scroll)
+				div_scroll.setAttribute("style","height: "+parseInt(defaultHeight - 130)+"px;");
+//				div_scroll.style.height = defaultHeight - 130;
+		}
+	}
+
+	if(Element('content_folders'))
+		Element('content_folders').style.height = defaultHeight - (is_ie ? 165 : 150);
+	if(Element("divScrollMain_"+numBox))
+		Element("divScrollMain_"+numBox).style.height 	= defaultHeight - (is_ie ? 111 : 110);
+}
+// END: FUNCTION RESIZE WINDOW
+
+var _beforeunload_ = window.onbeforeunload;
+
+window.onbeforeunload = function()
+{
+	return unloadMess();
+}
+
+function unloadMess(){
+	var mess = get_lang("Your message has not been sent and will be discarted.");
+	for(var i = 0; i < BordersArray.length;i++) {
+		var body = Element('body_'+BordersArray[i].sequence);
+		if (body && body.contentWindow && body.contentWindow.document.designMode.toLowerCase() == 'on')	{
+			return mess;
+		}
+	}
+}
+
+// Translate words and phrases using user language from eGroupware.
+function get_lang(_key) {
+	var key = _key.toLowerCase();
+	if(array_lang[key])
+		var _value = array_lang[key];
+	else
+		var _value = _key+"*";
+
+	if(arguments.length > 1)
+		for(j = 1; typeof(arguments[j]) != 'undefined'; j++)
+			_value = _value.replace("%"+j,arguments[j]);
+	return _value;
+}
+
+// Make decimal round, using in size message
+function round(value, decimal){
+	var return_value = Math.round( value * Math.pow( 10 , decimal ) ) / Math.pow( 10 , decimal );
+	return( return_value );
+}
+
+// Change the class of message.
+// In refresh, the flags UnRead and UnSeen don't exist anymore. 
+function set_msg_as_read(msg_number, selected){
+	tr_message = Element(msg_number);
+	if (exist_className(tr_message, 'tr_msg_unread'))
+		decrement_folder_unseen();
+	remove_className(tr_message, 'tr_msg_unread');
+	remove_className(tr_message, 'selected_msg');
+	add_className(tr_message, 'tr_msg_read');
+	purgeCache();
+	return true;
+}
+
+function msg_is_read(msg_number, selected){
+	tr_message = Element(msg_number);
+	return !(tr_message && LTrim(tr_message.className).match('tr_msg_unread'))
+}
+
+function set_msg_as_unread(msg_number){
+	tr_message = Element(msg_number);
+	if (exist_className(tr_message, 'tr_msg_read'))
+		increment_folder_unseen();
+	remove_className(tr_message, 'tr_msg_read');
+	remove_className(tr_message, 'selected_msg');
+	add_className(tr_message, 'tr_msg_unread');
+}
+
+function set_msg_as_flagged(msg_number){
+	var msg = Element(msg_number);
+	remove_className(msg, 'selected_msg');
+	add_className(msg, 'flagged_msg');
+	Element("td_message_important_"+msg_number).innerHTML = '<img src=templates/'+template+'/images/important.gif title='+get_lang('Important!')+'>';
+}
+
+function set_msg_as_unflagged(msg_number){
+	var msg = Element(msg_number);
+	remove_className(msg, 'selected_msg');
+	remove_className(msg, 'flagged_msg');
+	Element("td_message_important_"+msg_number).innerHTML = '';
+}
+
+function removeAll(id){
+	do
+	{
+		if (typeof(Element(id)) == 'undefined')
+			break;
+		Element(id).parentNode.removeChild(Element(id));
+	}
+	while(Element(id));
+}
+
+function get_current_folder(){
+	return current_folder;
+}
+
+// Kill current box (folder or page).
+function kill_current_box(){
+	var box = document.getElementById("table_box");
+	if (box != null)
+		box.parentNode.removeChild(box);
+	else
+		return false;
+}
+
+// Kill current paging.
+function kill_current_paging(){
+	var paging = Element("span_paging");
+	if (paging != null)
+		paging.parentNode.removeChild(paging);
+}
+
+function show_hide_span_paging(ID){
+	if ((ID != "0") && Element("span_paging")) 
+		Element("span_paging").style.display = 'none';
+	else
+		if (Element("span_paging"))
+			Element("span_paging").style.display = '';
+}
+
+//Get the current number of messages in a page.
+function get_messages_number_in_page(){
+	//Get element tBody.
+	main = document.getElementById("tbody_box");
+		
+	// Get all TR (messages) in tBody.
+	main_list = main.childNodes;
+	
+	return main_list.length;
+}
+
+function download_local_attachment(url) {
+	if (div_attachment == null){
+		var div_attachment = document.createElement("DIV");
+		div_attachment.id="id_div_attachment";
+		document.body.appendChild(div_attachment);
+	}
+	div_attachment.innerHTML="<iframe style='display:none;width:0;height:0' name='attachment' src='"+url+"'></iframe>";
+}
+
+function download_attachments(msg_folder, msg_number, idx_file, msg_part, encoding, new_file_name, show_iframe){
+	div_attachment = document.getElementById("id_div_attachment");
+	var params = '';
+	
+	if (div_attachment == null){
+		var div_attachment = document.createElement("DIV");
+		div_attachment.id="id_div_attachment";
+		document.body.appendChild(div_attachment);
+	}
+	if(new_file_name)
+		params = "&newfilename="+new_file_name;
+	if(encoding)
+		params += "&encoding="+encoding;
+
+	div_attachment.innerHTML="<iframe style='display:none;width:0;height:0' name='attachment' src='inc/gotodownload.php?msg_folder="+msg_folder+"&msg_number="+msg_number+"&idx_file="+idx_file+"&msg_part="+msg_part+params+"'></iframe>";
+}
+
+function download_all_attachments(msg_folder, msg_number){
+	var handler_source = function(data){		
+		download_attachments(null, null, data, null,null,'anexos.zip');
+	}
+	cExecute("$this.exporteml.download_all_attachments",handler_source,"folder="+msg_folder+"&num_msg="+msg_number);
+}
+//ADD forwarded files
+function addForwardedFile(id_border,file_name,link){
+	divFiles = document.getElementById("divFiles_"+id_border);
+
+	if (! divFiles)
+		return false;
+	
+	if (divFiles.lastChild)
+		var countDivFiles = parseInt(divFiles.lastChild.id.split('_')[2]) + 1;
+
+	if (! countDivFiles)
+		var countDivFiles = 1;
+	
+	divFile = document.createElement('DIV');
+	
+
+	if (!is_ie) {
+		var inputFile = document.createElement("INPUT");
+		
+		var tmp_id_border = document.createAttribute('id_border');
+		tmp_id_border.value = id_border;
+		
+		inputFile.setAttributeNode(tmp_id_border);
+		inputFile.id = "inputFile_" + id_border + "_" + countDivFiles;
+		inputFile.type = 'file';
+		inputFile.size = 50;
+		inputFile.maxLength = 255;
+		inputFile.name = 'file_' + countDivFiles;
+		inputFile.style.display = "none";
+		divFile.appendChild(inputFile);
+	}
+	else {
+		var inputFile = document.createElement("link");
+		
+		var tmp_id_border = document.createAttribute('id_border');
+		tmp_id_border.value = id_border;
+		
+		inputFile.setAttributeNode(tmp_id_border);
+		inputFile.id = "inputFile_" + id_border + "_" + countDivFiles;
+		inputFile.name = 'file_' + countDivFiles;
+		
+		
+		divFile.appendChild(inputFile);		
+	}
+
+	var a_tmp = new Array();
+	a_tmp[0] = "local_";
+	a_tmp[1] = 'file_' + countDivFiles;
+	a_tmp[2] = file_name;
+	s_tmp = escape(connector.serialize(a_tmp));
+	var checkbox = document.createElement("INPUT");
+	checkbox.type = "checkbox";
+	checkbox.id = "checkbox_"+id_border+"_"+countDivFiles;
+	checkbox.name = "local_attachments[]";
+	
+	checkbox.value = s_tmp;
+	divFile.appendChild(checkbox);
+	
+	var link_attachment = document.createElement("A");
+	link_attachment.setAttribute("href", link);
+	
+	link_attachment.innerHTML = file_name;
+	divFile.appendChild(link_attachment);
+	
+	countDivFiles++;
+	divFile.id = "divFile_"+id_border+"_"+countDivFiles;	
+	divFiles.appendChild(divFile);
+
+	divFile.id = "divFile_"+id_border+"_"+countDivFiles;	
+	divFiles.appendChild(divFile);
+	checkbox.checked = true; //IncrÃ­vel, mas no Internet Explorer o checked sÃ³ funciona efetivamente se o elemente jÃ¡ estiver renderizado... por isso sÃ³ aqui eu seleciono ele...
+	return inputFile;
+}
+
+// Add Input File Dynamically.
+function addFile(id_border){
+	divFiles = document.getElementById("divFiles_"+id_border);
+	if (! divFiles)
+		return false;
+	
+	if (divFiles.lastChild)
+		var countDivFiles = parseInt(divFiles.lastChild.id.split('_')[2]) + 1;
+
+	if (! countDivFiles)
+		var countDivFiles = 1;
+	
+	divFile = document.createElement('DIV');
+	
+	var inputFile = document.createElement("INPUT");
+	
+	var tmp_id_border = document.createAttribute('id_border');
+	tmp_id_border.value = id_border;
+	
+	inputFile.setAttributeNode(tmp_id_border);
+	inputFile.id = "inputFile_"+id_border+"_"+countDivFiles;
+	inputFile.onchange = function () {validateFileExtension(this.value, this.id.replace("input","div"), this.getAttribute('id_border'));};
+	inputFile.type = 'file';
+	inputFile.size = 50;
+	inputFile.maxLength = 255;
+	inputFile.name='file_'+countDivFiles;
+	
+	divFile.appendChild(inputFile);
+	
+	var linkFile = document.createElement("A");
+	linkFile.id = "linkFile_"+id_border+"_"+countDivFiles;
+	linkFile.href='javascript:void(0)';
+	linkFile.onclick=function () {removeFile(this.id.replace("link","div")); return false;};
+	linkFile.innerHTML=get_lang("Remove");	
+	//divFile.innerHTML += "&nbsp;&nbsp;";
+	divFile.appendChild(linkFile);
+	divFile.id = "divFile_"+id_border+"_"+countDivFiles;	
+	divFiles.appendChild(divFile);
+
+	return inputFile;
+}
+//	Remove Input File Dynamically.
+function removeFile(id){
+	var border_id = id.substr(8,1);
+	var el = Element(id);
+	el.parentNode.removeChild(el);
+}
+
+function validateFileExtension(fileName, id, id_border){
+	
+	var error_flag  = false;
+
+	if ( fileName.indexOf('/') != -1 )
+	{
+		if (fileName[0] != '/'){ // file name is windows format?
+			var file = fileName.substr(fileName.lastIndexOf('\\') + 1, fileName.length);
+			if ((fileName.indexOf(':\\') != 1) && (fileName.indexOf('\\\\') != 0)) // Is stored in partition or a network file?
+				error_flag = true;	
+		}
+		else // is Unix
+			var file = fileName.substr(fileName.lastIndexOf('/') + 1, fileName.length);						
+	}
+	else  // is Firefox 3
+		var file = fileName;
+
+	var fileExtension = file.split(".");
+	fileExtension = fileExtension[(fileExtension.length-1)];
+	for(var i=0; i<denyFileExtensions.length; i++)
+	{
+		if(denyFileExtensions[i] == fileExtension)
+		{
+			error_flag = true;
+			break;
+		}
+			
+	}
+
+	if ( error_flag == true )
+	{
+		alert(get_lang('File extension forbidden or invalid file') + '.');
+		removeFile(id);
+		addFile(id_border);
+		return false;
+	}
+	return true;
+}
+
+var setTimeout_write_msg = 0;
+var old_msg = false;
+// Funcao usada para escrever mensagem
+// notimeout = True : mensagem nao apaga
+function write_msg(msg, notimeout){	
+	
+	if (setTimeout_write_msg)
+		clearTimeout(setTimeout_write_msg);
+	
+	var msg_div = Element('em_div_write_msg');
+	var old_divStatusBar = Element("divStatusBar");
+
+	if(!msg_div) {
+		msg_div = document.createElement('DIV');
+		msg_div.id = 'em_div_write_msg';
+		msg_div.className = 'em_div_write_msg';
+		old_divStatusBar.parentNode.insertBefore(msg_div,old_divStatusBar);
+	}
+	
+	if( document.getElementById('JabberMessenger'))
+		loadscript.adIcon();
+
+	msg_div.innerHTML = '<table width="100%" cellspacing="0" cellpadding="0" border="0"><tbody><tr><th width="40%"></th><th noWrap class="action_info_th">'+msg+'</th><th width="40%"></th></tr></tbody></table>';
+
+	old_divStatusBar.style.display = 'none';
+	msg_div.style.display = '';	
+	// Nao ponha var na frente!! jakjr
+	handle_write_msg = function(){
+		try{
+			if(!old_msg)
+				clean_msg();
+			else
+				write_msg(old_msg, true);			
+		}
+		catch(e){}
+	}
+	if(notimeout)
+		old_msg = msg;
+	else
+		setTimeout_write_msg = setTimeout("handle_write_msg();", 5000);
+}
+// Funcao usada para apagar mensagem sem timeout
+function clean_msg(){
+	old_msg = false;
+	var msg_div = Element('em_div_write_msg');
+	var old_divStatusBar = Element("divStatusBar");
+	if(msg_div)
+		msg_div.style.display = 'none';
+	old_divStatusBar.style.display = '';	
+}
+
+function make_body_reply(body, to, date_day, date_hour){
+	to = to.replace("<","&lt;");
+	to = to.replace(">","&gt;");
+	block_quoted_body ="<br><br>";
+	block_quoted_body += get_lang('At %1, %2 hours, %3 wrote:', date_day, date_hour, to);
+	block_quoted_body += "<blockquote style=\"border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;\">";
+	block_quoted_body += body;
+	block_quoted_body += "</blockquote>";
+	return block_quoted_body;
+}
+
+function make_forward_body(body, from, date, subject, to, cc){
+	from = from.replace(/</g,"&lt;");
+	from = from.replace(/>/g,"&gt;");
+	to = to.replace(/</g,"&lt;");
+	to = to.replace(/>/g,"&gt;");
+	var forward_body = '<BR><BR>---------- ' + get_lang('Forwarded message') + ' ----------<BR>';
+	forward_body += get_lang('From') + ': ' + from + '<BR>';
+	forward_body += get_lang('Date') + ': ' + date + '<BR>';
+	forward_body += get_lang('Subject') + ': ' + subject + '<BR>';
+	forward_body += get_lang('To') + ': ' + to+ '<BR>';
+	if(cc != undefined){
+		cc = cc.replace(/</g,"&lt;");
+		cc = cc.replace(/>/g,"&gt;");
+		forward_body += get_lang('CC') + ': ' + cc+ '<BR><BR>';
+	}
+	forward_body += body;
+	return forward_body;
+}
+
+function emMessageSearch(e,value){
+	var	e  = is_ie ? window.event : e;
+	if(e.keyCode == 13) {
+		search_emails(value);
+	}
+}
+
+function emQuickSearch(emailList, field, ID){
+	var quickSearchKeyBegin;
+	var quickSearchKeyEnd;
+	
+	var handler_emQuickSearch = function(data)
+	{
+		window_DropDownContacts = Element('tipDiv');
+		if (window_DropDownContacts.style.visibility != 'hidden'){
+			window_DropDownContacts.style.visibility = 'hidden';
+		}
+		
+		if ((!data.status) && (data.error == "many results")){
+			alert(get_lang('More than %1 results. Please, try to refine your search.',200));
+			return false;
+		}
+			
+		if (data.length > 0){
+			if ((field != 'null') && (ID != 'null'))
+			{
+				connector.loadScript("QuickCatalogSearch");
+				QuickCatalogSearch.showList(data, quickSearchKeyBegin, quickSearchKeyEnd);
+			}
+			else
+			{
+				connector.loadScript("QuickSearchUser");
+				QuickSearchUser.showList(data);
+			}
+		}
+		else
+			alert(get_lang('None result was found.'));
+		return true;
+	}
+	
+	if ((field != 'null') && (ID != 'null'))
+	{
+		Element(field +'_'+ ID).focus(); //It requires for IE.
+		var i = getPosition(Element(field +'_'+ ID)); //inputBox.selectionStart;
+		var j = --i;
+
+		// Acha o inicio
+    	while ((j >= 0) && (emailList.charAt(j) != ',')){j--};
+	    quickSearchKeyBegin = ++j;
+
+	    // Acha o final
+    	while ((i <= emailList.length) && (emailList.charAt(i) != ',')){i++};
+	    quickSearchKeyEnd = i;
+
+	    // A Chave da Pesquisa
+    	var search_for = trim(emailList.substring(quickSearchKeyBegin, quickSearchKeyEnd));
+	}
+	else
+		var search_for = emailList;
+	
+	if (search_for.length < 4){
+		alert(get_lang('Your search argument must be longer than 4 characters.'));
+		return false;
+	}
+	
+	cExecute ("$this.ldap_functions.quicksearch&search_for="+search_for+"&field="+field+"&ID="+ID, handler_emQuickSearch);
+}
+
+function folderbox(){
+	connector.loadScript("TreeS");
+	ttree.make_Window();
+}
+
+function filterbox(){
+	connector.loadScript("filter");
+	connector.loadScript("filters");
+	filters.Forms();
+}
+
+function sharebox(){
+	var handler_imap_getacl = function(data)
+	{
+		var options = '';
+		for (var x in data)
+		{
+			options += "<option value='"+data[x].uid+"'>"+data[x].cn+"</option>";
+		}
+		connector.loadScript("sharemailbox");
+		sharemailbox.makeWindow(options);
+	}
+	cExecute ("$this.imap_functions.getacl", handler_imap_getacl);
+}
+
+function preferences_mail(){
+	if(preferences.type_signature && preferences.type_signature == 'html') {
+		location.href="preferences.php";
+	}
+	else {
+		connector.loadScript("preferences");
+		prefe.showList();
+	}
+}
+
+function search_emails(value){
+	connector.loadScript("search");
+	EsearchE.showForms(value);
+}
+
+function source_msg(id_msg,folder){
+	var num_msg = id_msg.substr(0,(id_msg.length - 2));
+	var handler_source = function(data){
+		download_attachments(null, null, data, null,null,'fonte_da_mensagem.txt');
+	}
+	cExecute("$this.exporteml.export_msg",handler_source,"folder="+url_decode(folder)+"&msgs_to_export="+num_msg);
+}
+
+function url_encode(str){
+    var hex_chars = "0123456789ABCDEF"; 
+    var noEncode = /^([a-zA-Z0-9\_\-\.])$/; 
+    var n, strCode, hex1, hex2, strEncode = ""; 
+
+    for(n = 0; n < str.length; n++) { 
+        if (noEncode.test(str.charAt(n))) { 
+            strEncode += str.charAt(n); 
+        } else { 
+            strCode = str.charCodeAt(n); 
+            hex1 = hex_chars.charAt(Math.floor(strCode / 16)); 
+            hex2 = hex_chars.charAt(strCode % 16); 
+            strEncode += "%" + (hex1 + hex2); 
+        } 
+    } 
+    return strEncode; 
+}  
+
+function url_decode(str) { 
+
+	var n, strCode, strDecode = ""; 
+	for (n = 0; n < str.length; n++) { 
+	    if (str.charAt(n) == "%") { 
+	        strCode = str.charAt(n + 1) + str.charAt(n + 2); 
+	        strDecode += String.fromCharCode(parseInt(strCode, 16)); 
+	        n += 2; 
+	    } else { 
+	        strDecode += str.charAt(n); 
+	    } 
+	} 
+	return strDecode; 
+}  
+
+function Element (el) {
+	return	document.getElementById(el);
+}
+
+function getPosition(obj)
+{
+	if(typeof obj.selectionStart != "undefined")
+	{
+    	return obj.selectionStart;
+	}
+	else if(document.selection && document.selection.createRange)
+	{
+		var M = document.selection.createRange();
+		try
+		{
+			var Lp = M.duplicate();
+			Lp.moveToElementText(obj);
+		}
+		catch(e)
+		{
+			var Lp=obj.createTextRange();
+		}
+		
+		Lp.setEndPoint("EndToStart",M);
+		var rb=Lp.text.length;
+		
+		if(rb > obj.value.length)
+		{
+			return -1;
+		}
+		return rb;
+	}
+}
+
+function trim(inputString) {
+   if (typeof inputString != "string") 
+   	return inputString;
+      
+   var retValue = inputString;
+   var ch = retValue.substring(0, 1);
+   while (ch == " ") { 
+	  retValue = retValue.substring(1, retValue.length);
+	  ch = retValue.substring(0, 1);
+   }
+   ch = retValue.substring(retValue.length-1, retValue.length);
+   while (ch == " ") { 
+	  retValue = retValue.substring(0, retValue.length-1);
+	  ch = retValue.substring(retValue.length-1, retValue.length);
+   }
+   while (retValue.indexOf("  ") != -1) { 
+	  retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); 
+   }
+   return retValue; 
+}
+
+function increment_folder_unseen(){
+	var folder_id = get_current_folder();
+
+	var folder_unseen = Element('dftree_'+folder_id+'_unseen');
+	var abas_unseen = Element('new_m').innerHTML;
+        abas_unseen = abas_unseen.match( /[0-9]+/);
+
+	if (folder_unseen)
+	{
+		folder_unseen.innerHTML = (parseInt(folder_unseen.innerHTML) + 1);
+	}
+	else
+	{
+		tree_folders.getNodeById(folder_id).alter({caption: tree_folders.getNodeById(current_folder).caption + '<font style=color:red>&nbsp(</font><span id="dftree_'+current_folder+'_unseen" style=color:red>1</span><font style=color:red>)</font>'});
+		tree_folders.getNodeById(folder_id)._refresh();
+	}
+	if (abas_unseen)
+	{
+		abas_unseen = parseInt(abas_unseen) + 1;
+		Element('new_m').innerHTML = '<font style="color:red">' + abas_unseen + '</font>';
+	}
+	else{
+		abas_unseen = Element('new_m').innerHTML;
+		abas_unseen = abas_unseen.match( /[0-9]+/);
+		abas_unseen = parseInt(abas_unseen) + 1;
+		Element('new_m').innerHTML = '<font style="color:red">' + abas_unseen + '</font>';
+	}
+	if ( current_folder.indexOf( 'INBOX' ) !== 0 )
+	{
+		var display_unseen_in_shared_folders = Element('dftree_user_unseen');
+		if ( display_unseen_in_shared_folders )
+			tree_folders.getNodeById( 'user' ).alter({caption:'<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">' + ( parseInt( display_unseen_in_shared_folders.innerHTML) + 1 ) + '</span><font style=color:red>]</font>' + get_lang("Shared folders")});
+		else
+			tree_folders.getNodeById( 'user' ).alter({caption:'<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">1</span><font style=color:red>]</font>' + get_lang("Shared folders")});
+		tree_folders.getNodeById( 'user' )._refresh();
+	}
+	var display_unseen_in_mailbox = Element('dftree_root_unseen');
+	tree_folders.getNodeById( 'root' ).alter({caption:'<font style=color:red>[</font><span id="dftree_root_unseen" style="color:red">1</span><font style=color:red>]</font>' + get_lang("My Folders")});
+	tree_folders.getNodeById( 'root' )._refresh();
+}
+function decrement_folder_unseen(){
+	var folder_id = get_current_folder();
+
+	var folder_unseen = Element('dftree_'+folder_id+'_unseen');
+	var abas_unseen = Element('new_m').innerHTML;
+        abas_unseen = abas_unseen.match( /[0-9]+/);
+
+	if(!folder_unseen || !abas_unseen)
+		return;
+
+	if ((folder_unseen) && (parseInt(folder_unseen.innerHTML) > 1))
+	{
+		folder_unseen.innerHTML = (parseInt(folder_unseen.innerHTML) - 1);
+	}
+	else if (parseInt(folder_unseen.innerHTML) <= 1)
+	{
+		var tmp_folder_name = tree_folders.getNodeById(folder_id).caption.split('<');
+		var folder_name = tmp_folder_name[0];
+		tree_folders.getNodeById(folder_id).alter({caption: folder_name});
+		tree_folders.getNodeById(folder_id)._refresh();
+	}
+	if ((abas_unseen) && (parseInt(abas_unseen) > 1))
+        {
+	        abas_unseen = (parseInt(abas_unseen) - 1);
+	        Element('new_m').innerHTML = '<font style="color:red">' + abas_unseen + '</font>';
+	}
+	else if (parseInt(abas_unseen) <= 1)
+	{
+		Element('new_m').innerHTML = '0';
+	}
+	if ( current_folder.indexOf( 'INBOX' ) !== 0 )
+	{
+		var display_unseen_in_shared_folders = Element('dftree_user_unseen');
+		if ( display_unseen_in_shared_folders )
+		{
+			var unseen_in_shared_folders = parseInt( display_unseen_in_shared_folders.innerHTML );
+			unseen_in_shared_folders--;
+			if ( unseen_in_shared_folders > 0 )
+				tree_folders.getNodeById( 'user' ).alter({caption:'<font style=color:red>[</font><span id="dftree_root_unseen" style="color:red">' + unseen_in_shared_folders + '</span><font style=color:red>]</font>' + get_lang("My Folders")});
+			else
+				tree_folders.getNodeById( 'user' ).alter({caption:get_lang("Shared folders")});
+			tree_folders.getNodeById( 'user' )._refresh();
+		}
+	}
+	var display_unseen_in_mailbox = Element('dftree_root_unseen');
+	if ( display_unseen_in_mailbox )
+	{
+		var unseen_in_mailbox = parseInt( display_unseen_in_mailbox.innerHTML );
+		unseen_in_mailbox--;
+		//if ( unseen_in_mailbox > 0 )
+		//	tree_folders.getNodeById( 'root' ).alter({caption:'<font style=color:red>[</font><span id="dftree_root_unseen" style="color:red">' + unseen_in_mailbox + '</span><font style=color:red>]</font>' + get_lang("My Folders")});
+		//else
+			tree_folders.getNodeById( 'root' ).alter({caption:get_lang("My Folders")});
+		tree_folders.getNodeById( 'root' )._refresh();
+	}
+}
+
+function LTrim(value){
+	var w_space = String.fromCharCode(32);
+	var strTemp = "";
+	var iTemp = 0;
+
+	var v_length = value ? value.length : 0;
+	if(v_length < 1)
+		return "";
+
+	while(iTemp < v_length){
+		if(value && value.charAt(iTemp) != w_space){
+			strTemp = value.substring(iTemp,v_length);
+			break;
+		}
+		iTemp++;
+	}
+	return strTemp;
+}
+
+//changes MENU background color.
+function set_menu_bg(menu)
+{
+	menu.style.backgroundColor = 'white';
+	menu.style.border = '1px solid black';
+	menu.style.padding = '0px 0px';
+}
+//changes MENU background color.
+function unset_menu_bg(menu)
+{
+	menu.style.backgroundColor = '';
+	menu.style.border = '0px';
+	menu.style.padding = '1px 0px';
+}
+
+function array_search(needle, haystack) {
+	var n = haystack.length;
+	for (var i=0; i<n; i++) {
+		if (haystack[i]==needle) {
+			return true;
+		}
+	}
+	return false;
+}
+
+function lang_folder(fn) {
+ 	if (fn.toUpperCase() == "INBOX") return get_lang("Inbox");
+ 	if (special_folders[fn] && typeof(special_folders[fn]) == 'string') {
+ 		return get_lang(special_folders[fn]);
+ 	}
+ 	return fn;
+}
+
+function add_className(obj, className){
+	if (obj && !exist_className(obj, className))
+		obj.className = obj.className + ' ' + className;
+}
+
+function remove_className(obj, className){
+	var re = new RegExp("\\s*"+className);
+	if (obj)
+		obj.className = obj.className.replace(re, '');
+}
+
+function exist_className(obj, className){
+	return ( obj && obj.className.indexOf(className) != -1 )
+}
+
+function select_all_messages(select)
+{
+	var main = Element("tbody_box");
+	var main_list = main.childNodes;
+	var len_main_list = main_list.length;
+	
+	if (select)
+	{
+		for (i=0; i<len_main_list; i++)
+		{
+			Element("check_box_message_"+main_list[i].id).checked = true;
+			add_className(Element(main_list[i].id), 'selected_msg');
+		}
+	}
+	else
+	{
+		for (i=0; i<len_main_list; i++)
+		{
+			Element("check_box_message_"+main_list[i].id).checked = false;
+			remove_className(Element(main_list[i].id), 'selected_msg');
+		}
+	}
+}
Index: tags/expressoMail1_2/1.234/js/local_messages.js
===================================================================
--- tags/expressoMail1_2/1.234/js/local_messages.js	(revision 670)
+++ tags/expressoMail1_2/1.234/js/local_messages.js	(revision 670)
@@ -0,0 +1,563 @@
+/**
+ * @author diogenes
+ */
+
+	function local_messages() {
+		this.dbGears = null;
+		this.localServer = null;
+		this.store = null;
+		this.fileSubmitter = null;
+	}
+
+	local_messages.prototype.init_local_messages = function(){
+		if(this.dbGears == null)
+			this.dbGears = google.gears.factory.create('beta.database');
+		if(this.localServer==null)
+			this.localServer = google.gears.factory.create('beta.localserver');
+		if(this.store==null)
+			this.store = this.localServer.createStore('test-store');
+		if(this.fileSubmitter == null)
+			this.fileSubmitter = this.store.createFileSubmitter();
+			
+		this.dbGears.open('database-test');
+		this.dbGears.execute('create table if not exists folder (folder text,uid_usuario int,unique(folder,uid_usuario))');
+		this.dbGears.execute('create table if not exists mail' +
+		' (mail blob,original_id int,original_folder text,header blob,timestamp int,uid_usuario int,unseen int,id_folder int,' + 
+		' ffrom text, subject text, fto text, cc text, body text, size int,unique (original_id,original_folder,uid_usuario))');
+		this.dbGears.execute('create table if not exists anexo' +
+		' (id_mail int,nome_anexo text,url text,pid int)');
+
+		//some people that used old version of local messages could not have the size column. If it's the first version
+		//with local messages you're using in expresso, this part of code can be removed
+		try {
+			this.dbGears.execute('alter table mail add column size int');
+		}catch(Exception) {
+			
+		}
+		var rs = this.dbGears.execute('select rowid,header from mail where size is null');
+		while(rs.isValidRow()) {
+			var temp = connector.unserialize(rs.field(1));
+			
+			this.dbGears.execute('update mail set size='+temp.Size+' where rowid='+rs.field(0));
+			rs.next();
+		}
+		//end of temporary code
+	}
+	
+	local_messages.prototype.drop_tables = function() {
+		this.init_local_messages();
+		var rs = this.dbGears.execute('select url from anexo');
+		while(rs.isValidRow()) {
+			this.store.remove(rs.field(0));
+			rs.next();
+		}
+		this.dbGears.execute('drop table folder');
+		this.dbGears.execute('drop table mail');
+		this.dbGears.execute('drop table anexo');
+		this.finalize();
+	}
+	
+	local_messages.prototype.insert_mail = function(msg_info,msg_header,anexos,folder) {
+
+		try {
+			this.init_local_messages();
+			var unseen = 0;
+			var login = msg_info.login;
+			var original_id = msg_info.msg_number;
+			var original_folder = msg_info.msg_folder;
+			
+			//This fields needs to be separeted to search.
+			var from = connector.serialize(msg_info.from);
+			var subject = msg_info.subject;
+			var body = msg_info.body;
+			var to = connector.serialize(msg_info.toaddress2);
+			var cc = connector.serialize(msg_info.cc);
+			var size = msg_header.Size;
+	
+			//do not duplicate this information
+			msg_info.from = null;
+			msg_info.subject = null;
+			msg_info.body = null;
+			msg_info.to = null;
+			msg_info.cc = null;
+			msg_header.Size=null;
+			
+			//If the mail was archieved in the same date the user received it, the date cames with the time.
+			//here I solved it
+			if(msg_header.udate.indexOf(":")!=-1) {
+				msg_header.udate = msg_header.aux_date;
+			}
+			
+			/**
+			 * The importance attribute can be empty, and javascript consider as null causing nullpointer.
+			 */
+			if((msg_header.Importance == null) ||  (msg_header.Importance == ""))
+				msg_header.Importance = "Normal";
+			
+			msg_header.aux_date = null; 
+			
+			var mail = connector.serialize(msg_info);
+			var header = connector.serialize(msg_header);
+	
+			var timestamp = msg_info.timestamp;
+			var id_folder;
+	
+			if((folder==null) || (folder=="local_root"))
+				folder = "Inbox";
+			else
+				folder = folder.substr(6);//take off the word "local_"
+			
+			var rs = this.dbGears.execute("select rowid from folder where folder=? and uid_usuario=?",[folder,account_id]);
+			
+			if(rs.isValidRow())
+				id_folder=rs.field(0);
+			else {
+				this.dbGears.execute("insert into folder (folder,uid_usuario) values (?,?)",["Inbox",account_id]);
+				id_folder = this.dbGears.lastInsertRowId;
+			}
+			
+			if(msg_info.Unseen=="U")
+				unseen = 1;
+			this.dbGears.execute("insert into mail (mail,original_id,original_folder,header,timestamp,uid_usuario,unseen,id_folder,ffrom,subject,fto,cc,body,size) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)",[mail,original_id,original_folder,header,timestamp,login,unseen,id_folder,from,subject,to,cc,body,size]);
+			var call_back = function() {
+			}
+			this.store.capture(msg_info.url_export_file,call_back);
+			var id_mail = this.dbGears.lastInsertRowId;
+	
+			this.insert_attachments(id_mail,anexos);
+			this.finalize();
+			return true;
+		} catch (error) {
+			this.finalize();
+			return false;
+		}
+
+
+	}
+	
+	local_messages.prototype.get_local_mail = function(id_mail) {
+		this.init_local_messages();
+		var rs = this.dbGears.execute("select mail.rowid,mail.mail,mail.ffrom,mail.subject,mail.body,mail.fto,mail.cc,folder.folder from mail inner join folder on mail.id_folder=folder.rowid  where mail.rowid="+id_mail);
+		var retorno = null;
+		if(rs.isValidRow()) {
+			 retorno = rs.field(1);
+		}
+		retorno = connector.unserialize(retorno);
+		
+		retorno['from'] = connector.unserialize(rs.field(2));
+		retorno['subject'] = rs.field(3);
+		retorno['body'] = rs.field(4);
+		retorno['to'] = connector.unserialize(rs.field(5));
+		retorno['cc'] = connector.unserialize(rs.field(6));
+		
+		retorno['local_message'] = true;
+		retorno['msg_folder'] = "local_"+rs.field(7); //Now it's a local folder 
+		retorno['msg_number'] = rs.field(0); //the message number is the rowid
+		this.finalize();
+		return retorno;
+	}
+
+	local_messages.prototype.insert_attachments = function(id_msg,anexos) { 
+		//insert_mail already close and open gears.
+		for (var i = 0; i < anexos.length; i++) {
+			this.dbGears.execute("insert into anexo (id_mail,nome_anexo,url,pid) values (?,?,?,?)", [id_msg, anexos[i]['name'],anexos[i]['url'],anexos[i]['pid']]);
+			this.save_anexos(anexos[i]['url']);
+		}
+	}
+
+	local_messages.prototype.save_anexos = function (url) {
+		//insert_mail already close and open gears.
+		var call_back = function(url,success,captureId) {
+				//alert("Capturado: " + url);
+			}
+		//alert(url);
+		this.store.capture(url,call_back);
+	}
+
+	local_messages.prototype.get_local_range_msgs = function(folder,msg_range_begin,emails_per_page,sort,sort_reverse,search) { 
+		this.init_local_messages();
+		var retorno = new Array();
+		msg_range_begin--;
+		
+		filter = " ";
+		if(search=="FLAGGED") {
+			filter = "and (header like '%\"Flagged\";s:1:\"F%' or header like '%\"Importance\";s:5:\"High%') ";
+		}
+		if(search=="UNSEEN") {
+			filter = "and unseen = 1 ";
+		}
+		if(search=="SEEN") {
+			filter = "and unseen = 0 ";
+		}
+		if (search=="ANSWERED") {
+			filter = "and header like '%\"Answered\";s:1:\"A%' ";
+		}
+		sql = 'select rowid,header,size,timestamp,unseen from (';
+		sql += 'select mail.rowid as rowid,mail.header as header,mail.size as size,mail.timestamp as timestamp,mail.unseen as unseen,ltrim(ltrim(substr(UPPER(ffrom),21,length(ffrom)),\':\'),\'"\') as order_from,mail.subject from mail inner join folder on mail.id_folder=folder.rowid where mail.uid_usuario=? and folder.folder=? and lower(mail.ffrom) not like lower(?) ';
+		sql += filter;
+		sql += 'union ';
+		sql += 'select mail.rowid as rowid,mail.header as header,mail.size as size,mail.timestamp as timestamp,mail.unseen as unseen,ltrim(ltrim(substr(UPPER(fto),7,length(fto)),\':\'),\'"\') as order_from,mail.subject from mail inner join folder on mail.id_folder=folder.rowid where mail.uid_usuario=? and folder.folder=? and lower(mail.ffrom) like lower(?) ';
+		sql += filter;
+		sql += ') order by '
+		
+		if(sort == 'SORTFROM') {
+			sql += 'order_from ';
+		}
+		if(sort == 'SORTARRIVAL') {
+			sql += 'timestamp ';
+		}
+		if(sort == 'SORTSIZE') {
+			sql += 'size ';
+		}
+		if(sort == 'SORTSUBJECT') {
+			sql += 'UPPER(subject) ';
+		}
+
+
+		sql+= sort_reverse==0?"ASC ":"DESC ";
+		sql +='limit ?,? ';
+
+
+		var rs = this.dbGears.execute(sql,[account_id,folder,'%'+Element("user_email").value+'%',account_id,folder,'%'+Element("user_email").value+'%',msg_range_begin,emails_per_page]);
+		var cont = 0;
+		
+		var rs3 = this.dbGears.execute('select count(*) from mail inner join folder on mail.id_folder=folder.rowid where mail.uid_usuario=? and folder.folder=?'+filter,[account_id,folder]);
+				
+		while (rs.isValidRow()) {
+			//var email = rs.field(1);
+			var head = rs.field(1);
+			var codigoMail = rs.field(0);
+			var rs2 = this.dbGears.execute('select count(*) from anexo where id_mail = '+codigoMail);
+			var head_unserialized = connector.unserialize(head);
+			head_unserialized.Size = rs.field(2);
+			if(rs.field(4)==1)
+				head_unserialized.Unseen = 'U';		
+			
+			//var email_unserialized = connector.unserialize(email);
+			retorno[cont] = head_unserialized;
+			retorno[cont]['msg_number'] = codigoMail;
+			
+			cont++;
+		  	rs.next();
+		}
+		retorno['num_msgs'] = rs3.field(0);
+		rs3.close();
+		rs.close();
+		if(cont>0)
+			rs2.close();
+		this.finalize();
+		return retorno;
+	}
+	
+	local_messages.prototype.get_url_anexo = function(msg_number,pid) {
+		this.init_local_messages();
+
+		var retorno;
+		var rs = this.dbGears.execute("select url from anexo where id_mail="+msg_number+" and pid = '"+pid+"'");
+		retorno = rs.field(0)
+		this.finalize();
+		
+		return retorno;
+	}
+
+	local_messages.prototype.getInputFileFromAnexo = function (element,url) { 
+		this.init_local_messages();
+		this.fileSubmitter.setFileInputElement(element,url);
+		this.finalize();
+	}
+
+	local_messages.prototype.finalize = function() {
+		this.dbGears.close();
+		this.dbGears = null;
+	}
+
+	local_messages.prototype.delete_msgs = function(msgs_number,border_ID) {
+		this.init_local_messages();
+		var rs = this.dbGears.execute("select url from anexo where id_mail in ("+msgs_number+")");
+		while(rs.isValidRow()) {
+			this.store.remove(rs.field(0));
+			rs.next();
+		}
+		this.dbGears.execute("delete from anexo where id_mail in ("+msgs_number+")");
+		this.dbGears.execute("delete from mail where rowid in ("+msgs_number+")");
+		this.finalize();
+		if (msgs_number.length == 1)
+			write_msg(get_lang("The message was deleted."));
+		else
+			write_msg(get_lang("The messages were deleted."));
+		
+		mail_msg = Element("tbody_box");
+
+		try {
+			msgs_exploded = msgs_number.split(",");
+		}catch(error) {
+			msgs_exploded = new Array();
+			msgs_exploded[0] = msgs_number;
+		}
+		var msg_to_delete;
+		for (var i=0; i<msgs_exploded.length; i++){
+			msg_to_delete = Element(msgs_exploded[i]);
+			if (msg_to_delete){
+				if ( (msg_to_delete.style.backgroundColor != '') && (preferences.use_shortcuts == '1') )
+					select_msg('null', 'down');
+				mail_msg.removeChild(msg_to_delete);
+			}
+		}
+		Element('chk_box_select_all_messages').checked = false;
+		if (border_ID != 'null')
+			delete_border(border_ID,'false');
+		
+	}
+	
+	local_messages.prototype.get_source_msg = function(id_msg) {
+		this.init_local_messages();
+		var rs = this.dbGears.execute("select mail from mail where rowid="+id_msg);
+
+
+		mail = connector.unserialize(rs.field(0));		
+		download_local_attachment(mail.url_export_file)
+
+		this.finalize();
+	}
+	
+	local_messages.prototype.set_messages_flag = function(msgs_number, flag) {
+		this.init_local_messages();
+		var msgs_to_set;
+		if (msgs_number == 'get_selected_messages') { 
+			var msgs_to_set = get_selected_messages();
+			msgs_to_set= msgs_to_set.split(",");
+		}
+		else { //Just one message
+			msgs_to_set = new Array();
+			msgs_to_set[0] = msgs_number;
+		}
+		for (var i in msgs_to_set) {
+		
+			var rs = this.dbGears.execute("select header,unseen from mail where rowid=" + msgs_to_set[i]);
+			header = connector.unserialize(rs.field(0));
+			unseen = rs.field(1);
+			if (flag == "unseen") {
+				set_msg_as_unread(msgs_to_set[i]);
+				header["Unseen"] = "U";
+				unseen = 1;
+			}
+			else 
+				if (flag == "flagged") {
+					set_msg_as_flagged(msgs_to_set[i]);
+					header["Flagged"] = "F";
+				}
+				else 
+					if (flag == "unflagged") 
+						if (header["Importance"].indexOf("High") != -1) 
+							write_msg(get_lang("At least one of selected message cant be marked as normal"));
+						else {
+							set_msg_as_unflagged(msgs_to_set[i]);
+							header["Flagged"] = "N";
+						}
+					else 
+						if (flag == "seen") {
+							header["Unseen"] = "N";
+							set_msg_as_read(msgs_to_set[i],true);
+							unseen = 0;
+						}
+			rs.close();
+			
+			if(Element("check_box_message_" + msgs_to_set[i]))
+				Element("check_box_message_" + msgs_to_set[i]).checked = false;
+
+			this.dbGears.execute("update mail set header='"+connector.serialize(header)+"',unseen="+unseen+" where rowid="+msgs_to_set[i]);			
+		}
+		if(Element('chk_box_select_all_messages'))
+			Element('chk_box_select_all_messages').checked = false;
+		this.finalize();
+
+	}
+	
+	local_messages.prototype.get_unseen_msgs_number = function() {
+		this.init_local_messages();
+		var rs = this.dbGears.execute("select count(*) from mail where unseen=1");
+		var retorno = rs.field(0);
+		rs.close();
+		this.finalize();
+		return retorno;
+	}
+
+	local_messages.prototype.create_folder = function(folder) {
+
+		if (folder.indexOf("local_") != -1)
+			return false; //can't create folder with string local_
+
+		this.init_local_messages();
+		try {
+			this.dbGears.execute("insert into folder (folder,uid_usuario) values (?,?)",[folder,account_id]);
+		} catch (error) {
+			this.finalize();
+			throw error;
+			return false;
+		}
+		this.finalize();
+		return true;
+	}
+
+	local_messages.prototype.list_local_folders = function(folder) {
+		this.init_local_messages();
+		var retorno = new Array();
+		rs = this.dbGears.execute("select folder.folder,sum(mail.unseen) from folder left join mail on "+
+				"folder.rowid=mail.id_folder where folder.uid_usuario=? group by folder.folder",[account_id]);
+		while(rs.isValidRow()) {
+			var temp = new Array();
+			temp[0] = rs.field(0);
+			temp[1] = rs.field(1);
+			retorno.push(temp);
+			rs.next();
+		}
+		
+		rs.close();
+		this.finalize();
+		return retorno;
+	}
+
+	local_messages.prototype.rename_folder = function(folder,old_folder) {
+		if (folder.indexOf("local_") != -1)
+			return false; //can't create folder with string local_
+		this.init_local_messages();
+		try {
+			this.dbGears.execute("update folder set folder=? where folder=? and uid_usuario=?",[folder,old_folder,account_id]);
+		} catch (error) {
+			this.finalize();
+			return false;
+		}
+		this.finalize();
+		return true;
+	}
+	
+	local_messages.prototype.remove_folder = function(folder) {
+		this.init_local_messages();
+		var rs = this.dbGears.execute("select rowid from folder where folder=? and uid_usuario=?",[folder,account_id]);
+		var folder_id = rs.field(0);
+		rs.close();
+		this.dbGears.execute("delete from folder where rowid=?",[folder_id]);
+		rs = this.dbGears.execute("select rowid,mail from mail where id_folder=?",[folder_id]);
+		while(rs.isValidRow()) {
+			var rs2 = this.dbGears.execute("select url from anexo where id_mail=?",[rs.field(0)]);
+			while(rs2.isValidRow()) {
+				this.store.remove(rs2.field(0));
+				rs2.next();
+			}
+			rs2.close();
+			this.dbGears.execute("delete from anexo where id_mail=?",[rs.field(0)]);
+			var mail = connector.unserialize(rs.field(1));
+			this.store.remove(mail.url_export_file);
+			rs.next();
+		}
+		rs.close();
+		this.dbGears.execute("delete from mail where id_folder=?",[folder_id]);
+		this.finalize();
+	}
+
+	local_messages.prototype.move_messages = function(new_folder,msgs_number) {
+		this.init_local_messages();
+		var rs = this.dbGears.execute("select rowid from folder where folder=? and uid_usuario=?",[new_folder,account_id]);
+		var id_folder = rs.field(0);
+		rs.close();
+		this.dbGears.execute("update mail set id_folder="+id_folder+" where rowid in ("+msgs_number.toString()+")"); //usando statement nï¿œo tava funcionando quando tinha mais de um email...
+		this.finalize();
+	}
+	
+	local_messages.prototype.search = function(folders,filter) {
+		this.init_local_messages();
+		var filters = filter.replace(/##/g," ");
+		filters = filters.replace(/^ +| +$/g,"");
+		filters = filters.split("<=>");
+		var friendly_filters = new Array();
+		if (filters[0].indexOf('ALL') != -1) { //all filters...
+			friendly_filters.push("SUBJECT");
+			friendly_filters.push(filters[1]);
+			friendly_filters.push("BODY");
+			friendly_filters.push(filters[1]);
+			friendly_filters.push("FROM");
+			friendly_filters.push(filters[1]);
+			friendly_filters.push("TO");
+			friendly_filters.push(filters[1]);
+			friendly_filters.push("CC");
+			friendly_filters.push(filters[1]);			
+		}
+		else {
+			friendly_filters[0] = filters[0];
+			for (var i in filters) {
+				if (i != 0) {
+					var temp = filters[i].split(" ");
+					friendly_filters.push(temp[0]);
+					friendly_filters.push(temp[1]);
+				}
+			}
+		}
+		var sql = "select mail.header,folder.folder,mail.rowid,size from mail inner join folder on mail.id_folder=folder.rowid where mail.uid_usuario="+account_id + " and folder.folder in (";
+		for(var fnum in folders) {
+			sql+="'"+folders[fnum]+"'";
+			if(fnum<folders.length-1)
+				sql+=",";
+		}
+		sql += ") and (";
+		for (var z=0;z<friendly_filters.length-1;z++) {
+			if(z%2==0) {
+				if (z != 0) {
+					if (filters[0].indexOf('ALL') != -1) 
+						sql += " or";
+					else 
+						sql += " and";
+				}
+				sql+=" mail."+this.aux_convert_filter_field(friendly_filters[z])+" like '%"+friendly_filters[z+1]+"%'";
+			}
+		}
+		sql += ")";
+		var rs = this.dbGears.execute(sql);
+		var retorno = "";
+		while(rs.isValidRow()) {
+			var header = connector.unserialize(rs.field(0));
+			retorno+="##"+"local_"+rs.field(1)+"--"+header["from"]["name"]+"--"+header["subject"]+"--"+header["udate"]+"--"+this.aux_convert_size(rs.field(3))+"--"+header["Unseen"]+header["Recent"]+header["Flagged"]+header["Draft"]+"--"+rs.field(2)+"##";
+			rs.next();
+		}
+
+		this.finalize();
+		return retorno==""?false:retorno;
+
+	}
+	
+	local_messages.prototype.aux_convert_size = function(size) {
+		var tmp = Math.floor(size/1024);
+		if(tmp >= 1){
+			return tmp + " kb";	
+		}else{
+			return size + " b";	
+		}
+		
+	}
+	
+	local_messages.prototype.aux_convert_filter_field = function(filter) {
+		if((filter=="SUBJECT ") || (filter=="SUBJECT"))
+			return "subject";
+		else if((filter=="BODY ") || (filter=="BODY"))
+			return "body";
+		else if((filter=="FROM ") || (filter=="FROM"))
+			return "ffrom";
+		else if((filter=="TO ") || (filter=="TO"))
+			return "fto";
+		else if((filter=="CC ") || (filter=="CC"))
+			return "cc";
+	}
+	
+	local_messages.prototype.has_local_mails = function() {
+		this.init_local_messages();
+		var rs = this.dbGears.execute("select rowid from folder limit 0,1");
+		var retorno;
+		if(rs.isValidRow())
+			retorno = true;
+		else 
+			retorno = false;
+		this.finalize();
+		return retorno;
+	}
+	
+	var expresso_local_messages;
+	expresso_local_messages = new local_messages();
Index: tags/expressoMail1_2/1.234/js/TreeS.js
===================================================================
--- tags/expressoMail1_2/1.234/js/TreeS.js	(revision 689)
+++ tags/expressoMail1_2/1.234/js/TreeS.js	(revision 689)
@@ -0,0 +1,198 @@
+/**************************************************************************\
+ Início 
+\**************************************************************************/
+
+	function treeS()
+	{
+		this.arrayW = new Array();
+		this.el;
+		this.FOLDER = "";
+	}
+
+	treeS.prototype.make_Window = function(){	
+		_this = this;
+		connector.loadScript("TreeShow");
+		var title = ':: '+get_lang("Manager your folders and export messages")+' ::';
+		tree 				  = document.createElement("DIV");
+		tree.style.visibility = "hidden";
+		tree.style.position   = "absolute";
+		tree.style.left 	  = "0px";
+		tree.style.top 		  = "0px";
+		tree.style.width 	  = "0px";
+		tree.style.height 	  = "0px";									
+		tree.id				  = "window_tree";
+		document.body.appendChild(tree);
+
+		tree.innerHTML = "&nbsp;&nbsp;&nbsp;<b><font color='BLACK' nowrap>"+title+"</font></b>"+
+		"&nbsp;&nbsp;<br><u></u>&nbsp;&nbsp;";
+
+		var div_buttons = document.createElement("DIV");
+		div_buttons.id = "div_buttons";
+		div_buttons.style.position = "absolute";		
+		div_buttons.style.left = "440px";
+		div_buttons.style.top = "20px"		
+		div_buttons.style.width = "130px";
+		div_buttons.style.height = "214px";
+		div_buttons.innerHTML = "<table border='0' cellpading='0' cellspacing='0'>"+
+							    "<tr>"+
+							    "<td><input type='button' value='"+get_lang('New folder')+"' onclick='proxy_mensagens.proxy_create_folder()'></td>"+
+							    "</tr>"+
+							    "<tr>"+
+							    "<td><input type='button' value='"+get_lang('Delete folder')+"' onclick='proxy_mensagens.proxy_remove_folder()'></td>"+
+							    "</tr>"+
+							    "<tr>"+
+							    "<td><input type='button' value='"+get_lang('Rename folder')+"' onclick='proxy_mensagens.proxy_rename_folder()'></td>"+
+							    "</tr>"+
+							    "<tr>"+
+							    "<td><input type='button' value='"+get_lang('Export messages')+"' onclick='ttreeBox.export_all_msg()'></td>"+
+							    "</tr>"+
+							    "<tr><td><br><br><br><br><br></td></tr>"+
+							    "<tr><td><input type='button' value='"+get_lang('Close')+"' onclick='ttree.close_win()'></td></tr>"+
+							    "</table>";
+		tree.appendChild(div_buttons);		
+
+		// Conf tree
+		var jo = document.createElement("DIV");
+		jo.id = "div_tree";
+		jo.style.position = "absolute";
+		jo.style.left = "10px";
+		jo.style.top = "20px";
+		jo.style.width = "420px";
+		jo.style.height = "215px";
+		jo.style.borderStyle = "outset";
+		jo.style.borderColor = "black";
+		jo.style.borderWidth = "2px";
+		jo.style.background  = "#F7F7F7";
+		jo.style.overflow    = "auto";
+		jo.innerHTML = "";
+		tree.appendChild(jo);
+
+		ttree.make_tree(folders,"div_tree","folders_tree","ttree.get_folder(\"root\")","","root",false);
+		_this.showWindow(tree);
+
+	}
+	
+	treeS.prototype.get_folder = function(param){
+		this.FOLDER = param;
+	}
+
+	treeS.prototype.showWindow = function (div){
+		if(! div) {
+			return;
+		}
+		
+		if(! this.arrayW[div.id]) {
+			div.style.width  = "580px";
+			div.style.height = "250px";
+			div.style.zIndex = "10000";			
+			var title = get_lang("Folder Management");
+			var wHeight = div.offsetHeight + "px";
+			var wWidth =  div.offsetWidth   + "px";
+			div.style.width = div.offsetWidth - 5;
+
+			win = new dJSWin({
+				id: 'win_'+div.id,
+				content_id: div.id,
+				width: wWidth,
+				height: wHeight,
+				title_color: '#3978d6',
+				bg_color: '#eee',
+				title: title,
+				title_text_color: 'white',
+				button_x_img: '../phpgwapi/images/winclose.gif',
+				border: true });
+			
+			this.arrayW[div.id] = win;
+			win.draw();
+		}
+		else {
+			win = this.arrayW[div.id];
+		}
+		win.open();
+	}
+	
+	treeS.prototype.close_win = function(){
+	
+		this.FOLDER = "";
+		this.arrayW['window_tree'].close();
+	
+	}
+
+	treeS.prototype.make_tree = function (data,destination,name_tree, click_root, opentomb, selected,menu_folder){
+		//Somente para teste
+		//alert("data: " + data.length + "\n" + "destination : " + destination + "\n" + "name_tree : " + name_tree + "\n" + "click_root : " + click_root + "\n" + "opentomb : " + opentomb + "\n" + "selected : " + selected + "\n" + "menu_folder : " + menu_folder);
+			
+		if(Element('dftree_' + name_tree)){
+			Element('dftree_' + name_tree).innerHTML = '';
+		}
+		
+		folders_tree = new dFTree({name: name_tree});
+
+		if(click_root != ""){
+			var n_root = new dNode({id:'root', caption:get_lang("My Folders"), onClick:click_root});
+		}else{
+			var n_root = new dNode({id:'root', caption:get_lang("My Folders")});		
+		}
+		folders_tree.add(n_root,'root'); //Places the root; second argument can be anything.
+
+		if(data.length == 0){
+			alert("sem dados");
+			return false;
+		}
+	
+		for (var i=0; i<data.length; i++){
+			if(menu_folder){
+				if (data[i].folder_unseen > 0)
+					var nn = new dNode({id:data[i].folder_id, caption:lang_folder(data[i].folder_name) + '<font style=color:red>&nbsp(</font><span id="dftree_'+data[i].folder_id+'_unseen" style=color:red>'+data[i].folder_unseen+'</span><font style=color:red>)</font>', onClick:"change_folder('"+data[i].folder_id+"','"+data[i].folder_name+"')", plusSign:data[i].folder_hasChildren}); 
+				else
+					var nn = new dNode({id:data[i].folder_id, caption:lang_folder(data[i].folder_name), onClick:"change_folder('"+data[i].folder_id+"','"+data[i].folder_name+"')", plusSign:data[i].folder_hasChildren}); 
+			}else{
+				var nn = new dNode({id:data[i].folder_id, caption:lang_folder(data[i].folder_name), plusSign:data[i].folder_hasChildren});
+			}
+	
+			if (data[i].folder_parent == '')
+				data[i].folder_parent = 'root';
+			else if (data[i].folder_parent == 'user'){
+				if (!tree_folders.getNodeById('user')){
+					var n_root_shared_folders = new dNode({id:'user', caption:get_lang("Shared Folders"), plusSign:true}); 
+					folders_tree.add(n_root_shared_folders,'root');
+				}
+			}
+			folders_tree.add(nn,data[i].folder_parent);
+		}
+		//Pastas locais
+		if (preferences.use_local_messages == 1) {
+			var n_root_local = new dNode({
+				id: 'local_root',
+				caption: get_lang("local messages"),
+				plusSign: true
+			});
+			folders_tree.add(n_root_local, 'root');
+			
+			var local_folders = expresso_local_messages.list_local_folders();
+			for (var i in local_folders) { //Coloca as pastas locais.
+				if (local_folders[i][1] > 0) 
+					var nodeLocal = new dNode({
+						id: "local_" + local_folders[i][0],
+						caption: lang_folder(local_folders[i][0]) + '<font style=color:red>&nbsp(</font><span id="local_unseen" style=color:red>' + local_folders[i][1] + '</span><font style=color:red>)</font>',
+						plusSign: 0
+					});
+				else 
+					var nodeLocal = new dNode({
+						id: "local_" + local_folders[i][0],
+						caption: lang_folder(local_folders[i][0]),
+						plusSign: 0
+					});
+				folders_tree.add(nodeLocal, "local_root");
+			}
+		}
+		folders_tree.draw(Element(destination));
+		n_root.changeState();
+		if(opentomb != ""){folders_tree.openTo(opentomb);}
+		if(selected != "" && folders_tree.getNodeById(selected)){folders_tree.getNodeById(selected)._select();}
+
+	}
+
+/* Build the Object */
+	var ttree;
+	ttree = new treeS();
Index: tags/expressoMail1_2/1.234/js/globals.js
===================================================================
--- tags/expressoMail1_2/1.234/js/globals.js	(revision 790)
+++ tags/expressoMail1_2/1.234/js/globals.js	(revision 790)
@@ -0,0 +1,45 @@
+var debug = false;
+var _bTime = new Date();
+_bTime = _bTime.getTime();
+var hold_session = false;
+var current_page = 1;
+var current_folder = '';
+var id_menu_folders = '';
+var preferences = '';
+var contacts = '';
+var search_box_type = 'ALL';
+var sort_box_type = 'SORTARRIVAL';
+var sort_box_reverse = 1;
+var last_message_selected = '';
+var array_lang = new Array();
+var cyrus_delimiter = '';
+var ccaddress_array = new Array();
+var ccoaddress_array = new Array();
+var toaddress_array = new Array();
+var tree_folders = '';
+var folders = new Array();
+var title_app_menu = '<table height="16px" align=center border=0 width=100% cellspacing=0 cellpadding=2>'+
+	'<tr><td align=left height=16px width="1%" nowrap class="table_top">&nbsp;'+
+	'<a href=# onclick="javascript:new_message(\'new\',\'null\')" align=left>'+
+	'<img src="templates/'+template+'/images/menu/createmail.gif">'+
+	'&nbsp;Novo</a>&nbsp;&nbsp;'+
+	'<a href="#" onclick="javascript:wfolders.makeWindow(\'\', \'change_folder\')" align=left>'+
+	'<img src="templates/'+template+'/images/menu/editfolders.png">'+
+	'&nbsp;Trocar Pasta</a>&nbsp;&nbsp'+	
+	'<a href="#" onclick="javascript:refresh();" align=left>'+
+	'<img src="templates/'+template+'/images/menu/checkmail.gif">'+
+	'&nbsp;Atualizar</a>&nbsp;&nbsp;'+
+	'<a id="link_tools" href="#" align=left>'+
+	'<img height="16px" src="templates/'+template+'/images/menu/tools.gif">'+
+	'&nbsp;Ferramentas...</a>&nbsp;&nbsp;</td><td style="padding-left:17px" width="1%" id="content_quota" align=left nowrap></td><td width=* id="div_menu_c3" align="right"></td></tr></table>';
+
+var title_app = '<table height="16px" border=0 width=100% cellspacing=0 cellpadding=2>'+
+	'<tr>'+
+	'<td style="padding-left:17px" width=33% id="content_quota" align=left></td>'+
+	'<td width=33% height=16px align=center nowrap><font face=Verdana, Arial, Helvetica, sans-serif color=#000066 size=2>'+
+	'<b>ExpressoMail</b><font size=1><b> - Versão 1.2</b></font></td>'+
+	'<td width=33% id="div_menu_c3" align=right></td>'+
+	'</tr></table>';
+
+var divStatusBar = document.getElementById("divStatusBar");
+var denyFileExtensions = new Array('exe','com','reg','chm','cnf','hta','ins','jse','job','lnk','pif','src','scf','sct','shb','vbe','vbs','wsc','wsf','wsh','cer','its','mau','','mda','mar','mdz','prf','pst');
Index: tags/expressoMail1_2/1.234/js/main.js
===================================================================
--- tags/expressoMail1_2/1.234/js/main.js	(revision 847)
+++ tags/expressoMail1_2/1.234/js/main.js	(revision 847)
@@ -0,0 +1,1913 @@
+// Tempo do auto refresh (em milisegundos)
+var time_refresh = 300000;
+// tempo do auto save (em milisegundos)
+// 20000 = 20 segundos
+var autosave_time = 20000;
+
+function init(){
+	if (!is_ie)
+		Element('tableDivAppbox').width = '100%';
+	
+	var save_contacts = function(data){
+		contacts = data;
+	}
+	var save_preferences = function(data){
+		preferences = data;
+		if(preferences.hide_folders == "1")
+			Element('divAppboxHeader').innerHTML =  title_app_menu;
+
+		if (preferences.delete_trash_messages_after_n_days != 0)
+			cExecute ("$this.imap_functions.automatic_trash_cleanness&before_date="+preferences.delete_trash_messages_after_n_days+"&cyrus_delimiter="+cyrus_delimiter, handler_automatic_trash_cleanness);
+
+		if(preferences.outoffice == "1")
+			write_msg(get_lang("Attention, you are in out of office mode."), true);
+		ConstructMenuTools();
+		cExecute ("$this.imap_functions.get_folders_list", update_menu);
+	}
+	var handler_automatic_trash_cleanness = function(data){
+		if (data != false){
+			write_msg(data.length +' '+ Element('txt_clear_trash').value);
+		}
+	}
+	
+	// Versão
+	Element('divAppboxHeader').innerHTML = title_app;
+	
+	// Get cyrus delimiter
+	cyrus_delimiter = Element('cyrus_delimiter').value;
+	
+	cExecute ("$this.db_functions.get_dropdown_contacts", save_contacts);
+	cExecute ("$this.functions.get_preferences", save_preferences);
+	setTimeout('auto_refresh()', time_refresh);
+}
+function disable_field(field,condition) {
+	var comando = "if ("+condition+") { document.getElementById('"+field.id+"').disabled=true;} else { document.getElementById('"+field.id+"').disabled=false; }";
+	eval(comando);
+}
+/*
+	função que remove todos os anexos...
+*/
+function remove_all_attachments(folder,msg_num) {
+
+	var call_back = function(data) {
+					if(!data.status) { //Em caso de erros, o status vem como false e o texto do erro vem em msg.
+						alert(data.msg);
+					}
+					else {
+						mail_msg = Element("tbody_box");
+						msg_to_delete = Element(data.msg_num);
+						if (msg_to_delete) {
+							if ( (msg_to_delete.style.backgroundColor != '') && (preferences.use_shortcuts == '1') )
+								select_msg('null', 'down');
+							mail_msg.removeChild(msg_to_delete);												
+						}//Remove o email com anexos da lista de emails.
+						write_msg(get_lang("Attachments removed"));//indica que os anexos foram removidos
+						refresh(); //dá um refresh na lista de emails, para que apareça o novo email sem anexos
+						delete_border(data.msg_num+'_r','false');//fecha a tela do email já removido.
+					}
+				};
+	if (confirm(get_lang("delete all attachments confirmation")))
+		cExecute ("$this.imap_functions.remove_attachments&folder="+folder+"&msg_num="+msg_num, call_back); //chamada em ajax para a função de remover anexos.
+}
+function watch_changes_in_msg(border_id)
+{
+	if (document.getElementById('border_id_'+border_id))
+	{	
+		function keypress_handler ()
+		{
+			away=false;
+			var save_link = Element("save_message_options_"+border_id);
+			save_link.onclick = function onclick(event) { openTab.toPreserve[border_id] = true; save_msg(border_id); } ;
+			save_link.className = 'message_options';
+		};
+		
+		var obj = document.getElementById('body_'+border_id).contentWindow.document;
+		if ( obj.addEventListener )
+				obj.addEventListener('keypress', keypress_handler, false);
+		else if ( obj.attachEvent )
+			obj.attachEvent('onkeypress', keypress_handler);
+			
+		var subject_obj = document.getElementById('subject_'+border_id);
+		if ( subject_obj.addEventListener )
+				subject_obj.addEventListener('keypress', keypress_handler, false);
+		else if ( subject_obj.attachEvent )
+			subject_obj.attachEvent('onkeypress', keypress_handler);
+			
+		var to_obj = document.getElementById('to_'+border_id);
+		if ( to_obj.addEventListener )
+				to_obj.addEventListener('keypress', keypress_handler, false);
+		else if ( to_obj.attachEvent )
+			to_obj.attachEvent('onkeypress', keypress_handler);
+		
+	}
+}
+
+function show_msg_img(msg_info){
+       delete_border(msg_info.msg_number+"_r");
+       msg_info.showImg = true;
+       if (!Element(msg_info.msg_number)){
+	       trElement = document.createElement('DIV');
+	       trElement.id = msg_info.msg_number;
+	       Element("tbody_box").appendChild(trElement);
+       }
+       show_msg(msg_info);
+}
+
+function show_msg(msg_info){
+	if(!verify_session(msg_info))
+		return;
+	if (typeof(msg_info) != 'object')
+		alert(get_lang("Error in show_msg param is not object"));
+	
+	if (msg_info.status_get_msg_info == 'false')
+	{
+		write_msg(get_lang("Problems reading your message")+ ".");
+		return;
+	}
+	
+	var handler_sendNotification = function(data){
+		if (data)
+			write_msg(get_lang("A read confirmation was sent."));
+		else
+			write_msg(get_lang("Error in SMTP sending read confirmation."));
+	}
+
+	if (msg_info.status == 'false'){
+		eval(msg_info.command_to_exec);
+	}
+	else{
+		if (preferences.use_shortcuts == '1')
+			select_msg(msg_info.msg_number, 'null');
+		// Call function to draw message
+		var id_msg_read = msg_info.msg_number +"_r";
+		// If needed, delete old border
+		if (openTab.type[currentTab] == 2 || openTab.type[currentTab] == 3)
+			delete_border(currentTab,'false');
+
+		
+		if(Element("border_id_" + id_msg_read)) 
+			alternate_border(id_msg_read);		
+		else {
+			var border_id = create_border(msg_info.subject, id_msg_read);
+			if(border_id)
+			{
+				openTab.type[border_id] = 2;
+				draw_message(msg_info,border_id);
+				var unseen_sort = document.getElementById('span_flag_UNSEEN').getAttribute('onclick');
+				unseen_sort = unseen_sort.toString();
+				if ( !(unseen_sort.indexOf("'UNSEEN' == 'UNSEEN'") < 0) )
+				{
+					var sort_type = sort_box_type;
+					sort_box_type = null;
+					sort_box('UNSEEN', sort_type);
+				}
+			}
+			else
+				return;
+		}
+
+		var domains = "";
+		if ((msg_info.DispositionNotificationTo) && (!msg_is_read(msg_info.msg_number) || (msg_info.Recent == 'N')))
+		{			
+			if (preferences.notification_domains != undefined && preferences.notification_domains != "")
+				domains = preferences.notification_domains.split(',');
+			else
+			{				
+				var confNotification = true;
+			 }
+			for (var i = 0; i < domains.length; i++)
+				if (msg_info.DispositionNotificationTo.match(domains[i]+">"))
+				{
+					var confNotification = true;
+					break;
+				}
+				if (confNotification == undefined)
+					var confNotification = confirm(get_lang("The sender:\n%1\nwaits your notification of reading. Do you want to confirm this?",msg_info.DispositionNotificationTo), "");
+
+			if (confNotification)
+				cExecute ("$this.imap_functions.send_notification&notificationto="+msg_info.DispositionNotificationTo+"&subject="+url_encode(msg_info.subject), handler_sendNotification);
+		}
+		//Change msg class to read.
+		if (!msg_is_read(msg_info.msg_number))
+		{
+			set_msg_as_read(msg_info['msg_number'], true);
+			if (msg_info.cacheHit)
+				set_message_flag(msg_info.msg_number, "seen"); // avoid caducous (lazy) data
+		}
+
+	}
+}
+
+function auto_refresh(){
+	refresh(preferences.alert_new_msg);
+	setTimeout('auto_refresh()', time_refresh);
+}
+
+function refresh(alert_new_msg){
+	var handler_refresh = function(data){
+		if(!verify_session(data))
+			return;
+		var box = Element("tbody_box");
+		if (box.childNodes.length == 0)
+		{
+			td_info = document.createElement("H3");
+			td_info.setAttribute("height", "25%");
+			td_info.setAttribute("background", "#FFF");
+			td_info.setAttribute("id", "msg_info");
+			td_info.align = "center";
+			td_info.innerHTML = get_lang("This mail box is empty");
+			box.appendChild(td_info);
+		}
+
+		if (data.length > 0){
+			var msg_info = document.getElementById('msg_info')
+			if (msg_info != null)
+				main.removeChild(msg_info);
+
+			table_element = Element("table_box");
+			var box = Element("tbody_box");
+			table_element.appendChild(box);
+			for (var i=0; i<data.length; i++){
+				var new_msg = this.make_tr_message(data[i], current_folder);
+				_dragArea.makeDragged(new_msg, data[i].msg_number, data[i].subject, true);
+				eval(data[i].command);
+			}
+			if (! typeof(data.msgs_to_delete) == 'undefined')
+				for (var i=0; i<data.msgs_to_delete.length; i++){
+					var remove_msg = document.getElementById(data.msgs_to_delete[i]);
+					if (remove_msg)
+						remove_msg.parentNode.removeChild(remove_msg);
+				}
+
+			if(parseInt(alert_new_msg) && data.new_msgs > 0)
+				alert(get_lang("You have %1 new", data['new_msgs'])+" "+(data['new_msgs'] > 1 ? get_lang("messages") : get_lang("message")) +"!");
+			if(data.new_msgs > 0){
+			Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + parseInt(data.new_msgs); //refresh tab title
+			update_quota(get_current_folder());
+			}
+			 //if(data.new_msgs > 0 || data.msgs_to_delete.length > 0)
+			//	purgeCache();
+		}
+		purgeCache();
+		update_menu();
+	}
+
+	msg_range_end = (current_page*preferences.max_email_per_page);
+	msg_range_begin = (msg_range_end-(preferences.max_email_per_page)+1);
+	
+	
+	//Get element tBody.
+	main = Element("tbody_box");
+	if(!main)
+		return;	
+
+	// Get all TR (messages) in tBody.
+	main_list = main.childNodes;
+	var tmp = '';
+	var string_msgs_in_main = '';
+
+	var len = main_list.length; 
+	for (var j=0; j < len; j++)
+		tmp += main_list[j].id + ',';
+		
+	string_msgs_in_main = tmp.substring(0,(tmp.length-1));
+	cExecute ("$this.imap_functions.refresh&folder="+current_folder+"&msgs_existent="+string_msgs_in_main+"&msg_range_begin="+msg_range_begin+"&msg_range_end="+msg_range_end+"&sort_box_type="+sort_box_type+"&search_box_type="+search_box_type+"&sort_box_reverse="+sort_box_reverse, handler_refresh);
+}
+
+function delete_msgs(folder, msgs_number, border_ID, show_success_msg)
+{
+	if (arguments.length < 4){
+		show_success_msg = true;
+	}
+
+	if (folder == 'null')
+		folder = current_folder;
+
+	if(openTab.type[currentTab] == 1)
+		return move_search_msgs('content_id_'+currentTab,'INBOX'+cyrus_delimiter+trashfolder,trashfolder);
+
+	if(currentTab.toString().indexOf("_r") != -1){
+			msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));
+	}
+
+	if ((parseInt(preferences.save_deleted_msg)) && (folder!='INBOX'+cyrus_delimiter+trashfolder)){
+		move_msgs2(folder, msgs_number, border_ID, 'INBOX'+cyrus_delimiter+trashfolder,trashfolder,show_success_msg );
+		return;
+	}
+	
+	var handler_delete_msgs = function(data){
+		Element('chk_box_select_all_messages').checked = false;
+		if (currentTab)
+			mail_msg = Element("tbody_box_"+currentTab);
+		else
+			mail_msg = Element("tbody_box");
+		
+		if ( preferences.use_shortcuts == '1') {
+			var all_messages = mail_msg.childNodes;
+
+			//Last msg is selected
+			if ( exist_className(all_messages[all_messages.length-1], 'selected_shortcut_msg') ) {
+				select_msg('null', 'up', true);
+			}
+			else {
+				if (!select_msg('null', 'down', true)) {
+					select_msg('null', 'up', true);
+				}
+			}
+		}
+		
+		var msg_to_delete;
+		for (var i=0; i<data.msgs_number.length; i++){
+			msg_to_delete = Element(data.msgs_number[i]);
+			if (msg_to_delete){
+				mail_msg.removeChild(msg_to_delete);
+			}
+		}
+		if (show_success_msg) {
+			if (data.msgs_number.length == 1)
+				write_msg(get_lang("The message was deleted."));
+			else
+				write_msg(get_lang("The messages were deleted."));
+		}
+
+		if (openTab.type[currentTab] > 1){
+			if (parseInt(preferences.delete_and_show_previous_message))
+			{
+				delete_border(currentTab,'false');
+				show_msg(data.previous_msg);
+			}
+			else
+				delete_border(currentTab,'false');
+		}
+		Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) - data.msgs_number.length;
+		refresh();
+	}
+
+	if (msgs_number == 'selected')
+		msgs_number = get_selected_messages();
+	if (msgs_number.length > 0 || parseInt(msgs_number) > 0)
+		cExecute ("$this.imap_functions.delete_msgs&folder="+folder+"&msgs_number="+msgs_number+"&border_ID="+border_ID+"&sort_box_type="+sort_box_type+"&search_box_type="+search_box_type+"&sort_box_reverse="+sort_box_reverse+"&reuse_border="+border_ID+"&get_previous_msg="+preferences.delete_and_show_previous_message, handler_delete_msgs);
+	else
+		write_msg(get_lang('No selected message.'));		
+}
+
+
+function move_search_msgs(border_id, new_folder, new_folder_name){
+	var selected_messages = '';
+	var temp_msg;
+	var main_list = Element("tbody_box_"+currentTab.substr(7)).childNodes;
+	for (j = 0; j < main_list.length; j++)	{
+		var check_box = main_list[j].firstChild.firstChild; 
+		if(check_box && check_box.checked) {
+			if (proxy_mensagens.is_local_folder(main_list[j].getAttribute('name'))) {
+				alert(get_lang("You cant manipulate local messages on search"));
+				return;
+			}
+			selected_messages += main_list[j].id + ',';
+		}
+	}
+	selected_messages = selected_messages.substring(0,(selected_messages.length-1));
+	var handler_move_search_msgs = function(data){
+		if(!data || !data.msgs_number)
+			return;
+		else if(data.deleted) {			
+			if (data.msgs_number.length == 1)
+				write_msg(get_lang("The message was deleted."));
+			else
+				write_msg(get_lang("The messages were deleted."));			
+		}
+		else{
+			if (data.msgs_number.length == 1)
+				write_msg(get_lang("The message was moved to folder ") + lang_folder(data.new_folder_name));
+			else
+				write_msg(get_lang("The messages were moved to folder ") + lang_folder(data.new_folder_name));
+		}
+
+		selected_messages = selected_messages.split(",");
+		for (i = 0; i < selected_messages.length; i++){
+			removeAll(selected_messages[i]);
+		}
+		purgeCache();
+	}
+
+	if (selected_messages){
+		var selected_param = "";
+		if (selected_messages.indexOf(',') != -1)
+		{
+			selected_msg_array = selected_messages.split(",");
+			for (i = 0; i < selected_msg_array.length; i++){
+				var tr = Element(selected_msg_array[i]);
+				if (tr.getAttribute('name') == new_folder)
+				{
+					write_msg(get_lang('At least one message have the same origin'));
+					return false;
+				}
+				trfolder = (tr.getAttribute('name') == null?get_current_folder():tr.getAttribute('name'));
+			        selected_param += ','+trfolder+';'+tr.id;
+			}
+		}
+		else
+		{
+			var tr=Element(selected_messages);
+			if (tr.getAttribute('name') == new_folder)
+			{
+				write_msg(get_lang('The origin folder and the destination folder are the same.'));
+				return false;
+			}
+			trfolder = (tr.getAttribute('name') == null?get_current_folder():tr.getAttribute('name'));
+			selected_param=trfolder+';'+tr.id;
+		}
+		var params = "";
+		if (!new_folder && parseInt(preferences.save_deleted_msg)){ 
+			new_folder = 'INBOX'+cyrus_delimiter+trashfolder;
+			new_folder_name = trashfolder;
+			params = "&delete=true";
+		}
+
+		params += "&selected_messages="+url_encode(selected_param);
+		if(new_folder) {
+			params += "&new_folder="+url_encode(new_folder);
+			params += "&new_folder_name="+url_encode(new_folder_name);
+		}
+		cExecute ("$this.imap_functions.move_search_messages", handler_move_search_msgs, params);
+	}
+	else
+		write_msg(get_lang('No selected message.'));		
+}
+
+function move_msgs2(folder, msgs_number, border_ID, new_folder, new_folder_name,show_success_msg){
+	if (! folder || folder == 'null')
+		folder = Element("input_folder_"+msgs_number+"_r") ? Element("input_folder_"+msgs_number+"_r").value : get_current_folder();
+
+	if(openTab.type[currentTab] == 1)
+		return move_search_msgs('content_id_'+currentTab,new_folder,new_folder_name);
+
+	var handler_move_msgs = function(data){
+		if(typeof(data) == 'string')
+			if (data.match(/^(.*)TRYCREATE(.*)$/)){
+				connector.loadScript('TreeS');
+				var move_to_folder = data.match(/^(.*)Spam(.*)$/) ? "Spam" : trashfolder;
+				alert(get_lang('There is not %1 folder, Expresso is creating it for you... Please, repeat your request later.', move_to_folder));
+				connector.loadScript('TreeShow');
+				ttree.FOLDER = 'root';
+				ttreeBox.new_past(move_to_folder);
+				return false;
+			}else{
+				alert(get_lang('Error moving message.')+":\n"+data);
+				return false;
+			}
+		//Este bloco verifica as permissoes ACL sobre pastas compartilhadas
+		if(data.status == false){
+			alert(get_lang("You don't have permission for this operation in this shared folder!"));
+			return false;
+		}
+		mail_msg = ( Element("divScrollMain_"+numBox) ) ? Element("divScrollMain_"+numBox).firstChild.firstChild : Element("divScrollMain_0").firstChild.firstChild;
+		if (data.msgs_number.length == 1)
+			write_msg(get_lang("The message was moved to folder ") + lang_folder(data.new_folder_name));
+		else
+			write_msg(get_lang("The messages were moved to folder ") + lang_folder(data.new_folder_name));
+
+		if (openTab.type[currentTab] > 1){
+			msg_to_delete = Element(msgs_number);
+			if (parseInt(preferences.delete_and_show_previous_message) && msg_to_delete)
+			{
+				if (msg_to_delete.previousSibling){
+					var previous_msg = msg_to_delete.previousSibling.id;
+					cExecute("$this.imap_functions.get_info_msg&msg_number="+previous_msg+"&msg_folder=" + current_folder, show_msg);
+				}
+				else
+					delete_border(currentTab,'false');
+			}
+			else
+				delete_border(currentTab,'false');
+			if(msg_to_delete)
+				mail_msg.removeChild(msg_to_delete);
+			return;
+		}
+
+		Element('chk_box_select_all_messages').checked = false;
+		if (! mail_msg)
+				mail_msg = Element("tbody_box");
+		data.msgs_number = data.msgs_number.split(",");
+
+		var msg_to_delete;
+		if( typeof(msgs_number) == 'string' )
+			all_search_msg = msgs_number.split(',');
+		else if( typeof(msgs_number) == 'number')
+			all_search_msg = msgs_number;
+
+		for (var i=0; i <= all_search_msg.length; i++)
+		{
+			msg_to_delete = Element(folder+';'+all_search_msg[i]); 
+			if (msg_to_delete)
+				msg_to_delete.parentNode.removeChild(msg_to_delete);
+		}
+
+		if ( preferences.use_shortcuts == '1') {
+			var all_messages = Element('tbody_box').childNodes;
+
+			//Last msg is selected
+			if ( exist_className(all_messages[all_messages.length-1], 'selected_shortcut_msg') ) {
+				select_msg('null', 'up', true);
+			}
+			else {
+				if (!select_msg('null', 'down', true)) {
+					select_msg('null', 'up', true);
+				}
+			}
+		}
+
+		for (var i=0; i<data.msgs_number.length; i++)
+		{
+			msg_to_delete = Element(data.msgs_number[i]);
+			if (msg_to_delete)
+				mail_msg.removeChild(msg_to_delete);
+		}	
+
+		if (data.msgs_number.length == 1)
+			write_msg(get_lang("The message was moved to folder ") + lang_folder(data.new_folder_name));
+		else
+			write_msg(get_lang("The messages were moved to folder ") + lang_folder(data.new_folder_name));
+		if (data.border_ID.indexOf('r') != -1){
+			if (parseInt(preferences.delete_and_show_previous_message) && folder == get_current_folder()){
+				delete_border(data.border_ID,'false');
+				show_msg(data.previous_msg);
+				}
+			else
+				delete_border(data.border_ID,'false');
+		}
+		if(folder == get_current_folder())
+			Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) - data.msgs_number.length;			
+		refresh();
+	}
+
+	if (folder == new_folder){
+		write_msg(get_lang('The origin folder and the destination folder are the same.'));
+		return;
+	}
+
+	if (msgs_number == 'selected'){
+		msgs_number = get_selected_messages();
+		}
+
+	if(openTab.type[currentTab] == 1){
+		return move_search_msgs('content_id_'+currentTab,new_folder,new_folder_name);
+		}
+
+	if(currentTab.toString().indexOf("_r") != -1){
+		msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));
+	}
+
+	if (parseInt(msgs_number) > 0 || msgs_number.length > 0)
+		cExecute ("$this.imap_functions.move_messages&folder="+folder+"&msgs_number="+msgs_number+"&border_ID="+border_ID+"&sort_box_type="+sort_box_type+"&search_box_type="+search_box_type+"&sort_box_reverse="+sort_box_reverse+"&reuse_border="+border_ID+"&new_folder="+new_folder+"&new_folder_name="+new_folder_name+"&get_previous_msg="+preferences.delete_and_show_previous_message, handler_move_msgs);
+	else
+		write_msg(get_lang('No selected message.'));		
+		
+}
+
+function move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name) {
+	move_msgs2(folder, msgs_number, border_ID, new_folder, new_folder_name,true);
+}
+
+function archive_msgs(folder,folder_dest,id_msgs) {
+	if(proxy_mensagens.is_local_folder(folder)) {
+		write_msg(get_lang("You cant archive local mails"));
+		return;
+	}
+	var has_local_messages_before = expresso_local_messages.has_local_mails(); //vejo se já tinha mensagens locais
+	var handler_arquivar_mensagens = function(data) {
+		var sucess = true;
+		var temp;
+		var msgs_to_remove = new Array();
+		var update_tree;
+
+		for (var i = 0; i < data.length; i++) {
+			msg_info = connector.unserialize(data[i]);
+			temp = expresso_local_messages.insert_mail(msg_info, msg_info['header'],msg_info['array_attach'],folder_dest );
+			if ( Element("check_box_message_" + msg_info.msg_number) )
+				Element("check_box_message_" + msg_info.msg_number).checked = false;
+
+			if(!temp)
+				sucess = false;
+			else
+				msgs_to_remove.push(msg_info.msg_number);//As mensagens arquivadas devem ser removidas, caso o usuario tenha isso configurado.
+
+			if ( Element(msg_info.msg_number) )
+				remove_className(Element(msg_info.msg_number), 'selected_msg');
+
+		}
+		
+		if (preferences.keep_archived_messages == 0) { //Remove as mensagens
+				delete_msgs(folder,msgs_to_remove,'null',false);
+		}
+		update_tree=(!has_local_messages_before) && expresso_local_messages.has_local_mails();
+		
+		Element('chk_box_select_all_messages').checked = false;
+		if(update_tree)
+			ttreeBox.update_folder();
+		else
+			update_menu();
+		if(sucess) 
+			write_msg(get_lang("selected messages have been archived"));
+		else
+			write_msg(get_lang("at least, one of selected mails is already archived, expresso tried to archive the others, check them later"));
+
+	}	
+	if(!id_msgs)
+		id_msgs = get_selected_messages();
+	if (parseInt(id_msgs) > 0 || id_msgs.length > 0) 
+		cExecute("$this.imap_functions.get_info_msgs&folder=" + folder + "&msgs_number=" + id_msgs , handler_arquivar_mensagens);
+	else 
+		write_msg(get_lang('No selected message.'));
+	
+}
+
+function get_selected_messages(){
+	main = document.getElementById("divScrollMain_"+numBox).firstChild.firstChild;
+	if (! main)
+		main = Element("tbody_box");
+
+	// Get all TR (messages) in tBody.
+	main_list = main.childNodes;
+
+	var selected_messages = '';
+	var selected_messages_by_shortcuts = '';
+	var j = 0;
+	for (j; j<(main_list.length); j++)
+	{
+	check_box = Element("check_box_message_"+main_list[j].id);
+	if ( (check_box) && (check_box.checked) )
+		selected_messages += main_list[j].id + ',';
+		
+		if (preferences.use_shortcuts == '1')
+		{
+			if ( exist_className(Element(main_list[j].id), 'selected_shortcut_msg') )
+			{
+				selected_messages_by_shortcuts += main_list[j].id + ',';
+			}
+		}
+	}
+	selected_messages = selected_messages.substring(0,(selected_messages.length-1));
+	
+	if (preferences.use_shortcuts == '1')
+	{
+		selected_messages_by_shortcuts = selected_messages_by_shortcuts.substring(0,(selected_messages_by_shortcuts.length-1));
+		
+		var array_selected_messages_by_shortcuts = selected_messages_by_shortcuts.split(",");
+		var array_selected_messages = selected_messages.split(",");
+		
+		if ((array_selected_messages.length <= 1) && (array_selected_messages_by_shortcuts.length > 1))
+		{
+			return selected_messages_by_shortcuts;
+		}
+	}
+	
+	if (selected_messages == '')
+		return false;
+	else
+		return selected_messages;
+}
+
+function replaceAll(string, token, newtoken) {
+	while (string.indexOf(token) != -1) {
+ 		string = string.replace(token, newtoken);
+	}
+	return string;
+}
+
+function new_message_to(email) {
+	var new_border_ID = new_message('new','null');
+	document.getElementById("to_" + new_border_ID).value=email;
+}
+
+function new_message(type, border_ID){
+	var new_border_ID = draw_new_message(parseInt(border_ID));
+	if (new_border_ID == false)
+		return false;	
+        openTab.type[new_border_ID] = tabTypes[type];
+
+	// Salva a pasta da mensagem respondida ou encaminhada:
+	var folder_message = Element("input_folder_"+border_ID);
+	if(folder_message) {
+		var input_current_folder = document.createElement('input');	
+		input_current_folder.id = "new_input_folder_"+border_ID;
+		input_current_folder.name = "input_folder";
+		input_current_folder.type = "hidden";
+		input_current_folder.value = folder_message.value;
+		Element("content_id_" + new_border_ID).appendChild(input_current_folder);
+	}//Fim.
+	var title = '';
+	data = [];
+	if (Element("from_" + border_ID)){
+			if (document.getElementById("reply_to_" + border_ID)){
+				data.to = document.getElementById("reply_to_values_" + border_ID).value;
+				data.to = data.to.replace(/&lt;/gi,"<");
+				data.to = data.to.replace(/&gt;/gi,">");
+		}
+		else {
+			if (document.getElementById("from_values_" + border_ID))
+			{
+				data.to = document.getElementById("from_values_" + border_ID).value;
+				data.to = data.to.replace(/&lt;/gi,"<");
+				data.to = data.to.replace(/&gt;/gi,">");
+			}
+		}	
+		
+		if (document.getElementById("to_values_" + border_ID)){
+			data.to_all = document.getElementById("to_values_" + border_ID).value;
+			data.to_all = data.to_all.replace(/\n/gi," ");		
+			data.to_all = data.to_all.replace(/&lt;/gi,"<");
+			data.to_all = data.to_all.replace(/&gt;/gi,">");
+			var _array_to_all = data.to_all.split(",");
+		}	
+	}
+	
+	if (document.getElementById("cc_" + border_ID)){
+		data.cc = document.getElementById("cc_values_" + border_ID).value;
+		data.cc = data.cc.replace(/&lt;/gi,"<");
+		data.cc = data.cc.replace(/&gt;/gi,">");
+	}
+	if (document.getElementById("subject_" + border_ID))
+		data.subject = document.getElementById("subject_" + border_ID).innerHTML;
+	if (document.getElementById("body_" + border_ID))
+		data.body = document.getElementById("body_" + border_ID).innerHTML;
+	
+	if (Element('date_' + border_ID)){
+		data.date = Element('date_' + border_ID).innerHTML;
+	}
+	
+	if (Element('date_day_' + border_ID)){
+		data.date_day = Element('date_day_' + border_ID).value;
+	}
+	if (Element('date_hour_' + border_ID)){
+		data.date_hour = Element('date_hour_' + border_ID).value;
+	}
+	var signature = preferences.type_signature == 'html' ? preferences.signature : preferences.signature.replace(/\n/g, "<br>");
+	switch(type){
+		case "reply_without_history":			
+			Element("to_" + new_border_ID).value = data.to;
+			title = "Re: " + data.subject;
+			Element("subject_" + new_border_ID).value = "Re: " + data.subject;			
+			useOriginalAttachments(new_border_ID,border_ID);
+			var body = Element("body_" + new_border_ID);
+			body.contentWindow.document.open();
+			// Insert the signature automaticaly at message body if use_signature preference is set
+			if (preferences.use_signature == "1"){ 
+				body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>" + "<br>" + signature + "</body></html>");
+			}
+			else{ 
+			body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'></body></html>");
+			}
+			body.contentWindow.document.close();
+			body.contentWindow.document.designMode = "on";
+			//Focus
+			if (is_ie)
+				window.setTimeout('document.getElementById("body_'+new_border_ID+'").contentWindow.focus();', 300);
+			else
+				body.contentWindow.focus();
+			if (is_ie)
+				body.contentWindow.document.onkeypress = function(){if(body.contentWindow.event.keyCode == 13){changeEnterKey(body.contentWindow)}};
+			msg_reply_from = document.createElement('input');
+			msg_reply_from.id = "msg_reply_from_" + new_border_ID;
+			msg_reply_from.type = "hidden";
+			msg_reply_from.value = Element("msg_number_" + border_ID).value;
+			Element("content_id_" + new_border_ID).appendChild(msg_reply_from);
+			break;
+		case "reply_with_history":
+			title = "Re: " + data.subject;
+			Element("subject_" + new_border_ID).value = "Re: " + data.subject;
+			Element("to_" + new_border_ID).value = data.to;
+			useOriginalAttachments(new_border_ID,border_ID);
+			block_quoted_body = make_body_reply(data.body, data.to, data.date_day, data.date_hour);
+			var body = Element("body_" + new_border_ID);
+			body.contentWindow.document.open();
+			// Insert the signature automaticaly at message body if use_signature preference is set
+			if (preferences.use_signature == "1") {
+				body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>" + "<br>" + signature + "</body></html>" + block_quoted_body + "</body></html>");
+			}
+			else {
+			body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>"+block_quoted_body+"</body></html>");
+			}
+			body.contentWindow.document.close();
+			body.contentWindow.document.designMode = "on";
+			//Focus
+			if (is_ie)
+				window.setTimeout('document.getElementById("body_'+new_border_ID+'").contentWindow.focus();', 300);
+			else
+				body.contentWindow.focus();
+			if (is_ie)
+				body.contentWindow.document.onkeypress = function(){if(body.contentWindow.event.keyCode == 13){changeEnterKey(body.contentWindow)}};
+			msg_reply_from = document.createElement('input');
+			msg_reply_from.id = "msg_reply_from_" + new_border_ID;
+			msg_reply_from.type = "hidden";
+			msg_reply_from.value = Element("msg_number_" + border_ID).value;
+			Element("content_id_" + new_border_ID).appendChild(msg_reply_from);
+			break;
+		case "reply_to_all_without_history":
+			// delete user email from to_all array.
+			data.to_all = new Array();
+			var j = 0;
+			for(i = 0; i < _array_to_all.length; i++) {			
+				if(_array_to_all[i].lastIndexOf(Element("user_email").value) == "-1"){
+					data.to_all[j++] = _array_to_all[i];
+				}
+			}
+			data.to_all = data.to_all.join(",");
+
+			title = "Re: " + data.subject;
+			Element("subject_" + new_border_ID).value = "Re: " + data.subject;
+			Element("to_" + new_border_ID).value = data.to;
+			Element("to_" + new_border_ID).value += ', ' + data.to_all;
+			if (data.cc){
+				Element("cc_" + new_border_ID).value = data.cc;
+				Element("a_cc_link_" + new_border_ID).style.display='none';
+				Element("tr_cc_" + new_border_ID).style.display='';
+				Element('space_link_' + new_border_ID).style.display='none';
+			}
+			useOriginalAttachments(new_border_ID,border_ID);
+			var body = Element("body_" + new_border_ID);
+			body.contentWindow.document.open();
+			// Insert the signature automaticaly at message body if use_signature preference is set
+			if (preferences.use_signature == "1") {
+				body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>" + "<br>" + signature + "</body></html>");
+			}
+			else {
+			body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'></body></html>");
+			}
+			body.contentWindow.document.close();
+			body.contentWindow.document.designMode = "on";
+			//Focus
+			if (is_ie)
+				window.setTimeout('document.getElementById("body_'+new_border_ID+'").contentWindow.focus();', 300);
+			else
+				body.contentWindow.focus();
+			if (is_ie)
+				body.contentWindow.document.onkeypress = function(){if(body.contentWindow.event.keyCode == 13){changeEnterKey(body.contentWindow)}};
+			msg_reply_from = document.createElement('input');
+			msg_reply_from.id = "msg_reply_from_" + new_border_ID;
+			msg_reply_from.type = "hidden";
+			msg_reply_from.value = Element("msg_number_" + border_ID).value;
+			Element("content_id_" + new_border_ID).appendChild(msg_reply_from);
+			break;
+		case "reply_to_all_with_history":
+			// delete user email from to_all array.
+			data.to_all = new Array();
+			var j = 0;
+				for(i = 0; i < _array_to_all.length; i++) {			
+				if(_array_to_all[i].lastIndexOf(Element("user_email").value) == "-1"){
+					data.to_all[j++] = _array_to_all[i];
+				}
+			}
+			data.to_all = data.to_all.join(",");
+			title = "Re: " + data.subject;
+			Element("to_" + new_border_ID).value = data.to;
+			Element("to_" + new_border_ID).value += ', ' + data.to_all;
+			if (data.cc){
+				document.getElementById("cc_" + new_border_ID).value = data.cc;
+				document.getElementById("a_cc_link_" + new_border_ID).style.display='none';
+				document.getElementById("tr_cc_" + new_border_ID).style.display='';
+				document.getElementById('space_link_' + new_border_ID).style.display='none';
+			}
+			document.getElementById("subject_" + new_border_ID).value = "Re: " + data.subject;
+			useOriginalAttachments(new_border_ID,border_ID);
+			block_quoted_body = make_body_reply(data.body, data.to, data.date_day, data.date_hour);
+			var body = document.getElementById("body_" + new_border_ID);
+			body.contentWindow.document.open();
+			// Insert the signature automaticaly at message body if use_signature preference is set
+			if (preferences.use_signature == "1") {
+				body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>" + "<br>" + signature + "</body></html>" + block_quoted_body + "</body></html>");
+			}
+			else {
+			body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>"+block_quoted_body+"</body></html>");
+			}
+			body.contentWindow.document.close();
+			body.contentWindow.document.designMode = "on";
+			//Focus
+			if (is_ie)
+				window.setTimeout('document.getElementById("body_'+new_border_ID+'").contentWindow.focus();', 300);
+			else
+				body.contentWindow.focus();
+			if (is_ie)
+				body.contentWindow.document.onkeypress = function(){if(body.contentWindow.event.keyCode == 13){changeEnterKey(body.contentWindow)}};
+			msg_reply_from = document.createElement('input');
+			msg_reply_from.id = "msg_reply_from_" + new_border_ID;
+			msg_reply_from.type = "hidden";
+			msg_reply_from.value = Element("msg_number_" + border_ID).value;
+			Element("content_id_" + new_border_ID).appendChild(msg_reply_from);
+			break;
+		case "forward":
+			data.is_local_message = (document.getElementById("is_local_"+border_ID).value=="1")?true:false;
+			msg_forward_from = document.createElement('input');
+			msg_forward_from.id = "msg_forward_from_" + new_border_ID;
+			msg_forward_from.type = "hidden";
+			msg_forward_from.value = Element("msg_number_" + border_ID).value;
+			Element("content_id_" + new_border_ID).appendChild(msg_forward_from);			
+			title = "Fw: " + data.subject;
+			document.getElementById("subject_" + new_border_ID).value = "Fw: " + data.subject;
+			var divFiles = Element("divFiles_"+new_border_ID);
+			var campo_arquivo
+			if (Element("attachments_" + border_ID)){
+				var attachments = document.getElementById("attachments_" + border_ID).childNodes;
+				for (var i = (attachments.length > 1 ? 1 : 0); i < attachments.length; i++){
+					if((attachments[i].tagName=="SPAN") || (attachments[i].tagName=="IMG") ||
+							((attachments[i].href.indexOf("javascript:download_local_attachment")==-1)&&(attachments[i].href.indexOf("javascript:download_attachments")==-1)))
+						continue; 
+					var link_attachment = document.createElement("A");
+					link_attachment.setAttribute("href", attachments[i].href);
+					link_attachment.innerHTML = attachments[i].innerHTML;
+					if (data.is_local_message) {//Local messages
+						document.getElementById("is_local_forward"+new_border_ID).value = "1";
+						var tmp = link_attachment.href.substring(link_attachment.href.indexOf("(") + 2);//Pula o parenteses e a aspas
+						tmp = tmp.substring(0, tmp.length - 2);//corta a aspas e o parenteses
+						tmp = replaceAll(tmp,"%20"," ");
+						var tempNomeArquivo = tmp.split("/");
+						var nomeArquivo = tempNomeArquivo[tempNomeArquivo.length-1];
+						nomeArquivo = nomeArquivo.substring(0,nomeArquivo.length - 4); //Anexos no gears são todos com extensão .php. tenho que tirar a extensão para ficar o nome real do arquivo.
+						campo_arquivo = addForwardedFile(new_border_ID,nomeArquivo,link_attachment.href);
+						
+						expresso_local_messages.getInputFileFromAnexo(campo_arquivo, tmp);
+					}
+					else {
+						var tmp = link_attachment.href.replace("javascript:download_attachments(", "").replace(")", "");
+						var a_tmp = tmp.split(',');
+						tmp = link_attachment.innerHTML.substring(0,link_attachment.innerHTML.lastIndexOf("("));
+						a_tmp[2] = "'"+tmp.substring(0,tmp.length-1)+"'";
+						s_tmp = escape(connector.serialize(a_tmp));
+
+						divFiles.innerHTML += "<input style='border:0' type='CHECKBOX' name='forwarding_attachments[]' checked value=\""+s_tmp+"\"/>";
+						divFiles.innerHTML += "<link style='border:0' name='file_"+i+"' id='inputFile_"+border_ID+i+"'/>";
+						divFiles.appendChild(link_attachment);
+					}
+				}
+			}
+			var body = Element("body_" + new_border_ID);
+			body.contentWindow.document.open();
+			// Insert the signature automaticaly at message body if use_signature preference is set
+			if (preferences.use_signature == "1") {
+				body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>" + "<br>" + signature + "</body></html>" + make_forward_body(data.body, data.to, data.date, data.subject, data.to_all, data.cc) + "</body></html>");
+			}
+			else {
+			body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>"+make_forward_body(data.body, data.to, data.date, data.subject, data.to_all, data.cc)+"</body></html>");
+			}
+			body.contentWindow.document.close();
+			body.contentWindow.document.designMode = "on";
+			if (is_ie)
+				body.contentWindow.document.onkeypress = function(){if(body.contentWindow.event.keyCode == 13){changeEnterKey(body.contentWindow)}};
+			Element("to_" + new_border_ID).focus();
+			break;
+		case "new":
+			title = get_lang("New Message");
+			if(Element('msg_number').value) {
+				var _to = Element('msg_number').value;
+				var reEmail = /^[A-Za-z\d_-]+(\.[A-Za-z\d_-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;				
+				if(!reEmail.test(_to)){
+					var array_contacts = contacts.split(',');
+					for(i = 0; i < array_contacts.length;i++) {
+						if(array_contacts[i].lastIndexOf(_to) != "-1"){
+							var _group = array_contacts[i].split(";");
+							_to = '"'+_group[0]+'" <'+_group[1]+'>';
+							break;
+						}
+					}
+				}
+				Element("to_" + new_border_ID).value = _to +',';
+				Element('msg_number').value = '';
+			}
+			var body = document.getElementById("body_" + new_border_ID);
+			body.contentWindow.document.open();
+			// Insert the signature automaticaly at message body if use_signature preference is set
+			if (preferences.use_signature == "1") {
+				body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>" + "<br>" + signature + "</body></html>");
+			}
+			else {
+			body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'></body></html>");
+			}
+			body.contentWindow.document.close();
+			body.contentWindow.document.designMode = "on";
+			if (is_ie)
+				body.contentWindow.document.onkeypress = function(){if(body.contentWindow.event.keyCode == 13){changeEnterKey(body.contentWindow)}};
+			Element("to_" + new_border_ID).focus();
+			break;
+		case "edit":
+			openTab.imapBox[new_border_ID] = folder_message.value;
+			openTab.toPreserve[new_border_ID] = true;
+			openTab.imapUid[new_border_ID] = parseInt(border_ID.substr(0,border_ID.indexOf("_")));
+			document.getElementById('font_border_id_'+new_border_ID).innerHTML = data.subject;
+			data.to = Element("to_values_" + border_ID).value;
+			data.to = data.to.replace(/&lt;/gi,"<");
+			data.to = data.to.replace(/&gt;/gi,">");
+			title = "Edição: "+data.subject;
+			
+			Element("to_" + new_border_ID).value = data.to;
+			if (data.cc){
+				Element("cc_" + new_border_ID).value = data.cc;
+				Element("space_link_" + new_border_ID).style.display = 'none';
+				Element("a_cc_link_" + new_border_ID).style.display = 'none';
+				Element("tr_cc_"+ new_border_ID).style.display = '';
+			}
+			Element("subject_" + new_border_ID).value = data.subject;
+			
+			var divFiles = Element("divFiles_"+new_border_ID);
+			if (Element("attachments_" + border_ID)){
+				var attachments = document.getElementById("attachments_" + border_ID).childNodes;
+				for (var i = (attachments.length > 1 ? 1 : 0); i < attachments.length; i++){
+					var link_attachment = document.createElement("A");
+					link_attachment.setAttribute("href", attachments[i].href);
+					link_attachment.innerHTML = attachments[i].innerHTML;
+					var tmp = link_attachment.href.replace("javascript:download_attachments(", "").replace(")", "");
+					var a_tmp = tmp.split(',');
+					tmp = link_attachment.innerHTML.substring(0,link_attachment.innerHTML.lastIndexOf("("));
+					a_tmp[2] = "'"+tmp.substring(0,tmp.length-1)+"'";
+					s_tmp = escape(connector.serialize(a_tmp));
+					divFiles.innerHTML += "<input style='border:0' type='CHECKBOX' name='forwarding_attachments[]' checked value=\""+s_tmp+"\"/>";
+					divFiles.appendChild(link_attachment);
+				}
+			}
+			var body = Element("body_" + new_border_ID);
+			body.contentWindow.document.open();
+			body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>"+data.body+"</body></html>");
+			body.contentWindow.document.close();
+			body.contentWindow.document.designMode = "on";
+			//Focus
+			if (is_ie)
+				window.setTimeout('document.getElementById("body_'+new_border_ID+'").contentWindow.focus();', 300);
+			else
+				body.contentWindow.focus();
+			if (is_ie)
+				body.contentWindow.document.onkeypress = function(){if(body.contentWindow.event.keyCode == 13){changeEnterKey(body.contentWindow)}};
+			break;
+		default:
+	}
+
+	// IM Module Enabled
+	if( window.parent.loadscript )
+	{
+		config_events( body.contentWindow.document, "onkeypress", loadscript.autoStatusIM );	
+	}
+
+	if (preferences.auto_save_draft == 1)
+	{
+		openTab.autosave_timer[new_border_ID] = false;
+		var save_link = document.getElementById("save_message_options"+new_border_ID);
+
+        function auto_sav()
+			{
+				if (openTab.autosave_timer[new_border_ID])
+					clearTimeout(openTab.autosave_timer[new_border_ID]);
+
+				openTab.autosave_timer[new_border_ID] = setTimeout("save_msg("+new_border_ID+")", autosave_time);
+	}
+        config_events(body.contentWindow.document,'keypress', auto_sav);
+    }
+
+	//BEGIN Tab event
+	if (preferences.use_shortcuts == '1')
+	{
+		if (is_ie)
+		{
+			body.contentWindow.document.attachEvent('onkeydown', function(event) { if(event.keyCode==27){delete_border(new_border_ID,'false');} if(event.keyCode==9) { Element('to_'+new_border_ID).focus(); Element('send_button_'+new_border_ID).focus(); return false;} }, false);
+		}
+		else
+		{
+			body.contentWindow.document.addEventListener('keypress', function(event) { if(event.keyCode==27){delete_border(new_border_ID,'false');} if(event.keyCode==9) { Element('send_button_'+new_border_ID).focus(); event.preventDefault(); } }, false);
+		}
+	}
+	// END Tab event
+	
+	var offWidth = Element('border_blank').offsetWidth ? Element('border_blank').offsetWidth : Element('border_blank').clientWidth;
+	var resize = false;
+	
+	if (offWidth < 200) {
+		resize = Element("border_id_" + new_border_ID).style.width;
+	}
+
+	if (title.length > 21){
+		title = title.substring(0,21) + "...";
+	}
+	
+	if(resize)
+		title = title.substring(0, parseInt(resize)*0.08);
+
+	Element("border_id_" + new_border_ID).innerHTML = "<table width=100% border=0 cellspacing=0 cellpadding=0><tr><td id=font_border_id_" + new_border_ID +" class='font-menu' width=*>" +title + "</td><td width=1px><img onmousedown='javascript:return false' style='cursor:pointer' onclick=delete_border('" + new_border_ID + "','false') src='templates/"+template+"/images/close_button.gif'></td></tr></table>";
+	return new_border_ID; //Preciso retornar o ID da nova mensagem.
+}
+
+function useOriginalAttachments(new_id_border,old_id_border)
+{
+	var divFiles = Element("divFiles_"+new_id_border);
+	if (Element("attachments_" + old_id_border)) {
+		var areaOldAttachments = document.createElement("DIV");
+		areaOldAttachments.id = "area_div_attachments_"+new_id_border;
+		divFiles.appendChild(areaOldAttachments);
+		var optAttachments = document.createElement("A");
+		optAttachments.setAttribute("href","javascript:void(0)");
+		optAttachments.tabIndex = -1;
+		optAttachments.innerHTML = get_lang("Original attachments: add")+"</br>";
+		areaOldAttachments.appendChild(optAttachments);
+		var divOriginalAttachments = document.createElement("DIV");
+		divOriginalAttachments.id = "div_attachments_"+new_id_border;
+		optAttachments.onclick = function(){
+			if(document.getElementById('div_attachments_'+new_id_border))
+			{
+				areaOldAttachments.removeChild(document.getElementById('div_attachments_'+new_id_border));
+				optAttachments.innerHTML = get_lang("Original attachments: add")+"</br>";
+			}
+			else
+			{
+				areaOldAttachments.appendChild(divOriginalAttachments);
+				optAttachments.innerHTML = get_lang("Original attachments: remove")+"</br>";
+			}
+			return false;};
+			var attachments = document.getElementById("attachments_" + old_id_border).childNodes;
+			for (var i = (attachments.length > 1 ? 1 : 0); i < attachments.length; i++){
+				var link_attachment = document.createElement("A");
+				link_attachment.setAttribute("href", attachments[i].href);
+				link_attachment.innerHTML = attachments[i].innerHTML;
+				var tmp = link_attachment.href.replace("javascript:download_attachments(", "").replace(")", "");
+				var a_tmp = tmp.split(',');
+				tmp = link_attachment.innerHTML.substring(0,link_attachment.innerHTML.lastIndexOf("("));
+				a_tmp[2] = "'"+tmp.substring(0,tmp.length-1)+"'";
+				s_tmp = escape(connector.serialize(a_tmp));
+				divOriginalAttachments.innerHTML += "<input style='border:0' type='CHECKBOX' name='forwarding_attachments[]' checked value=\""+s_tmp+"\"/>";
+				divOriginalAttachments.appendChild(link_attachment);
+			}
+	}
+}
+
+
+// Change the tag <P> for the tag <BR> on IE
+function changeEnterKey(win) {
+	var oSel = win.document.selection.createRange();
+	oSel.pasteHTML("<br />");
+	win.event.cancelBubble = true;
+	win.event.returnValue=false;
+	oSel.select();
+	oSel.moveEnd("character",1);
+	oSel.moveStart("character",1);
+	oSel.collapse(false);
+	return false;
+}
+
+function send_message_return(data, ID){
+	if(data && data.success == true ){
+		// if send ok, set a flag as answered or forwarded
+		var msg_number_replied = Element('msg_reply_from_'+ID);
+		var msg_number_forwarded = Element('msg_forward_from_'+ID);
+
+		if (msg_number_replied){
+			set_message_flag(msg_number_replied.value, 'answered');
+		}
+		else if (msg_number_forwarded){
+			set_message_flag(msg_number_forwarded.value, 'forwarded');
+		}
+		if(wfolders.alert){
+			write_msg(get_lang('Your message was sent and save.'));
+			wfolders.alert = false;
+		}else{
+			write_msg(get_lang('Your message was sent.'));
+		}
+		// If new dynamic contacts were added, update the autocomplete ....
+		if(data.new_contacts){
+			var ar_contacts = data.new_contacts.split(',;');
+			for(var j in ar_contacts){
+				// If the dynamic contact don't exist, update the autocomplete....
+				if((contacts+",").indexOf(";"+ar_contacts[j]+",") == -1)
+					contacts += ",;" + ar_contacts[j];
+			}
+		}
+		if ((! openTab.toPreserve[ID]) && (openTab.imapUid[ID] != 0))
+			cExecute ("$this.imap_functions.delete_msgs&folder="+openTab.imapBox[ID]+"&msgs_number="+openTab.imapUid[ID],function(data){ return });
+		delete_border(ID,'true'); // Becarefull: email saved automatically should be deleted. delete_border erase information about openTab
+ 	}
+	else{
+		if(data == 'Post-Content-Length')
+			write_msg(get_lang('The size of this message has exceeded  the limit (%1B).',Element('upload_max_filesize').value));
+		else if(data)
+			write_msg(data);
+		else
+			write_msg(get_lang("Connection failed with %1 Server. Try later.", "Web"));
+	}
+}
+
+function send_message(ID, folder, folder_name){
+	if ( document.getElementById('viewsource_rt_checkbox').checked == true )
+		document.getElementById('viewsource_rt_checkbox').click();
+
+	var save_link = Element("save_message_options_"+ID);
+	save_link.onclick = '';
+	save_link.className = 'message_options_inactive';
+	
+	ID_tmp = ID;
+
+	var handler_send_message = function(data){
+		send_message_return(data, this.ID_tmp); // this is a hack to escape quotation form connector bug
+	};
+		
+	var textArea = document.createElement("TEXTAREA");
+	textArea.style.display='none';
+	textArea.name = "body";
+	body = document.getElementById("body_"+ID);
+	textArea.value += '<body>\r\n';
+	textArea.value += body.contentWindow.document.body.innerHTML;
+	textArea.value += '\r\n</body>';
+	var input_folder = document.createElement("INPUT");
+	input_folder.style.display='none';
+	input_folder.name = "folder";
+	input_folder.value = folder;
+	var msg_id = document.createElement("INPUT");
+	msg_id.style.display='none';
+	msg_id.name = "msg_id";
+	msg_id.value = openTab.imapUid[ID];
+	
+	if (is_ie){
+		var i = 0;
+		while (document.forms(i).name != "form_message_"+ID){i++}
+		form = document.forms(i);
+	}
+	else
+		form = document.forms["form_message_"+ID];
+	
+	form.appendChild(textArea);
+	form.appendChild(input_folder);
+	form.appendChild(msg_id);
+
+	var _subject = trim(Element("subject_"+ID).value);
+	if((_subject.length == 0) && !confirm(get_lang("Send this message without a subject?"))) {
+		Element("subject_"+ID).focus();
+		return;
+	}
+	
+	cExecuteForm ("$this.imap_functions.send_mail", form, handler_send_message, ID);
+}
+
+function return_save(data,border_id,folder_name,folder_id,message_id)
+{
+	var handler_delete_msg = function(data){ refresh(preferences.alert_new_msg); };
+
+	if (data.append != true || !data)
+	{
+		RichTextEditor.saveFlag = -1;
+		if (! data.append)
+			write_msg('ERROR saving your message.');
+		else
+		{
+			if (data.append.match(/^(.*)TRYCREATE(.*)$/))
+			{
+				connector.loadScript('TreeS');
+				alert(get_lang('There is not %1 folder, Expresso is creating it for you... Please, repeat your request later.',draftsfolder));
+				connector.loadScript('TreeShow');
+				ttree.FOLDER = 'root';
+				ttreeBox.new_past(draftsfolder);
+				setTimeout('save_msg('+border_id+')',3000);
+			}
+			else
+				write_msg(data.append);
+		}
+	}
+	else
+	{
+		RichTextEditor.saveFlag = 1;
+		openTab.imapUid[border_id] = data.msg_no;
+		openTab.imapBox[border_id] = data.folder_id;
+		
+		var newTitle = document.getElementById('subject_'+border_id).value;
+		if (newTitle.length > 18)
+			newTitle = newTitle.substr(18) + '...';
+		else if (newTitle == '')
+				newTitle = get_lang("No subject");
+		document.getElementById('font_border_id_'+border_id).innerHTML = newTitle;
+		
+		// Replace the embedded images for new uids
+		var mainField = document.getElementById('body_'+border_id).contentWindow;
+		var content_body =  mainField.document.getElementsByTagName('body').item(0).innerHTML;
+		var body_images = content_body.match(/msg_num=\d*/g);
+		var images_part = content_body.match(/msg_part=\d*/g);
+		if (body_images)
+		{
+			for (var i=0; i<body_images.length; i++){
+				content_body = 	content_body.replace(body_images[i],"msg_num="+openTab.imapUid[border_id]);
+			}
+			var allImgs = new Array (images_part.length);
+				var j=-1;
+				for (var i in images_part){
+				
+					if (is_ie)
+						if (i == 0)
+							var image_number = parseInt(images_part[i].substr(9));
+						else
+							image_number = "null";
+					else
+						var image_number = parseInt(images_part[i].substr(9));
+					
+				if (! isNaN(image_number))
+					{
+						if (! allImgs[image_number])
+						{
+							allImgs[image_number] = true;
+							j--;					
+						}
+					content_body = content_body.replace(images_part[i],'msg_part='+j);
+					}
+				}
+			content_body = content_body.replace(/msg_part=-/g,'msg_part=');
+			
+			mainField.document.getElementsByTagName('body').item(0).innerHTML = content_body;
+		}	
+				
+		//Replace all files to new files
+		var divFiles = Element("divFiles_"+border_id);
+		var divParent = divFiles.parentNode;
+		divParent.removeChild(divFiles);
+		divFiles = document.createElement('DIV');
+		divFiles.id = "divFiles_"+border_id;
+		divParent.appendChild(divFiles);
+		
+		var attach_files = connector.unserialize(data.files);
+		if (attach_files != null) {
+			openTab.countFile[border_id] = attach_files.length;
+		for (att_index = 0; att_index < attach_files.length; att_index++){
+	
+			var link_attachment = document.createElement("A");
+			var fileName = attach_files[att_index].substr(0,attach_files[att_index].indexOf('_SIZE_'));
+			var fileSize = parseInt(attach_files[att_index].substr(attach_files[att_index].indexOf('_SIZE_')+6))/1024
+			link_attachment.innerHTML = fileName + " ("+parseInt(fileSize)+" kb)";
+
+			var href = "'"+folder_id+"','"+data.msg_no+"','"+(att_index)+"','"+(att_index+2)+"','base64'";
+
+			link_attachment.setAttribute("href", "javascript:download_attachments("+href+")");
+
+			var a_tmp = href.split(',');
+			a_tmp[2] = fileName;
+			s_tmp = escape(connector.serialize(a_tmp));
+					
+			var check_attachment = document.createElement("INPUT");
+			check_attachment.type = 'CHECKBOX';
+			check_attachment.name = 'forwarding_attachments[]';
+			check_attachment.value = s_tmp;
+
+			divFiles.appendChild(check_attachment);
+			divFiles.appendChild(link_attachment);
+			divFiles.appendChild(document.createElement("BR"));
+
+			check_attachment.checked = true;
+		}
+	}
+		if (message_id)
+		{
+			cExecute ("$this.imap_functions.delete_msgs&folder="+openTab.imapBox[border_id]+"&msgs_number="+message_id,handler_delete_msg);
+			if (openTab.imapBox[0] == "INBOX/"+draftsfolder)
+			{
+				//Update mailbox
+                                var tr_msg = document.getElementById(message_id);
+				change_tr_properties(tr_msg, data.msg_no, data.subject);
+			}
+		
+		}
+		var save_link = Element("save_message_options_"+border_id);
+		save_link.onclick = '';
+		save_link.className = 'message_options_inactive';
+		watch_changes_in_msg(border_id);
+		Element("send_button_"+border_id).style.visibility="visible";
+		write_msg(get_lang('Your message was save as draft in folder %1.', lang_folder(folder_name)));
+	}		
+}
+
+function save_msg(border_id){
+	var rt_checkbox = Element('viewsource_rt_checkbox');
+	if (rt_checkbox == null)
+		return false;
+	if (rt_checkbox.checked == true)
+		rt_checkbox.click();
+
+	var sendButton = Element("send_button_"+border_id);
+	if (sendButton)
+		sendButton.style.visibility="hidden";
+
+	if (openTab.imapBox[border_id]) //Gets the imap folder
+		var folder_id = openTab.imapBox[border_id];
+	else
+		var	folder_id = "INBOX/"+draftsfolder;
+
+	if (folder_id == 'INBOX') // and folder name from border
+		var folder_name = get_lang(folder_id);
+	else
+		var folder_name = folder_id.substr(6);
+		
+	// hack to avoid form connector bug,  escapes quotation. Please see #179
+	tmp_border_id=border_id;
+	tmp_folder_name=folder_name;
+	tmp_folder_id=folder_id;
+	message_id = openTab.imapUid[border_id];
+	var handler_save_msg = function(data){ return_save(data,this.tmp_border_id,this.tmp_folder_name,this.tmp_folder_id,this.message_id); }
+
+	var textArea = document.createElement("TEXTAREA");
+	textArea.style.display='none';
+	textArea.name = "body";
+	body = document.getElementById("body_"+border_id);
+	if (! body)
+		return;
+	textArea.value += '<body>\r\n';
+	textArea.value += body.contentWindow.document.body.innerHTML;
+	textArea.value += '\r\n</body>';
+	var input_folder = document.createElement("INPUT");
+	input_folder.style.display='none';
+	input_folder.name = "folder";
+	input_folder.value = folder_id;
+	var input_msgid = document.createElement("INPUT");
+	input_msgid.style.display='none';
+	input_msgid.name = "msg_id";
+	input_msgid.value = message_id;
+	
+	if (is_ie){
+		var i = 0;
+		while (document.forms(i).name != "form_message_"+border_id){i++}
+		form = document.forms(i);
+	}
+	else
+		form = document.forms["form_message_"+border_id];
+	form.appendChild(textArea);
+	form.appendChild(input_folder);
+	form.appendChild(input_msgid);
+
+	cExecuteForm ("$this.imap_functions.save_msg", form, handler_save_msg,border_id);	
+}
+
+function return_saveas(data,border_id,folder_name)
+{
+	if(!verify_session(data))
+		return;
+	if (data.append)
+	{
+		delete_border(border_id,null);
+		write_msg(get_lang('Your message was save as draft in folder %1.', folder_name));
+	}
+	else
+		write_msg('ERROR saving your message.');					
+}
+
+
+function save_as_msg(border_id, folder_id, folder_name){
+	// hack to avoid form connector bug,  escapes quotation. Please see #179
+	tmp_border_id=border_id;
+	tmp_folder_name=folder_name;
+	var handler_save_msg = function(data){ return_saveas(data,this.tmp_border_id,this.tmp_folder_name); }	
+	var textArea = document.createElement("TEXTAREA");
+	textArea.style.display='none';
+	textArea.name = "body";
+	body = document.getElementById("body_"+border_id);
+	textArea.value += '<body>\r\n';
+	textArea.value += body.contentWindow.document.body.innerHTML;
+	textArea.value += '\r\n</body>';
+	
+	var input_folder = document.createElement("INPUT");
+	input_folder.style.display='none';
+	input_folder.name = "folder";
+	input_folder.value = folder_id;
+	
+	if (is_ie){
+		var i = 0;
+		while (document.forms(i).name != "form_message_"+border_id){i++}
+		form = document.forms(i);
+	}
+	else
+		form = document.forms["form_message_"+border_id];
+	form.appendChild(textArea);
+	form.appendChild(input_folder);
+	
+	cExecuteForm ("$this.imap_functions.save_msg", form, handler_save_msg,border_id);
+}
+
+
+// Get checked messages
+function set_messages_flag(flag, msgs_to_set){
+	var handler_set_messages_flag = function (data){
+		
+		if(!verify_session(data))
+			return;
+		var msgs_to_set = data.msgs_to_set.split(",");
+
+		if(!data.status) {
+			alert(data.msg);
+			Element('chk_box_select_all_messages').checked = false;
+			for (var i = 0; i < msgs_to_set.length; i++) {
+				Element("check_box_message_" + msgs_to_set[i]).checked = false;
+				remove_className(Element(msgs_to_set[i]), 'selected_msg');
+			}
+			if(!data.msgs_unflageds)
+				return;
+			else
+				msgs_to_set = data.msgs_unflageds.split(",");
+		}
+		
+
+		for (var i=0; i<msgs_to_set.length; i++){
+			if(Element("check_box_message_" + msgs_to_set[i])){
+				switch(data.flag){
+					case "unseen":
+						set_msg_as_unread(msgs_to_set[i]);
+						Element("check_box_message_" + msgs_to_set[i]).checked = false;
+						break;
+					case "seen":
+						set_msg_as_read(msgs_to_set[i], false);
+						Element("check_box_message_" + msgs_to_set[i]).checked = false;
+						break;
+					case "flagged":
+						set_msg_as_flagged(msgs_to_set[i]);
+						document.getElementById("check_box_message_" + msgs_to_set[i]).checked = false;
+						break;
+					case "unflagged":
+						set_msg_as_unflagged(msgs_to_set[i]);
+						Element("check_box_message_" + msgs_to_set[i]).checked = false;
+						break;
+				}
+			}
+		}
+		Element('chk_box_select_all_messages').checked = false;
+	}
+	
+	var folder = get_current_folder();
+	if (msgs_to_set == 'get_selected_messages')
+		var msgs_to_set = this.get_selected_messages();
+	else
+		folder = Element("input_folder_"+msgs_to_set+"_r").value;
+	
+	if (msgs_to_set)
+		cExecute ("$this.imap_functions.set_messages_flag&folder="+folder+"&msgs_to_set="+msgs_to_set+"&flag="+flag, handler_set_messages_flag);
+	else
+		write_msg(get_lang('No selected message.'));		
+}
+
+// By message number
+function set_message_flag(msg_number, flag){
+	var msg_number_folder = Element("new_input_folder_"+msg_number+"_r");
+	var handler_set_messages_flag = function (data){
+		if(!verify_session(data))
+			return;
+		if (data.status && Element("td_message_answered_"+msg_number)) {	
+			if(flag == 'answered')
+				Element("td_message_answered_"+msg_number).innerHTML = '<img src=templates/'+template+'/images/answered.gif title=Respondida>';
+			else if(flag == 'forwarded')
+				Element("td_message_answered_"+msg_number).innerHTML = '<img src=templates/'+template+'/images/forwarded.gif title=Encaminhada>';
+		}
+	}
+	cExecute ("$this.imap_functions.set_messages_flag&folder="+( msg_number_folder ?  msg_number_folder.value : get_current_folder() )+"&msgs_to_set="+msg_number+"&flag="+flag, handler_set_messages_flag);
+}
+
+function print_all(){
+	if (openTab.type[currentTab] == 2)
+		return print_msg(current_folder,currentTab.substr(0,currentTab.indexOf("_r")),currentTab);
+
+	var folder= Element('border_id_0').innerHTML;
+	var body = Element('divScrollMain_'+numBox).innerHTML;
+	var print_width = screen.width - 200;
+	var x = ((screen.width - print_width) / 2);
+	var y = ((screen.height - 400) / 2) - 35;
+	var window_print = window.open('','ExpressoMail','width='+print_width+',height=400,resizable=yes,scrollbars=yes,left='+x+',top='+y);
+	var seekDot = /\<img /gi;
+	body = body.replace(seekDot, "<img style='display:none' ");
+	seekDot = /\<input /gi;
+	body = body.replace(seekDot, "<input style='display:none' ");
+	
+	while (1){
+		try{
+			var html = '<br>';
+			html += "<h4>ExpressoLivre - ExpressoMail</h4>";
+			html += folder+"<hr>";
+			
+			window_print.document.body.innerHTML = html + '<blockquote><font size="2">' +
+			'<table style="font-size:12" width="'+(is_ie ? "85%" : "99%" )+'"><TR><TD align="center" width="5%">&nbsp;</TD><TD width="30%" align="center">'+get_lang("Who")+'</TD><TD align="center" width="45%">'+get_lang("Subject")+'</TD><TD align="center" width="10%">'+get_lang("Date")+'</TD><TD width="10%">'+get_lang("Size")+'</TD></TR></table>'
+			+ body + '</font></blockquote>';
+			break;
+		}
+		catch(e){
+			//alert(e.message);
+		}
+	}
+	window_print.document.close();
+	window_print.print();
+}
+
+
+function print_msg(msg_folder, msg_number, border_ID){
+	var div_toaddress_full = Element("div_toaddress_full_"+border_ID);	
+	var div_ccaddress_full = Element("div_ccaddress_full_"+border_ID);
+	var printListTO = (div_toaddress_full && div_toaddress_full.style.display != 'none') || toaddress_array[border_ID].length == 1 ? true : false;	
+	var printListCC = (div_ccaddress_full && div_ccaddress_full.style.display != 'none') || !div_ccaddress_full ? true : false;	
+	var sender		= Element('sender_values_'+border_ID) ? Element('sender_values_'+border_ID).value : null;
+	var from		= Element('from_values_'+border_ID) ? Element('from_values_'+border_ID).value : null;
+	var to			= Element('to_values_'+border_ID) ? Element('to_values_'+border_ID).value :null;
+	var cc 			= Element('cc_values_'+border_ID) ? Element('cc_values_'+border_ID).value : null;		
+	var date		=  Element('date_'+border_ID);	
+	var subject		= Element('subject_'+border_ID);
+	var attachments	= Element('attachments_'+border_ID);
+	var body		= Element('body_'+border_ID);
+
+	var print_width = screen.width - 200;
+	var x = ((screen.width - print_width) / 2);
+	var y = ((screen.height - 400) / 2) - 35;
+	var window_print = window.open('','ExpressoMail','width='+print_width+',height=400,resizable=yes,scrollbars=yes,left='+x+',top='+y);
+	if(window_print == null) {
+		alert(get_lang("The Anti Pop-Up is enabled. Allow this site (%1) for print.",document.location.hostname));
+		return;
+	}
+	
+	while (1){
+		try{
+			var html = '<br><br>';
+			//html += "<input type='button' value='Imprimir' onclick='javascript:window.print();'>";
+			html += "<h4>ExpressoLivre - ExpressoMail</h4><hr>";
+			html += '<table><tbody>';
+			if(sender)
+				html += "<tr><td width=7% noWrap><font size='2'>" + get_lang('Sent by') + ": </font></td><td><font size='2'>"+sender+"</font></td></tr>";
+			if(from)
+				html += "<tr><td width=7%><font size='2'>" + get_lang('From') + ": </font></td><td><font size='2'>"+from+"</font></td></tr>";
+			if(to) {
+				if(!printListTO)
+					to = 'Os destinatários não estão sendo exibidos para esta impressão';
+				html += "<tr><td width=7%><font size='2'>" + get_lang('To') + ": </font></td><td><font size='2'>"+to+"</font></td></tr>";
+			}			
+			if (cc) {
+				if(!printListCC)
+					cc = 'Os destinatários não estão sendo exibidos para esta impressão';
+				html += "<tr><td width=7%><font size='2'>" + get_lang('Cc') + ": </font></td><td><font size='2'>"+cc+"</font></td></tr>";
+			}
+			if(date)
+				html += "<tr><td width=7%><font size='2'>" + get_lang('Date') + ": </font></td><td><font size='2'>"+date.innerHTML+"</font></td></tr>";			
+			html += "<tr><td width=7%><font size='2'>" + get_lang('Subject')+ ": </font></td><td><font size='2'>"+subject.innerHTML+"</font></td></tr>";
+			html += "</tbody></table><hr>";
+			window_print.document.body.innerHTML = html + '<blockquote><font size="2">' + body.innerHTML + '</font></blockquote>';
+			if(!is_ie){
+				var tab_tags = window_print.document.getElementsByTagName("IMG");			
+				for(var i = 0; i < tab_tags.length;i++){
+					var _img = document.createElement("IMG");
+					_img.src = tab_tags[i].src;
+					tab_tags[i].parentNode.replaceChild(_img,tab_tags[i]);
+				}
+			}
+			break;
+		}
+		catch(e){
+			//alert(e.message);
+		}
+	}
+	window_print.document.close();
+	window_print.print();
+}
+
+function empty_trash_imap(){
+	var handler_empty_trash = function(data){
+		Element('chk_box_select_all_messages').checked = false;
+		if(!verify_session(data))
+			return;
+		if (get_current_folder() == 'INBOX'+cyrus_delimiter+trashfolder){
+			draw_paging(0);
+			kill_current_box();
+		}
+		tree_folders.getNodeById('INBOX'+cyrus_delimiter+trashfolder).alter({caption: get_lang("Trash")});
+		tree_folders.getNodeById('INBOX'+cyrus_delimiter+trashfolder)._refresh();
+		update_quota(get_current_folder());
+		if (data)
+			write_msg(get_lang('Your Trash folder was empty.'));
+		else
+			write_msg(get_lang('ERROR emptying your Trash folder.'));
+	}
+	var realyEmptyTrash=confirm(get_lang('Do you really want to empty your trash folder?'));
+	if (realyEmptyTrash)
+		cExecute ("$this.imap_functions.empty_trash", handler_empty_trash);
+}
+
+function export_all_selected_msgs(){
+	if (openTab.type[currentTab] > 1){
+		source_msg(currentTab,current_folder);
+		return;
+	}
+	var msgs_to_export = this.get_selected_messages();
+	
+	var handler_export_all_selected_msgs = function(data){
+	
+		if(!data){
+			write_msg(get_lang('Error compressing messages (ZIP). Contact the administrator.'));
+		}
+		else
+			download_attachments(null, null, data, null,null,'mensagens.zip');
+	}
+	
+	if (msgs_to_export) {
+		cExecute ("$this.exporteml.makeAll", handler_export_all_selected_msgs, "folder="+get_current_folder()+"&msgs_to_export="+msgs_to_export);
+		write_msg(get_lang('You must wait while the messages will be exported...'));
+	}
+	else
+		write_msg(get_lang('No selected message.'));
+}
+
+function select_all_search_messages(select, id){
+	var search_box = Element("table_resultsearch_" + id.substr(18)).firstChild;
+	var felement = search_box.firstChild;
+	while(felement)
+	{
+	if (select)
+		felement.firstChild.firstChild.checked = true;
+	else
+		felement.firstChild.firstChild.checked = false;
+	felement = felement.nextSibling;
+	}
+}
+
+function verify_session(data){
+
+	if(data && data.imap_error) {
+		if(data.imap_error == "nosession")
+			write_msg(get_lang("your session could not be verified."));
+		else
+			write_msg(data.imap_error);
+		// Hold sesion for edit message.
+		//if(!hold_session)
+		//	location.href="../login.php?cd=10&phpgw_forward=%2FexpressoMail1_2%2Findex.php";		
+		return false;
+	}
+	else
+		return true;
+}
+
+// Save image file.
+function save_image(e,thumb){
+	thumb.oncontextmenu = function(e) {
+		return false;
+	}
+	var _button = is_ie ? window.event.button : e.which;
+	var	_target = is_ie ? event.srcElement : e.target;
+	
+	if(_button == 2 || _button == 3) {
+		var _params = _target.id.split(";;");
+		download_attachments(_params[0],_params[1],_params[2],_params[3],_params[4]);
+	}
+}
+
+function nospam(msgs_number, border_ID, folder){
+	if (folder == 'null')
+		folder = get_current_folder();
+	var new_folder 	= 'INBOX';
+	var new_folder_name = get_lang('INBOX');
+	var handler_move_msgs = function(data){
+		if (msgs_number == 'selected')	
+			set_messages_flag("unseen", "get_selected_messages");
+		else
+			set_message_flag(msgs_number, "unseen");
+   	    proxy_mensagens.proxy_move_messages(folder, msgs_number, border_ID, new_folder, new_folder_name);
+	}
+
+    if (msgs_number == 'selected')
+	   	msgs_number = get_selected_messages();
+       
+	if (parseInt(msgs_number) > 0 || msgs_number.length > 0)
+		cExecute ("$this.imap_functions.spam&folder="+folder+"&spam=false"+"&msgs_number="+msgs_number+"&border_ID="+border_ID+"&sort_box_type="+sort_box_type+"&sort_box_reverse="+sort_box_reverse+"&reuse_border="+border_ID+"&new_folder="+new_folder+"&new_folder_name="+new_folder_name+"&get_previous_msg="+preferences.delete_and_show_previous_message+"&cyrus_delimiter="+cyrus_delimiter, handler_move_msgs);
+	else
+		write_msg(get_lang('No selected message.'));
+}
+
+function spam(folder, msgs_number, border_ID){
+	if (folder == 'null')
+		folder = get_current_folder();
+    var new_folder 		= 'INBOX'+cyrus_delimiter+'Spam';
+	var new_folder_name = 'Spam';
+	var handler_move_msgs = function(data){
+		// debug
+		// alert(data);
+		proxy_mensagens.proxy_move_messages(folder, msgs_number, border_ID, new_folder, new_folder_name);
+	}
+    if(msgs_number == 'selected')
+		msgs_number = get_selected_messages();
+	if(parseInt(msgs_number) > 0 || msgs_number.length > 0)
+		cExecute ("$this.imap_functions.spam&folder="+folder+"&spam=true"+"&msgs_number="+msgs_number+"&border_ID="+border_ID+"&sort_box_type="+sort_box_type+"&sort_box_reverse="+sort_box_reverse+"&reuse_border="+border_ID+"&new_folder="+new_folder+"&new_folder_name="+new_folder_name+"&get_previous_msg="+preferences.delete_and_show_previous_message+"&cyrus_delimiter="+cyrus_delimiter, handler_move_msgs);
+	else
+    	write_msg(get_lang('No selected message.'));
+}
+
+function import_window(){
+	var win = arrayJSWin["import_window"];
+	var form_upload = Element("form_upload");
+	if(!win) {
+		var form = document.createElement("DIV");
+		form.id  = "import_window";
+		form.style.visibility = "hidden";
+		form.style.position = "absolute";
+		form.style.background = "#eeeeee";
+		form.style.left = "0px";
+		form.style.top  = "0px"; 
+		form.style.width = "0px";
+		form.style.height = "0px";
+		document.body.appendChild(form);
+		form_upload = document.createElement("DIV");
+		form_upload.id = "form_upload";
+		form_upload.style.position = "absolute";
+		form_upload.style.top = "5px";
+		form_upload.style.left = "5px";
+		form_upload.name =  get_lang('zip mails to import');
+		form_upload.style.width = "450px";
+		form_upload.style.height = "75px";
+		form.appendChild(form_upload);	
+		form.style.width  =  form.firstChild.style.width;
+		form.style.height = form.firstChild.style.height;
+		form.style.zIndex = "10000";			
+		var title = form.firstChild.name;
+		var wHeight = form.offsetHeight + "px";
+		var wWidth =  form.offsetWidth   + "px";
+		form.style.width = form.offsetWidth - 5;
+		win = new dJSWin({
+			id: 'win_'+form.id,
+			content_id: form.id,
+			width: wWidth,
+			height: wHeight,
+			title_color: '#3978d6',
+			bg_color: '#eee',
+			title: title,
+			title_text_color: 'white',
+			button_x_img: '../phpgwapi/images/winclose.gif',
+			border: true });	
+		win.draw();
+	}
+	form_upload.innerHTML = '<form method="POST" name="form_import" enctype="multipart/form-data">'+get_lang('zip mails to import')+':<br>'+
+	'<input name="file_1" maxlength="255" size="50" id="file_1" type="file"><br>' +
+	'<input title="'+get_lang('Select a folder')+'"  value="' + get_lang('Select a folder') + '"' + 'type="button" onclick="javascript:select_import_folder()">&nbsp;' +
+	'<input title="' + get_lang('Close') + '"  value="' + get_lang('Close') + '"' +
+	' type="button" onclick="arrayJSWin[\'import_window\'].close()"></form>';	
+	win.open();
+}
+
+function import_msgs(wfolders_tree){
+	function handler(data){		
+		// Its necessary to encapsulate the data returned (IE bugfix)
+		return_import_msgs(data,wfolders_tree);		
+	}
+	var countFiles = document.form_import.countFiles;
+	if(!countFiles){
+		countFiles = document.createElement("INPUT");
+		countFiles.type = "hidden";
+		countFiles.name = "countFiles";
+		countFiles.value = "1";
+		document.form_import.appendChild(countFiles);
+	}
+	var folder = document.createElement("INPUT");
+	folder.type = "hidden";
+	folder.name = "folder";
+	folder.value = wfolders_tree._selected.id;
+	document.form_import.appendChild(folder);
+	write_msg(get_lang('You must wait while the messages will be imported...'));
+	
+	cExecuteForm('$this.imap_functions.import_msgs', document.form_import, handler);
+}
+function return_import_msgs(data, wfolders_tree){
+	if(data && data.error){
+		write_msg(data.error);
+	}
+	else{
+		if(data == 'Post-Content-Length')
+			write_msg(get_lang('The size of this message has exceeded  the limit (%1B).',Element('upload_max_filesize').value));
+		else {
+			write_msg(data);
+			arrayJSWin["import_window"].close();
+			if(openTab.imapBox[0] == wfolders_tree._selected.id){
+				openTab.imapBox[0] = '';
+				change_folder(wfolders_tree._selected.id, wfolders_tree._selected.caption);
+			}
+			else{
+				refresh();
+			}
+		}
+	}
+}
+
+function select_import_folder(){
+	//Begin: Verify if the file extension is allowed.
+	var imgExtensions = new Array("eml","zip");
+	var inputFile = document.form_import.file_1;	
+	if(!inputFile.value){
+		alert(get_lang('File extension forbidden or invalid file') + '.');
+		return false;
+	}
+	var fileExtension = inputFile.value.split(".");
+	fileExtension = fileExtension[(fileExtension.length-1)];
+	var deniedExtension = true;
+	for(var i=0; i<imgExtensions.length; i++) {
+		if(imgExtensions[i].toUpperCase() == fileExtension.toUpperCase()) {
+			deniedExtension = false;
+			break;
+		}
+	}
+	if(deniedExtension) {
+		alert(get_lang('File extension forbidden or invalid file') + '.');
+		return false;
+	}
+	arrayJSWin['import_window'].close();
+	wfolders.makeWindow('null','import');
+}
+function import_calendar(data){
+	function handler_import_calendar(data){
+		if(data === true){
+			write_msg(get_lang("The event was imported successfully."));
+		}
+	}
+	if(confirm(get_lang("Do you confirm this import to your Calendar?"))){
+			cExecute('$this.db_functions.import_vcard&msg_folder='+data,handler_import_calendar);
+	}
+}
Index: tags/expressoMail1_2/1.234/js/gears_init.js
===================================================================
--- tags/expressoMail1_2/1.234/js/gears_init.js	(revision 670)
+++ tags/expressoMail1_2/1.234/js/gears_init.js	(revision 670)
@@ -0,0 +1,86 @@
+// Copyright 2007, Google Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+//  1. Redistributions of source code must retain the above copyright notice,
+//     this list of conditions and the following disclaimer.
+//  2. Redistributions in binary form must reproduce the above copyright notice,
+//     this list of conditions and the following disclaimer in the documentation
+//     and/or other materials provided with the distribution.
+//  3. Neither the name of Google Inc. nor the names of its contributors may be
+//     used to endorse or promote products derived from this software without
+//     specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Sets up google.gears.*, which is *the only* supported way to access Gears.
+//
+// Circumvent this file at your own risk!
+//
+// In the future, Gears may automatically define google.gears.* without this
+// file. Gears may use these objects to transparently fix bugs and compatibility
+// issues. Applications that use the code below will continue to work seamlessly
+// when that happens.
+
+(function() {
+  // We are already defined. Hooray!
+  if (window.google && google.gears) {
+    return;
+  }
+
+  var factory = null;
+
+  // Firefox
+  if (typeof GearsFactory != 'undefined') {
+    factory = new GearsFactory();
+  } else {
+    // IE
+    try {
+      factory = new ActiveXObject('Gears.Factory');
+      // privateSetGlobalObject is only required and supported on WinCE.
+      if (factory.getBuildInfo().indexOf('ie_mobile') != -1) {
+        factory.privateSetGlobalObject(this);
+      }
+    } catch (e) {
+      // Safari
+      if ((typeof navigator.mimeTypes != 'undefined')
+           && navigator.mimeTypes["application/x-googlegears"]) {
+        factory = document.createElement("object");
+        factory.style.display = "none";
+        factory.width = 0;
+        factory.height = 0;
+        factory.type = "application/x-googlegears";
+        document.documentElement.appendChild(factory);
+      }
+    }
+  }
+
+  // *Do not* define any objects if Gears is not installed. This mimics the
+  // behavior of Gears defining the objects in the future.
+  if (!factory) {
+    return;
+  }
+
+  // Now set up the objects, being careful not to overwrite anything.
+  //
+  // Note: In Internet Explorer for Windows Mobile, you can't add properties to
+  // the window object. However, global objects are automatically added as
+  // properties of the window object in all browsers.
+  if (!window.google) {
+    google = {};
+  }
+
+  if (!google.gears) {
+    google.gears = {factory: factory};
+  }
+})();
Index: tags/expressoMail1_2/1.234/js/filter.js
===================================================================
--- tags/expressoMail1_2/1.234/js/filter.js	(revision 689)
+++ tags/expressoMail1_2/1.234/js/filter.js	(revision 689)
@@ -0,0 +1,754 @@
+
+	function charCounter(form)
+	{
+		if (form.value.length >= 300)
+		{
+			alert(get_lang("You have exceeded the number of allowed characters"));
+			return false;
+		}
+	}
+
+	function cfilter(){
+
+		this.mode_in   = "";
+		this.rulest		 = new Array;
+		this.rulesVoip	 = new Array;
+		this.out_officeR = "";
+		this.out_officeF = false;
+		this.email_deny  = new Array;
+		this.ac_form     = "";
+		this.ind		 = "";
+		this.email_deny  = new Array;
+		this.email_ld	 = "";
+		this.values = new Array("",
+					",checkBox1",
+					",select_size=1",
+					",checkBox1,select_size=1",
+					",select_rules=1",
+					",checkBox1,select_rules=1",				
+					",select_size=1,select_rules=1",				
+					",checkBox1,select_size=1,select_rules=1",
+					",checkBox2",				
+					",checkBox1,checkBox2",				
+					",checkBox2,select_size=1",
+					",ckeckBox1,checkBox2,select_size=1",
+					",checkBox2,select_rules=1",																				
+					",checkBox1,checkBox2,select_rules=1",				
+					",checkBox2,select_size=1,select_rules=1",				
+					",checkBox1,checkBox2,select_size=1,select_rules=1");
+		
+	}
+
+	
+	cfilter.prototype.load_rules = function()
+	{
+		var _this = this;
+		var cont1 = parseInt(0);
+		var cont2 = parseInt(0);
+				
+		if( _this.rulest.length == 0 )
+		{
+			var handler_sieve = function(data)
+			{
+				if(data.rule.length > 0){
+					for(var i=0 ; i < data.rule.length; i++)
+					{
+						var fields = data.rule[i].split("&&");
+						if( fields[6] == 'notify' && fields[7] == preferences.voip_email_redirect )
+							_this.rulesVoip[cont1++] = data.rule[i];
+						else
+							_this.rulest[cont2++] = data.rule[i];
+					}
+				}
+				_this.out_officeR = data.vacation[0];
+				_this.out_officeR = _this.out_officeR ? trim(_this.out_officeR.toString().replace("\n","")) : "";
+				if(data.mode.length > 0){_this.mode_in = data.mode[0];}
+			}
+			if(Element('form_status') != null)
+				Element('form_status').innerHTML = "<span style='background:#cc4444;'>&nbsp;&nbsp;<font color='WHITE'>Aguarde...</font>&nbsp;</span>";
+			cExecute("$this.ScriptS.init_a",handler_sieve);
+			_this.get_email();
+	    }
+	}
+	
+	cfilter.prototype.form_m = function(){
+		Element('form_body').innerHTML = "";
+		Element('form_buttons').style.display = '';
+		filters.mount_list();
+		this.ac_form = "";		
+	}
+	
+	cfilter.prototype.form_out = function(){
+		Element('form_body').innerHTML = "";
+		Element('form_body').innerHTML = this.forms_();
+		Element('div_vacation').style.display = "";
+		this.ac_form = "old_out";		
+		this.r_rules_out();		
+	}
+	
+	cfilter.prototype.form_r = function(pos,type)
+	{
+		Element('form_body').innerHTML = "";
+		Element('form_body').innerHTML = this.forms_();
+		this.ind = pos;		
+		
+		if( type === 'voip')
+		{
+			this.ac_form = "old_voip";
+			Element('div_voipFilter').style.display = "";
+			this.r_rules_form(pos, type);	
+		}
+		else
+		{
+			this.ac_form = "old_rule";
+			Element('div_rule').style.display = "";	
+			this.r_rules_form(pos, type);
+		}
+	}
+	
+	cfilter.prototype.get_email = function()
+	{
+		var _this = this;
+		var handler_get_email = function(data)
+		{
+			_this.email_ld = data ? data : "";
+		}
+		cExecute("$this.user.get_email",handler_get_email);
+	}
+	
+	cfilter.prototype.sel_boxes = function()
+	{
+		var nm_folders = tree_folders.getNodesList(cyrus_delimiter);
+		if(document.getElementById("select_mailboxes") != null){
+			var sel_nm = document.getElementById("select_mailboxes");
+			if(sel_nm.length > 0 ){
+				for(var i=0; i < sel_nm.options.length; i++){
+					sel_nm.options[i] = null;
+					i--;
+				}
+			}
+			for(var i=0; i < nm_folders.length; i++){
+				if(nm_folders[i].id != "root" && !proxy_mensagens.is_local_folder(nm_folders[i].id)){
+					var opt = new Option(nm_folders[i].caption,nm_folders[i].id,false,true);
+					sel_nm[sel_nm.length] = opt;
+				}
+			}
+			sel_nm[0].selected = true;
+		}
+	}
+
+	cfilter.prototype.box_select = function(param){
+		var aux = this.BoxSelection[param].split(",");
+		var ele1 = document.getElementById(aux[0]);
+		var ele2 = document.getElementById(aux[1]);
+		var noption = "";
+		if(param == 0 || param == 1){
+			if(ele1.selectedIndex != -1){
+				noption = new Option(ele1.value,ele1.value,false,false);
+				ele2.options[ele2.length] = noption;
+				ele1.options[ele1.selectedIndex] = null;
+				ele1.selectedIndex = 0;
+			}
+		}
+	}
+
+	cfilter.prototype.r_rules_form = function(ind, type)
+	{
+		var fields = new Array;
+		var _this = this;
+		
+		// hide buttons
+		Element('form_buttons').style.display = 'none';
+		
+		if( type === 'voip')
+		{
+			fields = _this.rulesVoip[ind].split("&&");
+			document.getElementById("field9").value = fields[5];			
+		}
+		else
+		{
+			this.sel_boxes();
+			if(this.rulest.length == 0){
+				return false;
+			}
+			fields = _this.rulest[ind].split("&&");
+			document.getElementById("field1").value = fields[3];
+			document.getElementById("field2").value = fields[4];
+			document.getElementById("field3").value = fields[5];
+			document.getElementById("field4").value = fields[11];				
+			
+			switch(fields[6]){
+				case "folder":
+					document.getElementById("radio1").checked  = true;
+					var name_mb = fields[7];
+					var sel_mb = document.getElementById("select_mailboxes");
+					for(var i=0; i < sel_mb.options.length; i++){if((sel_mb.options[i].value) ==  name_mb){sel_mb.options[i].selected = true;}}
+					break;
+				case "address":
+					document.getElementById("radio2").checked   = true;
+					document.getElementById("field5").value 	= fields[7];
+					break;
+				case "reject":
+					 document.getElementById("radio3").checked  = true;
+					 var text0 = fields[7].split("\\n");				 	
+					 for(var i=0; i < text0.length; i++){document.getElementById("field6").value += text0[i] + "\n";}
+					 break;
+				case "discard":
+					document.getElementById("radio4").checked 	= true;
+					break;
+			}
+			var mark_values = this.values[fields[8]].split(",");
+			for(var i=0; i < mark_values.length; i++){
+				if( mark_values[i] == "checkBox1" || mark_values[i] == "checkBox2"){
+					document.getElementById(mark_values[i]).checked = true;
+				}
+				if( mark_values[i] == "select_size=1" || mark_values[i] == "select_rules=1"){
+					var mark_val = mark_values[i].split("=");
+					document.getElementById(mark_val[0]).options[mark_val[1]].selected = true;
+				}
+			}
+		}
+	}
+
+	cfilter.prototype.r_rules_out = function(){
+	
+		var _this = this;
+		if(_this.out_officeR.length == 0){
+			return false;
+		}
+		
+		// hide buttons
+		Element('form_buttons').style.display = 'none';
+	
+		var aux = _this.out_officeR.split("&&");
+		var days   = aux[1];
+		var emails = aux[2];
+		var mens   = aux[3];		
+		var p_emails = new Array;
+		var d_emails = new Array;
+				
+		var p_aux = emails.split(", ");
+		for(var i=0; i < p_aux.length; i++){
+			p_emails[i] = p_aux[i].substr(0,(p_aux[i].length - 1));
+			p_emails[i] = p_emails[i].substr(1,(p_aux[i].length));
+		}
+		for(var i=0; i < _this.email_ld.length; i++){
+			d_emails[i] = _this.email_ld[i];
+		}
+
+		diff = function(vet, comp){
+			var sel1 = new Array;
+			for(var i=0; i < vet.length; i++){
+				for(var j=0; j < comp.length; j++){
+					if(vet[i] == comp[j]){
+						comp.splice(j,1);
+						j--;
+					}
+				}
+			}
+		};	
+		diff(p_emails,d_emails);
+		var text    = mens.split("\\n");
+		for(var i=0; i < text.length; i++){document.getElementById("field8").value += text[i] + " ";}
+		for(var i=0; i < _this.email_ld.length; i++){
+			d_emails[i] = _this.email_ld[i];
+		}
+
+	}
+
+	/*
+	 * Corrige bug 65, solução: desabilitar radio3 e field6 e desmarcar radio3 (ação de rejeição)
+	 * quando a caixa de seleção para manter o e-mail na caixa de entrada do usuário for selecionada
+	 */
+	cfilter.prototype.disable_radio3 =  function()
+	{
+		radio3 = Element('radio3');
+		field6 = Element('field6');
+		cb2 = Element('checkBox2');
+
+		if (cb2.checked)
+		{
+			radio3.disabled = true;
+			field6.disabled = true;
+
+			if (radio3.checked)
+			{
+				radio3.checked = false;
+			}
+		}
+		else
+		{
+			radio3.disabled = false;
+			field6.disabled = false;
+		}
+
+	}
+
+	cfilter.prototype.forms_ = function()
+	{
+			 var form = "";
+				 form = "<div id='div_rule' style='display:none'><table id='table_rule' border='0' cellpading='0' cellspacing='0' width='100%'>"+
+						"<tr><td colspan='2'><input type='checkBox' id='checkBox1' name='checkb'>"+get_lang('Also check message against next rule') + "</td></tr>"+
+						"<tr><td colspan='2'><input type='checkBox' id='checkBox2' onclick='filter.disable_radio3();' name='checkb'>"+get_lang('Keep a copy of the message at your Inbox')+ "</td><tr>"+
+						"<tr><td colspan='2'><hr size='1' width='100%'></td></tr><tr>"+
+						"<td rowspan='4' width='20%'>"+get_lang('Coincident')+"<br><select id='select_rules' name='select_rules'>"+
+						"<option value='0'>"+get_lang("with all")+"</option><option value='1'>"+get_lang("with some")+"</option>"+
+						"</select></td><td>"+get_lang('The field \"%1\" of the message it contains',get_lang('From'))+".: <input type='text' id='field1' name='field1' size='35' maxlength='200'></td>"+
+						"</tr><tr><td>"+get_lang('The field \"%1\" of the message it contains', get_lang('To'))+".: <input type='text' id='field2' name='field2' size='35' maxlength='200'></td>"+
+						"</tr><tr><td>"+get_lang('The field \"%1\" of the message it contains', get_lang('Subject'))+".: <input type='text' id='field3' name='field3' size='35' maxlength='200'></td>"+
+						"</tr><tr><td>"+get_lang('The size of the message is')+".: &nbsp<select id='select_size' name='select_size'>"+
+						"<option value='0'>"+get_lang("Less than")+"</option><option value='1'>"+get_lang("Greater than")+"</option>"+						 
+						"</select>&nbsp;<input type='text' id='field4' name='field4' size='8' maxlength='8'> Kb</td>"+
+						"</tr><tr><td colspan='2'><hr size='1' width='100%'></td></tr>"+
+						"</table><table id='table_rule1' border='0' cellpading='0' cellspacing='0' width='100%'>"+
+						"<tr><td width='50%'><input type='radio' id='radio1' name='radio' value='folder'>"+get_lang('Store at')+".:</td>"+
+						"<td width='50%'><select id='select_mailboxes' name='select_mailboxes'></select></td>"+
+						"</tr><tr><td width='50%'><input type='radio' id='radio2' name='radio' value='address'>"+get_lang('Forward to the address')+".:</td>"+
+						"<td width='50%'><input type='text' id='field5' name='field5' size='35' maxlength='70'></td>"+
+						"</tr><tr><td width='50%'><input type='radio' id='radio3' name='radio' value='reject'>"+get_lang('Send a rejection message')+".:</td>"+
+						"<td width='50%'><textarea id='field6' onkeypress='return charCounter(this);' name='field6' rows='3' cols='25'></textarea></td>"+
+						"</tr><tr><td colspan='2'><input type='radio' id='radio4' name='radio' value='discard'>"+get_lang('Erase the message')+"</td>"+
+						"</tr></table></div><div id='div_vacation' style='display:none'>"+
+						"<table id='table_vacation' border='0' cellpading='0' cellspacing='0' width='100%'>"+
+ 						"<tr><td colspan='3'><br><b>"+get_lang('out office')+"</b></td></tr>"+
+						//"<tr><td colspan='3'><br>"+get_lang('Subject')+".: <input type='text' id='field7' name='field7' size='35' maxlength='200'/></td></tr>"+
+						"<tr><td colspan='3'><br>"+get_lang('With the following message')+".:</td>"+
+	 					"</tr><tr><td colspan='3'><textarea id='field8' onkeypress='return charCounter(this);' rows='8' cols='50'></textarea></td></tr></table></div>" +
+						"<div id='div_voipFilter' style='display:none'>" +
+						"<br/><table id='table_voipFilter'>" +
+						"<tr><td>"+get_lang("Type the subject of the message for receiving a phone warning")+" .:"+
+						"</td></tr><tr><td><input type='text' id='field9' size='50' maxlength='200'>" +
+						"</td></tr><br/></table></div>" +
+				 		"<span align='right'><input type='button' value="+get_lang("Back")+" onclick='filter.form_m()'></span>"+
+				 		"<span align='right'><input type='button' value="+get_lang("Save")+" onclick='filter.saved_rules()'></span>";
+		return form;
+	}
+
+	cfilter.prototype.enabled_disabled = function(param){
+
+		// Rules
+		if(Element("rule_0") != null){
+			for(var i=0; i < this.rulest.length; i++){
+				if(Element("rule_"+i).checked){
+					var aux_rul = this.rulest[i].split("&&");
+					if(aux_rul[2] != param){
+						aux_rul[2] = param;					
+						var rl = "";
+						for(var j=0; j < aux_rul.length; j++){
+							rl += aux_rul[j] + "&&";
+						}
+						rl = rl.substr(0,(rl.length - 2));
+						this.rulest[i] = rl;					
+					}
+				}
+			}
+		}
+		// Out Office
+		if(Element("out_0") != null){
+			if(Element("out_0").checked){
+				var aux_out = this.out_officeR.split("&&");
+				if(param == "ENABLED")
+					aux_out[4] = "on ";
+				else
+					aux_out[4] = "off";
+				var out = "";
+				for(var i=0; i < aux_out.length; i++){
+					out += aux_out[i] + "&&";
+				}				
+				out = out.substr(0,(out.length - 2));
+				this.out_officeR = out;
+			}
+		}
+
+		// Voip
+		if(Element("voip_rule_0") != null){
+			for(var i=0; i < this.rulesVoip.length; i++){
+				if(Element("voip_rule_"+i).checked){
+					var aux_rul = this.rulesVoip[i].split("&&");
+					if(aux_rul[2] != param){
+						aux_rul[2] = param;					
+						var rl = "";
+						for(var j=0; j < aux_rul.length; j++){
+							rl += aux_rul[j] + "&&";
+						}
+						rl = rl.substr(0,(rl.length - 2));
+						this.rulesVoip[i] = rl;					
+					}
+				}
+			}
+		}
+		
+		this.reload_rules();
+	}
+	
+	cfilter.prototype.new_rule = function(email){
+
+		if(this.email_deny.length > 0){
+			for(var i=0 ; i < this.email_deny.length; i++){
+				if(this.email_deny[i] == email){
+					alert(get_lang("Sender blocked")+"!");
+					return false;
+				}
+			}
+		}
+
+		// Verifica Email
+		var emailReg = /^[a-z][a-z-_0-9\.]+@[a-z-_=>0-9\.]+\.[a-z]{2,3}$/i
+    	if(!emailReg.test(email)){
+			alert(get_lang("Inform a valid e-mail!"));
+			return false;
+		}
+
+		this.load_rules();
+		if(confirm(get_lang("Do you want to block this e-mail?"))){
+			new_r = "&&ENABLED&&" + email + "&&&&&&discard&&&&0&&&&&&0";
+//			setTimeout("filter.e_newrule('" + new_r + "')",2000);		
+			if (filter.e_newrule(new_r)){
+				this.email_deny.push(email);
+				write_msg(get_lang("The sender was blocked"));							
+			}else
+				write_msg(get_lang("You have reached the maximum number of rules"));
+		}
+	}
+	
+	cfilter.prototype.e_newrule = function(nw_rule)
+	{
+
+		var new_rl = "";
+		if (this.rulest.length >= rules_limit)
+			return false;
+			
+		if(this.rulest.length == 0){
+			new_rl = "#rule&&1" + nw_rule;
+		}else{
+			var aux = this.rulest[this.rulest.length -1 ].split("&&");
+			new_rl = "#rule&&" + (parseInt(aux[1]) + parseInt(2)) + nw_rule;
+		}
+		this.rulest.push(new_rl);
+		this.saved_all();
+		return true;
+	}
+	
+	cfilter.prototype.delete_r = function(){
+	
+		// rule
+		var _this = this;
+		if(Element("rule_0") != null){
+			for(var i=0; i < _this.rulest.length; i++){
+				if(Element("rule_"+i).checked){_this.rulest[i] = "delete";}
+			}
+			for(var i=0; i < _this.rulest.length; i++){
+				if(_this.rulest[i] == "delete"){_this.rulest.splice(i,1);i--;}
+			}
+		}
+	
+		if(_this.rulest.length > 0){
+			var cont = parseInt(1);
+			for(var i=0; i < _this.rulest.length ; i++){
+				var n_rulest = _this.rulest[i].split("&&");
+				n_rulest[1] = cont;
+				cont = cont + parseInt(2);
+				var aux = "";
+				for(var j=0; j < n_rulest.length; j++){aux += n_rulest[j] + "&&";}
+				aux = aux.substr(0,(aux.length - 2));
+				_this.rulest[i] = aux;
+			}
+		} 
+		// out office
+		if(Element("out_0") != null){
+			if(Element("out_0").checked){
+				_this.out_officeR ='';
+				_this.out_officeF = false;
+				//Save outoffice in prefs:
+				connector.loadScript("preferences");
+				prefe.save("outoffice", _this.out_officeF);
+			}
+		}
+		
+		// Voip
+		if(Element("voip_rule_0") != null){
+			for(var i=0; i < _this.rulesVoip.length; i++){
+				if(Element("voip_rule_"+i).checked){_this.rulesVoip[i] = "delete";}
+			}
+			for(var i=0; i < _this.rulesVoip.length; i++){
+				if(_this.rulesVoip[i] == "delete"){_this.rulesVoip.splice(i,1);i--;}
+			}
+		}
+	
+		if(_this.rulesVoip.length > 0){
+			var cont = parseInt(1);
+			for(var i=0; i < _this.rulesVoip.length ; i++){
+				var n_rulest = _this.rulesVoip[i].split("&&");
+				n_rulest[1] = cont;
+				cont = cont + parseInt(2);
+				var aux = "";
+				for(var j=0; j < n_rulest.length; j++){aux += n_rulest[j] + "&&";}
+				aux = aux.substr(0,(aux.length - 2));
+				_this.rulesVoip[i] = aux;
+			}
+		} 
+
+		_this.reload_rules();
+	}
+	
+	cfilter.prototype.reload_rules = function()
+	{
+		this.saved_all();
+		Element('form_body').innerHTML = "";
+		this.load_rules();
+
+		if(this.out_officeF)
+		{
+			write_msg(get_lang("Attention, you are in out of office mode."), true);
+		}else{
+			clean_msg();
+			this.out_officeF = false;
+		}
+		filters.mount_list();
+	}
+
+	cfilter.prototype.saved_rules = function(){
+
+		var mount_rule = "";
+		var form = this.ac_form.split("_");
+		var n_rule = "";
+
+		if(form[1] == "rule")
+		{
+			mount_rule = "#rule&&";
+			if(form[0] == "new")
+			{
+				n_rule = "1&&";
+				if(this.rulest.length > 0)
+				{
+					aux = this.rulest[this.rulest.length - parseInt(1)].split("&&");
+					n_rule = (parseInt(aux[1]) + parseInt(2)) + "&&";
+				}
+				mount_rule += n_rule + "ENABLED&&";
+			}
+			else
+			{
+				n_rule = this.rulest[this.ind].split("&&");
+				mount_rule += n_rule[1] + "&&";
+				mount_rule += n_rule[2] + "&&";
+			}
+
+			if(LTrim(Element("field1").value) == "" && LTrim(Element("field2").value) == "" && LTrim(Element("field3").value) == "" && Element("field4").value == "")
+			{
+				alert(get_lang("Define some criterion to the fields From, To and Subject with more than 3 characters!"));
+				return false;
+			}
+
+			if((LTrim(Element("field1").value).length <= 3) && (LTrim(Element("field2").value).length <= 3) && (LTrim(Element("field3").value).length <= 3 && Element("field4").value == "")){
+				alert(get_lang("Define some criterion to the fields From, To and Subject with more than 3 characters!"));
+				return false;
+			}
+			
+			for(var i=1; i < 4; i++){mount_rule += LTrim(Element("field"+i).value) + "&&";} 
+			var v_checked = false;
+			if(Element("radio1").checked){
+				mount_rule += "folder&&";
+				var sel_nameBox = Element("select_mailboxes");
+				for(var i=0; i < sel_nameBox.options.length; i++){if(sel_nameBox.options[i].selected == true){mount_rule += sel_nameBox.options[i].value + "&&";}}
+				v_checked = true;
+			}
+			if(Element("radio2").checked){
+				mount_rule += "address&&";
+				if(Element("field5").value == ""){
+					alert(get_lang("Inform a forwarding e-mail!"));
+					return false;
+				}else{
+					var emailReg = /^[a-z][a-z-_0-9\.]+@[a-z-_=>0-9\.]+\.[a-z]{2,3}$/i
+			    	if(emailReg.test(Element("field5").value)){
+						mount_rule += Element("field5").value + "&&";
+					}else{
+						alert(get_lang("Inform a valid e-mail!"));
+						return false;
+					}
+				}
+				v_checked = true;
+			}
+			if(Element("radio3").checked){
+				mount_rule += "reject&&";
+				if(Element("field6").value == ""){
+					alert(get_lang("Inform a text for rejection!"));
+					return false;
+				}else{
+					mount_rule += Element("field6").value + "&&";
+				}
+				v_checked = true;
+			}				
+			if(Element("radio4").checked){
+				mount_rule += "discard&&&&";
+				v_checked = true;
+			}
+			if(!v_checked){
+				alert(get_lang("No option marked!"));
+				return false;
+			}
+			var opts = "";
+			if(Element("checkBox1").checked == true){opts += ",checkBox1";}
+			if(Element("checkBox2").checked == true){opts += ",checkBox2";}
+			if(Element("select_size").options[1].selected == true){opts += ",select_size=1";}
+			if(Element("select_rules").options[1].selected == true){opts += ",select_rules=1";}
+			for(var i=0; i < this.values.length; i++){if(this.values[i] == opts){mount_rule += i + "&&";}}
+			mount_rule += "&&&&";
+			if(LTrim(Element("field4").value) != ""){
+				mount_rule += LTrim(Element("field4").value);
+			}else{
+				mount_rule += 0;
+			}
+			if(form[0] == "new")
+			{
+				this.rulest[this.rulest.length] = mount_rule;
+			}
+			else
+				this.rulest[this.ind] = mount_rule;
+		}
+		else if(form[1] == "out")
+		{
+			mount_rule = "";
+			var fld_emails = this.email_ld; // Get first email of list!
+			var fld_men	   = Element("field8");
+			mount_rule = "#vacation&&";
+			mount_rule += "1&&";
+			mount_rule += "\"" + fld_emails + "\", ";			
+			mount_rule = mount_rule.substr(0,(mount_rule.length - 2));
+			mount_rule += "&&";
+			mount_rule += fld_men.value + "&&on";
+			if(LTrim(fld_men.value) == ""){
+				alert(get_lang("Inform a message!"));
+				return false;
+			}
+			this.out_officeR = mount_rule;
+		}
+		else if(form[1] == "voip")
+		{
+			if( Element("field9").value != "" && LTrim(Element("field9").value) != "" )
+			{
+				mount_rule = "#rule&&";
+				if(form[0] == "new")
+				{
+					n_rule = "1&&";
+					if( this.rulesVoip.length > 0 )
+					{
+						aux = this.rulesVoip[this.rulesVoip.length - parseInt(1)].split("&&");
+						n_rule = (parseInt(aux[1]) + parseInt(2)) + "&&";
+					}
+					mount_rule += n_rule + "ENABLED&&";
+				}
+				else
+				{
+					n_rule = this.rulesVoip[this.ind].split("&&");
+					mount_rule += n_rule[1] + "&&";
+					mount_rule += n_rule[2] + "&&";
+				}
+
+				if ( Element("field9").value.indexOf("#") >= 0 )
+				{
+					alert(get_lang('Caracter "#" is not allowed!'));
+					return false;
+				}
+				
+				mount_rule = mount_rule + "&&&&" + Element("field9").value + "&&notify&&" + preferences.voip_email_redirect + "&&8&&&&&&0";
+
+				if( form[0] == "new" )
+				{
+					this.rulesVoip[this.rulesVoip.length] = mount_rule;
+				}
+				else
+				{
+					this.rulesVoip[this.ind] = mount_rule;
+				}
+			}
+			else
+			{
+				alert( 'CAMPOS EM BRANCO !!' );
+				return false;
+			}
+		}
+		
+		Element('form_buttons').style.display = '';
+		this.reload_rules();
+	}
+
+	cfilter.prototype.close_frm= function()
+	{
+		filters.filter_Sh['window_ffilter_ccform'].close();
+	}
+	
+	cfilter.prototype.saved_all = function()
+	{
+		var aux_rul = "";
+		var _this = this;
+		var cont = 0;
+		
+		// Regras Gerais
+		if(_this.rulest.length > 0)
+		{
+			for(var i=0; i < _this.rulest.length; i++)
+			{
+				var fieldsNormal = _this.rulest[i].split("&&");				
+				aux_rul += "_begin_##";
+				for(var j=0 ; j < fieldsNormal.length; j++)
+				{
+					aux_rul += url_encode(fieldsNormal[j]) + "##";
+					cont = parseInt(fieldsNormal[1]);					
+				}	
+				aux_rul += "_end_\n";
+			}
+		}
+	
+		// Voip
+		if(_this.rulesVoip.length > 0)
+		{
+			for(var i=0; i < _this.rulesVoip.length; i++)
+			{
+				var fieldsVoip = _this.rulesVoip[i].split("&&");
+				aux_rul += "_begin_##";
+				for(var j=0 ; j < fieldsVoip.length; j++)
+				{
+					if(j == 1)
+					{
+						if( cont == 0 )
+							cont = parseInt(1);
+						else
+							cont = parseInt(cont) + parseInt(2);
+						aux_rul += cont;
+						aux_rul += "##";
+					}
+					else
+						aux_rul += url_encode(fieldsVoip[j]) + "##";
+				}
+				aux_rul += "_end_\n";
+			}
+		}
+		
+		// Fora do Escritório
+		if(_this.out_officeR.length > 0)
+		{
+				var aux = _this.out_officeR.split("&&");				
+				aux_rul += "_begin_##";
+				for(var j=0 ; j < aux.length; j++)
+				{
+					aux_rul += url_encode(aux[j]) + "##";					
+				}	
+				aux_rul += "_end_\n";
+				_this.out_officeF = (aux[4].replace("\n","") === "off") ? false : true;
+				//Save outoffice in prefs:
+				connector.loadScript("preferences");
+				prefe.save("outoffice", _this.out_officeF);
+		}
+		
+		var h_filter = function(data)
+		{
+			if(data != "Ok"){alert("Erro : \n" + data);}
+		}
+		var args   = "$this.ScriptS.rec_rules";
+		var params = "arfilter="+aux_rul;
+		cExecute(args,h_filter,params);
+	}
+
+// build object
+   var filter;
+   filter = new cfilter();
Index: tags/expressoMail1_2/1.234/js/wfolders.js
===================================================================
--- tags/expressoMail1_2/1.234/js/wfolders.js	(revision 689)
+++ tags/expressoMail1_2/1.234/js/wfolders.js	(revision 689)
@@ -0,0 +1,157 @@
+	function cWFolders()
+	{
+		this.arrayWin = new Array();
+		this.el;
+		this.alert = false;
+	}
+
+	cWFolders.prototype.makeWindowNew = function(border_id, type,from_search)
+	{ //Javascript doesn't seems to have polimorfism
+		_this = this;
+	
+		var el = document.createElement("DIV");
+		el.style.visibility = "hidden";
+		el.style.position = "absolute";
+		el.style.left = "0px";
+		el.style.top = "0px";
+		el.style.width = "0px";
+		el.style.height = "0px";
+		el.id = 'dJSWin_wfolders';
+		document.body.appendChild(el);
+		
+		el.innerHTML = "<table><tbody><tr><td>&nbsp</td><td>"+
+		"<div id='wfolders_content_tree' style='height:200px; width:250px; overflow:auto; background:#F7F7F7'></div>"+
+		"</td></tr></tbody></table>";
+
+		var space = document.createElement('SPAN');
+		space.innerHTML = "<BR>&nbsp;&nbsp;";
+		el.appendChild(space);
+
+		var butt = Element('dJSWin_wfolders_bok')
+		if (!butt){
+			butt = document.createElement('INPUT');
+			butt.id = 'dJSWin_wfolders_bok';
+			butt.type = 'button';
+			el.appendChild(butt);
+		}
+		if (type == 'save')
+				butt.value = get_lang('Save'); 
+		else if (type == 'send_and_file')
+                butt.value = get_lang('Send and file'); 
+		else if (type == 'move_to')
+			butt.value = get_lang('Move');
+		else if (type == 'change_folder')
+			butt.value = get_lang('Change folder');	
+		else //default value
+			butt.value = get_lang(type);
+
+		butt.onclick = function () {
+			wfolders.arrayWin[el.id].close();
+			if (type == 'save'){
+				save_as_msg(border_id, wfolders_tree._selected.id, wfolders_tree._selected.caption,true);
+			}
+			else if (type == 'send_and_file'){
+				send_message(border_id, wfolders_tree._selected.id, wfolders_tree._selected.caption);
+				wfolders.alert = true;
+			}
+			else if (type == 'move_to')	{
+				var msg_number =  (border_id ? border_id.replace('_r','') : 'selected');
+				if (border_id.match('search'))
+					move_search_msgs(border_id, wfolders_tree._selected.id, wfolders_tree._selected.caption);	
+				else{
+					proxy_mensagens.proxy_move_messages('null',msg_number, border_id, wfolders_tree._selected.id, wfolders_tree._selected.caption);
+					wfolders.alert = true;
+				}
+			}
+			else if (type == 'change_folder'){
+				change_folder(wfolders_tree._selected.id, wfolders_tree._selected.caption);
+				wfolders.alert = true;
+			}
+			else if (type == 'import'){
+				import_msgs(wfolders_tree);
+			}
+		};
+		if (type == 'save')
+			butt.value = get_lang('Save');
+		else if (type == 'send_and_file')
+			butt.value = get_lang('Send and file');
+
+		var space = document.createElement('SPAN');
+		space.innerHTML = "&nbsp;&nbsp;";
+		el.appendChild(space);
+
+		var butt = document.createElement('BUTTON');
+		var buttext = document.createTextNode(get_lang('Close'));
+		butt.appendChild(buttext);
+		butt.onclick = function () {wfolders.arrayWin[el.id].close();};
+		el.appendChild(butt);
+
+		wfolders_tree = new dFTree({name: 'wfolders_tree'});
+		var n_root = new dNode({id:'root', caption:get_lang("My Folders")});
+		wfolders_tree.add(n_root,'anything'); //Places the root; second argument can be anything.
+
+		var folders = tree_folders.getNodesList(cyrus_delimiter);
+		for (var i=1; i<folders.length; i++)
+		{
+			if (proxy_mensagens.is_local_folder(folders[i].id) && from_search) {
+				continue;
+			}
+			var nn = new dNode({
+				id: folders[i].id,
+				caption: lang_folder(folders[i].caption),
+				plusSign: folders[i].plusSign
+			});
+			wfolders_tree.add(nn, folders[i].parent);
+			
+		}
+		Element('wfolders_content_tree').innerHTML = ""; //As buscas nÃ£o podem incluir mover entre pastas locais, pelo menos por enquanto
+		wfolders_tree.draw(Element('wfolders_content_tree'));
+		n_root.changeState();
+		wfolders_tree.getNodeById('INBOX')._select();
+		_this.showWindow(el, type);
+	}
+
+	cWFolders.prototype.makeWindow = function(border_id, type)
+	{
+		this.makeWindowNew(border_id,type,false);
+	}
+	
+	cWFolders.prototype.showWindow = function (div, type)
+	{
+		if(! div) {
+			alert(get_lang("This list has no participants."));
+			return;
+		}
+		
+		if(! this.arrayWin[div.id]) {
+			div.style.width = "275px";
+			div.style.height = "250px";
+			var title = get_lang('Select a folder')+":";
+			var wHeight = div.offsetHeight + "px";
+			var wWidth =  div.offsetWidth   + "px";
+			div.style.width = div.offsetWidth - 5;
+
+			win = new dJSWin({
+				id: 'win_'+div.id,
+				content_id: div.id,
+				width: wWidth,
+				height: wHeight,
+				title_color: '#3978d6',
+				bg_color: '#eee',
+				title: title,
+				title_text_color: 'white',
+				button_x_img: '../phpgwapi/images/winclose.gif',
+				border: true });
+			
+			this.arrayWin[div.id] = win;
+			win.draw();
+		}
+		else {
+			win = this.arrayWin[div.id];
+		}
+		win.open();
+	}
+	
+/* Build the Object */
+	var wfolders;
+	wfolders = new cWFolders();
Index: tags/expressoMail1_2/1.234/js/draw_api.js
===================================================================
--- tags/expressoMail1_2/1.234/js/draw_api.js	(revision 848)
+++ tags/expressoMail1_2/1.234/js/draw_api.js	(revision 848)
@@ -0,0 +1,2624 @@
+var openTab = {
+	'type' : [], // 8 types of tabs, further info. see expressolivre.org/dev/wiki/mail/Documentacao
+	'content_id' : [],
+	'imapUid' : [], // Stores the imap email number of current tab
+	'countFile' : [0,0,0,0,0,0,0,0,0,0], // Stores the number of files attached in current tab
+	'imapBox' : [], // Stores the folder name
+	'toPreserve' : [], // Check if the message should be removed from draft after send
+	'autosave_timer' : [] // The timeout timer for autosave function
+};
+var tabTypes = {
+	'new':4,
+	'forward':6,
+	'reply_with_history':7,
+	'reply_to_all_with_history':7,
+	'reply_without_history':7,
+	'reply_to_all_without_history':7,
+	'edit':5
+	}
+var currentTab,numBox = 0; // Open Tab and num of mailboxes opened at context
+
+function draw_tree_folders(folders){
+	// Check if the tree folders alredy exist.
+	if (Element('dftree_tree_folders')){
+		var update_tree_folders = function(data){
+			build_quota(data);
+			var unseen_in_mailbox = 0;
+			var unseen_in_shared_folders = 0;
+			for (var i=0; i<data.length; i++){
+				if ( data[i].folder_unseen > 0 )
+				{
+					unseen_in_mailbox = parseInt( unseen_in_mailbox + data[ i ].folder_unseen );
+					if ( data[i].folder_id.indexOf( 'INBOX' ) !== 0 )
+						unseen_in_shared_folders = parseInt( unseen_in_shared_folders + data[ i ].folder_unseen );
+				}
+
+				var folder_unseen = Element('dftree_'+data[i].folder_id+'_unseen');
+				
+				if ((folder_unseen) && (data[i].folder_unseen > 0))
+				{
+					folder_unseen.innerHTML = data[i].folder_unseen;
+				}
+				else if (data[i].folder_unseen > 0)
+				{
+					tree_folders.getNodeById(data[i].folder_id).alter({caption:lang_folder(data[i].folder_name) + '<font style=color:red>&nbsp(</font><span id="dftree_'+data[i].folder_id+'_unseen" style=color:red>'+data[i].folder_unseen+'</span><font style=color:red>)</font>'});
+					tree_folders.getNodeById(data[i].folder_id)._refresh();
+				}
+				else if (data[i].folder_unseen <= 0)
+				{
+					tree_folders.getNodeById(data[i].folder_id).alter({caption:lang_folder(data[i].folder_name)});
+					tree_folders.getNodeById(data[i].folder_id)._refresh();
+				}
+
+				if(data[i].folder_id == current_folder){					
+					var old_new_m = isNaN(parseInt(Element('new_m').innerHTML)) ? parseInt(Element('new_m').firstChild.innerHTML) : parseInt(Element('new_m').innerHTML);
+//					if(!isNaN(old_new_m) && old_new_m < data[i].folder_unseen){
+//						Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + (parseInt(data[i].folder_unseen)-old_new_m);
+//					}
+					Element('new_m').innerHTML = data[i].folder_unseen ? '<font color="RED">'+data[i].folder_unseen+'</font>' : 0;
+					draw_paging(Element('tot_m').innerHTML);
+				}
+			}
+
+			var display_unseen_in_mailbox = tree_folders.getNodeById( 'root' );
+			//if ( unseen_in_mailbox )
+			//	display_unseen_in_mailbox.alter({caption:'<font style=color:red>[</font><span id="dftree_root_unseen" style="color:red">' + unseen_in_mailbox +'</span><font style=color:red>]</font> ' + get_lang("My Folders")});
+			//else
+				display_unseen_in_mailbox.alter({caption:get_lang("My Folders")});
+			display_unseen_in_mailbox._refresh();
+
+			var display_unseen_in_shared_folders = tree_folders.getNodeById( 'user' );
+			if ( display_unseen_in_shared_folders )
+			{
+				if ( unseen_in_shared_folders )
+					display_unseen_in_shared_folders.alter({caption:'<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">' + unseen_in_shared_folders +'</span><font style=color:red>]</font> ' + get_lang("Shared folders")});
+				else
+					display_unseen_in_shared_folders.alter({caption:get_lang("Shared folders")});
+				display_unseen_in_shared_folders._refresh();
+			}
+		}
+		cExecute ("$this.imap_functions.get_folders_list&folder="+current_folder, update_tree_folders);
+
+
+		/**
+		 * Pastas locais
+		 */
+		if(preferences.use_local_messages==1) {
+			var local_folders = expresso_local_messages.list_local_folders();
+			var has_changes = false;
+			for (var i in local_folders) { //Coloca as pastas locais.
+				var folder_unseen = Element('dftree_local_'+local_folders[i][0]+'_unseen');
+				
+				if ((folder_unseen) && (local_folders[i][1] > 0))
+				{
+					folder_unseen.innerHTML = local_folders[i][1];
+					has_changes = true;
+				}
+				else if (local_folders[i][1] > 0)
+				{
+					tree_folders.getNodeById("local_"+local_folders[i][0]).alter({caption:lang_folder(local_folders[i][0]) + '<font style=color:red>&nbsp(</font><span id="dftree_local_'+local_folders[i][0]+'_unseen" style=color:red>'+local_folders[i][1]+'</span><font style=color:red>)</font>'});
+					tree_folders.getNodeById("local_"+local_folders[i][0])._refresh();
+					has_changes = true;
+				}
+				else if (local_folders[i][1] <= 0)
+				{
+					tree_folders.getNodeById("local_"+local_folders[i][0]).alter({caption:lang_folder(local_folders[i][0])});
+					tree_folders.getNodeById("local_"+local_folders[i][0])._refresh();
+					has_changes = true;
+				}
+	
+				if("local_"+local_folders[i][0] == get_current_folder()){					
+					var old_new_m = isNaN(parseInt(Element('new_m').innerHTML)) ? parseInt(Element('new_m').firstChild.innerHTML) : parseInt(Element('new_m').innerHTML);
+					if(!isNaN(old_new_m) && old_new_m < local_folders[i][1]){
+						Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + (parseInt(local_folders[i][1])-old_new_m);
+					}
+					Element('new_m').innerHTML = local_folders[i][1] ? '<font color="RED">'+local_folders[i][1]+'</font>' : 0;
+					draw_paging(Element('tot_m').innerHTML);
+					has_changes = true;
+				}
+			}
+			if(has_changes)
+				tree_folders.getNodeById("local_root").open();
+
+		}
+		
+		return;
+	}
+	else{
+		tree_folders = new dFTree({name: 'tree_folders'});
+
+		var n_root = new dNode({id:'root', caption: get_lang("My Folders")});
+		tree_folders.add(n_root,'anything'); //Places the root; second argument can be anything.
+	
+		var unseen_in_mailbox = 0;
+		var unseen_in_shared_folders = 0;
+		for (var i=0; i<folders.length; i++){
+			if (folders[i].folder_unseen > 0)
+			{
+				unseen_in_mailbox = parseInt( unseen_in_mailbox + folders[ i ].folder_unseen );
+				if ( folders[i].folder_id.indexOf( 'INBOX' ) !== 0 )
+					unseen_in_shared_folders = parseInt( unseen_in_shared_folders + folders[ i ].folder_unseen );
+
+				var nn = new dNode({id:folders[i].folder_id, caption:lang_folder(folders[i].folder_name) + '<font style=color:red>&nbsp(</font><span id="dftree_'+folders[i].folder_id+'_unseen" style=color:red>'+folders[i].folder_unseen+'</span><font style=color:red>)</font>', onClick:"change_folder('"+folders[i].folder_id+"','"+folders[i].folder_name+"')", plusSign:folders[i].folder_hasChildren}); 
+				
+				if( folders[i].folder_name.toLowerCase() == 'inbox' )
+					Element('new_m').innerHTML = '<font style="color:red">' + folders[i].folder_unseen + '</font>';
+			}
+			else
+				var nn = new dNode({id:folders[i].folder_id, caption:lang_folder(folders[i].folder_name), onClick:"change_folder('"+folders[i].folder_id+"','"+folders[i].folder_name+"')", plusSign:folders[i].folder_hasChildren}); 
+			
+			if (folders[i].folder_parent == '')
+				folders[i].folder_parent = 'root';
+			else if (folders[i].folder_parent == 'user'){
+				if (!tree_folders.getNodeById('user')){
+					var n_root_shared_folders = new dNode({id:'user', caption:get_lang("Shared folders"), plusSign:true}); 
+					tree_folders.add(n_root_shared_folders,'root');
+				}
+			}
+			tree_folders.add(nn,folders[i].folder_parent);
+		}
+		//tree_local_folders = new dFTree({name: 'tree_local_folders'});
+		/**
+		 * Pastas locais
+		 */
+		if (preferences.use_local_messages==1) {
+			if (!window.google || !google.gears) {
+				temp = confirm(get_lang("To use local messages you have to install google gears. Would you like to be redirected to gears installation page?"));
+				if (temp) {
+					location.href = "http://gears.google.com/?action=install&message="+
+					get_lang("To use local messages, install Google Gears")+"&return=" + document.location.href;
+				}
+				else {
+					preferences.use_local_messages=0;
+				}
+			}
+			else{
+				var root_local = new dNode({
+					id: "local_root",
+					caption: get_lang('local folders')
+				});
+				tree_folders.add(root_local, "root"); //coloca root local
+				var local_folders = expresso_local_messages.list_local_folders();
+				for (var i in local_folders) { //Coloca as pastas locais.
+					if (local_folders[i][1] > 0) 
+						var nodeLocal = new dNode({
+							id: "local_" + local_folders[i][0],
+							caption: lang_folder(local_folders[i][0]) + '<font style=color:red>&nbsp(</font><span id="local_unseen" style=color:red>' + local_folders[i][1] + '</span><font style=color:red>)</font>',
+							onClick: "change_folder('local_" + local_folders[i][0] + "','" + local_folders[i][0] + "')",
+							plusSign: 0
+						});
+					else 
+						var nodeLocal = new dNode({
+							id: "local_" + local_folders[i][0],
+							caption: lang_folder(local_folders[i][0]),
+							onClick: "change_folder('local_" + local_folders[i][0] + "','" + local_folders[i][0] + "')",
+							plusSign: 0
+						});
+					tree_folders.add(nodeLocal, "local_root");
+				}
+			}
+		}
+
+		tree_folders.draw(Element('content_folders'));
+		n_root.changeState();
+
+		var trash_span=document.getElementById('lINBOX/'+trashfolder+'tree_folders');
+		var draft_span=document.getElementById('lINBOX/'+draftsfolder+'tree_folders');
+		var sent_span=document.getElementById('lINBOX/'+sentfolder+'tree_folders');
+		var spam_span=document.getElementById('lINBOX/'+spamfolder+'tree_folders');
+
+		if (trash_span)
+			trash_span.style.backgroundImage="url(../phpgwapi/templates/"+template+"/images/foldertree_trash.png)";
+
+		if (draft_span)
+			draft_span.style.backgroundImage="url(../phpgwapi/templates/"+template+"/images/foldertree_draft.png)"
+
+		if (sent_span)
+			sent_span.style.backgroundImage="url(../phpgwapi/templates/"+template+"/images/foldertree_sent.png)";
+
+		if (spam_span)
+			spam_span.style.backgroundImage="url(../phpgwapi/templates/"+template+"/images/foldertree_spam.png)";
+
+		tree_folders.getNodeById('INBOX')._select();
+		draw_paging(Element('tot_m').innerHTML);
+		// Draw right menu folders.
+		/*
+		var treeroot = document.getElementById('chroottree_folders'); 
+		for (var linkBox = treeroot.firstChild; linkBox != null; linkBox = linkBox.nextSibling)
+			_dragArea.makeMenuBox(linkBox);
+		*/
+
+		var display_unseen_in_mailbox = tree_folders.getNodeById( 'root' );
+		//if ( unseen_in_mailbox )
+		//	display_unseen_in_mailbox.alter({caption:'<font style=color:red>[</font><span id="dftree_root_unseen" style="color:red">' + unseen_in_mailbox +'</span><font style=color:red>]</font> ' + get_lang("My Folders")});
+		//else
+			display_unseen_in_mailbox.alter({caption:get_lang("My Folders")});
+		display_unseen_in_mailbox._refresh();
+
+		var display_unseen_in_shared_folders = tree_folders.getNodeById( 'user' );
+		if ( display_unseen_in_shared_folders )
+		{
+			if ( unseen_in_shared_folders )
+				display_unseen_in_shared_folders.alter({caption:'<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">' + unseen_in_shared_folders +'</span><font style=color:red>]</font> ' + get_lang("Shared folders")});
+			else
+				display_unseen_in_shared_folders.alter({caption:get_lang("Shared folders")});
+			display_unseen_in_shared_folders._refresh();
+		}
+	}
+
+	var folder_create = "";
+	var nm1 = "";
+	if(tree_folders._folderPr.length > 0){
+		var nm_folder = "";
+		for(var i=0; i < tree_folders._folderPr.length; i++){
+			nm_folder = tree_folders._folderPr[i].split(cyrus_delimiter);
+			if(nm_folder[0] == "INBOX"){
+				if(nm1 == ""){
+					nm1 = nm_folder[1];
+					folder_create = "INBOX" + cyrus_delimiter + nm_folder[1] + ";";
+				}else{
+					if( nm1 != nm_folder[1]){
+						folder_create += "INBOX" + cyrus_delimiter + nm_folder[1] + ";";
+						nm1 = nm_folder[1];
+					}
+				}
+			}
+		}
+	}
+	if(folder_create != ""){
+		if(confirm(get_lang("There are folders with invalid format. Do you want to fix them?"))){
+			var handler_correct_folders = function(data){
+				//Timeout to release HTTPRequest , loadScript and update tree folders.
+				if(data)
+					setTimeout("connector.loadScript('TreeShow');ttreeBox.update_folder();",500);
+			}
+			cExecute("$this.imap_functions.create_extra_mailbox",handler_correct_folders,"nw_folders="+folder_create);
+		}
+	}
+}
+
+function update_menu(data){
+		/*
+		 * @AUTHOR Rodrigo Souza dos Santos
+		 * @DATE 2008/09/15
+		 * @BRIEF When occurs a error in imap server show the message that is in file "error.html".
+		 */
+		if ( data && data.imap_error )
+		{
+			connector.newRequest('error.html', 'templates/'+template+'/error.html', 'GET',
+				function(data)
+				{
+					var target = document.getElementById('divAppbox');
+					if ( target )
+						target.innerHTML = data;
+				}
+			);
+			return false;
+		}
+
+		draw_tree_folders(data);
+		if(data) {
+			build_quota(data);			
+			var f_unseen = Element('dftree_'+current_folder+'_unseen');
+			if(f_unseen && f_unseen.innerHTML)
+				Element('new_m').innerHTML = '<font face="Verdana" size="1" color="RED">'+f_unseen.innerHTML+'</font>';
+			else
+			{
+				if( parseInt(Element('new_m').innerHTML) == 0 )
+					Element('new_m').innerHTML = 0;			
+			}
+			folders = data;
+			cExecute ("$this.imap_functions.get_range_msgs2&folder=INBOX&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type=SORTARRIVAL&search_box_type=ALL&sort_box_reverse=1", handler_draw_box);
+		}
+}
+
+var handler_draw_box = function(data){
+	draw_box(data, 'INBOX', true);
+	//alternate_border(0);
+}
+
+// Action on change folders.
+function change_folder(folder, folder_name){
+	if (openTab.imapBox[0] != folder)
+	{
+		current_folder = folder;
+		var handler_draw_box = function(data)
+		{
+			if(!verify_session(data))
+				return;
+			alternate_border(0);
+			Element("border_id_0").innerHTML = "&nbsp;" + lang_folder(folder_name) + '&nbsp;<font face="Verdana" size="1" color="#505050">[<span id="new_m">&nbsp;</span> / <span id="tot_m"></span>]</font>';
+			draw_box(data, folder, true);
+			draw_paging(data.num_msgs);
+			Element("tot_m").innerHTML = data.num_msgs;
+			update_menu();
+			return true;
+		}
+		proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort_box_type,search_box_type,sort_box_reverse,handler_draw_box);
+//		cExecute ("$this.imap_functions.get_range_msgs2&folder="+current_folder+"&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type="+sort_box_type+ "&search_box_type="+ search_box_type +"&sort_box_reverse="+sort_box_reverse+"", handler_draw_box);
+	}
+	else
+		alternate_border(0);
+}
+
+function open_folder(folder, folder_name){
+	if (current_folder!= folder) {
+		current_folder = folder;
+		var handler_draw_box = function(data){
+			if(!verify_session(data))
+				return false;
+			numBox++;
+			create_border(folder_name,numBox.toString());
+			draw_box(data, current_folder, false);
+			alternate_border(numBox);
+			return true;
+		}
+		cExecute ("$this.imap_functions.get_range_msgs2&folder="+current_folder+"&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type="+sort_box_type+ "&search_box_type="+ search_box_type +"&sort_box_reverse="+sort_box_reverse+"", handler_draw_box);
+	}
+	else
+		alternate_border(numBox);
+	return true;
+}
+
+var lastPage = 1;
+var numPages = 5;
+var last_folder = 'INBOX';
+function draw_paging(num_msgs){	
+	num_msgs = parseInt(num_msgs);
+	total_pages = 1;
+
+	if(last_folder != current_folder){
+		lastPage = 1;
+		current_page = 1;
+		last_folder = current_folder;
+  	}
+
+	if(num_msgs > parseInt(preferences.max_email_per_page)) {	
+		total_pages = parseInt(num_msgs/preferences.max_email_per_page);
+		if((num_msgs/preferences.max_email_per_page) > total_pages)
+			total_pages++;			
+	}
+
+	if(total_pages == 1) {
+		if(span_paging = document.getElementById("span_paging")) {
+			span_paging.parentNode.removeChild(span_paging);
+		}
+		return;
+	}
+  	
+  	span_paging = document.getElementById("span_paging");
+	if(!span_paging){
+		span_paging = document.createElement("DIV");
+		span_paging.id = "span_paging";
+		span_paging.align="right";
+		document.getElementById("div_menu_c3").appendChild(span_paging);	
+	}
+	span_paging.style.width="100%";		  	 		
+  	span_paging.innerHTML="";
+  	msg_range_begin = 1;
+	msg_range_end = preferences.max_email_per_page;
+  	if(current_page != 1) {
+	  	lnk_page = document.createElement("A");
+		lnk_page.setAttribute("href", "javascript:current_page=1;kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+",function handler(data){draw_box(data, get_current_folder());});");
+  	}
+  	else {
+  	 	lnk_page = document.createElement("SPAN");
+  	}
+  	span_paging.appendChild(lnk_page);
+
+  	lnk_page.innerHTML = "&lt;&lt;";
+	lnk_page.title = get_lang("First");
+  	span_paging.innerHTML += "&nbsp;";
+  		
+  	if(current_page == lastPage + numPages)
+  		lastPage = current_page - 1;  		
+  	else if((lastPage != 1 && lastPage == current_page) || current_page == total_pages)  		
+  		lastPage = current_page - (numPages - 1);
+  	else if(current_page == 1)
+  	 	lastPage = 1;
+
+	if(lastPage < 1)
+		lastPage = 1;
+	else if(lastPage > 1 && (lastPage > (total_pages -(numPages - 1))))
+		lastPage = total_pages -(numPages - 1);
+
+	var	hasMarked = false;
+
+  	for(i = lastPage; i <= total_pages; i++) {
+  			
+  		if(current_page == i || (i == total_pages && !hasMarked)) {	  		
+  			lnk_page = document.createElement("SPAN");
+  			span_paging.appendChild(lnk_page);
+  			lnk_page.innerHTML = "&nbsp;<b>"+i+"</b>&nbsp;";
+  			hasMarked = true;
+  			continue;
+  		}
+  		else{	  		
+  			lnk_page = document.createElement("A");
+  			span_paging.appendChild(lnk_page);
+  			msg_range_begin = ((i*preferences.max_email_per_page)-(preferences.max_email_per_page-1));
+			msg_range_end = (i*preferences.max_email_per_page);
+			lnk_page.setAttribute("href", "javascript:current_page="+i+";kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+",function handler(data){draw_box(data, get_current_folder());});");
+  		}
+  		
+  		lnk_page.innerHTML = "&nbsp;...&nbsp;";
+  		
+  		if(i == (lastPage + numPages))
+  				break;	  		
+  		else if(lastPage == 1 || i != lastPage)	  			  			
+  			lnk_page.innerHTML = "&nbsp;"+i+"&nbsp;";
+  		
+  		span_paging.innerHTML += "&nbsp;";	  			  			  			  			  			  			  		
+  	}
+  	
+ 	if(current_page != total_pages) {
+  		lnk_page = document.createElement("A");
+  		msg_range_begin = ((total_pages*preferences.max_email_per_page)-(preferences.max_email_per_page-1));
+		msg_range_end = (total_pages*preferences.max_email_per_page);  		
+		lnk_page.setAttribute("href", "javascript:current_page="+total_pages+";kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+",function handler(data){draw_box(data, get_current_folder());});");
+	}
+	else {
+		lnk_page = document.createElement("SPAN");
+	}
+  	span_paging.innerHTML += "&nbsp;";
+  	span_paging.appendChild(lnk_page);
+
+	lnk_page.title = get_lang("Last");
+  	lnk_page.innerHTML = "&gt;&gt;";
+}
+
+
+// Draw the inbox and another folders
+function draw_box(headers_msgs, msg_folder, alternate){
+	if (alternate)
+		kill_current_box();
+	
+	if(is_ie)
+		document.getElementById("border_table").width = "99.5%";
+
+	openTab.content_id[numBox] = document.getElementById("content_id_"+numBox);	
+	openTab.imapBox[numBox] = msg_folder;
+	openTab.type[numBox] = 0;
+	
+	table_message_header_box = document.getElementById("table_message_header_box_"+numBox);
+	if (table_message_header_box == null){
+		var table_element = document.createElement("TABLE");
+		var tbody_element = document.createElement("TBODY");
+		table_element.setAttribute("id", "table_message_header_box_"+numBox);
+		table_element.className = "table_message_header_box";
+		
+		tr_element = document.createElement("TR");
+		tr_element.className = "message_header";
+		td_element1 = document.createElement("TD");
+		td_element1.setAttribute("width", "1%");
+		chk_box_element = document.createElement("INPUT");
+		chk_box_element.id  = "chk_box_select_all_messages";
+		chk_box_element.setAttribute("type", "checkbox");
+		chk_box_element.className = "checkbox";
+		chk_box_element.onclick = function(){select_all_messages(this.checked);};
+		chk_box_element.onmouseover = function () {this.title=get_lang('Select all messages.')};
+		chk_box_element.onkeydown = function (e){
+			if (is_ie)
+			{
+				if ((window.event.keyCode) == 46)
+					proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
+			}
+			else
+			{
+				if ((e.keyCode) == 46)
+					proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
+			}
+		};
+		
+		td_element1.appendChild(chk_box_element);
+		
+		td_element2 = document.createElement("TD");
+		td_element2.setAttribute("width", "2%");
+	
+		td_element3 = document.createElement("TD");
+		td_element3.setAttribute("width", "31%");
+		td_element3.onclick = function () {sort_box(search_box_type,'SORTFROM');};
+		td_element3.id = "message_header_SORTFROM_"+numBox;
+		td_element3.align = "left";
+		td_element3.innerHTML = get_lang("Who");
+		
+		td_element4 = document.createElement("TD");
+		td_element4.setAttribute("width", "41%");
+		td_element4.onclick = function () {sort_box(search_box_type,'SORTSUBJECT');};
+		td_element4.id = "message_header_SORTSUBJECT_"+numBox;
+		td_element4.align = "left";
+		td_element4.innerHTML = get_lang("Subject");
+	
+		td_element5 = document.createElement("TD");
+		td_element5.setAttribute("width", "14%");
+		td_element5.onclick = function () {sort_box(search_box_type,'SORTARRIVAL');};
+		td_element5.id = "message_header_SORTARRIVAL_"+numBox;
+		td_element5.align = "center";
+		td_element5.innerHTML = get_lang("Date");
+		td_element6 = document.createElement("TD");
+		td_element6.setAttribute("width", "14%");
+		td_element6.onclick = function () {sort_box(search_box_type,'SORTSIZE');}
+		td_element6.id = "message_header_SORTSIZE_"+numBox;
+		td_element6.align = "left";
+		td_element6.innerHTML = get_lang("Size");
+
+		tr_element.appendChild(td_element1);
+		tr_element.appendChild(td_element2);
+		tr_element.appendChild(td_element3);
+		tr_element.appendChild(td_element4);
+		tr_element.appendChild(td_element5);
+		tr_element.appendChild(td_element6);
+		tbody_element.appendChild(tr_element);
+		table_element.appendChild(tbody_element);
+		openTab.content_id[numBox].appendChild(table_element);
+	}
+	draw_header_box();
+	var table_element = document.createElement("TABLE");
+	var tbody_element = document.createElement("TBODY");
+	
+	table_element.id = "table_box";
+	table_element.className = "table_box";
+	table_element.borderColorDark = "#bbbbbb";
+	table_element.frame = "void";
+	table_element.rules = "rows";
+	table_element.cellPadding = "0";
+	table_element.cellSpacing = "0";
+	
+	table_element.onkeydown = function (e){
+		if (is_ie)
+		{
+			if ((window.event.keyCode) == 46)
+			{
+				//delete_all_selected_msgs_imap();
+				proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
+			}
+		}
+		else
+		{
+			if ((e.keyCode) == 46)
+			{
+				//delete_all_selected_msgs_imap();
+				proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
+			}
+		}
+	};
+	if (is_ie)
+		table_element.style.cursor = "hand";
+	
+	tbody_element.setAttribute("id", "tbody_box");
+	table_element.appendChild(tbody_element);
+
+	var _divScroll = document.getElementById("divScrollMain_"+numBox);
+
+	var bar = document.getElementById("toolbar");
+	var offset = 0;
+
+	if(!_divScroll){		
+		_divScroll = document.createElement("DIV");
+		_divScroll.id = "divScrollMain_"+numBox;
+	}
+	
+	_divScroll.style.overflowY = "auto";								
+	_divScroll.style.overflowX = "hidden";
+	_divScroll.style.width	="100%";
+	
+	if (is_mozilla){
+		_divScroll.style.overflow = "-moz-scrollbars-vertical";
+		_divScroll.style.width	="99.3%";
+	}
+	// Inicio: Redimensiona DIV SCROLL
+	var bar = Element("toolbar");
+	var offset = 0;
+	if(bar.style.visibility != 'hidden') 
+		offset = (bar.offsetHeight ? bar.offsetHeight :  bar.clientHeight);		
+	var screenHeight = document.body.clientHeight ? document.body.clientHeight : document.body.offsetHeight;
+	var defaultHeight = screenHeight - offset;		
+	_divScroll.style.height 	= defaultHeight - 110;
+	Element('content_folders').style.height = defaultHeight - (is_ie ? 165 : 150);
+	// Fim: Redimensiona DIV SCROLL
+	_divScroll.appendChild(table_element);
+	openTab.content_id[numBox].appendChild(_divScroll);
+	
+	var f_unseen = 0;
+
+		if (headers_msgs.num_msgs == 0){
+			td_info = document.createElement("H3");
+			td_info.setAttribute("height", "25%");
+			td_info.setAttribute("background", "#FFF");
+			td_info.setAttribute("id", "msg_info");
+			td_info.align = "center";
+			td_info.innerHTML = get_lang("This mail box is empty");
+			tbody_element.appendChild(td_info);
+		}
+	
+	
+	for (var i=0; i < headers_msgs.length; i++){
+			if ((headers_msgs[i].Unseen == 'U') || (headers_msgs[i].Recent == 'N'))
+				f_unseen++;
+			tr_element = this.make_tr_message(headers_msgs[i], msg_folder);
+			if (tr_element)
+				tbody_element.appendChild(tr_element);
+			_dragArea.makeDragged(tr_element, headers_msgs[i].msg_number, headers_msgs[i].subject, true);
+	}
+
+	if ((preferences.use_shortcuts == '1') && (headers_msgs[0]))
+		select_msg(headers_msgs[0].msg_number, 'null', true);
+
+	var tdFolders  =  Element("folderscol");
+	tdFolders.style.display = preferences.hide_folders == '1'  ? "none" : "";
+	if ( !currentTab )
+		alternate_border(numBox);
+	draw_footer_box(headers_msgs.num_msgs);	
+	Element('main_table').style.display = '';
+	if(debug) {
+		var _eTime = new Date();
+		_eTime = _eTime.getTime();
+		alert("Carregou em "+(_eTime - _bTime)+" ms");
+	}
+	var msg_folder = Element('msg_folder').value;
+	var msg_number = Element('msg_number').value;	
+	if(!msg_folder && msg_number) {
+		new_message('new','null');
+	}
+	else if(msg_folder && msg_number){
+		cExecute("$this.imap_functions.get_info_msg&msg_number="+ msg_number + "&msg_folder=" + msg_folder, show_msg);
+		Element('msg_folder').value = '';
+		Element('msg_number').value = '';
+	}
+
+	if(!is_ie) {
+		var scripts = new Array("ccQuickAdd",
+							"color_palette",
+							"filter",
+							"filters",
+							"html2xhtml",
+							"preferences",
+							"QuickCatalogSearch",
+							"QuickSearchUser",
+							"rich_text_editor",
+							"sharemailbox",
+							"search",
+							"TreeS",
+							"TreeShow");
+							
+		connector.loadAllScripts(scripts);
+	}
+}
+
+function change_tr_properties(tr_element, newUid, newSubject){
+       var td_who = document.getElementById('td_who_'+tr_element.id);
+       td_who.nextSibling.innerHTML = newSubject;
+       tr_element.id = newUid;
+       for (var i=2; i < 6; i++)
+               tr_element.childNodes[i].id = tr_element.childNodes[i].id.replace(message_id,newUid);
+       tr_element.onclick = function () {   cExecute("$this.imap_functions.get_info_msg&msg_number="+newUid+"&msg_folder="+current_folder,show_msg); };
+}
+
+function make_tr_message(headers_msgs, msg_folder){
+		var tr_element = document.createElement('tr');
+		tr_element.style.height = preferences.line_height;
+		var _fontSize = preferences.font_size ? preferences.font_size : "11";
+		tr_element.id = headers_msgs.msg_number;
+
+		if ((headers_msgs.Unseen == 'U') || (headers_msgs.Recent == 'N')){
+			if ((headers_msgs.Flagged == 'F') || (headers_msgs.Importance.toLowerCase().indexOf("high")!=-1 && preferences.use_important_flag == 'True'))
+				add_className(tr_element, 'flagged_msg');
+			add_className(tr_element, 'tr_msg_unread');
+		}
+		else{
+			if ((headers_msgs.Flagged == 'F') || (headers_msgs.Importance.toLowerCase().indexOf("high")!=-1 && preferences.use_important_flag == 'True'))
+				add_className(tr_element,'flagged_msg');
+			add_className(tr_element, 'tr_msg_read');
+		}
+
+		if ((headers_msgs.Unseen == 'U') || (headers_msgs.Recent == 'N'))
+			add_className(tr_element, 'tr_msg_unread');
+		else
+			add_className(tr_element, 'tr_msg_read');
+		
+		if (headers_msgs.Flagged == 'F')
+			add_className(tr_element,'flagged_msg');
+
+		td_element1 = document.createElement("TD");
+		td_element1.setAttribute("width", "1%");
+		chk_box_element = document.createElement("INPUT");
+		chk_box_element.setAttribute("type", "checkbox");
+		chk_box_element.className = "checkbox";
+		chk_box_element.setAttribute("id", "check_box_message_"+headers_msgs.msg_number);
+		chk_box_element.onclick = function(e){
+			if (is_ie)
+				changeBgColor(window.event,headers_msgs.msg_number);
+			else
+				changeBgColor(e,headers_msgs.msg_number);
+		};
+		td_element1.appendChild(chk_box_element);
+		
+		td_element2 = document.createElement("TD");
+		td_element2.setAttribute("width", "2%");
+		if (headers_msgs.attachment && headers_msgs.attachment.number_attachments > 0)
+			//td_element2.innerHTML = "<img src ='templates/"+template+"/images/clip.gif' title='" + url_decode(headers_msgs.attachment.names) + "'>";
+			td_element2.style.background = "url(templates/"+template+"/images/clip.gif) no-repeat center";
+			
+		td_element21 = document.createElement("TD");
+		td_element21.setAttribute("width", "1%");
+		td_element21.id = "td_message_answered_"+headers_msgs.msg_number;
+
+		if ((headers_msgs.Forwarded == 'F')  || (headers_msgs.Draft == 'X' && headers_msgs.Answered == 'A')){
+			//td_element21.innerHTML += "<img src ='templates/"+template+"/images/forwarded.gif' title='"+get_lang('Forwarded')+"'>";
+			td_element21.style.background = "url(templates/"+template+"/images/forwarded.gif) no-repeat center";
+			headers_msgs.Draft = '' 
+			headers_msgs.Answered = '';
+			headers_msgs.Forwarded == 'F';
+		}
+		else if (headers_msgs.Draft == 'X')
+			//td_element2.innerHTML += "<img src ='templates/"+template+"/images/draft.gif' title='"+get_lang('Draft')+"'>";
+			td_element2.style.background = "url(templates/"+template+"/images/draft.gif) no-repeat center";
+		else if (headers_msgs.Answered == 'A')
+			//td_element21.innerHTML += "<img src ='templates/"+template+"/images/answered.gif' title='"+get_lang('Answered')+"'>";
+			td_element21.style.background = "url(templates/"+template+"/images/answered.gif) no-repeat center";
+
+		td_element22 = document.createElement("TD");
+		td_element22.setAttribute("width", "1%");
+		td_element22.id = "td_message_important_"+headers_msgs.msg_number;
+
+		if (headers_msgs.Flagged == 'F' || (headers_msgs.Importance.toLowerCase().indexOf("high") != -1 && preferences.use_important_flag == 'True'))
+		{
+			td_element22.style.background = "url(templates/"+template+"/images/important.gif) no-repeat center";
+		}
+		else
+			td_element22.innerHTML += "&nbsp;&nbsp;&nbsp;";
+
+		td_element23 = document.createElement("TD");
+		td_element23.setAttribute("width", "1%");
+		td_element23.id = "td_message_sent_"+headers_msgs.msg_number;
+		td_element23.innerHTML = "&nbsp;&nbsp;&nbsp;";
+		// preload image
+		var _img_sent = new Image();
+		_img_sent.src 	 = "templates/"+template+"/images/sent.gif";
+
+		td_element3 = document.createElement("TD");
+		td_element3.id = "td_who_"+ headers_msgs.msg_number;
+		td_element3.setAttribute("width", "30%");
+		var _onclick = function(){InfoContact.hide();proxy_mensagens.get_msg(headers_msgs.msg_number, msg_folder,true, show_msg);};
+		td_element3.onclick = _onclick;
+		td_element3.innerHTML = '&nbsp;';
+		
+		if (typeof(headers_msgs.from) == 'undefined')
+			return false;
+		if(headers_msgs.from.email.toLowerCase() == Element("user_email").value)
+		{ 
+			td_element3.onmouseover = function () {this.title=headers_msgs.to.email;};
+			if (headers_msgs.Draft == 'X')
+				td_element3.innerHTML += "<span style=\"color:red\">("+get_lang("Draft")+") </span>";
+			else{				
+				if(headers_msgs.to.email.toLowerCase() != Element("user_email").value)
+					td_element23.innerHTML = "<img valign='center' src ='templates/"+template+"/images/sent.gif' title='"+get_lang('Sent')+"'>";
+			
+				if ((headers_msgs.to)&&(headers_msgs.to.name != null))
+					td_element3.innerHTML += headers_msgs.to.name;
+				else if (headers_msgs.to){
+					td_element3.innerHTML += headers_msgs.to.email;
+				}
+			}
+		}
+		else{
+			td_element3.onmouseover = function (event) {try {InfoContact.begin(this,headers_msgs.from.email)} catch(e){};};
+			td_element3.onmouseout = function (){ try {clearTimeout(InfoContact.timeout);} catch(e){}};
+			if (headers_msgs.Draft == 'X'){
+				td_element3.innerHTML = "<span style=\"color:red\">("+get_lang("Draft")+") </span>";
+			}
+			else{
+				if (headers_msgs.from.name != null)
+					td_element3.innerHTML += headers_msgs.from.name;
+				else
+					td_element3.innerHTML += headers_msgs.from.email;
+			}
+		}	
+		if (td_element3.innerHTML.indexOf(" ") == '-1' && td_element3.innerHTML.length > 25){
+			td_element3.innerHTML = td_element3.innerHTML.substring(0,25) + "...";
+		}
+		else if (td_element3.innerHTML.length > 40 ){
+			td_element3.innerHTML = td_element3.innerHTML.substring(0,40) + "...";
+		}
+		
+		td_element4 = document.createElement("TD");
+		td_element4.setAttribute("width", "40%");
+		td_element4.onclick = _onclick;
+		td_element4.innerHTML = !is_ie ? "<a id='a_message_"+tr_element.id+"'>&nbsp;" : "&nbsp;";
+		
+		if ((headers_msgs.subject)&&(headers_msgs.subject.length > 50))
+			td_element4.innerHTML += headers_msgs.subject.substring(0,50) + "...";
+		else
+			td_element4.innerHTML += headers_msgs.subject;
+					
+		if(!is_ie){
+			td_element4.innerHTML += "</a>";
+			tr_element.onmouseover = function(){};
+		}
+		
+
+		td_element5 = document.createElement("TD");
+		td_element5.setAttribute("width", "14%");
+		td_element5.onclick = _onclick;
+		td_element5.setAttribute("align", "center");
+		td_element5.innerHTML = headers_msgs.udate;
+
+		td_element6 = document.createElement("TD");
+		td_element6.setAttribute("width", "14%");
+		td_element6.onclick = _onclick;
+		td_element6.setAttribute("noWrap","true");
+		td_element6.setAttribute("align", "center");
+		
+		td_element3.style.fontSize= _fontSize;
+		td_element4.style.fontSize= _fontSize;
+		td_element5.style.fontSize= _fontSize;
+		td_element6.style.fontSize= _fontSize;
+		msg_size = headers_msgs.Size;
+		if (msg_size < 1048576 && msg_size > 1024)
+			td_element6.innerHTML = this.round(msg_size / 1024, 0) + ' Kb';
+		else if(msg_size > 1024)
+			td_element6.innerHTML = this.round(msg_size / (1024*1024), 1) + ' Mb';
+		else
+			td_element6.innerHTML = "1 Kb";
+
+		tr_element.appendChild(td_element1);
+		tr_element.appendChild(td_element2);
+		tr_element.appendChild(td_element21);
+		tr_element.appendChild(td_element22);
+		tr_element.appendChild(td_element23);
+		tr_element.appendChild(td_element3);
+		tr_element.appendChild(td_element4);
+		tr_element.appendChild(td_element5);
+		tr_element.appendChild(td_element6);
+		return tr_element;
+}
+
+function sort_box(search, sort){
+	var message_header = Element("message_header_"+search);
+	var handler_draw_box = function(data){
+		draw_box(data, current_folder,true);
+		draw_paging(Element('tot_m').innerHTML);
+		//Mostrar as msgs nao lidas de acordo com o filtro de relevancia
+                var msgs_unseen = 0;
+                for(i in data){
+	                if(data[i].Unseen == 'U')
+		                msgs_unseen++;
+	}
+		Element("new_m").innerHTML = '<font style="color:'+(msgs_unseen == 0 ? '': 'red')+'">' + msgs_unseen + '</font>';
+	}
+
+	if(sort_box_type == sort && search_box_type == search){
+		sort_box_reverse = sort_box_reverse ? 0 : 1;
+	}
+	else if(sort_box_type != sort){
+		if ( (sort == 'SORTFROM') || (sort == 'SORTSUBJECT') )
+			sort_box_reverse = 0;
+		else
+			sort_box_reverse = 1;
+	}
+		
+	// Global variable.
+	sort_box_type = sort;
+	search_box_type = search;
+
+	proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort,search,sort_box_reverse,handler_draw_box);
+	cExecute ("$this.imap_functions.get_range_msgs2&folder="+current_folder+"&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type="+sort+"&search_box_type="+search+"&sort_box_reverse="+sort_box_reverse+"", handler_draw_box);
+	current_page = 1;
+	//Comentado para nao sobrepor o numero de msgs nao lidas ao utilizar os filtros
+	//update_menu();
+}
+function draw_header_box(){
+	switch(sort_box_type){
+		case 'SORTFROM':
+			type_name = get_lang("Who");
+			break;
+		case 'SORTSUBJECT':
+			type_name = get_lang("Subject");
+			break;
+		case 'SORTARRIVAL':
+			type_name = get_lang("Date");
+			break;
+		case 'SORTSIZE':
+			type_name = get_lang("Size");
+			break; 
+		default:
+			type_name = get_lang("Date");
+			break;
+	}
+	document.getElementById("message_header_SORTFROM_"+numBox).innerHTML 	= get_lang("Who");
+	document.getElementById("message_header_SORTSUBJECT_"+numBox).innerHTML = get_lang("Subject");
+	document.getElementById("message_header_SORTARRIVAL_"+numBox).innerHTML = get_lang("Date");
+	document.getElementById("message_header_SORTSIZE_"+numBox).innerHTML	= get_lang("Size");	
+	document.getElementById("message_header_"+(sort_box_type.lastIndexOf("SORT") != "-1" ? sort_box_type : "SORTARRIVAL")+"_"+numBox ).innerHTML = "<B>"+type_name+"</B><img src ='templates/"+template+"/images/arrow_"+(sort_box_reverse == 1 ? 'desc' : 'asc')+"endant.gif'>";
+}
+function draw_message(info_msg, ID){
+	var content = document.getElementById('content_id_' + ID);
+	var defaultWidth = document.body.offsetWidth - 37;
+	
+	var menuHidden = Element("folderscol").style.display == 'none' ? true : false;
+	if(!menuHidden)
+		defaultWidth -= Element("folderscol").offsetWidth;
+	 //////////////////////////////////////////////////////////////////////////////////////////////////////
+	//Make the next/previous buttom.
+	//////////////////////////////////////////////////////////////////////////////////////////////////////
+	var next_previous_msg_td = document.createElement("TD");
+	next_previous_msg_td.setAttribute("noWrap","true");
+	next_previous_msg_td.align = "right";
+	next_previous_msg_td.width = "40px";
+	var img_next_msg = document.createElement("IMG");
+	img_next_msg.id = 'msg_opt_next_' + ID;
+	img_next_msg.src = './templates/'+template+'/images/down.button.png';
+	img_next_msg.title = get_lang('Next');
+	img_next_msg.style.cursor = 'pointer';
+
+	// Old
+	//img_next_msg.onclick = function () {cExecute ("$this.imap_functions.get_info_next_msg&msg_number="+ info_msg.msg_number + "&msg_folder="+ info_msg.msg_folder + "&sort_box_type="+ sort_box_type +  "&search_box_type="+ search_box_type +"&sort_box_reverse="+ sort_box_reverse +"&reuse_border="+ID, show_msg)};
+	var folder = document.getElementById(ID.substr(0, ID.indexOf('_')));
+	if (!folder){
+		delete_border(ID);
+		return;
+		}
+	if (folder.nextSibling){
+		var nextMsgBox = folder.nextSibling.name?folder.nextSibling.name:info_msg.msg_folder;
+		img_next_msg.onclick = function()
+		{
+			currentTab = ID;
+			openTab.type[ID] = 2;
+			cExecute("$this.imap_functions.get_info_msg&msg_number="+folder.nextSibling.id+"&msg_folder="+nextMsgBox, show_msg);
+		};
+	}
+	else
+		img_next_msg.onclick = function()
+			{
+				/*current_page++;
+				msg_range_end = (current_page*preferences.max_email_per_page);
+				msg_range_begin = (msg_range_end-(preferences.max_email_per_page)+1);
+				kill_current_box();
+				cExecute ('$this.imap_functions.get_range_msgs2&folder='+current_folder+'&msg_range_begin='+msg_range_begin+'&msg_range_end='+msg_range_end+'&sort_box_reverse=1', function handler(data){draw_box(data, current_folder);}) */
+					delete_border(ID);
+			};
+
+	var img_space = document.createElement("SPAN");
+	img_space.innerHTML = "&nbsp;";
+	var img_previous_msg = document.createElement("IMG");
+	img_previous_msg.id = 'msg_opt_previous_' + ID;
+	img_previous_msg.src = './templates/'+template+'/images/up.button.png';
+	img_previous_msg.title = get_lang('Previous');
+	img_previous_msg.style.cursor = 'pointer';
+
+	//Old
+	//img_previous_msg.onclick = function () {cExecute ("$this.imap_functions.get_info_previous_msg&msgs_number="+ info_msg.msg_number + "&folder="+ info_msg.msg_folder + "&sort_box_type="+ sort_box_type+ "&search_box_type="+ search_box_type + "&sort_box_reverse="+ sort_box_reverse +"&reuse_border="+ID, show_msg)}
+	folder = document.getElementById(ID.substr(0, ID.indexOf('_')));
+	if (!folder){
+	        delete_border(ID);
+		return;
+		}
+	if (folder.previousSibling)
+	{
+		var previousMsgBox = folder.previousSibling.name?folder.previousSibling.name:info_msg.msg_folder;
+		img_previous_msg.onclick = function()
+		{
+			currentTab = ID;
+			openTab.type[ID] = 2;
+			cExecute("$this.imap_functions.get_info_msg&msg_number="+folder.previousSibling.id+"&msg_folder=" + previousMsgBox, show_msg);
+		};
+	}
+	else
+		img_previous_msg.onclick = function()
+		{
+			delete_border(ID);
+		};
+
+	next_previous_msg_td.appendChild(img_previous_msg);
+	next_previous_msg_td.appendChild(img_space);
+	next_previous_msg_td.appendChild(img_next_msg);
+	//////////////////////////////////////////////////////////////////////////////////////////////////////
+	//Make the header message.
+	//////////////////////////////////////////////////////////////////////////////////////////////////////
+	var table_message = document.createElement("TABLE");
+	var tbody_message = document.createElement("TBODY");
+	table_message.border = "0";
+	table_message.width = defaultWidth ;
+
+	//////////////////////////////////////////////////////////////////////////////////////////////////////
+	//Make the options message.
+	//////////////////////////////////////////////////////////////////////////////////////////////////////
+	var tr0 = document.createElement("TR");
+	tr0.className = "tr_message_header";
+	var td0 = document.createElement("TD");
+	var table_message_options = document.createElement("TABLE");
+	table_message_options.width = "100%";
+	table_message_options.border = '0';
+	table_message_options.className = 'table_message';
+	var tbody_message_options = document.createElement("TBODY");
+	var tr = document.createElement("TR");
+	var td = document.createElement("TD");
+	td.setAttribute("noWrap","true");
+	var _name = '';
+	var _maxChar = menuHidden ? 40 : 15;
+	if (info_msg.from.name)
+		_name = info_msg.from.name.length > _maxChar ? info_msg.from.name.substring(0,_maxChar) + "..." : info_msg.from.name;	
+	else		
+		_name = info_msg.from.email.length > _maxChar ? info_msg.from.email.substring(0,_maxChar) + "..." : info_msg.from.email;
+
+	td.innerHTML = _name.bold() + ', ' + info_msg.smalldate;
+	if (info_msg.attachments.length > 0)
+		td.innerHTML += "&nbsp<img style='cursor:pointer' onclick='javascript:Element(\"option_hide_more_"+ID+"\").onclick()' src ='templates/"+template+"/images/clip.gif' title='"+info_msg.attachments.names+"'>";
+	
+	if (typeof(info_msg.signature) == 'string')
+	{	
+		if (info_msg.signature != "void")
+			td.innerHTML += '&nbsp;<img style="cursor:pointer" onclick="alert(\''+ get_lang("This message is signed, and you can trust.") + info_msg.signature +'\');" src="templates/'+template+'/images/signed.gif">';
+		else
+			td.innerHTML += "&nbsp;<img style='cursor:pointer' onclick='alert(\""+get_lang("This message is signed, but it is invalid. You should not trust on it.")+"\");' title='"+get_lang("Voided message")+"' src='templates/"+template+"/images/invalid.gif'>";
+	}
+	
+	if (info_msg.DispositionNotificationTo)
+	{
+		td.innerHTML += '&nbsp;<img style="cursor:pointer" alt="'+ get_lang('Message with read notification') + '" title="'+ get_lang('Message with read notification') + '" src="templates/'+template+'/images/notification.gif">';
+	}
+	
+	// NORMAL MSG
+	if(info_msg.Draft != 'X')
+	{
+	var options = document.createElement("TD");
+	options.width = "30%";
+	options.setAttribute("noWrap","true");
+	var option_hide_more = document.createElement("SPAN");
+	option_hide_more.className = 'message_options';
+	options.align = 'right';
+	option_hide_more.value = 'more_options';
+	option_hide_more.id = 'option_hide_more_'+ID;
+	option_hide_more.onclick = function(){
+		var _height = Element("div_message_scroll_"+ID).style.height;
+		_height = parseInt(_height.replace("px",""));
+		var _offset = 35;
+		if (this.value == 'more_options'){
+			this.innerHTML = "<b><u>"+get_lang('Options')+"</u></b>";
+			this.value = 'hide_options';
+			Element("div_message_scroll_"+ID).style.height = (_height - _offset)+"px";
+			Element('table_message_others_options_'+ID).style.display = '';
+			Element('tr_other_options_'+ID).style.display = '';
+			
+		}
+		else{
+			this.innerHTML = get_lang('Options');
+			this.value = 'more_options';
+			Element("div_message_scroll_"+ID).style.height = (_height + _offset)+"px";
+			Element('table_message_others_options_'+ID).style.display = 'none';
+			Element('tr_other_options_'+ID).style.display = 'none';			
+		}
+	};
+	var option_mark = document.createElement('TD');
+	option_mark.align = "left";
+	option_mark.width = "50%";
+	var option_mark_as_unseen = '<span class="message_options" onclick="set_messages_flag(\'unseen\','+info_msg.msg_number+');write_msg(\''+get_lang('Message marked as ')+get_lang("Unseen")+'.\');">'+get_lang("Unseen")+'</span>, ';
+	var option_mark_as_important = '<span class="message_options" onclick="set_messages_flag(\'flagged\','+info_msg.msg_number+');write_msg(\''+get_lang('Message marked as ')+get_lang("Important")+'.\');">'+get_lang("Important")+'</span>, ';
+	var option_mark_as_normal = '<span class="message_options" onclick="set_messages_flag(\'unflagged\','+info_msg.msg_number+');write_msg(\''+get_lang('Message marked as ')+get_lang("Normal")+'.\');">'+get_lang("Normal")+'</span>';
+	option_mark.innerHTML = option_mark_as_unseen+option_mark_as_important+option_mark_as_normal;
+	option_hide_more.innerHTML = get_lang('Options');
+	options.appendChild(option_hide_more);
+	
+	var space0 = document.createElement("SPAN");
+	space0.innerHTML = '&nbsp;|&nbsp;';
+	var space1 = document.createElement("SPAN");
+	space1.innerHTML = '&nbsp;|&nbsp;';
+	var space2 = document.createElement("SPAN");
+	space2.innerHTML = '&nbsp;|&nbsp;';
+	var space3 = document.createElement("SPAN");
+	space3.innerHTML = '&nbsp;|&nbsp;';
+	var space4 = document.createElement("SPAN");
+	space4.innerHTML = '&nbsp;|&nbsp;';
+
+	var option_forward = document.createElement("SPAN");
+	option_forward.id = 'msg_opt_forward_'+ID;
+	option_forward.className = 'message_options';
+	option_forward.onclick = function(){new_message('forward', ID);};
+	option_forward.innerHTML = get_lang('Forward');
+	options.appendChild(space1);
+	options.appendChild(option_forward);
+	var option_reply = document.createElement("SPAN");
+	option_reply.id = 'msg_opt_reply_'+ID;
+	option_reply.className = 'message_options';
+	option_reply.onclick = function(){new_message('reply_with_history', ID);};
+	option_reply.innerHTML = get_lang('Reply');
+	options.appendChild(space2);
+	options.appendChild(option_reply);
+	/* TODO, template == default ? what hell you're doing*/
+	if (template == "default"){
+		var option_delete = document.createElement("SPAN");
+		option_delete.id = 'msg_opt_delete_'+ID;
+		option_delete.className = 'message_options';
+		option_delete.onclick = function(){proxy_mensagens.delete_msgs(info_msg.msg_folder, info_msg.msg_number, ID);};
+		option_delete.innerHTML = get_lang('Delete');
+		options.appendChild(space3);
+		options.appendChild(option_delete);
+	}
+	
+	tr.appendChild(td);
+	tr.appendChild(option_mark);
+	tr.appendChild(options);
+	tr.appendChild(next_previous_msg_td);
+	tbody_message_options.appendChild(tr);
+	
+	////////// OTHER OPTIONS ////////////////////
+	var tr_other_options = document.createElement("TR");
+	tr_other_options.id = 'tr_other_options_' + ID;
+	tr_other_options.style.display = 'none';
+	
+	var td_other_options = document.createElement("TD");
+	td_other_options.colSpan = '3';
+	//td_other_options.align = 'right';
+	//td_other_options.setAttribute("noWrap","true");
+	var div_other_options = document.createElement("DIV");
+
+	var option_mark_as						= '<span>'+get_lang("Mark as")+'</span>: ';
+	var option_mark_as_unseen				= '<span class="message_options" onclick="proxy_mensagens.proxy_set_messages_flag(\'unseen\','+info_msg.msg_number+');write_msg(\''+get_lang('Message marked as ')+get_lang("Unseen")+'.\');">'+get_lang("Unseen")+'</span>, ';
+	var option_mark_as_important			= '<span class="message_options" onclick="proxy_mensagens.proxy_set_messages_flag(\'flagged\','+info_msg.msg_number+');write_msg(\''+get_lang('Message marked as ')+get_lang("Important")+'.\');">'+get_lang("Important")+'</span>, ';
+	var option_mark_as_normal				= '<span class="message_options" onclick="proxy_mensagens.proxy_set_messages_flag(\'unflagged\','+info_msg.msg_number+');write_msg(\''+get_lang('Message marked as ')+get_lang("Normal")+'.\');">'+get_lang("Normal")+'</span> | ';
+	
+	var option_move							= '<span class="message_options" onclick=wfolders.makeWindow("'+ID+'","move_to");>'+get_lang("Move")+'</span> | ';
+	var option_reply_to_all					= '<span onmouseover="this.className=\'message_options_active\'" onmouseout="this.className=\'message_options\'" class="message_options" onclick=new_message("reply_to_all_with_history","'+ID+'");>'+get_lang("Reply to all")+'</span> | ';
+	var option_reply_without_history		= '<span onmouseover="this.className=\'message_options_active\'" onmouseout="this.className=\'message_options\'" class="message_options" onclick=new_message("reply_without_history","'+ID+'");>'+get_lang("Reply without history")+'</span> | ';
+	var option_reply_to_all_without_history	= '<span onmouseover="this.className=\'message_options_active\'" onmouseout="this.className=\'message_options\'" class="message_options" onclick=new_message("reply_to_all_without_history","'+ID+'");>'+get_lang("Reply to all without history")+'</span> </div>';
+	var option_source_msg =""; //= '<span class="message_options" onclick=source_msg("'+ID+'","'+url_encode(info_msg.msg_folder)+'");>'+get_lang("Message Font")+'</span>';		
+
+	div_other_options.innerHTML = option_reply_to_all + option_reply_without_history + option_reply_to_all_without_history + option_source_msg;
+	if (use_spam_filter) {
+		if(info_msg.msg_folder == 'INBOX'+cyrus_delimiter+'Spam')
+			div_other_options.innerHTML += ' | <span class="message_options" onclick="nospam('+info_msg.msg_number+',\'null\', \''+info_msg.msg_folder+'\')";>'+get_lang("Not Spam")+'</span>';	
+		else
+			div_other_options.innerHTML += ' | <span class="message_options" onclick="spam(\''+info_msg.msg_folder+'\', '+info_msg.msg_number+',\'null\')";>'+get_lang("Mark as Spam")+'</span>';	
+	}
+		
+	td_other_options.appendChild(div_other_options);
+	//td_other_options.innerHTML = option_print + option_reply_to_all + option_source_msg;
+	
+	tr_other_options.appendChild(td_other_options);
+	tbody_message_options.appendChild(tr_other_options);
+	////////// END OTHER OPTIONS ////////////////
+	table_message_options.appendChild(tbody_message_options);
+	td0.appendChild(table_message_options);
+	tr0.appendChild(td0);
+	tbody_message.appendChild(tr0);
+	}
+	// IF DRAFT
+	else
+	{
+		var options = document.createElement("TD");
+		options.width = "1%";
+		options.setAttribute("noWrap","true");
+		var option_edit	  = '<span class="message_options" onclick="new_message(\'edit\',\''+ID+'\');">'+get_lang('Edit')+'</span> | ';
+		var option_print = '<span class="message_options" onclick="print_msg(\''+info_msg.msg_folder+'\',\''+info_msg.msg_number+'\',\''+ID+'\');">'+get_lang('Print')+'</span> | ';
+		var option_delete = '<span class="message_options" onclick="proxy_mensagens.delete_msgs(\''+info_msg.msg_folder+'\',\''+info_msg.msg_number+'\',\''+ID+'\');">'+get_lang('Delete')+'</span> | ';		
+		var option_hide_more = document.createElement("SPAN");
+		option_hide_more.className = 'message_options';
+		options.align = 'right';
+		option_hide_more.value = 'more_options';
+		option_hide_more.id = 'option_hide_more_'+ID;
+		option_hide_more.innerHTML = get_lang('Options');
+		option_hide_more.onclick = function(){
+			var _height = Element("div_message_scroll_"+ID).style.height;
+			_height = parseInt(_height.replace("px",""));
+			var _offset = 35;
+			if (this.value == 'more_options'){
+				this.innerHTML = "<b><u>"+get_lang('Options')+"</u></b>";
+				this.value = 'hide_options';
+				Element("div_message_scroll_"+ID).style.height = (_height - _offset)+"px";
+				Element('table_message_others_options_'+ID).style.display = '';
+			}
+			else{
+				this.innerHTML = get_lang('Options');
+				this.value = 'more_options';
+				Element("div_message_scroll_"+ID).style.height = (_height + _offset)+"px";
+				Element('table_message_others_options_'+ID).style.display = 'none';
+			}
+		};
+		options.innerHTML = option_edit + option_print + option_delete;
+		options.appendChild(option_hide_more);
+		tr.appendChild(td);
+		tr.appendChild(options);
+		tr.appendChild(next_previous_msg_td);
+		tbody_message_options.appendChild(tr);
+		table_message_options.appendChild(tbody_message_options);
+		td0.appendChild(table_message_options);
+		tr0.appendChild(td0);
+		tbody_message.appendChild(tr0);
+	}
+	//////////////////////////////////////////////////////////////////////////////////////////////////////
+	// END options message.
+	//////////////////////////////////////////////////////////////////////////////////////////////////////
+
+	var table_message_others_options = document.createElement("TABLE");
+	table_message_others_options.id = 'table_message_others_options_' + ID;
+	table_message_others_options.width =  defaultWidth - 30;
+	table_message_others_options.style.display = 'none';
+	table_message_others_options.className = "table_message";
+	var tbody_message_others_options = document.createElement("TBODY");
+	var tr1 = document.createElement("TR");
+	tr1.className = "tr_message_header";
+	var td1 = document.createElement("TD");
+	td1.innerHTML = get_lang("From: ");
+	td1.appendChild(deny_email(info_msg.from.email));
+	td1.width = "7%";
+	
+	if (info_msg.sender){
+		var tr111 = document.createElement("TR");
+		tr111.className = "tr_message_header";
+		var td111 = document.createElement("TD");
+		td111.innerHTML = get_lang("Sent by")+": ";
+		td111.appendChild(deny_email(info_msg.sender.email));
+		td111.setAttribute("noWrap","true");
+		var sender = document.createElement("TD");
+		sender.id = "sender_"+ID;
+		var sender_values = document.createElement("INPUT");
+		sender_values.id = "sender_values_"+ID;
+		sender_values.type = "HIDDEN";
+		sender_values.value = info_msg.sender.full; //Veio do IMAP, sem images nem links.
+		sender.innerHTML += draw_plugin_cc(ID, info_msg.sender.full);
+		sender.className = "header_message_field";
+		tr111.appendChild(td111);
+		tr111.appendChild(sender);
+		tr111.appendChild(sender_values);
+		tbody_message_others_options.appendChild(tr111);
+	}
+	
+	var from = document.createElement("TD");
+	from.id = "from_"+ID;
+	from.innerHTML = info_msg.from.full;
+	if (info_msg.Draft != "X"){
+		from.innerHTML += draw_plugin_cc(ID, info_msg.from);
+		tbody_message_others_options.appendChild(tr1);
+	}
+	from.className = "header_message_field";
+	var from_values = document.createElement("INPUT");
+	from_values.id = "from_values_"+ID;
+	from_values.type = "HIDDEN";
+	from_values.value = info_msg.from.full; //Veio do IMAP, sem images nem links.
+
+	var local_message = document.createElement("INPUT");
+	local_message.id = "is_local_"+ID;
+	local_message.name = "is_local";
+	local_message.type = "HIDDEN";
+	local_message.value = (info_msg.local_message)?"1":"0";
+
+	tr1.appendChild(td1);
+	tr1.appendChild(from);
+	tr1.appendChild(from_values);
+	tr1.appendChild(local_message);
+
+
+
+	if (info_msg.reply_to){
+		var tr11 = document.createElement("TR");
+		tr11.className = "tr_message_header";
+		var td11 = document.createElement("TD");
+		td11.innerHTML = get_lang("Reply to")+": ";
+		td11.setAttribute("noWrap","true");
+		var reply_to = document.createElement("TD");
+		reply_to.id = "reply_to_"+ID;
+		
+		var reply_to_values = document.createElement("INPUT");
+		reply_to_values.id = "reply_to_values_"+ID;
+		reply_to_values.type = "HIDDEN";
+		reply_to_values.value = info_msg.reply_to; //Veio do IMAP, sem images nem links.
+		reply_to.innerHTML = draw_plugin_cc(ID, info_msg.reply_to);
+		reply_to.className = "header_message_field";
+		tr11.appendChild(td11);
+		tr11.appendChild(reply_to);
+		tr11.appendChild(reply_to_values);
+		tbody_message_others_options.appendChild(tr11);
+	}
+	//////////////////////////////////////////////////////////////////////////////////////////////////////
+	var tr2 = document.createElement("TR");
+	tr2.className = "tr_message_header";
+	var td2 = document.createElement("TD");
+	td2.innerHTML = get_lang("To: ");
+	var to = document.createElement("TD");
+	to.id = "to_"+ID;
+
+	var to_values = document.createElement("INPUT");
+	to_values.id = "to_values_"+ID;
+	to_values.type = "HIDDEN";
+	to_values.value = info_msg.toaddress2; //Veio do IMAP, sem images nem links.	
+
+	// Salva a pasta da mensagem
+	var input_current_folder = document.createElement('input');	
+	input_current_folder.id = "input_folder_"+ID;
+	input_current_folder.name = "input_folder";
+	input_current_folder.type = "hidden";
+	input_current_folder.value = info_msg.msg_folder;
+	td2.appendChild(input_current_folder);	
+	// fim
+	toaddress_array[ID] = info_msg.toaddress2.split(",");
+	if (toaddress_array[ID].length > 1){
+		to.innerHTML += draw_plugin_cc(ID, toaddress_array[ID][0]);
+		var div_toaddress = document.createElement("SPAN");
+		div_toaddress.id = "div_toaddress_"+ID;
+		div_toaddress.style.display="";
+		div_toaddress.innerHTML += " (<a STYLE='color: RED;' onclick=javascript:show_div_address_full('"+ID+"','to');>"+get_lang('more')+"</a>)";
+		to.appendChild(div_toaddress);		
+	}
+	else {
+		to.innerHTML += draw_plugin_cc(ID,toaddress_array[ID]);
+	}
+	to.className = "header_message_field";
+	tr2.appendChild(td2);
+	tr2.appendChild(to);
+	tr2.appendChild(to_values);
+	tbody_message_others_options.appendChild(tr2);
+
+	if (info_msg.cc){
+		var tr3 = document.createElement("TR");
+		tr3.className = "tr_message_header";
+		var td3 = document.createElement("TD");
+		td3.innerHTML = "CC: ";
+		var cc = document.createElement("TD");
+		cc.id = "cc_"+ID;
+
+		var cc_values = document.createElement("INPUT");
+		cc_values.id = "cc_values_"+ID;
+		cc_values.type = "HIDDEN";
+		cc_values.value = info_msg.cc;
+		
+		ccaddress_array[ID] = info_msg.cc.split(",");		
+		if (ccaddress_array[ID].length > 1){
+			var div_ccaddress = document.createElement("SPAN");
+			div_ccaddress.id = "div_ccaddress_"+ID;
+			var div_ccaddress_full = document.createElement("SPAN");
+			div_ccaddress_full.id = "div_ccaddress_full_"+ID;		
+			div_ccaddress.style.display="";
+			cc.innerHTML = draw_plugin_cc(ID, ccaddress_array[ID][0]);
+			div_ccaddress.innerHTML += " (<a STYLE='color: RED;' onclick=javascript:show_div_address_full('"+ID+"','cc');>"+get_lang('more')+"</a>)";
+			cc.appendChild(div_ccaddress);
+		}
+		else{
+			cc.innerHTML = draw_plugin_cc(ID, info_msg.cc);
+		}
+		cc.className = "header_message_field";
+		tr3.appendChild(td3);
+		tr3.appendChild(cc);
+		tr3.appendChild(cc_values);
+		tbody_message_others_options.appendChild(tr3);
+	}
+
+	/*
+	 * @AUTHOR Rodrigo Souza dos Santos
+	 * @MODIFY-DATE 2008/09/11
+	 * @BRIEF Adding routine to create bcc field if there is one.
+	 */
+	if (info_msg.bcc)
+	{
+		var tr3 = document.createElement("tr");
+		tr3.className = "tr_message_header";
+		var td3 = document.createElement("td");
+		td3.innerHTML = get_lang("BCC") + " : ";
+		var cco = document.createElement("td");
+		cco.id = "cco_"+ID;
+
+		var cco_values = document.createElement("input");
+		cco_values.id = "cco_values_"+ID;
+		cco_values.type = "hidden";
+		cco_values.value = info_msg.cco;
+
+		ccoaddress_array[ID] = info_msg.bcc.split(",");		
+		if (ccoaddress_array[ID].length > 1){
+			var div_ccoaddress = document.createElement("SPAN");
+			div_ccoaddress.id = "div_ccoaddress_"+ID;
+			var div_ccoaddress_full = document.createElement("SPAN");
+			div_ccoaddress_full.id = "div_ccoaddress_full_"+ID;		
+			div_ccoaddress.style.display="";
+
+			/*
+			 * The function below is ugly, doesn't possible use this.
+			 * The problem is that the code's function was written
+			 * on a hardcode concept.
+			 */
+			//cco.innerHTML = draw_plugin_cc(ID, ccoaddress_array[ID][0]);
+			cco.innerHTML = ccoaddress_array[ID][0];
+			div_ccoaddress.innerHTML += " (<a STYLE='color: RED;' onclick=javascript:show_div_address_full('"+ID+"','cco');>"+get_lang('more')+"</a>)";
+			cco.appendChild(div_ccoaddress);
+		}
+		else{
+			/*
+			 * The function below is ugly, it is not possible to use this.
+			 * The problem is that the code's function was written
+			 * on a hardcode concept.
+			 */
+			//cco.innerHTML = draw_plugin_cc(ID, info_msg.cco);
+			cco.innerHTML = info_msg.bcc;
+		}
+		cco.className = "header_message_field";
+		tr3.appendChild(td3);
+		tr3.appendChild(cco);
+		tr3.appendChild(cco_values);
+		tbody_message_others_options.appendChild(tr3);
+	}
+
+	var tr4 = document.createElement("TR");
+	tr4.className = "tr_message_header";
+	var td4 = document.createElement("TD");
+	td4.innerHTML = get_lang("Date: ");
+	var date = document.createElement("TD");
+	date.id = "date_"+ID;
+	date.innerHTML = info_msg.fulldate;
+	var date_day = document.createElement("INPUT");
+	date_day.id = "date_day_"+ID;
+	date_day.type = "HIDDEN";
+	date_day.value = info_msg.msg_day;
+	var date_hour = document.createElement("INPUT");
+	date_hour.id = "date_hour_"+ID;
+	date_hour.type = "HIDDEN";
+	date_hour.value = info_msg.msg_hour
+	date.className = "header_message_field";
+	tr4.appendChild(td4);
+	tr4.appendChild(date);
+	tr4.appendChild(date_day);
+	tr4.appendChild(date_hour);
+	tbody_message_others_options.appendChild(tr4);
+	
+	var tr5 = document.createElement("TR");
+	tr5.className = "tr_message_header";
+	var td5 = document.createElement("TD");
+	td5.innerHTML = get_lang("Subject");
+	var subject = document.createElement("TD");
+	subject.id = "subject_"+ID;
+	subject.innerHTML = info_msg.subject;
+	subject.className = "header_message_field";
+	tr5.appendChild(td5);
+	tr5.appendChild(subject);
+	tbody_message_others_options.appendChild(tr5);
+	if (info_msg.attachments.length > 0){
+		var tr6 = document.createElement("TR");
+		tr6.className = "tr_message_header";
+		var td6 = document.createElement("TD");
+		td6.innerHTML = get_lang("Attachments: ");
+
+		var attachments = document.createElement("TD");
+		td6.vAlign = "top";
+		attachments.align='left';
+		var zipped_attachments = '';
+		if(info_msg.attachments.length >= 1) {
+			var zipped_attachments  = document.createElement("TABLE");
+			zipped_attachments.style.marginBottom = "4px";
+			zipped_attachments.cellPadding="0";
+			zipped_attachments.cellSpacing="0";
+			var td = document.createElement("TD");
+			if(info_msg.attachments.length > 1) {
+				var link_attachment     = document.createElement("A");
+				link_attachment.setAttribute("href", "javascript:download_all_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"')");
+				link_attachment.innerHTML = " "+info_msg.attachments.length+' '+get_lang('files')+' :: '+get_lang('Download all atachments');
+				link_attachment.innerHTML += '<BR>';
+				td.appendChild(link_attachment);
+			}
+			var tr = document.createElement("TR");
+			if(preferences.remove_attachments_function)
+			{
+				var del_attachments = document.createElement("A");
+				del_attachments.setAttribute("href", "javascript:remove_all_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"')");
+				del_attachments.innerHTML = get_lang('remove all attachments');
+				del_attachments.appendChild(document.createElement('BR'));
+				td.appendChild(del_attachments);
+				tr.appendChild(td);
+			}
+			tr.appendChild(td);
+			zipped_attachments.appendChild(tr);
+			attachments.appendChild(zipped_attachments);
+		}
+
+		attachments.id = "attachments_" + ID;
+		for (var i=0; i<info_msg.attachments.length; i++){
+			var link_attachment = document.createElement("A");
+			link_attachment.setAttribute("href", proxy_mensagens.link_anexo(info_msg,i));
+//			link_attachment.setAttribute("href", "javascript:download_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"',"+i+",'"+info_msg.attachments[i].pid+"','"+info_msg.attachments[i].encoding+"')");
+			link_attachment.innerHTML = url_decode(info_msg.attachments[i].name);
+			msg_size = info_msg.attachments[i].fsize;
+			if (msg_size < 1048576 && msg_size > 1024)
+				link_attachment.innerHTML += ' (' + this.round(msg_size / 1024, 0) + ' Kb)';
+			else if(msg_size > 1024)
+				link_attachment.innerHTML += ' (' + this.round(msg_size / (1024*1024), 1) + ' Mb)';
+			else
+				link_attachment.innerHTML += ' (' + msg_size + ' bytes)';
+			if((url_decode(info_msg.attachments[i].name).indexOf(".ics")!=-1) || (url_decode(info_msg.attachments[i].name).indexOf(".vcard")!=-1)){
+				//Link para importar calendário
+				var link_import_attachment = new Image();
+				link_import_attachment.src = "templates/"+template+"/images/new.png";
+				link_import_attachment.setAttribute("onclick","javascript:import_calendar('"+info_msg.msg_folder+"&msg_number="+info_msg.msg_number+"&msg_part="+info_msg.attachments[i].pid+"&idx_file="+i+"&encoding="+info_msg.attachments[i].encoding+"');");
+				link_import_attachment.title = get_lang("Import to calendar");
+				link_import_attachment.align = "top";				
+				link_import_attachment.style.cursor = "pointer";
+				var space = document.createElement("span");
+				space.innerHTML = "&nbsp;";
+				attachments.appendChild(link_attachment);
+				attachments.appendChild(space);
+				attachments.appendChild(link_import_attachment);
+			}
+			else {
+				link_attachment.innerHTML += '<BR>';
+				attachments.appendChild(link_attachment);
+			}
+		}
+		tr6.appendChild(td6);
+		tr6.appendChild(attachments);
+		tbody_message_others_options.appendChild(tr6);
+	}
+
+
+	// BEGIN MAKE THE SCROLL HEIGHT
+	var bar = document.getElementById("toolbar");
+	var offset = 0;
+	if(bar.style.visibility != 'hidden')
+		offset = bar.offsetHeight ? bar.offsetHeight :  bar.clientHeight;
+	var div = document.createElement("DIV");
+	div.id = "div_message_scroll_"+ID;
+	div.style.background = 'WHITE';
+	div.style.height = document.body.clientHeight - offset - 125;
+	content.style.height = document.body.clientHeight - offset - 90;
+	div.style.overflow = "auto";
+	div.style.width = defaultWidth - (is_ie ? 5 : 0);
+	// END MAKE THE SCROLL HEIGHT
+	table_message_others_options.appendChild(tbody_message_others_options);
+	var tr = document.createElement("TR");
+	var td = document.createElement("TD");
+	td.colSpan = '2';
+	div.appendChild(table_message_others_options);
+	var imgTag = info_msg.body.match(/(<img[^>]*src[^=]*=['"][^'"]*["'][^>]*>)|(<td[^>]*background[^=]*=['"][^'"]*["'][^>]*>)/gi);
+	var newBody = info_msg.body;
+	if(!info_msg.showImg && imgTag)
+	{
+		var domains = '';
+		var blocked = false;
+		var forbidden = true;
+		if (preferences.notification_domains != undefined && preferences.notification_domains != "")
+			domains = preferences.notification_domains.split(',');
+		for(var j = 0; j < imgTag.length; j++)
+		{
+			for (var i = 0; i < domains.length; i++)
+			{
+				imgSource = imgTag[j].match(/=['"](http:\/\/)+[^'"\/]*/);
+				if (imgSource && imgSource.toString().substr(5).match(domains[i]))
+					forbidden = false;
+			}
+			if (forbidden)
+			{
+				newBody = newBody.replace(imgTag[j],"<img src='templates/"+template+"/images/forbidden.png'>");
+				blocked=true;
+			}
+		}
+		if (blocked)
+		{
+			var showImgLink = document.createElement('DIV');
+			showImgLink.id="show_img_link";
+			showImgLink.onclick = function () { cExecute('$this.imap_functions.get_info_msg&msg_number='+info_msg.msg_number+'&msg_folder='+info_msg.msg_folder,show_msg_img); };
+			showImgLink.className="show_img_link";
+			showImgLink.innerHTML = get_lang("Show images from")+": "+info_msg.from.email;
+			td.appendChild(showImgLink);
+		}
+	}
+	td.appendChild(div);
+	tr.appendChild(td)
+	tbody_message.appendChild(tr);
+
+
+	//////////////////////////////////////////////////////////////////////////////////////////////////////	
+	//Make the body message.
+	///////////////////////////////////////////////////////////////////////////////////////////////////////
+	var tr = document.createElement("TR");
+	tr.className = "tr_message_body";
+	var td = document.createElement("TD");
+	//td.setAttribute("colSpan","2");
+	newBody = newBody.replace("<body","<span");
+	newBody = newBody.replace("<BODY","<span");
+	div.innerHTML+= "<span id='body_"+ID+"'>"+newBody+"</span><br><br>";
+	//////////////////////////////////////////////////////////////////////////////////////////////////////	
+	//Make the thumbs of the message.
+	//////////////////////////////////////////////////////////////////////////////////////////////////////
+	if ((info_msg.thumbs)&&(info_msg.thumbs.length > 0)){
+		var table_message_thumbs = document.createElement("TABLE");
+		table_message_thumbs.width = "80%";
+		table_message_thumbs.style.borderTop = "2px solid rgb(170, 170, 170)";
+		var tbody_message_thumbs = document.createElement("TBODY");
+		var tr = document.createElement("TR");
+		tr.className = "tr_message_body";
+		var td = document.createElement("TD");
+		td.setAttribute("colSpan","2");
+		td.id = "body_thumbs_"+ID;
+		td.innerHTML += "&nbsp;<font color='DARKBLUE' size='2'><b>"+info_msg.attachments.length+" "+get_lang("attachment")+(info_msg.attachments.length > 1 ? "s" : "")+" "+get_lang("in this message")+"</font></b>";
+		var _link_attachments = '';
+		if(info_msg.thumbs.length > 1){
+			_link_attachments 	= document.createElement("A");
+			_link_attachments.className = "message_options";
+			_link_attachments.setAttribute("href", "javascript:download_all_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"')");
+			_link_attachments.innerHTML = get_lang('Download all atachments');
+		}
+		
+		if(_link_attachments){
+			td.innerHTML +=	" :: ";
+			td.appendChild(_link_attachments);
+		}
+		
+		td.innerHTML +=	"<BR><img src='templates/"+template+"/images/menu/ktip.png'>"+get_lang("<b>Tip:</b> For faster save, click over the image with <u>right button</u>.");
+		td.innerHTML += "<BR>";
+
+		for (var i=0; i<info_msg.thumbs.length; i++){
+			if ((i % 4) == 0)
+				td.innerHTML += "<BR>";
+			td.innerHTML += info_msg.thumbs[i];
+			td.innerHTML += "&nbsp;&nbsp;";
+		}
+		tr.appendChild(td);
+		tbody_message_thumbs.appendChild(tr);
+		table_message_thumbs.appendChild(tbody_message_thumbs);
+		div.appendChild(table_message_thumbs);
+	}
+	//////////////////////////////////////////////////////////////////////////////////////////////////////
+	table_message.appendChild(tbody_message);
+	content.appendChild(table_message);
+	var msg_number = document.createElement('INPUT');
+	msg_number.id = "msg_number_" + ID;
+	msg_number.type = "hidden";
+	msg_number.value = info_msg.msg_number;
+	content.appendChild(msg_number);
+	//////////////////////////////////////////////////////////////////////////////////////////////////////
+}
+
+function draw_new_message(border_ID){
+	var ID = create_border("",border_ID);
+	if (ID == false)
+		return false;
+	hold_session = true;
+/////////////////////////////////////////////////////////////////////////////////////////////////////////
+	var form = document.createElement("FORM");
+	form.name = "form_message_"+ID;
+	form.method = "POST";
+	form.onsubmit = function(){return false;}
+	if(!is_ie)
+		form.enctype="multipart/form-data";
+	else
+		form.encoding="multipart/form-data";
+/////////////////////////////////////////////////////////////////////////////////////////////////////////
+	//ConstructMenuNewMessage(ID);
+////////////////////////////////////////////////////////////////////////////////////////////////////////	
+	var content = Element('content_id_' + ID);
+	var table_message = document.createElement("TABLE");
+	table_message.width = "100%";
+	var tbody_message = document.createElement("TBODY");
+	var tr0 = document.createElement("TR");
+	tr0.className = "tr_message_header";
+	var td0 = document.createElement("TD");
+	td0.colSpan = '3';
+	
+	var table_menu_new_message = document.createElement("TABLE");
+	table_menu_new_message.width = "100%";
+	table_menu_new_message.border = '0';
+	table_menu_new_message.className = 'table_message';
+	var tbody_menu_new_message = document.createElement("TBODY");
+	var tr_menu_new_message = document.createElement("TR");
+	var td_menu_new_message = document.createElement("TD");
+	td_menu_new_message.setAttribute("noWrap","true");
+	
+	if ((preferences.save_in_folder == '-1') || (preferences.save_in_folder == '')){
+		//var option_send = '<span class="message_options" onclick=send_message("'+ID+'","null","null");>'+get_lang("Send")+'</span> | ';
+		var option_send   = '<input type="button" id="send_button_'+ID+'" class="em_button_like_span" tabindex="1" value="'+get_lang("Send")+'" onclick=send_message("'+ID+'","null","null");>' + ' | ';
+		var option_send_and_file= '<span class="message_options" onclick=wfolders.makeWindow("'+ID+'","send_and_file");>'+get_lang("Send and file")+'</span> | ';
+	}
+	else{
+		//var option_send = '<span class="message_options" onclick="send_message(\''+ID+'\',\''+preferences.save_in_folder+'\',\'null\');">'+get_lang("Send")+'</span> | ';
+		var option_send   = '<input type="button" id="send_button_'+ID+'" class="em_button_like_span" tabindex="1" value="'+get_lang("Send")+'" onclick="send_message(\''+ID+'\',\''+preferences.save_in_folder+'\',\'null\');">' + ' | ';
+		var option_send_and_file='';
+		wfolders.alert = true;
+	}
+//	var option_save_as		= '<span class="message_options" onclick=wfolders.makeWindow("'+ID+'","save");>'+get_lang("Save as")+'</span> | ';
+	var option_save			= '<span id="save_message_options_'+ID+'" class="message_options" onclick="openTab.toPreserve['+ID+'] = true; save_msg('+ID+');">'+get_lang("Save")+'</span> | ';
+	var option_search		= '<span class="message_options" onclick=openListUsers("'+ID+'");>'+get_lang("Search")+'</span>';
+	td_menu_new_message.innerHTML = option_send + option_send_and_file + option_save + option_search;
+	
+	tr_menu_new_message.appendChild(td_menu_new_message);
+	tbody_menu_new_message.appendChild(tr_menu_new_message);
+	table_menu_new_message.appendChild(tbody_menu_new_message);
+	
+	content.appendChild(table_menu_new_message);
+	tr0.appendChild(td0);
+	tbody_message.appendChild(tr0);
+////////////////////////////////////////////////////////////////////////////////////////////////////////
+	var tr1_1 = document.createElement("TR");
+	tr1_1.style.display = 'none';
+	var td1_1 = document.createElement("TD");
+	td1_1.innerHTML = get_lang("From")+":";
+	td1_1.setAttribute("noWrap","true");
+	td1_1.style.width = "1%";
+	
+	var td_from = document.createElement("TD");
+	td_from.setAttribute("noWrap","true");
+	td_from.style.width = "100%";
+			
+	var sel_from = document.createElement('SELECT');	
+	sel_from.id = "from_"+ID;
+	sel_from.name = "input_from";
+	sel_from.style.width = "70%";
+	sel_from.setAttribute("wrap","soft");
+	td_from.appendChild(sel_from);	
+	tr1_1.appendChild(td1_1);
+	tr1_1.appendChild(td_from);
+	tbody_message.appendChild(tr1_1);	
+////////////////////////////////////////////////////////////////////////////////////////////////////////
+	var tr1 = document.createElement("TR");
+	var td1 = document.createElement("TD");
+	td1.innerHTML = get_lang("To")+":";
+	td1.setAttribute("noWrap","true");
+	td1.style.width = "1%";
+	
+	var td_to = document.createElement("TD");
+	td_to.setAttribute("noWrap","true");
+	td_to.style.width = "100%";
+	
+	var input_to = document.createElement('TEXTAREA');
+	input_to.id = "to_"+ID;
+	input_to.name = "input_to";
+	input_to.setAttribute("tabIndex","1");	
+	input_to.style.width = "100%";
+	input_to.setAttribute("wrap","soft");
+	input_to.onfocus = function(){clearTimeout(parseInt(setTimeOutLayer)); search_contacts('onfocus', this.id);};
+	input_to.onblur = function(){setTimeOutLayer=setTimeout('search_contacts("lostfocus","'+this.id+'")',100);};
+	if (!is_ie)
+	{
+		input_to.rows = 2;
+		input_to.onkeypress = function (e)
+        {
+            if ((e.keyCode) == 120) //F9
+            {
+                emQuickSearch(input_to.value, 'to', ID);
+            }
+            else
+            {
+                if (((e.keyCode == 13) || ((e.keyCode == 38)||(e.keyCode == 40))) && (document.getElementById('tipDiv').style.visibility!='hidden'))
+                {
+                    e.preventDefault();
+                    search_contacts(e.keyCode,this.id);
+                }
+            }
+        }
+        input_to.onkeyup = function (e)
+        {
+            if ((e.keyCode != 13) && (e.keyCode != 38) && (e.keyCode != 40))
+            {
+                search_contacts(e.keyCode,this.id);
+            }
+        }
+	}
+	else
+	{
+		input_to.rows = 3;
+		input_to.onkeyup = function (e)
+        {
+            if ((window.event.keyCode) == 120) //F9
+            {
+                emQuickSearch(input_to.value, 'to', ID);
+            }
+            else 
+            { 
+                search_contacts(window.event.keyCode,this.id);
+            }   
+        }
+	}
+	td_to.appendChild(input_to);
+	
+	var forwarded_local_message = document.createElement("INPUT"); //Hidden para indicar se é um forward de uma mensagem local
+	forwarded_local_message.id = "is_local_forward"+ID;
+	forwarded_local_message.name = "is_local_forward";
+	forwarded_local_message.type = "HIDDEN";
+	forwarded_local_message.value = "0";
+	td_to.appendChild(forwarded_local_message);
+	
+	var img_search = document.createElement("IMG");
+	img_search.src = "./templates/"+template+"/images/search.gif";
+	img_search.title = get_lang('Search') + " | " + get_lang('Use F9 Key as shortcut.');
+	img_search.onclick = function () {emQuickSearch(document.getElementById('to_'+ID).value, 'to', ID);};
+	var span_search = document.createElement("SPAN");
+	span_search.innerHTML = get_lang('Search');
+	
+	var td1_img_search = document.createElement("TD");
+	td1_img_search.setAttribute("noWrap","true");
+	var td1_span_search = document.createElement("TD");
+	td1_span_search.setAttribute("noWrap","true");	
+	
+	td1_img_search.appendChild(img_search);
+	td1_span_search.appendChild(span_search);
+	
+	tr1.appendChild(td1);
+	tr1.appendChild(td_to);
+	tr1.appendChild(td1_img_search);
+
+	tbody_message.appendChild(tr1);
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+	var tr2 = document.createElement("TR");
+	tr2.id = "tr_cc_"+ID;
+	tr2.style.display = 'none';
+	var td2 = document.createElement("TD");
+	td2.innerHTML = "Cc:";
+	td2.setAttribute("noWrap","true");	
+	td2.style.width = "1%";
+	
+	var td_cc = document.createElement("TD");
+	td_cc.setAttribute("noWrap","true");
+	td_cc.style.width = "100%";
+	
+	var input_cc = document.createElement('TEXTAREA');
+	input_cc.id = "cc_"+ID;
+	input_cc.name = "input_cc";
+	input_cc.setAttribute("tabIndex","1");
+	input_cc.style.width = "100%";
+	input_cc.onfocus = function(){clearTimeout(parseInt(setTimeOutLayer)); search_contacts('onfocus',this.id);};
+	input_cc.onblur = function(){setTimeOutLayer=setTimeout('search_contacts("lostfocus","'+this.id+'")',100);};
+    if (!is_ie)
+    {
+        input_cc.rows = 2;
+        input_cc.onkeypress = function (e)
+        {
+            if ((e.keyCode) == 120) //F9
+            {
+                emQuickSearch(input_cc.value, 'cc', ID);
+            }
+            else
+            {
+                if (((e.keyCode == 13) || ((e.keyCode == 38)||(e.keyCode == 40))) && (document.getElementById('tipDiv').style.visibility!='hidden'))
+                {
+                    e.preventDefault();
+                    search_contacts(e.keyCode,this.id);
+                }
+            }
+        }
+        input_cc.onkeyup = function (e)
+        {
+            if ((e.keyCode != 13) && (e.keyCode != 38) && (e.keyCode != 40))
+            {
+                search_contacts(e.keyCode,this.id);
+            }
+        }
+    }
+    else if (is_ie)
+    {
+        input_cc.rows = 3;
+        input_cc.onkeyup = function (e)
+        {
+            if ((window.event.keyCode) == 120) //F9
+            {
+                emQuickSearch(input_cc.value, 'cc', ID);
+            }
+            else
+            {
+                search_contacts(window.event.keyCode,this.id);
+            }
+        }
+    }
+	
+	td_cc.appendChild(input_cc);
+	var img_search = document.createElement("IMG");
+	img_search.src = "./templates/"+template+"/images/search.gif";
+	img_search.onclick = function () {emQuickSearch(document.getElementById('cc_'+ID).value, 'cc', ID)}
+	img_search.title = get_lang('Search') + " | " + get_lang('Use F9 Key as shortcut.');
+	var span_search = document.createElement("SPAN");
+	span_search.innerHTML = get_lang('Search');
+	
+	var td2_img_search = document.createElement("TD");
+	td2_img_search.setAttribute("noWrap","true");
+	var td2_span_search = document.createElement("TD");
+	td2_span_search.setAttribute("noWrap","true");	
+	
+	td2_img_search.appendChild(img_search);
+	td2_span_search.appendChild(span_search);
+		
+	tr2.appendChild(td2);
+	tr2.appendChild(td_cc);
+	tr2.appendChild(td2_img_search);
+	tbody_message.appendChild(tr2);
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+	var tr3 = document.createElement("TR");
+	tr3.id = "tr_cco_"+ID;
+	tr3.style.display = 'none';
+	var td3 = document.createElement("TD");
+	td3.setAttribute("noWrap","true");
+	td3.innerHTML = get_lang("CCo")+":";
+	td3.style.width = "1%";
+	
+	var td_cco = document.createElement("TD");
+	td_cco.setAttribute("noWrap","true");
+	td_cco.style.width = "100%";
+	
+	var input_cco = document.createElement('TEXTAREA');
+	input_cco.id = "cco_"+ID;
+	input_cco.name = "input_cco";
+	input_cco.setAttribute("tabIndex","1");
+	input_cco.style.width = "100%";
+	input_cco.onfocus = function(){clearTimeout(parseInt(setTimeOutLayer)); search_contacts('onfocus',this.id);};
+	input_cco.onblur = function(){setTimeOutLayer=setTimeout('search_contacts("lostfocus","'+this.id+'")',100);};
+	
+	if (!is_ie)
+    {
+        input_cco.rows = 2;
+        input_cco.onkeypress = function (e)
+        {
+            if ((e.keyCode) == 120) //F9
+            {
+                emQuickSearch(input_cco.value, 'cco', ID);
+            }
+            else 
+            { 
+                if (((e.keyCode == 13) || ((e.keyCode == 38)||(e.keyCode == 40))) && (document.getElementById('tipDiv').style.visibility!='hidden'))
+                {
+                    e.preventDefault();
+                    search_contacts(e.keyCode,this.id);
+                }
+            }
+        }
+        input_cco.onkeyup = function (e)
+        {
+            if ((e.keyCode != 13) && (e.keyCode != 38) && (e.keyCode != 40))
+            {
+                search_contacts(e.keyCode,this.id);
+            }
+        }
+    }
+    else if (is_ie)
+    {
+        input_cco.rows = 3;
+        input_cco.onkeyup = function (e)
+        {
+            if ((window.event.keyCode) == 120) //F9
+            {
+                emQuickSearch(input_cco.value, 'cco', ID);
+            }
+            else 
+            { 
+                search_contacts(window.event.keyCode,this.id);
+            }   
+        }
+    }
+	
+	td_cco.appendChild(input_cco);
+	var img_search = document.createElement("IMG");
+	img_search.src = "./templates/"+template+"/images/search.gif";
+	img_search.title = get_lang('Search') + " | " + get_lang('Use F9 Key as shortcut.');	
+	img_search.onclick = function () {emQuickSearch(document.getElementById('cco_'+ID).value, 'cco', ID);};
+	var span_search = document.createElement("SPAN");
+	span_search.innerHTML = get_lang('Search');
+
+	var td3_img_search = document.createElement("TD");
+	td3_img_search.setAttribute("noWrap","true");
+	var td3_span_search = document.createElement("TD");
+	td3_span_search.setAttribute("noWrap","true");	
+	
+	td3_img_search.appendChild(img_search);
+	td3_span_search.appendChild(span_search);
+		
+	tr3.appendChild(td3);
+	tr3.appendChild(td_cco);
+	tr3.appendChild(td3_img_search);	
+	tbody_message.appendChild(tr3);
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+	var tr_link = document.createElement("TR");
+	tr_link.id = "tr_link_"+ID;		
+	var td1_link = document.createElement("TD");
+	var td2_link = document.createElement("TD");
+	td1_link.innerHTML = "&nbsp;";
+	var a_cc_link = document.createElement('A');
+	a_cc_link.innerHTML = get_lang('Add CC');
+	a_cc_link.id = "a_cc_link_"+ID;
+	a_cc_link.setAttribute("href","javascript:void(0)");
+	a_cc_link.setAttribute("tabIndex","-1");
+	a_cc_link.onclick = function () {this.style.display='none';document.getElementById('tr_cc_'+ID).style.display='';document.getElementById('space_link_'+ID).style.display='none';input_cc.focus(); return false;}
+	td2_link.appendChild(a_cc_link);	
+	var space = document.createElement("span");
+	space.id ="space_link_"+ID;
+	space.innerHTML="&nbsp;|&nbsp;";
+	td2_link.appendChild(space);
+	var a_cco_link = document.createElement('A');
+	a_cco_link.innerHTML = get_lang('Add BCC');
+	a_cco_link.id = "a_cco_link_"+ID;
+	a_cco_link.setAttribute("href","javascript:void(0)");
+	a_cco_link.setAttribute("tabIndex","-1");
+	a_cco_link.onclick = function () {this.style.display='none';document.getElementById('tr_cco_'+ID).style.display='';document.getElementById('space_link_'+ID).style.display='none';input_cco.focus(); return false;}
+	td2_link.appendChild(a_cco_link);	
+	tr_link.appendChild(td1_link);
+	tr_link.appendChild(td2_link);
+	tbody_message.appendChild(tr_link);
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+	var tr4 = document.createElement("TR");
+	var td4 = document.createElement("TD");
+	//td4.setAttribute("noWrap","true");	
+	td4.innerHTML = get_lang("Subject")+":";
+	var td_subject = document.createElement("TD");
+	var input_subject = document.createElement('input');
+	input_subject.id = "subject_"+ID;
+	input_subject.name = "input_subject";
+	input_subject.setAttribute("tabIndex","1");
+	input_subject.style.width = "90%";
+	input_subject.setAttribute("autocomplete","off");
+	td_subject.appendChild(input_subject);
+	tr4.appendChild(td4);
+	tr4.appendChild(td_subject);
+	tbody_message.appendChild(tr4);
+//////////////////////////////////////////////////////////////////////////////////////////////////////	
+	var tr5 = document.createElement("TR");
+	var td5 = document.createElement("TD");
+	td5.innerHTML = "&nbsp;";
+	var td_return_receipt = document.createElement("TD");
+	td_return_receipt.setAttribute("noWrap","true");
+	td_return_receipt.innerHTML = get_lang("Return receipt")+":";
+	var input_return_receipt = document.createElement('input');
+	input_return_receipt.type = "checkbox";
+	input_return_receipt.className = "checkbox";
+	input_return_receipt.id = "return_receipt_"+ID;
+	input_return_receipt.name = "input_return_receipt";
+	input_return_receipt.setAttribute("tabIndex","-1");
+	td_return_receipt.appendChild(input_return_receipt);	
+	tr5.appendChild(td5);
+	tr5.appendChild(td_return_receipt);
+	tbody_message.appendChild(tr5);
+	if (preferences.use_important_flag)
+	{
+		var trn = document.createElement("TR");
+		var tdn = document.createElement("TD");
+		tdn.innerHTML = "&nbsp;";
+		var td_important_msg = document.createElement("TD");
+		td_important_msg.setAttribute("noWrap","true");
+		td_important_msg.innerHTML = get_lang("Important message")+":";
+		var input_important_message = document.createElement('input');
+		input_important_message.type = "checkbox";
+		input_important_message.className = "checkbox";
+		input_important_message.id = "important_message_"+ID;
+		input_important_message.name = "input_important_message";
+		input_important_message.setAttribute("tabIndex","-1");
+		td_important_msg.appendChild(input_important_message);	
+		trn.appendChild(tdn);
+		trn.appendChild(td_important_msg);
+		tbody_message.appendChild(trn);
+	}
+
+	var add_files = document.createElement("A");
+	add_files.setAttribute("href", "javascript:void(0)");
+	add_files.onclick = function () { addFile(ID); return false;};
+	add_files.innerHTML =  get_lang("Attachments: add+");
+	add_files.setAttribute("tabIndex","-1");
+	var divfiles = document.createElement("DIV");
+	divfiles.id = "divFiles_"+ID;
+	var tr5 = document.createElement("TR");
+	var td5_link = document.createElement("TD");
+	var td5_input = document.createElement("TD");	
+	td5_input.innerHTML = "&nbsp;"
+	td5_link.setAttribute("valign","top");
+	td5_link.setAttribute("colSpan","2");
+	td5_link.appendChild(add_files);
+	tr5.appendChild(td5_input);
+	tr5.appendChild(td5_link);
+	tbody_message.appendChild(tr5);
+	var tr6 = document.createElement("TR");
+	var td6_link  = document.createElement("TD");
+	var td6_input = document.createElement("TD");
+	tr6.appendChild(td6_link);
+	td6_input.appendChild(divfiles);
+	tr6.appendChild(td6_input);	
+	tbody_message.appendChild(tr6);
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+	var tr5 = document.createElement("TR");
+	var td5 = document.createElement("TD");	
+	td5.innerHTML = "&nbsp;";
+	var td_body = document.createElement("TD");
+	td_body.setAttribute("colSpan","2");
+	var div_body_position = document.createElement("DIV");
+	div_body_position.id = "body_position_" + ID;
+	td_body.appendChild(div_body_position);
+	tr5.appendChild(td5);
+	tr5.appendChild(td_body);
+	tbody_message.appendChild(tr5);
+// BEGIN MAKE THE SCROLL HEIGHT
+	var defaultWidth = document.body.clientWidth - (is_ie ? 200 : 195);
+	var _bar = document.getElementById("toolbar");
+	var _offset = 0;
+	if(_bar.style.visibility != 'hidden') 
+		_offset = _bar.offsetHeight ? _bar.offsetHeight :  _bar.clientHeight;		
+	var _div = document.createElement("DIV");
+	_div.id = "div_message_scroll_"+ID;
+	_div.style.height = document.body.clientHeight - _offset - 105;
+	content.style.height = document.body.clientHeight - _offset - 80;
+	_div.style.overflow = "auto";
+	_div.style.width = defaultWidth;
+	// END MAKE THE SCROLL HEIGHT
+
+	// Hide the contac tips and re-position the pallete color.
+	_div.onscroll = function() {
+		var intElemScrollTop = Element("div_message_scroll_"+ID).scrollTop;
+		if (!is_ie)
+			ColorPalette.repos(intElemScrollTop);
+		Tooltip.scrollChanged();
+	};
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+	_div.appendChild(form);
+	content.appendChild(_div);
+	table_message.appendChild(tbody_message);
+	form.appendChild(table_message);
+	connector.loadScript("rich_text_editor");
+	RichTextEditor.loadEditor(ID);
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+	draw_from_field(sel_from,tr1_1);
+	return ID;
+}
+
+//	Verify if any user is sharing his name/email address
+//	for use in the new messages's "From " field.
+function draw_from_field(sel_from,tr1_1){
+
+	var el_shared_users = Element("el_shared_users");
+	// The element was loaded and populated...so return.
+	if(el_shared_users){	
+		// Nothing to work...so return.
+		if(el_shared_users.options.length == 0)
+			return;
+		tr1_1.style.display = '';
+		for (var x = 0; x < el_shared_users.options.length; x++) {
+			var _option = document.createElement("OPTION");
+			_option.text = el_shared_users.options[x].text;
+			_option.value = el_shared_users.options[x].value;
+			sel_from.options[sel_from.options.length] = _option	;
+		}
+		return;
+	}
+	// Get the shared folders.....
+	var RegExp_name = new RegExp("(user)"+cyrus_delimiter+"(.*)$", "i");
+ 	var sharedFolders = new Array();
+	for(var i = 0; i < folders.length; i++) {
+		var x = folders[i].folder_id;
+      	if (RegExp_name.test(x)){
+      		sharedFolders[sharedFolders.length] = x;
+      	}
+    }
+
+    var matchUser = '#';
+    var sharedUsers = new Array();
+  	// Filter the shared folders (only root folders) .....
+   	for(var i = 0; i < sharedFolders.length; i++) {
+      if(!sharedFolders[i].match(matchUser)) {
+		matchUser = sharedFolders[i];
+		sharedUsers[sharedUsers.length] = matchUser.substring(("user"+cyrus_delimiter).length,matchUser.length);
+      }
+    }
+
+	// Handler function for cExecute
+	var h_user = function(data) {
+		if(data.length > 0) {
+			tr1_1.style.display = '';
+			var _option = document.createElement("OPTION");
+			_option.text =  '"'+data.myname+'" <'+Element("user_email").value+'>';
+			_option.value  = data.myname+";"+Element("user_email").value;
+			sel_from.options[sel_from.options.length] = _option;
+	
+			var options = '';
+			for (var x = 0; x < data.length; x++)	{
+				var _option = document.createElement("OPTION");
+				_option.text = '"'+data[x].cn[0] + '" <'+data[x].mail[0]+'>';
+				_option.value = data[x].cn[0] + ';'+data[x].mail[0];
+				sel_from.options[sel_from.options.length] = _option	;
+			}
+		}
+		var shared_users_from = Element("el_shared_users");
+		if(!shared_users_from) {
+			shared_users_from = sel_from.cloneNode(true);
+			shared_users_from.id = "el_shared_users";
+			shared_users_from.style.display = 'none';
+			document.body.appendChild(shared_users_from);
+		}
+	}
+	// First time, so execute.....
+	cExecute ("$this.ldap_functions.getSharedUsersFrom&uids="+sharedUsers.join(';'), h_user);
+}
+
+function changeBgColorToON(all_messages, begin, end){
+	for (begin; begin<=end; begin++)
+	{
+		add_className(all_messages[begin], 'selected_msg');
+		Element("check_box_message_" + all_messages[begin].id).checked = true;
+	}
+}
+
+function changeBgColor(event, msg_number){
+	actual_tr = Element(msg_number);
+
+	if (event.shiftKey)
+	{
+		last_tr = Element(last_message_selected);
+		if(!last_tr)
+			last_tr = actual_tr;
+
+		all_messages = actual_tr.parentNode.childNodes;
+		
+		for (var i=0; i < all_messages.length; i++)
+		{
+			if (actual_tr.id == all_messages[i].id)
+				first_order = i;
+			if (last_tr.id == all_messages[i].id)
+				last_order = i;
+		}
+		
+		if (parseInt(first_order) > parseInt(last_order))
+			changeBgColorToON(all_messages, last_order, first_order);
+		else
+			changeBgColorToON(all_messages, first_order, last_order);
+	}
+	else{
+		//if ( exist_className(actual_tr, 'selected_msg') )
+		if ( Element('check_box_message_' + msg_number).checked )
+			add_className(actual_tr, 'selected_msg');
+		else
+			remove_className(actual_tr, 'selected_msg');
+	}
+	last_message_selected = msg_number;
+}
+
+function build_quota(data){
+	id = "content_quota";
+	q_limit = data['quota_limit'];
+	var div	= document.getElementById(id);
+	if(!q_limit){
+	    div.innerHTML = '<span><font size="2" style="color:red"><strong>'+get_lang("Without Quota")+'</strong></font></span>';
+	}
+	else{
+	if(div)
+		div.innerHTML = '';
+	value = data['quota_percent'];
+	q_used = data['quota_used'];
+	table = document.getElementById("table_quota");
+	if(table)
+		table.parentNode.removeChild(table);
+	table = document.createElement("TABLE");	
+	tbody = document.createElement("TBODY");	
+	table.appendChild(tbody);
+	table.id = "table_quota";
+	table.width="102";
+	table.border="0";
+	table.cellSpacing = 0;
+	table.cellPadding = 0;
+	
+	//tr1 = document.createElement("TR");
+	td11 = document.createElement("TD");
+	td11.align="center";
+	td11.setAttribute("noWrap","true");
+	td11.innerHTML += '&nbsp;' + value+"% ("+q_used+"M/"+q_limit+"M)";
+	//tr1.appendChild(td11);
+	
+	tr2 = document.createElement("TR");
+	td21 = document.createElement("TD");
+	td21.setAttribute("noWrap","true");
+	td21.height="15";
+	td22 = document.createElement("TD");	
+	td21.setAttribute("background","templates/"+template+"/images/dsunused.gif");
+	table221 = document.createElement("TABLE");
+	tbody221 = document.createElement("TBODY");
+	table221.appendChild(tbody221);
+	table221.style.width=value+"%";	
+	td21.width="102";
+	table221.border="0";
+	table221.cellSpacing = 0;
+	table221.cellPadding = 0;
+	tr221 = document.createElement("TR");
+	td221 = document.createElement("TD");
+	td221.height="15";
+	if(value > 90) {
+		if(value >= 100)
+			write_msg(get_lang("Your Mailbox is 100% full! You must free more space or will not receive messages."));
+		else
+			write_msg(get_lang("Warning: Your Mailbox is almost full!"));
+		td221.setAttribute("background","templates/"+template+"/images/dsalert.gif");
+	}
+	else if(value > 80)
+		td221.setAttribute("background","templates/"+template+"/images/dswarn.gif");
+	else
+		td221.setAttribute("background","templates/"+template+"/images/dsused.gif");
+	
+	tr221.appendChild(td221);
+	tbody221.appendChild(tr221);
+	td21.appendChild(table221);	
+	tr2.appendChild(td21);
+	tr2.appendChild(td11);
+
+	//tr2.appendChild(td1);
+
+	tbody.appendChild(tr2); //Desenho
+	//tbody.appendChild(tr1); //Letras
+	div.appendChild(table);
+	}
+}
+
+function draw_quota(data){
+	build_quota(data);
+}
+
+function update_quota(folder_id){
+	cExecute ("$this.imap_functions.get_quota&folder_id="+folder_id,build_quota);
+}
+
+function draw_search(headers_msgs){
+	Element("border_id_0").innerHTML = "&nbsp;&nbsp;" + get_lang('Search Result') + "&nbsp;&nbsp;";
+
+	var tbody = Element('tbody_box');
+	for (var i=0; i<(headers_msgs.length); i++){
+		var tr = this.make_tr_message(headers_msgs[i], headers_msgs[i].msg_folder);
+		if (tr)
+			tbody.appendChild(tr);
+	}
+}
+
+function draw_search_header_box(){
+	var table_message_header_box = Element("table_message_header_box");
+	table_message_header_box.parentNode.removeChild(table_message_header_box);
+
+	var content_id_0 = Element("content_id_0");
+	var table_element = document.createElement("TABLE");
+	var tbody_element = document.createElement("TBODY");
+	table_element.setAttribute("id", "table_message_header_box");
+	table_element.className = "table_message_header_box";
+	tr_element = document.createElement("TR");
+	tr_element.className = "message_header";
+	td_element1 = document.createElement("TD");
+	td_element1.setAttribute("width", "1%");
+	chk_box_element = document.createElement("INPUT");
+	chk_box_element.id  = "chk_box_select_all_messages";
+	chk_box_element.setAttribute("type", "checkbox");
+	chk_box_element.className = "checkbox";
+	chk_box_element.onclick = function(){select_all_messages(this.checked);};
+	chk_box_element.onmouseover = function () {this.title=get_lang('Select all messages.')};
+	chk_box_element.onkeydown = function (e){
+		if (is_ie)
+		{
+			if ((window.event.keyCode) == 46)
+			{
+				//delete_all_selected_msgs_imap();
+				proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
+			}
+		}
+		else
+		{
+			if ((e.keyCode) == 46)
+			{
+				//delete_all_selected_msgs_imap();
+				proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
+			}
+		}
+	};
+	
+	td_element1.appendChild(chk_box_element);
+	td_element2 = document.createElement("TD");
+	td_element2.setAttribute("width", "3%");
+	td_element3 = document.createElement("TD");
+	td_element3.setAttribute("width", "30%");
+	td_element3.id = "message_header_SORTFROM";
+	td_element3.align = "left";
+	td_element3.innerHTML = get_lang("From");
+	td_element4 = document.createElement("TD");
+	td_element4.setAttribute("width", "49%");
+	td_element4.id = "message_header_SORTSUBJECT";
+	td_element4.align = "left";
+	td_element4.innerHTML = get_lang("Subject");	
+	td_element5 = document.createElement("TD");
+	td_element5.setAttribute("width", "10%");
+	td_element5.id = "message_header_SORTARRIVAL";
+	td_element5.align = "center";
+	td_element5.innerHTML = "<B>"+get_lang("Date")+"</B>";	
+	td_element5.innerHTML += "<img src ='templates/"+template+"/images/arrow_descendant.gif'>";
+	td_element6 = document.createElement("TD");
+	td_element6.setAttribute("width", "10%");
+	td_element6.id = "message_header_SORTSIZE";
+	td_element6.align = "right";
+	td_element6.innerHTML = get_lang("Size");
+	tr_element.appendChild(td_element1);
+	tr_element.appendChild(td_element2);
+	tr_element.appendChild(td_element3);
+	tr_element.appendChild(td_element4);
+	tr_element.appendChild(td_element5);
+	tr_element.appendChild(td_element6);
+	
+	tbody_element.appendChild(tr_element);
+	table_element.appendChild(tbody_element);
+	content_id_0.appendChild(table_element);
+}
+
+function draw_search_division(msg){
+	var tbody = Element('tbody_box');
+	var tr = document.createElement("TR");
+	var td = document.createElement("TD");
+	td.colSpan = '7';
+	td.width = '100%';
+
+	var action_info_table = document.createElement("TABLE");
+	var action_info_tbody = document.createElement("TBODY");
+	
+	action_info_table.className = "action_info_table";
+	action_info_table.width = "100%";
+	
+	var action_info_tr = document.createElement("TR");
+	
+	var action_info_th1 = document.createElement("TH");
+	action_info_th1.width = "40%";
+	action_info_th1.innerHTML = "&nbsp;";
+
+	var action_info_th2 = document.createElement("TH");
+	
+	action_info_th2.innerHTML = msg;
+	action_info_th2.className = "action_info_th";
+	action_info_th2.setAttribute("noWrap", "true");
+	
+	var action_info_th3 = document.createElement("TH");
+	action_info_th3.width = "40%";
+	action_info_th3.innerHTML = "&nbsp;";
+	
+	action_info_tr.appendChild(action_info_th1);
+	action_info_tr.appendChild(action_info_th2);
+	action_info_tr.appendChild(action_info_th3);
+	action_info_tbody.appendChild(action_info_tr);
+	action_info_table.appendChild(action_info_tbody);
+
+	td.appendChild(action_info_table);
+	tr.appendChild(td);
+	tbody.appendChild(tr);
+}
+
+function draw_search_box(){
+	var content_id_0 = Element("content_id_0");
+	var table = document.createElement("TABLE");
+	table.id = "table_box";
+	table.width = 'auto';
+	var tbody = document.createElement("TBODY");
+	tbody.id = "tbody_box";
+
+	table.className = "table_box";
+	table.setAttribute("frame", "below");
+	table.setAttribute("rules", "none");
+	table.setAttribute("cellpadding", "0");
+	table.onkeydown = function (e){
+		if (is_ie)
+		{
+			if ((window.event.keyCode) == 46)
+			{
+				//delete_all_selected_msgs_imap();
+				proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
+			}
+		}
+		else
+		{
+			if ((e.keyCode) == 46)
+			{
+				//delete_all_selected_msgs_imap();
+				proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
+			}
+		}
+	};
+	if (is_ie)
+		table.style.cursor = "hand";
+	
+	table.appendChild(tbody);
+	content_id_0.appendChild(table);
+}
+	var idx_cc = 0;
+function draw_plugin_cc(ID, addrs)
+{
+	connector.loadScript("ccQuickAdd");
+
+	var array_addrs = '';
+	var array_name 	= '';	
+	var cc_data = new Array();
+	if(typeof(addrs.name) != 'undefined') {	
+		array_name 	= LTrim(addrs.name).split(" ");
+		array_addrs = new Array(addrs.email);		
+	}
+	else {
+		array_addrs = (typeof addrs == 'object' ? addrs.toString().split("\" ") : addrs.split("\" "));
+		array_name 	= LTrim(array_addrs[0]).replace('"','').split(" ");	
+	}
+
+	var _split = array_name[0].split('@');
+	cc_data[0] = _split[0];
+	cc_data[1] = _split[0];
+	cc_data[2] = '';
+
+	for (i=1; i < array_name.length; i++)
+		cc_data[2] += array_name[i] + " ";			
+	
+
+	if(array_addrs.length > 1)			
+		cc_data[3] = array_addrs[1] ? array_addrs[1].replace("&lt;",'').replace("&gt;",'') : '';		
+	else
+		cc_data[3] = array_addrs[0];
+	
+	var sm_envelope_img1 = '<img style="cursor:'+ (is_ie ? 'hand' : 'pointer') +'" title="' + get_lang("Add Contact") +
+	'" onclick="ccQuickAddOne.showList(\''+cc_data+'\')" src="./templates/'+template+'/images/user_card.png">';
+	var to_addybook_add = "<SPAN id='insert_plugin_"+idx_cc+"_"+ID+"'>";
+	to_addybook_add += addrs;
+	to_addybook_add +=  sm_envelope_img1;
+	idx_cc++;
+	to_addybook_add += "</SPAN>";
+	return to_addybook_add;
+}
+function deny_email(email){
+	connector.loadScript("filter");
+	connector.loadScript("filters");
+	var dn_em 	= document.createElement("SPAN");
+		dn_em.id = "tt_d";
+		dn_em.onclick = function(){filter_rules.new_rule(email);};
+		dn_em.setAttribute("title",get_lang("Block Sender"));
+		dn_em.style.cursor = "pointer";		
+		dn_em.innerHTML = "<img align='top' onclick=filter.new_rule('"+email+"') src='./templates/"+template+"/images/deny.gif'>";
+	return dn_em;
+	
+}
+function show_div_address_full(id, type) {
+	var div_address_full = Element("div_"+type+"address_full_"+id);
+	if(!div_address_full) {
+		div_address_full = document.createElement("SPAN");
+		div_address_full.id = "div_"+type+"address_full_"+id;	
+		div_address_full.style.display="none";	
+		var _address = eval(type+"address_array['"+id+"']");
+		var isOverLimit = (_address.length > 100);
+		
+		if(isOverLimit) {
+			alert("Esse campo possui muitos endereços ("+_address.length+" destinatários).\r\n"+
+			"Para evitar o travamento do navegador, o botão 'Adicionar Contato' foi desabilitado!");
+		}
+
+		for(var idx = 1 ; idx  < _address.length;idx++) {
+			div_address_full.innerHTML += isOverLimit ?  '<br>'+_address[idx] : ','+draw_plugin_cc(id,_address[idx]);
+		}		
+		div_address_full.innerHTML += " (<a STYLE='color: RED;' onclick=document.getElementById('div_"+type+"address_full_"+id+"').style.display='none';document.getElementById('div_"+type+"address_"+id+"').style.display='';>"+get_lang('less')+"</a>)";
+		Element(type+"_"+id).appendChild(div_address_full);
+	}
+	Element('div_'+type+'address_'+id).style.display='none';
+	div_address_full.style.display='';
+}
+function draw_footer_box(num_msgs){
+	folder = get_current_folder();
+	var span_R = Element("table_message");	
+	var span_options = Element("span_options");	
+	if(!span_options) {
+		span_options = document.createElement("TD");	
+		span_options.style.fontSize = "12";
+		span_options.id = "span_options";
+		span_R.appendChild(span_options);
+	}
+
+	var change_font_color = 'onmouseover="var last_class = this.className;'+
+				'if (this.className != \'message_options_over\')'+
+				'this.className=\'message_options_active\'; '+
+				'this.onmouseout=function(){this.className=last_class;}"';
+
+	span_options.innerHTML =
+		'<span class="message_options_trash"><span ' + change_font_color + ' title="'+get_lang("Delete")+'" class="message_options" onclick=proxy_mensagens.delete_msgs(\'null\',\'selected\',\'null\')>'+get_lang("Delete")+'</span></span>'+
+		'<span class="message_options_move"><span ' + change_font_color + ' title="'+get_lang("Move")+'" class="message_options" onclick=wfolders.makeWindow(\"\",\"move_to\")>'+get_lang("Move")+'</span></span>'+
+   		'<span class="message_options_print"><span ' + change_font_color + ' title="'+get_lang("Print")+'" class="message_options" onclick=print_all()>'+get_lang("Print")+'</span></span>'+
+		'<span class="message_options_export"><span ' + change_font_color + ' title="'+get_lang("Export")+'" class="message_options" onclick="export_all_selected_msgs()">'+get_lang("Export")+'</span></span>' +
+		'<span class="message_options_import"><span ' + change_font_color + ' title="'+get_lang("Import")+'" class="message_options" onclick="import_window()">'+get_lang("Import")+'</span></span>';
+	if(preferences.use_local_messages==1)
+		span_options.innerHTML += '&nbsp;<span ' + change_font_color + ' title="'+get_lang("Archive")+'" class="message_options" onclick="archive_msgs(\''+folder+'\',null)">'+get_lang("Archive")+'</span>';
+	if (use_spam_filter) {
+		if ( current_folder == 'INBOX'+cyrus_delimiter+'Spam' )	{
+			span_options.innerHTML += ' | <span ' + change_font_color + ' title="'+get_lang("Not Spam")+'" class="message_options" onclick="nospam(\'selected\',\'null\',\'null\')">'+get_lang("Not Spam")+'</span>';
+		}
+		else {
+			span_options.innerHTML += ' | <span ' + change_font_color + ' title="'+get_lang("Mark as Spam")+'" class="message_options" onclick="spam(\'null\', \'selected\',\'null\')">'+get_lang("Mark as Spam")+'</span>';
+		}
+	}
+	var span_D = Element("span_D");	
+	if(!span_D){
+		span_D = document.createElement("TD");	
+		span_D.align = "right";
+		span_D.style.fontSize = "12";
+		span_D.id = "span_D";
+		span_R.appendChild(span_D);
+	}
+	span_D.innerHTML = 
+   		 get_lang("List")+': '+
+   	'<span ' + change_font_color + ' id="span_flag_SORTARRIVAL" class="'+(search_box_type == 'ALL' ? 'message_options_over' : 'message_options')+'" title="'+get_lang("All")+'" onclick="if(\'ALL\' == \''+search_box_type+'\') return false;sort_box(\'ALL\',\''+sort_box_type+'\')">'+get_lang("All")+'</span>, '+
+   	'<span ' + change_font_color + ' id="span_flag_UNSEEN" class="'+(search_box_type == 'UNSEEN' ? 'message_options_over' : 'message_options')+'" title="'+get_lang("l_unseen")+'" onclick="if(\'UNSEEN\' == \''+search_box_type+'\') return false;sort_box(\'UNSEEN\',\''+sort_box_type+'\')">'+get_lang("l_unseen")+'</span>, '+
+  	'<span ' + change_font_color + ' id="span_flag_SEEN" class="'+(search_box_type == 'SEEN' ? 'message_options_over' : 'message_options')+'" title="'+get_lang("l_seen")+'" onclick="if(\'SEEN\' == \''+search_box_type+'\') return false;sort_box(\'SEEN\',\''+sort_box_type+'\')">'+get_lang("l_seen")+'</span>, '+
+   	'<span ' + change_font_color + ' id="span_flag_ANSWERED" class="'+(search_box_type == 'ANSWERED' ? 'message_options_over' : 'message_options')+'" title="'+get_lang("l_answered")+'" onclick="if(\'ANSWERED\' == \''+search_box_type+'\') return false;sort_box(\'ANSWERED\',\''+sort_box_type+'\')">'+get_lang("l_answered")+'</span>, '+
+   	'<span ' + change_font_color + ' id="span_flag_FLAGGED" class="'+(search_box_type == 'FLAGGED' ? 'message_options_over' : 'message_options')+'" title="'+get_lang("l_important")+'" onclick="if(\'FLAGGED\' == \''+search_box_type+'\') return false;sort_box(\'FLAGGED\',\''+sort_box_type+'\')">'+get_lang("l_important")+'</span>&nbsp;&nbsp;';
+	draw_paging(num_msgs);
+	Element("tot_m").innerHTML = num_msgs;	
+}
Index: tags/expressoMail1_2/1.234/js/doiMenuData.js
===================================================================
--- tags/expressoMail1_2/1.234/js/doiMenuData.js	(revision 790)
+++ tags/expressoMail1_2/1.234/js/doiMenuData.js	(revision 790)
@@ -0,0 +1,276 @@
+_icon_dir="templates/"+template+"/images/menu/";
+
+function ConstructMenuTools(){
+	// Layout padrão de menu = option1
+	var _divMenu = Element('menu_tools');
+	if(_divMenu)
+		return;
+	var _option1 = preferences.hide_folders == "1" ? false : true;
+								
+	var itens = new Array (
+							"preferences_mail()|"+get_lang("Preferences")+"|preferences.png",
+							"search_emails(\"\")|"+get_lang("Search")+"|search.png",
+							"filterbox()|"+get_lang("Edit filters")+"|filters.png",
+							"folderbox()|"+get_lang("Edit folders")+"|editfolders.png",
+							"sharebox()|"+get_lang("Share mailbox")+"|usersfolders.png",
+							"empty_trash_imap()|"+get_lang("Empty trash")+"|trash.png"
+							);
+
+	var _link = Element('link_tools');
+	_divMenu = document.createElement("DIV");
+	_divMenu.id = "menu_tools";
+	_divMenu.style.position = "absolute";
+	_divMenu.style.top =  findPosY(_link) + (_option1 ? 19 : 14);
+	_divMenu.style.left = findPosX(_link) + (_option1 ? 22 : 22);
+	_divMenu.style.width = "auto";
+	_divMenu.style.height = "auto";
+	_divMenu.style.padding = "1px";
+	_divMenu.style.paddingTop = "0px";
+	_divMenu.style.zIndex = "10000";
+	_divMenu.style.backgroundColor = "WHITE";
+	_divMenu.style.border = "1px solid #999999";
+	_divMenu.style.borderTop = "0px solid #FFFFFF";
+	_divMenu.style.visibility = "hidden";
+	var _timeout = false;
+	_hideMenuTools = function () {		
+		Element('menu_tools').style.visibility = "hidden";	
+	};
+	_viewMenuTools = function () {
+		Element('menu_tools').style.visibility = "visible";
+	};
+
+	var _mouseover = _link.onmouseover;
+	
+	_link.onmouseover = function () {	
+		var _option1 = preferences.hide_folders == "1" ? false : true;
+		var _link = Element('link_tools');
+		Element('menu_tools').style.top =  findPosY(_link) + (_option1 ? 19 : 14);
+		if(_timeout) {
+			clearTimeout(_timeout);
+			_timeout=false;
+		}	
+		if(_mouseover) 
+			_mouseover(); 
+	
+		_timeout = setTimeout("_viewMenuTools();",500);
+	};
+	
+	_link.onmouseout  = function () {
+		if(_timeout) {
+			clearTimeout(_timeout);
+			_timeout=false;
+		}
+		if(_option1)
+			unset_menu_bg(Element("link_tools"));	
+		_timeout = setTimeout("_hideMenuTools();",500);
+	}
+
+	var _t = document.createElement("TABLE");
+	_t.cellPadding="0";
+	_t.cellSpacing="0";
+	_t.onmouseover = function () {	
+		if(_timeout) {
+			clearTimeout(_timeout);
+			_timeout=false;
+		}	
+		if(_mouseover) 
+			_mouseover(); 
+	
+		Element('menu_tools').style.visibility = "visible";
+	};
+	var _tbody = document.createElement("TBODY");
+	
+	var buildTr = function(value) {
+		var item = value.split('|');
+		var _tr = document.createElement("TR");
+		var _td = document.createElement("TD");
+		_td.innerHTML = "<img height=\"16px\" src=\"templates/"+template+"/images/menu/"+item[2]+"\">&nbsp;"+item[1]+"&nbsp;";
+		_td.style.color = "DARKBLUE";
+		_td.style.cursor = "pointer";
+		if(_option1)
+			_td.style.border = '1px solid #f7f7f7';			
+		_td.onclick 	= function() { Element('menu_tools').style.visibility='hidden';eval(item[0]);};
+		_td.onmouseover = function () {
+			if(_timeout) {
+				clearTimeout(_timeout);
+				timeout=false;
+			}
+			
+			if(_option1)
+				set_menu_bg(this);
+			else {
+				this.style.textDecoration="underline";				
+				this.style.color = 'DARKORANGE';
+			}
+		};						
+		_td.onmouseout   = function () {
+			_timeout = setTimeout("_hideMenuTools();",500);
+			if(_option1){
+				unset_menu_bg(this);
+				unset_menu_bg(Element("link_tools"));
+			}else {		
+				this.style.backgroundColor = 'WHITE';
+				this.style.textDecoration="none";
+				this.style.color = 'DARKBLUE';
+			}
+		};		
+		_tr.appendChild(_td);
+		return _tr;
+	}
+	
+	for(i = 0; i < itens.length; i++)
+		_tbody.appendChild(buildTr(itens[i]));
+			
+	_t.appendChild(_tbody);
+	_divMenu.appendChild(_t);
+	document.body.appendChild(_divMenu);
+}
+
+function openListUsers(border_id) {
+	connector.loadScript("QuickCatalogSearch");
+	QuickCatalogSearch.showCatalogList(border_id);
+}
+
+function ConstructRightMenu(_event){
+
+	var div = Element("div_rightbutton");
+	if(!div){
+		div = document.createElement("DIV");
+		div.style.position = 'absolute';
+		div.style.zIndex = '15';
+
+		div.style.border = '1px outset BLACK';
+		div.style.background = "#EEEEE6";
+		div.id = 'div_rightbutton';
+		div.style.padding = "1px";
+		div.style.fontSize = is_ie || is_gecko1_5 || is_win ? "9pt" : "11pt";
+		div.style.width = "190px";
+		div.style.height = is_win && !is_ie ? "129px" : "139px";
+		div.style.display ='none';		
+		document.body.appendChild(div);
+		var _tab = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
+		var _sep = "<hr>";
+		var optionsMenu = new Array( 
+			_tab + get_lang("Mark as")+"&nbsp;"+get_lang('seen')+'|'+"proxy_mensagens.proxy_set_messages_flag('seen','get_selected_messages')",
+			_tab + get_lang("Mark as")+"&nbsp;"+get_lang('unseen')+'|'+"proxy_mensagens.proxy_set_messages_flag('unseen','get_selected_messages')",
+			_tab + get_lang("Mark as")+"&nbsp;"+get_lang('important')+'|'+"proxy_mensagens.proxy_set_messages_flag('flagged','get_selected_messages')",
+			_tab + get_lang("Mark as")+"&nbsp;"+get_lang('normal')+'|'+"proxy_mensagens.proxy_set_messages_flag('unflagged','get_selected_messages')",
+			_sep,
+			_tab + get_lang("Move to")+" ... |wfolders.makeWindow('', 'move_to')",
+			_tab + get_lang("Delete")+"|"+"proxy_mensagens.delete_msgs('null','selected','null')",
+			_tab + get_lang("Export")+"|"+"export_all_selected_msgs()"
+		);
+
+		for(i = 0; i < optionsMenu.length; i++){
+			optionsMenu_l = optionsMenu[i].split('|');
+			var div_l = document.createElement("DIV");
+			div_l.style.padding = "1px";
+			div_l.style.width = "188px";
+			div_l.style.cursor = 'pointer';			
+			div_l.innerHTML = optionsMenu_l[0];
+			div_l.style.valign = 'top';
+			if(optionsMenu_l[0] != _sep) {
+				var attr = document.createAttribute('javascript');
+				attr.value = optionsMenu_l[1]+";Element('div_rightbutton').style.display = 'none';";
+				div_l.setAttributeNode(attr);
+				div_l.oncontextmenu = function(e) {	return false;};
+				div_l.onclick = function () {this.onmouseout();eval(this.getAttribute('javascript'));};
+				div_l.onmouseover = function () {this.style.color = 'WHITE';this.style.background = "#4a79cd";};
+				div_l.onmouseout = function ()  {this.style.color = 'BLACK';this.style.background = "#EEEEE6";};
+			}
+			else
+				div_l.style.height = "11px";
+				
+			div_l.id="link_rightbutton_"+i;
+			div.appendChild(div_l);
+		}
+	
+	}
+
+	var x = _event.clientX + document.body.scrollLeft +  2;
+	var y =  _event.clientY + document.body.scrollTop +  2;
+
+	var w_width  = is_ie ? document.body.clientWidth : window.innerWidth;
+	var w_height = is_ie ? document.body.clientHeight + document.body.scrollTop : window.innerHeight + window.pageYOffset;
+
+	if(x + 218 > w_width)
+		div.style.left = w_width - (is_ie ? 198 : 218);	
+	else
+		div.style.left = x;
+	
+	if(y + 131 > w_height)
+		div.style.top =  w_height - (is_ie ? 125 : 131);	
+	else
+		div.style.top = y;	
+
+	div.style.display ='';
+} 
+
+function ConstructBoxMenu(_event,boxName,boxFolder){
+
+	var div = Element("div_rightbutton_folder");
+		if (div)
+			div.parentNode.removeChild(div);
+	
+		div = document.createElement("DIV");
+		div.style.position = 'absolute';
+		div.style.zIndex = '15';
+
+		div.style.border = '1px outset BLACK';
+		div.style.background = "#EEEEE6";
+		div.id = 'div_rightbutton_folder';
+		div.style.padding = "1px";
+		div.style.fontSize = is_ie || is_gecko1_5 || is_win ? "9pt" : "11pt";
+		div.style.width = "190px";
+		div.style.height = is_win && !is_ie ? "35px" : "33px";
+		div.style.display ='none';		
+		document.body.appendChild(div);
+		var _tab = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
+		var _sep = "<hr>";
+		var optionsMenu = new Array( 
+			_tab + get_lang("Open in new tab")+'|'+"open_folder('"+boxFolder+"', '"+boxName+"')",
+			_tab + get_lang("Edit folders")+'|'+"folderbox()"
+		);
+
+		for(i = 0; i < optionsMenu.length; i++){
+			optionsMenu_l = optionsMenu[i].split('|');
+			var div_l = document.createElement("DIV");
+			div_l.style.padding = "1px";
+			div_l.style.width = "188px";
+			div_l.style.cursor = 'pointer';			
+			div_l.innerHTML = optionsMenu_l[0];
+			div_l.style.valign = 'top';
+			if(optionsMenu_l[0] != _sep) {
+				var attr = document.createAttribute('javascript');
+				attr.value = optionsMenu_l[1]+";Element('div_rightbutton_folder').style.display = 'none';";
+				div_l.setAttributeNode(attr);
+				div_l.oncontextmenu = function(e) {	return false;};
+				div_l.onclick = function () {this.onmouseout();eval(this.getAttribute('javascript'));};
+				div_l.onmouseover = function () {this.style.color = 'WHITE';this.style.background = "#4a79cd";};
+				div_l.onmouseout = function ()  {this.style.color = 'BLACK';this.style.background = "#EEEEE6";};
+			}
+			else
+				div_l.style.height = "11px";
+				
+			div_l.id="link_rightbutton_folder"+i;
+			div.appendChild(div_l);
+		}
+
+	var x = _event.clientX + document.body.scrollLeft +  2;
+	var y =  _event.clientY + document.body.scrollTop +  2;
+
+	var w_width  = is_ie ? document.body.clientWidth : window.innerWidth;
+	var w_height = is_ie ? document.body.clientHeight + document.body.scrollTop : window.innerHeight + window.pageYOffset;
+
+	if(x + 218 > w_width)
+		div.style.left = w_width - (is_ie ? 198 : 218);	
+	else
+		div.style.left = x;
+	
+	if(y + 131 > w_height)
+		div.style.top =  w_height - (is_ie ? 125 : 131);	
+	else
+		div.style.top = y;	
+
+	div.style.display ='';
+} 
Index: tags/expressoMail1_2/1.234/js/connector.js
===================================================================
--- tags/expressoMail1_2/1.234/js/connector.js	(revision 802)
+++ tags/expressoMail1_2/1.234/js/connector.js	(revision 802)
@@ -0,0 +1,646 @@
+/****************************************** Public variables *************************************************/
+var debug_controller =false;
+var files = new Array();
+var progressBar;
+
+  if (document.all)
+	{
+		navigator.userAgent.toLowerCase().indexOf('msie 5') != -1 ? is_ie5 = true : is_ie5 = false;
+		is_ie = true;
+		is_moz1_6 = false;
+		is_mozilla = false;
+		is_ns4 = false;
+	}
+	else if (document.getElementById)
+	{
+		navigator.userAgent.toLowerCase().match('mozilla.*rv[:]1\.6.*gecko') ? is_moz1_6 = true : is_moz1_6 = false;
+		is_ie = false;
+		is_ie5 = false;
+		is_mozilla = true;
+		is_ns4 = false;
+	}
+	else if (document.layers)
+	{
+		is_ie = false;
+		is_ie5 = false
+		is_moz1_6 = false;
+		is_mozilla = false;
+		is_ns4 = true;
+	}	
+
+/****************************************** Connector Class *************************************************/
+	// Constructor
+	function cConnector()
+	{
+		this.requests = new Array();
+		this.oxmlhttp = null;
+		this.isVisibleBar = false;
+		this.tid = 0;
+		this.progressBar = null;
+		this.oldX = 0;
+		this.oldY = 0;
+		this.updateVersion = "";
+	}
+	
+	cConnector.prototype.buildBar = function()
+		{			
+			var div = document.getElementById('divProgressBar');
+		
+			if(! div) {												
+				div = document.createElement("DIV");
+				div.style.visibility	= "hidden";		
+				div.style.width = "103px";
+				div.id = 'divProgressBar';
+				div.align = "center";
+				div.innerHTML = '&nbsp;&nbsp;<font face="Verdana" size="2" color="WHITE">'+document.getElementById('txt_loading').value+'...</font>&nbsp;';
+				div.style.background = "#cc4444";
+				div.style.position = 'fixed';
+				div.style.top = '0px';
+				div.style.right = '0px';
+				document.body.appendChild(div);																
+				
+				if(is_ie) {
+					var elem = document.all[div.id]; 
+					elem.style.position="absolute";
+					var root = document.body;
+					var posX = elem.offsetLeft-root.scrollLeft;
+					var posY = elem.offsetTop-root.scrollTop;
+					root.onscroll = function() {
+						elem.style.right = '0px';
+						elem.style.top = (posY + root.scrollTop) + "px";
+					};					
+				}
+				
+				if(debug_controller) {
+					div = document.createElement("DIV");
+					div.style.width	= "800px";
+					div.style.height= "400px";
+					div.id = "debug_controller";
+					div.align='right';
+					document.body.appendChild(div);																
+				}
+			}								
+	}	
+//------------------------------------ BEGIN: Functions for Connector HTTPRequest  -------------------------------------------------//	
+	// Serialize Data Method
+	cConnector.prototype.serialize = function(data)
+	{	var _thisObject = this;		
+		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 + ';' + _thisObject.serialize(data[i]);
+								break;
+	
+							case 'string':
+								str_data += 's:' + i.length + ':"' + i + '";' + _thisObject.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;
+	}
+	cConnector.prototype.matchBracket = function(strG, iniPosG)
+	{
+		_thisObject = this;
+		var f = function (str, iniPos)
+		{
+			var nOpen, nClose = iniPos;
+		
+			do 
+			{
+				nOpen = str.indexOf('{', nClose+1);
+				nClose = str.indexOf('}', nClose+1);
+
+				if (nOpen == -1)
+				{
+					return nClose;
+				}
+			
+				if (nOpen < nClose )
+				{
+					nClose = _thisObject.matchBracket(str, nOpen);
+				}
+			
+			} while (nOpen < nClose);
+
+			return nClose;
+		}
+
+		return f(strG, iniPosG);
+	}
+	
+		
+	//Unserialize Data Method
+	cConnector.prototype.unserialize = function(str)
+	{
+		
+		_thisObject = this;
+		
+		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 = _thisObject.unserialize(indexStr);
+						pos = arrayContent.indexOf(';', pos)+1;
+						
+						/* Process Content */
+						var part = null;
+						switch (arrayContent.charAt(pos))
+						{
+							case 'a':
+								var pos_ = _thisObject.matchBracket(arrayContent, arrayContent.indexOf('{', pos))+1;
+								part = arrayContent.substring(pos, pos_);
+								pos = pos_;
+								data[index] = _thisObject.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] = _thisObject.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);
+	}
+
+	//Create XMLHTTP object Method
+	cConnector.prototype.createXMLHTTP = function ()
+	{	
+		try
+		{ 
+			this.oxmlhttp = new XMLHttpRequest();
+			this.oxmlhttp.overrideMimeType('text/xml');
+		}
+		catch (e)
+		{ 
+			try
+			{
+				this.oxmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
+			}
+			catch (e1)
+			{ 
+				try
+				{
+					this.oxmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
+				}
+				catch (e2)
+				{
+					this.oxmlhttp = null;
+				}
+			}
+		}
+	
+	}
+	
+	// Request Constructor Connector	
+	cConnector.prototype.newRequest = function (id, target, method, handler, data)
+	{
+		var params = data;
+		this.tid = id;
+		if (this.requests[id]) {
+			return false;
+		}
+	
+		this.createXMLHTTP();
+		var oxmlhttp = this.oxmlhttp;
+		var _thisObject = this;		
+		
+		if (! oxmlhttp)		
+			return false;
+				
+		this.requests[id] = oxmlhttp;
+		this.buildBar();		
+		this.showProgressBar();
+		
+		var sub_handler = function ()
+		{			
+			var progressBar = _thisObject.progressBar;
+			
+			try
+			{
+				if (oxmlhttp.readyState == 4 )
+				{
+					
+					switch (oxmlhttp.status)
+					{
+						
+						case 200:
+							if (typeof(handler) == 'function')
+							{																
+								_thisObject.hideProgressBar();																
+								var data = _thisObject.unserialize(oxmlhttp.responseText);
+								if ( typeof data == 'undefined' )
+									data = oxmlhttp.responseText;
+								if(debug_controller) {
+									document.getElementById("debug_controller").innerHTML += oxmlhttp.responseText;
+									document.getElementById("debug_controller").innerHTML += "<br>-------------------------------------------------------------------------------------<br>";
+								}
+								handler(data);
+								addToCache(params?id+"&"+params:id,data);
+								delete _thisObject.requests[id];								
+								_thisObject.requests[id] = null;
+							}
+
+							break;
+
+						case 404:
+							
+							alert(get_lang('Page Not Found!'));
+							break;
+
+						default:												
+					}
+				}
+			}
+			catch (e)
+			{			
+				_thisObject.hideProgressBar();
+				if(debug_controller)
+					alert(e+"\n"+oxmlhttp.responseText);
+				// View Exception in Javascript Console
+				throw(e);
+			}
+						
+		}
+
+		try
+		{ 
+			
+			if (method == '' || method == 'GET')
+			{								
+				oxmlhttp.open("GET",target,true);
+				if (typeof(handler) == 'function')
+				{	
+					oxmlhttp.onreadystatechange =  sub_handler;					
+					oxmlhttp.send(null);					
+				}		
+				
+			}
+			else if (method == 'POST')
+			{
+				oxmlhttp.open("POST",target, true);
+				oxmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
+				if (typeof(handler) == 'function')
+				{
+					oxmlhttp.onreadystatechange = sub_handler;
+					oxmlhttp.send(data);
+				}				
+				
+			}
+		}
+		catch(e)
+		{	
+			_thisObject.hideProgressBar();
+			if(debug_controller)
+				alert(e);
+			// View Exception in Javascript Console	 
+			throw(e);
+		}
+						
+		return true;
+	}
+	// Cancel Request Connector
+	cConnector.prototype.cancelRequest = function (){
+		if (!this.requests[this.tid]){
+			return false;
+		}
+		this.oxmlhttp.onreadystatechange = null;
+		this.requests[this.tid].abort();
+		this.hideProgressBar();
+	}
+//------------------------------------  END: Functions for Connector HTTPRequest  -------------------------------------------------//
+
+//	----------------------------------- BEGIN: Functions for build Bar Progress ---------------------------------------------------------//
+	cConnector.prototype.hideProgressBar = function ()
+	{
+		var div = document.getElementById('divProgressBar');
+		div.style.visibility = 'hidden';
+		this.isVisibleBar = false;
+	}
+	
+	cConnector.prototype.showProgressBar = function(){
+		var div = document.getElementById('divProgressBar');
+		div.style.visibility = 'visible';			
+
+		this.isVisibleBar = true;
+	}
+
+	cConnector.prototype.loadAllScripts = function(scripts) {	
+		for(var i = 0; i < scripts.length; i++){
+			this.loadScript(scripts[i]);
+		}
+	}
+
+	cConnector.prototype.loadScript = function(scriptPath)	{
+      	if (document.getElementById('uploadscript_'+scriptPath)) {
+      		return;
+      	}
+		var head = document.getElementsByTagName("head")[0];
+		var script = document.createElement("SCRIPT");
+		script.id = 'uploadscript_'+scriptPath;
+		script.type = 'text/javascript';
+  		
+  		if(is_ie) {
+		
+			this.oxmlhttp.open("GET", "js/"+scriptPath+".js?"+this.updateVersion, false);
+    	    this.oxmlhttp.setRequestHeader('Content-Type','text/plain');
+			this.oxmlhttp.send(null);
+			if(this.oxmlhttp.status != 0 && this.oxmlhttp.status != 200 || 	this.oxmlhttp.status == 0 && this.oxmlhttp.responseText.length == 0)
+				throw new Error("Error " + this.oxmlhttp.status + "("+this.oxmlhttp.statusText+") when loading script file '"+scriptPath+"'");
+			script.text = this.oxmlhttp.responseText;				
+		}
+		else {
+			script.src =  "js/"+scriptPath+".js?"+this.updateVersion;
+		}
+
+		head.appendChild(script);
+		return;	
+	}
+//------------------------------------  END: Functions for Progress Bar  -------------------------------------------------//
+	// Default Controller File
+	var DEFAULT_URL = 'controller.php?action=';
+	// connector object
+	var connector = new cConnector();
+	var _onmouseup = document.onmouseup;
+	var isExecuteForm = false;
+	var id = null;
+
+	var connectorCache = {
+		'valid' : [],
+		'result' : []
+	};
+	var expurgatedCache = new Array(); // Data to purge from cache
+
+	function queryConnectorCache(url,handler){
+		if (connectorCache.valid[url])
+		{
+			handler(connectorCache.result[url]);
+			return true;
+		}
+		else
+			return false;
+	}
+	function purgeCache(){
+		if (typeof(preferences) == "undefined" || preferences.use_cache != 'True')
+			return false;
+		var i;
+		for (i=0; i<= expurgatedCache.length; i++)
+		{
+			connectorCache.valid[expurgatedCache[i]] = false;
+			try {
+	   		delete connectorCache.result[expurgatedCache[i]];
+			}
+			catch (e) { };
+		}
+	}
+	function addToCache(id,data){
+		if (typeof(preferences) == "undefined" || preferences.use_cache != 'True')
+			return false;
+		var func = id.substr(id.lastIndexOf('.')+1);
+		if (func.indexOf('&') > 0)
+			func = func.substr(0,func.indexOf('&'));
+		switch (func){
+			// functions that enters in cache
+                        case 'get_info_msg':
+				data.cacheHit = true;
+			case 'get_preferences':
+			case 'getSharedUsersFrom':
+			case 'get_organizations':
+			case 'get_catalogs':
+			case 'get_dropdown_contacts':
+			case 'get_cc_contacts':
+			case 'get_cc_groups':
+			case 'getUsersByEmail':
+				connectorCache.valid[id] = true;
+				connectorCache.result[id] = data;
+				break;
+			// function that needs expire
+			case 'get_range_msgs2':
+			case 'quicksearch':
+			case 'get_folders_list':
+			case 'search_msg':
+			case 'search_for':
+				connectorCache.valid[id] = true;
+                                connectorCache.result[id] = data;
+				var i = expurgatedCache.length;
+				expurgatedCache[i+1] = id;
+				break;
+			//functions that expires the cache
+			case 'move_messages':
+			case 'delete_msgs':
+			case 'getReturnExecuteForm':
+			case 'set_messages_flag':
+			case 'empty_trash':
+				purgeCache();
+			default: // no cache
+				break;
+		}
+	}
+
+	// 	Function executes AJAX
+	// 	cExecute (url, handler, params)
+	//	url: 'module.class.method'
+	//  handle: function handle() receive response.
+	//  params: parameters for POST method
+	//	form: form element (for upload files)	
+	function cExecute(url, handler, params, form) {
+		if(isExecuteForm){
+			isExecuteForm = false;
+			document.onmouseup = _onmouseup;
+		}
+		if(form) {
+			cExecuteForm(url, form);
+			return;
+		}
+
+		url = DEFAULT_URL + url;
+
+		if (queryConnectorCache(params?url+"&"+params:url,handler))
+			return;
+
+		if(params)
+			method = "POST";
+		else
+			method = "GET";
+
+		id = url;
+		connector.newRequest(id, url, method, handler, params);
+	}
+
+// This function executes submit values to Controller (POST)
+	// The return is void.
+	// 	cExecuteForm (url, form)
+	//	url: 'module.class.method'
+	//	form: form element (for upload files)	
+	function cExecuteForm(url, form, handler,id){
+		connector.buildBar();
+		isExecuteForm = true;		
+		document.onmouseup = alertBut;
+
+		connector.showProgressBar();
+		if(! (divUpload = document.getElementById('divUpload'))) {
+			divUpload		= document.createElement('DIV');		
+			divUpload.id	= 'divUpload';
+			document.body.appendChild(divUpload);
+		}
+
+		if(! (el = document.getElementById('_action'))) {			
+			el			= document.createElement('input');
+			el.type	= 'hidden';
+			el.id		= '_action';	
+			el.name	= '_action';
+			form.appendChild(el);
+		}
+
+		var divFiles = Element("divFiles_"+id);		
+		if (divFiles && divFiles.firstChild) {
+			el			= document.createElement('input');
+			el.type	= 'hidden';	
+			el.name	= 'countFiles';
+			var countDivFiles = 0;
+			try{
+				countDivFiles = parseInt(divFiles.lastChild.firstChild.id.split('_')[2]) + 1; // The id of last file 
+				}
+			catch (e) { var countDivFiles = 0; };
+			el.value	= countDivFiles ;
+			form.appendChild(el);						
+		}		
+
+		form._action.value = url;
+		divUpload.innerHTML= "<iframe onload=\"cExecute('$this.functions.getReturnExecuteForm',"+handler+");\"  style='display:"+(debug_controller ? "" : "none")+";width:"+(debug_controller ? 400 : 0)+";height:"+(debug_controller ? 400 : 0)+";' name='uploadFile'></iframe>";
+		form.action ="controller.php";
+		form.target ="uploadFile";		
+		form.submit();
+	}	
+	
+	
+	function alertBut(e) {
+	   	if(!e)
+			e = window.event;
+
+	    if(_onmouseup)
+			_onmouseup(e);
+
+		if(isExecuteForm) {
+	    	if(confirm(get_lang("There's an action processing. Do you want abort it?"))) {
+		    	connector.hideProgressBar();
+		    	isExecuteForm = false;
+		    	delete connector.requests[id];								
+				connector.requests[id] = null;
+	    		stop();		    		    		
+	    		return;
+	    	}
+    		else
+    			return false;
+	    }
+	}	
Index: tags/expressoMail1_2/1.234/js/ccQuickAdd.js
===================================================================
--- tags/expressoMail1_2/1.234/js/ccQuickAdd.js	(revision 197)
+++ tags/expressoMail1_2/1.234/js/ccQuickAdd.js	(revision 197)
@@ -0,0 +1,153 @@
+	function cQuickAddContact ()
+	{
+		this.arrayWin = new Array();
+		this.el;
+		this._nFields = 5;
+	}
+
+	
+	cQuickAddContact.prototype.showList = function(data){
+		_this = this;
+
+		var	cc_data = (typeof data) == 'object' ? data : data.split(',');
+		
+		if (document.getElementById('cc_rectQuickAddContact') == null){		
+			el = document.createElement("DIV");
+			el.style.visibility = "hidden";									
+			el.style.position = "absolute";
+			el.style.left = "0px";
+			el.style.top = "0px";
+			el.style.width = "0px";
+			wHeight = 165;
+			el.style.height = wHeight + 'px';
+			el.className = "div_cc_rectQuickAddContact";
+			el.id = 'cc_rectQuickAddContact';
+			document.body.appendChild(el);																
+		}
+		else {
+			el = document.getElementById('cc_rectQuickAddContact');
+		}
+		el.innerHTML = "";
+		var fieldsTop = 10;
+		var fieldsSpace = 30;
+		var lang_save 	= get_lang('Save');
+		var lang_cancel = get_lang('Cancel');
+		
+		//função lang
+		fields = new Array(get_lang('Nickname')+":", get_lang('First Name')+":", get_lang('Last Name')+":", 'E-mail:');
+		for (i=0; i<fields.length; i++) {
+			el.innerHTML += '<span id="ccQuickAddCT' + i + '" style="position: absolute; top: ' +  (fieldsTop+i*fieldsSpace) + 'px; left: 5px; width: 100px; text-align: right; border: 0px solid #999;">' + fields[i] + '</span>';
+			el.innerHTML += '<input id="ccQuickAddCI' + i + '" type="text" value="' + cc_data[i] + '" maxlength="50" style="position: absolute; top: ' + (fieldsTop+i*fieldsSpace) + 'px; left: 110px; width: 135px;">';
+		}
+		el.innerHTML +='<div id="ccQAFunctions" style="border: 0px solid black; width: 220px; height: 20px">' +
+			'<input title="'+lang_save+'" type="button" onclick="ccQuickAddOne.send(\''+data+'\');" value="'+lang_save+'" style="position: absolute; top: ' + (fieldsTop+(i*fieldsSpace)) + 'px; left: 75px; width: 60px" />' +
+			'<input title="'+lang_cancel+'" type="button" onclick="ccQuickAddOne.fechar(\'' + id + '\');" value="'+lang_cancel+'" style="position: absolute; top: ' + (fieldsTop+(i*fieldsSpace)) + 'px; left: 140px; width: 60px" />' +
+			'</div>';
+		el.innerHTML +=	"<br>";
+		_this.showWindow(el);
+
+	}
+		
+	cQuickAddContact.prototype.showWindow = function (div)
+	{						
+		if(! this.arrayWin[div.id]) {
+			win = new dJSWin({			
+				id: 'ccQuickAddOne_'+div.id,
+				content_id: div.id,
+				width: '255px',
+				height: wHeight+'px',
+				title_color: '#3978d6',
+				bg_color: '#eee',
+				title: get_lang("Quick Add"),
+				title_text_color: 'white',
+				button_x_img: '../phpgwapi/images/winclose.gif',
+				border: true });
+			this.arrayWin[div.id] = win;
+			win.draw();			
+		}
+		else {
+			win = this.arrayWin[div.id];
+		}			
+		win.open();
+	}
+	
+	cQuickAddContact.prototype.send = function (data)
+	{
+		
+		var handler = function (responseText)
+		{
+			var data = responseText;
+			if (!data || typeof(data) != 'object')
+			{
+				write_msg("Problema ao contactar servidor");
+				return;
+			}
+			else if (data['status'] == 'alreadyExists')
+			{
+				alert(data['msg']);
+				return;
+			}
+			else if (data['status'] != 'ok')
+			{
+				return;
+			}
+			contacts += ',' + full_name + ';' + email;
+			write_msg("Contato adicionado com sucesso.");
+			win.close();
+
+			if (_this.afterSave)
+			{
+				switch (typeof(_this.afterSave))
+				{
+					case 'function':
+						_this.afterSave();
+						break;
+
+					case 'string':
+						eval(_this.afterSave);
+						break;
+				}
+			}
+		}
+				
+		var _this = this;
+		var sdata = data.split(",");
+		var temp = sdata[3];
+		sdata[3]='';
+		sdata[4]=temp;
+		sdata = new Array();
+
+		for (i=0; i< fields.length; i++) {			
+			if(i == 3){
+				sdata[i] = '';
+				sdata[i+1] = document.getElementById("ccQuickAddCI" + i).value;
+			}
+			else
+				sdata[i] = document.getElementById("ccQuickAddCI" + i).value;
+		}
+
+		var full_name = trim(sdata[1]) + ' ' + trim(sdata[2]);
+		var email = trim(sdata[4]);				
+		//Utiliza expressão regular para validar email
+		var reEmail = /^[A-Za-z\d_-]+(\.[A-Za-z\d_-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
+
+		if(!reEmail.test(email)){
+			alert("O endereco de email '" + email + "' nao e valido!\n" +
+			"Por favor informe um endereco valido.");
+			return false;
+		}
+		
+		var sdata = 'add='+escape(connector.serialize(sdata));
+		var CC_url = '../index.php?menuaction=contactcenter.ui_data.data_manager&method=';
+		connector.newRequest('cQuickAdd.Send', CC_url+'quick_add', 'POST', handler, sdata);
+	}
+	
+	cQuickAddContact.prototype.fechar = function(id) {
+		var div = document.getElementById('cc_rectQuickAddContact');
+		win = this.arrayWin[div.id];
+		win.close();
+	}
+	
+	
+/* Build the Object */
+	var	ccQuickAddOne = new cQuickAddContact();
Index: tags/expressoMail1_2/1.234/js/DropDownContacts.js
===================================================================
--- tags/expressoMail1_2/1.234/js/DropDownContacts.js	(revision 804)
+++ tags/expressoMail1_2/1.234/js/DropDownContacts.js	(revision 804)
@@ -0,0 +1,327 @@
+/**********************************************************************************\
+* Written by Joao Alfredo Knopik Junior (JakJr) <joao.alfredo@gmail.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.                                                             *
+\**********************************************************************************/
+// variavel global que salva o contato atual selecionado.
+var actualSelectedContact = 0;
+var setTimeOutLayer = 0;
+var div_message_scroll = 0;
+var tst_i = 0;
+function search_contacts(key_pressed, fld_id)
+{
+	div_message_scroll = Element('div_message_scroll_'+ fld_id.substring(fld_id.length - 1, fld_id.length));
+
+	var string_contacts = contacts
+	if (Element(fld_id))
+		var mail = Element(fld_id).value;
+	else
+		return;
+	
+	var array_contacts = string_contacts.split(",");
+	var tmp = mail.split(",");
+	mail = trim(tmp[tmp.length - 1]);
+	tmp_mail = mail;
+	
+	seekDot = /\./gi;
+	mail = mail.replace(seekDot, "[.]");
+	mail = mail.replace('"', "&quot;");
+	mail = mail.replace("\n", "");
+	mail = mail.replace("\r", "");
+	mail = mail.replace("\t", "");
+	posX = findPosX(document.getElementById(fld_id));
+	posY = findPosY(document.getElementById(fld_id));
+
+	if ((!string_contacts) || (string_contacts.length==0) || (mail.length==0)){
+		hideTip();
+		return;
+	}
+		
+	if (mail.length == 0){
+		hideTip();
+		return;
+	}
+	
+	var RegExp_name = new RegExp("\\b"+mail, "i");
+	var RegExp_mail = new RegExp("^"+mail, "i");
+
+	var match_contacts = new Array();
+	var match_index = 0;
+
+	for (var i=0; i<array_contacts.length; i++){
+		tmp = array_contacts[i].split(";");
+		if ( (RegExp_name.test(tmp[0])) || (RegExp_mail.test(tmp[1])) ){
+			if (tmp[1])
+			{
+				var _tmp1 = RegExp_mail.exec(tmp[1]);
+				if ( _tmp1 )
+					tmp[1] = tmp[1].replace(RegExp_mail, _tmp1[0].bold());
+				var _tmp0 = RegExp_name.exec(tmp[0]);
+				if ( _tmp0 )
+					tmp[0] = tmp[0].replace(RegExp_name, _tmp0[0].bold());
+				match_contacts[match_index] = '&quot;' + tmp[0] + '&quot; &lt;' + tmp[1] + '&gt;';
+				match_index++;
+			}
+		}
+	}
+
+	if (match_contacts.length == 0){
+		hideTip();
+		return;
+	}
+
+	var table_contacts_header = "<table style='font-family:arial;font-size:12;color:#0000CF' border=0 cellpadding=0 cellspacing=0>";
+	var table_contacts_foot = "</table>";
+	var lines = '';
+	var REG_EXP = /^[^\#|^\$|^\%|^\!|^\?|^\"|^\']+$/;
+	var match_cont = "";
+	for (var i=0; i<match_contacts.length; i++)
+	{
+		var aux = match_contacts[i].split("");
+		for(var j in aux){
+			if(REG_EXP.test(aux[j])){
+				match_cont += aux[j];
+			}else{
+				match_cont += "";
+			}
+		}
+		//lines = lines + "<tr><td id=td_DD_"+i+" onClick=\"javascript:hideTip();makeMailList('"+match_contacts[i]+"','"+fld_id+"');document.getElementById('" + fld_id + "').focus();\" onmouseover=\"selectContact("+i+")\">" + match_contacts[i] + "</td></tr>"
+		lines = lines + "<tr><td id=td_DD_"+i+" onMouseDown=\"javascript:hideTip();makeMailList('"+match_cont+"','"+fld_id+"');setTimeout('document.getElementById(\\'"+fld_id+"\\').focus()',300);\" onmouseover=\"selectContact("+i+")\">" + match_cont + "</td></tr>"
+		match_cont = "";
+	}
+
+	// treat especials keys
+	// key ENTER
+	if ((key_pressed == 13) && (document.getElementById('tipDiv').style.visibility))
+	{
+		//Bug, sometimes the actualSelectedContact do not exist.
+		try{
+			makeMailList(document.getElementById('td_DD_' + actualSelectedContact).innerHTML,fld_id);
+			hideTip();
+		}
+		catch(e){}
+		return;
+	}
+	// key lostfocus
+	if ((key_pressed == 'lostfocus') && (document.getElementById('tipDiv').style.visibility)){
+		hideTip();
+		return;
+	}
+	// key DOWN
+	if ((key_pressed == 40) && (document.getElementById('tipDiv').style.visibility)){
+		if (actualSelectedContact != (match_contacts.length - 1)){
+			selectContact(actualSelectedContact + 1);
+		}
+		return;
+	}
+	// key UP
+	if ((key_pressed == 38) && (document.getElementById('tipDiv').style.visibility)){
+		if (actualSelectedContact != 0){			
+			selectContact(actualSelectedContact - 1);
+			return;
+		}
+	}
+
+	if (lines != ''){
+		table_contacts = table_contacts_header + lines + table_contacts_foot
+		doTooltip(posX, posY, table_contacts)
+	}
+	else
+		hideTip();
+		
+	return true;
+}
+
+function makeMailList(mail,fld_id)
+{
+	list = Element(fld_id);
+	for (var i = list.value.length; ((i!=0) && (list.value.substring(i-1,i)!=',')); i--){}
+	mail = mail.replace(/&lt;/g,"<");
+	mail = mail.replace(/&gt;/g,">");
+	mail = mail.replace(/<[bB]>/g,"");
+	mail = mail.replace(/<\/[bB]>/g,"");
+	if (i == 0)
+		list.value = list.value.substring(0,i) + mail + ', ';
+	else
+		list.value = list.value.substring(0,i) + ' ' + mail + ', ';
+}
+
+function selectContact(newContact){	
+	//Desabilitar o atual
+	var elAtual = document.getElementById('td_DD_' + actualSelectedContact);
+	if(elAtual)
+		elAtual.bgColor = "#efefef";	
+		
+	//Habilitar o novo.		
+	var elNew = document.getElementById('td_DD_' + newContact).bgColor = "#c0e0ff";
+	if(elNew)
+		elNew.bgColor = "#c0e0ff";
+
+	actualSelectedContact = newContact;
+}
+
+function doTooltip(x,y,msg) {
+	if ( typeof Tooltip == "undefined" || !Tooltip.ready ) return;
+	Tooltip.show(x,y,msg);
+}
+
+function hideTip() {
+	if ( typeof Tooltip == "undefined" || !Tooltip.ready ) return;
+	actualSelectedContact=0;
+	Tooltip.hide();
+}
+
+function findPosX(obj)
+{
+	var curleft = 0;
+	if (obj.offsetParent)
+	{
+		while (obj.offsetParent)
+		{
+			curleft += obj.offsetLeft
+			obj = obj.offsetParent;
+		}
+	}
+	else if (obj.x)
+		curleft += obj.x;
+	return curleft;
+}
+
+function findPosY(obj)
+{
+	var curtop = 0;
+	if (obj.offsetParent)
+	{
+		while (obj.offsetParent)
+		{
+			curtop += obj.offsetTop
+			obj = obj.offsetParent;
+		}
+	}
+	else if (obj.y)
+		curtop += obj.y;
+	return curtop;
+}
+
+function trim(inputString) {
+   if (typeof inputString != "string") 
+   	return inputString;
+      
+   var retValue = inputString;
+   var ch = retValue.substring(0, 1);
+   while (ch == " ") { 
+	  retValue = retValue.substring(1, retValue.length);
+	  ch = retValue.substring(0, 1);
+   }
+   ch = retValue.substring(retValue.length-1, retValue.length);
+   while (ch == " ") { 
+	  retValue = retValue.substring(0, retValue.length-1);
+	  ch = retValue.substring(retValue.length-1, retValue.length);
+   }
+   while (retValue.indexOf("  ") != -1) { 
+	  retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); 
+   }
+   return retValue; 
+}
+
+var Tooltip = {
+    overlaySelects: true,  // iframe shim for select lists (ie win)
+    offX: 0,
+    offY: 50,
+    tipID: "tipDiv",
+    showDelay: 0,
+    hideDelay: 0,
+    
+    ovTimer: 0, // for overlaySelects
+    ready:false, timer:null, tip:null, shim:null, supportsOverlay:false,
+  
+    init: function() {
+            var el_dropdowncontact = document.createElement("DIV");
+			el_dropdowncontact.id = this.tipID;
+			document.body.appendChild(el_dropdowncontact);
+            this.supportsOverlay = this.checkOverlaySupport();
+            this.ready = true;
+    },
+    
+    show: function(x, y, msg) {
+        this.tip = document.getElementById( this.tipID );
+        this.writeTip(msg);
+        
+        this.positionTipStatic(x,y);
+   		this.handleOverlay(1, this.showDelay, x+this.offX,y+this.offY);
+		document.getElementById('td_DD_0').bgColor = "#c0e0ff";
+      	this.timer = setTimeout("Tooltip.toggleVis('" + this.tipID + "', 'visible')", this.showDelay);
+    },
+    
+    writeTip: function(msg) {
+        if ( this.tip && typeof this.tip.innerHTML != "undefined" ) this.tip.innerHTML = msg;
+        this.tip.style.width = 'auto';
+    },
+    
+    positionTipStatic: function(x,y) {
+        if ( this.tip && this.tip.style ) {
+			this.tip.style.left = x + this.offX + "px";
+			this.tip.style.top = y + this.offY + "px";
+        }
+     },
+
+	scrollChanged: function() {
+		Element('tipDiv').style.visibility = 'hidden';
+		Tooltip.hide();
+	},
+
+    hide: function() {
+        if (this.timer) { clearTimeout(this.timer);	this.timer = 0; }
+		this.handleOverlay(0, this.hideDelay);
+        this.timer = setTimeout("Tooltip.toggleVis('" + this.tipID + "', 'hidden')", this.hideDelay);
+        this.tip = null; 
+    },
+    
+  toggleVis: function(id, vis) { // to check for el_dropdowncontact, prevent (rare) error
+      var el_dropdowncontact = document.getElementById(id);
+      if (el_dropdowncontact) el_dropdowncontact.style.visibility = vis;
+  },
+
+	// check need for and support of iframe shim
+	checkOverlaySupport: function() {
+		return (is_ie);
+	}, 
+    
+	handleOverlay: function(bVis, d, x ,y) {
+		var _scrollY = div_message_scroll ? div_message_scroll.scrollTop : 0;
+        if(_scrollY > 0 && this.tip) {
+	        this.tip.style.top = (findPosY(this.tip) - _scrollY)+ "px";
+	    }
+		if ( this.overlaySelects && this.supportsOverlay ) {
+			if (this.ovTimer) { clearTimeout(this.ovTimer); this.ovTimer = 0; }
+			switch (bVis) {
+			case 1 :
+				if ( !document.getElementById('tipShim') ) 
+					document.body.insertAdjacentHTML("beforeEnd", '<iframe id="tipShim" src="about:blank" style="position:absolute; left:' + x + '; top:' + y + '; z-index:500; visibility:hidden" scrolling="no" frameborder="0"></iframe>');
+					this.shim = document.getElementById('tipShim'); 
+					if (this.shim && this.tip) {
+						this.shim.style.width = this.tip.offsetWidth + "px";
+                        this.shim.style.height = this.tip.offsetHeight + "px";
+                        this.shim.style.top = findPosY(this.tip)+ "px";
+					}
+					this.ovTimer = setTimeout("Tooltip.toggleVis('tipShim', 'visible')", d);
+				break;
+			case 0 :
+				this.ovTimer = setTimeout("Tooltip.toggleVis('tipShim', 'hidden')", d);
+				if (this.shim) this.shim = null;
+				break;
+			}
+		}
+	}
+}
+Tooltip.init();
+// Criar um estilo no html (tpl) com os seguintes parametros:
+//div#tipDiv {
+//  position:absolute; visibility:hidden; left:0; top:0; z-index:10000;
+//  background-color:#EFEFEF; border:1px solid #337;
+//  width:220px; padding:3px;
+//  color:#000; font-size:11px; line-height:1.2;
+//  cursor: default;
Index: tags/expressoMail1_2/1.234/js/color_palette.js
===================================================================
--- tags/expressoMail1_2/1.234/js/color_palette.js	(revision 320)
+++ tags/expressoMail1_2/1.234/js/color_palette.js	(revision 320)
@@ -0,0 +1,96 @@
+// Inicializa palheta de cores;
+function cColorPalette(){
+	this.editor;
+	this.div;
+	this.parentDiv;
+	this.colors = new Array(	new Array("#FFFFFF","#FFCCCC","#FFCC99","#FFFF99","#FFFFCC","#99FF99","#99FFFF","#CCFFFF","#CCCCFF","#FFCCFF"),
+						new Array("#CCCCCC","#FF6666","#FF9966","#FFFF66","#FFFF33","#66FF99","#33FFFF","#66FFFF","#9999FF","#FF99FF"),
+						new Array("#C0C0C0","#FF0000","#FF9900","#FFCC66","#FFFF00","#33FF33","#66CCCC","#33CCFF","#6666CC","#CC66CC"),
+						new Array("#999999","#CC0000","#ff6600","#FFCC33","#FFCC00","#33CC00","#00CCCC","#3366FF","#6633FF","#CC33CC"),
+						new Array("#666666","#990000","#CC6600","#CC9933","#999900","#009900","#339999","#3333FF","#6600CC","#993399"),
+						new Array("#333333","#660000","#993300","#996633","#666600","#006600","#336666","#000099","#333399","#663366"),
+						new Array("#000000","#330000","#663300","#663333","#333300","#003300","#003333","#000066","#330099","#330033"));
+	this.buildPalette();
+}
+
+// funçoes
+cColorPalette.prototype.changeFontColor = function (color){	
+	var mainField = this.editor.contentWindow;
+	mainField.document.execCommand("forecolor", false, color);	
+	document.getElementById("palettecolor").style.visibility="hidden";
+	mainField.focus();
+}
+
+cColorPalette.prototype.repos = function (intElemScrollTop)
+{
+	var new_pos = findPosY(Element("forecolor")) - intElemScrollTop + 20;
+	this.div.style.top = new_pos;
+}
+
+cColorPalette.prototype.loadPalette = function (id)
+{
+	this.parentDiv = document.getElementById("body_position_"+id);
+	this.editor = document.getElementById("body_"+id);
+	if(this.div.parentNode)
+		this.div.parentNode.removeChild(this.div);	
+
+	this.parentDiv.appendChild(this.div);	
+	this.div.style.position = "absolute";
+
+	if(is_ie)
+	{
+		this.div.style.top = findPosY(Element("forecolor")) - 100;
+		this.div.style.left = findPosX(Element("forecolor"))- 200;
+	}
+	else
+	{
+		this.div.style.top = ColorPalette.repos(Element("div_message_scroll_"+id).scrollTop);
+		this.div.style.left = findPosY(Element("forecolor"))+ 227;
+	}
+}
+
+cColorPalette.prototype.buildPalette = function (){
+	
+  	this.div = document.createElement("DIV");
+	this.div.style.visibility="hidden";
+  	this.div.id= "palettecolor";
+  	this.div.style.top = "0px";
+  	this.div.style.left = "0px";
+  	this.div.style.width	= "auto";
+  	this.div.style.height= "auto";
+  	var t1 = document.createElement("TABLE");
+ 	var tb1 = document.createElement("TBODY");
+ 	t1.appendChild(tb1);
+  	t1.border ="1px";
+	t1.cellPadding ="0px";
+	t1.cellSpacing ="0px";
+ 	t1.style.width = "100px";
+ 	t1.bgcolor = "WHITE";
+  	this.div.appendChild(t1);
+  	_this = this;
+  	for( i = 0; i < 10; i++) {
+  		var _tr = document.createElement("TR");
+		tb1.appendChild(_tr);		
+  		for( j = 0; j < 7; j++) {
+			var _td = document.createElement("TD");
+  			_td.style.background =  this.colors[j][i];
+	  		_td.unselectable = "on";
+  			_td.style.width = "15px";
+  			_td.style.height = "15px";
+  			_td.title =   this.colors[j][i];
+  			_td.id =   this.colors[j][i];
+  			_td.className = "unsel_color";
+	  		_td.onclick= function(){ document.getElementById("palettecolor").style.visibility="hidden";ColorPalette.changeFontColor(this.id);};
+	  		_td.onmouseover = function(){ this.className = "sel_color";};
+	  		_td.onmouseout = function(){ this.className = "unsel_color";}
+			var p = new Image();
+  			p.style.width='1px';
+  			p.style.height='1px';
+			_td.appendChild(p);
+	  		_tr.appendChild(_td);
+  		}
+	}
+}
+
+/* Build the Object */
+var ColorPalette = new cColorPalette();
Index: tags/expressoMail1_2/1.234/js/QuickCatalogSearch.js
===================================================================
--- tags/expressoMail1_2/1.234/js/QuickCatalogSearch.js	(revision 810)
+++ tags/expressoMail1_2/1.234/js/QuickCatalogSearch.js	(revision 810)
@@ -0,0 +1,539 @@
+	function emQuickCatalogSearch ()
+	{
+		this.arrayWin = new Array();
+		this.el;
+		this.cc_contacts = new Array();
+		this.cc_groups  = new Array();
+	}
+
+	emQuickCatalogSearch.prototype.showList = function(data, begin, end){
+		id = '1';
+		_this = this;
+		var el = document.createElement("DIV");
+		el.style.visibility = "hidden";
+		el.style.position = "absolute";
+		el.style.left = "0px";
+		el.style.top = "0px";
+		el.style.width = "0px";
+		el.style.height = "0px";
+		el.id = 'window_QuickCatalogSearch';
+		document.body.appendChild(el);
+		el.innerHTML = "";
+		
+		if (document.getElementById('select_QuickCatalogSearch') == null){
+
+			var title_innerHTML = get_lang('Select a name') + ':';
+			if (data.quickSearch_only_in_userSector)
+				title_innerHTML += "<font color='BLACK' nowrap> ("+get_lang('Showing only the results found in your organization')+".)</font>"
+
+			var title = document.createElement("SPAM");
+			title.id = 'window_QuickCatalogSearch_title';
+			title.innerHTML = "&nbsp;&nbsp;<b><font color='BLUE' nowrap>"+title_innerHTML+"</font></b><br>&nbsp;&nbsp;";
+			el.appendChild(title);
+			
+			var cmb = document.createElement("SELECT");
+			cmb.id = "select_QuickCatalogSearch";
+			cmb.style.width = "685px";
+			cmb.size = "12";
+			cmb.onkeypress = function (e)
+			{
+				if (is_ie)
+				{
+					if ((window.event.keyCode) == 13)
+					{
+						QuickCatalogSearch.transfer_result(data.field, data.ID, begin, end);
+					}
+					else if ((window.event.keyCode) == 27)
+					{
+						QuickCatalogSearch.close_QuickSearch_window(data.field, data.ID);
+					}
+				}
+				else
+				{
+					if ((e.keyCode) == 13)
+					{
+						QuickCatalogSearch.transfer_result(data.field, data.ID, begin, end);
+					}
+					else if ((e.keyCode) == 27)
+					{
+						QuickCatalogSearch.close_QuickSearch_window(data.field, data.ID);
+					}
+				}
+			};
+			el.appendChild(cmb);
+
+			var space = document.createElement('SPAN');
+			space.innerHTML = "<BR>&nbsp;&nbsp;";
+			el.appendChild(space);
+
+			var butt = document.createElement('BUTTON');
+			var buttext = document.createTextNode('OK');
+			butt.id = "QuickCatalogSearch_button_ok";
+			butt.appendChild(buttext);
+			butt.onclick = function () {QuickCatalogSearch.transfer_result(data.field, data.ID, begin, end);};
+			el.appendChild(butt);
+
+			var space = document.createElement('SPAN');
+			space.innerHTML = "&nbsp;&nbsp;";
+			el.appendChild(space);
+
+			var butt = document.createElement('BUTTON');
+			butt.id = "QuickCatalogSearch_button_close";
+			var buttext = document.createTextNode(get_lang('Close'));
+			butt.appendChild(buttext);
+			butt.onclick = function () {QuickCatalogSearch.close_QuickSearch_window(data.field, data.ID);};
+			el.appendChild(butt);
+		}
+		else{
+			var title_innerHTML = get_lang('Select a name') + ':';
+			if (data.quickSearch_only_in_userSector)
+				title_innerHTML += "<font color='BLACK' nowrap> ("+get_lang('Showing only the results found in your organization')+".)</font>"
+
+			var title = Element('window_QuickCatalogSearch_title');
+			title.innerHTML = "&nbsp;&nbsp;<b><font color='BLUE' nowrap>"+title_innerHTML+"</font></b><br>&nbsp;&nbsp;";
+			
+			var cmb = document.getElementById('select_QuickCatalogSearch');
+			cmb.onkeypress = function (e)
+			{
+				if (is_ie)
+				{
+					if ((window.event.keyCode) == 13)
+					{
+						QuickCatalogSearch.transfer_result(data.field, data.ID, begin, end);
+					}
+					else if ((window.event.keyCode) == 27)
+					{
+						QuickCatalogSearch.close_QuickSearch_window(data.field, data.ID);
+					}
+				}
+				else
+				{
+					if ((e.keyCode) == 13)
+					{
+						QuickCatalogSearch.transfer_result(data.field, data.ID, begin, end);
+					}
+					else if ((e.keyCode) == 27)
+					{
+						QuickCatalogSearch.close_QuickSearch_window(data.field, data.ID);
+					}
+				}
+			};
+
+			for (i=0; i<cmb.length; i++)
+				cmb.options[i--] = null;
+			
+			var butt_ok = document.getElementById("QuickCatalogSearch_button_ok");
+			var butt_close = document.getElementById("QuickCatalogSearch_button_close");
+			butt_ok.onclick = function () {QuickCatalogSearch.transfer_result(data.field, data.ID, begin, end);};
+			butt_close.onclick = function () {QuickCatalogSearch.close_QuickSearch_window(data.field, data.ID);};
+		}
+
+		for (i=0; i<data.length; i++){
+			var Op = document.createElement("OPTION");
+			Op.text = data[i].cn + ' (' + data[i].mail + ')';
+			if (data[i].phone != '')
+				Op.text += ' - ' + data[i].phone;
+			if (data[i].ou != '')
+				Op.text += ' - ' + data[i].ou; // adicionado "data[i].ou" para exibir setor (F9)
+			Op.value = '"' + data[i].cn + '" ' + '<' + data[i].mail + '>';
+			cmb.options.add(Op);
+		}
+		cmb.options[0].selected = true;
+		_this.showWindow(el);
+	}
+	
+	emQuickCatalogSearch.prototype.showWindow = function (div)
+	{
+		if(! div) {
+			alert(get_lang('The list has no participant.'));
+			return;
+		}
+							
+		if(! this.arrayWin[div.id]) {
+			div.style.width = "700px";
+			div.style.height = "230px";
+			var title = get_lang('The results were found in the Global Catalog')+':';
+			var wHeight = div.offsetHeight + "px";
+			var wWidth =  div.offsetWidth   + "px";
+			div.style.width = div.offsetWidth - 5;
+
+			win = new dJSWin({			
+				id: 'QuickCatalogSearch_'+div.id,
+				content_id: div.id,
+				width: wWidth,
+				height: wHeight,
+				title_color: '#3978d6',
+				bg_color: '#eee',
+				title: title,						
+				title_text_color: 'white',
+				button_x_img: '../phpgwapi/images/winclose.gif',
+				border: true });
+			
+			this.arrayWin[div.id] = win;
+			win.draw();
+		}
+		else {
+			win = this.arrayWin[div.id];
+		}
+		//document.getElementById('QuickCatalogSearch_window_QuickCatalogSearch').style.display = "";
+		win.open();
+		document.getElementById('select_QuickCatalogSearch').focus();
+	}
+	
+	emQuickCatalogSearch.prototype.transfer_result = function (field, ID, begin, end){
+		cm = document.getElementById('select_QuickCatalogSearch');
+		option_selected = cm.options[cm.selectedIndex].value + ", ";
+		emailList = document.getElementById(field + "_" + ID).value;
+		
+		new_emailList = emailList.substring(0, begin) + option_selected + emailList.substring((parseInt(end) + 2), emailList.length);
+		document.getElementById(field + "_" + ID).value = new_emailList;
+		document.getElementById(field + "_" + ID).focus();
+		
+		//document.getElementById('QuickCatalogSearch_window_QuickCatalogSearch').style.display = "none";
+		this.arrayWin['window_QuickCatalogSearch'].close();
+	}
+	
+	emQuickCatalogSearch.prototype.close_QuickSearch_window = function (field, ID){
+		//document.getElementById('QuickCatalogSearch_window_QuickCatalogSearch').style.display = "none";
+		document.getElementById(field + "_" + ID).focus();
+		this.arrayWin['window_QuickCatalogSearch'].close();
+	}
+
+	emQuickCatalogSearch.prototype.close_window = function(id) {
+		this.arrayWin[id].close();
+		var group_values = Element('list_values');
+		var user_values = Element('user_values');	
+	}
+	emQuickCatalogSearch.prototype.showCatalogList = function (border_id){
+		var el = Element('catalog_list');
+
+		if(el) {
+			Element('border_id').value = border_id;
+			win = this.arrayWin[el.id];
+			win.open();
+			return;		
+		}
+		var border_input   = document.createElement("INPUT");
+		border_input.type  = 'hidden';
+		border_input.id    = 'border_id';
+		border_input.value = border_id;
+		document.body.appendChild(border_input);
+		el = document.createElement("DIV");		
+		el.id = 'catalog_list';
+		document.body.appendChild(el);			
+		el.style.visibility = "hidden";
+		el.style.position = "absolute";
+		el.style.width = "700px";
+		el.style.height = is_ie ? "360px" : "375px";		
+		el.style.left = "0px";
+		el.style.top = "0px";			
+		el.innerHTML = "<table border='0' cellpading='0' cellspacing='0' width='100%'>"+
+					   "<tr><td id='td1' style='cursor:pointer' align='center' onclick='QuickCatalogSearch.select_div(\"tab1\")'><a href='#' class='catalog' onclick='QuickCatalogSearch.select_div(\"tab1\");'>"+get_lang('Global Catalog')+"</a></td>"+
+					   "<td id='td2' style='background:#cecece;cursor:pointer' onclick='QuickCatalogSearch.select_div(\"tab2\")' align='center'><a href='#' class='catalog' onclick='QuickCatalogSearch.select_div(\"tab2\");'>"+get_lang('Personal Catalog')+"</a></td></tr>"+
+					   '</table>'+
+					   '<div id="tab1" align="center"><br>'+
+					   '<table border="0" cellpading="0" cellspacing="0">'+
+					   '<tr><td>'+get_lang("Select an organization and click on button <b>Search</b>")+'&nbsp;:</td></tr>'+
+  					'<tr><td><select style="display:none;width:150px" id="select_catalog" name="select_catalog" onchange="javascript:QuickCatalogSearch.update_organizations();"></select>&nbsp'+
+					'<select id="select_organization" style="width:150px" name="select_organization"></select>&nbsp;'+   
+					'<input type="text" id="search_for" name="search_for" value="" size="30" maxlength="30"/>&nbsp;<input type="button" onclick="QuickCatalogSearch.searchCatalogList(true)" class="button" value="'+get_lang('Search')+'">&nbsp;<input style="display:visible" type="button" onclick="QuickCatalogSearch.searchCatalogList(false)" class="button" value="'+get_lang('List All')+'"></td></tr>'+
+					   '<tr><td><input onclick="javascript:QuickCatalogSearch.changeOptions(this.value)" id="type_l" type="radio" name="type" value="l"/>'+get_lang('Public Lists')+'&nbsp;&nbsp;<input type="radio" id="type_u" name="type" value="u" onclick="javascript:QuickCatalogSearch.changeOptions(this.value)" checked/>'+get_lang('Users')+'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+
+					   '<span style="visibility:hidden;background:#cc4444" id=msg_search>&nbsp;&nbsp;<font face="Verdana" size="1" color="WHITE">'+get_lang('Search in Catalog')+'...</font>&nbsp;</span></td></tr>'+
+					   '<tr><td>'+
+				  	   '<span id="list_span"><select multiple style="display:none;width:580px" size="14" id="list_values"></select></span>'+
+				  	   '<span id="user_span"><select multiple style="width:580px" size="14" id="user_values"></select></span>'+
+				 	   '</td></tr>'+
+					   '<tr><td nowrap><center>'+get_lang('Click here to add into the fields')+':&nbsp;<input type="button" class="button" value="'+get_lang('TO')+'" onClick="javascript:QuickCatalogSearch.addContacts(\'to\')">&nbsp;'+
+				  	   '<input type="button" class="button" value="'+get_lang('CC')+'" onClick="javascript:QuickCatalogSearch.addContacts(\'cc\')">&nbsp;'+
+				   	   '<input type="button" class="button" value="'+get_lang('CCo')+'" onClick="javascript:QuickCatalogSearch.addContacts(\'cco\')">'+
+				  	   '</center></td></tr><tr><td nowrap><center><input type="button" value="'+get_lang('Close')+'" onClick="javascript:QuickCatalogSearch.close_window(\'catalog_list\')"></center></td></tr>'+
+					   '</table>'+
+					   '</div>'+
+					   '<div style="display:none" id="tab2" align="center">'+
+					   '<br><br><br>'+
+					   '<table border="0" cellpading="0" cellspacing="0">'+
+					   '<tr><td>'+get_lang("Select the type of contact that you want to view")+'&nbsp;:</td></tr>'+
+					   '<tr><td><input onclick="javascript:QuickCatalogSearch.changeOptions(this.value)" type="radio" name="type" value="p"/>' + get_lang('People') + '&nbsp;&nbsp;<input type="radio" name="type" value="g" onclick="javascript:QuickCatalogSearch.changeOptions(this.value)"/>' + get_lang('Groups') + ' &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+
+					   '<tr><td>'+
+				  	   '<span id="personal_span"><select multiple style="width:580px" size="14" id="list_personal"></select></span>'+
+				  	   '<span id="groups_span"><select multiple style="display:none;width:580px" size="14" id="list_groups"></select></span>'+
+				 	   '</td></tr>'+
+					   '<tr><td nowrap><center>'+get_lang('Click here to add into the fields')+':&nbsp;<input type="button" class="button" value="'+get_lang('TO')+'" onClick="javascript:QuickCatalogSearch.addContacts(\'to1\')">&nbsp;'+
+				  	   '<input type="button" class="button" value="'+get_lang('CC')+'" onClick="javascript:QuickCatalogSearch.addContacts(\'cc1\')">&nbsp;'+
+				   	   '<input type="button" class="button" value="'+get_lang('CCo')+'" onClick="javascript:QuickCatalogSearch.addContacts(\'cco1\')">'+
+				  	   '</center></td></tr><tr><td nowrap><center><input type="button" value="'+get_lang('Close')+'" onClick="javascript:QuickCatalogSearch.close_window(\'catalog_list\')"></center></td></tr>'+
+					   '</table>'+
+					   '</div>';
+
+		var title = get_lang('Search in the Global Catalog');
+		var wHeight = el.offsetHeight - (is_ie ? 10 : 0) + "px";
+		var wWidth =  el.offsetWidth   + "px";
+		el.style.width = el.offsetWidth;
+		
+		Element('search_for').onkeypress = function (e) {
+			if ((is_ie && (window.event.keyCode == 13)) || (!is_ie && e.keyCode == 13)) {
+				QuickCatalogSearch.searchCatalogList(true);
+			}
+		};
+
+		win = new dJSWin({			
+			id: 'win_'+el.id,
+			content_id: el.id,
+			width: wWidth,
+			height: wHeight,
+			title_color: '#3978d6',
+			bg_color: '#eee',
+			title: title,						
+			title_text_color: 'white',
+			button_x_img: '../phpgwapi/images/winclose.gif',
+			border: true });
+			
+		this.arrayWin[el.id] = win;		
+		win.draw();
+		win.open();
+
+		var handler_catalogs = function(data){
+			var user_catalog = get_lang("Global Catalog");
+			if(data.length > 1) {
+				Element('select_catalog').style.display = '';
+				for(i = 0; i < data.length; i++) {		
+					Element('select_catalog').options[i] = new Option(data[i],i);
+					if(user_catalog.toUpperCase() == data[i].toUpperCase())
+						Element('select_catalog').options[i].selected = true;
+				}
+			}
+		}
+		cExecute ("$this.ldap_functions.get_catalogs", handler_catalogs);		
+		
+		this.update_organizations();
+		var handler_cc_contacts= function(data){
+			if(data && data.length > 0){
+				var aux = data.split(",");
+				for(var i=0; i< aux.length; i++){
+					QuickCatalogSearch.cc_contacts[QuickCatalogSearch.cc_contacts.length] = aux[i];				
+				}
+			}
+		}
+		cExecute("$this.db_functions.get_cc_contacts",handler_cc_contacts);
+
+		var handler_cc_groups = function(data){
+			if(data && data.length > 0){
+				var aux = data.split(",");
+				for(var i=0; i < data.length; i++){
+					QuickCatalogSearch.cc_groups[QuickCatalogSearch.cc_groups.length] = aux[i];								
+				}	
+			}
+		}
+		cExecute("$this.db_functions.get_cc_groups",handler_cc_groups);
+	
+	}
+	
+	emQuickCatalogSearch.prototype.select_div = function(element){
+		if(element == 'tab1'){
+		   Element('tab1').style.display = '';
+		   Element('tab2').style.display = 'none';
+		   Element('td1').style.background = '#eee';	
+		   Element('td2').style.background = '#cecece';
+		}
+		if(element == 'tab2'){
+		   Element('tab1').style.display = 'none';
+		   Element('tab2').style.display = '';
+		   Element('td1').style.background = '#cecece';
+		   Element('td2').style.background = '#eee';		   
+
+		}
+	}
+	
+	emQuickCatalogSearch.prototype.load_catalog = function(){
+	
+		var _this = this;
+		var content = new Array;
+		var select = Element('list_personal').style.display == 'none'? Element('list_groups'): Element('list_personal');
+		
+		if(Element('list_personal').style.display == 'none'){
+			content = _this.cc_groups;
+		}else{
+			content = _this.cc_contacts;
+		}
+		if(select.options.length > 0){
+			for(var i=0; i < select.options.length; i++){
+				select.options[i] = null;
+				i--;
+			}
+		}
+		for(var i=0; i < content.length; i++){
+			if(content[i] != undefined){
+				var aux = content[i].split(";");
+				var opt = new Option(aux[0] + ' (' + aux[1] + ')','"' + aux[0] + '" ' + '<' + aux[1] + '>',false,false);
+				select[select.length] = opt;
+			}
+		}
+		content.splice(0,(content.lenght));
+	}
+
+	emQuickCatalogSearch.prototype.update_organizations = function(){
+		while(Element('select_organization').options.length > 0) {
+			Element('select_organization').remove(0);
+		}
+	 	var handler_org = function(data){
+			Element('select_organization').options[0] = new Option(get_lang('all'),'all');
+			if (data != null){
+				var user_organization = Element('user_organization').value;
+				for(x = 0; x < data.length; x++) {
+					Element('select_organization').options[x+1] = new Option(data[x].toUpperCase(),data[x]);
+					if(user_organization.toUpperCase() == data[x].toUpperCase())
+						Element('select_organization').options[x+1].selected = true;
+				}
+			}
+		}		
+		cExecute ("$this.ldap_functions.get_organizations&referral=false&catalog="+Element('select_catalog').value, handler_org);		
+	}
+
+	emQuickCatalogSearch.prototype.changeOptions = function(type){	
+
+		switch(type){
+			case 'u':
+				Element('list_values').style.display = 'none';
+				Element('user_values').style.display = '';
+				break;
+			
+			case 'l':		
+				Element('user_values').style.display = 'none';
+				Element('list_values').style.display = '';		
+				break;
+
+			case 'p':
+				Element('list_personal').style.display = '';
+				Element('list_groups').style.display = 'none'
+				QuickCatalogSearch.load_catalog();				
+				break;
+			
+			case 'g':
+				Element('list_personal').style.display = 'none';
+				Element('list_groups').style.display = ''
+				QuickCatalogSearch.load_catalog();
+				break;
+		}
+
+	}
+
+	emQuickCatalogSearch.prototype.addContacts = function(field) {
+		
+		var border_id 	= Element('border_id').value;
+ 		var select		= Element('user_values').style.display == 'none' ? Element('list_values') : Element('user_values');
+		if(field == "to1" || field == "cc1" || field == "cco1"){
+			field = field.substr(0,field.length - 1);
+			var select = Element('list_personal').style.display == 'none' ? Element('list_groups') : Element('list_personal');
+		}
+		var fieldOpener = Element(field+"_"+border_id);
+		var not_selected = true;		
+		for (i = 0 ; i < select.length ; i++) {			
+			if (select.options[i].selected && select.options[i].value != '-1') {
+				if(fieldOpener.value.length > 0 && (fieldOpener.value.lastIndexOf(',') != (fieldOpener.value.length -1))){
+					fieldOpener.value += ",";
+				}
+				fieldOpener.value += select.options[i].value + ",";
+				not_selected = false;
+				select.options[i].selected = false;
+			}
+		}
+		
+		if(not_selected)
+			return false;
+			
+		if(field != 'to'){
+ 			a_link = Element("a_"+field+"_link_"+border_id);
+ 			if(a_link)
+ 				a_link.onclick(); 			
+ 		}				
+	}
+	
+	emQuickCatalogSearch.prototype.searchCatalogList = function (itemSearch){
+
+		if(itemSearch && Element('search_for').value.length < 4){
+			alert(get_lang('your search argument must be longer than 4 characters.'));
+			Element('search_for').focus();
+			return false;
+		}
+		var organization = Element('select_organization').value;		
+		var search		 = itemSearch ? Element('search_for').value : '';
+		var catalog		 = Element('select_catalog').value;
+		var max_result	= 400;
+
+		var handler_searchResults = function(data){
+			Element('msg_search').style.visibility = 'hidden';
+			if(data.error){
+				alert(get_lang('More than %1 results. Please, try to refine your search.',max_result));
+				return false;
+			}else if(data.users.length == 0 && data.groups.length == 0){
+				alert(get_lang('None result was found.'));
+			}
+
+			
+			var group = Element('list_span');
+			var user  = Element('user_span');	
+			if(is_ie){
+				group.innerHTML = '';
+				user.innerHTML = '';
+			}
+			else {
+				group = Element('list_values');
+				user  = Element('user_values');	
+				for(var i = 0;i < group.options.length; i++)				
+					group.options[i--] = null;
+				for(var i = 0;i < user.options.length; i++)				
+					user.options[i--] = null;
+			}
+
+			var arr 	= new Array(max_result);
+
+			for(i = 0; data.groups && i < data.groups.length; i++) {
+				// Maneiras diferentes de se montar uma tag OPTION, pois no IE o objeto Option é muito lento.
+				if(is_ie)
+					arr[i] = '<option value="'+'&quot;'+data.groups[i].name+'&quot; &lt;'+data.groups[i].email+'&gt;">'+data.groups[i].name+' ('+data.groups[i].email+')'+'</option>';
+				else
+					group.options[i] = new Option(data.groups[i].name+' ('+data.groups[i].email+')','"'+data.groups[i].name+'" <'+data.groups[i].email+'>');
+			}
+	
+			
+			if(is_ie)
+				group.innerHTML = '<select multiple style="display:none;width:580px" size="14" id="list_values">'+ arr.join() +'</select>';
+
+			arr = new Array(max_result);
+			
+			for(i = 0; data.users && i < data.users.length; i++) {
+			/*******************************************************************************************/
+			/* O resultado pratico do bloco de codigo a seguir eh a exibicao dos valores em tela,
+			ja que vai verificar se o departamento e o email estao vazios ou nulos e a partir dai o
+			resultado apresentado em tela sera exibido de maneira mais apresentavel;
+			*/
+				//verifica se departamento eh null ou nao;
+				var department = data.users[i].department ? " - " + data.users[i].department : "";
+				//verifica se email eh null ou nao;
+				var email = data.users[i].email ? data.users[i].email : "";
+
+				// Maneiras diferentes de se montar uma tag OPTION, pois no IE o objeto Option é muito lento.
+				if(is_ie)
+					arr[i] = '<option value="'+'&quot;'+data.users[i].name+'&quot; &lt;'+email+'&gt;">'+data.users[i].name+' ('+email+')'+department+'</option>';
+				else {
+					user.options[i] = new Option(data.users[i].name+' ('+email+')'+department,'"'+data.users[i].name+'" <'+email+'>'); // incluido data.users[i].department para exibir setor na opcao "Pesquisar" do email;
+				}
+			}
+	
+			if(is_ie)
+				user.innerHTML = '<select multiple style="width:580px" size="14" id="user_values">'+ arr.join() +'</select>';
+
+			// Display entries found.
+			var type = (data.groups.length > 0 && data.users.length == 0) ? 'l' : 'u';
+			Element("type_"+type).checked = true;
+			QuickCatalogSearch.changeOptions(type);
+		}
+
+		Element('msg_search').style.visibility = 'visible';
+		cExecute ("$this.ldap_functions.catalogsearch&max_result="+max_result+"&organization="+organization+"&search_for="+search+"&catalog="+catalog, handler_searchResults);
+	}
+
+	
+/* Build the Object */
+	var QuickCatalogSearch;
+	QuickCatalogSearch = new emQuickCatalogSearch();
Index: tags/expressoMail1_2/1.234/js/fckeditor/fckconfig.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/fckconfig.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/fckconfig.js	(revision 389)
@@ -0,0 +1,187 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckconfig.js
+ * 	Editor configuration settings.
+ * 	
+ * 	Follow this link for more information:
+ * 	http://wiki.fckeditor.net/Developer%27s_Guide/Configuration/Configurations_Settings
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCKConfig.CustomConfigurationsPath = '' ;
+
+FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css' ;
+FCKConfig.ToolbarComboPreviewCSS = '' ;
+
+FCKConfig.DocType = '' ;
+
+FCKConfig.BaseHref = '' ;
+
+FCKConfig.FullPage = false ;
+
+FCKConfig.Debug = false ;
+FCKConfig.AllowQueryStringDebug = true ;
+
+FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ;
+FCKConfig.PreloadImages = [ FCKConfig.SkinPath + 'images/toolbar.start.gif', FCKConfig.SkinPath + 'images/toolbar.buttonarrow.gif' ] ;
+
+FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ;
+
+// FCKConfig.Plugins.Add( 'autogrow' ) ;
+FCKConfig.AutoGrowMax = 400 ;
+
+// FCKConfig.ProtectedSource.Add( /<%[\s\S]*?%>/g ) ;	// ASP style server side code <%...%>
+// FCKConfig.ProtectedSource.Add( /<\?[\s\S]*?\?>/g ) ;	// PHP style server side code
+// FCKConfig.ProtectedSource.Add( /(<asp:[^\>]+>[\s|\S]*?<\/asp:[^\>]+>)|(<asp:[^\>]+\/>)/gi ) ;	// ASP.Net style tags <asp:control>
+
+FCKConfig.AutoDetectLanguage	= false ;
+FCKConfig.DefaultLanguage		= 'pt-br' ;
+FCKConfig.ContentLangDirection	= 'ltr' ;
+
+FCKConfig.ProcessHTMLEntities	= true ;
+FCKConfig.IncludeLatinEntities	= true ;
+FCKConfig.IncludeGreekEntities	= true ;
+
+FCKConfig.ProcessNumericEntities = false ;
+
+FCKConfig.AdditionalNumericEntities = ''  ;		// Single Quote: "'"
+
+FCKConfig.FillEmptyBlocks	= true ;
+
+FCKConfig.FormatSource		= true ;
+FCKConfig.FormatOutput		= true ;
+FCKConfig.FormatIndentator	= '    ' ;
+
+FCKConfig.ForceStrongEm = true ;
+FCKConfig.GeckoUseSPAN	= false ;
+FCKConfig.StartupFocus	= false ;
+FCKConfig.ForcePasteAsPlainText	= false ;
+FCKConfig.AutoDetectPasteFromWord = true ;	// IE only.
+FCKConfig.ForceSimpleAmpersand	= false ;
+FCKConfig.TabSpaces		= 0 ;
+FCKConfig.ShowBorders	= true ;
+FCKConfig.SourcePopup	= false ;
+FCKConfig.UseBROnCarriageReturn	= false ;	// IE only.
+FCKConfig.ToolbarStartExpanded	= true ;
+FCKConfig.ToolbarCanCollapse	= true ;
+FCKConfig.IgnoreEmptyParagraphValue = true ;
+FCKConfig.PreserveSessionOnFileBrowser = false ;
+FCKConfig.FloatingPanelsZIndex = 10000 ;
+
+FCKConfig.TemplateReplaceAll = true ;
+FCKConfig.TemplateReplaceCheckbox = true ;
+
+FCKConfig.ToolbarLocation = 'In' ;
+
+FCKConfig.ToolbarSets["Default"] = [
+	['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],
+	['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
+	['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
+	['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
+	'/',
+	['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
+	['OrderedList','UnorderedList','-','Outdent','Indent'],
+	['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
+	['Link','Unlink','Anchor'],
+	['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak','UniversalKey'],
+	'/',
+	['Style','FontFormat','FontName','FontSize'],
+	['TextColor','BGColor'],
+	['FitWindow','-','About']
+] ;
+
+FCKConfig.ToolbarSets["ExpressoLivre"] = [
+	['FontFormat','Bold','Italic','Underline','-','TextColor','BGColor','-'],
+	['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
+	'/',
+	['FontName','FontSize','Source']
+] ;
+
+FCKConfig.ContextMenu = ['Generic','Link','Anchor','Image','Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','Table','Form'] ;
+
+FCKConfig.FontColors = '000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,808080,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF' ;
+
+FCKConfig.FontNames		= 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
+FCKConfig.FontSizes		= '1/xx-small;2/x-small;3/small;4/medium;5/large;6/x-large;7/xx-large' ;
+FCKConfig.FontFormats	= 'p;div;pre;address;h1;h2;h3;h4;h5;h6' ;
+
+FCKConfig.StylesXmlPath		= FCKConfig.EditorPath + 'fckstyles.xml' ;
+FCKConfig.TemplatesXmlPath	= FCKConfig.EditorPath + 'fcktemplates.xml' ;
+
+FCKConfig.SpellChecker			= 'ieSpell' ;	// 'ieSpell' | 'SpellerPages'
+FCKConfig.IeSpellDownloadUrl	= 'http://wcarchive.cdrom.com/pub/simtelnet/handheld/webbrow1/ieSpellSetup240428.exe' ;
+
+FCKConfig.MaxUndoLevels = 15 ;
+
+FCKConfig.DisableObjectResizing = false ;
+FCKConfig.DisableFFTableHandles = true ;
+
+FCKConfig.LinkDlgHideTarget		= false ;
+FCKConfig.LinkDlgHideAdvanced	= false ;
+
+FCKConfig.ImageDlgHideLink		= false ;
+FCKConfig.ImageDlgHideAdvanced	= false ;
+
+FCKConfig.FlashDlgHideAdvanced	= false ;
+
+// The following value defines which File Browser connector and Quick Upload 
+// "uploader" to use. It is valid for the default implementaion and it is here
+// just to make this configuration file cleaner. 
+// It is not possible to change this value using an external file or even 
+// inline when creating the editor instance. In that cases you must set the 
+// values of LinkBrowserURL, ImageBrowserURL and so on.
+// Custom implementations should just ignore it.
+var _FileBrowserLanguage	= 'php' ;	// asp | aspx | cfm | lasso | perl | php | py
+var _QuickUploadLanguage	= 'php' ;	// asp | aspx | cfm | lasso | php
+
+// Don't care about the following line. It just calculates the correct connector 
+// extension to use for the default File Browser (Perl uses "cgi").
+var _FileBrowserExtension = _FileBrowserLanguage == 'perl' ? 'cgi' : _FileBrowserLanguage ;
+
+FCKConfig.LinkBrowser = true ;
+FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
+FCKConfig.LinkBrowserWindowWidth	= FCKConfig.ScreenWidth * 0.7 ;		// 70%
+FCKConfig.LinkBrowserWindowHeight	= FCKConfig.ScreenHeight * 0.7 ;	// 70%
+
+FCKConfig.ImageBrowser = true ;
+FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
+FCKConfig.ImageBrowserWindowWidth  = FCKConfig.ScreenWidth * 0.7 ;	// 70% ;
+FCKConfig.ImageBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ;	// 70% ;
+
+FCKConfig.FlashBrowser = true ;
+FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
+FCKConfig.FlashBrowserWindowWidth  = FCKConfig.ScreenWidth * 0.7 ;	//70% ;
+FCKConfig.FlashBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ;	//70% ;
+
+FCKConfig.LinkUpload = true ;
+FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/upload/' + _QuickUploadLanguage + '/upload.' + _QuickUploadLanguage ;
+FCKConfig.LinkUploadAllowedExtensions	= "" ;			// empty for all
+FCKConfig.LinkUploadDeniedExtensions	= ".(php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi)$" ;	// empty for no one
+
+FCKConfig.ImageUpload = false ;
+FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/upload/' + _QuickUploadLanguage + '/upload.' + _QuickUploadLanguage + '?Type=Image' ;
+FCKConfig.ImageUploadAllowedExtensions	= ".(jpg|gif|jpeg|png)$" ;		// empty for all
+FCKConfig.ImageUploadDeniedExtensions	= "" ;							// empty for no one
+
+FCKConfig.FlashUpload = false ;
+FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/upload/' + _QuickUploadLanguage + '/upload.' + _QuickUploadLanguage + '?Type=Flash' ;
+FCKConfig.FlashUploadAllowedExtensions	= ".(swf|fla)$" ;		// empty for all
+FCKConfig.FlashUploadDeniedExtensions	= "" ;					// empty for no one
+
+FCKConfig.SmileyPath	= FCKConfig.BasePath + 'images/smiley/msn/' ;
+FCKConfig.SmileyImages	= ['regular_smile.gif','sad_smile.gif','wink_smile.gif','teeth_smile.gif','confused_smile.gif','tounge_smile.gif','embaressed_smile.gif','omg_smile.gif','whatchutalkingabout_smile.gif','angry_smile.gif','angel_smile.gif','shades_smile.gif','devil_smile.gif','cry_smile.gif','lightbulb.gif','thumbs_down.gif','thumbs_up.gif','heart.gif','broken_heart.gif','kiss.gif','envelope.gif'] ;
+FCKConfig.SmileyColumns = 8 ;
+FCKConfig.SmileyWindowWidth		= 320 ;
+FCKConfig.SmileyWindowHeight	= 240 ;
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/fckeditorapi.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/fckeditorapi.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/fckeditorapi.js	(revision 389)
@@ -0,0 +1,104 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckeditorapi.js
+ * 	Create the FCKeditorAPI object that is available as a global object in
+ * 	the page where the editor is placed in.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKeditorAPI ;
+
+function InitializeAPI()
+{
+	if ( !( FCKeditorAPI = window.parent.FCKeditorAPI ) )
+	{
+		// Make the FCKeditorAPI object available in the parent window. Use 
+		// eval so it is independent from this window and so it will still be 
+		// available if the editor instance is removed ("Can't execute code
+		// from a freed script" error).
+		var sScript = '\
+			var FCKeditorAPI = {\
+				Version			: \'2.3.2\',\
+				VersionBuild	: \'1082\',\
+				__Instances		: new Object(),\
+				GetInstance		: function( instanceName )\
+				{\
+					return this.__Instances[ instanceName ] ;\
+				},\
+				_FunctionQueue	: {\
+					Functions	: new Array(),\
+					IsRunning	: false,\
+					Add			: function( functionToAdd )\
+					{\
+						this.Functions.push( functionToAdd ) ;\
+						if ( !this.IsRunning )\
+							this.StartNext() ;\
+					},\
+					StartNext	: function()\
+					{\
+						var aQueue = this.Functions ;\
+						if ( aQueue.length > 0 )\
+						{\
+							this.IsRunning = true ;\
+							aQueue[0].call() ;\
+						}\
+						else\
+							this.IsRunning = false ;\
+					},\
+					Remove		: function( func )\
+					{\
+						var aQueue = this.Functions ;\
+						var i = 0, fFunc ;\
+						while( fFunc = aQueue[ i ] )\
+						{\
+							if ( fFunc == func )\
+								aQueue.splice( i,1 ) ;\
+							i++ ;\
+						}\
+						this.StartNext() ;\
+					}\
+				}\
+			}' ;
+		
+		// In IE, the "eval" function is not always available (it works with
+		// the JavaScript samples, but not with the ASP ones, for example).
+		// So, let's use the execScript instead.
+		if ( window.parent.execScript )
+			window.parent.execScript( sScript, 'JavaScript' ) ;
+		else
+		{
+			if ( FCKBrowserInfo.IsGecko10 )
+			{
+				// FF 1.0.4 gives an error with the above request. The
+				// following seams to work well. It could become to official
+				// implementation for all browsers, but we need to check it.
+				eval.call( window.parent, sScript ) ;
+			}
+			else
+				window.parent.eval( sScript ) ;
+		}
+		
+		FCKeditorAPI = window.parent.FCKeditorAPI ;
+	}
+
+	// Add the current instance to the FCKeditorAPI's instances collection.
+	FCKeditorAPI.__Instances[ FCK.Name ] = FCK ;
+}
+
+function FCKeditorAPI_Cleanup()
+{
+	FCKeditorAPI.__Instances[ FCK.Name ] = null ;
+}
+FCKTools.AddEventListener( window, 'unload', FCKeditorAPI_Cleanup ) ;	
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckplugins.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckplugins.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckplugins.js	(revision 389)
@@ -0,0 +1,42 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckplugins.js
+ * 	Defines the FCKPlugins object that is responsible for loading the Plugins.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKPlugins = FCK.Plugins = new Object() ;
+FCKPlugins.ItemsCount = 0 ;
+FCKPlugins.Items = new Object() ;
+	
+FCKPlugins.Load = function()
+{
+	var oItems = FCKPlugins.Items ;
+
+	// build the plugins collection.
+	for ( var i = 0 ; i < FCKConfig.Plugins.Items.length ; i++ )
+	{
+		var oItem = FCKConfig.Plugins.Items[i] ;
+		var oPlugin = oItems[ oItem[0] ] = new FCKPlugin( oItem[0], oItem[1], oItem[2] ) ;
+		FCKPlugins.ItemsCount++ ;
+	}
+
+	// Load all items in the plugins collection.
+	for ( var s in oItems )
+		oItems[s].Load() ;
+
+	// This is a self destroyable function (must be called once).
+	FCKPlugins.Load = null ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckselection.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckselection.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckselection.js	(revision 389)
@@ -0,0 +1,20 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckselection.js
+ * 	Active selection functions.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKSelection = FCK.Selection = new Object() ;
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckdebug.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckdebug.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckdebug.js	(revision 389)
@@ -0,0 +1,77 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckdebug.js
+ * 	Debug window control and operations.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKDebug = new Object() ;
+
+FCKDebug.Output = function( message, color, noParse )
+{
+	if ( ! FCKConfig.Debug ) return ;
+	
+	if ( !noParse && message != null && isNaN( message ) )
+		message = message.replace(/</g, "&lt;") ;
+
+	if ( !this.DebugWindow || this.DebugWindow.closed )
+		this.DebugWindow = window.open( FCKConfig.BasePath + 'fckdebug.html', 'FCKeditorDebug', 'menubar=no,scrollbars=no,resizable=yes,location=no,toolbar=no,width=600,height=500', true ) ;
+	
+	if ( this.DebugWindow && this.DebugWindow.Output)
+	{
+		try 
+		{
+			this.DebugWindow.Output( message, color ) ;
+		} 
+		catch ( e ) {}	 // Ignore errors
+	}
+}
+
+FCKDebug.OutputObject = function( anyObject, color )
+{
+	if ( ! FCKConfig.Debug ) return ;
+
+	var message ;
+	
+	if ( anyObject != null ) 
+	{
+		message = 'Properties of: ' + anyObject + '</b><blockquote>' ;
+		
+		for (var prop in anyObject)
+		{
+			try 
+			{
+				var sVal = anyObject[ prop ] ? anyObject[ prop ] + '' : '[null]' ;
+				message += '<b>' + prop + '</b> : ' + sVal.replace(/</g, '&lt;') + '<br>' ;
+			} 
+			catch (e)
+			{
+				try
+				{
+					message += '<b>' + prop + '</b> : [' + typeof( anyObject[ prop ] ) + ']<br>' ;
+				}
+				catch (e)
+				{
+					message += '<b>' + prop + '</b> : [-error-]<br>' ;
+				}
+			}
+		}
+
+		message += '</blockquote><b>' ; 
+	} else
+		message = 'OutputObject : Object is "null".' ;
+		
+	FCKDebug.Output( message, color, true ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckxhtml.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckxhtml.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckxhtml.js	(revision 389)
@@ -0,0 +1,390 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckxhtml.js
+ * 	Defines the FCKXHtml object, responsible for the XHTML operations.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKXHtml = new Object() ;
+
+FCKXHtml.CurrentJobNum = 0 ;
+
+FCKXHtml.GetXHTML = function( node, includeNode, format )
+{
+	FCKXHtmlEntities.Initialize() ;
+	
+	// Save the current IsDirty state. The XHTML processor may change the
+	// original HTML, dirtying it.
+	var bIsDirty = FCK.IsDirty() ;
+	
+	this._CreateNode = FCKConfig.ForceStrongEm ? FCKXHtml_CreateNode_StrongEm : FCKXHtml_CreateNode_Normal ;
+
+	// Special blocks are blocks of content that remain untouched during the
+	// process. It is used for SCRIPTs and STYLEs.
+	FCKXHtml.SpecialBlocks = new Array() ;
+
+	// Create the XML DOMDocument object.
+	this.XML = FCKTools.CreateXmlObject( 'DOMDocument' ) ;
+
+	// Add a root element that holds all child nodes.
+	this.MainNode = this.XML.appendChild( this.XML.createElement( 'xhtml' ) ) ;
+
+	FCKXHtml.CurrentJobNum++ ;
+
+	if ( includeNode )
+		this._AppendNode( this.MainNode, node ) ;
+	else
+		this._AppendChildNodes( this.MainNode, node, false ) ;
+
+	// Get the resulting XHTML as a string.
+	var sXHTML = this._GetMainXmlString() ;
+
+	this.XML = null ;
+	
+	// Strip the "XHTML" root node.
+	sXHTML = sXHTML.substr( 7, sXHTML.length - 15 ).trim() ;
+	
+	// Remove the trailing <br> added by Gecko.
+	if ( FCKBrowserInfo.IsGecko )
+		sXHTML = sXHTML.replace( /<br\/>$/, '' ) ;
+
+	// Add a space in the tags with no closing tags, like <br/> -> <br />
+	sXHTML = sXHTML.replace( FCKRegexLib.SpaceNoClose, ' />');
+
+	if ( FCKConfig.ForceSimpleAmpersand )
+		sXHTML = sXHTML.replace( FCKRegexLib.ForceSimpleAmpersand, '&' ) ;
+
+	if ( format )
+		sXHTML = FCKCodeFormatter.Format( sXHTML ) ;
+
+	// Now we put back the SpecialBlocks contents.
+	for ( var i = 0 ; i < FCKXHtml.SpecialBlocks.length ; i++ )
+	{
+		var oRegex = new RegExp( '___FCKsi___' + i ) ;
+		sXHTML = sXHTML.replace( oRegex, FCKXHtml.SpecialBlocks[i] ) ;
+	}
+	
+	// Replace entities marker with the ampersand.
+	sXHTML = sXHTML.replace( FCKRegexLib.GeckoEntitiesMarker, '&' ) ;
+
+	// Restore the IsDirty state if it was not dirty.
+	if ( !bIsDirty )
+		FCK.ResetIsDirty() ;
+
+	return sXHTML
+}
+
+FCKXHtml._AppendAttribute = function( xmlNode, attributeName, attributeValue )
+{
+	if ( FCKConfig.ForceSimpleAmpersand && attributeValue.replace )
+		attributeValue = attributeValue.replace( /&/g, '___FCKAmp___' ) ;
+	
+	try
+	{
+		// Create the attribute.
+		var oXmlAtt = this.XML.createAttribute( attributeName ) ;
+
+		oXmlAtt.value = attributeValue ? attributeValue : '' ;
+
+		// Set the attribute in the node.
+		xmlNode.attributes.setNamedItem( oXmlAtt ) ;
+	}
+	catch (e)
+	{}
+}
+
+FCKXHtml._AppendChildNodes = function( xmlNode, htmlNode, isBlockElement )
+{
+	var iCount = 0 ;
+	
+	var oNode = htmlNode.firstChild ;
+
+	while ( oNode )
+	{
+		if ( this._AppendNode( xmlNode, oNode ) )
+			iCount++ ;
+
+		oNode = oNode.nextSibling ;
+	}
+	
+	if ( iCount == 0 )
+	{
+		if ( isBlockElement && FCKConfig.FillEmptyBlocks )
+		{
+			this._AppendEntity( xmlNode, 'nbsp' ) ;
+			return ;
+		}
+
+		// We can't use short representation of empty elements that are not marked
+		// as empty in th XHTML DTD.
+		if ( !FCKRegexLib.EmptyElements.test( htmlNode.nodeName ) )
+			xmlNode.appendChild( this.XML.createTextNode('') ) ;
+	}
+}
+
+FCKXHtml._AppendNode = function( xmlNode, htmlNode )
+{
+	if ( !htmlNode )
+		return ;
+
+	switch ( htmlNode.nodeType )
+	{
+		// Element Node.
+		case 1 :
+
+			// Here we found an element that is not the real element, but a 
+			// fake one (like the Flash placeholder image), so we must get the real one.
+			if ( htmlNode.getAttribute('_fckfakelement') )
+				return FCKXHtml._AppendNode( xmlNode, FCK.GetRealElement( htmlNode ) ) ;
+		
+			// Mozilla insert custom nodes in the DOM.
+			if ( FCKBrowserInfo.IsGecko && htmlNode.hasAttribute('_moz_editor_bogus_node') )
+				return false ;
+			
+			// This is for elements that are instrumental to FCKeditor and 
+			// must be removed from the final HTML.
+			if ( htmlNode.getAttribute('_fcktemp') )
+				return false ;
+
+			// Get the element name.
+			var sNodeName = htmlNode.nodeName ;
+			
+			//Add namespace:
+			if ( FCKBrowserInfo.IsIE && htmlNode.scopeName && htmlNode.scopeName != 'HTML' && htmlNode.scopeName != 'FCK' )
+				sNodeName = htmlNode.scopeName + ':' + sNodeName ;
+
+			// Check if the node name is valid, otherwise ignore this tag.
+			// If the nodeName starts with a slash, it is a orphan closing tag.
+			// On some strange cases, the nodeName is empty, even if the node exists.
+			if ( !FCKRegexLib.ElementName.test( sNodeName ) )
+				return false ;
+
+			sNodeName = sNodeName.toLowerCase() ;
+
+			if ( FCKBrowserInfo.IsGecko && sNodeName == 'br' && htmlNode.hasAttribute('type') && htmlNode.getAttribute( 'type', 2 ) == '_moz' )
+				return false ;
+
+			// The already processed nodes must be marked to avoid then to be duplicated (bad formatted HTML).
+			// So here, the "mark" is checked... if the element is Ok, then mark it.
+			if ( htmlNode._fckxhtmljob && htmlNode._fckxhtmljob == FCKXHtml.CurrentJobNum )
+				return false ;
+
+			var oNode = this._CreateNode( sNodeName ) ;
+			
+			// Add all attributes.
+			FCKXHtml._AppendAttributes( xmlNode, htmlNode, oNode, sNodeName ) ;
+			
+			htmlNode._fckxhtmljob = FCKXHtml.CurrentJobNum ;
+
+			// Tag specific processing.
+			var oTagProcessor = FCKXHtml.TagProcessors[ sNodeName ] ;
+
+			if ( oTagProcessor )
+			{
+				oNode = oTagProcessor( oNode, htmlNode, xmlNode ) ;
+				if ( !oNode ) break ;
+			}
+			else
+				this._AppendChildNodes( oNode, htmlNode, FCKRegexLib.BlockElements.test( sNodeName ) ) ;
+
+			xmlNode.appendChild( oNode ) ;
+
+			break ;
+
+		// Text Node.
+		case 3 :
+			this._AppendTextNode( xmlNode, htmlNode.nodeValue.replaceNewLineChars(' ') ) ;
+			break ;
+
+		// Comment
+		case 8 :
+			// IE catches the <!DOTYPE ... > as a comment, but it has no
+			// innerHTML, so we can catch it, and ignore it.
+			if ( FCKBrowserInfo.IsIE && !htmlNode.innerHTML )
+				break ;
+
+			try { xmlNode.appendChild( this.XML.createComment( htmlNode.nodeValue ) ) ; }
+			catch (e) { /* Do nothing... probably this is a wrong format comment. */ }
+			break ;
+
+		// Unknown Node type.
+		default :
+			xmlNode.appendChild( this.XML.createComment( "Element not supported - Type: " + htmlNode.nodeType + " Name: " + htmlNode.nodeName ) ) ;
+			break ;
+	}
+	return true ;
+}
+
+function FCKXHtml_CreateNode_StrongEm( nodeName )
+{
+	switch ( nodeName )
+	{
+		case 'b' :
+			nodeName = 'strong' ;
+			break ;
+		case 'i' :
+			nodeName = 'em' ;
+			break ;
+	}
+	return this.XML.createElement( nodeName ) ;
+}
+
+function FCKXHtml_CreateNode_Normal( nodeName )
+{
+	return this.XML.createElement( nodeName ) ;
+}
+
+// Append an item to the SpecialBlocks array and returns the tag to be used.
+FCKXHtml._AppendSpecialItem = function( item )
+{
+	return '___FCKsi___' + FCKXHtml.SpecialBlocks.AddItem( item ) ;
+}
+
+FCKXHtml._AppendEntity = function( xmlNode, entity )
+{
+	xmlNode.appendChild( this.XML.createTextNode( '#?-:' + entity + ';' ) ) ;
+}
+
+FCKXHtml._AppendTextNode = function( targetNode, textValue )
+{
+	targetNode.appendChild( this.XML.createTextNode( textValue.replace( FCKXHtmlEntities.EntitiesRegex, FCKXHtml_GetEntity ) ) ) ;
+	return ;
+}
+
+// Retrieves a entity (internal format) for a given character.
+function FCKXHtml_GetEntity( character )
+{
+	// We cannot simply place the entities in the text, because the XML parser
+	// will translate & to &amp;. So we use a temporary marker which is replaced
+	// in the end of the processing.
+	var sEntity = FCKXHtmlEntities.Entities[ character ] || ( '#' + character.charCodeAt(0) ) ;
+	return '#?-:' + sEntity + ';' ;
+}
+
+// An object that hold tag specific operations.
+FCKXHtml.TagProcessors = new Object() ;
+
+FCKXHtml.TagProcessors['img'] = function( node, htmlNode )
+{
+	// The "ALT" attribute is required in XHTML.
+	if ( ! node.attributes.getNamedItem( 'alt' ) )
+		FCKXHtml._AppendAttribute( node, 'alt', '' ) ;
+
+	var sSavedUrl = htmlNode.getAttribute( '_fcksavedurl' ) ;
+	if ( sSavedUrl != null )
+		FCKXHtml._AppendAttribute( node, 'src', sSavedUrl ) ;
+
+	return node ;
+}
+
+FCKXHtml.TagProcessors['a'] = function( node, htmlNode )
+{
+	var sSavedUrl = htmlNode.getAttribute( '_fcksavedurl' ) ;
+	if ( sSavedUrl != null )
+		FCKXHtml._AppendAttribute( node, 'href', sSavedUrl ) ;
+
+	FCKXHtml._AppendChildNodes( node, htmlNode, false ) ;
+
+	// Firefox may create empty tags when deleting the selection in some special cases (SF-BUG 1556878).
+	if ( node.childNodes.length == 0 && !node.getAttribute( 'name' ) )
+		return false ;
+
+	return node ;
+}
+
+FCKXHtml.TagProcessors['script'] = function( node, htmlNode )
+{
+	// The "TYPE" attribute is required in XHTML.
+	if ( ! node.attributes.getNamedItem( 'type' ) )
+		FCKXHtml._AppendAttribute( node, 'type', 'text/javascript' ) ;
+
+	node.appendChild( FCKXHtml.XML.createTextNode( FCKXHtml._AppendSpecialItem( htmlNode.text ) ) ) ;
+
+	return node ;
+}
+
+FCKXHtml.TagProcessors['style'] = function( node, htmlNode )
+{
+	// The "TYPE" attribute is required in XHTML.
+	if ( ! node.attributes.getNamedItem( 'type' ) )
+		FCKXHtml._AppendAttribute( node, 'type', 'text/css' ) ;
+
+	node.appendChild( FCKXHtml.XML.createTextNode( FCKXHtml._AppendSpecialItem( htmlNode.innerHTML ) ) ) ;
+
+	return node ;
+}
+
+FCKXHtml.TagProcessors['title'] = function( node, htmlNode )
+{
+	node.appendChild( FCKXHtml.XML.createTextNode( FCK.EditorDocument.title ) ) ;
+
+	return node ;
+}
+
+FCKXHtml.TagProcessors['table'] = function( node, htmlNode )
+{
+	// There is a trick to show table borders when border=0. We add to the
+	// table class the FCK__ShowTableBorders rule. So now we must remove it.
+
+	var oClassAtt = node.attributes.getNamedItem( 'class' ) ;
+
+	if ( oClassAtt && FCKRegexLib.TableBorderClass.test( oClassAtt.nodeValue ) )
+	{
+		var sClass = oClassAtt.nodeValue.replace( FCKRegexLib.TableBorderClass, '' ) ;
+
+		if ( sClass.length == 0 )
+			node.attributes.removeNamedItem( 'class' ) ;
+		else
+			FCKXHtml._AppendAttribute( node, 'class', sClass ) ;
+	}
+
+	FCKXHtml._AppendChildNodes( node, htmlNode, false ) ;
+
+	return node ;
+}
+
+// Fix nested <ul> and <ol>.
+FCKXHtml.TagProcessors['ol'] = FCKXHtml.TagProcessors['ul'] = function( node, htmlNode, targetNode )
+{
+	if ( htmlNode.innerHTML.trim().length == 0 )
+		return ;
+
+	var ePSibling = targetNode.lastChild ;
+	
+	if ( ePSibling && ePSibling.nodeType == 3 )
+		ePSibling = ePSibling.previousSibling ;
+	
+	if ( ePSibling && ePSibling.nodeName.toUpperCase() == 'LI' )
+	{
+		htmlNode._fckxhtmljob = null ;
+		FCKXHtml._AppendNode( ePSibling, htmlNode ) ;
+		return ;
+	}
+
+	FCKXHtml._AppendChildNodes( node, htmlNode ) ;
+
+	return node ;
+}
+
+FCKXHtml.TagProcessors['span'] = function( node, htmlNode )
+{
+	// Firefox may create empty tags when deleting the selection in some special cases (SF-BUG 1084404).
+	if ( htmlNode.innerHTML.length == 0 )
+		return false ;
+		
+	FCKXHtml._AppendChildNodes( node, htmlNode, false ) ;
+
+	return node ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckselection_gecko.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckselection_gecko.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckselection_gecko.js	(revision 389)
@@ -0,0 +1,144 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckselection_gecko.js
+ * 	Active selection functions. (Gecko specific implementation)
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+// Get the selection type (like document.select.type in IE).
+FCKSelection.GetType = function()
+{
+//	if ( ! this._Type )
+//	{
+		// By default set the type to "Text".
+		this._Type = 'Text' ;
+
+		// Check if the actual selection is a Control (IMG, TABLE, HR, etc...).
+		var oSel ;
+		try { oSel = FCK.EditorWindow.getSelection() ; }
+		catch (e) {}
+		
+		if ( oSel && oSel.rangeCount == 1 )
+		{
+			var oRange = oSel.getRangeAt(0) ;
+			if ( oRange.startContainer == oRange.endContainer && (oRange.endOffset - oRange.startOffset) == 1 && oRange.startContainer.nodeType != Node.TEXT_NODE )
+				this._Type = 'Control' ;
+		}
+//	}
+	return this._Type ;
+}
+
+// Retrieves the selected element (if any), just in the case that a single
+// element (object like and image or a table) is selected.
+FCKSelection.GetSelectedElement = function()
+{
+	if ( this.GetType() == 'Control' )
+	{
+		var oSel = FCK.EditorWindow.getSelection() ;
+		return oSel.anchorNode.childNodes[ oSel.anchorOffset ] ;
+	}
+}
+
+FCKSelection.GetParentElement = function()
+{
+	if ( this.GetType() == 'Control' )
+		return FCKSelection.GetSelectedElement().parentNode ;
+	else
+	{
+		var oSel = FCK.EditorWindow.getSelection() ;
+		if ( oSel )
+		{
+			var oNode = oSel.anchorNode ;
+
+			while ( oNode && oNode.nodeType != 1 )
+				oNode = oNode.parentNode ;
+
+			return oNode ;
+		}
+	}
+}
+
+FCKSelection.SelectNode = function( element )
+{
+//	FCK.Focus() ;
+
+	var oRange = FCK.EditorDocument.createRange() ;
+	oRange.selectNode( element ) ;
+
+	var oSel = FCK.EditorWindow.getSelection() ;
+	oSel.removeAllRanges() ;
+	oSel.addRange( oRange ) ;
+}
+
+FCKSelection.Collapse = function( toStart )
+{
+	var oSel = FCK.EditorWindow.getSelection() ;
+	
+	if ( toStart == null || toStart === true )
+		oSel.collapseToStart() ;
+	else
+		oSel.collapseToEnd() ;
+}
+
+// The "nodeTagName" parameter must be Upper Case.
+FCKSelection.HasAncestorNode = function( nodeTagName )
+{
+	var oContainer = this.GetSelectedElement() ;
+	if ( ! oContainer && FCK.EditorWindow )
+	{
+		try		{ oContainer = FCK.EditorWindow.getSelection().getRangeAt(0).startContainer ; }
+		catch(e){}
+	}
+
+	while ( oContainer )
+	{
+		if ( oContainer.nodeType == 1 && oContainer.tagName == nodeTagName ) return true ;
+		oContainer = oContainer.parentNode ;
+	}
+
+	return false ;
+}
+
+// The "nodeTagName" parameter must be Upper Case.
+FCKSelection.MoveToAncestorNode = function( nodeTagName )
+{
+	var oNode ;
+
+	var oContainer = this.GetSelectedElement() ;
+	if ( ! oContainer )
+		oContainer = FCK.EditorWindow.getSelection().getRangeAt(0).startContainer ;
+
+	while ( oContainer )
+	{
+		if ( oContainer.tagName == nodeTagName ) 
+			return oContainer ;
+		oContainer = oContainer.parentNode ;
+	}
+	return null ;
+}
+
+FCKSelection.Delete = function()
+{
+	// Gets the actual selection.
+	var oSel = FCK.EditorWindow.getSelection() ;
+
+	// Deletes the actual selection contents.
+	for ( var i = 0 ; i < oSel.rangeCount ; i++ )
+	{
+		oSel.getRangeAt(i).deleteContents() ;
+	}
+
+	return oSel ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckcodeformatter.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckcodeformatter.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckcodeformatter.js	(revision 389)
@@ -0,0 +1,96 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckcodeformatter.js
+ * 	Format the HTML.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKCodeFormatter = new Object() ;
+
+FCKCodeFormatter.Init = function()
+{
+	var oRegex = this.Regex = new Object() ;
+
+	// Regex for line breaks.
+	oRegex.BlocksOpener = /\<(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi ;
+	oRegex.BlocksCloser = /\<\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi ;
+
+	oRegex.NewLineTags	= /\<(BR|HR)[^\>]*\>/gi ;
+
+	oRegex.MainTags = /\<\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\>]*\>/gi ;
+
+	oRegex.LineSplitter = /\s*\n+\s*/g ;
+
+	// Regex for indentation.
+	oRegex.IncreaseIndent = /^\<(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\>]/i ;
+	oRegex.DecreaseIndent = /^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \>]/i ;
+	oRegex.FormatIndentatorRemove = new RegExp( '^' + FCKConfig.FormatIndentator ) ;
+
+	oRegex.ProtectedTags = /(<PRE[^>]*>)([\s\S]*?)(<\/PRE>)/gi ;
+}
+
+FCKCodeFormatter._ProtectData = function( outer, opener, data, closer )
+{
+	return opener + '___FCKpd___' + FCKCodeFormatter.ProtectedData.AddItem( data ) + closer ;
+}
+
+FCKCodeFormatter.Format = function( html )
+{
+	if ( !this.Regex )
+		this.Init() ;
+
+	// Protected content that remain untouched during the
+	// process go in the following array.
+	FCKCodeFormatter.ProtectedData = new Array() ;
+	
+	var sFormatted = html.replace( this.Regex.ProtectedTags, FCKCodeFormatter._ProtectData ) ;
+	
+	// Line breaks.
+	sFormatted		= sFormatted.replace( this.Regex.BlocksOpener, '\n$&' ) ; ;
+	sFormatted		= sFormatted.replace( this.Regex.BlocksCloser, '$&\n' ) ;
+	sFormatted		= sFormatted.replace( this.Regex.NewLineTags, '$&\n' ) ;
+	sFormatted		= sFormatted.replace( this.Regex.MainTags, '\n$&\n' ) ;
+
+	// Indentation.
+	var sIndentation = '' ;
+	
+	var asLines = sFormatted.split( this.Regex.LineSplitter ) ;
+	sFormatted = '' ;
+	
+	for ( var i = 0 ; i < asLines.length ; i++ )
+	{
+		var sLine = asLines[i] ;
+		
+		if ( sLine.length == 0 )
+			continue ;
+		
+		if ( this.Regex.DecreaseIndent.test( sLine ) )
+			sIndentation = sIndentation.replace( this.Regex.FormatIndentatorRemove, '' ) ;
+
+		sFormatted += sIndentation + sLine + '\n' ;
+		
+		if ( this.Regex.IncreaseIndent.test( sLine ) )
+			sIndentation += FCKConfig.FormatIndentator ;
+	}
+	
+	// Now we put back the protected data.
+	for ( var i = 0 ; i < FCKCodeFormatter.ProtectedData.length ; i++ )
+	{
+		var oRegex = new RegExp( '___FCKpd___' + i ) ;
+		sFormatted = sFormatted.replace( oRegex, FCKCodeFormatter.ProtectedData[i].replace( /\$/g, '$$$$' ) ) ;
+	}
+
+	return sFormatted.trim() ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_1.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_1.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_1.js	(revision 389)
@@ -0,0 +1,410 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_1.js
+ * 	This is the first part of the "FCK" object creation. This is the main
+ * 	object that represents an editor instance.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCK_StartupValue ;
+
+FCK.Events	= new FCKEvents( FCK ) ;
+FCK.Toolbar	= null ;
+FCK.HasFocus = false ;
+
+FCK.StartEditor = function()
+{
+	FCK.TempBaseTag = FCKConfig.BaseHref.length > 0 ? '<base href="' + FCKConfig.BaseHref + '" _fcktemp="true"></base>' : '' ;
+
+	FCK.EditingArea = new FCKEditingArea( document.getElementById( 'xEditingArea' ) ) ;
+
+	// Set the editor's startup contents
+	this.SetHTML( FCKTools.GetLinkedFieldValue() ) ;
+}
+
+FCK.Focus = function()
+{
+	FCK.EditingArea.Focus() ;
+}
+
+FCK.SetStatus = function( newStatus )
+{
+	this.Status = newStatus ;
+
+	if ( newStatus == FCK_STATUS_ACTIVE )
+	{
+		FCKFocusManager.AddWindow( window, true ) ;
+		
+		if ( FCKBrowserInfo.IsIE )
+			FCKFocusManager.AddWindow( window.frameElement, true ) ;
+
+		// Force the focus in the editor.
+		if ( FCKConfig.StartupFocus )
+			FCK.Focus() ;
+	}
+
+	this.Events.FireEvent( 'OnStatusChange', newStatus ) ;
+}
+
+// GetHTML is Deprecated : returns the same value as GetXHTML.
+FCK.GetHTML = FCK.GetXHTML = function( format )
+{
+	// We assume that if the user is in source editing, the editor value must
+	// represent the exact contents of the source, as the user wanted it to be.
+	if ( FCK.EditMode == FCK_EDITMODE_SOURCE )
+			return FCK.EditingArea.Textarea.value ;
+
+	var sXHTML ;
+	var oDoc = FCK.EditorDocument ;
+
+	if ( FCKConfig.FullPage )
+		sXHTML = FCKXHtml.GetXHTML( oDoc.getElementsByTagName( 'html' )[0], true, format ) ;
+	else
+	{
+		if ( FCKConfig.IgnoreEmptyParagraphValue && oDoc.body.innerHTML == '<P>&nbsp;</P>' )
+			sXHTML = '' ;
+		else
+			sXHTML = FCKXHtml.GetXHTML( oDoc.body, false, format ) ;
+	}
+	
+	// Restore protected attributes.
+	sXHTML = FCK.ProtectEventsRestore( sXHTML ) ;
+
+	if ( FCKBrowserInfo.IsIE )
+		sXHTML = sXHTML.replace( FCKRegexLib.ToReplace, '$1' ) ;
+
+	if ( FCK.DocTypeDeclaration && FCK.DocTypeDeclaration.length > 0 )
+		sXHTML = FCK.DocTypeDeclaration + '\n' + sXHTML ;
+
+	if ( FCK.XmlDeclaration && FCK.XmlDeclaration.length > 0 )
+		sXHTML = FCK.XmlDeclaration + '\n' + sXHTML ;
+
+	return FCKConfig.ProtectedSource.Revert( sXHTML ) ;
+}
+
+FCK.UpdateLinkedField = function()
+{
+	FCK.LinkedField.value = FCK.GetXHTML( FCKConfig.FormatOutput ) ;
+	FCK.Events.FireEvent( 'OnAfterLinkedFieldUpdate' ) ;
+}
+
+FCK.RegisteredDoubleClickHandlers = new Object() ;
+
+FCK.OnDoubleClick = function( element )
+{
+	var oHandler = FCK.RegisteredDoubleClickHandlers[ element.tagName ] ;
+	if ( oHandler )
+		oHandler( element ) ;
+}
+
+// Register objects that can handle double click operations.
+FCK.RegisterDoubleClickHandler = function( handlerFunction, tag )
+{
+	FCK.RegisteredDoubleClickHandlers[ tag.toUpperCase() ] = handlerFunction ;
+}
+
+FCK.OnAfterSetHTML = function()
+{
+	FCKDocumentProcessor.Process( FCK.EditorDocument ) ;	
+	FCKUndo.SaveUndoStep() ;
+	FCK.Events.FireEvent( 'OnSelectionChange' ) ;
+	FCK.Events.FireEvent( 'OnAfterSetHTML' ) ;
+}
+
+// Saves URLs on links and images on special attributes, so they don't change when 
+// moving around.
+FCK.ProtectUrls = function( html )
+{
+	// <A> href
+	html = html.replace( FCKRegexLib.ProtectUrlsA	, '$1$4$2$3$5$2 _fcksavedurl=$2$3$5$2' ) ;
+
+	// <IMG> src
+	html = html.replace( FCKRegexLib.ProtectUrlsImg	, '$1$4$2$3$5$2 _fcksavedurl=$2$3$5$2' ) ;
+	
+	return html ;
+}
+
+// Saves event attributes (like onclick) so they don't get executed while
+// editing.
+FCK.ProtectEvents = function( html )
+{
+	return html.replace( FCKRegexLib.TagsWithEvent, _FCK_ProtectEvents_ReplaceTags ) ;
+}
+
+// Replace all events attributes (like onclick).
+function _FCK_ProtectEvents_ReplaceTags( tagMatch )
+{
+	return tagMatch.replace( FCKRegexLib.EventAttributes, _FCK_ProtectEvents_ReplaceEvents ) ;
+}
+
+// Replace an event attribute with its respective __fckprotectedatt attribute.
+// The original event markup will be encoded and saved as the value of the new
+// attribute.
+function _FCK_ProtectEvents_ReplaceEvents( eventMatch, attName )
+{
+	return ' ' + attName + '_fckprotectedatt="' + eventMatch.ReplaceAll( [/&/g,/'/g,/"/g,/=/g,/</g,/>/g,/\r/g,/\n/g], ['&apos;','&#39;','&quot;','&#61;','&lt;','&gt;','&#10;','&#13;'] ) + '"' ;
+}
+
+FCK.ProtectEventsRestore = function( html )
+{
+	return html.replace( FCKRegexLib.ProtectedEvents, _FCK_ProtectEvents_RestoreEvents ) ;
+}
+
+function _FCK_ProtectEvents_RestoreEvents( match, encodedOriginal )
+{
+	return encodedOriginal.ReplaceAll( [/&#39;/g,/&quot;/g,/&#61;/g,/&lt;/g,/&gt;/g,/&#10;/g,/&#13;/g,/&apos;/g], ["'",'"','=','<','>','\r','\n','&'] ) ;
+}
+
+FCK.IsDirty = function()
+{
+	return ( FCK_StartupValue != FCK.EditorDocument.body.innerHTML ) ;
+}
+
+FCK.ResetIsDirty = function()
+{
+	if ( FCK.EditorDocument.body )
+		FCK_StartupValue = FCK.EditorDocument.body.innerHTML ;
+}
+
+FCK.SetHTML = function( html )
+{
+	this.EditingArea.Mode = FCK.EditMode ;
+
+	if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
+	{	
+		html = FCKConfig.ProtectedSource.Protect( html ) ;
+		html = FCK.ProtectEvents( html ) ;
+		html = FCK.ProtectUrls( html ) ;
+
+		// Firefox can't handle correctly the editing of the STRONG and EM tags. 
+		// We must replace them with B and I.
+		if ( FCKBrowserInfo.IsGecko )
+		{
+			html = html.replace( FCKRegexLib.StrongOpener, '<b$1' ) ;
+			html = html.replace( FCKRegexLib.StrongCloser, '<\/b>' ) ;
+			html = html.replace( FCKRegexLib.EmOpener, '<i$1' ) ;
+			html = html.replace( FCKRegexLib.EmCloser, '<\/i>' ) ;
+		}
+		else if ( FCKBrowserInfo.IsIE )
+		{
+			// IE doesn't support <abbr> and it breaks it. Let's protect it.
+			html = html.replace( FCKRegexLib.AbbrOpener, '<FCK:abbr$1' ) ;
+			html = html.replace( FCKRegexLib.AbbrCloser, '<\/FCK:abbr>' ) ;
+		}
+
+		var sHtml = '' ;
+
+		if ( FCKConfig.FullPage )
+		{
+			// The HTML must be fixed if the <head> is not available.
+			if ( !FCKRegexLib.HeadOpener.test( html ) )
+			{
+				// Check if the <html> is available.
+				if ( !FCKRegexLib.HtmlOpener.test( html ) )
+					html = '<html dir="' + FCKConfig.ContentLangDirection + '">' + html + '</html>' ;
+				
+				// Add the <head>.
+				html = html.replace( FCKRegexLib.HtmlOpener, '$&<head></head>' ) ;
+			}
+			
+			// Save the DOCTYPE.
+			FCK.DocTypeDeclaration = html.match( FCKRegexLib.DocTypeTag ) ;
+			
+			if ( FCKBrowserInfo.IsIE )
+				sHtml = FCK._GetBehaviorsStyle() ;
+			else if ( FCKConfig.ShowBorders ) 
+				sHtml = '<link href="' + FCKConfig.FullBasePath + 'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />' ;
+
+			sHtml += '<link href="' + FCKConfig.FullBasePath + 'css/fck_internal.css' + '" rel="stylesheet" type="text/css" _fcktemp="true" />' ;
+
+			sHtml = html.replace( FCKRegexLib.HeadCloser, sHtml + '$&' ) ;
+
+			// Insert the base tag (FCKConfig.BaseHref), if not exists in the source.
+			if ( FCK.TempBaseTag.length > 0 && !FCKRegexLib.HasBaseTag.test( html ) )
+				sHtml = sHtml.replace( FCKRegexLib.HeadOpener, '$&' + FCK.TempBaseTag ) ;
+		}
+		else
+		{
+			sHtml =
+				FCKConfig.DocType +
+				'<html dir="' + FCKConfig.ContentLangDirection + '"' ;
+			
+			// On IE, if you are use a DOCTYPE differenft of HTML 4 (like
+			// XHTML), you must force the vertical scroll to show, otherwise
+			// the horizontal one may appear when the page needs vertical scrolling.
+			if ( FCKBrowserInfo.IsIE && !FCKRegexLib.Html4DocType.test( FCKConfig.DocType ) )
+				sHtml += ' style="overflow-y: scroll"' ;
+			
+			sHtml +=
+				'><head><title></title>' +
+				this._GetEditorAreaStyleTags() +
+				'<link href="' + FCKConfig.FullBasePath + 'css/fck_internal.css' + '" rel="stylesheet" type="text/css" _fcktemp="true" />' ;
+
+			if ( FCKBrowserInfo.IsIE )
+				sHtml += FCK._GetBehaviorsStyle() ;
+			else if ( FCKConfig.ShowBorders ) 
+				sHtml += '<link href="' + FCKConfig.FullBasePath + 'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />' ;
+
+			sHtml += FCK.TempBaseTag ;
+			sHtml += '</head><body>' ;
+			
+			if ( FCKBrowserInfo.IsGecko && ( html.length == 0 || FCKRegexLib.EmptyParagraph.test( html ) ) )
+				sHtml += GECKO_BOGUS ;
+			else
+				sHtml += html ;
+			
+			sHtml += '</body></html>' ;
+		}
+
+		this.EditingArea.OnLoad = FCK_EditingArea_OnLoad ;
+		this.EditingArea.Start( sHtml ) ;
+	}
+	else
+	{
+		this.EditingArea.OnLoad = null ;
+		this.EditingArea.Start( html ) ;
+		
+		// Enables the context menu in the textarea.
+		this.EditingArea.Textarea._FCKShowContextMenu = true ;
+	}
+
+	if ( FCKBrowserInfo.IsGecko )
+		window.onresize() ;
+}
+
+function FCK_EditingArea_OnLoad()
+{
+	// Get the editor's window and document (DOM)
+	FCK.EditorWindow	= FCK.EditingArea.Window ;
+	FCK.EditorDocument	= FCK.EditingArea.Document ;
+
+	FCK.InitializeBehaviors() ;
+
+	FCK.OnAfterSetHTML() ;
+
+	// Check if it is not a startup call, otherwise complete the startup.
+	if ( FCK.Status != FCK_STATUS_NOTLOADED )
+		return ;
+
+	// Save the startup value for the "IsDirty()" check.
+	FCK.ResetIsDirty() ;
+
+	// Attach the editor to the form onsubmit event
+	FCKTools.AttachToLinkedFieldFormSubmit( FCK.UpdateLinkedField ) ;
+
+	FCK.SetStatus( FCK_STATUS_ACTIVE ) ;
+}
+
+FCK._GetEditorAreaStyleTags = function()
+{
+	var sTags = '' ;
+	var aCSSs = FCKConfig.EditorAreaCSS ;
+	
+	for ( var i = 0 ; i < aCSSs.length ; i++ )
+		sTags += '<link href="' + aCSSs[i] + '" rel="stylesheet" type="text/css" />' ;
+	
+	return sTags ;
+}
+
+// # Focus Manager: Manages the focus in the editor.
+var FCKFocusManager = FCK.FocusManager = new Object() ;
+FCKFocusManager.IsLocked = false ;
+FCK.HasFocus = false ;
+
+FCKFocusManager.AddWindow = function( win, sendToEditingArea )
+{
+	var oTarget ;
+	
+	if ( FCKBrowserInfo.IsIE )
+		oTarget = win.nodeType == 1 ? win : win.frameElement ? win.frameElement : win.document ;
+	else
+		oTarget = win.document ;
+	
+	FCKTools.AddEventListener( oTarget, 'blur', FCKFocusManager_Win_OnBlur ) ;
+	FCKTools.AddEventListener( oTarget, 'focus', sendToEditingArea ? FCKFocusManager_Win_OnFocus_Area : FCKFocusManager_Win_OnFocus ) ;
+}
+
+FCKFocusManager.RemoveWindow = function( win )
+{
+	if ( FCKBrowserInfo.IsIE )
+		oTarget = win.nodeType == 1 ? win : win.frameElement ? win.frameElement : win.document ;
+	else
+		oTarget = win.document ;
+
+	FCKTools.RemoveEventListener( oTarget, 'blur', FCKFocusManager_Win_OnBlur ) ;
+	FCKTools.RemoveEventListener( oTarget, 'focus', FCKFocusManager_Win_OnFocus_Area ) ;
+	FCKTools.RemoveEventListener( oTarget, 'focus', FCKFocusManager_Win_OnFocus ) ;
+}
+
+FCKFocusManager.Lock = function()
+{
+	this.IsLocked = true ;
+}
+
+FCKFocusManager.Unlock = function()
+{
+	if ( this._HasPendingBlur )
+		FCKFocusManager._Timer = window.setTimeout( FCKFocusManager_FireOnBlur, 100 ) ;
+		
+	this.IsLocked = false ;
+}
+
+FCKFocusManager._ResetTimer = function()
+{
+	this._HasPendingBlur = false ;
+
+	if ( this._Timer )
+	{
+		window.clearTimeout( this._Timer ) ;
+		delete this._Timer ; 
+	}
+}
+
+function FCKFocusManager_Win_OnBlur()
+{
+	if ( typeof(FCK) != 'undefined' && FCK.HasFocus )
+	{
+		FCKFocusManager._ResetTimer() ;
+		FCKFocusManager._Timer = window.setTimeout( FCKFocusManager_FireOnBlur, 100 ) ;
+	}
+}
+
+function FCKFocusManager_FireOnBlur()
+{
+	if ( FCKFocusManager.IsLocked )
+		FCKFocusManager._HasPendingBlur = true ;
+	else
+	{
+		FCK.HasFocus = false ;
+		FCK.Events.FireEvent( "OnBlur" ) ;
+	}
+}
+
+function FCKFocusManager_Win_OnFocus_Area()
+{
+	FCKFocusManager_Win_OnFocus() ;
+	FCK.Focus() ;
+}
+
+function FCKFocusManager_Win_OnFocus()
+{
+	FCKFocusManager._ResetTimer() ;
+
+	if ( !FCK.HasFocus && !FCKFocusManager.IsLocked )
+	{
+		FCK.HasFocus = true ;
+		FCK.Events.FireEvent( "OnFocus" ) ;
+	}
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckdialog.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckdialog.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckdialog.js	(revision 389)
@@ -0,0 +1,34 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckdialog.js
+ * 	Dialog windows operations.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKDialog = new Object() ;
+
+// This method opens a dialog window using the standard dialog template.
+FCKDialog.OpenDialog = function( dialogName, dialogTitle, dialogPage, width, height, customValue, parentWindow, resizable )
+{
+	// Setup the dialog info.
+	var oDialogInfo = new Object() ;
+	oDialogInfo.Title = dialogTitle ;
+	oDialogInfo.Page = dialogPage ;
+	oDialogInfo.Editor = window ;
+	oDialogInfo.CustomValue = customValue ;		// Optional
+	
+	var sUrl = FCKConfig.BasePath + 'fckdialog.html' ;
+	this.Show( oDialogInfo, dialogName, sUrl, width, height, parentWindow, resizable ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktools.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktools.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktools.js	(revision 389)
@@ -0,0 +1,236 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktools.js
+ * 	Utility functions.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKTools = new Object() ;
+
+FCKTools.AppendStyleSheet = function( documentElement, cssFileUrlOrArray )
+{
+	if ( typeof( cssFileUrlOrArray ) == 'string' )
+		return this._AppendStyleSheet( documentElement, cssFileUrlOrArray ) ;
+	else
+	{
+		for ( var i = 0 ; i < cssFileUrlOrArray.length ; i++ )
+			this._AppendStyleSheet( documentElement, cssFileUrlOrArray[i] ) ;
+	}
+}
+
+/**
+ * Gets the value of the hidden INPUT element that is associated to the editor.
+ * This element has its ID set to the editor's instance name so the user refers
+ * to the instance name when getting the posted data.
+ */
+FCKTools.GetLinkedFieldValue = function()
+{
+	return FCK.LinkedField.value ;
+}
+
+/**
+ * Attachs a function call to the submit event of the linked field form. This
+ * function us generally used to update the linked field value before
+ * submitting the form.
+ */
+FCKTools.AttachToLinkedFieldFormSubmit = function( functionPointer )
+{
+	// Gets the linked field form
+	var oForm = FCK.LinkedField.form ;
+	
+	// Return now if no form is available
+	if (!oForm) return ;
+
+	// Attaches the functionPointer call to the onsubmit event
+	if ( FCKBrowserInfo.IsIE )
+		oForm.attachEvent( "onsubmit", functionPointer ) ;
+	else
+		oForm.addEventListener( 'submit', functionPointer, false ) ;
+	
+	//**
+	// Attaches the functionPointer call to the submit method 
+	// This is done because IE doesn't fire onsubmit when the submit method is called
+	// BEGIN --
+	
+	// Creates a Array in the form object that will hold all Attached function call
+	// (in the case there are more than one editor in the same page)
+	if (! oForm.updateFCKeditor) oForm.updateFCKeditor = new Array() ;
+	
+	// Adds the function pointer to the array of functions to call when "submit" is called
+	oForm.updateFCKeditor[oForm.updateFCKeditor.length] = functionPointer ;
+
+	// Switches the original submit method with a new one that first call all functions
+	// on the above array and the call the original submit
+	// IE sees it oForm.submit function as an 'object'.
+	if (! oForm.originalSubmit && ( typeof( oForm.submit ) == 'function' || ( !oForm.submit.tagName && !oForm.submit.length ) ) )
+	{
+		// Creates a copy of the original submit
+		oForm.originalSubmit = oForm.submit ;
+		
+		// Creates our replacement for the submit
+		oForm.submit = FCKTools_SubmitReplacer ;
+	}
+	// END --
+}
+
+function FCKTools_SubmitReplacer()
+{
+	if (this.updateFCKeditor)
+	{
+		// Calls all functions in the functions array
+		for (var i = 0 ; i < this.updateFCKeditor.length ; i++)
+			this.updateFCKeditor[i]() ;
+	}
+	// Calls the original "submit"
+	this.originalSubmit() ;
+}
+
+// Get the window object where the element is placed in.
+FCKTools.GetElementWindow = function( element )
+{
+	return this.GetDocumentWindow( this.GetElementDocument( element ) ) ;
+}
+
+FCKTools.GetDocumentWindow = function( doc )
+{
+	// With Safari, there is not way to retrieve the window from the document, so we must fix it.
+	if ( FCKBrowserInfo.IsSafari && !doc.parentWindow )
+		this.FixDocumentParentWindow( window.top ) ;
+	
+	return doc.parentWindow || doc.defaultView ;
+}
+
+/*
+	This is a Safari specific function that fix the reference to the parent 
+	window from the document object.
+*/
+FCKTools.FixDocumentParentWindow = function( targetWindow )
+{
+	targetWindow.document.parentWindow = targetWindow ; 
+	
+	for ( var i = 0 ; i < targetWindow.frames.length ; i++ )
+		FCKTools.FixDocumentParentWindow( targetWindow.frames[i] ) ;
+}
+
+FCKTools.GetParentWindow = function( document )
+{
+	return document.contentWindow ? document.contentWindow : document.parentWindow ;
+}
+
+FCKTools.HTMLEncode = function( text )
+{
+	if ( !text )
+		return '' ;
+
+	text = text.replace( /&/g, '&amp;' ) ;
+	text = text.replace( /</g, '&lt;' ) ;
+	text = text.replace( />/g, '&gt;' ) ;
+
+	return text ;
+}
+
+/**
+ * Adds an option to a SELECT element.
+ */
+FCKTools.AddSelectOption = function( selectElement, optionText, optionValue )
+{
+	var oOption = FCKTools.GetElementDocument( selectElement ).createElement( "OPTION" ) ;
+
+	oOption.text	= optionText ;
+	oOption.value	= optionValue ;	
+
+	selectElement.options.add(oOption) ;
+
+	return oOption ;
+}
+
+FCKTools.RunFunction = function( func, thisObject, paramsArray, timerWindow )
+{
+	if ( func )
+		this.SetTimeout( func, 0, thisObject, paramsArray, timerWindow ) ;
+}
+
+FCKTools.SetTimeout = function( func, milliseconds, thisObject, paramsArray, timerWindow )
+{
+	return ( timerWindow || window ).setTimeout( 
+		function()
+		{
+			if ( paramsArray )
+				func.apply( thisObject, [].concat( paramsArray ) ) ;
+			else
+				func.apply( thisObject ) ;
+		},
+		milliseconds ) ;
+}
+
+FCKTools.SetInterval = function( func, milliseconds, thisObject, paramsArray, timerWindow )
+{
+	return ( timerWindow || window ).setInterval( 
+		function()
+		{
+			func.apply( thisObject, paramsArray || [] ) ;
+		},
+		milliseconds ) ;
+}
+
+FCKTools.ConvertStyleSizeToHtml = function( size )
+{
+	return size.endsWith( '%' ) ? size : parseInt( size ) ;
+}
+
+FCKTools.ConvertHtmlSizeToStyle = function( size )
+{
+	return size.endsWith( '%' ) ? size : ( size + 'px' ) ;
+}
+
+// START iCM MODIFICATIONS
+// Amended to accept a list of one or more ascensor tag names
+// Amended to check the element itself before working back up through the parent hierarchy
+FCKTools.GetElementAscensor = function( element, ascensorTagNames )
+{
+//	var e = element.parentNode ;
+	var e = element ;
+	var lstTags = "," + ascensorTagNames.toUpperCase() + "," ;
+
+	while ( e )
+	{
+		if ( lstTags.indexOf( "," + e.nodeName.toUpperCase() + "," ) != -1 )
+			return e ;
+
+		e = e.parentNode ;
+	}
+	return null ;
+}
+// END iCM MODIFICATIONS
+
+FCKTools.CreateEventListener = function( func, params )
+{
+	var f = function()
+	{
+		var aAllParams = [] ;
+		
+		for ( var i = 0 ; i < arguments.length ; i++ )
+			aAllParams.push( arguments[i] ) ;
+
+		func.apply( this, aAllParams.concat( params ) ) ;
+	} 
+
+	return f ;
+}
+
+FCKTools.GetElementDocument = function ( element )
+{
+	return element.ownerDocument || element.document ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckcommands.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckcommands.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckcommands.js	(revision 389)
@@ -0,0 +1,126 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckcommands.js
+ * 	Define all commands available in the editor.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKCommands = FCK.Commands = new Object() ;
+FCKCommands.LoadedCommands = new Object() ;
+
+FCKCommands.RegisterCommand = function( commandName, command )
+{
+	this.LoadedCommands[ commandName ] = command ;
+}
+
+FCKCommands.GetCommand = function( commandName )
+{
+	var oCommand = FCKCommands.LoadedCommands[ commandName ] ;
+	
+	if ( oCommand )
+		return oCommand ;
+
+	switch ( commandName )
+	{
+		case 'DocProps'		: oCommand = new FCKDialogCommand( 'DocProps'	, FCKLang.DocProps				, 'dialog/fck_docprops.html'	, 400, 390, FCKCommands.GetFullPageState ) ; break ;
+		case 'Templates'	: oCommand = new FCKDialogCommand( 'Templates'	, FCKLang.DlgTemplatesTitle		, 'dialog/fck_template.html'	, 380, 450 ) ; break ;
+		case 'Link'			: oCommand = new FCKDialogCommand( 'Link'		, FCKLang.DlgLnkWindowTitle		, 'dialog/fck_link.html'		, 400, 330, FCK.GetNamedCommandState, 'CreateLink' ) ; break ;
+		case 'Unlink'		: oCommand = new FCKUnlinkCommand() ; break ;
+		case 'Anchor'		: oCommand = new FCKDialogCommand( 'Anchor'		, FCKLang.DlgAnchorTitle		, 'dialog/fck_anchor.html'		, 370, 170 ) ; break ;
+		case 'BulletedList'	: oCommand = new FCKDialogCommand( 'BulletedList', FCKLang.BulletedListProp		, 'dialog/fck_listprop.html'	, 370, 170 ) ; break ;
+		case 'NumberedList'	: oCommand = new FCKDialogCommand( 'NumberedList', FCKLang.NumberedListProp		, 'dialog/fck_listprop.html'	, 370, 170 ) ; break ;
+		case 'About'		: oCommand = new FCKDialogCommand( 'About'		, FCKLang.About					, 'dialog/fck_about.html'		, 400, 330 ) ; break ;
+
+		case 'Find'			: oCommand = new FCKDialogCommand( 'Find'		, FCKLang.DlgFindTitle			, 'dialog/fck_find.html'		, 340, 170 ) ; break ;
+		case 'Replace'		: oCommand = new FCKDialogCommand( 'Replace'	, FCKLang.DlgReplaceTitle		, 'dialog/fck_replace.html'		, 340, 200 ) ; break ;
+
+		case 'Image'		: oCommand = new FCKDialogCommand( 'Image'		, FCKLang.DlgImgTitle			, 'dialog/fck_image.html'		, 450, 400 ) ; break ;
+		case 'Flash'		: oCommand = new FCKDialogCommand( 'Flash'		, FCKLang.DlgFlashTitle			, 'dialog/fck_flash.html'		, 450, 400 ) ; break ;
+		case 'SpecialChar'	: oCommand = new FCKDialogCommand( 'SpecialChar', FCKLang.DlgSpecialCharTitle	, 'dialog/fck_specialchar.html'	, 400, 320 ) ; break ;
+		case 'Smiley'		: oCommand = new FCKDialogCommand( 'Smiley'		, FCKLang.DlgSmileyTitle		, 'dialog/fck_smiley.html'		, FCKConfig.SmileyWindowWidth, FCKConfig.SmileyWindowHeight ) ; break ;
+		case 'Table'		: oCommand = new FCKDialogCommand( 'Table'		, FCKLang.DlgTableTitle			, 'dialog/fck_table.html'		, 450, 250 ) ; break ;
+		case 'TableProp'	: oCommand = new FCKDialogCommand( 'Table'		, FCKLang.DlgTableTitle			, 'dialog/fck_table.html?Parent', 400, 250 ) ; break ;
+		case 'TableCellProp': oCommand = new FCKDialogCommand( 'TableCell'	, FCKLang.DlgCellTitle			, 'dialog/fck_tablecell.html'	, 550, 250 ) ; break ;
+		case 'UniversalKey'	: oCommand = new FCKDialogCommand( 'UniversalKey', FCKLang.UniversalKeyboard	, 'dialog/fck_universalkey.html', 415, 300 ) ; break ;
+
+		case 'Style'		: oCommand = new FCKStyleCommand() ; break ;
+
+		case 'FontName'		: oCommand = new FCKFontNameCommand() ; break ;
+		case 'FontSize'		: oCommand = new FCKFontSizeCommand() ; break ;
+		case 'FontFormat'	: oCommand = new FCKFormatBlockCommand() ; break ;
+
+		case 'Source'		: oCommand = new FCKSourceCommand() ; break ;
+		case 'Preview'		: oCommand = new FCKPreviewCommand() ; break ;
+		case 'Save'			: oCommand = new FCKSaveCommand() ; break ;
+		case 'NewPage'		: oCommand = new FCKNewPageCommand() ; break ;
+		case 'PageBreak'	: oCommand = new FCKPageBreakCommand() ; break ;
+
+		case 'TextColor'	: oCommand = new FCKTextColorCommand('ForeColor') ; break ;
+		case 'BGColor'		: oCommand = new FCKTextColorCommand('BackColor') ; break ;
+
+		case 'PasteText'	: oCommand = new FCKPastePlainTextCommand() ; break ;
+		case 'PasteWord'	: oCommand = new FCKPasteWordCommand() ; break ;
+
+		case 'TableInsertRow'		: oCommand = new FCKTableCommand('TableInsertRow') ; break ;
+		case 'TableDeleteRows'		: oCommand = new FCKTableCommand('TableDeleteRows') ; break ;
+		case 'TableInsertColumn'	: oCommand = new FCKTableCommand('TableInsertColumn') ; break ;
+		case 'TableDeleteColumns'	: oCommand = new FCKTableCommand('TableDeleteColumns') ; break ;
+		case 'TableInsertCell'		: oCommand = new FCKTableCommand('TableInsertCell') ; break ;
+		case 'TableDeleteCells'		: oCommand = new FCKTableCommand('TableDeleteCells') ; break ;
+		case 'TableMergeCells'		: oCommand = new FCKTableCommand('TableMergeCells') ; break ;
+		case 'TableSplitCell'		: oCommand = new FCKTableCommand('TableSplitCell') ; break ;
+		case 'TableDelete'			: oCommand = new FCKTableCommand('TableDelete') ; break ;
+
+		case 'Form'			: oCommand = new FCKDialogCommand( 'Form'		, FCKLang.Form			, 'dialog/fck_form.html'		, 380, 230 ) ; break ;
+		case 'Checkbox'		: oCommand = new FCKDialogCommand( 'Checkbox'	, FCKLang.Checkbox		, 'dialog/fck_checkbox.html'	, 380, 230 ) ; break ;
+		case 'Radio'		: oCommand = new FCKDialogCommand( 'Radio'		, FCKLang.RadioButton	, 'dialog/fck_radiobutton.html'	, 380, 230 ) ; break ;
+		case 'TextField'	: oCommand = new FCKDialogCommand( 'TextField'	, FCKLang.TextField		, 'dialog/fck_textfield.html'	, 380, 230 ) ; break ;
+		case 'Textarea'		: oCommand = new FCKDialogCommand( 'Textarea'	, FCKLang.Textarea		, 'dialog/fck_textarea.html'	, 380, 230 ) ; break ;
+		case 'HiddenField'	: oCommand = new FCKDialogCommand( 'HiddenField', FCKLang.HiddenField	, 'dialog/fck_hiddenfield.html'	, 380, 230 ) ; break ;
+		case 'Button'		: oCommand = new FCKDialogCommand( 'Button'		, FCKLang.Button		, 'dialog/fck_button.html'		, 380, 230 ) ; break ;
+		case 'Select'		: oCommand = new FCKDialogCommand( 'Select'		, FCKLang.SelectionField, 'dialog/fck_select.html'		, 400, 380 ) ; break ;
+		case 'ImageButton'	: oCommand = new FCKDialogCommand( 'ImageButton', FCKLang.ImageButton	, 'dialog/fck_image.html?ImageButton', 450, 400 ) ; break ;
+
+		case 'SpellCheck'	: oCommand = new FCKSpellCheckCommand() ; break ;
+		case 'FitWindow'	: oCommand = new FCKFitWindow() ; break ;
+
+		case 'Undo'	: oCommand = new FCKUndoCommand() ; break ;
+		case 'Redo'	: oCommand = new FCKRedoCommand() ; break ;
+
+		// Generic Undefined command (usually used when a command is under development).
+		case 'Undefined'	: oCommand = new FCKUndefinedCommand() ; break ;
+		
+		// By default we assume that it is a named command.
+		default:
+			if ( FCKRegexLib.NamedCommands.test( commandName ) )
+				oCommand = new FCKNamedCommand( commandName ) ;
+			else
+			{
+				alert( FCKLang.UnknownCommand.replace( /%1/g, commandName ) ) ;
+				return null ;
+			}
+	}
+	
+	FCKCommands.LoadedCommands[ commandName ] = oCommand ;
+	
+	return oCommand ;
+}
+
+// Gets the state of the "Document Properties" button. It must be enabled only
+// when "Full Page" editing is available.
+FCKCommands.GetFullPageState = function()
+{
+	return FCKConfig.FullPage ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckxhtmlentities.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckxhtmlentities.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckxhtmlentities.js	(revision 389)
@@ -0,0 +1,340 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckxhtmlentities.js
+ * 	This file define the HTML entities handled by the editor.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKXHtmlEntities = new Object() ;
+
+FCKXHtmlEntities.Initialize = function()
+{
+	if ( FCKXHtmlEntities.Entities )
+		return ;
+
+	var sChars = '' ;
+
+	if ( FCKConfig.ProcessHTMLEntities )
+	{
+		FCKXHtmlEntities.Entities = {
+			// Latin-1 Entities
+			' ':'nbsp',
+			'¡':'iexcl',
+			'¢':'cent',
+			'£':'pound',
+			'¤':'curren',
+			'¥':'yen',
+			'¦':'brvbar',
+			'§':'sect',
+			'¨':'uml',
+			'©':'copy',
+			'ª':'ordf',
+			'«':'laquo',
+			'¬':'not',
+			'­':'shy',
+			'®':'reg',
+			'¯':'macr',
+			'°':'deg',
+			'±':'plusmn',
+			'²':'sup2',
+			'³':'sup3',
+			'´':'acute',
+			'µ':'micro',
+			'¶':'para',
+			'·':'middot',
+			'¸':'cedil',
+			'¹':'sup1',
+			'º':'ordm',
+			'»':'raquo',
+			'¼':'frac14',
+			'½':'frac12',
+			'¾':'frac34',
+			'¿':'iquest',
+			'×':'times',
+			'÷':'divide',
+
+			// Symbols
+
+			'ƒ':'fnof',
+			'•':'bull',
+			'…':'hellip',
+			'′':'prime',
+			'″':'Prime',
+			'‾':'oline',
+			'⁄':'frasl',
+			'℘':'weierp',
+			'ℑ':'image',
+			'ℜ':'real',
+			'™':'trade',
+			'ℵ':'alefsym',
+			'←':'larr',
+			'↑':'uarr',
+			'→':'rarr',
+			'↓':'darr',
+			'↔':'harr',
+			'↵':'crarr',
+			'⇐':'lArr',
+			'⇑':'uArr',
+			'⇒':'rArr',
+			'⇓':'dArr',
+			'⇔':'hArr',
+			'∀':'forall',
+			'∂':'part',
+			'∃':'exist',
+			'∅':'empty',
+			'∇':'nabla',
+			'∈':'isin',
+			'∉':'notin',
+			'∋':'ni',
+			'∏':'prod',
+			'∑':'sum',
+			'−':'minus',
+			'∗':'lowast',
+			'√':'radic',
+			'∝':'prop',
+			'∞':'infin',
+			'∠':'ang',
+			'∧':'and',
+			'∨':'or',
+			'∩':'cap',
+			'∪':'cup',
+			'∫':'int',
+			'∴':'there4',
+			'∼':'sim',
+			'≅':'cong',
+			'≈':'asymp',
+			'≠':'ne',
+			'≡':'equiv',
+			'≤':'le',
+			'≥':'ge',
+			'⊂':'sub',
+			'⊃':'sup',
+			'⊄':'nsub',
+			'⊆':'sube',
+			'⊇':'supe',
+			'⊕':'oplus',
+			'⊗':'otimes',
+			'⊥':'perp',
+			'⋅':'sdot',
+			'◊':'loz',
+			'♠':'spades',
+			'♣':'clubs',
+			'♥':'hearts',
+			'♦':'diams',
+
+			// Other Special Characters 
+
+			'"':'quot',
+		//	'&':'amp',		// This entity is automatically handled by the XHTML parser.
+		//	'<':'lt',		// This entity is automatically handled by the XHTML parser.
+		//	'>':'gt',		// This entity is automatically handled by the XHTML parser.
+			'ˆ':'circ',
+			'˜':'tilde',
+			' ':'ensp',
+			' ':'emsp',
+			' ':'thinsp',
+			'‌':'zwnj',
+			'‍':'zwj',
+			'‎':'lrm',
+			'‏':'rlm',
+			'–':'ndash',
+			'—':'mdash',
+			'‘':'lsquo',
+			'’':'rsquo',
+			'‚':'sbquo',
+			'“':'ldquo',
+			'”':'rdquo',
+			'„':'bdquo',
+			'†':'dagger',
+			'‡':'Dagger',
+			'‰':'permil',
+			'‹':'lsaquo',
+			'›':'rsaquo',
+			'€':'euro'
+		} ;
+
+		// Process Base Entities.
+		for ( var e in FCKXHtmlEntities.Entities )
+			sChars += e ;
+
+		// Include Latin Letters Entities.
+		if ( FCKConfig.IncludeLatinEntities )
+		{
+			var oEntities = {
+				'À':'Agrave',
+				'Á':'Aacute',
+				'Â':'Acirc',
+				'Ã':'Atilde',
+				'Ä':'Auml',
+				'Å':'Aring',
+				'Æ':'AElig',
+				'Ç':'Ccedil',
+				'È':'Egrave',
+				'É':'Eacute',
+				'Ê':'Ecirc',
+				'Ë':'Euml',
+				'Ì':'Igrave',
+				'Í':'Iacute',
+				'Î':'Icirc',
+				'Ï':'Iuml',
+				'Ð':'ETH',
+				'Ñ':'Ntilde',
+				'Ò':'Ograve',
+				'Ó':'Oacute',
+				'Ô':'Ocirc',
+				'Õ':'Otilde',
+				'Ö':'Ouml',
+				'Ø':'Oslash',
+				'Ù':'Ugrave',
+				'Ú':'Uacute',
+				'Û':'Ucirc',
+				'Ü':'Uuml',
+				'Ý':'Yacute',
+				'Þ':'THORN',
+				'ß':'szlig',
+				'à':'agrave',
+				'á':'aacute',
+				'â':'acirc',
+				'ã':'atilde',
+				'ä':'auml',
+				'å':'aring',
+				'æ':'aelig',
+				'ç':'ccedil',
+				'è':'egrave',
+				'é':'eacute',
+				'ê':'ecirc',
+				'ë':'euml',
+				'ì':'igrave',
+				'í':'iacute',
+				'î':'icirc',
+				'ï':'iuml',
+				'ð':'eth',
+				'ñ':'ntilde',
+				'ò':'ograve',
+				'ó':'oacute',
+				'ô':'ocirc',
+				'õ':'otilde',
+				'ö':'ouml',
+				'ø':'oslash',
+				'ù':'ugrave',
+				'ú':'uacute',
+				'û':'ucirc',
+				'ü':'uuml',
+				'ý':'yacute',
+				'þ':'thorn',
+				'ÿ':'yuml',
+				'Œ':'OElig',
+				'œ':'oelig',
+				'Š':'Scaron',
+				'š':'scaron',
+				'Ÿ':'Yuml'
+			} ; 
+			
+			for ( var e in oEntities )
+			{
+				FCKXHtmlEntities.Entities[ e ] = oEntities[ e ] ;
+				sChars += e ;
+			}
+			
+			oEntities = null ;
+		}
+
+		// Include Greek Letters Entities.
+		if ( FCKConfig.IncludeGreekEntities )
+		{
+			var oEntities = {
+				'Α':'Alpha',
+				'Β':'Beta',
+				'Γ':'Gamma',
+				'Δ':'Delta',
+				'Ε':'Epsilon',
+				'Ζ':'Zeta',
+				'Η':'Eta',
+				'Θ':'Theta',
+				'Ι':'Iota',
+				'Κ':'Kappa',
+				'Λ':'Lambda',
+				'Μ':'Mu',
+				'Ν':'Nu',
+				'Ξ':'Xi',
+				'Ο':'Omicron',
+				'Π':'Pi',
+				'Ρ':'Rho',
+				'Σ':'Sigma',
+				'Τ':'Tau',
+				'Υ':'Upsilon',
+				'Φ':'Phi',
+				'Χ':'Chi',
+				'Ψ':'Psi',
+				'Ω':'Omega',
+				'α':'alpha',
+				'β':'beta',
+				'γ':'gamma',
+				'δ':'delta',
+				'ε':'epsilon',
+				'ζ':'zeta',
+				'η':'eta',
+				'θ':'theta',
+				'ι':'iota',
+				'κ':'kappa',
+				'λ':'lambda',
+				'μ':'mu',
+				'ν':'nu',
+				'ξ':'xi',
+				'ο':'omicron',
+				'π':'pi',
+				'ρ':'rho',
+				'ς':'sigmaf',
+				'σ':'sigma',
+				'τ':'tau',
+				'υ':'upsilon',
+				'φ':'phi',
+				'χ':'chi',
+				'ψ':'psi',
+				'ω':'omega'
+			} ;
+
+			for ( var e in oEntities )
+			{
+				FCKXHtmlEntities.Entities[ e ] = oEntities[ e ] ;
+				sChars += e ;
+			}
+
+			oEntities = null ;
+		}		
+	}
+	else
+	{
+		FCKXHtmlEntities.Entities = {} ;
+
+		// Even if we are not processing the entities, we must render the &nbsp;
+		// correctly. As we don't want HTML entities, let's use its numeric
+		// representation (&#160).
+		sChars = ' ' ;
+	}
+
+	// Create the Regex used to find entities in the text.
+	var sRegexPattern = '[' + sChars + ']' ;
+	
+	if ( FCKConfig.ProcessNumericEntities )
+		sRegexPattern = '[^ -~]|' + sRegexPattern ;
+
+	var sAdditional = FCKConfig.AdditionalNumericEntities ;
+
+	if ( sAdditional || sAdditional.length > 0 )
+		sRegexPattern += '|' + FCKConfig.AdditionalNumericEntities ;
+
+	FCKXHtmlEntities.EntitiesRegex = new RegExp( sRegexPattern, 'g' ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktablehandler_ie.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktablehandler_ie.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktablehandler_ie.js	(revision 389)
@@ -0,0 +1,54 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktablehandler_ie.js
+ * 	Manage table operations (IE specific).
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCKTableHandler.GetSelectedCells = function()
+{
+	var aCells = new Array() ;
+
+	var oRange = FCK.EditorDocument.selection.createRange() ;
+//	var oParent = oRange.parentElement() ;
+	var oParent = FCKSelection.GetParentElement() ;
+	
+	if ( oParent && oParent.tagName.Equals( 'TD', 'TH' ) )
+		aCells[0] = oParent ;
+	else
+	{
+		var oParent = FCKSelection.MoveToAncestorNode( "TABLE" ) ;
+		
+		if ( oParent )
+		{
+			// Loops throw all cells checking if the cell is, or part of it, is inside the selection
+			// and then add it to the selected cells collection.
+			for ( var i = 0 ; i < oParent.cells.length ; i++ )
+			{
+				var oCellRange = FCK.EditorDocument.selection.createRange() ;
+				oCellRange.moveToElementText( oParent.cells[i] ) ;
+				
+				if ( oRange.inRange( oCellRange ) 
+					|| ( oRange.compareEndPoints('StartToStart',oCellRange) >= 0 &&  oRange.compareEndPoints('StartToEnd',oCellRange) <= 0 )
+					|| ( oRange.compareEndPoints('EndToStart',oCellRange) >= 0 &&  oRange.compareEndPoints('EndToEnd',oCellRange) <= 0 ) )
+				{
+					aCells[aCells.length] = oParent.cells[i] ;
+				}
+			}
+		}
+	}
+	
+	return aCells ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktoolbaritems.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktoolbaritems.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktoolbaritems.js	(revision 389)
@@ -0,0 +1,118 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktoolbaritems.js
+ * 	Toolbar items definitions.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKToolbarItems = new Object() ;
+FCKToolbarItems.LoadedItems = new Object() ;
+
+FCKToolbarItems.RegisterItem = function( itemName, item )
+{
+	this.LoadedItems[ itemName ] = item ;
+}
+
+FCKToolbarItems.GetItem = function( itemName )
+{
+	var oItem = FCKToolbarItems.LoadedItems[ itemName ] ;
+
+	if ( oItem )
+		return oItem ;
+
+	switch ( itemName )
+	{
+		case 'Source'			: oItem = new FCKToolbarButton( 'Source'	, FCKLang.Source, null, FCK_TOOLBARITEM_ICONTEXT, true, true, 1 ) ; break ;
+		case 'DocProps'			: oItem = new FCKToolbarButton( 'DocProps'	, FCKLang.DocProps, null, null, null, null, 2 ) ; break ;
+		case 'Save'				: oItem = new FCKToolbarButton( 'Save'		, FCKLang.Save, null, null, true, null, 3 ) ; break ;
+		case 'NewPage'			: oItem = new FCKToolbarButton( 'NewPage'	, FCKLang.NewPage, null, null, true, null, 4  ) ; break ;
+		case 'Preview'			: oItem = new FCKToolbarButton( 'Preview'	, FCKLang.Preview, null, null, true, null, 5  ) ; break ;
+		case 'Templates'		: oItem = new FCKToolbarButton( 'Templates'	, FCKLang.Templates, null, null, null, null, 6 ) ; break ;
+		case 'About'			: oItem = new FCKToolbarButton( 'About'		, FCKLang.About, null, null, true, null, 47  ) ; break ;
+
+		case 'Cut'				: oItem = new FCKToolbarButton( 'Cut'		, FCKLang.Cut, null, null, false, true, 7 ) ; break ;
+		case 'Copy'				: oItem = new FCKToolbarButton( 'Copy'		, FCKLang.Copy, null, null, false, true, 8 ) ; break ;
+		case 'Paste'			: oItem = new FCKToolbarButton( 'Paste'		, FCKLang.Paste, null, null, false, true, 9 ) ; break ;
+		case 'PasteText'		: oItem = new FCKToolbarButton( 'PasteText'	, FCKLang.PasteText, null, null, false, true, 10 ) ; break ;
+		case 'PasteWord'		: oItem = new FCKToolbarButton( 'PasteWord'	, FCKLang.PasteWord, null, null, false, true, 11 ) ; break ;
+		case 'Print'			: oItem = new FCKToolbarButton( 'Print'		, FCKLang.Print, null, null, false, true, 12 ) ; break ;
+		case 'SpellCheck'		: oItem = new FCKToolbarButton( 'SpellCheck', FCKLang.SpellCheck, null, null, null, null, 13 ) ; break ;
+		case 'Undo'				: oItem = new FCKToolbarButton( 'Undo'		, FCKLang.Undo, null, null, false, true, 14 ) ; break ;
+		case 'Redo'				: oItem = new FCKToolbarButton( 'Redo'		, FCKLang.Redo, null, null, false, true, 15 ) ; break ;
+		case 'SelectAll'		: oItem = new FCKToolbarButton( 'SelectAll'	, FCKLang.SelectAll, null, null, null, null, 18 ) ; break ;
+		case 'RemoveFormat'		: oItem = new FCKToolbarButton( 'RemoveFormat', FCKLang.RemoveFormat, null, null, false, true, 19 ) ; break ;
+		case 'FitWindow'		: oItem = new FCKToolbarButton( 'FitWindow'	, FCKLang.FitWindow, null, null, true, true, 66 ) ; break ;
+
+		case 'Bold'				: oItem = new FCKToolbarButton( 'Bold'		, FCKLang.Bold, null, null, false, true, 20 ) ; break ;
+		case 'Italic'			: oItem = new FCKToolbarButton( 'Italic'	, FCKLang.Italic, null, null, false, true, 21 ) ; break ;
+		case 'Underline'		: oItem = new FCKToolbarButton( 'Underline'	, FCKLang.Underline, null, null, false, true, 22 ) ; break ;
+		case 'StrikeThrough'	: oItem = new FCKToolbarButton( 'StrikeThrough'	, FCKLang.StrikeThrough, null, null, false, true, 23 ) ; break ;
+		case 'Subscript'		: oItem = new FCKToolbarButton( 'Subscript'		, FCKLang.Subscript, null, null, false, true, 24 ) ; break ;
+		case 'Superscript'		: oItem = new FCKToolbarButton( 'Superscript'	, FCKLang.Superscript, null, null, false, true, 25 ) ; break ;
+
+		case 'OrderedList'		: oItem = new FCKToolbarButton( 'InsertOrderedList'		, FCKLang.NumberedListLbl, FCKLang.NumberedList, null, false, true, 26 ) ; break ;
+		case 'UnorderedList'	: oItem = new FCKToolbarButton( 'InsertUnorderedList'	, FCKLang.BulletedListLbl, FCKLang.BulletedList, null, false, true, 27 ) ; break ;
+		case 'Outdent'			: oItem = new FCKToolbarButton( 'Outdent'	, FCKLang.DecreaseIndent, null, null, false, true, 28 ) ; break ;
+		case 'Indent'			: oItem = new FCKToolbarButton( 'Indent'	, FCKLang.IncreaseIndent, null, null, false, true, 29 ) ; break ;
+
+		case 'Link'				: oItem = new FCKToolbarButton( 'Link'		, FCKLang.InsertLinkLbl, FCKLang.InsertLink, null, false, true, 34 ) ; break ;
+		case 'Unlink'			: oItem = new FCKToolbarButton( 'Unlink'	, FCKLang.RemoveLink, null, null, false, true, 35 ) ; break ;
+		case 'Anchor'			: oItem = new FCKToolbarButton( 'Anchor'	, FCKLang.Anchor, null, null, null, null, 36 ) ; break ;
+
+		case 'Image'			: oItem = new FCKToolbarButton( 'Image'			, FCKLang.InsertImageLbl, FCKLang.InsertImage, null, false, true, 37 ) ; break ;
+		case 'Flash'			: oItem = new FCKToolbarButton( 'Flash'			, FCKLang.InsertFlashLbl, FCKLang.InsertFlash, null, false, true, 38 ) ; break ;
+		case 'Table'			: oItem = new FCKToolbarButton( 'Table'			, FCKLang.InsertTableLbl, FCKLang.InsertTable, null, false, true, 39 ) ; break ;
+		case 'SpecialChar'		: oItem = new FCKToolbarButton( 'SpecialChar'	, FCKLang.InsertSpecialCharLbl, FCKLang.InsertSpecialChar, null, false, true, 42 ) ; break ;
+		case 'Smiley'			: oItem = new FCKToolbarButton( 'Smiley'		, FCKLang.InsertSmileyLbl, FCKLang.InsertSmiley, null, false, true, 41 ) ; break ;
+		case 'PageBreak'		: oItem = new FCKToolbarButton( 'PageBreak'		, FCKLang.PageBreakLbl, FCKLang.PageBreak, null, false, true, 43 ) ; break ;
+		case 'UniversalKey'		: oItem = new FCKToolbarButton( 'UniversalKey'	, FCKLang.UniversalKeyboard , null, null, false, true, 44) ; break ;
+
+		case 'Rule'				: oItem = new FCKToolbarButton( 'InsertHorizontalRule', FCKLang.InsertLineLbl, FCKLang.InsertLine, null, false, true, 40 ) ; break ;
+
+		case 'JustifyLeft'		: oItem = new FCKToolbarButton( 'JustifyLeft'	, FCKLang.LeftJustify, null, null, false, true, 30 ) ; break ;
+		case 'JustifyCenter'	: oItem = new FCKToolbarButton( 'JustifyCenter'	, FCKLang.CenterJustify, null, null, false, true, 31 ) ; break ;
+		case 'JustifyRight'		: oItem = new FCKToolbarButton( 'JustifyRight'	, FCKLang.RightJustify, null, null, false, true, 32 ) ; break ;
+		case 'JustifyFull'		: oItem = new FCKToolbarButton( 'JustifyFull'	, FCKLang.BlockJustify, null, null, false, true, 33 ) ; break ;
+
+		case 'Style'			: oItem = new FCKToolbarStyleCombo() ; break ;
+		case 'FontName'			: oItem = new FCKToolbarFontsCombo() ; break ;
+		case 'FontSize'			: oItem = new FCKToolbarFontSizeCombo() ; break ;
+		case 'FontFormat'		: oItem = new FCKToolbarFontFormatCombo() ; break ;
+
+		case 'TextColor'		: oItem = new FCKToolbarPanelButton( 'TextColor', FCKLang.TextColor, null, null, 45 ) ; break ;
+		case 'BGColor'			: oItem = new FCKToolbarPanelButton( 'BGColor'	, FCKLang.BGColor, null, null, 46 ) ; break ;
+
+		case 'Find'				: oItem = new FCKToolbarButton( 'Find'		, FCKLang.Find, null, null, null, null, 16 ) ; break ;
+		case 'Replace'			: oItem = new FCKToolbarButton( 'Replace'	, FCKLang.Replace, null, null, null, null, 17 ) ; break ;
+
+		case 'Form'				: oItem = new FCKToolbarButton( 'Form'			, FCKLang.Form, null, null, null, null, 48 ) ; break ;
+		case 'Checkbox'			: oItem = new FCKToolbarButton( 'Checkbox'		, FCKLang.Checkbox, null, null, null, null, 49 ) ; break ;
+		case 'Radio'			: oItem = new FCKToolbarButton( 'Radio'			, FCKLang.RadioButton, null, null, null, null, 50 ) ; break ;
+		case 'TextField'		: oItem = new FCKToolbarButton( 'TextField'		, FCKLang.TextField, null, null, null, null, 51 ) ; break ;
+		case 'Textarea'			: oItem = new FCKToolbarButton( 'Textarea'		, FCKLang.Textarea, null, null, null, null, 52 ) ; break ;
+		case 'HiddenField'		: oItem = new FCKToolbarButton( 'HiddenField'	, FCKLang.HiddenField, null, null, null, null, 56 ) ; break ;
+		case 'Button'			: oItem = new FCKToolbarButton( 'Button'		, FCKLang.Button, null, null, null, null, 54 ) ; break ;
+		case 'Select'			: oItem = new FCKToolbarButton( 'Select'		, FCKLang.SelectionField, null, null, null, null, 53 ) ; break ;
+		case 'ImageButton'		: oItem = new FCKToolbarButton( 'ImageButton'	, FCKLang.ImageButton, null, null, null, null, 55 ) ; break ;
+
+		default:
+			alert( FCKLang.UnknownToolbarItem.replace( /%1/g, itemName ) ) ;
+			return null ;
+	}
+
+	FCKToolbarItems.LoadedItems[ itemName ] = oItem ;
+
+	return oItem ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckxhtml_gecko.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckxhtml_gecko.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckxhtml_gecko.js	(revision 389)
@@ -0,0 +1,62 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckxhtml_gecko.js
+ * 	Defines the FCKXHtml object, responsible for the XHTML operations.
+ * 	Gecko specific.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCKXHtml._GetMainXmlString = function()
+{
+	// Create the XMLSerializer.
+	var oSerializer = new XMLSerializer() ;
+
+	// Return the serialized XML as a string.
+	return oSerializer.serializeToString( this.MainNode ) ;
+}
+
+FCKXHtml._AppendAttributes = function( xmlNode, htmlNode, node )
+{
+	var aAttributes = htmlNode.attributes ;
+	
+	for ( var n = 0 ; n < aAttributes.length ; n++ )
+	{
+		var oAttribute = aAttributes[n] ;
+		
+		if ( oAttribute.specified )
+		{
+			var sAttName = oAttribute.nodeName.toLowerCase() ;
+			var sAttValue ;
+
+			// Ignore any attribute starting with "_fck".
+			if ( sAttName.startsWith( '_fck' ) )
+				continue ;
+			// There is a bug in Mozilla that returns '_moz_xxx' attributes as specified.
+			else if ( sAttName.indexOf( '_moz' ) == 0 )
+				continue ;
+			// There are one cases (on Gecko) when the oAttribute.nodeValue must be used:
+			//		- for the "class" attribute
+			else if ( sAttName == 'class' )
+				sAttValue = oAttribute.nodeValue ;
+			// XHTML doens't support attribute minimization like "CHECKED". It must be trasformed to cheched="checked".
+			else if ( oAttribute.nodeValue === true )
+				sAttValue = sAttName ;
+			else
+				sAttValue = htmlNode.getAttribute( sAttName, 2 ) ;	// We must use getAttribute to get it exactly as it is defined.
+
+			this._AppendAttribute( node, sAttName, sAttValue ) ;
+		}
+	}
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckconfig.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckconfig.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckconfig.js	(revision 389)
@@ -0,0 +1,195 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckconfig.js
+ * 	Creates and initializes the FCKConfig object.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKConfig = FCK.Config = new Object() ;
+
+/*
+	For the next major version (probably 3.0) we should move all this stuff to
+	another dedicated object and leave FCKConfig as a holder object for settings only).
+*/
+
+// Editor Base Path
+if ( document.location.protocol == 'file:' )
+{
+	FCKConfig.BasePath = unescape( document.location.pathname.substr(1) ) ;
+	FCKConfig.BasePath = FCKConfig.BasePath.replace( /\\/gi, '/' ) ;
+	FCKConfig.BasePath = 'file://' + FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1) ;
+	FCKConfig.FullBasePath = FCKConfig.BasePath ;
+}
+else
+{
+	FCKConfig.BasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1) ;
+	FCKConfig.FullBasePath = document.location.protocol + '//' + document.location.host + FCKConfig.BasePath ;
+}
+
+FCKConfig.EditorPath = FCKConfig.BasePath.replace( /editor\/$/, '' ) ;
+
+// There is a bug in Gecko. If the editor is hidden on startup, an error is 
+// thrown when trying to get the screen dimentions.
+try
+{
+	FCKConfig.ScreenWidth	= screen.width ;
+	FCKConfig.ScreenHeight	= screen.height ;
+}
+catch (e) 
+{
+	FCKConfig.ScreenWidth	= 800 ;
+	FCKConfig.ScreenHeight	= 600 ;
+}
+
+// Override the actual configuration values with the values passed throw the 
+// hidden field "<InstanceName>___Config".
+FCKConfig.ProcessHiddenField = function()
+{
+	this.PageConfig = new Object() ;
+
+	// Get the hidden field.
+	var oConfigField = window.parent.document.getElementById( FCK.Name + '___Config' ) ;
+	
+	// Do nothing if the config field was not defined.
+	if ( ! oConfigField ) return ;
+
+	var aCouples = oConfigField.value.split('&') ;
+
+	for ( var i = 0 ; i < aCouples.length ; i++ )
+	{
+		if ( aCouples[i].length == 0 )
+			continue ;
+
+		var aConfig = aCouples[i].split( '=' ) ;
+		var sKey = unescape( aConfig[0] ) ;
+		var sVal = unescape( aConfig[1] ) ;
+
+		if ( sKey == 'CustomConfigurationsPath' )	// The Custom Config File path must be loaded immediately.
+			FCKConfig[ sKey ] = sVal ;
+
+		else if ( sVal.toLowerCase() == "true" )	// If it is a boolean TRUE.
+			this.PageConfig[ sKey ] = true ;
+
+		else if ( sVal.toLowerCase() == "false" )	// If it is a boolean FALSE.
+			this.PageConfig[ sKey ] = false ;
+
+		else if ( sVal.length > 0 && !isNaN( sVal ) )	// If it is a number.
+			this.PageConfig[ sKey ] = parseInt( sVal ) ;
+
+		else										// In any other case it is a string.
+			this.PageConfig[ sKey ] = sVal ;
+	}
+}
+
+function FCKConfig_LoadPageConfig()
+{
+	var oPageConfig = FCKConfig.PageConfig ;
+	for ( var sKey in oPageConfig )
+		FCKConfig[ sKey ] = oPageConfig[ sKey ] ;
+}
+
+function FCKConfig_PreProcess()
+{
+	var oConfig = FCKConfig ;
+	
+	// Force debug mode if fckdebug=true in the QueryString (main page).
+	if ( oConfig.AllowQueryStringDebug )
+	{
+		try
+		{
+			if ( (/fckdebug=true/i).test( window.top.location.search ) )
+				oConfig.Debug = true ;
+		}
+		catch (e) { /* Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error). */ }
+	}
+
+	// Certifies that the "PluginsPath" configuration ends with a slash.
+	if ( !oConfig.PluginsPath.endsWith('/') )
+		oConfig.PluginsPath += '/' ;
+
+	// EditorAreaCSS accepts an array of paths or a single path (as string).
+	// In the last case, transform it in an array.
+	if ( typeof( oConfig.EditorAreaCSS ) == 'string' )
+		oConfig.EditorAreaCSS = [ oConfig.EditorAreaCSS ] ;
+
+	var sComboPreviewCSS = oConfig.ToolbarComboPreviewCSS ;
+	if ( !sComboPreviewCSS || sComboPreviewCSS.length == 0 )
+		oConfig.ToolbarComboPreviewCSS = oConfig.EditorAreaCSS ;
+	else if ( typeof( sComboPreviewCSS ) == 'string' )
+		oConfig.ToolbarComboPreviewCSS = [ sComboPreviewCSS ] ;
+}
+
+// Define toolbar sets collection.
+FCKConfig.ToolbarSets = new Object() ;
+
+// Defines the plugins collection.
+FCKConfig.Plugins = new Object() ;
+FCKConfig.Plugins.Items = new Array() ;
+
+FCKConfig.Plugins.Add = function( name, langs, path )
+{
+	FCKConfig.Plugins.Items.AddItem( [name, langs, path] ) ;
+}
+
+// FCKConfig.ProtectedSource: object that holds a collection of Regular 
+// Expressions that defined parts of the raw HTML that must remain untouched
+// like custom tags, scripts, server side code, etc...
+FCKConfig.ProtectedSource = new Object() ;
+
+// Initialize the regex array with the default ones.
+FCKConfig.ProtectedSource.RegexEntries = [
+	// First of any other protection, we must protect all comments to avoid 
+	// loosing them (of course, IE related).
+	/<!--[\s\S]*?-->/g ,
+
+	// Script tags will also be forced to be protected, otherwise IE will execute them.
+	/<script[\s\S]*?<\/script>/gi,
+	
+	// <noscript> tags (get lost in IE and messed up in FF).
+	/<noscript[\s\S]*?<\/noscript>/gi
+] ;
+
+FCKConfig.ProtectedSource.Add = function( regexPattern )
+{
+	this.RegexEntries.AddItem( regexPattern ) ;
+}
+
+FCKConfig.ProtectedSource.Protect = function( html )
+{
+	function _Replace( protectedSource )
+	{
+		var index = FCKTempBin.AddElement( protectedSource ) ;
+		return '<!--{PS..' + index + '}-->' ;
+	}
+	
+	for ( var i = 0 ; i < this.RegexEntries.length ; i++ )
+	{
+		html = html.replace( this.RegexEntries[i], _Replace ) ;
+	}
+	
+	return html ;
+}
+
+FCKConfig.ProtectedSource.Revert = function( html, clearBin )
+{
+	function _Replace( m, opener, index )
+	{
+		var protectedValue = clearBin ? FCKTempBin.RemoveElement( index ) : FCKTempBin.Elements[ index ] ;
+		// There could be protected source inside another one.
+		return FCKConfig.ProtectedSource.Revert( protectedValue, clearBin ) ;
+	}
+
+	return html.replace( /(<|&lt;)!--\{PS..(\d+)\}--(>|&gt;)/g, _Replace ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckdialog_gecko.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckdialog_gecko.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckdialog_gecko.js	(revision 389)
@@ -0,0 +1,101 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckdialog_gecko.js
+ * 	Dialog windows operations. (Gecko specific implementations)
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCKDialog.Show = function( dialogInfo, dialogName, pageUrl, dialogWidth, dialogHeight, parentWindow, resizable )
+{
+	var iTop  = (FCKConfig.ScreenHeight - dialogHeight) / 2 ;
+	var iLeft = (FCKConfig.ScreenWidth  - dialogWidth)  / 2 ;
+
+	var sOption  = "location=no,menubar=no,toolbar=no,dependent=yes,dialog=yes,minimizable=no,modal=yes,alwaysRaised=yes" +
+		",resizable="  + ( resizable ? 'yes' : 'no' ) +
+		",width="  + dialogWidth +
+		",height=" + dialogHeight +
+		",top="  + iTop +
+		",left=" + iLeft ;
+
+	if ( !parentWindow )
+		parentWindow = window ;
+	
+	FCKFocusManager.Lock() ;
+	
+	var oWindow = parentWindow.open( '', 'FCKeditorDialog_' + dialogName, sOption, true ) ;
+	
+	if ( !oWindow )
+	{
+		alert( FCKLang.DialogBlocked ) ;
+		FCKFocusManager.Unlock() ;
+		return ;
+	}
+		
+	oWindow.moveTo( iLeft, iTop ) ;
+	oWindow.resizeTo( dialogWidth, dialogHeight ) ;
+	oWindow.focus() ;
+	oWindow.location.href = pageUrl ;
+	
+	oWindow.dialogArguments = dialogInfo ;
+	
+	// On some Gecko browsers (probably over slow connections) the 
+	// "dialogArguments" are not set to the target window so we must
+	// put it in the opener window so it can be used by the target one.
+	parentWindow.FCKLastDialogInfo = dialogInfo ;
+	
+	this.Window = oWindow ;
+	
+	// Try/Catch must be used to avoit an error when using a frameset 
+	// on a different domain: 
+	// "Permission denied to get property Window.releaseEvents".
+	try
+	{
+		window.top.captureEvents( Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS ) ;
+		window.top.parent.addEventListener( 'mousedown', this.CheckFocus, true ) ;
+		window.top.parent.addEventListener( 'mouseup', this.CheckFocus, true ) ;
+		window.top.parent.addEventListener( 'click', this.CheckFocus, true ) ;
+		window.top.parent.addEventListener( 'focus', this.CheckFocus, true ) ;
+	}
+	catch (e)
+	{}
+}
+
+FCKDialog.CheckFocus = function()
+{
+	// It is strange, but we have to check the FCKDialog existence to avoid a 
+	// random error: "FCKDialog is not defined".
+	if ( typeof( FCKDialog ) != "object" )
+		return false ;
+	
+	if ( FCKDialog.Window && !FCKDialog.Window.closed )
+		FCKDialog.Window.focus() ;
+	else
+	{
+		// Try/Catch must be used to avoit an error when using a frameset 
+		// on a different domain: 
+		// "Permission denied to get property Window.releaseEvents".
+		try
+		{
+			window.top.releaseEvents(Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS) ;
+			window.top.parent.removeEventListener( 'onmousedown', FCKDialog.CheckFocus, true ) ;
+			window.top.parent.removeEventListener( 'mouseup', FCKDialog.CheckFocus, true ) ;
+			window.top.parent.removeEventListener( 'click', FCKDialog.CheckFocus, true ) ;
+			window.top.parent.removeEventListener( 'onfocus', FCKDialog.CheckFocus, true ) ;
+		}
+		catch (e)
+		{}
+	}
+	return false ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_1_gecko.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_1_gecko.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_1_gecko.js	(revision 389)
@@ -0,0 +1,112 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_1_gecko.js
+ * 	This is the first part of the "FCK" object creation. This is the main
+ * 	object that represents an editor instance.
+ * 	(Gecko specific implementations)
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCK.Description = "FCKeditor for Gecko Browsers" ;
+
+FCK.InitializeBehaviors = function()
+{
+	// When calling "SetHTML", the editing area IFRAME gets a fixed height. So we must recaulculate it.
+	Window_OnResize() ;
+
+	FCKFocusManager.AddWindow( this.EditorWindow ) ;
+
+	// Handle pasting operations.
+	var oOnKeyDown = function( e )
+	{
+
+		var bPrevent ;
+
+		if ( e.ctrlKey && !e.shiftKey && !e.altKey )
+		{
+			switch ( e.which ) 
+			{
+				case 66 :	// B
+				case 98 :	// b
+					FCK.ExecuteNamedCommand( 'bold' ) ; bPrevent = true ;
+					break;
+				case 105 :	// i
+				case 73 :	// I
+					FCK.ExecuteNamedCommand( 'italic' ) ; bPrevent = true ;
+					break;
+				case 117 :	// u
+				case 85 :	// U
+					FCK.ExecuteNamedCommand( 'underline' ) ; bPrevent = true ;
+					break;
+				case 86 :	// V
+				case 118 :	// v
+					bPrevent = ( FCK.Status != FCK_STATUS_COMPLETE || !FCK.Events.FireEvent( "OnPaste" ) ) ;
+					break ;
+			}
+		}
+		else if ( e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode == 45 )	// SHIFT + <INS>
+			bPrevent = ( FCK.Status != FCK_STATUS_COMPLETE || !FCK.Events.FireEvent( "OnPaste" ) ) ;
+		
+		if ( bPrevent ) 
+		{
+			e.preventDefault() ;
+			e.stopPropagation() ;
+		}
+	}
+	this.EditorDocument.addEventListener( 'keypress', oOnKeyDown, true ) ;
+
+	this.ExecOnSelectionChange = function()
+	{
+		FCK.Events.FireEvent( "OnSelectionChange" ) ;
+	}
+
+	this.ExecOnSelectionChangeTimer = function()
+	{
+		if ( FCK.LastOnChangeTimer )
+			window.clearTimeout( FCK.LastOnChangeTimer ) ;
+
+		FCK.LastOnChangeTimer = window.setTimeout( FCK.ExecOnSelectionChange, 100 ) ;
+	}
+
+	this.EditorDocument.addEventListener( 'mouseup', this.ExecOnSelectionChange, false ) ;
+
+	// On Gecko, firing the "OnSelectionChange" event on every key press started to be too much
+	// slow. So, a timer has been implemented to solve performance issues when tipying to quickly.
+	this.EditorDocument.addEventListener( 'keyup', this.ExecOnSelectionChangeTimer, false ) ;
+
+	this._DblClickListener = function( e )
+	{
+		FCK.OnDoubleClick( e.target ) ;
+		e.stopPropagation() ;
+	}
+	this.EditorDocument.addEventListener( 'dblclick', this._DblClickListener, true ) ;
+
+	// Reset the context menu.
+	FCK.ContextMenu._InnerContextMenu.SetMouseClickWindow( FCK.EditorWindow ) ;
+	FCK.ContextMenu._InnerContextMenu.AttachToElement( FCK.EditorDocument ) ;
+}
+
+FCK.MakeEditable = function()
+{
+	this.EditingArea.MakeEditable() ;
+}
+
+// Disable the context menu in the editor (outside the editing area).
+function Document_OnContextMenu( e )
+{
+	if ( !e.target._FCKShowContextMenu )
+		e.preventDefault() ;
+}
+document.oncontextmenu = Document_OnContextMenu ;
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktools_gecko.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktools_gecko.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktools_gecko.js	(revision 389)
@@ -0,0 +1,231 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktools_gecko.js
+ * 	Utility functions. (Gecko version).
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+// Constant for the Gecko Bogus Node.
+var GECKO_BOGUS = FCKBrowserInfo.IsGecko ? '<br _moz_editor_bogus_node="TRUE">' : '' ;
+
+FCKTools.CancelEvent = function( e )
+{
+	if ( e )
+		e.preventDefault() ;
+}
+
+FCKTools.DisableSelection = function( element )
+{
+	if ( FCKBrowserInfo.IsGecko )
+		element.style.MozUserSelect	= 'none' ;	// Gecko only.	
+	else
+		element.style.userSelect	= 'none' ;	// CSS3 (not supported yet).
+}
+
+// Appends a CSS file to a document.
+FCKTools._AppendStyleSheet = function( documentElement, cssFileUrl )
+{
+	var e = documentElement.createElement( 'LINK' ) ;
+	e.rel	= 'stylesheet' ;
+	e.type	= 'text/css' ;
+	e.href	= cssFileUrl ;
+	documentElement.getElementsByTagName("HEAD")[0].appendChild( e ) ;
+	return e ;
+}
+
+// Removes all attributes and values from the element.
+FCKTools.ClearElementAttributes = function( element )
+{
+	// Loop throw all attributes in the element
+	for ( var i = 0 ; i < element.attributes.length ; i++ )
+	{
+		// Remove the element by name.
+		element.removeAttribute( element.attributes[i].name, 0 ) ;	// 0 : Case Insensitive
+	}
+}
+
+// Returns an Array of strings with all defined in the elements inside another element.
+FCKTools.GetAllChildrenIds = function( parentElement )
+{
+	// Create the array that will hold all Ids.
+	var aIds = new Array() ;
+	
+	// Define a recursive function that search for the Ids.
+	var fGetIds = function( parent )
+	{
+		for ( var i = 0 ; i < parent.childNodes.length ; i++ )
+		{
+			var sId = parent.childNodes[i].id ;
+			
+			// Check if the Id is defined for the element.
+			if ( sId && sId.length > 0 ) aIds[ aIds.length ] = sId ;
+			
+			// Recursive call.
+			fGetIds( parent.childNodes[i] ) ;
+		}
+	}
+	
+	// Start the recursive calls.
+	fGetIds( parentElement ) ;
+
+	return aIds ;
+}
+
+FCKTools.RemoveOuterTags = function( e )
+{
+	var oFragment = e.ownerDocument.createDocumentFragment() ;
+			
+	for ( var i = 0 ; i < e.childNodes.length ; i++ )
+		oFragment.appendChild( e.childNodes[i] ) ;
+			
+	e.parentNode.replaceChild( oFragment, e ) ;
+}
+
+FCKTools.CreateXmlObject = function( object )
+{
+	switch ( object )
+	{
+		case 'XmlHttp' :
+			return new XMLHttpRequest() ;
+		case 'DOMDocument' :
+			return document.implementation.createDocument( '', '', null ) ;
+	}
+	return null ;
+}
+
+FCKTools.GetScrollPosition = function( relativeWindow )
+{
+	return { X : relativeWindow.pageXOffset, Y : relativeWindow.pageYOffset } ;
+}
+
+FCKTools.AddEventListener = function( sourceObject, eventName, listener )
+{
+	sourceObject.addEventListener( eventName, listener, false ) ;
+}
+
+FCKTools.RemoveEventListener = function( sourceObject, eventName, listener )
+{
+	sourceObject.removeEventListener( eventName, listener, false ) ;
+}
+
+// Listeners attached with this function cannot be detached.
+FCKTools.AddEventListenerEx = function( sourceObject, eventName, listener, paramsArray )
+{
+	sourceObject.addEventListener( 
+		eventName, 
+		function( e )
+		{
+			listener.apply( sourceObject, [ e ].concat( paramsArray || [] ) ) ;
+		},
+		false 
+	) ;
+}
+
+// Returns and object with the "Width" and "Height" properties.
+FCKTools.GetViewPaneSize = function( win )
+{
+	return { Width : win.innerWidth, Height : win.innerHeight } ;
+}
+
+FCKTools.SaveStyles = function( element )
+{
+	var oSavedStyles = new Object() ;
+	
+	if ( element.className.length > 0 )
+	{
+		oSavedStyles.Class = element.className ;
+		element.className = '' ;
+	}
+
+	var sInlineStyle = element.getAttribute( 'style' ) ;
+
+	if ( sInlineStyle && sInlineStyle.length > 0 )
+	{
+		oSavedStyles.Inline = sInlineStyle ;
+		element.setAttribute( 'style', '', 0 ) ;	// 0 : Case Insensitive
+	}
+
+	return oSavedStyles ;
+}
+
+FCKTools.RestoreStyles = function( element, savedStyles )
+{
+	element.className = savedStyles.Class || '' ;
+
+	if ( savedStyles.Inline )
+		element.setAttribute( 'style', savedStyles.Inline, 0 ) ;	// 0 : Case Insensitive
+	else
+		element.removeAttribute( 'style', 0 ) ;
+}
+
+FCKTools.RegisterDollarFunction = function( targetWindow )
+{
+	targetWindow.$ = function( id ) 
+	{ 
+		return this.document.getElementById( id ) ;
+	} ;
+}
+
+FCKTools.AppendElement = function( target, elementName )
+{
+	return target.appendChild( target.ownerDocument.createElement( elementName ) ) ;
+}
+
+// Get the coordinates of an element.
+//		@el : The element to get the position.
+//		@relativeWindow: The window to which we want the coordinates relative to.
+FCKTools.GetElementPosition = function( el, relativeWindow )
+{
+	// Initializes the Coordinates object that will be returned by the function.
+	var c = { X:0, Y:0 } ;
+	
+	var oWindow = relativeWindow || window ;
+
+	var oOwnerWindow = FCKTools.GetElementWindow( el ) ;
+
+	// Loop throw the offset chain.
+	while ( el )
+	{
+		var sPosition = oOwnerWindow.getComputedStyle(el, '').position ;
+
+		// Check for non "static" elements.
+		// 'FCKConfig.FloatingPanelsZIndex' -- Submenus are under a positioned IFRAME.
+		if ( sPosition && sPosition != 'static' && el.style.zIndex != FCKConfig.FloatingPanelsZIndex ) 
+			break ;
+
+		c.X += el.offsetLeft - el.scrollLeft ;
+		c.Y += el.offsetTop - el.scrollTop  ;
+
+		if ( el.offsetParent )
+			el = el.offsetParent ;
+		else
+		{
+			if ( oOwnerWindow != oWindow )
+			{
+				if ( el = oOwnerWindow.frameElement )
+					oOwnerWindow = FCKTools.GetElementWindow( el ) ;
+			}
+			else
+			{
+				c.X += el.scrollLeft ;
+				c.Y += el.scrollTop  ;
+				break ;
+			}
+		}
+	}
+
+	// Return the Coordinates object
+	return c ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckxhtml_ie.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckxhtml_ie.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckxhtml_ie.js	(revision 389)
@@ -0,0 +1,184 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckxhtml_ie.js
+ * 	Defines the FCKXHtml object, responsible for the XHTML operations.
+ * 	IE specific.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCKXHtml._GetMainXmlString = function()
+{
+	return this.MainNode.xml ;
+}
+
+FCKXHtml._AppendAttributes = function( xmlNode, htmlNode, node, nodeName )
+{
+	var aAttributes = htmlNode.attributes ;
+
+	for ( var n = 0 ; n < aAttributes.length ; n++ )
+	{
+		var oAttribute = aAttributes[n] ;
+
+		if ( oAttribute.specified )
+		{
+			var sAttName = oAttribute.nodeName.toLowerCase() ;
+			var sAttValue ;
+
+			// Ignore any attribute starting with "_fck".
+			if ( sAttName.startsWith( '_fck' ) )
+				continue ;
+			// The following must be done because of a bug on IE regarding the style
+			// attribute. It returns "null" for the nodeValue.
+			else if ( sAttName == 'style' )
+				sAttValue = htmlNode.style.cssText ;
+			// There are two cases when the oAttribute.nodeValue must be used:
+			//		- for the "class" attribute
+			//		- for events attributes (on IE only).
+			else if ( sAttName == 'class' || sAttName.indexOf('on') == 0 )
+				sAttValue = oAttribute.nodeValue ;
+			else if ( nodeName == 'body' && sAttName == 'contenteditable' )
+				continue ;
+			// XHTML doens't support attribute minimization like "CHECKED". It must be trasformed to cheched="checked".
+			else if ( oAttribute.nodeValue === true )
+				sAttValue = sAttName ;
+			// We must use getAttribute to get it exactly as it is defined.
+			else if ( ! (sAttValue = htmlNode.getAttribute( sAttName, 2 ) ) )
+				sAttValue = oAttribute.nodeValue ;
+
+			this._AppendAttribute( node, sAttName, sAttValue ) ;
+		}
+	}
+}
+
+FCKXHtml.TagProcessors['meta'] = function( node, htmlNode )
+{
+	var oHttpEquiv = node.attributes.getNamedItem( 'http-equiv' ) ;
+
+	if ( oHttpEquiv == null || oHttpEquiv.value.length == 0 )
+	{
+		// Get the http-equiv value from the outerHTML.
+		var sHttpEquiv = htmlNode.outerHTML.match( FCKRegexLib.MetaHttpEquiv ) ;
+
+		if ( sHttpEquiv )
+		{
+			sHttpEquiv = sHttpEquiv[1] ;
+			FCKXHtml._AppendAttribute( node, 'http-equiv', sHttpEquiv ) ;
+		}
+	}
+
+	return node ;
+}
+
+// IE automaticaly changes <FONT> tags to <FONT size=+0>.
+FCKXHtml.TagProcessors['font'] = function( node, htmlNode )
+{
+	if ( node.attributes.length == 0 )
+		node = FCKXHtml.XML.createDocumentFragment() ;
+
+	FCKXHtml._AppendChildNodes( node, htmlNode ) ;
+
+	return node ;
+}
+
+// IE doens't see the value attribute as an attribute for the <INPUT> tag.
+FCKXHtml.TagProcessors['input'] = function( node, htmlNode )
+{
+	if ( htmlNode.name )
+		FCKXHtml._AppendAttribute( node, 'name', htmlNode.name ) ;
+
+	if ( htmlNode.value && !node.attributes.getNamedItem( 'value' ) )
+		FCKXHtml._AppendAttribute( node, 'value', htmlNode.value ) ;
+
+	if ( !node.attributes.getNamedItem( 'type' ) )
+		FCKXHtml._AppendAttribute( node, 'type', 'text' ) ;
+
+	return node ;
+}
+
+// IE ignores the "SELECTED" attribute so we must add it manually.
+FCKXHtml.TagProcessors['option'] = function( node, htmlNode )
+{
+	if ( htmlNode.selected && !node.attributes.getNamedItem( 'selected' ) )
+		FCKXHtml._AppendAttribute( node, 'selected', 'selected' ) ;
+
+	FCKXHtml._AppendChildNodes( node, htmlNode ) ;
+
+	return node ;
+}
+
+// IE ignores the "COORDS" and "SHAPE" attribute so we must add it manually.
+FCKXHtml.TagProcessors['area'] = function( node, htmlNode )
+{
+	if ( ! node.attributes.getNamedItem( 'coords' ) )
+	{
+		var sCoords = htmlNode.getAttribute( 'coords', 2 ) ;
+		if ( sCoords && sCoords != '0,0,0' )
+			FCKXHtml._AppendAttribute( node, 'coords', sCoords ) ;
+	}
+
+	if ( ! node.attributes.getNamedItem( 'shape' ) )
+	{
+		var sCoords = htmlNode.getAttribute( 'shape', 2 ) ;
+		if ( sCoords && sCoords.length > 0 )
+			FCKXHtml._AppendAttribute( node, 'shape', sCoords ) ;
+	}
+
+	return node ;
+}
+
+FCKXHtml.TagProcessors['label'] = function( node, htmlNode )
+{
+	if ( htmlNode.htmlFor.length > 0 )
+		FCKXHtml._AppendAttribute( node, 'for', htmlNode.htmlFor ) ;
+
+	FCKXHtml._AppendChildNodes( node, htmlNode ) ;
+
+	return node ;
+}
+
+FCKXHtml.TagProcessors['form'] = function( node, htmlNode )
+{
+	if ( htmlNode.acceptCharset && htmlNode.acceptCharset.length > 0 && htmlNode.acceptCharset != 'UNKNOWN' )
+		FCKXHtml._AppendAttribute( node, 'accept-charset', htmlNode.acceptCharset ) ;
+
+	if ( htmlNode.name ) 
+		FCKXHtml._AppendAttribute( node, 'name', htmlNode.name ) ; 
+
+	FCKXHtml._AppendChildNodes( node, htmlNode ) ;
+
+	return node ;
+}
+
+// IE doens't hold the name attribute as an attribute for the <TEXTAREA> and <SELECT> tags.
+FCKXHtml.TagProcessors['textarea'] = FCKXHtml.TagProcessors['select'] = function( node, htmlNode )
+{ 
+	if ( htmlNode.name ) 
+		FCKXHtml._AppendAttribute( node, 'name', htmlNode.name ) ; 
+
+	FCKXHtml._AppendChildNodes( node, htmlNode ) ; 
+ 
+	return node ; 
+} 
+
+// On very rare cases, IE is loosing the "align" attribute for DIV. (right align and apply bulleted list)
+FCKXHtml.TagProcessors['div'] = function( node, htmlNode )
+{
+	if ( htmlNode.align.length > 0 )
+		FCKXHtml._AppendAttribute( node, 'align', htmlNode.align ) ;
+
+	FCKXHtml._AppendChildNodes( node, htmlNode ) ;
+
+	return node ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktools_ie.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktools_ie.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktools_ie.js	(revision 389)
@@ -0,0 +1,202 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktools_ie.js
+ * 	Utility functions. (IE version).
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCKTools.CancelEvent = function( e )
+{
+	return false ;
+}
+
+// Appends one or more CSS files to a document.
+FCKTools._AppendStyleSheet = function( documentElement, cssFileUrl )
+{
+	return documentElement.createStyleSheet( cssFileUrl ).owningElement ;
+}
+
+// Removes all attributes and values from the element.
+FCKTools.ClearElementAttributes = function( element )
+{
+	element.clearAttributes() ;
+}
+
+FCKTools.GetAllChildrenIds = function( parentElement )
+{
+	var aIds = new Array() ;
+	for ( var i = 0 ; i < parentElement.all.length ; i++ )
+	{
+		var sId = parentElement.all[i].id ;
+		if ( sId && sId.length > 0 )
+			aIds[ aIds.length ] = sId ;
+	}
+	return aIds ;
+}
+
+FCKTools.RemoveOuterTags = function( e )
+{
+	e.insertAdjacentHTML( 'beforeBegin', e.innerHTML ) ;
+	e.parentNode.removeChild( e ) ;
+}
+
+FCKTools.CreateXmlObject = function( object )
+{
+	var aObjs ;
+	
+	switch ( object )
+	{
+		case 'XmlHttp' :
+			aObjs = [ 'MSXML2.XmlHttp', 'Microsoft.XmlHttp' ] ;
+			break ;
+				
+		case 'DOMDocument' :
+			aObjs = [ 'MSXML2.DOMDocument', 'Microsoft.XmlDom' ] ;
+			break ;
+	}
+
+	for ( var i = 0 ; i < 2 ; i++ )
+	{
+		try { return new ActiveXObject( aObjs[i] ) ; }
+		catch (e) 
+		{}
+	}
+	
+	if ( FCKLang.NoActiveX )
+	{
+		alert( FCKLang.NoActiveX ) ;
+		FCKLang.NoActiveX = null ;
+	}
+}
+
+FCKTools.DisableSelection = function( element )
+{
+	element.unselectable = 'on' ;
+
+	var e, i = 0 ;
+	while ( e = element.all[ i++ ] )
+	{
+		switch ( e.tagName )
+		{
+			case 'IFRAME' :
+			case 'TEXTAREA' :
+			case 'INPUT' :
+			case 'SELECT' :
+				/* Ignore the above tags */
+				break ;
+			default :
+				e.unselectable = 'on' ;
+		}
+	}
+}
+
+FCKTools.GetScrollPosition = function( relativeWindow )
+{
+	var oDoc = relativeWindow.document ;
+
+	// Try with the doc element.
+	var oPos = { X : oDoc.documentElement.scrollLeft, Y : oDoc.documentElement.scrollTop } ;
+	
+	if ( oPos.X > 0 || oPos.Y > 0 )
+		return oPos ;
+
+	// If no scroll, try with the body.
+	return { X : oDoc.body.scrollLeft, Y : oDoc.body.scrollTop } ;
+}
+
+FCKTools.AddEventListener = function( sourceObject, eventName, listener )
+{
+	sourceObject.attachEvent( 'on' + eventName, listener ) ;
+}
+
+FCKTools.RemoveEventListener = function( sourceObject, eventName, listener )
+{
+	sourceObject.detachEvent( 'on' + eventName, listener ) ;
+}
+
+// Listeners attached with this function cannot be detached.
+FCKTools.AddEventListenerEx = function( sourceObject, eventName, listener, paramsArray )
+{
+	// Ok... this is a closures party, but is the only way to make it clean of memory leaks.
+	var o = new Object() ;
+	o.Source = sourceObject ;
+	o.Params = paramsArray || [] ;	// Memory leak if we have DOM objects here.
+	o.Listener = function( ev )
+	{
+		return listener.apply( o.Source, [ ev ].concat( o.Params ) ) ;
+	}
+	
+	if ( FCK.IECleanup )
+		FCK.IECleanup.AddItem( null, function() { o.Source = null ; o.Params = null ; } ) ;
+	
+	sourceObject.attachEvent( 'on' + eventName, o.Listener ) ;
+
+	sourceObject = null ;	// Memory leak cleaner (because of the above closure).
+	paramsArray = null ;	// Memory leak cleaner (because of the above closure).
+}
+
+// Returns and object with the "Width" and "Height" properties.
+FCKTools.GetViewPaneSize = function( win )
+{
+	var oSizeSource ;
+	
+	var oDoc = win.document.documentElement ;
+	if ( oDoc && oDoc.clientWidth )				// IE6 Strict Mode
+		oSizeSource = oDoc ;
+	else
+		oSizeSource = top.document.body ;		// Other IEs
+	
+	if ( oSizeSource )
+		return { Width : oSizeSource.clientWidth, Height : oSizeSource.clientHeight } ;
+	else
+		return { Width : 0, Height : 0 } ;
+}
+
+FCKTools.SaveStyles = function( element )
+{
+	var oSavedStyles = new Object() ;
+	
+	if ( element.className.length > 0 )
+	{
+		oSavedStyles.Class = element.className ;
+		element.className = '' ;
+	}
+
+	var sInlineStyle = element.style.cssText ;
+
+	if ( sInlineStyle.length > 0 )
+	{
+		oSavedStyles.Inline = sInlineStyle ;
+		element.style.cssText = '' ;
+	}
+	
+	return oSavedStyles ;
+}
+
+FCKTools.RestoreStyles = function( element, savedStyles )
+{
+	element.className		= savedStyles.Class || '' ;
+	element.style.cssText	= savedStyles.Inline || '' ;
+}
+
+FCKTools.RegisterDollarFunction = function( targetWindow )
+{
+	targetWindow.$ = targetWindow.document.getElementById ;
+}
+
+FCKTools.AppendElement = function( target, elementName )
+{
+	return target.appendChild( this.GetElementDocument( target ).createElement( elementName ) ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck.js	(revision 389)
@@ -0,0 +1,77 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck.js
+ * 	Creation and initialization of the "FCK" object. This is the main object
+ * 	that represents an editor instance.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+// FCK represents the active editor instance
+var FCK = new Object() ;
+FCK.Name			= FCKURLParams[ 'InstanceName' ] ;
+
+FCK.Status			= FCK_STATUS_NOTLOADED ;
+FCK.EditMode		= FCK_EDITMODE_WYSIWYG ;
+
+FCK.LoadLinkedFile = function()
+{
+	// There is a bug on IE... getElementById returns any META tag that has the
+	// name set to the ID you are looking for. So the best way in to get the array
+	// by names and look for the correct one.
+	// As ASP.Net generates a ID that is different from the Name, we must also
+	// look for the field based on the ID (the first one is the ID).
+	
+	var oDocument = window.parent.document ;
+
+	var eLinkedField		= oDocument.getElementById( FCK.Name ) ;
+	var colElementsByName	= oDocument.getElementsByName( FCK.Name ) ;
+
+	var i = 0;
+	while ( eLinkedField || i == 0 )
+	{
+		if ( eLinkedField && ( eLinkedField.tagName.toLowerCase() == 'input' || eLinkedField.tagName.toLowerCase() == 'textarea' ) )
+		{
+			FCK.LinkedField = eLinkedField ;
+			break ;
+		}
+		eLinkedField = colElementsByName[i++] ;
+	}
+}
+FCK.LoadLinkedFile() ;
+
+var FCKTempBin = new Object() ;
+FCKTempBin.Elements = new Array() ;
+
+FCKTempBin.AddElement = function( element )
+{
+	var iIndex = this.Elements.length ;
+	this.Elements[ iIndex ] = element ;
+	return iIndex ;
+}
+
+FCKTempBin.RemoveElement = function( index )
+{
+	var e = this.Elements[ index ] ;
+	this.Elements[ index ] = null ;
+	return e ;
+}
+
+FCKTempBin.Reset = function()
+{
+	var i = 0 ;
+	while ( i < this.Elements.length )
+		this.Elements[ i++ ] == null ;
+	this.Elements.length = 0 ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckundo_ie.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckundo_ie.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckundo_ie.js	(revision 389)
@@ -0,0 +1,119 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckundo_ie.js
+ * 	IE specific implementation for the Undo/Redo system.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKUndo = new Object() ;
+
+FCKUndo.SavedData = new Array() ;
+FCKUndo.CurrentIndex = -1 ;
+FCKUndo.TypesCount = FCKUndo.MaxTypes = 25 ;
+FCKUndo.Typing = false ;
+
+FCKUndo.SaveUndoStep = function()
+{
+	if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
+		return ;
+
+	// Shrink the array to the current level.
+	FCKUndo.SavedData = FCKUndo.SavedData.slice( 0, FCKUndo.CurrentIndex + 1 ) ;
+
+	// Get the Actual HTML.
+	var sHtml = FCK.EditorDocument.body.innerHTML ;
+
+	// Cancel operation if the new step is identical to the previous one.
+	if ( FCKUndo.CurrentIndex >= 0 && sHtml == FCKUndo.SavedData[ FCKUndo.CurrentIndex ][0] )
+		return ;
+
+	// If we reach the Maximun number of undo levels, we must remove the first
+	// entry of the list shifting all elements.
+	if ( FCKUndo.CurrentIndex + 1 >= FCKConfig.MaxUndoLevels )
+		FCKUndo.SavedData.shift() ;
+	else
+		FCKUndo.CurrentIndex++ ;
+
+	// Get the actual selection.
+	var sBookmark ;
+	if ( FCK.EditorDocument.selection.type == 'Text' )
+		sBookmark = FCK.EditorDocument.selection.createRange().getBookmark() ;
+
+	// Save the new level in front of the actual position.
+	FCKUndo.SavedData[ FCKUndo.CurrentIndex ] = [ sHtml, sBookmark ] ;
+
+	FCK.Events.FireEvent( "OnSelectionChange" ) ;
+}
+
+FCKUndo.CheckUndoState = function()
+{
+	return ( FCKUndo.Typing || FCKUndo.CurrentIndex > 0 ) ;
+}
+
+FCKUndo.CheckRedoState = function()
+{
+	return ( !FCKUndo.Typing && FCKUndo.CurrentIndex < ( FCKUndo.SavedData.length - 1 ) ) ;
+}
+
+FCKUndo.Undo = function()
+{
+	if ( FCKUndo.CheckUndoState() )
+	{
+		// If it is the first step.
+		if ( FCKUndo.CurrentIndex == ( FCKUndo.SavedData.length - 1 ) )
+		{
+			// Save the actual state for a possible "Redo" call.
+			FCKUndo.SaveUndoStep() ;
+		}
+
+		// Go a step back.
+		FCKUndo._ApplyUndoLevel( --FCKUndo.CurrentIndex ) ;
+
+		FCK.Events.FireEvent( "OnSelectionChange" ) ;
+	}
+}
+
+FCKUndo.Redo = function()
+{
+	if ( FCKUndo.CheckRedoState() )
+	{
+		// Go a step forward.
+		FCKUndo._ApplyUndoLevel( ++FCKUndo.CurrentIndex ) ;
+
+		FCK.Events.FireEvent( "OnSelectionChange" ) ;
+	}
+}
+
+FCKUndo._ApplyUndoLevel = function(level)
+{
+	var oData = FCKUndo.SavedData[ level ] ;
+	
+	if ( !oData )
+		return ;
+
+	// Update the editor contents with that step data.
+	FCK.SetInnerHtml( oData[0] ) ;
+//	FCK.EditorDocument.body.innerHTML = oData[0] ;
+
+	if ( oData[1] ) 
+	{
+		var oRange = FCK.EditorDocument.selection.createRange() ;
+		oRange.moveToBookmark( oData[1] ) ;
+		oRange.select() ;
+	}
+	
+	FCKUndo.TypesCount = 0 ; 
+	FCKUndo.Typing = false ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktablehandler.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktablehandler.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktablehandler.js	(revision 389)
@@ -0,0 +1,383 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktablehandler.js
+ * 	Manage table operations.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKTableHandler = new Object() ;
+
+FCKTableHandler.InsertRow = function()
+{
+	// Get the row where the selection is placed in.	
+	var oRow = FCKSelection.MoveToAncestorNode("TR") ;
+	if ( !oRow ) return ;
+
+	// Create a clone of the row.
+	var oNewRow = oRow.cloneNode( true ) ;
+
+	// Insert the new row (copy) before of it.
+	oRow.parentNode.insertBefore( oNewRow, oRow ) ;
+
+	// Clean the row (it seems that the new row has been added after it).
+	FCKTableHandler.ClearRow( oRow ) ;
+}
+
+FCKTableHandler.DeleteRows = function( row )
+{
+	// If no row has been passed as a parameer,
+	// then get the row where the selection is placed in.	
+	if ( !row )
+		row = FCKSelection.MoveToAncestorNode("TR") ;
+	if ( !row ) return ;
+
+	// Get the row's table.	
+	var oTable = FCKTools.GetElementAscensor( row, 'TABLE' ) ;
+
+	// If just one row is available then delete the entire table.
+	if ( oTable.rows.length == 1 ) 
+	{
+		FCKTableHandler.DeleteTable( oTable ) ;
+		return ;
+	}
+
+	// Delete the row.
+	row.parentNode.removeChild( row ) ;
+}
+
+FCKTableHandler.DeleteTable = function( table )
+{
+	// If no table has been passed as a parameer,
+	// then get the table where the selection is placed in.	
+	if ( !table )
+	{
+		var table = FCKSelection.GetSelectedElement() ;
+		if ( !table || table.tagName != 'TABLE' )
+			table = FCKSelection.MoveToAncestorNode("TABLE") ;
+	}
+	if ( !table ) return ;
+
+	// Delete the table.
+	FCKSelection.SelectNode( table ) ;
+	FCKSelection.Collapse();
+	table.parentNode.removeChild( table ) ;
+}
+
+FCKTableHandler.InsertColumn = function()
+{
+	// Get the cell where the selection is placed in.
+	var oCell = FCKSelection.MoveToAncestorNode("TD") ;
+	if ( !oCell )
+	    oCell =  FCKSelection.MoveToAncestorNode("TH") ;
+
+	if ( !oCell ) return ;
+	
+	// Get the cell's table.
+	var oTable = FCKTools.GetElementAscensor( oCell, 'TABLE' ) ;
+
+	// Get the index of the column to be created (based on the cell).
+	var iIndex = oCell.cellIndex + 1 ;
+
+	// Loop throw all rows available in the table.
+	for ( var i = 0 ; i < oTable.rows.length ; i++ )
+	{
+		// Get the row.
+		var oRow = oTable.rows[i] ;
+	
+		// If the row doens't have enought cells, ignore it.
+		if ( oRow.cells.length < iIndex )
+			continue ;
+		
+		oCell = oRow.cells[iIndex-1].cloneNode(false) ;
+		
+		if ( FCKBrowserInfo.IsGecko )
+			oCell.innerHTML = GECKO_BOGUS ;
+		
+		// Get the cell that is placed in the new cell place.
+		var oBaseCell = oRow.cells[iIndex] ;
+
+		// If the cell is available (we are not in the last cell of the row).
+		if ( oBaseCell )
+			oRow.insertBefore( oCell, oBaseCell ) ;	// Insert the new cell just before of it.
+		else
+			oRow.appendChild( oCell ) ;				// Append the cell at the end of the row.
+	}
+}
+
+FCKTableHandler.DeleteColumns = function()
+{
+	// Get the cell where the selection is placed in.
+	var oCell = FCKSelection.MoveToAncestorNode('TD') || FCKSelection.MoveToAncestorNode('TH') ;
+
+	if ( !oCell ) return ;
+	
+	// Get the cell's table.	
+	var oTable = FCKTools.GetElementAscensor( oCell, 'TABLE' ) ;
+
+	// Get the cell index.
+	var iIndex = oCell.cellIndex ;
+
+	// Loop throw all rows (from down to up, because it's possible that some
+	// rows will be deleted).
+	for ( var i = oTable.rows.length - 1 ; i >= 0 ; i-- )
+	{
+		// Get the row.
+		var oRow = oTable.rows[i] ;
+		
+		// If the cell to be removed is the first one and the row has just one cell.
+		if ( iIndex == 0 && oRow.cells.length == 1 )
+		{
+			// Remove the entire row.
+			FCKTableHandler.DeleteRows( oRow ) ;
+			continue ;
+		}
+		
+		// If the cell to be removed exists the delete it.
+		if ( oRow.cells[iIndex] )
+			oRow.removeChild( oRow.cells[iIndex] ) ;
+	}
+}
+
+FCKTableHandler.InsertCell = function( cell )
+{
+	// Get the cell where the selection is placed in.
+	var oCell = cell ? cell : FCKSelection.MoveToAncestorNode("TD") ;
+	if ( !oCell ) return ;
+
+	// Create the new cell element to be added.
+	var oNewCell = FCK.EditorDocument.createElement("TD");
+	if ( FCKBrowserInfo.IsGecko )
+		oNewCell.innerHTML = GECKO_BOGUS ;
+//	oNewCell.innerHTML = "&nbsp;" ;
+
+	// If it is the last cell in the row.
+	if ( oCell.cellIndex == oCell.parentNode.cells.length - 1 )
+	{
+		// Add the new cell at the end of the row.
+		oCell.parentNode.appendChild( oNewCell ) ;
+	}
+	else
+	{
+		// Add the new cell before the next cell (after the active one).
+		oCell.parentNode.insertBefore( oNewCell, oCell.nextSibling ) ;
+	}
+	
+	return oNewCell ;
+}
+
+FCKTableHandler.DeleteCell = function( cell )
+{
+	// If this is the last cell in the row.
+	if ( cell.parentNode.cells.length == 1 )
+	{
+		// Delete the entire row.
+		FCKTableHandler.DeleteRows( FCKTools.GetElementAscensor( cell, 'TR' ) ) ;
+		return ;
+	}
+
+	// Delete the cell from the row.
+	cell.parentNode.removeChild( cell ) ;
+}
+
+FCKTableHandler.DeleteCells = function()
+{
+	var aCells = FCKTableHandler.GetSelectedCells() ;
+	
+	for ( var i = aCells.length - 1 ; i >= 0  ; i-- )
+	{
+		FCKTableHandler.DeleteCell( aCells[i] ) ;
+	}
+}
+
+FCKTableHandler.MergeCells = function()
+{
+	// Get all selected cells.
+	var aCells = FCKTableHandler.GetSelectedCells() ;
+	
+	// At least 2 cells must be selected.
+	if ( aCells.length < 2 )
+		return ;
+		
+	// The merge can occour only if the selected cells are from the same row.
+	if ( aCells[0].parentNode != aCells[aCells.length-1].parentNode )
+		return ;
+
+	// Calculate the new colSpan for the first cell.
+	var iColSpan = isNaN( aCells[0].colSpan ) ? 1 : aCells[0].colSpan ;
+
+	var sHtml = '' ;
+	var oCellsContents = FCK.EditorDocument.createDocumentFragment() ;
+	
+	for ( var i = aCells.length - 1 ; i >= 0 ; i-- )
+	{
+		var eCell = aCells[i] ;
+		
+		// Move its contents to the document fragment.
+		for ( var c = eCell.childNodes.length - 1 ; c >= 0 ; c-- )
+		{
+			var eChild = eCell.removeChild( eCell.childNodes[c] ) ;
+	
+			if ( ( eChild.hasAttribute && eChild.hasAttribute('_moz_editor_bogus_node') ) || ( eChild.getAttribute && eChild.getAttribute( 'type', 2 ) == '_moz' ) )
+				continue ;
+			
+				oCellsContents.insertBefore( eChild, oCellsContents.firstChild ) ;
+		}
+		
+		if ( i > 0 )
+		{
+			// Accumulate the colspan of the cell.
+			iColSpan += isNaN( eCell.colSpan ) ? 1 : eCell.colSpan ;
+
+			// Delete the cell.
+			FCKTableHandler.DeleteCell( eCell ) ;
+		}
+	}
+	
+	// Set the innerHTML of the remaining cell (the first one).
+	aCells[0].colSpan = iColSpan ;
+	
+	if ( FCKBrowserInfo.IsGecko && oCellsContents.childNodes.length == 0 )
+		aCells[0].innerHTML = GECKO_BOGUS ;
+	else
+		aCells[0].appendChild( oCellsContents ) ;
+}
+
+FCKTableHandler.SplitCell = function()
+{
+	// Check that just one cell is selected, otherwise return.
+	var aCells = FCKTableHandler.GetSelectedCells() ;
+	if ( aCells.length != 1 )
+		return ;
+	
+	var aMap = this._CreateTableMap( aCells[0].parentNode.parentNode ) ;
+	var iCellIndex = FCKTableHandler._GetCellIndexSpan( aMap, aCells[0].parentNode.rowIndex , aCells[0] ) ;
+		
+	var aCollCells = this._GetCollumnCells( aMap, iCellIndex ) ;
+	
+	for ( var i = 0 ; i < aCollCells.length ; i++ )
+	{
+		if ( aCollCells[i] == aCells[0] )
+		{
+			var oNewCell = this.InsertCell( aCells[0] ) ;
+			if ( !isNaN( aCells[0].rowSpan ) && aCells[0].rowSpan > 1 )
+				oNewCell.rowSpan = aCells[0].rowSpan ;
+		}
+		else
+		{
+			if ( isNaN( aCollCells[i].colSpan ) )
+				aCollCells[i].colSpan = 2 ;
+			else
+				aCollCells[i].colSpan += 1 ;
+		}
+	}
+}
+
+// Get the cell index from a TableMap.
+FCKTableHandler._GetCellIndexSpan = function( tableMap, rowIndex, cell )
+{
+	if ( tableMap.length < rowIndex + 1 )
+		return null ;
+	
+	var oRow = tableMap[ rowIndex ] ;
+	
+	for ( var c = 0 ; c < oRow.length ; c++ )
+	{
+		if ( oRow[c] == cell )
+			return c ;
+	}
+	
+	return null ;
+}
+
+// Get the cells available in a collumn of a TableMap.
+FCKTableHandler._GetCollumnCells = function( tableMap, collumnIndex )
+{
+	var aCollCells = new Array() ;
+
+	for ( var r = 0 ; r < tableMap.length ; r++ )
+	{
+		var oCell = tableMap[r][collumnIndex] ;
+		if ( oCell && ( aCollCells.length == 0 || aCollCells[ aCollCells.length - 1 ] != oCell ) )
+			aCollCells[ aCollCells.length ] = oCell ;
+	}
+	
+	return aCollCells ;
+}
+
+// This function is quite hard to explain. It creates a matrix representing all cells in a table.
+// The difference here is that the "spanned" cells (colSpan and rowSpan) are duplicated on the matrix
+// cells that are "spanned". For example, a row with 3 cells where the second cell has colSpan=2 and rowSpan=3
+// will produce a bi-dimensional matrix with the following values (representing the cells):
+//		Cell1, Cell2, Cell2, Cell 3
+//		Cell4, Cell2, Cell2, Cell 5
+FCKTableHandler._CreateTableMap = function( table )
+{
+	var aRows = table.rows ;
+	
+	// Row and Collumn counters.
+	var r = -1 ;
+	
+	var aMap = new Array() ;
+	
+	for ( var i = 0 ; i < aRows.length ; i++ )
+	{
+		r++ ;
+		if ( !aMap[r] )
+			aMap[r] = new Array() ;
+		
+		var c = -1 ;
+		
+		for ( var j = 0 ; j < aRows[i].cells.length ; j++ )
+		{
+			var oCell = aRows[i].cells[j] ;
+		
+			c++ ;
+			while ( aMap[r][c] )
+				c++ ;
+			
+			var iColSpan = isNaN( oCell.colSpan ) ? 1 : oCell.colSpan ;
+			var iRowSpan = isNaN( oCell.rowSpan ) ? 1 : oCell.rowSpan ;
+
+			for ( var rs = 0 ; rs < iRowSpan ; rs++ )
+			{
+				if ( !aMap[r + rs] )
+					aMap[r + rs] = new Array() ;
+					
+				for ( var cs = 0 ; cs < iColSpan ; cs++ )
+				{
+					aMap[r + rs][c + cs] = aRows[i].cells[j] ;
+				}
+			}
+			
+			c += iColSpan - 1 ;
+		}
+	}
+	return aMap ;
+}
+
+FCKTableHandler.ClearRow = function( tr )
+{
+	// Get the array of row's cells.
+	var aCells = tr.cells ;
+
+	// Replace the contents of each cell with "nothing".
+	for ( var i = 0 ; i < aCells.length ; i++ ) 
+	{
+		if ( FCKBrowserInfo.IsGecko )
+			aCells[i].innerHTML = GECKO_BOGUS ;
+		else
+			aCells[i].innerHTML = '' ;
+	}
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktablehandler_gecko.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktablehandler_gecko.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktablehandler_gecko.js	(revision 389)
@@ -0,0 +1,53 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktablehandler_gecko.js
+ * 	Manage table operations (IE specific).
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCKTableHandler.GetSelectedCells = function()
+{
+	var aCells = new Array() ;
+
+	var oSelection = FCK.EditorWindow.getSelection() ;
+
+	// If the selection is a text.
+	if ( oSelection.rangeCount == 1 && oSelection.anchorNode.nodeType == 3 )
+	{
+		var oParent = FCKTools.GetElementAscensor( oSelection.anchorNode, 'TD,TH' ) ;
+		
+		if ( oParent )
+		{
+			aCells[0] = oParent ;
+			return aCells ;
+		}	
+	}
+
+	for ( var i = 0 ; i < oSelection.rangeCount ; i++ )
+	{
+		var oRange = oSelection.getRangeAt(i) ;
+		var oCell ;
+		
+		if ( oRange.startContainer.tagName.Equals( 'TD', 'TH' ) )
+			oCell = oRange.startContainer ;
+		else
+			oCell = oRange.startContainer.childNodes[ oRange.startOffset ] ;
+		
+		if ( oCell.tagName.Equals( 'TD', 'TH' ) )
+			aCells[aCells.length] = oCell ;
+	}
+
+	return aCells ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckbrowserinfo.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckbrowserinfo.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckbrowserinfo.js	(revision 389)
@@ -0,0 +1,37 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckbrowserinfo.js
+ * 	Contains browser detection information.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var s = navigator.userAgent.toLowerCase() ;
+
+var FCKBrowserInfo = 
+{
+	IsIE		: s.Contains('msie'),
+	IsIE7		: s.Contains('msie 7'),
+	IsGecko		: s.Contains('gecko/'),
+	IsSafari	: s.Contains('safari'),
+	IsOpera		: s.Contains('opera')
+}
+
+FCKBrowserInfo.IsGeckoLike = FCKBrowserInfo.IsGecko || FCKBrowserInfo.IsSafari || FCKBrowserInfo.IsOpera ;
+
+if ( FCKBrowserInfo.IsGecko )
+{
+	var sGeckoVersion = s.match( /gecko\/(\d+)/ )[1] ;
+	FCKBrowserInfo.IsGecko10 = sGeckoVersion < 20051111 ;	// Actually "10" refers to versions before Firefox 1.5, where Gecko 20051111 has been released.
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_2.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_2.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_2.js	(revision 389)
@@ -0,0 +1,162 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_2.js
+ * 	This is the second part of the "FCK" object creation. This is the main
+ * 	object that represents an editor instance.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+// This collection is used by the browser specific implementations to tell
+// wich named commands must be handled separately.
+FCK.RedirectNamedCommands = new Object() ;
+
+FCK.ExecuteNamedCommand = function( commandName, commandParameter, noRedirect )
+{
+	FCKUndo.SaveUndoStep() ;
+
+	if ( !noRedirect && FCK.RedirectNamedCommands[ commandName ] != null )
+		FCK.ExecuteRedirectedNamedCommand( commandName, commandParameter ) ;
+	else
+	{
+		FCK.Focus() ;
+		FCK.EditorDocument.execCommand( commandName, false, commandParameter ) ; 
+		FCK.Events.FireEvent( 'OnSelectionChange' ) ;
+	}
+	
+	FCKUndo.SaveUndoStep() ;
+}
+
+FCK.GetNamedCommandState = function( commandName )
+{
+	try
+	{
+		if ( !FCK.EditorDocument.queryCommandEnabled( commandName ) )
+			return FCK_TRISTATE_DISABLED ;
+		else
+			return FCK.EditorDocument.queryCommandState( commandName ) ? FCK_TRISTATE_ON : FCK_TRISTATE_OFF ;
+	}
+	catch ( e )
+	{
+		return FCK_TRISTATE_OFF ;
+	}
+}
+
+FCK.GetNamedCommandValue = function( commandName )
+{
+	var sValue = '' ;
+	var eState = FCK.GetNamedCommandState( commandName ) ;
+	
+	if ( eState == FCK_TRISTATE_DISABLED ) 
+		return null ;
+	
+	try
+	{
+		sValue = this.EditorDocument.queryCommandValue( commandName ) ;
+	}
+	catch(e) {}
+	
+	return sValue ? sValue : '' ;
+}
+
+FCK.PasteFromWord = function()
+{
+	FCKDialog.OpenDialog( 'FCKDialog_Paste', FCKLang.PasteFromWord, 'dialog/fck_paste.html', 400, 330, 'Word' ) ;
+}
+
+FCK.Preview = function()
+{
+	var iWidth	= FCKConfig.ScreenWidth * 0.8 ;
+	var iHeight	= FCKConfig.ScreenHeight * 0.7 ;
+	var iLeft	= ( FCKConfig.ScreenWidth - iWidth ) / 2 ;
+	var oWindow = window.open( '', null, 'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=' + iWidth + ',height=' + iHeight + ',left=' + iLeft ) ;
+	
+	var sHTML ;
+	
+	if ( FCKConfig.FullPage )
+	{
+		if ( FCK.TempBaseTag.length > 0 )
+			sHTML = FCK.TempBaseTag + FCK.GetXHTML() ;
+		else
+			sHTML = FCK.GetXHTML() ;
+	}
+	else
+	{
+		sHTML = 
+			FCKConfig.DocType +
+			'<html dir="' + FCKConfig.ContentLangDirection + '">' +
+			'<head>' +
+			FCK.TempBaseTag +
+			'<title>' + FCKLang.Preview + '</title>' +
+			FCK._GetEditorAreaStyleTags() +
+			'</head><body>' + 
+			FCK.GetXHTML() + 
+			'</body></html>' ;
+	}
+	
+	oWindow.document.write( sHTML );
+	oWindow.document.close();
+}
+
+FCK.SwitchEditMode = function( noUndo )
+{
+	var bIsWysiwyg = ( FCK.EditMode == FCK_EDITMODE_WYSIWYG ) ;
+	var sHtml ;
+	
+	// Update the HTML in the view output to show.
+	if ( bIsWysiwyg )
+	{
+		if ( !noUndo && FCKBrowserInfo.IsIE )
+			FCKUndo.SaveUndoStep() ;
+
+		sHtml = FCK.GetXHTML( FCKConfig.FormatSource ) ;
+	}
+	else
+		sHtml = this.EditingArea.Textarea.value ;
+
+	FCK.EditMode = bIsWysiwyg ? FCK_EDITMODE_SOURCE : FCK_EDITMODE_WYSIWYG ;
+
+	FCK.SetHTML( sHtml ) ;
+
+	// Set the Focus.
+	FCK.Focus() ;
+
+	// Update the toolbar (Running it directly causes IE to fail).
+	FCKTools.RunFunction( FCK.ToolbarSet.RefreshModeState, FCK.ToolbarSet ) ;
+}
+
+FCK.CreateElement = function( tag )
+{
+	var e = FCK.EditorDocument.createElement( tag ) ;
+	return FCK.InsertElementAndGetIt( e ) ;
+}
+
+FCK.InsertElementAndGetIt = function( e )
+{
+	e.setAttribute( 'FCKTempLabel', 'true' ) ;
+	
+	this.InsertElement( e ) ;
+	
+	var aEls = FCK.EditorDocument.getElementsByTagName( e.tagName ) ;
+	
+	for ( var i = 0 ; i < aEls.length ; i++ )
+	{
+		if ( aEls[i].getAttribute( 'FCKTempLabel' ) )
+		{
+			aEls[i].removeAttribute( 'FCKTempLabel' ) ;
+			return aEls[i] ;
+		}
+	}
+	return null ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckregexlib.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckregexlib.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckregexlib.js	(revision 389)
@@ -0,0 +1,87 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckregexlib.js
+ * 	These are some Regular Expresions used by the editor.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKRegexLib = {
+
+// This is the Regular expression used by the SetHTML method for the "&apos;" entity.
+AposEntity		: /&apos;/gi ,
+
+// Used by the Styles combo to identify styles that can't be applied to text.
+ObjectElements	: /^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i ,
+
+BlockElements	: /^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TD|TH)$/i ,
+
+// Elements marked as empty "Empty" in the XHTML DTD.
+EmptyElements	: /^(?:BASE|META|LINK|HR|BR|PARAM|IMG|AREA|INPUT)$/i ,
+
+// List all named commands (commands that can be interpreted by the browser "execCommand" method.
+NamedCommands	: /^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i ,
+
+BodyContents	: /([\s\S]*\<body[^\>]*\>)([\s\S]*)(\<\/body\>[\s\S]*)/i ,
+
+// Temporary text used to solve some browser specific limitations.
+ToReplace		: /___fcktoreplace:([\w]+)/ig ,
+
+// Get the META http-equiv attribute from the tag.
+MetaHttpEquiv	: /http-equiv\s*=\s*["']?([^"' ]+)/i ,
+
+HasBaseTag		: /<base /i ,
+
+HtmlOpener		: /<html\s?[^>]*>/i ,
+HeadOpener		: /<head\s?[^>]*>/i ,
+HeadCloser		: /<\/head\s*>/i ,
+
+TableBorderClass : /\s*FCK__ShowTableBorders\s*/ ,
+
+// Validate element names.
+ElementName		: /(^[A-Za-z_:][\w.\-:]*\w$)|(^[A-Za-z_]$)/ ,
+
+// Used in conjuction with the FCKConfig.ForceSimpleAmpersand configuration option.
+ForceSimpleAmpersand : /___FCKAmp___/g ,
+
+// Get the closing parts of the tags with no closing tags, like <br/>... gets the "/>" part.
+SpaceNoClose	: /\/>/g ,
+
+EmptyParagraph	: /^<(p|div)>\s*<\/\1>$/i ,
+
+TagBody			: /></ ,
+
+StrongOpener	: /<STRONG([ \>])/gi ,
+StrongCloser	: /<\/STRONG>/gi ,
+EmOpener		: /<EM([ \>])/gi ,
+EmCloser		: /<\/EM>/gi ,
+AbbrOpener		: /<ABBR([ \>])/gi ,
+AbbrCloser		: /<\/ABBR>/gi ,
+
+GeckoEntitiesMarker : /#\?-\:/g ,
+
+// We look for the "src" and href attribute with the " or ' or whithout one of
+// them. We have to do all in one, otherwhise we will have problems with URLs
+// like "thumbnail.php?src=someimage.jpg" (SF-BUG 1554141).
+ProtectUrlsImg	: /(?:(<img(?=\s).*?\ssrc=)("|')(.*?)\2)|(?:(<img\s.*?src=)([^"'][^ >]+))/gi ,
+ProtectUrlsA	: /(?:(<a(?=\s).*?\shref=)("|')(.*?)\2)|(?:(<a\s.*?href=)([^"'][^ >]+))/gi ,
+
+Html4DocType	: /HTML 4\.0 Transitional/i ,
+DocTypeTag		: /<!DOCTYPE[^>]*>/i ,
+
+// These regex are used to save the original event attributes in the HTML.
+TagsWithEvent	: /<[^\>]+ on\w+[\s\r\n]*=[\s\r\n]*?('|")[\s\S]+?\>/g ,
+EventAttributes	: /\s(on\w+)[\s\r\n]*=[\s\r\n]*?('|")([\s\S]*?)\2/g,
+ProtectedEvents : /\s\w+_fckprotectedatt="([^"]+)"/g
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckselection_ie.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckselection_ie.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckselection_ie.js	(revision 389)
@@ -0,0 +1,151 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckselection_ie.js
+ * 	Active selection functions. (IE specific implementation)
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+// Get the selection type.
+FCKSelection.GetType = function()
+{
+	return FCK.EditorDocument.selection.type ;
+}
+
+// Retrieves the selected element (if any), just in the case that a single
+// element (object like and image or a table) is selected.
+FCKSelection.GetSelectedElement = function()
+{
+	if ( this.GetType() == 'Control' )
+	{
+		var oRange = FCK.EditorDocument.selection.createRange() ;
+
+		if ( oRange && oRange.item )
+			return FCK.EditorDocument.selection.createRange().item(0) ;
+	}
+}
+
+FCKSelection.GetParentElement = function()
+{
+	switch ( this.GetType() )
+	{
+		case 'Control' :
+			return FCKSelection.GetSelectedElement().parentElement ;
+		case 'None' :
+			return ;
+		default :
+			return FCK.EditorDocument.selection.createRange().parentElement() ;
+	}
+}
+
+FCKSelection.SelectNode = function( node )
+{
+	FCK.Focus() ;
+	FCK.EditorDocument.selection.empty() ;
+
+	try 
+	{
+		// Try to select the node as a control.
+		var oRange = FCK.EditorDocument.body.createControlRange() ;
+		oRange.addElement( node ) ;
+	} 
+	catch(e) 
+	{
+		// If failed, select it as a text range.
+		var oRange = FCK.EditorDocument.selection.createRange() ;
+		oRange.moveToElementText( node ) ;
+	}
+
+	oRange.select() ;
+}
+
+FCKSelection.Collapse = function( toStart )
+{
+	FCK.Focus() ;
+	if ( this.GetType() == 'Text' )
+	{
+		var oRange = FCK.EditorDocument.selection.createRange() ;
+		oRange.collapse( toStart == null || toStart === true ) ;
+		oRange.select() ;
+	}
+}
+
+// The "nodeTagName" parameter must be Upper Case.
+FCKSelection.HasAncestorNode = function( nodeTagName )
+{
+	var oContainer ;
+
+	if ( FCK.EditorDocument.selection.type == "Control" )
+	{
+		oContainer = this.GetSelectedElement() ;
+	}
+	else
+	{
+		var oRange  = FCK.EditorDocument.selection.createRange() ;
+		oContainer = oRange.parentElement() ;
+	}
+
+	while ( oContainer )
+	{
+		if ( oContainer.tagName == nodeTagName ) return true ;
+		oContainer = oContainer.parentNode ;
+	}
+
+	return false ;
+}
+
+// The "nodeTagName" parameter must be UPPER CASE.
+FCKSelection.MoveToAncestorNode = function( nodeTagName )
+{
+	var oNode ;
+
+	if ( FCK.EditorDocument.selection.type == "Control" )
+	{
+		var oRange = FCK.EditorDocument.selection.createRange() ;
+		for ( i = 0 ; i < oRange.length ; i++ )
+		{
+			if (oRange(i).parentNode)
+			{
+				oNode = oRange(i).parentNode ;
+				break ;
+			}
+		}
+	}
+	else
+	{
+		var oRange  = FCK.EditorDocument.selection.createRange() ;
+		oNode = oRange.parentElement() ;
+	}
+
+	while ( oNode && oNode.nodeName != nodeTagName )
+		oNode = oNode.parentNode ;
+
+	return oNode ;
+}
+
+FCKSelection.Delete = function()
+{
+	// Gets the actual selection.
+	var oSel = FCK.EditorDocument.selection ;
+
+	// Deletes the actual selection contents.
+	if ( oSel.type.toLowerCase() != "none" )
+	{
+		oSel.clear() ;
+	}
+
+	return oSel ;
+}
+
+
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckurlparams.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckurlparams.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckurlparams.js	(revision 389)
@@ -0,0 +1,32 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckurlparams.js
+ * 	Defines the FCKURLParams object that is used to get all parameters
+ * 	passed by the URL QueryString (after the "?").
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+// #### URLParams: holds all URL passed parameters (like ?Param1=Value1&Param2=Value2)
+var FCKURLParams = new Object() ;
+
+var aParams = document.location.search.substr(1).split('&') ;
+for ( var i = 0 ; i < aParams.length ; i++ )
+{
+	var aParam = aParams[i].split('=') ;
+	var sParamName  = aParam[0] ;
+	var sParamValue = aParam[1] ;
+
+	FCKURLParams[ sParamName ] = sParamValue ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_contextmenu.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_contextmenu.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_contextmenu.js	(revision 389)
@@ -0,0 +1,290 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_contextmenu.js
+ * 	Defines the FCK.ContextMenu object that is responsible for all
+ * 	Context Menu operations in the editing area.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCK.ContextMenu = new Object() ;
+FCK.ContextMenu.Listeners = new Array() ;
+
+FCK.ContextMenu.RegisterListener = function( listener )
+{
+	if ( listener )
+		this.Listeners.push( listener ) ;
+}
+
+function FCK_ContextMenu_Init()
+{
+	var oInnerContextMenu = FCK.ContextMenu._InnerContextMenu = new FCKContextMenu( FCKBrowserInfo.IsIE ? window : window.parent, FCK.EditorWindow, FCKLang.Dir ) ;
+	oInnerContextMenu.OnBeforeOpen	= FCK_ContextMenu_OnBeforeOpen ;
+	oInnerContextMenu.OnItemClick	= FCK_ContextMenu_OnItemClick ;
+
+	// Get the registering function.
+	var oMenu = FCK.ContextMenu ;
+
+	// Register all configured context menu listeners.
+	for ( var i = 0 ; i < FCKConfig.ContextMenu.length ; i++ )
+		oMenu.RegisterListener( FCK_ContextMenu_GetListener( FCKConfig.ContextMenu[i] ) ) ;
+}
+
+function FCK_ContextMenu_GetListener( listenerName )
+{
+	switch ( listenerName )
+	{
+		case 'Generic' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				menu.AddItem( 'Cut'		, FCKLang.Cut	, 7, FCKCommands.GetCommand( 'Cut' ).GetState() == FCK_TRISTATE_DISABLED ) ;
+				menu.AddItem( 'Copy'	, FCKLang.Copy	, 8, FCKCommands.GetCommand( 'Copy' ).GetState() == FCK_TRISTATE_DISABLED ) ;
+				menu.AddItem( 'Paste'	, FCKLang.Paste	, 9, FCKCommands.GetCommand( 'Paste' ).GetState() == FCK_TRISTATE_DISABLED ) ;
+			}} ;
+
+		case 'Table' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				var bIsTable	= ( tagName == 'TABLE' ) ;
+				var bIsCell		= ( !bIsTable && FCKSelection.HasAncestorNode( 'TABLE' ) ) ;
+				
+				if ( bIsCell )
+				{
+					menu.AddSeparator() ;
+					var oItem = menu.AddItem( 'Cell'	, FCKLang.CellCM ) ;
+					oItem.AddItem( 'TableInsertCell'	, FCKLang.InsertCell, 58 ) ;
+					oItem.AddItem( 'TableDeleteCells'	, FCKLang.DeleteCells, 59 ) ;
+					oItem.AddItem( 'TableMergeCells'	, FCKLang.MergeCells, 60 ) ;
+					oItem.AddItem( 'TableSplitCell'		, FCKLang.SplitCell, 61 ) ;
+					oItem.AddSeparator() ;
+					oItem.AddItem( 'TableCellProp'		, FCKLang.CellProperties, 57 ) ;
+
+					menu.AddSeparator() ;
+					oItem = menu.AddItem( 'Row'			, FCKLang.RowCM ) ;
+					oItem.AddItem( 'TableInsertRow'		, FCKLang.InsertRow, 62 ) ;
+					oItem.AddItem( 'TableDeleteRows'	, FCKLang.DeleteRows, 63 ) ;
+					
+					menu.AddSeparator() ;
+					oItem = menu.AddItem( 'Column'		, FCKLang.ColumnCM ) ;
+					oItem.AddItem( 'TableInsertColumn'	, FCKLang.InsertColumn, 64 ) ;
+					oItem.AddItem( 'TableDeleteColumns'	, FCKLang.DeleteColumns, 65 ) ;
+				}
+
+				if ( bIsTable || bIsCell )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'TableDelete'			, FCKLang.TableDelete ) ;
+					menu.AddItem( 'TableProp'			, FCKLang.TableProperties, 39 ) ;
+				}
+			}} ;
+
+		case 'Link' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				var bInsideLink = ( tagName == 'A' || FCKSelection.HasAncestorNode( 'A' ) ) ;
+
+				if ( bInsideLink || FCK.GetNamedCommandState( 'Unlink' ) != FCK_TRISTATE_DISABLED )
+				{
+					menu.AddSeparator() ;
+					if ( bInsideLink )
+						menu.AddItem( 'Link', FCKLang.EditLink		, 34 ) ;
+					menu.AddItem( 'Unlink'	, FCKLang.RemoveLink	, 35 ) ;
+				}
+			}} ;
+
+		case 'Image' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'IMG' && !tag.getAttribute( '_fckfakelement' ) )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'Image', FCKLang.ImageProperties, 37 ) ;
+				}
+			}} ;
+
+		case 'Anchor' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'IMG' && tag.getAttribute( '_fckanchor' ) )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'Anchor', FCKLang.AnchorProp, 36 ) ;
+				}
+			}} ;
+
+		case 'Flash' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'IMG' && tag.getAttribute( '_fckflash' ) )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'Flash', FCKLang.FlashProperties, 38 ) ;
+				}
+			}} ;
+
+		case 'Form' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( FCKSelection.HasAncestorNode('FORM') )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'Form', FCKLang.FormProp, 48 ) ;
+				}
+			}} ;
+
+		case 'Checkbox' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'INPUT' && tag.type == 'checkbox' )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'Checkbox', FCKLang.CheckboxProp, 49 ) ;
+				}
+			}} ;
+
+		case 'Radio' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'INPUT' && tag.type == 'radio' )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'Radio', FCKLang.RadioButtonProp, 50 ) ;
+				}
+			}} ;
+
+		case 'TextField' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'INPUT' && ( tag.type == 'text' || tag.type == 'password' ) )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'TextField', FCKLang.TextFieldProp, 51 ) ;
+				}
+			}} ;
+
+		case 'HiddenField' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'INPUT' && tag.type == 'hidden' )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'HiddenField', FCKLang.HiddenFieldProp, 56 ) ;
+				}
+			}} ;
+
+		case 'ImageButton' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'INPUT' && tag.type == 'image' )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'ImageButton', FCKLang.ImageButtonProp, 55 ) ;
+				}
+			}} ;
+
+		case 'Button' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'INPUT' && ( tag.type == 'button' || tag.type == 'submit' || tag.type == 'reset' ) )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'Button', FCKLang.ButtonProp, 54 ) ;
+				}
+			}} ;
+
+		case 'Select' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'SELECT' )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'Select', FCKLang.SelectionFieldProp, 53 ) ;
+				}
+			}} ;
+
+		case 'Textarea' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'TEXTAREA' )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'Textarea', FCKLang.TextareaProp, 52 ) ;
+				}
+			}} ;
+
+		case 'BulletedList' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( FCKSelection.HasAncestorNode('UL') )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'BulletedList', FCKLang.BulletedListProp, 27 ) ;
+				}
+			}} ;
+
+		case 'NumberedList' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( FCKSelection.HasAncestorNode('OL') )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'NumberedList', FCKLang.NumberedListProp, 26 ) ;
+				}
+			}} ;
+	}
+}
+
+function FCK_ContextMenu_OnBeforeOpen()
+{
+	// Update the UI.
+	FCK.Events.FireEvent( "OnSelectionChange" ) ;
+
+  	// Get the actual selected tag (if any).
+	var oTag, sTagName ;
+	
+	if ( oTag = FCKSelection.GetSelectedElement() )
+		sTagName = oTag.tagName ;
+
+	// Cleanup the current menu items.
+	var oMenu = FCK.ContextMenu._InnerContextMenu ;
+	oMenu.RemoveAllItems() ;
+
+	// Loop through the listeners.
+	var aListeners = FCK.ContextMenu.Listeners ;
+	for ( var i = 0 ; i < aListeners.length ; i++ )
+		aListeners[i].AddItems( oMenu, oTag, sTagName ) ;
+}
+
+function FCK_ContextMenu_OnItemClick( item )
+{
+	FCK.Focus() ;
+	FCKCommands.GetCommand( item.Name ).Execute() ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_2_gecko.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_2_gecko.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_2_gecko.js	(revision 389)
@@ -0,0 +1,196 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_2_gecko.js
+ * 	This is the second part of the "FCK" object creation. This is the main
+ * 	object that represents an editor instance.
+ * 	(Gecko specific implementations)
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+// GetNamedCommandState overload for Gecko.
+FCK._BaseGetNamedCommandState = FCK.GetNamedCommandState ;
+FCK.GetNamedCommandState = function( commandName )
+{
+	switch ( commandName )
+	{
+		case 'Unlink' :
+			return FCKSelection.HasAncestorNode('A') ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ;
+		default :
+			return FCK._BaseGetNamedCommandState( commandName ) ;
+	}
+}
+
+// Named commands to be handled by this browsers specific implementation.
+FCK.RedirectNamedCommands = 
+{
+	Print	: true,
+	Paste	: true,
+	Cut		: true,
+	Copy	: true
+}
+
+// ExecuteNamedCommand overload for Gecko.
+FCK.ExecuteRedirectedNamedCommand = function( commandName, commandParameter )
+{
+	switch ( commandName )
+	{
+		case 'Print' :
+			FCK.EditorWindow.print() ;
+			break ;
+		case 'Paste' :
+			try			{ if ( FCK.Paste() ) FCK.ExecuteNamedCommand( 'Paste', null, true ) ; }
+			catch (e)	{ alert(FCKLang.PasteErrorPaste) ; }
+			break ;
+		case 'Cut' :
+			try			{ FCK.ExecuteNamedCommand( 'Cut', null, true ) ; }
+			catch (e)	{ alert(FCKLang.PasteErrorCut) ; }
+			break ;
+		case 'Copy' :
+			try			{ FCK.ExecuteNamedCommand( 'Copy', null, true ) ; }
+			catch (e)	{ alert(FCKLang.PasteErrorCopy) ; }
+			break ;			
+		default :
+			FCK.ExecuteNamedCommand( commandName, commandParameter ) ;
+	}
+}
+
+FCK.AttachToOnSelectionChange = function( functionPointer )
+{
+	this.Events.AttachEvent( 'OnSelectionChange', functionPointer ) ;
+}
+
+FCK.Paste = function()
+{
+	if ( FCKConfig.ForcePasteAsPlainText )
+	{
+		FCK.PasteAsPlainText() ;	
+		return false ;
+	}
+/* For now, the AutoDetectPasteFromWord feature is IE only.
+	else if ( FCKConfig.AutoDetectPasteFromWord )
+	{
+		var sHTML = FCK.GetClipboardHTML() ;
+		var re = /<\w[^>]* class="?MsoNormal"?/gi ;
+		if ( re.test( sHTML ) )
+		{
+			if ( confirm( FCKLang["PasteWordConfirm"] ) )
+			{
+				FCK.PasteFromWord() ;
+				return false ;
+			}
+		}
+	}
+*/
+	else
+		return true ;
+}
+
+//**
+// FCK.InsertHtml: Inserts HTML at the current cursor location. Deletes the
+// selected content if any.
+FCK.InsertHtml = function( html )
+{
+	html = FCKConfig.ProtectedSource.Protect( html ) ;
+	html = FCK.ProtectUrls( html ) ;
+
+	// Delete the actual selection.
+	var oSel = FCKSelection.Delete() ;
+	
+	// Get the first available range.
+	var oRange = oSel.getRangeAt(0) ;
+	
+	// Create a fragment with the input HTML.
+	var oFragment = oRange.createContextualFragment( html ) ;
+	
+	// Get the last available node.
+	var oLastNode = oFragment.lastChild ;
+
+	// Insert the fragment in the range.
+	oRange.insertNode(oFragment) ;
+	
+	// Set the cursor after the inserted fragment.
+	FCKSelection.SelectNode( oLastNode ) ;
+	FCKSelection.Collapse( false ) ;
+	
+	this.Focus() ;
+}
+
+FCK.InsertElement = function( element )
+{
+	// Deletes the actual selection.
+	var oSel = FCKSelection.Delete() ;
+	
+	// Gets the first available range.
+	var oRange = oSel.getRangeAt(0) ;
+	
+	// Inserts the element in the range.
+	oRange.insertNode( element ) ;
+	
+	// Set the cursor after the inserted fragment.
+	FCKSelection.SelectNode( element ) ;
+	FCKSelection.Collapse( false ) ;
+
+	this.Focus() ;
+}
+
+FCK.PasteAsPlainText = function()
+{
+	// TODO: Implement the "Paste as Plain Text" code.
+	
+	FCKDialog.OpenDialog( 'FCKDialog_Paste', FCKLang.PasteAsText, 'dialog/fck_paste.html', 400, 330, 'PlainText' ) ;
+	
+/*
+	var sText = FCKTools.HTMLEncode( clipboardData.getData("Text") ) ;
+	sText = sText.replace( /\n/g, '<BR>' ) ;
+	this.InsertHtml( sText ) ;	
+*/
+}
+/*
+FCK.PasteFromWord = function()
+{
+	// TODO: Implement the "Paste as Plain Text" code.
+	
+	FCKDialog.OpenDialog( 'FCKDialog_Paste', FCKLang.PasteFromWord, 'dialog/fck_paste.html', 400, 330, 'Word' ) ;
+
+//	FCK.CleanAndPaste( FCK.GetClipboardHTML() ) ;
+}
+*/
+FCK.GetClipboardHTML = function()
+{
+	return '' ;
+}
+
+FCK.CreateLink = function( url )
+{	
+	FCK.ExecuteNamedCommand( 'Unlink' ) ;
+	
+	if ( url.length > 0 )
+	{
+		// Generate a temporary name for the link.
+		var sTempUrl = 'javascript:void(0);/*' + ( new Date().getTime() ) + '*/' ;
+		
+		// Use the internal "CreateLink" command to create the link.
+		FCK.ExecuteNamedCommand( 'CreateLink', sTempUrl ) ;
+
+		// Retrieve the just created link using XPath.
+		var oLink = document.evaluate("//a[@href='" + sTempUrl + "']", this.EditorDocument.body, null, 9, null).singleNodeValue ;
+		
+		if ( oLink )
+		{
+			oLink.href = url ;
+			return oLink ;
+		}
+	}
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_1_ie.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_1_ie.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_1_ie.js	(revision 389)
@@ -0,0 +1,294 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_1_ie.js
+ * 	This is the first part of the "FCK" object creation. This is the main
+ * 	object that represents an editor instance.
+ * 	(IE specific implementations)
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCK.Description = "FCKeditor for Internet Explorer 5.5+" ;
+
+FCK._GetBehaviorsStyle = function()
+{
+	if ( !FCK._BehaviorsStyle )
+	{
+		var sBasePath = FCKConfig.FullBasePath ;
+		var sTableBehavior = '' ;
+		var sStyle ;
+		
+		// The behaviors should be pointed using the FullBasePath to avoid security
+		// errors when using a differente BaseHref.
+		sStyle =
+			'<style type="text/css" _fcktemp="true">' +
+			'INPUT { behavior: url(' + sBasePath + 'css/behaviors/hiddenfield.htc) ; }' ;
+
+		if ( FCKConfig.ShowBorders )
+			sTableBehavior = 'url(' + sBasePath + 'css/behaviors/showtableborders.htc)' ;
+
+		// Disable resize handlers.
+		sStyle += 'INPUT,TEXTAREA,SELECT,.FCK__Anchor,.FCK__PageBreak' ;
+
+		if ( FCKConfig.DisableObjectResizing )
+		{
+			sStyle += ',IMG' ;
+			sTableBehavior += ' url(' + sBasePath + 'css/behaviors/disablehandles.htc)' ;
+		}
+		
+		sStyle += ' { behavior: url(' + sBasePath + 'css/behaviors/disablehandles.htc) ; }' ;
+
+		if ( sTableBehavior.length > 0 )
+			sStyle += 'TABLE { behavior: ' + sTableBehavior + ' ; }' ;
+
+		sStyle += '</style>' ;
+		FCK._BehaviorsStyle = sStyle ;
+	}
+	
+	return FCK._BehaviorsStyle ;
+}
+
+function Doc_OnMouseUp()
+{
+	if ( FCK.EditorWindow.event.srcElement.tagName == 'HTML' )
+	{
+		FCK.Focus() ;
+		FCK.EditorWindow.event.cancelBubble	= true ;
+		FCK.EditorWindow.event.returnValue	= false ;
+	}
+}
+
+function Doc_OnPaste()
+{
+	if ( FCK.Status == FCK_STATUS_COMPLETE )
+		FCK.Events.FireEvent( "OnPaste" ) ;
+
+	return false ;
+}
+
+/*
+function Doc_OnContextMenu()
+{
+	var e = FCK.EditorWindow.event ;
+	
+	FCK.ShowContextMenu( e.screenX, e.screenY ) ;
+	return false ;
+}
+*/
+
+function Doc_OnKeyDown()
+{
+	var e = FCK.EditorWindow.event ;
+
+
+	switch ( e.keyCode )
+	{
+		case 13 :	// ENTER
+			if ( FCKConfig.UseBROnCarriageReturn && !(e.ctrlKey || e.altKey || e.shiftKey) )
+			{
+				Doc_OnKeyDownUndo() ;
+				
+				// We must ignore it if we are inside a List.
+				if ( FCK.EditorDocument.queryCommandState( 'InsertOrderedList' ) || FCK.EditorDocument.queryCommandState( 'InsertUnorderedList' ) )
+					return true ;
+
+				// Insert the <BR> (The &nbsp; must be also inserted to make it work)
+				FCK.InsertHtml( '<br>&nbsp;' ) ;
+
+				// Remove the &nbsp;
+				var oRange = FCK.EditorDocument.selection.createRange() ;
+				oRange.moveStart( 'character', -1 ) ;
+				oRange.select() ;
+				FCK.EditorDocument.selection.clear() ;
+
+				return false ;
+			}
+			break ;
+		
+		case 8 :	// BACKSPACE
+			// We must delete a control selection by code and cancels the 
+			// keystroke, otherwise IE will execute the browser's "back" button.
+			if ( FCKSelection.GetType() == 'Control' )
+			{
+				FCKSelection.Delete() ;
+				return false ;
+			}
+			break ;
+		
+		case 9 :	// TAB
+			if ( FCKConfig.TabSpaces > 0 && !(e.ctrlKey || e.altKey || e.shiftKey) )
+			{
+				Doc_OnKeyDownUndo() ;
+				
+				FCK.InsertHtml( window.FCKTabHTML ) ;
+				return false ;
+			}
+			break ;
+		case 90 :	// Z
+			if ( e.ctrlKey && !(e.altKey || e.shiftKey) )
+			{
+				FCKUndo.Undo() ;
+				return false ;
+			}
+			break ;
+		case 89 :	// Y
+			if ( e.ctrlKey && !(e.altKey || e.shiftKey) )
+			{
+				FCKUndo.Redo() ;
+				return false ;
+			}
+			break ;
+	}
+	
+	if ( !( e.keyCode >=16 && e.keyCode <= 18 ) )
+		Doc_OnKeyDownUndo() ;
+	return true ;
+}
+
+function Doc_OnKeyDownUndo()
+{
+	if ( !FCKUndo.Typing )
+	{
+		FCKUndo.SaveUndoStep() ;
+		FCKUndo.Typing = true ;
+		FCK.Events.FireEvent( "OnSelectionChange" ) ;
+	}
+	
+	FCKUndo.TypesCount++ ;
+
+	if ( FCKUndo.TypesCount > FCKUndo.MaxTypes )
+	{
+		FCKUndo.TypesCount = 0 ;
+		FCKUndo.SaveUndoStep() ;
+	}
+}
+
+function Doc_OnDblClick()
+{
+	FCK.OnDoubleClick( FCK.EditorWindow.event.srcElement ) ;
+	FCK.EditorWindow.event.cancelBubble = true ;
+}
+
+function Doc_OnSelectionChange()
+{
+	FCK.Events.FireEvent( "OnSelectionChange" ) ;
+}
+
+FCK.InitializeBehaviors = function( dontReturn )
+{
+	// Set the focus to the editable area when clicking in the document area.
+	// TODO: The cursor must be positioned at the end.
+	this.EditorDocument.attachEvent( 'onmouseup', Doc_OnMouseUp ) ;
+
+	// Intercept pasting operations
+	this.EditorDocument.body.attachEvent( 'onpaste', Doc_OnPaste ) ;
+
+	// Reset the context menu.
+	FCK.ContextMenu._InnerContextMenu.AttachToElement( FCK.EditorDocument.body ) ;
+
+	// Build the "TAB" key replacement (if necessary).
+	if ( FCKConfig.TabSpaces > 0 )
+	{
+		window.FCKTabHTML = '' ;
+		for ( i = 0 ; i < FCKConfig.TabSpaces ; i++ )
+			window.FCKTabHTML += "&nbsp;" ;
+	}
+	this.EditorDocument.attachEvent("onkeydown", Doc_OnKeyDown ) ;
+
+	this.EditorDocument.attachEvent("ondblclick", Doc_OnDblClick ) ;
+
+	// Catch cursor movements
+	this.EditorDocument.attachEvent("onselectionchange", Doc_OnSelectionChange ) ;
+
+	//Enable editing
+//	this.EditorDocument.body.contentEditable = true ;
+}
+
+FCK.InsertHtml = function( html )
+{
+	html = FCKConfig.ProtectedSource.Protect( html ) ;
+	html = FCK.ProtectUrls( html ) ;
+
+	FCK.Focus() ;
+
+	FCKUndo.SaveUndoStep() ;
+
+	// Gets the actual selection.
+	var oSel = FCK.EditorDocument.selection ;
+
+	// Deletes the actual selection contents.
+	if ( oSel.type.toLowerCase() == 'control' )
+		oSel.clear() ;
+
+	// Insert the HTML.
+	oSel.createRange().pasteHTML( html ) ;
+	
+	FCKDocumentProcessor.Process( FCK.EditorDocument ) ;
+}
+
+FCK.SetInnerHtml = function( html )		// IE Only
+{
+	var oDoc = FCK.EditorDocument ;
+	// Using the following trick, any comment in the begining of the HTML will
+	// be preserved.
+	oDoc.body.innerHTML = '<div id="__fakeFCKRemove__">&nbsp;</div>' + html ;
+	oDoc.getElementById('__fakeFCKRemove__').removeNode( true ) ;
+}
+
+var FCK_PreloadImages_Count = 0 ;
+var FCK_PreloadImages_Images = new Array() ;
+
+function FCK_PreloadImages()
+{
+	// Get the images to preload.
+	var aImages = FCKConfig.PreloadImages || [] ;
+	
+	if ( typeof( aImages ) == 'string' )
+		aImages = aImages.split( ';' ) ;
+
+	// Add the skin icons strip.
+	aImages.push( FCKConfig.SkinPath + 'fck_strip.gif' ) ;
+	
+	FCK_PreloadImages_Count = aImages.length ;
+
+	var aImageElements = new Array() ;
+	
+	for ( var i = 0 ; i < aImages.length ; i++ )
+	{
+		var eImg = document.createElement( 'img' ) ;
+		eImg.onload = eImg.onerror = FCK_PreloadImages_OnImage ;
+		eImg.src = aImages[i] ;
+		
+		FCK_PreloadImages_Images[i] = eImg ;
+	}
+}
+
+function FCK_PreloadImages_OnImage()
+{
+	if ( (--FCK_PreloadImages_Count) == 0 )
+		FCKTools.RunFunction( LoadToolbarSetup ) ;
+}
+
+// Disable the context menu in the editor (outside the editing area).
+function Document_OnContextMenu()
+{
+	return ( event.srcElement._FCKShowContextMenu == true ) ;
+}
+document.oncontextmenu = Document_OnContextMenu ;
+
+function FCK_Cleanup()
+{
+	this.EditorWindow = null ;
+	this.EditorDocument = null ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckdialog_ie.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckdialog_ie.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckdialog_ie.js	(revision 389)
@@ -0,0 +1,40 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckdialog_ie.js
+ * 	Dialog windows operations. (IE specific implementations)
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCKDialog.Show = function( dialogInfo, dialogName, pageUrl, dialogWidth, dialogHeight, parentWindow )
+{
+	if ( !parentWindow )
+		parentWindow = window ;
+
+	FCKFocusManager.Lock() ;
+	
+	var oReturn ;
+	
+	try
+	{
+		oReturn = parentWindow.showModalDialog( pageUrl, dialogInfo, "dialogWidth:" + dialogWidth + "px;dialogHeight:" + dialogHeight + "px;help:no;scroll:no;status:no") ;
+	}
+	catch( e ) 
+	{}
+	
+	if ( !oReturn )
+		alert( FCKLang.DialogBlocked ) ;	
+
+	FCKFocusManager.Unlock() ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckundo_gecko.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckundo_gecko.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckundo_gecko.js	(revision 389)
@@ -0,0 +1,23 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckundo_gecko.js
+ * 	Fake implementation to ignore calls on Gecko.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKUndo = new Object() ;
+
+FCKUndo.SaveUndoStep = function()
+{}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_2_ie.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_2_ie.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fck_2_ie.js	(revision 389)
@@ -0,0 +1,164 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_2_ie.js
+ * 	This is the second part of the "FCK" object creation. This is the main
+ * 	object that represents an editor instance.
+ * 	(IE specific implementations)
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+/*
+if ( FCKConfig.UseBROnCarriageReturn ) 
+{
+	// Named commands to be handled by this browsers specific implementation.
+	FCK.RedirectNamedCommands = 
+	{
+		InsertOrderedList	: true,
+		InsertUnorderedList	: true
+	}
+
+	FCK.ExecuteRedirectedNamedCommand = function( commandName, commandParameter )
+	{
+		if ( commandName == 'InsertOrderedList' || commandName == 'InsertUnorderedList' )
+		{
+			if ( !(FCK.EditorDocument.queryCommandState( 'InsertOrderedList' ) || FCK.EditorDocument.queryCommandState( 'InsertUnorderedList' )) )
+			{
+			}				
+		}
+
+		FCK.ExecuteNamedCommand( commandName, commandParameter ) ;
+	}
+}
+*/
+
+FCK.Paste = function()
+{
+	if ( FCKConfig.ForcePasteAsPlainText )
+	{
+		FCK.PasteAsPlainText() ;	
+		return ;
+	}
+
+	var sHTML = FCK.GetClipboardHTML() ;
+
+	if ( FCKConfig.AutoDetectPasteFromWord )
+	{
+		var re = /<\w[^>]*(( class="?MsoNormal"?)|(="mso-))/gi ;
+		if ( re.test( sHTML ) )
+		{
+			if ( confirm( FCKLang["PasteWordConfirm"] ) )
+			{
+				FCK.PasteFromWord() ;
+				return ;
+			}
+		}
+	}
+
+	FCK.InsertHtml( sHTML ) ;	
+}
+
+FCK.PasteAsPlainText = function()
+{
+	// Get the data available in the clipboard and encodes it in HTML.
+	var sText = FCKTools.HTMLEncode( clipboardData.getData("Text") ) ;
+
+	// Replace the carriage returns with <BR>
+	sText = sText.replace( /\n/g, '<BR>' ) ;
+	
+	// Insert the resulting data in the editor.
+	this.InsertHtml( sText ) ;	
+}
+/*
+FCK.PasteFromWord = function()
+{
+	FCK.CleanAndPaste( FCK.GetClipboardHTML() ) ;
+}
+*/
+FCK.InsertElement = function( element )
+{
+	FCK.InsertHtml( element.outerHTML ) ;
+}
+
+FCK.GetClipboardHTML = function()
+{
+	var oDiv = document.getElementById( '___FCKHiddenDiv' ) ;
+	
+	if ( !oDiv )
+	{
+		var oDiv = document.createElement( 'DIV' ) ;
+		oDiv.id = '___FCKHiddenDiv' ;
+		oDiv.style.visibility	= 'hidden' ;
+		oDiv.style.overflow		= 'hidden' ;
+		oDiv.style.position		= 'absolute' ;
+		oDiv.style.width		= 1 ;
+		oDiv.style.height		= 1 ;
+	
+		document.body.appendChild( oDiv ) ;
+	}
+	
+	oDiv.innerHTML = '' ;
+	
+	var oTextRange = document.body.createTextRange() ;
+	oTextRange.moveToElementText( oDiv ) ;
+	oTextRange.execCommand( 'Paste' ) ;
+	
+	var sData = oDiv.innerHTML ;
+	oDiv.innerHTML = '' ;
+	
+	return sData ;
+}
+
+FCK.AttachToOnSelectionChange = function( functionPointer )
+{
+	this.Events.AttachEvent( 'OnSelectionChange', functionPointer ) ;
+}
+
+/*
+FCK.AttachToOnSelectionChange = function( functionPointer )
+{
+	FCK.EditorDocument.attachEvent( 'onselectionchange', functionPointer ) ;
+}
+*/
+
+FCK.CreateLink = function( url )
+{
+	// Remove any existing link in the selection.
+	FCK.ExecuteNamedCommand( 'Unlink' ) ;
+
+	if ( url.length > 0 )
+	{
+		// Generate a temporary name for the link.
+		var sTempUrl = 'javascript:void(0);/*' + ( new Date().getTime() ) + '*/' ;
+		
+		// Use the internal "CreateLink" command to create the link.
+		FCK.ExecuteNamedCommand( 'CreateLink', sTempUrl ) ;
+
+		// Look for the just create link.
+		var oLinks = this.EditorDocument.links ;
+
+		for ( i = 0 ; i < oLinks.length ; i++ )
+		{
+			var oLink = oLinks[i] ;
+			
+			if ( oLink.href == sTempUrl )
+			{
+				var sInnerHtml = oLink.innerHTML ;	// Save the innerHTML (IE changes it if it is like an URL).
+				oLink.href = url ;
+				oLink.innerHTML = sInnerHtml ;		// Restore the innerHTML.
+				return oLink ;
+			}
+		}
+	}
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktoolbarset.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktoolbarset.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcktoolbarset.js	(revision 389)
@@ -0,0 +1,352 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktoolbarset.js
+ * 	Defines the FCKToolbarSet object that is used to load and draw the 
+ * 	toolbar.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+function FCKToolbarSet_Create( overhideLocation )
+{
+	var oToolbarSet ;
+	
+	var sLocation = overhideLocation || FCKConfig.ToolbarLocation ;
+	switch ( sLocation )
+	{
+		case 'In' :
+				document.getElementById( 'xToolbarRow' ).style.display = '' ;
+				oToolbarSet = new FCKToolbarSet( document ) ;
+			break ;
+			
+//		case 'OutTop' :
+			// Not supported.
+			
+		default :
+			FCK.Events.AttachEvent( 'OnBlur', FCK_OnBlur ) ;
+			FCK.Events.AttachEvent( 'OnFocus', FCK_OnFocus ) ;
+
+			var eToolbarTarget ;
+			
+			// Out:[TargetWindow]([TargetId])
+			var oOutMatch = sLocation.match( /^Out:(.+)\((\w+)\)$/ ) ;
+			if ( oOutMatch )
+			{
+				eToolbarTarget = eval( 'parent.' + oOutMatch[1] ).document.getElementById( oOutMatch[2] ) ;
+			}
+			else
+			{
+				// Out:[TargetId]
+				oOutMatch = sLocation.match( /^Out:(\w+)$/ ) ;
+				if ( oOutMatch )
+					eToolbarTarget = parent.document.getElementById( oOutMatch[1] ) ;
+			}
+			
+			if ( !eToolbarTarget )
+			{
+				alert( 'Invalid value for "ToolbarLocation"' ) ;
+				return this._Init( 'In' ) ;
+			}
+			
+			// If it is a shared toolbar, it may be already available in the target element.
+			if ( oToolbarSet = eToolbarTarget.__FCKToolbarSet )
+				break ;
+
+			// Create the IFRAME that will hold the toolbar inside the target element.
+			var eToolbarIFrame = FCKTools.GetElementDocument( eToolbarTarget ).createElement( 'iframe' ) ;
+			eToolbarIFrame.frameBorder = 0 ;
+			eToolbarIFrame.width = '100%' ;
+			eToolbarIFrame.height = '10' ;
+			eToolbarTarget.appendChild( eToolbarIFrame ) ;
+			eToolbarIFrame.unselectable = 'on' ;
+			
+			// Write the basic HTML for the toolbar (copy from the editor main page).
+			var eTargetDocument = eToolbarIFrame.contentWindow.document ;
+			eTargetDocument.open() ;
+			eTargetDocument.write( '<html><head><script type="text/javascript"> window.onload = window.onresize = function() { window.frameElement.height = document.body.scrollHeight ; } </script></head><body style="overflow: hidden">' + document.getElementById( 'xToolbarSpace' ).innerHTML + '</body></html>' ) ;
+			eTargetDocument.close() ;
+			
+			eTargetDocument.oncontextmenu = FCKTools.CancelEvent ;
+
+			// Load external resources (must be done here, otherwise Firefox will not
+			// have the document DOM ready to be used right away.
+			FCKTools.AppendStyleSheet( eTargetDocument, FCKConfig.SkinPath + 'fck_editor.css' ) ;
+			
+			oToolbarSet = eToolbarTarget.__FCKToolbarSet = new FCKToolbarSet( eTargetDocument ) ;
+			oToolbarSet._IFrame = eToolbarIFrame ;
+
+			if ( FCK.IECleanup )
+				FCK.IECleanup.AddItem( eToolbarTarget, FCKToolbarSet_Target_Cleanup ) ;
+	}
+	
+	oToolbarSet.CurrentInstance = FCK ;
+
+	FCK.AttachToOnSelectionChange( oToolbarSet.RefreshItemsState ) ;
+
+	return oToolbarSet ;
+}
+
+function FCK_OnBlur( editorInstance )
+{
+	var eToolbarSet = editorInstance.ToolbarSet ;
+	
+	if ( eToolbarSet.CurrentInstance == editorInstance )
+		eToolbarSet.Disable() ;
+}
+
+function FCK_OnFocus( editorInstance )
+{
+	var oToolbarset = editorInstance.ToolbarSet ;
+	var oInstance = editorInstance || FCK ;
+	
+	// Unregister the toolbar window from the current instance.
+	oToolbarset.CurrentInstance.FocusManager.RemoveWindow( oToolbarset._IFrame.contentWindow ) ;
+	
+	// Set the new current instance.
+	oToolbarset.CurrentInstance = oInstance ;
+	
+	// Register the toolbar window in the current instance.
+	oInstance.FocusManager.AddWindow( oToolbarset._IFrame.contentWindow, true ) ;
+
+	oToolbarset.Enable() ;
+}
+
+function FCKToolbarSet_Cleanup()
+{
+	this._TargetElement = null ;
+	this._IFrame = null ;
+}
+
+function FCKToolbarSet_Target_Cleanup()
+{
+	this.__FCKToolbarSet = null ;
+}
+
+var FCKToolbarSet = function( targetDocument )
+{
+	this._Document = targetDocument ; 
+
+	// Get the element that will hold the elements structure.
+	this._TargetElement	= targetDocument.getElementById( 'xToolbar' ) ;
+	
+	// Setup the expand and collapse handlers.
+	var eExpandHandle	= targetDocument.getElementById( 'xExpandHandle' ) ;
+	var eCollapseHandle	= targetDocument.getElementById( 'xCollapseHandle' ) ;
+
+	eExpandHandle.title		= FCKLang.ToolbarExpand ;
+	eExpandHandle.onclick	= FCKToolbarSet_Expand_OnClick ;
+	
+	eCollapseHandle.title	= FCKLang.ToolbarCollapse ;
+	eCollapseHandle.onclick	= FCKToolbarSet_Collapse_OnClick ;
+
+	// Set the toolbar state at startup.
+	if ( !FCKConfig.ToolbarCanCollapse || FCKConfig.ToolbarStartExpanded )
+		this.Expand() ;
+	else
+		this.Collapse() ;
+
+	// Enable/disable the collapse handler
+	eCollapseHandle.style.display = FCKConfig.ToolbarCanCollapse ? '' : 'none' ;
+
+	if ( FCKConfig.ToolbarCanCollapse )
+		eCollapseHandle.style.display = '' ;
+	else
+		targetDocument.getElementById( 'xTBLeftBorder' ).style.display = '' ;
+		
+	// Set the default properties.
+	this.Toolbars = new Array() ;
+	this.IsLoaded = false ;
+
+	if ( FCK.IECleanup )
+		FCK.IECleanup.AddItem( this, FCKToolbarSet_Cleanup ) ;
+}
+
+function FCKToolbarSet_Expand_OnClick()
+{
+	FCK.ToolbarSet.Expand() ;
+}
+
+function FCKToolbarSet_Collapse_OnClick()
+{
+	FCK.ToolbarSet.Collapse() ;
+}
+
+FCKToolbarSet.prototype.Expand = function()
+{
+	this._ChangeVisibility( false ) ;
+}
+
+FCKToolbarSet.prototype.Collapse = function()
+{
+	this._ChangeVisibility( true ) ;
+}
+
+FCKToolbarSet.prototype._ChangeVisibility = function( collapse )
+{
+	this._Document.getElementById( 'xCollapsed' ).style.display = collapse ? '' : 'none' ;
+	this._Document.getElementById( 'xExpanded' ).style.display = collapse ? 'none' : '' ;
+	
+	if ( FCKBrowserInfo.IsGecko )
+	{
+		// I had to use "setTimeout" because Gecko was not responding in a right
+		// way when calling window.onresize() directly.
+		FCKTools.RunFunction( window.onresize ) ;
+	}
+}
+
+FCKToolbarSet.prototype.Load = function( toolbarSetName )
+{
+	this.Name = toolbarSetName ;
+
+	this.Items = new Array() ;
+	
+	// Reset the array of toolbat items that are active only on WYSIWYG mode.
+	this.ItemsWysiwygOnly = new Array() ;
+
+	// Reset the array of toolbar items that are sensitive to the cursor position.
+	this.ItemsContextSensitive = new Array() ;
+	
+	// Cleanup the target element.
+	this._TargetElement.innerHTML = '' ;
+	
+	var ToolbarSet = FCKConfig.ToolbarSets[toolbarSetName] ;
+	
+	if ( !ToolbarSet )
+	{
+		alert( FCKLang.UnknownToolbarSet.replace( /%1/g, toolbarSetName ) ) ;
+		return ;
+	}
+	
+	this.Toolbars = new Array() ;
+	
+	for ( var x = 0 ; x < ToolbarSet.length ; x++ ) 
+	{
+		var oToolbarItems = ToolbarSet[x] ;
+		
+		var oToolbar ;
+		
+		if ( typeof( oToolbarItems ) == 'string' )
+		{
+			if ( oToolbarItems == '/' )
+				oToolbar = new FCKToolbarBreak() ;
+		}
+		else
+		{
+			oToolbar = new FCKToolbar() ;
+			
+			for ( var j = 0 ; j < oToolbarItems.length ; j++ ) 
+			{
+				var sItem = oToolbarItems[j] ;
+				
+				if ( sItem == '-')
+					oToolbar.AddSeparator() ;
+				else
+				{
+					var oItem = FCKToolbarItems.GetItem( sItem ) ;
+					if ( oItem )
+					{
+						oToolbar.AddItem( oItem ) ;
+
+						this.Items.push( oItem ) ;
+
+						if ( !oItem.SourceView )
+							this.ItemsWysiwygOnly.push( oItem ) ;
+						
+						if ( oItem.ContextSensitive )
+							this.ItemsContextSensitive.push( oItem ) ;
+					}
+				}
+			}
+			
+			// oToolbar.AddTerminator() ;
+		}
+		
+		oToolbar.Create( this._TargetElement ) ;
+
+		this.Toolbars[ this.Toolbars.length ] = oToolbar ;
+	}
+	
+	FCKTools.DisableSelection( this._Document.getElementById( 'xCollapseHandle' ).parentNode ) ;
+
+	if ( FCK.Status != FCK_STATUS_COMPLETE )
+		FCK.Events.AttachEvent( 'OnStatusChange', this.RefreshModeState ) ;
+	else
+		this.RefreshModeState() ;
+
+	this.IsLoaded = true ;
+	this.IsEnabled = true ;
+
+	FCKTools.RunFunction( this.OnLoad ) ;
+}
+
+FCKToolbarSet.prototype.Enable = function()
+{
+	if ( this.IsEnabled )
+		return ;
+
+	this.IsEnabled = true ;
+
+	var aItems = this.Items ;
+	for ( var i = 0 ; i < aItems.length ; i++ )
+		aItems[i].RefreshState() ;
+}
+
+FCKToolbarSet.prototype.Disable = function()
+{
+	if ( !this.IsEnabled )
+		return ;
+
+	this.IsEnabled = false ;
+
+	var aItems = this.Items ;
+	for ( var i = 0 ; i < aItems.length ; i++ )
+		aItems[i].Disable() ;
+}
+
+FCKToolbarSet.prototype.RefreshModeState = function( editorInstance )
+{
+	if ( FCK.Status != FCK_STATUS_COMPLETE )
+		return ;
+
+	var oToolbarSet = editorInstance ? editorInstance.ToolbarSet : this ;
+	var aItems = oToolbarSet.ItemsWysiwygOnly ;
+	
+	if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
+	{
+		// Enable all buttons that are available on WYSIWYG mode only.
+		for ( var i = 0 ; i < aItems.length ; i++ )
+			aItems[i].Enable() ;
+
+		// Refresh the buttons state.
+		oToolbarSet.RefreshItemsState( editorInstance ) ;
+	}
+	else
+	{
+		// Refresh the buttons state.
+		oToolbarSet.RefreshItemsState( editorInstance ) ;
+
+		// Disable all buttons that are available on WYSIWYG mode only.
+		for ( var i = 0 ; i < aItems.length ; i++ )
+			aItems[i].Disable() ;
+	}	
+}
+
+FCKToolbarSet.prototype.RefreshItemsState = function( editorInstance )
+{
+	
+	var aItems = ( editorInstance ? editorInstance.ToolbarSet : this ).ItemsContextSensitive ;
+	
+	for ( var i = 0 ; i < aItems.length ; i++ )
+		aItems[i].RefreshState() ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcklanguagemanager.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcklanguagemanager.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fcklanguagemanager.js	(revision 389)
@@ -0,0 +1,152 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcklanguagemanager.js
+ * 	Defines the FCKLanguageManager object that is used for language 
+ * 	operations.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+var FCKLanguageManager = FCK.Language = new Object() ;
+
+FCKLanguageManager.AvailableLanguages = 
+{
+	'ar'		: 'Arabic',
+	'bg'		: 'Bulgarian',
+	'bn'		: 'Bengali/Bangla',
+	'bs'		: 'Bosnian',
+	'ca'		: 'Catalan',
+	'cs'		: 'Czech',
+	'da'		: 'Danish',
+	'de'		: 'German',
+	'el'		: 'Greek',
+	'en'		: 'English',
+	'en-au'		: 'English (Australia)',
+	'en-ca'		: 'English (Canadian)',
+	'en-uk'		: 'English (United Kingdom)',
+	'eo'		: 'Esperanto',
+	'es'		: 'Spanish',
+	'et'		: 'Estonian',
+	'eu'		: 'Basque',
+	'fa'		: 'Persian',
+	'fi'		: 'Finnish',
+	'fo'		: 'Faroese',
+	'fr'		: 'French',
+	'gl'		: 'Galician',
+	'he'		: 'Hebrew',
+	'hi'		: 'Hindi',
+	'hr'		: 'Croatian',
+	'hu'		: 'Hungarian',
+	'it'		: 'Italian',
+	'ja'		: 'Japanese',
+	'km'		: 'Khmer',
+	'ko'		: 'Korean',
+	'lt'		: 'Lithuanian',
+	'lv'		: 'Latvian',
+	'mn'		: 'Mongolian',
+	'ms'		: 'Malay',
+	'nb'		: 'Norwegian Bokmal',
+	'nl'		: 'Dutch',
+	'no'		: 'Norwegian',
+	'pl'		: 'Polish',
+	'pt'		: 'Portuguese (Portugal)',
+	'pt-br'		: 'Portuguese (Brazil)',
+	'ro'		: 'Romanian',
+	'ru'		: 'Russian',
+	'sk'		: 'Slovak',
+	'sl'		: 'Slovenian',
+	'sr'		: 'Serbian (Cyrillic)',
+	'sr-latn'	: 'Serbian (Latin)',
+	'sv'		: 'Swedish',
+	'th'		: 'Thai',
+	'tr'		: 'Turkish',
+	'uk'		: 'Ukrainian',
+	'vi'		: 'Vietnamese',
+	'zh'		: 'Chinese Traditional',
+	'zh-cn'		: 'Chinese Simplified'
+}
+
+FCKLanguageManager.GetActiveLanguage = function()
+{
+	if ( FCKConfig.AutoDetectLanguage )
+	{
+		var sUserLang ;
+		
+		// IE accepts "navigator.userLanguage" while Gecko "navigator.language".
+		if ( navigator.userLanguage )
+			sUserLang = navigator.userLanguage.toLowerCase() ;
+		else if ( navigator.language )
+			sUserLang = navigator.language.toLowerCase() ;
+		else
+		{
+			// Firefox 1.0 PR has a bug: it doens't support the "language" property.
+			return FCKConfig.DefaultLanguage ;
+		}
+		
+		// Some language codes are set in 5 characters, 
+		// like "pt-br" for Brasilian Portuguese.
+		if ( sUserLang.length >= 5 )
+		{
+			sUserLang = sUserLang.substr(0,5) ;
+			if ( this.AvailableLanguages[sUserLang] ) return sUserLang ;
+		}
+		
+		// If the user's browser is set to, for example, "pt-br" but only the 
+		// "pt" language file is available then get that file.
+		if ( sUserLang.length >= 2 )
+		{
+			sUserLang = sUserLang.substr(0,2) ;
+			if ( this.AvailableLanguages[sUserLang] ) return sUserLang ;
+		}
+	}
+	
+	return this.DefaultLanguage ;
+}
+
+FCKLanguageManager.TranslateElements = function( targetDocument, tag, propertyToSet, encode )
+{
+	var e = targetDocument.getElementsByTagName(tag) ;
+	var sKey, s ;
+	for ( var i = 0 ; i < e.length ; i++ )
+	{
+		if ( sKey = e[i].getAttribute( 'fckLang' ) )
+		{
+			if ( s = FCKLang[ sKey ] )
+			{
+				if ( encode )
+					s = FCKTools.HTMLEncode( s ) ;
+				eval( 'e[i].' + propertyToSet + ' = s' ) ;
+			}
+		}
+	}
+}
+
+FCKLanguageManager.TranslatePage = function( targetDocument )
+{
+	this.TranslateElements( targetDocument, 'INPUT', 'value' ) ;
+	this.TranslateElements( targetDocument, 'SPAN', 'innerHTML' ) ;
+	this.TranslateElements( targetDocument, 'LABEL', 'innerHTML' ) ;
+	this.TranslateElements( targetDocument, 'OPTION', 'innerHTML', true ) ;
+}
+
+FCKLanguageManager.Initialize = function()
+{
+	if ( this.AvailableLanguages[ FCKConfig.DefaultLanguage ] )
+		this.DefaultLanguage = FCKConfig.DefaultLanguage ;
+	else
+		this.DefaultLanguage = 'en' ;
+
+	this.ActiveLanguage = new Object() ;
+	this.ActiveLanguage.Code = this.GetActiveLanguage() ;
+	this.ActiveLanguage.Name = this.AvailableLanguages[ this.ActiveLanguage.Code ] ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckdocumentprocessor.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckdocumentprocessor.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/internals/fckdocumentprocessor.js	(revision 389)
@@ -0,0 +1,175 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckdocumentprocessor.js
+ * 	Advanced document processors.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKDocumentProcessor = new Object() ;
+FCKDocumentProcessor._Items = new Array() ;
+
+FCKDocumentProcessor.AppendNew = function()
+{
+	var oNewItem = new Object() ;
+	this._Items.AddItem( oNewItem ) ;
+	return oNewItem ;
+}
+
+FCKDocumentProcessor.Process = function( document )
+{
+	var oProcessor, i = 0 ;
+	while( ( oProcessor = this._Items[i++] ) )
+		oProcessor.ProcessDocument( document ) ;
+}
+
+var FCKDocumentProcessor_CreateFakeImage = function( fakeClass, realElement )
+{
+	var oImg = FCK.EditorDocument.createElement( 'IMG' ) ;
+	oImg.className = fakeClass ;
+	oImg.src = FCKConfig.FullBasePath + 'images/spacer.gif' ;
+	oImg.setAttribute( '_fckfakelement', 'true', 0 ) ;
+	oImg.setAttribute( '_fckrealelement', FCKTempBin.AddElement( realElement ), 0 ) ;
+	return oImg ;
+}
+
+// Link Anchors
+var FCKAnchorsProcessor = FCKDocumentProcessor.AppendNew() ;
+FCKAnchorsProcessor.ProcessDocument = function( document )
+{
+	var aLinks = document.getElementsByTagName( 'A' ) ;
+
+	var oLink ;
+	var i = aLinks.length - 1 ;
+	while ( i >= 0 && ( oLink = aLinks[i--] ) )
+	{
+		// If it is anchor.
+		if ( oLink.name.length > 0 && ( !oLink.getAttribute('href') || oLink.getAttribute('href').length == 0 ) )
+		{
+			var oImg = FCKDocumentProcessor_CreateFakeImage( 'FCK__Anchor', oLink.cloneNode(true) ) ;
+			oImg.setAttribute( '_fckanchor', 'true', 0 ) ;
+			
+			oLink.parentNode.insertBefore( oImg, oLink ) ;
+			oLink.parentNode.removeChild( oLink ) ;
+		}
+	}
+}
+
+// Page Breaks
+var FCKPageBreaksProcessor = FCKDocumentProcessor.AppendNew() ;
+FCKPageBreaksProcessor.ProcessDocument = function( document )
+{
+	var aDIVs = document.getElementsByTagName( 'DIV' ) ;
+
+	var eDIV ;
+	var i = aDIVs.length - 1 ;
+	while ( i >= 0 && ( eDIV = aDIVs[i--] ) )
+	{
+		if ( eDIV.style.pageBreakAfter == 'always' && eDIV.childNodes.length == 1 && eDIV.childNodes[0].style && eDIV.childNodes[0].style.display == 'none' )
+		{
+			var oFakeImage = FCKDocumentProcessor_CreateFakeImage( 'FCK__PageBreak', eDIV.cloneNode(true) ) ;
+			
+			eDIV.parentNode.insertBefore( oFakeImage, eDIV ) ;
+			eDIV.parentNode.removeChild( eDIV ) ;
+		}
+	}
+/*
+	var aCenters = document.getElementsByTagName( 'CENTER' ) ;
+
+	var oCenter ;
+	var i = aCenters.length - 1 ;
+	while ( i >= 0 && ( oCenter = aCenters[i--] ) )
+	{
+		if ( oCenter.style.pageBreakAfter == 'always' && oCenter.innerHTML.trim().length == 0 )
+		{
+			var oFakeImage = FCKDocumentProcessor_CreateFakeImage( 'FCK__PageBreak', oCenter.cloneNode(true) ) ;
+			
+			oCenter.parentNode.insertBefore( oFakeImage, oCenter ) ;
+			oCenter.parentNode.removeChild( oCenter ) ;
+		}
+	}
+*/
+}
+
+// Flash Embeds.
+var FCKFlashProcessor = FCKDocumentProcessor.AppendNew() ;
+FCKFlashProcessor.ProcessDocument = function( document )
+{
+	/*
+	Sample code:
+	This is some <embed src="/UserFiles/Flash/Yellow_Runners.swf"></embed><strong>sample text</strong>. You are&nbsp;<a name="fred"></a> using <a href="http://www.fckeditor.net/">FCKeditor</a>.
+	*/
+
+	var aEmbeds = document.getElementsByTagName( 'EMBED' ) ;
+
+	var oEmbed ;
+	var i = aEmbeds.length - 1 ;
+	while ( i >= 0 && ( oEmbed = aEmbeds[i--] ) )
+	{
+		if ( oEmbed.src.endsWith( '.swf', true ) )
+		{
+			var oCloned = oEmbed.cloneNode( true ) ;
+			
+			// On IE, some properties are not getting clonned properly, so we 
+			// must fix it. Thanks to Alfonso Martinez.
+			if ( FCKBrowserInfo.IsIE )
+			{
+				var oAtt ;
+				if ( oAtt = oEmbed.getAttribute( 'scale' ) ) oCloned.setAttribute( 'scale', oAtt ) ;
+				if ( oAtt = oEmbed.getAttribute( 'play' ) ) oCloned.setAttribute( 'play', oAtt ) ;
+				if ( oAtt = oEmbed.getAttribute( 'loop' ) ) oCloned.setAttribute( 'loop', oAtt ) ;
+				if ( oAtt = oEmbed.getAttribute( 'menu' ) ) oCloned.setAttribute( 'menu', oAtt ) ;
+				if ( oAtt = oEmbed.getAttribute( 'wmode' ) ) oCloned.setAttribute( 'wmode', oAtt ) ;
+				if ( oAtt = oEmbed.getAttribute( 'quality' ) ) oCloned.setAttribute( 'quality', oAtt ) ;
+			}
+		
+			var oImg = FCKDocumentProcessor_CreateFakeImage( 'FCK__Flash', oCloned ) ;
+			oImg.setAttribute( '_fckflash', 'true', 0 ) ;
+			
+			FCKFlashProcessor.RefreshView( oImg, oEmbed ) ;
+
+			oEmbed.parentNode.insertBefore( oImg, oEmbed ) ;
+			oEmbed.parentNode.removeChild( oEmbed ) ;
+
+//			oEmbed.setAttribute( '_fcktemp', 'true', 0) ;
+//			oEmbed.style.display = 'none' ;
+//			oEmbed.hidden = true ;
+		}
+	}
+}
+
+FCKFlashProcessor.RefreshView = function( placholderImage, originalEmbed )
+{
+	if ( originalEmbed.width > 0 )
+		placholderImage.style.width = FCKTools.ConvertHtmlSizeToStyle( originalEmbed.width ) ;
+		
+	if ( originalEmbed.height > 0 )
+		placholderImage.style.height = FCKTools.ConvertHtmlSizeToStyle( originalEmbed.height ) ;
+}
+
+FCK.GetRealElement = function( fakeElement )
+{
+	var e = FCKTempBin.Elements[ fakeElement.getAttribute('_fckrealelement') ] ;
+
+	if ( fakeElement.getAttribute('_fckflash') )
+	{
+		if ( fakeElement.style.width.length > 0 )
+				e.width = FCKTools.ConvertStyleSizeToHtml( fakeElement.style.width ) ;
+		
+		if ( fakeElement.style.height.length > 0 )
+				e.height = FCKTools.ConvertStyleSizeToHtml( fakeElement.style.height ) ;
+	}
+	
+	return e ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/fckjscoreextensions.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/fckjscoreextensions.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/fckjscoreextensions.js	(revision 389)
@@ -0,0 +1,120 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckjscoreextensions.js
+ * 	Extensions to the JavaScript Core.
+ * 
+ * 	All custom extentions functions are PascalCased to differ from the standard
+ * 	camelCased ones.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+String.prototype.Contains = function( textToCheck )
+{
+	return ( this.indexOf( textToCheck ) > -1 ) ;
+}
+
+String.prototype.Equals = function()
+{
+	for ( var i = 0 ; i < arguments.length ; i++ )
+		if ( this == arguments[i] )
+			return true ;
+	
+	return false ;
+}
+
+String.prototype.ReplaceAll = function( searchArray, replaceArray )
+{
+	var replaced = this ;
+	
+	for ( var i = 0 ; i < searchArray.length ; i++ )
+	{
+		replaced = replaced.replace( searchArray[i], replaceArray[i] ) ;
+	}
+	
+	return replaced ;
+}
+
+Array.prototype.AddItem = function( item )
+{
+	var i = this.length ;
+	this[ i ] = item ;
+	return i ;
+}
+
+Array.prototype.indexOf = function( value )
+{
+	for ( var i = 0 ; i < this.length ; i++ )
+	{
+		if ( this[i] == value )
+			return i ;
+	}
+	return -1 ;
+}
+
+String.prototype.startsWith = function( value )
+{
+	return ( this.substr( 0, value.length ) == value ) ;
+}
+
+// Extends the String object, creating a "endsWith" method on it.
+String.prototype.endsWith = function( value, ignoreCase )
+{
+	var L1 = this.length ;
+	var L2 = value.length ;
+	
+	if ( L2 > L1 )
+		return false ;
+
+	if ( ignoreCase )
+	{
+		var oRegex = new RegExp( value + '$' , 'i' ) ;
+		return oRegex.test( this ) ;
+	}
+	else
+		return ( L2 == 0 || this.substr( L1 - L2, L2 ) == value ) ;
+}
+
+String.prototype.remove = function( start, length )
+{
+	var s = '' ;
+	
+	if ( start > 0 )
+		s = this.substring( 0, start ) ;
+	
+	if ( start + length < this.length )
+		s += this.substring( start + length , this.length ) ;
+		
+	return s ;
+}
+
+String.prototype.trim = function()
+{
+	return this.replace( /(^\s*)|(\s*$)/g, '' ) ;
+}
+
+String.prototype.ltrim = function()
+{
+	return this.replace( /^\s*/g, '' ) ;
+}
+
+String.prototype.rtrim = function()
+{
+	return this.replace( /\s*$/g, '' ) ;
+}
+
+String.prototype.replaceNewLineChars = function( replacement )
+{
+	return this.replace( /\n/g, replacement ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/fckconstants.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/fckconstants.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/fckconstants.js	(revision 389)
@@ -0,0 +1,44 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckconstants.js
+ * 	Defines some constants used by the editor. These constants are also 
+ * 	globally available in the page where the editor is placed.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+// Editor Instance Status.
+var FCK_STATUS_NOTLOADED	= window.parent.FCK_STATUS_NOTLOADED	= 0 ;
+var FCK_STATUS_ACTIVE		= window.parent.FCK_STATUS_ACTIVE		= 1 ;
+var FCK_STATUS_COMPLETE		= window.parent.FCK_STATUS_COMPLETE		= 2 ;
+
+// Tristate Operations.
+var FCK_TRISTATE_OFF		= window.parent.FCK_TRISTATE_OFF		= 0 ;
+var FCK_TRISTATE_ON			= window.parent.FCK_TRISTATE_ON			= 1 ;
+var FCK_TRISTATE_DISABLED	= window.parent.FCK_TRISTATE_DISABLED	= -1 ;
+
+// For unknown values.
+var FCK_UNKNOWN				= window.parent.FCK_UNKNOWN				= -9 ;
+
+// Toolbar Items Style.
+var FCK_TOOLBARITEM_ONLYICON	= window.parent.FCK_TOOLBARITEM_ONLYICON	= 0 ;
+var FCK_TOOLBARITEM_ONLYTEXT	= window.parent.FCK_TOOLBARITEM_ONLYTEXT	= 1 ;
+var FCK_TOOLBARITEM_ICONTEXT	= window.parent.FCK_TOOLBARITEM_ICONTEXT	= 2 ;
+
+// Edit Mode
+var FCK_EDITMODE_WYSIWYG	= window.parent.FCK_EDITMODE_WYSIWYG	= 0 ;
+var FCK_EDITMODE_SOURCE		= window.parent.FCK_EDITMODE_SOURCE		= 1 ;
+
+var FCK_IMAGES_PATH = 'images/' ;		// Check usage.
+var FCK_SPACER_PATH = 'images/spacer.gif' ;
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fck_othercommands.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fck_othercommands.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fck_othercommands.js	(revision 389)
@@ -0,0 +1,309 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_othercommands.js
+ * 	Definition of other commands that are not available internaly in the
+ * 	browser (see FCKNamedCommand).
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+// ### General Dialog Box Commands.
+var FCKDialogCommand = function( name, title, url, width, height, getStateFunction, getStateParam )
+{
+	this.Name	= name ;
+	this.Title	= title ;
+	this.Url	= url ;
+	this.Width	= width ;
+	this.Height	= height ;
+
+	this.GetStateFunction	= getStateFunction ;
+	this.GetStateParam		= getStateParam ;
+}
+
+FCKDialogCommand.prototype.Execute = function()
+{
+	FCKDialog.OpenDialog( 'FCKDialog_' + this.Name , this.Title, this.Url, this.Width, this.Height ) ;
+}
+
+FCKDialogCommand.prototype.GetState = function()
+{
+	if ( this.GetStateFunction )
+		return this.GetStateFunction( this.GetStateParam ) ;
+	else
+		return FCK_TRISTATE_OFF ;
+}
+
+// Generic Undefined command (usually used when a command is under development).
+var FCKUndefinedCommand = function()
+{
+	this.Name = 'Undefined' ;
+}
+
+FCKUndefinedCommand.prototype.Execute = function()
+{
+	alert( FCKLang.NotImplemented ) ;
+}
+
+FCKUndefinedCommand.prototype.GetState = function()
+{
+	return FCK_TRISTATE_OFF ;
+}
+
+// ### FontName
+var FCKFontNameCommand = function()
+{
+	this.Name = 'FontName' ;
+}
+
+FCKFontNameCommand.prototype.Execute = function( fontName )
+{
+	if (fontName == null || fontName == "")
+	{
+		// TODO: Remove font name attribute.
+	}
+	else
+		FCK.ExecuteNamedCommand( 'FontName', fontName ) ;
+}
+
+FCKFontNameCommand.prototype.GetState = function()
+{
+	return FCK.GetNamedCommandValue( 'FontName' ) ;
+}
+
+// ### FontSize
+var FCKFontSizeCommand = function()
+{
+	this.Name = 'FontSize' ;
+}
+
+FCKFontSizeCommand.prototype.Execute = function( fontSize )
+{
+	if ( typeof( fontSize ) == 'string' ) fontSize = parseInt(fontSize) ;
+
+	if ( fontSize == null || fontSize == '' )
+	{
+		// TODO: Remove font size attribute (Now it works with size 3. Will it work forever?)
+		FCK.ExecuteNamedCommand( 'FontSize', 3 ) ;
+	}
+	else
+		FCK.ExecuteNamedCommand( 'FontSize', fontSize ) ;
+}
+
+FCKFontSizeCommand.prototype.GetState = function()
+{
+	return FCK.GetNamedCommandValue( 'FontSize' ) ;
+}
+
+// ### FormatBlock
+var FCKFormatBlockCommand = function()
+{
+	this.Name = 'FormatBlock' ;
+}
+
+FCKFormatBlockCommand.prototype.Execute = function( formatName )
+{
+	if ( formatName == null || formatName == '' )
+		FCK.ExecuteNamedCommand( 'FormatBlock', '<P>' ) ;
+	else if ( formatName == 'div' && FCKBrowserInfo.IsGecko )
+		FCK.ExecuteNamedCommand( 'FormatBlock', 'div' ) ;
+	else
+		FCK.ExecuteNamedCommand( 'FormatBlock', '<' + formatName + '>' ) ;
+}
+
+FCKFormatBlockCommand.prototype.GetState = function()
+{
+	return FCK.GetNamedCommandValue( 'FormatBlock' ) ;
+}
+
+// ### Preview
+var FCKPreviewCommand = function()
+{
+	this.Name = 'Preview' ;
+}
+
+FCKPreviewCommand.prototype.Execute = function()
+{
+     FCK.Preview() ;
+}
+
+FCKPreviewCommand.prototype.GetState = function()
+{
+	return FCK_TRISTATE_OFF ;
+}
+
+// ### Save
+var FCKSaveCommand = function()
+{
+	this.Name = 'Save' ;
+}
+
+FCKSaveCommand.prototype.Execute = function()
+{
+	// Get the linked field form.
+	var oForm = FCK.LinkedField.form ;
+
+	if ( typeof( oForm.onsubmit ) == 'function' )
+	{
+		var bRet = oForm.onsubmit() ;
+		if ( bRet != null && bRet === false )
+			return ;
+	}
+
+	// Submit the form.
+	oForm.submit() ;
+}
+
+FCKSaveCommand.prototype.GetState = function()
+{
+	return FCK_TRISTATE_OFF ;
+}
+
+// ### NewPage
+var FCKNewPageCommand = function()
+{
+	this.Name = 'NewPage' ;
+}
+
+FCKNewPageCommand.prototype.Execute = function()
+{
+	FCKUndo.SaveUndoStep() ;
+	FCK.SetHTML( '' ) ;
+	FCKUndo.Typing = true ;
+//	FCK.SetHTML( FCKBrowserInfo.IsGecko ? '&nbsp;' : '' ) ;
+//	FCK.SetHTML( FCKBrowserInfo.IsGecko ? GECKO_BOGUS : '' ) ;
+}
+
+FCKNewPageCommand.prototype.GetState = function()
+{
+	return FCK_TRISTATE_OFF ;
+}
+
+// ### Source button
+var FCKSourceCommand = function()
+{
+	this.Name = 'Source' ;
+}
+
+FCKSourceCommand.prototype.Execute = function()
+{
+	if ( FCKConfig.SourcePopup )	// Until v2.2, it was mandatory for FCKBrowserInfo.IsGecko.
+	{
+		var iWidth	= FCKConfig.ScreenWidth * 0.65 ;
+		var iHeight	= FCKConfig.ScreenHeight * 0.65 ;
+		FCKDialog.OpenDialog( 'FCKDialog_Source', FCKLang.Source, 'dialog/fck_source.html', iWidth, iHeight, null, null, true ) ;
+	}
+	else
+	    FCK.SwitchEditMode() ;
+}
+
+FCKSourceCommand.prototype.GetState = function()
+{
+	return ( FCK.EditMode == FCK_EDITMODE_WYSIWYG ? FCK_TRISTATE_OFF : FCK_TRISTATE_ON ) ;
+}
+
+// ### Undo
+var FCKUndoCommand = function()
+{
+	this.Name = 'Undo' ;
+}
+
+FCKUndoCommand.prototype.Execute = function()
+{
+	if ( FCKBrowserInfo.IsIE )
+		FCKUndo.Undo() ;
+	else
+		FCK.ExecuteNamedCommand( 'Undo' ) ;
+}
+
+FCKUndoCommand.prototype.GetState = function()
+{
+	if ( FCKBrowserInfo.IsIE )
+		return ( FCKUndo.CheckUndoState() ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ) ;
+	else
+		return FCK.GetNamedCommandState( 'Undo' ) ;
+}
+
+// ### Redo
+var FCKRedoCommand = function()
+{
+	this.Name = 'Redo' ;
+}
+
+FCKRedoCommand.prototype.Execute = function()
+{
+	if ( FCKBrowserInfo.IsIE )
+		FCKUndo.Redo() ;
+	else
+		FCK.ExecuteNamedCommand( 'Redo' ) ;
+}
+
+FCKRedoCommand.prototype.GetState = function()
+{
+	if ( FCKBrowserInfo.IsIE )
+		return ( FCKUndo.CheckRedoState() ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ) ;
+	else
+		return FCK.GetNamedCommandState( 'Redo' ) ;
+}
+
+// ### Page Break
+var FCKPageBreakCommand = function()
+{
+	this.Name = 'PageBreak' ;
+}
+
+FCKPageBreakCommand.prototype.Execute = function()
+{
+//	var e = FCK.EditorDocument.createElement( 'CENTER' ) ;
+//	e.style.pageBreakAfter = 'always' ;
+
+	// Tidy was removing the empty CENTER tags, so the following solution has 
+	// been found. It also validates correctly as XHTML 1.0 Strict.
+	var e = FCK.EditorDocument.createElement( 'DIV' ) ;
+	e.style.pageBreakAfter = 'always' ;
+	e.innerHTML = '<span style="DISPLAY:none">&nbsp;</span>' ;
+	
+	var oFakeImage = FCKDocumentProcessor_CreateFakeImage( 'FCK__PageBreak', e ) ;
+	oFakeImage	= FCK.InsertElement( oFakeImage ) ;
+}
+
+FCKPageBreakCommand.prototype.GetState = function()
+{
+	return 0 ; // FCK_TRISTATE_OFF
+}
+
+// FCKUnlinkCommand - by Johnny Egeland (johnny@coretrek.com)
+var FCKUnlinkCommand = function()
+{
+	this.Name = 'Unlink' ;
+}
+
+FCKUnlinkCommand.prototype.Execute = function()
+{
+	if ( FCKBrowserInfo.IsGecko )
+	{
+		var oLink = FCK.Selection.MoveToAncestorNode( 'A' ) ;
+		if ( oLink ) 
+			FCK.Selection.SelectNode( oLink ) ;
+	}
+	
+	FCK.ExecuteNamedCommand( this.Name ) ;
+
+	if ( FCKBrowserInfo.IsGecko )
+		FCK.Selection.Collapse( true ) ;
+}
+
+FCKUnlinkCommand.prototype.GetState = function()
+{
+	return FCK.GetNamedCommandState( this.Name ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js	(revision 389)
@@ -0,0 +1,171 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktextcolorcommand.js
+ * 	FCKTextColorCommand Class: represents the text color comand. It shows the
+ * 	color selection panel.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+// FCKTextColorCommand Contructor
+//		type: can be 'ForeColor' or 'BackColor'.
+var FCKTextColorCommand = function( type )
+{
+	this.Name = type == 'ForeColor' ? 'TextColor' : 'BGColor' ;
+	this.Type = type ;
+
+	var oWindow ;
+	
+	if ( FCKBrowserInfo.IsIE )
+		oWindow = window ;
+	else if ( FCK.ToolbarSet._IFrame )
+		oWindow = FCKTools.GetElementWindow( FCK.ToolbarSet._IFrame ) ;
+	else
+		oWindow = window.parent ;
+
+	this._Panel = new FCKPanel( oWindow, true ) ;
+	this._Panel.AppendStyleSheet( FCKConfig.SkinPath + 'fck_editor.css' ) ;
+	this._Panel.MainNode.className = 'FCK_Panel' ;
+	this._CreatePanelBody( this._Panel.Document, this._Panel.MainNode ) ;
+	
+	FCKTools.DisableSelection( this._Panel.Document.body ) ;
+}
+
+FCKTextColorCommand.prototype.Execute = function( panelX, panelY, relElement )
+{
+	// We must "cache" the actual panel type to be used in the SetColor method.
+	FCK._ActiveColorPanelType = this.Type ;
+
+	// Show the Color Panel at the desired position.
+	this._Panel.Show( panelX, panelY, relElement ) ;
+}
+
+FCKTextColorCommand.prototype.SetColor = function( color )
+{
+	if ( FCK._ActiveColorPanelType == 'ForeColor' )
+		FCK.ExecuteNamedCommand( 'ForeColor', color ) ;
+	else if ( FCKBrowserInfo.IsGeckoLike )
+	{
+		if ( FCKBrowserInfo.IsGecko && !FCKConfig.GeckoUseSPAN )
+			FCK.EditorDocument.execCommand( 'useCSS', false, false ) ;
+			
+		FCK.ExecuteNamedCommand( 'hilitecolor', color ) ;
+
+		if ( FCKBrowserInfo.IsGecko && !FCKConfig.GeckoUseSPAN )
+			FCK.EditorDocument.execCommand( 'useCSS', false, true ) ;
+	}
+	else
+		FCK.ExecuteNamedCommand( 'BackColor', color ) ;
+	
+	// Delete the "cached" active panel type.
+	delete FCK._ActiveColorPanelType ;
+}
+
+FCKTextColorCommand.prototype.GetState = function()
+{
+	return FCK_TRISTATE_OFF ;
+}
+
+function FCKTextColorCommand_OnMouseOver()	{ this.className='ColorSelected' ; }
+
+function FCKTextColorCommand_OnMouseOut()	{ this.className='ColorDeselected' ; }
+
+function FCKTextColorCommand_OnClick()
+{
+	this.className = 'ColorDeselected' ;
+	this.Command.SetColor( '#' + this.Color ) ;
+	this.Command._Panel.Hide() ;
+}
+
+function FCKTextColorCommand_AutoOnClick()
+{
+	this.className = 'ColorDeselected' ;
+	this.Command.SetColor( '' ) ;
+	this.Command._Panel.Hide() ;
+}
+
+function FCKTextColorCommand_MoreOnClick()
+{
+	this.className = 'ColorDeselected' ;
+	this.Command._Panel.Hide() ;
+	FCKDialog.OpenDialog( 'FCKDialog_Color', FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 400, 330, this.Command.SetColor ) ;
+}
+
+FCKTextColorCommand.prototype._CreatePanelBody = function( targetDocument, targetDiv )
+{
+	function CreateSelectionDiv()
+	{
+		var oDiv = targetDocument.createElement( "DIV" ) ;
+		oDiv.className		= 'ColorDeselected' ;
+		oDiv.onmouseover	= FCKTextColorCommand_OnMouseOver ;
+		oDiv.onmouseout		= FCKTextColorCommand_OnMouseOut ;
+		
+		return oDiv ;
+	}
+
+	// Create the Table that will hold all colors.
+	var oTable = targetDiv.appendChild( targetDocument.createElement( "TABLE" ) ) ;
+	oTable.className = 'ForceBaseFont' ;		// Firefox 1.5 Bug.
+	oTable.style.tableLayout = 'fixed' ;
+	oTable.cellPadding = 0 ;
+	oTable.cellSpacing = 0 ;
+	oTable.border = 0 ;
+	oTable.width = 150 ;
+
+	var oCell = oTable.insertRow(-1).insertCell(-1) ;
+	oCell.colSpan = 8 ;
+
+	// Create the Button for the "Automatic" color selection.
+	var oDiv = oCell.appendChild( CreateSelectionDiv() ) ;
+	oDiv.innerHTML = 
+		'<table cellspacing="0" cellpadding="0" width="100%" border="0">\
+			<tr>\
+				<td><div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #000000"></div></div></td>\
+				<td nowrap width="100%" align="center">' + FCKLang.ColorAutomatic + '</td>\
+			</tr>\
+		</table>' ;
+
+	oDiv.Command = this ;
+	oDiv.onclick = FCKTextColorCommand_AutoOnClick ;
+
+	// Create an array of colors based on the configuration file.
+	var aColors = FCKConfig.FontColors.toString().split(',') ;
+
+	// Create the colors table based on the array.
+	var iCounter = 0 ;
+	while ( iCounter < aColors.length )
+	{
+		var oRow = oTable.insertRow(-1) ;
+		
+		for ( var i = 0 ; i < 8 && iCounter < aColors.length ; i++, iCounter++ )
+		{
+			oDiv = oRow.insertCell(-1).appendChild( CreateSelectionDiv() ) ;
+			oDiv.Color = aColors[iCounter] ;
+			oDiv.innerHTML = '<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #' + aColors[iCounter] + '"></div></div>' ;
+
+			oDiv.Command = this ;
+			oDiv.onclick = FCKTextColorCommand_OnClick ;
+		}
+	}
+
+	// Create the Row and the Cell for the "More Colors..." button.
+	oCell = oTable.insertRow(-1).insertCell(-1) ;
+	oCell.colSpan = 8 ;
+
+	oDiv = oCell.appendChild( CreateSelectionDiv() ) ;
+	oDiv.innerHTML = '<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td nowrap align="center">' + FCKLang.ColorMoreColors + '</td></tr></table>' ;
+
+	oDiv.Command = this ;
+	oDiv.onclick = FCKTextColorCommand_MoreOnClick ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fcknamedcommand.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fcknamedcommand.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fcknamedcommand.js	(revision 389)
@@ -0,0 +1,33 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcknamedcommand.js
+ * 	FCKNamedCommand Class: represents an internal browser command.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKNamedCommand = function( commandName )
+{
+	this.Name = commandName ;
+}
+
+FCKNamedCommand.prototype.Execute = function()
+{
+	FCK.ExecuteNamedCommand( this.Name ) ;
+}
+
+FCKNamedCommand.prototype.GetState = function()
+{
+	return FCK.GetNamedCommandState( this.Name ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js	(revision 389)
@@ -0,0 +1,34 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckpasteplaintextcommand.js
+ * 	FCKPastePlainTextCommand Class: represents the 
+ * 	"Paste as Plain Text" command.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKPastePlainTextCommand = function() 
+{
+	this.Name = 'PasteText' ;
+}
+
+FCKPastePlainTextCommand.prototype.Execute = function()
+{
+	FCK.PasteAsPlainText() ;
+}
+
+FCKPastePlainTextCommand.prototype.GetState = function()
+{
+	return FCK.GetNamedCommandState( 'Paste' ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js	(revision 389)
@@ -0,0 +1,35 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckspellcheckcommand_gecko.js
+ * 	FCKStyleCommand Class: represents the "Spell Check" command.
+ * 	(Gecko specific implementation)
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKSpellCheckCommand = function()
+{
+	this.Name = 'SpellCheck' ;
+	this.IsEnabled = ( FCKConfig.SpellChecker == 'SpellerPages' ) ;
+}
+
+FCKSpellCheckCommand.prototype.Execute = function()
+{
+	FCKDialog.OpenDialog( 'FCKDialog_SpellCheck', 'Spell Check', 'dialog/fck_spellerpages.html', 440, 480 ) ;
+}
+
+FCKSpellCheckCommand.prototype.GetState = function()
+{
+	return this.IsEnabled ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fcktablecommand.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fcktablecommand.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fcktablecommand.js	(revision 389)
@@ -0,0 +1,67 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktablecommand.js
+ * 	FCKPastePlainTextCommand Class: represents the 
+ * 	"Paste as Plain Text" command.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKTableCommand = function( command )
+{
+	this.Name = command ;
+}
+
+FCKTableCommand.prototype.Execute = function()
+{
+	FCKUndo.SaveUndoStep() ;
+	
+	switch ( this.Name )
+	{
+		case 'TableInsertRow' :
+			FCKTableHandler.InsertRow() ;
+			break ;
+		case 'TableDeleteRows' :
+			FCKTableHandler.DeleteRows() ;
+			break ;
+		case 'TableInsertColumn' :
+			FCKTableHandler.InsertColumn() ;
+			break ;
+		case 'TableDeleteColumns' :
+			FCKTableHandler.DeleteColumns() ;
+			break ;
+		case 'TableInsertCell' :
+			FCKTableHandler.InsertCell() ;
+			break ;
+		case 'TableDeleteCells' :
+			FCKTableHandler.DeleteCells() ;
+			break ;
+		case 'TableMergeCells' :
+			FCKTableHandler.MergeCells() ;
+			break ;
+		case 'TableSplitCell' :
+			FCKTableHandler.SplitCell() ;
+			break ;
+		case 'TableDelete' :
+			FCKTableHandler.DeleteTable() ;
+			break ;
+		default :
+			alert( FCKLang.UnknownCommand.replace( /%1/g, this.Name ) ) ;
+	}
+}
+
+FCKTableCommand.prototype.GetState = function()
+{
+	return FCK_TRISTATE_OFF ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js	(revision 389)
@@ -0,0 +1,36 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckpastewordcommand.js
+ * 	FCKPasteWordCommand Class: represents the "Paste from Word" command.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKPasteWordCommand = function() 
+{
+	this.Name = 'PasteWord' ;
+}
+
+FCKPasteWordCommand.prototype.Execute = function()
+{
+	FCK.PasteFromWord() ;
+}
+
+FCKPasteWordCommand.prototype.GetState = function()
+{
+	if ( FCKConfig.ForcePasteAsPlainText )
+		return FCK_TRISTATE_DISABLED ;
+	else
+		return FCK.GetNamedCommandState( 'Paste' ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js	(revision 389)
@@ -0,0 +1,63 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckspellcheckcommand_ie.js
+ * 	FCKStyleCommand Class: represents the "Spell Check" command.
+ * 	(IE specific implementation)
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKSpellCheckCommand = function()
+{
+	this.Name = 'SpellCheck' ;
+	this.IsEnabled = ( FCKConfig.SpellChecker == 'ieSpell' || FCKConfig.SpellChecker == 'SpellerPages' ) ;
+}
+
+FCKSpellCheckCommand.prototype.Execute = function()
+{
+	switch ( FCKConfig.SpellChecker )
+	{
+		case 'ieSpell' :
+			this._RunIeSpell() ;
+			break ;
+		
+		case 'SpellerPages' :
+			FCKDialog.OpenDialog( 'FCKDialog_SpellCheck', 'Spell Check', 'dialog/fck_spellerpages.html', 440, 480 ) ;
+			break ;
+	}
+}
+
+FCKSpellCheckCommand.prototype._RunIeSpell = function()
+{
+	try
+	{
+		var oIeSpell = new ActiveXObject( "ieSpell.ieSpellExtension" ) ;
+		oIeSpell.CheckAllLinkedDocuments( FCK.EditorDocument ) ;
+	}
+	catch( e )
+	{
+		if( e.number == -2146827859 )
+		{
+			if ( confirm( FCKLang.IeSpellDownload ) )
+				window.open( FCKConfig.IeSpellDownloadUrl , 'IeSpellDownload' ) ;
+		}
+		else
+			alert( 'Error Loading ieSpell: ' + e.message + ' (' + e.number + ')' ) ;
+	}
+}
+
+FCKSpellCheckCommand.prototype.GetState = function()
+{
+	return this.IsEnabled ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fckfitwindow.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fckfitwindow.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fckfitwindow.js	(revision 389)
@@ -0,0 +1,164 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckfitwindow.js
+ * 	Stretch the editor to full window size and back.
+ * 
+ * File Authors:
+ * 		Paul Moers (mail@saulmade.nl)
+ * 		Thanks to Christian Fecteau (webmaster@christianfecteau.com)
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKFitWindow = function()
+{
+	this.Name = 'FitWindow' ;
+}
+
+FCKFitWindow.prototype.Execute = function()
+{
+	var eEditorFrame		= window.frameElement ;
+	var eEditorFrameStyle	= eEditorFrame.style ;
+
+	var eMainWindow			= parent ;
+	var eDocEl				= eMainWindow.document.documentElement ;
+	var eBody				= eMainWindow.document.body ;
+	var eBodyStyle			= eBody.style ;
+
+	// No original style properties known? Go fullscreen.
+	if ( !this.IsMaximized )
+	{
+		// Registering an event handler when the window gets resized.
+		if( FCKBrowserInfo.IsIE )
+			eMainWindow.attachEvent( 'onresize', FCKFitWindow_Resize ) ;
+		else
+			eMainWindow.addEventListener( 'resize', FCKFitWindow_Resize, true ) ;
+
+		// Save the scrollbars position.
+		this._ScrollPos = FCKTools.GetScrollPosition( eMainWindow ) ;
+		
+		// Save and reset the styles for the entire node tree. They could interfere in the result.
+		var eParent = eEditorFrame ;
+		while( eParent = eParent.parentNode )
+		{
+			if ( eParent.nodeType == 1 )
+				eParent._fckSavedStyles = FCKTools.SaveStyles( eParent ) ;
+		}		
+
+		// Hide IE scrollbars (in strict mode).
+		if ( FCKBrowserInfo.IsIE )
+		{
+			this.documentElementOverflow = eDocEl.style.overflow ;
+			eDocEl.style.overflow	= 'hidden' ;
+			eBodyStyle.overflow		= 'hidden' ;
+		}
+		else
+		{
+			// Hide the scroolbars in Firefox.
+			eBodyStyle.overflow = 'hidden' ;
+			eBodyStyle.width = '0px' ;
+			eBodyStyle.height = '0px' ;
+		}
+		
+		// Save the IFRAME styles.
+		this._EditorFrameStyles = FCKTools.SaveStyles( eEditorFrame ) ;
+		
+		// Resize.
+		var oViewPaneSize = FCKTools.GetViewPaneSize( eMainWindow ) ;
+
+		eEditorFrameStyle.position	= "absolute";
+		eEditorFrameStyle.zIndex	= FCKConfig.FloatingPanelsZIndex - 1;
+		eEditorFrameStyle.left		= "0px";
+		eEditorFrameStyle.top		= "0px";
+		eEditorFrameStyle.width		= oViewPaneSize.Width + "px";
+		eEditorFrameStyle.height	= oViewPaneSize.Height + "px";
+		
+		// Giving the frame some (huge) borders on his right and bottom
+		// side to hide the background that would otherwise show when the
+		// editor is in fullsize mode and the window is increased in size
+		// not for IE, because IE immediately adapts the editor on resize, 
+		// without showing any of the background oddly in firefox, the
+		// editor seems not to fill the whole frame, so just setting the
+		// background of it to white to cover the page laying behind it anyway.
+		if ( !FCKBrowserInfo.IsIE )
+		{
+			eEditorFrameStyle.borderRight = eEditorFrameStyle.borderBottom = "9999px solid white" ;
+			eEditorFrameStyle.backgroundColor		= "white";
+		}
+
+		// Scroll to top left.
+		eMainWindow.scrollTo(0, 0);
+
+		this.IsMaximized = true ;
+	}
+	else	// Resize to original size.
+	{
+		// Remove the event handler of window resizing.
+		if( FCKBrowserInfo.IsIE )
+			eMainWindow.detachEvent( "onresize", FCKFitWindow_Resize ) ;
+		else
+			eMainWindow.removeEventListener( "resize", FCKFitWindow_Resize, true ) ;
+
+		// Restore the CSS position for the entire node tree.
+		var eParent = eEditorFrame ;
+		while( eParent = eParent.parentNode )
+		{
+			if ( eParent._fckSavedStyles )
+			{
+				FCKTools.RestoreStyles( eParent, eParent._fckSavedStyles ) ;
+				eParent._fckSavedStyles = null ;
+			}
+		}
+		
+		// Restore IE scrollbars
+		if ( FCKBrowserInfo.IsIE )
+			eDocEl.style.overflow = this.documentElementOverflow ;
+
+		// Restore original size
+		FCKTools.RestoreStyles( eEditorFrame, this._EditorFrameStyles ) ;
+		
+		// Restore the window scroll position.
+		eMainWindow.scrollTo( this._ScrollPos.X, this._ScrollPos.Y ) ;
+
+		this.IsMaximized = false ;
+	}
+	
+	FCKToolbarItems.GetItem('FitWindow').RefreshState() ;
+
+	// It seams that Firefox restarts the editing area when making this changes.
+	// On FF 1.0.x, the area is not anymore editable. On FF 1.5+, the special 
+	//configuration, like DisableFFTableHandles and DisableObjectResizing get 
+	//lost, so we must reset it. Also, the cursor position and selection are 
+	//also lost, even if you comment the following line (MakeEditable).
+	// if ( FCKBrowserInfo.IsGecko10 )	// Initially I thought it was a FF 1.0 only problem.
+	FCK.EditingArea.MakeEditable() ;
+	
+	FCK.Focus() ;
+}
+
+FCKFitWindow.prototype.GetState = function()
+{
+	if ( FCKConfig.ToolbarLocation != 'In' )
+		return FCK_TRISTATE_DISABLED ;
+	else
+		return ( this.IsMaximized ? FCK_TRISTATE_ON : FCK_TRISTATE_OFF );
+}
+
+function FCKFitWindow_Resize()
+{
+	var oViewPaneSize = FCKTools.GetViewPaneSize( parent ) ;
+
+	var eEditorFrameStyle = window.frameElement.style ;
+
+	eEditorFrameStyle.width		= oViewPaneSize.Width + 'px' ;
+	eEditorFrameStyle.height	= oViewPaneSize.Height + 'px' ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fckstylecommand.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fckstylecommand.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/commandclasses/fckstylecommand.js	(revision 389)
@@ -0,0 +1,95 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckstylecommand.js
+ * 	FCKStyleCommand Class: represents the "Style" command.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKStyleCommand = function()
+{
+	this.Name = 'Style' ;
+
+	// Load the Styles defined in the XML file.
+	this.StylesLoader = new FCKStylesLoader() ;
+	this.StylesLoader.Load( FCKConfig.StylesXmlPath ) ;
+	this.Styles = this.StylesLoader.Styles ;
+}
+
+FCKStyleCommand.prototype.Execute = function( styleName, styleComboItem )
+{
+	FCKUndo.SaveUndoStep() ;
+
+	if ( styleComboItem.Selected )
+		styleComboItem.Style.RemoveFromSelection() ;
+	else
+		styleComboItem.Style.ApplyToSelection() ;
+
+	FCKUndo.SaveUndoStep() ;
+
+	FCK.Focus() ;
+	
+	FCK.Events.FireEvent( "OnSelectionChange" ) ;
+}
+
+FCKStyleCommand.prototype.GetState = function()
+{
+	if ( !FCK.EditorDocument )
+		return FCK_TRISTATE_DISABLED ;
+
+	var oSelection = FCK.EditorDocument.selection ;
+	
+	if ( FCKSelection.GetType() == 'Control' )
+	{
+		var e = FCKSelection.GetSelectedElement() ;
+		if ( e )
+			return this.StylesLoader.StyleGroups[ e.tagName ] ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ;
+	}
+
+	return FCK_TRISTATE_OFF ;
+}
+
+FCKStyleCommand.prototype.GetActiveStyles = function()
+{
+	var aActiveStyles = new Array() ;
+	
+	if ( FCKSelection.GetType() == 'Control' )
+		this._CheckStyle( FCKSelection.GetSelectedElement(), aActiveStyles, false ) ;
+	else
+		this._CheckStyle( FCKSelection.GetParentElement(), aActiveStyles, true ) ;
+		
+	return aActiveStyles ;
+}
+
+FCKStyleCommand.prototype._CheckStyle = function( element, targetArray, checkParent )
+{
+	if ( ! element )
+		return ;
+
+	if ( element.nodeType == 1 )
+	{
+		var aStyleGroup = this.StylesLoader.StyleGroups[ element.tagName ] ;
+		if ( aStyleGroup )
+		{
+			for ( var i = 0 ; i < aStyleGroup.length ; i++ )
+			{
+				if ( aStyleGroup[i].IsEqual( element ) )
+					targetArray[ targetArray.length ] = aStyleGroup[i] ;
+			}		
+		}
+	}
+	
+	if ( checkParent )
+		this._CheckStyle( element.parentNode, targetArray, checkParent ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js	(revision 389)
@@ -0,0 +1,102 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktoolbarfontformatcombo.js
+ * 	FCKToolbarPanelButton Class: Handles the Fonts combo selector.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKToolbarFontFormatCombo = function( tooltip, style )
+{
+	this.CommandName = 'FontFormat' ;
+	this.Label		= this.GetLabel() ;
+	this.Tooltip	= tooltip ? tooltip : this.Label ;
+	this.Style		= style ? style : FCK_TOOLBARITEM_ICONTEXT ;
+	
+	this.NormalLabel = 'Normal' ;
+	
+	this.PanelWidth = 190 ;
+}
+
+// Inherit from FCKToolbarSpecialCombo.
+FCKToolbarFontFormatCombo.prototype = new FCKToolbarSpecialCombo ;
+
+
+FCKToolbarFontFormatCombo.prototype.GetLabel = function()
+{
+	return FCKLang.FontFormat ;
+}
+
+FCKToolbarFontFormatCombo.prototype.CreateItems = function( targetSpecialCombo )
+{
+	// Add the Editor Area CSS to the panel to create a realistic preview.
+	FCKTools.AppendStyleSheet( targetSpecialCombo._Panel.Document, FCKConfig.ToolbarComboPreviewCSS ) ;
+
+	// Get the format names from the language file.
+	var aNames = FCKLang['FontFormats'].split(';') ;
+	var oNames = {
+		p		: aNames[0],
+		pre		: aNames[1],
+		address	: aNames[2],
+		h1		: aNames[3],
+		h2		: aNames[4],
+		h3		: aNames[5],
+		h4		: aNames[6],
+		h5		: aNames[7],
+		h6		: aNames[8],
+		div		: aNames[9]
+	} ;
+
+	// Get the available formats from the configuration file.
+	var aTags = FCKConfig.FontFormats.split(';') ;
+	
+	for ( var i = 0 ; i < aTags.length ; i++ )
+	{
+		// Support for DIV in Firefox has been reintroduced on version 2.2.
+//		if ( aTags[i] == 'div' && FCKBrowserInfo.IsGecko )
+//			continue ;
+		
+		var sTag	= aTags[i] ;
+		var sLabel	= oNames[sTag] ;
+		
+		if ( sTag == 'p' )
+			this.NormalLabel = sLabel ;
+		
+		this._Combo.AddItem( sTag, '<div class="BaseFont"><' + sTag + '>' + sLabel + '</' + sTag + '></div>', sLabel ) ;
+	}
+}
+
+if ( FCKBrowserInfo.IsIE )
+{
+	FCKToolbarFontFormatCombo.prototype.RefreshActiveItems = function( combo, value )
+	{
+//		FCKDebug.Output( 'FCKToolbarFontFormatCombo Value: ' + value ) ;
+
+		// IE returns normal for DIV and P, so to avoid confusion, we will not show it if normal.
+		if ( value == this.NormalLabel )
+		{
+			if ( combo.Label != '&nbsp;' )
+				combo.DeselectAll(true) ;
+		}
+		else
+		{
+			if ( this._LastValue == value )
+				return ;
+
+			combo.SelectItemByLabel( value, true ) ;
+		}
+
+		this._LastValue = value ;
+	}
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js	(revision 389)
@@ -0,0 +1,129 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktoolbarspecialcombo.js
+ * 	FCKToolbarSpecialCombo Class: This is a "abstract" base class to be used
+ * 	by the special combo toolbar elements like font name, font size, paragraph format, etc...
+ * 	
+ * 	The following properties and methods must be implemented when inheriting from
+ * 	this class:
+ * 		- Property:	CommandName							[ The command name to be executed ]
+ * 		- Method:	GetLabel()							[ Returns the label ]
+ * 		-			CreateItems( targetSpecialCombo )	[ Add all items in the special combo ]
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKToolbarSpecialCombo = function()
+{
+	this.SourceView			= false ;
+	this.ContextSensitive	= true ;
+}
+
+
+function FCKToolbarSpecialCombo_OnSelect( itemId, item )
+{
+	FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).Execute( itemId, item ) ;
+}
+
+FCKToolbarSpecialCombo.prototype.Create = function( targetElement )
+{
+	this._Combo = new FCKSpecialCombo( this.GetLabel(), this.FieldWidth, this.PanelWidth, this.PanelMaxHeight, FCKBrowserInfo.IsIE ? window : FCKTools.GetElementWindow( targetElement ).parent ) ;
+	
+	/*
+	this._Combo.FieldWidth		= this.FieldWidth		!= null ? this.FieldWidth		: 100 ;
+	this._Combo.PanelWidth		= this.PanelWidth		!= null ? this.PanelWidth		: 150 ;
+	this._Combo.PanelMaxHeight	= this.PanelMaxHeight	!= null ? this.PanelMaxHeight	: 150 ;
+	*/
+	
+	//this._Combo.Command.Name = this.Command.Name;
+//	this._Combo.Label	= this.Label ;
+	this._Combo.Tooltip	= this.Tooltip ;
+	this._Combo.Style	= this.Style ;
+	
+	this.CreateItems( this._Combo ) ;
+
+	this._Combo.Create( targetElement ) ;
+
+	this._Combo.CommandName = this.CommandName ;
+	
+	this._Combo.OnSelect = FCKToolbarSpecialCombo_OnSelect ;
+}
+
+function FCKToolbarSpecialCombo_RefreshActiveItems( combo, value )
+{
+	combo.DeselectAll() ;
+	combo.SelectItem( value ) ;
+	combo.SetLabelById( value ) ;
+}
+
+FCKToolbarSpecialCombo.prototype.RefreshState = function()
+{
+	// Gets the actual state.
+	var eState ;
+	
+//	if ( FCK.EditMode == FCK_EDITMODE_SOURCE && ! this.SourceView )
+//		eState = FCK_TRISTATE_DISABLED ;
+//	else
+//	{
+		var sValue = FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).GetState() ;
+
+//		FCKDebug.Output( 'RefreshState of Special Combo "' + this.TypeOf + '" - State: ' + sValue ) ;
+
+		if ( sValue != FCK_TRISTATE_DISABLED )
+		{
+			eState = FCK_TRISTATE_ON ;
+			
+			if ( this.RefreshActiveItems )
+				this.RefreshActiveItems( this._Combo, sValue ) ;
+			else
+			{
+				if ( this._LastValue != sValue )
+				{
+					this._LastValue = sValue ;
+					FCKToolbarSpecialCombo_RefreshActiveItems( this._Combo, sValue ) ;
+				}
+			}
+		}
+		else
+			eState = FCK_TRISTATE_DISABLED ;
+//	}
+	
+	// If there are no state changes then do nothing and return.
+	if ( eState == this.State ) return ;
+	
+	if ( eState == FCK_TRISTATE_DISABLED )
+	{
+		this._Combo.DeselectAll() ;
+		this._Combo.SetLabel( '' ) ;
+	}
+
+	// Sets the actual state.
+	this.State = eState ;
+
+	// Updates the graphical state.
+	this._Combo.SetEnabled( eState != FCK_TRISTATE_DISABLED ) ;
+}
+
+FCKToolbarSpecialCombo.prototype.Enable = function()
+{
+	this.RefreshState() ;
+}
+
+FCKToolbarSpecialCombo.prototype.Disable = function()
+{
+	this.State = FCK_TRISTATE_DISABLED ;
+	this._Combo.DeselectAll() ;
+	this._Combo.SetLabel( '' ) ;
+	this._Combo.SetEnabled( false ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckmenuitem.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckmenuitem.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckmenuitem.js	(revision 389)
@@ -0,0 +1,157 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckmenuitem.js
+ * 	Defines and renders a menu items in a menu block.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+
+var FCKMenuItem = function( parentMenuBlock, name, label, iconPathOrStripInfoArray, isDisabled )
+{
+	this.Name		= name ;
+	this.Label		= label || name ;
+	this.IsDisabled	= isDisabled ;
+	
+	this.Icon = new FCKIcon( iconPathOrStripInfoArray ) ;
+	
+	this.SubMenu			= new FCKMenuBlockPanel() ;
+	this.SubMenu.Parent		= parentMenuBlock ;
+	this.SubMenu.OnClick	= FCKTools.CreateEventListener( FCKMenuItem_SubMenu_OnClick, this ) ;
+
+	if ( FCK.IECleanup )
+		FCK.IECleanup.AddItem( this, FCKMenuItem_Cleanup ) ;
+}
+
+
+FCKMenuItem.prototype.AddItem = function( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled )
+{
+	this.HasSubMenu = true ;
+	return this.SubMenu.AddItem( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled ) ;
+}
+
+FCKMenuItem.prototype.AddSeparator = function()
+{
+	this.SubMenu.AddSeparator() ;
+}
+
+FCKMenuItem.prototype.Create = function( parentTable )
+{
+	var bHasSubMenu = this.HasSubMenu ;
+	
+	var oDoc = FCKTools.GetElementDocument( parentTable ) ;
+
+	// Add a row in the table to hold the menu item.
+	var r = this.MainElement = parentTable.insertRow(-1) ;
+	r.className = this.IsDisabled ? 'MN_Item_Disabled' : 'MN_Item' ;
+
+	// Set the row behavior.
+	if ( !this.IsDisabled )
+	{
+		FCKTools.AddEventListenerEx( r, 'mouseover', FCKMenuItem_OnMouseOver, [ this ] ) ;
+		FCKTools.AddEventListenerEx( r, 'click', FCKMenuItem_OnClick, [ this ] ) ;
+
+		if ( !bHasSubMenu )
+			FCKTools.AddEventListenerEx( r, 'mouseout', FCKMenuItem_OnMouseOut, [ this ] ) ;
+	}
+	
+	// Create the icon cell.
+	var eCell = r.insertCell(-1) ;
+	eCell.className = 'MN_Icon' ;
+	eCell.appendChild( this.Icon.CreateIconElement( oDoc ) ) ;
+
+	// Create the label cell.
+	eCell = r.insertCell(-1) ;
+	eCell.className = 'MN_Label' ;
+	eCell.noWrap = true ;
+	eCell.appendChild( oDoc.createTextNode( this.Label ) ) ;
+	
+	// Create the arrow cell and setup the sub menu panel (if needed).
+	eCell = r.insertCell(-1) ;
+	if ( bHasSubMenu )
+	{
+		eCell.className = 'MN_Arrow' ;
+
+		// The arrow is a fixed size image.
+		var eArrowImg = eCell.appendChild( oDoc.createElement( 'IMG' ) ) ;
+		eArrowImg.src = FCK_IMAGES_PATH + 'arrow_' + FCKLang.Dir + '.gif' ;
+		eArrowImg.width	 = 4 ;
+		eArrowImg.height = 7 ;
+		
+		this.SubMenu.Create() ;
+		this.SubMenu.Panel.OnHide = FCKTools.CreateEventListener( FCKMenuItem_SubMenu_OnHide, this ) ;
+	}
+}
+
+FCKMenuItem.prototype.Activate = function()
+{
+	this.MainElement.className = 'MN_Item_Over' ;
+
+	if ( this.HasSubMenu )
+	{
+		// Show the child menu block. The ( +2, -2 ) correction is done because
+		// of the padding in the skin. It is not a good solution because one
+		// could change the skin and so the final result would not be accurate.
+		// For now it is ok because we are controlling the skin.
+		this.SubMenu.Show( this.MainElement.offsetWidth + 2, -2, this.MainElement ) ;
+	}
+
+	FCKTools.RunFunction( this.OnActivate, this ) ;
+}
+
+FCKMenuItem.prototype.Deactivate = function()
+{
+	this.MainElement.className = 'MN_Item' ;
+
+	if ( this.HasSubMenu )
+		this.SubMenu.Hide() ;
+}
+
+/* Events */
+
+function FCKMenuItem_SubMenu_OnClick( clickedItem, listeningItem )
+{
+	FCKTools.RunFunction( listeningItem.OnClick, listeningItem, [ clickedItem ] ) ;
+}
+
+function FCKMenuItem_SubMenu_OnHide( menuItem )
+{
+	menuItem.Deactivate() ;
+}
+
+function FCKMenuItem_OnClick( ev, menuItem )
+{
+	if ( menuItem.HasSubMenu )
+		menuItem.Activate() ;
+	else
+	{
+		menuItem.Deactivate() ;
+		FCKTools.RunFunction( menuItem.OnClick, menuItem, [ menuItem ] ) ;
+	}
+}
+
+function FCKMenuItem_OnMouseOver( ev, menuItem )
+{
+	menuItem.Activate() ;
+}
+
+function FCKMenuItem_OnMouseOut( ev, menuItem )
+{
+	menuItem.Deactivate() ;
+}
+
+function FCKMenuItem_Cleanup()
+{
+	this.MainElement = null ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js	(revision 389)
@@ -0,0 +1,34 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktoolbarbreak_ie.js
+ * 	FCKToolbarBreak Class: breaks the toolbars.
+ * 	It makes it possible to force the toolbar to brak to a new line.
+ * 	This is the IE specific implementation.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKToolbarBreak = function()
+{}
+
+FCKToolbarBreak.prototype.Create = function( targetElement )
+{
+	var oBreakDiv = FCKTools.GetElementDocument( targetElement ).createElement( 'div' ) ;
+	
+	oBreakDiv.className = 'TB_Break' ;
+	
+	oBreakDiv.style.clear = FCKLang.Dir == 'rtl' ? 'left' : 'right' ;
+	
+	targetElement.appendChild( oBreakDiv ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckstyledef_gecko.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckstyledef_gecko.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckstyledef_gecko.js	(revision 389)
@@ -0,0 +1,116 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckstyledef_gecko.js
+ * 	FCKStyleDef Class: represents a single stylke definition. (Gecko specific)
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCKStyleDef.prototype.ApplyToSelection = function()
+{
+	if ( FCKSelection.GetType() == 'Text' && !this.IsObjectElement )
+	{
+		var oSelection = FCK.ToolbarSet.CurrentInstance.EditorWindow.getSelection() ;
+		
+		// Create the main element.
+		var e = FCK.ToolbarSet.CurrentInstance.EditorDocument.createElement( this.Element ) ;
+		
+		for ( var i = 0 ; i < oSelection.rangeCount ; i++ )
+		{
+			e.appendChild( oSelection.getRangeAt(i).extractContents() ) ;
+		}
+		
+		// Set the attributes.
+		this._AddAttributes( e ) ;
+		
+		// Remove the duplicated elements.
+		this._RemoveDuplicates( e ) ;
+
+		var oRange = oSelection.getRangeAt(0) ;		
+		oRange.insertNode( e ) ;
+	}
+	else
+	{
+		var oControl = FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement() ;
+		if ( oControl.tagName == this.Element )
+			this._AddAttributes( oControl ) ;
+	}
+}
+
+FCKStyleDef.prototype._AddAttributes = function( targetElement )
+{
+	for ( var a in this.Attributes )
+	{
+		switch ( a.toLowerCase() )
+		{
+			case 'src' :
+				targetElement.setAttribute( '_fcksavedurl', this.Attributes[a], 0 ) ;
+			
+			default :
+				targetElement.setAttribute( a, this.Attributes[a], 0 ) ;
+		}
+	}
+}
+
+FCKStyleDef.prototype._RemoveDuplicates = function( parent )
+{
+	for ( var i = 0 ; i < parent.childNodes.length ; i++ )
+	{
+		var oChild = parent.childNodes[i] ;
+		
+		if ( oChild.nodeType != 1 )
+			continue ;
+		
+		this._RemoveDuplicates( oChild ) ;
+		
+		if ( this.IsEqual( oChild ) )
+			FCKTools.RemoveOuterTags( oChild ) ;
+	}
+}
+
+FCKStyleDef.prototype.IsEqual = function( e )
+{
+	if ( e.tagName != this.Element )
+		return false ;
+	
+	for ( var a in this.Attributes )
+	{
+		if ( e.getAttribute( a ) != this.Attributes[a] )
+			return false ;
+	}
+	
+	return true ;
+}
+
+FCKStyleDef.prototype._RemoveMe = function( elementToCheck )
+{
+	if ( ! elementToCheck )
+		return ;
+
+	var oParent = elementToCheck.parentNode ;
+
+	if ( elementToCheck.nodeType == 1 && this.IsEqual( elementToCheck ) )
+	{
+		if ( this.IsObjectElement )
+		{
+			for ( var a in this.Attributes )
+				elementToCheck.removeAttribute( a, 0 ) ;
+			return ;
+		}
+		else
+			FCKTools.RemoveOuterTags( elementToCheck ) ;
+	}
+	
+	this._RemoveMe( oParent ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckicon.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckicon.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckicon.js	(revision 389)
@@ -0,0 +1,94 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckicon.js
+ * 	FCKIcon Class: renders an icon from a single image, a strip or even a
+ * 	spacer.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKIcon = function( iconPathOrStripInfoArray )
+{
+	var sTypeOf = iconPathOrStripInfoArray ? typeof( iconPathOrStripInfoArray ) : 'undefined' ;
+	switch ( sTypeOf )
+	{
+		case 'number' :
+			this.Path = FCKConfig.SkinPath + 'fck_strip.gif' ;
+			this.Size = 16 ;
+			this.Position = iconPathOrStripInfoArray ;
+			break ;
+		
+		case 'undefined' :
+			this.Path = FCK_SPACER_PATH ;
+			break ;
+		
+		case 'string' :
+			this.Path = iconPathOrStripInfoArray ;
+			break ;
+		
+		default :
+			// It is an array in the format [ StripFilePath, IconSize, IconPosition ]
+			this.Path		= iconPathOrStripInfoArray[0] ;
+			this.Size		= iconPathOrStripInfoArray[1] ;
+			this.Position	= iconPathOrStripInfoArray[2] ;
+	}
+}
+
+FCKIcon.prototype.CreateIconElement = function( document )
+{
+	var eIcon ;
+	
+	if ( this.Position )		// It is using an icons strip image.
+	{
+		var sPos = '-' + ( ( this.Position - 1 ) * this.Size ) + 'px' ;
+	
+		if ( FCKBrowserInfo.IsIE )
+		{
+			// <div class="TB_Button_Image"><img src="strip.gif" style="top:-16px"></div>
+			
+			eIcon = document.createElement( 'DIV' ) ;
+			
+			var eIconImage = eIcon.appendChild( document.createElement( 'IMG' ) ) ;
+			eIconImage.src = this.Path ;
+			eIconImage.style.top = sPos ;
+		}
+		else
+		{
+			// <img class="TB_Button_Image" src="spacer.gif" style="background-position: 0px -16px;background-image: url(strip.gif);">
+			
+			eIcon = document.createElement( 'IMG' ) ;
+			eIcon.src = FCK_SPACER_PATH ;
+			eIcon.style.backgroundPosition	= '0px ' + sPos ;
+			eIcon.style.backgroundImage		= 'url(' + this.Path + ')' ;
+		}
+	}
+	else					// It is using a single icon image.
+	{
+		// This is not working well with IE. See notes bellow.
+		// <img class="TB_Button_Image" src="smiley.gif">
+//		eIcon = document.createElement( 'IMG' ) ;
+//		eIcon.src = this.Path ? this.Path : FCK_SPACER_PATH ;
+
+		// IE makes the button 1px higher if using the <img> directly, so we
+		// are changing to the <div> system to clip the image correctly.
+		eIcon = document.createElement( 'DIV' ) ;
+		
+		var eIconImage = eIcon.appendChild( document.createElement( 'IMG' ) ) ;
+		eIconImage.src = this.Path ? this.Path : FCK_SPACER_PATH ;
+	}
+	
+	eIcon.className = 'TB_Button_Image' ;
+
+	return eIcon ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js	(revision 389)
@@ -0,0 +1,43 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktoolbarfontscombo.js
+ * 	FCKToolbarPanelButton Class: Handles the Fonts combo selector.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKToolbarFontsCombo = function( tooltip, style )
+{
+	this.CommandName	= 'FontName' ;
+	this.Label		= this.GetLabel() ;
+	this.Tooltip	= tooltip ? tooltip : this.Label ;
+	this.Style		= style ? style : FCK_TOOLBARITEM_ICONTEXT ;
+}
+
+// Inherit from FCKToolbarSpecialCombo.
+FCKToolbarFontsCombo.prototype = new FCKToolbarSpecialCombo ;
+
+
+FCKToolbarFontsCombo.prototype.GetLabel = function()
+{
+	return FCKLang.Font ;
+}
+
+FCKToolbarFontsCombo.prototype.CreateItems = function( targetSpecialCombo )
+{
+	var aFonts = FCKConfig.FontNames.split(';') ;
+	
+	for ( var i = 0 ; i < aFonts.length ; i++ )
+		this._Combo.AddItem( aFonts[i], '<font face="' + aFonts[i] + '" style="font-size: 12px">' + aFonts[i] + '</font>' ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js	(revision 389)
@@ -0,0 +1,218 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktoolbarbuttonui.js
+ * 	FCKToolbarButtonUI Class: interface representation of a toolbar button.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKToolbarButtonUI = function( name, label, tooltip, iconPathOrStripInfoArray, style, state )
+{
+	this.Name		= name ;
+	this.Label		= label || name ;
+	this.Tooltip	= tooltip || this.Label ;
+	this.Style		= style || FCK_TOOLBARITEM_ONLYICON ;
+	this.State		= state || FCK_TRISTATE_OFF ;
+	
+	this.Icon = new FCKIcon( iconPathOrStripInfoArray ) ;
+
+	if ( FCK.IECleanup )
+		FCK.IECleanup.AddItem( this, FCKToolbarButtonUI_Cleanup ) ;
+}
+
+
+FCKToolbarButtonUI.prototype._CreatePaddingElement = function( document )
+{
+	var oImg = document.createElement( 'IMG' ) ;
+	oImg.className = 'TB_Button_Padding' ;
+	oImg.src = FCK_SPACER_PATH ;
+	return oImg ;
+}
+
+FCKToolbarButtonUI.prototype.Create = function( parentElement )
+{
+	var oMainElement = this.MainElement ;
+	
+	if ( oMainElement )
+	{
+		FCKToolbarButtonUI_Cleanup.call(this) ;
+		
+		if ( oMainElement.parentNode )
+			oMainElement.parentNode.removeChild( oMainElement ) ;
+		oMainElement = this.MainElement = null ;
+	}
+
+	var oDoc = FCKTools.GetElementDocument( parentElement ) ;
+	
+	// Create the Main Element.
+	oMainElement = this.MainElement = oDoc.createElement( 'DIV' ) ;
+	oMainElement._FCKButton = this ;		// IE Memory Leak (Circular reference).
+	oMainElement.title		= this.Tooltip ;
+
+	// The following will prevent the button from catching the focus.
+	if ( FCKBrowserInfo.IsGecko )
+		 oMainElement.onmousedown	= FCKTools.CancelEvent ;
+
+	this.ChangeState( this.State, true ) ;
+
+	if ( this.Style == FCK_TOOLBARITEM_ONLYICON && !this.ShowArrow )
+	{
+		// <td><div class="TB_Button_On" title="Smiley">{Image}</div></td>
+		
+		oMainElement.appendChild( this.Icon.CreateIconElement( oDoc ) ) ;
+	}
+	else
+	{
+		// <td><div class="TB_Button_On" title="Smiley"><table cellpadding="0" cellspacing="0"><tr><td>{Image}</td><td nowrap>Toolbar Button</td><td><img class="TB_Button_Padding"></td></tr></table></div></td>
+		// <td><div class="TB_Button_On" title="Smiley"><table cellpadding="0" cellspacing="0"><tr><td><img class="TB_Button_Padding"></td><td nowrap>Toolbar Button</td><td><img class="TB_Button_Padding"></td></tr></table></div></td>
+		
+		var oTable = oMainElement.appendChild( oDoc.createElement( 'TABLE' ) ) ;
+		oTable.cellPadding = 0 ;
+		oTable.cellSpacing = 0 ;
+
+		var oRow = oTable.insertRow(-1) ;
+		
+		// The Image cell (icon or padding).
+		var oCell = oRow.insertCell(-1) ;
+		
+		if ( this.Style == FCK_TOOLBARITEM_ONLYICON || this.Style == FCK_TOOLBARITEM_ICONTEXT )
+			oCell.appendChild( this.Icon.CreateIconElement( oDoc ) ) ;
+		else
+			oCell.appendChild( this._CreatePaddingElement( oDoc ) ) ;
+		
+		if ( this.Style == FCK_TOOLBARITEM_ONLYTEXT || this.Style == FCK_TOOLBARITEM_ICONTEXT )
+		{
+			// The Text cell.
+			oCell = oRow.insertCell(-1) ;
+			oCell.className = 'TB_Button_Text' ;
+			oCell.noWrap = true ;
+			oCell.appendChild( oDoc.createTextNode( this.Label ) ) ;
+		}
+		
+		if ( this.ShowArrow )
+		{
+			if ( this.Style != FCK_TOOLBARITEM_ONLYICON )
+			{	
+				// A padding cell.
+				oRow.insertCell(-1).appendChild( this._CreatePaddingElement( oDoc ) ) ;
+			}
+			
+			oCell = oRow.insertCell(-1) ;
+			var eImg = oCell.appendChild( oDoc.createElement( 'IMG' ) ) ;
+			eImg.src	= FCKConfig.SkinPath + 'images/toolbar.buttonarrow.gif' ;
+			eImg.width	= 5 ;
+			eImg.height	= 3 ;
+		}
+
+		// The last padding cell.
+		oCell = oRow.insertCell(-1) ;
+		oCell.appendChild( this._CreatePaddingElement( oDoc ) ) ;
+	}
+	
+	parentElement.appendChild( oMainElement ) ;
+}
+
+FCKToolbarButtonUI.prototype.ChangeState = function( newState, force )
+{
+	if ( !force && this.State == newState )
+		return ;
+
+	var e = this.MainElement ;
+
+	switch ( parseInt( newState ) )
+	{
+		case FCK_TRISTATE_OFF :
+			e.className		= 'TB_Button_Off' ;
+			e.onmouseover	= FCKToolbarButton_OnMouseOverOff ;
+			e.onmouseout	= FCKToolbarButton_OnMouseOutOff ;
+			e.onclick		= FCKToolbarButton_OnClick ;
+			
+			break ;
+			
+		case FCK_TRISTATE_ON :
+			e.className		= 'TB_Button_On' ;
+			e.onmouseover	= FCKToolbarButton_OnMouseOverOn ;
+			e.onmouseout	= FCKToolbarButton_OnMouseOutOn ;
+			e.onclick		= FCKToolbarButton_OnClick ;
+			
+			break ;
+
+		case FCK_TRISTATE_DISABLED :
+			e.className		= 'TB_Button_Disabled' ;
+			e.onmouseover	= null ;
+			e.onmouseout	= null ;
+			e.onclick		= null ;
+			bEnableEvents = false ;
+			break ;
+	}
+
+	this.State = newState ;
+}
+
+function FCKToolbarButtonUI_Cleanup()
+{
+	if ( this.MainElement )
+	{
+		this.MainElement._FCKButton = null ;
+		this.MainElement = null ;
+	}
+}	
+
+// Event Handlers.
+
+function FCKToolbarButton_OnMouseOverOn()
+{
+	this.className = 'TB_Button_On_Over' ;
+}
+
+function FCKToolbarButton_OnMouseOutOn()
+{
+	this.className = 'TB_Button_On' ;
+}
+
+function FCKToolbarButton_OnMouseOverOff()
+{
+	this.className = 'TB_Button_Off_Over' ;
+}
+
+function FCKToolbarButton_OnMouseOutOff()
+{
+	this.className = 'TB_Button_Off' ;
+}
+
+function FCKToolbarButton_OnClick( e )
+{
+	if ( this._FCKButton.OnClick )
+		this._FCKButton.OnClick( this._FCKButton ) ;
+}
+
+/* 
+	Sample outputs:
+
+	This is the base structure. The variation is the image that is marked as {Image}:
+		<td><div class="TB_Button_On" title="Smiley">{Image}</div></td>
+		<td><div class="TB_Button_On" title="Smiley"><table cellpadding="0" cellspacing="0"><tr><td>{Image}</td><td nowrap>Toolbar Button</td><td><img class="TB_Button_Padding"></td></tr></table></div></td>
+		<td><div class="TB_Button_On" title="Smiley"><table cellpadding="0" cellspacing="0"><tr><td><img class="TB_Button_Padding"></td><td nowrap>Toolbar Button</td><td><img class="TB_Button_Padding"></td></tr></table></div></td>
+
+	These are samples of possible {Image} values:
+		
+		Strip - IE version:
+			<div class="TB_Button_Image"><img src="strip.gif" style="top:-16px"></div>
+		
+		Strip : Firefox, Safari and Opera version
+			<img class="TB_Button_Image" style="background-position: 0px -16px;background-image: url(strip.gif);">
+		
+		No-Strip : Browser independent:
+			<img class="TB_Button_Image" src="smiley.gif">
+*/
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckstyledef_ie.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckstyledef_ie.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckstyledef_ie.js	(revision 389)
@@ -0,0 +1,139 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckstyledef_ie.js
+ * 	FCKStyleDef Class: represents a single stylke definition. (IE specific)
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCKStyleDef.prototype.ApplyToSelection = function()
+{
+	var oSelection = FCK.ToolbarSet.CurrentInstance.EditorDocument.selection ;
+	
+	if ( oSelection.type == 'Text' )
+	{
+		var oRange = oSelection.createRange() ;
+		
+		// Create the main element.
+		var e = document.createElement( this.Element ) ;
+		e.innerHTML = oRange.htmlText ;
+		
+		// Set the attributes.
+		this._AddAttributes( e ) ;
+		
+		// Remove the duplicated elements.
+		this._RemoveDuplicates( e ) ;
+		
+		// Replace the selection with the resulting HTML.
+		oRange.pasteHTML( e.outerHTML ) ;
+	}
+	else if ( oSelection.type == 'Control' )
+	{
+		var oControl = FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement() ;
+		if ( oControl.tagName == this.Element )
+			this._AddAttributes( oControl ) ;
+	}
+}
+
+FCKStyleDef.prototype._AddAttributes = function( targetElement )
+{
+	for ( var a in this.Attributes )
+	{
+		switch ( a.toLowerCase() )
+		{
+			case 'style' :
+				targetElement.style.cssText = this.Attributes[a] ;
+				break ;
+
+			case 'class' :
+				targetElement.setAttribute( 'className', this.Attributes[a], 0 ) ;
+				break ;
+
+			case 'src' :
+				targetElement.setAttribute( '_fcksavedurl', this.Attributes[a], 0 ) ;
+
+			default :
+				targetElement.setAttribute( a, this.Attributes[a], 0 ) ;
+		}
+	}
+}
+
+FCKStyleDef.prototype._RemoveDuplicates = function( parent )
+{
+	for ( var i = 0 ; i < parent.children.length ; i++ )
+	{
+		var oChild = parent.children[i] ;
+		this._RemoveDuplicates( oChild ) ;
+		
+		if ( this.IsEqual( oChild ) )
+			FCKTools.RemoveOuterTags( oChild ) ;
+	}
+}
+
+FCKStyleDef.prototype.IsEqual = function( e )
+{
+	if ( e.tagName != this.Element )
+		return false ;
+	
+	for ( var a in this.Attributes )
+	{
+		switch ( a.toLowerCase() )
+		{
+			case 'style' :
+				if ( e.style.cssText.toLowerCase() != this.Attributes[a].toLowerCase() )
+					return false ;
+				break ;
+			case 'class' :
+				if ( e.getAttribute( 'className', 0 ) != this.Attributes[a] )
+					return false ;
+				break ;
+			default :
+				if ( e.getAttribute( a, 0 ) != this.Attributes[a] )
+					return false ;
+		}
+	}
+	
+	return true ;
+}
+
+FCKStyleDef.prototype._RemoveMe = function( elementToCheck )
+{
+	if ( ! elementToCheck )
+		return ;
+
+	var oParent = elementToCheck.parentElement ;
+
+	if ( this.IsEqual( elementToCheck ) )
+	{
+		if ( this.IsObjectElement )
+		{
+			for ( var a in this.Attributes )
+			{
+				switch ( a.toLowerCase() )
+				{
+					case 'class' :
+						elementToCheck.removeAttribute( 'className', 0 ) ;
+						break ;
+					default :
+						elementToCheck.removeAttribute( a, 0 ) ;
+				}
+			}
+			return ;
+		}
+		else
+			FCKTools.RemoveOuterTags( elementToCheck ) ;
+	}
+	
+	this._RemoveMe( oParent ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarbutton.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarbutton.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarbutton.js	(revision 389)
@@ -0,0 +1,70 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktoolbarbutton.js
+ * 	FCKToolbarButton Class: represents a button in the toolbar.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKToolbarButton = function( commandName, label, tooltip, style, sourceView, contextSensitive, icon )
+{
+	this.CommandName		= commandName ;
+	this.Label				= label ;
+	this.Tooltip			= tooltip ;
+	this.Style				= style ;
+	this.SourceView			= sourceView ? true : false ;
+	this.ContextSensitive	= contextSensitive ? true : false ;	
+
+	if ( icon == null )
+		this.IconPath = FCKConfig.SkinPath + 'toolbar/' + commandName.toLowerCase() + '.gif' ;
+	else if ( typeof( icon ) == 'number' )
+		this.IconPath = [ FCKConfig.SkinPath + 'fck_strip.gif', 16, icon ] ;
+}
+
+FCKToolbarButton.prototype.Create = function( targetElement )
+{
+	this._UIButton = new FCKToolbarButtonUI( this.CommandName, this.Label, this.Tooltip, this.IconPath, this.Style ) ;
+	this._UIButton.OnClick = this.Click ;
+	this._UIButton._ToolbarButton = this ;	
+	this._UIButton.Create( targetElement ) ;
+}
+
+FCKToolbarButton.prototype.RefreshState = function()
+{
+	// Gets the actual state.
+	var eState = FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).GetState() ;
+	
+	// If there are no state changes than do nothing and return.
+	if ( eState == this._UIButton.State ) return ;
+	
+	// Sets the actual state.
+	this._UIButton.ChangeState( eState ) ;
+}
+
+FCKToolbarButton.prototype.Click = function()
+{
+	var oToolbarButton = this._ToolbarButton || this ;
+	FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( oToolbarButton.CommandName ).Execute() ;
+}
+
+FCKToolbarButton.prototype.Enable = function()
+{
+	this.RefreshState() ;
+}
+
+FCKToolbarButton.prototype.Disable = function()
+{
+	// Sets the actual state.
+	this._UIButton.ChangeState( FCK_TRISTATE_DISABLED ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckplugin.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckplugin.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckplugin.js	(revision 389)
@@ -0,0 +1,52 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckplugin.js
+ * 	FCKPlugin Class: Represents a single plugin.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKPlugin = function( name, availableLangs, basePath )
+{
+	this.Name = name ;
+	this.BasePath = basePath ? basePath : FCKConfig.PluginsPath ;
+	this.Path = this.BasePath + name + '/' ;
+	
+	if ( !availableLangs || availableLangs.length == 0 )
+		this.AvailableLangs = new Array() ;
+	else
+		this.AvailableLangs = availableLangs.split(',') ;
+}
+
+FCKPlugin.prototype.Load = function()
+{
+	// Load the language file, if defined.
+	if ( this.AvailableLangs.length > 0 )
+	{
+		var sLang ;
+		
+		// Check if the plugin has the language file for the active language.
+		if ( this.AvailableLangs.indexOf( FCKLanguageManager.ActiveLanguage.Code ) >= 0 )
+			sLang = FCKLanguageManager.ActiveLanguage.Code ;
+		else
+			// Load the default language file (first one) if the current one is not available.
+			sLang = this.AvailableLangs[0] ;
+		
+		// Add the main plugin script.
+		LoadScript( this.Path + 'lang/' + sLang + '.js' ) ;		
+	}
+		
+	// Add the main plugin script.
+	LoadScript( this.Path + 'fckplugin.js' ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckmenublockpanel.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckmenublockpanel.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckmenublockpanel.js	(revision 389)
@@ -0,0 +1,51 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckmenublockpanel.js
+ * 	This class is a menu block that behaves like a panel. It's a mix of the
+ * 	FCKMenuBlock and FCKPanel classes.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+
+var FCKMenuBlockPanel = function()
+{
+	// Call the "base" constructor.
+	FCKMenuBlock.call( this ) ;
+}
+
+FCKMenuBlockPanel.prototype = new FCKMenuBlock() ;
+
+
+// Override the create method.
+FCKMenuBlockPanel.prototype.Create = function()
+{
+	var oPanel = this.Panel = ( this.Parent && this.Parent.Panel ? this.Parent.Panel.CreateChildPanel() : new FCKPanel() ) ;
+	oPanel.AppendStyleSheet( FCKConfig.SkinPath + 'fck_editor.css' ) ;
+
+	// Call the "base" implementation.
+	FCKMenuBlock.prototype.Create.call( this, oPanel.MainNode ) ;
+}
+
+FCKMenuBlockPanel.prototype.Show = function( x, y, relElement )
+{
+	if ( !this.Panel.CheckIsOpened() )
+		this.Panel.Show( x, y, relElement ) ;
+}
+
+FCKMenuBlockPanel.prototype.Hide = function()
+{
+	if ( this.Panel.CheckIsOpened() )
+		this.Panel.Hide() ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckpanel.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckpanel.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckpanel.js	(revision 389)
@@ -0,0 +1,295 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckpanel.js
+ * 	Component that creates floating panels. It is used by many 
+ * 	other components, like the toolbar items, context menu, etc...
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+
+var FCKPanel = function( parentWindow )
+{
+	this.IsRTL			= ( FCKLang.Dir == 'rtl' ) ;
+	this.IsContextMenu	= false ;
+	this._LockCounter	= 0 ;
+	
+	this._Window = parentWindow || window ;
+	
+	var oDocument ;
+	
+	if ( FCKBrowserInfo.IsIE )
+	{
+		// Create the Popup that will hold the panel.
+		this._Popup	= this._Window.createPopup() ;
+		oDocument = this.Document = this._Popup.document ;
+	}
+	else
+	{
+		var oIFrame = this._IFrame = this._Window.document.createElement('iframe') ; 
+		oIFrame.src					= 'javascript:void(0)' ;
+		oIFrame.allowTransparency	= true ;
+		oIFrame.frameBorder			= '0' ;
+		oIFrame.scrolling			= 'no' ;
+		oIFrame.style.position		= 'absolute';
+		oIFrame.style.zIndex		= FCKConfig.FloatingPanelsZIndex ;
+		oIFrame.width = oIFrame.height = 0 ;
+
+		if ( this._Window == window.parent && window.frameElement )
+			window.frameElement.parentNode.insertBefore( oIFrame, window.frameElement ) ;
+		else
+			this._Window.document.body.appendChild( oIFrame ) ;
+		
+		var oIFrameWindow = oIFrame.contentWindow ; 
+		
+		oDocument = this.Document = oIFrameWindow.document ;
+
+		// Initialize the IFRAME document body.
+		oDocument.open() ;
+		oDocument.write( '<html><head></head><body style="margin:0px;padding:0px;"><\/body><\/html>' ) ;
+		oDocument.close() ;
+
+		FCKTools.AddEventListenerEx( oIFrameWindow, 'focus', FCKPanel_Window_OnFocus, this ) ;
+		FCKTools.AddEventListenerEx( oIFrameWindow, 'blur', FCKPanel_Window_OnBlur, this ) ;
+	}
+
+	oDocument.dir = FCKLang.Dir ;
+	
+	oDocument.oncontextmenu = FCKTools.CancelEvent ;
+
+
+	// Create the main DIV that is used as the panel base.
+	this.MainNode = oDocument.body.appendChild( oDocument.createElement('DIV') ) ;
+
+	// The "float" property must be set so Firefox calculates the size correcly.
+	this.MainNode.style.cssFloat = this.IsRTL ? 'right' : 'left' ;
+
+	if ( FCK.IECleanup )
+		FCK.IECleanup.AddItem( this, FCKPanel_Cleanup ) ;
+}
+
+
+FCKPanel.prototype.AppendStyleSheet = function( styleSheet )
+{
+	FCKTools.AppendStyleSheet( this.Document, styleSheet ) ;
+}
+
+FCKPanel.prototype.Preload = function( x, y, relElement )
+{
+	// The offsetWidth and offsetHeight properties are not available if the 
+	// element is not visible. So we must "show" the popup with no size to
+	// be able to use that values in the second call (IE only).
+	if ( this._Popup )
+		this._Popup.show( x, y, 0, 0, relElement ) ;
+}
+
+FCKPanel.prototype.Show = function( x, y, relElement, width, height )
+{
+	if ( this._Popup )
+	{
+		// The offsetWidth and offsetHeight properties are not available if the 
+		// element is not visible. So we must "show" the popup with no size to
+		// be able to use that values in the second call.
+		this._Popup.show( x, y, 0, 0, relElement ) ;
+
+		// The following lines must be place after the above "show", otherwise it 
+		// doesn't has the desired effect.
+		this.MainNode.style.width	= width ? width + 'px' : '' ;
+		this.MainNode.style.height	= height ? height + 'px' : '' ;
+		
+		var iMainWidth = this.MainNode.offsetWidth ;
+
+		if ( this.IsRTL )
+		{
+			if ( this.IsContextMenu )
+				x  = x - iMainWidth + 1 ;
+			else if ( relElement )
+				x  = ( x * -1 ) + relElement.offsetWidth - iMainWidth ;
+		}
+	
+		// Second call: Show the Popup at the specified location, with the correct size.
+		this._Popup.show( x, y, iMainWidth, this.MainNode.offsetHeight, relElement ) ;
+		
+		if ( this.OnHide )
+		{
+			if ( this._Timer )
+				CheckPopupOnHide.call( this, true ) ;
+
+			this._Timer = FCKTools.SetInterval( CheckPopupOnHide, 100, this ) ;
+		}
+	}
+	else
+	{
+		// Do not fire OnBlur while the panel is opened.
+		if ( typeof( FCKFocusManager ) != 'undefined' )
+			FCKFocusManager.Lock() ;
+
+		if ( this.ParentPanel )
+			this.ParentPanel.Lock() ;
+
+		this.MainNode.style.width	= width ? width + 'px' : '' ;
+		this.MainNode.style.height	= height ? height + 'px' : '' ;
+
+		var iMainWidth = this.MainNode.offsetWidth ;
+
+		if ( !width )	this._IFrame.width	= 1 ;
+		if ( !height )	this._IFrame.height	= 1 ;
+
+		// This is weird... but with Firefox, we must get the offsetWidth before
+		// setting the _IFrame size (which returns "0"), and then after that,
+		// to return the correct width. Remove the first step and it will not
+		// work when the editor is in RTL.
+		iMainWidth = this.MainNode.offsetWidth ;
+
+		var oPos = FCKTools.GetElementPosition( ( relElement.nodeType == 9 ? relElement.body : relElement), this._Window ) ;
+
+		if ( this.IsRTL && !this.IsContextMenu )
+			x = ( x * -1 ) ;
+
+		x += oPos.X ;
+		y += oPos.Y ;
+
+		if ( this.IsRTL )
+		{
+			if ( this.IsContextMenu )
+				x  = x - iMainWidth + 1 ;
+			else if ( relElement )
+				x  = x + relElement.offsetWidth - iMainWidth ;
+		}
+		else
+		{
+			var oViewPaneSize = FCKTools.GetViewPaneSize( this._Window ) ;
+			var oScrollPosition = FCKTools.GetScrollPosition( this._Window ) ;
+			
+			var iViewPaneHeight	= oViewPaneSize.Height + oScrollPosition.Y ;
+			var iViewPaneWidth	= oViewPaneSize.Width + oScrollPosition.X ;
+
+			if ( ( x + iMainWidth ) > iViewPaneWidth )
+				x -= x + iMainWidth - iViewPaneWidth ;
+
+			if ( ( y + this.MainNode.offsetHeight ) > iViewPaneHeight )
+				y -= y + this.MainNode.offsetHeight - iViewPaneHeight ;
+		}
+		
+		if ( x < 0 )
+			 x = 0 ;
+
+		// Set the context menu DIV in the specified location.
+		this._IFrame.style.left	= x + 'px' ;
+		this._IFrame.style.top	= y + 'px' ;
+		
+		var iWidth	= iMainWidth ;
+		var iHeight	= this.MainNode.offsetHeight ;
+		
+		this._IFrame.width	= iWidth ;
+		this._IFrame.height = iHeight ;
+
+		// Move the focus to the IFRAME so we catch the "onblur".
+		this._IFrame.contentWindow.focus() ;
+	}
+
+	this._IsOpened = true ;
+
+	FCKTools.RunFunction( this.OnShow, this ) ;
+}
+
+FCKPanel.prototype.Hide = function( ignoreOnHide )
+{
+	if ( this._Popup )
+		this._Popup.hide() ;
+	else
+	{
+		if ( !this._IsOpened )
+			return ;
+		
+		// Enable the editor to fire the "OnBlur".
+		if ( typeof( FCKFocusManager ) != 'undefined' )
+			FCKFocusManager.Unlock() ;
+
+		// It is better to set the sizes to 0, otherwise Firefox would have 
+		// rendering problems.
+		this._IFrame.width = this._IFrame.height = 0 ;
+
+		this._IsOpened = false ;
+		
+		if ( this.ParentPanel )
+			this.ParentPanel.Unlock() ;
+
+		if ( !ignoreOnHide )
+			FCKTools.RunFunction( this.OnHide, this ) ;
+	}
+}
+
+FCKPanel.prototype.CheckIsOpened = function()
+{
+	if ( this._Popup )
+		return this._Popup.isOpen ;
+	else
+		return this._IsOpened ;
+}
+
+FCKPanel.prototype.CreateChildPanel = function()
+{
+	var oWindow = this._Popup ? FCKTools.GetParentWindow( this.Document ) : this._Window ;
+
+	var oChildPanel = new FCKPanel( oWindow, true ) ;
+	oChildPanel.ParentPanel = this ;
+	
+	return oChildPanel ;
+}
+
+FCKPanel.prototype.Lock = function()
+{
+	this._LockCounter++ ;
+}
+
+FCKPanel.prototype.Unlock = function()
+{
+	if ( --this._LockCounter == 0 && !this.HasFocus )
+		this.Hide() ;
+}
+
+/* Events */
+
+function FCKPanel_Window_OnFocus( e, panel )
+{
+	panel.HasFocus = true ;
+}
+
+function FCKPanel_Window_OnBlur( e, panel )
+{
+	panel.HasFocus = false ;
+	
+	if ( panel._LockCounter == 0 )
+		FCKTools.RunFunction( panel.Hide, panel ) ;
+}
+
+function CheckPopupOnHide( forceHide )
+{
+	if ( forceHide || !this._Popup.isOpen )
+	{
+		window.clearInterval( this._Timer ) ;
+		this._Timer = null ;
+	
+		FCKTools.RunFunction( this.OnHide, this ) ;
+	}
+}
+
+function FCKPanel_Cleanup()
+{
+	this._Popup = null ;
+	this._Window = null ;
+	this.Document = null ;
+	this.MainNode = null ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckspecialcombo.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckspecialcombo.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckspecialcombo.js	(revision 389)
@@ -0,0 +1,351 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckspecialcombo.js
+ * 	FCKSpecialCombo Class: represents a special combo.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKSpecialCombo = function( caption, fieldWidth, panelWidth, panelMaxHeight, parentWindow )
+{
+	// Default properties values.
+	this.FieldWidth		= fieldWidth || 100 ;
+	this.PanelWidth		= panelWidth || 150 ;
+	this.PanelMaxHeight	= panelMaxHeight || 150 ;
+	this.Label			= '&nbsp;' ;
+	this.Caption		= caption ;
+	this.Tooltip		= caption ;
+	this.Style			= FCK_TOOLBARITEM_ICONTEXT ;
+
+	this.Enabled = true ;
+	
+	this.Items = new Object() ;
+	
+	this._Panel = new FCKPanel( parentWindow || window, true ) ;
+	this._Panel.AppendStyleSheet( FCKConfig.SkinPath + 'fck_editor.css' ) ;
+	this._PanelBox = this._Panel.MainNode.appendChild( this._Panel.Document.createElement( 'DIV' ) ) ;
+	this._PanelBox.className = 'SC_Panel' ;
+	this._PanelBox.style.width = this.PanelWidth + 'px' ;
+
+	this._PanelBox.innerHTML = '<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>' ;
+	
+	this._ItemsHolderEl = this._PanelBox.getElementsByTagName('TD')[0] ;
+
+	if ( FCK.IECleanup )
+		FCK.IECleanup.AddItem( this, FCKSpecialCombo_Cleanup ) ;
+
+//	this._Panel.StyleSheet = FCKConfig.SkinPath + 'fck_contextmenu.css' ;
+//	this._Panel.Create() ;
+//	this._Panel.PanelDiv.className += ' SC_Panel' ;
+//	this._Panel.PanelDiv.innerHTML = '<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>' ;
+//	this._ItemsHolderEl = this._Panel.PanelDiv.getElementsByTagName('TD')[0] ;
+}
+
+function FCKSpecialCombo_ItemOnMouseOver()
+{
+	this.className += ' SC_ItemOver' ;
+}
+
+function FCKSpecialCombo_ItemOnMouseOut()
+{
+	this.className = this.originalClass ;
+}
+
+function FCKSpecialCombo_ItemOnClick()
+{
+	this.className = this.originalClass ;
+
+	this.FCKSpecialCombo._Panel.Hide() ;
+
+	this.FCKSpecialCombo.SetLabel( this.FCKItemLabel ) ;
+
+	if ( typeof( this.FCKSpecialCombo.OnSelect ) == 'function' )
+		this.FCKSpecialCombo.OnSelect( this.FCKItemID, this ) ;
+}
+
+FCKSpecialCombo.prototype.AddItem = function( id, html, label, bgColor )
+{
+	// <div class="SC_Item" onmouseover="this.className='SC_Item SC_ItemOver';" onmouseout="this.className='SC_Item';"><b>Bold 1</b></div>
+	var oDiv = this._ItemsHolderEl.appendChild( this._Panel.Document.createElement( 'DIV' ) ) ;
+	oDiv.className = oDiv.originalClass = 'SC_Item' ;
+	oDiv.innerHTML = html ;
+	oDiv.FCKItemID = id ;
+	oDiv.FCKItemLabel = label || id ;
+	oDiv.FCKSpecialCombo = this ;
+	oDiv.Selected = false ;
+
+	// In IE, the width must be set so the borders are shown correctly when the content overflows.
+	if ( FCKBrowserInfo.IsIE )
+		oDiv.style.width = '100%' ;
+	
+	if ( bgColor )
+		oDiv.style.backgroundColor = bgColor ;
+
+	oDiv.onmouseover	= FCKSpecialCombo_ItemOnMouseOver ;
+	oDiv.onmouseout		= FCKSpecialCombo_ItemOnMouseOut ;
+	oDiv.onclick		= FCKSpecialCombo_ItemOnClick ;
+	
+	this.Items[ id.toString().toLowerCase() ] = oDiv ;
+	
+	return oDiv ;
+}
+
+FCKSpecialCombo.prototype.SelectItem = function( itemId )
+{
+	itemId = itemId ? itemId.toString().toLowerCase() : '' ;
+	
+	var oDiv = this.Items[ itemId ] ;
+	if ( oDiv )
+	{
+		oDiv.className = oDiv.originalClass = 'SC_ItemSelected' ;
+		oDiv.Selected = true ;
+	}
+}
+
+FCKSpecialCombo.prototype.SelectItemByLabel = function( itemLabel, setLabel )
+{
+	for ( var id in this.Items )
+	{
+		var oDiv = this.Items[id] ;
+
+		if ( oDiv.FCKItemLabel == itemLabel )
+		{
+			oDiv.className = oDiv.originalClass = 'SC_ItemSelected' ;
+			oDiv.Selected = true ;
+			
+			if ( setLabel )
+				this.SetLabel( itemLabel ) ;
+		}
+	}
+}
+
+FCKSpecialCombo.prototype.DeselectAll = function( clearLabel )
+{
+	for ( var i in this.Items )
+	{
+		this.Items[i].className = this.Items[i].originalClass = 'SC_Item' ;
+		this.Items[i].Selected = false ;
+	}
+	
+	if ( clearLabel )
+		this.SetLabel( '' ) ;
+}
+
+FCKSpecialCombo.prototype.SetLabelById = function( id )
+{
+	id = id ? id.toString().toLowerCase() : '' ;
+	
+	var oDiv = this.Items[ id ] ;
+	this.SetLabel( oDiv ? oDiv.FCKItemLabel : '' ) ;
+}
+
+FCKSpecialCombo.prototype.SetLabel = function( text )
+{
+	this.Label = text.length == 0 ? '&nbsp;' : text ;
+
+	if ( this._LabelEl )
+		this._LabelEl.innerHTML = this.Label ;
+}
+
+FCKSpecialCombo.prototype.SetEnabled = function( isEnabled )
+{
+	this.Enabled = isEnabled ;
+	
+	this._OuterTable.className = isEnabled ? '' : 'SC_FieldDisabled' ;
+}
+
+FCKSpecialCombo.prototype.Create = function( targetElement )
+{
+	var oDoc = FCKTools.GetElementDocument( targetElement ) ;
+	var eOuterTable = this._OuterTable = targetElement.appendChild( oDoc.createElement( 'TABLE' ) ) ;
+	eOuterTable.cellPadding = 0 ;
+	eOuterTable.cellSpacing = 0 ;
+	
+	eOuterTable.insertRow(-1) ;
+	
+	var sClass ;
+	var bShowLabel ;
+	
+	switch ( this.Style )
+	{
+		case FCK_TOOLBARITEM_ONLYICON :
+			sClass = 'TB_ButtonType_Icon' ;
+			bShowLabel = false;
+			break ;
+		case FCK_TOOLBARITEM_ONLYTEXT :
+			sClass = 'TB_ButtonType_Text' ;
+			bShowLabel = false;
+			break ;
+		case FCK_TOOLBARITEM_ICONTEXT :
+			bShowLabel = true;
+			break ;
+	}
+
+	if ( this.Caption && this.Caption.length > 0 && bShowLabel )
+	{
+		var oCaptionCell = eOuterTable.rows[0].insertCell(-1) ;
+		oCaptionCell.innerHTML = this.Caption ;
+		oCaptionCell.className = 'SC_FieldCaption' ;
+	}
+	
+	// Create the main DIV element.
+	var oField = FCKTools.AppendElement( eOuterTable.rows[0].insertCell(-1), 'div' ) ;
+	if ( bShowLabel )
+	{
+		oField.className = 'SC_Field' ;
+		oField.style.width = this.FieldWidth + 'px' ;
+		oField.innerHTML = '<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldLabel"><label>&nbsp;</label></td><td class="SC_FieldButton">&nbsp;</td></tr></tbody></table>' ;
+
+		this._LabelEl = oField.getElementsByTagName('label')[0] ;		// Memory Leak
+		this._LabelEl.innerHTML = this.Label ;
+	}
+	else
+	{
+		oField.className = 'TB_Button_Off' ;
+		//oField.innerHTML = '<span className="SC_FieldCaption">' + this.Caption + '<table cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldButton" style="border-left: none;">&nbsp;</td></tr></tbody></table>' ;
+		//oField.innerHTML = '<table cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldButton" style="border-left: none;">&nbsp;</td></tr></tbody></table>' ;
+		
+		// Gets the correct CSS class to use for the specified style (param).
+		oField.innerHTML = '<table title="' + this.Tooltip + '" class="' + sClass + '" cellspacing="0" cellpadding="0" border="0">' +
+				'<tr>' +
+					//'<td class="TB_Icon"><img src="' + FCKConfig.SkinPath + 'toolbar/' + this.Command.Name.toLowerCase() + '.gif" width="21" height="21"></td>' +
+					'<td><img class="TB_Button_Padding" src="' + FCK_SPACER_PATH + '" /></td>' +
+					'<td class="TB_Text">' + this.Caption + '</td>' +
+					'<td><img class="TB_Button_Padding" src="' + FCK_SPACER_PATH + '" /></td>' +
+					'<td class="TB_ButtonArrow"><img src="' + FCKConfig.SkinPath + 'images/toolbar.buttonarrow.gif" width="5" height="3"></td>' +
+					'<td><img class="TB_Button_Padding" src="' + FCK_SPACER_PATH + '" /></td>' +
+				'</tr>' +
+			'</table>' ;
+	}
+
+
+	// Events Handlers
+
+	oField.SpecialCombo = this ;
+	
+	oField.onmouseover	= FCKSpecialCombo_OnMouseOver ;
+	oField.onmouseout	= FCKSpecialCombo_OnMouseOut ;
+	oField.onclick		= FCKSpecialCombo_OnClick ;
+	
+	FCKTools.DisableSelection( this._Panel.Document.body ) ;
+}
+
+function FCKSpecialCombo_Cleanup()
+{
+	this._LabelEl = null ;
+	this._OuterTable = null ;
+	this._ItemsHolderEl = null ;
+	this._PanelBox = null ;
+	
+	if ( this.Items )
+	{
+		for ( var key in this.Items )
+			this.Items[key] = null ;
+	}
+}	
+
+function FCKSpecialCombo_OnMouseOver()
+{
+	if ( this.SpecialCombo.Enabled )
+	{
+		switch ( this.SpecialCombo.Style )
+		{
+		case FCK_TOOLBARITEM_ONLYICON :
+			this.className = 'TB_Button_On_Over';
+			break ;
+		case FCK_TOOLBARITEM_ONLYTEXT :
+			this.className = 'TB_Button_On_Over';
+			break ;
+		case FCK_TOOLBARITEM_ICONTEXT :
+			this.className = 'SC_Field SC_FieldOver' ;
+			break ;
+		}
+	}
+}
+	
+function FCKSpecialCombo_OnMouseOut()
+{
+	switch ( this.SpecialCombo.Style )
+	{
+		case FCK_TOOLBARITEM_ONLYICON :
+			this.className = 'TB_Button_Off';
+			break ;
+		case FCK_TOOLBARITEM_ONLYTEXT :
+			this.className = 'TB_Button_Off';
+			break ;
+		case FCK_TOOLBARITEM_ICONTEXT :
+			this.className='SC_Field' ;
+			break ;
+	}
+}
+	
+function FCKSpecialCombo_OnClick( e )
+{
+	// For Mozilla we must stop the event propagation to avoid it hiding 
+	// the panel because of a click outside of it.
+//	if ( e )
+//	{
+//		e.stopPropagation() ;
+//		FCKPanelEventHandlers.OnDocumentClick( e ) ;
+//	}
+	
+	var oSpecialCombo = this.SpecialCombo ;
+
+	if ( oSpecialCombo.Enabled )
+	{
+		var oPanel			= oSpecialCombo._Panel ;
+		var oPanelBox		= oSpecialCombo._PanelBox ;
+		var oItemsHolder	= oSpecialCombo._ItemsHolderEl ;
+		var iMaxHeight		= oSpecialCombo.PanelMaxHeight ;
+		
+		if ( oSpecialCombo.OnBeforeClick )
+			oSpecialCombo.OnBeforeClick( oSpecialCombo ) ;
+
+		// This is a tricky thing. We must call the "Load" function, otherwise
+		// it will not be possible to retrieve "oItemsHolder.offsetHeight" (IE only).
+		if ( FCKBrowserInfo.IsIE )
+			oPanel.Preload( 0, this.offsetHeight, this ) ;
+
+		if ( oItemsHolder.offsetHeight > iMaxHeight )
+//		{
+			oPanelBox.style.height = iMaxHeight + 'px' ;
+
+//			if ( FCKBrowserInfo.IsGecko )
+//				oPanelBox.style.overflow = '-moz-scrollbars-vertical' ;
+//		}
+		else
+			oPanelBox.style.height = '' ;
+			
+//		oPanel.PanelDiv.style.width = oSpecialCombo.PanelWidth + 'px' ;
+
+		oPanel.Show( 0, this.offsetHeight, this ) ;
+	}
+
+//	return false ;
+}
+
+/* 
+Sample Combo Field HTML output:
+
+<div class="SC_Field" style="width: 80px;">
+	<table width="100%" cellpadding="0" cellspacing="0" style="table-layout: fixed;">
+		<tbody>
+			<tr>
+				<td class="SC_FieldLabel"><label>&nbsp;</label></td>
+				<td class="SC_FieldButton">&nbsp;</td>
+			</tr>
+		</tbody>
+	</table>
+</div>
+*/
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbar.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbar.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbar.js	(revision 389)
@@ -0,0 +1,116 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktoolbar.js
+ * 	FCKToolbar Class: represents a toolbar in the toolbarset. It is a group of
+ * 	toolbar items.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKToolbar = function()
+{
+	this.Items = new Array() ;
+
+	if ( FCK.IECleanup )
+		FCK.IECleanup.AddItem( this, FCKToolbar_Cleanup ) ;
+}
+
+FCKToolbar.prototype.AddItem = function( item )
+{
+	return this.Items[ this.Items.length ] = item ;
+}
+
+FCKToolbar.prototype.AddButton = function( name, label, tooltip, iconPathOrStripInfoArrayOrIndex, style, state )
+{
+	if ( typeof( iconPathOrStripInfoArrayOrIndex ) == 'number' )
+		 iconPathOrStripInfoArrayOrIndex = [ this.DefaultIconsStrip, this.DefaultIconSize, iconPathOrStripInfoArrayOrIndex ] ;
+
+	var oButton = new FCKToolbarButtonUI( name, label, tooltip, iconPathOrStripInfoArrayOrIndex, style, state ) ;
+	oButton._FCKToolbar = this ;
+	oButton.OnClick = FCKToolbar_OnItemClick ;
+	
+	return this.AddItem( oButton ) ;
+}
+
+function FCKToolbar_OnItemClick( item )
+{
+	var oToolbar = item._FCKToolbar ;
+	
+	if ( oToolbar.OnItemClick )
+		oToolbar.OnItemClick( oToolbar, item ) ;
+}
+
+FCKToolbar.prototype.AddSeparator = function()
+{
+	this.AddItem( new FCKToolbarSeparator() ) ;
+}
+
+FCKToolbar.prototype.Create = function( parentElement )
+{
+	if ( this.MainElement )
+	{
+//		this._Cleanup() ;
+		if ( this.MainElement.parentNode )
+			this.MainElement.parentNode.removeChild( this.MainElement ) ;
+		this.MainElement = null ;
+	}
+
+	var oDoc = FCKTools.GetElementDocument( parentElement ) ;
+
+	var e = this.MainElement = oDoc.createElement( 'table' ) ;
+	e.className = 'TB_Toolbar' ;
+	e.style.styleFloat = e.style.cssFloat = ( FCKLang.Dir == 'ltr' ? 'left' : 'right' ) ;
+	e.dir = FCKLang.Dir ;
+	e.cellPadding = 0 ;
+	e.cellSpacing = 0 ;
+	
+	this.RowElement = e.insertRow(-1) ;
+	
+	// Insert the start cell.
+	var eCell ;
+	
+	if ( !this.HideStart )
+	{
+		eCell = this.RowElement.insertCell(-1) ;
+		eCell.appendChild( oDoc.createElement( 'div' ) ).className = 'TB_Start' ;
+	}
+	
+	for ( var i = 0 ; i < this.Items.length ; i++ )
+	{
+		this.Items[i].Create( this.RowElement.insertCell(-1) ) ;
+	}
+	
+	// Insert the ending cell.
+	if ( !this.HideEnd )
+	{
+		eCell = this.RowElement.insertCell(-1) ;
+		eCell.appendChild( oDoc.createElement( 'div' ) ).className = 'TB_End' ;
+	}
+
+	parentElement.appendChild( e ) ;
+}
+
+function FCKToolbar_Cleanup()
+{
+	this.MainElement = null ;
+	this.RowElement = null ;
+}
+
+var FCKToolbarSeparator = function()
+{}
+
+FCKToolbarSeparator.prototype.Create = function( parentElement )
+{
+	FCKTools.AppendElement( parentElement, 'div' ).className = 'TB_Separator' ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js	(revision 389)
@@ -0,0 +1,99 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktoolbarstylecombo.js
+ * 	FCKToolbarPanelButton Class: Handles the Fonts combo selector.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKToolbarStyleCombo = function( tooltip, style )
+{
+	this.CommandName = 'Style' ;
+	this.Label		= this.GetLabel() ;
+	this.Tooltip	= tooltip ? tooltip : this.Label ;
+	this.Style		= style ? style : FCK_TOOLBARITEM_ICONTEXT ;
+}
+
+// Inherit from FCKToolbarSpecialCombo.
+FCKToolbarStyleCombo.prototype = new FCKToolbarSpecialCombo ;
+
+
+FCKToolbarStyleCombo.prototype.GetLabel = function()
+{
+	return FCKLang.Style ;
+}
+
+FCKToolbarStyleCombo.prototype.CreateItems = function( targetSpecialCombo )
+{
+	var oTargetDoc = targetSpecialCombo._Panel.Document ;
+	
+	// Add the Editor Area CSS to the panel so the style classes are previewed correctly.
+	FCKTools.AppendStyleSheet( oTargetDoc, FCKConfig.ToolbarComboPreviewCSS ) ;
+	oTargetDoc.body.className += ' ForceBaseFont' ;
+
+	// For some reason Gecko is blocking inside the "RefreshVisibleItems" function.
+	if ( ! FCKBrowserInfo.IsGecko )
+		targetSpecialCombo.OnBeforeClick = this.RefreshVisibleItems ;
+
+	// Add the styles to the special combo.
+	var aCommandStyles = FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).Styles ;
+	for ( var s in aCommandStyles )
+	{
+		var oStyle = aCommandStyles[s] ;
+		var oItem ;
+		
+		if ( oStyle.IsObjectElement )
+			oItem = targetSpecialCombo.AddItem( s, s ) ;
+		else
+			oItem = targetSpecialCombo.AddItem( s, oStyle.GetOpenerTag() + s + oStyle.GetCloserTag() ) ;
+			
+		oItem.Style = oStyle ;
+	}
+}
+
+FCKToolbarStyleCombo.prototype.RefreshActiveItems = function( targetSpecialCombo )
+{
+	// Clear the actual selection.
+	targetSpecialCombo.DeselectAll() ;
+	
+	// Get the active styles.
+	var aStyles = FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).GetActiveStyles() ;
+	
+	if ( aStyles.length > 0 )
+	{
+		// Select the active styles in the combo.
+		for ( var i = 0 ; i < aStyles.length ; i++ )
+			targetSpecialCombo.SelectItem( aStyles[i].Name ) ;
+
+		// Set the combo label to the first style in the collection.
+		targetSpecialCombo.SetLabelById( aStyles[0].Name ) ;
+	}
+	else
+		targetSpecialCombo.SetLabel('') ;
+}
+
+FCKToolbarStyleCombo.prototype.RefreshVisibleItems = function( targetSpecialCombo )
+{
+	if ( FCKSelection.GetType() == 'Control' )
+		var sTagName = FCKSelection.GetSelectedElement().tagName ;
+
+	for ( var i in targetSpecialCombo.Items )
+	{
+		var oItem = targetSpecialCombo.Items[i] ;
+		if ( ( sTagName && oItem.Style.Element == sTagName ) || ( ! sTagName && ! oItem.Style.IsObjectElement ) )
+			oItem.style.display = '' ;
+		else
+			oItem.style.display = 'none' ;	// For some reason Gecko is blocking here.
+	}
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckevents.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckevents.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckevents.js	(revision 389)
@@ -0,0 +1,51 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckevents.js
+ * 	FCKEvents Class: used to handle events is a advanced way.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKEvents ;
+
+FCKEvents = function( eventsOwner )
+{
+	this.Owner = eventsOwner ;
+	this.RegisteredEvents = new Object() ;
+}
+
+FCKEvents.prototype.AttachEvent = function( eventName, functionPointer )
+{
+	var aTargets ;
+
+	if ( !( aTargets = this.RegisteredEvents[ eventName ] ) ) 
+		this.RegisteredEvents[ eventName ] = [ functionPointer ] ;
+	else
+		aTargets.push( functionPointer ) ;
+}
+
+FCKEvents.prototype.FireEvent = function( eventName, params )
+{
+	var bReturnValue = true ;
+
+	var oCalls = this.RegisteredEvents[ eventName ] ;
+
+	if ( oCalls )
+	{
+		for ( var i = 0 ; i < oCalls.length ; i++ )
+			bReturnValue = ( oCalls[ i ]( this.Owner, params ) && bReturnValue ) ;
+	}
+
+	return bReturnValue ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js	(revision 389)
@@ -0,0 +1,48 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktoolbarfontsizecombo.js
+ * 	FCKToolbarPanelButton Class: Handles the Fonts combo selector.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKToolbarFontSizeCombo = function( tooltip, style )
+{
+	this.CommandName	= 'FontSize' ;
+	this.Label		= this.GetLabel() ;
+	this.Tooltip	= tooltip ? tooltip : this.Label ;
+	this.Style		= style ? style : FCK_TOOLBARITEM_ICONTEXT ;
+}
+
+// Inherit from FCKToolbarSpecialCombo.
+FCKToolbarFontSizeCombo.prototype = new FCKToolbarSpecialCombo ;
+
+
+FCKToolbarFontSizeCombo.prototype.GetLabel = function()
+{
+	return FCKLang.FontSize ;
+}
+
+FCKToolbarFontSizeCombo.prototype.CreateItems = function( targetSpecialCombo )
+{
+	targetSpecialCombo.FieldWidth = 70 ;
+	
+	var aSizes = FCKConfig.FontSizes.split(';') ;
+	
+	for ( var i = 0 ; i < aSizes.length ; i++ )
+	{
+		var aSizeParts = aSizes[i].split('/') ;
+		this._Combo.AddItem( aSizeParts[0], '<font size="' + aSizeParts[0] + '">' + aSizeParts[1] + '</font>', aSizeParts[1] ) ;
+	}
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckiecleanup.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckiecleanup.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckiecleanup.js	(revision 389)
@@ -0,0 +1,51 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckiecleanup.js
+ * 	FCKIECleanup Class: a generic class used as a tool to remove IE leaks.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+
+var	FCKIECleanup = function( attachWindow )
+{
+
+	this.Items = new Array() ;
+
+	attachWindow._FCKCleanupObj = this ;
+	attachWindow.attachEvent( 'onunload', FCKIECleanup_Cleanup ) ;	
+}
+	
+FCKIECleanup.prototype.AddItem = function( dirtyItem, cleanupFunction )
+{
+	this.Items.push( [ dirtyItem, cleanupFunction ] ) ;
+}
+	
+function FCKIECleanup_Cleanup()
+{
+	var aItems = this._FCKCleanupObj.Items ;
+	var iLenght = aItems.length ;
+
+	for ( var i = 0 ; i < iLenght ; i++ )
+	{
+		var oItem = aItems[i] ;
+		oItem[1].call( oItem[0] ) ;
+		aItems[i] = null ;
+	}
+	
+	this._FCKCleanupObj = null ;
+	
+	if ( CollectGarbage )
+		CollectGarbage() ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckxml_gecko.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckxml_gecko.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckxml_gecko.js	(revision 389)
@@ -0,0 +1,66 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckxml_gecko.js
+ * 	FCKXml Class: class to load and manipulate XML files.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKXml = function()
+{}
+
+FCKXml.prototype.LoadUrl = function( urlToCall )
+{
+	var oFCKXml = this ;
+
+	var oXmlHttp = FCKTools.CreateXmlObject( 'XmlHttp' ) ;
+	oXmlHttp.open( "GET", urlToCall, false ) ;
+	oXmlHttp.send( null ) ;
+	
+	if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 )
+		this.DOMDocument = oXmlHttp.responseXML ;
+	else if ( oXmlHttp.status == 0 && oXmlHttp.readyState == 4 )
+		this.DOMDocument = oXmlHttp.responseXML ;
+	else
+		alert( 'Error loading "' + urlToCall + '"' ) ;
+}
+
+FCKXml.prototype.SelectNodes = function( xpath, contextNode )
+{
+	var aNodeArray = new Array();
+
+	var xPathResult = this.DOMDocument.evaluate( xpath, contextNode ? contextNode : this.DOMDocument, 
+			this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), XPathResult.ORDERED_NODE_ITERATOR_TYPE, null) ;
+	if ( xPathResult ) 
+	{
+		var oNode = xPathResult.iterateNext() ;
+		while( oNode )
+		{
+			aNodeArray[aNodeArray.length] = oNode ;
+			oNode = xPathResult.iterateNext();
+		}
+	} 
+	return aNodeArray ;
+}
+
+FCKXml.prototype.SelectSingleNode = function( xpath, contextNode ) 
+{
+	var xPathResult = this.DOMDocument.evaluate( xpath, contextNode ? contextNode : this.DOMDocument,
+			this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), 9, null);
+
+	if ( xPathResult && xPathResult.singleNodeValue )
+		return xPathResult.singleNodeValue ;
+	else	
+		return null ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckcontextmenu.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckcontextmenu.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckcontextmenu.js	(revision 389)
@@ -0,0 +1,123 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckcontextmenu.js
+ * 	FCKContextMenu Class: renders an control a context menu.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKContextMenu = function( parentWindow, mouseClickWindow, langDir )
+{
+	var oPanel = this._Panel = new FCKPanel( parentWindow, true ) ;
+	oPanel.AppendStyleSheet( FCKConfig.SkinPath + 'fck_editor.css' ) ;
+	oPanel.IsContextMenu = true ;
+	
+	var oMenuBlock = this._MenuBlock = new FCKMenuBlock() ;
+	oMenuBlock.Panel = oPanel ;
+	oMenuBlock.OnClick = FCKTools.CreateEventListener( FCKContextMenu_MenuBlock_OnClick, this ) ;
+	
+	this._Redraw = true ;
+	
+	this.SetMouseClickWindow( mouseClickWindow || parentWindow ) ;
+}
+
+
+FCKContextMenu.prototype.SetMouseClickWindow = function( mouseClickWindow )
+{
+	if ( !FCKBrowserInfo.IsIE )
+	{
+		this._Document = mouseClickWindow.document ;
+		this._Document.addEventListener( 'contextmenu', FCKContextMenu_Document_OnContextMenu, false ) ;
+	}
+}
+
+FCKContextMenu.prototype.AddItem = function( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled )
+{
+	var oItem = this._MenuBlock.AddItem( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled) ;
+	this._Redraw = true ;
+	return oItem ;
+}
+
+FCKContextMenu.prototype.AddSeparator = function()
+{
+	this._MenuBlock.AddSeparator() ;
+	this._Redraw = true ;
+}
+
+FCKContextMenu.prototype.RemoveAllItems = function()
+{
+	this._MenuBlock.RemoveAllItems() ;
+	this._Redraw = true ;
+}
+
+FCKContextMenu.prototype.AttachToElement = function( element )
+{
+	if ( FCKBrowserInfo.IsIE )
+		FCKTools.AddEventListenerEx( element, 'contextmenu', FCKContextMenu_AttachedElement_OnContextMenu, this ) ;
+	else
+		element._FCKContextMenu = this ;
+
+//	element.onmouseup		= FCKContextMenu_AttachedElement_OnMouseUp ;
+}
+
+function FCKContextMenu_Document_OnContextMenu( e )
+{
+	var el = e.target ;
+	
+	while ( el )
+	{
+		if ( el._FCKContextMenu )
+		{
+			FCKTools.CancelEvent( e ) ;
+			FCKContextMenu_AttachedElement_OnContextMenu( e, el._FCKContextMenu, el ) ;
+		}
+		el = el.parentNode ;
+	}
+}
+
+function FCKContextMenu_AttachedElement_OnContextMenu( ev, fckContextMenu, el )
+{
+//	var iButton = e ? e.which - 1 : event.button ;
+
+//	if ( iButton != 2 )
+//		return ;
+
+	var eTarget = el || this ;
+
+	if ( fckContextMenu.OnBeforeOpen )
+		fckContextMenu.OnBeforeOpen.call( fckContextMenu, eTarget ) ;
+
+	if ( fckContextMenu._MenuBlock.Count() == 0 )
+		return false ;
+	
+	if ( fckContextMenu._Redraw )
+	{
+		fckContextMenu._MenuBlock.Create( fckContextMenu._Panel.MainNode ) ;
+		fckContextMenu._Redraw = false ;
+	}
+
+	fckContextMenu._Panel.Show( 
+		ev.pageX || ev.screenX, 
+		ev.pageY || ev.screenY, 
+		ev.currentTarget || null
+	) ;
+	
+	return false ;
+}
+
+function FCKContextMenu_MenuBlock_OnClick( menuItem, contextMenu )
+{
+	contextMenu._Panel.Hide() ;
+	FCKTools.RunFunction( contextMenu.OnItemClick, contextMenu, menuItem ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckstylesloader.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckstylesloader.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckstylesloader.js	(revision 389)
@@ -0,0 +1,84 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckstylesloader.js
+ * 	FCKStylesLoader Class: this class define objects that are responsible
+ * 	for loading the styles defined in the XML file.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKStylesLoader = function()
+{
+	this.Styles = new Object() ;
+	this.StyleGroups = new Object() ;
+	this.Loaded = false ;
+	this.HasObjectElements = false ;
+}
+
+FCKStylesLoader.prototype.Load = function( stylesXmlUrl )
+{
+	// Load the XML file into a FCKXml object.
+	var oXml = new FCKXml() ;
+	oXml.LoadUrl( stylesXmlUrl ) ;
+	
+	// Get the "Style" nodes defined in the XML file.
+	var aStyleNodes = oXml.SelectNodes( 'Styles/Style' ) ;
+	
+	// Add each style to our "Styles" collection.
+	for ( var i = 0 ; i < aStyleNodes.length ; i++ )
+	{
+		var sElement = aStyleNodes[i].attributes.getNamedItem('element').value.toUpperCase() ;
+	
+		// Create the style definition object.
+		var oStyleDef = new FCKStyleDef( aStyleNodes[i].attributes.getNamedItem('name').value, sElement ) ;
+		
+		if ( oStyleDef.IsObjectElement )
+			this.HasObjectElements = true ;
+		
+		// Get the attributes defined for the style (if any).
+		var aAttNodes = oXml.SelectNodes( 'Attribute', aStyleNodes[i] ) ;
+		
+		// Add the attributes to the style definition object.
+		for ( var j = 0 ; j < aAttNodes.length ; j++ )
+		{
+			var sAttName	= aAttNodes[j].attributes.getNamedItem('name').value ;
+			var sAttValue	= aAttNodes[j].attributes.getNamedItem('value').value ;
+
+			// IE changes the "style" attribute value when applied to an element
+			// so we must get the final resulting value (for comparision issues).
+			if ( sAttName.toLowerCase() == 'style' )
+			{
+				var oTempE = document.createElement( 'SPAN' ) ;
+				oTempE.style.cssText = sAttValue ;
+				sAttValue = oTempE.style.cssText ;
+			}
+			
+			oStyleDef.AddAttribute( sAttName, sAttValue ) ;
+		}
+
+		// Add the style to the "Styles" collection using it's name as the key.
+		this.Styles[ oStyleDef.Name ] = oStyleDef ;
+		
+		// Add the style to the "StyleGroups" collection.
+		var aGroup = this.StyleGroups[sElement] ;
+		if ( aGroup == null )
+		{
+			this.StyleGroups[sElement] = new Array() ;
+			aGroup = this.StyleGroups[sElement] ;
+		}
+		aGroup[aGroup.length] = oStyleDef ;
+	}
+	
+	this.Loaded = true ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckeditingarea.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckeditingarea.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckeditingarea.js	(revision 389)
@@ -0,0 +1,190 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckeditingarea.js
+ * 	FCKEditingArea Class: renders an editable area.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+/**
+ * @constructor
+ * @param {String} targetElement The element that will hold the editing area. Any child element present in the target will be deleted.
+ */
+var FCKEditingArea = function( targetElement )
+{
+	this.TargetElement = targetElement ;
+	this.Mode = FCK_EDITMODE_WYSIWYG ;
+
+	if ( FCK.IECleanup )
+		FCK.IECleanup.AddItem( this, FCKEditingArea_Cleanup ) ;
+}
+
+
+/**
+ * @param {String} html The complete HTML for the page, including DOCTYPE and the <html> tag.
+ */
+FCKEditingArea.prototype.Start = function( html, secondCall )
+{
+	var eTargetElement	= this.TargetElement ;
+	var oTargetDocument	= FCKTools.GetElementDocument( eTargetElement ) ;
+	
+	// Remove all child nodes from the target.
+	while( eTargetElement.childNodes.length > 0 )
+		eTargetElement.removeChild( eTargetElement.childNodes[0] ) ;
+
+	if ( this.Mode == FCK_EDITMODE_WYSIWYG )
+	{
+		if ( FCKBrowserInfo.IsGecko )
+			html = html.replace( /(<body[^>]*>)\s*(<\/body>)/i, '$1' + GECKO_BOGUS + '$2' ) ;
+	
+		// Create the editing area IFRAME.
+		var oIFrame = this.IFrame = oTargetDocument.createElement( 'iframe' ) ;
+		oIFrame.src = 'javascript:void(0)' ;
+		oIFrame.frameBorder = 0 ;
+		oIFrame.width = oIFrame.height = '100%' ;
+		
+		// Append the new IFRAME to the target.
+		eTargetElement.appendChild( oIFrame ) ;
+		
+		// IE has a bug with the <base> tag... it must have a </base> closer,
+		// otherwise the all sucessive tags will be set as children nodes of the <base>.
+		if ( FCKBrowserInfo.IsIE )
+			html = html.replace( /(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi, '$1></base>' ) ;
+
+		// Get the window and document objects used to interact with the newly created IFRAME.
+		this.Window = oIFrame.contentWindow ;
+		
+		// IE: Avoid JavaScript errors thrown by the editing are source (like tags events).
+		// TODO: This error handler is not being fired.
+		// this.Window.onerror = function() { alert( 'Error!' ) ; return true ; }
+
+		var oDoc = this.Document = this.Window.document ;
+		
+		oDoc.open() ;
+		oDoc.write( html ) ;
+		oDoc.close() ;
+		
+		// Firefox 1.0.x is buggy... ohh yes... so let's do it two times and it
+		// will magicaly work.
+		if ( FCKBrowserInfo.IsGecko10 && !secondCall )
+		{
+			this.Start( html, true ) ;
+			return ;
+		}
+		
+		this.Window._FCKEditingArea = this ;
+		
+		// FF 1.0.x is buggy... we must wait a lot to enable editing because
+		// sometimes the content simply disappears, for example when pasting
+		// "bla1!<img src='some_url'>!bla2" in the source and then switching
+		// back to design.
+		if ( FCKBrowserInfo.IsGecko10 )
+			this.Window.setTimeout( FCKEditingArea_CompleteStart, 500 ) ;
+		else
+			FCKEditingArea_CompleteStart.call( this.Window ) ;
+	}
+	else
+	{
+		var eTextarea = this.Textarea = oTargetDocument.createElement( 'textarea' ) ; 
+		eTextarea.className = 'SourceField' ;
+		eTextarea.dir = 'ltr' ;
+		eTextarea.style.width = eTextarea.style.height = '100%' ;
+		eTextarea.style.border = 'none' ;
+		eTargetElement.appendChild( eTextarea ) ;
+
+		eTextarea.value = html  ;
+
+		// Fire the "OnLoad" event.
+		FCKTools.RunFunction( this.OnLoad ) ;
+	}
+}
+
+// "this" here is FCKEditingArea.Window 
+function FCKEditingArea_CompleteStart()
+{
+	// Of Firefox, the DOM takes a little to become available. So we must wait for it in a loop.
+	if ( !this.document.body )
+	{
+		this.setTimeout( FCKEditingArea_CompleteStart, 50 ) ;
+		return ;
+	}
+	
+	var oEditorArea = this._FCKEditingArea ;
+	oEditorArea.MakeEditable() ;
+	
+	// Fire the "OnLoad" event.
+	FCKTools.RunFunction( oEditorArea.OnLoad ) ;
+}
+
+FCKEditingArea.prototype.MakeEditable = function()
+{
+	var oDoc = this.Document ;
+
+	if ( FCKBrowserInfo.IsIE )
+		oDoc.body.contentEditable = true ;
+	else
+	{
+		try
+		{
+			oDoc.designMode = 'on' ;
+
+			// Tell Gecko to use or not the <SPAN> tag for the bold, italic and underline.
+			oDoc.execCommand( 'useCSS', false, !FCKConfig.GeckoUseSPAN ) ;
+
+			// Analysing Firefox 1.5 source code, it seams that there is support for a 
+			// "insertBrOnReturn" command. Applying it gives no error, but it doesn't 
+			// gives the same behavior that you have with IE. It works only if you are
+			// already inside a paragraph and it doesn't render correctly in the first enter.
+			// oDoc.execCommand( 'insertBrOnReturn', false, false ) ;
+
+			// Tell Gecko (Firefox 1.5+) to enable or not live resizing of objects (by Alfonso Martinez)
+			oDoc.execCommand( 'enableObjectResizing', false, !FCKConfig.DisableObjectResizing ) ;
+			
+			// Disable the standard table editing features of Firefox.
+			oDoc.execCommand( 'enableInlineTableEditing', false, !FCKConfig.DisableFFTableHandles ) ;
+		}
+		catch (e) {}
+	}
+}
+
+FCKEditingArea.prototype.Focus = function()
+{
+	try
+	{
+		if ( this.Mode == FCK_EDITMODE_WYSIWYG )
+		{
+			if ( FCKBrowserInfo.IsSafari )
+				this.IFrame.focus() ;
+			else
+				this.Window.focus() ;
+		}
+		else
+			this.Textarea.focus() ;
+	}
+	catch(e) {}
+}
+
+function FCKEditingArea_Cleanup()
+{
+	this.TargetElement = null ;
+	this.IFrame = null ;
+	this.Document = null ;
+	this.Textarea = null ;
+	
+	if ( this.Window )
+	{
+		this.Window._FCKEditingArea = null ;
+		this.Window = null ;
+	}
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckxml_ie.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckxml_ie.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckxml_ie.js	(revision 389)
@@ -0,0 +1,78 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckxml_ie.js
+ * 	FCKXml Class: class to load and manipulate XML files.
+ * 	(IE specific implementation)
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKXml = function()
+{
+	this.Error = false ;
+}
+
+FCKXml.prototype.LoadUrl = function( urlToCall )
+{
+	this.Error = false ;
+
+	var oXmlHttp = FCKTools.CreateXmlObject( 'XmlHttp' ) ;
+
+	if ( !oXmlHttp )
+	{
+		this.Error = true ;
+		return ;
+	}
+
+	oXmlHttp.open( "GET", urlToCall, false ) ;
+	
+	oXmlHttp.send( null ) ;
+	
+	if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 )
+		this.DOMDocument = oXmlHttp.responseXML ;
+	else if ( oXmlHttp.status == 0 && oXmlHttp.readyState == 4 )
+	{
+		this.DOMDocument = FCKTools.CreateXmlObject( 'DOMDocument' ) ;
+		this.DOMDocument.async = false ;
+		this.DOMDocument.resolveExternals = false ;
+		this.DOMDocument.loadXML( oXmlHttp.responseText ) ;
+	}
+	else
+	{
+		this.Error = true ;
+		alert( 'Error loading "' + urlToCall + '"' ) ;
+	}
+}
+
+FCKXml.prototype.SelectNodes = function( xpath, contextNode )
+{
+	if ( this.Error )
+		return new Array() ;
+
+	if ( contextNode )
+		return contextNode.selectNodes( xpath ) ;
+	else
+		return this.DOMDocument.selectNodes( xpath ) ;
+}
+
+FCKXml.prototype.SelectSingleNode = function( xpath, contextNode ) 
+{
+	if ( this.Error )
+		return ;
+		
+	if ( contextNode )
+		return contextNode.selectSingleNode( xpath ) ;
+	else
+		return this.DOMDocument.selectSingleNode( xpath ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js	(revision 389)
@@ -0,0 +1,87 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktoolbarpanelbutton.js
+ * 	FCKToolbarPanelButton Class: represents a special button in the toolbar
+ * 	that shows a panel when pressed.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKToolbarPanelButton = function( commandName, label, tooltip, style, icon )
+{
+	this.CommandName = commandName ;
+
+	var oIcon ;
+	
+	if ( icon == null )
+		oIcon = FCKConfig.SkinPath + 'toolbar/' + commandName.toLowerCase() + '.gif' ;
+	else if ( typeof( icon ) == 'number' )
+		oIcon = [ FCKConfig.SkinPath + 'fck_strip.gif', 16, icon ] ;
+	
+	var oUIButton = this._UIButton = new FCKToolbarButtonUI( commandName, label, tooltip, oIcon, style ) ;
+	oUIButton._FCKToolbarPanelButton = this ;
+	oUIButton.ShowArrow = true ;
+	oUIButton.OnClick = FCKToolbarPanelButton_OnButtonClick ;
+}
+
+FCKToolbarPanelButton.prototype.TypeName = 'FCKToolbarPanelButton' ;
+
+FCKToolbarPanelButton.prototype.Create = function( parentElement )
+{
+	parentElement.className += 'Menu' ;
+
+	this._UIButton.Create( parentElement ) ;
+	
+	var oPanel = FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName )._Panel ;
+	oPanel._FCKToolbarPanelButton = this ;
+	
+	var eLineDiv = oPanel.Document.body.appendChild( oPanel.Document.createElement( 'div' ) ) ;
+	eLineDiv.style.position = 'absolute' ;
+	eLineDiv.style.top = '0px' ;
+	
+	var eLine = this.LineImg = eLineDiv.appendChild( oPanel.Document.createElement( 'IMG' ) ) ;
+	eLine.className = 'TB_ConnectionLine' ;
+//	eLine.style.backgroundColor = 'Red' ;
+	eLine.src = FCK_SPACER_PATH ;
+
+	oPanel.OnHide = FCKToolbarPanelButton_OnPanelHide ;
+}
+
+/*
+	Events
+*/
+
+function FCKToolbarPanelButton_OnButtonClick( toolbarButton )
+{
+	var oButton = this._FCKToolbarPanelButton ;
+	var e = oButton._UIButton.MainElement ;
+	
+	oButton._UIButton.ChangeState( FCK_TRISTATE_ON ) ;
+	
+	oButton.LineImg.style.width = ( e.offsetWidth - 2 ) + 'px' ;
+
+	FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( oButton.CommandName ).Execute( 0, e.offsetHeight - 1, e ) ; // -1 to be over the border
+}
+
+function FCKToolbarPanelButton_OnPanelHide()
+{
+	var oMenuButton = this._FCKToolbarPanelButton ;
+	oMenuButton._UIButton.ChangeState( FCK_TRISTATE_OFF ) ;
+}
+
+// The Panel Button works like a normal button so the refresh state functions
+// defined for the normal button can be reused here.
+FCKToolbarPanelButton.prototype.RefreshState	= FCKToolbarButton.prototype.RefreshState ;
+FCKToolbarPanelButton.prototype.Enable			= FCKToolbarButton.prototype.Enable ;
+FCKToolbarPanelButton.prototype.Disable			= FCKToolbarButton.prototype.Disable ;
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckstyledef.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckstyledef.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckstyledef.js	(revision 389)
@@ -0,0 +1,55 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckstyledef.js
+ * 	FCKStyleDef Class: represents a single style definition.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKStyleDef = function( name, element )
+{
+	this.Name = name ;
+	this.Element = element.toUpperCase() ;
+	this.IsObjectElement = FCKRegexLib.ObjectElements.test( this.Element ) ;
+	this.Attributes = new Object() ;
+}
+
+FCKStyleDef.prototype.AddAttribute = function( name, value )
+{
+	this.Attributes[ name ] = value ;
+}
+
+FCKStyleDef.prototype.GetOpenerTag = function()
+{
+	var s = '<' + this.Element ;
+	
+	for ( var a in this.Attributes )
+		s += ' ' + a + '="' + this.Attributes[a] + '"' ;
+	
+	return s + '>' ;
+}
+
+FCKStyleDef.prototype.GetCloserTag = function()
+{
+	return '</' + this.Element + '>' ;
+}
+
+
+FCKStyleDef.prototype.RemoveFromSelection = function()
+{
+	if ( FCKSelection.GetType() == 'Control' )
+		this._RemoveMe( FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement() ) ;
+	else
+		this._RemoveMe( FCK.ToolbarSet.CurrentInstance.Selection.GetParentElement() ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckmenublock.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckmenublock.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fckmenublock.js	(revision 389)
@@ -0,0 +1,140 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckmenublock.js
+ * 	Renders a list of menu items.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+
+var FCKMenuBlock = function()
+{
+	this._Items	= new Array() ;
+}
+
+
+FCKMenuBlock.prototype.Count = function()
+{
+	return this._Items.length ;
+}
+
+FCKMenuBlock.prototype.AddItem = function( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled )
+{
+	var oItem = new FCKMenuItem( this, name, label, iconPathOrStripInfoArrayOrIndex, isDisabled ) ;
+	
+	oItem.OnClick		= FCKTools.CreateEventListener( FCKMenuBlock_Item_OnClick, this ) ;
+	oItem.OnActivate	= FCKTools.CreateEventListener( FCKMenuBlock_Item_OnActivate, this ) ;
+	
+	this._Items.push( oItem ) ;
+
+	return oItem ;
+}
+
+FCKMenuBlock.prototype.AddSeparator = function()
+{
+	this._Items.push( new FCKMenuSeparator() ) ;
+}
+
+FCKMenuBlock.prototype.RemoveAllItems = function()
+{
+	this._Items = new Array() ;
+	
+	var eItemsTable = this._ItemsTable ;
+	if ( eItemsTable )
+	{
+		while ( eItemsTable.rows.length > 0 )
+			eItemsTable.deleteRow( 0 ) ;
+	}
+}
+
+FCKMenuBlock.prototype.Create = function( parentElement )
+{
+	if ( !this._ItemsTable )
+	{
+		if ( FCK.IECleanup )
+			FCK.IECleanup.AddItem( this, FCKMenuBlock_Cleanup ) ;
+
+		this._Window = FCKTools.GetElementWindow( parentElement ) ;
+
+		var oDoc = FCKTools.GetElementDocument( parentElement ) ;
+
+		var eTable = parentElement.appendChild( oDoc.createElement( 'table' ) ) ;
+		eTable.cellPadding = 0 ;
+		eTable.cellSpacing = 0 ;
+
+		FCKTools.DisableSelection( eTable ) ;
+		
+		var oMainElement = eTable.insertRow(-1).insertCell(-1) ;
+		oMainElement.className = 'MN_Menu' ;
+	
+		var eItemsTable = this._ItemsTable = oMainElement.appendChild( oDoc.createElement( 'table' ) ) ;
+		eItemsTable.cellPadding = 0 ;
+		eItemsTable.cellSpacing = 0 ;		
+	}
+	
+	for ( var i = 0 ; i < this._Items.length ; i++ )
+		this._Items[i].Create( this._ItemsTable ) ;
+}
+
+/* Events */
+
+function FCKMenuBlock_Item_OnClick( clickedItem, menuBlock )
+{
+	FCKTools.RunFunction( menuBlock.OnClick, menuBlock, [ clickedItem ] ) ;
+}
+
+function FCKMenuBlock_Item_OnActivate( menuBlock )
+{
+	var oActiveItem = menuBlock._ActiveItem ;
+	
+	if ( oActiveItem && oActiveItem != this )
+	{
+		// Set the focus to this menu block window (to fire OnBlur on opened panels).
+		if ( !FCKBrowserInfo.IsIE && oActiveItem.HasSubMenu && !this.HasSubMenu )
+			menuBlock._Window.focus() ;
+
+		oActiveItem.Deactivate() ;		
+	}
+
+	menuBlock._ActiveItem = this ;
+}
+
+function FCKMenuBlock_Cleanup()
+{
+	this._Window = null ;
+	this._ItemsTable = null ;
+}
+
+// ################# //
+
+var FCKMenuSeparator = function()
+{}
+
+FCKMenuSeparator.prototype.Create = function( parentTable )
+{
+	var oDoc = FCKTools.GetElementDocument( parentTable ) ;
+
+	var r = parentTable.insertRow(-1) ;
+	
+	var eCell = r.insertCell(-1) ;
+	eCell.className = 'MN_Separator MN_Icon' ;
+
+	eCell = r.insertCell(-1) ;
+	eCell.className = 'MN_Separator' ;
+	eCell.appendChild( oDoc.createElement( 'DIV' ) ).className = 'MN_Separator_Line' ;
+
+	eCell = r.insertCell(-1) ;
+	eCell.className = 'MN_Separator' ;
+	eCell.appendChild( oDoc.createElement( 'DIV' ) ).className = 'MN_Separator_Line' ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js	(revision 389)
@@ -0,0 +1,32 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fcktoolbarbreak_gecko.js
+ * 	FCKToolbarBreak Class: breaks the toolbars.
+ * 	It makes it possible to force the toolbar to break to a new line.
+ * 	This is the Gecko specific implementation.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKToolbarBreak = function()
+{}
+
+FCKToolbarBreak.prototype.Create = function( targetElement )
+{
+	var oBreakDiv = targetElement.ownerDocument.createElement( 'div' ) ;
+	
+	oBreakDiv.style.clear = oBreakDiv.style.cssFloat = FCKLang.Dir == 'rtl' ? 'right' : 'left' ;
+	
+	targetElement.appendChild( oBreakDiv ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html	(revision 389)
@@ -0,0 +1,42 @@
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_flash_preview.html
+ * 	Preview page for the Flash dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+	<head>
+		<title></title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta name="robots" content="noindex, nofollow">
+		<link href="../common/fck_dialog_common.css" rel="stylesheet" type="text/css" />
+		<script language="javascript">
+
+// Sets the Skin CSS
+document.write( '<link href="' + window.parent.FCKConfig.SkinPath + 'fck_dialog.css" type="text/css" rel="stylesheet">' ) ;
+
+if ( window.parent.FCKConfig.BaseHref.length > 0 )
+	document.write( '<base href="' + window.parent.FCKConfig.BaseHref + '">' ) ;
+
+window.onload = function()
+{
+	window.parent.SetPreviewElement( document.body ) ;
+}
+
+		</script>
+	</head>
+	<body style="COLOR: #000000; BACKGROUND-COLOR: #ffffff"></body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_flash/fck_flash.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_flash/fck_flash.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_flash/fck_flash.js	(revision 389)
@@ -0,0 +1,284 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_flash.js
+ * 	Scripts related to the Flash dialog window (see fck_flash.html).
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var oEditor		= window.parent.InnerDialogLoaded() ;
+var FCK			= oEditor.FCK ;
+var FCKLang		= oEditor.FCKLang ;
+var FCKConfig	= oEditor.FCKConfig ;
+
+//#### Dialog Tabs
+
+// Set the dialog tabs.
+window.parent.AddTab( 'Info', oEditor.FCKLang.DlgInfoTab ) ;
+
+if ( FCKConfig.FlashUpload )
+	window.parent.AddTab( 'Upload', FCKLang.DlgLnkUpload ) ;
+
+if ( !FCKConfig.FlashDlgHideAdvanced )
+	window.parent.AddTab( 'Advanced', oEditor.FCKLang.DlgAdvancedTag ) ;
+
+// Function called when a dialog tag is selected.
+function OnDialogTabChange( tabCode )
+{
+	ShowE('divInfo'		, ( tabCode == 'Info' ) ) ;
+	ShowE('divUpload'	, ( tabCode == 'Upload' ) ) ;
+	ShowE('divAdvanced'	, ( tabCode == 'Advanced' ) ) ;
+}
+
+// Get the selected flash embed (if available).
+var oFakeImage = FCK.Selection.GetSelectedElement() ;
+var oEmbed ;
+
+if ( oFakeImage )
+{
+	if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckflash') )
+		oEmbed = FCK.GetRealElement( oFakeImage ) ;
+	else
+		oFakeImage = null ;
+}
+
+window.onload = function()
+{
+	// Translate the dialog box texts.
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	// Load the selected element information (if any).
+	LoadSelection() ;
+
+	// Show/Hide the "Browse Server" button.
+	GetE('tdBrowse').style.display = FCKConfig.FlashBrowser	? '' : 'none' ;
+
+	// Set the actual uploader URL.
+	if ( FCKConfig.FlashUpload )
+		GetE('frmUpload').action = FCKConfig.FlashUploadURL ;
+
+	window.parent.SetAutoSize( true ) ;
+
+	// Activate the "OK" button.
+	window.parent.SetOkButton( true ) ;
+}
+
+function LoadSelection()
+{
+	if ( ! oEmbed ) return ;
+
+	var sUrl = GetAttribute( oEmbed, 'src', '' ) ;
+
+	GetE('txtUrl').value    = GetAttribute( oEmbed, 'src', '' ) ;
+	GetE('txtWidth').value  = GetAttribute( oEmbed, 'width', '' ) ;
+	GetE('txtHeight').value = GetAttribute( oEmbed, 'height', '' ) ;
+
+	// Get Advances Attributes
+	GetE('txtAttId').value		= oEmbed.id ;
+	GetE('chkAutoPlay').checked	= GetAttribute( oEmbed, 'play', 'true' ) == 'true' ;
+	GetE('chkLoop').checked		= GetAttribute( oEmbed, 'loop', 'true' ) == 'true' ;
+	GetE('chkMenu').checked		= GetAttribute( oEmbed, 'menu', 'true' ) == 'true' ;
+	GetE('cmbScale').value		= GetAttribute( oEmbed, 'scale', '' ).toLowerCase() ;
+	
+	GetE('txtAttTitle').value		= oEmbed.title ;
+
+	if ( oEditor.FCKBrowserInfo.IsIE )
+	{
+		GetE('txtAttClasses').value = oEmbed.getAttribute('className') || '' ;
+		GetE('txtAttStyle').value = oEmbed.style.cssText ;
+	}
+	else
+	{
+		GetE('txtAttClasses').value = oEmbed.getAttribute('class',2) || '' ;
+		GetE('txtAttStyle').value = oEmbed.getAttribute('style',2) ;
+	}
+
+	UpdatePreview() ;
+}
+
+//#### The OK button was hit.
+function Ok()
+{
+	if ( GetE('txtUrl').value.length == 0 )
+	{
+		window.parent.SetSelectedTab( 'Info' ) ;
+		GetE('txtUrl').focus() ;
+
+		alert( oEditor.FCKLang.DlgAlertUrl ) ;
+
+		return false ;
+	}
+
+	if ( !oEmbed )
+	{
+		oEmbed		= FCK.EditorDocument.createElement( 'EMBED' ) ;
+		oFakeImage  = null ;
+	}
+	UpdateEmbed( oEmbed ) ;
+	
+	if ( !oFakeImage )
+	{
+		oFakeImage	= oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Flash', oEmbed ) ;
+		oFakeImage.setAttribute( '_fckflash', 'true', 0 ) ;
+		oFakeImage	= FCK.InsertElementAndGetIt( oFakeImage ) ;
+	}
+	else
+		oEditor.FCKUndo.SaveUndoStep() ;
+	
+	oEditor.FCKFlashProcessor.RefreshView( oFakeImage, oEmbed ) ;
+
+	return true ;
+}
+
+function UpdateEmbed( e )
+{
+	SetAttribute( e, 'type'			, 'application/x-shockwave-flash' ) ;
+	SetAttribute( e, 'pluginspage'	, 'http://www.macromedia.com/go/getflashplayer' ) ;
+
+	e.src = GetE('txtUrl').value ;
+	SetAttribute( e, "width" , GetE('txtWidth').value ) ;
+	SetAttribute( e, "height", GetE('txtHeight').value ) ;
+	
+	// Advances Attributes
+
+	SetAttribute( e, 'id'	, GetE('txtAttId').value ) ;
+	SetAttribute( e, 'scale', GetE('cmbScale').value ) ;
+	
+	SetAttribute( e, 'play', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ;
+	SetAttribute( e, 'loop', GetE('chkLoop').checked ? 'true' : 'false' ) ;
+	SetAttribute( e, 'menu', GetE('chkMenu').checked ? 'true' : 'false' ) ;
+
+	SetAttribute( e, 'title'	, GetE('txtAttTitle').value ) ;
+
+	if ( oEditor.FCKBrowserInfo.IsIE )
+	{
+		SetAttribute( e, 'className', GetE('txtAttClasses').value ) ;
+		e.style.cssText = GetE('txtAttStyle').value ;
+	}
+	else
+	{
+		SetAttribute( e, 'class', GetE('txtAttClasses').value ) ;
+		SetAttribute( e, 'style', GetE('txtAttStyle').value ) ;
+	}
+}
+
+var ePreview ;
+
+function SetPreviewElement( previewEl )
+{
+	ePreview = previewEl ;
+	
+	if ( GetE('txtUrl').value.length > 0 )
+		UpdatePreview() ;
+}
+
+function UpdatePreview()
+{
+	if ( !ePreview )
+		return ;
+		
+	while ( ePreview.firstChild )
+		ePreview.removeChild( ePreview.firstChild ) ;
+
+	if ( GetE('txtUrl').value.length == 0 )
+		ePreview.innerHTML = '&nbsp;' ;
+	else
+	{
+		var oDoc	= ePreview.ownerDocument || ePreview.document ;
+		var e		= oDoc.createElement( 'EMBED' ) ;
+		
+		e.src		= GetE('txtUrl').value ;
+		e.type		= 'application/x-shockwave-flash' ;
+		e.width		= '100%' ;
+		e.height	= '100%' ;
+		
+		ePreview.appendChild( e ) ;
+	}
+}
+
+// <embed id="ePreview" src="fck_flash/claims.swf" width="100%" height="100%" style="visibility:hidden" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
+
+function BrowseServer()
+{
+	OpenFileBrowser( FCKConfig.FlashBrowserURL, FCKConfig.FlashBrowserWindowWidth, FCKConfig.FlashBrowserWindowHeight ) ;
+}
+
+function SetUrl( url, width, height )
+{
+	GetE('txtUrl').value = url ;
+	
+	if ( width )
+		GetE('txtWidth').value = width ;
+		
+	if ( height ) 
+		GetE('txtHeight').value = height ;
+
+	UpdatePreview() ;
+
+	window.parent.SetSelectedTab( 'Info' ) ;
+}
+
+function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
+{
+	switch ( errorNumber )
+	{
+		case 0 :	// No errors
+			alert( 'Your file has been successfully uploaded' ) ;
+			break ;
+		case 1 :	// Custom error
+			alert( customMsg ) ;
+			return ;
+		case 101 :	// Custom warning
+			alert( customMsg ) ;
+			break ;
+		case 201 :
+			alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
+			break ;
+		case 202 :
+			alert( 'Invalid file type' ) ;
+			return ;
+		case 203 :
+			alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ;
+			return ;
+		default :
+			alert( 'Error on file upload. Error number: ' + errorNumber ) ;
+			return ;
+	}
+
+	SetUrl( fileUrl ) ;
+	GetE('frmUpload').reset() ;
+}
+
+var oUploadAllowedExtRegex	= new RegExp( FCKConfig.FlashUploadAllowedExtensions, 'i' ) ;
+var oUploadDeniedExtRegex	= new RegExp( FCKConfig.FlashUploadDeniedExtensions, 'i' ) ;
+
+function CheckUpload()
+{
+	var sFile = GetE('txtUploadFile').value ;
+	
+	if ( sFile.length == 0 )
+	{
+		alert( 'Please select a file to upload' ) ;
+		return false ;
+	}
+	
+	if ( ( FCKConfig.FlashUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||
+		( FCKConfig.FlashUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )
+	{
+		OnUploadCompleted( 202 ) ;
+		return false ;
+	}
+	
+	return true ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_link.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_link.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_link.html	(revision 389)
@@ -0,0 +1,289 @@
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_link.html
+ * 	Link dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+	<head>
+		<title>Link Properties</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+		<meta name="robots" content="noindex, nofollow" />
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script src="fck_link/fck_link.js" type="text/javascript"></script>
+	</head>
+	<body scroll="no" style="OVERFLOW: hidden">
+		<div id="divInfo" style="DISPLAY: none">
+			<span fckLang="DlgLnkType">Link Type</span><br />
+			<select id="cmbLinkType" onchange="SetLinkType(this.value);">
+				<option value="url" fckLang="DlgLnkTypeURL" selected="selected">URL</option>
+				<option value="anchor" fckLang="DlgLnkTypeAnchor">Anchor in this page</option>
+				<option value="email" fckLang="DlgLnkTypeEMail">E-Mail</option>
+			</select>
+			<br />
+			<br />
+			<div id="divLinkTypeUrl">
+				<table cellspacing="0" cellpadding="0" width="100%" border="0" dir="ltr">
+					<tr>
+						<td nowrap="nowrap">
+							<span fckLang="DlgLnkProto">Protocol</span><br />
+							<select id="cmbLinkProtocol">
+								<option value="http://" selected="selected">http://</option>
+								<option value="https://">https://</option>
+								<option value="ftp://">ftp://</option>
+								<option value="news://">news://</option>
+								<option value="" fckLang="DlgLnkProtoOther">&lt;other&gt;</option>
+							</select>
+						</td>
+						<td nowrap="nowrap">&nbsp;</td>
+						<td nowrap="nowrap" width="100%">
+							<span fckLang="DlgLnkURL">URL</span><br />
+							<input id="txtUrl" style="WIDTH: 100%" type="text" onkeyup="OnUrlChange();" onchange="OnUrlChange();" />
+						</td>
+					</tr>
+				</table>
+				<br />
+				<div id="divBrowseServer">
+				<input type="button" value="Browse Server" fckLang="DlgBtnBrowseServer" onclick="BrowseServer();" />
+				</div>
+			</div>
+			<div id="divLinkTypeAnchor" style="DISPLAY: none" align="center">
+				<div id="divSelAnchor" style="DISPLAY: none">
+					<table cellspacing="0" cellpadding="0" border="0" width="70%">
+						<tr>
+							<td colspan="3">
+								<span fckLang="DlgLnkAnchorSel">Select an Anchor</span>
+							</td>
+						</tr>
+						<tr>
+							<td width="50%">
+								<span fckLang="DlgLnkAnchorByName">By Anchor Name</span><br />
+								<select id="cmbAnchorName" onchange="GetE('cmbAnchorId').value='';" style="WIDTH: 100%">
+									<option value="" selected="selected"></option>
+								</select>
+							</td>
+							<td>&nbsp;&nbsp;&nbsp;</td>
+							<td width="50%">
+								<span fckLang="DlgLnkAnchorById">By Element Id</span><br />
+								<select id="cmbAnchorId" onchange="GetE('cmbAnchorName').value='';" style="WIDTH: 100%">
+									<option value="" selected="selected"></option>
+								</select>
+							</td>
+						</tr>
+					</table>
+				</div>
+				<div id="divNoAnchor" style="DISPLAY: none">
+					<span fckLang="DlgLnkNoAnchors">&lt;No anchors available in the document&gt;</span>
+				</div>
+			</div>
+			<div id="divLinkTypeEMail" style="DISPLAY: none">
+				<span fckLang="DlgLnkEMail">E-Mail Address</span><br />
+				<input id="txtEMailAddress" style="WIDTH: 100%" type="text" /><br />
+				<span fckLang="DlgLnkEMailSubject">Message Subject</span><br />
+				<input id="txtEMailSubject" style="WIDTH: 100%" type="text" /><br />
+				<span fckLang="DlgLnkEMailBody">Message Body</span><br />
+				<textarea id="txtEMailBody" style="WIDTH: 100%" rows="3" cols="20"></textarea>
+			</div>
+		</div>
+		<div id="divUpload" style="DISPLAY: none">
+			<form id="frmUpload" method="post" target="UploadWindow" enctype="multipart/form-data" action="" onsubmit="return CheckUpload();">
+				<span fckLang="DlgLnkUpload">Upload</span><br />
+				<input id="txtUploadFile" style="WIDTH: 100%" type="file" size="40" name="NewFile" /><br />
+				<br />
+				<input id="btnUpload" type="submit" value="Send it to the Server" fckLang="DlgLnkBtnUpload" />
+				<iframe name="UploadWindow" style="DISPLAY: none" src="../fckblank.html"></iframe> 
+			</form>
+		</div>
+		<div id="divTarget" style="DISPLAY: none">
+			<table cellspacing="0" cellpadding="0" width="100%" border="0">
+				<tr>
+					<td nowrap="nowrap">
+						<span fckLang="DlgLnkTarget">Target</span><br />
+						<select id="cmbTarget" onchange="SetTarget(this.value);">
+							<option value="" fckLang="DlgGenNotSet" selected="selected">&lt;not set&gt;</option>
+							<option value="frame" fckLang="DlgLnkTargetFrame">&lt;frame&gt;</option>
+							<option value="popup" fckLang="DlgLnkTargetPopup">&lt;popup window&gt;</option>
+							<option value="_blank" fckLang="DlgLnkTargetBlank">New Window (_blank)</option>
+							<option value="_top" fckLang="DlgLnkTargetTop">Topmost Window (_top)</option>
+							<option value="_self" fckLang="DlgLnkTargetSelf">Same Window (_self)</option>
+							<option value="_parent" fckLang="DlgLnkTargetParent">Parent Window (_parent)</option>
+						</select>
+					</td>
+					<td>&nbsp;</td>
+					<td id="tdTargetFrame" nowrap="nowrap" width="100%">
+						<span fckLang="DlgLnkTargetFrameName">Target Frame Name</span><br />
+						<input id="txtTargetFrame" style="WIDTH: 100%" type="text" onkeyup="OnTargetNameChange();"
+							onchange="OnTargetNameChange();" />
+					</td>
+					<td id="tdPopupName" style="DISPLAY: none" nowrap="nowrap" width="100%">
+						<span fckLang="DlgLnkPopWinName">Popup Window Name</span><br />
+						<input id="txtPopupName" style="WIDTH: 100%" type="text" />
+					</td>
+				</tr>
+			</table>
+			<br />
+			<table id="tablePopupFeatures" style="DISPLAY: none" cellspacing="0" cellpadding="0" align="center"
+				border="0">
+				<tr>
+					<td>
+						<span fckLang="DlgLnkPopWinFeat">Popup Window Features</span><br />
+						<table cellspacing="0" cellpadding="0" border="0">
+							<tr>
+								<td valign="top" nowrap="nowrap" width="50%">
+									<input id="chkPopupResizable" name="chkFeature" value="resizable" type="checkbox" /><label for="chkPopupResizable" fckLang="DlgLnkPopResize">Resizable</label><br />
+									<input id="chkPopupLocationBar" name="chkFeature" value="location" type="checkbox" /><label for="chkPopupLocationBar" fckLang="DlgLnkPopLocation">Location 
+										Bar</label><br />
+									<input id="chkPopupManuBar" name="chkFeature" value="menubar" type="checkbox" /><label for="chkPopupManuBar" fckLang="DlgLnkPopMenu">Menu 
+										Bar</label><br />
+									<input id="chkPopupScrollBars" name="chkFeature" value="scrollbars" type="checkbox" /><label for="chkPopupScrollBars" fckLang="DlgLnkPopScroll">Scroll 
+										Bars</label>
+								</td>
+								<td></td>
+								<td valign="top" nowrap="nowrap" width="50%">
+									<input id="chkPopupStatusBar" name="chkFeature" value="status" type="checkbox" /><label for="chkPopupStatusBar" fckLang="DlgLnkPopStatus">Status 
+										Bar</label><br />
+									<input id="chkPopupToolbar" name="chkFeature" value="toolbar" type="checkbox" /><label for="chkPopupToolbar" fckLang="DlgLnkPopToolbar">Toolbar</label><br />
+									<input id="chkPopupFullScreen" name="chkFeature" value="fullscreen" type="checkbox" /><label for="chkPopupFullScreen" fckLang="DlgLnkPopFullScrn">Full 
+										Screen (IE)</label><br />
+									<input id="chkPopupDependent" name="chkFeature" value="dependent" type="checkbox" /><label for="chkPopupDependent" fckLang="DlgLnkPopDependent">Dependent 
+										(Netscape)</label>
+								</td>
+							</tr>
+							<tr>
+								<td valign="top" nowrap="nowrap" width="50%">&nbsp;</td>
+								<td></td>
+								<td valign="top" nowrap="nowrap" width="50%"></td>
+							</tr>
+							<tr>
+								<td valign="top">
+									<table cellspacing="0" cellpadding="0" border="0">
+										<tr>
+											<td nowrap="nowrap"><span fckLang="DlgLnkPopWidth">Width</span></td>
+											<td>&nbsp;<input id="txtPopupWidth" type="text" maxlength="4" size="4" /></td>
+										</tr>
+										<tr>
+											<td nowrap="nowrap"><span fckLang="DlgLnkPopHeight">Height</span></td>
+											<td>&nbsp;<input id="txtPopupHeight" type="text" maxlength="4" size="4" /></td>
+										</tr>
+									</table>
+								</td>
+								<td>&nbsp;&nbsp;</td>
+								<td valign="top">
+									<table cellspacing="0" cellpadding="0" border="0">
+										<tr>
+											<td nowrap="nowrap"><span fckLang="DlgLnkPopLeft">Left Position</span></td>
+											<td>&nbsp;<input id="txtPopupLeft" type="text" maxlength="4" size="4" /></td>
+										</tr>
+										<tr>
+											<td nowrap="nowrap"><span fckLang="DlgLnkPopTop">Top Position</span></td>
+											<td>&nbsp;<input id="txtPopupTop" type="text" maxlength="4" size="4" /></td>
+										</tr>
+									</table>
+								</td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+			</table>
+		</div>
+		<div id="divAttribs" style="DISPLAY: none">
+			<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
+				<tr>
+					<td valign="top" width="50%">
+						<span fckLang="DlgGenId">Id</span><br />
+						<input id="txtAttId" style="WIDTH: 100%" type="text" />
+					</td>
+					<td width="1"></td>
+					<td valign="top">
+						<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
+							<tr>
+								<td width="60%">
+									<span fckLang="DlgGenLangDir">Language Direction</span><br />
+									<select id="cmbAttLangDir" style="WIDTH: 100%">
+										<option value="" fckLang="DlgGenNotSet" selected>&lt;not set&gt;</option>
+										<option value="ltr" fckLang="DlgGenLangDirLtr">Left to Right (LTR)</option>
+										<option value="rtl" fckLang="DlgGenLangDirRtl">Right to Left (RTL)</option>
+									</select>
+								</td>
+								<td width="1%">&nbsp;&nbsp;&nbsp;</td>
+								<td nowrap="nowrap"><span fckLang="DlgGenAccessKey">Access Key</span><br />
+									<input id="txtAttAccessKey" style="WIDTH: 100%" type="text" maxlength="1" size="1" />
+								</td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+				<tr>
+					<td valign="top" width="50%">
+						<span fckLang="DlgGenName">Name</span><br />
+						<input id="txtAttName" style="WIDTH: 100%" type="text" />
+					</td>
+					<td width="1"></td>
+					<td valign="top">
+						<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
+							<tr>
+								<td width="60%">
+									<span fckLang="DlgGenLangCode">Language Code</span><br />
+									<input id="txtAttLangCode" style="WIDTH: 100%" type="text" />
+								</td>
+								<td width="1%">&nbsp;&nbsp;&nbsp;</td>
+								<td nowrap="nowrap">
+									<span fckLang="DlgGenTabIndex">Tab Index</span><br />
+									<input id="txtAttTabIndex" style="WIDTH: 100%" type="text" maxlength="5" size="5" />
+								</td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+				<tr>
+					<td valign="top" width="50%">&nbsp;</td>
+					<td width="1"></td>
+					<td valign="top"></td>
+				</tr>
+				<tr>
+					<td valign="top" width="50%">
+						<span fckLang="DlgGenTitle">Advisory Title</span><br />
+						<input id="txtAttTitle" style="WIDTH: 100%" type="text" />
+					</td>
+					<td width="1">&nbsp;&nbsp;&nbsp;</td>
+					<td valign="top">
+						<span fckLang="DlgGenContType">Advisory Content Type</span><br />
+						<input id="txtAttContentType" style="WIDTH: 100%" type="text" />
+					</td>
+				</tr>
+				<tr>
+					<td valign="top">
+						<span fckLang="DlgGenClass">Stylesheet Classes</span><br />
+						<input id="txtAttClasses" style="WIDTH: 100%" type="text" />
+					</td>
+					<td></td>
+					<td valign="top">
+						<span fckLang="DlgGenLinkCharset">Linked Resource Charset</span><br />
+						<input id="txtAttCharSet" style="WIDTH: 100%" type="text" />
+					</td>
+				</tr>
+			</table>
+			<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
+				<tr>
+					<td>
+						<span fckLang="DlgGenStyle">Style</span><br />
+						<input id="txtAttStyle" style="WIDTH: 100%" type="text" />
+					</td>
+				</tr>
+			</table>
+		</div>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_form.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_form.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_form.html	(revision 389)
@@ -0,0 +1,101 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_form.html
+ * 	Form dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+var oActiveEl = oEditor.FCKSelection.MoveToAncestorNode( 'FORM' ) ;
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if ( oActiveEl ) 
+	{
+		GetE('txtName').value	= oActiveEl.name ;
+		GetE('txtAction').value	= oActiveEl.getAttribute( 'action', 2 ) ;
+		GetE('txtMethod').value	= oActiveEl.method ;
+	}
+	else
+		oActiveEl = null ;
+
+	window.parent.SetOkButton( true ) ;
+}
+
+function Ok()
+{
+	if ( !oActiveEl )
+	{
+		oActiveEl = oEditor.FCK.EditorDocument.createElement( 'FORM' ) ;
+		oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
+		oActiveEl.innerHTML = '&nbsp;' ;
+	}
+	
+	oActiveEl.name = GetE('txtName').value ;
+	SetAttribute( oActiveEl, 'action'	, GetE('txtAction').value ) ;
+	oActiveEl.method = GetE('txtMethod').value ;
+
+	return true ;
+}
+
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table width="100%" style="height: 100%">
+		<tr>
+			<td align="center">
+				<table cellspacing="0" cellpadding="0" width="80%" border="0">
+					<tr>
+						<td>
+							<span fcklang="DlgFormName">Name</span><br />
+							<input style="width: 100%" type="text" id="txtName" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgFormAction">Action</span><br />
+							<input style="width: 100%" type="text" id="txtAction" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgFormMethod">Method</span><br />
+							<select id="txtMethod">
+								<option value="get" selected="selected">GET</option>
+								<option value="post">POST</option>
+							</select>
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_about/lgpl.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_about/lgpl.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_about/lgpl.html	(revision 389)
@@ -0,0 +1,434 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+	<head>
+		<title>GNU Lesser General Public License</title>
+		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
+		<STYLE>
+			BODY { FONT-SIZE: 12px }
+		</STYLE>
+	</head>
+	<body>
+		<H3>GNU Lesser General Public License</H3>
+		<TT>
+			<P>Version 2.1, February 1999</P>
+			<BLOCKQUOTE>
+				<P>Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 
+					330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute 
+					verbatim copies of this license document, but changing it is not allowed.</P>
+				<P>[This is the first released version of the Lesser GPL. It also counts as the 
+					successor of the GNU Library Public License, version 2, hence the version 
+					number 2.1.]</P>
+			</BLOCKQUOTE>
+			<H4>Preamble</H4>
+			<P>The licenses for most software are designed to take away your freedom to share 
+				and change it. By contrast, the GNU General Public Licenses are intended to 
+				guarantee your freedom to share and change free software--to make sure the 
+				software is free for all its users.
+			</P>
+			<P>This license, the Lesser General Public License, applies to some specially 
+				designated software packages--typically libraries--of the Free Software 
+				Foundation and other authors who decide to use it. You can use it too, but we 
+				suggest you first think carefully about whether this license or the ordinary 
+				General Public License is the better strategy to use in any particular case, 
+				based on the explanations below.
+			</P>
+			<P>When we speak of free software, we are referring to freedom of use, not price. 
+				Our General Public Licenses are designed to make sure that you have the freedom 
+				to distribute copies of free software (and charge for this service if you 
+				wish); that you receive source code or can get it if you want it; that you can 
+				change the software and use pieces of it in new free programs; and that you are 
+				informed that you can do these things.</P>
+			<P>To protect your rights, we need to make restrictions that forbid distributors to 
+				deny you these rights or to ask you to surrender these rights. These 
+				restrictions translate to certain responsibilities for you if you distribute 
+				copies of the library or if you modify it.
+			</P>
+			<P>For example, if you distribute copies of the library, whether gratis or for a 
+				fee, you must give the recipients all the rights that we gave you. You must 
+				make sure that they, too, receive or can get the source code. If you link other 
+				code with the library, you must provide complete object files to the 
+				recipients, so that they can relink them with the library after making changes 
+				to the library and recompiling it. And you must show them these terms so they 
+				know their rights.
+			</P>
+			<P>We protect your rights with a two-step method: (1) we copyright the library, and 
+				(2) we offer you this license, which gives you legal permission to copy, 
+				distribute and/or modify the library.
+			</P>
+			<P>To protect each distributor, we want to make it very clear that there is no 
+				warranty for the free library. Also, if the library is modified by someone else 
+				and passed on, the recipients should know that what they have is not the 
+				original version, so that the original author's reputation will not be affected 
+				by problems that might be introduced by others.
+			</P>
+			<P>Finally, software patents pose a constant threat to the existence of any free 
+				program. We wish to make sure that a company cannot effectively restrict the 
+				users of a free program by obtaining a restrictive license from a patent 
+				holder. Therefore, we insist that any patent license obtained for a version of 
+				the library must be consistent with the full freedom of use specified in this 
+				license.
+			</P>
+			<P>Most GNU software, including some libraries, is covered by the ordinary GNU 
+				General Public License. This license, the GNU Lesser General Public License, 
+				applies to certain designated libraries, and is quite different from the 
+				ordinary General Public License. We use this license for certain libraries in 
+				order to permit linking those libraries into non-free programs.
+			</P>
+			<P>When a program is linked with a library, whether statically or using a shared 
+				library, the combination of the two is legally speaking a combined work, a 
+				derivative of the original library. The ordinary General Public License 
+				therefore permits such linking only if the entire combination fits its criteria 
+				of freedom. The Lesser General Public License permits more lax criteria for 
+				linking other code with the library.
+			</P>
+			<P>We call this license the "Lesser" General Public License because it does Less to 
+				protect the user's freedom than the ordinary General Public License. It also 
+				provides other free software developers Less of an advantage over competing 
+				non-free programs. These disadvantages are the reason we use the ordinary 
+				General Public License for many libraries. However, the Lesser license provides 
+				advantages in certain special circumstances.
+			</P>
+			<P>For example, on rare occasions, there may be a special need to encourage the 
+				widest possible use of a certain library, so that it becomes a de-facto 
+				standard. To achieve this, non-free programs must be allowed to use the 
+				library. A more frequent case is that a free library does the same job as 
+				widely used non-free libraries. In this case, there is little to gain by 
+				limiting the free library to free software only, so we use the Lesser General 
+				Public License.
+			</P>
+			<P>In other cases, permission to use a particular library in non-free programs 
+				enables a greater number of people to use a large body of free software. For 
+				example, permission to use the GNU C Library in non-free programs enables many 
+				more people to use the whole GNU operating system, as well as its variant, the 
+				GNU/Linux operating system.
+			</P>
+			<P>Although the Lesser General Public License is Less protective of the users' 
+				freedom, it does ensure that the user of a program that is linked with the 
+				Library has the freedom and the wherewithal to run that program using a 
+				modified version of the Library.
+			</P>
+			<P>The precise terms and conditions for copying, distribution and modification 
+				follow. Pay close attention to the difference between a "work based on the 
+				library" and a "work that uses the library". The former contains code derived 
+				from the library, whereas the latter must be combined with the library in order 
+				to run.
+			</P>
+			<H4>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</H4>
+			<P><STRONG>0.</STRONG> This License Agreement applies to any software library or 
+				other program which contains a notice placed by the copyright holder or other 
+				authorized party saying it may be distributed under the terms of this Lesser 
+				General Public License (also called "this License"). Each licensee is addressed 
+				as "you".</P>
+			<P>A "library" means a collection of software functions and/or data prepared so as 
+				to be conveniently linked with application programs (which use some of those 
+				functions and data) to form executables.
+			</P>
+			<P>The "Library", below, refers to any such software library or work which has been 
+				distributed under these terms. A "work based on the Library" means either the 
+				Library or any derivative work under copyright law: that is to say, a work 
+				containing the Library or a portion of it, either verbatim or with 
+				modifications and/or translated straightforwardly into another language. 
+				(Hereinafter, translation is included without limitation in the term 
+				"modification".)
+			</P>
+			<P>"Source code" for a work means the preferred form of the work for making 
+				modifications to it. For a library, complete source code means all the source 
+				code for all modules it contains, plus any associated interface definition 
+				files, plus the scripts used to control compilation and installation of the 
+				library.</P>
+			<P>Activities other than copying, distribution and modification are not covered by 
+				this License; they are outside its scope. The act of running a program using 
+				the Library is not restricted, and output from such a program is covered only 
+				if its contents constitute a work based on the Library (independent of the use 
+				of the Library in a tool for writing it). Whether that is true depends on what 
+				the Library does and what the program that uses the Library does.
+			</P>
+			<P><STRONG>1.</STRONG> You may copy and distribute verbatim copies of the Library's 
+				complete source code as you receive it, in any medium, provided that you 
+				conspicuously and appropriately publish on each copy an appropriate copyright 
+				notice and disclaimer of warranty; keep intact all the notices that refer to 
+				this License and to the absence of any warranty; and distribute a copy of this 
+				License along with the Library.
+			</P>
+			<P>You may charge a fee for the physical act of transferring a copy, and you may at 
+				your option offer warranty protection in exchange for a fee.
+			</P>
+			<P><STRONG>2.</STRONG> You may modify your copy or copies of the Library or any 
+				portion of it, thus forming a work based on the Library, and copy and 
+				distribute such modifications or work under the terms of Section 1 above, 
+				provided that you also meet all of these conditions:
+			</P>
+			<BLOCKQUOTE>
+				<P>a) The modified work must itself be a software library.
+				</P>
+				<P>b) You must cause the files modified to carry prominent notices stating that you 
+					changed the files and the date of any change.</P>
+				<P>c) You must cause the whole of the work to be licensed at no charge to all third 
+					parties under the terms of this License.
+				</P>
+				<P>d) If a facility in the modified Library refers to a function or a table of data 
+					to be supplied by an application program that uses the facility, other than as 
+					an argument passed when the facility is invoked, then you must make a good 
+					faith effort to ensure that, in the event an application does not supply such 
+					function or table, the facility still operates, and performs whatever part of 
+					its purpose remains meaningful.
+				</P>
+				<P>(For example, a function in a library to compute square roots has a purpose that 
+					is entirely well-defined independent of the application. Therefore, Subsection 
+					2d requires that any application-supplied function or table used by this 
+					function must be optional: if the application does not supply it, the square 
+					root function must still compute square roots.)
+				</P>
+				<P>These requirements apply to the modified work as a whole. If identifiable 
+					sections of that work are not derived from the Library, and can be reasonably 
+					considered independent and separate works in themselves, then this License, and 
+					its terms, do not apply to those sections when you distribute them as separate 
+					works. But when you distribute the same sections as part of a whole which is a 
+					work based on the Library, the distribution of the whole must be on the terms 
+					of this License, whose permissions for other licensees extend to the entire 
+					whole, and thus to each and every part regardless of who wrote it.
+				</P>
+				<P>Thus, it is not the intent of this section to claim rights or contest your 
+					rights to work written entirely by you; rather, the intent is to exercise the 
+					right to control the distribution of derivative or collective works based on 
+					the Library.
+				</P>
+				<P>In addition, mere aggregation of another work not based on the Library with the 
+					Library (or with a work based on the Library) on a volume of a storage or 
+					distribution medium does not bring the other work under the scope of this 
+					License.
+				</P>
+			</BLOCKQUOTE>
+			<P><STRONG>3.</STRONG> You may opt to apply the terms of the ordinary GNU General 
+				Public License instead of this License to a given copy of the Library. To do 
+				this, you must alter all the notices that refer to this License, so that they 
+				refer to the ordinary GNU General Public License, version 2, instead of to this 
+				License. (If a newer version than version 2 of the ordinary GNU General Public 
+				License has appeared, then you can specify that version instead if you wish.) 
+				Do not make any other change in these notices.
+			</P>
+			<P>Once this change is made in a given copy, it is irreversible for that copy, so 
+				the ordinary GNU General Public License applies to all subsequent copies and 
+				derivative works made from that copy.
+			</P>
+			<P>This option is useful when you wish to copy part of the code of the Library into 
+				a program that is not a library.
+			</P>
+			<P><STRONG>4.</STRONG> You may copy and distribute the Library (or a portion or 
+				derivative of it, under Section 2) in object code or executable form under the 
+				terms of Sections 1 and 2 above provided that you accompany it with the 
+				complete corresponding machine-readable source code, which must be distributed 
+				under the terms of Sections 1 and 2 above on a medium customarily used for 
+				software interchange.
+			</P>
+			<P>If distribution of object code is made by offering access to copy from a 
+				designated place, then offering equivalent access to copy the source code from 
+				the same place satisfies the requirement to distribute the source code, even 
+				though third parties are not compelled to copy the source along with the object 
+				code.</P>
+			<P><STRONG>5.</STRONG> A program that contains no derivative of any portion of the 
+				Library, but is designed to work with the Library by being compiled or linked 
+				with it, is called a "work that uses the Library". Such a work, in isolation, 
+				is not a derivative work of the Library, and therefore falls outside the scope 
+				of this License.
+			</P>
+			<P>However, linking a "work that uses the Library" with the Library creates an 
+				executable that is a derivative of the Library (because it contains portions of 
+				the Library), rather than a "work that uses the library". The executable is 
+				therefore covered by this License. Section 6 states terms for distribution of 
+				such executables.
+			</P>
+			<P>When a "work that uses the Library" uses material from a header file that is 
+				part of the Library, the object code for the work may be a derivative work of 
+				the Library even though the source code is not. Whether this is true is 
+				especially significant if the work can be linked without the Library, or if the 
+				work is itself a library. The threshold for this to be true is not precisely 
+				defined by law.
+			</P>
+			<P>If such an object file uses only numerical parameters, data structure layouts 
+				and accessors, and small macros and small inline functions (ten lines or less 
+				in length), then the use of the object file is unrestricted, regardless of 
+				whether it is legally a derivative work. (Executables containing this object 
+				code plus portions of the Library will still fall under Section 6.)
+			</P>
+			<P>Otherwise, if the work is a derivative of the Library, you may distribute the 
+				object code for the work under the terms of Section 6. Any executables 
+				containing that work also fall under Section 6, whether or not they are linked 
+				directly with the Library itself.
+			</P>
+			<P><STRONG>6.</STRONG> As an exception to the Sections above, you may also combine 
+				or link a "work that uses the Library" with the Library to produce a work 
+				containing portions of the Library, and distribute that work under terms of 
+				your choice, provided that the terms permit modification of the work for the 
+				customer's own use and reverse engineering for debugging such modifications.
+			</P>
+			<P>You must give prominent notice with each copy of the work that the Library is 
+				used in it and that the Library and its use are covered by this License. You 
+				must supply a copy of this License. If the work during execution displays 
+				copyright notices, you must include the copyright notice for the Library among 
+				them, as well as a reference directing the user to the copy of this License. 
+				Also, you must do one of these things:
+			</P>
+			<BLOCKQUOTE>
+				<P>a) Accompany the work with the complete corresponding machine-readable source 
+					code for the Library including whatever changes were used in the work (which 
+					must be distributed under Sections 1 and 2 above); and, if the work is an 
+					executable linked with the Library, with the complete machine-readable "work 
+					that uses the Library", as object code and/or source code, so that the user can 
+					modify the Library and then relink to produce a modified executable containing 
+					the modified Library. (It is understood that the user who changes the contents 
+					of definitions files in the Library will not necessarily be able to recompile 
+					the application to use the modified definitions.)
+				</P>
+				<P>b) Use a suitable shared library mechanism for linking with the Library. A 
+					suitable mechanism is one that (1) uses at run time a copy of the library 
+					already present on the user's computer system, rather than copying library 
+					functions into the executable, and (2) will operate properly with a modified 
+					version of the library, if the user installs one, as long as the modified 
+					version is interface-compatible with the version that the work was made with.
+				</P>
+				<P>c) Accompany the work with a written offer, valid for at least three years, to 
+					give the same user the materials specified in Subsection 6a, above, for a 
+					charge no more than the cost of performing this distribution.
+				</P>
+				<P>d) If distribution of the work is made by offering access to copy from a 
+					designated place, offer equivalent access to copy the above specified materials 
+					from the same place.
+				</P>
+				<P>e) Verify that the user has already received a copy of these materials or that 
+					you have already sent this user a copy.</P>
+			</BLOCKQUOTE>
+			<P>For an executable, the required form of the "work that uses the Library" must 
+				include any data and utility programs needed for reproducing the executable 
+				from it. However, as a special exception, the materials to be distributed need 
+				not include anything that is normally distributed (in either source or binary 
+				form) with the major components (compiler, kernel, and so on) of the operating 
+				system on which the executable runs, unless that component itself accompanies 
+				the executable.
+			</P>
+			<P>It may happen that this requirement contradicts the license restrictions of 
+				other proprietary libraries that do not normally accompany the operating 
+				system. Such a contradiction means you cannot use both them and the Library 
+				together in an executable that you distribute.
+			</P>
+			<P><STRONG>7.</STRONG> You may place library facilities that are a work based on 
+				the Library side-by-side in a single library together with other library 
+				facilities not covered by this License, and distribute such a combined library, 
+				provided that the separate distribution of the work based on the Library and of 
+				the other library facilities is otherwise permitted, and provided that you do 
+				these two things:
+			</P>
+			<BLOCKQUOTE>
+				<P>a) Accompany the combined library with a copy of the same work based on the 
+					Library, uncombined with any other library facilities. This must be distributed 
+					under the terms of the Sections above.
+				</P>
+				<P>b) Give prominent notice with the combined library of the fact that part of it 
+					is a work based on the Library, and explaining where to find the accompanying 
+					uncombined form of the same work.</P>
+			</BLOCKQUOTE>
+			<P><STRONG>8.</STRONG> You may not copy, modify, sublicense, link with, or 
+				distribute the Library except as expressly provided under this License. Any 
+				attempt otherwise to copy, modify, sublicense, link with, or distribute the 
+				Library is void, and will automatically terminate your rights under this 
+				License. However, parties who have received copies, or rights, from you under 
+				this License will not have their licenses terminated so long as such parties 
+				remain in full compliance.
+			</P>
+			<P><STRONG>9.</STRONG> You are not required to accept this License, since you have 
+				not signed it. However, nothing else grants you permission to modify or 
+				distribute the Library or its derivative works. These actions are prohibited by 
+				law if you do not accept this License. Therefore, by modifying or distributing 
+				the Library (or any work based on the Library), you indicate your acceptance of 
+				this License to do so, and all its terms and conditions for copying, 
+				distributing or modifying the Library or works based on it.
+			</P>
+			<P><STRONG>10.</STRONG> Each time you redistribute the Library (or any work based 
+				on the Library), the recipient automatically receives a license from the 
+				original licensor to copy, distribute, link with or modify the Library subject 
+				to these terms and conditions. You may not impose any further restrictions on 
+				the recipients' exercise of the rights granted herein. You are not responsible 
+				for enforcing compliance by third parties with this License.
+			</P>
+			<P><STRONG>11.</STRONG> If, as a consequence of a court judgment or allegation of 
+				patent infringement or for any other reason (not limited to patent issues), 
+				conditions are imposed on you (whether by court order, agreement or otherwise) 
+				that contradict the conditions of this License, they do not excuse you from the 
+				conditions of this License. If you cannot distribute so as to satisfy 
+				simultaneously your obligations under this License and any other pertinent 
+				obligations, then as a consequence you may not distribute the Library at all. 
+				For example, if a patent license would not permit royalty-free redistribution 
+				of the Library by all those who receive copies directly or indirectly through 
+				you, then the only way you could satisfy both it and this License would be to 
+				refrain entirely from distribution of the Library.
+			</P>
+			<P>If any portion of this section is held invalid or unenforceable under any 
+				particular circumstance, the balance of the section is intended to apply, and 
+				the section as a whole is intended to apply in other circumstances.
+			</P>
+			<P>It is not the purpose of this section to induce you to infringe any patents or 
+				other property right claims or to contest validity of any such claims; this 
+				section has the sole purpose of protecting the integrity of the free software 
+				distribution system which is implemented by public license practices. Many 
+				people have made generous contributions to the wide range of software 
+				distributed through that system in reliance on consistent application of that 
+				system; it is up to the author/donor to decide if he or she is willing to 
+				distribute software through any other system and a licensee cannot impose that 
+				choice.
+			</P>
+			<P>This section is intended to make thoroughly clear what is believed to be a 
+				consequence of the rest of this License.
+			</P>
+			<P><STRONG>12.</STRONG> If the distribution and/or use of the Library is restricted 
+				in certain countries either by patents or by copyrighted interfaces, the 
+				original copyright holder who places the Library under this License may add an 
+				explicit geographical distribution limitation excluding those countries, so 
+				that distribution is permitted only in or among countries not thus excluded. In 
+				such case, this License incorporates the limitation as if written in the body 
+				of this License.
+			</P>
+			<P><STRONG>13.</STRONG> The Free Software Foundation may publish revised and/or new 
+				versions of the Lesser General Public License from time to time. Such new 
+				versions will be similar in spirit to the present version, but may differ in 
+				detail to address new problems or concerns.</P>
+			<P>Each version is given a distinguishing version number. If the Library specifies 
+				a version number of this License which applies to it and "any later version", 
+				you have the option of following the terms and conditions either of that 
+				version or of any later version published by the Free Software Foundation. If 
+				the Library does not specify a license version number, you may choose any 
+				version ever published by the Free Software Foundation.
+			</P>
+			<P><STRONG>14.</STRONG> If you wish to incorporate parts of the Library into other 
+				free programs whose distribution conditions are incompatible with these, write 
+				to the author to ask for permission. For software which is copyrighted by the 
+				Free Software Foundation, write to the Free Software Foundation; we sometimes 
+				make exceptions for this. Our decision will be guided by the two goals of 
+				preserving the free status of all derivatives of our free software and of 
+				promoting the sharing and reuse of software generally.
+			</P>
+			<P>NO WARRANTY
+			</P>
+			<P><STRONG>15. </STRONG>BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO 
+				WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT 
+				WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 
+				PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR 
+				IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
+				MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE 
+				QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE 
+				DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR 
+				CORRECTION.
+			</P>
+			<P><STRONG>16.</STRONG> IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO 
+				IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 
+				REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 
+				INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT 
+				OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS 
+				OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 
+				PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN 
+				IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 
+				DAMAGES.
+			</P>
+			<H4><STRONG>END OF TERMS AND CONDITIONS</STRONG></H4>
+		</TT>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_about.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_about.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_about.html	(revision 389)
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_about.html
+ * 	"About" dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta name="robots" content="noindex, nofollow">
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script language="javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+var FCKLang	= oEditor.FCKLang ;
+
+window.parent.AddTab( 'About', FCKLang.DlgAboutAboutTab ) ;
+window.parent.AddTab( 'License', FCKLang.DlgAboutLicenseTab ) ;
+window.parent.AddTab( 'BrowserInfo', FCKLang.DlgAboutBrowserInfoTab ) ;
+
+// Function called when a dialog tag is selected.
+function OnDialogTabChange( tabCode )
+{
+	ShowE('divAbout', ( tabCode == 'About' ) ) ;
+	ShowE('divLicense', ( tabCode == 'License' ) ) ;
+	ShowE('divInfo'	, ( tabCode == 'BrowserInfo' ) ) ;
+}
+
+function SendEMail()
+{
+	var eMail = 'mailto:' ;
+	eMail += 'fredck' ;
+	eMail += '@' ;
+	eMail += 'fckeditor' ;
+	eMail += '.' ;
+	eMail += 'net' ;
+
+	window.location = eMail ;
+}
+
+window.onload = function()
+{
+	// Translate the dialog box texts.
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	window.parent.SetAutoSize( true ) ;
+}
+
+		</script>
+	</head>
+	<body scroll="no" style="OVERFLOW: hidden">
+		<div id="divAbout">
+			<table cellpadding="0" cellspacing="0" border="0" width="100%" height="100%">
+				<tr>
+					<td>
+						<img alt="" src="fck_about/logo_fckeditor.gif" width="236" height="41" align="left">
+						<table width="80" border="0" cellspacing="0" cellpadding="5" bgcolor="#ffffff" align="right">
+							<tr>
+								<td align="center" nowrap style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid">
+									<span fckLang="DlgAboutVersion">version</span>
+									<br>
+									<b>2.3.2</b><br />
+									Build 1082</td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+				<tr height="100%">
+					<td align="center">
+						&nbsp;<br>
+						<span style="FONT-SIZE: 14px" dir="ltr"><br>
+							<b><a href="http://www.fckeditor.net/?about" target="_blank" title="Visit the FCKeditor web site">
+									Support <b>Open Source</b> Software</a></b> </span>
+						<br><br><br>
+						<span fckLang="DlgAboutInfo">For further information go to</span> <a href="http://www.fckeditor.net/?About" target="_blank">
+							http://www.fckeditor.net/</a>.
+						<br>
+						Copyright &copy; 2003-2006 <a href="#" onclick="SendEMail();">Frederico Caldeira 
+							Knabben</a>
+					</td>
+				</tr>
+				<tr>
+					<td align="center">
+						<img alt="" src="fck_about/logo_fredck.gif" width="87" height="36">
+					</td>
+				</tr>
+			</table>
+		</div>
+		<div id="divLicense" style="DISPLAY: none">
+			<table height="100%" width="100%">
+				<tr>
+					<td>
+						<span fckLang="DlgAboutLicense">Licensed under the terms of the GNU Lesser General 
+							Public License</span>
+						<br>
+						<a href="http://www.opensource.org/licenses/lgpl-license.php" target="_blank">http://www.opensource.org/licenses/lgpl-license.php</a>
+						<br>
+					</td>
+				</tr>
+				<tr>
+					<td height="100%">
+						<iframe height="100%" width="100%" src="fck_about/lgpl.html"></iframe>
+					</td>
+				</tr>
+			</table>
+		</div>
+		<div id="divInfo" style="DISPLAY: none" dir="ltr">
+			<table align="center" width="80%" border="0">
+				<tr>
+					<td>
+						<script language="javascript">
+<!--
+document.write( '<b>User Agent<\/b><br>' + window.navigator.userAgent + '<br><br>' ) ;
+document.write( '<b>Browser<\/b><br>' + window.navigator.appName + ' ' + window.navigator.appVersion + '<br><br>' ) ;
+document.write( '<b>Platform<\/b><br>' + window.navigator.platform + '<br><br>' ) ;
+
+var sUserLang = '?' ;
+
+if ( window.navigator.language )
+	sUserLang = window.navigator.language.toLowerCase() ;
+else if ( window.navigator.userLanguage )
+	sUserLang = window.navigator.userLanguage.toLowerCase() ;
+
+document.write( '<b>User Language<\/b><br>' + sUserLang ) ;
+//-->
+						</script>
+					</td>
+				</tr>
+			</table>
+		</div>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_anchor.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_anchor.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_anchor.html	(revision 389)
@@ -0,0 +1,98 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_anchor.html
+ * 	Anchor dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html>
+	<head>
+		<title>Anchor Properties</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta content="noindex, nofollow" name="robots">
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script type="text/javascript">
+
+var oEditor	= window.parent.InnerDialogLoaded() ;
+var FCK		= oEditor.FCK ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+var oFakeImage = FCK.Selection.GetSelectedElement() ;
+var oAnchor ;
+
+if ( oFakeImage )
+{
+	if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckanchor') )
+		oAnchor = FCK.GetRealElement( oFakeImage ) ;
+	else
+		oFakeImage = null ;
+}
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if ( oAnchor )
+		GetE('txtName').value = oAnchor.name ;
+	else
+		oAnchor = null ;
+
+	window.parent.SetOkButton( true ) ;
+}
+
+function Ok()
+{
+	if ( GetE('txtName').value.length == 0 )
+	{
+		alert( oEditor.FCKLang.DlgAnchorErrorName ) ;
+		return false ;
+	}
+	
+	oEditor.FCKUndo.SaveUndoStep() ;
+	
+	oAnchor		= FCK.EditorDocument.createElement( 'DIV' ) ;
+	oAnchor.innerHTML = '<a name="' + GetE('txtName').value + '"><\/a>' ;
+	oAnchor = oAnchor.firstChild ;
+
+	oFakeImage	= oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Anchor', oAnchor ) ;
+	oFakeImage.setAttribute( '_fckanchor', 'true', 0 ) ;
+	oFakeImage	= FCK.InsertElementAndGetIt( oFakeImage ) ;
+
+//	oEditor.FCK.InsertHtml( '<a name="' + GetE('txtName').value + '"><\/a>' ) ;
+	return true ;
+}
+
+		</script>
+	</head>
+	<body style="OVERFLOW: hidden" scroll="no">
+		<table height="100%" width="100%">
+			<tr>
+				<td align="center">
+					<table border="0" cellpadding="0" cellspacing="0" width="80%">
+						<tr>
+							<td>
+								<span fckLang="DlgAnchorName">Anchor Name</span><BR>
+								<input id="txtName" style="WIDTH: 100%" type="text">
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_replace.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_replace.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_replace.html	(revision 389)
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_replace.html
+ * 	"Replace" dialog box window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ * 		Abdul-Aziz A. Al-Oraij (aziz.oraij.com)
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+function OnLoad()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage( document ) ;
+
+	window.parent.SetAutoSize( true ) ;
+
+	oEditor.FCKUndo.SaveUndoStep() ;
+}
+
+function btnStat(frm)
+{
+	document.getElementById('btnReplace').disabled = 
+		document.getElementById('btnReplaceAll').disabled = 
+			( document.getElementById('txtFind').value.length == 0 ) ;
+}
+
+function ReplaceTextNodes( parentNode, regex, replaceValue, replaceAll, hasFound )
+{
+	for ( var i = 0 ; i < parentNode.childNodes.length ; i++ )
+	{
+		var oNode = parentNode.childNodes[i] ;
+		if ( oNode.nodeType == 3 )
+		{
+			var sReplaced = oNode.nodeValue.replace( regex, replaceValue ) ;
+			if ( oNode.nodeValue != sReplaced )
+			{
+				oNode.nodeValue = sReplaced ;
+				if ( ! replaceAll )
+					return true ;
+				hasFound = true ;
+			}
+		}
+
+		hasFound = ReplaceTextNodes( oNode, regex, replaceValue, replaceAll, hasFound ) ;
+		if ( ! replaceAll && hasFound )
+			return true ;
+	}
+	
+	return hasFound ;
+}
+
+function GetRegexExpr()
+{
+	var sExpr = EscapeRegexString( document.getElementById('txtFind').value ) ;
+
+	if ( document.getElementById('chkWord').checked )
+		sExpr = '\\b' + sExpr + '\\b' ;
+
+	return sExpr ;
+}
+
+function GetCase() 
+{
+	return ( document.getElementById('chkCase').checked ? '' : 'i' ) ;
+}
+
+function GetReplacement()
+{
+	return document.getElementById('txtReplace').value.replace( /\$/g, '$$$$' ) ;
+}
+
+function EscapeRegexString( str )
+{
+	return str.replace( /[\\\^\$\*\+\?\{\}\.\(\)\!\|\[\]\-]/g, '\\$&' ) ;
+}
+
+function Replace()
+{
+	var oRegex = new RegExp( GetRegexExpr(), GetCase() ) ;
+	if ( !ReplaceTextNodes( oEditor.FCK.EditorDocument.body, oRegex, GetReplacement(), false, false ) )
+		alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ;
+}
+
+function ReplaceAll()
+{
+	var oRegex = new RegExp( GetRegexExpr(), GetCase() + 'g' ) ;
+	if ( !ReplaceTextNodes( oEditor.FCK.EditorDocument.body, oRegex, GetReplacement(), true, false ) )
+		alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ;
+	window.parent.Cancel() ;
+}
+	</script>
+</head>
+<body onload="OnLoad()" style="overflow: hidden">
+	<table cellspacing="3" cellpadding="2" width="100%" border="0">
+		<tr>
+			<td nowrap="nowrap">
+				<label for="txtFind" fcklang="DlgReplaceFindLbl">
+					Find what:</label>
+			</td>
+			<td width="100%">
+				<input id="txtFind" onkeyup="btnStat(this.form)" style="width: 100%" tabindex="1"
+					type="text" />
+			</td>
+			<td>
+				<input id="btnReplace" style="width: 100%" disabled="disabled" onclick="Replace();"
+					type="button" value="Replace" fcklang="DlgReplaceReplaceBtn" />
+			</td>
+		</tr>
+		<tr>
+			<td valign="top" nowrap="nowrap">
+				<label for="txtReplace" fcklang="DlgReplaceReplaceLbl">
+					Replace with:</label>
+			</td>
+			<td valign="top">
+				<input id="txtReplace" style="width: 100%" tabindex="2" type="text" />
+			</td>
+			<td>
+				<input id="btnReplaceAll" disabled="disabled" onclick="ReplaceAll()" type="button"
+					value="Replace All" fcklang="DlgReplaceReplAllBtn" />
+			</td>
+		</tr>
+		<tr>
+			<td valign="bottom" colspan="3">
+				&nbsp;<input id="chkCase" tabindex="3" type="checkbox" /><label for="chkCase" fcklang="DlgReplaceCaseChk">Match
+					case</label>
+				<br />
+				&nbsp;<input id="chkWord" tabindex="4" type="checkbox" /><label for="chkWord" fcklang="DlgReplaceWordChk">Match
+					whole word</label>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_button.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_button.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_button.html	(revision 389)
@@ -0,0 +1,103 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_button.html
+ * 	Button dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>Button Properties</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+var oActiveEl = oEditor.FCKSelection.GetSelectedElement() ;
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if ( oActiveEl && oActiveEl.tagName.toUpperCase() == "INPUT" && ( oActiveEl.type == "button" || oActiveEl.type == "submit" || oActiveEl.type == "reset" ) )
+	{
+		GetE('txtName').value	= oActiveEl.name ;
+		GetE('txtValue').value	= oActiveEl.value ;
+		GetE('txtType').value	= oActiveEl.type ;
+
+		GetE('txtType').disabled = true ;
+	}
+	else
+		oActiveEl = null ;
+
+	window.parent.SetOkButton( true ) ;
+}
+
+function Ok()
+{
+	if ( !oActiveEl )
+	{
+		oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ;
+		oActiveEl.type = GetE('txtType').value ;
+		oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
+	}
+
+	oActiveEl.name = GetE('txtName').value ;
+	SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ;
+
+	return true ;
+}
+
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table width="100%" style="height: 100%">
+		<tr>
+			<td align="center">
+				<table border="0" cellpadding="0" cellspacing="0" width="80%">
+					<tr>
+						<td colspan="">
+							<span fcklang="DlgCheckboxName">Name</span><br />
+							<input type="text" size="20" id="txtName" style="width: 100%" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgButtonText">Text (Value)</span><br />
+							<input type="text" id="txtValue" style="width: 100%" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgButtonType">Type</span><br />
+							<select id="txtType">
+								<option fcklang="DlgButtonTypeBtn" value="button" selected="selected">Button</option>
+								<option fcklang="DlgButtonTypeSbm" value="submit">Submit</option>
+								<option fcklang="DlgButtonTypeRst" value="reset">Reset</option>
+							</select>
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_template.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_template.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_template.html	(revision 389)
@@ -0,0 +1,236 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_template.html
+ * 	Template selection dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<style type="text/css">
+			.TplList
+			{
+				border: #dcdcdc 2px solid;
+				background-color: #ffffff;
+				overflow: auto;
+				width: 90%;
+			}
+
+			.TplItem
+			{
+				margin: 5px;
+				padding: 7px;
+				border: #eeeeee 1px solid;
+			}
+
+			.TplItem TABLE
+			{
+				display: inline;
+			}
+
+			.TplTitle
+			{
+				font-weight: bold;
+			}
+		</style>
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var oEditor		= window.parent.InnerDialogLoaded() ;
+var FCK			= oEditor.FCK ;
+var FCKLang		= oEditor.FCKLang ;
+var FCKConfig	= oEditor.FCKConfig ;
+
+window.onload = function()
+{
+	// Set the right box height (browser dependent).
+	GetE('eList').style.height = document.all ? '100%' : '295px' ;
+
+	// Translate the dialog box texts.
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+	
+	GetE('xChkReplaceAll').checked = ( FCKConfig.TemplateReplaceAll !== false ) ;
+	
+	if ( FCKConfig.TemplateReplaceCheckbox !== false )
+		GetE('xReplaceBlock').style.display = '' ;
+
+	window.parent.SetAutoSize( true ) ;
+
+	LoadTemplatesXml() ;
+}
+
+function LoadTemplatesXml()
+{
+	if ( !FCK._Templates )
+	{
+		GetE('eLoading').style.display = '' ;
+
+		// Create the Templates array.
+		FCK._Templates = new Array() ;
+
+		// Load the XML file.
+		var oXml = new oEditor.FCKXml() ;
+		oXml.LoadUrl( FCKConfig.TemplatesXmlPath ) ;
+
+		// Get the Images Base Path.
+		var oAtt = oXml.SelectSingleNode( 'Templates/@imagesBasePath' ) ;
+		var sImagesBasePath = oAtt ? oAtt.value : '' ;
+
+		// Get the "Template" nodes defined in the XML file.
+		var aTplNodes = oXml.SelectNodes( 'Templates/Template' ) ;
+
+		for ( var i = 0 ; i < aTplNodes.length ; i++ )
+		{
+			var oNode = aTplNodes[i]
+
+			var oTemplate = new Object() ;
+
+			var oPart ;
+
+			// Get the Template Title.
+			if ( oPart = oNode.attributes.getNamedItem('title') )
+				oTemplate.Title = oPart.value ;
+			else
+				oTemplate.Title = 'Template ' + ( i + 1 ) ;
+
+			// Get the Template Description.
+			if ( oPart = oXml.SelectSingleNode( 'Description', oNode ) )
+				oTemplate.Description = oPart.text ? oPart.text : oPart.textContent ;
+
+			// Get the Template Image.
+			if ( oPart = oNode.attributes.getNamedItem('image') )
+				oTemplate.Image = sImagesBasePath + oPart.value ;
+
+			// Get the Template HTML.
+			if ( oPart = oXml.SelectSingleNode( 'Html', oNode ) )
+				oTemplate.Html = oPart.text ? oPart.text : oPart.textContent ;
+			else
+			{
+				alert( 'No HTML defined for template index ' + i + '. Please review the "' + FCKConfig.TemplatesXmlPath + '" file.' ) ;
+				continue ;
+			}
+
+			FCK._Templates[ FCK._Templates.length ] = oTemplate ;
+		}
+
+		GetE('eLoading').style.display = 'none' ;
+	}
+
+	if ( FCK._Templates.length == 0 )
+		GetE('eEmpty').style.display = '' ;
+	else
+	{
+		for ( var i = 0 ; i < FCK._Templates.length ; i++ )
+		{
+			var oTemplate = FCK._Templates[i] ;
+
+			var oItemDiv = GetE('eList').appendChild( document.createElement( 'DIV' ) ) ;
+			oItemDiv.TplIndex = i ;
+			oItemDiv.className = 'TplItem' ;
+
+			// Build the inner HTML of our new item DIV.
+			var sInner = '<table><tr>' ;
+
+			if ( oTemplate.Image )
+				sInner += '<td valign="top"><img src="' + oTemplate.Image + '"><\/td>' ;
+
+			sInner += '<td valign="top"><div class="TplTitle">' + oTemplate.Title + '<\/div>' ;
+
+			if ( oTemplate.Description )
+				sInner += '<div>' + oTemplate.Description + '<\/div>' ;
+
+			sInner += '<\/td><\/tr><\/table>' ;
+
+			oItemDiv.innerHTML = sInner ;
+			
+			oItemDiv.onmouseover = ItemDiv_OnMouseOver ;
+			oItemDiv.onmouseout = ItemDiv_OnMouseOut ;
+			oItemDiv.onclick = ItemDiv_OnClick ;
+		}
+	}
+}
+
+function ItemDiv_OnMouseOver()
+{
+	this.className += ' PopupSelectionBox' ;
+}
+
+function ItemDiv_OnMouseOut()
+{
+	this.className = this.className.replace( /\s*PopupSelectionBox\s*/, '' ) ;
+}
+
+function ItemDiv_OnClick()
+{
+	SelectTemplate( this.TplIndex ) ;
+}
+
+function SelectTemplate( index )
+{
+	oEditor.FCKUndo.SaveUndoStep() ;
+
+	if ( GetE('xChkReplaceAll').checked )
+		FCK.SetHTML( FCK._Templates[index].Html ) ;
+	else
+		FCK.InsertHtml( FCK._Templates[index].Html ) ;
+
+	window.parent.Cancel( true ) ;
+}
+
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table width="100%" style="height: 100%">
+		<tr>
+			<td align="center">
+				<span fcklang="DlgTemplatesSelMsg">Please select the template to open in the editor<br />
+					(the actual contents will be lost):</span>
+			</td>
+		</tr>
+		<tr>
+			<td height="100%" align="center">
+				<div id="eList" align="left" class="TplList">
+					<div id="eLoading" align="center" style="display: none">
+						<br />
+						<span fcklang="DlgTemplatesLoading">Loading templates list. Please wait...</span>
+					</div>
+					<div id="eEmpty" align="center" style="display: none">
+						<br />
+						<span fcklang="DlgTemplatesNoTpl">(No templates defined)</span>
+					</div>
+				</div>
+			</td>
+		</tr>
+		<tr id="xReplaceBlock" style="display: none">
+			<td>
+				<table cellpadding="0" cellspacing="0">
+					<tr>
+						<td>
+							<input id="xChkReplaceAll" type="checkbox" /></td>
+						<td>
+							&nbsp;</td>
+						<td>
+							<label for="xChkReplaceAll" fcklang="DlgTemplatesReplace">
+								Replace actual contents</label></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_paste.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_paste.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_paste.html	(revision 389)
@@ -0,0 +1,230 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_paste.html
+ * 	This dialog is shown when, for some reason (usually security settings), 
+ * 	the user is not able to paste data from the clipboard to the editor using 
+ * 	the toolbar buttons or the context menu.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<script type="text/javascript">
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+window.onload = function ()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+	
+	if ( window.parent.dialogArguments.CustomValue == 'Word' )
+	{
+		var oFrame = document.getElementById('frmData')
+		oFrame.style.display = '' ;
+		
+		if ( oFrame.contentDocument ) 
+			oFrame.contentDocument.designMode = 'on' ;
+		else
+			oFrame.contentWindow.document.body.contentEditable = true ;
+	}
+	else
+	{
+		document.getElementById('txtData').style.display = '' ;
+		document.getElementById('oWordCommands').style.display = 'none' ;
+	}
+
+	window.parent.SetOkButton( true ) ;	
+	window.parent.SetAutoSize( true ) ;	
+}
+
+function Ok()
+{
+	var sHtml ;
+	
+	if ( window.parent.dialogArguments.CustomValue == 'Word' )
+	{
+		var oFrame = document.getElementById('frmData') ;
+		
+		if ( oFrame.contentDocument ) 
+			sHtml = oFrame.contentDocument.body.innerHTML ;
+		else
+			sHtml = oFrame.contentWindow.document.body.innerHTML ;
+
+		sHtml = CleanWord( sHtml ) ;
+	}
+	else
+	{
+		var sHtml = oEditor.FCKTools.HTMLEncode( document.getElementById('txtData').value )  ;
+		sHtml = sHtml.replace( /\n/g, '<BR>' ) ;
+	}
+	
+	oEditor.FCK.InsertHtml( sHtml ) ;
+	
+	return true ;
+}
+
+function CleanUpBox()
+{
+	var oFrame = document.getElementById('frmData') ;
+	
+	if ( oFrame.contentDocument ) 
+		oFrame.contentDocument.body.innerHTML = '' ;
+	else
+		oFrame.contentWindow.document.body.innerHTML = '' ;
+}
+
+function CleanWord( html )
+{
+	var bIgnoreFont = document.getElementById('chkRemoveFont').checked ;
+	var bRemoveStyles = document.getElementById('chkRemoveStyles').checked ;
+
+	html = html.replace(/<o:p>\s*<\/o:p>/g, "") ;
+	html = html.replace(/<o:p>.*?<\/o:p>/g, "&nbsp;") ;
+	
+	// Remove mso-xxx styles.
+	html = html.replace( /\s*mso-[^:]+:[^;"]+;?/gi, "" ) ;
+
+	// Remove margin styles.
+	html = html.replace( /\s*MARGIN: 0cm 0cm 0pt\s*;/gi, "" ) ;
+	html = html.replace( /\s*MARGIN: 0cm 0cm 0pt\s*"/gi, "\"" ) ;
+
+	html = html.replace( /\s*TEXT-INDENT: 0cm\s*;/gi, "" ) ;
+	html = html.replace( /\s*TEXT-INDENT: 0cm\s*"/gi, "\"" ) ;
+
+	html = html.replace( /\s*TEXT-ALIGN: [^\s;]+;?"/gi, "\"" ) ;
+
+	html = html.replace( /\s*PAGE-BREAK-BEFORE: [^\s;]+;?"/gi, "\"" ) ;
+
+	html = html.replace( /\s*FONT-VARIANT: [^\s;]+;?"/gi, "\"" ) ;
+
+	html = html.replace( /\s*tab-stops:[^;"]*;?/gi, "" ) ;
+	html = html.replace( /\s*tab-stops:[^"]*/gi, "" ) ;
+
+	// Remove FONT face attributes.
+	if ( bIgnoreFont )
+	{
+		html = html.replace( /\s*face="[^"]*"/gi, "" ) ;
+		html = html.replace( /\s*face=[^ >]*/gi, "" ) ;
+
+		html = html.replace( /\s*FONT-FAMILY:[^;"]*;?/gi, "" ) ;
+	}
+	
+	// Remove Class attributes
+	html = html.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3") ;
+
+	// Remove styles.
+	if ( bRemoveStyles )
+		html = html.replace( /<(\w[^>]*) style="([^\"]*)"([^>]*)/gi, "<$1$3" ) ;
+
+	// Remove empty styles.
+	html =  html.replace( /\s*style="\s*"/gi, '' ) ;
+	
+	html = html.replace( /<SPAN\s*[^>]*>\s*&nbsp;\s*<\/SPAN>/gi, '&nbsp;' ) ;
+	
+	html = html.replace( /<SPAN\s*[^>]*><\/SPAN>/gi, '' ) ;
+	
+	// Remove Lang attributes
+	html = html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3") ;
+	
+	html = html.replace( /<SPAN\s*>(.*?)<\/SPAN>/gi, '$1' ) ;
+	
+	html = html.replace( /<FONT\s*>(.*?)<\/FONT>/gi, '$1' ) ;
+
+	// Remove XML elements and declarations
+	html = html.replace(/<\\?\?xml[^>]*>/gi, "") ;
+	
+	// Remove Tags with XML namespace declarations: <o:p><\/o:p>
+	html = html.replace(/<\/?\w+:[^>]*>/gi, "") ;
+	
+	// Remove comments [SF BUG-1481861].
+	html = html.replace(/<\!--.*-->/g, "") ;
+	
+	html = html.replace( /<H\d>\s*<\/H\d>/gi, '' ) ;
+
+	html = html.replace( /<H1([^>]*)>/gi, '<div$1><b><font size="6">' ) ;
+	html = html.replace( /<H2([^>]*)>/gi, '<div$1><b><font size="5">' ) ;
+	html = html.replace( /<H3([^>]*)>/gi, '<div$1><b><font size="4">' ) ;
+	html = html.replace( /<H4([^>]*)>/gi, '<div$1><b><font size="3">' ) ;
+	html = html.replace( /<H5([^>]*)>/gi, '<div$1><b><font size="2">' ) ;
+	html = html.replace( /<H6([^>]*)>/gi, '<div$1><b><font size="1">' ) ;
+
+	html = html.replace( /<\/H\d>/gi, '<\/font><\/b><\/div>' ) ;
+	
+	html = html.replace( /<(U|I|STRIKE)>&nbsp;<\/\1>/g, '&nbsp;' ) ;
+
+	// Remove empty tags (three times, just to be sure).
+	html = html.replace( /<([^\s>]+)(\s[^>]*)?>\s*<\/\1>/g, '' ) ;
+	html = html.replace( /<([^\s>]+)(\s[^>]*)?>\s*<\/\1>/g, '' ) ;
+	html = html.replace( /<([^\s>]+)(\s[^>]*)?>\s*<\/\1>/g, '' ) ;
+
+	// Transform <P> to <DIV>
+	var re = new RegExp( "(<P)([^>]*>.*?)(<\/P>)", "gi" ) ;	// Different because of a IE 5.0 error
+	html = html.replace( re, "<div$2<\/div>" ) ;
+	
+	// Fix relative anchor URLs (IE automatically adds the current page URL).
+	re = new RegExp( window.location + "#", "g" ) ;
+	html = html.replace( re, '#') ;
+
+	return html ;
+}
+
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table cellspacing="0" cellpadding="0" width="100%" border="0" style="height: 98%">
+		<tr>
+			<td>
+				<span fcklang="DlgPasteMsg2">Please paste inside the following box using the keyboard
+					(<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.</span>
+				<br />
+				&nbsp;
+			</td>
+		</tr>
+		<tr>
+			<td valign="top" height="100%" style="border-right: #000000 1px solid; border-top: #000000 1px solid;
+				border-left: #000000 1px solid; border-bottom: #000000 1px solid">
+				<textarea id="txtData" cols="80" rows="5" style="border: #000000 1px; display: none;
+					width: 99%; height: 98%"></textarea>
+				<iframe id="frmData" src="javascript:void(0)" height="98%" width="99%" frameborder="0"
+					style="border-right: #000000 1px; border-top: #000000 1px; display: none; border-left: #000000 1px;
+					border-bottom: #000000 1px; background-color: #ffffff"></iframe>
+			</td>
+		</tr>
+		<tr id="oWordCommands">
+			<td>
+				<table border="0" cellpadding="0" cellspacing="0" width="100%">
+					<tr>
+						<td nowrap="nowrap">
+							<input id="chkRemoveFont" type="checkbox" checked="checked" />
+							<label for="chkRemoveFont" fcklang="DlgPasteIgnoreFont">
+								Ignore Font Face definitions</label>
+							<br />
+							<input id="chkRemoveStyles" type="checkbox" />
+							<label for="chkRemoveStyles" fcklang="DlgPasteRemoveStyles">
+								Remove Styles definitions</label>
+						</td>
+						<td align="right" valign="top">
+							<input type="button" fcklang="DlgPasteCleanBox" value="Clean Up Box" onclick="CleanUpBox()" />
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_specialchar.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_specialchar.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_specialchar.html	(revision 389)
@@ -0,0 +1,109 @@
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_specialchar.html
+ * 	Special Chars Selector dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<html>
+	<head>
+		<meta name="robots" content="noindex, nofollow">
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<style type="text/css">
+				.Hand 
+				{ 
+					cursor: pointer ;
+					cursor: hand ; 
+				}
+				.Sample { font-size: 24px; }
+		</style>
+		<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+var oSample ;
+
+function insertChar(charValue)
+{
+	oEditor.FCK.InsertHtml( charValue || "" ) ;
+	window.parent.Cancel() ;
+}
+
+function over(td)
+{
+	oSample.innerHTML = td.innerHTML ;
+	td.className = 'LightBackground SpecialCharsOver Hand' ;
+}
+
+function out(td)
+{
+	oSample.innerHTML = "&nbsp;" ;
+	td.className = 'DarkBackground SpecialCharsOut Hand' ;
+}
+
+function setDefaults()
+{
+	// Gets the sample placeholder.
+	oSample = document.getElementById("SampleTD") ;
+
+	// First of all, translates the dialog box texts.
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+}
+
+		</script>
+	</HEAD>
+	<BODY onload="setDefaults()" scroll="no">
+		<table cellpadding="0" cellspacing="0" width="100%" height="100%">
+			<tr>
+				<td width="100%">
+					<table cellpadding="1" cellspacing="1" align="center" border="0" width="100%" height="100%">
+						<script type="text/javascript">
+var aChars = ["!","&quot;","#","$","%","&amp;","\\'","(",")","*","+","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","&lt;","=","&gt;","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~","&euro;","&lsquo;","&rsquo;","&rsquo;","&ldquo;","&rdquo;","&ndash;","&mdash;","&iexcl;","&cent;","&pound;","&curren;","&yen;","&brvbar;","&sect;","&uml;","&copy;","&ordf;","&laquo;","&not;","&reg;","&macr;","&deg;","&plusmn;","&sup2;","&sup3;","&acute;","&micro;","&para;","&middot;","&cedil;","&sup1;","&ordm;","&raquo;","&frac14;","&frac12;","&frac34;","&iquest;","&Agrave;","&Aacute;","&Acirc;","&Atilde;","&Auml;","&Aring;","&AElig;","&Ccedil;","&Egrave;","&Eacute;","&Ecirc;","&Euml;","&Igrave;","&Iacute;","&Icirc;","&Iuml;","&ETH;","&Ntilde;","&Ograve;","&Oacute;","&Ocirc;","&Otilde;","&Ouml;","&times;","&Oslash;","&Ugrave;","&Uacute;","&Ucirc;","&Uuml;","&Yacute;","&THORN;","&szlig;","&agrave;","&aacute;","&acirc;","&atilde;","&auml;","&aring;","&aelig;","&ccedil;","&egrave;","&eacute;","&ecirc;","&euml;","&igrave;","&iacute;","&icirc;","&iuml;","&eth;","&ntilde;","&ograve;","&oacute;","&ocirc;","&otilde;","&ouml;","&divide;","&oslash;","&ugrave;","&uacute;","&ucirc;","&uuml;","&uuml;","&yacute;","&thorn;","&yuml;","&OElig;","&oelig;","&sbquo;","&#8219;","&bdquo;","&hellip;","&trade;","&#9658;","&bull;","&rarr;","&rArr;","&hArr;","&diams;","&asymp;"] ;
+
+var cols = 20 ;
+
+var i = 0 ;
+while (i < aChars.length)
+{
+	document.write("<TR>") ;
+	for(var j = 0 ; j < cols ; j++) 
+	{
+		if (aChars[i])
+		{
+			document.write('<TD width="1%" class="DarkBackground SpecialCharsOut Hand" align="center" onclick="insertChar(\'' + aChars[i].replace(/&/g, "&amp;") + '\')" onmouseover="over(this)" onmouseout="out(this)">') ;
+			document.write(aChars[i]) ;
+		}
+		else
+			document.write("<TD class='DarkBackground SpecialCharsOut'>&nbsp;") ;
+		document.write("<\/TD>") ;
+		i++ ;
+	}
+	document.write("<\/TR>") ;
+}
+						</script>
+					</table>
+				</td>
+				<td nowrap>&nbsp;&nbsp;&nbsp;&nbsp;</td>
+				<td valign="top">
+					<table width="40" cellpadding="0" cellspacing="0" border="0">
+						<tr>
+							<td id="SampleTD" width="40" height="40" align="center" class="DarkBackground SpecialCharsOut Sample">&nbsp;</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</BODY>
+</HTML>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_select.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_select.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_select.html	(revision 389)
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_select.html
+ * 	Select dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html>
+	<head>
+		<title>Select Properties</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta content="noindex, nofollow" name="robots">
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script type="text/javascript" src="fck_select/fck_select.js"></script>
+		<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+var oActiveEl = oEditor.FCKSelection.GetSelectedElement() ;
+
+var oListText ;
+var oListValue ;
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	oListText	= document.getElementById( 'cmbText' ) ;
+	oListValue	= document.getElementById( 'cmbValue' ) ;
+
+	if ( oActiveEl && oActiveEl.tagName == 'SELECT' )
+	{
+		GetE('txtName').value		= oActiveEl.name ;
+		GetE('txtSelValue').value	= oActiveEl.value ;
+		GetE('txtLines').value		= GetAttribute( oActiveEl, 'size' ) ;
+		GetE('chkMultiple').checked	= oActiveEl.multiple ;
+
+		// Load the actual options
+		for ( var i = 0 ; i < oActiveEl.options.length ; i++ )
+		{
+			var sText	= oActiveEl.options[i].innerHTML ;
+			var sValue	= oActiveEl.options[i].value ;
+
+			AddComboOption( oListText, sText, sText ) ;
+			AddComboOption( oListValue, sValue, sValue ) ;
+		}
+	}
+	else
+		oActiveEl = null ;
+
+	window.parent.SetOkButton( true ) ;
+}
+
+function Ok()
+{
+	var sSize = GetE('txtLines').value ;
+	if ( sSize == null || isNaN( sSize ) || sSize <= 1 )
+		sSize = '' ;
+
+	if ( !oActiveEl )
+	{
+		oActiveEl = oEditor.FCK.EditorDocument.createElement( 'SELECT' ) ;
+		oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
+	}
+
+	SetAttribute( oActiveEl, 'name'	, GetE('txtName').value ) ;
+	SetAttribute( oActiveEl, 'size'	, sSize ) ;
+	oActiveEl.multiple = ( sSize.length > 0 && GetE('chkMultiple').checked ) ;
+
+	// Remove all options.
+	while ( oActiveEl.options.length > 0 )
+		oActiveEl.remove(0) ;
+
+	// Add all available options.
+	for ( var i = 0 ; i < oListText.options.length ; i++ )
+	{
+		var sText	= oListText.options[i].value ;
+		var sValue	= oListValue.options[i].value ;
+		if ( sValue.length == 0 ) sValue = sText ;
+
+		var oOption = AddComboOption( oActiveEl, sText, sValue, oDOM ) ;
+
+		if ( sValue == GetE('txtSelValue').value )
+		{
+			SetAttribute( oOption, 'selected', 'selected' ) ;
+			oOption.selected = true ;
+		}
+	}
+
+	return true ;
+}
+
+		</script>
+	</head>
+	<body style='OVERFLOW: hidden' scroll='no'>
+		<table width="100%" height="100%">
+			<tr>
+				<td>
+					<table width="100%">
+						<tr>
+							<td nowrap><span fckLang="DlgSelectName">Name</span>&nbsp;</td>
+							<td width="100%" colSpan="2"><input id="txtName" style="WIDTH: 100%" type="text"></td>
+						</tr>
+						<tr>
+							<td nowrap><span fckLang="DlgSelectValue">Value</span>&nbsp;</td>
+							<td width="100%" colSpan="2"><input id="txtSelValue" style="WIDTH: 100%; BACKGROUND-COLOR: buttonface" type="text" readonly></td>
+						</tr>
+						<tr>
+							<td nowrap><span fckLang="DlgSelectSize">Size</span>&nbsp;</td>
+							<td nowrap><input id="txtLines" type="text" size="2" value="">&nbsp;<span fckLang="DlgSelectLines">lines</span></td>
+							<td nowrap align="right"><input id="chkMultiple" name="chkMultiple" type="checkbox"><label for="chkMultiple" fckLang="DlgSelectChkMulti">Allow
+									multiple selections</label></td>
+						</tr>
+					</table>
+					<br>
+					<hr style="POSITION: absolute">
+					<span style="LEFT: 10px; POSITION: relative; TOP: -7px" class="BackColor">&nbsp;<span fckLang="DlgSelectOpAvail">Available
+							Options</span>&nbsp;</span>
+					<table width="100%">
+						<tr>
+							<td width="50%"><span fckLang="DlgSelectOpText">Text</span><br>
+								<input id="txtText" style="WIDTH: 100%" type="text" name="txtText">
+							</td>
+							<td width="50%"><span fckLang="DlgSelectOpValue">Value</span><br>
+								<input id="txtValue" style="WIDTH: 100%" type="text" name="txtValue">
+							</td>
+							<td vAlign="bottom"><input onclick="Add();" type="button" fckLang="DlgSelectBtnAdd" value="Add"></td>
+							<td vAlign="bottom"><input onclick="Modify();" type="button" fckLang="DlgSelectBtnModify" value="Modify"></td>
+						</tr>
+						<tr>
+							<td rowSpan="2"><select id="cmbText" style="WIDTH: 100%" onchange="GetE('cmbValue').selectedIndex = this.selectedIndex;Select(this);"
+									size="5" name="cmbText"></select>
+							</td>
+							<td rowSpan="2"><select id="cmbValue" style="WIDTH: 100%" onchange="GetE('cmbText').selectedIndex = this.selectedIndex;Select(this);"
+									size="5" name="cmbValue"></select>
+							</td>
+							<td vAlign="top" colSpan="2">
+							</td>
+						</tr>
+						<tr>
+							<td vAlign="bottom" colSpan="2"><input style="WIDTH: 100%" onclick="Move(-1);" type="button" fckLang="DlgSelectBtnUp" value="Up">
+								<br>
+								<input style="WIDTH: 100%" onclick="Move(1);" type="button" fckLang="DlgSelectBtnDown"
+									value="Down">
+							</td>
+						</tr>
+						<TR>
+							<TD vAlign="bottom" colSpan="4"><INPUT onclick="SetSelectedValue();" type="button" fckLang="DlgSelectBtnSetValue" value="Set as selected value">&nbsp;&nbsp;
+								<input onclick="Delete();" type="button" fckLang="DlgSelectBtnDelete" value="Delete"></TD>
+						</TR>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_colorselector.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_colorselector.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_colorselector.html	(revision 389)
@@ -0,0 +1,167 @@
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_colorselector.html
+ * 	Color Selection dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<html>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+		<meta name="robots" content="noindex, nofollow" />
+		<style TYPE="text/css">
+			#ColorTable		{ cursor: pointer ; cursor: hand ; }
+			#hicolor		{ height: 74px ; width: 74px ; border-width: 1px ; border-style: solid ; }
+			#hicolortext	{ width: 75px ; text-align: right ; margin-bottom: 7px ; }
+			#selhicolor		{ height: 20px ; width: 74px ; border-width: 1px ; border-style: solid ; }
+			#selcolor		{ width: 75px ; height: 20px ; margin-top: 0px ; margin-bottom: 7px ; }
+			#btnClear		{ width: 75px ; height: 22px ; margin-bottom: 6px ; }
+			.ColorCell		{ height: 15px ; width: 15px ; }
+		</style>
+		<script type="text/javascript">
+		
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+function OnLoad()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+	
+	CreateColorTable() ;
+	
+	window.parent.SetOkButton( true ) ;	
+	window.parent.SetAutoSize( true ) ;
+}
+
+function CreateColorTable()
+{
+	// Get the target table.
+	var oTable = document.getElementById('ColorTable') ;
+
+	// Create the base colors array.
+	var aColors = ['00','33','66','99','cc','ff'] ;
+
+	// This function combines two ranges of three values from the color array into a row.
+	function AppendColorRow( rangeA, rangeB )
+	{
+		for ( var i = rangeA ; i < rangeA + 3 ; i++ ) 
+		{ 
+			var oRow = oTable.insertRow(-1) ; 
+
+			for ( var j = rangeB ; j < rangeB + 3 ; j++ ) 
+			{ 
+				for ( var n = 0 ; n < 6 ; n++ ) 
+				{ 
+					AppendColorCell( oRow, '#' + aColors[j] + aColors[n] + aColors[i] ) ; 
+				} 
+			} 
+		}
+	}
+
+	// This function create a single color cell in the color table.
+	function AppendColorCell( targetRow, color )
+	{
+		var oCell = targetRow.insertCell(-1) ;
+		oCell.className = 'ColorCell' ;
+		oCell.bgColor = color ;
+		
+		oCell.onmouseover = function()
+		{
+			document.getElementById('hicolor').style.backgroundColor = this.bgColor ;
+			document.getElementById('hicolortext').innerHTML = this.bgColor ;
+		}
+		
+		oCell.onclick = function()
+		{
+			document.getElementById('selhicolor').style.backgroundColor = this.bgColor ;
+			document.getElementById('selcolor').value = this.bgColor ;
+		}
+	}
+
+	AppendColorRow( 0, 0 ) ;
+	AppendColorRow( 3, 0 ) ;
+	AppendColorRow( 0, 3 ) ;
+	AppendColorRow( 3, 3 ) ;
+
+	// Create the last row.
+	var oRow = oTable.insertRow(-1) ;
+	
+	// Create the gray scale colors cells.
+	for ( var n = 0 ; n < 6 ; n++ )
+	{
+		AppendColorCell( oRow, '#' + aColors[n] + aColors[n] + aColors[n] ) ; 
+	}
+	
+	// Fill the row with black cells.
+	for ( var i = 0 ; i < 12 ; i++ )
+	{
+		AppendColorCell( oRow, '#000000' ) ; 
+	}
+}
+
+function Clear()
+{
+	document.getElementById('selhicolor').style.backgroundColor = '' ;
+	document.getElementById('selcolor').value = '' ;
+}
+
+function ClearActual()
+{
+	document.getElementById('hicolor').style.backgroundColor = '' ;
+	document.getElementById('hicolortext').innerHTML = '&nbsp;' ;
+}
+
+function UpdateColor()
+{
+	try		  { document.getElementById('selhicolor').style.backgroundColor = document.getElementById('selcolor').value ; }
+	catch (e) { Clear() ; }
+}
+
+function Ok()
+{
+	if ( typeof(window.parent.dialogArguments.CustomValue) == 'function' )
+		window.parent.dialogArguments.CustomValue( document.getElementById('selcolor').value ) ;
+
+	return true ;
+}
+		</script>
+	</head>
+	<body onload="OnLoad()" scroll="no" style="OVERFLOW: hidden">
+		<table cellpadding="0" cellspacing="0" border="0" width="100%" height="100%">
+			<tr>
+				<td align="center" valign="middle">
+					<table border="0" cellspacing="5" cellpadding="0" width="100%">
+						<tr>
+							<td valign="top" align="center" nowrap width="100%">
+								<table id="ColorTable" border="0" cellspacing="0" cellpadding="0" width="270" onmouseout="ClearActual();">
+								</table>
+							</td>
+							<td valign="top" align="left" nowrap>
+								<span fckLang="DlgColorHighlight">Highlight</span>
+								<div id="hicolor"></div>
+								<div id="hicolortext">&nbsp;</div>
+								<span fckLang="DlgColorSelected">Selected</span>
+								<div id="selhicolor"></div>
+								<input id="selcolor" type="text" maxlength="20" onchange="UpdateColor();">
+								<br>
+								<input id="btnClear" type="button" fckLang="DlgColorBtnClear" value="Clear" onclick="Clear();" />
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_image/fck_image.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_image/fck_image.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_image/fck_image.js	(revision 389)
@@ -0,0 +1,477 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_image.js
+ * 	Scripts related to the Image dialog window (see fck_image.html).
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var oEditor		= window.parent.InnerDialogLoaded() ;
+var FCK			= oEditor.FCK ;
+var FCKLang		= oEditor.FCKLang ;
+var FCKConfig	= oEditor.FCKConfig ;
+var FCKDebug	= oEditor.FCKDebug ;
+
+var bImageButton = ( document.location.search.length > 0 && document.location.search.substr(1) == 'ImageButton' ) ;
+
+//#### Dialog Tabs
+
+// Set the dialog tabs.
+window.parent.AddTab( 'Info', FCKLang.DlgImgInfoTab ) ;
+
+if ( !bImageButton && !FCKConfig.ImageDlgHideLink )
+	window.parent.AddTab( 'Link', FCKLang.DlgImgLinkTab ) ;
+
+if ( FCKConfig.ImageUpload )
+	window.parent.AddTab( 'Upload', FCKLang.DlgLnkUpload ) ;
+
+if ( !FCKConfig.ImageDlgHideAdvanced )
+	window.parent.AddTab( 'Advanced', FCKLang.DlgAdvancedTag ) ;
+
+// Function called when a dialog tag is selected.
+function OnDialogTabChange( tabCode )
+{
+	ShowE('divInfo'		, ( tabCode == 'Info' ) ) ;
+	ShowE('divLink'		, ( tabCode == 'Link' ) ) ;
+	ShowE('divUpload'	, ( tabCode == 'Upload' ) ) ;
+	ShowE('divAdvanced'	, ( tabCode == 'Advanced' ) ) ;
+}
+
+// Get the selected image (if available).
+var oImage = FCK.Selection.GetSelectedElement() ;
+
+if ( oImage && oImage.tagName != 'IMG' && !( oImage.tagName == 'INPUT' && oImage.type == 'image' ) )
+	oImage = null ;
+
+// Get the active link.
+var oLink = FCK.Selection.MoveToAncestorNode( 'A' ) ;
+
+var oImageOriginal ;
+
+function UpdateOriginal( resetSize )
+{
+	if ( !eImgPreview )
+		return ;
+	
+	if ( GetE('txtUrl').value.length == 0 )
+	{
+		oImageOriginal = null ;
+		return ;
+	}
+		
+	oImageOriginal = document.createElement( 'IMG' ) ;	// new Image() ;
+
+	if ( resetSize )
+	{
+		oImageOriginal.onload = function()
+		{
+			this.onload = null ;
+			ResetSizes() ;
+		}
+	}
+
+	oImageOriginal.src = eImgPreview.src ;
+}
+
+var bPreviewInitialized ;
+
+window.onload = function()
+{
+	// Translate the dialog box texts.
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	GetE('btnLockSizes').title = FCKLang.DlgImgLockRatio ;
+	GetE('btnResetSize').title = FCKLang.DlgBtnResetSize ;
+
+	// Load the selected element information (if any).
+	LoadSelection() ;
+
+	// Show/Hide the "Browse Server" button.
+	GetE('tdBrowse').style.display				= FCKConfig.ImageBrowser	? '' : 'none' ;
+	GetE('divLnkBrowseServer').style.display	= FCKConfig.LinkBrowser		? '' : 'none' ;
+
+	UpdateOriginal() ;
+
+	// Set the actual uploader URL.
+	if ( FCKConfig.ImageUpload )
+		GetE('frmUpload').action = FCKConfig.ImageUploadURL ;
+
+	window.parent.SetAutoSize( true ) ;
+
+	// Activate the "OK" button.
+	window.parent.SetOkButton( true ) ;
+}
+
+function LoadSelection()
+{
+	if ( ! oImage ) return ;
+
+	var sUrl = oImage.getAttribute( '_fcksavedurl' ) ;
+	if ( sUrl == null )
+		sUrl = GetAttribute( oImage, 'src', '' ) ;
+
+	GetE('txtUrl').value    = sUrl ;
+	GetE('txtAlt').value    = GetAttribute( oImage, 'alt', '' ) ;
+	GetE('txtVSpace').value	= GetAttribute( oImage, 'vspace', '' ) ;
+	GetE('txtHSpace').value	= GetAttribute( oImage, 'hspace', '' ) ;
+	GetE('txtBorder').value	= GetAttribute( oImage, 'border', '' ) ;
+	GetE('cmbAlign').value	= GetAttribute( oImage, 'align', '' ) ;
+
+	var iWidth, iHeight ;
+
+	var regexSize = /^\s*(\d+)px\s*$/i ;
+	
+	if ( oImage.style.width )
+	{
+		var aMatch  = oImage.style.width.match( regexSize ) ;
+		if ( aMatch )
+		{
+			iWidth = aMatch[1] ;
+			oImage.style.width = '' ;
+		}
+	}
+
+	if ( oImage.style.height )
+	{
+		var aMatch  = oImage.style.height.match( regexSize ) ;
+		if ( aMatch )
+		{
+			iHeight = aMatch[1] ;
+			oImage.style.height = '' ;
+		}
+	}
+
+	GetE('txtWidth').value	= iWidth ? iWidth : GetAttribute( oImage, "width", '' ) ;
+	GetE('txtHeight').value	= iHeight ? iHeight : GetAttribute( oImage, "height", '' ) ;
+
+	// Get Advances Attributes
+	GetE('txtAttId').value			= oImage.id ;
+	GetE('cmbAttLangDir').value		= oImage.dir ;
+	GetE('txtAttLangCode').value	= oImage.lang ;
+	GetE('txtAttTitle').value		= oImage.title ;
+	GetE('txtAttClasses').value		= oImage.getAttribute('class',2) || '' ;
+	GetE('txtLongDesc').value		= oImage.longDesc ;
+
+	if ( oEditor.FCKBrowserInfo.IsIE )
+		GetE('txtAttStyle').value	= oImage.style.cssText ;
+	else
+		GetE('txtAttStyle').value	= oImage.getAttribute('style',2) ;
+
+	if ( oLink )
+	{
+		var sUrl = oLink.getAttribute( '_fcksavedurl' ) ;
+		if ( sUrl == null )
+			sUrl = oLink.getAttribute('href',2) ;
+	
+		GetE('txtLnkUrl').value		= sUrl ;
+		GetE('cmbLnkTarget').value	= oLink.target ;
+	}
+
+	UpdatePreview() ;
+}
+
+//#### The OK button was hit.
+function Ok()
+{
+	if ( GetE('txtUrl').value.length == 0 )
+	{
+		window.parent.SetSelectedTab( 'Info' ) ;
+		GetE('txtUrl').focus() ;
+
+		alert( FCKLang.DlgImgAlertUrl ) ;
+
+		return false ;
+	}
+
+	var bHasImage = ( oImage != null ) ;
+
+	if ( bHasImage && bImageButton && oImage.tagName == 'IMG' )
+	{
+		if ( confirm( 'Do you want to transform the selected image on a image button?' ) )
+			oImage = null ;
+	}
+	else if ( bHasImage && !bImageButton && oImage.tagName == 'INPUT' )
+	{
+		if ( confirm( 'Do you want to transform the selected image button on a simple image?' ) )
+			oImage = null ;
+	}
+	
+	if ( !bHasImage )
+	{
+		if ( bImageButton )
+		{
+			oImage = FCK.EditorDocument.createElement( 'INPUT' ) ;
+			oImage.type = 'image' ;
+			oImage = FCK.InsertElementAndGetIt( oImage ) ;
+		}
+		else
+			oImage = FCK.CreateElement( 'IMG' ) ;
+	}
+	else
+		oEditor.FCKUndo.SaveUndoStep() ;
+	
+	UpdateImage( oImage ) ;
+
+	var sLnkUrl = GetE('txtLnkUrl').value.trim() ;
+
+	if ( sLnkUrl.length == 0 )
+	{
+		if ( oLink )
+			FCK.ExecuteNamedCommand( 'Unlink' ) ;
+	}
+	else
+	{
+		if ( oLink )	// Modifying an existent link.
+			oLink.href = sLnkUrl ;
+		else			// Creating a new link.
+		{
+			if ( !bHasImage )
+				oEditor.FCKSelection.SelectNode( oImage ) ;
+
+			oLink = oEditor.FCK.CreateLink( sLnkUrl ) ;
+
+			if ( !bHasImage )
+			{
+				oEditor.FCKSelection.SelectNode( oLink ) ;
+				oEditor.FCKSelection.Collapse( false ) ;
+			}
+		}
+
+		SetAttribute( oLink, '_fcksavedurl', sLnkUrl ) ;
+		SetAttribute( oLink, 'target', GetE('cmbLnkTarget').value ) ;
+	}
+
+	return true ;
+}
+
+function UpdateImage( e, skipId )
+{
+	e.src = GetE('txtUrl').value ;
+	SetAttribute( e, "_fcksavedurl", GetE('txtUrl').value ) ;
+	SetAttribute( e, "alt"   , GetE('txtAlt').value ) ;
+	SetAttribute( e, "width" , GetE('txtWidth').value ) ;
+	SetAttribute( e, "height", GetE('txtHeight').value ) ;
+	SetAttribute( e, "vspace", GetE('txtVSpace').value ) ;
+	SetAttribute( e, "hspace", GetE('txtHSpace').value ) ;
+	SetAttribute( e, "border", GetE('txtBorder').value ) ;
+	SetAttribute( e, "align" , GetE('cmbAlign').value ) ;
+
+	// Advances Attributes
+
+	if ( ! skipId )
+		SetAttribute( e, 'id', GetE('txtAttId').value ) ;
+
+	SetAttribute( e, 'dir'		, GetE('cmbAttLangDir').value ) ;
+	SetAttribute( e, 'lang'		, GetE('txtAttLangCode').value ) ;
+	SetAttribute( e, 'title'	, GetE('txtAttTitle').value ) ;
+	SetAttribute( e, 'class'	, GetE('txtAttClasses').value ) ;
+	SetAttribute( e, 'longDesc'	, GetE('txtLongDesc').value ) ;
+
+	if ( oEditor.FCKBrowserInfo.IsIE )
+		e.style.cssText = GetE('txtAttStyle').value ;
+	else
+		SetAttribute( e, 'style', GetE('txtAttStyle').value ) ;
+}
+
+var eImgPreview ;
+var eImgPreviewLink ;
+
+function SetPreviewElements( imageElement, linkElement )
+{
+	eImgPreview = imageElement ;
+	eImgPreviewLink = linkElement ;
+
+	UpdatePreview() ;
+	UpdateOriginal() ;
+	
+	bPreviewInitialized = true ;
+}
+
+function UpdatePreview()
+{
+	if ( !eImgPreview || !eImgPreviewLink )
+		return ;
+
+	if ( GetE('txtUrl').value.length == 0 )
+		eImgPreviewLink.style.display = 'none' ;
+	else
+	{
+		UpdateImage( eImgPreview, true ) ;
+
+		if ( GetE('txtLnkUrl').value.trim().length > 0 )
+			eImgPreviewLink.href = 'javascript:void(null);' ;
+		else
+			SetAttribute( eImgPreviewLink, 'href', '' ) ;
+
+		eImgPreviewLink.style.display = '' ;
+	}
+}
+
+var bLockRatio = true ;
+
+function SwitchLock( lockButton )
+{
+	bLockRatio = !bLockRatio ;
+	lockButton.className = bLockRatio ? 'BtnLocked' : 'BtnUnlocked' ;
+	lockButton.title = bLockRatio ? 'Lock sizes' : 'Unlock sizes' ;
+
+	if ( bLockRatio )
+	{
+		if ( GetE('txtWidth').value.length > 0 )
+			OnSizeChanged( 'Width', GetE('txtWidth').value ) ;
+		else
+			OnSizeChanged( 'Height', GetE('txtHeight').value ) ;
+	}
+}
+
+// Fired when the width or height input texts change
+function OnSizeChanged( dimension, value )
+{
+	// Verifies if the aspect ration has to be mantained
+	if ( oImageOriginal && bLockRatio )
+	{
+		var e = dimension == 'Width' ? GetE('txtHeight') : GetE('txtWidth') ;
+		
+		if ( value.length == 0 || isNaN( value ) )
+		{
+			e.value = '' ;
+			return ;
+		}
+
+		if ( dimension == 'Width' )
+			value = value == 0 ? 0 : Math.round( oImageOriginal.height * ( value  / oImageOriginal.width ) ) ;
+		else
+			value = value == 0 ? 0 : Math.round( oImageOriginal.width  * ( value / oImageOriginal.height ) ) ;
+
+		if ( !isNaN( value ) )
+			e.value = value ;
+	}
+
+	UpdatePreview() ;
+}
+
+// Fired when the Reset Size button is clicked
+function ResetSizes()
+{
+	if ( ! oImageOriginal ) return ;
+
+	GetE('txtWidth').value  = oImageOriginal.width ;
+	GetE('txtHeight').value = oImageOriginal.height ;
+
+	UpdatePreview() ;
+}
+
+function BrowseServer()
+{
+	OpenServerBrowser(
+		'Image',
+		FCKConfig.ImageBrowserURL,
+		FCKConfig.ImageBrowserWindowWidth,
+		FCKConfig.ImageBrowserWindowHeight ) ;
+}
+
+function LnkBrowseServer()
+{
+	OpenServerBrowser(
+		'Link',
+		FCKConfig.LinkBrowserURL,
+		FCKConfig.LinkBrowserWindowWidth,
+		FCKConfig.LinkBrowserWindowHeight ) ;
+}
+
+function OpenServerBrowser( type, url, width, height )
+{
+	sActualBrowser = type ;
+	OpenFileBrowser( url, width, height ) ;
+}
+
+var sActualBrowser ;
+
+function SetUrl( url, width, height, alt )
+{
+	if ( sActualBrowser == 'Link' )
+	{
+		GetE('txtLnkUrl').value = url ;
+		UpdatePreview() ;
+	}
+	else
+	{
+		GetE('txtUrl').value = url ;
+		GetE('txtWidth').value = width ? width : '' ;
+		GetE('txtHeight').value = height ? height : '' ;
+
+		if ( alt )
+			GetE('txtAlt').value = alt;
+
+		UpdatePreview() ;
+		UpdateOriginal( true ) ;
+	}
+	
+	window.parent.SetSelectedTab( 'Info' ) ;
+}
+
+function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
+{
+	switch ( errorNumber )
+	{
+		case 0 :	// No errors
+			alert( 'Your file has been successfully uploaded' ) ;
+			break ;
+		case 1 :	// Custom error
+			alert( customMsg ) ;
+			return ;
+		case 101 :	// Custom warning
+			alert( customMsg ) ;
+			break ;
+		case 201 :
+			alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
+			break ;
+		case 202 :
+			alert( 'Invalid file type' ) ;
+			return ;
+		case 203 :
+			alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ;
+			return ;
+		default :
+			alert( 'Error on file upload. Error number: ' + errorNumber ) ;
+			return ;
+	}
+
+	sActualBrowser = ''
+	SetUrl( fileUrl ) ;
+	GetE('frmUpload').reset() ;
+}
+
+var oUploadAllowedExtRegex	= new RegExp( FCKConfig.ImageUploadAllowedExtensions, 'i' ) ;
+var oUploadDeniedExtRegex	= new RegExp( FCKConfig.ImageUploadDeniedExtensions, 'i' ) ;
+
+function CheckUpload()
+{
+	var sFile = GetE('txtUploadFile').value ;
+	
+	if ( sFile.length == 0 )
+	{
+		alert( 'Please select a file to upload' ) ;
+		return false ;
+	}
+	
+	if ( ( FCKConfig.ImageUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||
+		( FCKConfig.ImageUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )
+	{
+		OnUploadCompleted( 202 ) ;
+		return false ;
+	}
+	
+	return true ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_image/fck_image_preview.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_image/fck_image_preview.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_image/fck_image_preview.html	(revision 389)
@@ -0,0 +1,61 @@
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_image_preview.html
+ * 	Preview page for the Image dialog window.
+ * 	Curiosity: http://en.wikipedia.org/wiki/Lorem_ipsum
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<link href="../common/fck_dialog_common.css" rel="stylesheet" type="text/css" />
+	<script type="text/javascript">
+
+// Sets the Skin CSS
+document.write( '<link href="' + window.parent.FCKConfig.SkinPath + 'fck_dialog.css" type="text/css" rel="stylesheet">' ) ;
+
+if ( window.parent.FCKConfig.BaseHref.length > 0 )
+	document.write( '<base href="' + window.parent.FCKConfig.BaseHref + '">' ) ;
+
+window.onload = function()
+{
+	window.parent.SetPreviewElements( 
+		document.getElementById( 'imgPreview' ),
+		document.getElementById( 'lnkPreview' ) ) ;
+}
+
+	</script>
+</head>
+<body style="color: #000000; background-color: #ffffff">
+	<a id="lnkPreview" onclick="return false;" style="cursor: default">
+		<img id="imgPreview" onload="window.parent.UpdateOriginal();" style="display: none" /></a>Lorem
+	ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam.
+	Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla.
+	Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis
+	euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce
+	mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie.
+	Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque
+	egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem,
+	in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut
+	placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy
+	metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices,
+	ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris
+	non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas
+	elementum. Nunc imperdiet gravida mauris.
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_find.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_find.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_find.html	(revision 389)
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_find.html
+ * 	"Find" dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+function OnLoad()
+{
+	// Whole word is available on IE only.
+	if ( oEditor.FCKBrowserInfo.IsIE )
+		document.getElementById('divWord').style.display = '' ;
+
+	// First of all, translate the dialog box texts.
+	oEditor.FCKLanguageManager.TranslatePage( document ) ;
+
+	window.parent.SetAutoSize( true ) ;
+}
+
+function btnStat(frm)
+{
+	document.getElementById('btnFind').disabled =
+		( document.getElementById('txtFind').value.length == 0 ) ;
+}
+
+function ReplaceTextNodes( parentNode, regex, replaceValue, replaceAll )
+{
+	for ( var i = 0 ; i < parentNode.childNodes.length ; i++ )
+	{
+		var oNode = parentNode.childNodes[i] ;
+		if ( oNode.nodeType == 3 )
+		{
+			var sReplaced = oNode.nodeValue.replace( regex, replaceValue ) ;
+			if ( oNode.nodeValue != sReplaced )
+			{
+				oNode.nodeValue = sReplaced ;
+				if ( ! replaceAll )
+					return true ;
+			}
+		}
+		else
+		{
+			if ( ReplaceTextNodes( oNode, regex, replaceValue ) )
+				return true ;
+		}
+	}
+	return false ;
+}
+
+function GetRegexExpr()
+{
+	if ( document.getElementById('chkWord').checked )
+		var sExpr = '\\b' + document.getElementById('txtFind').value + '\\b' ;
+	else
+		var sExpr = document.getElementById('txtFind').value ;
+
+	return sExpr ;
+}
+
+function GetCase()
+{
+	return ( document.getElementById('chkCase').checked ? '' : 'i' ) ;
+}
+
+function Ok()
+{
+	if ( document.getElementById('txtFind').value.length == 0 )
+		return ;
+
+	if ( oEditor.FCKBrowserInfo.IsIE )
+		FindIE() ;
+	else
+		FindGecko() ;
+}
+
+var oRange ;
+
+if ( oEditor.FCKBrowserInfo.IsIE )
+	oRange = oEditor.FCK.EditorDocument.body.createTextRange() ;
+
+function FindIE()
+{
+	var iFlags = 0 ;
+
+	if ( chkCase.checked )
+		iFlags = iFlags | 4 ;
+
+	if ( chkWord.checked )
+		iFlags = iFlags | 2 ;
+
+	var bFound = oRange.findText( document.getElementById('txtFind').value, 1, iFlags ) ;
+
+	if ( bFound )
+	{
+		oRange.scrollIntoView() ;
+		oRange.select() ;
+		oRange.collapse(false) ;
+		oLastRangeFound = oRange ;
+	}
+	else
+	{
+		oRange = oEditor.FCK.EditorDocument.body.createTextRange() ;
+		alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ;
+	}
+}
+
+function FindGecko()
+{
+	var bCase = document.getElementById('chkCase').checked ;
+	var bWord = document.getElementById('chkWord').checked ;
+
+	// window.find( searchString, caseSensitive, backwards, wrapAround, wholeWord, searchInFrames, showDialog ) ;
+	if ( !oEditor.FCK.EditorWindow.find( document.getElementById('txtFind').value, bCase, false, false, bWord, false, false ) )
+		alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ;
+}
+	</script>
+</head>
+<body onload="OnLoad()" style="overflow: hidden">
+	<table cellspacing="3" cellpadding="2" width="100%" border="0">
+		<tr>
+			<td nowrap="nowrap">
+				<label for="txtFind" fcklang="DlgReplaceFindLbl">
+					Find what:</label>&nbsp;
+			</td>
+			<td width="100%">
+				<input id="txtFind" style="width: 100%" tabindex="1" type="text" />
+			</td>
+			<td>
+				<input id="btnFind" style="padding-right: 5px; padding-left: 5px" onclick="Ok();"
+					type="button" value="Find" fcklang="DlgFindFindBtn" />
+			</td>
+		</tr>
+		<tr>
+			<td valign="bottom" colspan="3">
+				&nbsp;<input id="chkCase" tabindex="3" type="checkbox" /><label for="chkCase" fcklang="DlgReplaceCaseChk">Match
+					case</label>
+				<br />
+				<div id="divWord" style="display: none">
+					&nbsp;<input id="chkWord" tabindex="4" type="checkbox" /><label for="chkWord" fcklang="DlgReplaceWordChk">Match
+						whole word</label>
+				</div>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_universalkey.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_universalkey.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_universalkey.html	(revision 389)
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_universalkey.html
+ * 	Unicode Keyboard dialog window.
+ * 
+ * File Authors:
+ * 		Abdul-Aziz Al-Oraij (top7up@hotmail.com)
+ * 		Michel Staelens
+ * 		Bernadette Cierzniak
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html>
+	<head>
+		<title>Universal Keyboard</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta content="noindex, nofollow" name="robots">
+		<link rel="stylesheet" type="text/css" href="fck_universalkey/fck_universalkey.css" />
+		<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+window.onload = function()
+{
+	document.body.style.padding = '0px' ;
+
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	window.parent.SetOkButton( true ) ;
+	window.parent.SetAutoSize( true ) ;	
+}
+
+function Ok()
+{
+	var oArea = document.getElementById( 'uni_area' ) ;
+
+	if ( oArea.value.length > 0 )
+		oEditor.FCK.InsertHtml( oArea.value ) ;
+
+	return true ;
+}
+
+		</script>
+	</head>
+	<body style="OVERFLOW: hidden" scroll="no">
+		<textarea id="uni_area" cols="40" rows="4" style="width:100%;height:60px;"></textarea>
+		<script type="text/javascript" src="fck_universalkey/data.js"></script>
+		<script type="text/javascript" src="fck_universalkey/diacritic.js"></script>
+		<script type="text/javascript" src="fck_universalkey/dialogue.js"></script>
+		<script type="text/javascript" src="fck_universalkey/multihexa.js"></script>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_image.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_image.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_image.html	(revision 389)
@@ -0,0 +1,248 @@
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_image.html
+ * 	Image Properties dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>Image Properties</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script src="fck_image/fck_image.js" type="text/javascript"></script>
+	<link href="common/fck_dialog_common.css" rel="stylesheet" type="text/css" />
+</head>
+<body scroll="no" style="overflow: hidden">
+	<div id="divInfo">
+		<table cellspacing="1" cellpadding="1" border="0" width="100%" height="100%">
+			<tr>
+				<td>
+					<table cellspacing="0" cellpadding="0" width="100%" border="0">
+						<tr>
+							<td width="100%">
+								<span fcklang="DlgImgURL">URL</span>
+							</td>
+							<td id="tdBrowse" style="display: none" nowrap="nowrap" rowspan="2">
+								&nbsp;
+								<input id="btnBrowse" onclick="BrowseServer();" type="button" value="Browse Server"
+									fcklang="DlgBtnBrowseServer" />
+							</td>
+						</tr>
+						<tr>
+							<td valign="top">
+								<input id="txtUrl" style="width: 100%" type="text" onblur="UpdatePreview();" />
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td>
+					<span fcklang="DlgImgAlt">Short Description</span><br />
+					<input id="txtAlt" style="width: 100%" type="text" /><br />
+				</td>
+			</tr>
+			<tr height="100%">
+				<td valign="top">
+					<table cellspacing="0" cellpadding="0" width="100%" border="0" height="100%">
+						<tr>
+							<td valign="top">
+								<br />
+								<table cellspacing="0" cellpadding="0" border="0">
+									<tr>
+										<td nowrap="nowrap">
+											<span fcklang="DlgImgWidth">Width</span>&nbsp;</td>
+										<td>
+											<input type="text" size="3" id="txtWidth" onkeyup="OnSizeChanged('Width',this.value);" /></td>
+										<td rowspan="2">
+											<div id="btnLockSizes" class="BtnLocked" onmouseover="this.className = (bLockRatio ? 'BtnLocked' : 'BtnUnlocked' ) + ' BtnOver';"
+												onmouseout="this.className = (bLockRatio ? 'BtnLocked' : 'BtnUnlocked' );" title="Lock Sizes"
+												onclick="SwitchLock(this);">
+											</div>
+										</td>
+										<td rowspan="2">
+											<div id="btnResetSize" class="BtnReset" onmouseover="this.className='BtnReset BtnOver';"
+												onmouseout="this.className='BtnReset';" title="Reset Size" onclick="ResetSizes();">
+											</div>
+										</td>
+									</tr>
+									<tr>
+										<td nowrap="nowrap">
+											<span fcklang="DlgImgHeight">Height</span>&nbsp;</td>
+										<td>
+											<input type="text" size="3" id="txtHeight" onkeyup="OnSizeChanged('Height',this.value);" /></td>
+									</tr>
+								</table>
+								<br />
+								<table cellspacing="0" cellpadding="0" border="0">
+									<tr>
+										<td nowrap="nowrap">
+											<span fcklang="DlgImgBorder">Border</span>&nbsp;</td>
+										<td>
+											<input type="text" size="2" value="" id="txtBorder" onkeyup="UpdatePreview();" /></td>
+									</tr>
+									<tr>
+										<td nowrap="nowrap">
+											<span fcklang="DlgImgHSpace">HSpace</span>&nbsp;</td>
+										<td>
+											<input type="text" size="2" id="txtHSpace" onkeyup="UpdatePreview();" /></td>
+									</tr>
+									<tr>
+										<td nowrap="nowrap">
+											<span fcklang="DlgImgVSpace">VSpace</span>&nbsp;</td>
+										<td>
+											<input type="text" size="2" id="txtVSpace" onkeyup="UpdatePreview();" /></td>
+									</tr>
+									<tr>
+										<td nowrap="nowrap">
+											<span fcklang="DlgImgAlign">Align</span>&nbsp;</td>
+										<td>
+											<select id="cmbAlign" onchange="UpdatePreview();">
+												<option value="" selected="selected"></option>
+												<option fcklang="DlgImgAlignLeft" value="left">Left</option>
+												<option fcklang="DlgImgAlignAbsBottom" value="absBottom">Abs Bottom</option>
+												<option fcklang="DlgImgAlignAbsMiddle" value="absMiddle">Abs Middle</option>
+												<option fcklang="DlgImgAlignBaseline" value="baseline">Baseline</option>
+												<option fcklang="DlgImgAlignBottom" value="bottom">Bottom</option>
+												<option fcklang="DlgImgAlignMiddle" value="middle">Middle</option>
+												<option fcklang="DlgImgAlignRight" value="right">Right</option>
+												<option fcklang="DlgImgAlignTextTop" value="textTop">Text Top</option>
+												<option fcklang="DlgImgAlignTop" value="top">Top</option>
+											</select>
+										</td>
+									</tr>
+								</table>
+							</td>
+							<td>
+								&nbsp;&nbsp;&nbsp;</td>
+							<td width="100%" valign="top">
+								<table cellpadding="0" cellspacing="0" width="100%" style="table-layout: fixed">
+									<tr>
+										<td>
+											<span fcklang="DlgImgPreview">Preview</span></td>
+									</tr>
+									<tr>
+										<td valign="top">
+											<iframe class="ImagePreviewArea" src="fck_image/fck_image_preview.html" frameborder="0"
+												marginheight="0" marginwidth="0"></iframe>
+										</td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</div>
+	<div id="divUpload" style="display: none">
+		<form id="frmUpload" method="post" target="UploadWindow" enctype="multipart/form-data"
+			action="" onsubmit="return CheckUpload();">
+			<span fcklang="DlgLnkUpload">Upload</span><br />
+			<input id="txtUploadFile" style="width: 100%" type="file" size="40" name="NewFile" /><br />
+			<br />
+			<input id="btnUpload" type="submit" value="Send it to the Server" fcklang="DlgLnkBtnUpload" />
+			<iframe name="UploadWindow" style="display: none" src="../fckblank.html"></iframe>
+		</form>
+	</div>
+	<div id="divLink" style="display: none">
+		<table cellspacing="1" cellpadding="1" border="0" width="100%">
+			<tr>
+				<td>
+					<div>
+						<span fcklang="DlgLnkURL">URL</span><br />
+						<input id="txtLnkUrl" style="width: 100%" type="text" onblur="UpdatePreview();" />
+					</div>
+					<div id="divLnkBrowseServer" align="right">
+						<input type="button" value="Browse Server" fcklang="DlgBtnBrowseServer" onclick="LnkBrowseServer();" />
+					</div>
+					<div>
+						<span fcklang="DlgLnkTarget">Target</span><br />
+						<select id="cmbLnkTarget">
+							<option value="" fcklang="DlgGenNotSet" selected="selected">&lt;not set&gt;</option>
+							<option value="_blank" fcklang="DlgLnkTargetBlank">New Window (_blank)</option>
+							<option value="_top" fcklang="DlgLnkTargetTop">Topmost Window (_top)</option>
+							<option value="_self" fcklang="DlgLnkTargetSelf">Same Window (_self)</option>
+							<option value="_parent" fcklang="DlgLnkTargetParent">Parent Window (_parent)</option>
+						</select>
+					</div>
+				</td>
+			</tr>
+		</table>
+	</div>
+	<div id="divAdvanced" style="display: none">
+		<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
+			<tr>
+				<td valign="top" width="50%">
+					<span fcklang="DlgGenId">Id</span><br />
+					<input id="txtAttId" style="width: 100%" type="text" />
+				</td>
+				<td width="1">
+					&nbsp;&nbsp;</td>
+				<td valign="top">
+					<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
+						<tr>
+							<td width="60%">
+								<span fcklang="DlgGenLangDir">Language Direction</span><br />
+								<select id="cmbAttLangDir" style="width: 100%">
+									<option value="" fcklang="DlgGenNotSet" selected="selected">&lt;not set&gt;</option>
+									<option value="ltr" fcklang="DlgGenLangDirLtr">Left to Right (LTR)</option>
+									<option value="rtl" fcklang="DlgGenLangDirRtl">Right to Left (RTL)</option>
+								</select>
+							</td>
+							<td width="1%">
+								&nbsp;&nbsp;</td>
+							<td nowrap="nowrap">
+								<span fcklang="DlgGenLangCode">Language Code</span><br />
+								<input id="txtAttLangCode" style="width: 100%" type="text" />&nbsp;
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td colspan="3">
+					&nbsp;</td>
+			</tr>
+			<tr>
+				<td colspan="3">
+					<span fcklang="DlgGenLongDescr">Long Description URL</span><br />
+					<input id="txtLongDesc" style="width: 100%" type="text" />
+				</td>
+			</tr>
+			<tr>
+				<td colspan="3">
+					&nbsp;</td>
+			</tr>
+			<tr>
+				<td valign="top">
+					<span fcklang="DlgGenClass">Stylesheet Classes</span><br />
+					<input id="txtAttClasses" style="width: 100%" type="text" />
+				</td>
+				<td>
+				</td>
+				<td valign="top">
+					&nbsp;<span fcklang="DlgGenTitle">Advisory Title</span><br />
+					<input id="txtAttTitle" style="width: 100%" type="text" />
+				</td>
+			</tr>
+		</table>
+		<span fcklang="DlgGenStyle">Style</span><br />
+		<input id="txtAttStyle" style="width: 100%" type="text" />
+	</div>
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_table.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_table.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_table.html	(revision 389)
@@ -0,0 +1,316 @@
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_table.html
+ * 	Table dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>Table Properties</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+// Gets the table if there is one selected.
+var table ;
+var e = oEditor.FCKSelection.GetSelectedElement() ;
+
+if ( ( !e && document.location.search.substr(1) == 'Parent' ) || ( e && e.tagName != 'TABLE' ) )
+	e = oEditor.FCKSelection.MoveToAncestorNode( 'TABLE' ) ;
+
+if ( e && e.tagName == "TABLE" )
+	table = e ;
+
+// Fired when the window loading process is finished. It sets the fields with the
+// actual values if a table is selected in the editor.
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if (table)
+	{
+		document.getElementById('txtRows').value    = table.rows.length ;
+		document.getElementById('txtColumns').value = table.rows[0].cells.length ;
+
+		// Gets the value from the Width or the Style attribute
+		var iWidth  = (table.style.width  ? table.style.width  : table.width ) ;
+		var iHeight = (table.style.height ? table.style.height : table.height ) ;
+
+		if (iWidth.indexOf('%') >= 0)			// Percentual = %
+		{
+			iWidth = parseInt( iWidth.substr(0,iWidth.length - 1) ) ;
+			document.getElementById('selWidthType').value = "percent" ;
+		}
+		else if (iWidth.indexOf('px') >= 0)		// Style Pixel = px
+		{																										  //
+			iWidth = iWidth.substr(0,iWidth.length - 2);
+			document.getElementById('selWidthType').value = "pixels" ;
+		}
+		
+		if (iHeight && iHeight.indexOf('px') >= 0)		// Style Pixel = px
+			iHeight = iHeight.substr(0,iHeight.length - 2);
+		
+		document.getElementById('txtWidth').value		= iWidth ;
+		document.getElementById('txtHeight').value		= iHeight ;
+		document.getElementById('txtBorder').value		= table.border ;
+		document.getElementById('selAlignment').value	= table.align ;
+		document.getElementById('txtCellPadding').value	= table.cellPadding	;
+		document.getElementById('txtCellSpacing').value	= table.cellSpacing	;
+		document.getElementById('txtSummary').value     = table.summary;
+//		document.getElementById('cmbFontStyle').value	= table.className ;
+
+		if (table.caption) document.getElementById('txtCaption').value = table.caption.innerHTML ;
+		
+		document.getElementById('txtRows').disabled    = true ;
+		document.getElementById('txtColumns').disabled = true ;
+	}
+	
+	window.parent.SetOkButton( true ) ;	
+	window.parent.SetAutoSize( true ) ;	
+}
+
+// Fired when the user press the OK button
+function Ok()
+{
+	var bExists = ( table != null ) ;
+	
+	if ( ! bExists )
+	{
+		table = oEditor.FCK.EditorDocument.createElement( "TABLE" ) ;
+	}
+
+	// Removes the Width and Height styles
+	if ( bExists && table.style.width )		table.style.width = null ; //.removeAttribute("width") ;
+	if ( bExists && table.style.height )	table.style.height = null ; //.removeAttribute("height") ;
+	
+	table.width			= document.getElementById('txtWidth').value + ( document.getElementById('selWidthType').value == "percent" ? "%" : "") ;
+	table.height		= document.getElementById('txtHeight').value ;
+	table.border		= document.getElementById('txtBorder').value ;
+	table.align			= document.getElementById('selAlignment').value ;
+	table.cellPadding	= document.getElementById('txtCellPadding').value ;
+	table.cellSpacing	= document.getElementById('txtCellSpacing').value ;
+	table.summary       = document.getElementById('txtSummary').value ;
+//	table.className		= cmbFontStyle.value ;
+	
+	if ( document.getElementById('txtCaption').value != '')
+	{
+		if (! table.caption) table.createCaption() ;
+		table.caption.innerHTML = document.getElementById('txtCaption').value ;
+	}
+	else if ( bExists && table.caption )
+	{
+		if ( document.all )
+			table.caption.innerHTML = '' ;	// TODO: It causes an IE internal error if using removeChild.
+		else
+			table.caption.parentNode.removeChild( table.caption ) ;
+	}
+		
+	if (! bExists)
+	{
+		var iRows = document.getElementById('txtRows').value ;
+		var iCols = document.getElementById('txtColumns').value ;
+		
+		for ( var r = 0 ; r < iRows ; r++ )
+		{
+			var oRow = table.insertRow(-1) ;
+			for ( var c = 0 ; c < iCols ; c++ )
+			{
+				var oCell = oRow.insertCell(-1) ;
+				if ( oEditor.FCKBrowserInfo.IsGecko )
+					oCell.innerHTML = '<br _moz_editor_bogus_node="TRUE">' ;
+				//oCell.innerHTML = "&nbsp;" ;
+			}
+		}
+		
+		oEditor.FCKUndo.SaveUndoStep() ;
+		
+		// START iCM MODIFICATIONS	
+		// Amended to ensure that newly inserted tables are not incorrectly nested in P tags, etc
+		// We insert the table first and then rectify any nestings afterwards so we can re-use the
+		// FCKTablesProcessor function that corrects tables on SetHTML()
+		/*
+		table = oEditor.FCK.InsertElementAndGetIt( table ) ;
+		if ( !oEditor.FCKConfig.UseBROnCarriageReturn )
+		{
+			oEditor.FCKTablesProcessor.CheckTableNesting( table ) ;
+		}
+		*/
+		// END iCM MODIFICATIONS	
+		
+		oEditor.FCK.InsertElement( table ) ;
+	}
+	
+	return true ;
+}
+
+function IsDigit( e )
+{
+	e = e || event ;
+	var iCode = ( e.keyCode || e.charCode ) ;
+	return 
+		(
+			( iCode >= 48 && iCode <= 57 )		// Numbers
+			|| (iCode >= 37 && iCode <= 40)		// Arrows
+			|| iCode == 8		// Backspace
+			|| iCode == 46		// Delete
+		) ;
+}
+
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table id="otable" cellspacing="0" cellpadding="0" width="100%" border="0" style="height: 100%">
+		<tr>
+			<td>
+				<table cellspacing="1" cellpadding="1" width="100%" border="0">
+					<tr>
+						<td valign="top">
+							<table cellspacing="0" cellpadding="0" border="0">
+								<tr>
+									<td>
+										<span fcklang="DlgTableRows">Rows</span>:</td>
+									<td>
+										&nbsp;<input id="txtRows" type="text" maxlength="3" size="2" value="3" name="txtRows"
+											onkeypress="return IsDigit(event);" /></td>
+								</tr>
+								<tr>
+									<td>
+										<span fcklang="DlgTableColumns">Columns</span>:</td>
+									<td>
+										&nbsp;<input id="txtColumns" type="text" maxlength="2" size="2" value="2" name="txtColumns"
+											onkeypress="return IsDigit(event);" /></td>
+								</tr>
+								<tr>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+								</tr>
+								<tr>
+									<td>
+										<span fcklang="DlgTableBorder">Border size</span>:</td>
+									<td>
+										&nbsp;<input id="txtBorder" type="text" maxlength="2" size="2" value="1" name="txtBorder"
+											onkeypress="return IsDigit(event);" /></td>
+								</tr>
+								<tr>
+									<td>
+										<span fcklang="DlgTableAlign">Alignment</span>:</td>
+									<td>
+										&nbsp;<select id="selAlignment" name="selAlignment">
+											<option fcklang="DlgTableAlignNotSet" value="" selected="selected">&lt;Not set&gt;</option>
+											<option fcklang="DlgTableAlignLeft" value="left">Left</option>
+											<option fcklang="DlgTableAlignCenter" value="center">Center</option>
+											<option fcklang="DlgTableAlignRight" value="right">Right</option>
+										</select></td>
+								</tr>
+							</table>
+						</td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td align="right" valign="top">
+							<table cellspacing="0" cellpadding="0" border="0">
+								<tr>
+									<td>
+										<span fcklang="DlgTableWidth">Width</span>:</td>
+									<td>
+										&nbsp;<input id="txtWidth" type="text" maxlength="4" size="3" value="200" name="txtWidth"
+											onkeypress="return IsDigit(event);" /></td>
+									<td>
+										&nbsp;<select id="selWidthType" name="selWidthType">
+											<option fcklang="DlgTableWidthPx" value="pixels" selected="selected">pixels</option>
+											<option fcklang="DlgTableWidthPc" value="percent">percent</option>
+										</select></td>
+								</tr>
+								<tr>
+									<td>
+										<span fcklang="DlgTableHeight">Height</span>:</td>
+									<td>
+										&nbsp;<input id="txtHeight" type="text" maxlength="4" size="3" name="txtHeight" onkeypress="return IsDigit(event);" /></td>
+									<td>
+										&nbsp;<span fcklang="DlgTableWidthPx">pixels</span></td>
+								</tr>
+								<tr>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgTableCellSpace">Cell spacing</span>:</td>
+									<td>
+										&nbsp;<input id="txtCellSpacing" type="text" maxlength="2" size="2" value="1" name="txtCellSpacing"
+											onkeypress="return IsDigit(event);" /></td>
+									<td>
+										&nbsp;</td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgTableCellPad">Cell padding</span>:</td>
+									<td>
+										&nbsp;<input id="txtCellPadding" type="text" maxlength="2" size="2" value="1" name="txtCellPadding"
+											onkeypress="return IsDigit(event);" /></td>
+									<td>
+										&nbsp;</td>
+								</tr>
+							</table>
+						</td>
+					</tr>
+				</table>
+				<table cellspacing="0" cellpadding="0" width="100%" border="0">
+					<!--
+						<tr>
+						<td nowrap>
+						<span fcklang="DlgClassName">Class Name</span>:</td>
+							<td>&nbsp;</td>
+										<td>
+										<script type="text/javascript">
+//											var tbstyles = new TBCombo( "FontStyle"		, "null"			, "", oEditor.config.StyleNames, oEditor.config.StyleValues, 'CheckStyle("cmbFontStyle")');
+//											document.write(tbstyles.GetHTML());
+										</script></td>
+						</tr>
+					-->
+					<tr>
+						<td nowrap="nowrap">
+							<span fcklang="DlgTableCaption">Caption</span>:&nbsp;</td>
+						<td>
+							&nbsp;</td>
+						<td width="100%" nowrap="nowrap">
+							<input id="txtCaption" type="text" style="width: 100%" /></td>
+					</tr>
+					<tr>
+						<td nowrap="nowrap">
+							<span fcklang="DlgTableSummary">Summary</span>:&nbsp;</td>
+						<td>
+							&nbsp;</td>
+						<td width="100%" nowrap="nowrap">
+							<input id="txtSummary" type="text" style="width: 100%" /></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_tablecell.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_tablecell.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_tablecell.html	(revision 389)
@@ -0,0 +1,251 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_tablecell.html
+ * 	Cell properties dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>Table Cell Properties</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+// Array of selected Cells
+var aCells = oEditor.FCKTableHandler.GetSelectedCells() ;
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage( document ) ;
+
+	SetStartupValue() ;
+
+	window.parent.SetOkButton( true ) ;
+	window.parent.SetAutoSize( true ) ;
+}
+
+function SetStartupValue()
+{
+	if ( aCells.length > 0 )
+	{
+		var oCell = aCells[0] ;
+		var iWidth = GetAttribute( oCell, 'width' ) ;
+
+		if ( iWidth.indexOf && iWidth.indexOf( '%' ) >= 0 )
+		{
+			iWidth = iWidth.substr( 0, iWidth.length - 1 ) ;
+			GetE('selWidthType').value = 'percent' ;
+		}
+
+		if ( oCell.attributes['noWrap'] != null && oCell.attributes['noWrap'].specified )
+			GetE('selWordWrap').value = !oCell.noWrap ;
+
+		GetE('txtWidth').value			= iWidth ;
+		GetE('txtHeight').value			= GetAttribute( oCell, 'height' ) ;
+		GetE('selHAlign').value			= GetAttribute( oCell, 'align' ) ;
+		GetE('selVAlign').value			= GetAttribute( oCell, 'vAlign' ) ;
+		GetE('txtRowSpan').value		= GetAttribute( oCell, 'rowSpan' ) ;
+		GetE('txtCollSpan').value		= GetAttribute( oCell, 'colSpan' ) ;
+		GetE('txtBackColor').value		= GetAttribute( oCell, 'bgColor' ) ;
+		GetE('txtBorderColor').value	= GetAttribute( oCell, 'borderColor' ) ;
+//		GetE('cmbFontStyle').value		= oCell.className ;
+	}
+}
+
+// Fired when the user press the OK button
+function Ok()
+{
+	for( i = 0 ; i < aCells.length ; i++ )
+	{
+		if ( GetE('txtWidth').value.length > 0 )
+			aCells[i].width	= GetE('txtWidth').value + ( GetE('selWidthType').value == 'percent' ? '%' : '') ;
+		else
+			aCells[i].removeAttribute( 'width', 0 ) ;
+
+		if ( GetE('selWordWrap').value == 'false' )
+			aCells[i].noWrap = true ;
+		else
+			aCells[i].removeAttribute( 'noWrap' ) ;
+
+		SetAttribute( aCells[i], 'height'		, GetE('txtHeight').value ) ;
+		SetAttribute( aCells[i], 'align'		, GetE('selHAlign').value ) ;
+		SetAttribute( aCells[i], 'vAlign'		, GetE('selVAlign').value ) ;
+		SetAttribute( aCells[i], 'rowSpan'		, GetE('txtRowSpan').value ) ;
+		SetAttribute( aCells[i], 'colSpan'		, GetE('txtCollSpan').value ) ;
+		SetAttribute( aCells[i], 'bgColor'		, GetE('txtBackColor').value ) ;
+		SetAttribute( aCells[i], 'borderColor'	, GetE('txtBorderColor').value ) ;
+//		SetAttribute( aCells[i], 'className'	, GetE('cmbFontStyle').value ) ;
+	}
+
+	return true ;
+}
+
+function SelectBackColor( color )
+{
+	if ( color && color.length > 0 )
+		GetE('txtBackColor').value = color ;
+}
+
+function SelectBorderColor( color )
+{
+	if ( color && color.length > 0 )
+		GetE('txtBorderColor').value = color ;
+}
+
+function SelectColor( wich )
+{
+	oEditor.FCKDialog.OpenDialog( 'FCKDialog_Color', oEditor.FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 400, 330, wich == 'Back' ? SelectBackColor : SelectBorderColor, window ) ;
+}
+
+	</script>
+</head>
+<body scroll="no" style="overflow: hidden">
+	<table cellspacing="0" cellpadding="0" width="100%" border="0" height="100%">
+		<tr>
+			<td>
+				<table cellspacing="1" cellpadding="1" width="100%" border="0">
+					<tr>
+						<td>
+							<table cellspacing="0" cellpadding="0" border="0">
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellWidth">Width</span>:</td>
+									<td>
+										&nbsp;<input onkeypress="return IsDigit(event);" id="txtWidth" type="text" maxlength="4"
+											size="3" name="txtWidth" />&nbsp;<select id="selWidthType" name="selWidthType">
+												<option fcklang="DlgCellWidthPx" value="pixels" selected="selected">pixels</option>
+												<option fcklang="DlgCellWidthPc" value="percent">percent</option>
+											</select></td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellHeight">Height</span>:</td>
+									<td>
+										&nbsp;<input id="txtHeight" type="text" maxlength="4" size="3" name="txtHeight" onkeypress="return IsDigit(event);" />&nbsp;<span
+											fcklang="DlgCellWidthPx">pixels</span></td>
+								</tr>
+								<tr>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellWordWrap">Word Wrap</span>:</td>
+									<td>
+										&nbsp;<select id="selWordWrap" name="selAlignment">
+											<option fcklang="DlgCellWordWrapYes" value="true" selected="selected">Yes</option>
+											<option fcklang="DlgCellWordWrapNo" value="false">No</option>
+										</select></td>
+								</tr>
+								<tr>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellHorAlign">Horizontal Alignment</span>:</td>
+									<td>
+										&nbsp;<select id="selHAlign" name="selAlignment">
+											<option fcklang="DlgCellHorAlignNotSet" value="" selected>&lt;Not set&gt;</option>
+											<option fcklang="DlgCellHorAlignLeft" value="left">Left</option>
+											<option fcklang="DlgCellHorAlignCenter" value="center">Center</option>
+											<option fcklang="DlgCellHorAlignRight" value="right">Right</option>
+										</select></td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellVerAlign">Vertical Alignment</span>:</td>
+									<td>
+										&nbsp;<select id="selVAlign" name="selAlignment">
+											<option fcklang="DlgCellVerAlignNotSet" value="" selected>&lt;Not set&gt;</option>
+											<option fcklang="DlgCellVerAlignTop" value="top">Top</option>
+											<option fcklang="DlgCellVerAlignMiddle" value="middle">Middle</option>
+											<option fcklang="DlgCellVerAlignBottom" value="bottom">Bottom</option>
+											<option fcklang="DlgCellVerAlignBaseline" value="baseline">Baseline</option>
+										</select></td>
+								</tr>
+							</table>
+						</td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td align="right">
+							<table cellspacing="0" cellpadding="0" border="0">
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellRowSpan">Rows Span</span>:</td>
+									<td>
+										&nbsp;
+										<input onkeypress="return IsDigit(event);" id="txtRowSpan" type="text" maxlength="3" size="2"
+											name="txtRows"></td>
+									<td>
+									</td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellCollSpan">Columns Span</span>:</td>
+									<td>
+										&nbsp;
+										<input onkeypress="return IsDigit(event);" id="txtCollSpan" type="text" maxlength="2"
+											size="2" name="txtColumns"></td>
+									<td>
+									</td>
+								</tr>
+								<tr>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellBackColor">Background Color</span>:</td>
+									<td>
+										&nbsp;<input id="txtBackColor" type="text" size="8" name="txtCellSpacing"></td>
+									<td>
+										&nbsp;
+										<input type="button" fcklang="DlgCellBtnSelect" value="Select..." onclick="SelectColor( 'Back' )"></td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellBorderColor">Border Color</span>:</td>
+									<td>
+										&nbsp;<input id="txtBorderColor" type="text" size="8" name="txtCellPadding" /></td>
+									<td>
+										&nbsp;
+										<input type="button" fcklang="DlgCellBtnSelect" value="Select..." onclick="SelectColor( 'Border' )" /></td>
+								</tr>
+							</table>
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_textfield.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_textfield.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_textfield.html	(revision 389)
@@ -0,0 +1,135 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_textfield.html
+ * 	Text field dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+var oActiveEl = oEditor.FCKSelection.GetSelectedElement() ;
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if ( oActiveEl && oActiveEl.tagName == 'INPUT' && ( oActiveEl.type == 'text' || oActiveEl.type == 'password' ) )
+	{
+		GetE('txtName').value	= oActiveEl.name ;
+		GetE('txtValue').value	= oActiveEl.value ;
+		GetE('txtSize').value	= GetAttribute( oActiveEl, 'size' ) ;
+		GetE('txtMax').value	= GetAttribute( oActiveEl, 'maxLength' ) ;
+		GetE('txtType').value	= oActiveEl.type ;
+
+		GetE('txtType').disabled = true ;
+	}
+	else
+		oActiveEl = null ;
+
+	window.parent.SetOkButton( true ) ;
+}
+
+function Ok()
+{
+	if ( isNaN( GetE('txtMax').value ) || GetE('txtMax').value < 0 )
+	{
+		alert( "Maximum characters must be a positive number." ) ;
+		GetE('txtMax').focus() ;
+		return false ;
+	}
+	else if( isNaN( GetE('txtSize').value ) || GetE('txtSize').value < 0 )
+	{
+		alert( "Width must be a positive number." ) ;
+		GetE('txtSize').focus() ;
+		return false ;
+	}
+
+	if ( !oActiveEl )
+	{
+		oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ;
+		oActiveEl.type = GetE('txtType').value ;
+		oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
+	}
+
+	oActiveEl.name = GetE('txtName').value ;
+	SetAttribute( oActiveEl, 'value'	, GetE('txtValue').value ) ;
+	SetAttribute( oActiveEl, 'size'		, GetE('txtSize').value ) ;
+	SetAttribute( oActiveEl, 'maxlength', GetE('txtMax').value ) ;
+
+	return true ;
+}
+
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table width="100%" style="height: 100%">
+		<tr>
+			<td align="center">
+				<table cellspacing="0" cellpadding="0" border="0">
+					<tr>
+						<td>
+							<span fcklang="DlgTextName">Name</span><br />
+							<input id="txtName" type="text" size="20" />
+						</td>
+						<td>
+						</td>
+						<td>
+							<span fcklang="DlgTextValue">Value</span><br />
+							<input id="txtValue" type="text" size="25" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgTextCharWidth">Character Width</span><br />
+							<input id="txtSize" type="text" size="5" />
+						</td>
+						<td>
+						</td>
+						<td>
+							<span fcklang="DlgTextMaxChars">Maximum Characters</span><br />
+							<input id="txtMax" type="text" size="5" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgTextType">Type</span><br />
+							<select id="txtType">
+								<option value="text" selected="selected" fcklang="DlgTextTypeText">Text</option>
+								<option value="password" fcklang="DlgTextTypePass">Password</option>
+							</select>
+						</td>
+						<td>
+							&nbsp;</td>
+						<td>
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_docprops.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_docprops.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_docprops.html	(revision 389)
@@ -0,0 +1,591 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_docprops.html
+ * 	Link dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var oEditor		= window.parent.InnerDialogLoaded() ;
+var FCK			= oEditor.FCK ;
+var FCKLang		= oEditor.FCKLang ;
+var FCKConfig	= oEditor.FCKConfig ;
+
+//#### Dialog Tabs
+
+// Set the dialog tabs.
+window.parent.AddTab( 'General'		, FCKLang.DlgDocGeneralTab ) ;
+window.parent.AddTab( 'Background'	, FCKLang.DlgDocBackTab ) ;
+window.parent.AddTab( 'Colors'		, FCKLang.DlgDocColorsTab ) ;
+window.parent.AddTab( 'Meta'		, FCKLang.DlgDocMetaTab ) ;
+
+// Function called when a dialog tag is selected.
+function OnDialogTabChange( tabCode )
+{
+	ShowE( 'divGeneral'		, ( tabCode == 'General' ) ) ;
+	ShowE( 'divBackground'	, ( tabCode == 'Background' ) ) ;
+	ShowE( 'divColors'		, ( tabCode == 'Colors' ) ) ;
+	ShowE( 'divMeta'		, ( tabCode == 'Meta' ) ) ;
+
+	ShowE( 'ePreview'		, ( tabCode == 'Background' || tabCode == 'Colors' ) ) ;
+}
+
+//#### Get Base elements from the document: BEGIN
+
+// The HTML element of the document.
+var oHTML = FCK.EditorDocument.getElementsByTagName('html')[0] ;
+
+// The HEAD element of the document.
+var oHead = oHTML.getElementsByTagName('head')[0] ;
+
+var oBody = FCK.EditorDocument.body ;
+
+// This object contains all META tags defined in the document.
+var oMetaTags = new Object() ;
+
+// Get all META tags defined in the document.
+var aMetas = oHead.getElementsByTagName('meta') ;
+
+// Loop throw all METAs and put it in the HashTable.
+for ( var i = 0 ; i < aMetas.length ; i++ )
+{
+	// Try to get the "name" attribute.
+	var sName = GetAttribute( aMetas[i], 'name', GetAttribute( aMetas[i], '___fcktoreplace:name', '' ) ) ;
+
+	// If no "name", try with the "http-equiv" attribute.
+	if ( sName.length == 0 )
+	{
+		if ( document.all )
+		{
+			// Get the http-equiv value from the outerHTML.
+			var oHttpEquivMatch = aMetas[i].outerHTML.match( oEditor.FCKRegexLib.MetaHttpEquiv ) ;
+			if ( oHttpEquivMatch )
+				sName = oHttpEquivMatch[1] ;
+		}
+		else
+			sName = GetAttribute( aMetas[i], 'http-equiv', '' ) ;
+	}
+
+	if ( sName.length > 0 )
+		oMetaTags[ sName.toLowerCase() ] = aMetas[i] ;
+}
+
+//#### END
+
+// Set a META tag in the document.
+function SetMetadata( name, content, isHttp )
+{
+	if ( content.length == 0 )
+	{
+		RemoveMetadata( name ) ;
+		return ;
+	}
+
+	var oMeta = oMetaTags[ name.toLowerCase() ] ;
+
+	if ( !oMeta )
+	{
+		oMeta = oHead.appendChild( FCK.EditorDocument.createElement('META') ) ;
+
+		if ( isHttp )
+			SetAttribute( oMeta, 'http-equiv', name ) ;
+		else
+		{
+			// On IE, it is not possible to set the "name" attribute of the META tag.
+			// So a temporary attribute is used and it is replaced when getting the
+			// editor's HTML/XHTML value. This is sad, I know :(
+			if ( document.all )
+				SetAttribute( oMeta, '___fcktoreplace:name', name ) ;
+			else
+				SetAttribute( oMeta, 'name', name ) ;
+		}
+
+		oMetaTags[ name.toLowerCase() ] = oMeta ;
+	}
+
+	oMeta.content = content ;
+}
+
+function RemoveMetadata( name )
+{
+	var oMeta = oMetaTags[ name.toLowerCase() ] ;
+
+	if ( oMeta && oMeta != null )
+	{
+		oMeta.parentNode.removeChild( oMeta ) ;
+		oMetaTags[ name.toLowerCase() ] = null ;
+	}
+}
+
+function GetMetadata( name )
+{
+	var oMeta = oMetaTags[ name.toLowerCase() ] ;
+
+	if ( oMeta && oMeta != null )
+		return oMeta.content ;
+	else
+		return '' ;
+}
+
+window.onload = function ()
+{
+	// Show/Hide the "Browse Server" button.
+	GetE('tdBrowse').style.display = oEditor.FCKConfig.ImageBrowser ? "" : "none";
+
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage( document ) ;
+
+	FillFields() ;
+
+	UpdatePreview() ;
+
+	// Show the "Ok" button.
+	window.parent.SetOkButton( true ) ;
+
+	window.parent.SetAutoSize( true ) ;
+}
+
+function FillFields()
+{
+	// ### General Info
+	GetE('txtPageTitle').value = FCK.EditorDocument.title ;
+
+	GetE('selDirection').value	= GetAttribute( oHTML, 'dir', '' ) ;
+	GetE('txtLang').value		= GetAttribute( oHTML, 'xml:lang', GetAttribute( oHTML, 'lang', '' ) ) ;	// "xml:lang" takes precedence to "lang".
+
+	// Character Set Encoding.
+//	if ( document.all )
+//		var sCharSet = FCK.EditorDocument.charset ;
+//	else
+		var sCharSet = GetMetadata( 'Content-Type' ) ;
+
+	if ( sCharSet != null && sCharSet.length > 0 )
+	{
+//		if ( !document.all )
+			sCharSet = sCharSet.match( /[^=]*$/ ) ;
+
+		GetE('selCharSet').value = sCharSet ;
+
+		if ( GetE('selCharSet').selectedIndex == -1 )
+		{
+			GetE('selCharSet').value = '...' ;
+			GetE('txtCustomCharSet').value = sCharSet ;
+
+			CheckOther( GetE('selCharSet'), 'txtCustomCharSet' ) ;
+		}
+	}
+
+	// Document Type.
+	if ( FCK.DocTypeDeclaration && FCK.DocTypeDeclaration.length > 0 )
+	{
+		GetE('selDocType').value = FCK.DocTypeDeclaration ;
+
+		if ( GetE('selDocType').selectedIndex == -1 )
+		{
+			GetE('selDocType').value = '...' ;
+			GetE('txtDocType').value = FCK.DocTypeDeclaration ;
+
+			CheckOther( GetE('selDocType'), 'txtDocType' ) ;
+		}
+	}
+
+	// Document Type.
+	GetE('chkIncXHTMLDecl').checked = ( FCK.XmlDeclaration && FCK.XmlDeclaration.length > 0 ) ;
+
+	// ### Background
+	GetE('txtBackColor').value = GetAttribute( oBody, 'bgColor'		, '' ) ;
+	GetE('txtBackImage').value = GetAttribute( oBody, 'background'	, '' ) ;
+	GetE('chkBackNoScroll').checked = ( GetAttribute( oBody, 'bgProperties', '' ).toLowerCase() == 'fixed' ) ;
+
+	// ### Colors
+	GetE('txtColorText').value		= GetAttribute( oBody, 'text'	, '' ) ;
+	GetE('txtColorLink').value		= GetAttribute( oBody, 'link'	, '' ) ;
+	GetE('txtColorVisited').value	= GetAttribute( oBody, 'vLink'	, '' ) ;
+	GetE('txtColorActive').value	= GetAttribute( oBody, 'aLink'	, '' ) ;
+
+	// ### Margins
+	GetE('txtMarginTop').value		= GetAttribute( oBody, 'topMargin'		, '' ) ;
+	GetE('txtMarginLeft').value		= GetAttribute( oBody, 'leftMargin'		, '' ) ;
+	GetE('txtMarginRight').value	= GetAttribute( oBody, 'rightMargin'	, '' ) ;
+	GetE('txtMarginBottom').value	= GetAttribute( oBody, 'bottomMargin'	, '' ) ;
+
+	// ### Meta Data
+	GetE('txtMetaKeywords').value		= GetMetadata( 'keywords' ) ;
+	GetE('txtMetaDescription').value	= GetMetadata( 'description' ) ;
+	GetE('txtMetaAuthor').value			= GetMetadata( 'author' ) ;
+	GetE('txtMetaCopyright').value		= GetMetadata( 'copyright' ) ;
+}
+
+// Called when the "Ok" button is clicked.
+function Ok()
+{
+	// ### General Info
+	FCK.EditorDocument.title = GetE('txtPageTitle').value ;
+
+	var oHTML = FCK.EditorDocument.getElementsByTagName('html')[0] ;
+
+	SetAttribute( oHTML, 'dir'		, GetE('selDirection').value ) ;
+	SetAttribute( oHTML, 'lang'		, GetE('txtLang').value ) ;
+	SetAttribute( oHTML, 'xml:lang'	, GetE('txtLang').value ) ;
+
+	// Character Set Enconding.
+	var sCharSet = GetE('selCharSet').value ;
+	if ( sCharSet == '...' )
+		sCharSet = GetE('txtCustomCharSet').value ;
+
+	if ( sCharSet.length > 0 )
+			sCharSet = 'text/html; charset=' + sCharSet ;
+
+//	if ( document.all )
+//		FCK.EditorDocument.charset = sCharSet ;
+//	else
+		SetMetadata( 'Content-Type', sCharSet, true ) ;
+
+	// Document Type
+	var sDocType = GetE('selDocType').value ;
+	if ( sDocType == '...' )
+		sDocType = GetE('txtDocType').value ;
+
+	FCK.DocTypeDeclaration = sDocType ;
+
+	// XHTML Declarations.
+	if ( GetE('chkIncXHTMLDecl').checked )
+	{
+		if ( sCharSet.length == 0 )
+			sCharSet = 'utf-8' ;
+
+		FCK.XmlDeclaration = '<?xml version="1.0" encoding="' + sCharSet + '"?>' ;
+
+		SetAttribute( oHTML, 'xmlns', 'http://www.w3.org/1999/xhtml' ) ;
+	}
+	else
+	{
+		FCK.XmlDeclaration = null ;
+		oHTML.removeAttribute( 'xmlns', 0 ) ;
+	}
+
+	// ### Background
+	SetAttribute( oBody, 'bgcolor'		, GetE('txtBackColor').value ) ;
+	SetAttribute( oBody, 'background'	, GetE('txtBackImage').value ) ;
+	SetAttribute( oBody, 'bgproperties'	, GetE('chkBackNoScroll').checked ? 'fixed' : '' ) ;
+
+	// ### Colors
+	SetAttribute( oBody, 'text'	, GetE('txtColorText').value ) ;
+	SetAttribute( oBody, 'link'	, GetE('txtColorLink').value ) ;
+	SetAttribute( oBody, 'vlink', GetE('txtColorVisited').value ) ;
+	SetAttribute( oBody, 'alink', GetE('txtColorActive').value ) ;
+
+	// ### Margins
+	SetAttribute( oBody, 'topmargin'	, GetE('txtMarginTop').value ) ;
+	SetAttribute( oBody, 'leftmargin'	, GetE('txtMarginLeft').value ) ;
+	SetAttribute( oBody, 'rightmargin'	, GetE('txtMarginRight').value ) ;
+	SetAttribute( oBody, 'bottommargin'	, GetE('txtMarginBottom').value ) ;
+
+	// ### Meta data
+	SetMetadata( 'keywords'		, GetE('txtMetaKeywords').value ) ;
+	SetMetadata( 'description'	, GetE('txtMetaDescription').value ) ;
+	SetMetadata( 'author'		, GetE('txtMetaAuthor').value ) ;
+	SetMetadata( 'copyright'	, GetE('txtMetaCopyright').value ) ;
+
+	return true ;
+}
+
+var bPreviewIsLoaded = false ;
+var oPreviewWindow ;
+var oPreviewBody ;
+
+// Called by the Preview page when loaded.
+function OnPreviewLoad( previewWindow, previewBody )
+{
+	oPreviewWindow	= previewWindow ;
+	oPreviewBody	= previewBody ;
+
+	bPreviewIsLoaded = true ;
+	UpdatePreview() ;
+}
+
+function UpdatePreview()
+{
+	if ( !bPreviewIsLoaded )
+		return ;
+
+	// ### Background
+	SetAttribute( oPreviewBody, 'bgcolor'		, GetE('txtBackColor').value ) ;
+	SetAttribute( oPreviewBody, 'background'	, GetE('txtBackImage').value ) ;
+	SetAttribute( oPreviewBody, 'bgproperties'	, GetE('chkBackNoScroll').checked ? 'fixed' : '' ) ;
+
+	// ### Colors
+	SetAttribute( oPreviewBody, 'text', GetE('txtColorText').value ) ;
+
+	oPreviewWindow.SetLinkColor( GetE('txtColorLink').value ) ;
+	oPreviewWindow.SetVisitedColor( GetE('txtColorVisited').value ) ;
+	oPreviewWindow.SetActiveColor( GetE('txtColorActive').value ) ;
+}
+
+function CheckOther( combo, txtField )
+{
+	var bNotOther = ( combo.value != '...' ) ;
+
+	GetE(txtField).style.backgroundColor = ( bNotOther ? '#cccccc' : '' ) ;
+	GetE(txtField).disabled = bNotOther ;
+}
+
+function SetColor( inputId, color ) 
+{
+	GetE( inputId ).value = color + '' ; 
+	UpdatePreview() ;
+}
+
+function SelectBackColor( color )		{ SetColor('txtBackColor', color ) ; }
+function SelectColorText( color )		{ SetColor('txtColorText', color ) ; }
+function SelectColorLink( color )		{ SetColor('txtColorLink', color ) ; }
+function SelectColorVisited( color )	{ SetColor('txtColorVisited', color ) ; }
+function SelectColorActive( color )		{ SetColor('txtColorActive', color ) ; }
+
+function SelectColor( wich )
+{
+	switch ( wich )
+	{
+		case 'Back'			: oEditor.FCKDialog.OpenDialog( 'FCKDialog_Color', FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 400, 330, SelectBackColor, window ) ; return ;
+		case 'ColorText'	: oEditor.FCKDialog.OpenDialog( 'FCKDialog_Color', FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 400, 330, SelectColorText, window ) ; return ;
+		case 'ColorLink'	: oEditor.FCKDialog.OpenDialog( 'FCKDialog_Color', FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 400, 330, SelectColorLink, window ) ; return ;
+		case 'ColorVisited'	: oEditor.FCKDialog.OpenDialog( 'FCKDialog_Color', FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 400, 330, SelectColorVisited, window ) ; return ;
+		case 'ColorActive'	: oEditor.FCKDialog.OpenDialog( 'FCKDialog_Color', FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 400, 330, SelectColorActive, window ) ; return ;
+	}
+}
+
+function BrowseServerBack()
+{
+	OpenFileBrowser( FCKConfig.ImageBrowserURL, FCKConfig.ImageBrowserWindowWidth, FCKConfig.ImageBrowserWindowHeight ) ;
+}
+
+function SetUrl( url )
+{
+	GetE('txtBackImage').value = url ;
+	UpdatePreview() ;
+}
+
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table cellspacing="0" cellpadding="0" width="100%" border="0" style="height: 100%">
+		<tr>
+			<td valign="top" style="height: 100%">
+				<div id="divGeneral">
+					<span fcklang="DlgDocPageTitle">Page Title</span><br />
+					<input id="txtPageTitle" style="width: 100%" type="text" />
+					<br />
+					<table cellspacing="0" cellpadding="0" border="0">
+						<tr>
+							<td>
+								<span fcklang="DlgDocLangDir">Language Direction</span><br />
+								<select id="selDirection">
+									<option value="" selected="selected"></option>
+									<option value="ltr" fcklang="DlgDocLangDirLTR">Left to Right (LTR)</option>
+									<option value="rtl" fcklang="DlgDocLangDirRTL">Right to Left (RTL)</option>
+								</select>
+							</td>
+							<td>
+								&nbsp;&nbsp;&nbsp;</td>
+							<td>
+								<span fcklang="DlgDocLangCode">Language Code</span><br />
+								<input id="txtLang" type="text" />
+							</td>
+						</tr>
+					</table>
+					<br />
+					<table cellspacing="0" cellpadding="0" width="100%" border="0">
+						<tr>
+							<td style="white-space: nowrap">
+								<span fcklang="DlgDocCharSet">Character Set Encoding</span><br />
+								<select id="selCharSet" onchange="CheckOther( this, 'txtCustomCharSet' );">
+									<option value="" selected="selected"></option>
+									<option value="us-ascii">ASCII</option>
+									<option fcklang="DlgDocCharSetCE" value="iso-8859-2">Central European</option>
+									<option fcklang="DlgDocCharSetCT" value="big5">Chinese Traditional (Big5)</option>
+									<option fcklang="DlgDocCharSetCR" value="iso-8859-5">Cyrillic</option>
+									<option fcklang="DlgDocCharSetGR" value="iso-8859-7">Greek</option>
+									<option fcklang="DlgDocCharSetJP" value="iso-2022-jp">Japanese</option>
+									<option fcklang="DlgDocCharSetKR" value="iso-2022-kr">Korean</option>
+									<option fcklang="DlgDocCharSetTR" value="iso-8859-9">Turkish</option>
+									<option fcklang="DlgDocCharSetUN" value="utf-8">Unicode (UTF-8)</option>
+									<option fcklang="DlgDocCharSetWE" value="iso-8859-1">Western European</option>
+									<option fcklang="DlgOpOther" value="...">&lt;Other&gt;</option>
+								</select>
+							</td>
+							<td>
+								&nbsp;&nbsp;&nbsp;</td>
+							<td width="100%">
+								<span fcklang="DlgDocCharSetOther">Other Character Set Encoding</span><br />
+								<input id="txtCustomCharSet" style="width: 100%; background-color: #cccccc" disabled="disabled"
+									type="text" />
+							</td>
+						</tr>
+						<tr>
+							<td colspan="3">
+								&nbsp;</td>
+						</tr>
+						<tr>
+							<td nowrap="nowrap">
+								<span fcklang="DlgDocDocType">Document Type Heading</span><br />
+								<select id="selDocType" name="selDocType" onchange="CheckOther( this, 'txtDocType' );">
+									<option value="" selected="selected"></option>
+									<option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'>HTML
+										4.01 Transitional</option>
+									<option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">'>
+										HTML 4.01 Strict</option>
+									<option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">'>
+										HTML 4.01 Frameset</option>
+									<option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'>
+										XHTML 1.0 Transitional</option>
+									<option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'>
+										XHTML 1.0 Strict</option>
+									<option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">'>
+										XHTML 1.0 Frameset</option>
+									<option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">'>
+										XHTML 1.1</option>
+									<option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">'>HTML 3.2</option>
+									<option value='<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">'>HTML 2.0</option>
+									<option value="..." fcklang="DlgOpOther">&lt;Other&gt;</option>
+								</select>
+							</td>
+							<td>
+							</td>
+							<td width="100%">
+								<span fcklang="DlgDocDocTypeOther">Other Document Type Heading</span><br />
+								<input id="txtDocType" style="width: 100%; background-color: #cccccc" disabled="disabled"
+									type="text" />
+							</td>
+						</tr>
+					</table>
+					<br />
+					<input id="chkIncXHTMLDecl" type="checkbox" />
+					<label for="chkIncXHTMLDecl" fcklang="DlgDocIncXHTML">
+						Include XHTML Declarations</label>
+				</div>
+				<div id="divBackground" style="display: none">
+					<span fcklang="DlgDocBgColor">Background Color</span><br />
+					<input id="txtBackColor" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" />&nbsp;<input
+						id="btnSelBackColor" onclick="SelectColor( 'Back' )" type="button" value="Select..."
+						fcklang="DlgCellBtnSelect" /><br />
+					<br />
+					<span fcklang="DlgDocBgImage">Background Image URL</span><br />
+					<table cellspacing="0" cellpadding="0" width="100%" border="0">
+						<tr>
+							<td width="100%">
+								<input id="txtBackImage" style="width: 100%" type="text" onchange="UpdatePreview();"
+									onkeyup="UpdatePreview();" /></td>
+							<td id="tdBrowse" nowrap="nowrap">
+								&nbsp;<input id="btnBrowse" onclick="BrowseServerBack();" type="button" fcklang="DlgBtnBrowseServer"
+									value="Browse Server" /></td>
+						</tr>
+					</table>
+					<input id="chkBackNoScroll" type="checkbox" onclick="UpdatePreview();" />
+					<label for="chkBackNoScroll" fcklang="DlgDocBgNoScroll">
+						Nonscrolling Background</label>
+				</div>
+				<div id="divColors" style="display: none">
+					<table cellspacing="0" cellpadding="0" width="100%" border="0">
+						<tr>
+							<td>
+								<span fcklang="DlgDocCText">Text</span><br />
+								<input id="txtColorText" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" /><input
+									onclick="SelectColor( 'ColorText' )" type="button" value="Select..." fcklang="DlgCellBtnSelect" />
+								<br />
+								<span fcklang="DlgDocCLink">Link</span><br />
+								<input id="txtColorLink" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" /><input
+									onclick="SelectColor( 'ColorLink' )" type="button" value="Select..." fcklang="DlgCellBtnSelect" />
+								<br />
+								<span fcklang="DlgDocCVisited">Visited Link</span><br />
+								<input id="txtColorVisited" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" /><input
+									onclick="SelectColor( 'ColorVisited' )" type="button" value="Select..." fcklang="DlgCellBtnSelect" />
+								<br />
+								<span fcklang="DlgDocCActive">Active Link</span><br />
+								<input id="txtColorActive" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" /><input
+									onclick="SelectColor( 'ColorActive' )" type="button" value="Select..." fcklang="DlgCellBtnSelect" />
+							</td>
+							<td valign="middle" align="center">
+								<table cellspacing="2" cellpadding="0" border="0">
+									<tr>
+										<td>
+											<span fcklang="DlgDocMargins">Page Margins</span></td>
+									</tr>
+									<tr>
+										<td style="border: #000000 1px solid; padding: 5px">
+											<table cellpadding="0" cellspacing="0" border="0" dir="ltr">
+												<tr>
+													<td align="center" colspan="3">
+														<span fcklang="DlgDocMaTop">Top</span><br />
+														<input id="txtMarginTop" type="text" size="3" />
+													</td>
+												</tr>
+												<tr>
+													<td align="left">
+														<span fcklang="DlgDocMaLeft">Left</span><br />
+														<input id="txtMarginLeft" type="text" size="3" />
+													</td>
+													<td>
+														&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
+													<td align="right">
+														<span fcklang="DlgDocMaRight">Right</span><br />
+														<input id="txtMarginRight" type="text" size="3" />
+													</td>
+												</tr>
+												<tr>
+													<td align="center" colspan="3">
+														<span fcklang="DlgDocMaBottom">Bottom</span><br />
+														<input id="txtMarginBottom" type="text" size="3" />
+													</td>
+												</tr>
+											</table>
+										</td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+					</table>
+				</div>
+				<div id="divMeta" style="display: none">
+					<span fcklang="DlgDocMeIndex">Document Indexing Keywords (comma separated)</span><br />
+					<textarea id="txtMetaKeywords" style="width: 100%" rows="2" cols="20"></textarea>
+					<br />
+					<span fcklang="DlgDocMeDescr">Document Description</span><br />
+					<textarea id="txtMetaDescription" style="width: 100%" rows="4" cols="20"></textarea>
+					<br />
+					<span fcklang="DlgDocMeAuthor">Author</span><br />
+					<input id="txtMetaAuthor" style="width: 100%" type="text" /><br />
+					<br />
+					<span fcklang="DlgDocMeCopy">Copyright</span><br />
+					<input id="txtMetaCopyright" type="text" style="width: 100%" />
+				</div>
+			</td>
+		</tr>
+		<tr id="ePreview" style="display: none">
+			<td>
+				<span fcklang="DlgDocPreview">Preview</span><br />
+				<iframe id="frmPreview" src="fck_docprops/fck_document_preview.html" width="100%"
+					height="100"></iframe>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_link/fck_link.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_link/fck_link.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_link/fck_link.js	(revision 389)
@@ -0,0 +1,630 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_link.js
+ * 	Scripts related to the Link dialog window (see fck_link.html).
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ * 		Dominik Pesch ?dom? (empty selection patch) (d.pesch@11com7.de)
+ */
+
+var oEditor		= window.parent.InnerDialogLoaded() ;
+var FCK			= oEditor.FCK ;
+var FCKLang		= oEditor.FCKLang ;
+var FCKConfig	= oEditor.FCKConfig ;
+
+//#### Dialog Tabs
+
+// Set the dialog tabs.
+window.parent.AddTab( 'Info', FCKLang.DlgLnkInfoTab ) ;
+
+if ( !FCKConfig.LinkDlgHideTarget )
+	window.parent.AddTab( 'Target', FCKLang.DlgLnkTargetTab, true ) ;
+
+if ( FCKConfig.LinkUpload )
+	window.parent.AddTab( 'Upload', FCKLang.DlgLnkUpload, true ) ;
+
+if ( !FCKConfig.LinkDlgHideAdvanced )
+	window.parent.AddTab( 'Advanced', FCKLang.DlgAdvancedTag ) ;
+
+// Function called when a dialog tag is selected.
+function OnDialogTabChange( tabCode )
+{
+	ShowE('divInfo'		, ( tabCode == 'Info' ) ) ;
+	ShowE('divTarget'	, ( tabCode == 'Target' ) ) ;
+	ShowE('divUpload'	, ( tabCode == 'Upload' ) ) ;
+	ShowE('divAttribs'	, ( tabCode == 'Advanced' ) ) ;
+
+	window.parent.SetAutoSize( true ) ;
+}
+
+//#### Regular Expressions library.
+var oRegex = new Object() ;
+
+oRegex.UriProtocol = new RegExp('') ;
+oRegex.UriProtocol.compile( '^(((http|https|ftp|news):\/\/)|mailto:)', 'gi' ) ;
+
+oRegex.UrlOnChangeProtocol = new RegExp('') ;
+oRegex.UrlOnChangeProtocol.compile( '^(http|https|ftp|news)://(?=.)', 'gi' ) ;
+
+oRegex.UrlOnChangeTestOther = new RegExp('') ;
+//oRegex.UrlOnChangeTestOther.compile( '^(javascript:|#|/)', 'gi' ) ;
+oRegex.UrlOnChangeTestOther.compile( '^((javascript:)|[#/\.])', 'gi' ) ; 
+
+oRegex.ReserveTarget = new RegExp('') ;
+oRegex.ReserveTarget.compile( '^_(blank|self|top|parent)$', 'i' ) ;
+
+oRegex.PopupUri = new RegExp('') ;
+oRegex.PopupUri.compile( "^javascript:void\\(\\s*window.open\\(\\s*'([^']+)'\\s*,\\s*(?:'([^']*)'|null)\\s*,\\s*'([^']*)'\\s*\\)\\s*\\)\\s*$" ) ;
+
+oRegex.PopupFeatures = new RegExp('') ;
+oRegex.PopupFeatures.compile( '(?:^|,)([^=]+)=(\\d+|yes|no)', 'gi' ) ;
+
+//#### Parser Functions
+
+var oParser = new Object() ;
+
+oParser.ParseEMailUrl = function( emailUrl )
+{
+	// Initializes the EMailInfo object.
+	var oEMailInfo = new Object() ;
+	oEMailInfo.Address	= '' ;
+	oEMailInfo.Subject	= '' ;
+	oEMailInfo.Body		= '' ;
+
+	var oParts = emailUrl.match( /^([^\?]+)\??(.+)?/ ) ;
+	if ( oParts )
+	{
+		// Set the e-mail address.
+		oEMailInfo.Address = oParts[1] ;
+
+		// Look for the optional e-mail parameters.
+		if ( oParts[2] )
+		{
+			var oMatch = oParts[2].match( /(^|&)subject=([^&]+)/i ) ;
+			if ( oMatch ) oEMailInfo.Subject = unescape( oMatch[2] ) ;
+
+			oMatch = oParts[2].match( /(^|&)body=([^&]+)/i ) ;
+			if ( oMatch ) oEMailInfo.Body = unescape( oMatch[2] ) ;
+		}
+	}
+
+	return oEMailInfo ;
+}
+
+oParser.CreateEMailUri = function( address, subject, body )
+{
+	var sBaseUri = 'mailto:' + address ;
+
+	var sParams = '' ;
+
+	if ( subject.length > 0 )
+		sParams = '?subject=' + escape( subject ) ;
+
+	if ( body.length > 0 )
+	{
+		sParams += ( sParams.length == 0 ? '?' : '&' ) ;
+		sParams += 'body=' + escape( body ) ;
+	}
+
+	return sBaseUri + sParams ;
+}
+
+//#### Initialization Code
+
+// oLink: The actual selected link in the editor.
+var oLink = FCK.Selection.MoveToAncestorNode( 'A' ) ;
+if ( oLink )
+	FCK.Selection.SelectNode( oLink ) ;
+
+window.onload = function()
+{
+	// Translate the dialog box texts.
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	// Fill the Anchor Names and Ids combos.
+	LoadAnchorNamesAndIds() ;
+
+	// Load the selected link information (if any).
+	LoadSelection() ;
+
+	// Update the dialog box.
+	SetLinkType( GetE('cmbLinkType').value ) ;
+
+	// Show/Hide the "Browse Server" button.
+	GetE('divBrowseServer').style.display = FCKConfig.LinkBrowser ? '' : 'none' ;
+
+	// Show the initial dialog content.
+	GetE('divInfo').style.display = '' ;
+
+	// Set the actual uploader URL.
+	if ( FCKConfig.LinkUpload )
+		GetE('frmUpload').action = FCKConfig.LinkUploadURL ;
+
+	// Activate the "OK" button.
+	window.parent.SetOkButton( true ) ;
+}
+
+var bHasAnchors ;
+
+function LoadAnchorNamesAndIds()
+{
+	// Since version 2.0, the anchors are replaced in the DOM by IMGs so the user see the icon 
+	// to edit them. So, we must look for that images now.
+	var aAnchors = new Array() ;
+	
+	var oImages = oEditor.FCK.EditorDocument.getElementsByTagName( 'IMG' ) ;
+	for( var i = 0 ; i < oImages.length ; i++ )
+	{
+		if ( oImages[i].getAttribute('_fckanchor') )
+			aAnchors[ aAnchors.length ] = oEditor.FCK.GetRealElement( oImages[i] ) ;
+	}
+	
+	var aIds = oEditor.FCKTools.GetAllChildrenIds( oEditor.FCK.EditorDocument.body ) ;
+
+	bHasAnchors = ( aAnchors.length > 0 || aIds.length > 0 ) ;
+
+	for ( var i = 0 ; i < aAnchors.length ; i++ )
+	{
+		var sName = aAnchors[i].name ;
+		if ( sName && sName.length > 0 )
+			oEditor.FCKTools.AddSelectOption( GetE('cmbAnchorName'), sName, sName ) ;
+	}
+
+	for ( var i = 0 ; i < aIds.length ; i++ )
+	{
+		oEditor.FCKTools.AddSelectOption( GetE('cmbAnchorId'), aIds[i], aIds[i] ) ;
+	}
+
+	ShowE( 'divSelAnchor'	, bHasAnchors ) ;
+	ShowE( 'divNoAnchor'	, !bHasAnchors ) ;
+}
+
+function LoadSelection()
+{
+	if ( !oLink ) return ;
+
+	var sType = 'url' ;
+
+	// Get the actual Link href.
+	var sHRef = oLink.getAttribute( '_fcksavedurl' ) ;
+	if ( sHRef == null )
+		sHRef = oLink.getAttribute( 'href' , 2 ) + '' ;
+	
+	// Look for a popup javascript link.
+	var oPopupMatch = oRegex.PopupUri.exec( sHRef ) ;
+	if( oPopupMatch )
+	{
+		GetE('cmbTarget').value = 'popup' ;
+		sHRef = oPopupMatch[1] ;
+		FillPopupFields( oPopupMatch[2], oPopupMatch[3] ) ;
+		SetTarget( 'popup' ) ;
+	}
+
+	// Search for the protocol.
+	var sProtocol = oRegex.UriProtocol.exec( sHRef ) ;
+
+	if ( sProtocol )
+	{
+		sProtocol = sProtocol[0].toLowerCase() ;
+		GetE('cmbLinkProtocol').value = sProtocol ;
+
+		// Remove the protocol and get the remainig URL.
+		var sUrl = sHRef.replace( oRegex.UriProtocol, '' ) ;
+
+		if ( sProtocol == 'mailto:' )	// It is an e-mail link.
+		{
+			sType = 'email' ;
+
+			var oEMailInfo = oParser.ParseEMailUrl( sUrl ) ;
+			GetE('txtEMailAddress').value	= oEMailInfo.Address ;
+			GetE('txtEMailSubject').value	= oEMailInfo.Subject ;
+			GetE('txtEMailBody').value		= oEMailInfo.Body ;
+		}
+		else				// It is a normal link.
+		{
+			sType = 'url' ;
+			GetE('txtUrl').value = sUrl ;
+		}
+	}
+	else if ( sHRef.substr(0,1) == '#' && sHRef.length > 1 )	// It is an anchor link.
+	{
+		sType = 'anchor' ;
+		GetE('cmbAnchorName').value = GetE('cmbAnchorId').value = sHRef.substr(1) ;
+	}
+	else					// It is another type of link.
+	{
+		sType = 'url' ;
+
+		GetE('cmbLinkProtocol').value = '' ;
+		GetE('txtUrl').value = sHRef ;
+	}
+
+	if ( !oPopupMatch )
+	{
+		// Get the target.
+		var sTarget = oLink.target ;
+
+		if ( sTarget && sTarget.length > 0 )
+		{
+			if ( oRegex.ReserveTarget.test( sTarget ) )
+			{
+				sTarget = sTarget.toLowerCase() ;
+				GetE('cmbTarget').value = sTarget ;
+			}
+			else
+				GetE('cmbTarget').value = 'frame' ;
+			GetE('txtTargetFrame').value = sTarget ;
+		}
+	}
+
+	// Get Advances Attributes
+	GetE('txtAttId').value			= oLink.id ;
+	GetE('txtAttName').value		= oLink.name ;
+	GetE('cmbAttLangDir').value		= oLink.dir ;
+	GetE('txtAttLangCode').value	= oLink.lang ;
+	GetE('txtAttAccessKey').value	= oLink.accessKey ;
+	GetE('txtAttTabIndex').value	= oLink.tabIndex <= 0 ? '' : oLink.tabIndex ;
+	GetE('txtAttTitle').value		= oLink.title ;
+	GetE('txtAttContentType').value	= oLink.type ;
+	GetE('txtAttCharSet').value		= oLink.charset ;
+
+	if ( oEditor.FCKBrowserInfo.IsIE )
+	{
+		GetE('txtAttClasses').value	= oLink.getAttribute('className',2) || '' ;
+		GetE('txtAttStyle').value	= oLink.style.cssText ;
+	}
+	else
+	{
+		GetE('txtAttClasses').value	= oLink.getAttribute('class',2) || '' ;
+		GetE('txtAttStyle').value	= oLink.getAttribute('style',2) ;
+	}
+
+	// Update the Link type combo.
+	GetE('cmbLinkType').value = sType ;
+}
+
+//#### Link type selection.
+function SetLinkType( linkType )
+{
+	ShowE('divLinkTypeUrl'		, (linkType == 'url') ) ;
+	ShowE('divLinkTypeAnchor'	, (linkType == 'anchor') ) ;
+	ShowE('divLinkTypeEMail'	, (linkType == 'email') ) ;
+
+	if ( !FCKConfig.LinkDlgHideTarget )
+		window.parent.SetTabVisibility( 'Target'	, (linkType == 'url') ) ;
+
+	if ( FCKConfig.LinkUpload )
+		window.parent.SetTabVisibility( 'Upload'	, (linkType == 'url') ) ;
+
+	if ( !FCKConfig.LinkDlgHideAdvanced )
+		window.parent.SetTabVisibility( 'Advanced'	, (linkType != 'anchor' || bHasAnchors) ) ;
+
+	if ( linkType == 'email' )
+		window.parent.SetAutoSize( true ) ;
+}
+
+//#### Target type selection.
+function SetTarget( targetType )
+{
+	GetE('tdTargetFrame').style.display	= ( targetType == 'popup' ? 'none' : '' ) ;
+	GetE('tdPopupName').style.display	=
+		GetE('tablePopupFeatures').style.display = ( targetType == 'popup' ? '' : 'none' ) ;
+
+	switch ( targetType )
+	{
+		case "_blank" :
+		case "_self" :
+		case "_parent" :
+		case "_top" :
+			GetE('txtTargetFrame').value = targetType ;
+			break ;
+		case "" :
+			GetE('txtTargetFrame').value = '' ;
+			break ;
+	}
+
+	if ( targetType == 'popup' )
+		window.parent.SetAutoSize( true ) ;
+}
+
+//#### Called while the user types the URL.
+function OnUrlChange()
+{
+	var sUrl = GetE('txtUrl').value ;
+	var sProtocol = oRegex.UrlOnChangeProtocol.exec( sUrl ) ;
+
+	if ( sProtocol )
+	{
+		sUrl = sUrl.substr( sProtocol[0].length ) ;
+		GetE('txtUrl').value = sUrl ;
+		GetE('cmbLinkProtocol').value = sProtocol[0].toLowerCase() ;
+	}
+	else if ( oRegex.UrlOnChangeTestOther.test( sUrl ) )
+	{
+		GetE('cmbLinkProtocol').value = '' ;
+	}
+}
+
+//#### Called while the user types the target name.
+function OnTargetNameChange()
+{
+	var sFrame = GetE('txtTargetFrame').value ;
+
+	if ( sFrame.length == 0 )
+		GetE('cmbTarget').value = '' ;
+	else if ( oRegex.ReserveTarget.test( sFrame ) )
+		GetE('cmbTarget').value = sFrame.toLowerCase() ;
+	else
+		GetE('cmbTarget').value = 'frame' ;
+}
+
+//#### Builds the javascript URI to open a popup to the specified URI.
+function BuildPopupUri( uri )
+{
+	var oReg = new RegExp( "'", "g" ) ;
+	var sWindowName = "'" + GetE('txtPopupName').value.replace(oReg, "\\'") + "'" ;
+
+	var sFeatures = '' ;
+	var aChkFeatures = document.getElementsByName('chkFeature') ;
+	for ( var i = 0 ; i < aChkFeatures.length ; i++ )
+	{
+		if ( i > 0 ) sFeatures += ',' ;
+		sFeatures += aChkFeatures[i].value + '=' + ( aChkFeatures[i].checked ? 'yes' : 'no' ) ;
+	}
+
+	if ( GetE('txtPopupWidth').value.length > 0 )	sFeatures += ',width=' + GetE('txtPopupWidth').value ;
+	if ( GetE('txtPopupHeight').value.length > 0 )	sFeatures += ',height=' + GetE('txtPopupHeight').value ;
+	if ( GetE('txtPopupLeft').value.length > 0 )	sFeatures += ',left=' + GetE('txtPopupLeft').value ;
+	if ( GetE('txtPopupTop').value.length > 0 )		sFeatures += ',top=' + GetE('txtPopupTop').value ;
+
+	return ( "javascript:void(window.open('" + uri + "'," + sWindowName + ",'" + sFeatures + "'))" ) ;
+}
+
+//#### Fills all Popup related fields.
+function FillPopupFields( windowName, features )
+{
+	if ( windowName )
+		GetE('txtPopupName').value = windowName ;
+
+	var oFeatures = new Object() ;
+	var oFeaturesMatch ;
+	while( ( oFeaturesMatch = oRegex.PopupFeatures.exec( features ) ) != null )
+	{
+		var sValue = oFeaturesMatch[2] ;
+		if ( sValue == ( 'yes' || '1' ) )
+			oFeatures[ oFeaturesMatch[1] ] = true ;
+		else if ( ! isNaN( sValue ) && sValue != 0 )
+			oFeatures[ oFeaturesMatch[1] ] = sValue ;
+	}
+
+	// Update all features check boxes.
+	var aChkFeatures = document.getElementsByName('chkFeature') ;
+	for ( var i = 0 ; i < aChkFeatures.length ; i++ )
+	{
+		if ( oFeatures[ aChkFeatures[i].value ] )
+			aChkFeatures[i].checked = true ;
+	}
+
+	// Update position and size text boxes.
+	if ( oFeatures['width'] )	GetE('txtPopupWidth').value		= oFeatures['width'] ;
+	if ( oFeatures['height'] )	GetE('txtPopupHeight').value	= oFeatures['height'] ;
+	if ( oFeatures['left'] )	GetE('txtPopupLeft').value		= oFeatures['left'] ;
+	if ( oFeatures['top'] )		GetE('txtPopupTop').value		= oFeatures['top'] ;
+}
+
+//#### The OK button was hit.
+function Ok()
+{
+	var sUri, sInnerHtml ;
+
+	switch ( GetE('cmbLinkType').value )
+	{
+		case 'url' :
+			sUri = GetE('txtUrl').value ;
+
+			if ( sUri.length == 0 )
+			{
+				alert( FCKLang.DlnLnkMsgNoUrl ) ;
+				return false ;
+			}
+
+			sUri = GetE('cmbLinkProtocol').value + sUri ;
+
+			if( GetE('cmbTarget').value == 'popup' )
+			{
+				// Check the window name, according to http://www.w3.org/TR/html4/types.html#type-frame-target (IE throw erros with spaces).
+				if ( /(^[^a-zA-Z])|(\s)/.test( GetE('txtPopupName').value ) )
+				{
+					alert( FCKLang.DlnLnkMsgInvPopName ) ;
+					return false ;
+				}
+				
+				sUri = BuildPopupUri( sUri ) ;
+			}
+
+			break ;
+
+		case 'email' :
+			sUri = GetE('txtEMailAddress').value ;
+
+			if ( sUri.length == 0 )
+			{
+				alert( FCKLang.DlnLnkMsgNoEMail ) ;
+				return false ;
+			}
+
+			sUri = oParser.CreateEMailUri(
+				sUri,
+				GetE('txtEMailSubject').value,
+				GetE('txtEMailBody').value ) ;
+			break ;
+
+		case 'anchor' :
+			var sAnchor = GetE('cmbAnchorName').value ;
+			if ( sAnchor.length == 0 ) sAnchor = GetE('cmbAnchorId').value ;
+
+			if ( sAnchor.length == 0 )
+			{
+				alert( FCKLang.DlnLnkMsgNoAnchor ) ;
+				return false ;
+			}
+
+			sUri = '#' + sAnchor ;
+			break ;
+	}
+
+	// No link selected, so try to create one.
+	if ( !oLink )
+		oLink = oEditor.FCK.CreateLink( sUri ) ;
+	
+	if ( oLink )
+		sInnerHtml = oLink.innerHTML ;		// Save the innerHTML (IE changes it if it is like an URL).
+	else
+	{
+		// If no selection, use the uri as the link text (by dom, 2006-05-26)
+
+		sInnerHtml = sUri;
+
+		// Built a better text for empty links.
+		switch ( GetE('cmbLinkType').value )
+		{
+			// anchor: use old behavior --> return true
+			case 'anchor':
+				sInnerHtml = sInnerHtml.replace( /^#/, '' ) ;
+				break ;
+
+			// url: try to get path
+			case 'url':
+				var oLinkPathRegEx = new RegExp("//?([^?\"']+)([?].*)?$") ;
+				var asLinkPath = oLinkPathRegEx.exec( sUri ) ;
+				if (asLinkPath != null)
+					sInnerHtml = asLinkPath[1];  // use matched path
+				break ;
+
+			// mailto: try to get email address
+			case 'email':
+				sInnerHtml = GetE('txtEMailAddress').value ;
+				break ;
+		}
+
+		// Create a new (empty) anchor.
+		oLink = oEditor.FCK.CreateElement( 'a' ) ;
+	}
+
+	oEditor.FCKUndo.SaveUndoStep() ;
+
+	oLink.href = sUri ;
+	SetAttribute( oLink, '_fcksavedurl', sUri ) ;
+
+	oLink.innerHTML = sInnerHtml ;		// Set (or restore) the innerHTML
+
+	// Target
+	if( GetE('cmbTarget').value != 'popup' )
+		SetAttribute( oLink, 'target', GetE('txtTargetFrame').value ) ;
+	else
+		SetAttribute( oLink, 'target', null ) ;
+
+	// Advances Attributes
+	SetAttribute( oLink, 'id'		, GetE('txtAttId').value ) ;
+	SetAttribute( oLink, 'name'		, GetE('txtAttName').value ) ;		// No IE. Set but doesnt't update the outerHTML.
+	SetAttribute( oLink, 'dir'		, GetE('cmbAttLangDir').value ) ;
+	SetAttribute( oLink, 'lang'		, GetE('txtAttLangCode').value ) ;
+	SetAttribute( oLink, 'accesskey', GetE('txtAttAccessKey').value ) ;
+	SetAttribute( oLink, 'tabindex'	, ( GetE('txtAttTabIndex').value > 0 ? GetE('txtAttTabIndex').value : null ) ) ;
+	SetAttribute( oLink, 'title'	, GetE('txtAttTitle').value ) ;
+	SetAttribute( oLink, 'type'		, GetE('txtAttContentType').value ) ;
+	SetAttribute( oLink, 'charset'	, GetE('txtAttCharSet').value ) ;
+
+	if ( oEditor.FCKBrowserInfo.IsIE )
+	{
+		SetAttribute( oLink, 'className', GetE('txtAttClasses').value ) ;
+		oLink.style.cssText = GetE('txtAttStyle').value ;
+	}
+	else
+	{
+		SetAttribute( oLink, 'class', GetE('txtAttClasses').value ) ;
+		SetAttribute( oLink, 'style', GetE('txtAttStyle').value ) ;
+	}
+
+	// Select the link.
+	oEditor.FCKSelection.SelectNode(oLink);
+	
+	return true ;
+}
+
+function BrowseServer()
+{
+	OpenFileBrowser( FCKConfig.LinkBrowserURL, FCKConfig.LinkBrowserWindowWidth, FCKConfig.LinkBrowserWindowHeight ) ;
+}
+
+function SetUrl( url )
+{
+	document.getElementById('txtUrl').value = url ;
+	OnUrlChange() ;
+	window.parent.SetSelectedTab( 'Info' ) ;
+}
+
+function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
+{
+	switch ( errorNumber )
+	{
+		case 0 :	// No errors
+			alert( 'Your file has been successfully uploaded' ) ;
+			break ;
+		case 1 :	// Custom error
+			alert( customMsg ) ;
+			return ;
+		case 101 :	// Custom warning
+			alert( customMsg ) ;
+			break ;
+		case 201 :
+			alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
+			break ;
+		case 202 :
+			alert( 'Invalid file type' ) ;
+			return ;
+		case 203 :
+			alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ;
+			return ;
+		default :
+			alert( 'Error on file upload. Error number: ' + errorNumber ) ;
+			return ;
+	}
+
+	SetUrl( fileUrl ) ;
+	GetE('frmUpload').reset() ;
+}
+
+var oUploadAllowedExtRegex	= new RegExp( FCKConfig.LinkUploadAllowedExtensions, 'i' ) ;
+var oUploadDeniedExtRegex	= new RegExp( FCKConfig.LinkUploadDeniedExtensions, 'i' ) ;
+
+function CheckUpload()
+{
+	var sFile = GetE('txtUploadFile').value ;
+	
+	if ( sFile.length == 0 )
+	{
+		alert( 'Please select a file to upload' ) ;
+		return false ;
+	}
+	
+	if ( ( FCKConfig.LinkUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||
+		( FCKConfig.LinkUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )
+	{
+		OnUploadCompleted( 202 ) ;
+		return false ;
+	}
+	
+	return true ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_radiobutton.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_radiobutton.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_radiobutton.html	(revision 389)
@@ -0,0 +1,103 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_radiobutton.html
+ * 	Radio Button dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html>
+	<head>
+		<title>Radio Button Properties</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta content="noindex, nofollow" name="robots">
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+var oActiveEl = oEditor.FCKSelection.GetSelectedElement() ;
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if ( oActiveEl && oActiveEl.tagName.toUpperCase() == 'INPUT' && oActiveEl.type == 'radio' )
+	{
+		GetE('txtName').value		= oActiveEl.name ;
+		GetE('txtValue').value		= oEditor.FCKBrowserInfo.IsIE ? oActiveEl.value : GetAttribute( oActiveEl, 'value' ) ;
+		GetE('txtSelected').checked	= oActiveEl.checked ;
+	}
+	else
+		oActiveEl = null ;
+
+	window.parent.SetOkButton( true ) ;
+}
+
+function Ok()
+{
+	if ( !oActiveEl )
+	{
+		oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ;
+		oActiveEl.type = 'radio' ;
+		oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
+	}
+
+	if ( GetE('txtName').value.length > 0 )
+		oActiveEl.name = GetE('txtName').value ;
+		
+	if ( oEditor.FCKBrowserInfo.IsIE )
+		oActiveEl.value = GetE('txtValue').value ;
+	else
+		SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ;
+
+	var bIsChecked = GetE('txtSelected').checked ;
+	SetAttribute( oActiveEl, 'checked', bIsChecked ? 'checked' : null ) ;	// For Firefox
+	oActiveEl.checked = bIsChecked ;
+
+	return true ;
+}
+
+		</script>
+	</head>
+	<body style="OVERFLOW: hidden" scroll="no">
+		<table height="100%" width="100%">
+			<tr>
+				<td align="center">
+					<table border="0" cellpadding="0" cellspacing="0" width="80%">
+						<tr>
+							<td>
+								<span fckLang="DlgCheckboxName">Name</span><br>
+								<input type="text" size="20" id="txtName" style="WIDTH: 100%">
+							</td>
+						</tr>
+						<tr>
+							<td>
+								<span fckLang="DlgCheckboxValue">Value</span><br>
+								<input type="text" size="20" id="txtValue" style="WIDTH: 100%">
+							</td>
+						</tr>
+						<tr>
+							<td><input type="checkbox" id="txtSelected"><label for="txtSelected" fckLang="DlgCheckboxSelected">Checked</label></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_flash.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_flash.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_flash.html	(revision 389)
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_flash.html
+ * 	Flash Properties dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html>
+	<head>
+		<title>Flash Properties</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta content="noindex, nofollow" name="robots">
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script src="fck_flash/fck_flash.js" type="text/javascript"></script>
+		<link href="common/fck_dialog_common.css" type="text/css" rel="stylesheet">
+	</head>
+	<body scroll="no" style="OVERFLOW: hidden">
+		<div id="divInfo">
+			<table cellSpacing="1" cellPadding="1" width="100%" border="0">
+				<tr>
+					<td>
+						<table cellSpacing="0" cellPadding="0" width="100%" border="0">
+							<tr>
+								<td width="100%"><span fckLang="DlgImgURL">URL</span>
+								</td>
+								<td id="tdBrowse" style="DISPLAY: none" noWrap rowSpan="2">&nbsp; <input id="btnBrowse" onclick="BrowseServer();" type="button" value="Browse Server" fckLang="DlgBtnBrowseServer">
+								</td>
+							</tr>
+							<tr>
+								<td vAlign="top"><input id="txtUrl" onblur="UpdatePreview();" style="WIDTH: 100%" type="text">
+								</td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+				<TR>
+					<TD>
+						<table cellSpacing="0" cellPadding="0" border="0">
+							<TR>
+								<TD nowrap>
+									<span fckLang="DlgImgWidth">Width</span><br>
+									<input id="txtWidth" class="FCK__FieldNumeric" type="text" size="3">
+								</TD>
+								<TD>&nbsp;</TD>
+								<TD>
+									<span fckLang="DlgImgHeight">Height</span><br>
+									<input id="txtHeight" class="FCK__FieldNumeric" type="text" size="3">
+								</TD>
+							</TR>
+						</table>
+					</TD>
+				</TR>
+				<tr>
+					<td vAlign="top">
+						<table cellSpacing="0" cellPadding="0" width="100%" border="0">
+							<tr>
+								<td valign="top" width="100%">
+									<table cellSpacing="0" cellPadding="0" width="100%">
+										<tr>
+											<td><span fckLang="DlgImgPreview">Preview</span></td>
+										</tr>
+										<tr>
+											<td id="ePreviewCell" valign="top" class="FlashPreviewArea"><iframe src="fck_flash/fck_flash_preview.html" frameborder="0" marginheight="0" marginwidth="0"></iframe></td>
+										</tr>
+									</table>
+								</td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+			</table>
+		</div>
+		<div id="divUpload" style="DISPLAY: none">
+			<form id="frmUpload" method="post" target="UploadWindow" enctype="multipart/form-data" action="" onsubmit="return CheckUpload();">
+				<span fckLang="DlgLnkUpload">Upload</span><br />
+				<input id="txtUploadFile" style="WIDTH: 100%" type="file" size="40" name="NewFile" /><br />
+				<br />
+				<input id="btnUpload" type="submit" value="Send it to the Server" fckLang="DlgLnkBtnUpload" />
+				<iframe name="UploadWindow" style="DISPLAY: none" src="../fckblank.html"></iframe> 
+			</form>
+		</div>
+		<div id="divAdvanced" style="DISPLAY: none">
+			<TABLE cellSpacing="0" cellPadding="0" border="0">
+				<TR>
+					<TD nowrap>
+						<span fckLang="DlgFlashScale">Scale</span><BR>
+						<select id="cmbScale">
+							<option value="" selected></option>
+							<option value="showall" fckLang="DlgFlashScaleAll">Show all</option>
+							<option value="noborder" fckLang="DlgFlashScaleNoBorder">No Border</option>
+							<option value="exactfit" fckLang="DlgFlashScaleFit">Exact Fit</option>
+						</select></TD>
+					<TD>&nbsp;&nbsp;&nbsp; &nbsp;
+					</TD>
+					<td valign="bottom">
+						<table>
+							<tr>
+								<td><input id="chkAutoPlay" type="checkbox" checked></td>
+								<td><label for="chkAutoPlay" nowrap fckLang="DlgFlashChkPlay">Auto Play</label>&nbsp;&nbsp;</td>
+								<td><input id="chkLoop" type="checkbox" checked></td>
+								<td><label for="chkLoop" nowrap fckLang="DlgFlashChkLoop">Loop</label>&nbsp;&nbsp;</td>
+								<td><input id="chkMenu" type="checkbox" checked></td>
+								<td><label for="chkMenu" nowrap fckLang="DlgFlashChkMenu">Enable Flash Menu</label></td>
+							</tr>
+						</table>
+					</td>
+				</TR>
+			</TABLE>
+			<br>
+			&nbsp;
+			<table cellSpacing="0" cellPadding="0" width="100%" align="center" border="0">
+				<tr>
+					<td vAlign="top" width="50%"><span fckLang="DlgGenId">Id</span><br>
+						<input id="txtAttId" style="WIDTH: 100%" type="text">
+					</td>
+					<td>&nbsp;&nbsp;</td>
+					<td vAlign="top" nowrap><span fckLang="DlgGenClass">Stylesheet Classes</span><br>
+						<input id="txtAttClasses" style="WIDTH: 100%" type="text">
+					</td>
+					<td>&nbsp;&nbsp;</td>
+					<td vAlign="top" nowrap width="50%">&nbsp;<span fckLang="DlgGenTitle">Advisory Title</span><br>
+						<input id="txtAttTitle" style="WIDTH: 100%" type="text">
+					</td>
+				</tr>
+			</table>
+			<span fckLang="DlgGenStyle">Style</span><br>
+			<input id="txtAttStyle" style="WIDTH: 100%" type="text">
+		</div>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_hiddenfield.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_hiddenfield.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_hiddenfield.html	(revision 389)
@@ -0,0 +1,91 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_hiddenfield.html
+ * 	Hidden Field dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html>
+	<head>
+		<title>Hidden Field Properties</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta content="noindex, nofollow" name="robots">
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+var oActiveEl = oEditor.FCKSelection.GetSelectedElement() ;
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if ( oActiveEl && oActiveEl.tagName == 'INPUT' && oActiveEl.type == 'hidden' ) 
+	{
+		GetE('txtName').value		= oActiveEl.name ;
+		GetE('txtValue').value		= oActiveEl.value ;
+	}
+	else
+		oActiveEl = null ;
+
+	window.parent.SetOkButton( true ) ;
+}	
+
+
+function Ok()
+{
+	if ( !oActiveEl )
+	{
+		oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ;
+		oActiveEl.type = 'hidden' ;
+		oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
+	}
+	
+	oActiveEl.name = GetE('txtName').value ;
+	SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ;
+
+	return true ;
+}
+
+		</script>
+	</head>
+	<body style="OVERFLOW: hidden" scroll="no">
+		<table height="100%" width="100%">
+			<tr>
+				<td align="center">
+					<table border="0" class="inhoud" cellpadding="0" cellspacing="0" width="80%">
+						<tr>
+							<td>
+								<span fckLang="DlgHiddenName">Name</span><br>
+								<input type="text" size="20" id="txtName" style="WIDTH: 100%">
+							</td>
+						</tr>
+						<tr>
+							<td>
+								<span fckLang="DlgHiddenValue">Value</span><br>
+								<input type="text" size="30" id="txtValue" style="WIDTH: 100%">
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_source.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_source.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_source.html	(revision 389)
@@ -0,0 +1,61 @@
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_source.html
+ * 	Source editor dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<html>
+	<head>
+		<title>Source</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta name="robots" content="noindex, nofollow">
+		<link href="common/fck_dialog_common.css" rel="stylesheet" type="text/css" />
+		<script language="javascript">
+		
+var oEditor		= window.parent.InnerDialogLoaded() ;
+var FCK			= oEditor.FCK ;
+var FCKConfig	= oEditor.FCKConfig ;
+
+window.onload = function()
+{
+	// EnableXHTML and EnableSourceXHTML has been deprecated
+//	document.getElementById('txtSource').value = ( FCKConfig.EnableXHTML && FCKConfig.EnableSourceXHTML ? FCK.GetXHTML( FCKConfig.FormatSource ) : FCK.GetHTML( FCKConfig.FormatSource ) ) ;
+	document.getElementById('txtSource').value = FCK.GetXHTML( FCKConfig.FormatSource ) ;
+
+	// Activate the "OK" button.
+	window.parent.SetOkButton( true ) ;
+}
+
+//#### The OK button was hit.
+function Ok()
+{
+	if ( oEditor.FCKBrowserInfo.IsIE )
+		oEditor.FCKUndo.SaveUndoStep() ;
+			
+	FCK.SetHTML( document.getElementById('txtSource').value, false ) ;
+	
+	return true ;
+}
+		</script>
+	</head>
+	<body scroll="no" style="OVERFLOW: hidden">
+		<table width="100%" height="100%">
+			<tr>
+				<td height="100%"><textarea id="txtSource" dir="ltr" style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: 14px; PADDING-BOTTOM: 5px; WIDTH: 100%; PADDING-TOP: 5px; FONT-FAMILY: Monospace; HEIGHT: 100%">Loading. Please wait...</textarea></td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/common/moz-bindings.xml
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/common/moz-bindings.xml	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/common/moz-bindings.xml	(revision 389)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<bindings xmlns="http://www.mozilla.org/xbl">
+	<binding id="numericfield">
+		<implementation>
+			<constructor>
+				this.keypress = CheckIsDigit ;
+			</constructor>
+			<method name="CheckIsDigit">
+				<body>
+					<![CDATA[
+					var iCode = keyCode ;
+
+					var bAccepted =
+						(
+							( iCode >= 48 && iCode <= 57 )		// Numbers
+							|| (iCode >= 37 && iCode <= 40)		// Arrows
+							|| iCode == 8											// Backspace
+							|| iCode == 46										// Delete
+						) ;
+
+					return bAccepted ;
+					]]>
+				</body>
+			</method>
+		</implementation>
+		<events>
+			<event type="keypress" value="CheckIsDigit()" />
+		</events>
+	</binding>
+</bindings>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/common/fck_dialog_common.css
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/common/fck_dialog_common.css	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/common/fck_dialog_common.css	(revision 389)
@@ -0,0 +1,79 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_dialog_common.css
+ * 	This is the CSS file used for interface details in some dialog
+ * 	windows.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+.ImagePreviewArea
+{
+	border: #000000 1px solid;
+	overflow: auto;
+	width: 100%;
+	height: 170px;
+	background-color: #ffffff;
+}
+
+.FlashPreviewArea
+{
+	border: #000000 1px solid;
+	padding: 5px;
+	overflow: auto;
+	width: 100%;
+	height: 170px;
+	background-color: #ffffff;
+}
+
+.BtnReset
+{
+	float: left;
+	background-position: center center;
+	background-image: url(images/reset.gif);
+	width: 16px;
+	height: 16px;
+	background-repeat: no-repeat;
+	border: 1px none;
+	font-size: 1px ;
+}
+
+.BtnLocked, .BtnUnlocked
+{
+	float: left;
+	background-position: center center;
+	background-image: url(images/locked.gif);
+	width: 16px;
+	height: 16px;
+	background-repeat: no-repeat;
+	border: none 1px;
+	font-size: 1px ;
+}
+
+.BtnUnlocked
+{
+	background-image: url(images/unlocked.gif);
+}
+
+.BtnOver
+{
+	border: outset 1px;
+	cursor: pointer;
+	cursor: hand;
+}
+
+.FCK__FieldNumeric
+{
+	behavior: url(common/fcknumericfield.htc) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/common/fck_dialog_common.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/common/fck_dialog_common.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/common/fck_dialog_common.js	(revision 389)
@@ -0,0 +1,148 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_dialog_common.js
+ * 	Useful functions used by almost all dialog window pages.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+// Gets a element by its Id. Used for shorter coding.
+function GetE( elementId )
+{
+	return document.getElementById( elementId )  ;
+}
+
+function ShowE( element, isVisible )
+{
+	if ( typeof( element ) == 'string' )
+		element = GetE( element ) ;
+	element.style.display = isVisible ? '' : 'none' ;
+}
+
+function SetAttribute( element, attName, attValue )
+{
+	if ( attValue == null || attValue.length == 0 )
+		element.removeAttribute( attName, 0 ) ;			// 0 : Case Insensitive
+	else
+		element.setAttribute( attName, attValue, 0 ) ;	// 0 : Case Insensitive
+}
+
+function GetAttribute( element, attName, valueIfNull )
+{
+	var oAtt = element.attributes[attName] ;
+
+	if ( oAtt == null || !oAtt.specified )
+		return valueIfNull ? valueIfNull : '' ;
+
+	var oValue ;
+	
+	if ( !( oValue = element.getAttribute( attName, 2 ) ) )
+		oValue = oAtt.nodeValue ;
+
+	return ( oValue == null ? valueIfNull : oValue ) ;
+}
+
+// Functions used by text fiels to accept numbers only.
+function IsDigit( e )
+{
+	if ( !e )
+		e = event ;
+
+	var iCode = ( e.keyCode || e.charCode ) ;
+	
+	return (
+			( iCode >= 48 && iCode <= 57 )		// Numbers
+			|| (iCode >= 37 && iCode <= 40)		// Arrows
+			|| iCode == 8						// Backspace
+			|| iCode == 46						// Delete
+	) ;
+}
+
+String.prototype.trim = function()
+{
+	return this.replace( /(^\s*)|(\s*$)/g, '' ) ;
+}
+
+String.prototype.startsWith = function( value )
+{
+	return ( this.substr( 0, value.length ) == value ) ;
+}
+
+String.prototype.remove = function( start, length )
+{
+	var s = '' ;
+
+	if ( start > 0 )
+		s = this.substring( 0, start ) ;
+
+	if ( start + length < this.length )
+		s += this.substring( start + length , this.length ) ;
+
+	return s ;
+}
+
+String.prototype.ReplaceAll = function( searchArray, replaceArray )
+{
+	var replaced = this ;
+	
+	for ( var i = 0 ; i < searchArray.length ; i++ )
+	{
+		replaced = replaced.replace( searchArray[i], replaceArray[i] ) ;
+	}
+	
+	return replaced ;
+}
+
+function OpenFileBrowser( url, width, height )
+{
+	// oEditor must be defined.
+	
+	var iLeft = ( oEditor.FCKConfig.ScreenWidth  - width ) / 2 ;
+	var iTop  = ( oEditor.FCKConfig.ScreenHeight - height ) / 2 ;
+
+	var sOptions = "toolbar=no,status=no,resizable=yes,dependent=yes,scrollbars=yes" ;
+	sOptions += ",width=" + width ;
+	sOptions += ",height=" + height ;
+	sOptions += ",left=" + iLeft ;
+	sOptions += ",top=" + iTop ;
+
+	// The "PreserveSessionOnFileBrowser" because the above code could be 
+	// blocked by popup blockers.
+	if ( oEditor.FCKConfig.PreserveSessionOnFileBrowser && oEditor.FCKBrowserInfo.IsIE )
+	{
+		// The following change has been made otherwise IE will open the file 
+		// browser on a different server session (on some cases):
+		// http://support.microsoft.com/default.aspx?scid=kb;en-us;831678
+		// by Simone Chiaretta.
+		var oWindow = oEditor.window.open( url, 'FCKBrowseWindow', sOptions ) ;
+		
+		if ( oWindow )
+		{
+			// Detect Yahoo popup blocker.
+			try
+			{
+				var sTest = oWindow.name ; // Yahoo returns "something", but we can't access it, so detect that and avoid strange errors for the user.
+				oWindow.opener = window ;
+			}
+			catch(e)
+			{
+				alert( oEditor.FCKLang.BrowseServerBlocked ) ;
+			}
+		}
+		else
+			alert( oEditor.FCKLang.BrowseServerBlocked ) ;
+    }
+    else
+		window.open( url, 'FCKBrowseWindow', sOptions ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/common/fcknumericfield.htc
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/common/fcknumericfield.htc	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/common/fcknumericfield.htc	(revision 389)
@@ -0,0 +1,24 @@
+<public:component lightweight="true">
+
+<script language="javascript">
+
+function CheckIsDigit()
+{
+	var iCode = event.keyCode ;
+
+	event.returnValue =
+		(
+			( iCode >= 48 && iCode <= 57 )		// Numbers
+			|| (iCode >= 37 && iCode <= 40)		// Arrows
+			|| iCode == 8						// Backspace
+			|| iCode == 46						// Delete
+		) ;
+
+	return event.returnValue ;
+}
+
+this.onkeypress = CheckIsDigit ;
+
+</script>
+
+</public:component>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_smiley.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_smiley.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_smiley.html	(revision 389)
@@ -0,0 +1,101 @@
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_smiley.html
+ * 	Smileys (emoticons) dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<style type="text/css">
+		.Hand
+		{
+			cursor: pointer;
+			cursor: hand;
+		}
+	</style>
+	<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+window.onload = function ()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+}
+
+function InsertSmiley( url )
+{
+	var oImg = oEditor.FCK.CreateElement( 'IMG' ) ;
+	oImg.src = url ;
+	oImg.setAttribute( '_fcksavedurl', url ) ;
+	
+	// For long smileys list, it seams that IE continues loading the images in
+	// the background when you quickly select one image. so, let's clear
+	// everything before closing.
+	document.body.innerHTML = '' ;
+
+	window.parent.Cancel() ;
+}
+
+function over(td)
+{
+	td.className = 'LightBackground Hand' ;
+}
+
+function out(td)
+{
+	td.className = 'DarkBackground Hand' ;
+}
+	</script>
+</head>
+<body scroll="no">
+	<table cellpadding="2" cellspacing="2" align="center" border="0" width="100%" height="100%">
+		<script type="text/javascript">
+
+var FCKConfig = oEditor.FCKConfig ;
+
+var sBasePath	= FCKConfig.SmileyPath ;
+var aImages		= FCKConfig.SmileyImages ;
+var iCols		= FCKConfig.SmileyColumns ;
+var iColWidth	= parseInt( 100 / iCols ) ;
+
+var i = 0 ;
+while (i < aImages.length)
+{
+	document.write( '<tr>' ) ;
+	for(var j = 0 ; j < iCols ; j++)
+	{
+		if (aImages[i])
+		{
+			var sUrl = sBasePath + aImages[i] ;
+			document.write( '<td width="' + iColWidth + '%" align="center" class="DarkBackground Hand" onclick="InsertSmiley(\'' + sUrl.replace(/'/g, "\\'" ) + '\')" onmouseover="over(this)" onmouseout="out(this)">' ) ;
+			document.write( '<img src="' + sUrl + '" border="0" />' ) ;
+		}
+		else
+			document.write( '<td width="' + iColWidth + '%" class="DarkBackground">&nbsp;' ) ;
+		document.write( '<\/td>' ) ;
+		i++ ;
+	}
+	document.write('<\/tr>') ;
+}
+
+		</script>
+	</table>
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_listprop.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_listprop.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_listprop.html	(revision 389)
@@ -0,0 +1,113 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_listprop.html
+ * 	Bulleted List dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ * 		Marcel J Bennett (start attribute)
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+var oActiveEl = oEditor.FCKSelection.MoveToAncestorNode( 'UL' ) ;
+var oActiveSel ;
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if ( oActiveEl )
+		oActiveSel = GetE('selBulleted') ;
+	else
+	{
+		oActiveEl = oEditor.FCKSelection.MoveToAncestorNode( 'OL' ) ;
+		if ( oActiveEl )
+		{
+			oActiveSel = GetE('selNumbered') ;
+			GetE('eStart').style.display = '' ;
+			GetE('txtStartPosition').value	= GetAttribute( oActiveEl, 'start' ) ;
+		}
+	}
+
+	oActiveSel.style.display = '' ;
+
+	if ( oActiveEl )
+	{
+		if ( oActiveEl.getAttribute('type') )
+			oActiveSel.value = oActiveEl.getAttribute('type').toLowerCase() ;
+	}
+
+	window.parent.SetOkButton( true ) ;
+}
+
+function Ok()
+{
+	if ( oActiveEl ){
+		SetAttribute( oActiveEl, 'type'	, oActiveSel.value ) ;
+		if(oActiveEl.tagName == 'OL')
+			SetAttribute( oActiveEl, 'start', GetE('txtStartPosition').value ) ;
+	}
+
+	return true ;
+}
+
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table width="100%" style="height: 100%">
+		<tr>
+			<td style="text-align:center">
+				<table cellspacing="0" cellpadding="0" border="0" style="margin-left: auto; margin-right: auto;">
+					<tr>
+						<td id="eStart" style="display: none; padding-right: 5px; padding-left: 5px">
+							<span fcklang="DlgLstStart">Start</span><br />
+							<input type="text" id="txtStartPosition" size="5" />
+						</td>
+						<td style="padding-right: 5px; padding-left: 5px">
+							<span fcklang="DlgLstType">List Type</span><br />
+							<select id="selBulleted" style="display: none">
+								<option value="" selected="selected"></option>
+								<option value="circle" fcklang="DlgLstTypeCircle">Circle</option>
+								<option value="disc" fcklang="DlgLstTypeDisc">Disc</option>
+								<option value="square" fcklang="DlgLstTypeSquare">Square</option>
+							</select>
+							<select id="selNumbered" style="display: none">
+								<option value="" selected="selected"></option>
+								<option value="1" fcklang="DlgLstTypeNumbers">Numbers (1, 2, 3)</option>
+								<option value="a" fcklang="DlgLstTypeLCase">Lowercase Letters (a, b, c)</option>
+								<option value="A" fcklang="DlgLstTypeUCase">Uppercase Letters (A, B, C)</option>
+								<option value="i" fcklang="DlgLstTypeSRoman">Small Roman Numerals (i, ii, iii)</option>
+								<option value="I" fcklang="DlgLstTypeLRoman">Large Roman Numerals (I, II, III)</option>
+							</select>
+							&nbsp;
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_select/fck_select.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_select/fck_select.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_select/fck_select.js	(revision 389)
@@ -0,0 +1,165 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_select.js
+ * 	Scripts for the fck_select.html page.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+function Select( combo )
+{
+	var iIndex = combo.selectedIndex ;
+
+	oListText.selectedIndex		= iIndex ;
+	oListValue.selectedIndex	= iIndex ;
+
+	var oTxtText	= document.getElementById( "txtText" ) ;
+	var oTxtValue	= document.getElementById( "txtValue" ) ;
+
+	oTxtText.value	= oListText.value ;
+	oTxtValue.value	= oListValue.value ;
+}
+
+function Add()
+{
+	var oTxtText	= document.getElementById( "txtText" ) ;
+	var oTxtValue	= document.getElementById( "txtValue" ) ;
+
+	AddComboOption( oListText, oTxtText.value, oTxtText.value ) ;
+	AddComboOption( oListValue, oTxtValue.value, oTxtValue.value ) ;
+
+	oListText.selectedIndex = oListText.options.length - 1 ;
+	oListValue.selectedIndex = oListValue.options.length - 1 ;
+
+	oTxtText.value	= '' ;
+	oTxtValue.value	= '' ;
+
+	oTxtText.focus() ;
+}
+
+function Modify()
+{
+	var iIndex = oListText.selectedIndex ;
+
+	if ( iIndex < 0 ) return ;
+
+	var oTxtText	= document.getElementById( "txtText" ) ;
+	var oTxtValue	= document.getElementById( "txtValue" ) ;
+
+	oListText.options[ iIndex ].innerHTML	= oTxtText.value ;
+	oListText.options[ iIndex ].value		= oTxtText.value ;
+
+	oListValue.options[ iIndex ].innerHTML	= oTxtValue.value ;
+	oListValue.options[ iIndex ].value		= oTxtValue.value ;
+
+	oTxtText.value	= '' ;
+	oTxtValue.value	= '' ;
+
+	oTxtText.focus() ;
+}
+
+function Move( steps )
+{
+	ChangeOptionPosition( oListText, steps ) ;
+	ChangeOptionPosition( oListValue, steps ) ;
+}
+
+function Delete()
+{
+	RemoveSelectedOptions( oListText ) ;
+	RemoveSelectedOptions( oListValue ) ;
+}
+
+function SetSelectedValue()
+{
+	var iIndex = oListValue.selectedIndex ;
+	if ( iIndex < 0 ) return ;
+
+	var oTxtValue = document.getElementById( "txtSelValue" ) ;
+
+	oTxtValue.value = oListValue.options[ iIndex ].value ;
+}
+
+// Moves the selected option by a number of steps (also negative)
+function ChangeOptionPosition( combo, steps )
+{
+	var iActualIndex = combo.selectedIndex ;
+
+	if ( iActualIndex < 0 )
+		return ;
+
+	var iFinalIndex = iActualIndex + steps ;
+
+	if ( iFinalIndex < 0 )
+		iFinalIndex = 0 ;
+
+	if ( iFinalIndex > ( combo.options.length - 1 ) )
+		iFinalIndex = combo.options.length - 1 ;
+
+	if ( iActualIndex == iFinalIndex )
+		return ;
+
+	var oOption = combo.options[ iActualIndex ] ;
+	var sText	= oOption.innerHTML ;
+	var sValue	= oOption.value ;
+
+	combo.remove( iActualIndex ) ;
+
+	oOption = AddComboOption( combo, sText, sValue, null, iFinalIndex ) ;
+
+	oOption.selected = true ;
+}
+
+// Remove all selected options from a SELECT object
+function RemoveSelectedOptions(combo)
+{
+	// Save the selected index
+	var iSelectedIndex = combo.selectedIndex ;
+
+	var oOptions = combo.options ;
+
+	// Remove all selected options
+	for ( var i = oOptions.length - 1 ; i >= 0 ; i-- )
+	{
+		if (oOptions[i].selected) combo.remove(i) ;
+	}
+
+	// Reset the selection based on the original selected index
+	if ( combo.options.length > 0 )
+	{
+		if ( iSelectedIndex >= combo.options.length ) iSelectedIndex = combo.options.length - 1 ;
+		combo.selectedIndex = iSelectedIndex ;
+	}
+}
+
+// Add a new option to a SELECT object (combo or list)
+function AddComboOption( combo, optionText, optionValue, documentObject, index )
+{
+	var oOption ;
+
+	if ( documentObject )
+		oOption = documentObject.createElement("OPTION") ;
+	else
+		oOption = document.createElement("OPTION") ;
+
+	if ( index != null )
+		combo.options.add( oOption, index ) ;
+	else
+		combo.options.add( oOption ) ;
+
+	oOption.innerHTML = optionText.length > 0 ? optionText : '&nbsp;' ;
+	oOption.value     = optionValue ;
+
+	return oOption ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_textarea.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_textarea.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_textarea.html	(revision 389)
@@ -0,0 +1,90 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_textarea.html
+ * 	Text Area dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html>
+	<head>
+		<title>Text Area Properties</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta content="noindex, nofollow" name="robots">
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+var oActiveEl = oEditor.FCKSelection.GetSelectedElement() ;
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if ( oActiveEl && oActiveEl.tagName == 'TEXTAREA' )
+	{
+		GetE('txtName').value		= oActiveEl.name ;
+		GetE('txtCols').value		= GetAttribute( oActiveEl, 'cols' ) ;
+		GetE('txtRows').value		= GetAttribute( oActiveEl, 'rows' ) ;
+	}
+	else
+		oActiveEl = null ;
+
+	window.parent.SetOkButton( true ) ;
+}
+
+function Ok()
+{
+	if ( !oActiveEl )
+	{
+		oActiveEl = oEditor.FCK.EditorDocument.createElement( 'TEXTAREA' ) ;
+		oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
+	}
+
+	oActiveEl.name = GetE('txtName').value ;
+	SetAttribute( oActiveEl, 'cols', GetE('txtCols').value ) ;
+	SetAttribute( oActiveEl, 'rows', GetE('txtRows').value ) ;
+
+	return true ;
+}
+
+		</script>
+	</head>
+	<body style='OVERFLOW: hidden' scroll='no'>
+		<table height="100%" width="100%">
+			<tr>
+				<td align="center">
+					<table border="0" cellpadding="0" cellspacing="0" width="80%">
+						<tr>
+							<td>
+								<span fckLang="DlgTextareaName">Name</span><br>
+								<input type="text" id="txtName" style="WIDTH: 100%">
+								<span fckLang="DlgTextareaCols">Collumns</span><br>
+								<input id="txtCols" type="text" size="5">
+								<br>
+								<span fckLang="DlgTextareaRows">Rows</span><br>
+								<input id="txtRows" type="text" size="5">
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_universalkey/data.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_universalkey/data.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_universalkey/data.js	(revision 389)
@@ -0,0 +1,73 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: data.js
+ * 	Scripts for the fck_universalkey.html page.
+ * 	Definition des 104 caracteres en hexa unicode.
+ * 
+ * File Authors:
+ * 		Michel Staelens (michel.staelens@wanadoo.fr)
+ * 		Abdul-Aziz Al-Oraij (top7up@hotmail.com)
+ * 		Bo Brandt (bbr@dynamicweb.dk)
+ */
+
+var Maj = new Array() ;
+var Min = new Array() ;
+
+Maj["Arabic"]				="0651|0021|0040|0023|0024|0025|005E|0026|002A|0029|0028|005F|002B|064E|064B|064F|064C|0625|0625|2018|00F7|00D7|061B|003C|003E|0650|064D|005D|005B|0623|0623|0640|060C|002F|003A|0022|007E|0652|007D|007B|0622|0622|2019|002C|002E|061F|007C|0020|0020|0020|0020|0020" ;
+Min["Arabic"]				="0630|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0636|0635|062B|0642|0641|063A|0639|0647|062E|062D|062C|062F|0634|0633|064A|0628|0644|0627|062A|0646|0645|0643|0637|0626|0621|0624|0631|0644|0627|0649|0629|0648|0632|0638|005C|0020|0020|0020|0020" ;
+Maj["Belarusian (C)"]		="0401|0021|0022|2116|003B|0025|003A|003F|002A|0028|0029|005F|002B|0419|0426|0423|041A|0415|041D|0413|0428|040E|0417|0425|0027|0424|042B|0412|0410|041F|0420|041E|041B|0414|0416|042D|042F|0427|0421|041C|0406|0422|042C|0411|042E|002C|0020|0020|0020|0020|0020|0020" ;
+Min["Belarusian (C)"]		="0451|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0439|0446|0443|043A|0435|043D|0433|0448|045E|0437|0445|0027|0444|044B|0432|0430|043F|0440|043E|043B|0434|0436|044D|044F|0447|0441|043C|0456|0442|044C|0431|044E|002E|0020|0020|0020|0020|0020|0020" ;
+Maj["Bulgarian (C)"]		="007E|0021|003F|002B|0022|0025|003D|003A|002F|005F|2116|0406|0056|044B|0423|0415|0418|0428|0429|041A|0421|0414|0417|0426|00A7|042C|042F|0410|041E|0416|0413|0422|041D|0412|041C|0427|042E|0419|042A|042D|0424|0425|041F|0420|041B|0411|0029|0020|0020|0020|0020|0020" ;
+Min["Bulgarian (C)"]		="0060|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|002E|002C|0443|0435|0438|0448|0449|043A|0441|0434|0437|0446|003B|044C|044F|0430|043E|0436|0433|0442|043D|0432|043C|0447|044E|0439|044A|044D|0444|0445|043F|0440|043B|0431|0028|0020|0020|0020|0020|0020" ;
+Maj["Croatian (L)"]			="00B8|0021|0022|0023|0024|0025|0026|002F|0028|0029|003D|003F|00A8|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|0160|0110|0041|0053|0044|0046|0047|0048|004A|004B|004C|010C|0106|0059|0058|0043|0056|0042|004E|004D|017D|003B|003A|003C|003E|005F|002D|002A|002B" ;
+Min["Croatian (L)"]			="00B8|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|0027|00A8|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|0161|0111|0061|0073|0064|0066|0067|0068|006A|006B|006C|010D|0107|0079|0078|0063|0076|0062|006E|006D|017E|002C|002E|003C|003E|005F|002D|002A|002B" ;
+Maj["Czech (L)"]			="00B0|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|0025|02C7|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|002F|0028|0041|0053|0044|0046|0047|0048|004A|004B|004C|0022|0027|0059|0058|0043|0056|0042|004E|004D|003F|003A|005F|005B|007B|0021|0020|0148|010F" ;
+Min["Czech (L)"]			="003B|002B|011B|0161|010D|0159|017E|00FD|00E1|00ED|00E9|003D|00B4|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|00FA|0029|0061|0073|0064|0066|0067|0068|006A|006B|006C|016F|00A7|0079|0078|0063|0076|0062|006E|006D|002C|002E|002D|005D|007D|00A8|0040|00F3|0165" ;
+Maj["Danish (L)"]			="00A7|0021|0022|0023|00A4|0025|0026|002F|0028|0029|003D|003F|0060|0051|0057|0045|0052|0054|0059|0055|0049|004F|0050|00C5|005E|0041|0053|0044|0046|0047|0048|004A|004B|004C|00C6|00D8|003E|005A|0058|0043|0056|0042|004E|004D|003B|003A|002A|005F|007B|007D|005C|007E" ;
+Min["Danish (L)"]			="00BD|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002B|00B4|0071|0077|0065|0072|0074|0079|0075|0069|006F|0070|00E5|00A8|0061|0073|0064|0066|0067|0068|006A|006B|006C|00E6|00F8|003C|007A|0078|0063|0076|0062|006E|006D|002C|002E|0027|002D|005B|005D|007C|0040" ;
+Maj["Diacritical (L)"]		="0060|00B4|005E|00A8|007E|00B0|00B7|00B8|00AF|02D9|02DB|02C7|02D8|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|00C6|02DD|0041|0053|0044|0046|0047|0048|004A|004B|004C|0141|0152|0059|0058|0043|0056|0042|004E|004D|01A0|01AF|00D8|0126|0110|0132|00DE|00D0|00DF" ;
+Min["Diacritical (L)"]		="0060|00B4|005E|00A8|007E|00B0|00B7|00B8|00AF|02D9|02DB|02C7|02D8|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|00E6|02DD|0061|0073|0064|0066|0067|0068|006A|006B|006C|0142|0153|0079|0078|0063|0076|0062|006E|006D|01A1|01B0|00F8|0127|0111|0133|00FE|00F0|00DF" ;
+Maj["Finnish (L)"]			="00A7|0021|0022|0023|00A4|0025|0026|002F|0028|0029|003D|003F|0060|0051|0057|0045|0052|0054|0059|0055|0049|004F|0050|00C5|005E|0041|0053|0044|0046|0047|0048|004A|004B|004C|00D6|00C4|003E|005A|0058|0043|0056|0042|004E|004D|003B|003A|002A|005F|007B|007D|005C|007E" ;
+Min["Finnish (L)"]			="00BD|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002B|00B4|0071|0077|0065|0072|0074|0079|0075|0069|006F|0070|00E5|00A8|0061|0073|0064|0066|0067|0068|006A|006B|006C|00F6|00E4|003C|007A|0078|0063|0076|0062|006E|006D|002C|002E|0027|002D|005B|005D|007C|0040" ;
+Maj["French (L)"]			="0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|00B0|002B|0023|0041|005A|0045|0052|0054|0059|0055|0049|004F|0050|00A8|0025|0051|0053|0044|0046|0047|0048|004A|004B|004C|004D|00B5|0057|0058|0043|0056|0042|004E|003F|002E|002F|00A7|003C|005B|007B|00A3|007E|0020" ;
+Min["French (L)"]			="0026|00E9|0022|0027|0028|002D|00E8|005F|00E7|00E0|0029|003D|0040|0061|007A|0065|0072|0074|0079|0075|0069|006F|0070|005E|00F9|0071|0073|0064|0066|0067|0068|006A|006B|006C|006D|002A|0077|0078|0063|0076|0062|006E|002C|003B|003A|0021|003E|005D|007D|0024|007E|0020" ;
+Maj["Greek"]				="007E|0021|0040|0023|0024|0025|0390|0026|03B0|0028|0029|005F|002B|003A|03A3|0395|03A1|03A4|03A5|0398|0399|039F|03A0|0386|038F|0391|03A3|0394|03A6|0393|0397|039E|039A|039B|038C|0022|0396|03A7|03A8|03A9|0392|039D|039C|003C|003E|003F|0388|0389|038A|03AA|03AB|038E" ;
+Min["Greek"]				="0060|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|003B|03C2|03B5|03C1|03C4|03C5|03B8|03B9|03BF|03C0|03AC|03CE|03B1|03C3|03B4|03C6|03B3|03B7|03BE|03BA|03BB|03CC|0027|03B6|03C7|03C8|03C9|03B2|03BD|03BC|002C|002E|002F|03AD|03AE|03AF|03CA|03CB|03CD" ;
+Maj["Hebrew"]				="007E|0021|0040|0023|0024|0025|005E|0026|002A|0028|0029|005F|002B|0051|0057|0045|0052|0054|0059|0055|0049|004F|0050|007B|007D|0041|0053|0044|0046|0047|0048|004A|004B|004C|003A|0022|005A|0058|0043|0056|0042|004E|004D|003C|003E|003F|0020|0020|0020|0020|0020|0020" ;
+Min["Hebrew"]				="0060|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|002F|0027|05E7|05E8|05D0|05D8|05D5|05DF|05DD|05E4|005B|005D|05E9|05D3|05D2|05DB|05E2|05D9|05D7|05DC|05DA|05E3|002C|05D6|05E1|05D1|05D4|05E0|05DE|05E6|05EA|05E5|002E|0020|0020|0020|0020|0020|0020" ;
+Maj["Hungarian (L)"]		="00A7|0027|0022|002B|0021|0025|002F|003D|0028|0029|00ED|00DC|00D3|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|0150|00DA|0041|0053|0044|0046|0047|0048|004A|004B|004C|00C9|00C1|0170|00CD|0059|0058|0043|0056|0042|004E|004D|003F|002E|003A|002D|005F|007B|007D" ;
+Min["Hungarian (L)"]		="0030|0031|0032|0033|0034|0035|0036|0037|0038|0039|00F6|00FC|00F3|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|0151|00FA|0061|0073|0064|0066|0067|0068|006A|006B|006C|00E9|00E1|0171|00ED|0079|0078|0063|0076|0062|006E|006D|002C|002E|003A|002D|005F|007B|007D" ;
+Maj["Macedonian (C)"]		="007E|0021|201E|201C|2019|0025|2018|0026|002A|0028|0029|005F|002B|0409|040A|0415|0420|0422|0405|0423|0418|041E|041F|0428|0403|0410|0421|0414|0424|0413|0425|0408|041A|041B|0427|040C|0401|0417|040F|0426|0412|0411|041D|041C|0416|003B|003A|003F|002A|005F|007B|007D" ;
+Min["Macedonian (C)"]		="0060|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0459|045A|0435|0440|0442|0455|0443|0438|043E|043F|0448|0453|0430|0441|0434|0444|0433|0445|0458|043A|043B|0447|045C|0451|0437|045F|0446|0432|0431|043D|043C|0436|002C|002E|002F|0027|002D|005B|005D" ;
+Maj["Norwegian (L)"]		="00A7|0021|0022|0023|00A4|0025|0026|002F|0028|0029|003D|003F|0060|0051|0057|0045|0052|0054|0059|0055|0049|004F|0050|00C5|005E|0041|0053|0044|0046|0047|0048|004A|004B|00D8|00C6|00C4|003E|005A|0058|0043|0056|0042|004E|004D|003B|003A|002A|005F|007B|007D|005C|007E" ;
+Min["Norwegian (L)"]		="00BD|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002B|00B4|0071|0077|0065|0072|0074|0079|0075|0069|006F|0070|00E5|00A8|0061|0073|0064|0066|0067|0068|006A|006B|00F8|00E6|00E4|003C|007A|0078|0063|0076|0062|006E|006D|002C|002E|0027|002D|005B|005D|007C|0040" ;
+Maj["Persian"]				="200D|0021|066C|066B|FDFC|066A|00D7|060C|002A|0029|0028|0640|002B|0652|064C|064D|064B|064F|0650|064E|0651|005D|005B|007D|007B|0624|0626|064A|0625|0623|0622|0629|00BB|00AB|003A|061B|0643|0020|0698|0670|200C|0654|0621|003E|003C|061F|007C|0020|0020|0020|0020|0020" ;
+Min["Persian"]				="200D|06F1|06F2|06F3|06F4|06F5|06F6|06F7|06F8|06F9|06F0|002D|003D|0636|0635|062B|0642|0641|063A|0639|0647|062E|062D|062C|0686|0634|0633|06CC|0628|0644|0627|062A|0646|0645|06A9|06AF|0638|0637|0632|0631|0630|062F|067E|0648|002E|002F|005C|0020|0020|0020|0020|0020" ;
+Maj["Polish (L)"]			="002A|0021|0022|0023|00A4|0025|0026|002F|0028|0029|003D|003F|017A|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|0144|0107|0041|0053|0044|0046|0047|0048|004A|004B|004C|0141|0119|0059|0058|0043|0056|0042|004E|004D|003B|003A|005F|003C|005B|007B|02D9|00B4|02DB" ;
+Min["Polish (L)"]			="0027|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002B|00F3|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|017C|015B|0061|0073|0064|0066|0067|0068|006A|006B|006C|0142|0105|0079|0078|0063|0076|0062|006E|006D|002C|002E|002D|003E|005D|007D|02D9|00B4|02DB" ;
+Maj["Portuguese (L)"]		="007C|0021|0022|0023|0024|0025|0026|002F|0028|0029|003D|003F|00BB|0051|0057|0045|0052|0054|0059|0055|0049|004F|0050|002A|0060|0041|0053|0044|0046|0047|0048|004A|004B|004C|00C7|00AA|003E|005A|0058|0043|0056|0042|004E|004D|003B|003A|005E|007B|007D|00A7|20AC|005F" ;
+Min["Portuguese (L)"]		="005C|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|0027|00AB|0071|0077|0065|0072|0074|0079|0075|0069|006F|0070|002B|00B4|0061|0073|0064|0066|0067|0068|006A|006B|006C|00E7|00BA|003C|007A|0078|0063|0076|0062|006E|006D|002C|002E|007E|005B|005D|00A8|0040|002D" ;
+Maj["Russian (C)"]			="0401|0021|0040|0023|2116|0025|005E|0026|002A|0028|0029|005F|002B|0419|0426|0423|041A|0415|041D|0413|0428|0429|0417|0425|042A|0424|042B|0412|0410|041F|0420|041E|041B|0414|0416|042D|042F|0427|0421|041C|0418|0422|042C|0411|042E|003E|002E|003A|0022|005B|005D|003F" ;
+Min["Russian (C)"]			="0451|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0439|0446|0443|043A|0435|043D|0433|0448|0449|0437|0445|044A|0444|044B|0432|0430|043F|0440|043E|043B|0434|0436|044D|044F|0447|0441|043C|0438|0442|044C|0431|044E|003C|002C|003B|0027|007B|007D|002F" ;
+Maj["Serbian (C)"]			="007E|0021|0022|0023|0024|0025|0026|002F|0028|0029|003D|003F|002A|0409|040A|0415|0420|0422|0417|0423|0418|041E|041F|0428|0402|0410|0421|0414|0424|0413|0425|0408|041A|041B|0427|040B|003E|0405|040F|0426|0412|0411|041D|041C|0416|003A|005F|002E|003A|0022|005B|005D" ;
+Min["Serbian (C)"]			="0060|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|0027|002B|0459|045A|0435|0440|0442|0437|0443|0438|043E|043F|0448|0452|0430|0441|0434|0444|0433|0445|0458|043A|043B|0447|045B|003C|0455|045F|0446|0432|0431|043D|043C|0436|002E|002D|002C|003B|0027|007B|007D" ;
+Maj["Serbian (L)"]			="007E|0021|0022|0023|0024|0025|0026|002F|0028|0029|003D|003F|002A|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|0160|0110|0041|0053|0044|0046|0047|0048|004A|004B|004C|010C|0106|003E|0059|0058|0043|0056|0042|004E|004D|017D|003A|005F|002E|003A|0022|005B|005D" ;
+Min["Serbian (L)"]			="201A|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|0027|002B|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|0161|0111|0061|0073|0064|0066|0067|0068|006A|006B|006C|010D|0107|003C|0079|0078|0063|0076|0062|006E|006D|017E|002E|002D|002C|003B|0027|007B|007D" ;
+Maj["Slovak (L)"]			="00B0|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|0025|02C7|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|002F|0028|0041|0053|0044|0046|0047|0048|004A|004B|004C|0022|0021|0059|0058|0043|0056|0042|004E|004D|003F|003A|005F|003C|005B|010F|0029|002A|0020" ;
+Min["Slovak (L)"]			="003B|002B|013E|0161|010D|0165|017E|00FD|00E1|00ED|00E9|003D|00B4|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|00FA|00E4|0061|0073|0064|0066|0067|0068|006A|006B|006C|00F4|00A7|0079|0078|0063|0076|0062|006E|006D|002C|002E|002D|003E|005D|00F3|0148|0026|0020" ;
+Maj["Spanish (L)"]			="00AA|0021|0022|00B7|0024|0025|0026|002F|0028|0029|003D|003F|00BF|0051|0057|0045|0052|0054|0059|0055|0049|004F|0050|005E|00A8|0041|0053|0044|0046|0047|0048|004A|004B|004C|00D1|00C7|005A|0058|0043|0056|0042|004E|004D|003B|003A|005F|003E|007C|0040|0023|007E|002A" ;
+Min["Spanish (L)"]			="00BA|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|0027|00A1|0071|0077|0065|0072|0074|0079|0075|0069|006F|0070|0060|00B4|0061|0073|0064|0066|0067|0068|006A|006B|006C|00F1|00E7|007A|0078|0063|0076|0062|006E|006D|002C|002E|002D|003C|005C|0040|0023|007E|002B" ;
+Maj["Ukrainian (C)"]		="0401|0021|0040|0023|2116|0025|005E|0026|002A|0028|0029|005F|002B|0419|0426|0423|041A|0415|041D|0413|0428|0429|0417|0425|0407|0424|0406|0412|0410|041F|0420|041E|041B|0414|0416|0404|0490|042F|0427|0421|041C|0418|0422|042C|0411|042E|002E|003A|0022|003C|003E|003F" ;
+Min["Ukrainian (C)"]		="0451|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0439|0446|0443|043A|0435|043D|0433|0448|0449|0437|0445|0457|0444|0456|0432|0430|043F|0440|043E|043B|0434|0436|0454|0491|044F|0447|0441|043C|0438|0442|044C|0431|044E|002C|003B|0027|007B|007D|002F" ;
+Maj["Vietnamese (L)"]		="007E|0021|0040|0023|0024|0025|005E|0026|002A|0028|0029|005F|002B|0051|0057|0045|0052|0054|0059|0055|0049|004F|0050|01AF|01A0|0041|0053|0044|0046|0047|0048|004A|004B|004C|0102|00C2|005A|0058|0043|0056|0042|004E|004D|00CA|00D4|0110|003C|003E|003F|007D|003A|0022" ;
+Min["Vietnamese (L)"]		="20AB|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0071|0077|0065|0072|0074|0079|0075|0069|006F|0070|01B0|01A1|0061|0073|0064|0066|0067|0068|006A|006B|006C|0103|00E2|007A|0078|0063|0076|0062|006E|006D|00EA|00F4|0111|002C|002E|002F|007B|003B|0027" ;
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_universalkey/dialogue.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_universalkey/dialogue.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_universalkey/dialogue.js	(revision 389)
@@ -0,0 +1,31 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: dialogue.js
+ * 	Scripts for the fck_universalkey.html page.
+ * 
+ * File Authors:
+ * 		Michel Staelens (michel.staelens@wanadoo.fr)
+ * 		Bernadette Cierzniak
+ * 		Abdul-Aziz Al-Oraij (top7up@hotmail.com)
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+function afficher(txt)
+{
+	document.getElementById( 'uni_area' ).value = txt ;
+}
+
+function rechercher()
+{
+	return document.getElementById( 'uni_area' ).value ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_universalkey/diacritic.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_universalkey/diacritic.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_universalkey/diacritic.js	(revision 389)
@@ -0,0 +1,65 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: diacritic.js
+ * 	Scripts for the fck_universalkey.html page.
+ * 
+ * File Authors:
+ * 		Michel Staelens (michel.staelens@wanadoo.fr)
+ * 		Abdul-Aziz Al-Oraij (top7up@hotmail.com)
+ */
+
+var dia = new Array()
+
+dia["0060"]=new Array();dia["00B4"]=new Array();dia["005E"]=new Array();dia["00A8"]=new Array();dia["007E"]=new Array();dia["00B0"]=new Array();dia["00B7"]=new Array();dia["00B8"]=new Array();dia["00AF"]=new Array();dia["02D9"]=new Array();dia["02DB"]=new Array();dia["02C7"]=new Array();dia["02D8"]=new Array();dia["02DD"]=new Array();dia["031B"]=new Array();
+dia["0060"]["0061"]="00E0";dia["00B4"]["0061"]="00E1";dia["005E"]["0061"]="00E2";dia["00A8"]["0061"]="00E4";dia["007E"]["0061"]="00E3";dia["00B0"]["0061"]="00E5";dia["00AF"]["0061"]="0101";dia["02DB"]["0061"]="0105";dia["02D8"]["0061"]="0103";
+dia["00B4"]["0063"]="0107";dia["005E"]["0063"]="0109";dia["00B8"]["0063"]="00E7";dia["02D9"]["0063"]="010B";dia["02C7"]["0063"]="010D";
+dia["02C7"]["0064"]="010F";
+dia["0060"]["0065"]="00E8";dia["00B4"]["0065"]="00E9";dia["005E"]["0065"]="00EA";dia["00A8"]["0065"]="00EB";dia["00AF"]["0065"]="0113";dia["02D9"]["0065"]="0117";dia["02DB"]["0065"]="0119";dia["02C7"]["0065"]="011B";dia["02D8"]["0065"]="0115";
+dia["005E"]["0067"]="011D";dia["00B8"]["0067"]="0123";dia["02D9"]["0067"]="0121";dia["02D8"]["0067"]="011F";
+dia["005E"]["0068"]="0125";
+dia["0060"]["0069"]="00EC";dia["00B4"]["0069"]="00ED";dia["005E"]["0069"]="00EE";dia["00A8"]["0069"]="00EF";dia["007E"]["0069"]="0129";dia["00AF"]["0069"]="012B";dia["02DB"]["0069"]="012F";dia["02D8"]["0069"]="012D";
+dia["005E"]["006A"]="0135";
+dia["00B8"]["006B"]="0137";
+dia["00B4"]["006C"]="013A";dia["00B7"]["006C"]="0140";dia["00B8"]["006C"]="013C";dia["02C7"]["006C"]="013E";
+dia["00B4"]["006E"]="0144";dia["007E"]["006E"]="00F1";dia["00B8"]["006E"]="0146";dia["02D8"]["006E"]="0148";
+dia["0060"]["006F"]="00F2";dia["00B4"]["006F"]="00F3";dia["005E"]["006F"]="00F4";dia["00A8"]["006F"]="00F6";dia["007E"]["006F"]="00F5";dia["00AF"]["006F"]="014D";dia["02D8"]["006F"]="014F";dia["02DD"]["006F"]="0151";dia["031B"]["006F"]="01A1";
+dia["00B4"]["0072"]="0155";dia["00B8"]["0072"]="0157";dia["02C7"]["0072"]="0159";
+dia["00B4"]["0073"]="015B";dia["005E"]["0073"]="015D";dia["00B8"]["0073"]="015F";dia["02C7"]["0073"]="0161";
+dia["00B8"]["0074"]="0163";dia["02C7"]["0074"]="0165";
+dia["0060"]["0075"]="00F9";dia["00B4"]["0075"]="00FA";dia["005E"]["0075"]="00FB";dia["00A8"]["0075"]="00FC";dia["007E"]["0075"]="0169";dia["00B0"]["0075"]="016F";dia["00AF"]["0075"]="016B";dia["02DB"]["0075"]="0173";dia["02D8"]["0075"]="016D";dia["02DD"]["0075"]="0171";dia["031B"]["0075"]="01B0";
+dia["005E"]["0077"]="0175";
+dia["00B4"]["0079"]="00FD";dia["005E"]["0079"]="0177";dia["00A8"]["0079"]="00FF";
+dia["00B4"]["007A"]="017A";dia["02D9"]["007A"]="017C";dia["02C7"]["007A"]="017E";
+dia["00B4"]["00E6"]="01FD";
+dia["00B4"]["00F8"]="01FF";
+dia["0060"]["0041"]="00C0";dia["00B4"]["0041"]="00C1";dia["005E"]["0041"]="00C2";dia["00A8"]["0041"]="00C4";dia["007E"]["0041"]="00C3";dia["00B0"]["0041"]="00C5";dia["00AF"]["0041"]="0100";dia["02DB"]["0041"]="0104";dia["02D8"]["0041"]="0102";
+dia["00B4"]["0043"]="0106";dia["005E"]["0043"]="0108";dia["00B8"]["0043"]="00C7";dia["02D9"]["0043"]="010A";dia["02C7"]["0043"]="010C";
+dia["02C7"]["0044"]="010E";
+dia["0060"]["0045"]="00C8";dia["00B4"]["0045"]="00C9";dia["005E"]["0045"]="00CA";dia["00A8"]["0045"]="00CB";dia["00AF"]["0045"]="0112";dia["02D9"]["0045"]="0116";dia["02DB"]["0045"]="0118";dia["02C7"]["0045"]="011A";dia["02D8"]["0045"]="0114";
+dia["005E"]["0047"]="011C";dia["00B8"]["0047"]="0122";dia["02D9"]["0047"]="0120";dia["02D8"]["0047"]="011E";
+dia["005E"]["0048"]="0124";
+dia["0060"]["0049"]="00CC";dia["00B4"]["0049"]="00CD";dia["005E"]["0049"]="00CE";dia["00A8"]["0049"]="00CF";dia["007E"]["0049"]="0128";dia["00AF"]["0049"]="012A";dia["02D9"]["0049"]="0130";dia["02DB"]["0049"]="012E";dia["02D8"]["0049"]="012C";
+dia["005E"]["004A"]="0134";
+dia["00B8"]["004B"]="0136";
+dia["00B4"]["004C"]="0139";dia["00B7"]["004C"]="013F";dia["00B8"]["004C"]="013B";dia["02C7"]["004C"]="013D";
+dia["00B4"]["004E"]="0143";dia["007E"]["004E"]="00D1";dia["00B8"]["004E"]="0145";dia["02D8"]["004E"]="0147";
+dia["0060"]["004F"]="00D2";dia["00B4"]["004F"]="00D3";dia["005E"]["004F"]="00D4";dia["00A8"]["004F"]="00D6";dia["007E"]["004F"]="00D5";dia["00AF"]["004F"]="014C";dia["02D8"]["004F"]="014E";dia["02DD"]["004F"]="0150";dia["031B"]["004F"]="01A0";
+dia["00B4"]["0052"]="0154";dia["00B8"]["0052"]="0156";dia["02C7"]["0052"]="0158";
+dia["00B4"]["0053"]="015A";dia["005E"]["0053"]="015C";dia["00B8"]["0053"]="015E";dia["02C7"]["0053"]="0160";
+dia["00B8"]["0054"]="0162";dia["02C7"]["0054"]="0164";
+dia["0060"]["0055"]="00D9";dia["00B4"]["0055"]="00DA";dia["005E"]["0055"]="00DB";dia["00A8"]["0055"]="00DC";dia["007E"]["0055"]="0168";dia["00B0"]["0055"]="016E";dia["00AF"]["0055"]="016A";dia["02DB"]["0055"]="0172";dia["02D8"]["0055"]="016C";dia["02DD"]["0055"]="0170";dia["031B"]["0055"]="01AF";
+dia["005E"]["0057"]="0174";
+dia["00B4"]["0059"]="00DD";dia["005E"]["0059"]="0176";dia["00A8"]["0059"]="0178";
+dia["00B4"]["005A"]="0179";dia["02D9"]["005A"]="017B";dia["02C7"]["005A"]="017D";
+dia["00B4"]["00C6"]="01FC";
+dia["00B4"]["00D8"]="01FE";
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_universalkey/fck_universalkey.css
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_universalkey/fck_universalkey.css	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_universalkey/fck_universalkey.css	(revision 389)
@@ -0,0 +1,62 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_universalkey.css
+ * 	CSS styles for the Universal Keyboard.
+ * 
+ * File Authors:
+ * 		Michel Staelens (michel.staelens@wanadoo.fr)
+ * 		Bernadette Cierzniak
+ * 		Abdul-Aziz Al-Oraij (top7up@hotmail.com)
+ */
+
+BODY, TEXTAREA, INPUT, TD, SELECT
+{
+	font-family: Tahoma,verdana,arial,sans-serif;
+}
+DIV
+{
+	position: absolute;
+}
+.simple
+{
+	font-size: 11pt;
+}
+.double
+{
+	font-size: 9pt;
+}
+.simpledia
+{
+	color: red;
+	font-size: 11pt;
+}
+.doubledia
+{
+	color: red;
+	font-size: 9pt;
+}
+.action
+{
+	color: white;
+	font-size: 7pt;
+}
+.clavier
+{
+	color: blue;
+	font-size: 7pt;
+}
+.sign
+{
+	color: gray;
+	font-size: 7pt;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_universalkey/multihexa.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_universalkey/multihexa.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_universalkey/multihexa.js	(revision 389)
@@ -0,0 +1,309 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: multihexa.js
+ * 	Scripts for the fck_universalkey.html page.
+ * 	Definition des 104 caracteres en hexa unicode.
+ * 
+ * File Authors:
+ * 		Michel Staelens (michel.staelens@wanadoo.fr)
+ * 		Bernadette Cierzniak
+ * 		Abdul-Aziz Al-Oraij (top7up@hotmail.com)
+ */
+
+var caps=0, lock=0, hexchars="0123456789ABCDEF", accent="0000", keydeb=0
+var key=new Array();j=0;for (i in Maj){key[j]=i;j++}
+var ns6=((!document.all)&&(document.getElementById))
+var ie=document.all
+
+var langue=getCk();
+if (langue==""){
+	langue=key[keydeb]
+}
+CarMaj=Maj[langue].split("|");CarMin=Min[langue].split("|")
+
+/*unikey*/
+var posUniKeyLeft=0, posUniKeyTop=0
+if (ns6){posUniKeyLeft=0;posUniKeyTop=60}
+else if (ie){posUniKeyLeft=0;posUniKeyTop=60}
+tracer("fond",posUniKeyLeft,posUniKeyTop,'<img src="fck_universalkey/keyboard_layout.gif" width=404 height=152 border="0"><br />',"sign")
+/*touches*/
+var posX=new Array(0,28,56,84,112,140,168,196,224,252,280,308,336,42,70,98,126,154,182,210,238,266,294,322,350,50,78,106,134,162,190,218,246,274,302,330,64,92,120,148,176,204,232,260,288,316,28,56,84,294,322,350)
+var posY=new Array(14,14,14,14,14,14,14,14,14,14,14,14,14,42,42,42,42,42,42,42,42,42,42,42,42,70,70,70,70,70,70,70,70,70,70,70,98,98,98,98,98,98,98,98,98,98,126,126,126,126,126,126)
+var nbTouches=52
+for (i=0;i<nbTouches;i++){
+	CarMaj[i]=((CarMaj[i]!="0000")?(fromhexby4tocar(CarMaj[i])):"")
+	CarMin[i]=((CarMin[i]!="0000")?(fromhexby4tocar(CarMin[i])):"")
+	if (CarMaj[i]==CarMin[i].toUpperCase()){
+		cecar=((lock==0)&&(caps==0)?CarMin[i]:CarMaj[i])
+		tracer("car"+i,posUniKeyLeft+6+posX[i],posUniKeyTop+3+posY[i],cecar,((dia[hexa(cecar)]!=null)?"simpledia":"simple"))
+		tracer("majus"+i,posUniKeyLeft+15+posX[i],posUniKeyTop+1+posY[i],"&nbsp;","double")
+		tracer("minus"+i,posUniKeyLeft+3+posX[i],posUniKeyTop+9+posY[i],"&nbsp;","double")
+	}
+	else{
+		tracer("car"+i,posUniKeyLeft+6+posX[i],posUniKeyTop+3+posY[i],"&nbsp;","simple")
+		cecar=CarMin[i]
+		tracer("minus"+i,posUniKeyLeft+3+posX[i],posUniKeyTop+9+posY[i],cecar,((dia[hexa(cecar)]!=null)?"doubledia":"double"))
+		cecar=CarMaj[i]
+		tracer("majus"+i,posUniKeyLeft+15+posX[i],posUniKeyTop+1+posY[i],cecar,((dia[hexa(cecar)]!=null)?"doubledia":"double"))
+	}
+}
+/*touches de fonctions*/
+var actC1=new Array(0,371,364,0,378,0,358,0,344,0,112,378)
+var actC2=new Array(0,0,14,42,42,70,70,98,98,126,126,126)
+var actC3=new Array(32,403,403,39,403,47,403,61,403,25,291,403)
+var actC4=new Array(11,11,39,67,67,95,95,123,123,151,151,151)
+var act  =new Array(" « KB"," KB » ","Delete","Clear","Back","Caps<br> Lock","Enter","Shift","Shift","<|<","Space",">|>")
+var effet=new Array("keyscroll(-3)","keyscroll(3)","faire(\"del\")","RAZ()","faire(\"bck\")","bloq()","faire(\"\\n\")","haut()","haut()","faire(\"ar\")","faire(\" \")","faire(\"av\")")
+var nbActions=12
+for (i=0;i<nbActions;i++){
+	tracer("act"+i,posUniKeyLeft+1+actC1[i],posUniKeyTop-1+actC2[i],act[i],"action")
+}
+/*navigation*/
+var keyC1=new Array(35,119,203,287)
+var keyC2=new Array(0,0,0,0)
+var keyC3=new Array(116,200,284,368)
+var keyC4=new Array(11,11,11,11)
+for (i=0;i<4;i++){
+	tracer("key"+i,posUniKeyLeft+5+keyC1[i],posUniKeyTop-1+keyC2[i],key[i],"unikey")
+}
+/*zones reactives*/
+tracer("masque",posUniKeyLeft,posUniKeyTop,'<img src="fck_universalkey/00.gif" width=404 height=152 border="0" usemap="#unikey">')
+document.write('<map name="unikey">')
+for (i=0;i<nbTouches;i++){
+	document.write('<area coords="'+posX[i]+','+posY[i]+','+(posX[i]+25)+','+(posY[i]+25)+'" href=# onClick=\'javascript:ecrire('+i+')\'>')
+}
+for (i=0;i<nbActions;i++){
+	document.write('<area coords="'+actC1[i]+','+actC2[i]+','+actC3[i]+','+actC4[i]+'" href=# onClick=\'javascript:'+effet[i]+'\'>')
+}
+for (i=0;i<4;i++){
+	document.write('<area coords="'+keyC1[i]+','+keyC2[i]+','+keyC3[i]+','+keyC4[i]+'" onclick=\'javascript:charger('+i+')\'>')
+}
+document.write('</map>')
+
+/*fonctions*/
+function ecrire(i){
+	txt=rechercher()+"|";subtxt=txt.split("|")
+	ceci=(lock==1)?CarMaj[i]:((caps==1)?CarMaj[i]:CarMin[i])
+	if (test(ceci)){subtxt[0]+=cardia(ceci);distinguer(false)}
+	else if(dia[accent]!=null&&dia[hexa(ceci)]!=null){distinguer(false);accent=hexa(ceci);distinguer(true)}
+	else if(dia[accent]!=null){subtxt[0]+=fromhexby4tocar(accent)+ceci;distinguer(false)}
+	else if(dia[hexa(ceci)]!=null){accent=hexa(ceci);distinguer(true)}
+	else {subtxt[0]+=ceci}
+	txt=subtxt[0]+"|"+subtxt[1]
+	afficher(txt)
+	if (caps==1){caps=0;MinusMajus()}
+}
+function faire(ceci){
+	txt=rechercher()+"|";subtxt=txt.split("|")
+	l0=subtxt[0].length
+	l1=subtxt[1].length
+	c1=subtxt[0].substring(0,(l0-2))
+	c2=subtxt[0].substring(0,(l0-1))
+	c3=subtxt[1].substring(0,1)
+	c4=subtxt[1].substring(0,2)
+	c5=subtxt[0].substring((l0-2),l0)
+	c6=subtxt[0].substring((l0-1),l0)
+	c7=subtxt[1].substring(1,l1)
+	c8=subtxt[1].substring(2,l1)
+	if(dia[accent]!=null){if(ceci==" "){ceci=fromhexby4tocar(accent)}distinguer(false)}
+	switch (ceci){
+	case("av") :if(escape(c4)!="%0D%0A"){txt=subtxt[0]+c3+"|"+c7}else{txt=subtxt[0]+c4+"|"+c8}break
+	case("ar") :if(escape(c5)!="%0D%0A"){txt=c2+"|"+c6+subtxt[1]}else{txt=c1+"|"+c5+subtxt[1]}break
+	case("bck"):if(escape(c5)!="%0D%0A"){txt=c2+"|"+subtxt[1]}else{txt=c1+"|"+subtxt[1]}break
+	case("del"):if(escape(c4)!="%0D%0A"){txt=subtxt[0]+"|"+c7}else{txt=subtxt[0]+"|"+c8}break
+	default:txt=subtxt[0]+ceci+"|"+subtxt[1];break
+	}
+	afficher(txt)
+}
+function RAZ(){txt="";if(dia[accent]!=null){distinguer(false)}afficher(txt)}
+function haut(){caps=1;MinusMajus()}
+function bloq(){lock=(lock==1)?0:1;MinusMajus()}
+
+/*fonctions de traitement du unikey*/
+function tracer(nom,gauche,haut,ceci,classe){ceci="<span class="+classe+">"+ceci+"</span>";document.write('<div id="'+nom+'" >'+ceci+'</div>');if (ns6){document.getElementById(nom).style.left=gauche+"px";document.getElementById(nom).style.top=haut+"px";}else if (ie){document.all(nom).style.left=gauche;document.all(nom).style.top=haut}}
+function retracer(nom,ceci,classe){ceci="<span class="+classe+">"+ceci+"</span>";if (ns6){document.getElementById(nom).innerHTML=ceci}else if (ie){doc=document.all(nom);doc.innerHTML=ceci}}
+function keyscroll(n){
+	keydeb+=n
+	if (keydeb<0){
+		keydeb=0
+	}
+	if (keydeb>key.length-4){
+		keydeb=key.length-4
+	}
+	for (i=keydeb;i<keydeb+4;i++){
+		retracer("key"+(i-keydeb),key[i],"unikey")
+	}
+	if (keydeb==0){
+		retracer("act0","&nbsp;","action")
+	}else {
+		retracer("act0",act[0],"action")
+	}
+	if (keydeb==key.length-4){
+		retracer("act1","&nbsp;","action")
+	}else {
+		retracer("act1",act[1],"action")
+	}
+}
+function charger(i){
+	langue=key[i+keydeb];setCk(langue);accent="0000"
+	CarMaj=Maj[langue].split("|");CarMin=Min[langue].split("|")
+	for (i=0;i<nbTouches;i++){
+		CarMaj[i]=((CarMaj[i]!="0000")?(fromhexby4tocar(CarMaj[i])):"")
+		CarMin[i]=((CarMin[i]!="0000")?(fromhexby4tocar(CarMin[i])):"")
+		if (CarMaj[i]==CarMin[i].toUpperCase()){
+			cecar=((lock==0)&&(caps==0)?CarMin[i]:CarMaj[i])
+			retracer("car"+i,cecar,((dia[hexa(cecar)]!=null)?"simpledia":"simple"))
+			retracer("minus"+i,"&nbsp;")
+			retracer("majus"+i,"&nbsp;")
+		}
+		else{
+			retracer("car"+i,"&nbsp;")
+			cecar=CarMin[i]
+			retracer("minus"+i,cecar,((dia[hexa(cecar)]!=null)?"doubledia":"double"))
+			cecar=CarMaj[i]
+			retracer("majus"+i,cecar,((dia[hexa(cecar)]!=null)?"doubledia":"double"))
+		}
+	}
+}
+function distinguer(oui){
+	for (i=0;i<nbTouches;i++){
+		if (CarMaj[i]==CarMin[i].toUpperCase()){
+			cecar=((lock==0)&&(caps==0)?CarMin[i]:CarMaj[i])
+			if(test(cecar)){retracer("car"+i,oui?(cardia(cecar)):cecar,oui?"simpledia":"simple")}
+		}
+		else{
+			cecar=CarMin[i]
+			if(test(cecar)){retracer("minus"+i,oui?(cardia(cecar)):cecar,oui?"doubledia":"double")}
+			cecar=CarMaj[i]
+			if(test(cecar)){retracer("majus"+i,oui?(cardia(cecar)):cecar,oui?"doubledia":"double")}
+		}
+	}
+	if (!oui){accent="0000"}
+}
+function MinusMajus(){
+	for (i=0;i<nbTouches;i++){
+		if (CarMaj[i]==CarMin[i].toUpperCase()){
+			cecar=((lock==0)&&(caps==0)?CarMin[i]:CarMaj[i])
+			retracer("car"+i,(test(cecar)?cardia(cecar):cecar),((dia[hexa(cecar)]!=null||test(cecar))?"simpledia":"simple"))
+		}
+	}
+}
+function test(cecar){return(dia[accent]!=null&&dia[accent][hexa(cecar)]!=null)}
+function cardia(cecar){return(fromhexby4tocar(dia[accent][hexa(cecar)]))}
+function fromhex(inval){out=0;for (a=inval.length-1;a>=0;a--){out+=Math.pow(16,inval.length-a-1)*hexchars.indexOf(inval.charAt(a))}return out}
+function fromhexby4tocar(ceci){out4=new String();for (l=0;l<ceci.length;l+=4){out4+=String.fromCharCode(fromhex(ceci.substring(l,l+4)))}return out4}
+function tohex(inval){return hexchars.charAt(inval/16)+hexchars.charAt(inval%16)}
+function tohex2(inval){return tohex(inval/256)+tohex(inval%256)}
+function hexa(ceci){out="";for (k=0;k<ceci.length;k++){out+=(tohex2(ceci.charCodeAt(k)))}return out}
+function getCk(){
+	fromN=document.cookie.indexOf("langue=")+0;
+	if((fromN)!=-1){
+		fromN+=7;
+		toN=document.cookie.indexOf(";",fromN)+0;
+		if(toN==-1){
+			toN=document.cookie.length
+		}
+		return unescape(document.cookie.substring(fromN,toN))
+	}
+	return ""
+}
+function setCk(inval){
+	if(inval!=null){
+		exp=new Date();
+		time=365*60*60*24*1000;
+		exp.setTime(exp.getTime()+time);
+		document.cookie=escape("langue")+"="+escape(inval)+"; "+"expires="+exp.toGMTString()
+	}
+}
+
+// Arabic Keystroke Translator
+function arkey(e) {
+	if ((document.layers)|(navigator.userAgent.indexOf("MSIE 4")>-1)|(langue!="Arabic")) return true;
+
+	if (!e) var e = window.event;
+	if (e.keyCode) keyCode = e.keyCode;
+	else if (e.which) keyCode = e.which;
+	var character = String.fromCharCode(keyCode);
+
+		entry = true;
+		cont=e.srcElement || e.currentTarget || e.target;
+		if (keyCode>64 && keyCode<91) {
+			entry=false;
+			source='ش لاؤ ي ث ب ل ا ه ت ن م ة ى خ ح ض ق س ف ع ر ص ء غ ئ ';
+			shsource='ِ لآ} ] ُ [ لأأ ÷ ـ ، /   آ × ؛ َ ٌ ٍ لإ  { ً ْ إ ~'; 
+
+			if (e.shiftKey) cont.value += shsource.substr((keyCode-64)*2-2,2);
+			else
+				cont.value += source.substr((keyCode-64)*2-2,2);
+			if (cont.value.substr(cont.value.length-1,1)==' ') cont.value=cont.value.substr(0,cont.value.length-1);
+		}
+		if (e.shiftKey) {
+			if (keyCode==186) {cont.value += ':';entry=false;}
+			if (keyCode==188) {cont.value += ',';entry=false;}
+			if (keyCode==190) {cont.value += '.';entry=false;}
+			if (keyCode==191) {cont.value += '؟';entry=false;}
+			if (keyCode==192) {cont.value += 'ّ';entry=false;}
+			if (keyCode==219) {cont.value += '<';entry=false;}
+			if (keyCode==221) {cont.value += '>';entry=false;}
+		} else {
+			if (keyCode==186||keyCode==59) {cont.value += 'ك';entry=false;}
+			if (keyCode==188) {cont.value += 'و';entry=false;}
+			if (keyCode==190) {cont.value += 'ز';entry=false;}
+			if (keyCode==191) {cont.value += 'ظ';entry=false;}
+			if (keyCode==192) {cont.value += 'ذ';entry=false;}
+			if (keyCode==219) {cont.value += 'ج';entry=false;}
+			if (keyCode==221) {cont.value += 'د';entry=false;}
+			if (keyCode==222) {cont.value += 'ط';entry=false;}
+		}
+	return entry;
+}
+function hold_it(e){
+	if ((document.layers)|(navigator.userAgent.indexOf("MSIE 4")>-1)|(langue!="Arabic")) return true;
+
+	var keyCode;
+	if (!e) var e = window.event;
+	if (e.keyCode) keyCode = e.keyCode;
+	else if (e.which) keyCode = e.which;
+	var character = String.fromCharCode(keyCode);
+	switch(keyCode){
+		case 186:
+		case 188:
+		case 190:
+		case 191:
+		case 192:
+		case 219:
+		case 221:
+		case 222:
+		case 116:
+		case 59:
+		case 47:
+		case 46:
+		case 44:
+		case 39:
+			return false;
+		case 92:
+			return true;
+	}
+		if (keyCode<63) return true;
+		return false;
+	}
+
+var obj = document.getElementById( 'uni_area' );
+if ( obj && langue=="Arabic"){
+	with (navigator) {
+		if (appName=="Netscape")
+			obj.onkeypress = hold_it;
+	}
+	obj.onkeydown = arkey;
+}
+// Arabic Keystroke Translator End
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js	(revision 389)
@@ -0,0 +1,458 @@
+﻿////////////////////////////////////////////////////
+// spellChecker.js
+//
+// spellChecker object
+//
+// This file is sourced on web pages that have a textarea object to evaluate
+// for spelling. It includes the implementation for the spellCheckObject.
+//
+////////////////////////////////////////////////////
+
+
+// constructor
+function spellChecker( textObject ) {
+
+	// public properties - configurable
+//	this.popUpUrl = '/speller/spellchecker.html';							// by FredCK
+	this.popUpUrl = 'fck_spellerpages/spellerpages/spellchecker.html';		// by FredCK
+	this.popUpName = 'spellchecker';
+//	this.popUpProps = "menu=no,width=440,height=350,top=70,left=120,resizable=yes,status=yes";	// by FredCK
+	this.popUpProps = null ;																	// by FredCK
+//	this.spellCheckScript = '/speller/server-scripts/spellchecker.php';		// by FredCK
+	this.spellCheckScript = 'server-scripts/spellchecker.php';				// by FredCK
+	//this.spellCheckScript = '/cgi-bin/spellchecker.pl';
+
+	// values used to keep track of what happened to a word
+	this.replWordFlag = "R";	// single replace
+	this.ignrWordFlag = "I";	// single ignore
+	this.replAllFlag = "RA";	// replace all occurances
+	this.ignrAllFlag = "IA";	// ignore all occurances
+	this.fromReplAll = "~RA";	// an occurance of a "replace all" word
+	this.fromIgnrAll = "~IA";	// an occurance of a "ignore all" word
+	// properties set at run time
+	this.wordFlags = new Array();
+	this.currentTextIndex = 0;
+	this.currentWordIndex = 0;
+	this.spellCheckerWin = null;
+	this.controlWin = null;
+	this.wordWin = null;
+	this.textArea = textObject;	// deprecated
+	this.textInputs = arguments; 
+
+	// private methods
+	this._spellcheck = _spellcheck;
+	this._getSuggestions = _getSuggestions;
+	this._setAsIgnored = _setAsIgnored;
+	this._getTotalReplaced = _getTotalReplaced;
+	this._setWordText = _setWordText;
+	this._getFormInputs = _getFormInputs;
+
+	// public methods
+	this.openChecker = openChecker;
+	this.startCheck = startCheck;
+	this.checkTextBoxes = checkTextBoxes;
+	this.checkTextAreas = checkTextAreas;
+	this.spellCheckAll = spellCheckAll;
+	this.ignoreWord = ignoreWord;
+	this.ignoreAll = ignoreAll;
+	this.replaceWord = replaceWord;
+	this.replaceAll = replaceAll;
+	this.terminateSpell = terminateSpell;
+	this.undo = undo;
+
+	// set the current window's "speller" property to the instance of this class.
+	// this object can now be referenced by child windows/frames.
+	window.speller = this;
+}
+
+// call this method to check all text boxes (and only text boxes) in the HTML document
+function checkTextBoxes() {
+	this.textInputs = this._getFormInputs( "^text$" );
+	this.openChecker();
+}
+
+// call this method to check all textareas (and only textareas ) in the HTML document
+function checkTextAreas() {
+	this.textInputs = this._getFormInputs( "^textarea$" );
+	this.openChecker();
+}
+
+// call this method to check all text boxes and textareas in the HTML document
+function spellCheckAll() {
+	this.textInputs = this._getFormInputs( "^text(area)?$" );
+	this.openChecker();
+}
+
+// call this method to check text boxe(s) and/or textarea(s) that were passed in to the
+// object's constructor or to the textInputs property
+function openChecker() {
+	this.spellCheckerWin = window.open( this.popUpUrl, this.popUpName, this.popUpProps );
+	if( !this.spellCheckerWin.opener ) {
+		this.spellCheckerWin.opener = window;
+	}
+}
+
+function startCheck( wordWindowObj, controlWindowObj ) {
+
+	// set properties from args
+	this.wordWin = wordWindowObj;
+	this.controlWin = controlWindowObj;
+	
+	// reset properties
+	this.wordWin.resetForm();
+	this.controlWin.resetForm();
+	this.currentTextIndex = 0;
+	this.currentWordIndex = 0;
+	// initialize the flags to an array - one element for each text input
+	this.wordFlags = new Array( this.wordWin.textInputs.length );
+	// each element will be an array that keeps track of each word in the text
+	for( var i=0; i<this.wordFlags.length; i++ ) {
+		this.wordFlags[i] = [];
+	}
+
+	// start
+	this._spellcheck();
+	
+	return true;
+}
+
+function ignoreWord() {
+	var wi = this.currentWordIndex;
+	var ti = this.currentTextIndex;
+	if( !this.wordWin ) {
+		alert( 'Error: Word frame not available.' );
+		return false;
+	}
+	if( !this.wordWin.getTextVal( ti, wi )) {
+		alert( 'Error: "Not in dictionary" text is missing.' );
+		return false;
+	}
+	// set as ignored
+	if( this._setAsIgnored( ti, wi, this.ignrWordFlag )) {
+		this.currentWordIndex++;
+		this._spellcheck();
+	}
+}
+
+function ignoreAll() {
+	var wi = this.currentWordIndex;
+	var ti = this.currentTextIndex;
+	if( !this.wordWin ) {
+		alert( 'Error: Word frame not available.' );
+		return false;
+	}
+	// get the word that is currently being evaluated.
+	var s_word_to_repl = this.wordWin.getTextVal( ti, wi );
+	if( !s_word_to_repl ) {
+		alert( 'Error: "Not in dictionary" text is missing' );
+		return false;
+	}
+
+	// set this word as an "ignore all" word. 
+	this._setAsIgnored( ti, wi, this.ignrAllFlag );
+
+	// loop through all the words after this word
+	for( var i = ti; i < this.wordWin.textInputs.length; i++ ) {
+		for( var j = 0; j < this.wordWin.totalWords( i ); j++ ) {
+			if(( i == ti && j > wi ) || i > ti ) {
+				// future word: set as "from ignore all" if
+				// 1) do not already have a flag and 
+				// 2) have the same value as current word
+				if(( this.wordWin.getTextVal( i, j ) == s_word_to_repl )
+				&& ( !this.wordFlags[i][j] )) {
+					this._setAsIgnored( i, j, this.fromIgnrAll );
+				}
+			}
+		}
+	}
+
+	// finally, move on
+	this.currentWordIndex++;
+	this._spellcheck();
+}
+
+function replaceWord() {
+	var wi = this.currentWordIndex;
+	var ti = this.currentTextIndex;
+	if( !this.wordWin ) {
+		alert( 'Error: Word frame not available.' );
+		return false;
+	}
+	if( !this.wordWin.getTextVal( ti, wi )) {
+		alert( 'Error: "Not in dictionary" text is missing' );
+		return false;
+	}
+	if( !this.controlWin.replacementText ) {
+		return;
+	}
+	var txt = this.controlWin.replacementText;
+	if( txt.value ) {
+		var newspell = new String( txt.value );
+		if( this._setWordText( ti, wi, newspell, this.replWordFlag )) {
+			this.currentWordIndex++;
+			this._spellcheck();
+		}
+	}
+}
+
+function replaceAll() {
+	var ti = this.currentTextIndex;
+	var wi = this.currentWordIndex;
+	if( !this.wordWin ) {
+		alert( 'Error: Word frame not available.' );
+		return false;
+	}
+	var s_word_to_repl = this.wordWin.getTextVal( ti, wi );
+	if( !s_word_to_repl ) {
+		alert( 'Error: "Not in dictionary" text is missing' );
+		return false;
+	}
+	var txt = this.controlWin.replacementText;
+	if( !txt.value ) return;
+	var newspell = new String( txt.value );
+
+	// set this word as a "replace all" word. 
+	this._setWordText( ti, wi, newspell, this.replAllFlag );
+
+	// loop through all the words after this word
+	for( var i = ti; i < this.wordWin.textInputs.length; i++ ) {
+		for( var j = 0; j < this.wordWin.totalWords( i ); j++ ) {
+			if(( i == ti && j > wi ) || i > ti ) {
+				// future word: set word text to s_word_to_repl if
+				// 1) do not already have a flag and 
+				// 2) have the same value as s_word_to_repl
+				if(( this.wordWin.getTextVal( i, j ) == s_word_to_repl )
+				&& ( !this.wordFlags[i][j] )) {
+					this._setWordText( i, j, newspell, this.fromReplAll );
+				}
+			}
+		}
+	}
+	
+	// finally, move on
+	this.currentWordIndex++;
+	this._spellcheck();
+}
+
+function terminateSpell() {
+	// called when we have reached the end of the spell checking.
+	var msg = "";		// by FredCK
+	var numrepl = this._getTotalReplaced();
+	if( numrepl == 0 ) {
+		// see if there were no misspellings to begin with
+		if( !this.wordWin ) {
+			msg = "";
+		} else {
+			if( this.wordWin.totalMisspellings() ) {
+//				msg += "No words changed.";			// by FredCK
+				msg += FCKLang.DlgSpellNoChanges ;	// by FredCK
+			} else {
+//				msg += "No misspellings found.";	// by FredCK
+				msg += FCKLang.DlgSpellNoMispell ;	// by FredCK
+			}
+		}
+	} else if( numrepl == 1 ) {
+//		msg += "One word changed.";			// by FredCK
+		msg += FCKLang.DlgSpellOneChange ;	// by FredCK
+	} else {
+//		msg += numrepl + " words changed.";	// by FredCK
+		msg += FCKLang.DlgSpellManyChanges.replace( /%1/g, numrepl ) ;
+	}
+	if( msg ) {
+//		msg += "\n";	// by FredCK
+		alert( msg );
+	}
+
+	if( numrepl > 0 ) {
+		// update the text field(s) on the opener window
+		for( var i = 0; i < this.textInputs.length; i++ ) {
+			// this.textArea.value = this.wordWin.text;
+			if( this.wordWin ) {
+				if( this.wordWin.textInputs[i] ) {
+					this.textInputs[i].value = this.wordWin.textInputs[i];
+				}
+			}
+		}
+	}
+
+	// return back to the calling window
+//	this.spellCheckerWin.close();					// by FredCK
+	if ( typeof( this.OnFinished ) == 'function' )	// by FredCK
+		this.OnFinished(numrepl) ;					// by FredCK
+
+	return true;
+}
+
+function undo() {
+	// skip if this is the first word!
+	var ti = this.currentTextIndex;
+	var wi = this.currentWordIndex
+	
+	if( this.wordWin.totalPreviousWords( ti, wi ) > 0 ) {
+		this.wordWin.removeFocus( ti, wi );
+
+		// go back to the last word index that was acted upon 
+		do {
+			// if the current word index is zero then reset the seed
+			if( this.currentWordIndex == 0 && this.currentTextIndex > 0 ) {
+				this.currentTextIndex--;
+				this.currentWordIndex = this.wordWin.totalWords( this.currentTextIndex )-1;
+				if( this.currentWordIndex < 0 ) this.currentWordIndex = 0;
+			} else {
+				if( this.currentWordIndex > 0 ) {
+					this.currentWordIndex--;
+				}
+			}
+		} while ( 
+			this.wordWin.totalWords( this.currentTextIndex ) == 0
+			|| this.wordFlags[this.currentTextIndex][this.currentWordIndex] == this.fromIgnrAll
+			|| this.wordFlags[this.currentTextIndex][this.currentWordIndex] == this.fromReplAll
+		); 
+
+		var text_idx = this.currentTextIndex;
+		var idx = this.currentWordIndex;
+		var preReplSpell = this.wordWin.originalSpellings[text_idx][idx];
+		
+		// if we got back to the first word then set the Undo button back to disabled
+		if( this.wordWin.totalPreviousWords( text_idx, idx ) == 0 ) {
+			this.controlWin.disableUndo();
+		}
+	
+		// examine what happened to this current word.
+		switch( this.wordFlags[text_idx][idx] ) {
+			// replace all: go through this and all the future occurances of the word 
+			// and revert them all to the original spelling and clear their flags
+			case this.replAllFlag :
+				for( var i = text_idx; i < this.wordWin.textInputs.length; i++ ) {
+					for( var j = 0; j < this.wordWin.totalWords( i ); j++ ) {
+						if(( i == text_idx && j >= idx ) || i > text_idx ) {
+							var origSpell = this.wordWin.originalSpellings[i][j];
+							if( origSpell == preReplSpell ) {
+								this._setWordText ( i, j, origSpell, undefined );
+							}
+						}
+					}
+				}
+				break;
+				
+			// ignore all: go through all the future occurances of the word 
+			// and clear their flags
+			case this.ignrAllFlag :
+				for( var i = text_idx; i < this.wordWin.textInputs.length; i++ ) {
+					for( var j = 0; j < this.wordWin.totalWords( i ); j++ ) {
+						if(( i == text_idx && j >= idx ) || i > text_idx ) {
+							var origSpell = this.wordWin.originalSpellings[i][j];
+							if( origSpell == preReplSpell ) {
+								this.wordFlags[i][j] = undefined; 
+							}
+						}
+					}
+				}
+				break;
+				
+			// replace: revert the word to its original spelling
+			case this.replWordFlag :
+				this._setWordText ( text_idx, idx, preReplSpell, undefined );
+				break;
+		}
+
+		// For all four cases, clear the wordFlag of this word. re-start the process
+		this.wordFlags[text_idx][idx] = undefined; 
+		this._spellcheck();
+	}
+}
+
+function _spellcheck() {
+	var ww = this.wordWin;
+	
+	// check if this is the last word in the current text element
+	if( this.currentWordIndex == ww.totalWords( this.currentTextIndex) ) {
+		this.currentTextIndex++;
+		this.currentWordIndex = 0;
+		// keep going if we're not yet past the last text element
+		if( this.currentTextIndex < this.wordWin.textInputs.length ) {	
+			this._spellcheck();
+			return;
+		} else {
+			this.terminateSpell();
+			return;
+		}
+	}
+	
+	// if this is after the first one make sure the Undo button is enabled
+	if( this.currentWordIndex > 0 ) {
+		this.controlWin.enableUndo();
+	}
+
+	// skip the current word if it has already been worked on
+	if( this.wordFlags[this.currentTextIndex][this.currentWordIndex] ) {
+		// increment the global current word index and move on.
+		this.currentWordIndex++;
+		this._spellcheck();
+	} else {
+		var evalText = ww.getTextVal( this.currentTextIndex, this.currentWordIndex );
+		if( evalText ) {
+			this.controlWin.evaluatedText.value = evalText;
+			ww.setFocus( this.currentTextIndex, this.currentWordIndex );
+			this._getSuggestions( this.currentTextIndex, this.currentWordIndex );
+		}
+	}
+}
+
+function _getSuggestions( text_num, word_num ) {
+	this.controlWin.clearSuggestions();
+	// add suggestion in list for each suggested word.
+	// get the array of suggested words out of the
+	// three-dimensional array containing all suggestions.
+	var a_suggests = this.wordWin.suggestions[text_num][word_num];	
+	if( a_suggests ) {
+		// got an array of suggestions.
+		for( var ii = 0; ii < a_suggests.length; ii++ ) {	
+			this.controlWin.addSuggestion( a_suggests[ii] );
+		}
+	}
+	this.controlWin.selectDefaultSuggestion();
+}
+
+function _setAsIgnored( text_num, word_num, flag ) {
+	// set the UI
+	this.wordWin.removeFocus( text_num, word_num );
+	// do the bookkeeping
+	this.wordFlags[text_num][word_num] = flag;
+	return true;
+}
+
+function _getTotalReplaced() {
+	var i_replaced = 0;
+	for( var i = 0; i < this.wordFlags.length; i++ ) {
+		for( var j = 0; j < this.wordFlags[i].length; j++ ) {
+			if(( this.wordFlags[i][j] == this.replWordFlag )
+			|| ( this.wordFlags[i][j] == this.replAllFlag )
+			|| ( this.wordFlags[i][j] == this.fromReplAll )) {
+				i_replaced++;
+			}
+		}
+	}
+	return i_replaced;
+}
+
+function _setWordText( text_num, word_num, newText, flag ) {
+	// set the UI and form inputs
+	this.wordWin.setText( text_num, word_num, newText );
+	// keep track of what happened to this word:
+	this.wordFlags[text_num][word_num] = flag;
+	return true;
+}
+
+function _getFormInputs( inputPattern ) {
+	var inputs = new Array();
+	for( var i = 0; i < document.forms.length; i++ ) {
+		for( var j = 0; j < document.forms[i].elements.length; j++ ) {
+			if( document.forms[i].elements[j].type.match( inputPattern )) {
+				inputs[inputs.length] = document.forms[i].elements[j]; 
+			}	
+		}
+	}
+	return inputs;
+}
+
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js	(revision 389)
@@ -0,0 +1,87 @@
+﻿////////////////////////////////////////////////////
+// controlWindow object
+////////////////////////////////////////////////////
+function controlWindow( controlForm ) {
+	// private properties
+	this._form = controlForm;
+
+	// public properties
+	this.windowType = "controlWindow";
+//	this.noSuggestionSelection = "- No suggestions -";	// by FredCK
+	this.noSuggestionSelection = FCKLang.DlgSpellNoSuggestions ;
+	// set up the properties for elements of the given control form
+	this.suggestionList  = this._form.sugg;
+	this.evaluatedText   = this._form.misword;
+	this.replacementText = this._form.txtsugg;
+	this.undoButton      = this._form.btnUndo;
+
+	// public methods
+	this.addSuggestion = addSuggestion;
+	this.clearSuggestions = clearSuggestions;
+	this.selectDefaultSuggestion = selectDefaultSuggestion;
+	this.resetForm = resetForm;
+	this.setSuggestedText = setSuggestedText;
+	this.enableUndo = enableUndo;
+	this.disableUndo = disableUndo;
+}
+
+function resetForm() {
+	if( this._form ) {
+		this._form.reset();
+	}
+}
+
+function setSuggestedText() {
+	var slct = this.suggestionList;
+	var txt = this.replacementText;
+	var str = "";
+	if( (slct.options[0].text) && slct.options[0].text != this.noSuggestionSelection ) {
+		str = slct.options[slct.selectedIndex].text;
+	}
+	txt.value = str;
+}
+
+function selectDefaultSuggestion() {
+	var slct = this.suggestionList;
+	var txt = this.replacementText;
+	if( slct.options.length == 0 ) {
+		this.addSuggestion( this.noSuggestionSelection );
+	} else {
+		slct.options[0].selected = true;
+	}
+	this.setSuggestedText();
+}
+
+function addSuggestion( sugg_text ) {
+	var slct = this.suggestionList;
+	if( sugg_text ) {
+		var i = slct.options.length;
+		var newOption = new Option( sugg_text, 'sugg_text'+i );
+		slct.options[i] = newOption;
+	 }
+}
+
+function clearSuggestions() {
+	var slct = this.suggestionList;
+	for( var j = slct.length - 1; j > -1; j-- ) {
+		if( slct.options[j] ) {
+			slct.options[j] = null;
+		}
+	}
+}
+
+function enableUndo() {
+	if( this.undoButton ) {
+		if( this.undoButton.disabled == true ) {
+			this.undoButton.disabled = false;
+		}
+	}
+}
+
+function disableUndo() {
+	if( this.undoButton ) {
+		if( this.undoButton.disabled == false ) {
+			this.undoButton.disabled = true;
+		}
+	}
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html	(revision 389)
@@ -0,0 +1,153 @@
+<html>
+	<head>
+		<link rel="stylesheet" type="text/css" href="spellerStyle.css" />
+		<script src="controlWindow.js"></script>
+		<script>
+var spellerObject;
+var controlWindowObj;
+
+if( parent.opener ) {
+	spellerObject = parent.opener.speller;
+}
+
+function ignore_word() {
+	if( spellerObject ) {
+		spellerObject.ignoreWord();
+	}
+}
+
+function ignore_all() {
+	if( spellerObject ) {
+		spellerObject.ignoreAll();
+	}
+}
+
+function replace_word() {
+	if( spellerObject ) {
+		spellerObject.replaceWord();
+	}
+}
+
+function replace_all() {
+	if( spellerObject ) {
+		spellerObject.replaceAll();
+	}
+}
+
+function end_spell() {
+	if( spellerObject ) {
+		spellerObject.terminateSpell();
+	}
+}
+
+function undo() {
+	if( spellerObject ) {
+		spellerObject.undo();
+	}
+}
+
+function suggText() {
+	if( controlWindowObj ) {
+		controlWindowObj.setSuggestedText();
+	}
+}
+
+var FCKLang = window.parent.parent.FCKLang ;	// by FredCK
+
+function init_spell() {
+	// By FredCK (fckLang attributes have been added to the HTML source of this page)
+	window.parent.parent.OnSpellerControlsLoad( this ) ;
+
+	var controlForm = document.spellcheck;
+
+	// create a new controlWindow object
+ 	controlWindowObj = new controlWindow( controlForm );
+
+	// call the init_spell() function in the parent frameset
+	if( parent.frames.length ) {
+		parent.init_spell( controlWindowObj );
+	} else {
+		alert( 'This page was loaded outside of a frameset. It might not display properly' );
+	}
+}
+
+</script>
+	</head>
+	<body class="controlWindowBody" onLoad="init_spell();" style="OVERFLOW: hidden" scroll="no">	<!-- by FredCK -->
+		<form name="spellcheck">
+			<table border="0" cellpadding="0" cellspacing="0" border="0" align="center">
+				<tr>
+					<td colspan="3" class="normalLabel"><span fckLang="DlgSpellNotInDic">Not in dictionary:</span></td>
+				</tr>
+				<tr>
+					<td colspan="3"><input class="readonlyInput" type="text" name="misword" readonly /></td>
+				</tr>
+				<tr>
+					<td colspan="3" height="5"></td>
+				</tr>
+				<tr>
+					<td class="normalLabel"><span fckLang="DlgSpellChangeTo">Change to:</span></td>
+				</tr>
+				<tr valign="top">
+					<td>
+						<table border="0" cellpadding="0" cellspacing="0" border="0">
+							<tr>
+								<td class="normalLabel">
+									<input class="textDefault" type="text" name="txtsugg" />
+								</td>
+							</tr>
+							<tr>
+								<td>
+									<select class="suggSlct" name="sugg" size="7" onChange="suggText();" onDblClick="replace_word();">
+										<option></option>
+									</select>
+								</td>
+							</tr>
+						</table>
+					</td>
+					<td>&nbsp;&nbsp;</td>
+					<td>
+						<table border="0" cellpadding="0" cellspacing="0" border="0">
+							<tr>
+								<td>
+									<input class="buttonDefault" type="button" fckLang="DlgSpellBtnIgnore" value="Ignore" onClick="ignore_word();">
+								</td>
+								<td>&nbsp;&nbsp;</td>
+								<td>
+									<input class="buttonDefault" type="button" fckLang="DlgSpellBtnIgnoreAll" value="Ignore All" onClick="ignore_all();">
+								</td>
+							</tr>
+							<tr>
+								<td colspan="3" height="5"></td>
+							</tr>
+							<tr>
+								<td>
+									<input class="buttonDefault" type="button" fckLang="DlgSpellBtnReplace" value="Replace" onClick="replace_word();">
+								</td>
+								<td>&nbsp;&nbsp;</td>
+								<td>
+									<input class="buttonDefault" type="button" fckLang="DlgSpellBtnReplaceAll" value="Replace All" onClick="replace_all();">
+								</td>
+							</tr>
+							<tr>
+								<td colspan="3" height="5"></td>
+							</tr>
+							<tr>
+								<td>
+									<input class="buttonDefault" type="button" name="btnUndo" fckLang="DlgSpellBtnUndo" value="Undo" onClick="undo();"
+										disabled>
+								</td>
+								<td>&nbsp;&nbsp;</td>
+								<td> 
+									<!-- by FredCK
+									<input class="buttonDefault" type="button" value="Close" onClick="end_spell();">
+									-->
+								</td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+			</table>
+		</form>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html	(revision 389)
@@ -0,0 +1,71 @@
+
+<script>
+
+var wordWindow = null;
+var controlWindow = null;
+
+function init_spell( spellerWindow ) {
+
+	if( spellerWindow ) {
+		if( spellerWindow.windowType == "wordWindow" ) {
+			wordWindow = spellerWindow;
+		} else if ( spellerWindow.windowType == "controlWindow" ) {
+			controlWindow = spellerWindow;
+		}
+	}
+
+	if( controlWindow && wordWindow ) {
+		// populate the speller object and start it off!
+		var speller = opener.speller;
+		wordWindow.speller = speller;
+		speller.startCheck( wordWindow, controlWindow );
+	}
+}
+
+// encodeForPost
+function encodeForPost( str ) {
+	var s = new String( str );
+	s = encodeURIComponent( s );
+	// additionally encode single quotes to evade any PHP 
+	// magic_quotes_gpc setting (it inserts escape characters and 
+	// therefore skews the btye positions of misspelled words)
+	return s.replace( /\'/g, '%27' );
+}
+
+// post the text area data to the script that populates the speller
+function postWords() {
+	var bodyDoc = window.frames[0].document;
+	bodyDoc.open();
+	bodyDoc.write('<html>');
+	bodyDoc.write('<meta http-equiv="Content-Type" content="text/html; charset=utf-8">');
+	bodyDoc.write('<link rel="stylesheet" type="text/css" href="spellerStyle.css"/>');
+	if (opener) {
+		var speller = opener.speller;
+		bodyDoc.write('<body class="normalText" onLoad="document.forms[0].submit();">');
+		bodyDoc.write('<p>' + window.parent.FCKLang.DlgSpellProgress + '<\/p>');		// by FredCK
+		bodyDoc.write('<form action="'+speller.spellCheckScript+'" method="post">');
+		for( var i = 0; i < speller.textInputs.length; i++ ) {
+			bodyDoc.write('<input type="hidden" name="textinputs[]" value="'+encodeForPost(speller.textInputs[i].value)+'">');
+		}
+		bodyDoc.write('<\/form>');
+		bodyDoc.write('<\/body>');
+	} else {
+		bodyDoc.write('<body class="normalText">');
+		bodyDoc.write('<p><b>This page cannot be displayed<\/b><\/p><p>The window was not opened from another window.<\/p>');
+		bodyDoc.write('<\/body>');
+	}
+	bodyDoc.write('<\/html>');
+	bodyDoc.close();
+}
+</script>
+
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<head>
+<title>Speller Pages</title>
+</head>
+<frameset rows="*,201" onLoad="postWords();">
+<frame src="blank.html">
+<frame src="controls.html">
+</frameset>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm	(revision 389)
@@ -0,0 +1,132 @@
+<!--- Coldfusion MX uses java on the server to process tags. So it is save to use most java attributes. For example below
+I use list.lastindexOf(), lastindexOf() is a java string attribute. If you plan on using this tag with earlier versions
+of Coldfusion, you will have to replace the lastindexOf with a pure coldfusion function. By replacing the lastindexOf, spellchecker.cfm
+script should be compatible with all cf version 4.5 and up.
+
+Also if you are hosting your site at an ISP, you will have to check with them to see if the use of <CFEXECUTE> is allowed. 
+In most cases ISP will not allow the use of that tag for security reasons. Clients would be able to access each others files in certain cases.
+ --->
+
+
+<!--- Set up variables --->
+<cfset tempFolder = "c:\test">
+<cfset tempfile = "spell_#randrange(1,1000)#">
+<cfset apsell_dir = "c:\aspell\bin">
+<!--- <cfset spellercss = "/speller/spellerStyle.css">		by FredCK --->
+<cfset spellercss = "../spellerStyle.css">
+<!--- <cfset word_win_src = "/speller/wordWindow.js">		by FredCK --->
+<cfset word_win_src = "../wordWindow.js">
+
+
+<!--- Takes care of those pesky smart quotes from MS apps, replaces them with regular quotes --->
+<cfset submitted_text = replacelist(form.checktext,"%u201C,%u201D","%22,%22")> 
+<cfset submitted_text = urlDecode(submitted_text)>
+
+
+
+
+<!--- need to escape special javascript characters such as ' --->
+<cfset unaltered_text = submitted_text>
+<cfset submitted_text = replace(submitted_text,"'","\'","All")>
+<cfset submitted_text = replace(submitted_text,"""","\""","All")>
+
+<!--- use carat on each line to escape possible aspell commands --->
+<cfset text = "">
+<cfloop list="#submitted_text#" index="idx" delimiters="#chr(10)##chr(13)#">
+	<cfset text =text&"^"&idx&"#chr(10)##chr(13)#">
+</cfloop>
+
+
+
+<!--- create temp file from the submitted text, this will be passed to aspell to be check for misspelled words --->
+<cffile action="write" file="#tempFolder#\#tempfile#.txt" output="#text#" charset="utf-8">
+
+
+<!--- cfsavecontent is used to set the variable that will be returned with the results from aspell.
+If your using the new version of mx 6.1 you can  use the following cfexecute tag instead:
+<cfexecute name="C:\WINDOWS\SYSTEM32\cmd.exe" arguments="/c type c:\test\#tempfile#.txt | c:\aspell\bin\aspell -a --encoding=utf-8 -H" timeout="100" variable="results"></cfexecute> --->
+
+<cfsavecontent variable="food">
+<cfexecute name="C:\WINDOWS\SYSTEM32\cmd.exe" arguments="/c type #tempFolder#\#tempfile#.txt | #apsell_dir#\aspell -a --encoding=utf-8 -H" timeout="100"></cfexecute>
+</cfsavecontent>
+
+<!--- remove temp file --->
+<cffile action="delete" file="#tempFolder#\#tempfile#.txt">
+
+
+
+
+<cfoutput>
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="speller/spellerStyle.css">
+<script src="/speller/wordWindow.js"></script>
+<script language="javascript">
+var suggs = new Array();
+var words = new Array();
+var error;
+var wordtext = unescape('#urlencodedFormat(unaltered_text)#');
+
+<cfset cnt = 1>
+<cfset word_cnt = 0>
+<cfloop list="#food#" index="list" delimiters="#chr(10)##chr(13)#">
+	<!--- removes the first line of the aspell output "@(#) International Ispell Version 3.1.20 (but really Aspell 0.50.3)" --->
+	<cfif NOT cnt EQ 1>
+		<cfif find("&",list) OR find("##",list)>
+			<!--- word that misspelled --->
+			<cfset bad_word = listGetAt(list,"2"," ")>
+			<!--- sugestions --->
+			<cfset wrdList = mid(list,(list.lastindexOf(':') + 2),(len(list) - (list.lastindexOf(':') + 2)))>
+			<cfset wrdsList = "">
+			<cfloop list=#wrdList# index="idx">
+				<cfset wrdsList =wrdsList&"'"&trim(replace(idx,"'","\'","All"))&"',">
+			</cfloop>
+			<!--- javascript --->
+			words[#word_cnt#] = '#trim(replace(bad_word,"'","\'","All"))#';
+			suggs[#word_cnt#] = [#trim(wrdsList)#];
+			<cfset word_cnt = word_cnt + 1>
+		<cfelseif find("*",list)>
+		</cfif>			
+	</cfif>
+	<cfset cnt = cnt + 1>
+</cfloop>
+
+
+
+
+
+
+var wordWindowObj = new wordWindow();
+wordWindowObj.originalSpellings = words;
+wordWindowObj.suggestions = suggs;
+wordWindowObj.text = wordtext;
+
+
+function init_spell() {
+	// check if any error occured during server-side processing
+	if( error ) {
+		alert( error );
+	} else {
+		// call the init_spell() function in the parent frameset
+		if (parent.frames.length) {
+			parent.init_spell( wordWindowObj );
+		} else {
+			alert('This page was loaded outside of a frameset. It might not display properly');
+		}
+	}
+}
+
+
+
+</script>
+
+</head>
+<body onLoad="init_spell();">
+
+<script>
+wordWindowObj.writeBody();
+</script>
+
+</body>
+</html>
+</cfoutput>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php	(revision 389)
@@ -0,0 +1,193 @@
+<?php
+header('Content-type: text/html; charset=utf-8');
+
+//$spellercss = '/speller/spellerStyle.css';	// by FredCK
+$spellercss = '../spellerStyle.css';			// by FredCK
+//$word_win_src = '/speller/wordWindow.js';		// by FredCK
+$word_win_src = '../wordWindow.js';				// by FredCK
+$textinputs = $_POST['textinputs']; # array
+//$aspell_prog = 'aspell';									// by FredCK (for Linux)
+$aspell_prog = '"C:\Program Files\Aspell\bin\aspell.exe"';	// by FredCK (for Windows)
+$lang = 'en_US';
+//$aspell_opts = "-a --lang=$lang --encoding=utf-8";	// by FredCK
+$aspell_opts = "-a --lang=$lang --encoding=utf-8 -H";	// by FredCK
+$tempfiledir = "./";
+$input_separator = "A";
+
+# set the JavaScript variable to the submitted text.
+# textinputs is an array, each element corresponding to the (url-encoded)
+# value of the text control submitted for spell-checking
+function print_textinputs_var() {
+	global $textinputs;
+	foreach( $textinputs as $key=>$val ) {
+		# $val = str_replace( "'", "%27", $val );
+		echo "textinputs[$key] = decodeURIComponent(\"" . $val . "\");\n";
+	}
+}
+
+# make declarations for the text input index
+function print_textindex_decl( $text_input_idx ) {
+	echo "words[$text_input_idx] = [];\n";
+	echo "suggs[$text_input_idx] = [];\n";
+}
+
+# set an element of the JavaScript 'words' array to a misspelled word
+function print_words_elem( $word, $index, $text_input_idx ) {
+	echo "words[$text_input_idx][$index] = '" . escape_quote( $word ) . "';\n";
+}
+
+
+# set an element of the JavaScript 'suggs' array to a list of suggestions
+function print_suggs_elem( $suggs, $index, $text_input_idx ) {
+	echo "suggs[$text_input_idx][$index] = [";
+	foreach( $suggs as $key=>$val ) {
+		if( $val ) {
+			echo "'" . escape_quote( $val ) . "'";
+			if ( $key+1 < count( $suggs )) {
+				echo ", ";
+			}
+		}
+	}
+	echo "];\n";
+}
+
+# escape single quote
+function escape_quote( $str ) {
+	return preg_replace ( "/'/", "\\'", $str );
+}
+
+
+# handle a server-side error.
+function error_handler( $err ) {
+	echo "error = '" . escape_quote( $err ) . "';\n";
+}
+
+## get the list of misspelled words. Put the results in the javascript words array
+## for each misspelled word, get suggestions and put in the javascript suggs array
+function print_checker_results() {
+
+	global $aspell_prog;
+	global $aspell_opts;
+	global $tempfiledir;
+	global $textinputs;
+	global $input_separator;
+	$aspell_err = "";
+	# create temp file
+	$tempfile = tempnam( $tempfiledir, 'aspell_data_' );
+
+	# open temp file, add the submitted text.
+	if( $fh = fopen( $tempfile, 'w' )) {
+		for( $i = 0; $i < count( $textinputs ); $i++ ) {
+			$text = urldecode( $textinputs[$i] );
+			$lines = explode( "\n", $text );
+			fwrite ( $fh, "%\n" ); # exit terse mode
+			fwrite ( $fh, "^$input_separator\n" );
+			fwrite ( $fh, "!\n" ); # enter terse mode
+			foreach( $lines as $key=>$value ) {
+				# use carat on each line to escape possible aspell commands
+				fwrite( $fh, "^$value\n" );
+			}
+		}
+		fclose( $fh );
+
+		# exec aspell command - redirect STDERR to STDOUT
+		$cmd = "$aspell_prog $aspell_opts < $tempfile 2>&1";
+		if( $aspellret = shell_exec( $cmd )) {
+			$linesout = explode( "\n", $aspellret );
+			$index = 0;
+			$text_input_index = -1;
+			# parse each line of aspell return
+			foreach( $linesout as $key=>$val ) {
+				$chardesc = substr( $val, 0, 1 );
+				# if '&', then not in dictionary but has suggestions
+				# if '#', then not in dictionary and no suggestions
+				# if '*', then it is a delimiter between text inputs
+				# if '@' then version info
+				if( $chardesc == '&' || $chardesc == '#' ) {
+					$line = explode( " ", $val, 5 );
+					print_words_elem( $line[1], $index, $text_input_index );
+					if( isset( $line[4] )) {
+						$suggs = explode( ", ", $line[4] );
+					} else {
+						$suggs = array();
+					}
+					print_suggs_elem( $suggs, $index, $text_input_index );
+					$index++;
+				} elseif( $chardesc == '*' ) {
+					$text_input_index++;
+					print_textindex_decl( $text_input_index );
+					$index = 0;
+				} elseif( $chardesc != '@' && $chardesc != "" ) {
+					# assume this is error output
+					$aspell_err .= $val;
+				}
+			}
+			if( $aspell_err ) {
+				$aspell_err = "Error executing `$cmd`\\n$aspell_err";
+				error_handler( $aspell_err );
+			}
+		} else {
+			error_handler( "System error: Aspell program execution failed (`$cmd`)" );
+		}
+	} else {
+		error_handler( "System error: Could not open file '$tempfile' for writing" );
+	}
+
+	# close temp file, delete file
+	unlink( $tempfile );
+}
+
+
+?>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="<?php echo $spellercss ?>" />
+<script language="javascript" src="<?php echo $word_win_src ?>"></script>
+<script language="javascript">
+var suggs = new Array();
+var words = new Array();
+var textinputs = new Array();
+var error;
+<?php
+
+print_textinputs_var();
+
+print_checker_results();
+
+?>
+
+var wordWindowObj = new wordWindow();
+wordWindowObj.originalSpellings = words;
+wordWindowObj.suggestions = suggs;
+wordWindowObj.textInputs = textinputs;
+
+function init_spell() {
+	// check if any error occured during server-side processing
+	if( error ) {
+		alert( error );
+	} else {
+		// call the init_spell() function in the parent frameset
+		if (parent.frames.length) {
+			parent.init_spell( wordWindowObj );
+		} else {
+			alert('This page was loaded outside of a frameset. It might not display properly');
+		}
+	}
+}
+
+
+
+</script>
+
+</head>
+<!-- <body onLoad="init_spell();">		by FredCK -->
+<body onLoad="init_spell();" bgcolor="#ffffff">
+
+<script type="text/javascript">
+wordWindowObj.writeBody();
+</script>
+
+</body>
+</html>
+
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl	(revision 389)
@@ -0,0 +1,180 @@
+#!/usr/bin/perl
+
+use CGI qw/ :standard /;
+use File::Temp qw/ tempfile tempdir /;
+
+# my $spellercss = '/speller/spellerStyle.css';					# by FredCK
+my $spellercss = '../spellerStyle.css';							# by FredCK
+# my $wordWindowSrc = '/speller/wordWindow.js';					# by FredCK
+my $wordWindowSrc = '../wordWindow.js';							# by FredCK
+my @textinputs = param( 'textinputs[]' ); # array
+# my $aspell_cmd = 'aspell';									# by FredCK (for Linux)
+my $aspell_cmd = '"C:\Program Files\Aspell\bin\aspell.exe"';	# by FredCK (for Windows)
+my $lang = 'en_US';
+# my $aspell_opts = "-a --lang=$lang --encoding=utf-8";			# by FredCK
+my $aspell_opts = "-a --lang=$lang --encoding=utf-8 -H";		# by FredCK
+my $input_separator = "A";
+
+# set the 'wordtext' JavaScript variable to the submitted text. 
+sub printTextVar {
+	for( my $i = 0; $i <= $#textinputs; $i++ ) {
+	        print "textinputs[$i] = decodeURIComponent('" . escapeQuote( $textinputs[$i] ) . "')\n";
+	}
+}
+
+sub printTextIdxDecl {
+	my $idx = shift;
+	print "words[$idx] = [];\n";
+	print "suggs[$idx] = [];\n";
+}
+
+sub printWordsElem {
+	my( $textIdx, $wordIdx, $word ) = @_;
+	print "words[$textIdx][$wordIdx] = '" . escapeQuote( $word ) . "';\n";
+}
+
+sub printSuggsElem {
+	my( $textIdx, $wordIdx, @suggs ) = @_;
+	print "suggs[$textIdx][$wordIdx] = [";
+	for my $i ( 0..$#suggs ) {
+		print "'" . escapeQuote( $suggs[$i] ) . "'";
+		if( $i < $#suggs ) {
+			print ", ";
+		}
+	}
+	print "];\n";
+}
+
+sub printCheckerResults {
+	my $textInputIdx = -1;
+	my $wordIdx = 0;
+	my $unhandledText;
+	# create temp file
+	my $dir = tempdir( CLEANUP => 1 );
+	my( $fh, $tmpfilename ) = tempfile( DIR => $dir );
+
+	# temp file was created properly?
+	
+	# open temp file, add the submitted text.
+	for( my $i = 0; $i <= $#textinputs; $i++ ) {
+		$text = url_decode( $textinputs[$i] );
+		@lines = split( /\n/, $text );
+		print $fh "\%\n"; # exit terse mode
+		print $fh "^$input_separator\n";
+		print $fh "!\n";  # enter terse mode
+		for my $line ( @lines ) {
+			# use carat on each line to escape possible aspell commands
+			print $fh "^$line\n";
+		}
+		
+	}
+	# exec aspell command
+	my $cmd = "$aspell_cmd $aspell_opts < $tmpfilename 2>&1";
+	open ASPELL, "$cmd |" or handleError( "Could not execute `$cmd`\\n$!" ) and return;
+	# parse each line of aspell return
+	for my $ret ( <ASPELL> ) {
+		chomp( $ret );
+		# if '&', then not in dictionary but has suggestions
+		# if '#', then not in dictionary and no suggestions
+		# if '*', then it is a delimiter between text inputs
+		if( $ret =~ /^\*/ ) {
+			$textInputIdx++;
+			printTextIdxDecl( $textInputIdx );
+			$wordIdx = 0;
+	
+		} elsif( $ret =~ /^(&|#)/ ) {
+			my @tokens = split( " ", $ret, 5 );
+			printWordsElem( $textInputIdx, $wordIdx, $tokens[1] );
+			my @suggs = ();
+			if( $tokens[4] ) {
+				@suggs = split( ", ", $tokens[4] );
+			}
+			printSuggsElem( $textInputIdx, $wordIdx, @suggs );
+			$wordIdx++;
+		} else {
+			$unhandledText .= $ret;
+		}
+	}
+	close ASPELL or handleError( "Error executing `$cmd`\\n$unhandledText" ) and return;
+}
+
+sub escapeQuote {
+	my $str = shift;
+	$str =~ s/'/\\'/g;
+	return $str;
+}
+
+sub handleError {
+	my $err = shift;
+	print "error = '" . escapeQuote( $err ) . "';\n";
+}
+
+sub url_decode {
+	local $_ = @_ ? shift : $_;
+	defined or return;
+	# change + signs to spaces
+	tr/+/ /;
+	# change hex escapes to the proper characters
+	s/%([a-fA-F0-9]{2})/pack "H2", $1/eg;
+	return $_;
+}
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# Display HTML
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+print <<EOF;
+Content-type: text/html; charset=utf-8
+
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="$spellercss"/>
+<script src="$wordWindowSrc"></script>
+<script type="text/javascript">
+var suggs = new Array();
+var words = new Array();
+var textinputs = new Array();
+var error;
+EOF
+
+printTextVar();
+
+printCheckerResults();
+
+print <<EOF;
+var wordWindowObj = new wordWindow();
+wordWindowObj.originalSpellings = words;
+wordWindowObj.suggestions = suggs;
+wordWindowObj.textInputs = textinputs;
+
+
+function init_spell() {
+	// check if any error occured during server-side processing
+	if( error ) {
+		alert( error );
+	} else {
+		// call the init_spell() function in the parent frameset
+		if (parent.frames.length) {
+			parent.init_spell( wordWindowObj );
+		} else {
+			error = "This page was loaded outside of a frameset. "; 
+			error += "It might not display properly";
+			alert( error );
+		}
+	}
+}
+
+</script>
+
+</head>
+<body onLoad="init_spell();">
+
+<script type="text/javascript">
+wordWindowObj.writeBody();
+</script>
+
+</body>
+</html>
+EOF
+
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css	(revision 389)
@@ -0,0 +1,49 @@
+.blend {
+	font-family: courier new;
+	font-size: 10pt;
+	border: 0;
+	margin-bottom:-1;
+}
+.normalLabel {
+	font-size:8pt;
+}
+.normalText {
+	font-family:arial, helvetica, sans-serif;
+	font-size:10pt;
+	color:000000;
+	background-color:FFFFFF;
+}
+.plainText {
+	font-family: courier new, courier, monospace;
+	font-size: 10pt;
+	color:000000;
+	background-color:FFFFFF;
+}
+.controlWindowBody {
+	font-family:arial, helvetica, sans-serif;
+	font-size:8pt;
+	padding: 7px ;		/* by FredCK */
+	margin: 0px ;		/* by FredCK */
+	/* color:000000;				by FredCK */
+	/* background-color:DADADA;		by FredCK */
+}
+.readonlyInput {
+	background-color:DADADA;
+	color:000000;
+	font-size:8pt;
+	width:392px;
+}
+.textDefault {
+	font-size:8pt;
+	width: 200px;
+}
+.buttonDefault {
+	width:90px;
+	height:22px;
+	font-size:8pt;
+}
+.suggSlct {
+	width:200px;
+	margin-top:2;
+	font-size:8pt;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js	(revision 389)
@@ -0,0 +1,271 @@
+﻿////////////////////////////////////////////////////
+// wordWindow object
+////////////////////////////////////////////////////
+function wordWindow() {
+	// private properties
+	this._forms = [];
+
+	// private methods
+	this._getWordObject = _getWordObject;
+	//this._getSpellerObject = _getSpellerObject;
+	this._wordInputStr = _wordInputStr;
+	this._adjustIndexes = _adjustIndexes;
+	this._isWordChar = _isWordChar;
+	this._lastPos = _lastPos;
+	
+	// public properties
+	this.wordChar = /[a-zA-Z]/;
+	this.windowType = "wordWindow";
+	this.originalSpellings = new Array();
+	this.suggestions = new Array();
+	this.checkWordBgColor = "pink";
+	this.normWordBgColor = "white";
+	this.text = "";
+	this.textInputs = new Array();
+	this.indexes = new Array();
+	//this.speller = this._getSpellerObject();
+
+	// public methods
+	this.resetForm = resetForm;
+	this.totalMisspellings = totalMisspellings;
+	this.totalWords = totalWords;
+	this.totalPreviousWords = totalPreviousWords;
+	//this.getTextObjectArray = getTextObjectArray;
+	this.getTextVal = getTextVal;
+	this.setFocus = setFocus;
+	this.removeFocus = removeFocus;
+	this.setText = setText;
+	//this.getTotalWords = getTotalWords;
+	this.writeBody = writeBody;
+	this.printForHtml = printForHtml;
+}
+
+function resetForm() {
+	if( this._forms ) {
+		for( var i = 0; i < this._forms.length; i++ ) {
+			this._forms[i].reset();
+		}
+	}
+	return true;
+}
+
+function totalMisspellings() {
+	var total_words = 0;
+	for( var i = 0; i < this.textInputs.length; i++ ) {
+		total_words += this.totalWords( i );
+	}
+	return total_words;
+}
+
+function totalWords( textIndex ) {
+	return this.originalSpellings[textIndex].length;
+}
+
+function totalPreviousWords( textIndex, wordIndex ) {
+	var total_words = 0;
+	for( var i = 0; i <= textIndex; i++ ) {
+		for( var j = 0; j < this.totalWords( i ); j++ ) {
+			if( i == textIndex && j == wordIndex ) {
+				break;
+			} else {
+				total_words++;
+			}	
+		}
+	}
+	return total_words;
+}
+
+//function getTextObjectArray() {
+//	return this._form.elements;
+//}
+
+function getTextVal( textIndex, wordIndex ) {
+	var word = this._getWordObject( textIndex, wordIndex );
+	if( word ) {
+		return word.value;
+	}
+}
+
+function setFocus( textIndex, wordIndex ) {
+	var word = this._getWordObject( textIndex, wordIndex );
+	if( word ) {
+		if( word.type == "text" ) {
+			word.focus();
+			word.style.backgroundColor = this.checkWordBgColor;
+		}
+	}
+}
+
+function removeFocus( textIndex, wordIndex ) {
+	var word = this._getWordObject( textIndex, wordIndex );
+	if( word ) {
+		if( word.type == "text" ) {
+			word.blur();
+			word.style.backgroundColor = this.normWordBgColor;
+		}
+	}
+}
+
+function setText( textIndex, wordIndex, newText ) {
+	var word = this._getWordObject( textIndex, wordIndex );
+	var beginStr;
+	var endStr;
+	if( word ) {
+		var pos = this.indexes[textIndex][wordIndex];
+		var oldText = word.value;
+		// update the text given the index of the string
+		beginStr = this.textInputs[textIndex].substring( 0, pos );
+		endStr = this.textInputs[textIndex].substring( 
+			pos + oldText.length, 
+			this.textInputs[textIndex].length 
+		);
+		this.textInputs[textIndex] = beginStr + newText + endStr;
+		
+		// adjust the indexes on the stack given the differences in 
+		// length between the new word and old word. 
+		var lengthDiff = newText.length - oldText.length;
+		this._adjustIndexes( textIndex, wordIndex, lengthDiff );
+		
+		word.size = newText.length;
+		word.value = newText;
+		this.removeFocus( textIndex, wordIndex );
+	}
+}
+
+
+function writeBody() {
+	var d = window.document;
+	var is_html = false;
+
+	d.open();
+
+	// iterate through each text input.
+	for( var txtid = 0; txtid < this.textInputs.length; txtid++ ) {	
+		var end_idx = 0;
+		var begin_idx = 0;	
+		d.writeln( '<form name="textInput'+txtid+'">' );
+		var wordtxt = this.textInputs[txtid];
+		this.indexes[txtid] = [];
+
+		if( wordtxt ) {			
+			var orig = this.originalSpellings[txtid];
+			if( !orig ) break;
+
+			//!!! plain text, or HTML mode?
+			d.writeln( '<div class="plainText">' );
+			// iterate through each occurrence of a misspelled word. 
+			for( var i = 0; i < orig.length; i++ ) {
+				// find the position of the current misspelled word,
+				// starting at the last misspelled word. 
+				// and keep looking if it's a substring of another word
+				do {
+					begin_idx = wordtxt.indexOf( orig[i], end_idx );
+					end_idx = begin_idx + orig[i].length;
+					// word not found? messed up!
+					if( begin_idx == -1 ) break; 
+					// look at the characters immediately before and after 
+					// the word. If they are word characters we'll keep looking.
+					var before_char = wordtxt.charAt( begin_idx - 1 );
+					var after_char = wordtxt.charAt( end_idx );
+				} while ( 
+					this._isWordChar( before_char ) 
+					|| this._isWordChar( after_char )
+				);
+
+				// keep track of its position in the original text. 
+				this.indexes[txtid][i] = begin_idx;
+
+				// write out the characters before the current misspelled word
+				for( var j = this._lastPos( txtid, i ); j < begin_idx; j++ ) {
+					// !!! html mode? make it html compatible
+					d.write( this.printForHtml( wordtxt.charAt( j )));
+				}
+
+				// write out the misspelled word. 
+				d.write( this._wordInputStr( orig[i] ));
+
+				// if it's the last word, write out the rest of the text
+				if( i == orig.length-1 ){
+					d.write( printForHtml( wordtxt.substr( end_idx )));
+				}			
+			}
+
+			d.writeln( '</div>' );
+			
+		}
+		d.writeln( '</form>' );
+	}
+	//for ( var j = 0; j < d.forms.length; j++ ) {
+	//	alert( d.forms[j].name );
+	//	for( var k = 0; k < d.forms[j].elements.length; k++ ) {
+	//		alert( d.forms[j].elements[k].name + ": " + d.forms[j].elements[k].value );
+	//	}
+	//}	
+	
+	// set the _forms property
+	this._forms = d.forms;
+	d.close();
+}
+
+// return the character index in the full text after the last word we evaluated
+function _lastPos( txtid, idx ) {
+	if( idx > 0 )
+		return this.indexes[txtid][idx-1] + this.originalSpellings[txtid][idx-1].length;
+	else
+		return 0;
+}
+
+function printForHtml( n ) {
+	return n ;		// by FredCK
+	
+	var htmlstr = n;
+	if( htmlstr.length == 1 ) {
+		// do simple case statement if it's just one character
+		switch ( n ) {
+			case "\n":
+				htmlstr = '<br/>';
+				break;
+			case "<":
+				htmlstr = '&lt;';
+				break;
+			case ">":
+				htmlstr = '&gt;';
+				break;
+		}
+		return htmlstr;
+	} else {
+		htmlstr = htmlstr.replace( /</g, '&lt' );
+		htmlstr = htmlstr.replace( />/g, '&gt' );
+		htmlstr = htmlstr.replace( /\n/g, '<br/>' );
+		return htmlstr;
+	}
+}
+
+function _isWordChar( letter ) {
+	if( letter.search( this.wordChar ) == -1 ) {
+		return false;
+	} else {
+		return true;
+	}
+}
+
+function _getWordObject( textIndex, wordIndex ) {
+	if( this._forms[textIndex] ) {
+		if( this._forms[textIndex].elements[wordIndex] ) {
+			return this._forms[textIndex].elements[wordIndex];
+		}
+	}
+	return null;
+}
+
+function _wordInputStr( word ) {
+	var str = '<input readonly ';
+	str += 'class="blend" type="text" value="' + word + '" size="' + word.length + '">';
+	return str;
+}
+
+function _adjustIndexes( textIndex, wordIndex, lengthDiff ) {
+	for( var i = wordIndex + 1; i < this.originalSpellings[textIndex].length; i++ ) {
+		this.indexes[textIndex][i] = this.indexes[textIndex][i] + lengthDiff;
+	}
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_spellerpages.html	(revision 389)
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_spellerpages.html
+ * 	Spell Check dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html>
+	<head>
+		<title>Spell Check</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta content="noindex, nofollow" name="robots">
+		<script src="fck_spellerpages/spellerpages/spellChecker.js"></script>
+		<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+var FCKLang = oEditor.FCKLang ;
+
+window.onload = function()
+{
+	document.getElementById('txtHtml').value = oEditor.FCK.EditorDocument.body.innerHTML ;
+
+	var oSpeller = new spellChecker( document.getElementById('txtHtml') ) ;
+	oSpeller.OnFinished = oSpeller_OnFinished ;
+	oSpeller.openChecker() ;
+}
+
+function OnSpellerControlsLoad( controlsWindow )
+{
+	// Translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage( controlsWindow.document ) ;
+}
+
+function oSpeller_OnFinished( numberOCorrections )
+{
+	if ( numberOCorrections > 0 )
+		oEditor.FCK.SetHTML( document.getElementById('txtHtml').value ) ;
+	window.parent.Cancel() ;
+}
+
+		</script>
+	</head>
+	<body style="OVERFLOW: hidden" scroll="no" style="padding:0px;">
+		<input type="hidden" id="txtHtml" value="">
+		<iframe id="frmSpell" src="../fckblank.html" name="spellchecker" width="100%" height="100%" frameborder="0"></iframe>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_checkbox.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_checkbox.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_checkbox.html	(revision 389)
@@ -0,0 +1,103 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_checkbox.html
+ * 	Checkbox dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html>
+	<head>
+		<title>Checkbox Properties</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta content="noindex, nofollow" name="robots">
+		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+		<script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+
+// Gets the document DOM
+var oDOM = oEditor.FCK.EditorDocument ;
+
+var oActiveEl = oEditor.FCKSelection.GetSelectedElement() ;
+
+window.onload = function()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+	if ( oActiveEl && oActiveEl.tagName == 'INPUT' && oActiveEl.type == 'checkbox' )
+	{
+		GetE('txtName').value		= oActiveEl.name ;
+		GetE('txtValue').value		= oEditor.FCKBrowserInfo.IsIE ? oActiveEl.value : GetAttribute( oActiveEl, 'value' ) ;
+		GetE('txtSelected').checked	= oActiveEl.checked ;
+	}
+	else
+		oActiveEl = null ;
+
+	window.parent.SetOkButton( true ) ;
+}
+
+function Ok()
+{
+	if ( !oActiveEl )
+	{
+		oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ;
+		oActiveEl.type = 'checkbox' ;
+		oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
+	}
+
+	if ( GetE('txtName').value.length > 0 )
+		oActiveEl.name = GetE('txtName').value ;
+		
+	if ( oEditor.FCKBrowserInfo.IsIE )
+		oActiveEl.value = GetE('txtValue').value ;
+	else
+		SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ;
+
+	var bIsChecked = GetE('txtSelected').checked ;
+	SetAttribute( oActiveEl, 'checked', bIsChecked ? 'checked' : null ) ;	// For Firefox
+	oActiveEl.checked = bIsChecked ;
+
+	return true ;
+}
+
+		</script>
+	</head>
+	<body style="OVERFLOW: hidden" scroll="no">
+		<table height="100%" width="100%">
+			<tr>
+				<td align="center">
+					<table border="0" cellpadding="0" cellspacing="0" width="80%">
+						<tr>
+							<td>
+								<span fckLang="DlgCheckboxName">Name</span><br>
+								<input type="text" size="20" id="txtName" style="WIDTH: 100%">
+							</td>
+						</tr>
+						<tr>
+							<td>
+								<span fckLang="DlgCheckboxValue">Value</span><br>
+								<input type="text" size="20" id="txtValue" style="WIDTH: 100%">
+							</td>
+						</tr>
+						<tr>
+							<td><input type="checkbox" id="txtSelected"><label for="txtSelected" fckLang="DlgCheckboxSelected">Checked</label></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html	(revision 389)
@@ -0,0 +1,109 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_document_preview.html
+ * 	Preview shown in the "Document Properties" dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html>
+	<head>
+		<title>Document Properties - Preview</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta name="robots" content="noindex, nofollow">
+		<script language="javascript">
+
+var eBase = parent.FCK.EditorDocument.getElementsByTagName( 'BASE' ) ;
+if ( eBase.length > 0 && eBase[0].href.length > 0 )
+{
+	document.write( '<base href="' + eBase[0].href + '">' ) ;
+}
+
+window.onload = function()
+{
+	if ( typeof( parent.OnPreviewLoad ) == 'function' )
+		parent.OnPreviewLoad( window, document.body ) ;
+}
+
+function SetBaseHRef( baseHref )
+{
+	var eBase = document.createElement( 'BASE' ) ;
+	eBase.href = baseHref ;
+
+	var eHead = document.getElementsByTagName( 'HEAD' )[0] ;
+	eHead.appendChild( eBase ) ;
+}
+
+function SetLinkColor( color )
+{
+	if ( color && color.length > 0 )
+		document.getElementById('eLink').style.color = color ;
+	else
+		document.getElementById('eLink').style.color = window.document.linkColor ;
+}
+
+function SetVisitedColor( color )
+{
+	if ( color && color.length > 0 )
+		document.getElementById('eVisited').style.color = color ;
+	else
+		document.getElementById('eVisited').style.color = window.document.vlinkColor ;
+}
+
+function SetActiveColor( color )
+{
+	if ( color && color.length > 0 )
+		document.getElementById('eActive').style.color = color ;
+	else
+		document.getElementById('eActive').style.color = window.document.alinkColor ;
+}
+		</script>
+	</head>
+	<body>
+		<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
+			<tr>
+				<td align="center" valign="middle">
+					Normal Text
+				</td>
+				<td id="eLink" align="center" valign="middle">
+					<u>Link Text</u>
+				</td>
+			</tr>
+			<tr>
+				<td id="eVisited" valign="middle" align="center">
+					<u>Visited Link</u>
+				</td>
+				<td id="eActive" valign="middle" align="center">
+					<u>Active Link</u>
+				</td>
+			</tr>
+		</table>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+		<br>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/fckeditor.original.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/fckeditor.original.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/fckeditor.original.html	(revision 389)
@@ -0,0 +1,292 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckeditor.original.html
+ * 	Main page that holds the editor.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor</title>
+	<meta name="robots" content="noindex, nofollow" />
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<!-- @Packager.RemoveLine
+	<meta http-equiv="Cache-Control" content="public" />
+	@Packager.RemoveLine -->
+	<script type="text/javascript">
+
+// Instead of loading scripts and CSSs using inline tags, all scripts are
+// loaded by code. In this way we can guarantee the correct processing order,
+// otherwise external scripts and inline scripts could be executed in an
+// unwanted order (IE).
+
+function LoadScript( url )
+{
+	document.write( '<script type="text/javascript" src="' + url + '" onerror="alert(\'Error loading \' + this.src);"><\/script>' ) ;
+}
+
+function LoadCss( url )
+{
+	document.write( '<link href="' + url + '" type="text/css" rel="stylesheet" onerror="alert(\'Error loading \' + this.src);" />' ) ;
+}
+
+// Main editor scripts.
+var sSuffix = /msie/.test( navigator.userAgent.toLowerCase() ) ? 'ie' : 'gecko' ;
+
+/* @Packager.RemoveLine
+LoadScript( 'js/fckeditorcode_' + sSuffix + '.js' ) ;
+@Packager.RemoveLine */
+// @Packager.Remove.Start
+
+LoadScript( '_source/fckconstants.js' ) ;
+LoadScript( '_source/fckjscoreextensions.js' ) ;
+
+if ( sSuffix == 'ie' )
+	LoadScript( '_source/classes/fckiecleanup.js' ) ;
+
+LoadScript( '_source/internals/fckbrowserinfo.js' ) ;
+LoadScript( '_source/internals/fckurlparams.js' ) ;
+LoadScript( '_source/internals/fck.js' ) ;
+LoadScript( '_source/internals/fckconfig.js' ) ;
+
+LoadScript( '_source/internals/fckdebug.js' ) ;
+LoadScript( '_source/internals/fcktools.js' ) ;
+LoadScript( '_source/internals/fcktools_' + sSuffix + '.js' ) ;
+LoadScript( '_source/fckeditorapi.js' ) ;
+LoadScript( '_source/internals/fckregexlib.js' ) ;
+LoadScript( '_source/internals/fcklanguagemanager.js' ) ;
+LoadScript( '_source/classes/fckevents.js' ) ;
+LoadScript( '_source/internals/fckxhtmlentities.js' ) ;
+LoadScript( '_source/internals/fckxhtml.js' ) ;
+LoadScript( '_source/internals/fckxhtml_' + sSuffix + '.js' ) ;
+LoadScript( '_source/internals/fckcodeformatter.js' ) ;
+LoadScript( '_source/internals/fckundo_' + sSuffix + '.js' ) ;
+LoadScript( '_source/classes/fckeditingarea.js' ) ;
+LoadScript( '_source/internals/fckdocumentprocessor.js' ) ;
+LoadScript( '_source/internals/fck_1.js' ) ;
+LoadScript( '_source/internals/fck_1_' + sSuffix + '.js' ) ;
+LoadScript( '_source/internals/fck_2.js' ) ;
+LoadScript( '_source/internals/fck_2_' + sSuffix + '.js' ) ;
+LoadScript( '_source/internals/fckselection.js' ) ;
+LoadScript( '_source/internals/fckselection_' + sSuffix + '.js' ) ;
+
+LoadScript( '_source/internals/fcktablehandler.js' ) ;
+LoadScript( '_source/internals/fcktablehandler_' + sSuffix + '.js' ) ;
+LoadScript( '_source/classes/fckxml_' + sSuffix + '.js' ) ;
+LoadScript( '_source/classes/fckstyledef.js' ) ;
+LoadScript( '_source/classes/fckstyledef_' + sSuffix + '.js' ) ;
+LoadScript( '_source/classes/fckstylesloader.js' ) ;
+
+LoadScript( '_source/commandclasses/fcknamedcommand.js' ) ;
+LoadScript( '_source/commandclasses/fck_othercommands.js' ) ;
+LoadScript( '_source/commandclasses/fckspellcheckcommand_' + sSuffix + '.js' ) ;
+LoadScript( '_source/commandclasses/fcktextcolorcommand.js' ) ;
+LoadScript( '_source/commandclasses/fckpasteplaintextcommand.js' ) ;
+LoadScript( '_source/commandclasses/fckpastewordcommand.js' ) ;
+LoadScript( '_source/commandclasses/fcktablecommand.js' ) ;
+LoadScript( '_source/commandclasses/fckstylecommand.js' ) ;
+LoadScript( '_source/commandclasses/fckfitwindow.js' ) ;
+LoadScript( '_source/internals/fckcommands.js' ) ;
+
+LoadScript( '_source/classes/fckpanel.js' ) ;
+LoadScript( '_source/classes/fckicon.js' ) ;
+LoadScript( '_source/classes/fcktoolbarbuttonui.js' ) ;
+LoadScript( '_source/classes/fcktoolbarbutton.js' ) ;
+LoadScript( '_source/classes/fckspecialcombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarspecialcombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarfontscombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarfontsizecombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarfontformatcombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarstylecombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarpanelbutton.js' ) ;
+LoadScript( '_source/internals/fcktoolbaritems.js' ) ;
+LoadScript( '_source/classes/fcktoolbar.js' ) ;
+LoadScript( '_source/classes/fcktoolbarbreak_' + sSuffix + '.js' ) ;
+LoadScript( '_source/internals/fcktoolbarset.js' ) ;
+LoadScript( '_source/internals/fckdialog.js' ) ;
+LoadScript( '_source/internals/fckdialog_' + sSuffix + '.js' ) ;
+LoadScript( '_source/classes/fckmenuitem.js' ) ;
+LoadScript( '_source/classes/fckmenublock.js' ) ;
+LoadScript( '_source/classes/fckmenublockpanel.js' ) ;
+LoadScript( '_source/classes/fckcontextmenu.js' ) ;
+LoadScript( '_source/internals/fck_contextmenu.js' ) ;
+LoadScript( '_source/classes/fckplugin.js' ) ;
+LoadScript( '_source/internals/fckplugins.js' ) ;
+
+// @Packager.Remove.End
+
+// Base configuration file.
+LoadScript( '../fckconfig.js' ) ;
+
+	</script>
+	<script type="text/javascript">
+
+// Create the default cleanup object used by the editor.
+if ( FCKBrowserInfo.IsIE )
+{
+	FCK.IECleanup = new FCKIECleanup( window ) ;
+	FCK.IECleanup.AddItem( FCKTempBin, FCKTempBin.Reset ) ;
+	FCK.IECleanup.AddItem( FCK, FCK_Cleanup ) ;
+}
+
+// The config hidden field is processed immediately, because
+// CustomConfigurationsPath may be set in the page.
+FCKConfig.ProcessHiddenField() ;
+
+// Load the custom configurations file (if defined).
+if ( FCKConfig.CustomConfigurationsPath.length > 0 )
+	LoadScript( FCKConfig.CustomConfigurationsPath ) ;
+
+	</script>
+	<script type="text/javascript">
+
+// Load configurations defined at page level.
+FCKConfig_LoadPageConfig() ;
+
+FCKConfig_PreProcess() ;
+
+// Load the active skin CSS.
+LoadCss( FCKConfig.SkinPath + 'fck_editor.css' ) ;
+
+// Load the language file.
+FCKLanguageManager.Initialize() ;
+LoadScript( 'lang/' + FCKLanguageManager.ActiveLanguage.Code + '.js' ) ;
+
+	</script>
+	<script type="text/javascript">
+
+// Initialize the editing area context menu.
+FCK_ContextMenu_Init() ;
+
+FCKPlugins.Load() ;
+
+	</script>
+	<script type="text/javascript">
+	
+// Set the editor interface direction.
+window.document.dir = FCKLang.Dir ;
+
+// Activate pasting operations.
+if ( FCKConfig.ForcePasteAsPlainText || FCKConfig.AutoDetectPasteFromWord )
+	FCK.Events.AttachEvent( "OnPaste", FCK.Paste ) ;
+
+	</script>
+	<script type="text/javascript">
+
+window.onload = function()
+{
+	InitializeAPI() ;
+
+	if ( FCKBrowserInfo.IsIE )
+		FCK_PreloadImages() ;
+	else
+		LoadToolbarSetup() ;
+}
+
+function LoadToolbarSetup()
+{
+	FCKeditorAPI._FunctionQueue.Add( LoadToolbar ) ;
+}
+
+function LoadToolbar()
+{
+	var oToolbarSet = FCK.ToolbarSet = FCKToolbarSet_Create() ;
+	
+	if ( oToolbarSet.IsLoaded )
+		StartEditor() ;
+	else
+	{
+		oToolbarSet.OnLoad = StartEditor ;
+		oToolbarSet.Load( FCKURLParams['Toolbar'] || 'Default' ) ;
+	}
+}
+
+function StartEditor()
+{
+	// Remove the onload listener.
+	FCK.ToolbarSet.OnLoad = null ;
+
+	FCKeditorAPI._FunctionQueue.Remove( LoadToolbar ) ;
+
+	FCK.Events.AttachEvent( 'OnStatusChange', WaitForActive ) ;
+
+	// Start the editor.
+	FCK.StartEditor() ;
+}
+
+function WaitForActive( editorInstance, newStatus )
+{
+	if ( newStatus == FCK_STATUS_ACTIVE )
+	{
+		if ( FCKBrowserInfo.IsGecko )
+			FCKTools.RunFunction( window.onresize ) ;
+
+		FCK.SetStatus( FCK_STATUS_COMPLETE ) ;
+
+		// Call the special "FCKeditor_OnComplete" function that should be present in 
+		// the HTML page where the editor is located.
+		if ( typeof( window.parent.FCKeditor_OnComplete ) == 'function' )
+			window.parent.FCKeditor_OnComplete( FCK ) ;	
+	}
+}
+
+// Gecko browsers doens't calculate well that IFRAME size so we must
+// recalculate it every time the window size changes.
+if ( FCKBrowserInfo.IsGecko )
+{
+	function Window_OnResize()
+	{
+		if ( FCKBrowserInfo.IsOpera )
+			return ;
+
+		var oCell = document.getElementById( 'xEditingArea' ) ;
+
+		var eInnerElement ;
+		if ( eInnerElement = oCell.firstChild )
+		{
+			eInnerElement.style.height = 0 ;
+			eInnerElement.style.height = oCell.scrollHeight - 2 ;
+		}
+	}
+	window.onresize = Window_OnResize ;
+}
+
+	</script>
+</head>
+<body>
+	<table width="100%" cellpadding="0" cellspacing="0" style="height: 100%; table-layout: fixed">
+		<tr id="xToolbarRow" style="display: none">
+			<td id="xToolbarSpace" style="overflow: hidden">
+				<table width="100%" cellpadding="0" cellspacing="0">
+					<tr id="xCollapsed" style="display: none">
+						<td id="xExpandHandle" class="TB_Expand" colspan="3">
+							<img class="TB_ExpandImg" alt="" src="images/spacer.gif" width="8" height="4" /></td>
+					</tr>
+					<tr id="xExpanded" style="display: none">
+						<td id="xTBLeftBorder" class="TB_SideBorder" style="width: 1px; display: none;"></td>
+						<td id="xCollapseHandle" style="display: none" class="TB_Collapse" valign="bottom">
+							<img class="TB_CollapseImg" alt="" src="images/spacer.gif" width="8" height="4" /></td>
+						<td id="xToolbar" class="TB_ToolbarSet"></td>
+						<td class="TB_SideBorder" style="width: 1px"></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+		<tr style="height: 100%">
+			<td id="xEditingArea" valign="top"></td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/fo.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/fo.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/fo.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fo.js
+ * 	Faroese language file.
+ * 
+ * File Authors:
+ * 		Símin Lassaberg
+ * 		Helgi Arnthorsson
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Goym amboðalistan",
+ToolbarExpand		: "Vís amboðalistan",
+
+// Toolbar Items and Context Menu
+Save				: "Geim",
+NewPage				: "Nýggj síða",
+Preview				: "Vís dømi",
+Cut					: "Klipp",
+Copy				: "Avrita",
+Paste				: "Set inn",
+PasteText			: "Set inn sum reinan tekst",
+PasteWord			: "Set inn frá Word",
+Print				: "Prenta",
+SelectAll			: "Markera alt",
+RemoveFormat		: "Sletta sniðgeving",
+InsertLinkLbl		: "Leinkja",
+InsertLink			: "Seta inn/Broyta Leinkju",
+RemoveLink			: "Sletta Leinkju",
+Anchor				: "Seta inn/Broyta staðsetingarmerki",
+InsertImageLbl		: "Seta inn mynd",
+InsertImage			: "Seta inn/Broyta mynd",
+InsertFlashLbl		: "Flash",	//MISSING
+InsertFlash			: "Insert/Edit Flash",	//MISSING
+InsertTableLbl		: "Talva",
+InsertTable			: "Seta inn/Broyta talvu",
+InsertLineLbl		: "Linja",
+InsertLine			: "Seta inn vatnrætta linju",
+InsertSpecialCharLbl: "Serlig tekn",
+InsertSpecialChar	: "Seta inn serligt tekn",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Seta inn Smiley",
+About				: "Um FCKeditor",
+Bold				: "Feit",
+Italic				: "Skástillað",
+Underline			: "Undirstrikað",
+StrikeThrough		: "Strikað yvir",
+Subscript			: "Lækkað skrift",
+Superscript			: "Hækkað skrift",
+LeftJustify			: "Vinstristillað",
+CenterJustify		: "Miðstillað",
+RightJustify		: "Hægristillað",
+BlockJustify		: "Beinir tekstkantar",
+DecreaseIndent		: "Økja innrykk",
+IncreaseIndent		: "Minka innrykk",
+Undo				: "Angra",
+Redo				: "Broyt aftur í upprunamynd",
+NumberedListLbl		: "Talsettur listi",
+NumberedList		: "Seta inn/Sletta talsettan lista",
+BulletedListLbl		: "Punktsettur listi",
+BulletedList		: "Seta inn/Sletta punktsettan lista",
+ShowTableBorders	: "Vísa talvukantar ",
+ShowDetails			: "Vísa detaljur",
+Style				: "Tekstsnið",
+FontFormat			: "Sniðgeving",
+Font				: "Skrift",
+FontSize			: "Skriftstødd",
+TextColor			: "Tekstlitur",
+BGColor				: "Litur aftanfyri",
+Source				: "Kelda",
+Find				: "Leita",
+Replace				: "Set í staðin",
+SpellCheck			: "Stavseting",
+UniversalKeyboard	: "Universalt Tastatur",
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
+
+Form			: "Seta inn Form",
+Checkbox		: "Seta inn Avmerkingarboks",
+RadioButton		: "Seta inn Radioknap",
+TextField		: "Seta inn Tekstteig",
+Textarea		: "Seta inn Tekstøki",
+HiddenField		: "Seta inn GoymdanTeig",
+Button			: "Seta inn knapp",
+SelectionField	: "Seta inn Valteig",
+ImageButton		: "Seta inn Myndaknapp",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+
+// Context Menu
+EditLink			: "Broyt leinkju",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRow			: "Seta inn rekkju",
+DeleteRows			: "Sletta rekkjur",
+InsertColumn		: "Seta inn søjlur",
+DeleteColumns		: "Sletta søjlur",
+InsertCell			: "Seta inn sellu",
+DeleteCells			: "Sletta sellu",
+MergeCells			: "Flætta sellur",
+SplitCell			: "Deila sellur",
+TableDelete			: "Delete Table",	//MISSING
+CellProperties		: "Eginleikar fyri sellu",
+TableProperties		: "Eginleikar fyri talvu",
+ImageProperties		: "Eginleikar fyri mynd",
+FlashProperties		: "Flash Properties",	//MISSING
+
+AnchorProp			: "Eginleikar fyri staðsetingarpunkt",
+ButtonProp			: "Eginleikar fyri knapp",
+CheckboxProp		: "Eginleikar fyri avmerkingarboks",
+HiddenFieldProp		: "Eginleikar fyri goymdan teig",
+RadioButtonProp		: "Eginleikar fyri radioknapp",
+ImageButtonProp		: "Eginleikar fyri myndaknapp",
+TextFieldProp		: "Eginleikar fyri Tekstateig",
+SelectionFieldProp	: "Eginleikar fyri Valteig",
+TextareaProp		: "Eginleikar fyri Tekstaøki",
+FormProp			: "Eginleikar fyri form",
+
+FontFormats			: "Normalt;Sniðgevið;Adressa;Yvirskrift 1;Yvirskrift 2;Yvirskrift 3;Yvirskrift 4;Yvirskrift 5;Yvirskrift 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Viðgerir XHTML. Bíða...",
+Done				: "Liðugt",
+PasteWordConfirm	: "Teksturin, tú roynir at seta inn, sýnist at vera frá Word. Vilt tú reinsa tekstin, áðrenn hann verður settur inn?",
+NotCompatiblePaste	: "Hesin ordri er tøkur í Internet Explorer 5.5 og nýggjari. Vilt tú seta tekstin inn, uttan at reinsa hann?",
+UnknownToolbarItem	: "Ókendur lutur í amboðalinju \"%1\"",
+UnknownCommand		: "Kenni ikki ordra \"%1\"",
+NotImplemented		: "Ordrin er ikki gjørdur virkin",
+UnknownToolbarSet	: "Amboðalinjan \"%1\" finst ikki",
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Angra",
+DlgBtnClose			: "Lukka",
+DlgBtnBrowseServer	: "Hyggja á servara",
+DlgAdvancedTag		: "Útvíðka",
+DlgOpOther			: "<Annað>",
+DlgInfoTab			: "Info",	//MISSING
+DlgAlertUrl			: "Please insert the URL",	//MISSING
+
+// General Dialogs Labels
+DlgGenNotSet		: "<ikki sett>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Tekstakós",
+DlgGenLangDirLtr	: "Vinstri móti høgri (LTR)",
+DlgGenLangDirRtl	: "Høgri móti vinstri (RTL)",
+DlgGenLangCode		: "Málkoda",
+DlgGenAccessKey		: "Atgongdslykil",
+DlgGenName			: "Navn",
+DlgGenTabIndex		: "Tabulator Indeks",
+DlgGenLongDescr		: "víðka frágreiðing",
+DlgGenClass			: "Typografiark",
+DlgGenTitle			: "Heiti",
+DlgGenContType		: "Innihaldsslag",
+DlgGenLinkCharset	: "Teknset",
+DlgGenStyle			: "Prentlist",
+
+// Image Dialog
+DlgImgTitle			: "Mynd eginleikar",
+DlgImgInfoTab		: "Mynd info",
+DlgImgBtnUpload		: "Send til serveren",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Upload",
+DlgImgAlt			: "Annar tekstur",
+DlgImgWidth			: "Breidd",
+DlgImgHeight		: "Hædd",
+DlgImgLockRatio		: "Læs støddarlutfall",
+DlgBtnResetSize		: "Nulstilla stødd",
+DlgImgBorder		: "Ramma",
+DlgImgHSpace		: "HMargin",
+DlgImgVSpace		: "VMargin",
+DlgImgAlign			: "Justering",
+DlgImgAlignLeft		: "Vinstra",
+DlgImgAlignAbsBottom: "Abs botnur",
+DlgImgAlignAbsMiddle: "Abs Miðja",
+DlgImgAlignBaseline	: "Botnlinja",
+DlgImgAlignBottom	: "Botnur",
+DlgImgAlignMiddle	: "Miðja",
+DlgImgAlignRight	: "Høgra",
+DlgImgAlignTextTop	: "Tekstur ovast",
+DlgImgAlignTop		: "Ovast",
+DlgImgPreview		: "Vís dømi",
+DlgImgAlertUrl		: "Slá inn slóðina til myndina",
+DlgImgLinkTab		: "Leinkja",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Properties",	//MISSING
+DlgFlashChkPlay		: "Auto Play",	//MISSING
+DlgFlashChkLoop		: "Loop",	//MISSING
+DlgFlashChkMenu		: "Enable Flash Menu",	//MISSING
+DlgFlashScale		: "Scale",	//MISSING
+DlgFlashScaleAll	: "Show all",	//MISSING
+DlgFlashScaleNoBorder	: "No Border",	//MISSING
+DlgFlashScaleFit	: "Exact Fit",	//MISSING
+
+// Link Dialog
+DlgLnkWindowTitle	: "Leinkja",
+DlgLnkInfoTab		: "Leinkju info",
+DlgLnkTargetTab		: "Mál",
+
+DlgLnkType			: "Leinkju slag",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Akker á hesari síðuni",
+DlgLnkTypeEMail		: "Teldupostur",
+DlgLnkProto			: "Protokoll",
+DlgLnkProtoOther	: "<onnur>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "VEl eitt akker",
+DlgLnkAnchorByName	: "Eftir akker navni",
+DlgLnkAnchorById	: "Eftir element Id",
+DlgLnkNoAnchors		: "<Tað eru ongi akker tøk í hesum dokumentinum;",
+DlgLnkEMail			: "Teldupost Adresse",
+DlgLnkEMailSubject	: "Evni",
+DlgLnkEMailBody		: "Boð",
+DlgLnkUpload		: "Upload",
+DlgLnkBtnUpload		: "Send til servaran",
+
+DlgLnkTarget		: "Mál",
+DlgLnkTargetFrame	: "<ramma>",
+DlgLnkTargetPopup	: "<popup vindeyga>",
+DlgLnkTargetBlank	: "Nytt vindeyga (_blank)",
+DlgLnkTargetParent	: "Omaná liggjandi vindeyga (_parent)",
+DlgLnkTargetSelf	: "Sama vindeyga (_self)",
+DlgLnkTargetTop		: "ovasta vindeyga (_top)",
+DlgLnkTargetFrameName	: "vísa vindeygas navn",
+DlgLnkPopWinName	: "Popup vindeygas navn",
+DlgLnkPopWinFeat	: "Popup vindeygas eginleikar",
+DlgLnkPopResize		: "Skalering",
+DlgLnkPopLocation	: "Lokationslinja",
+DlgLnkPopMenu		: "Menulinja",
+DlgLnkPopScroll		: "Scrollbars",
+DlgLnkPopStatus		: "Statuslinja",
+DlgLnkPopToolbar	: "Værktøjslinja",
+DlgLnkPopFullScrn	: "Fullur skermur (IE)",
+DlgLnkPopDependent	: "Bundin (Netscape)",
+DlgLnkPopWidth		: "Breidd",
+DlgLnkPopHeight		: "Hædd",
+DlgLnkPopLeft		: "Positión frá vinstru",
+DlgLnkPopTop		: "Positión frá toppinum",
+
+DlnLnkMsgNoUrl		: "Inntasta leinkju URL",
+DlnLnkMsgNoEMail	: "Inntasta teldupost addressuna",
+DlnLnkMsgNoAnchor	: "Vel akker",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "vel farvu",
+DlgColorBtnClear	: "sletta alt",
+DlgColorHighlight	: "Markera",
+DlgColorSelected	: "valt",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Innset ein smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "vel specialkarakter",
+
+// Table Dialog
+DlgTableTitle		: "Tabel eginleikar",
+DlgTableRows		: "Rekkjur",
+DlgTableColumns		: "Kolonnur",
+DlgTableBorder		: "Rammu stødd",
+DlgTableAlign		: "Justering",
+DlgTableAlignNotSet	: "<Ikki sett>",
+DlgTableAlignLeft	: "Vinstrastilla",
+DlgTableAlignCenter	: "Miðseta",
+DlgTableAlignRight	: "Høgrastilla",
+DlgTableWidth		: "Breidd",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "prosent",
+DlgTableHeight		: "Hædd",
+DlgTableCellSpace	: "Fjarstøða millum sellur",
+DlgTableCellPad		: "Sellu breddi",
+DlgTableCaption		: "Heiti",
+DlgTableSummary		: "Summary",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "Sellu eginleikar",
+DlgCellWidth		: "Breidd",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "prosent",
+DlgCellHeight		: "Hædd",
+DlgCellWordWrap		: "Orðbýti",
+DlgCellWordWrapNotSet	: "<Ikki sett>",
+DlgCellWordWrapYes	: "Ja",
+DlgCellWordWrapNo	: "Nej",
+DlgCellHorAlign		: "Horisontal justering",
+DlgCellHorAlignNotSet	: "<Ikke sat>",
+DlgCellHorAlignLeft	: "Vinstrastilla",
+DlgCellHorAlignCenter	: "Miðsett",
+DlgCellHorAlignRight: "Høgrastilla",
+DlgCellVerAlign		: "Lodrøtt Justering",
+DlgCellVerAlignNotSet	: "<Ikki sett>",
+DlgCellVerAlignTop	: "Ovast",
+DlgCellVerAlignMiddle	: "Miðja",
+DlgCellVerAlignBottom	: "Niðast",
+DlgCellVerAlignBaseline	: "Botnlinja",
+DlgCellRowSpan		: "Tal av rekkjum sellan spennur yvir",
+DlgCellCollSpan		: "Tal av talrøðum sellan spennur yvir",
+DlgCellBackColor	: "Bakgrundsfarva",
+DlgCellBorderColor	: "rammufarva",
+DlgCellBtnSelect	: "Vel...",
+
+// Find Dialog
+DlgFindTitle		: "Finn",
+DlgFindFindBtn		: "Finn",
+DlgFindNotFoundMsg	: "Teksturin bleiv ikki funnin",
+
+// Replace Dialog
+DlgReplaceTitle			: "Set í staðin",
+DlgReplaceFindLbl		: "Finn:",
+DlgReplaceReplaceLbl	: "Set í staðin við:",
+DlgReplaceCaseChk		: "Munur á stórum og smáðum stavum",
+DlgReplaceReplaceBtn	: "Set í staðin",
+DlgReplaceReplAllBtn	: "Skift alt út",
+DlgReplaceWordChk		: "Bert heil orð",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Leitarans trygdarinstillingar loyva ikki editorinum at innseta tekstin automatiskt. Brúka knappaborðið til at innseta tekstin (Ctrl+V).",
+PasteErrorCut	: "Leitarans trygdarinstillingar loyva ikki editorinum at klippa tekstin automatiskt. Brúka í staðin knappaborðið til at klippa tekstin (Ctrl+X).",
+PasteErrorCopy	: "Leitarans trygdarinstillingar loyva ikki editorinum at avrita tekstin automatiskt. Brúka í staðin knappaborðið til at avrita tekstin (Ctrl+V).",
+
+PasteAsText		: "Seta inn som reinur tekstur",
+PasteFromWord	: "Seta inn fra Word",
+
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",	//MISSING
+DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
+DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
+DlgPasteCleanBox		: "Clean Up Box",	//MISSING
+
+// Color Picker
+ColorAutomatic	: "Automatisk",
+ColorMoreColors	: "Fleiri farvur...",
+
+// Document Properties
+DocProps		: "Dokument eginleikar",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Akker eginleikar",
+DlgAnchorName		: "Akker navn",
+DlgAnchorErrorName	: "Slá innn akker navn",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Finnst ikki í orðabókini",
+DlgSpellChangeTo		: "broyta til",
+DlgSpellBtnIgnore		: "Ignorera",
+DlgSpellBtnIgnoreAll	: "Ignorera alt",
+DlgSpellBtnReplace		: "Skift út",
+DlgSpellBtnReplaceAll	: "Skift út alt",
+DlgSpellBtnUndo			: "Aftur",
+DlgSpellNoSuggestions	: "- Einki uppskot -",
+DlgSpellProgress		: "Stavarin arbeiðir...",
+DlgSpellNoMispell		: "Stavarain liðugur: Eingin feilur funnin",
+DlgSpellNoChanges		: "Stavarain liðugur: Einki orð broytt",
+DlgSpellOneChange		: "Stavarain liðugur: Eitt orð broytt",
+DlgSpellManyChanges		: "Stavarain liðugur: %1 orð broytt",
+
+IeSpellDownload			: "Stavarin ikki lagdur inn. vilt tú heinta hann nú?",
+
+// Button Dialog
+DlgButtonText		: "Tekstur (Virði)",
+DlgButtonType		: "Slag",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Navn",
+DlgCheckboxValue	: "Virði",
+DlgCheckboxSelected	: "Valgt",
+
+// Form Dialog
+DlgFormName		: "Navn",
+DlgFormAction	: "Gerð",
+DlgFormMethod	: "Háttur",
+
+// Select Field Dialog
+DlgSelectName		: "Navn",
+DlgSelectValue		: "Virði",
+DlgSelectSize		: "Stødd",
+DlgSelectLines		: "linjir",
+DlgSelectChkMulti	: "Loyv fleiri valmøguleikar",
+DlgSelectOpAvail	: "valmøguleikar",
+DlgSelectOpText		: "Tekstur",
+DlgSelectOpValue	: "Virði",
+DlgSelectBtnAdd		: "Legg afturat",
+DlgSelectBtnModify	: "Broyt",
+DlgSelectBtnUp		: "Upp",
+DlgSelectBtnDown	: "Niður",
+DlgSelectBtnSetValue : "Set sum útvald",
+DlgSelectBtnDelete	: "Sletta",
+
+// Textarea Dialog
+DlgTextareaName	: "Navn",
+DlgTextareaCols	: "talrøð",
+DlgTextareaRows	: "Rekkja",
+
+// Text Field Dialog
+DlgTextName			: "Navn",
+DlgTextValue		: "Virði",
+DlgTextCharWidth	: "Sjónligt tal av bókstavum",
+DlgTextMaxChars		: "Hægst loyvda tal av bókstavum",
+DlgTextType			: "Slag",
+DlgTextTypeText		: "Tekstur",
+DlgTextTypePass		: "Koduorð",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Navn",
+DlgHiddenValue	: "Virði",
+
+// Bulleted List Dialog
+BulletedListProp	: "Punktteknsuppsetingar eginleikar",
+NumberedListProp	: "Taluppsetingar eginleikar",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Slag",
+DlgLstTypeCircle	: "Sirkul",
+DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeSquare	: "Fýrakantur",
+DlgLstTypeNumbers	: "Talmerkt (1, 2, 3)",
+DlgLstTypeLCase		: "Smáir bókstavir (a, b, c)",
+DlgLstTypeUCase		: "Stórir bókstavir (A, B, C)",
+DlgLstTypeSRoman	: "Smá rómaratøl (i, ii, iii)",
+DlgLstTypeLRoman	: "Stór rómaratøl (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Generelt",
+DlgDocBackTab		: "Bakgrund",
+DlgDocColorsTab		: "Farva og Breddin",
+DlgDocMetaTab		: "Meta Information",
+
+DlgDocPageTitle		: "Síðu heiti",
+DlgDocLangDir		: "Mál",
+DlgDocLangDirLTR	: "Frá vinstru móti høgru (LTR)",
+DlgDocLangDirRTL	: "Frá høgru móti vinstru (RTL)",
+DlgDocLangCode		: "Landakoda",
+DlgDocCharSet		: "Karakter set kodu",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Annar karakter set kodu",
+
+DlgDocDocType		: "Dokument slag kategori",
+DlgDocDocTypeOther	: "Annað dokument slag kategori",
+DlgDocIncXHTML		: "Inkludere XHTML deklartion",
+DlgDocBgColor		: "Bakgrundsfarva",
+DlgDocBgImage		: "Bakgrundsmynd URL",
+DlgDocBgNoScroll	: "Ikki scrollbar bakgrund",
+DlgDocCText			: "Tekstur",
+DlgDocCLink			: "Leinkja",
+DlgDocCVisited		: "Vitja leinkja",
+DlgDocCActive		: "Aktiv leinkja",
+DlgDocMargins		: "Síðu breddi",
+DlgDocMaTop			: "Ovast",
+DlgDocMaLeft		: "Vinstra",
+DlgDocMaRight		: "Høgra",
+DlgDocMaBottom		: "Niðast",
+DlgDocMeIndex		: "Dokument index lyklaorð (komma sundurskilt)",
+DlgDocMeDescr		: "Dokument lýsing",
+DlgDocMeAuthor		: "Høvundur",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Vís",
+
+// Templates Dialog
+Templates			: "Frymlar",
+DlgTemplatesTitle	: "Innihaldsfrymlar",
+DlgTemplatesSelMsg	: "Vel tann frymilin, sum skal opnast í editorinum<br>(Tað verður skriva útyvir núverandi innihald):",
+DlgTemplatesLoading	: "Heintar lista yvir frymlar. Vinarliga bíða...",
+DlgTemplatesNoTpl	: "(Ongin frymil er valdur)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Um",
+DlgAboutBrowserInfoTab	: "Browsara upplýsingar",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "versión",
+DlgAboutLicense		: "Loyvi undir treytum fyri GNU Lesser General Public License",
+DlgAboutInfo		: "Fleiri upplýsingar, far til"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/bs.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/bs.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/bs.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: bs.js
+ * 	Bosnian language file.
+ * 
+ * File Authors:
+ * 		Muris Trax (www.elektronika.ba)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Skupi trake sa alatima",
+ToolbarExpand		: "Otvori trake sa alatima",
+
+// Toolbar Items and Context Menu
+Save				: "Snimi",
+NewPage				: "Novi dokument",
+Preview				: "Prikaži",
+Cut					: "Izreži",
+Copy				: "Kopiraj",
+Paste				: "Zalijepi",
+PasteText			: "Zalijepi kao obièan tekst",
+PasteWord			: "Zalijepi iz Word-a",
+Print				: "Štampaj",
+SelectAll			: "Selektuj sve",
+RemoveFormat		: "Poništi format",
+InsertLinkLbl		: "Link",
+InsertLink			: "Ubaci/Izmjeni link",
+RemoveLink			: "Izbriši link",
+Anchor				: "Insert/Edit Anchor",	//MISSING
+InsertImageLbl		: "Slika",
+InsertImage			: "Ubaci/Izmjeni sliku",
+InsertFlashLbl		: "Flash",	//MISSING
+InsertFlash			: "Insert/Edit Flash",	//MISSING
+InsertTableLbl		: "Tabela",
+InsertTable			: "Ubaci/Izmjeni tabelu",
+InsertLineLbl		: "Linija",
+InsertLine			: "Ubaci horizontalnu liniju",
+InsertSpecialCharLbl: "Specijalni karakter",
+InsertSpecialChar	: "Ubaci specijalni karater",
+InsertSmileyLbl		: "Smješko",
+InsertSmiley		: "Ubaci smješka",
+About				: "O FCKeditor-u",
+Bold				: "Boldiraj",
+Italic				: "Ukosi",
+Underline			: "Podvuci",
+StrikeThrough		: "Precrtaj",
+Subscript			: "Subscript",
+Superscript			: "Superscript",
+LeftJustify			: "Lijevo poravnanje",
+CenterJustify		: "Centralno poravnanje",
+RightJustify		: "Desno poravnanje",
+BlockJustify		: "Puno poravnanje",
+DecreaseIndent		: "Smanji uvod",
+IncreaseIndent		: "Poveæaj uvod",
+Undo				: "Vrati",
+Redo				: "Ponovi",
+NumberedListLbl		: "Numerisana lista",
+NumberedList		: "Ubaci/Izmjeni numerisanu listu",
+BulletedListLbl		: "Lista",
+BulletedList		: "Ubaci/Izmjeni listu",
+ShowTableBorders	: "Pokaži okvire tabela",
+ShowDetails			: "Pokaži detalje",
+Style				: "Stil",
+FontFormat			: "Format",
+Font				: "Font",
+FontSize			: "Velièina",
+TextColor			: "Boja teksta",
+BGColor				: "Boja pozadine",
+Source				: "HTML kôd",
+Find				: "Naði",
+Replace				: "Zamjeni",
+SpellCheck			: "Check Spelling",	//MISSING
+UniversalKeyboard	: "Universal Keyboard",	//MISSING
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
+
+Form			: "Form",	//MISSING
+Checkbox		: "Checkbox",	//MISSING
+RadioButton		: "Radio Button",	//MISSING
+TextField		: "Text Field",	//MISSING
+Textarea		: "Textarea",	//MISSING
+HiddenField		: "Hidden Field",	//MISSING
+Button			: "Button",	//MISSING
+SelectionField	: "Selection Field",	//MISSING
+ImageButton		: "Image Button",	//MISSING
+
+FitWindow		: "Maximize the editor size",	//MISSING
+
+// Context Menu
+EditLink			: "Izmjeni link",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRow			: "Ubaci red",
+DeleteRows			: "Briši redove",
+InsertColumn		: "Ubaci kolonu",
+DeleteColumns		: "Briši kolone",
+InsertCell			: "Ubaci æeliju",
+DeleteCells			: "Briši æelije",
+MergeCells			: "Spoji æelije",
+SplitCell			: "Razdvoji æeliju",
+TableDelete			: "Delete Table",	//MISSING
+CellProperties		: "Svojstva æelije",
+TableProperties		: "Svojstva tabele",
+ImageProperties		: "Svojstva slike",
+FlashProperties		: "Flash Properties",	//MISSING
+
+AnchorProp			: "Anchor Properties",	//MISSING
+ButtonProp			: "Button Properties",	//MISSING
+CheckboxProp		: "Checkbox Properties",	//MISSING
+HiddenFieldProp		: "Hidden Field Properties",	//MISSING
+RadioButtonProp		: "Radio Button Properties",	//MISSING
+ImageButtonProp		: "Image Button Properties",	//MISSING
+TextFieldProp		: "Text Field Properties",	//MISSING
+SelectionFieldProp	: "Selection Field Properties",	//MISSING
+TextareaProp		: "Textarea Properties",	//MISSING
+FormProp			: "Form Properties",	//MISSING
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Procesiram XHTML. Molim saèekajte...",
+Done				: "Gotovo",
+PasteWordConfirm	: "Tekst koji želite zalijepiti èini se da je kopiran iz Worda. Da li želite da se prvo oèisti?",
+NotCompatiblePaste	: "Ova komanda je podržana u Internet Explorer-u verzijama 5.5 ili novijim. Da li želite da izvršite lijepljenje teksta bez èišæenja?",
+UnknownToolbarItem	: "Nepoznata stavka sa trake sa alatima \"%1\"",
+UnknownCommand		: "Nepoznata komanda \"%1\"",
+NotImplemented		: "Komanda nije implementirana",
+UnknownToolbarSet	: "Traka sa alatima \"%1\" ne postoji",
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Odustani",
+DlgBtnClose			: "Zatvori",
+DlgBtnBrowseServer	: "Browse Server",	//MISSING
+DlgAdvancedTag		: "Naprednije",
+DlgOpOther			: "<Other>",	//MISSING
+DlgInfoTab			: "Info",	//MISSING
+DlgAlertUrl			: "Please insert the URL",	//MISSING
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nije podešeno>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Smjer pisanja",
+DlgGenLangDirLtr	: "S lijeva na desno (LTR)",
+DlgGenLangDirRtl	: "S desna na lijevo (RTL)",
+DlgGenLangCode		: "Jezièni kôd",
+DlgGenAccessKey		: "Pristupna tipka",
+DlgGenName			: "Naziv",
+DlgGenTabIndex		: "Tab indeks",
+DlgGenLongDescr		: "Dugaèki opis URL-a",
+DlgGenClass			: "Klase CSS stilova",
+DlgGenTitle			: "Advisory title",
+DlgGenContType		: "Advisory vrsta sadržaja",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Stil",
+
+// Image Dialog
+DlgImgTitle			: "Svojstva slike",
+DlgImgInfoTab		: "Info slike",
+DlgImgBtnUpload		: "Šalji na server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Šalji",
+DlgImgAlt			: "Tekst na slici",
+DlgImgWidth			: "Širina",
+DlgImgHeight		: "Visina",
+DlgImgLockRatio		: "Zakljuèaj odnos",
+DlgBtnResetSize		: "Resetuj dimenzije",
+DlgImgBorder		: "Okvir",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Poravnanje",
+DlgImgAlignLeft		: "Lijevo",
+DlgImgAlignAbsBottom: "Abs dole",
+DlgImgAlignAbsMiddle: "Abs sredina",
+DlgImgAlignBaseline	: "Bazno",
+DlgImgAlignBottom	: "Dno",
+DlgImgAlignMiddle	: "Sredina",
+DlgImgAlignRight	: "Desno",
+DlgImgAlignTextTop	: "Vrh teksta",
+DlgImgAlignTop		: "Vrh",
+DlgImgPreview		: "Prikaz",
+DlgImgAlertUrl		: "Molimo ukucajte URL od slike.",
+DlgImgLinkTab		: "Link",	//MISSING
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Properties",	//MISSING
+DlgFlashChkPlay		: "Auto Play",	//MISSING
+DlgFlashChkLoop		: "Loop",	//MISSING
+DlgFlashChkMenu		: "Enable Flash Menu",	//MISSING
+DlgFlashScale		: "Scale",	//MISSING
+DlgFlashScaleAll	: "Show all",	//MISSING
+DlgFlashScaleNoBorder	: "No Border",	//MISSING
+DlgFlashScaleFit	: "Exact Fit",	//MISSING
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Link info",
+DlgLnkTargetTab		: "Prozor",
+
+DlgLnkType			: "Tip linka",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Sidro na ovoj stranici",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<drugi>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Izaberi sidro",
+DlgLnkAnchorByName	: "Po nazivu sidra",
+DlgLnkAnchorById	: "Po Id-u elementa",
+DlgLnkNoAnchors		: "<Nema dostupnih sidra na stranici>",
+DlgLnkEMail			: "E-Mail Adresa",
+DlgLnkEMailSubject	: "Subjekt poruke",
+DlgLnkEMailBody		: "Poruka",
+DlgLnkUpload		: "Šalji",
+DlgLnkBtnUpload		: "Šalji na server",
+
+DlgLnkTarget		: "Prozor",
+DlgLnkTargetFrame	: "<frejm>",
+DlgLnkTargetPopup	: "<popup prozor>",
+DlgLnkTargetBlank	: "Novi prozor (_blank)",
+DlgLnkTargetParent	: "Glavni prozor (_parent)",
+DlgLnkTargetSelf	: "Isti prozor (_self)",
+DlgLnkTargetTop		: "Najgornji prozor (_top)",
+DlgLnkTargetFrameName	: "Target Frame Name",	//MISSING
+DlgLnkPopWinName	: "Naziv popup prozora",
+DlgLnkPopWinFeat	: "Moguænosti popup prozora",
+DlgLnkPopResize		: "Promjenljive velièine",
+DlgLnkPopLocation	: "Traka za lokaciju",
+DlgLnkPopMenu		: "Izborna traka",
+DlgLnkPopScroll		: "Scroll traka",
+DlgLnkPopStatus		: "Statusna traka",
+DlgLnkPopToolbar	: "Traka sa alatima",
+DlgLnkPopFullScrn	: "Cijeli ekran (IE)",
+DlgLnkPopDependent	: "Ovisno (Netscape)",
+DlgLnkPopWidth		: "Širina",
+DlgLnkPopHeight		: "Visina",
+DlgLnkPopLeft		: "Lijeva pozicija",
+DlgLnkPopTop		: "Gornja pozicija",
+
+DlnLnkMsgNoUrl		: "Molimo ukucajte URL link",
+DlnLnkMsgNoEMail	: "Molimo ukucajte e-mail adresu",
+DlnLnkMsgNoAnchor	: "Molimo izaberite sidro",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Izaberi boju",
+DlgColorBtnClear	: "Oèisti",
+DlgColorHighlight	: "Igled",
+DlgColorSelected	: "Selektovana",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Ubaci smješka",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Izaberi specijalni karakter",
+
+// Table Dialog
+DlgTableTitle		: "Svojstva tabele",
+DlgTableRows		: "Redova",
+DlgTableColumns		: "Kolona",
+DlgTableBorder		: "Okvir",
+DlgTableAlign		: "Poravnanje",
+DlgTableAlignNotSet	: "<Nije podešeno>",
+DlgTableAlignLeft	: "Lijevo",
+DlgTableAlignCenter	: "Centar",
+DlgTableAlignRight	: "Desno",
+DlgTableWidth		: "Širina",
+DlgTableWidthPx		: "piksela",
+DlgTableWidthPc		: "posto",
+DlgTableHeight		: "Visina",
+DlgTableCellSpace	: "Razmak æelija",
+DlgTableCellPad		: "Uvod æelija",
+DlgTableCaption		: "Naslov",
+DlgTableSummary		: "Summary",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "Svojstva æelije",
+DlgCellWidth		: "Širina",
+DlgCellWidthPx		: "piksela",
+DlgCellWidthPc		: "posto",
+DlgCellHeight		: "Visina",
+DlgCellWordWrap		: "Vrapuj tekst",
+DlgCellWordWrapNotSet	: "<Nije podešeno>",
+DlgCellWordWrapYes	: "Da",
+DlgCellWordWrapNo	: "Ne",
+DlgCellHorAlign		: "Horizontalno poravnanje",
+DlgCellHorAlignNotSet	: "<Nije podešeno>",
+DlgCellHorAlignLeft	: "Lijevo",
+DlgCellHorAlignCenter	: "Centar",
+DlgCellHorAlignRight: "Desno",
+DlgCellVerAlign		: "Vertikalno poravnanje",
+DlgCellVerAlignNotSet	: "<Nije podešeno>",
+DlgCellVerAlignTop	: "Gore",
+DlgCellVerAlignMiddle	: "Sredina",
+DlgCellVerAlignBottom	: "Dno",
+DlgCellVerAlignBaseline	: "Bazno",
+DlgCellRowSpan		: "Spajanje æelija",
+DlgCellCollSpan		: "Spajanje kolona",
+DlgCellBackColor	: "Boja pozadine",
+DlgCellBorderColor	: "Boja okvira",
+DlgCellBtnSelect	: "Selektuj...",
+
+// Find Dialog
+DlgFindTitle		: "Naði",
+DlgFindFindBtn		: "Naði",
+DlgFindNotFoundMsg	: "Traženi tekst nije pronaðen.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Zamjeni",
+DlgReplaceFindLbl		: "Naði šta:",
+DlgReplaceReplaceLbl	: "Zamjeni sa:",
+DlgReplaceCaseChk		: "Uporeðuj velika/mala slova",
+DlgReplaceReplaceBtn	: "Zamjeni",
+DlgReplaceReplAllBtn	: "Zamjeni sve",
+DlgReplaceWordChk		: "Uporeðuj samo cijelu rijeè",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog lijepljenja. Molimo koristite kraticu na tastaturi (Ctrl+V).",
+PasteErrorCut	: "Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl+X).",
+PasteErrorCopy	: "Sigurnosne postavke Vašeg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl+C).",
+
+PasteAsText		: "Zalijepi kao obièan tekst",
+PasteFromWord	: "Zalijepi iz Word-a",
+
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",	//MISSING
+DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
+DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
+DlgPasteCleanBox		: "Clean Up Box",	//MISSING
+
+// Color Picker
+ColorAutomatic	: "Automatska",
+ColorMoreColors	: "Više boja...",
+
+// Document Properties
+DocProps		: "Document Properties",	//MISSING
+
+// Anchor Dialog
+DlgAnchorTitle		: "Anchor Properties",	//MISSING
+DlgAnchorName		: "Anchor Name",	//MISSING
+DlgAnchorErrorName	: "Please type the anchor name",	//MISSING
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Not in dictionary",	//MISSING
+DlgSpellChangeTo		: "Change to",	//MISSING
+DlgSpellBtnIgnore		: "Ignore",	//MISSING
+DlgSpellBtnIgnoreAll	: "Ignore All",	//MISSING
+DlgSpellBtnReplace		: "Replace",	//MISSING
+DlgSpellBtnReplaceAll	: "Replace All",	//MISSING
+DlgSpellBtnUndo			: "Undo",	//MISSING
+DlgSpellNoSuggestions	: "- No suggestions -",	//MISSING
+DlgSpellProgress		: "Spell check in progress...",	//MISSING
+DlgSpellNoMispell		: "Spell check complete: No misspellings found",	//MISSING
+DlgSpellNoChanges		: "Spell check complete: No words changed",	//MISSING
+DlgSpellOneChange		: "Spell check complete: One word changed",	//MISSING
+DlgSpellManyChanges		: "Spell check complete: %1 words changed",	//MISSING
+
+IeSpellDownload			: "Spell checker not installed. Do you want to download it now?",	//MISSING
+
+// Button Dialog
+DlgButtonText		: "Text (Value)",	//MISSING
+DlgButtonType		: "Type",	//MISSING
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Name",	//MISSING
+DlgCheckboxValue	: "Value",	//MISSING
+DlgCheckboxSelected	: "Selected",	//MISSING
+
+// Form Dialog
+DlgFormName		: "Name",	//MISSING
+DlgFormAction	: "Action",	//MISSING
+DlgFormMethod	: "Method",	//MISSING
+
+// Select Field Dialog
+DlgSelectName		: "Name",	//MISSING
+DlgSelectValue		: "Value",	//MISSING
+DlgSelectSize		: "Size",	//MISSING
+DlgSelectLines		: "lines",	//MISSING
+DlgSelectChkMulti	: "Allow multiple selections",	//MISSING
+DlgSelectOpAvail	: "Available Options",	//MISSING
+DlgSelectOpText		: "Text",	//MISSING
+DlgSelectOpValue	: "Value",	//MISSING
+DlgSelectBtnAdd		: "Add",	//MISSING
+DlgSelectBtnModify	: "Modify",	//MISSING
+DlgSelectBtnUp		: "Up",	//MISSING
+DlgSelectBtnDown	: "Down",	//MISSING
+DlgSelectBtnSetValue : "Set as selected value",	//MISSING
+DlgSelectBtnDelete	: "Delete",	//MISSING
+
+// Textarea Dialog
+DlgTextareaName	: "Name",	//MISSING
+DlgTextareaCols	: "Columns",	//MISSING
+DlgTextareaRows	: "Rows",	//MISSING
+
+// Text Field Dialog
+DlgTextName			: "Name",	//MISSING
+DlgTextValue		: "Value",	//MISSING
+DlgTextCharWidth	: "Character Width",	//MISSING
+DlgTextMaxChars		: "Maximum Characters",	//MISSING
+DlgTextType			: "Type",	//MISSING
+DlgTextTypeText		: "Text",	//MISSING
+DlgTextTypePass		: "Password",	//MISSING
+
+// Hidden Field Dialog
+DlgHiddenName	: "Name",	//MISSING
+DlgHiddenValue	: "Value",	//MISSING
+
+// Bulleted List Dialog
+BulletedListProp	: "Bulleted List Properties",	//MISSING
+NumberedListProp	: "Numbered List Properties",	//MISSING
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Type",	//MISSING
+DlgLstTypeCircle	: "Circle",	//MISSING
+DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeSquare	: "Square",	//MISSING
+DlgLstTypeNumbers	: "Numbers (1, 2, 3)",	//MISSING
+DlgLstTypeLCase		: "Lowercase Letters (a, b, c)",	//MISSING
+DlgLstTypeUCase		: "Uppercase Letters (A, B, C)",	//MISSING
+DlgLstTypeSRoman	: "Small Roman Numerals (i, ii, iii)",	//MISSING
+DlgLstTypeLRoman	: "Large Roman Numerals (I, II, III)",	//MISSING
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "General",	//MISSING
+DlgDocBackTab		: "Background",	//MISSING
+DlgDocColorsTab		: "Colors and Margins",	//MISSING
+DlgDocMetaTab		: "Meta Data",	//MISSING
+
+DlgDocPageTitle		: "Page Title",	//MISSING
+DlgDocLangDir		: "Language Direction",	//MISSING
+DlgDocLangDirLTR	: "Left to Right (LTR)",	//MISSING
+DlgDocLangDirRTL	: "Right to Left (RTL)",	//MISSING
+DlgDocLangCode		: "Language Code",	//MISSING
+DlgDocCharSet		: "Character Set Encoding",	//MISSING
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Other Character Set Encoding",	//MISSING
+
+DlgDocDocType		: "Document Type Heading",	//MISSING
+DlgDocDocTypeOther	: "Other Document Type Heading",	//MISSING
+DlgDocIncXHTML		: "Include XHTML Declarations",	//MISSING
+DlgDocBgColor		: "Background Color",	//MISSING
+DlgDocBgImage		: "Background Image URL",	//MISSING
+DlgDocBgNoScroll	: "Nonscrolling Background",	//MISSING
+DlgDocCText			: "Text",	//MISSING
+DlgDocCLink			: "Link",	//MISSING
+DlgDocCVisited		: "Visited Link",	//MISSING
+DlgDocCActive		: "Active Link",	//MISSING
+DlgDocMargins		: "Page Margins",	//MISSING
+DlgDocMaTop			: "Top",	//MISSING
+DlgDocMaLeft		: "Left",	//MISSING
+DlgDocMaRight		: "Right",	//MISSING
+DlgDocMaBottom		: "Bottom",	//MISSING
+DlgDocMeIndex		: "Document Indexing Keywords (comma separated)",	//MISSING
+DlgDocMeDescr		: "Document Description",	//MISSING
+DlgDocMeAuthor		: "Author",	//MISSING
+DlgDocMeCopy		: "Copyright",	//MISSING
+DlgDocPreview		: "Preview",	//MISSING
+
+// Templates Dialog
+Templates			: "Templates",	//MISSING
+DlgTemplatesTitle	: "Content Templates",	//MISSING
+DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",	//MISSING
+DlgTemplatesLoading	: "Loading templates list. Please wait...",	//MISSING
+DlgTemplatesNoTpl	: "(No templates defined)",	//MISSING
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "About",	//MISSING
+DlgAboutBrowserInfoTab	: "Browser Info",	//MISSING
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "verzija",
+DlgAboutLicense		: "Licencirano pod uslovima GNU Lesser General Public License",
+DlgAboutInfo		: "Za više informacija posjetite"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/cs.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/cs.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/cs.js	(revision 389)
@@ -0,0 +1,503 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: cs.js
+ * 	Czech language file.
+ * 
+ * File Authors:
+ * 		David Horák (david.horak@email.cz)
+ * 		Petr Plavjaník (plavjanik@gmail.com)
+ * 		Dave MacBlack (davemacblack@users.sourceforge.net)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Skrýt panel nástrojů",
+ToolbarExpand		: "Zobrazit panel nástrojů",
+
+// Toolbar Items and Context Menu
+Save				: "Uložit",
+NewPage				: "Nová stránka",
+Preview				: "Náhled",
+Cut					: "Vyjmout",
+Copy				: "Kopírovat",
+Paste				: "Vložit",
+PasteText			: "Vložit jako čistý text",
+PasteWord			: "Vložit z Wordu",
+Print				: "Tisk",
+SelectAll			: "Vybrat vše",
+RemoveFormat		: "Odstranit formátování",
+InsertLinkLbl		: "Odkaz",
+InsertLink			: "Vložit/změnit odkaz",
+RemoveLink			: "Odstranit odkaz",
+Anchor				: "Vložít/změnit záložku",
+InsertImageLbl		: "Obrázek",
+InsertImage			: "Vložit/změnit obrázek",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Vložit/Upravit Flash",
+InsertTableLbl		: "Tabulka",
+InsertTable			: "Vložit/změnit tabulku",
+InsertLineLbl		: "Linka",
+InsertLine			: "Vložit vodorovnou linku",
+InsertSpecialCharLbl: "Speciální znaky",
+InsertSpecialChar	: "Vložit speciální znaky",
+InsertSmileyLbl		: "Smajlíky",
+InsertSmiley		: "Vložit smajlík",
+About				: "O aplikaci FCKeditor",
+Bold				: "Tučné",
+Italic				: "Kurzíva",
+Underline			: "Podtržené",
+StrikeThrough		: "Přeškrtnuté",
+Subscript			: "Dolní index",
+Superscript			: "Horní index",
+LeftJustify			: "Zarovnat vlevo",
+CenterJustify		: "Zarovnat na střed",
+RightJustify		: "Zarovnat vpravo",
+BlockJustify		: "Zarovnat do bloku",
+DecreaseIndent		: "Zmenšit odsazení",
+IncreaseIndent		: "Zvětšit odsazení",
+Undo				: "Zpět",
+Redo				: "Znovu",
+NumberedListLbl		: "Číslování",
+NumberedList		: "Vložit/odstranit číslovaný seznam",
+BulletedListLbl		: "Odrážky",
+BulletedList		: "Vložit/odstranit odrážky",
+ShowTableBorders	: "Zobrazit okraje tabulek",
+ShowDetails			: "Zobrazit podrobnosti",
+Style				: "Styl",
+FontFormat			: "Formát",
+Font				: "Písmo",
+FontSize			: "Velikost",
+TextColor			: "Barva textu",
+BGColor				: "Barva pozadí",
+Source				: "Zdroj",
+Find				: "Hledat",
+Replace				: "Nahradit",
+SpellCheck			: "Zkontrolovat pravopis",
+UniversalKeyboard	: "Univerzální klávesnice",
+PageBreakLbl		: "Konec stránky",
+PageBreak			: "Vložit konec stránky",
+
+Form			: "Formulář",
+Checkbox		: "Zaškrtávací políčko",
+RadioButton		: "Přepínač",
+TextField		: "Textové pole",
+Textarea		: "Textová oblast",
+HiddenField		: "Skryté pole",
+Button			: "Tlačítko",
+SelectionField	: "Seznam",
+ImageButton		: "Obrázkové tlačítko",
+
+FitWindow		: "Maximalizovat velikost editoru",
+
+// Context Menu
+EditLink			: "Změnit odkaz",
+CellCM				: "Buňka",
+RowCM				: "Řádek",
+ColumnCM			: "Sloupec",
+InsertRow			: "Vložit řádek",
+DeleteRows			: "Smazat řádek",
+InsertColumn		: "Vložit sloupec",
+DeleteColumns		: "Smazat sloupec",
+InsertCell			: "Vložit buňku",
+DeleteCells			: "Smazat buňky",
+MergeCells			: "Sloučit buňky",
+SplitCell			: "Rozdělit buňku",
+TableDelete			: "Smazat tabulku",
+CellProperties		: "Vlastnosti buňky",
+TableProperties		: "Vlastnosti tabulky",
+ImageProperties		: "Vlastnosti obrázku",
+FlashProperties		: "Vlastnosti Flashe",
+
+AnchorProp			: "Vlastnosti záložky",
+ButtonProp			: "Vlastnosti tlačítka",
+CheckboxProp		: "Vlastnosti zaškrtávacího políčka",
+HiddenFieldProp		: "Vlastnosti skrytého pole",
+RadioButtonProp		: "Vlastnosti přepínače",
+ImageButtonProp		: "Vlastností obrázkového tlačítka",
+TextFieldProp		: "Vlastnosti textového pole",
+SelectionFieldProp	: "Vlastnosti seznamu",
+TextareaProp		: "Vlastnosti textové oblasti",
+FormProp			: "Vlastnosti formuláře",
+
+FontFormats			: "Normální;Formátovaný;Adresa;Nadpis 1;Nadpis 2;Nadpis 3;Nadpis 4;Nadpis 5;Nadpis 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Probíhá zpracování XHTML. Prosím čekejte...",
+Done				: "Hotovo",
+PasteWordConfirm	: "Jak je vidět, vkládaný text je kopírován z Wordu. Chcete jej před vložením vyčistit?",
+NotCompatiblePaste	: "Tento příkaz je dostupný pouze v Internet Exploreru verze 5.5 nebo vyšší. Chcete vložit text bez vyčištění?",
+UnknownToolbarItem	: "Neznámá položka panelu nástrojů \"%1\"",
+UnknownCommand		: "Neznámý příkaz \"%1\"",
+NotImplemented		: "Příkaz není implementován",
+UnknownToolbarSet	: "Panel nástrojů \"%1\" neexistuje",
+NoActiveX			: "Nastavení bezpečnosti Vašeho prohlížeče omezuje funkčnost některých jeho možností. Je třeba zapnout volbu \"Spouštět ovládáací prvky ActiveX a moduly plug-in\", jinak nebude možné využívat všechny dosputné schopnosti editoru.",
+BrowseServerBlocked : "Průzkumník zdrojů nelze otevřít. Prověřte, zda nemáte aktivováno blokování popup oken.",
+DialogBlocked		: "Nelze otevřít dialogové okno. Prověřte, zda nemáte aktivováno blokování popup oken.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Storno",
+DlgBtnClose			: "Zavřít",
+DlgBtnBrowseServer	: "Vybrat na serveru",
+DlgAdvancedTag		: "Rozšířené",
+DlgOpOther			: "<Ostatní>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Prosím vložte URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nenastaveno>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Orientace jazyka",
+DlgGenLangDirLtr	: "Zleva do prava (LTR)",
+DlgGenLangDirRtl	: "Zprava do leva (RTL)",
+DlgGenLangCode		: "Kód jazyka",
+DlgGenAccessKey		: "Přístupový klíč",
+DlgGenName			: "Jméno",
+DlgGenTabIndex		: "Pořadí prvku",
+DlgGenLongDescr		: "Dlouhý popis URL",
+DlgGenClass			: "Třída stylu",
+DlgGenTitle			: "Pomocný titulek",
+DlgGenContType		: "Pomocný typ obsahu",
+DlgGenLinkCharset	: "Přiřazená znaková sada",
+DlgGenStyle			: "Styl",
+
+// Image Dialog
+DlgImgTitle			: "Vlastnosti obrázku",
+DlgImgInfoTab		: "Informace o obrázku",
+DlgImgBtnUpload		: "Odeslat na server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Odeslat",
+DlgImgAlt			: "Alternativní text",
+DlgImgWidth			: "Šířka",
+DlgImgHeight		: "Výška",
+DlgImgLockRatio		: "Zámek",
+DlgBtnResetSize		: "Původní velikost",
+DlgImgBorder		: "Okraje",
+DlgImgHSpace		: "H-mezera",
+DlgImgVSpace		: "V-mezera",
+DlgImgAlign			: "Zarovnání",
+DlgImgAlignLeft		: "Vlevo",
+DlgImgAlignAbsBottom: "Zcela dolů",
+DlgImgAlignAbsMiddle: "Doprostřed",
+DlgImgAlignBaseline	: "Na účaří",
+DlgImgAlignBottom	: "Dolů",
+DlgImgAlignMiddle	: "Na střed",
+DlgImgAlignRight	: "Vpravo",
+DlgImgAlignTextTop	: "Na horní okraj textu",
+DlgImgAlignTop		: "Nahoru",
+DlgImgPreview		: "Náhled",
+DlgImgAlertUrl		: "Zadejte prosím URL obrázku",
+DlgImgLinkTab		: "Odkaz",
+
+// Flash Dialog
+DlgFlashTitle		: "Vlastnosti Flashe",
+DlgFlashChkPlay		: "Automatické spuštění",
+DlgFlashChkLoop		: "Opakování",
+DlgFlashChkMenu		: "Nabídka Flash",
+DlgFlashScale		: "Zobrazit",
+DlgFlashScaleAll	: "Zobrazit vše",
+DlgFlashScaleNoBorder	: "Bez okraje",
+DlgFlashScaleFit	: "Přizpůsobit",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Odkaz",
+DlgLnkInfoTab		: "Informace o odkazu",
+DlgLnkTargetTab		: "Cíl",
+
+DlgLnkType			: "Typ odkazu",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Kotva v této stránce",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<jiný>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Vybrat kotvu",
+DlgLnkAnchorByName	: "Podle jména kotvy",
+DlgLnkAnchorById	: "Podle Id objektu",
+DlgLnkNoAnchors		: "<Ve stránce žádná kotva není definována>",
+DlgLnkEMail			: "E-Mailová adresa",
+DlgLnkEMailSubject	: "Předmět zprávy",
+DlgLnkEMailBody		: "Tělo zprávy",
+DlgLnkUpload		: "Odeslat",
+DlgLnkBtnUpload		: "Odeslat na Server",
+
+DlgLnkTarget		: "Cíl",
+DlgLnkTargetFrame	: "<rámec>",
+DlgLnkTargetPopup	: "<vyskakovací okno>",
+DlgLnkTargetBlank	: "Nové okno (_blank)",
+DlgLnkTargetParent	: "Rodičovské okno (_parent)",
+DlgLnkTargetSelf	: "Stejné okno (_self)",
+DlgLnkTargetTop		: "Hlavní okno (_top)",
+DlgLnkTargetFrameName	: "Název cílového rámu",
+DlgLnkPopWinName	: "Název vyskakovacího okna",
+DlgLnkPopWinFeat	: "Vlastnosti vyskakovacího okna",
+DlgLnkPopResize		: "Měnitelná velikost",
+DlgLnkPopLocation	: "Panel umístění",
+DlgLnkPopMenu		: "Panel nabídky",
+DlgLnkPopScroll		: "Posuvníky",
+DlgLnkPopStatus		: "Stavový řádek",
+DlgLnkPopToolbar	: "Panel nástrojů",
+DlgLnkPopFullScrn	: "Celá obrazovka (IE)",
+DlgLnkPopDependent	: "Závislost (Netscape)",
+DlgLnkPopWidth		: "Šířka",
+DlgLnkPopHeight		: "Výška",
+DlgLnkPopLeft		: "Levý okraj",
+DlgLnkPopTop		: "Horní okraj",
+
+DlnLnkMsgNoUrl		: "Zadejte prosím URL odkazu",
+DlnLnkMsgNoEMail	: "Zadejte prosím e-mailovou adresu",
+DlnLnkMsgNoAnchor	: "Vyberte prosím kotvu",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Výběr barvy",
+DlgColorBtnClear	: "Vymazat",
+DlgColorHighlight	: "Zvýrazněná",
+DlgColorSelected	: "Vybraná",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Vkládání smajlíků",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Výběr speciálního znaku",
+
+// Table Dialog
+DlgTableTitle		: "Vlastnosti tabulky",
+DlgTableRows		: "Řádky",
+DlgTableColumns		: "Sloupce",
+DlgTableBorder		: "Ohraničení",
+DlgTableAlign		: "Zarovnání",
+DlgTableAlignNotSet	: "<nenastaveno>",
+DlgTableAlignLeft	: "Vlevo",
+DlgTableAlignCenter	: "Na střed",
+DlgTableAlignRight	: "Vpravo",
+DlgTableWidth		: "Šířka",
+DlgTableWidthPx		: "bodů",
+DlgTableWidthPc		: "procent",
+DlgTableHeight		: "Výška",
+DlgTableCellSpace	: "Vzdálenost buněk",
+DlgTableCellPad		: "Odsazení obsahu",
+DlgTableCaption		: "Popis",
+DlgTableSummary		: "Souhrn",
+
+// Table Cell Dialog
+DlgCellTitle		: "Vlastnosti buňky",
+DlgCellWidth		: "Šířka",
+DlgCellWidthPx		: "bodů",
+DlgCellWidthPc		: "procent",
+DlgCellHeight		: "Výška",
+DlgCellWordWrap		: "Zalamování",
+DlgCellWordWrapNotSet	: "<nenanstaveno>",
+DlgCellWordWrapYes	: "Ano",
+DlgCellWordWrapNo	: "Ne",
+DlgCellHorAlign		: "Vodorovné zarovnání",
+DlgCellHorAlignNotSet	: "<nenastaveno>",
+DlgCellHorAlignLeft	: "Vlevo",
+DlgCellHorAlignCenter	: "Na střed",
+DlgCellHorAlignRight: "Vpravo",
+DlgCellVerAlign		: "Svislé zarovnání",
+DlgCellVerAlignNotSet	: "<nenastaveno>",
+DlgCellVerAlignTop	: "Nahoru",
+DlgCellVerAlignMiddle	: "Doprostřed",
+DlgCellVerAlignBottom	: "Dolů",
+DlgCellVerAlignBaseline	: "Na účaří",
+DlgCellRowSpan		: "Sloučené řádky",
+DlgCellCollSpan		: "Sloučené sloupce",
+DlgCellBackColor	: "Barva pozadí",
+DlgCellBorderColor	: "Barva ohraničení",
+DlgCellBtnSelect	: "Výběr...",
+
+// Find Dialog
+DlgFindTitle		: "Hledat",
+DlgFindFindBtn		: "Hledat",
+DlgFindNotFoundMsg	: "Hledaný text nebyl nalezen.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Nahradit",
+DlgReplaceFindLbl		: "Co hledat:",
+DlgReplaceReplaceLbl	: "Čím nahradit:",
+DlgReplaceCaseChk		: "Rozlišovat velikost písma",
+DlgReplaceReplaceBtn	: "Nahradit",
+DlgReplaceReplAllBtn	: "Nahradit vše",
+DlgReplaceWordChk		: "Pouze celá slova",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Bezpečnostní nastavení Vašeho prohlížeče nedovolují editoru spustit funkci pro vložení textu ze schránky. Prosím vložte text ze schránky pomocí klávesnice (Ctrl+V).",
+PasteErrorCut	: "Bezpečnostní nastavení Vašeho prohlížeče nedovolují editoru spustit funkci pro vyjmutí zvoleného textu do schránky. Prosím vyjměte zvolený text do schránky pomocí klávesnice (Ctrl+X).",
+PasteErrorCopy	: "Bezpečnostní nastavení Vašeho prohlížeče nedovolují editoru spustit funkci pro kopírování zvoleného textu do schránky. Prosím zkopírujte zvolený text do schránky pomocí klávesnice (Ctrl+C).",
+
+PasteAsText		: "Vložit jako čistý text",
+PasteFromWord	: "Vložit text z Wordu",
+
+DlgPasteMsg2	: "Do následujícího pole vložte požadovaný obsah pomocí klávesnice (<STRONG>Ctrl+V</STRONG>) a stiskněte <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignorovat písmo",
+DlgPasteRemoveStyles	: "Odstranit styly",
+DlgPasteCleanBox		: "Vyčistit",
+
+// Color Picker
+ColorAutomatic	: "Automaticky",
+ColorMoreColors	: "Více barev...",
+
+// Document Properties
+DocProps		: "Vlastnosti dokumentu",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Vlastnosti záložky",
+DlgAnchorName		: "Název záložky",
+DlgAnchorErrorName	: "Zadejte prosím název záložky",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Není ve slovníku",
+DlgSpellChangeTo		: "Změnit na",
+DlgSpellBtnIgnore		: "Přeskočit",
+DlgSpellBtnIgnoreAll	: "Přeskakovat vše",
+DlgSpellBtnReplace		: "Zaměnit",
+DlgSpellBtnReplaceAll	: "Zaměňovat vše",
+DlgSpellBtnUndo			: "Zpět",
+DlgSpellNoSuggestions	: "- žádné návrhy -",
+DlgSpellProgress		: "Probíhá kontrola pravopisu...",
+DlgSpellNoMispell		: "Kontrola pravopisu dokončena: Žádné pravopisné chyby nenalezeny",
+DlgSpellNoChanges		: "Kontrola pravopisu dokončena: Beze změn",
+DlgSpellOneChange		: "Kontrola pravopisu dokončena: Jedno slovo změněno",
+DlgSpellManyChanges		: "Kontrola pravopisu dokončena: %1 slov změněno",
+
+IeSpellDownload			: "Kontrola pravopisu není nainstalována. Chcete ji nyní stáhnout?",
+
+// Button Dialog
+DlgButtonText		: "Popisek",
+DlgButtonType		: "Typ",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Název",
+DlgCheckboxValue	: "Hodnota",
+DlgCheckboxSelected	: "Zaškrtnuto",
+
+// Form Dialog
+DlgFormName		: "Název",
+DlgFormAction	: "Akce",
+DlgFormMethod	: "Metoda",
+
+// Select Field Dialog
+DlgSelectName		: "Název",
+DlgSelectValue		: "Hodnota",
+DlgSelectSize		: "Velikost",
+DlgSelectLines		: "Řádků",
+DlgSelectChkMulti	: "Povolit mnohonásobné výběry",
+DlgSelectOpAvail	: "Dostupná nastavení",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Hodnota",
+DlgSelectBtnAdd		: "Přidat",
+DlgSelectBtnModify	: "Změnit",
+DlgSelectBtnUp		: "Nahoru",
+DlgSelectBtnDown	: "Dolů",
+DlgSelectBtnSetValue : "Nastavit jako vybranou hodnotu",
+DlgSelectBtnDelete	: "Smazat",
+
+// Textarea Dialog
+DlgTextareaName	: "Název",
+DlgTextareaCols	: "Sloupců",
+DlgTextareaRows	: "Řádků",
+
+// Text Field Dialog
+DlgTextName			: "Název",
+DlgTextValue		: "Hodnota",
+DlgTextCharWidth	: "Šířka ve znacích",
+DlgTextMaxChars		: "Maximální počet znaků",
+DlgTextType			: "Typ",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "Heslo",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Název",
+DlgHiddenValue	: "Hodnota",
+
+// Bulleted List Dialog
+BulletedListProp	: "Vlastnosti odrážek",
+NumberedListProp	: "Vlastnosti číslovaného seznamu",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Typ",
+DlgLstTypeCircle	: "Kružnice",
+DlgLstTypeDisc		: "Kruh",
+DlgLstTypeSquare	: "Čtverec",
+DlgLstTypeNumbers	: "Čísla (1, 2, 3)",
+DlgLstTypeLCase		: "Malá písmena (a, b, c)",
+DlgLstTypeUCase		: "Velká písmena (A, B, C)",
+DlgLstTypeSRoman	: "Malé římská číslice (i, ii, iii)",
+DlgLstTypeLRoman	: "Velké římské číslice (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Obecné",
+DlgDocBackTab		: "Pozadí",
+DlgDocColorsTab		: "Barvy a okraje",
+DlgDocMetaTab		: "Metadata",
+
+DlgDocPageTitle		: "Titulek stránky",
+DlgDocLangDir		: "Směr jazyku",
+DlgDocLangDirLTR	: "Zleva do prava ",
+DlgDocLangDirRTL	: "Zprava doleva",
+DlgDocLangCode		: "Kód jazyku",
+DlgDocCharSet		: "Znaková sada",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Další znaková sada",
+
+DlgDocDocType		: "Typ dokumentu",
+DlgDocDocTypeOther	: "Jiný typ dokumetu",
+DlgDocIncXHTML		: "Zahrnou deklarace XHTML",
+DlgDocBgColor		: "Barva pozadí",
+DlgDocBgImage		: "URL obrázku na pozadí",
+DlgDocBgNoScroll	: "Nerolovatelné pozadí",
+DlgDocCText			: "Text",
+DlgDocCLink			: "Odkaz",
+DlgDocCVisited		: "Navštívený odkaz",
+DlgDocCActive		: "Vybraný odkaz",
+DlgDocMargins		: "Okraje stránky",
+DlgDocMaTop			: "Horní",
+DlgDocMaLeft		: "Levý",
+DlgDocMaRight		: "Pravý",
+DlgDocMaBottom		: "Dolní",
+DlgDocMeIndex		: "Klíčová slova (oddělená čárkou)",
+DlgDocMeDescr		: "Popis dokumentu",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Autorská práva",
+DlgDocPreview		: "Náhled",
+
+// Templates Dialog
+Templates			: "Šablony",
+DlgTemplatesTitle	: "Šablony obsahu",
+DlgTemplatesSelMsg	: "Prosím zvolte šablonu pro otevření v editoru<br>(aktuální obsah editoru bude ztracen):",
+DlgTemplatesLoading	: "Nahrávám přeheld šablon. Prosím čekejte...",
+DlgTemplatesNoTpl	: "(Není definována žádná šablona)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "O aplikaci",
+DlgAboutBrowserInfoTab	: "Informace o prohlížeči",
+DlgAboutLicenseTab	: "Licence",
+DlgAboutVersion		: "verze",
+DlgAboutLicense		: "Licencováno pod GNU Lesser General Public License",
+DlgAboutInfo		: "Více informací získáte na"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/en-au.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/en-au.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/en-au.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: en-au.js
+ * 	English (Australia) language file.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ * 		Christopher Dawes (fckeditor@dawes.id.au)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Collapse Toolbar",
+ToolbarExpand		: "Expand Toolbar",
+
+// Toolbar Items and Context Menu
+Save				: "Save",
+NewPage				: "New Page",
+Preview				: "Preview",
+Cut					: "Cut",
+Copy				: "Copy",
+Paste				: "Paste",
+PasteText			: "Paste as plain text",
+PasteWord			: "Paste from Word",
+Print				: "Print",
+SelectAll			: "Select All",
+RemoveFormat		: "Remove Format",
+InsertLinkLbl		: "Link",
+InsertLink			: "Insert/Edit Link",
+RemoveLink			: "Remove Link",
+Anchor				: "Insert/Edit Anchor",
+InsertImageLbl		: "Image",
+InsertImage			: "Insert/Edit Image",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Insert/Edit Flash",
+InsertTableLbl		: "Table",
+InsertTable			: "Insert/Edit Table",
+InsertLineLbl		: "Line",
+InsertLine			: "Insert Horizontal Line",
+InsertSpecialCharLbl: "Special Character",
+InsertSpecialChar	: "Insert Special Character",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Insert Smiley",
+About				: "About FCKeditor",
+Bold				: "Bold",
+Italic				: "Italic",
+Underline			: "Underline",
+StrikeThrough		: "Strike Through",
+Subscript			: "Subscript",
+Superscript			: "Superscript",
+LeftJustify			: "Left Justify",
+CenterJustify		: "Centre Justify",
+RightJustify		: "Right Justify",
+BlockJustify		: "Block Justify",
+DecreaseIndent		: "Decrease Indent",
+IncreaseIndent		: "Increase Indent",
+Undo				: "Undo",
+Redo				: "Redo",
+NumberedListLbl		: "Numbered List",
+NumberedList		: "Insert/Remove Numbered List",
+BulletedListLbl		: "Bulleted List",
+BulletedList		: "Insert/Remove Bulleted List",
+ShowTableBorders	: "Show Table Borders",
+ShowDetails			: "Show Details",
+Style				: "Style",
+FontFormat			: "Format",
+Font				: "Font",
+FontSize			: "Size",
+TextColor			: "Text Colour",
+BGColor				: "Background Colour",
+Source				: "Source",
+Find				: "Find",
+Replace				: "Replace",
+SpellCheck			: "Check Spelling",
+UniversalKeyboard	: "Universal Keyboard",
+PageBreakLbl		: "Page Break",
+PageBreak			: "Insert Page Break",
+
+Form			: "Form",
+Checkbox		: "Checkbox",
+RadioButton		: "Radio Button",
+TextField		: "Text Field",
+Textarea		: "Textarea",
+HiddenField		: "Hidden Field",
+Button			: "Button",
+SelectionField	: "Selection Field",
+ImageButton		: "Image Button",
+
+FitWindow		: "Maximize the editor size",
+
+// Context Menu
+EditLink			: "Edit Link",
+CellCM				: "Cell",
+RowCM				: "Row",
+ColumnCM			: "Column",
+InsertRow			: "Insert Row",
+DeleteRows			: "Delete Rows",
+InsertColumn		: "Insert Column",
+DeleteColumns		: "Delete Columns",
+InsertCell			: "Insert Cell",
+DeleteCells			: "Delete Cells",
+MergeCells			: "Merge Cells",
+SplitCell			: "Split Cell",
+TableDelete			: "Delete Table",
+CellProperties		: "Cell Properties",
+TableProperties		: "Table Properties",
+ImageProperties		: "Image Properties",
+FlashProperties		: "Flash Properties",
+
+AnchorProp			: "Anchor Properties",
+ButtonProp			: "Button Properties",
+CheckboxProp		: "Checkbox Properties",
+HiddenFieldProp		: "Hidden Field Properties",
+RadioButtonProp		: "Radio Button Properties",
+ImageButtonProp		: "Image Button Properties",
+TextFieldProp		: "Text Field Properties",
+SelectionFieldProp	: "Selection Field Properties",
+TextareaProp		: "Textarea Properties",
+FormProp			: "Form Properties",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Processing XHTML. Please wait...",
+Done				: "Done",
+PasteWordConfirm	: "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?",
+NotCompatiblePaste	: "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?",
+UnknownToolbarItem	: "Unknown toolbar item \"%1\"",
+UnknownCommand		: "Unknown command name \"%1\"",
+NotImplemented		: "Command not implemented",
+UnknownToolbarSet	: "Toolbar set \"%1\" doesn't exist",
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Cancel",
+DlgBtnClose			: "Close",
+DlgBtnBrowseServer	: "Browse Server",
+DlgAdvancedTag		: "Advanced",
+DlgOpOther			: "<Other>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Please insert the URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<not set>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Language Direction",
+DlgGenLangDirLtr	: "Left to Right (LTR)",
+DlgGenLangDirRtl	: "Right to Left (RTL)",
+DlgGenLangCode		: "Language Code",
+DlgGenAccessKey		: "Access Key",
+DlgGenName			: "Name",
+DlgGenTabIndex		: "Tab Index",
+DlgGenLongDescr		: "Long Description URL",
+DlgGenClass			: "Stylesheet Classes",
+DlgGenTitle			: "Advisory Title",
+DlgGenContType		: "Advisory Content Type",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Style",
+
+// Image Dialog
+DlgImgTitle			: "Image Properties",
+DlgImgInfoTab		: "Image Info",
+DlgImgBtnUpload		: "Send it to the Server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Upload",
+DlgImgAlt			: "Alternative Text",
+DlgImgWidth			: "Width",
+DlgImgHeight		: "Height",
+DlgImgLockRatio		: "Lock Ratio",
+DlgBtnResetSize		: "Reset Size",
+DlgImgBorder		: "Border",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Align",
+DlgImgAlignLeft		: "Left",
+DlgImgAlignAbsBottom: "Abs Bottom",
+DlgImgAlignAbsMiddle: "Abs Middle",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Bottom",
+DlgImgAlignMiddle	: "Middle",
+DlgImgAlignRight	: "Right",
+DlgImgAlignTextTop	: "Text Top",
+DlgImgAlignTop		: "Top",
+DlgImgPreview		: "Preview",
+DlgImgAlertUrl		: "Please type the image URL",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Properties",
+DlgFlashChkPlay		: "Auto Play",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "Enable Flash Menu",
+DlgFlashScale		: "Scale",
+DlgFlashScaleAll	: "Show all",
+DlgFlashScaleNoBorder	: "No Border",
+DlgFlashScaleFit	: "Exact Fit",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Link Info",
+DlgLnkTargetTab		: "Target",
+
+DlgLnkType			: "Link Type",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Link to anchor in the text",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocol",
+DlgLnkProtoOther	: "<other>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Select an Anchor",
+DlgLnkAnchorByName	: "By Anchor Name",
+DlgLnkAnchorById	: "By Element Id",
+DlgLnkNoAnchors		: "<No anchors available in the document>",
+DlgLnkEMail			: "E-Mail Address",
+DlgLnkEMailSubject	: "Message Subject",
+DlgLnkEMailBody		: "Message Body",
+DlgLnkUpload		: "Upload",
+DlgLnkBtnUpload		: "Send it to the Server",
+
+DlgLnkTarget		: "Target",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<popup window>",
+DlgLnkTargetBlank	: "New Window (_blank)",
+DlgLnkTargetParent	: "Parent Window (_parent)",
+DlgLnkTargetSelf	: "Same Window (_self)",
+DlgLnkTargetTop		: "Topmost Window (_top)",
+DlgLnkTargetFrameName	: "Target Frame Name",
+DlgLnkPopWinName	: "Popup Window Name",
+DlgLnkPopWinFeat	: "Popup Window Features",
+DlgLnkPopResize		: "Resizable",
+DlgLnkPopLocation	: "Location Bar",
+DlgLnkPopMenu		: "Menu Bar",
+DlgLnkPopScroll		: "Scroll Bars",
+DlgLnkPopStatus		: "Status Bar",
+DlgLnkPopToolbar	: "Toolbar",
+DlgLnkPopFullScrn	: "Full Screen (IE)",
+DlgLnkPopDependent	: "Dependent (Netscape)",
+DlgLnkPopWidth		: "Width",
+DlgLnkPopHeight		: "Height",
+DlgLnkPopLeft		: "Left Position",
+DlgLnkPopTop		: "Top Position",
+
+DlnLnkMsgNoUrl		: "Please type the link URL",
+DlnLnkMsgNoEMail	: "Please type the e-mail address",
+DlnLnkMsgNoAnchor	: "Please select an anchor",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",
+
+// Color Dialog
+DlgColorTitle		: "Select Colour",
+DlgColorBtnClear	: "Clear",
+DlgColorHighlight	: "Highlight",
+DlgColorSelected	: "Selected",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Insert a Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Select Special Character",
+
+// Table Dialog
+DlgTableTitle		: "Table Properties",
+DlgTableRows		: "Rows",
+DlgTableColumns		: "Columns",
+DlgTableBorder		: "Border size",
+DlgTableAlign		: "Alignment",
+DlgTableAlignNotSet	: "<Not set>",
+DlgTableAlignLeft	: "Left",
+DlgTableAlignCenter	: "Centre",
+DlgTableAlignRight	: "Right",
+DlgTableWidth		: "Width",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "percent",
+DlgTableHeight		: "Height",
+DlgTableCellSpace	: "Cell spacing",
+DlgTableCellPad		: "Cell padding",
+DlgTableCaption		: "Caption",
+DlgTableSummary		: "Summary",
+
+// Table Cell Dialog
+DlgCellTitle		: "Cell Properties",
+DlgCellWidth		: "Width",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "percent",
+DlgCellHeight		: "Height",
+DlgCellWordWrap		: "Word Wrap",
+DlgCellWordWrapNotSet	: "<Not set>",
+DlgCellWordWrapYes	: "Yes",
+DlgCellWordWrapNo	: "No",
+DlgCellHorAlign		: "Horizontal Alignment",
+DlgCellHorAlignNotSet	: "<Not set>",
+DlgCellHorAlignLeft	: "Left",
+DlgCellHorAlignCenter	: "Centre",
+DlgCellHorAlignRight: "Right",
+DlgCellVerAlign		: "Vertical Alignment",
+DlgCellVerAlignNotSet	: "<Not set>",
+DlgCellVerAlignTop	: "Top",
+DlgCellVerAlignMiddle	: "Middle",
+DlgCellVerAlignBottom	: "Bottom",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellRowSpan		: "Rows Span",
+DlgCellCollSpan		: "Columns Span",
+DlgCellBackColor	: "Background Colour",
+DlgCellBorderColor	: "Border Colour",
+DlgCellBtnSelect	: "Select...",
+
+// Find Dialog
+DlgFindTitle		: "Find",
+DlgFindFindBtn		: "Find",
+DlgFindNotFoundMsg	: "The specified text was not found.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Replace",
+DlgReplaceFindLbl		: "Find what:",
+DlgReplaceReplaceLbl	: "Replace with:",
+DlgReplaceCaseChk		: "Match case",
+DlgReplaceReplaceBtn	: "Replace",
+DlgReplaceReplAllBtn	: "Replace All",
+DlgReplaceWordChk		: "Match whole word",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Your browser security settings don't permit the editor to automatically execute pasting operations. Please use the keyboard for that (Ctrl+V).",
+PasteErrorCut	: "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",
+PasteErrorCopy	: "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",
+
+PasteAsText		: "Paste as Plain Text",
+PasteFromWord	: "Paste from Word",
+
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignore Font Face definitions",
+DlgPasteRemoveStyles	: "Remove Styles definitions",
+DlgPasteCleanBox		: "Clean Up Box",
+
+// Color Picker
+ColorAutomatic	: "Automatic",
+ColorMoreColors	: "More Colours...",
+
+// Document Properties
+DocProps		: "Document Properties",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Anchor Properties",
+DlgAnchorName		: "Anchor Name",
+DlgAnchorErrorName	: "Please type the anchor name",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Not in dictionary",
+DlgSpellChangeTo		: "Change to",
+DlgSpellBtnIgnore		: "Ignore",
+DlgSpellBtnIgnoreAll	: "Ignore All",
+DlgSpellBtnReplace		: "Replace",
+DlgSpellBtnReplaceAll	: "Replace All",
+DlgSpellBtnUndo			: "Undo",
+DlgSpellNoSuggestions	: "- No suggestions -",
+DlgSpellProgress		: "Spell check in progress...",
+DlgSpellNoMispell		: "Spell check complete: No misspellings found",
+DlgSpellNoChanges		: "Spell check complete: No words changed",
+DlgSpellOneChange		: "Spell check complete: One word changed",
+DlgSpellManyChanges		: "Spell check complete: %1 words changed",
+
+IeSpellDownload			: "Spell checker not installed. Do you want to download it now?",
+
+// Button Dialog
+DlgButtonText		: "Text (Value)",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Button",
+DlgButtonTypeSbm	: "Submit",
+DlgButtonTypeRst	: "Reset",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Name",
+DlgCheckboxValue	: "Value",
+DlgCheckboxSelected	: "Selected",
+
+// Form Dialog
+DlgFormName		: "Name",
+DlgFormAction	: "Action",
+DlgFormMethod	: "Method",
+
+// Select Field Dialog
+DlgSelectName		: "Name",
+DlgSelectValue		: "Value",
+DlgSelectSize		: "Size",
+DlgSelectLines		: "lines",
+DlgSelectChkMulti	: "Allow multiple selections",
+DlgSelectOpAvail	: "Available Options",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Value",
+DlgSelectBtnAdd		: "Add",
+DlgSelectBtnModify	: "Modify",
+DlgSelectBtnUp		: "Up",
+DlgSelectBtnDown	: "Down",
+DlgSelectBtnSetValue : "Set as selected value",
+DlgSelectBtnDelete	: "Delete",
+
+// Textarea Dialog
+DlgTextareaName	: "Name",
+DlgTextareaCols	: "Columns",
+DlgTextareaRows	: "Rows",
+
+// Text Field Dialog
+DlgTextName			: "Name",
+DlgTextValue		: "Value",
+DlgTextCharWidth	: "Character Width",
+DlgTextMaxChars		: "Maximum Characters",
+DlgTextType			: "Type",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "Password",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Name",
+DlgHiddenValue	: "Value",
+
+// Bulleted List Dialog
+BulletedListProp	: "Bulleted List Properties",
+NumberedListProp	: "Numbered List Properties",
+DlgLstStart			: "Start",
+DlgLstType			: "Type",
+DlgLstTypeCircle	: "Circle",
+DlgLstTypeDisc		: "Disc",
+DlgLstTypeSquare	: "Square",
+DlgLstTypeNumbers	: "Numbers (1, 2, 3)",
+DlgLstTypeLCase		: "Lowercase Letters (a, b, c)",
+DlgLstTypeUCase		: "Uppercase Letters (A, B, C)",
+DlgLstTypeSRoman	: "Small Roman Numerals (i, ii, iii)",
+DlgLstTypeLRoman	: "Large Roman Numerals (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "General",
+DlgDocBackTab		: "Background",
+DlgDocColorsTab		: "Colours and Margins",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Page Title",
+DlgDocLangDir		: "Language Direction",
+DlgDocLangDirLTR	: "Left to Right (LTR)",
+DlgDocLangDirRTL	: "Right to Left (RTL)",
+DlgDocLangCode		: "Language Code",
+DlgDocCharSet		: "Character Set Encoding",
+DlgDocCharSetCE		: "Central European",
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Greek",
+DlgDocCharSetJP		: "Japanese",
+DlgDocCharSetKR		: "Korean",
+DlgDocCharSetTR		: "Turkish",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Western European",
+DlgDocCharSetOther	: "Other Character Set Encoding",
+
+DlgDocDocType		: "Document Type Heading",
+DlgDocDocTypeOther	: "Other Document Type Heading",
+DlgDocIncXHTML		: "Include XHTML Declarations",
+DlgDocBgColor		: "Background Colour",
+DlgDocBgImage		: "Background Image URL",
+DlgDocBgNoScroll	: "Nonscrolling Background",
+DlgDocCText			: "Text",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Visited Link",
+DlgDocCActive		: "Active Link",
+DlgDocMargins		: "Page Margins",
+DlgDocMaTop			: "Top",
+DlgDocMaLeft		: "Left",
+DlgDocMaRight		: "Right",
+DlgDocMaBottom		: "Bottom",
+DlgDocMeIndex		: "Document Indexing Keywords (comma separated)",
+DlgDocMeDescr		: "Document Description",
+DlgDocMeAuthor		: "Author",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Preview",
+
+// Templates Dialog
+Templates			: "Templates",
+DlgTemplatesTitle	: "Content Templates",
+DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",
+DlgTemplatesLoading	: "Loading templates list. Please wait...",
+DlgTemplatesNoTpl	: "(No templates defined)",
+DlgTemplatesReplace	: "Replace actual contents",
+
+// About Dialog
+DlgAboutAboutTab	: "About",
+DlgAboutBrowserInfoTab	: "Browser Info",
+DlgAboutLicenseTab	: "License",
+DlgAboutVersion		: "version",
+DlgAboutLicense		: "Licensed under the terms of the GNU Lesser General Public License",
+DlgAboutInfo		: "For further information go to"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/km.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/km.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/km.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: km.js
+ * 	Khmer language file.
+ * 
+ * File Authors:
+ * 		Chay Sengtha (sengtha@e-khmer.com - http://translate.e-khmer.net)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "បង្រួមរបាឧបរកណ៍",
+ToolbarExpand		: "ពង្រីករបាឧបរណ៍",
+
+// Toolbar Items and Context Menu
+Save				: "រក្សាទុក",
+NewPage				: "ទំព័រថ្មី",
+Preview				: "មើលសាកល្បង",
+Cut					: "កាត់យក",
+Copy				: "ចំលងយក",
+Paste				: "ចំលងដាក់",
+PasteText			: "ចំលងដាក់ជាអត្ថបទធម្មតា",
+PasteWord			: "ចំលងដាក់ពី Word",
+Print				: "បោះពុម្ភ",
+SelectAll			: "ជ្រើសរើសទាំងអស់",
+RemoveFormat		: "លប់ចោល ការរចនា",
+InsertLinkLbl		: "ឈ្នាប់",
+InsertLink			: "បន្ថែម/កែប្រែ ឈ្នាប់",
+RemoveLink			: "លប់ឈ្នាប់",
+Anchor				: "បន្ថែម/កែប្រែ យុថ្កា",
+InsertImageLbl		: "រូបភាព",
+InsertImage			: "បន្ថែម/កែប្រែ រូបភាព",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "បន្ថែម/កែប្រែ Flash",
+InsertTableLbl		: "តារាង",
+InsertTable			: "បន្ថែម/កែប្រែ តារាង",
+InsertLineLbl		: "បន្ទាត់",
+InsertLine			: "បន្ថែមបន្ទាត់ផ្តេក",
+InsertSpecialCharLbl: "អក្សរពិសេស",
+InsertSpecialChar	: "បន្ថែមអក្សរពិសេស",
+InsertSmileyLbl		: "រូបភាព",
+InsertSmiley		: "បន្ថែម រូបភាព",
+About				: "អំពី FCKeditor",
+Bold				: "អក្សរដិតធំ",
+Italic				: "អក្សរផ្តេក",
+Underline			: "ដិតបន្ទាត់ពីក្រោមអក្សរ",
+StrikeThrough		: "ដិតបន្ទាត់ពាក់កណ្តាលអក្សរ",
+Subscript			: "អក្សរតូចក្រោម",
+Superscript			: "អក្សរតូចលើ",
+LeftJustify			: "តំរឹមឆ្វេង",
+CenterJustify		: "តំរឹមកណ្តាល",
+RightJustify		: "តំរឹមស្តាំ",
+BlockJustify		: "តំរឹមសងខាង",
+DecreaseIndent		: "បន្ថយការចូលបន្ទាត់",
+IncreaseIndent		: "បន្ថែមការចូលបន្ទាត់",
+Undo				: "សារឡើងវិញ",
+Redo				: "ធ្វើឡើងវិញ",
+NumberedListLbl		: "បញ្ជីជាអក្សរ",
+NumberedList		: "បន្ថែម/លប់ បញ្ជីជាអក្សរ",
+BulletedListLbl		: "បញ្ជីជារង្វង់មូល",
+BulletedList		: "បន្ថែម/លប់ បញ្ជីជារង្វង់មូល",
+ShowTableBorders	: "បង្ហាញស៊ុមតារាង",
+ShowDetails			: "បង្ហាញពិស្តារ",
+Style				: "ម៉ូត",
+FontFormat			: "រចនា",
+Font				: "ហ្វុង",
+FontSize			: "ទំហំ",
+TextColor			: "ពណ៌អក្សរ",
+BGColor				: "ពណ៌ផ្ទៃខាងក្រោយ",
+Source				: "កូត",
+Find				: "ស្វែងរក",
+Replace				: "ជំនួស",
+SpellCheck			: "ពិនិត្យអក្ខរាវិរុទ្ធ",
+UniversalKeyboard	: "ក្តារពុម្ភអក្សរសកល",
+PageBreakLbl		: "ការផ្តាច់ទំព័រ",
+PageBreak			: "បន្ថែម ការផ្តាច់ទំព័រ",
+
+Form			: "បែបបទ",
+Checkbox		: "ប្រអប់ជ្រើសរើស",
+RadioButton		: "ប៉ូតុនរង្វង់មូល",
+TextField		: "ជួរសរសេរអត្ថបទ",
+Textarea		: "តំបន់សរសេរអត្ថបទ",
+HiddenField		: "ជួរលាក់",
+Button			: "ប៉ូតុន",
+SelectionField	: "ជួរជ្រើសរើស",
+ImageButton		: "ប៉ូតុនរូបភាព",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+
+// Context Menu
+EditLink			: "កែប្រែឈ្នាប់",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRow			: "បន្ថែមជួរផ្តេក",
+DeleteRows			: "លប់ជួរផ្តេក",
+InsertColumn		: "បន្ថែមជួរឈរ",
+DeleteColumns		: "លប់ជួរឈរ",
+InsertCell			: "បន្ថែម សែល",
+DeleteCells			: "លប់សែល",
+MergeCells			: "បញ្ជូលសែល",
+SplitCell			: "ផ្តាច់សែល",
+TableDelete			: "លប់តារាង",
+CellProperties		: "ការកំណត់សែល",
+TableProperties		: "ការកំណត់តារាង",
+ImageProperties		: "ការកំណត់រូបភាព",
+FlashProperties		: "ការកំណត់ Flash",
+
+AnchorProp			: "ការកំណត់យុថ្កា",
+ButtonProp			: "ការកំណត់ ប៉ូតុន",
+CheckboxProp		: "ការកំណត់ប្រអប់ជ្រើសរើស",
+HiddenFieldProp		: "ការកំណត់ជួរលាក់",
+RadioButtonProp		: "ការកំណត់ប៉ូតុនរង្វង់",
+ImageButtonProp		: "ការកំណត់ប៉ូតុនរូបភាព",
+TextFieldProp		: "ការកំណត់ជួរអត្ថបទ",
+SelectionFieldProp	: "ការកំណត់ជួរជ្រើសរើស",
+TextareaProp		: "ការកំណត់កន្លែងសរសេរអត្ថបទ",
+FormProp			: "ការកំណត់បែបបទ",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "កំពុងដំណើរការ XHTML ។ សូមរងចាំ...",
+Done				: "ចប់រួចរាល់",
+PasteWordConfirm	: "អត្ថបទដែលលោកអ្នកបំរុងចំលងដាក់ ហាក់បីដូចជាត្រូវចំលងមកពីកម្មវិធី​Word​។ តើលោកអ្នកចង់សំអាតមុនចំលងអត្ថបទដាក់ទេ?",
+NotCompatiblePaste	: "ពាក្យបញ្ជានេះប្រើបានតែជាមួយ Internet Explorer កំរិត 5.5 រឺ លើសនេះ ។ តើលោកអ្នកចង់ចំលងដាក់ដោយមិនចាំបាច់សំអាតទេ?",
+UnknownToolbarItem	: "វត្ថុលើរបាឧបរកណ៍ មិនស្គាល់ \"%1\"",
+UnknownCommand		: "ឈ្មោះពាក្យបញ្ជា មិនស្គាល់ \"%1\"",
+NotImplemented		: "ពាក្យបញ្ជា មិនបានអនុវត្ត",
+UnknownToolbarSet	: "របាឧបរកណ៍ \"%1\" ពុំមាន ។",
+NoActiveX			: "ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​អាចធ្វើអោយលោកអ្នកមិនអាចប្រើមុខងារខ្លះរបស់កម្មវិធីតាក់តែងអត្ថបទនេះ ។ លោកអ្នកត្រូវកំណត់អោយ \"ActiveX និង​កម្មវិធីជំនួយក្នុង (plug-ins)\" អោយដំណើរការ ។ លោកអ្នកអាចជួបប្រទះនឹង បញ្ហា ព្រមជាមួយនឹងការបាត់បង់មុខងារណាមួយរបស់កម្មវិធីតាក់តែងអត្ថបទនេះ ។",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "វីនដូវមិនអាចបើកបានទេ ។ សូមពិនិត្យចំពោះកម្មវិធីបិទ វីនដូវលោត (popup) ថាតើវាដំណើរការរឺទេ ។",
+
+// Dialogs
+DlgBtnOK			: "យល់ព្រម",
+DlgBtnCancel		: "មិនយល់ព្រម",
+DlgBtnClose			: "បិទ",
+DlgBtnBrowseServer	: "មើល",
+DlgAdvancedTag		: "កំរិតខ្ពស់",
+DlgOpOther			: "<ផ្សេងទៅត>",
+DlgInfoTab			: "ពត៌មាន",
+DlgAlertUrl			: "សូមសរសេរ URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<មិនមែន>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "ទិសដៅភាសា",
+DlgGenLangDirLtr	: "ពីឆ្វេងទៅស្តាំ(LTR)",
+DlgGenLangDirRtl	: "ពីស្តាំទៅឆ្វេង(RTL)",
+DlgGenLangCode		: "លេខកូតភាសា",
+DlgGenAccessKey		: "ឃី សំរាប់ចូល",
+DlgGenName			: "ឈ្មោះ",
+DlgGenTabIndex		: "លេខ Tab",
+DlgGenLongDescr		: "អធិប្បាយ URL វែង",
+DlgGenClass			: "Stylesheet Classes",
+DlgGenTitle			: "ចំណងជើង ប្រឹក្សា",
+DlgGenContType		: "ប្រភេទអត្ថបទ ប្រឹក្សា",
+DlgGenLinkCharset	: "លេខកូតអក្សររបស់ឈ្នាប់",
+DlgGenStyle			: "ម៉ូត",
+
+// Image Dialog
+DlgImgTitle			: "ការកំណត់រូបភាព",
+DlgImgInfoTab		: "ពត៌មានអំពីរូបភាព",
+DlgImgBtnUpload		: "បញ្ជូនទៅកាន់ម៉ាស៊ីនផ្តល់សេវា",
+DlgImgURL			: "URL",
+DlgImgUpload		: "ទាញយក",
+DlgImgAlt			: "អត្ថបទជំនួស",
+DlgImgWidth			: "ទទឹង",
+DlgImgHeight		: "កំពស់",
+DlgImgLockRatio		: "អត្រាឡុក",
+DlgBtnResetSize		: "កំណត់ទំហំឡើងវិញ",
+DlgImgBorder		: "ស៊ុម",
+DlgImgHSpace		: "គំលាតទទឹង",
+DlgImgVSpace		: "គំលាតបណ្តោយ",
+DlgImgAlign			: "កំណត់ទីតាំង",
+DlgImgAlignLeft		: "ខាងឆ្វង",
+DlgImgAlignAbsBottom: "Abs Bottom",	//MISSING
+DlgImgAlignAbsMiddle: "Abs Middle",	//MISSING
+DlgImgAlignBaseline	: "បន្ទាត់ជាមូលដ្ឋាន",
+DlgImgAlignBottom	: "ខាងក្រោម",
+DlgImgAlignMiddle	: "កណ្តាល",
+DlgImgAlignRight	: "ខាងស្តាំ",
+DlgImgAlignTextTop	: "លើអត្ថបទ",
+DlgImgAlignTop		: "ខាងលើ",
+DlgImgPreview		: "មើលសាកល្បង",
+DlgImgAlertUrl		: "សូមសរសេរងាស័យដ្ឋានរបស់រូបភាព",
+DlgImgLinkTab		: "ឈ្នាប់",
+
+// Flash Dialog
+DlgFlashTitle		: "ការកំណត់ Flash",
+DlgFlashChkPlay		: "លេងដោយស្វ័យប្រវត្ត",
+DlgFlashChkLoop		: "ចំនួនដង",
+DlgFlashChkMenu		: "បង្ហាញ មឺនុយរបស់ Flash",
+DlgFlashScale		: "ទំហំ",
+DlgFlashScaleAll	: "បង្ហាញទាំងអស់",
+DlgFlashScaleNoBorder	: "មិនបង្ហាញស៊ុម",
+DlgFlashScaleFit	: "ត្រូវល្មម",
+
+// Link Dialog
+DlgLnkWindowTitle	: "ឈ្នាប់",
+DlgLnkInfoTab		: "ពត៌មានអំពីឈ្នាប់",
+DlgLnkTargetTab		: "គោលដៅ",
+
+DlgLnkType			: "ប្រភេទឈ្នាប់",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "យុថ្កានៅក្នុងទំព័រនេះ",
+DlgLnkTypeEMail		: "អ៊ីមែល",
+DlgLnkProto			: "ប្រូតូកូល",
+DlgLnkProtoOther	: "<ផ្សេងទៀត>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "ជ្រើសរើសយុថ្កា",
+DlgLnkAnchorByName	: "តាមឈ្មោះរបស់យុថ្កា",
+DlgLnkAnchorById	: "តាម Id",
+DlgLnkNoAnchors		: "<ពុំមានយុថ្កានៅក្នុងឯកសារនេះទេ>",
+DlgLnkEMail			: "អ៊ីមែល",
+DlgLnkEMailSubject	: "ចំណងជើងអត្ថបទ",
+DlgLnkEMailBody		: "អត្ថបទ",
+DlgLnkUpload		: "ទាញយក",
+DlgLnkBtnUpload		: "ទាញយក",
+
+DlgLnkTarget		: "គោលដៅ",
+DlgLnkTargetFrame	: "<ហ្វ្រេម>",
+DlgLnkTargetPopup	: "<វីនដូវ លោត>",
+DlgLnkTargetBlank	: "វីនដូវថ្មី (_blank)",
+DlgLnkTargetParent	: "វីនដូវមេ (_parent)",
+DlgLnkTargetSelf	: "វីនដូវដដែល (_self)",
+DlgLnkTargetTop		: "វីនដូវនៅលើគេ(_top)",
+DlgLnkTargetFrameName	: "ឈ្មោះហ្រ្វេមដែលជាគោលដៅ",
+DlgLnkPopWinName	: "ឈ្មោះវីនដូវលោត",
+DlgLnkPopWinFeat	: "លក្ខណះរបស់វីនដូលលោត",
+DlgLnkPopResize		: "ទំហំអាចផ្លាស់ប្តូរ",
+DlgLnkPopLocation	: "របា ទីតាំង",
+DlgLnkPopMenu		: "របា មឺនុយ",
+DlgLnkPopScroll		: "របា ទាញ",
+DlgLnkPopStatus		: "របា ពត៌មាន",
+DlgLnkPopToolbar	: "របា ឩបករណ៍",
+DlgLnkPopFullScrn	: "អេក្រុងពេញ(IE)",
+DlgLnkPopDependent	: "អាស្រ័យលើ (Netscape)",
+DlgLnkPopWidth		: "ទទឹង",
+DlgLnkPopHeight		: "កំពស់",
+DlgLnkPopLeft		: "ទីតាំងខាងឆ្វេង",
+DlgLnkPopTop		: "ទីតាំងខាងលើ",
+
+DlnLnkMsgNoUrl		: "សូមសរសេរ អាស័យដ្ឋាន URL",
+DlnLnkMsgNoEMail	: "សូមសរសេរ អាស័យដ្ឋាន អ៊ីមែល",
+DlnLnkMsgNoAnchor	: "សូមជ្រើសរើស យុថ្កា",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "ជ្រើសរើស ពណ៌",
+DlgColorBtnClear	: "លប់",
+DlgColorHighlight	: "ផាត់ពណ៌",
+DlgColorSelected	: "បានជ្រើសរើស",
+
+// Smiley Dialog
+DlgSmileyTitle		: "បញ្ជូលរូបភាព",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "តូអក្សរពិសេស",
+
+// Table Dialog
+DlgTableTitle		: "ការកំណត់ តារាង",
+DlgTableRows		: "ជួរផ្តេក",
+DlgTableColumns		: "ជួរឈរ",
+DlgTableBorder		: "ទំហំស៊ុម",
+DlgTableAlign		: "ការកំណត់ទីតាំង",
+DlgTableAlignNotSet	: "<មិនកំណត់>",
+DlgTableAlignLeft	: "ខាងឆ្វេង",
+DlgTableAlignCenter	: "កណ្តាល",
+DlgTableAlignRight	: "ខាងស្តាំ",
+DlgTableWidth		: "ទទឹង",
+DlgTableWidthPx		: "ភីកសែល",
+DlgTableWidthPc		: "ភាគរយ",
+DlgTableHeight		: "កំពស់",
+DlgTableCellSpace	: "គំលាតសែល",
+DlgTableCellPad		: "គែមសែល",
+DlgTableCaption		: "ចំណងជើង",
+DlgTableSummary		: "សេចក្តីសង្ខេប",
+
+// Table Cell Dialog
+DlgCellTitle		: "ការកំណត់ សែល",
+DlgCellWidth		: "ទទឹង",
+DlgCellWidthPx		: "ភីកសែល",
+DlgCellWidthPc		: "ភាគរយ",
+DlgCellHeight		: "កំពស់",
+DlgCellWordWrap		: "បង្ហាញអត្ថបទទាំងអស់",
+DlgCellWordWrapNotSet	: "<មិនកំណត់>",
+DlgCellWordWrapYes	: "បាទ(ចា)",
+DlgCellWordWrapNo	: "ទេ",
+DlgCellHorAlign		: "តំរឹមផ្តេក",
+DlgCellHorAlignNotSet	: "<មិនកំណត់>",
+DlgCellHorAlignLeft	: "ខាងឆ្វេង",
+DlgCellHorAlignCenter	: "កណ្តាល",
+DlgCellHorAlignRight: "Right",	//MISSING
+DlgCellVerAlign		: "តំរឹមឈរ",
+DlgCellVerAlignNotSet	: "<មិនកណត់>",
+DlgCellVerAlignTop	: "ខាងលើ",
+DlgCellVerAlignMiddle	: "កណ្តាល",
+DlgCellVerAlignBottom	: "ខាងក្រោម",
+DlgCellVerAlignBaseline	: "បន្ទាត់ជាមូលដ្ឋាន",
+DlgCellRowSpan		: "បញ្ជូលជួរផ្តេក",
+DlgCellCollSpan		: "បញ្ជូលជួរឈរ",
+DlgCellBackColor	: "ពណ៌ផ្នែកខាងក្រោម",
+DlgCellBorderColor	: "ពណ៌ស៊ុម",
+DlgCellBtnSelect	: "ជ្រើសរើស...",
+
+// Find Dialog
+DlgFindTitle		: "ស្វែងរក",
+DlgFindFindBtn		: "ស្វែងរក",
+DlgFindNotFoundMsg	: "ពាក្យនេះ រកមិនឃើញទេ ។",
+
+// Replace Dialog
+DlgReplaceTitle			: "ជំនួស",
+DlgReplaceFindLbl		: "ស្វែងរកអ្វី:",
+DlgReplaceReplaceLbl	: "ជំនួសជាមួយ:",
+DlgReplaceCaseChk		: "ករណ៉ត្រូវរក",
+DlgReplaceReplaceBtn	: "ជំនួស",
+DlgReplaceReplAllBtn	: "ជំនួសទាំងអស់",
+DlgReplaceWordChk		: "ត្រូវពាក្យទាំងអស់",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Your browser security settings don't permit the editor to automatically execute pasting operations. Please use the keyboard for that (Ctrl+V).",	//MISSING
+PasteErrorCut	: "ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ កាត់អត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ  (Ctrl+X) ។",
+PasteErrorCopy	: "ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ ចំលងអត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ (Ctrl+C)។",
+
+PasteAsText		: "ចំលងដាក់អត្ថបទធម្មតា",
+PasteFromWord	: "ចំលងពាក្យពីកម្មវិធី Word",
+
+DlgPasteMsg2	: "សូមចំលងអត្ថបទទៅដាក់ក្នុងប្រអប់ដូចខាងក្រោមដោយប្រើប្រាស់ ឃី ​(<STRONG>Ctrl+V</STRONG>) ហើយចុច <STRONG>OK</STRONG> ។",
+DlgPasteIgnoreFont		: "មិនគិតអំពីប្រភេទពុម្ភអក្សរ",
+DlgPasteRemoveStyles	: "លប់ម៉ូត",
+DlgPasteCleanBox		: "លប់អត្ថបទចេញពីប្រអប់",
+
+// Color Picker
+ColorAutomatic	: "ស្វ័យប្រវត្ត",
+ColorMoreColors	: "ពណ៌ផ្សេងទៀត..",
+
+// Document Properties
+DocProps		: "ការកំណត់ ឯកសារ",
+
+// Anchor Dialog
+DlgAnchorTitle		: "ការកំណត់ចំណងជើងយុទ្ធថ្កា",
+DlgAnchorName		: "ឈ្មោះយុទ្ធថ្កា",
+DlgAnchorErrorName	: "សូមសរសេរ ឈ្មោះយុទ្ធថ្កា",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "គ្មានក្នុងវចនានុក្រម",
+DlgSpellChangeTo		: "ផ្លាស់ប្តូរទៅ",
+DlgSpellBtnIgnore		: "មិនផ្លាស់ប្តូរ",
+DlgSpellBtnIgnoreAll	: "មិនផ្លាស់ប្តូរ ទាំងអស់",
+DlgSpellBtnReplace		: "ជំនួស",
+DlgSpellBtnReplaceAll	: "ជំនួសទាំងអស់",
+DlgSpellBtnUndo			: "សារឡើងវិញ",
+DlgSpellNoSuggestions	: "- គ្មានសំណើរ -",
+DlgSpellProgress		: "កំពុងពិនិត្យអក្ខរាវិរុទ្ធ...",
+DlgSpellNoMispell		: "ការពិនិត្យអក្ខរាវិរុទ្ធបានចប់: គ្មានកំហុស",
+DlgSpellNoChanges		: "ការពិនិត្យអក្ខរាវិរុទ្ធបានចប់: ពុំមានផ្លាស់ប្តូរ",
+DlgSpellOneChange		: "ការពិនិត្យអក្ខរាវិរុទ្ធបានចប់: ពាក្យមួយត្រូចបានផ្លាស់ប្តូរ",
+DlgSpellManyChanges		: "ការពិនិត្យអក្ខរាវិរុទ្ធបានចប់: %1 ពាក្យបានផ្លាស់ប្តូរ",
+
+IeSpellDownload			: "ពុំមានកម្មវិធីពិនិត្យអក្ខរាវិរុទ្ធ ។ តើចង់ទាញយកពីណា?",
+
+// Button Dialog
+DlgButtonText		: "អត្ថបទ(តំលៃ)",
+DlgButtonType		: "ប្រភេទ",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "ឈ្មោះ",
+DlgCheckboxValue	: "តំលៃ",
+DlgCheckboxSelected	: "បានជ្រើសរើស",
+
+// Form Dialog
+DlgFormName		: "ឈ្មោះ",
+DlgFormAction	: "សកម្មភាព",
+DlgFormMethod	: "វិធី",
+
+// Select Field Dialog
+DlgSelectName		: "ឈ្មោះ",
+DlgSelectValue		: "តំលៃ",
+DlgSelectSize		: "ទំហំ",
+DlgSelectLines		: "បន្ទាត់",
+DlgSelectChkMulti	: "អនុញ្ញាតអោយជ្រើសរើសច្រើន",
+DlgSelectOpAvail	: "ការកំណត់ជ្រើសរើស ដែលអាចកំណត់បាន",
+DlgSelectOpText		: "ពាក្យ",
+DlgSelectOpValue	: "តំលៃ",
+DlgSelectBtnAdd		: "បន្ថែម",
+DlgSelectBtnModify	: "ផ្លាស់ប្តូរ",
+DlgSelectBtnUp		: "លើ",
+DlgSelectBtnDown	: "ក្រោម",
+DlgSelectBtnSetValue : "Set as selected value",	//MISSING
+DlgSelectBtnDelete	: "លប់",
+
+// Textarea Dialog
+DlgTextareaName	: "ឈ្មោះ",
+DlgTextareaCols	: "ជូរឈរ",
+DlgTextareaRows	: "ជូរផ្តេក",
+
+// Text Field Dialog
+DlgTextName			: "ឈ្មោះ",
+DlgTextValue		: "តំលៃ",
+DlgTextCharWidth	: "ទទឹង អក្សរ",
+DlgTextMaxChars		: "អក្សរអតិបរិមា",
+DlgTextType			: "ប្រភេទ",
+DlgTextTypeText		: "ពាក្យ",
+DlgTextTypePass		: "ពាក្យសំងាត់",
+
+// Hidden Field Dialog
+DlgHiddenName	: "ឈ្មោះ",
+DlgHiddenValue	: "តំលៃ",
+
+// Bulleted List Dialog
+BulletedListProp	: "កំណត់បញ្ជីរង្វង់",
+NumberedListProp	: "កំណត់បញ្េជីលេខ",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "ប្រភេទ",
+DlgLstTypeCircle	: "រង្វង់",
+DlgLstTypeDisc		: "Disc",
+DlgLstTypeSquare	: "ការេ",
+DlgLstTypeNumbers	: "លេខ(1, 2, 3)",
+DlgLstTypeLCase		: "អក្សរតូច(a, b, c)",
+DlgLstTypeUCase		: "អក្សរធំ(A, B, C)",
+DlgLstTypeSRoman	: "អក្សរឡាតាំងតូច(i, ii, iii)",
+DlgLstTypeLRoman	: "អក្សរឡាតាំងធំ(I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "ទូទៅ",
+DlgDocBackTab		: "ផ្នែកខាងក្រោយ",
+DlgDocColorsTab		: "ទំព័រ​និង ស៊ុម",
+DlgDocMetaTab		: "ទិន្នន័យមេ",
+
+DlgDocPageTitle		: "ចំណងជើងទំព័រ",
+DlgDocLangDir		: "ទិសដៅសរសេរភាសា",
+DlgDocLangDirLTR	: "ពីឆ្វេងទៅស្ដាំ(LTR)",
+DlgDocLangDirRTL	: "ពីស្ដាំទៅឆ្វេង(RTL)",
+DlgDocLangCode		: "លេខកូតភាសា",
+DlgDocCharSet		: "កំណត់លេខកូតភាសា",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "កំណត់លេខកូតភាសាផ្សេងទៀត",
+
+DlgDocDocType		: "ប្រភេទក្បាលទំព័រ",
+DlgDocDocTypeOther	: "ប្រភេទក្បាលទំព័រផ្សេងទៀត",
+DlgDocIncXHTML		: "បញ្ជូល XHTML",
+DlgDocBgColor		: "ពណ៌ខាងក្រោម",
+DlgDocBgImage		: "URL របស់រូបភាពខាងក្រោម",
+DlgDocBgNoScroll	: "ទំព័រក្រោមមិនប្តូរ",
+DlgDocCText			: "អត្តបទ",
+DlgDocCLink			: "ឈ្នាប់",
+DlgDocCVisited		: "ឈ្នាប់មើលហើយ",
+DlgDocCActive		: "ឈ្នាប់កំពុងមើល",
+DlgDocMargins		: "ស៊ុមទំព័រ",
+DlgDocMaTop			: "លើ",
+DlgDocMaLeft		: "ឆ្វេង",
+DlgDocMaRight		: "ស្ដាំ",
+DlgDocMaBottom		: "ក្រោម",
+DlgDocMeIndex		: "ពាក្យនៅក្នុងឯកសារ (ផ្តាច់ពីគ្នាដោយក្បៀស)",
+DlgDocMeDescr		: "សេចក្តីអត្ថាធិប្បាយអំពីឯកសារ",
+DlgDocMeAuthor		: "អ្នកនិពន្ធ",
+DlgDocMeCopy		: "រក្សាសិទ្ធិ៏",
+DlgDocPreview		: "មើលសាកល្បង",
+
+// Templates Dialog
+Templates			: "ឯកសារគំរូ",
+DlgTemplatesTitle	: "ឯកសារគំរូ របស់អត្ថន័យ",
+DlgTemplatesSelMsg	: "សូមជ្រើសរើសឯកសារគំរូ ដើម្បីបើកនៅក្នុងកម្មវិធីតាក់តែងអត្ថបទ<br>(អត្ថបទនឹងបាត់បង់):",
+DlgTemplatesLoading	: "កំពុងអានបញ្ជីឯកសារគំរូ ។ សូមរងចាំ...",
+DlgTemplatesNoTpl	: "(ពុំមានឯកសារគំរូត្រូវបានកំណត់)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "អំពី",
+DlgAboutBrowserInfoTab	: "ព៌តមានកម្មវិធីរុករក",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "ជំនាន់",
+DlgAboutLicense		: "Licensed under the terms of the GNU Lesser General Public License",
+DlgAboutInfo		: "សំរាប់ព៌តមានផ្សេងទៀត សូមទាក់ទង"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/es.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/es.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/es.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: es.js
+ * 	Spanish language file.
+ * 
+ * File Authors:
+ * 		Gabriel Schillaci (internetbug@users.sourceforge.net)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Contraer Barra",
+ToolbarExpand		: "Expandir Barra",
+
+// Toolbar Items and Context Menu
+Save				: "Guardar",
+NewPage				: "Nueva Página",
+Preview				: "Vista Previa",
+Cut					: "Cortar",
+Copy				: "Copiar",
+Paste				: "Pegar",
+PasteText			: "Pegar como texto plano",
+PasteWord			: "Pegar desde Word",
+Print				: "Imprimir",
+SelectAll			: "Seleccionar Todo",
+RemoveFormat		: "Eliminar Formato",
+InsertLinkLbl		: "Vínculo",
+InsertLink			: "Insertar/Editar Vínculo",
+RemoveLink			: "Eliminar Vínculo",
+Anchor				: "Referencia",
+InsertImageLbl		: "Imagen",
+InsertImage			: "Insertar/Editar Imagen",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Insertar/Editar Flash",
+InsertTableLbl		: "Tabla",
+InsertTable			: "Insertar/Editar Tabla",
+InsertLineLbl		: "Línea",
+InsertLine			: "Insertar Línea Horizontal",
+InsertSpecialCharLbl: "Caracter Especial",
+InsertSpecialChar	: "Insertar Caracter Especial",
+InsertSmileyLbl		: "Emoticons",
+InsertSmiley		: "Insertar Emoticons",
+About				: "Acerca de FCKeditor",
+Bold				: "Negrita",
+Italic				: "Cursiva",
+Underline			: "Subrayado",
+StrikeThrough		: "Tachado",
+Subscript			: "Subíndice",
+Superscript			: "Superíndice",
+LeftJustify			: "Alinear a Izquierda",
+CenterJustify		: "Centrar",
+RightJustify		: "Alinear a Derecha",
+BlockJustify		: "Justificado",
+DecreaseIndent		: "Disminuir Sangría",
+IncreaseIndent		: "Aumentar Sangría",
+Undo				: "Deshacer",
+Redo				: "Rehacer",
+NumberedListLbl		: "Numeración",
+NumberedList		: "Insertar/Eliminar Numeración",
+BulletedListLbl		: "Viñetas",
+BulletedList		: "Insertar/Eliminar Viñetas",
+ShowTableBorders	: "Mostrar Bordes de Tablas",
+ShowDetails			: "Mostrar saltos de Párrafo",
+Style				: "Estilo",
+FontFormat			: "Formato",
+Font				: "Fuente",
+FontSize			: "Tamaño",
+TextColor			: "Color de Texto",
+BGColor				: "Color de Fondo",
+Source				: "Fuente HTML",
+Find				: "Buscar",
+Replace				: "Reemplazar",
+SpellCheck			: "Ortografía",
+UniversalKeyboard	: "Teclado Universal",
+PageBreakLbl		: "Salto de Página",
+PageBreak			: "Insertar Salto de Página",
+
+Form			: "Formulario",
+Checkbox		: "Casilla de Verificación",
+RadioButton		: "Botones de Radio",
+TextField		: "Campo de Texto",
+Textarea		: "Area de Texto",
+HiddenField		: "Campo Oculto",
+Button			: "Botón",
+SelectionField	: "Campo de Selección",
+ImageButton		: "Botón Imagen",
+
+FitWindow		: "Maximizar el tamaño del editor",
+
+// Context Menu
+EditLink			: "Editar Vínculo",
+CellCM				: "Celda",
+RowCM				: "Fila",
+ColumnCM			: "Columna",
+InsertRow			: "Insertar Fila",
+DeleteRows			: "Eliminar Filas",
+InsertColumn		: "Insertar Columna",
+DeleteColumns		: "Eliminar Columnas",
+InsertCell			: "Insertar Celda",
+DeleteCells			: "Eliminar Celdas",
+MergeCells			: "Combinar Celdas",
+SplitCell			: "Dividir Celda",
+TableDelete			: "Eliminar Tabla",
+CellProperties		: "Propiedades de Celda",
+TableProperties		: "Propiedades de Tabla",
+ImageProperties		: "Propiedades de Imagen",
+FlashProperties		: "Propiedades de Flash",
+
+AnchorProp			: "Propiedades de Referencia",
+ButtonProp			: "Propiedades de Botón",
+CheckboxProp		: "Propiedades de Casilla",
+HiddenFieldProp		: "Propiedades de Campo Oculto",
+RadioButtonProp		: "Propiedades de Botón de Radio",
+ImageButtonProp		: "Propiedades de Botón de Imagen",
+TextFieldProp		: "Propiedades de Campo de Texto",
+SelectionFieldProp	: "Propiedades de Campo de Selección",
+TextareaProp		: "Propiedades de Area de Texto",
+FormProp			: "Propiedades de Formulario",
+
+FontFormats			: "Normal;Con formato;Dirección;Encabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Procesando XHTML. Por favor, espere...",
+Done				: "Hecho",
+PasteWordConfirm	: "El texto que desea parece provenir de Word. Desea depurarlo antes de pegarlo?",
+NotCompatiblePaste	: "Este comando está disponible sólo para Internet Explorer version 5.5 or superior. Desea pegar sin depurar?",
+UnknownToolbarItem	: "Item de barra desconocido \"%1\"",
+UnknownCommand		: "Nombre de comando desconocido \"%1\"",
+NotImplemented		: "Comando no implementado",
+UnknownToolbarSet	: "Nombre de barra \"%1\" no definido",
+NoActiveX			: "La configuración de las opciones de seguridad de su navegador puede estar limitando algunas características del editor. Por favor active la opción \"Ejecutar controles y complementos de ActiveX \", de lo contrario puede experimentar errores o ausencia de funcionalidades.",
+BrowseServerBlocked : "La ventana de visualización del servidor no pudo ser abierta. Verifique que su navegador no esté bloqueando las ventanas emergentes (pop up).",
+DialogBlocked		: "No se ha podido abrir la ventana de diálogo. Verifique que su navegador no esté bloqueando las ventanas emergentes (pop up).",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Cancelar",
+DlgBtnClose			: "Cerrar",
+DlgBtnBrowseServer	: "Ver Servidor",
+DlgAdvancedTag		: "Avanzado",
+DlgOpOther			: "<Otro>",
+DlgInfoTab			: "Información",
+DlgAlertUrl			: "Inserte el URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<No definido>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Orientación de idioma",
+DlgGenLangDirLtr	: "Izquierda a Derecha (LTR)",
+DlgGenLangDirRtl	: "Derecha a Izquierda (RTL)",
+DlgGenLangCode		: "Código de idioma",
+DlgGenAccessKey		: "Clave de Acceso",
+DlgGenName			: "Nombre",
+DlgGenTabIndex		: "Indice de tabulación",
+DlgGenLongDescr		: "Descripción larga URL",
+DlgGenClass			: "Clases de hojas de estilo",
+DlgGenTitle			: "Título",
+DlgGenContType		: "Tipo de Contenido",
+DlgGenLinkCharset	: "Fuente de caracteres vinculado",
+DlgGenStyle			: "Estilo",
+
+// Image Dialog
+DlgImgTitle			: "Propiedades de Imagen",
+DlgImgInfoTab		: "Información de Imagen",
+DlgImgBtnUpload		: "Enviar al Servidor",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Cargar",
+DlgImgAlt			: "Texto Alternativo",
+DlgImgWidth			: "Anchura",
+DlgImgHeight		: "Altura",
+DlgImgLockRatio		: "Proporcional",
+DlgBtnResetSize		: "Tamaño Original",
+DlgImgBorder		: "Borde",
+DlgImgHSpace		: "Esp.Horiz",
+DlgImgVSpace		: "Esp.Vert",
+DlgImgAlign			: "Alineación",
+DlgImgAlignLeft		: "Izquierda",
+DlgImgAlignAbsBottom: "Abs inferior",
+DlgImgAlignAbsMiddle: "Abs centro",
+DlgImgAlignBaseline	: "Línea de base",
+DlgImgAlignBottom	: "Pie",
+DlgImgAlignMiddle	: "Centro",
+DlgImgAlignRight	: "Derecha",
+DlgImgAlignTextTop	: "Tope del texto",
+DlgImgAlignTop		: "Tope",
+DlgImgPreview		: "Vista Previa",
+DlgImgAlertUrl		: "Por favor tipee el URL de la imagen",
+DlgImgLinkTab		: "Vínculo",
+
+// Flash Dialog
+DlgFlashTitle		: "Propiedades de Flash",
+DlgFlashChkPlay		: "Autoejecución",
+DlgFlashChkLoop		: "Repetir",
+DlgFlashChkMenu		: "Activar Menú Flash",
+DlgFlashScale		: "Escala",
+DlgFlashScaleAll	: "Mostrar todo",
+DlgFlashScaleNoBorder	: "Sin Borde",
+DlgFlashScaleFit	: "Ajustado",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Vínculo",
+DlgLnkInfoTab		: "Información de Vínculo",
+DlgLnkTargetTab		: "Destino",
+
+DlgLnkType			: "Tipo de vínculo",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Referencia en esta página",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocolo",
+DlgLnkProtoOther	: "<otro>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Seleccionar una referencia",
+DlgLnkAnchorByName	: "Por Nombre de Referencia",
+DlgLnkAnchorById	: "Por ID de elemento",
+DlgLnkNoAnchors		: "<No hay referencias disponibles en el documento>",
+DlgLnkEMail			: "Dirección de E-Mail",
+DlgLnkEMailSubject	: "Título del Mensaje",
+DlgLnkEMailBody		: "Cuerpo del Mensaje",
+DlgLnkUpload		: "Cargar",
+DlgLnkBtnUpload		: "Enviar al Servidor",
+
+DlgLnkTarget		: "Destino",
+DlgLnkTargetFrame	: "<marco>",
+DlgLnkTargetPopup	: "<ventana emergente>",
+DlgLnkTargetBlank	: "Nueva Ventana(_blank)",
+DlgLnkTargetParent	: "Ventana Padre (_parent)",
+DlgLnkTargetSelf	: "Misma Ventana (_self)",
+DlgLnkTargetTop		: "Ventana primaria (_top)",
+DlgLnkTargetFrameName	: "Nombre del Marco Destino",
+DlgLnkPopWinName	: "Nombre de Ventana Emergente",
+DlgLnkPopWinFeat	: "Características de Ventana Emergente",
+DlgLnkPopResize		: "Ajustable",
+DlgLnkPopLocation	: "Barra de ubicación",
+DlgLnkPopMenu		: "Barra de Menú",
+DlgLnkPopScroll		: "Barras de desplazamiento",
+DlgLnkPopStatus		: "Barra de Estado",
+DlgLnkPopToolbar	: "Barra de Herramientas",
+DlgLnkPopFullScrn	: "Pantalla Completa (IE)",
+DlgLnkPopDependent	: "Dependiente (Netscape)",
+DlgLnkPopWidth		: "Anchura",
+DlgLnkPopHeight		: "Altura",
+DlgLnkPopLeft		: "Posición Izquierda",
+DlgLnkPopTop		: "Posición Derecha",
+
+DlnLnkMsgNoUrl		: "Por favor tipee el vínculo URL",
+DlnLnkMsgNoEMail	: "Por favor tipee la dirección de e-mail",
+DlnLnkMsgNoAnchor	: "Por favor seleccione una referencia",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Seleccionar Color",
+DlgColorBtnClear	: "Ninguno",
+DlgColorHighlight	: "Resaltado",
+DlgColorSelected	: "Seleccionado",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Insertar un Emoticon",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Seleccione un caracter especial",
+
+// Table Dialog
+DlgTableTitle		: "Propiedades de Tabla",
+DlgTableRows		: "Filas",
+DlgTableColumns		: "Columnas",
+DlgTableBorder		: "Tamaño de Borde",
+DlgTableAlign		: "Alineación",
+DlgTableAlignNotSet	: "<No establecido>",
+DlgTableAlignLeft	: "Izquierda",
+DlgTableAlignCenter	: "Centrado",
+DlgTableAlignRight	: "Derecha",
+DlgTableWidth		: "Anchura",
+DlgTableWidthPx		: "pixeles",
+DlgTableWidthPc		: "porcentaje",
+DlgTableHeight		: "Altura",
+DlgTableCellSpace	: "Esp. e/celdas",
+DlgTableCellPad		: "Esp. interior",
+DlgTableCaption		: "Título",
+DlgTableSummary		: "Síntesis",
+
+// Table Cell Dialog
+DlgCellTitle		: "Propiedades de Celda",
+DlgCellWidth		: "Anchura",
+DlgCellWidthPx		: "pixeles",
+DlgCellWidthPc		: "porcentaje",
+DlgCellHeight		: "Altura",
+DlgCellWordWrap		: "Cortar Línea",
+DlgCellWordWrapNotSet	: "<No establecido>",
+DlgCellWordWrapYes	: "Si",
+DlgCellWordWrapNo	: "No",
+DlgCellHorAlign		: "Alineación Horizontal",
+DlgCellHorAlignNotSet	: "<No establecido>",
+DlgCellHorAlignLeft	: "Izquierda",
+DlgCellHorAlignCenter	: "Centrado",
+DlgCellHorAlignRight: "Derecha",
+DlgCellVerAlign		: "Alineación Vertical",
+DlgCellVerAlignNotSet	: "<Not establecido>",
+DlgCellVerAlignTop	: "Tope",
+DlgCellVerAlignMiddle	: "Medio",
+DlgCellVerAlignBottom	: "ie",
+DlgCellVerAlignBaseline	: "Línea de Base",
+DlgCellRowSpan		: "Abarcar Filas",
+DlgCellCollSpan		: "Abarcar Columnas",
+DlgCellBackColor	: "Color de Fondo",
+DlgCellBorderColor	: "Color de Borde",
+DlgCellBtnSelect	: "Seleccione...",
+
+// Find Dialog
+DlgFindTitle		: "Buscar",
+DlgFindFindBtn		: "Buscar",
+DlgFindNotFoundMsg	: "El texto especificado no ha sido encontrado.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Reemplazar",
+DlgReplaceFindLbl		: "Texto a buscar:",
+DlgReplaceReplaceLbl	: "Reemplazar con:",
+DlgReplaceCaseChk		: "Coincidir may/min",
+DlgReplaceReplaceBtn	: "Reemplazar",
+DlgReplaceReplAllBtn	: "Reemplazar Todo",
+DlgReplaceWordChk		: "Coincidir toda la palabra",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de pegado. Por favor use el teclado (Ctrl+V).",
+PasteErrorCut	: "La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado. Por favor use el teclado (Ctrl+X).",
+PasteErrorCopy	: "La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado. Por favor use el teclado (Ctrl+C).",
+
+PasteAsText		: "Pegar como Texto Plano",
+PasteFromWord	: "Pegar desde Word",
+
+DlgPasteMsg2	: "Por favor pegue dentro del cuadro utilizando el teclado (<STRONG>Ctrl+V</STRONG>); luego presione <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignorar definiciones de fuentes",
+DlgPasteRemoveStyles	: "Remover definiciones de estilo",
+DlgPasteCleanBox		: "Borrar el contenido del cuadro",
+
+// Color Picker
+ColorAutomatic	: "Automático",
+ColorMoreColors	: "Más Colores...",
+
+// Document Properties
+DocProps		: "Propiedades del Documento",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Propiedades de la Referencia",
+DlgAnchorName		: "Nombre de la Referencia",
+DlgAnchorErrorName	: "Por favor, complete el nombre de la Referencia",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "No se encuentra en el Diccionario",
+DlgSpellChangeTo		: "Cambiar a",
+DlgSpellBtnIgnore		: "Ignorar",
+DlgSpellBtnIgnoreAll	: "Ignorar Todo",
+DlgSpellBtnReplace		: "Reemplazar",
+DlgSpellBtnReplaceAll	: "Reemplazar Todo",
+DlgSpellBtnUndo			: "Deshacer",
+DlgSpellNoSuggestions	: "- No hay sugerencias -",
+DlgSpellProgress		: "Control de Ortografía en progreso...",
+DlgSpellNoMispell		: "Control finalizado: no se encontraron errores",
+DlgSpellNoChanges		: "Control finalizado: no se ha cambiado ninguna palabra",
+DlgSpellOneChange		: "Control finalizado: se ha cambiado una palabra",
+DlgSpellManyChanges		: "Control finalizado: se ha cambiado %1 palabras",
+
+IeSpellDownload			: "Módulo de Control de Ortografía no instalado. ¿Desea descargarlo ahora?",
+
+// Button Dialog
+DlgButtonText		: "Texto (Valor)",
+DlgButtonType		: "Tipo",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nombre",
+DlgCheckboxValue	: "Valor",
+DlgCheckboxSelected	: "Seleccionado",
+
+// Form Dialog
+DlgFormName		: "Nombre",
+DlgFormAction	: "Acción",
+DlgFormMethod	: "Método",
+
+// Select Field Dialog
+DlgSelectName		: "Nombre",
+DlgSelectValue		: "Valor",
+DlgSelectSize		: "Tamaño",
+DlgSelectLines		: "Lineas",
+DlgSelectChkMulti	: "Permitir múltiple selección",
+DlgSelectOpAvail	: "Opciones disponibles",
+DlgSelectOpText		: "Texto",
+DlgSelectOpValue	: "Valor",
+DlgSelectBtnAdd		: "Agregar",
+DlgSelectBtnModify	: "Modificar",
+DlgSelectBtnUp		: "Subir",
+DlgSelectBtnDown	: "Bajar",
+DlgSelectBtnSetValue : "Establecer como predeterminado",
+DlgSelectBtnDelete	: "Eliminar",
+
+// Textarea Dialog
+DlgTextareaName	: "Nombre",
+DlgTextareaCols	: "Columnas",
+DlgTextareaRows	: "Filas",
+
+// Text Field Dialog
+DlgTextName			: "Nombre",
+DlgTextValue		: "Valor",
+DlgTextCharWidth	: "Caracteres de ancho",
+DlgTextMaxChars		: "Máximo caracteres",
+DlgTextType			: "Tipo",
+DlgTextTypeText		: "Texto",
+DlgTextTypePass		: "Contraseña",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nombre",
+DlgHiddenValue	: "Valor",
+
+// Bulleted List Dialog
+BulletedListProp	: "Propiedades de Viñetas",
+NumberedListProp	: "Propiedades de Numeraciones",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tipo",
+DlgLstTypeCircle	: "Círculo",
+DlgLstTypeDisc		: "Disco",
+DlgLstTypeSquare	: "Cuadrado",
+DlgLstTypeNumbers	: "Números (1, 2, 3)",
+DlgLstTypeLCase		: "letras en minúsculas (a, b, c)",
+DlgLstTypeUCase		: "letras en mayúsculas (A, B, C)",
+DlgLstTypeSRoman	: "Números Romanos (i, ii, iii)",
+DlgLstTypeLRoman	: "Números Romanos (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "General",
+DlgDocBackTab		: "Fondo",
+DlgDocColorsTab		: "Colores y Márgenes",
+DlgDocMetaTab		: "Meta Información",
+
+DlgDocPageTitle		: "Título de Página",
+DlgDocLangDir		: "Orientación de idioma",
+DlgDocLangDirLTR	: "Izq. a Derecha (LTR)",
+DlgDocLangDirRTL	: "Der. a Izquierda (RTL)",
+DlgDocLangCode		: "Código de Idioma",
+DlgDocCharSet		: "Codif. de Conjunto de Caracteres",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Otra Codificación",
+
+DlgDocDocType		: "Encabezado de Tipo de Documento",
+DlgDocDocTypeOther	: "Otro Encabezado",
+DlgDocIncXHTML		: "Incluir Declaraciones XHTML",
+DlgDocBgColor		: "Color de Fondo",
+DlgDocBgImage		: "URL de Imagen de Fondo",
+DlgDocBgNoScroll	: "Fondo sin rolido",
+DlgDocCText			: "Texto",
+DlgDocCLink			: "Vínculo",
+DlgDocCVisited		: "Vínculo Visitado",
+DlgDocCActive		: "Vínculo Activo",
+DlgDocMargins		: "Márgenes de Página",
+DlgDocMaTop			: "Tope",
+DlgDocMaLeft		: "Izquierda",
+DlgDocMaRight		: "Derecha",
+DlgDocMaBottom		: "Pie",
+DlgDocMeIndex		: "Claves de indexación del Documento (separados por comas)",
+DlgDocMeDescr		: "Descripción del Documento",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Vista Previa",
+
+// Templates Dialog
+Templates			: "Plantillas",
+DlgTemplatesTitle	: "Contenido de Plantillas",
+DlgTemplatesSelMsg	: "Por favor selecciona la plantilla a abrir en el editor<br>(el contenido actual se perderá):",
+DlgTemplatesLoading	: "Cargando lista de Plantillas. Por favor, aguarde...",
+DlgTemplatesNoTpl	: "(No hay plantillas definidas)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Acerca de",
+DlgAboutBrowserInfoTab	: "Información de Navegador",
+DlgAboutLicenseTab	: "Licencia",
+DlgAboutVersion		: "versión",
+DlgAboutLicense		: "Licenciado bajo los términos de GNU Lesser General Public License",
+DlgAboutInfo		: "Para mayor información por favor dirigirse a"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ko.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ko.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ko.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: ko.js
+ * 	Korean language file.
+ * 
+ * File Authors:
+ * 		Taehwan Kwag (thkwag@nate.com)
+ * 		Hyung-chae, Kim (chaeya@gmail.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "툴바 감추기",
+ToolbarExpand		: "툴바 보이기",
+
+// Toolbar Items and Context Menu
+Save				: "저장하기",
+NewPage				: "새 문서",
+Preview				: "미리보기",
+Cut					: "잘라내기",
+Copy				: "복사하기",
+Paste				: "붙여넣기",
+PasteText			: "텍스트로 붙여넣기",
+PasteWord			: "MS Word 형식에서 붙여넣기",
+Print				: "인쇄하기",
+SelectAll			: "전체선택",
+RemoveFormat		: "포맷 지우기",
+InsertLinkLbl		: "링크",
+InsertLink			: "링크 삽입/변경",
+RemoveLink			: "링크 삭제",
+Anchor				: "책갈피 삽입/변경",
+InsertImageLbl		: "이미지",
+InsertImage			: "이미지 삽입/변경",
+InsertFlashLbl		: "플래쉬",
+InsertFlash			: "플래쉬 삽입/변경",
+InsertTableLbl		: "표",
+InsertTable			: "표 삽입/변경",
+InsertLineLbl		: "수평선",
+InsertLine			: "수평선 삽입",
+InsertSpecialCharLbl: "특수문자 삽입",
+InsertSpecialChar	: "특수문자 삽입",
+InsertSmileyLbl		: "아이콘",
+InsertSmiley		: "아이콘 삽입",
+About				: "FCKeditor에 대하여",
+Bold				: "진하게",
+Italic				: "이텔릭",
+Underline			: "밑줄",
+StrikeThrough		: "취소선",
+Subscript			: "아래 첨자",
+Superscript			: "위 첨자",
+LeftJustify			: "왼쪽 정렬",
+CenterJustify		: "가운데 정렬",
+RightJustify		: "오른쪽 정렬",
+BlockJustify		: "양쪽 맞춤",
+DecreaseIndent		: "내어쓰기",
+IncreaseIndent		: "들여쓰기",
+Undo				: "취소",
+Redo				: "재실행",
+NumberedListLbl		: "순서있는 목록",
+NumberedList		: "순서있는 목록",
+BulletedListLbl		: "순서없는 목록",
+BulletedList		: "순서없는 목록",
+ShowTableBorders	: "표 테두리 보기",
+ShowDetails			: "문서기호 보기",
+Style				: "스타일",
+FontFormat			: "포맷",
+Font				: "폰트",
+FontSize			: "글자 크기",
+TextColor			: "글자 색상",
+BGColor				: "배경 색상",
+Source				: "소스",
+Find				: "찾기",
+Replace				: "바꾸기",
+SpellCheck			: "철자검사",
+UniversalKeyboard	: "다국어 입력기",
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
+
+Form			: "폼",
+Checkbox		: "체크박스",
+RadioButton		: "라디오버튼",
+TextField		: "입력필드",
+Textarea		: "입력영역",
+HiddenField		: "숨김필드",
+Button			: "버튼",
+SelectionField	: "펼침목록",
+ImageButton		: "이미지버튼",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+
+// Context Menu
+EditLink			: "링크 수정",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRow			: "가로줄 삽입",
+DeleteRows			: "가로줄 삭제",
+InsertColumn		: "세로줄 삽입",
+DeleteColumns		: "세로줄 삭제",
+InsertCell			: "셀 삽입",
+DeleteCells			: "셀 삭제",
+MergeCells			: "셀 합치기",
+SplitCell			: "셀 나누기",
+TableDelete			: "Delete Table",	//MISSING
+CellProperties		: "셀 속성",
+TableProperties		: "표 속성",
+ImageProperties		: "이미지 속성",
+FlashProperties		: "플래쉬 속성",
+
+AnchorProp			: "책갈피 속성",
+ButtonProp			: "버튼 속성",
+CheckboxProp		: "체크박스 속성",
+HiddenFieldProp		: "숨김필드 속성",
+RadioButtonProp		: "라디오버튼 속성",
+ImageButtonProp		: "이미지버튼 속성",
+TextFieldProp		: "입력필드 속성",
+SelectionFieldProp	: "펼침목록 속성",
+TextareaProp		: "입력영역 속성",
+FormProp			: "폼 속성",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML 처리중. 잠시만 기다려주십시요.",
+Done				: "완료",
+PasteWordConfirm	: "붙여넣기 할 텍스트는 MS Word에서 복사한 것입니다. 붙여넣기 전에 MS Word 포멧을 삭제하시겠습니까?",
+NotCompatiblePaste	: "이 명령은 인터넷익스플로러 5.5 버전 이상에서만 작동합니다. 포멧을 삭제하지 않고 붙여넣기 하시겠습니까?",
+UnknownToolbarItem	: "알수없는 툴바입니다. : \"%1\"",
+UnknownCommand		: "알수없는 기능입니다. : \"%1\"",
+NotImplemented		: "기능이 실행되지 않았습니다.",
+UnknownToolbarSet	: "툴바 설정이 없습니다. : \"%1\"",
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
+
+// Dialogs
+DlgBtnOK			: "예",
+DlgBtnCancel		: "아니오",
+DlgBtnClose			: "닫기",
+DlgBtnBrowseServer	: "서버 보기",
+DlgAdvancedTag		: "자세히",
+DlgOpOther			: "<기타>",
+DlgInfoTab			: "정보",
+DlgAlertUrl			: "URL을 입력하십시요",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<설정되지 않음>",
+DlgGenId			: "ID",
+DlgGenLangDir		: "쓰기 방향",
+DlgGenLangDirLtr	: "왼쪽에서 오른쪽 (LTR)",
+DlgGenLangDirRtl	: "오른쪽에서 왼쪽 (RTL)",
+DlgGenLangCode		: "언어 코드",
+DlgGenAccessKey		: "엑세스 키",
+DlgGenName			: "Name",
+DlgGenTabIndex		: "탭 순서",
+DlgGenLongDescr		: "URL 설명",
+DlgGenClass			: "Stylesheet Classes",
+DlgGenTitle			: "Advisory Title",
+DlgGenContType		: "Advisory Content Type",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Style",
+
+// Image Dialog
+DlgImgTitle			: "이미지 설정",
+DlgImgInfoTab		: "이미지 정보",
+DlgImgBtnUpload		: "서버로 전송",
+DlgImgURL			: "URL",
+DlgImgUpload		: "업로드",
+DlgImgAlt			: "이미지 설명",
+DlgImgWidth			: "너비",
+DlgImgHeight		: "높이",
+DlgImgLockRatio		: "비율 유지",
+DlgBtnResetSize		: "원래 크기로",
+DlgImgBorder		: "테두리",
+DlgImgHSpace		: "수평여백",
+DlgImgVSpace		: "수직여백",
+DlgImgAlign			: "정렬",
+DlgImgAlignLeft		: "왼쪽",
+DlgImgAlignAbsBottom: "줄아래(Abs Bottom)",
+DlgImgAlignAbsMiddle: "줄중간(Abs Middle)",
+DlgImgAlignBaseline	: "기준선",
+DlgImgAlignBottom	: "아래",
+DlgImgAlignMiddle	: "중간",
+DlgImgAlignRight	: "오른쪽",
+DlgImgAlignTextTop	: "글자위(Text Top)",
+DlgImgAlignTop		: "위",
+DlgImgPreview		: "미리보기",
+DlgImgAlertUrl		: "이미지 URL을 입력하십시요",
+DlgImgLinkTab		: "링크",
+
+// Flash Dialog
+DlgFlashTitle		: "플래쉬 등록정보",
+DlgFlashChkPlay		: "자동재생",
+DlgFlashChkLoop		: "반복",
+DlgFlashChkMenu		: "플래쉬메뉴 가능",
+DlgFlashScale		: "영역",
+DlgFlashScaleAll	: "모두보기",
+DlgFlashScaleNoBorder	: "경계선없음",
+DlgFlashScaleFit	: "영역자동조절",
+
+// Link Dialog
+DlgLnkWindowTitle	: "링크",
+DlgLnkInfoTab		: "링크 정보",
+DlgLnkTargetTab		: "타겟",
+
+DlgLnkType			: "링크 종류",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "책갈피",
+DlgLnkTypeEMail		: "이메일",
+DlgLnkProto			: "프로토콜",
+DlgLnkProtoOther	: "<기타>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "책갈피 선택",
+DlgLnkAnchorByName	: "책갈피 이름",
+DlgLnkAnchorById	: "책갈피 ID",
+DlgLnkNoAnchors		: "<문서에 책갈피가 없습니다.>",
+DlgLnkEMail			: "이메일 주소",
+DlgLnkEMailSubject	: "제목",
+DlgLnkEMailBody		: "내용",
+DlgLnkUpload		: "업로드",
+DlgLnkBtnUpload		: "서버로 전송",
+
+DlgLnkTarget		: "타겟",
+DlgLnkTargetFrame	: "<프레임>",
+DlgLnkTargetPopup	: "<팝업창>",
+DlgLnkTargetBlank	: "새 창 (_blank)",
+DlgLnkTargetParent	: "부모 창 (_parent)",
+DlgLnkTargetSelf	: "현재 창 (_self)",
+DlgLnkTargetTop		: "최 상위 창 (_top)",
+DlgLnkTargetFrameName	: "타겟 프레임 이름",
+DlgLnkPopWinName	: "팝업창 이름",
+DlgLnkPopWinFeat	: "팝업창 설정",
+DlgLnkPopResize		: "크기조정",
+DlgLnkPopLocation	: "주소표시줄",
+DlgLnkPopMenu		: "메뉴바",
+DlgLnkPopScroll		: "스크롤바",
+DlgLnkPopStatus		: "상태바",
+DlgLnkPopToolbar	: "툴바",
+DlgLnkPopFullScrn	: "전체화면 (IE)",
+DlgLnkPopDependent	: "Dependent (Netscape)",
+DlgLnkPopWidth		: "너비",
+DlgLnkPopHeight		: "높이",
+DlgLnkPopLeft		: "왼쪽 위치",
+DlgLnkPopTop		: "윗쪽 위치",
+
+DlnLnkMsgNoUrl		: "링크 URL을 입력하십시요.",
+DlnLnkMsgNoEMail	: "이메일주소를 입력하십시요.",
+DlnLnkMsgNoAnchor	: "책갈피명을 입력하십시요.",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "색상 선택",
+DlgColorBtnClear	: "지우기",
+DlgColorHighlight	: "현재",
+DlgColorSelected	: "선택됨",
+
+// Smiley Dialog
+DlgSmileyTitle		: "아이콘 삽입",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "특수문자 선택",
+
+// Table Dialog
+DlgTableTitle		: "표 설정",
+DlgTableRows		: "가로줄",
+DlgTableColumns		: "세로줄",
+DlgTableBorder		: "테두리 크기",
+DlgTableAlign		: "정렬",
+DlgTableAlignNotSet	: "<설정되지 않음>",
+DlgTableAlignLeft	: "왼쪽",
+DlgTableAlignCenter	: "가운데",
+DlgTableAlignRight	: "오른쪽",
+DlgTableWidth		: "너비",
+DlgTableWidthPx		: "픽셀",
+DlgTableWidthPc		: "퍼센트",
+DlgTableHeight		: "높이",
+DlgTableCellSpace	: "셀 간격",
+DlgTableCellPad		: "셀 여백",
+DlgTableCaption		: "캡션",
+DlgTableSummary		: "Summary",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "셀 설정",
+DlgCellWidth		: "너비",
+DlgCellWidthPx		: "픽셀",
+DlgCellWidthPc		: "퍼센트",
+DlgCellHeight		: "높이",
+DlgCellWordWrap		: "워드랩",
+DlgCellWordWrapNotSet	: "<설정되지 않음>",
+DlgCellWordWrapYes	: "예",
+DlgCellWordWrapNo	: "아니오",
+DlgCellHorAlign		: "수평 정렬",
+DlgCellHorAlignNotSet	: "<설정되지 않음>",
+DlgCellHorAlignLeft	: "왼쪽",
+DlgCellHorAlignCenter	: "가운데",
+DlgCellHorAlignRight: "오른쪽",
+DlgCellVerAlign		: "수직 정렬",
+DlgCellVerAlignNotSet	: "<설정되지 않음>",
+DlgCellVerAlignTop	: "위",
+DlgCellVerAlignMiddle	: "중간",
+DlgCellVerAlignBottom	: "아래",
+DlgCellVerAlignBaseline	: "기준선",
+DlgCellRowSpan		: "세로 합치기",
+DlgCellCollSpan		: "가로 합치기",
+DlgCellBackColor	: "배경 색상",
+DlgCellBorderColor	: "테두리 색상",
+DlgCellBtnSelect	: "선택",
+
+// Find Dialog
+DlgFindTitle		: "찾기",
+DlgFindFindBtn		: "찾기",
+DlgFindNotFoundMsg	: "문자열을 찾을 수 없습니다.",
+
+// Replace Dialog
+DlgReplaceTitle			: "바꾸기",
+DlgReplaceFindLbl		: "찾을 문자열:",
+DlgReplaceReplaceLbl	: "바꿀 문자열:",
+DlgReplaceCaseChk		: "대소문자 구분",
+DlgReplaceReplaceBtn	: "바꾸기",
+DlgReplaceReplAllBtn	: "모두 바꾸기",
+DlgReplaceWordChk		: "온전한 단어",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "브라우저의 보안설정때문에 붙여넣기 기능을 실행할 수 없습니다. 키보드 명령을 사용하십시요. (Ctrl+V).",
+PasteErrorCut	: "브라우저의 보안설정때문에 잘라내기 기능을 실행할 수 없습니다. 키보드 명령을 사용하십시요. (Ctrl+X).",
+PasteErrorCopy	: "브라우저의 보안설정때문에 복사하기 기능을 실행할 수 없습니다. 키보드 명령을 사용하십시요.  (Ctrl+C).",
+
+PasteAsText		: "텍스트로 붙여넣기",
+PasteFromWord	: "MS Word 형식에서 붙여넣기",
+
+DlgPasteMsg2	: "키보드의 (<STRONG>Ctrl+V</STRONG>) 를 이용해서 상자안에 붙여넣고 <STRONG>OK</STRONG> 를 누르세요.",
+DlgPasteIgnoreFont		: "폰트 설정 무시",
+DlgPasteRemoveStyles	: "스타일 정의 제거",
+DlgPasteCleanBox		: "글상자 제거",
+
+// Color Picker
+ColorAutomatic	: "기본색상",
+ColorMoreColors	: "색상선택...",
+
+// Document Properties
+DocProps		: "문서 속성",
+
+// Anchor Dialog
+DlgAnchorTitle		: "책갈피 속성",
+DlgAnchorName		: "책갈피 이름",
+DlgAnchorErrorName	: "책갈피 이름을 입력하십시요.",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "사전에 없는 단어",
+DlgSpellChangeTo		: "변경할 단어",
+DlgSpellBtnIgnore		: "건너뜀",
+DlgSpellBtnIgnoreAll	: "모두 건너뜀",
+DlgSpellBtnReplace		: "변경",
+DlgSpellBtnReplaceAll	: "모두 변경",
+DlgSpellBtnUndo			: "취소",
+DlgSpellNoSuggestions	: "- 추천단어 없음 -",
+DlgSpellProgress		: "철자검사를 진행중입니다...",
+DlgSpellNoMispell		: "철자검사 완료: 잘못된 철자가 없습니다.",
+DlgSpellNoChanges		: "철자검사 완료: 변경된 단어가 없습니다.",
+DlgSpellOneChange		: "철자검사 완료: 단어가 변경되었습니다.",
+DlgSpellManyChanges		: "철자검사 완료: %1 단어가 변경되었습니다.",
+
+IeSpellDownload			: "철자 검사기가 철치되지 않았습니다. 지금 다운로드하시겠습니까?",
+
+// Button Dialog
+DlgButtonText		: "버튼글자(값)",
+DlgButtonType		: "버튼종류",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "이름",
+DlgCheckboxValue	: "값",
+DlgCheckboxSelected	: "선택됨",
+
+// Form Dialog
+DlgFormName		: "폼이름",
+DlgFormAction	: "실행경로(Action)",
+DlgFormMethod	: "방법(Method)",
+
+// Select Field Dialog
+DlgSelectName		: "이름",
+DlgSelectValue		: "값",
+DlgSelectSize		: "세로크기",
+DlgSelectLines		: "줄",
+DlgSelectChkMulti	: "여러항목 선택 허용",
+DlgSelectOpAvail	: "선택옵션",
+DlgSelectOpText		: "이름",
+DlgSelectOpValue	: "값",
+DlgSelectBtnAdd		: "추가",
+DlgSelectBtnModify	: "변경",
+DlgSelectBtnUp		: "위로",
+DlgSelectBtnDown	: "아래로",
+DlgSelectBtnSetValue : "선택된것으로 설정",
+DlgSelectBtnDelete	: "삭제",
+
+// Textarea Dialog
+DlgTextareaName	: "이름",
+DlgTextareaCols	: "칸수",
+DlgTextareaRows	: "줄수",
+
+// Text Field Dialog
+DlgTextName			: "이름",
+DlgTextValue		: "값",
+DlgTextCharWidth	: "글자 너비",
+DlgTextMaxChars		: "최대 글자수",
+DlgTextType			: "종류",
+DlgTextTypeText		: "문자열",
+DlgTextTypePass		: "비밀번호",
+
+// Hidden Field Dialog
+DlgHiddenName	: "이름",
+DlgHiddenValue	: "값",
+
+// Bulleted List Dialog
+BulletedListProp	: "순서없는 목록 속성",
+NumberedListProp	: "순서있는 목록 속성",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "종류",
+DlgLstTypeCircle	: "원(Circle)",
+DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeSquare	: "네모점(Square)",
+DlgLstTypeNumbers	: "번호 (1, 2, 3)",
+DlgLstTypeLCase		: "소문자 (a, b, c)",
+DlgLstTypeUCase		: "대문자 (A, B, C)",
+DlgLstTypeSRoman	: "로마자 수문자 (i, ii, iii)",
+DlgLstTypeLRoman	: "로마자 대문자 (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "일반",
+DlgDocBackTab		: "배경",
+DlgDocColorsTab		: "색상 및 여백",
+DlgDocMetaTab		: "메타데이터",
+
+DlgDocPageTitle		: "페이지명",
+DlgDocLangDir		: "문자 쓰기방향",
+DlgDocLangDirLTR	: "왼쪽에서 오른쪽 (LTR)",
+DlgDocLangDirRTL	: "오른쪽에서 왼쪽 (RTL)",
+DlgDocLangCode		: "언어코드",
+DlgDocCharSet		: "캐릭터셋 인코딩",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "다른 캐릭터셋 인코딩",
+
+DlgDocDocType		: "문서 헤드",
+DlgDocDocTypeOther	: "다른 문서헤드",
+DlgDocIncXHTML		: "XHTML 문서정의 포함",
+DlgDocBgColor		: "배경색상",
+DlgDocBgImage		: "배경이미지 URL",
+DlgDocBgNoScroll	: "스크롤되지않는 배경",
+DlgDocCText			: "텍스트",
+DlgDocCLink			: "링크",
+DlgDocCVisited		: "방문한 링크(Visited)",
+DlgDocCActive		: "활성화된 링크(Active)",
+DlgDocMargins		: "페이지 여백",
+DlgDocMaTop			: "위",
+DlgDocMaLeft		: "왼쪽",
+DlgDocMaRight		: "오른쪽",
+DlgDocMaBottom		: "아래",
+DlgDocMeIndex		: "문서 키워드 (콤마로 구분)",
+DlgDocMeDescr		: "문서 설명",
+DlgDocMeAuthor		: "작성자",
+DlgDocMeCopy		: "저작권",
+DlgDocPreview		: "미리보기",
+
+// Templates Dialog
+Templates			: "템플릿",
+DlgTemplatesTitle	: "내용 템플릿",
+DlgTemplatesSelMsg	: "에디터에서 사용할 템플릿을 선택하십시요.<br>(지금까지 작성된 내용은 사라집니다.):",
+DlgTemplatesLoading	: "템플릿 목록을 불러오는중입니다. 잠시만 기다려주십시요.",
+DlgTemplatesNoTpl	: "(템플릿이 없습니다.)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "About",
+DlgAboutBrowserInfoTab	: "브라우저 정보",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "버전",
+DlgAboutLicense		: "Licensed under the terms of the GNU Lesser General Public License",
+DlgAboutInfo		: "For further information go to"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/eu.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/eu.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/eu.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: eu.js
+ * 	Basque language file.
+ * 	Euskara hizkuntza fitxategia.
+ * 
+ * File Authors:
+ * 		Ibon Igartua (Librezale.org)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Estutu Tresna Barra",
+ToolbarExpand		: "Hedatu Tresna Barra",
+
+// Toolbar Items and Context Menu
+Save				: "Gorde",
+NewPage				: "Orrialde Berria",
+Preview				: "Aurrebista",
+Cut					: "Ebaki",
+Copy				: "Kopiatu",
+Paste				: "Itsatsi",
+PasteText			: "Itsatsi testu bezala",
+PasteWord			: "Itsatsi Word-etik",
+Print				: "Inprimatu",
+SelectAll			: "Hautatu dena",
+RemoveFormat		: "Kendu Formatoa",
+InsertLinkLbl		: "Esteka",
+InsertLink			: "Txertatu/Editatu Esteka",
+RemoveLink			: "Kendu Esteka",
+Anchor				: "Aingura",
+InsertImageLbl		: "Irudia",
+InsertImage			: "Txertatu/Editatu Irudia",
+InsertFlashLbl		: "Flasha",
+InsertFlash			: "Txertatu/Editatu Flasha",
+InsertTableLbl		: "Taula",
+InsertTable			: "Txertatu/Editatu Taula",
+InsertLineLbl		: "Lerroa",
+InsertLine			: "Txertatu Marra Horizontala",
+InsertSpecialCharLbl: "Karaktere Berezia",
+InsertSpecialChar	: "Txertatu Karaktere Berezia",
+InsertSmileyLbl		: "Aurpegierak",
+InsertSmiley		: "Txertatu Aurpegierak",
+About				: "FCKeditor-ri buruz",
+Bold				: "Lodia",
+Italic				: "Etzana",
+Underline			: "Azpimarratu",
+StrikeThrough		: "Marratua",
+Subscript			: "Azpi-indize",
+Superscript			: "Goi-indize",
+LeftJustify			: "Lerrokatu Ezkerrean",
+CenterJustify		: "Lerrokatu Erdian",
+RightJustify		: "Lerrokatu Eskuman",
+BlockJustify		: "Justifikatu",
+DecreaseIndent		: "Txikitu Koska",
+IncreaseIndent		: "Handitu Koska",
+Undo				: "Desegin",
+Redo				: "Berregin",
+NumberedListLbl		: "Zenbakidun Zerrenda",
+NumberedList		: "Txertatu/Kendu Zenbakidun zerrenda",
+BulletedListLbl		: "Buletdun Zerrenda",
+BulletedList		: "Txertatu/Kendu Buletdun zerrenda",
+ShowTableBorders	: "Erakutsi Taularen Ertzak",
+ShowDetails			: "Erakutsi Xehetasunak",
+Style				: "Estiloa",
+FontFormat			: "Formatoa",
+Font				: "Letra-tipoa",
+FontSize			: "Tamaina",
+TextColor			: "Testu Kolorea",
+BGColor				: "Atzeko kolorea",
+Source				: "HTML Iturburua",
+Find				: "Bilatu",
+Replace				: "Ordezkatu",
+SpellCheck			: "Ortografia",
+UniversalKeyboard	: "Teklatu Unibertsala",
+PageBreakLbl		: "Orrialde-jauzia",
+PageBreak			: "Txertatu Orrialde-jauzia",
+
+Form			: "Formularioa",
+Checkbox		: "Kontrol-laukia",
+RadioButton		: "Aukera-botoia",
+TextField		: "Testu Eremua",
+Textarea		: "Testu-area",
+HiddenField		: "Ezkutuko Eremua",
+Button			: "Botoia",
+SelectionField	: "Hautespen Eremua",
+ImageButton		: "Irudi Botoia",
+
+FitWindow		: "Maximizatu editorearen tamaina",
+
+// Context Menu
+EditLink			: "Aldatu Esteka",
+CellCM				: "Gelaxka",
+RowCM				: "Errenkada",
+ColumnCM			: "Zutabea",
+InsertRow			: "Txertatu Errenkada",
+DeleteRows			: "Ezabatu Errenkadak",
+InsertColumn		: "Txertatu Zutabea",
+DeleteColumns		: "Ezabatu Zutabeak",
+InsertCell			: "Txertatu Gelaxka",
+DeleteCells			: "Kendu Gelaxkak",
+MergeCells			: "Batu Gelaxkak",
+SplitCell			: "Zatitu Gelaxka",
+TableDelete			: "Ezabatu Taula",
+CellProperties		: "Gelaxkaren Ezaugarriak",
+TableProperties		: "Taularen Ezaugarriak",
+ImageProperties		: "Irudiaren Ezaugarriak",
+FlashProperties		: "Flasharen Ezaugarriak",
+
+AnchorProp			: "Ainguraren Ezaugarriak",
+ButtonProp			: "Botoiaren Ezaugarriak",
+CheckboxProp		: "Kontrol-laukiko Ezaugarriak",
+HiddenFieldProp		: "Ezkutuko Eremuaren Ezaugarriak",
+RadioButtonProp		: "Aukera-botoiaren Ezaugarriak",
+ImageButtonProp		: "Irudi Botoiaren Ezaugarriak",
+TextFieldProp		: "Testu Eremuaren Ezaugarriak",
+SelectionFieldProp	: "Hautespen Eremuaren Ezaugarriak",
+TextareaProp		: "Testu-arearen Ezaugarriak",
+FormProp			: "Formularioaren Ezaugarriak",
+
+FontFormats			: "Arrunta;Formateatua;Helbidea;Izenburua 1;Izenburua 2;Izenburua 3;Izenburua 4;Izenburua 5;Izenburua 6;Paragrafoa (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML Prozesatzen. Itxaron mesedez...",
+Done				: "Eginda",
+PasteWordConfirm	: "Itsatsi nahi duzun textua Wordetik hartua dela dirudi. Itsatsi baino lehen garbitu nahi duzu?",
+NotCompatiblePaste	: "Komando hau Internet Explorer 5.5 bertsiorako edo ondorengoentzako erabilgarria dago. Garbitu gabe itsatsi nahi duzu?",
+UnknownToolbarItem	: "Ataza barrako elementu ezezaguna \"%1\"",
+UnknownCommand		: "Komando izen ezezaguna \"%1\"",
+NotImplemented		: "Komando ez inplementatua",
+UnknownToolbarSet	: "Ataza barra \"%1\" taldea ez da existitzen",
+NoActiveX			: "Zure nabigatzailearen segustasun hobespenak editore honen zenbait ezaugarri mugatu ditzake. \"ActiveX kontrolak eta plug-inak\" aktibatu beharko zenituzke, bestela erroreak eta ezaugarrietan mugak egon daitezke.",
+BrowseServerBlocked : "Baliabideen arakatzailea ezin da ireki. Ziurtatu popup blokeatzaileak desgaituta dituzula.",
+DialogBlocked		: "Ezin da elkarrizketa-leihoa ireki. Ziurtatu popup blokeatzaileak desgaituta dituzula.",
+
+// Dialogs
+DlgBtnOK			: "Ados",
+DlgBtnCancel		: "Utzi",
+DlgBtnClose			: "Itxi",
+DlgBtnBrowseServer	: "Zerbitzaria arakatu",
+DlgAdvancedTag		: "Aurreratua",
+DlgOpOther			: "<Bestelakoak>",
+DlgInfoTab			: "Informazioa",
+DlgAlertUrl			: "Mesedez URLa idatzi ezazu",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<Ezarri gabe>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Hizkuntzaren Norabidea",
+DlgGenLangDirLtr	: "Ezkerretik Eskumara(LTR)",
+DlgGenLangDirRtl	: "Eskumatik Ezkerrera (RTL)",
+DlgGenLangCode		: "Hizkuntza Kodea",
+DlgGenAccessKey		: "Sarbide-gakoa",
+DlgGenName			: "Izena",
+DlgGenTabIndex		: "Tabulazio Indizea",
+DlgGenLongDescr		: "URL Deskribapen Luzea",
+DlgGenClass			: "Estilo-orriko Klaseak",
+DlgGenTitle			: "Izenburua",
+DlgGenContType		: "Eduki Mota (Content Type)",
+DlgGenLinkCharset	: "Estekatutako Karaktere Multzoa",
+DlgGenStyle			: "Estiloa",
+
+// Image Dialog
+DlgImgTitle			: "Irudi Ezaugarriak",
+DlgImgInfoTab		: "Irudi informazioa",
+DlgImgBtnUpload		: "Zerbitzarira bidalia",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Gora Kargatu",
+DlgImgAlt			: "Textu Alternatiboa",
+DlgImgWidth			: "Zabalera",
+DlgImgHeight		: "Altuera",
+DlgImgLockRatio		: "Erlazioa Blokeatu",
+DlgBtnResetSize		: "Tamaina Berrezarri",
+DlgImgBorder		: "Ertza",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Lerrokatu",
+DlgImgAlignLeft		: "Ezkerrera",
+DlgImgAlignAbsBottom: "Abs Behean",
+DlgImgAlignAbsMiddle: "Abs Erdian",
+DlgImgAlignBaseline	: "Oinan",
+DlgImgAlignBottom	: "Behean",
+DlgImgAlignMiddle	: "Erdian",
+DlgImgAlignRight	: "Eskuman",
+DlgImgAlignTextTop	: "Testua Goian",
+DlgImgAlignTop		: "Goian",
+DlgImgPreview		: "Aurrebista",
+DlgImgAlertUrl		: "Mesedez Irudiaren URLa idatzi",
+DlgImgLinkTab		: "Esteka",
+
+// Flash Dialog
+DlgFlashTitle		: "Flasharen Ezaugarriak",
+DlgFlashChkPlay		: "Automatikoki Erreproduzitu",
+DlgFlashChkLoop		: "Begizta",
+DlgFlashChkMenu		: "Flasharen Menua Gaitu",
+DlgFlashScale		: "Eskalatu",
+DlgFlashScaleAll	: "Dena erakutsi",
+DlgFlashScaleNoBorder	: "Ertzarik gabe",
+DlgFlashScaleFit	: "Doitu",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Esteka",
+DlgLnkInfoTab		: "Estekaren Informazioa",
+DlgLnkTargetTab		: "Helburua",
+
+DlgLnkType			: "Esteka Mota",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Aingura horrialde honentan",
+DlgLnkTypeEMail		: "ePosta",
+DlgLnkProto			: "Protokoloa",
+DlgLnkProtoOther	: "<Beste batzuk>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Aingura bat hautatu",
+DlgLnkAnchorByName	: "Aingura izenagatik",
+DlgLnkAnchorById	: "Elementuaren ID-gatik",
+DlgLnkNoAnchors		: "<Ez daude aingurak eskuragarri dokumentuan>",
+DlgLnkEMail			: "ePosta Helbidea",
+DlgLnkEMailSubject	: "Mezuaren Gaia",
+DlgLnkEMailBody		: "Mezuaren Gorputza",
+DlgLnkUpload		: "Gora kargatu",
+DlgLnkBtnUpload		: "Zerbitzarira bidali",
+
+DlgLnkTarget		: "Target (Helburua)",
+DlgLnkTargetFrame	: "<marko>",
+DlgLnkTargetPopup	: "<popup lehioa>",
+DlgLnkTargetBlank	: "Lehio Berria (_blank)",
+DlgLnkTargetParent	: "Lehio Gurasoa (_parent)",
+DlgLnkTargetSelf	: "Lehio Berdina (_self)",
+DlgLnkTargetTop		: "Goiko Lehioa (_top)",
+DlgLnkTargetFrameName	: "Marko Helburuaren Izena",
+DlgLnkPopWinName	: "Popup Lehioaren Izena",
+DlgLnkPopWinFeat	: "Popup Lehioaren Ezaugarriak",
+DlgLnkPopResize		: "Tamaina Aldakorra",
+DlgLnkPopLocation	: "Kokaleku Barra",
+DlgLnkPopMenu		: "Menu Barra",
+DlgLnkPopScroll		: "Korritze Barrak",
+DlgLnkPopStatus		: "Egoera Barra",
+DlgLnkPopToolbar	: "Tresna Barra",
+DlgLnkPopFullScrn	: "Pantaila Osoa (IE)",
+DlgLnkPopDependent	: "Menpekoa (Netscape)",
+DlgLnkPopWidth		: "Zabalera",
+DlgLnkPopHeight		: "Altuera",
+DlgLnkPopLeft		: "Ezkerreko  Posizioa",
+DlgLnkPopTop		: "Goiko Posizioa",
+
+DlnLnkMsgNoUrl		: "Mesedez URL esteka idatzi",
+DlnLnkMsgNoEMail	: "Mesedez ePosta helbidea idatzi",
+DlnLnkMsgNoAnchor	: "Mesedez aingura bat aukeratu",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Kolore Aukeraketa",
+DlgColorBtnClear	: "Garbitu",
+DlgColorHighlight	: "Nabarmendu",
+DlgColorSelected	: "Aukeratuta",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Aurpegiera Sartu",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Karaktere Berezia Aukeratu",
+
+// Table Dialog
+DlgTableTitle		: "Taularen Ezaugarriak",
+DlgTableRows		: "Lerroak",
+DlgTableColumns		: "Zutabeak",
+DlgTableBorder		: "Ertzaren Zabalera",
+DlgTableAlign		: "Lerrokatu",
+DlgTableAlignNotSet	: "<Ezarri gabe>",
+DlgTableAlignLeft	: "Ezkerrean",
+DlgTableAlignCenter	: "Erdian",
+DlgTableAlignRight	: "Eskuman",
+DlgTableWidth		: "Zabalera",
+DlgTableWidthPx		: "pixel",
+DlgTableWidthPc		: "ehuneko",
+DlgTableHeight		: "Altuera",
+DlgTableCellSpace	: "Gelaxka arteko tartea",
+DlgTableCellPad		: "Gelaxken betegarria",
+DlgTableCaption		: "Epigrafea",
+DlgTableSummary		: "Laburpena",
+
+// Table Cell Dialog
+DlgCellTitle		: "Gelaxken Ezaugarriak",
+DlgCellWidth		: "Zabalera",
+DlgCellWidthPx		: "pixel",
+DlgCellWidthPc		: "ehuneko",
+DlgCellHeight		: "Altuera",
+DlgCellWordWrap		: "Itzulbira",
+DlgCellWordWrapNotSet	: "<Ezarri gabe>",
+DlgCellWordWrapYes	: "Bai",
+DlgCellWordWrapNo	: "Ez",
+DlgCellHorAlign		: "Horizontal Alignment",
+DlgCellHorAlignNotSet	: "<Ezarri gabe>",
+DlgCellHorAlignLeft	: "Ezkerrean",
+DlgCellHorAlignCenter	: "Erdian",
+DlgCellHorAlignRight: "Eskuman",
+DlgCellVerAlign		: "Lerrokatu Bertikalki",
+DlgCellVerAlignNotSet	: "<Ezarri gabe>",
+DlgCellVerAlignTop	: "Goian",
+DlgCellVerAlignMiddle	: "Erdian",
+DlgCellVerAlignBottom	: "Behean",
+DlgCellVerAlignBaseline	: "Oinan",
+DlgCellRowSpan		: "Lerroak Hedatu",
+DlgCellCollSpan		: "Zutabeak Hedatu",
+DlgCellBackColor	: "Atzeko Kolorea",
+DlgCellBorderColor	: "Ertzako Kolorea",
+DlgCellBtnSelect	: "Aukertau...",
+
+// Find Dialog
+DlgFindTitle		: "Bilaketa",
+DlgFindFindBtn		: "Bilatu",
+DlgFindNotFoundMsg	: "Idatzitako testua ez da topatu.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Ordeztu",
+DlgReplaceFindLbl		: "Zer bilatu:",
+DlgReplaceReplaceLbl	: "Zerekin ordeztu:",
+DlgReplaceCaseChk		: "Maiuskula/minuskula",
+DlgReplaceReplaceBtn	: "Ordeztu",
+DlgReplaceReplAllBtn	: "Ordeztu Guztiak",
+DlgReplaceWordChk		: "Esaldi osoa bilatu",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki itsastea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+V).",
+PasteErrorCut	: "Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki moztea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+X).",
+PasteErrorCopy	: "Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki kopiatzea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+C).",
+
+PasteAsText		: "Testu Arrunta bezala Itsatsi",
+PasteFromWord	: "Word-etik itsatsi",
+
+DlgPasteMsg2	: "Mesedez teklatua erabilita (<STRONG>Ctrl+V</STRONG>) ondorego eremuan testua itsatsi eta <STRONG>OK</STRONG> sakatu.",
+DlgPasteIgnoreFont		: "Letra Motaren definizioa ezikusi",
+DlgPasteRemoveStyles	: "Estilo definizioak kendu",
+DlgPasteCleanBox		: "Testu-eremua Garbitu",
+
+// Color Picker
+ColorAutomatic	: "Automatikoa",
+ColorMoreColors	: "Kolore gehiago...",
+
+// Document Properties
+DocProps		: "Dokumentuaren Ezarpenak",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ainguraren Ezaugarriak",
+DlgAnchorName		: "Ainguraren Izena",
+DlgAnchorErrorName	: "Idatzi ainguraren izena",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Ez dago hiztegian",
+DlgSpellChangeTo		: "Honekin ordezkatu",
+DlgSpellBtnIgnore		: "Ezikusi",
+DlgSpellBtnIgnoreAll	: "Denak Ezikusi",
+DlgSpellBtnReplace		: "Ordezkatu",
+DlgSpellBtnReplaceAll	: "Denak Ordezkatu",
+DlgSpellBtnUndo			: "Desegin",
+DlgSpellNoSuggestions	: "- Iradokizunik ez -",
+DlgSpellProgress		: "Zuzenketa ortografikoa martxan...",
+DlgSpellNoMispell		: "Zuzenketa ortografikoa bukatuta: Akatsik ez",
+DlgSpellNoChanges		: "Zuzenketa ortografikoa bukatuta: Ez da ezer aldatu",
+DlgSpellOneChange		: "Zuzenketa ortografikoa bukatuta: Hitz bat aldatu da",
+DlgSpellManyChanges		: "Zuzenketa ortografikoa bukatuta: %1 hitz aldatu dira",
+
+IeSpellDownload			: "Zuzentzaile ortografikoa ez dago instalatuta. Deskargatu nahi duzu?",
+
+// Button Dialog
+DlgButtonText		: "Testua (Balorea)",
+DlgButtonType		: "Mota",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Izena",
+DlgCheckboxValue	: "Balorea",
+DlgCheckboxSelected	: "Hautatuta",
+
+// Form Dialog
+DlgFormName		: "Izena",
+DlgFormAction	: "Ekintza",
+DlgFormMethod	: "Method",
+
+// Select Field Dialog
+DlgSelectName		: "Izena",
+DlgSelectValue		: "Balorea",
+DlgSelectSize		: "Tamaina",
+DlgSelectLines		: "lerro kopurura",
+DlgSelectChkMulti	: "Hautaketa anitzak baimendu",
+DlgSelectOpAvail	: "Aukera Eskuragarriak",
+DlgSelectOpText		: "Testua",
+DlgSelectOpValue	: "Balorea",
+DlgSelectBtnAdd		: "Gehitu",
+DlgSelectBtnModify	: "Aldatu",
+DlgSelectBtnUp		: "Gora",
+DlgSelectBtnDown	: "Behera",
+DlgSelectBtnSetValue : "Aukeratutako balorea ezarri",
+DlgSelectBtnDelete	: "Ezabatu",
+
+// Textarea Dialog
+DlgTextareaName	: "Izena",
+DlgTextareaCols	: "Zutabeak",
+DlgTextareaRows	: "Lerroak",
+
+// Text Field Dialog
+DlgTextName			: "Izena",
+DlgTextValue		: "Balorea",
+DlgTextCharWidth	: "Zabalera",
+DlgTextMaxChars		: "Zenbat karaktere gehienez",
+DlgTextType			: "Mota",
+DlgTextTypeText		: "Testua",
+DlgTextTypePass		: "Pasahitza",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Izena",
+DlgHiddenValue	: "Balorea",
+
+// Bulleted List Dialog
+BulletedListProp	: "Buletdun Zerrendaren Ezarpenak",
+NumberedListProp	: "Zenbakidun Zerrendaren Ezarpenak",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Mota",
+DlgLstTypeCircle	: "Zirkulua",
+DlgLstTypeDisc		: "Diskoa",
+DlgLstTypeSquare	: "Karratua",
+DlgLstTypeNumbers	: "Zenbakiak (1, 2, 3)",
+DlgLstTypeLCase		: "Letra xeheak (a, b, c)",
+DlgLstTypeUCase		: "Letra larriak (A, B, C)",
+DlgLstTypeSRoman	: "Erromatar zenbaki zeheak (i, ii, iii)",
+DlgLstTypeLRoman	: "Erromatar zenbaki larriak (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Orokorra",
+DlgDocBackTab		: "Atzekaldea",
+DlgDocColorsTab		: "Koloreak eta Marjinak",
+DlgDocMetaTab		: "Meta Informazioa",
+
+DlgDocPageTitle		: "Orriaren Izenburua",
+DlgDocLangDir		: "Hizkuntzaren Norabidea",
+DlgDocLangDirLTR	: "Ezkerretik eskumara (LTR)",
+DlgDocLangDirRTL	: "Eskumatik ezkerrera (RTL)",
+DlgDocLangCode		: "Hizkuntzaren Kodea",
+DlgDocCharSet		: "Karaktere Multzoaren Kodeketa",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Beste Karaktere Multzoaren Kodeketa",
+
+DlgDocDocType		: "Document Type Goiburua",
+DlgDocDocTypeOther	: "Beste Document Type Goiburua",
+DlgDocIncXHTML		: "XHTML Ezarpenak",
+DlgDocBgColor		: "Atzeko Kolorea",
+DlgDocBgImage		: "Atzeko Irudiaren URL-a",
+DlgDocBgNoScroll	: "Korritze gabeko Atzekaldea",
+DlgDocCText			: "Testua",
+DlgDocCLink			: "Estekak",
+DlgDocCVisited		: "Bisitatutako Estekak",
+DlgDocCActive		: "Esteka Aktiboa",
+DlgDocMargins		: "Orrialdearen marjinak",
+DlgDocMaTop			: "Goian",
+DlgDocMaLeft		: "Ezkerrean",
+DlgDocMaRight		: "Eskuman",
+DlgDocMaBottom		: "Behean",
+DlgDocMeIndex		: "Dokumentuaren Gako-hitzak (komarekin bananduta)",
+DlgDocMeDescr		: "Dokumentuaren Deskribapena",
+DlgDocMeAuthor		: "Egilea",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Aurrebista",
+
+// Templates Dialog
+Templates			: "Txantiloiak",
+DlgTemplatesTitle	: "Eduki Txantiloiak",
+DlgTemplatesSelMsg	: "Mesedez txantiloia aukeratu editorean kargatzeko<br>(orain dauden edukiak galduko dira):",
+DlgTemplatesLoading	: "Txantiloiak kargatzen. Itxaron mesedez...",
+DlgTemplatesNoTpl	: "(Ez dago definitutako txantiloirik)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Honi buruz",
+DlgAboutBrowserInfoTab	: "Nabigatzailearen Informazioa",
+DlgAboutLicenseTab	: "Lizentzia",
+DlgAboutVersion		: "bertsioa",
+DlgAboutLicense		: "GNU Lesser General Public License Lizentziapean",
+DlgAboutInfo		: "Informazio gehiago eskuratzeko hona joan"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/hu.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/hu.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/hu.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: hu.js
+ * 	Hungarian language file.
+ * 
+ * File Authors:
+ * 		Varga Zsolt (meridian@netteszt.hu)
+ * 		Géza Szűcs (flextor@flextor.hu)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Eszköztár elrejtése",
+ToolbarExpand		: "Eszköztár megjelenítése",
+
+// Toolbar Items and Context Menu
+Save				: "Mentés",
+NewPage				: "Új oldal",
+Preview				: "Előnézet",
+Cut					: "Kivágás",
+Copy				: "Másolás",
+Paste				: "Beillesztés",
+PasteText			: "Beillesztés formázás nélkül",
+PasteWord			: "Beillesztés Word-ből",
+Print				: "Nyomtatás",
+SelectAll			: "Mindent kijelöl",
+RemoveFormat		: "Formázás eltávolítása",
+InsertLinkLbl		: "Hivatkozás",
+InsertLink			: "Hivatkozás beillesztése/módosítása",
+RemoveLink			: "Hivatkozás törlése",
+Anchor				: "Horgony beillesztése/szerkesztése",
+InsertImageLbl		: "Kép",
+InsertImage			: "Kép beillesztése/módosítása",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Flash beillesztése, módosítása",
+InsertTableLbl		: "Táblázat",
+InsertTable			: "Táblázat beillesztése/módosítása",
+InsertLineLbl		: "Vonal",
+InsertLine			: "Elválasztóvonal beillesztése",
+InsertSpecialCharLbl: "Speciális karakter",
+InsertSpecialChar	: "Speciális karakter beillesztése",
+InsertSmileyLbl		: "Hangulatjelek",
+InsertSmiley		: "Hangulatjelek beillesztése",
+About				: "FCKeditor névjegy",
+Bold				: "Félkövér",
+Italic				: "Dőlt",
+Underline			: "Aláhúzott",
+StrikeThrough		: "Áthúzott",
+Subscript			: "Alsó index",
+Superscript			: "Felső index",
+LeftJustify			: "Balra",
+CenterJustify		: "Középre",
+RightJustify		: "Jobbra",
+BlockJustify		: "Sorkizárt",
+DecreaseIndent		: "Behúzás csökkentése",
+IncreaseIndent		: "Behúzás növelése",
+Undo				: "Visszavonás",
+Redo				: "Ismétlés",
+NumberedListLbl		: "Számozás",
+NumberedList		: "Számozás beillesztése/törlése",
+BulletedListLbl		: "Felsorolás",
+BulletedList		: "Felsorolás beillesztése/törlése",
+ShowTableBorders	: "Táblázat szegély mutatása",
+ShowDetails			: "Részletek mutatása",
+Style				: "Stílus",
+FontFormat			: "Formátum",
+Font				: "Betűtípus",
+FontSize			: "Méret",
+TextColor			: "Betűszín",
+BGColor				: "Háttérszín",
+Source				: "Forráskód",
+Find				: "Keresés",
+Replace				: "Csere",
+SpellCheck			: "Helyesírás-ellenőrzés",
+UniversalKeyboard	: "Univerzális billentyűzet",
+PageBreakLbl		: "Oldaltörés",
+PageBreak			: "Oldaltörés beillesztése",
+
+Form			: "Űrlap",
+Checkbox		: "Jelölőnégyzet",
+RadioButton		: "Választógomb",
+TextField		: "Szövegmező",
+Textarea		: "Szövegterület",
+HiddenField		: "Rejtettmező",
+Button			: "Gomb",
+SelectionField	: "Legördülő lista",
+ImageButton		: "Képgomb",
+
+FitWindow		: "Maximalizálás",
+
+// Context Menu
+EditLink			: "Hivatkozás módosítása",
+CellCM				: "Cella",
+RowCM				: "Sor",
+ColumnCM			: "Oszlop",
+InsertRow			: "Sor beszúrása",
+DeleteRows			: "Sorok törlése",
+InsertColumn		: "Oszlop beszúrása",
+DeleteColumns		: "Oszlopok törlése",
+InsertCell			: "Cella beszúrása",
+DeleteCells			: "Cellák törlése",
+MergeCells			: "Cellák egyesítése",
+SplitCell			: "Cella szétválasztása",
+TableDelete			: "Táblázat törlése",
+CellProperties		: "Cella tulajdonságai",
+TableProperties		: "Táblázat tulajdonságai",
+ImageProperties		: "Kép tulajdonságai",
+FlashProperties		: "Flash tulajdonságai",
+
+AnchorProp			: "Horgony tulajdonságai",
+ButtonProp			: "Gomb tulajdonságai",
+CheckboxProp		: "Jelölőnégyzet tulajdonságai",
+HiddenFieldProp		: "Rejtett mező tulajdonságai",
+RadioButtonProp		: "Választógomb tulajdonságai",
+ImageButtonProp		: "Képgomb tulajdonságai",
+TextFieldProp		: "Szövegmező tulajdonságai",
+SelectionFieldProp	: "Legördülő lista tulajdonságai",
+TextareaProp		: "Szövegterület tulajdonságai",
+FormProp			: "Űrlap tulajdonságai",
+
+FontFormats			: "Normál;Formázott;Címsor;Fejléc 1;Fejléc 2;Fejléc 3;Fejléc 4;Fejléc 5;Fejléc 6;Bekezdés (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML feldolgozása. Kérem várjon...",
+Done				: "Kész",
+PasteWordConfirm	: "A beilleszteni kívánt szöveg Word-ből van másolva. El kívánja távolítani a formázást a beillesztés előtt?",
+NotCompatiblePaste	: "Ez a parancs csak Internet Explorer 5.5 verziótól használható. Megpróbálja beilleszteni a szöveget az eredeti formázással?",
+UnknownToolbarItem	: "Ismeretlen eszköztár elem \"%1\"",
+UnknownCommand		: "Ismeretlen parancs \"%1\"",
+NotImplemented		: "A parancs nem hajtható végre",
+UnknownToolbarSet	: "Az eszközkészlet \"%1\" nem létezik",
+NoActiveX			: "A böngésző biztonsági beállításai korlátozzák a szerkesztő lehetőségeit. Engedélyezni kell ezt az opciót: \"Run ActiveX controls and plug-ins\". Ettől függetlenül előfordulhatnak hibaüzenetek ill. bizonyos funkciók hiányozhatnak.",
+BrowseServerBlocked : "Nem lehet megnyitni a fájlböngészőt. Bizonyosodjon meg róla, hogy a felbukkanó ablakok engedélyezve vannak.",
+DialogBlocked		: "Nem lehet megnyitni a párbeszédablakot. Bizonyosodjon meg róla, hogy a felbukkanó ablakok engedélyezve vannak.",
+
+// Dialogs
+DlgBtnOK			: "Rendben",
+DlgBtnCancel		: "Mégsem",
+DlgBtnClose			: "Bezárás",
+DlgBtnBrowseServer	: "Böngészés a szerveren",
+DlgAdvancedTag		: "További opciók",
+DlgOpOther			: "Egyéb",
+DlgInfoTab			: "Alaptulajdonságok",
+DlgAlertUrl			: "Illessze be a webcímet",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nincs beállítva>",
+DlgGenId			: "Azonosító",
+DlgGenLangDir		: "Írás iránya",
+DlgGenLangDirLtr	: "Balról jobbra",
+DlgGenLangDirRtl	: "Jobbról balra",
+DlgGenLangCode		: "Nyelv kódja",
+DlgGenAccessKey		: "Billentyűkombináció",
+DlgGenName			: "Név",
+DlgGenTabIndex		: "Tabulátor index",
+DlgGenLongDescr		: "Részletes leírás webcíme",
+DlgGenClass			: "Stíluskészlet",
+DlgGenTitle			: "Súgócimke",
+DlgGenContType		: "Súgó tartalomtípusa",
+DlgGenLinkCharset	: "Hivatkozott tartalom kódlapja",
+DlgGenStyle			: "Stílus",
+
+// Image Dialog
+DlgImgTitle			: "Kép tulajdonságai",
+DlgImgInfoTab		: "Alaptulajdonságok",
+DlgImgBtnUpload		: "Küldés a szerverre",
+DlgImgURL			: "Hivatkozás",
+DlgImgUpload		: "Feltöltés",
+DlgImgAlt			: "Buborék szöveg",
+DlgImgWidth			: "Szélesség",
+DlgImgHeight		: "Magasság",
+DlgImgLockRatio		: "Arány megtartása",
+DlgBtnResetSize		: "Eredeti méret",
+DlgImgBorder		: "Keret",
+DlgImgHSpace		: "Vízsz. táv",
+DlgImgVSpace		: "Függ. táv",
+DlgImgAlign			: "Igazítás",
+DlgImgAlignLeft		: "Bal",
+DlgImgAlignAbsBottom: "Legaljára",
+DlgImgAlignAbsMiddle: "Közepére",
+DlgImgAlignBaseline	: "Alapvonalhoz",
+DlgImgAlignBottom	: "Aljára",
+DlgImgAlignMiddle	: "Középre",
+DlgImgAlignRight	: "Jobbra",
+DlgImgAlignTextTop	: "Szöveg tetejére",
+DlgImgAlignTop		: "Tetejére",
+DlgImgPreview		: "Előnézet",
+DlgImgAlertUrl		: "Töltse ki a kép webcímét",
+DlgImgLinkTab		: "Hivatkozás",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash tulajdonságai",
+DlgFlashChkPlay		: "Automata lejátszás",
+DlgFlashChkLoop		: "Folyamatosan",
+DlgFlashChkMenu		: "Flash menü engedélyezése",
+DlgFlashScale		: "Méretezés",
+DlgFlashScaleAll	: "Mindent mutat",
+DlgFlashScaleNoBorder	: "Keret nélkül",
+DlgFlashScaleFit	: "Teljes kitöltés",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Hivatkozás tulajdonságai",
+DlgLnkInfoTab		: "Alaptulajdonságok",
+DlgLnkTargetTab		: "Megjelenítés",
+
+DlgLnkType			: "Hivatkozás típusa",
+DlgLnkTypeURL		: "Webcím",
+DlgLnkTypeAnchor	: "Horgony az oldalon",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protokoll",
+DlgLnkProtoOther	: "<más>",
+DlgLnkURL			: "Webcím",
+DlgLnkAnchorSel		: "Horgony választása",
+DlgLnkAnchorByName	: "Horgony név szerint",
+DlgLnkAnchorById	: "Azonosító szerint",
+DlgLnkNoAnchors		: "<Nincs horgony a dokumentumban>",
+DlgLnkEMail			: "E-Mail cím",
+DlgLnkEMailSubject	: "Üzenet tárgya",
+DlgLnkEMailBody		: "Üzenet",
+DlgLnkUpload		: "Feltöltés",
+DlgLnkBtnUpload		: "Küldés a szerverre",
+
+DlgLnkTarget		: "Tartalom megjelenítése",
+DlgLnkTargetFrame	: "<keretben>",
+DlgLnkTargetPopup	: "<felugró ablakban>",
+DlgLnkTargetBlank	: "Új ablakban (_blank)",
+DlgLnkTargetParent	: "Szülő ablakban (_parent)",
+DlgLnkTargetSelf	: "Azonos ablakban (_self)",
+DlgLnkTargetTop		: "Legfelső ablakban (_top)",
+DlgLnkTargetFrameName	: "Keret neve",
+DlgLnkPopWinName	: "Felugró ablak neve",
+DlgLnkPopWinFeat	: "Felugró ablak jellemzői",
+DlgLnkPopResize		: "Méretezhető",
+DlgLnkPopLocation	: "Címsor",
+DlgLnkPopMenu		: "Menü sor",
+DlgLnkPopScroll		: "Gördítősáv",
+DlgLnkPopStatus		: "Állapotsor",
+DlgLnkPopToolbar	: "Eszköztár",
+DlgLnkPopFullScrn	: "Teljes képernyő (csak IE)",
+DlgLnkPopDependent	: "Szülőhöz kapcsolt (csak Netscape)",
+DlgLnkPopWidth		: "Szélesség",
+DlgLnkPopHeight		: "Magasság",
+DlgLnkPopLeft		: "Bal pozíció",
+DlgLnkPopTop		: "Felső pozíció",
+
+DlnLnkMsgNoUrl		: "Adja meg a hivatkozás webcímét",
+DlnLnkMsgNoEMail	: "Adja meg az E-Mail címet",
+DlnLnkMsgNoAnchor	: "Válasszon egy horgonyt",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Színválasztás",
+DlgColorBtnClear	: "Törlés",
+DlgColorHighlight	: "Előnézet",
+DlgColorSelected	: "Kiválasztott",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Hangulatjel beszúrása",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Speciális karakter választása",
+
+// Table Dialog
+DlgTableTitle		: "Táblázat tulajdonságai",
+DlgTableRows		: "Sorok",
+DlgTableColumns		: "Oszlopok",
+DlgTableBorder		: "Szegélyméret",
+DlgTableAlign		: "Igazítás",
+DlgTableAlignNotSet	: "<Nincs beállítva>",
+DlgTableAlignLeft	: "Balra",
+DlgTableAlignCenter	: "Középre",
+DlgTableAlignRight	: "Jobbra",
+DlgTableWidth		: "Szélesség",
+DlgTableWidthPx		: "képpont",
+DlgTableWidthPc		: "százalék",
+DlgTableHeight		: "Magasság",
+DlgTableCellSpace	: "Cella térköz",
+DlgTableCellPad		: "Cella belső margó",
+DlgTableCaption		: "Felirat",
+DlgTableSummary		: "Leírás",
+
+// Table Cell Dialog
+DlgCellTitle		: "Cella tulajdonságai",
+DlgCellWidth		: "Szélesség",
+DlgCellWidthPx		: "képpont",
+DlgCellWidthPc		: "százalék",
+DlgCellHeight		: "Magasság",
+DlgCellWordWrap		: "Sortörés",
+DlgCellWordWrapNotSet	: "<Nincs beállítva>",
+DlgCellWordWrapYes	: "Igen",
+DlgCellWordWrapNo	: "Nem",
+DlgCellHorAlign		: "Vízsz. igazítás",
+DlgCellHorAlignNotSet	: "<Nincs beállítva>",
+DlgCellHorAlignLeft	: "Balra",
+DlgCellHorAlignCenter	: "Középre",
+DlgCellHorAlignRight: "Jobbra",
+DlgCellVerAlign		: "Függ. igazítás",
+DlgCellVerAlignNotSet	: "<Nincs beállítva>",
+DlgCellVerAlignTop	: "Tetejére",
+DlgCellVerAlignMiddle	: "Középre",
+DlgCellVerAlignBottom	: "Aljára",
+DlgCellVerAlignBaseline	: "Egyvonalba",
+DlgCellRowSpan		: "Sorok egyesítése",
+DlgCellCollSpan		: "Oszlopok egyesítése",
+DlgCellBackColor	: "Háttérszín",
+DlgCellBorderColor	: "Szegélyszín",
+DlgCellBtnSelect	: "Kiválasztás...",
+
+// Find Dialog
+DlgFindTitle		: "Keresés",
+DlgFindFindBtn		: "Keresés",
+DlgFindNotFoundMsg	: "A keresett szöveg nem található.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Csere",
+DlgReplaceFindLbl		: "Keresett szöveg:",
+DlgReplaceReplaceLbl	: "Csere erre:",
+DlgReplaceCaseChk		: "kis- és nagybetű megkülönböztetése",
+DlgReplaceReplaceBtn	: "Csere",
+DlgReplaceReplAllBtn	: "Az összes cseréje",
+DlgReplaceWordChk		: "csak ha ez a teljes szó",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a beillesztés műveletet. Használja az alábbi billentyűkombinációt (Ctrl+V).",
+PasteErrorCut	: "A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl+X).",
+PasteErrorCopy	: "A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl+X).",
+
+PasteAsText		: "Beillesztés formázatlan szövegként",
+PasteFromWord	: "Beillesztés Word-ből",
+
+DlgPasteMsg2	: "Másolja be az alábbi mezőbe a <STRONG>Ctrl+V</STRONG> billentyűk lenyomásával, majd nyomjon <STRONG>Rendben</STRONG>-t.",
+DlgPasteIgnoreFont		: "Betű formázások megszüntetése",
+DlgPasteRemoveStyles	: "Stílusok eltávolítása",
+DlgPasteCleanBox		: "Törlés",
+
+// Color Picker
+ColorAutomatic	: "Automatikus",
+ColorMoreColors	: "További színek...",
+
+// Document Properties
+DocProps		: "Dokumentum tulajdonságai",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Horgony tulajdonságai",
+DlgAnchorName		: "Horgony neve",
+DlgAnchorErrorName	: "Kérem adja meg a horgony nevét",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Nincs a szótárban",
+DlgSpellChangeTo		: "Módosítás",
+DlgSpellBtnIgnore		: "Kihagyja",
+DlgSpellBtnIgnoreAll	: "Mindet kihagyja",
+DlgSpellBtnReplace		: "Csere",
+DlgSpellBtnReplaceAll	: "Összes cseréje",
+DlgSpellBtnUndo			: "Visszavonás",
+DlgSpellNoSuggestions	: "Nincs javaslat",
+DlgSpellProgress		: "Helyesírás-ellenőrzés folyamatban...",
+DlgSpellNoMispell		: "Helyesírás-ellenőrzés kész: Nem találtam hibát",
+DlgSpellNoChanges		: "Helyesírás-ellenőrzés kész: Nincs változtatott szó",
+DlgSpellOneChange		: "Helyesírás-ellenőrzés kész: Egy szó cserélve",
+DlgSpellManyChanges		: "Helyesírás-ellenőrzés kész: %1 szó cserélve",
+
+IeSpellDownload			: "A helyesírás-ellenőrző nincs telepítve. Szeretné letölteni most?",
+
+// Button Dialog
+DlgButtonText		: "Szöveg (Érték)",
+DlgButtonType		: "Típus",
+DlgButtonTypeBtn	: "Gomb",
+DlgButtonTypeSbm	: "Küldés",
+DlgButtonTypeRst	: "Alaphelyzet",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Név",
+DlgCheckboxValue	: "Érték",
+DlgCheckboxSelected	: "Kiválasztott",
+
+// Form Dialog
+DlgFormName		: "Név",
+DlgFormAction	: "Adatfeldolgozást végző hivatkozás",
+DlgFormMethod	: "Adatküldés módja",
+
+// Select Field Dialog
+DlgSelectName		: "Név",
+DlgSelectValue		: "Érték",
+DlgSelectSize		: "Méret",
+DlgSelectLines		: "sor",
+DlgSelectChkMulti	: "több sor is kiválasztható",
+DlgSelectOpAvail	: "Elérhető opciók",
+DlgSelectOpText		: "Szöveg",
+DlgSelectOpValue	: "Érték",
+DlgSelectBtnAdd		: "Hozzáad",
+DlgSelectBtnModify	: "Módosít",
+DlgSelectBtnUp		: "Fel",
+DlgSelectBtnDown	: "Le",
+DlgSelectBtnSetValue : "Legyen az alapértelmezett érték",
+DlgSelectBtnDelete	: "Töröl",
+
+// Textarea Dialog
+DlgTextareaName	: "Név",
+DlgTextareaCols	: "Karakterek száma egy sorban",
+DlgTextareaRows	: "Sorok száma",
+
+// Text Field Dialog
+DlgTextName			: "Név",
+DlgTextValue		: "Érték",
+DlgTextCharWidth	: "Megjelenített karakterek száma",
+DlgTextMaxChars		: "Maximális karakterszám",
+DlgTextType			: "Típus",
+DlgTextTypeText		: "Szöveg",
+DlgTextTypePass		: "Jelszó",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Név",
+DlgHiddenValue	: "Érték",
+
+// Bulleted List Dialog
+BulletedListProp	: "Felsorolás tulajdonságai",
+NumberedListProp	: "Számozás tulajdonságai",
+DlgLstStart			: "Start",
+DlgLstType			: "Formátum",
+DlgLstTypeCircle	: "Kör",
+DlgLstTypeDisc		: "Lemez",
+DlgLstTypeSquare	: "Négyzet",
+DlgLstTypeNumbers	: "Számok (1, 2, 3)",
+DlgLstTypeLCase		: "Kisbetűk (a, b, c)",
+DlgLstTypeUCase		: "Nagybetűk (A, B, C)",
+DlgLstTypeSRoman	: "Kis római számok (i, ii, iii)",
+DlgLstTypeLRoman	: "Nagy római számok (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Általános",
+DlgDocBackTab		: "Háttér",
+DlgDocColorsTab		: "Színek és margók",
+DlgDocMetaTab		: "Meta adatok",
+
+DlgDocPageTitle		: "Oldalcím",
+DlgDocLangDir		: "Írás iránya",
+DlgDocLangDirLTR	: "Balról jobbra",
+DlgDocLangDirRTL	: "Jobbról balra",
+DlgDocLangCode		: "Nyelv kód",
+DlgDocCharSet		: "Karakterkódolás",
+DlgDocCharSetCE		: "Közép-Európai",
+DlgDocCharSetCT		: "Kínai Tradicionális (Big5)",
+DlgDocCharSetCR		: "Cyrill",
+DlgDocCharSetGR		: "Görög",
+DlgDocCharSetJP		: "Japán",
+DlgDocCharSetKR		: "Koreai",
+DlgDocCharSetTR		: "Török",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Nyugat-Európai",
+DlgDocCharSetOther	: "Más karakterkódolás",
+
+DlgDocDocType		: "Dokumentum típus fejléc",
+DlgDocDocTypeOther	: "Más dokumentum típus fejléc",
+DlgDocIncXHTML		: "XHTML deklarációk beillesztése",
+DlgDocBgColor		: "Háttérszín",
+DlgDocBgImage		: "Háttérkép cím",
+DlgDocBgNoScroll	: "Nem gördíthető háttér",
+DlgDocCText			: "Szöveg",
+DlgDocCLink			: "Cím",
+DlgDocCVisited		: "Látogatott cím",
+DlgDocCActive		: "Aktív cím",
+DlgDocMargins		: "Oldal margók",
+DlgDocMaTop			: "Felső",
+DlgDocMaLeft		: "Bal",
+DlgDocMaRight		: "Jobb",
+DlgDocMaBottom		: "Alsó",
+DlgDocMeIndex		: "Dokumentum keresőszavak (vesszővel elválasztva)",
+DlgDocMeDescr		: "Dokumentum leírás",
+DlgDocMeAuthor		: "Szerző",
+DlgDocMeCopy		: "Szerzői jog",
+DlgDocPreview		: "Előnézet",
+
+// Templates Dialog
+Templates			: "Sablonok",
+DlgTemplatesTitle	: "Elérhető sablonok",
+DlgTemplatesSelMsg	: "Válassza ki melyik sablon nyíljon meg a szerkesztőben<br>(a jelenlegi tartalom elveszik):",
+DlgTemplatesLoading	: "Sablon lista betöltése. Kis türelmet...",
+DlgTemplatesNoTpl	: "(Nincs sablon megadva)",
+DlgTemplatesReplace	: "Kicseréli a jelenlegi tartalmat",
+
+// About Dialog
+DlgAboutAboutTab	: "Névjegy",
+DlgAboutBrowserInfoTab	: "Böngésző információ",
+DlgAboutLicenseTab	: "Licensz",
+DlgAboutVersion		: "verzió",
+DlgAboutLicense		: "GNU Lesser General Public License szabadalom alá tartozik",
+DlgAboutInfo		: "További információkért látogasson el ide:"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/no.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/no.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/no.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: no.js
+ * 	Norwegian language file.
+ * 
+ * File Authors:
+ * 		Martin Kronstad (www.siteman.no) (martin.kronstad@gmail.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Skjul verktøylinje",
+ToolbarExpand		: "Vis verktøylinje",
+
+// Toolbar Items and Context Menu
+Save				: "Lagre",
+NewPage				: "Ny Side",
+Preview				: "Forhåndsvis",
+Cut					: "Klipp ut",
+Copy				: "Kopier",
+Paste				: "Lim inn",
+PasteText			: "Lim inn som ren tekst",
+PasteWord			: "Lim inn fra Word",
+Print				: "Skriv ut",
+SelectAll			: "Velg alle",
+RemoveFormat		: "Fjern format",
+InsertLinkLbl		: "Lenke",
+InsertLink			: "Sett inn/Rediger lenke",
+RemoveLink			: "Fjern lenke",
+Anchor				: "Sett inn/Rediger anker",
+InsertImageLbl		: "Bilde",
+InsertImage			: "Sett inn/Rediger bilde",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Sett inn/Rediger Flash",
+InsertTableLbl		: "Tabell",
+InsertTable			: "Sett inn/Rediger tabell",
+InsertLineLbl		: "Linje",
+InsertLine			: "Sett inn horisontal linje",
+InsertSpecialCharLbl: "Spesielt tegn",
+InsertSpecialChar	: "Sett inn spesielt tegn",
+InsertSmileyLbl		: "Smil",
+InsertSmiley		: "Sett inn smil",
+About				: "Om FCKeditor",
+Bold				: "Fet",
+Italic				: "Kursiv",
+Underline			: "Understrek",
+StrikeThrough		: "Gjennomstrek",
+Subscript			: "Senket skrift",
+Superscript			: "Hevet skrift",
+LeftJustify			: "Venstrejuster",
+CenterJustify		: "Midtjuster",
+RightJustify		: "Høyrejuster",
+BlockJustify		: "Blokkjuster",
+DecreaseIndent		: "Senk nivå",
+IncreaseIndent		: "Øk nivå",
+Undo				: "Angre",
+Redo				: "Gjør om",
+NumberedListLbl		: "Numrert liste",
+NumberedList		: "Sett inn/Fjern numrert liste",
+BulletedListLbl		: "Uordnet liste",
+BulletedList		: "Sett inn/Fjern uordnet liste",
+ShowTableBorders	: "Vis tabellrammer",
+ShowDetails			: "Vis detaljer",
+Style				: "Stil",
+FontFormat			: "Format",
+Font				: "Skrift",
+FontSize			: "Størrelse",
+TextColor			: "Tekstfarge",
+BGColor				: "Bakgrunnsfarge",
+Source				: "Kilde",
+Find				: "Finn",
+Replace				: "Erstatt",
+SpellCheck			: "Stavekontroll",
+UniversalKeyboard	: "Universelt tastatur",
+PageBreakLbl		: "Sideskift",
+PageBreak			: "Sett inn sideskift",
+
+Form			: "Skjema",
+Checkbox		: "Sjekkboks",
+RadioButton		: "Radioknapp",
+TextField		: "Tekstfelt",
+Textarea		: "Tekstområde",
+HiddenField		: "Skjult felt",
+Button			: "Knapp",
+SelectionField	: "Dropdown meny",
+ImageButton		: "Bildeknapp",
+
+FitWindow		: "Maksimer størrelsen på redigeringsverktøyet",
+
+// Context Menu
+EditLink			: "Rediger lenke",
+CellCM				: "Celle",
+RowCM				: "Rader",
+ColumnCM			: "Kolonne",
+InsertRow			: "Sett inn rad",
+DeleteRows			: "Slett rader",
+InsertColumn		: "Sett inn kolonne",
+DeleteColumns		: "Slett kolonner",
+InsertCell			: "Sett inn celle",
+DeleteCells			: "Slett celler",
+MergeCells			: "Slå sammen celler",
+SplitCell			: "Splitt celler",
+TableDelete			: "Slett tabell",
+CellProperties		: "Celleegenskaper",
+TableProperties		: "Tabellegenskaper",
+ImageProperties		: "Bildeegenskaper",
+FlashProperties		: "Flash Egenskaper",
+
+AnchorProp			: "Ankeregenskaper",
+ButtonProp			: "Knappegenskaper",
+CheckboxProp		: "Sjekkboksegenskaper",
+HiddenFieldProp		: "Skjult felt egenskaper",
+RadioButtonProp		: "Radioknappegenskaper",
+ImageButtonProp		: "Bildeknappegenskaper",
+TextFieldProp		: "Tekstfeltegenskaper",
+SelectionFieldProp	: "Dropdown menyegenskaper",
+TextareaProp		: "Tekstfeltegenskaper",
+FormProp			: "Skjemaegenskaper",
+
+FontFormats			: "Normal;Formatert;Adresse;Tittel 1;Tittel 2;Tittel 3;Tittel 4;Tittel 5;Tittel 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Lager XHTML. Vennligst vent...",
+Done				: "Ferdig",
+PasteWordConfirm	: "Teksten du prøver å lime inn ser ut som om den kommer fra word , du bør rense den før du limer inn , vil du gjøre dette?",
+NotCompatiblePaste	: "Denne kommandoen er tilgjenglig kun for Internet Explorer version 5.5 eller bedre. Vil du fortsette uten å rense?(Du kan lime inn som ren tekst)",
+UnknownToolbarItem	: "Ukjent menyvalg \"%1\"",
+UnknownCommand		: "Ukjent kommando \"%1\"",
+NotImplemented		: "Kommando ikke ennå implimentert",
+UnknownToolbarSet	: "Verktøylinjesett \"%1\" finnes ikke",
+NoActiveX			: "Din nettleser's sikkerhetsinstillinger kan begrense noen av funksjonene i redigeringsverktøyet. Du må aktivere \"Kjør ActiveXkontroller og plugins\". Du kan oppleve feil og advarsler om manglende funksjoner",
+BrowseServerBlocked : "Kunne ikke åpne dialogboksen for filarkiv. Pass på at du har slått av popupstoppere.",
+DialogBlocked		: "Kunne ikke åpne dialogboksen. Pass på at du har slått av popupstoppere.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Avbryt",
+DlgBtnClose			: "Lukk",
+DlgBtnBrowseServer	: "Bla igjennom server",
+DlgAdvancedTag		: "Avansert",
+DlgOpOther			: "<Annet>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Vennligst skriv inn URL'en",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<ikke satt>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Språkretning",
+DlgGenLangDirLtr	: "Venstre til høyre (VTH)",
+DlgGenLangDirRtl	: "Høyre til venstre (HTV)",
+DlgGenLangCode		: "Språk kode",
+DlgGenAccessKey		: "Aksessknapp",
+DlgGenName			: "Navn",
+DlgGenTabIndex		: "Tab Indeks",
+DlgGenLongDescr		: "Utvidet beskrivelse",
+DlgGenClass			: "Stilarkklasser",
+DlgGenTitle			: "Tittel",
+DlgGenContType		: "Type",
+DlgGenLinkCharset	: "Lenket språkkart",
+DlgGenStyle			: "Stil",
+
+// Image Dialog
+DlgImgTitle			: "Bildeegenskaper",
+DlgImgInfoTab		: "Bildeinformasjon",
+DlgImgBtnUpload		: "Send det til serveren",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Last opp",
+DlgImgAlt			: "Alternativ tekst",
+DlgImgWidth			: "Bredde",
+DlgImgHeight		: "Høyde",
+DlgImgLockRatio		: "Lås forhold",
+DlgBtnResetSize		: "Tilbakestill størrelse",
+DlgImgBorder		: "Ramme",
+DlgImgHSpace		: "HMarg",
+DlgImgVSpace		: "VMarg",
+DlgImgAlign			: "Juster",
+DlgImgAlignLeft		: "Venstre",
+DlgImgAlignAbsBottom: "Abs bunn",
+DlgImgAlignAbsMiddle: "Abs midten",
+DlgImgAlignBaseline	: "Bunnlinje",
+DlgImgAlignBottom	: "Bunn",
+DlgImgAlignMiddle	: "Midten",
+DlgImgAlignRight	: "Høyre",
+DlgImgAlignTextTop	: "Tekst topp",
+DlgImgAlignTop		: "Topp",
+DlgImgPreview		: "Forhåndsvis",
+DlgImgAlertUrl		: "Vennligst skriv bildeurlen",
+DlgImgLinkTab		: "Lenke",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Egenskaper",
+DlgFlashChkPlay		: "Auto Spill",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "Slå på Flash meny",
+DlgFlashScale		: "Skaler",
+DlgFlashScaleAll	: "Vis alt",
+DlgFlashScaleNoBorder	: "Ingen ramme",
+DlgFlashScaleFit	: "Skaler til å passeExact Fit",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Lenke",
+DlgLnkInfoTab		: "Lenkeinfo",
+DlgLnkTargetTab		: "Mål",
+
+DlgLnkType			: "Lenketype",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Lenke til bokmerke i teksten",
+DlgLnkTypeEMail		: "E-Post",
+DlgLnkProto			: "Protokoll",
+DlgLnkProtoOther	: "<annet>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Velg ett anker",
+DlgLnkAnchorByName	: "Anker etter navn",
+DlgLnkAnchorById	: "Element etter ID",
+DlgLnkNoAnchors		: "<Ingen anker i dokumentet>",
+DlgLnkEMail			: "E-Post Addresse",
+DlgLnkEMailSubject	: "Meldingsemne",
+DlgLnkEMailBody		: "Melding",
+DlgLnkUpload		: "Last opp",
+DlgLnkBtnUpload		: "Send til server",
+
+DlgLnkTarget		: "Mål",
+DlgLnkTargetFrame	: "<ramme>",
+DlgLnkTargetPopup	: "<popup vindu>",
+DlgLnkTargetBlank	: "Nytt vindu (_blank)",
+DlgLnkTargetParent	: "Foreldre vindu (_parent)",
+DlgLnkTargetSelf	: "Samme vindu (_self)",
+DlgLnkTargetTop		: "Hele vindu (_top)",
+DlgLnkTargetFrameName	: "Målramme",
+DlgLnkPopWinName	: "Popup vindus navn",
+DlgLnkPopWinFeat	: "Popup vindus egenskaper",
+DlgLnkPopResize		: "Endre størrelse",
+DlgLnkPopLocation	: "Adresselinje",
+DlgLnkPopMenu		: "Menylinje",
+DlgLnkPopScroll		: "Scrollbar",
+DlgLnkPopStatus		: "Statuslinje",
+DlgLnkPopToolbar	: "Verktøylinje",
+DlgLnkPopFullScrn	: "Full skjerm (IE)",
+DlgLnkPopDependent	: "Avhenging (Netscape)",
+DlgLnkPopWidth		: "Bredde",
+DlgLnkPopHeight		: "Høyde",
+DlgLnkPopLeft		: "Venstre posisjon",
+DlgLnkPopTop		: "Topp posisjon",
+
+DlnLnkMsgNoUrl		: "Vennligst skriv inn lenkens url",
+DlnLnkMsgNoEMail	: "Vennligst skriv inn e-postadressen",
+DlnLnkMsgNoAnchor	: "Vennligst velg ett anker",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Velg farge",
+DlgColorBtnClear	: "Tøm",
+DlgColorHighlight	: "Marker",
+DlgColorSelected	: "Velg",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Sett inn smil",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Velg spesielt tegn",
+
+// Table Dialog
+DlgTableTitle		: "Tabellegenskaper",
+DlgTableRows		: "Rader",
+DlgTableColumns		: "Kolonner",
+DlgTableBorder		: "Rammestørrelse",
+DlgTableAlign		: "Justering",
+DlgTableAlignNotSet	: "<Ikke satt>",
+DlgTableAlignLeft	: "Venstre",
+DlgTableAlignCenter	: "Midtjuster",
+DlgTableAlignRight	: "Høyre",
+DlgTableWidth		: "Bredde",
+DlgTableWidthPx		: "pixler",
+DlgTableWidthPc		: "prosent",
+DlgTableHeight		: "Høyde",
+DlgTableCellSpace	: "Celle marg",
+DlgTableCellPad		: "Celle polstring",
+DlgTableCaption		: "Tittel",
+DlgTableSummary		: "Sammendrag",
+
+// Table Cell Dialog
+DlgCellTitle		: "Celle egenskaper",
+DlgCellWidth		: "Bredde",
+DlgCellWidthPx		: "pixeler",
+DlgCellWidthPc		: "prosent",
+DlgCellHeight		: "Høyde",
+DlgCellWordWrap		: "Tekstbrytning",
+DlgCellWordWrapNotSet	: "<Ikke satt>",
+DlgCellWordWrapYes	: "Ja",
+DlgCellWordWrapNo	: "Nei",
+DlgCellHorAlign		: "Horisontal justering",
+DlgCellHorAlignNotSet	: "<Ikke satt>",
+DlgCellHorAlignLeft	: "Venstre",
+DlgCellHorAlignCenter	: "Midtjuster",
+DlgCellHorAlignRight: "Høyre",
+DlgCellVerAlign		: "Vertikal justering",
+DlgCellVerAlignNotSet	: "<Ikke satt>",
+DlgCellVerAlignTop	: "Topp",
+DlgCellVerAlignMiddle	: "Midten",
+DlgCellVerAlignBottom	: "Bunn",
+DlgCellVerAlignBaseline	: "Bunnlinje",
+DlgCellRowSpan		: "Radspenn",
+DlgCellCollSpan		: "Kolonnespenn",
+DlgCellBackColor	: "Bakgrunnsfarge",
+DlgCellBorderColor	: "Rammefarge",
+DlgCellBtnSelect	: "Velg...",
+
+// Find Dialog
+DlgFindTitle		: "Finn",
+DlgFindFindBtn		: "Finn",
+DlgFindNotFoundMsg	: "Den spesifiserte teksten ble ikke funnet.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Erstatt",
+DlgReplaceFindLbl		: "Finn hva:",
+DlgReplaceReplaceLbl	: "Erstatt med:",
+DlgReplaceCaseChk		: "Riktig case",
+DlgReplaceReplaceBtn	: "Erstatt",
+DlgReplaceReplAllBtn	: "Erstatt alle",
+DlgReplaceWordChk		: "Finn hele ordet",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk innliming av tekst. Vennligst brukt snareveien (Ctrl+V).",
+PasteErrorCut	: "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst brukt snareveien (Ctrl+X).",
+PasteErrorCopy	: "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst brukt snareveien (Ctrl+C).",
+
+PasteAsText		: "Lim inn som ren tekst",
+PasteFromWord	: "Lim inn fra word",
+
+DlgPasteMsg2	: "Vennligst lim inn i den følgende boksen med tastaturet (<STRONG>Ctrl+V</STRONG>) og trykk <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Fjern skrifttyper",
+DlgPasteRemoveStyles	: "Fjern stildefinisjoner",
+DlgPasteCleanBox		: "Tøm boksen",
+
+// Color Picker
+ColorAutomatic	: "Automatisk",
+ColorMoreColors	: "Flere farger...",
+
+// Document Properties
+DocProps		: "Dokumentegenskaper",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ankeregenskaper",
+DlgAnchorName		: "Ankernavn",
+DlgAnchorErrorName	: "Vennligst skriv inn ankernavnet",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Ikke i ordboken",
+DlgSpellChangeTo		: "Endre til",
+DlgSpellBtnIgnore		: "Ignorer",
+DlgSpellBtnIgnoreAll	: "Ignorer alle",
+DlgSpellBtnReplace		: "Erstatt",
+DlgSpellBtnReplaceAll	: "Erstatt alle",
+DlgSpellBtnUndo			: "Angre",
+DlgSpellNoSuggestions	: "- ingen forslag -",
+DlgSpellProgress		: "Stavekontroll pågår...",
+DlgSpellNoMispell		: "Stavekontroll fullført: ingen feilstavinger funnet",
+DlgSpellNoChanges		: "Stavekontroll fullført: ingen ord endret",
+DlgSpellOneChange		: "Stavekontroll fullført: Ett ord endret",
+DlgSpellManyChanges		: "Stavekontroll fullført: %1 ord endret",
+
+IeSpellDownload			: "Stavekontroll ikke installert, vil du laste den ned nå?",
+
+// Button Dialog
+DlgButtonText		: "Tekst",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Navn",
+DlgCheckboxValue	: "Verdi",
+DlgCheckboxSelected	: "Valgt",
+
+// Form Dialog
+DlgFormName		: "Navn",
+DlgFormAction	: "Handling",
+DlgFormMethod	: "Metode",
+
+// Select Field Dialog
+DlgSelectName		: "Navn",
+DlgSelectValue		: "Verdi",
+DlgSelectSize		: "Størrelse",
+DlgSelectLines		: "Linjer",
+DlgSelectChkMulti	: "Tillat flervalg",
+DlgSelectOpAvail	: "Tilgjenglige alternativer",
+DlgSelectOpText		: "Tekst",
+DlgSelectOpValue	: "Verdi",
+DlgSelectBtnAdd		: "Legg til",
+DlgSelectBtnModify	: "Endre",
+DlgSelectBtnUp		: "Opp",
+DlgSelectBtnDown	: "Ned",
+DlgSelectBtnSetValue : "Sett som valgt",
+DlgSelectBtnDelete	: "Slett",
+
+// Textarea Dialog
+DlgTextareaName	: "Navn",
+DlgTextareaCols	: "Kolonner",
+DlgTextareaRows	: "Rader",
+
+// Text Field Dialog
+DlgTextName			: "Navn",
+DlgTextValue		: "verdi",
+DlgTextCharWidth	: "Tegnbredde",
+DlgTextMaxChars		: "Maks antall tegn",
+DlgTextType			: "Type",
+DlgTextTypeText		: "Tekst",
+DlgTextTypePass		: "Passord",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Navn",
+DlgHiddenValue	: "Verdi",
+
+// Bulleted List Dialog
+BulletedListProp	: "Uordnet listeegenskaper",
+NumberedListProp	: "Ordnet listeegenskaper",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Type",
+DlgLstTypeCircle	: "Sirkel",
+DlgLstTypeDisc		: "Hel sirkel",
+DlgLstTypeSquare	: "Firkant",
+DlgLstTypeNumbers	: "Numre(1, 2, 3)",
+DlgLstTypeLCase		: "Små bokstaver (a, b, c)",
+DlgLstTypeUCase		: "Store bokstaver(A, B, C)",
+DlgLstTypeSRoman	: "Små romerske tall(i, ii, iii)",
+DlgLstTypeLRoman	: "Store romerske tall(I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Generalt",
+DlgDocBackTab		: "Bakgrunn",
+DlgDocColorsTab		: "Farger og marginer",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Sidetittel",
+DlgDocLangDir		: "Språkretning",
+DlgDocLangDirLTR	: "Venstre til høyre (LTR)",
+DlgDocLangDirRTL	: "Høyre til venstre (RTL)",
+DlgDocLangCode		: "Språkkode",
+DlgDocCharSet		: "Tegnsett",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Annet tegnsett",
+
+DlgDocDocType		: "Dokumenttype header",
+DlgDocDocTypeOther	: "Annet dokumenttype header",
+DlgDocIncXHTML		: "Inkulder XHTML deklarasjon",
+DlgDocBgColor		: "Bakgrunnsfarge",
+DlgDocBgImage		: "Bakgrunnsbilde url",
+DlgDocBgNoScroll	: "Ikke scroll bakgrunnsbilde",
+DlgDocCText			: "Tekst",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Besøkt lenke",
+DlgDocCActive		: "Aktiv lenke",
+DlgDocMargins		: "Sidemargin",
+DlgDocMaTop			: "Topp",
+DlgDocMaLeft		: "Venstre",
+DlgDocMaRight		: "Høyre",
+DlgDocMaBottom		: "Bunn",
+DlgDocMeIndex		: "Dokument nøkkelord (kommaseparert)",
+DlgDocMeDescr		: "Dokumentbeskrivelse",
+DlgDocMeAuthor		: "Forfatter",
+DlgDocMeCopy		: "Kopirett",
+DlgDocPreview		: "Forhåndsvising",
+
+// Templates Dialog
+Templates			: "Maler",
+DlgTemplatesTitle	: "Innholdsmaler",
+DlgTemplatesSelMsg	: "Velg malen du vil åpne<br>(innholdet du har skrevet blir tapt!):",
+DlgTemplatesLoading	: "Laster malliste. Vennligst vent...",
+DlgTemplatesNoTpl	: "(Ingen maler definert)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Om",
+DlgAboutBrowserInfoTab	: "Nettleserinfo",
+DlgAboutLicenseTab	: "Lisens",
+DlgAboutVersion		: "versjon",
+DlgAboutLicense		: "Lisensiert under GNU Lesser General Public License",
+DlgAboutInfo		: "Oversatt av Siteman AS<br /><a target=\"_blank\" href=\"http://www.siteman.no\">www.siteman.no</a><br /><br />For mer informasjon gå til"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/sk.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/sk.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/sk.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: sk.js
+ * 	Slovak language file.
+ * 
+ * File Authors:
+ * 		Samuel Szabo (samuel@nanete.sk)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Skryť panel nástrojov",
+ToolbarExpand		: "Zobraziť panel nástrojov",
+
+// Toolbar Items and Context Menu
+Save				: "Uložit",
+NewPage				: "Nová stránka",
+Preview				: "Náhľad",
+Cut					: "Vystrihnúť",
+Copy				: "Kopírovať",
+Paste				: "Vložiť",
+PasteText			: "Vložiť ako čistý text",
+PasteWord			: "Vložiť z Wordu",
+Print				: "Tlač",
+SelectAll			: "Vybrať všetko",
+RemoveFormat		: "Odstrániť formátovanie",
+InsertLinkLbl		: "Odkaz",
+InsertLink			: "Vložiť/zmeniť odkaz",
+RemoveLink			: "Odstrániť odkaz",
+Anchor				: "Vložiť/zmeniť kotvu",
+InsertImageLbl		: "Obrázok",
+InsertImage			: "Vložiť/zmeniť obrazok",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Vložiť/zmeniť Flash",
+InsertTableLbl		: "Tabuľka",
+InsertTable			: "Vložiť/zmeniť tabuľku",
+InsertLineLbl		: "Čiara",
+InsertLine			: "Vložiť vodorovnú čiara",
+InsertSpecialCharLbl: "Speciálne znaky",
+InsertSpecialChar	: "Vložiť špeciálne znaky",
+InsertSmileyLbl		: "Smajlíky",
+InsertSmiley		: "Vložiť smajlíka",
+About				: "O aplikáci FCKeditor",
+Bold				: "Tučné",
+Italic				: "Kurzíva",
+Underline			: "Podčiarknuté",
+StrikeThrough		: "Prečiarknuté",
+Subscript			: "Dolný index",
+Superscript			: "Horný index",
+LeftJustify			: "Zarovnať vľavo",
+CenterJustify		: "Zarovnať na stred",
+RightJustify		: "Zarovnať vpravo",
+BlockJustify		: "Zarovnať do bloku",
+DecreaseIndent		: "Zmenšiť odsadenie",
+IncreaseIndent		: "Zväčšiť odsadenie",
+Undo				: "Späť",
+Redo				: "Znovu",
+NumberedListLbl		: "Číslovanie",
+NumberedList		: "Vložiť/odstrániť číslovaný zoznam",
+BulletedListLbl		: "Odrážky",
+BulletedList		: "Vložiť/odstraniť odrážky",
+ShowTableBorders	: "Zobraziť okraje tabuliek",
+ShowDetails			: "Zobraziť podrobnosti",
+Style				: "Štýl",
+FontFormat			: "Formát",
+Font				: "Písmo",
+FontSize			: "Veľkost",
+TextColor			: "Farba textu",
+BGColor				: "Farba pozadia",
+Source				: "Zdroj",
+Find				: "Hľadať",
+Replace				: "Nahradiť",
+SpellCheck			: "Kontrola pravopisu",
+UniversalKeyboard	: "Univerzálna klávesnica",
+PageBreakLbl		: "Oddeľovač stránky",
+PageBreak			: "Vložiť oddeľovač stránky",
+
+Form			: "Formulár",
+Checkbox		: "Zaškrtávacie políčko",
+RadioButton		: "Prepínač",
+TextField		: "Textové pole",
+Textarea		: "Textová oblasť",
+HiddenField		: "Skryté pole",
+Button			: "Tlačítko",
+SelectionField	: "Rozbaľovací zoznam",
+ImageButton		: "Obrázkové tlačítko",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+
+// Context Menu
+EditLink			: "Zmeniť odkaz",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRow			: "Vložiť riadok",
+DeleteRows			: "Zmazať riadok",
+InsertColumn		: "Vložiť stĺpec",
+DeleteColumns		: "Zmazať stĺpec",
+InsertCell			: "Vložiť bunku",
+DeleteCells			: "Zmazať bunky",
+MergeCells			: "Zlúčiť bunky",
+SplitCell			: "Rozdeliť bunku",
+TableDelete			: "Zmazať tabuľku",
+CellProperties		: "Vlastnosti bunky",
+TableProperties		: "Vlastnosti tabuľky",
+ImageProperties		: "Vlastnosti obrázku",
+FlashProperties		: "Vlastnosti Flashu",
+
+AnchorProp			: "Vlastnosti kotvy",
+ButtonProp			: "Vlastnosti tlačítka",
+CheckboxProp		: "Vlastnosti zaškrtávacieho políčka",
+HiddenFieldProp		: "Vlastnosti skrytého poľa",
+RadioButtonProp		: "Vlastnosti prepínača",
+ImageButtonProp		: "Vlastnosti obrázkového tlačítka",
+TextFieldProp		: "Vlastnosti textového pola",
+SelectionFieldProp	: "Vlastnosti rozbaľovacieho zoznamu",
+TextareaProp		: "Vlastnosti textové oblasti",
+FormProp			: "Vlastnosti formulára",
+
+FontFormats			: "Normálny;Formátovaný;Adresa;Nadpis 1;Nadpis 2;Nadpis 3;Nadpis 4;Nadpis 5;Nadpis 6;Odsek (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Prebieha spracovanie XHTML. Čakejte prosím...",
+Done				: "Dokončené.",
+PasteWordConfirm	: "Vyzerá to tak, že vkladaný text je kopírovaný z Wordu. Chcete ho pred vložením vyčistiť?",
+NotCompatiblePaste	: "Tento príkaz je dostupný len v prehliadači Internet Explorer verzie 5.5 alebo vyššej. Chcete vložiť text bez vyčistenia?",
+UnknownToolbarItem	: "Neznáma položka panela nástrojov \"%1\"",
+UnknownCommand		: "Neznámy príkaz \"%1\"",
+NotImplemented		: "Príkaz nie je implementovaný",
+UnknownToolbarSet	: "Panel nástrojov \"%1\" neexistuje",
+NoActiveX			: "Bezpečnostné nastavenia Vašeho prehliadača môžu obmedzovať niektoré funkcie editora. Pre ich plnú funkčnosť musíte zapnúť voľbu \"Spúšťať ActiveX moduly a zásuvné moduly\", inak sa môžete stretnúť s chybami a nefunkčnosťou niektorých funkcií.",
+BrowseServerBlocked : "Prehliadač zdrojových prvkov nebolo možné otvoriť. Uistite sa, že máte vypnuté všetky blokovače vyskakujúcich okien.",
+DialogBlocked		: "Dialógové okno nebolo možné otvoriť. Uistite sa, že máte vypnuté všetky blokovače vyskakujúcich okien.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Zrušiť",
+DlgBtnClose			: "Zavrieť",
+DlgBtnBrowseServer	: "Prechádzať server",
+DlgAdvancedTag		: "Rozšírené",
+DlgOpOther			: "<Ďalšie>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Prosím vložte URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nenastavené>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Orientácia jazyka",
+DlgGenLangDirLtr	: "Zľava doprava (LTR)",
+DlgGenLangDirRtl	: "Zprava doľava (RTL)",
+DlgGenLangCode		: "Kód jazyka",
+DlgGenAccessKey		: "Prístupový kľúč",
+DlgGenName			: "Meno",
+DlgGenTabIndex		: "Poradie prvku",
+DlgGenLongDescr		: "Dlhý popis URL",
+DlgGenClass			: "Trieda štýlu",
+DlgGenTitle			: "Pomocný titulok",
+DlgGenContType		: "Pomocný typ obsahu",
+DlgGenLinkCharset	: "Priradená znaková sada",
+DlgGenStyle			: "Štýl",
+
+// Image Dialog
+DlgImgTitle			: "Vlastnosti obrázku",
+DlgImgInfoTab		: "Informácie o obrázku",
+DlgImgBtnUpload		: "Odoslať na server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Odoslať",
+DlgImgAlt			: "Alternatívny text",
+DlgImgWidth			: "Šírka",
+DlgImgHeight		: "Výška",
+DlgImgLockRatio		: "Zámok",
+DlgBtnResetSize		: "Pôvodná veľkosť",
+DlgImgBorder		: "Okraje",
+DlgImgHSpace		: "H-medzera",
+DlgImgVSpace		: "V-medzera",
+DlgImgAlign			: "Zarovnanie",
+DlgImgAlignLeft		: "Vľavo",
+DlgImgAlignAbsBottom: "Úplne dole",
+DlgImgAlignAbsMiddle: "Do stredu",
+DlgImgAlignBaseline	: "Na základňu",
+DlgImgAlignBottom	: "Dole",
+DlgImgAlignMiddle	: "Na stred",
+DlgImgAlignRight	: "Vpravo",
+DlgImgAlignTextTop	: "Na horný okraj textu",
+DlgImgAlignTop		: "Nahor",
+DlgImgPreview		: "Náhľad",
+DlgImgAlertUrl		: "Zadajte prosím URL obrázku",
+DlgImgLinkTab		: "Odkaz",
+
+// Flash Dialog
+DlgFlashTitle		: "Vlastnosti Flashu",
+DlgFlashChkPlay		: "Automatické prehrávanie",
+DlgFlashChkLoop		: "Opakovanie",
+DlgFlashChkMenu		: "Povoliť Flash Menu",
+DlgFlashScale		: "Mierka",
+DlgFlashScaleAll	: "Zobraziť mierku",
+DlgFlashScaleNoBorder	: "Bez okrajov",
+DlgFlashScaleFit	: "Roztiahnuť na celé",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Odkaz",
+DlgLnkInfoTab		: "Informácie o odkaze",
+DlgLnkTargetTab		: "Cieľ",
+
+DlgLnkType			: "Typ odkazu",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Kotva v tejto stránke",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<iný>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Vybrať kotvu",
+DlgLnkAnchorByName	: "Podľa mena kotvy",
+DlgLnkAnchorById	: "Podľa Id objektu",
+DlgLnkNoAnchors		: "<V stránke nie je definovaná žiadna kotva>",
+DlgLnkEMail			: "E-Mailová adresa",
+DlgLnkEMailSubject	: "Predmet správy",
+DlgLnkEMailBody		: "Telo správy",
+DlgLnkUpload		: "Odoslať",
+DlgLnkBtnUpload		: "Odoslať na server",
+
+DlgLnkTarget		: "Cieľ",
+DlgLnkTargetFrame	: "<rámec>",
+DlgLnkTargetPopup	: "<vyskakovacie okno>",
+DlgLnkTargetBlank	: "Nové okno (_blank)",
+DlgLnkTargetParent	: "Rodičovské okno (_parent)",
+DlgLnkTargetSelf	: "Rovnaké okno (_self)",
+DlgLnkTargetTop		: "Hlavné okno (_top)",
+DlgLnkTargetFrameName	: "Meno rámu cieľa",
+DlgLnkPopWinName	: "Názov vyskakovacieho okna",
+DlgLnkPopWinFeat	: "Vlastnosti vyskakovacieho okna",
+DlgLnkPopResize		: "Meniteľná veľkosť",
+DlgLnkPopLocation	: "Panel umiestnenia",
+DlgLnkPopMenu		: "Panel ponuky",
+DlgLnkPopScroll		: "Posuvníky",
+DlgLnkPopStatus		: "Stavový riadok",
+DlgLnkPopToolbar	: "Panel nástrojov",
+DlgLnkPopFullScrn	: "Celá obrazovka (IE)",
+DlgLnkPopDependent	: "Závislosť (Netscape)",
+DlgLnkPopWidth		: "Šírka",
+DlgLnkPopHeight		: "Výška",
+DlgLnkPopLeft		: "Ľavý okraj",
+DlgLnkPopTop		: "Horný okraj",
+
+DlnLnkMsgNoUrl		: "Zadajte prosím URL odkazu",
+DlnLnkMsgNoEMail	: "Zadajte prosím e-mailovú adresu",
+DlnLnkMsgNoAnchor	: "Vyberte prosím kotvu",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Výber farby",
+DlgColorBtnClear	: "Vymazať",
+DlgColorHighlight	: "Zvýraznená",
+DlgColorSelected	: "Vybraná",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Vkladanie smajlíkov",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Výber speciálneho znaku",
+
+// Table Dialog
+DlgTableTitle		: "Vlastnosti tabuľky",
+DlgTableRows		: "Riadky",
+DlgTableColumns		: "Stĺpce",
+DlgTableBorder		: "Ohraničenie",
+DlgTableAlign		: "Zarovnanie",
+DlgTableAlignNotSet	: "<nenastavené>",
+DlgTableAlignLeft	: "Vľavo",
+DlgTableAlignCenter	: "Na stred",
+DlgTableAlignRight	: "Vpravo",
+DlgTableWidth		: "Šírka",
+DlgTableWidthPx		: "pixelov",
+DlgTableWidthPc		: "percent",
+DlgTableHeight		: "Výška",
+DlgTableCellSpace	: "Vzdialenosť buniek",
+DlgTableCellPad		: "Odsadenie obsahu",
+DlgTableCaption		: "Popis",
+DlgTableSummary		: "Prehľad",
+
+// Table Cell Dialog
+DlgCellTitle		: "Vlastnosti bunky",
+DlgCellWidth		: "Šírka",
+DlgCellWidthPx		: "bodov",
+DlgCellWidthPc		: "percent",
+DlgCellHeight		: "Výška",
+DlgCellWordWrap		: "Zalamovannie",
+DlgCellWordWrapNotSet	: "<nenastavené>",
+DlgCellWordWrapYes	: "Áno",
+DlgCellWordWrapNo	: "Nie",
+DlgCellHorAlign		: "Vodorovné zarovnanie",
+DlgCellHorAlignNotSet	: "<nenastavené>",
+DlgCellHorAlignLeft	: "Vľavo",
+DlgCellHorAlignCenter	: "Na stred",
+DlgCellHorAlignRight: "Vpravo",
+DlgCellVerAlign		: "Zvyslé zarovnanie",
+DlgCellVerAlignNotSet	: "<nenastavené>",
+DlgCellVerAlignTop	: "Nahor",
+DlgCellVerAlignMiddle	: "Doprostred",
+DlgCellVerAlignBottom	: "Dole",
+DlgCellVerAlignBaseline	: "Na základňu",
+DlgCellRowSpan		: "Zlúčené riadky",
+DlgCellCollSpan		: "Zlúčené stĺpce",
+DlgCellBackColor	: "Farba pozadia",
+DlgCellBorderColor	: "Farba ohraničenia",
+DlgCellBtnSelect	: "Výber...",
+
+// Find Dialog
+DlgFindTitle		: "Hľadať",
+DlgFindFindBtn		: "Hľadať",
+DlgFindNotFoundMsg	: "Hľadaný text nebol nájdený.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Nahradiť",
+DlgReplaceFindLbl		: "Čo hľadať:",
+DlgReplaceReplaceLbl	: "Čím nahradiť:",
+DlgReplaceCaseChk		: "Rozlišovať malé/veľké písmená",
+DlgReplaceReplaceBtn	: "Nahradiť",
+DlgReplaceReplAllBtn	: "Nahradiť všetko",
+DlgReplaceWordChk		: "Len celé slová",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Bezpečnostné nastavenie Vášho prohehliadača nedovoľujú editoru spustiť funkciu pre vloženie textu zo schránky. Prosím vložte text zo schránky pomocou klávesnice (Ctrl+V).",
+PasteErrorCut	: "Bezpečnostné nastavenie Vášho prohehliadača nedovoľujú editoru spustiť funkciu pre vystrihnutie zvoleného textu do schránky. Prosím vystrihnite zvolený text do schránky pomocou klávesnice (Ctrl+X).",
+PasteErrorCopy	: "Bezpečnostné nastavenie Vášho prohehliadača nedovoľujú editoru spustiť funkciu pre kopírovánie zvoleného textu do schránky. Prosím skopírujte zvolený text do schránky pomocou klávesnice (Ctrl+C).",
+
+PasteAsText		: "Vložiť ako čistý text",
+PasteFromWord	: "Vložiť text z Wordu",
+
+DlgPasteMsg2	: "Do nasledujúceho boxu vložte obsah schránky použitím klávesnice (<STRONG>Ctrl+V</STRONG>) a stlačte <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignorovať nastavenia typu písma",
+DlgPasteRemoveStyles	: "Odstrániť formátovanie",
+DlgPasteCleanBox		: "Vyčistiť schránku",
+
+// Color Picker
+ColorAutomatic	: "Automaticky",
+ColorMoreColors	: "Viac farieb...",
+
+// Document Properties
+DocProps		: "Vlastnosti dokumentu",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Vlastnosti kotvy",
+DlgAnchorName		: "Meno kotvy",
+DlgAnchorErrorName	: "Zadajte prosím meno kotvy",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Nie je v slovníku",
+DlgSpellChangeTo		: "Zmeniť na",
+DlgSpellBtnIgnore		: "Ignorovať",
+DlgSpellBtnIgnoreAll	: "Ignorovať všetko",
+DlgSpellBtnReplace		: "Prepísat",
+DlgSpellBtnReplaceAll	: "Prepísat všetko",
+DlgSpellBtnUndo			: "Späť",
+DlgSpellNoSuggestions	: "- Žiadny návrh -",
+DlgSpellProgress		: "Prebieha kontrola pravopisu...",
+DlgSpellNoMispell		: "Kontrola pravopisu dokončená: bez chyb",
+DlgSpellNoChanges		: "Kontrola pravopisu dokončená: žiadne slová nezmenené",
+DlgSpellOneChange		: "Kontrola pravopisu dokončená: zmenené jedno slovo",
+DlgSpellManyChanges		: "Kontrola pravopisu dokončená: zmenených %1 slov",
+
+IeSpellDownload			: "Kontrola pravopisu nie je naištalovaná. Chcete ju hneď stiahnuť?",
+
+// Button Dialog
+DlgButtonText		: "Text",
+DlgButtonType		: "Typ",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Názov",
+DlgCheckboxValue	: "Hodnota",
+DlgCheckboxSelected	: "Vybrané",
+
+// Form Dialog
+DlgFormName		: "Názov",
+DlgFormAction	: "Akcie",
+DlgFormMethod	: "Metóda",
+
+// Select Field Dialog
+DlgSelectName		: "Názov",
+DlgSelectValue		: "Hodnota",
+DlgSelectSize		: "Veľkosť",
+DlgSelectLines		: "riadkov",
+DlgSelectChkMulti	: "Povoliť viacnásobný výber",
+DlgSelectOpAvail	: "Dostupné možnosti",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Hodnota",
+DlgSelectBtnAdd		: "Pridať",
+DlgSelectBtnModify	: "Zmeniť",
+DlgSelectBtnUp		: "Nahor",
+DlgSelectBtnDown	: "Dolu",
+DlgSelectBtnSetValue : "Nastaviť ako vybranú hodnotu",
+DlgSelectBtnDelete	: "Zmazať",
+
+// Textarea Dialog
+DlgTextareaName	: "Názov",
+DlgTextareaCols	: "Stĺpce",
+DlgTextareaRows	: "Riadky",
+
+// Text Field Dialog
+DlgTextName			: "Názov",
+DlgTextValue		: "Hodnota",
+DlgTextCharWidth	: "Šírka pola (znakov)",
+DlgTextMaxChars		: "Maximálny počet znakov",
+DlgTextType			: "Typ",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "Heslo",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Názov",
+DlgHiddenValue	: "Hodnota",
+
+// Bulleted List Dialog
+BulletedListProp	: "Vlastnosti odrážok",
+NumberedListProp	: "Vlastnosti číslovania",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Typ",
+DlgLstTypeCircle	: "Krúžok",
+DlgLstTypeDisc		: "Disk",
+DlgLstTypeSquare	: "Štvorec",
+DlgLstTypeNumbers	: "Číslovanie (1, 2, 3)",
+DlgLstTypeLCase		: "Malé písmená (a, b, c)",
+DlgLstTypeUCase		: "Veľké písmená (A, B, C)",
+DlgLstTypeSRoman	: "Malé rímske číslice (i, ii, iii)",
+DlgLstTypeLRoman	: "Veľké rímske číslice (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Všeobecné",
+DlgDocBackTab		: "Pozadie",
+DlgDocColorsTab		: "Farby a okraje",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Titulok",
+DlgDocLangDir		: "Orientácie jazyka",
+DlgDocLangDirLTR	: "Zľava doprava (LTR)",
+DlgDocLangDirRTL	: "Zprava doľava (RTL)",
+DlgDocLangCode		: "Kód jazyka",
+DlgDocCharSet		: "Kódová stránka",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Iná kódová stránka",
+
+DlgDocDocType		: "Typ záhlavia dokumentu",
+DlgDocDocTypeOther	: "Iný typ záhlavia dokumentu",
+DlgDocIncXHTML		: "Obsahuje deklarácie XHTML",
+DlgDocBgColor		: "Farba pozadia",
+DlgDocBgImage		: "URL adresa obrázku na pozadí",
+DlgDocBgNoScroll	: "Fixné pozadie",
+DlgDocCText			: "Text",
+DlgDocCLink			: "Odkaz",
+DlgDocCVisited		: "Navštívený odkaz",
+DlgDocCActive		: "Aktívny odkaz",
+DlgDocMargins		: "Okraje stránky",
+DlgDocMaTop			: "Horný",
+DlgDocMaLeft		: "Ľavý",
+DlgDocMaRight		: "Pravý",
+DlgDocMaBottom		: "Dolný",
+DlgDocMeIndex		: "Kľúčové slová pre indexovanie (oddelené čiarkou)",
+DlgDocMeDescr		: "Popis stránky",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Autorské práva",
+DlgDocPreview		: "Náhľad",
+
+// Templates Dialog
+Templates			: "Šablóny",
+DlgTemplatesTitle	: "Šablóny obsahu",
+DlgTemplatesSelMsg	: "Prosím vyberte šablóny ma otvorenie v editore<br>(terajší obsah bude stratený):",
+DlgTemplatesLoading	: "Nahrávam zoznam šablón. Čakajte prosím...",
+DlgTemplatesNoTpl	: "(žiadne šablóny nenájdené)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "O aplikáci",
+DlgAboutBrowserInfoTab	: "Informácie o prehliadači",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "verzie",
+DlgAboutLicense		: "Licencované pod pravidlami GNU Lesser General Public License",
+DlgAboutInfo		: "Viac informácií získate na"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/vi.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/vi.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/vi.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: vi.js
+ * 	Vietnamese language file.
+ * 
+ * File Authors:
+ * 		Phan Binh Giang (bbbgiang@yahoo.com)
+ * 		Hà Thanh Hải (thanhhai.ha@gmail.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Thu gọn Thanh công cụ",
+ToolbarExpand		: "Mở rộng Thanh công cụ",
+
+// Toolbar Items and Context Menu
+Save				: "Lưu",
+NewPage				: "Trang mới",
+Preview				: "Xem trước",
+Cut					: "Cắt",
+Copy				: "Sao chép",
+Paste				: "Dán",
+PasteText			: "Dán theo dạng văn bản thuần",
+PasteWord			: "Dán với định dạng Word",
+Print				: "In",
+SelectAll			: "Chọn Tất cả",
+RemoveFormat		: "Xoá Định dạng",
+InsertLinkLbl		: "Liên kết",
+InsertLink			: "Chèn/Sửa Liên kết",
+RemoveLink			: "Xoá Liên kết",
+Anchor				: "Chèn/Sửa Neo",
+InsertImageLbl		: "Hình ảnh",
+InsertImage			: "Chèn/Sửa Hình ảnh",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Chèn/Sửa Flash",
+InsertTableLbl		: "Bảng",
+InsertTable			: "Chèn/Sửa Bảng",
+InsertLineLbl		: "Đường phân cách ngang",
+InsertLine			: "Chèn Đường phân cách ngang",
+InsertSpecialCharLbl: "Ký tự đặc biệt",
+InsertSpecialChar	: "Chèn Ký tự đặc biệt",
+InsertSmileyLbl		: "Hình biểu lộ cảm xúc (mặt cười)",
+InsertSmiley		: "Chèn Hình biểu lộ cảm xúc (mặt cười)",
+About				: "Giới thiệu về FCKeditor",
+Bold				: "Đậm",
+Italic				: "Nghiêng",
+Underline			: "Gạch chân",
+StrikeThrough		: "Gạch xuyên ngang",
+Subscript			: "Chỉ số dưới",
+Superscript			: "Chỉ số trên",
+LeftJustify			: "Canh trái",
+CenterJustify		: "Canh giữa",
+RightJustify		: "Canh phải",
+BlockJustify		: "Canh đều",
+DecreaseIndent		: "Dịch ra ngoài",
+IncreaseIndent		: "Dịch vào trong",
+Undo				: "Khôi phục thao tác",
+Redo				: "Làm lại thao tác",
+NumberedListLbl		: "Danh sách có thứ tự",
+NumberedList		: "Chèn/Xoá Danh sách có thứ tự",
+BulletedListLbl		: "Danh sách không thứ tự",
+BulletedList		: "Chèn/Xoá Danh sách không thứ tự",
+ShowTableBorders	: "Hiển thị Đường viền bảng",
+ShowDetails			: "Hiển thị Chi tiết",
+Style				: "Mẫu",
+FontFormat			: "Định dạng",
+Font				: "Phông",
+FontSize			: "Cỡ chữ",
+TextColor			: "Màu chữ",
+BGColor				: "Màu nền",
+Source				: "Mã HTML",
+Find				: "Tìm kiếm",
+Replace				: "Thay thế",
+SpellCheck			: "Kiểm tra Chính tả",
+UniversalKeyboard	: "Bàn phím Quốc tế",
+PageBreakLbl		: "Ngắt trang",
+PageBreak			: "Chèn Ngắt trang",
+
+Form			: "Biểu mẫu",
+Checkbox		: "Nút kiểm",
+RadioButton		: "Nút chọn",
+TextField		: "Trường văn bản",
+Textarea		: "Vùng văn bản",
+HiddenField		: "Trường ẩn",
+Button			: "Nút",
+SelectionField	: "Ô chọn",
+ImageButton		: "Nút hình ảnh",
+
+FitWindow		: "Mở rộng tối đa kích thước trình biên tập",
+
+// Context Menu
+EditLink			: "Sửa Liên kết",
+CellCM				: "Ô",
+RowCM				: "Hàng",
+ColumnCM			: "Cột",
+InsertRow			: "Chèn Hàng",
+DeleteRows			: "Xoá Hàng",
+InsertColumn		: "Chèn Cột",
+DeleteColumns		: "Xoá Cột",
+InsertCell			: "Chèn Ô",
+DeleteCells			: "Xoá Ô",
+MergeCells			: "Trộn Ô",
+SplitCell			: "Chia Ô",
+TableDelete			: "Xóa Bảng",
+CellProperties		: "Thuộc tính Ô",
+TableProperties		: "Thuộc tính Bảng",
+ImageProperties		: "Thuộc tính Hình ảnh",
+FlashProperties		: "Thuộc tính Flash",
+
+AnchorProp			: "Thuộc tính Neo",
+ButtonProp			: "Thuộc tính Nút",
+CheckboxProp		: "Thuộc tính Nút kiểm",
+HiddenFieldProp		: "Thuộc tính Trường ẩn",
+RadioButtonProp		: "Thuộc tính Nút chọn",
+ImageButtonProp		: "Thuộc tính Nút hình ảnh",
+TextFieldProp		: "Thuộc tính Trường văn bản",
+SelectionFieldProp	: "Thuộc tính Ô chọn",
+TextareaProp		: "Thuộc tính Vùng văn bản",
+FormProp			: "Thuộc tính Biểu mẫu",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Đang xử lý XHTML. Vui lòng đợi trong giây lát...",
+Done				: "Đã hoàn thành",
+PasteWordConfirm	: "Văn bản bạn muốn dán có kèm định dạng của Word. Bạn có muốn loại bỏ định dạng Word trước khi dán?",
+NotCompatiblePaste	: "Lệnh này chỉ được hỗ trợ từ trình duyệt Internet Explorer phiên bản 5.5 hoặc mới hơn. Bạn có muốn dán nguyên mẫu?",
+UnknownToolbarItem	: "Không rõ mục trên thanh công cụ \"%1\"",
+UnknownCommand		: "Không rõ lệnh \"%1\"",
+NotImplemented		: "Lệnh không được thực hiện",
+UnknownToolbarSet	: "Thanh công cụ \"%1\" không tồn tại",
+NoActiveX			: "Các thiết lập bảo mật của trình duyệt có thể giới hạn một số chức năng của trình biên tập. Bạn phải bật tùy chọn \"Run ActiveX controls and plug-ins\". Bạn có thể gặp một số lỗi và thấy thiếu đi một số chức năng.",
+BrowseServerBlocked : "Không thể mở được bộ duyệt tài nguyên. Hãy đảm bảo chức năng chặn popup đã bị vô hiệu hóa.",
+DialogBlocked		: "Không thể mở được cửa sổ hộp thoại. Hãy đảm bảo chức năng chặn popup đã bị vô hiệu hóa.",
+
+// Dialogs
+DlgBtnOK			: "Đồng ý",
+DlgBtnCancel		: "Bỏ qua",
+DlgBtnClose			: "Đóng",
+DlgBtnBrowseServer	: "Duyệt trên máy chủ",
+DlgAdvancedTag		: "Mở rộng",
+DlgOpOther			: "<Khác>",
+DlgInfoTab			: "Thông tin",
+DlgAlertUrl			: "Hãy nhập vào một URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<không thiết lập>",
+DlgGenId			: "Định danh",
+DlgGenLangDir		: "Đường dẫn Ngôn ngữ",
+DlgGenLangDirLtr	: "Trái sang Phải (LTR)",
+DlgGenLangDirRtl	: "Phải sang Trái (RTL)",
+DlgGenLangCode		: "Mã Ngôn ngữ",
+DlgGenAccessKey		: "Phím Hỗ trợ truy cập",
+DlgGenName			: "Tên",
+DlgGenTabIndex		: "Chỉ số của Tab",
+DlgGenLongDescr		: "Mô tả URL",
+DlgGenClass			: "Lớp Stylesheet",
+DlgGenTitle			: "Advisory Title",
+DlgGenContType		: "Advisory Content Type",
+DlgGenLinkCharset	: "Bảng mã của tài nguyên được liên kết đến",
+DlgGenStyle			: "Mẫu",
+
+// Image Dialog
+DlgImgTitle			: "Thuộc tính Hình ảnh",
+DlgImgInfoTab		: "Thông tin Hình ảnh",
+DlgImgBtnUpload		: "Tải lên Máy chủ",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Tải lên",
+DlgImgAlt			: "Chú thích Hình ảnh",
+DlgImgWidth			: "Rộng",
+DlgImgHeight		: "Cao",
+DlgImgLockRatio		: "Giữ tỷ lệ",
+DlgBtnResetSize		: "Kích thước gốc",
+DlgImgBorder		: "Đường viền",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Vị trí",
+DlgImgAlignLeft		: "Trái",
+DlgImgAlignAbsBottom: "Dưới tuyệt đối",
+DlgImgAlignAbsMiddle: "Giữa tuyệt đối",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Dưới",
+DlgImgAlignMiddle	: "Giữa",
+DlgImgAlignRight	: "Phải",
+DlgImgAlignTextTop	: "Phía trên chữ",
+DlgImgAlignTop		: "Trên",
+DlgImgPreview		: "Xem trước",
+DlgImgAlertUrl		: "Hãy đưa vào URL của hình ảnh",
+DlgImgLinkTab		: "Liên kết",
+
+// Flash Dialog
+DlgFlashTitle		: "Thuộc tính Flash",
+DlgFlashChkPlay		: "Tự động chạy",
+DlgFlashChkLoop		: "Lặp",
+DlgFlashChkMenu		: "Cho phép bật Menu của Flash",
+DlgFlashScale		: "Tỷ lệ",
+DlgFlashScaleAll	: "Hiển thị tất cả",
+DlgFlashScaleNoBorder	: "Không đường viền",
+DlgFlashScaleFit	: "Vừa vặn",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Liên kết",
+DlgLnkInfoTab		: "Thông tin Liên kết",
+DlgLnkTargetTab		: "Đích",
+
+DlgLnkType			: "Kiểu Liên kết",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Neo trong trang này",
+DlgLnkTypeEMail		: "Thư điện tử",
+DlgLnkProto			: "Giao thức",
+DlgLnkProtoOther	: "<khác>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Chọn một Neo",
+DlgLnkAnchorByName	: "Theo Tên Neo",
+DlgLnkAnchorById	: "Theo Định danh Element",
+DlgLnkNoAnchors		: "<Không có Neo nào trong tài liệu>",
+DlgLnkEMail			: "Thư điện tử",
+DlgLnkEMailSubject	: "Tiêu đề Thông điệp",
+DlgLnkEMailBody		: "Nội dung Thông điệp",
+DlgLnkUpload		: "Tải lên",
+DlgLnkBtnUpload		: "Tải lên Máy chủ",
+
+DlgLnkTarget		: "Đích",
+DlgLnkTargetFrame	: "<khung>",
+DlgLnkTargetPopup	: "<cửa sổ popup>",
+DlgLnkTargetBlank	: "Cửa sổ mới (_blank)",
+DlgLnkTargetParent	: "Cửa sổ cha (_parent)",
+DlgLnkTargetSelf	: "Cùng cửa sổ (_self)",
+DlgLnkTargetTop		: "Cửa sổ trên cùng(_top)",
+DlgLnkTargetFrameName	: "Tên Khung đích",
+DlgLnkPopWinName	: "Tên Cửa sổ Popup",
+DlgLnkPopWinFeat	: "Đặc điểm của Cửa sổ Popup",
+DlgLnkPopResize		: "Kích thước thay đổi",
+DlgLnkPopLocation	: "Thanh vị trí",
+DlgLnkPopMenu		: "Thanh Menu",
+DlgLnkPopScroll		: "Thanh cuộn",
+DlgLnkPopStatus		: "Thanh trạng thái",
+DlgLnkPopToolbar	: "Thanh công cụ",
+DlgLnkPopFullScrn	: "Toàn màn hình (IE)",
+DlgLnkPopDependent	: "Phụ thuộc (Netscape)",
+DlgLnkPopWidth		: "Rộng",
+DlgLnkPopHeight		: "Cao",
+DlgLnkPopLeft		: "Vị trí Trái",
+DlgLnkPopTop		: "Vị trí Trên",
+
+DlnLnkMsgNoUrl		: "Hãy đưa vào Liên kết URL",
+DlnLnkMsgNoEMail	: "Hãy đưa vào địa chỉ thư điện tử",
+DlnLnkMsgNoAnchor	: "Hãy chọn một Neo",
+DlnLnkMsgInvPopName	: "Tên của cửa sổ Popup phải bắt đầu bằng một ký tự và không được chứa khoảng trắng",
+
+// Color Dialog
+DlgColorTitle		: "Chọn màu",
+DlgColorBtnClear	: "Xoá",
+DlgColorHighlight	: "Tô sáng",
+DlgColorSelected	: "Đã chọn",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Chèn Hình biểu lộ cảm xúc (mặt cười)",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Hãy chọn Ký tự đặc biệt",
+
+// Table Dialog
+DlgTableTitle		: "Thuộc tính bảng",
+DlgTableRows		: "Hàng",
+DlgTableColumns		: "Cột",
+DlgTableBorder		: "Cỡ Đường viền",
+DlgTableAlign		: "Canh lề",
+DlgTableAlignNotSet	: "<Chưa thiết lập>",
+DlgTableAlignLeft	: "Trái",
+DlgTableAlignCenter	: "Giữa",
+DlgTableAlignRight	: "Phải",
+DlgTableWidth		: "Rộng",
+DlgTableWidthPx		: "điểm (px)",
+DlgTableWidthPc		: "%",
+DlgTableHeight		: "Cao",
+DlgTableCellSpace	: "Khoảng cách Ô",
+DlgTableCellPad		: "Đệm Ô",
+DlgTableCaption		: "Đầu đề",
+DlgTableSummary		: "Tóm lược",
+
+// Table Cell Dialog
+DlgCellTitle		: "Thuộc tính Ô",
+DlgCellWidth		: "Rộng",
+DlgCellWidthPx		: "điểm (px)",
+DlgCellWidthPc		: "%",
+DlgCellHeight		: "Cao",
+DlgCellWordWrap		: "Bọc từ",
+DlgCellWordWrapNotSet	: "<Chưa thiết lập>",
+DlgCellWordWrapYes	: "Đồng ý",
+DlgCellWordWrapNo	: "Không",
+DlgCellHorAlign		: "Canh theo Chiều ngang",
+DlgCellHorAlignNotSet	: "<Chưa thiết lập>",
+DlgCellHorAlignLeft	: "Trái",
+DlgCellHorAlignCenter	: "Giữa",
+DlgCellHorAlignRight: "Phải",
+DlgCellVerAlign		: "Canh theo Chiều dọc",
+DlgCellVerAlignNotSet	: "<Chưa thiết lập>",
+DlgCellVerAlignTop	: "Trên",
+DlgCellVerAlignMiddle	: "Giữa",
+DlgCellVerAlignBottom	: "Dưới",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellRowSpan		: "Nối Hàng",
+DlgCellCollSpan		: "Nối Cột",
+DlgCellBackColor	: "Màu nền",
+DlgCellBorderColor	: "Màu viền",
+DlgCellBtnSelect	: "Chọn...",
+
+// Find Dialog
+DlgFindTitle		: "Tìm kiếm",
+DlgFindFindBtn		: "Tìm kiếm",
+DlgFindNotFoundMsg	: "Không tìm thấy chuỗi cần tìm.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Thay thế",
+DlgReplaceFindLbl		: "Tìm chuỗi:",
+DlgReplaceReplaceLbl	: "Thay bằng:",
+DlgReplaceCaseChk		: "Phân biệt chữ hoa/thường",
+DlgReplaceReplaceBtn	: "Thay thế",
+DlgReplaceReplAllBtn	: "Thay thế Tất cả",
+DlgReplaceWordChk		: "Đúng toàn bộ từ",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh dán. Hãy sử dụng bàn phím cho lệnh này (Ctrl+V).",
+PasteErrorCut	: "Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh cắt. Hãy sử dụng bàn phím cho lệnh này (Ctrl+X).",
+PasteErrorCopy	: "Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh sao chép. Hãy sử dụng bàn phím cho lệnh này (Ctrl+C).",
+
+PasteAsText		: "Dán theo định dạng văn bản thuần",
+PasteFromWord	: "Dán với định dạng Word",
+
+DlgPasteMsg2	: "Hãy dán nội dung vào trong khung bên dưới, sử dụng tổ hợp phím (<STRONG>Ctrl+V</STRONG>) và nhấn vào nút <STRONG>Đồng ý</STRONG>.",
+DlgPasteIgnoreFont		: "Chấp nhận các định dạng phông",
+DlgPasteRemoveStyles	: "Gỡ bỏ các định dạng Styles",
+DlgPasteCleanBox		: "Xóa nội dung",
+
+// Color Picker
+ColorAutomatic	: "Tự động",
+ColorMoreColors	: "Màu khác...",
+
+// Document Properties
+DocProps		: "Thuộc tính Tài liệu",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Thuộc tính Neo",
+DlgAnchorName		: "Tên của Neo",
+DlgAnchorErrorName	: "Hãy đưa vào tên của Neo",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Không có trong từ điển",
+DlgSpellChangeTo		: "Chuyển thành",
+DlgSpellBtnIgnore		: "Bỏ qua",
+DlgSpellBtnIgnoreAll	: "Bỏ qua Tất cả",
+DlgSpellBtnReplace		: "Thay thế",
+DlgSpellBtnReplaceAll	: "Thay thế Tất cả",
+DlgSpellBtnUndo			: "Phục hồi lại",
+DlgSpellNoSuggestions	: "- Không đưa ra gợi ý về từ -",
+DlgSpellProgress		: "Đang tiến hành kiểm tra chính tả...",
+DlgSpellNoMispell		: "Hoàn tất kiểm tra chính tả: Không có lỗi chính tả",
+DlgSpellNoChanges		: "Hoàn tất kiểm tra chính tả: Không có từ nào được thay đổi",
+DlgSpellOneChange		: "Hoàn tất kiểm tra chính tả: Một từ đã được thay đổi",
+DlgSpellManyChanges		: "Hoàn tất kiểm tra chính tả: %1 từ đã được thay đổi",
+
+IeSpellDownload			: "Chức năng kiểm tra chính tả chưa được cài đặt. Bạn có muốn tải về ngay bây giờ?",
+
+// Button Dialog
+DlgButtonText		: "Chuỗi hiển thị (Giá trị)",
+DlgButtonType		: "Kiểu",
+DlgButtonTypeBtn	: "Nút Bấm",
+DlgButtonTypeSbm	: "Nút Gửi",
+DlgButtonTypeRst	: "Nút Nhập lại",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Tên",
+DlgCheckboxValue	: "Giá trị",
+DlgCheckboxSelected	: "Được chọn",
+
+// Form Dialog
+DlgFormName		: "Tên",
+DlgFormAction	: "Hành động",
+DlgFormMethod	: "Phương thức",
+
+// Select Field Dialog
+DlgSelectName		: "Tên",
+DlgSelectValue		: "Giá trị",
+DlgSelectSize		: "Kích cỡ",
+DlgSelectLines		: "dòng",
+DlgSelectChkMulti	: "Cho phép chọn nhiều",
+DlgSelectOpAvail	: "Các tùy chọn có thể sử dụng",
+DlgSelectOpText		: "Văn bản",
+DlgSelectOpValue	: "Giá trị",
+DlgSelectBtnAdd		: "Thêm",
+DlgSelectBtnModify	: "Thay đổi",
+DlgSelectBtnUp		: "Lên",
+DlgSelectBtnDown	: "Xuống",
+DlgSelectBtnSetValue : "Giá trị được chọn",
+DlgSelectBtnDelete	: "Xoá",
+
+// Textarea Dialog
+DlgTextareaName	: "Tên",
+DlgTextareaCols	: "Cột",
+DlgTextareaRows	: "Hàng",
+
+// Text Field Dialog
+DlgTextName			: "Tên",
+DlgTextValue		: "Giá trị",
+DlgTextCharWidth	: "Rộng",
+DlgTextMaxChars		: "Số Ký tự tối đa",
+DlgTextType			: "Kiểu",
+DlgTextTypeText		: "Ký tự",
+DlgTextTypePass		: "Mật khẩu",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Tên",
+DlgHiddenValue	: "Giá trị",
+
+// Bulleted List Dialog
+BulletedListProp	: "Thuộc tính Danh sách không thứ tự",
+NumberedListProp	: "Thuộc tính Danh sách có thứ tự",
+DlgLstStart			: "Bắt đầu",
+DlgLstType			: "Kiểu",
+DlgLstTypeCircle	: "Hình tròn",
+DlgLstTypeDisc		: "Hình đĩa",
+DlgLstTypeSquare	: "Hình vuông",
+DlgLstTypeNumbers	: "Số thứ tự (1, 2, 3)",
+DlgLstTypeLCase		: "Chữ cái thường (a, b, c)",
+DlgLstTypeUCase		: "Chữ cái hoa (A, B, C)",
+DlgLstTypeSRoman	: "Số La Mã thường (i, ii, iii)",
+DlgLstTypeLRoman	: "Số La Mã hoa (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Toàn thể",
+DlgDocBackTab		: "Nền",
+DlgDocColorsTab		: "Màu sắc và Đường biên",
+DlgDocMetaTab		: "Siêu dữ liệu",
+
+DlgDocPageTitle		: "Tiêu đề Trang",
+DlgDocLangDir		: "Đường dẫn Ngôn ngữ",
+DlgDocLangDirLTR	: "Trái sang Phải (LTR)",
+DlgDocLangDirRTL	: "Phải sang Trái (RTL)",
+DlgDocLangCode		: "Mã Ngôn ngữ",
+DlgDocCharSet		: "Bảng mã ký tự",
+DlgDocCharSetCE		: "Trung Âu",
+DlgDocCharSetCT		: "Tiếng Trung Quốc (Big5)",
+DlgDocCharSetCR		: "Tiếng Kirin",
+DlgDocCharSetGR		: "Tiếng Hy Lạp",
+DlgDocCharSetJP		: "Tiếng Nhật",
+DlgDocCharSetKR		: "Tiếng Hàn",
+DlgDocCharSetTR		: "Tiếng Thổ Nhĩ Kỳ",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Tây Âu",
+DlgDocCharSetOther	: "Bảng mã ký tự khác",
+
+DlgDocDocType		: "Kiểu Đề mục Tài liệu",
+DlgDocDocTypeOther	: "Kiểu Đề mục Tài liệu khác",
+DlgDocIncXHTML		: "Bao gồm cả định nghĩa XHTML",
+DlgDocBgColor		: "Màu nền",
+DlgDocBgImage		: "URL của Hình ảnh nền",
+DlgDocBgNoScroll	: "Không cuộn nền",
+DlgDocCText			: "Văn bản",
+DlgDocCLink			: "Liên kết",
+DlgDocCVisited		: "Liên kết Đã ghé thăm",
+DlgDocCActive		: "Liên kết Hiện hành",
+DlgDocMargins		: "Đường biên của Trang",
+DlgDocMaTop			: "Trên",
+DlgDocMaLeft		: "Trái",
+DlgDocMaRight		: "Phải",
+DlgDocMaBottom		: "Dưới",
+DlgDocMeIndex		: "Các từ khóa chỉ mục tài liệu (phân cách bởi dấu phẩy)",
+DlgDocMeDescr		: "Mô tả tài liệu",
+DlgDocMeAuthor		: "Tác giả",
+DlgDocMeCopy		: "Bản quyền",
+DlgDocPreview		: "Xem trước",
+
+// Templates Dialog
+Templates			: "Mẫu dựng sẵn",
+DlgTemplatesTitle	: "Nội dung Mẫu dựng sẵn",
+DlgTemplatesSelMsg	: "Hãy chọn Mẫu dựng sẵn để mở trong trình biên tập<br>(nội dung hiện tại sẽ bị mất):",
+DlgTemplatesLoading	: "Đang nạp Danh sách Mẫu dựng sẵn. Vui lòng đợi trong giây lát...",
+DlgTemplatesNoTpl	: "(Không có Mẫu dựng sẵn nào được định nghĩa)",
+DlgTemplatesReplace	: "Thay thế nội dung hiện tại",
+
+// About Dialog
+DlgAboutAboutTab	: "Giới thiệu",
+DlgAboutBrowserInfoTab	: "Thông tin trình duyệt",
+DlgAboutLicenseTab	: "Giấy phép",
+DlgAboutVersion		: "phiên bản",
+DlgAboutLicense		: "Được cấp phép theo các điều khoản của giấy phép GNU Lesser General Public License",
+DlgAboutInfo		: "Để biết thêm thông tin, hãy truy cập"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/en-uk.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/en-uk.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/en-uk.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: en-uk.js
+ * 	English (United Kingdom) language file.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ * 		Christopher Dawes (fckeditor@dawes.id.au)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Collapse Toolbar",
+ToolbarExpand		: "Expand Toolbar",
+
+// Toolbar Items and Context Menu
+Save				: "Save",
+NewPage				: "New Page",
+Preview				: "Preview",
+Cut					: "Cut",
+Copy				: "Copy",
+Paste				: "Paste",
+PasteText			: "Paste as plain text",
+PasteWord			: "Paste from Word",
+Print				: "Print",
+SelectAll			: "Select All",
+RemoveFormat		: "Remove Format",
+InsertLinkLbl		: "Link",
+InsertLink			: "Insert/Edit Link",
+RemoveLink			: "Remove Link",
+Anchor				: "Insert/Edit Anchor",
+InsertImageLbl		: "Image",
+InsertImage			: "Insert/Edit Image",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Insert/Edit Flash",
+InsertTableLbl		: "Table",
+InsertTable			: "Insert/Edit Table",
+InsertLineLbl		: "Line",
+InsertLine			: "Insert Horizontal Line",
+InsertSpecialCharLbl: "Special Character",
+InsertSpecialChar	: "Insert Special Character",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Insert Smiley",
+About				: "About FCKeditor",
+Bold				: "Bold",
+Italic				: "Italic",
+Underline			: "Underline",
+StrikeThrough		: "Strike Through",
+Subscript			: "Subscript",
+Superscript			: "Superscript",
+LeftJustify			: "Left Justify",
+CenterJustify		: "Centre Justify",
+RightJustify		: "Right Justify",
+BlockJustify		: "Block Justify",
+DecreaseIndent		: "Decrease Indent",
+IncreaseIndent		: "Increase Indent",
+Undo				: "Undo",
+Redo				: "Redo",
+NumberedListLbl		: "Numbered List",
+NumberedList		: "Insert/Remove Numbered List",
+BulletedListLbl		: "Bulleted List",
+BulletedList		: "Insert/Remove Bulleted List",
+ShowTableBorders	: "Show Table Borders",
+ShowDetails			: "Show Details",
+Style				: "Style",
+FontFormat			: "Format",
+Font				: "Font",
+FontSize			: "Size",
+TextColor			: "Text Colour",
+BGColor				: "Background Colour",
+Source				: "Source",
+Find				: "Find",
+Replace				: "Replace",
+SpellCheck			: "Check Spelling",
+UniversalKeyboard	: "Universal Keyboard",
+PageBreakLbl		: "Page Break",
+PageBreak			: "Insert Page Break",
+
+Form			: "Form",
+Checkbox		: "Checkbox",
+RadioButton		: "Radio Button",
+TextField		: "Text Field",
+Textarea		: "Textarea",
+HiddenField		: "Hidden Field",
+Button			: "Button",
+SelectionField	: "Selection Field",
+ImageButton		: "Image Button",
+
+FitWindow		: "Maximize the editor size",
+
+// Context Menu
+EditLink			: "Edit Link",
+CellCM				: "Cell",
+RowCM				: "Row",
+ColumnCM			: "Column",
+InsertRow			: "Insert Row",
+DeleteRows			: "Delete Rows",
+InsertColumn		: "Insert Column",
+DeleteColumns		: "Delete Columns",
+InsertCell			: "Insert Cell",
+DeleteCells			: "Delete Cells",
+MergeCells			: "Merge Cells",
+SplitCell			: "Split Cell",
+TableDelete			: "Delete Table",
+CellProperties		: "Cell Properties",
+TableProperties		: "Table Properties",
+ImageProperties		: "Image Properties",
+FlashProperties		: "Flash Properties",
+
+AnchorProp			: "Anchor Properties",
+ButtonProp			: "Button Properties",
+CheckboxProp		: "Checkbox Properties",
+HiddenFieldProp		: "Hidden Field Properties",
+RadioButtonProp		: "Radio Button Properties",
+ImageButtonProp		: "Image Button Properties",
+TextFieldProp		: "Text Field Properties",
+SelectionFieldProp	: "Selection Field Properties",
+TextareaProp		: "Textarea Properties",
+FormProp			: "Form Properties",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Processing XHTML. Please wait...",
+Done				: "Done",
+PasteWordConfirm	: "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?",
+NotCompatiblePaste	: "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?",
+UnknownToolbarItem	: "Unknown toolbar item \"%1\"",
+UnknownCommand		: "Unknown command name \"%1\"",
+NotImplemented		: "Command not implemented",
+UnknownToolbarSet	: "Toolbar set \"%1\" doesn't exist",
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Cancel",
+DlgBtnClose			: "Close",
+DlgBtnBrowseServer	: "Browse Server",
+DlgAdvancedTag		: "Advanced",
+DlgOpOther			: "<Other>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Please insert the URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<not set>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Language Direction",
+DlgGenLangDirLtr	: "Left to Right (LTR)",
+DlgGenLangDirRtl	: "Right to Left (RTL)",
+DlgGenLangCode		: "Language Code",
+DlgGenAccessKey		: "Access Key",
+DlgGenName			: "Name",
+DlgGenTabIndex		: "Tab Index",
+DlgGenLongDescr		: "Long Description URL",
+DlgGenClass			: "Stylesheet Classes",
+DlgGenTitle			: "Advisory Title",
+DlgGenContType		: "Advisory Content Type",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Style",
+
+// Image Dialog
+DlgImgTitle			: "Image Properties",
+DlgImgInfoTab		: "Image Info",
+DlgImgBtnUpload		: "Send it to the Server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Upload",
+DlgImgAlt			: "Alternative Text",
+DlgImgWidth			: "Width",
+DlgImgHeight		: "Height",
+DlgImgLockRatio		: "Lock Ratio",
+DlgBtnResetSize		: "Reset Size",
+DlgImgBorder		: "Border",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Align",
+DlgImgAlignLeft		: "Left",
+DlgImgAlignAbsBottom: "Abs Bottom",
+DlgImgAlignAbsMiddle: "Abs Middle",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Bottom",
+DlgImgAlignMiddle	: "Middle",
+DlgImgAlignRight	: "Right",
+DlgImgAlignTextTop	: "Text Top",
+DlgImgAlignTop		: "Top",
+DlgImgPreview		: "Preview",
+DlgImgAlertUrl		: "Please type the image URL",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Properties",
+DlgFlashChkPlay		: "Auto Play",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "Enable Flash Menu",
+DlgFlashScale		: "Scale",
+DlgFlashScaleAll	: "Show all",
+DlgFlashScaleNoBorder	: "No Border",
+DlgFlashScaleFit	: "Exact Fit",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Link Info",
+DlgLnkTargetTab		: "Target",
+
+DlgLnkType			: "Link Type",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Link to anchor in the text",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocol",
+DlgLnkProtoOther	: "<other>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Select an Anchor",
+DlgLnkAnchorByName	: "By Anchor Name",
+DlgLnkAnchorById	: "By Element Id",
+DlgLnkNoAnchors		: "<No anchors available in the document>",
+DlgLnkEMail			: "E-Mail Address",
+DlgLnkEMailSubject	: "Message Subject",
+DlgLnkEMailBody		: "Message Body",
+DlgLnkUpload		: "Upload",
+DlgLnkBtnUpload		: "Send it to the Server",
+
+DlgLnkTarget		: "Target",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<popup window>",
+DlgLnkTargetBlank	: "New Window (_blank)",
+DlgLnkTargetParent	: "Parent Window (_parent)",
+DlgLnkTargetSelf	: "Same Window (_self)",
+DlgLnkTargetTop		: "Topmost Window (_top)",
+DlgLnkTargetFrameName	: "Target Frame Name",
+DlgLnkPopWinName	: "Popup Window Name",
+DlgLnkPopWinFeat	: "Popup Window Features",
+DlgLnkPopResize		: "Resizable",
+DlgLnkPopLocation	: "Location Bar",
+DlgLnkPopMenu		: "Menu Bar",
+DlgLnkPopScroll		: "Scroll Bars",
+DlgLnkPopStatus		: "Status Bar",
+DlgLnkPopToolbar	: "Toolbar",
+DlgLnkPopFullScrn	: "Full Screen (IE)",
+DlgLnkPopDependent	: "Dependent (Netscape)",
+DlgLnkPopWidth		: "Width",
+DlgLnkPopHeight		: "Height",
+DlgLnkPopLeft		: "Left Position",
+DlgLnkPopTop		: "Top Position",
+
+DlnLnkMsgNoUrl		: "Please type the link URL",
+DlnLnkMsgNoEMail	: "Please type the e-mail address",
+DlnLnkMsgNoAnchor	: "Please select an anchor",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",
+
+// Color Dialog
+DlgColorTitle		: "Select Colour",
+DlgColorBtnClear	: "Clear",
+DlgColorHighlight	: "Highlight",
+DlgColorSelected	: "Selected",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Insert a Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Select Special Character",
+
+// Table Dialog
+DlgTableTitle		: "Table Properties",
+DlgTableRows		: "Rows",
+DlgTableColumns		: "Columns",
+DlgTableBorder		: "Border size",
+DlgTableAlign		: "Alignment",
+DlgTableAlignNotSet	: "<Not set>",
+DlgTableAlignLeft	: "Left",
+DlgTableAlignCenter	: "Centre",
+DlgTableAlignRight	: "Right",
+DlgTableWidth		: "Width",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "percent",
+DlgTableHeight		: "Height",
+DlgTableCellSpace	: "Cell spacing",
+DlgTableCellPad		: "Cell padding",
+DlgTableCaption		: "Caption",
+DlgTableSummary		: "Summary",
+
+// Table Cell Dialog
+DlgCellTitle		: "Cell Properties",
+DlgCellWidth		: "Width",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "percent",
+DlgCellHeight		: "Height",
+DlgCellWordWrap		: "Word Wrap",
+DlgCellWordWrapNotSet	: "<Not set>",
+DlgCellWordWrapYes	: "Yes",
+DlgCellWordWrapNo	: "No",
+DlgCellHorAlign		: "Horizontal Alignment",
+DlgCellHorAlignNotSet	: "<Not set>",
+DlgCellHorAlignLeft	: "Left",
+DlgCellHorAlignCenter	: "Centre",
+DlgCellHorAlignRight: "Right",
+DlgCellVerAlign		: "Vertical Alignment",
+DlgCellVerAlignNotSet	: "<Not set>",
+DlgCellVerAlignTop	: "Top",
+DlgCellVerAlignMiddle	: "Middle",
+DlgCellVerAlignBottom	: "Bottom",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellRowSpan		: "Rows Span",
+DlgCellCollSpan		: "Columns Span",
+DlgCellBackColor	: "Background Colour",
+DlgCellBorderColor	: "Border Colour",
+DlgCellBtnSelect	: "Select...",
+
+// Find Dialog
+DlgFindTitle		: "Find",
+DlgFindFindBtn		: "Find",
+DlgFindNotFoundMsg	: "The specified text was not found.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Replace",
+DlgReplaceFindLbl		: "Find what:",
+DlgReplaceReplaceLbl	: "Replace with:",
+DlgReplaceCaseChk		: "Match case",
+DlgReplaceReplaceBtn	: "Replace",
+DlgReplaceReplAllBtn	: "Replace All",
+DlgReplaceWordChk		: "Match whole word",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Your browser security settings don't permit the editor to automatically execute pasting operations. Please use the keyboard for that (Ctrl+V).",
+PasteErrorCut	: "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",
+PasteErrorCopy	: "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",
+
+PasteAsText		: "Paste as Plain Text",
+PasteFromWord	: "Paste from Word",
+
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignore Font Face definitions",
+DlgPasteRemoveStyles	: "Remove Styles definitions",
+DlgPasteCleanBox		: "Clean Up Box",
+
+// Color Picker
+ColorAutomatic	: "Automatic",
+ColorMoreColors	: "More Colours...",
+
+// Document Properties
+DocProps		: "Document Properties",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Anchor Properties",
+DlgAnchorName		: "Anchor Name",
+DlgAnchorErrorName	: "Please type the anchor name",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Not in dictionary",
+DlgSpellChangeTo		: "Change to",
+DlgSpellBtnIgnore		: "Ignore",
+DlgSpellBtnIgnoreAll	: "Ignore All",
+DlgSpellBtnReplace		: "Replace",
+DlgSpellBtnReplaceAll	: "Replace All",
+DlgSpellBtnUndo			: "Undo",
+DlgSpellNoSuggestions	: "- No suggestions -",
+DlgSpellProgress		: "Spell check in progress...",
+DlgSpellNoMispell		: "Spell check complete: No misspellings found",
+DlgSpellNoChanges		: "Spell check complete: No words changed",
+DlgSpellOneChange		: "Spell check complete: One word changed",
+DlgSpellManyChanges		: "Spell check complete: %1 words changed",
+
+IeSpellDownload			: "Spell checker not installed. Do you want to download it now?",
+
+// Button Dialog
+DlgButtonText		: "Text (Value)",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Button",
+DlgButtonTypeSbm	: "Submit",
+DlgButtonTypeRst	: "Reset",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Name",
+DlgCheckboxValue	: "Value",
+DlgCheckboxSelected	: "Selected",
+
+// Form Dialog
+DlgFormName		: "Name",
+DlgFormAction	: "Action",
+DlgFormMethod	: "Method",
+
+// Select Field Dialog
+DlgSelectName		: "Name",
+DlgSelectValue		: "Value",
+DlgSelectSize		: "Size",
+DlgSelectLines		: "lines",
+DlgSelectChkMulti	: "Allow multiple selections",
+DlgSelectOpAvail	: "Available Options",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Value",
+DlgSelectBtnAdd		: "Add",
+DlgSelectBtnModify	: "Modify",
+DlgSelectBtnUp		: "Up",
+DlgSelectBtnDown	: "Down",
+DlgSelectBtnSetValue : "Set as selected value",
+DlgSelectBtnDelete	: "Delete",
+
+// Textarea Dialog
+DlgTextareaName	: "Name",
+DlgTextareaCols	: "Columns",
+DlgTextareaRows	: "Rows",
+
+// Text Field Dialog
+DlgTextName			: "Name",
+DlgTextValue		: "Value",
+DlgTextCharWidth	: "Character Width",
+DlgTextMaxChars		: "Maximum Characters",
+DlgTextType			: "Type",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "Password",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Name",
+DlgHiddenValue	: "Value",
+
+// Bulleted List Dialog
+BulletedListProp	: "Bulleted List Properties",
+NumberedListProp	: "Numbered List Properties",
+DlgLstStart			: "Start",
+DlgLstType			: "Type",
+DlgLstTypeCircle	: "Circle",
+DlgLstTypeDisc		: "Disc",
+DlgLstTypeSquare	: "Square",
+DlgLstTypeNumbers	: "Numbers (1, 2, 3)",
+DlgLstTypeLCase		: "Lowercase Letters (a, b, c)",
+DlgLstTypeUCase		: "Uppercase Letters (A, B, C)",
+DlgLstTypeSRoman	: "Small Roman Numerals (i, ii, iii)",
+DlgLstTypeLRoman	: "Large Roman Numerals (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "General",
+DlgDocBackTab		: "Background",
+DlgDocColorsTab		: "Colours and Margins",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Page Title",
+DlgDocLangDir		: "Language Direction",
+DlgDocLangDirLTR	: "Left to Right (LTR)",
+DlgDocLangDirRTL	: "Right to Left (RTL)",
+DlgDocLangCode		: "Language Code",
+DlgDocCharSet		: "Character Set Encoding",
+DlgDocCharSetCE		: "Central European",
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Greek",
+DlgDocCharSetJP		: "Japanese",
+DlgDocCharSetKR		: "Korean",
+DlgDocCharSetTR		: "Turkish",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Western European",
+DlgDocCharSetOther	: "Other Character Set Encoding",
+
+DlgDocDocType		: "Document Type Heading",
+DlgDocDocTypeOther	: "Other Document Type Heading",
+DlgDocIncXHTML		: "Include XHTML Declarations",
+DlgDocBgColor		: "Background Colour",
+DlgDocBgImage		: "Background Image URL",
+DlgDocBgNoScroll	: "Nonscrolling Background",
+DlgDocCText			: "Text",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Visited Link",
+DlgDocCActive		: "Active Link",
+DlgDocMargins		: "Page Margins",
+DlgDocMaTop			: "Top",
+DlgDocMaLeft		: "Left",
+DlgDocMaRight		: "Right",
+DlgDocMaBottom		: "Bottom",
+DlgDocMeIndex		: "Document Indexing Keywords (comma separated)",
+DlgDocMeDescr		: "Document Description",
+DlgDocMeAuthor		: "Author",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Preview",
+
+// Templates Dialog
+Templates			: "Templates",
+DlgTemplatesTitle	: "Content Templates",
+DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",
+DlgTemplatesLoading	: "Loading templates list. Please wait...",
+DlgTemplatesNoTpl	: "(No templates defined)",
+DlgTemplatesReplace	: "Replace actual contents",
+
+// About Dialog
+DlgAboutAboutTab	: "About",
+DlgAboutBrowserInfoTab	: "Browser Info",
+DlgAboutLicenseTab	: "License",
+DlgAboutVersion		: "version",
+DlgAboutLicense		: "Licensed under the terms of the GNU Lesser General Public License",
+DlgAboutInfo		: "For further information go to"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ms.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ms.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ms.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: ms.js
+ * 	Malay language file.
+ * 
+ * File Authors:
+ * 		Fairul Izham Mohd Mokhlas (eg86@hotmail.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Collapse Toolbar",
+ToolbarExpand		: "Expand Toolbar",
+
+// Toolbar Items and Context Menu
+Save				: "Simpan",
+NewPage				: "Helaian Baru",
+Preview				: "Prebiu",
+Cut					: "Potong",
+Copy				: "Salin",
+Paste				: "Tampal",
+PasteText			: "Tampal sebagai Text Biasa",
+PasteWord			: "Tampal dari Word",
+Print				: "Cetak",
+SelectAll			: "Pilih Semua",
+RemoveFormat		: "Buang Format",
+InsertLinkLbl		: "Sambungan",
+InsertLink			: "Masukkan/Sunting Sambungan",
+RemoveLink			: "Buang Sambungan",
+Anchor				: "Masukkan/Sunting Pautan",
+InsertImageLbl		: "Gambar",
+InsertImage			: "Masukkan/Sunting Gambar",
+InsertFlashLbl		: "Flash",	//MISSING
+InsertFlash			: "Insert/Edit Flash",	//MISSING
+InsertTableLbl		: "Jadual",
+InsertTable			: "Masukkan/Sunting Jadual",
+InsertLineLbl		: "Garisan",
+InsertLine			: "Masukkan Garisan Membujur",
+InsertSpecialCharLbl: "Huruf Istimewa",
+InsertSpecialChar	: "Masukkan Huruf Istimewa",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Masukkan Smiley",
+About				: "Tentang FCKeditor",
+Bold				: "Bold",
+Italic				: "Italic",
+Underline			: "Underline",
+StrikeThrough		: "Strike Through",
+Subscript			: "Subscript",
+Superscript			: "Superscript",
+LeftJustify			: "Jajaran Kiri",
+CenterJustify		: "Jajaran Tengah",
+RightJustify		: "Jajaran Kanan",
+BlockJustify		: "Jajaran Blok",
+DecreaseIndent		: "Kurangkan Inden",
+IncreaseIndent		: "Tambahkan Inden",
+Undo				: "Batalkan",
+Redo				: "Ulangkan",
+NumberedListLbl		: "Senarai bernombor",
+NumberedList		: "Masukkan/Sunting Senarai bernombor",
+BulletedListLbl		: "Senarai tidak bernombor",
+BulletedList		: "Masukkan/Sunting Senarai tidak bernombor",
+ShowTableBorders	: "Tunjukkan Border Jadual",
+ShowDetails			: "Tunjukkan Butiran",
+Style				: "Stail",
+FontFormat			: "Format",
+Font				: "Font",
+FontSize			: "Saiz",
+TextColor			: "Warna Text",
+BGColor				: "Warna Latarbelakang",
+Source				: "Sumber",
+Find				: "Cari",
+Replace				: "Ganti",
+SpellCheck			: "Semak Ejaan",
+UniversalKeyboard	: "Papan Kekunci Universal",
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
+
+Form			: "Borang",
+Checkbox		: "Checkbox",
+RadioButton		: "Butang Radio",
+TextField		: "Text Field",
+Textarea		: "Textarea",
+HiddenField		: "Field Tersembunyi",
+Button			: "Butang",
+SelectionField	: "Field Pilihan",
+ImageButton		: "Butang Bergambar",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+
+// Context Menu
+EditLink			: "Sunting Sambungan",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRow			: "Masukkan Baris",
+DeleteRows			: "Buangkan Baris",
+InsertColumn		: "Masukkan Lajur",
+DeleteColumns		: "Buangkan Lajur",
+InsertCell			: "Masukkan Sel",
+DeleteCells			: "Buangkan Sel-sel",
+MergeCells			: "Cantumkan Sel-sel",
+SplitCell			: "Bahagikan Sel",
+TableDelete			: "Delete Table",	//MISSING
+CellProperties		: "Ciri-ciri Sel",
+TableProperties		: "Ciri-ciri Jadual",
+ImageProperties		: "Ciri-ciri Gambar",
+FlashProperties		: "Flash Properties",	//MISSING
+
+AnchorProp			: "Ciri-ciri Pautan",
+ButtonProp			: "Ciri-ciri Butang",
+CheckboxProp		: "Ciri-ciri Checkbox",
+HiddenFieldProp		: "Ciri-ciri Field Tersembunyi",
+RadioButtonProp		: "Ciri-ciri Butang Radio",
+ImageButtonProp		: "Ciri-ciri Butang Bergambar",
+TextFieldProp		: "Ciri-ciri Text Field",
+SelectionFieldProp	: "Ciri-ciri Selection Field",
+TextareaProp		: "Ciri-ciri Textarea",
+FormProp			: "Ciri-ciri Borang",
+
+FontFormats			: "Normal;Telah Diformat;Alamat;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Perenggan (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Memproses XHTML. Sila tunggu...",
+Done				: "Siap",
+PasteWordConfirm	: "Text yang anda hendak tampal adalah berasal dari Word. Adakah anda mahu membuang semua format Word sebelum tampal ke dalam text?",
+NotCompatiblePaste	: "Arahan ini bole dilakukan jika anda mempuunyai Internet Explorer version 5.5 atau yang lebih tinggi. Adakah anda hendak tampal text tanpa membuang format Word?",
+UnknownToolbarItem	: "Toolbar item tidak diketahui\"%1\"",
+UnknownCommand		: "Arahan tidak diketahui \"%1\"",
+NotImplemented		: "Arahan tidak terdapat didalam sistem",
+UnknownToolbarSet	: "Set toolbar \"%1\" tidak wujud",
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Batal",
+DlgBtnClose			: "Tutup",
+DlgBtnBrowseServer	: "Browse Server",
+DlgAdvancedTag		: "Advanced",
+DlgOpOther			: "<Lain-lain>",
+DlgInfoTab			: "Info",	//MISSING
+DlgAlertUrl			: "Please insert the URL",	//MISSING
+
+// General Dialogs Labels
+DlgGenNotSet		: "<tidak di set>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Arah Tulisan",
+DlgGenLangDirLtr	: "Kiri ke Kanan (LTR)",
+DlgGenLangDirRtl	: "Kanan ke Kiri (RTL)",
+DlgGenLangCode		: "Kod Bahasa",
+DlgGenAccessKey		: "Kunci Akses",
+DlgGenName			: "Nama",
+DlgGenTabIndex		: "Indeks Tab ",
+DlgGenLongDescr		: "Butiran Panjang URL",
+DlgGenClass			: "Kelas-kelas Stylesheet",
+DlgGenTitle			: "Tajuk Makluman",
+DlgGenContType		: "Jenis Kandungan Makluman",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Stail",
+
+// Image Dialog
+DlgImgTitle			: "Ciri-ciri Imej",
+DlgImgInfoTab		: "Info Imej",
+DlgImgBtnUpload		: "Hantar ke Server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Muat Naik",
+DlgImgAlt			: "Text Alternatif",
+DlgImgWidth			: "Lebar",
+DlgImgHeight		: "Tinggi",
+DlgImgLockRatio		: "Tetapkan Nisbah",
+DlgBtnResetSize		: "Saiz Set Semula",
+DlgImgBorder		: "Border",
+DlgImgHSpace		: "Ruang Melintang",
+DlgImgVSpace		: "Ruang Menegak",
+DlgImgAlign			: "Jajaran",
+DlgImgAlignLeft		: "Kiri",
+DlgImgAlignAbsBottom: "Bawah Mutlak",
+DlgImgAlignAbsMiddle: "Pertengahan Mutlak",
+DlgImgAlignBaseline	: "Garis Dasar",
+DlgImgAlignBottom	: "Bawah",
+DlgImgAlignMiddle	: "Pertengahan",
+DlgImgAlignRight	: "Kanan",
+DlgImgAlignTextTop	: "Atas Text",
+DlgImgAlignTop		: "Atas",
+DlgImgPreview		: "Prebiu",
+DlgImgAlertUrl		: "Sila taip URL untuk fail gambar",
+DlgImgLinkTab		: "Sambungan",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Properties",	//MISSING
+DlgFlashChkPlay		: "Auto Play",	//MISSING
+DlgFlashChkLoop		: "Loop",	//MISSING
+DlgFlashChkMenu		: "Enable Flash Menu",	//MISSING
+DlgFlashScale		: "Scale",	//MISSING
+DlgFlashScaleAll	: "Show all",	//MISSING
+DlgFlashScaleNoBorder	: "No Border",	//MISSING
+DlgFlashScaleFit	: "Exact Fit",	//MISSING
+
+// Link Dialog
+DlgLnkWindowTitle	: "Sambungan",
+DlgLnkInfoTab		: "Butiran Sambungan",
+DlgLnkTargetTab		: "Sasaran",
+
+DlgLnkType			: "Jenis Sambungan",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Pautan dalam muka surat ini",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<lain-lain>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Sila pilih pautan",
+DlgLnkAnchorByName	: "dengan menggunakan nama pautan",
+DlgLnkAnchorById	: "dengan menggunakan ID elemen",
+DlgLnkNoAnchors		: "<Tiada pautan terdapat dalam dokumen ini>",
+DlgLnkEMail			: "Alamat E-Mail",
+DlgLnkEMailSubject	: "Subjek Mesej",
+DlgLnkEMailBody		: "Isi Kandungan Mesej",
+DlgLnkUpload		: "Muat Naik",
+DlgLnkBtnUpload		: "Hantar ke Server",
+
+DlgLnkTarget		: "Sasaran",
+DlgLnkTargetFrame	: "<bingkai>",
+DlgLnkTargetPopup	: "<tetingkap popup>",
+DlgLnkTargetBlank	: "Tetingkap Baru (_blank)",
+DlgLnkTargetParent	: "Tetingkap Parent (_parent)",
+DlgLnkTargetSelf	: "Tetingkap yang Sama (_self)",
+DlgLnkTargetTop		: "Tetingkap yang paling atas (_top)",
+DlgLnkTargetFrameName	: "Nama Bingkai Sasaran",
+DlgLnkPopWinName	: "Nama Tetingkap Popup",
+DlgLnkPopWinFeat	: "Ciri Tetingkap Popup",
+DlgLnkPopResize		: "Saiz bolehubah",
+DlgLnkPopLocation	: "Bar Lokasi",
+DlgLnkPopMenu		: "Bar Menu",
+DlgLnkPopScroll		: "Bar-bar skrol",
+DlgLnkPopStatus		: "Bar Status",
+DlgLnkPopToolbar	: "Toolbar",
+DlgLnkPopFullScrn	: "Skrin Penuh (IE)",
+DlgLnkPopDependent	: "Bergantungan (Netscape)",
+DlgLnkPopWidth		: "Lebar",
+DlgLnkPopHeight		: "Tinggi",
+DlgLnkPopLeft		: "Posisi Kiri",
+DlgLnkPopTop		: "Posisi Atas",
+
+DlnLnkMsgNoUrl		: "Sila taip sambungan URL",
+DlnLnkMsgNoEMail	: "Sila taip alamat e-mail",
+DlnLnkMsgNoAnchor	: "Sila pilih pautan berkenaaan",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Pilihan Warna",
+DlgColorBtnClear	: "Nyahwarna",
+DlgColorHighlight	: "Terang",
+DlgColorSelected	: "Dipilih",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Masukkan Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Sila pilih huruf istimewa",
+
+// Table Dialog
+DlgTableTitle		: "Ciri-ciri Jadual",
+DlgTableRows		: "Barisan",
+DlgTableColumns		: "Jaluran",
+DlgTableBorder		: "Saiz Border",
+DlgTableAlign		: "Penjajaran",
+DlgTableAlignNotSet	: "<Tidak diset>",
+DlgTableAlignLeft	: "Kiri",
+DlgTableAlignCenter	: "Tengah",
+DlgTableAlignRight	: "Kanan",
+DlgTableWidth		: "Lebar",
+DlgTableWidthPx		: "piksel-piksel",
+DlgTableWidthPc		: "peratus",
+DlgTableHeight		: "Tinggi",
+DlgTableCellSpace	: "Ruangan Antara Sel",
+DlgTableCellPad		: "Tambahan Ruang Sel",
+DlgTableCaption		: "Keterangan",
+DlgTableSummary		: "Summary",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "Ciri-ciri Sel",
+DlgCellWidth		: "Lebar",
+DlgCellWidthPx		: "piksel-piksel",
+DlgCellWidthPc		: "peratus",
+DlgCellHeight		: "Tinggi",
+DlgCellWordWrap		: "Mengulung Perkataan",
+DlgCellWordWrapNotSet	: "<Tidak diset>",
+DlgCellWordWrapYes	: "Ya",
+DlgCellWordWrapNo	: "Tidak",
+DlgCellHorAlign		: "Jajaran Membujur",
+DlgCellHorAlignNotSet	: "<Tidak diset>",
+DlgCellHorAlignLeft	: "Kiri",
+DlgCellHorAlignCenter	: "Tengah",
+DlgCellHorAlignRight: "Kanan",
+DlgCellVerAlign		: "Jajaran Menegak",
+DlgCellVerAlignNotSet	: "<Tidak diset>",
+DlgCellVerAlignTop	: "Atas",
+DlgCellVerAlignMiddle	: "Tengah",
+DlgCellVerAlignBottom	: "Bawah",
+DlgCellVerAlignBaseline	: "Garis Dasar",
+DlgCellRowSpan		: "Penggunaan Baris",
+DlgCellCollSpan		: "Penggunaan Lajur",
+DlgCellBackColor	: "Warna Latarbelakang",
+DlgCellBorderColor	: "Warna Border",
+DlgCellBtnSelect	: "Pilih...",
+
+// Find Dialog
+DlgFindTitle		: "Carian",
+DlgFindFindBtn		: "Cari",
+DlgFindNotFoundMsg	: "Text yang dicari tidak dijumpai.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Gantian",
+DlgReplaceFindLbl		: "Perkataan yang dicari:",
+DlgReplaceReplaceLbl	: "Diganti dengan:",
+DlgReplaceCaseChk		: "Padanan case huruf",
+DlgReplaceReplaceBtn	: "Ganti",
+DlgReplaceReplAllBtn	: "Ganti semua",
+DlgReplaceWordChk		: "Padana Keseluruhan perkataan",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Keselamatan perisian browser anda tidak membenarkan operasi tampalan text/imej. Sila gunakan papan kekunci (Ctrl+V).",
+PasteErrorCut	: "Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl+X).",
+PasteErrorCopy	: "Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl+C).",
+
+PasteAsText		: "Tampal sebagai text biasa",
+PasteFromWord	: "Tampal dari perisian \"Word\"",
+
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",	//MISSING
+DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
+DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
+DlgPasteCleanBox		: "Clean Up Box",	//MISSING
+
+// Color Picker
+ColorAutomatic	: "Otomatik",
+ColorMoreColors	: "Warna lain-lain...",
+
+// Document Properties
+DocProps		: "Ciri-ciri dokumen",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ciri-ciri Pautan",
+DlgAnchorName		: "Nama Pautan",
+DlgAnchorErrorName	: "Sila taip nama pautan",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Tidak terdapat didalam kamus",
+DlgSpellChangeTo		: "Tukarkan kepada",
+DlgSpellBtnIgnore		: "Biar",
+DlgSpellBtnIgnoreAll	: "Biarkan semua",
+DlgSpellBtnReplace		: "Ganti",
+DlgSpellBtnReplaceAll	: "Gantikan Semua",
+DlgSpellBtnUndo			: "Batalkan",
+DlgSpellNoSuggestions	: "- Tiada cadangan -",
+DlgSpellProgress		: "Pemeriksaan ejaan sedang diproses...",
+DlgSpellNoMispell		: "Pemeriksaan ejaan siap: Tiada salah ejaan",
+DlgSpellNoChanges		: "Pemeriksaan ejaan siap: Tiada perkataan diubah",
+DlgSpellOneChange		: "Pemeriksaan ejaan siap: Satu perkataan telah diubah",
+DlgSpellManyChanges		: "Pemeriksaan ejaan siap: %1 perkataan diubah",
+
+IeSpellDownload			: "Pemeriksa ejaan tidak dipasang. Adakah anda mahu muat turun sekarang?",
+
+// Button Dialog
+DlgButtonText		: "Teks (Nilai)",
+DlgButtonType		: "Jenis",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nama",
+DlgCheckboxValue	: "Nilai",
+DlgCheckboxSelected	: "Dipilih",
+
+// Form Dialog
+DlgFormName		: "Nama",
+DlgFormAction	: "Tindakan borang",
+DlgFormMethod	: "Cara borang dihantar",
+
+// Select Field Dialog
+DlgSelectName		: "Nama",
+DlgSelectValue		: "Nilai",
+DlgSelectSize		: "Saiz",
+DlgSelectLines		: "garisan",
+DlgSelectChkMulti	: "Benarkan pilihan pelbagai",
+DlgSelectOpAvail	: "Pilihan sediada",
+DlgSelectOpText		: "Teks",
+DlgSelectOpValue	: "Nilai",
+DlgSelectBtnAdd		: "Tambah Pilihan",
+DlgSelectBtnModify	: "Ubah Pilihan",
+DlgSelectBtnUp		: "Naik ke atas",
+DlgSelectBtnDown	: "Turun ke bawah",
+DlgSelectBtnSetValue : "Set sebagai nilai terpilih",
+DlgSelectBtnDelete	: "Padam",
+
+// Textarea Dialog
+DlgTextareaName	: "Nama",
+DlgTextareaCols	: "Lajur",
+DlgTextareaRows	: "Baris",
+
+// Text Field Dialog
+DlgTextName			: "Nama",
+DlgTextValue		: "Nilai",
+DlgTextCharWidth	: "Lebar isian",
+DlgTextMaxChars		: "Isian Maksimum",
+DlgTextType			: "Jenis",
+DlgTextTypeText		: "Teks",
+DlgTextTypePass		: "Kata Laluan",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nama",
+DlgHiddenValue	: "Nilai",
+
+// Bulleted List Dialog
+BulletedListProp	: "Ciri-ciri senarai berpeluru",
+NumberedListProp	: "Ciri-ciri senarai bernombor",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Jenis",
+DlgLstTypeCircle	: "Circle",
+DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeSquare	: "Square",
+DlgLstTypeNumbers	: "Nombor-nombor (1, 2, 3)",
+DlgLstTypeLCase		: "Huruf-huruf kecil (a, b, c)",
+DlgLstTypeUCase		: "Huruf-huruf besar (A, B, C)",
+DlgLstTypeSRoman	: "Nombor Roman Kecil (i, ii, iii)",
+DlgLstTypeLRoman	: "Nombor Roman Besar (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Umum",
+DlgDocBackTab		: "Latarbelakang",
+DlgDocColorsTab		: "Warna dan margin",
+DlgDocMetaTab		: "Data Meta",
+
+DlgDocPageTitle		: "Tajuk Muka Surat",
+DlgDocLangDir		: "Arah Tulisan",
+DlgDocLangDirLTR	: "Kiri ke Kanan (LTR)",
+DlgDocLangDirRTL	: "Kanan ke Kiri (RTL)",
+DlgDocLangCode		: "Kod Bahasa",
+DlgDocCharSet		: "Enkod Set Huruf",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Enkod Set Huruf yang Lain",
+
+DlgDocDocType		: "Jenis Kepala Dokumen",
+DlgDocDocTypeOther	: "Jenis Kepala Dokumen yang Lain",
+DlgDocIncXHTML		: "Masukkan pemula kod XHTML",
+DlgDocBgColor		: "Warna Latarbelakang",
+DlgDocBgImage		: "URL Gambar Latarbelakang",
+DlgDocBgNoScroll	: "Imej Latarbelakang tanpa Skrol",
+DlgDocCText			: "Teks",
+DlgDocCLink			: "Sambungan",
+DlgDocCVisited		: "Sambungan telah Dilawati",
+DlgDocCActive		: "Sambungan Aktif",
+DlgDocMargins		: "Margin Muka Surat",
+DlgDocMaTop			: "Atas",
+DlgDocMaLeft		: "Kiri",
+DlgDocMaRight		: "Kanan",
+DlgDocMaBottom		: "Bawah",
+DlgDocMeIndex		: "Kata Kunci Indeks Dokumen (dipisahkan oleh koma)",
+DlgDocMeDescr		: "Keterangan Dokumen",
+DlgDocMeAuthor		: "Penulis",
+DlgDocMeCopy		: "Hakcipta",
+DlgDocPreview		: "Prebiu",
+
+// Templates Dialog
+Templates			: "Templat",
+DlgTemplatesTitle	: "Templat Kandungan",
+DlgTemplatesSelMsg	: "Sila pilih templat untuk dibuka oleh editor<br>(kandungan sebenar akan hilang):",
+DlgTemplatesLoading	: "Senarai Templat sedang diproses. Sila Tunggu...",
+DlgTemplatesNoTpl	: "(Tiada Templat Disimpan)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Tentang",
+DlgAboutBrowserInfoTab	: "Maklumat Perisian Browser",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "versi",
+DlgAboutLicense		: "Perlesenan dibawah terma GNU Lesser General Public License",
+DlgAboutInfo		: "Untuk maklumat lanjut sila pergi ke"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/uk.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/uk.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/uk.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: uk.js
+ * 	Ukrainian language file.
+ * 
+ * File Authors:
+ * 		Alexander Pervak (pervak@gmail.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Згорнути панель інструментів",
+ToolbarExpand		: "Розгорнути панель інструментів",
+
+// Toolbar Items and Context Menu
+Save				: "Зберегти",
+NewPage				: "Нова сторінка",
+Preview				: "Попередній перегляд",
+Cut					: "Вирізати",
+Copy				: "Копіювати",
+Paste				: "Вставити",
+PasteText			: "Вставити тільки текст",
+PasteWord			: "Вставити з Word",
+Print				: "Друк",
+SelectAll			: "Виділити все",
+RemoveFormat		: "Прибрати форматування",
+InsertLinkLbl		: "Посилання",
+InsertLink			: "Вставити/Редагувати посилання",
+RemoveLink			: "Знищити посилання",
+Anchor				: "Вставити/Редагувати якір",
+InsertImageLbl		: "Зображення",
+InsertImage			: "Вставити/Редагувати зображення",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Вставити/Редагувати Flash",
+InsertTableLbl		: "Таблиця",
+InsertTable			: "Вставити/Редагувати таблицю",
+InsertLineLbl		: "Лінія",
+InsertLine			: "Вставити горизонтальну лінію",
+InsertSpecialCharLbl: "Спеціальний символ",
+InsertSpecialChar	: "Вставити спеціальний символ",
+InsertSmileyLbl		: "Смайлик",
+InsertSmiley		: "Вставити смайлик",
+About				: "Про FCKeditor",
+Bold				: "Жирний",
+Italic				: "Курсив",
+Underline			: "Підкреслений",
+StrikeThrough		: "Закреслений",
+Subscript			: "Підрядковий індекс",
+Superscript			: "Надрядковий индекс",
+LeftJustify			: "По лівому краю",
+CenterJustify		: "По центру",
+RightJustify		: "По правому краю",
+BlockJustify		: "По ширині",
+DecreaseIndent		: "Зменшити відступ",
+IncreaseIndent		: "Збільшити відступ",
+Undo				: "Повернути",
+Redo				: "Повторити",
+NumberedListLbl		: "Нумерований список",
+NumberedList		: "Вставити/Видалити нумерований список",
+BulletedListLbl		: "Маркований список",
+BulletedList		: "Вставити/Видалити маркований список",
+ShowTableBorders	: "Показати бордюри таблиці",
+ShowDetails			: "Показати деталі",
+Style				: "Стиль",
+FontFormat			: "Форматування",
+Font				: "Шрифт",
+FontSize			: "Розмір",
+TextColor			: "Колір тексту",
+BGColor				: "Колір фону",
+Source				: "Джерело",
+Find				: "Пошук",
+Replace				: "Заміна",
+SpellCheck			: "Перевірити орфографію",
+UniversalKeyboard	: "Універсальна клавіатура",
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
+
+Form			: "Форма",
+Checkbox		: "Флагова кнопка",
+RadioButton		: "Кнопка вибору",
+TextField		: "Текстове поле",
+Textarea		: "Текстова область",
+HiddenField		: "Приховане поле",
+Button			: "Кнопка",
+SelectionField	: "Список",
+ImageButton		: "Кнопка із зображенням",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+
+// Context Menu
+EditLink			: "Вставити посилання",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRow			: "Вставити строку",
+DeleteRows			: "Видалити строки",
+InsertColumn		: "Вставити колонку",
+DeleteColumns		: "Видалити колонки",
+InsertCell			: "Вставити комірку",
+DeleteCells			: "Видалити комірки",
+MergeCells			: "Об'єднати комірки",
+SplitCell			: "Роз'єднати комірку",
+TableDelete			: "Delete Table",	//MISSING
+CellProperties		: "Властивості комірки",
+TableProperties		: "Властивості таблиці",
+ImageProperties		: "Властивості зображення",
+FlashProperties		: "Властивості Flash",
+
+AnchorProp			: "Властивості якоря",
+ButtonProp			: "Властивості кнопки",
+CheckboxProp		: "Властивості флагової кнопки",
+HiddenFieldProp		: "Властивості прихованого поля",
+RadioButtonProp		: "Властивості кнопки вибору",
+ImageButtonProp		: "Властивості кнопки із зображенням",
+TextFieldProp		: "Властивості текстового поля",
+SelectionFieldProp	: "Властивості списку",
+TextareaProp		: "Властивості текстової області",
+FormProp			: "Властивості форми",
+
+FontFormats			: "Нормальний;Форматований;Адреса;Заголовок 1;Заголовок 2;Заголовок 3;Заголовок 4;Заголовок 5;Заголовок 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Обробка XHTML. Зачекайте, будь ласка...",
+Done				: "Зроблено",
+PasteWordConfirm	: "Текст, що ви хочете вставити, схожий на копійований з Word. Ви хочете очистити його перед вставкою?",
+NotCompatiblePaste	: "Ця команда доступна для Internet Explorer версії 5.5 або вище. Ви хочете вставити без очищення?",
+UnknownToolbarItem	: "Невідомий елемент панелі інструментів \"%1\"",
+UnknownCommand		: "Невідоме ім'я команди \"%1\"",
+NotImplemented		: "Команда не реалізована",
+UnknownToolbarSet	: "Панель інструментів \"%1\" не існує",
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
+
+// Dialogs
+DlgBtnOK			: "ОК",
+DlgBtnCancel		: "Скасувати",
+DlgBtnClose			: "Зачинити",
+DlgBtnBrowseServer	: "Передивитися на сервері",
+DlgAdvancedTag		: "Розширений",
+DlgOpOther			: "<Інше>",
+DlgInfoTab			: "Інфо",
+DlgAlertUrl			: "Вставте, будь-ласка, URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<не визначено>",
+DlgGenId			: "Ідентифікатор",
+DlgGenLangDir		: "Напрямок мови",
+DlgGenLangDirLtr	: "Зліва на право (LTR)",
+DlgGenLangDirRtl	: "Зправа на ліво (RTL)",
+DlgGenLangCode		: "Мова",
+DlgGenAccessKey		: "Гаряча клавіша",
+DlgGenName			: "Им'я",
+DlgGenTabIndex		: "Послідовність переходу",
+DlgGenLongDescr		: "Довгий опис URL",
+DlgGenClass			: "Клас CSS",
+DlgGenTitle			: "Заголовок",
+DlgGenContType		: "Тип вмісту",
+DlgGenLinkCharset	: "Кодировка",
+DlgGenStyle			: "Стиль CSS",
+
+// Image Dialog
+DlgImgTitle			: "Властивості зображення",
+DlgImgInfoTab		: "Інформація про изображении",
+DlgImgBtnUpload		: "Надіслати на сервер",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Закачати",
+DlgImgAlt			: "Альтернативний текст",
+DlgImgWidth			: "Ширина",
+DlgImgHeight		: "Висота",
+DlgImgLockRatio		: "Зберегти пропорції",
+DlgBtnResetSize		: "Скинути розмір",
+DlgImgBorder		: "Бордюр",
+DlgImgHSpace		: "Горизонтальний відступ",
+DlgImgVSpace		: "Вертикальний відступ",
+DlgImgAlign			: "Вирівнювання",
+DlgImgAlignLeft		: "По лівому краю",
+DlgImgAlignAbsBottom: "Абс по низу",
+DlgImgAlignAbsMiddle: "Абс по середині",
+DlgImgAlignBaseline	: "По базовій лінії",
+DlgImgAlignBottom	: "По низу",
+DlgImgAlignMiddle	: "По середині",
+DlgImgAlignRight	: "По правому краю",
+DlgImgAlignTextTop	: "Текст на верху",
+DlgImgAlignTop		: "По верху",
+DlgImgPreview		: "Попередній перегляд",
+DlgImgAlertUrl		: "Будь ласка, введіть URL зображення",
+DlgImgLinkTab		: "Посилання",
+
+// Flash Dialog
+DlgFlashTitle		: "Властивості Flash",
+DlgFlashChkPlay		: "Авто програвання",
+DlgFlashChkLoop		: "Зациклити",
+DlgFlashChkMenu		: "Дозволити меню Flash",
+DlgFlashScale		: "Масштаб",
+DlgFlashScaleAll	: "Показати всі",
+DlgFlashScaleNoBorder	: "Без рамки",
+DlgFlashScaleFit	: "Дійсний розмір",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Посилання",
+DlgLnkInfoTab		: "Інформація посилання",
+DlgLnkTargetTab		: "Ціль",
+
+DlgLnkType			: "Тип посилання",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Якір на цю сторінку",
+DlgLnkTypeEMail		: "Эл. пошта",
+DlgLnkProto			: "Протокол",
+DlgLnkProtoOther	: "<інше>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Оберіть якір",
+DlgLnkAnchorByName	: "За ім'ям якоря",
+DlgLnkAnchorById	: "За ідентифікатором елемента",
+DlgLnkNoAnchors		: "<Немає якорів доступних в цьому документі>",
+DlgLnkEMail			: "Адреса ел. пошти",
+DlgLnkEMailSubject	: "Тема листа",
+DlgLnkEMailBody		: "Тіло повідомлення",
+DlgLnkUpload		: "Закачати",
+DlgLnkBtnUpload		: "Переслати на сервер",
+
+DlgLnkTarget		: "Ціль",
+DlgLnkTargetFrame	: "<фрейм>",
+DlgLnkTargetPopup	: "<спливаюче вікно>",
+DlgLnkTargetBlank	: "Нове вікно (_blank)",
+DlgLnkTargetParent	: "Батьківське вікно (_parent)",
+DlgLnkTargetSelf	: "Теж вікно (_self)",
+DlgLnkTargetTop		: "Найвище вікно (_top)",
+DlgLnkTargetFrameName	: "Ім'я целевого фрейма",
+DlgLnkPopWinName	: "Ім'я спливаючого вікна",
+DlgLnkPopWinFeat	: "Властивості спливаючого вікна",
+DlgLnkPopResize		: "Змінюється в розмірах",
+DlgLnkPopLocation	: "Панель локації",
+DlgLnkPopMenu		: "Панель меню",
+DlgLnkPopScroll		: "Полоси прокрутки",
+DlgLnkPopStatus		: "Строка статусу",
+DlgLnkPopToolbar	: "Панель інструментів",
+DlgLnkPopFullScrn	: "Повний екран (IE)",
+DlgLnkPopDependent	: "Залежний (Netscape)",
+DlgLnkPopWidth		: "Ширина",
+DlgLnkPopHeight		: "Висота",
+DlgLnkPopLeft		: "Позиція зліва",
+DlgLnkPopTop		: "Позиція зверху",
+
+DlnLnkMsgNoUrl		: "Будь ласка, занесіть URL посилання",
+DlnLnkMsgNoEMail	: "Будь ласка, занесіть адрес эл. почты",
+DlnLnkMsgNoAnchor	: "Будь ласка, оберіть якір",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Оберіть колір",
+DlgColorBtnClear	: "Очистити",
+DlgColorHighlight	: "Підсвічений",
+DlgColorSelected	: "Обраний",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Вставити смайлик",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Оберіть спеціальний символ",
+
+// Table Dialog
+DlgTableTitle		: "Властивості таблиці",
+DlgTableRows		: "Строки",
+DlgTableColumns		: "Колонки",
+DlgTableBorder		: "Розмір бордюра",
+DlgTableAlign		: "Вирівнювання",
+DlgTableAlignNotSet	: "<Не вст.>",
+DlgTableAlignLeft	: "Зліва",
+DlgTableAlignCenter	: "По центру",
+DlgTableAlignRight	: "Зправа",
+DlgTableWidth		: "Ширина",
+DlgTableWidthPx		: "пікселів",
+DlgTableWidthPc		: "відсотків",
+DlgTableHeight		: "Висота",
+DlgTableCellSpace	: "Проміжок (spacing)",
+DlgTableCellPad		: "Відступ (padding)",
+DlgTableCaption		: "Заголовок (Caption)",
+DlgTableSummary		: "Summary",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "Властивості комірки",
+DlgCellWidth		: "Ширина",
+DlgCellWidthPx		: "пікселів",
+DlgCellWidthPc		: "відсотків",
+DlgCellHeight		: "Висота",
+DlgCellWordWrap		: "Згортання текста",
+DlgCellWordWrapNotSet	: "<Не вст.>",
+DlgCellWordWrapYes	: "Так",
+DlgCellWordWrapNo	: "Ні",
+DlgCellHorAlign		: "Горизонтальне вирівнювання",
+DlgCellHorAlignNotSet	: "<Не вст.>",
+DlgCellHorAlignLeft	: "Зліва",
+DlgCellHorAlignCenter	: "По центру",
+DlgCellHorAlignRight: "Зправа",
+DlgCellVerAlign		: "Вертикальное вирівнювання",
+DlgCellVerAlignNotSet	: "<Не вст.>",
+DlgCellVerAlignTop	: "Зверху",
+DlgCellVerAlignMiddle	: "Посередині",
+DlgCellVerAlignBottom	: "Знизу",
+DlgCellVerAlignBaseline	: "По базовій лінії",
+DlgCellRowSpan		: "Діапазон строк (span)",
+DlgCellCollSpan		: "Діапазон колонок (span)",
+DlgCellBackColor	: "Колір фона",
+DlgCellBorderColor	: "Колір бордюра",
+DlgCellBtnSelect	: "Оберіть...",
+
+// Find Dialog
+DlgFindTitle		: "Пошук",
+DlgFindFindBtn		: "Пошук",
+DlgFindNotFoundMsg	: "Вказаний текст не знайдений.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Замінити",
+DlgReplaceFindLbl		: "Шукати:",
+DlgReplaceReplaceLbl	: "Замінити на:",
+DlgReplaceCaseChk		: "Учитывать регистр",
+DlgReplaceReplaceBtn	: "Замінити",
+DlgReplaceReplAllBtn	: "Замінити все",
+DlgReplaceWordChk		: "Збіг цілих слів",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Настройки безпеки вашого браузера не дозволяють редактору автоматично виконувати операції вставки. Будь ласка, використовуйте клавіатуру для цього (Ctrl+V).",
+PasteErrorCut	: "Настройки безпеки вашого браузера не дозволяють редактору автоматично виконувати операції вирізування. Будь ласка, використовуйте клавіатуру для цього (Ctrl+X).",
+PasteErrorCopy	: "Настройки безпеки вашого браузера не дозволяють редактору автоматично виконувати операції копіювання. Будь ласка, використовуйте клавіатуру для цього (Ctrl+C).",
+
+PasteAsText		: "Вставити тільки текст",
+PasteFromWord	: "Вставити з Word",
+
+DlgPasteMsg2	: "Будь-ласка, вставте з буфера обміну в цю область, користуючись комбінацією клавіш (<STRONG>Ctrl+V</STRONG>) та натисніть <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ігнорувати налаштування шрифтів",
+DlgPasteRemoveStyles	: "Видалити налаштування стилів",
+DlgPasteCleanBox		: "Очистити область",
+
+// Color Picker
+ColorAutomatic	: "Автоматичний",
+ColorMoreColors	: "Кольори...",
+
+// Document Properties
+DocProps		: "Властивості документа",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Властивості якоря",
+DlgAnchorName		: "Ім'я якоря",
+DlgAnchorErrorName	: "Будь ласка, занесіть ім'я якоря",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Не має в словнику",
+DlgSpellChangeTo		: "Замінити на",
+DlgSpellBtnIgnore		: "Ігнорувати",
+DlgSpellBtnIgnoreAll	: "Ігнорувати все",
+DlgSpellBtnReplace		: "Замінити",
+DlgSpellBtnReplaceAll	: "Замінити все",
+DlgSpellBtnUndo			: "Назад",
+DlgSpellNoSuggestions	: "- Немає припущень -",
+DlgSpellProgress		: "Виконується перевірка орфографії...",
+DlgSpellNoMispell		: "Перевірку орфографії завершено: помилок не знайдено",
+DlgSpellNoChanges		: "Перевірку орфографії завершено: жодне слово не змінено",
+DlgSpellOneChange		: "Перевірку орфографії завершено: змінено одно слово",
+DlgSpellManyChanges		: "Перевірку орфографії завершено: 1% слів змінено",
+
+IeSpellDownload			: "Модуль перевірки орфографії не встановлено. Бажаєтн завантажити його зараз?",
+
+// Button Dialog
+DlgButtonText		: "Текст (Значення)",
+DlgButtonType		: "Тип",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Ім'я",
+DlgCheckboxValue	: "Значення",
+DlgCheckboxSelected	: "Обрана",
+
+// Form Dialog
+DlgFormName		: "Ім'я",
+DlgFormAction	: "Дія",
+DlgFormMethod	: "Метод",
+
+// Select Field Dialog
+DlgSelectName		: "Ім'я",
+DlgSelectValue		: "Значення",
+DlgSelectSize		: "Розмір",
+DlgSelectLines		: "лінії",
+DlgSelectChkMulti	: "Дозволити обрання декількох позицій",
+DlgSelectOpAvail	: "Доступні варіанти",
+DlgSelectOpText		: "Текст",
+DlgSelectOpValue	: "Значення",
+DlgSelectBtnAdd		: "Добавити",
+DlgSelectBtnModify	: "Змінити",
+DlgSelectBtnUp		: "Вгору",
+DlgSelectBtnDown	: "Вниз",
+DlgSelectBtnSetValue : "Встановити як вибране значення",
+DlgSelectBtnDelete	: "Видалити",
+
+// Textarea Dialog
+DlgTextareaName	: "Ім'я",
+DlgTextareaCols	: "Колонки",
+DlgTextareaRows	: "Строки",
+
+// Text Field Dialog
+DlgTextName			: "Ім'я",
+DlgTextValue		: "Значення",
+DlgTextCharWidth	: "Ширина",
+DlgTextMaxChars		: "Макс. кіл-ть символів",
+DlgTextType			: "Тип",
+DlgTextTypeText		: "Текст",
+DlgTextTypePass		: "Пароль",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Ім'я",
+DlgHiddenValue	: "Значення",
+
+// Bulleted List Dialog
+BulletedListProp	: "Властивості маркованого списка",
+NumberedListProp	: "Властивості нумерованного списка",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Тип",
+DlgLstTypeCircle	: "Коло",
+DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeSquare	: "Квадрат",
+DlgLstTypeNumbers	: "Номери (1, 2, 3)",
+DlgLstTypeLCase		: "Літери нижнього регістра(a, b, c)",
+DlgLstTypeUCase		: "Літери ВЕРХНЬОГО РЕГІСТРА (A, B, C)",
+DlgLstTypeSRoman	: "Малі римські літери (i, ii, iii)",
+DlgLstTypeLRoman	: "Великі римські літери (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Загальні",
+DlgDocBackTab		: "Заднє тло",
+DlgDocColorsTab		: "Кольори та відступи",
+DlgDocMetaTab		: "Мета дані",
+
+DlgDocPageTitle		: "Заголовок сторінки",
+DlgDocLangDir		: "Напрямок тексту",
+DlgDocLangDirLTR	: "Зліва на право (LTR)",
+DlgDocLangDirRTL	: "Зправа на лево (RTL)",
+DlgDocLangCode		: "Код мови",
+DlgDocCharSet		: "Кодування набору символів",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Інше кодування набору символів",
+
+DlgDocDocType		: "Заголовок типу документу",
+DlgDocDocTypeOther	: "Інший заголовок типу документу",
+DlgDocIncXHTML		: "Ввімкнути XHTML оголошення",
+DlgDocBgColor		: "Колір тла",
+DlgDocBgImage		: "URL зображення тла",
+DlgDocBgNoScroll	: "Тло без прокрутки",
+DlgDocCText			: "Текст",
+DlgDocCLink			: "Посилання",
+DlgDocCVisited		: "Відвідане посилання",
+DlgDocCActive		: "Активне посилання",
+DlgDocMargins		: "Відступи сторінки",
+DlgDocMaTop			: "Верхній",
+DlgDocMaLeft		: "Лівий",
+DlgDocMaRight		: "Правий",
+DlgDocMaBottom		: "Нижній",
+DlgDocMeIndex		: "Ключові слова документа (розділені комами)",
+DlgDocMeDescr		: "Опис документа",
+DlgDocMeAuthor		: "Автор",
+DlgDocMeCopy		: "Авторські права",
+DlgDocPreview		: "Попередній перегляд",
+
+// Templates Dialog
+Templates			: "Шаблони",
+DlgTemplatesTitle	: "Шаблони змісту",
+DlgTemplatesSelMsg	: "Оберіть, будь ласка, шаблон для відкриття в редакторі<br>(поточний зміст буде втрачено):",
+DlgTemplatesLoading	: "Завантаження списку шаблонів. Зачекайте, будь ласка...",
+DlgTemplatesNoTpl	: "(Не визначено жодного шаблону)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Про програму",
+DlgAboutBrowserInfoTab	: "Інформація браузера",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "Версія",
+DlgAboutLicense		: "Ліцензовано згідно умовам GNU Lesser General Public License",
+DlgAboutInfo		: "Додаткову інформацію дивіться на "
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/zh-cn.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/zh-cn.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/zh-cn.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: zh-cn.js
+ * 	Chinese Simplified language file.
+ * 
+ * File Authors:
+ * 		NetRube (NetRube@gmail.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "折叠工具栏",
+ToolbarExpand		: "展开工具栏",
+
+// Toolbar Items and Context Menu
+Save				: "保存",
+NewPage				: "新建",
+Preview				: "预览",
+Cut					: "剪切",
+Copy				: "复制",
+Paste				: "粘贴",
+PasteText			: "粘贴为无格式文本",
+PasteWord			: "从 MS Word 粘贴",
+Print				: "打印",
+SelectAll			: "全选",
+RemoveFormat		: "清除格式",
+InsertLinkLbl		: "超链接",
+InsertLink			: "插入/编辑超链接",
+RemoveLink			: "取消超链接",
+Anchor				: "插入/编辑锚点链接",
+InsertImageLbl		: "图象",
+InsertImage			: "插入/编辑图象",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "插入/编辑 Flash",
+InsertTableLbl		: "表格",
+InsertTable			: "插入/编辑表格",
+InsertLineLbl		: "水平线",
+InsertLine			: "插入水平线",
+InsertSpecialCharLbl: "特殊符号",
+InsertSpecialChar	: "插入特殊符号",
+InsertSmileyLbl		: "表情符",
+InsertSmiley		: "插入表情图标",
+About				: "关于 FCKeditor",
+Bold				: "加粗",
+Italic				: "倾斜",
+Underline			: "下划线",
+StrikeThrough		: "删除线",
+Subscript			: "下标",
+Superscript			: "上标",
+LeftJustify			: "左对齐",
+CenterJustify		: "居中对齐",
+RightJustify		: "右对齐",
+BlockJustify		: "两端对齐",
+DecreaseIndent		: "减少缩进量",
+IncreaseIndent		: "增加缩进量",
+Undo				: "撤消",
+Redo				: "重做",
+NumberedListLbl		: "编号列表",
+NumberedList		: "插入/删除编号列表",
+BulletedListLbl		: "项目列表",
+BulletedList		: "插入/删除项目列表",
+ShowTableBorders	: "显示表格边框",
+ShowDetails			: "显示详细资料",
+Style				: "样式",
+FontFormat			: "格式",
+Font				: "字体",
+FontSize			: "大小",
+TextColor			: "文本颜色",
+BGColor				: "背景颜色",
+Source				: "源代码",
+Find				: "查找",
+Replace				: "替换",
+SpellCheck			: "拼写检查",
+UniversalKeyboard	: "软键盘",
+PageBreakLbl		: "分页符",
+PageBreak			: "插入分页符",
+
+Form			: "表单",
+Checkbox		: "复选框",
+RadioButton		: "单选按钮",
+TextField		: "单行文本",
+Textarea		: "多行文本",
+HiddenField		: "隐藏域",
+Button			: "按钮",
+SelectionField	: "列表/菜单",
+ImageButton		: "图像域",
+
+FitWindow		: "全屏编辑",
+
+// Context Menu
+EditLink			: "编辑超链接",
+CellCM				: "单元格",
+RowCM				: "行",
+ColumnCM			: "列",
+InsertRow			: "插入行",
+DeleteRows			: "删除行",
+InsertColumn		: "插入列",
+DeleteColumns		: "删除列",
+InsertCell			: "插入单元格",
+DeleteCells			: "删除单元格",
+MergeCells			: "合并单元格",
+SplitCell			: "拆分单元格",
+TableDelete			: "删除表格",
+CellProperties		: "单元格属性",
+TableProperties		: "表格属性",
+ImageProperties		: "图象属性",
+FlashProperties		: "Flash 属性",
+
+AnchorProp			: "锚点链接属性",
+ButtonProp			: "按钮属性",
+CheckboxProp		: "复选框属性",
+HiddenFieldProp		: "隐藏域属性",
+RadioButtonProp		: "单选按钮属性",
+ImageButtonProp		: "图像域属性",
+TextFieldProp		: "单行文本属性",
+SelectionFieldProp	: "菜单/列表属性",
+TextareaProp		: "多行文本属性",
+FormProp			: "表单属性",
+
+FontFormats			: "普通;已编排格式;地址;标题 1;标题 2;标题 3;标题 4;标题 5;标题 6;段落(DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "正在处理 XHTML，请稍等...",
+Done				: "完成",
+PasteWordConfirm	: "您要粘贴的内容好像是来自 MS Word，是否要清除 MS Word 格式后再粘贴？",
+NotCompatiblePaste	: "该命令需要 Internet Explorer 5.5 或更高版本的支持，是否按常规粘贴进行？",
+UnknownToolbarItem	: "未知工具栏项目 \"%1\"",
+UnknownCommand		: "未知命令名称 \"%1\"",
+NotImplemented		: "命令无法执行",
+UnknownToolbarSet	: "工具栏设置 \"%1\" 不存在",
+NoActiveX			: "浏览器安全设置限制了本编辑器的某些功能。您必须启用安全设置中的“运行 ActiveX 控件和插件”，否则将出现某些错误并缺少功能。",
+BrowseServerBlocked : "无法打开资源浏览器，请确认是否启用了禁止弹出窗口。",
+DialogBlocked		: "无法打开对话框窗口，请确认是否启用了禁止弹出窗口或网页对话框（IE）。",
+
+// Dialogs
+DlgBtnOK			: "确定",
+DlgBtnCancel		: "取消",
+DlgBtnClose			: "关闭",
+DlgBtnBrowseServer	: "浏览服务器",
+DlgAdvancedTag		: "高级",
+DlgOpOther			: "<其它>",
+DlgInfoTab			: "信息",
+DlgAlertUrl			: "请插入 URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<没有设置>",
+DlgGenId			: "ID",
+DlgGenLangDir		: "语言方向",
+DlgGenLangDirLtr	: "从左到右 (LTR)",
+DlgGenLangDirRtl	: "从右到左 (RTL)",
+DlgGenLangCode		: "语言代码",
+DlgGenAccessKey		: "访问键",
+DlgGenName			: "名称",
+DlgGenTabIndex		: "Tab 键次序",
+DlgGenLongDescr		: "详细说明地址",
+DlgGenClass			: "样式类名称",
+DlgGenTitle			: "标题",
+DlgGenContType		: "内容类型",
+DlgGenLinkCharset	: "字符编码",
+DlgGenStyle			: "行内样式",
+
+// Image Dialog
+DlgImgTitle			: "图象属性",
+DlgImgInfoTab		: "图象",
+DlgImgBtnUpload		: "发送到服务器上",
+DlgImgURL			: "源文件",
+DlgImgUpload		: "上传",
+DlgImgAlt			: "替换文本",
+DlgImgWidth			: "宽度",
+DlgImgHeight		: "高度",
+DlgImgLockRatio		: "锁定比例",
+DlgBtnResetSize		: "恢复尺寸",
+DlgImgBorder		: "边框大小",
+DlgImgHSpace		: "水平间距",
+DlgImgVSpace		: "垂直间距",
+DlgImgAlign			: "对齐方式",
+DlgImgAlignLeft		: "左对齐",
+DlgImgAlignAbsBottom: "绝对底边",
+DlgImgAlignAbsMiddle: "绝对居中",
+DlgImgAlignBaseline	: "基线",
+DlgImgAlignBottom	: "底边",
+DlgImgAlignMiddle	: "居中",
+DlgImgAlignRight	: "右对齐",
+DlgImgAlignTextTop	: "文本上方",
+DlgImgAlignTop		: "顶端",
+DlgImgPreview		: "预览",
+DlgImgAlertUrl		: "请输入图象地址",
+DlgImgLinkTab		: "链接",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash 属性",
+DlgFlashChkPlay		: "自动播放",
+DlgFlashChkLoop		: "循环",
+DlgFlashChkMenu		: "启用 Flash 菜单",
+DlgFlashScale		: "缩放",
+DlgFlashScaleAll	: "全部显示",
+DlgFlashScaleNoBorder	: "无边框",
+DlgFlashScaleFit	: "严格匹配",
+
+// Link Dialog
+DlgLnkWindowTitle	: "超链接",
+DlgLnkInfoTab		: "超链接信息",
+DlgLnkTargetTab		: "目标",
+
+DlgLnkType			: "超链接类型",
+DlgLnkTypeURL		: "超链接",
+DlgLnkTypeAnchor	: "页内锚点链接",
+DlgLnkTypeEMail		: "电子邮件",
+DlgLnkProto			: "协议",
+DlgLnkProtoOther	: "<其它>",
+DlgLnkURL			: "地址",
+DlgLnkAnchorSel		: "选择一个锚点",
+DlgLnkAnchorByName	: "按锚点名称",
+DlgLnkAnchorById	: "按锚点 ID",
+DlgLnkNoAnchors		: "<此文档没有可用的锚点>",
+DlgLnkEMail			: "地址",
+DlgLnkEMailSubject	: "主题",
+DlgLnkEMailBody		: "内容",
+DlgLnkUpload		: "上传",
+DlgLnkBtnUpload		: "发送到服务器上",
+
+DlgLnkTarget		: "目标",
+DlgLnkTargetFrame	: "<框架>",
+DlgLnkTargetPopup	: "<弹出窗口>",
+DlgLnkTargetBlank	: "新窗口 (_blank)",
+DlgLnkTargetParent	: "父窗口 (_parent)",
+DlgLnkTargetSelf	: "本窗口 (_self)",
+DlgLnkTargetTop		: "整页 (_top)",
+DlgLnkTargetFrameName	: "目标框架名称",
+DlgLnkPopWinName	: "弹出窗口名称",
+DlgLnkPopWinFeat	: "弹出窗口属性",
+DlgLnkPopResize		: "调整大小",
+DlgLnkPopLocation	: "地址栏",
+DlgLnkPopMenu		: "菜单栏",
+DlgLnkPopScroll		: "滚动条",
+DlgLnkPopStatus		: "状态栏",
+DlgLnkPopToolbar	: "工具栏",
+DlgLnkPopFullScrn	: "全屏 (IE)",
+DlgLnkPopDependent	: "依附 (NS)",
+DlgLnkPopWidth		: "宽",
+DlgLnkPopHeight		: "高",
+DlgLnkPopLeft		: "左",
+DlgLnkPopTop		: "右",
+
+DlnLnkMsgNoUrl		: "请输入超链接地址",
+DlnLnkMsgNoEMail	: "请输入电子邮件地址",
+DlnLnkMsgNoAnchor	: "请选择一个锚点",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "选择颜色",
+DlgColorBtnClear	: "清除",
+DlgColorHighlight	: "预览",
+DlgColorSelected	: "选择",
+
+// Smiley Dialog
+DlgSmileyTitle		: "插入表情图标",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "选择特殊符号",
+
+// Table Dialog
+DlgTableTitle		: "表格属性",
+DlgTableRows		: "行数",
+DlgTableColumns		: "列数",
+DlgTableBorder		: "边框",
+DlgTableAlign		: "对齐",
+DlgTableAlignNotSet	: "<没有设置>",
+DlgTableAlignLeft	: "左对齐",
+DlgTableAlignCenter	: "居中",
+DlgTableAlignRight	: "右对齐",
+DlgTableWidth		: "宽度",
+DlgTableWidthPx		: "像素",
+DlgTableWidthPc		: "百分比",
+DlgTableHeight		: "高度",
+DlgTableCellSpace	: "间距",
+DlgTableCellPad		: "边距",
+DlgTableCaption		: "标题",
+DlgTableSummary		: "摘要",
+
+// Table Cell Dialog
+DlgCellTitle		: "单元格属性",
+DlgCellWidth		: "宽度",
+DlgCellWidthPx		: "像素",
+DlgCellWidthPc		: "百分比",
+DlgCellHeight		: "高度",
+DlgCellWordWrap		: "自动换行",
+DlgCellWordWrapNotSet	: "<没有设置>",
+DlgCellWordWrapYes	: "是",
+DlgCellWordWrapNo	: "否",
+DlgCellHorAlign		: "水平对齐",
+DlgCellHorAlignNotSet	: "<没有设置>",
+DlgCellHorAlignLeft	: "左对齐",
+DlgCellHorAlignCenter	: "居中",
+DlgCellHorAlignRight: "右对齐",
+DlgCellVerAlign		: "垂直对齐",
+DlgCellVerAlignNotSet	: "<没有设置>",
+DlgCellVerAlignTop	: "顶端",
+DlgCellVerAlignMiddle	: "居中",
+DlgCellVerAlignBottom	: "底部",
+DlgCellVerAlignBaseline	: "基线",
+DlgCellRowSpan		: "纵跨行数",
+DlgCellCollSpan		: "横跨列数",
+DlgCellBackColor	: "背景颜色",
+DlgCellBorderColor	: "边框颜色",
+DlgCellBtnSelect	: "选择...",
+
+// Find Dialog
+DlgFindTitle		: "查找",
+DlgFindFindBtn		: "查找",
+DlgFindNotFoundMsg	: "指定文本没有找到。",
+
+// Replace Dialog
+DlgReplaceTitle			: "替换",
+DlgReplaceFindLbl		: "查找:",
+DlgReplaceReplaceLbl	: "替换:",
+DlgReplaceCaseChk		: "区分大小写",
+DlgReplaceReplaceBtn	: "替换",
+DlgReplaceReplAllBtn	: "全部替换",
+DlgReplaceWordChk		: "全字匹配",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "您的浏览器安全设置不允许编辑器自动执行粘贴操作，请使用键盘快捷键(Ctrl+V)来完成。",
+PasteErrorCut	: "您的浏览器安全设置不允许编辑器自动执行剪切操作，请使用键盘快捷键(Ctrl+X)来完成。",
+PasteErrorCopy	: "您的浏览器安全设置不允许编辑器自动执行复制操作，请使用键盘快捷键(Ctrl+C)来完成。",
+
+PasteAsText		: "粘贴为无格式文本",
+PasteFromWord	: "从 MS Word 粘贴",
+
+DlgPasteMsg2	: "请使用键盘快捷键(<STRONG>Ctrl+V</STRONG>)把内容粘贴到下面的方框里，再按 <STRONG>确定</STRONG>。",
+DlgPasteIgnoreFont		: "忽略 Font 标签",
+DlgPasteRemoveStyles	: "清理 CSS 样式",
+DlgPasteCleanBox		: "清空上面内容",
+
+// Color Picker
+ColorAutomatic	: "自动",
+ColorMoreColors	: "其它颜色...",
+
+// Document Properties
+DocProps		: "页面属性",
+
+// Anchor Dialog
+DlgAnchorTitle		: "命名锚点",
+DlgAnchorName		: "锚点名称",
+DlgAnchorErrorName	: "请输入锚点名称",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "没有在字典里",
+DlgSpellChangeTo		: "更改为",
+DlgSpellBtnIgnore		: "忽略",
+DlgSpellBtnIgnoreAll	: "全部忽略",
+DlgSpellBtnReplace		: "替换",
+DlgSpellBtnReplaceAll	: "全部替换",
+DlgSpellBtnUndo			: "撤消",
+DlgSpellNoSuggestions	: "- 没有建议 -",
+DlgSpellProgress		: "正在进行拼写检查...",
+DlgSpellNoMispell		: "拼写检查完成：没有发现拼写错误",
+DlgSpellNoChanges		: "拼写检查完成：没有更改任何单词",
+DlgSpellOneChange		: "拼写检查完成：更改了一个单词",
+DlgSpellManyChanges		: "拼写检查完成：更改了 %1 个单词",
+
+IeSpellDownload			: "拼写检查插件还没安装，你是否想现在就下载？",
+
+// Button Dialog
+DlgButtonText		: "标签(值)",
+DlgButtonType		: "类型",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "名称",
+DlgCheckboxValue	: "选定值",
+DlgCheckboxSelected	: "已勾选",
+
+// Form Dialog
+DlgFormName		: "名称",
+DlgFormAction	: "动作",
+DlgFormMethod	: "方法",
+
+// Select Field Dialog
+DlgSelectName		: "名称",
+DlgSelectValue		: "选定",
+DlgSelectSize		: "高度",
+DlgSelectLines		: "行",
+DlgSelectChkMulti	: "允许多选",
+DlgSelectOpAvail	: "列表值",
+DlgSelectOpText		: "标签",
+DlgSelectOpValue	: "值",
+DlgSelectBtnAdd		: "新增",
+DlgSelectBtnModify	: "修改",
+DlgSelectBtnUp		: "上移",
+DlgSelectBtnDown	: "下移",
+DlgSelectBtnSetValue : "设为初始化时选定",
+DlgSelectBtnDelete	: "删除",
+
+// Textarea Dialog
+DlgTextareaName	: "名称",
+DlgTextareaCols	: "字符宽度",
+DlgTextareaRows	: "行数",
+
+// Text Field Dialog
+DlgTextName			: "名称",
+DlgTextValue		: "初始值",
+DlgTextCharWidth	: "字符宽度",
+DlgTextMaxChars		: "最多字符数",
+DlgTextType			: "类型",
+DlgTextTypeText		: "文本",
+DlgTextTypePass		: "密码",
+
+// Hidden Field Dialog
+DlgHiddenName	: "名称",
+DlgHiddenValue	: "初始值",
+
+// Bulleted List Dialog
+BulletedListProp	: "项目列表属性",
+NumberedListProp	: "编号列表属性",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "列表类型",
+DlgLstTypeCircle	: "圆圈",
+DlgLstTypeDisc		: "圆点",
+DlgLstTypeSquare	: "方块",
+DlgLstTypeNumbers	: "数字 (1, 2, 3)",
+DlgLstTypeLCase		: "小写字母 (a, b, c)",
+DlgLstTypeUCase		: "大写字母 (A, B, C)",
+DlgLstTypeSRoman	: "小写罗马数字 (i, ii, iii)",
+DlgLstTypeLRoman	: "大写罗马数字 (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "常规",
+DlgDocBackTab		: "背景",
+DlgDocColorsTab		: "颜色和边距",
+DlgDocMetaTab		: "Meta 数据",
+
+DlgDocPageTitle		: "页面标题",
+DlgDocLangDir		: "语言方向",
+DlgDocLangDirLTR	: "从左到右 (LTR)",
+DlgDocLangDirRTL	: "从右到左 (RTL)",
+DlgDocLangCode		: "语言代码",
+DlgDocCharSet		: "字符编码",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "其它字符编码",
+
+DlgDocDocType		: "文档类型",
+DlgDocDocTypeOther	: "其它文档类型",
+DlgDocIncXHTML		: "包含 XHTML 声明",
+DlgDocBgColor		: "背景颜色",
+DlgDocBgImage		: "背景图像",
+DlgDocBgNoScroll	: "不滚动背景图像",
+DlgDocCText			: "文本",
+DlgDocCLink			: "超链接",
+DlgDocCVisited		: "已访问的超链接",
+DlgDocCActive		: "活动超链接",
+DlgDocMargins		: "页面边距",
+DlgDocMaTop			: "上",
+DlgDocMaLeft		: "左",
+DlgDocMaRight		: "右",
+DlgDocMaBottom		: "下",
+DlgDocMeIndex		: "页面索引关键字 (用半角逗号[,]分隔)",
+DlgDocMeDescr		: "页面说明",
+DlgDocMeAuthor		: "作者",
+DlgDocMeCopy		: "版权",
+DlgDocPreview		: "预览",
+
+// Templates Dialog
+Templates			: "模板",
+DlgTemplatesTitle	: "内容模板",
+DlgTemplatesSelMsg	: "请选择编辑器内容模板<br>(当前内容将会被清除替换):",
+DlgTemplatesLoading	: "正在加载模板列表，请稍等...",
+DlgTemplatesNoTpl	: "(没有模板)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "关于",
+DlgAboutBrowserInfoTab	: "浏览器信息",
+DlgAboutLicenseTab	: "许可证",
+DlgAboutVersion		: "版本",
+DlgAboutLicense		: "基于 GNU 通用公共许可证授权发布 ",
+DlgAboutInfo		: "要获得更多信息请访问 "
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ro.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ro.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ro.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: ro.js
+ * 	Romanian language file.
+ * 
+ * File Authors:
+ * 		Adrian Nicoara
+ * 		Ionut Traian Popa
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Ascunde bara cu opţiuni",
+ToolbarExpand		: "Expandează bara cu opţiuni",
+
+// Toolbar Items and Context Menu
+Save				: "Salvează",
+NewPage				: "Pagină nouă",
+Preview				: "Previzualizare",
+Cut					: "Taie",
+Copy				: "Copiază",
+Paste				: "Adaugă",
+PasteText			: "Adaugă ca text simplu",
+PasteWord			: "Adaugă din Word",
+Print				: "Printează",
+SelectAll			: "Selectează tot",
+RemoveFormat		: "Înlătură formatarea",
+InsertLinkLbl		: "Link (Legătură web)",
+InsertLink			: "Inserează/Editează link (legătură web)",
+RemoveLink			: "Înlătură link (legătură web)",
+Anchor				: "Inserează/Editează ancoră",
+InsertImageLbl		: "Imagine",
+InsertImage			: "Inserează/Editează imagine",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Inserează/Editează flash",
+InsertTableLbl		: "Tabel",
+InsertTable			: "Inserează/Editează tabel",
+InsertLineLbl		: "Linie",
+InsertLine			: "Inserează linie orizontă",
+InsertSpecialCharLbl: "Caracter special",
+InsertSpecialChar	: "Inserează caracter special",
+InsertSmileyLbl		: "Figură expresivă (Emoticon)",
+InsertSmiley		: "Inserează Figură expresivă (Emoticon)",
+About				: "Despre FCKeditor",
+Bold				: "Îngroşat (bold)",
+Italic				: "Înclinat (italic)",
+Underline			: "Subliniat (underline)",
+StrikeThrough		: "Tăiat (strike through)",
+Subscript			: "Indice (subscript)",
+Superscript			: "Putere (superscript)",
+LeftJustify			: "Aliniere la stânga",
+CenterJustify		: "Aliniere centrală",
+RightJustify		: "Aliniere la dreapta",
+BlockJustify		: "Aliniere în bloc (Block Justify)",
+DecreaseIndent		: "Scade indentarea",
+IncreaseIndent		: "Creşte indentarea",
+Undo				: "Starea anterioară (undo)",
+Redo				: "Starea ulterioară (redo)",
+NumberedListLbl		: "Listă numerotată",
+NumberedList		: "Inserează/Şterge listă numerotată",
+BulletedListLbl		: "Listă cu puncte",
+BulletedList		: "Inserează/Şterge listă cu puncte",
+ShowTableBorders	: "Arată marginile tabelului",
+ShowDetails			: "Arată detalii",
+Style				: "Stil",
+FontFormat			: "Formatare",
+Font				: "Font",
+FontSize			: "Mărime",
+TextColor			: "Culoarea textului",
+BGColor				: "Coloarea fundalului",
+Source				: "Sursa",
+Find				: "Găseşte",
+Replace				: "Înlocuieşte",
+SpellCheck			: "Verifică text",
+UniversalKeyboard	: "Tastatură universală",
+PageBreakLbl		: "Separator de pagină (Page Break)",
+PageBreak			: "Inserează separator de pagină (Page Break)",
+
+Form			: "Formular (Form)",
+Checkbox		: "Bifă (Checkbox)",
+RadioButton		: "Buton radio (RadioButton)",
+TextField		: "Câmp text (TextField)",
+Textarea		: "Suprafaţă text (Textarea)",
+HiddenField		: "Câmp ascuns (HiddenField)",
+Button			: "Buton",
+SelectionField	: "Câmp selecţie (SelectionField)",
+ImageButton		: "Buton imagine (ImageButton)",
+
+FitWindow		: "Maximizează mărimea editorului",
+
+// Context Menu
+EditLink			: "Editează Link",
+CellCM				: "Celulă",
+RowCM				: "Linie",
+ColumnCM			: "Coloană",
+InsertRow			: "Inserează linie",
+DeleteRows			: "Şterge linii",
+InsertColumn		: "Inserează coloană",
+DeleteColumns		: "Şterge celule",
+InsertCell			: "Inserează celulă",
+DeleteCells			: "Şterge celule",
+MergeCells			: "Uneşte celule",
+SplitCell			: "Împarte celulă",
+TableDelete			: "Şterge tabel",
+CellProperties		: "Proprietăţile celulei",
+TableProperties		: "Proprietăţile tabelului",
+ImageProperties		: "Proprietăţile imaginii",
+FlashProperties		: "Proprietăţile flash-ului",
+
+AnchorProp			: "Proprietăţi ancoră",
+ButtonProp			: "Proprietăţi buton",
+CheckboxProp		: "Proprietăţi bifă (Checkbox)",
+HiddenFieldProp		: "Proprietăţi câmp ascuns (Hidden Field)",
+RadioButtonProp		: "Proprietăţi buton radio (Radio Button)",
+ImageButtonProp		: "Proprietăţi buton imagine (Image Button)",
+TextFieldProp		: "Proprietăţi câmp text (Text Field)",
+SelectionFieldProp	: "Proprietăţi câmp selecţie (Selection Field)",
+TextareaProp		: "Proprietăţi suprafaţă text (Textarea)",
+FormProp			: "Proprietăţi formular (Form)",
+
+FontFormats			: "Normal;Formatat;Adresa;Titlu 1;Titlu 2;Titlu 3;Titlu 4;Titlu 5;Titlu 6;Paragraf (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Procesăm XHTML. Vă rugăm aşteptaţi...",
+Done				: "Am terminat",
+PasteWordConfirm	: "Textul pe care doriţi să-l adăugaţi pare a fi formatat pentru Word. Doriţi să-l curăţaţi de această formatare înainte de a-l adăuga?",
+NotCompatiblePaste	: "Această facilitate e disponibilă doar pentru Microsoft Internet Explorer, versiunea 5.5 sau ulterioară. Vreţi să-l adăugaţi fără a-i fi înlăturat formatarea?",
+UnknownToolbarItem	: "Obiectul \"%1\" din bara cu opţiuni necunoscut",
+UnknownCommand		: "Comanda \"%1\" necunoscută",
+NotImplemented		: "Comandă neimplementată",
+UnknownToolbarSet	: "Grupul din bara cu opţiuni \"%1\" nu există",
+NoActiveX			: "Setările de securitate ale programului dvs. cu care navigaţi pe internet (browser) pot limita anumite funcţionalităţi ale editorului. Pentru a evita asta, trebuie să activaţi opţiunea \"Run ActiveX controls and plug-ins\". Poate veţi întâlni erori sau veţi observa funcţionalităţi lipsă.",
+BrowseServerBlocked : "The resources browser could not be opened. Asiguraţi-vă că nu e activ niciun \"popup blocker\" (funcţionalitate a programului de navigat (browser) sau a unui plug-in al acestuia de a bloca deschiderea unui noi ferestre).",
+DialogBlocked		: "Nu a fost posibilă deschiderea unei ferestre de dialog. Asiguraţi-vă că nu e activ niciun \"popup blocker\" (funcţionalitate a programului de navigat (browser) sau a unui plug-in al acestuia de a bloca deschiderea unui noi ferestre).",
+
+// Dialogs
+DlgBtnOK			: "Bine",
+DlgBtnCancel		: "Anulare",
+DlgBtnClose			: "Închidere",
+DlgBtnBrowseServer	: "Răsfoieşte server",
+DlgAdvancedTag		: "Avansat",
+DlgOpOther			: "<Altul>",
+DlgInfoTab			: "Informaţii",
+DlgAlertUrl			: "Vă rugăm să scrieţi URL-ul",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nesetat>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Direcţia cuvintelor",
+DlgGenLangDirLtr	: "stânga-dreapta (LTR)",
+DlgGenLangDirRtl	: "dreapta-stânga (RTL)",
+DlgGenLangCode		: "Codul limbii",
+DlgGenAccessKey		: "Tasta de acces",
+DlgGenName			: "Nume",
+DlgGenTabIndex		: "Indexul tabului",
+DlgGenLongDescr		: "Descrierea lungă URL",
+DlgGenClass			: "Clasele cu stilul paginii (CSS)",
+DlgGenTitle			: "Titlul consultativ",
+DlgGenContType		: "Tipul consultativ al titlului",
+DlgGenLinkCharset	: "Setul de caractere al resursei legate",
+DlgGenStyle			: "Stil",
+
+// Image Dialog
+DlgImgTitle			: "Proprietăţile imaginii",
+DlgImgInfoTab		: "Informaţii despre imagine",
+DlgImgBtnUpload		: "Trimite la server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Încarcă",
+DlgImgAlt			: "Text alternativ",
+DlgImgWidth			: "Lăţime",
+DlgImgHeight		: "Înălţime",
+DlgImgLockRatio		: "Păstrează proporţiile",
+DlgBtnResetSize		: "Resetează mărimea",
+DlgImgBorder		: "Margine",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Aliniere",
+DlgImgAlignLeft		: "Stânga",
+DlgImgAlignAbsBottom: "Jos absolut (Abs Bottom)",
+DlgImgAlignAbsMiddle: "Mijloc absolut (Abs Middle)",
+DlgImgAlignBaseline	: "Linia de jos (Baseline)",
+DlgImgAlignBottom	: "Jos",
+DlgImgAlignMiddle	: "Mijloc",
+DlgImgAlignRight	: "Dreapta",
+DlgImgAlignTextTop	: "Text sus",
+DlgImgAlignTop		: "Sus",
+DlgImgPreview		: "Previzualizare",
+DlgImgAlertUrl		: "Vă rugăm să scrieţi URL-ul imaginii",
+DlgImgLinkTab		: "Link (Legătură web)",
+
+// Flash Dialog
+DlgFlashTitle		: "Proprietăţile flash-ului",
+DlgFlashChkPlay		: "Rulează automat",
+DlgFlashChkLoop		: "Repetă (Loop)",
+DlgFlashChkMenu		: "Activează meniul flash",
+DlgFlashScale		: "Scală",
+DlgFlashScaleAll	: "Arată tot",
+DlgFlashScaleNoBorder	: "Fără margini (No border)",
+DlgFlashScaleFit	: "Potriveşte",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link (Legătură web)",
+DlgLnkInfoTab		: "Informaţii despre link (Legătură web)",
+DlgLnkTargetTab		: "Ţintă (Target)",
+
+DlgLnkType			: "Tipul link-ului (al legăturii web)",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Ancoră în această pagină",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocol",
+DlgLnkProtoOther	: "<altul>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Selectaţi o ancoră",
+DlgLnkAnchorByName	: "după numele ancorei",
+DlgLnkAnchorById	: "după Id-ul elementului",
+DlgLnkNoAnchors		: "<Nicio ancoră disponibilă în document>",
+DlgLnkEMail			: "Adresă de e-mail",
+DlgLnkEMailSubject	: "Subiectul mesajului",
+DlgLnkEMailBody		: "Conţinutul mesajului",
+DlgLnkUpload		: "Încarcă",
+DlgLnkBtnUpload		: "Trimite la server",
+
+DlgLnkTarget		: "Ţintă (Target)",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<fereastra popup>",
+DlgLnkTargetBlank	: "Fereastră nouă (_blank)",
+DlgLnkTargetParent	: "Fereastra părinte (_parent)",
+DlgLnkTargetSelf	: "Aceeaşi fereastră (_self)",
+DlgLnkTargetTop		: "Fereastra din topul ierarhiei (_top)",
+DlgLnkTargetFrameName	: "Numele frame-ului ţintă",
+DlgLnkPopWinName	: "Numele ferestrei popup",
+DlgLnkPopWinFeat	: "Proprietăţile ferestrei popup",
+DlgLnkPopResize		: "Scalabilă",
+DlgLnkPopLocation	: "Bara de locaţie",
+DlgLnkPopMenu		: "Bara de meniu",
+DlgLnkPopScroll		: "Scroll Bars",
+DlgLnkPopStatus		: "Bara de status",
+DlgLnkPopToolbar	: "Bara de opţiuni",
+DlgLnkPopFullScrn	: "Tot ecranul (Full Screen)(IE)",
+DlgLnkPopDependent	: "Dependent (Netscape)",
+DlgLnkPopWidth		: "Lăţime",
+DlgLnkPopHeight		: "Înălţime",
+DlgLnkPopLeft		: "Poziţia la stânga",
+DlgLnkPopTop		: "Poziţia la dreapta",
+
+DlnLnkMsgNoUrl		: "Vă rugăm să scrieţi URL-ul",
+DlnLnkMsgNoEMail	: "Vă rugăm să scrieţi adresa de e-mail",
+DlnLnkMsgNoAnchor	: "Vă rugăm să selectaţi o ancoră",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Selectează culoare",
+DlgColorBtnClear	: "Curăţă",
+DlgColorHighlight	: "Subliniază (Highlight)",
+DlgColorSelected	: "Selectat",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Inserează o figură expresivă (Emoticon)",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Selectează caracter special",
+
+// Table Dialog
+DlgTableTitle		: "Proprietăţile tabelului",
+DlgTableRows		: "Linii",
+DlgTableColumns		: "Coloane",
+DlgTableBorder		: "Mărimea marginii",
+DlgTableAlign		: "Aliniament",
+DlgTableAlignNotSet	: "<Nesetat>",
+DlgTableAlignLeft	: "Stânga",
+DlgTableAlignCenter	: "Centru",
+DlgTableAlignRight	: "Dreapta",
+DlgTableWidth		: "Lăţime",
+DlgTableWidthPx		: "pixeli",
+DlgTableWidthPc		: "procente",
+DlgTableHeight		: "Înălţime",
+DlgTableCellSpace	: "Spaţiu între celule",
+DlgTableCellPad		: "Spaţiu în cadrul celulei",
+DlgTableCaption		: "Titlu (Caption)",
+DlgTableSummary		: "Rezumat",
+
+// Table Cell Dialog
+DlgCellTitle		: "Proprietăţile celulei",
+DlgCellWidth		: "Lăţime",
+DlgCellWidthPx		: "pixeli",
+DlgCellWidthPc		: "procente",
+DlgCellHeight		: "Înălţime",
+DlgCellWordWrap		: "Desparte cuvintele (Wrap)",
+DlgCellWordWrapNotSet	: "<Nesetat>",
+DlgCellWordWrapYes	: "Da",
+DlgCellWordWrapNo	: "Nu",
+DlgCellHorAlign		: "Aliniament orizontal",
+DlgCellHorAlignNotSet	: "<Nesetat>",
+DlgCellHorAlignLeft	: "Stânga",
+DlgCellHorAlignCenter	: "Centru",
+DlgCellHorAlignRight: "Dreapta",
+DlgCellVerAlign		: "Aliniament vertical",
+DlgCellVerAlignNotSet	: "<Nesetat>",
+DlgCellVerAlignTop	: "Sus",
+DlgCellVerAlignMiddle	: "Mijloc",
+DlgCellVerAlignBottom	: "Jos",
+DlgCellVerAlignBaseline	: "Linia de jos (Baseline)",
+DlgCellRowSpan		: "Lungimea în linii (Span)",
+DlgCellCollSpan		: "Lungimea în coloane (Span)",
+DlgCellBackColor	: "Culoarea fundalului",
+DlgCellBorderColor	: "Culoarea marginii",
+DlgCellBtnSelect	: "Selectaţi...",
+
+// Find Dialog
+DlgFindTitle		: "Găseşte",
+DlgFindFindBtn		: "Găseşte",
+DlgFindNotFoundMsg	: "Textul specificat nu a fost găsit.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Replace",
+DlgReplaceFindLbl		: "Găseşte:",
+DlgReplaceReplaceLbl	: "Înlocuieşte cu:",
+DlgReplaceCaseChk		: "Deosebeşte majuscule de minuscule (Match case)",
+DlgReplaceReplaceBtn	: "Înlocuieşte",
+DlgReplaceReplAllBtn	: "Înlocuieşte tot",
+DlgReplaceWordChk		: "Doar cuvintele întregi",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de adăugare. Vă rugăm folosiţi tastatura (Ctrl+V).",
+PasteErrorCut	: "Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de tăiere. Vă rugăm folosiţi tastatura (Ctrl+X).",
+PasteErrorCopy	: "Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de copiere. Vă rugăm folosiţi tastatura (Ctrl+C).",
+
+PasteAsText		: "Adaugă ca text simplu (Plain Text)",
+PasteFromWord	: "Adaugă din Word",
+
+DlgPasteMsg2	: "Vă rugăm adăugaţi în căsuţa următoare folosind tastatura (<STRONG>Ctrl+V</STRONG>) şi apăsaţi <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignoră definiţiile Font Face",
+DlgPasteRemoveStyles	: "Şterge definiţiile stilurilor",
+DlgPasteCleanBox		: "Şterge căsuţa",
+
+// Color Picker
+ColorAutomatic	: "Automatic",
+ColorMoreColors	: "Mai multe culori...",
+
+// Document Properties
+DocProps		: "Proprietăţile documentului",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Proprietăţile ancorei",
+DlgAnchorName		: "Numele ancorei",
+DlgAnchorErrorName	: "Vă rugăm scrieţi numele ancorei",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Nu e în dicţionar",
+DlgSpellChangeTo		: "Schimbă în",
+DlgSpellBtnIgnore		: "Ignoră",
+DlgSpellBtnIgnoreAll	: "Ignoră toate",
+DlgSpellBtnReplace		: "Înlocuieşte",
+DlgSpellBtnReplaceAll	: "Înlocuieşte tot",
+DlgSpellBtnUndo			: "Starea anterioară (undo)",
+DlgSpellNoSuggestions	: "- Fără sugestii -",
+DlgSpellProgress		: "Verificarea textului în desfăşurare...",
+DlgSpellNoMispell		: "Verificarea textului terminată: Nicio greşeală găsită",
+DlgSpellNoChanges		: "Verificarea textului terminată: Niciun cuvânt modificat",
+DlgSpellOneChange		: "Verificarea textului terminată: Un cuvânt modificat",
+DlgSpellManyChanges		: "Verificarea textului terminată: 1% cuvinte modificate",
+
+IeSpellDownload			: "Unealta pentru verificat textul (Spell checker) neinstalată. Doriţi să o descărcaţi acum?",
+
+// Button Dialog
+DlgButtonText		: "Text (Valoare)",
+DlgButtonType		: "Tip",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nume",
+DlgCheckboxValue	: "Valoare",
+DlgCheckboxSelected	: "Selectat",
+
+// Form Dialog
+DlgFormName		: "Nume",
+DlgFormAction	: "Acţiune",
+DlgFormMethod	: "Metodă",
+
+// Select Field Dialog
+DlgSelectName		: "Nume",
+DlgSelectValue		: "Valoare",
+DlgSelectSize		: "Mărime",
+DlgSelectLines		: "linii",
+DlgSelectChkMulti	: "Permite selecţii multiple",
+DlgSelectOpAvail	: "Opţiuni disponibile",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Valoare",
+DlgSelectBtnAdd		: "Adaugă",
+DlgSelectBtnModify	: "Modifică",
+DlgSelectBtnUp		: "Sus",
+DlgSelectBtnDown	: "Jos",
+DlgSelectBtnSetValue : "Setează ca valoare selectată",
+DlgSelectBtnDelete	: "Şterge",
+
+// Textarea Dialog
+DlgTextareaName	: "Nume",
+DlgTextareaCols	: "Coloane",
+DlgTextareaRows	: "Linii",
+
+// Text Field Dialog
+DlgTextName			: "Nume",
+DlgTextValue		: "Valoare",
+DlgTextCharWidth	: "Lărgimea caracterului",
+DlgTextMaxChars		: "Caractere maxime",
+DlgTextType			: "Tip",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "Parolă",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nume",
+DlgHiddenValue	: "Valoare",
+
+// Bulleted List Dialog
+BulletedListProp	: "Proprietăţile listei punctate (Bulleted List)",
+NumberedListProp	: "Proprietăţile listei numerotate (Numbered List)",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tip",
+DlgLstTypeCircle	: "Cerc",
+DlgLstTypeDisc		: "Disc",
+DlgLstTypeSquare	: "Pătrat",
+DlgLstTypeNumbers	: "Numere (1, 2, 3)",
+DlgLstTypeLCase		: "Minuscule-litere mici (a, b, c)",
+DlgLstTypeUCase		: "Majuscule (A, B, C)",
+DlgLstTypeSRoman	: "Cifre romane mici (i, ii, iii)",
+DlgLstTypeLRoman	: "Cifre romane mari (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "General",
+DlgDocBackTab		: "Fundal",
+DlgDocColorsTab		: "Culori si margini",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Titlul paginii",
+DlgDocLangDir		: "Descrierea limbii",
+DlgDocLangDirLTR	: "stânga-dreapta (LTR)",
+DlgDocLangDirRTL	: "dreapta-stânga (RTL)",
+DlgDocLangCode		: "Codul limbii",
+DlgDocCharSet		: "Encoding setului de caractere",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Alt encoding al setului de caractere",
+
+DlgDocDocType		: "Document Type Heading",
+DlgDocDocTypeOther	: "Alt Document Type Heading",
+DlgDocIncXHTML		: "Include declaraţii XHTML",
+DlgDocBgColor		: "Culoarea fundalului (Background Color)",
+DlgDocBgImage		: "URL-ul imaginii din fundal (Background Image URL)",
+DlgDocBgNoScroll	: "Fundal neflotant, fix (Nonscrolling Background)",
+DlgDocCText			: "Text",
+DlgDocCLink			: "Link (Legătură web)",
+DlgDocCVisited		: "Link (Legătură web) vizitat",
+DlgDocCActive		: "Link (Legătură web) activ",
+DlgDocMargins		: "Marginile paginii",
+DlgDocMaTop			: "Sus",
+DlgDocMaLeft		: "Stânga",
+DlgDocMaRight		: "Dreapta",
+DlgDocMaBottom		: "Jos",
+DlgDocMeIndex		: "Cuvinte cheie după care se va indexa documentul (separate prin virgulă)",
+DlgDocMeDescr		: "Descrierea documentului",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Drepturi de autor",
+DlgDocPreview		: "Previzualizare",
+
+// Templates Dialog
+Templates			: "Template-uri (şabloane)",
+DlgTemplatesTitle	: "Template-uri (şabloane) de conţinut",
+DlgTemplatesSelMsg	: "Vă rugăm selectaţi template-ul (şablonul) ce se va deschide în editor<br>(conţinutul actual va fi pierdut):",
+DlgTemplatesLoading	: "Se încarcă lista cu template-uri (şabloane). Vă rugăm aşteptaţi...",
+DlgTemplatesNoTpl	: "(Niciun template (şablon) definit)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Despre",
+DlgAboutBrowserInfoTab	: "Informaţii browser",
+DlgAboutLicenseTab	: "Licenţă",
+DlgAboutVersion		: "versiune",
+DlgAboutLicense		: "Licenţiat sub termenii GNU Lesser General Public License",
+DlgAboutInfo		: "Pentru informaţii amănunţite, vizitaţi"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/pt-br.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/pt-br.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/pt-br.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: pt-br.js
+ * 	Brazilian Portuguese language file.
+ * 
+ * File Authors:
+ * 		Carlos Alberto Tomatis Loth (carlos.loth@conectait.com.br)
+ * 		GibaPhp (http://www.xoopstotal.com.br)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Ocultar Barra de Ferramentas",
+ToolbarExpand		: "Exibir Barra de Ferramentas",
+
+// Toolbar Items and Context Menu
+Save				: "Salvar",
+NewPage				: "Novo",
+Preview				: "Visualizar",
+Cut					: "Recortar",
+Copy				: "Copiar",
+Paste				: "Colar",
+PasteText			: "Colar como Texto sem Formatação",
+PasteWord			: "Colar do Word",
+Print				: "Imprimir",
+SelectAll			: "Selecionar Tudo",
+RemoveFormat		: "Remover Formatação",
+InsertLinkLbl		: "Hiperlink",
+InsertLink			: "Inserir/Editar Hiperlink",
+RemoveLink			: "Remover Hiperlink",
+Anchor				: "Inserir/Editar Âncora",
+InsertImageLbl		: "Figura",
+InsertImage			: "Inserir/Editar Figura",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Insere/Edita Flash",
+InsertTableLbl		: "Tabela",
+InsertTable			: "Inserir/Editar Tabela",
+InsertLineLbl		: "Linha",
+InsertLine			: "Inserir Linha Horizontal",
+InsertSpecialCharLbl: "Caracteres Especiais",
+InsertSpecialChar	: "Inserir Caractere Especial",
+InsertSmileyLbl		: "Emoticon",
+InsertSmiley		: "Inserir Emoticon",
+About				: "Sobre FCKeditor",
+Bold				: "Negrito",
+Italic				: "Itálico",
+Underline			: "Sublinhado",
+StrikeThrough		: "Tachado",
+Subscript			: "Subscrito",
+Superscript			: "Sobrescrito",
+LeftJustify			: "Alinhar Esquerda",
+CenterJustify		: "Centralizar",
+RightJustify		: "Alinhar Direita",
+BlockJustify		: "Justificado",
+DecreaseIndent		: "Diminuir Recuo",
+IncreaseIndent		: "Aumentar Recuo",
+Undo				: "Desfazer",
+Redo				: "Refazer",
+NumberedListLbl		: "Numeração",
+NumberedList		: "Inserir/Remover Numeração",
+BulletedListLbl		: "Marcadores",
+BulletedList		: "Inserir/Remover Marcadores",
+ShowTableBorders	: "Exibir Bordas da Tabela",
+ShowDetails			: "Exibir Detalhes",
+Style				: "Estilo",
+FontFormat			: "Formatação",
+Font				: "Fonte",
+FontSize			: "Tamanho",
+TextColor			: "Cor do Texto",
+BGColor				: "Cor do Plano de Fundo",
+Source				: "Código-Fonte",
+Find				: "Localizar",
+Replace				: "Substituir",
+SpellCheck			: "Verificar Ortografia",
+UniversalKeyboard	: "Teclado Universal",
+PageBreakLbl		: "Quebra de Página",
+PageBreak			: "Inserir Quebra de Página",
+
+Form			: "Formulário",
+Checkbox		: "Caixa de Seleção",
+RadioButton		: "Botão de Opção",
+TextField		: "Caixa de Texto",
+Textarea		: "Área de Texto",
+HiddenField		: "Campo Oculto",
+Button			: "Botão",
+SelectionField	: "Caixa de Listagem",
+ImageButton		: "Botão de Imagem",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+
+// Context Menu
+EditLink			: "Editar Hiperlink",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRow			: "Inserir Linha",
+DeleteRows			: "Remover Linhas",
+InsertColumn		: "Inserir Coluna",
+DeleteColumns		: "Remover Colunas",
+InsertCell			: "Inserir Células",
+DeleteCells			: "Remover Células",
+MergeCells			: "Mesclar Células",
+SplitCell			: "Dividir Célular",
+TableDelete			: "Apagar Tabela",
+CellProperties		: "Formatar Célula",
+TableProperties		: "Formatar Tabela",
+ImageProperties		: "Formatar Figura",
+FlashProperties		: "Propriedades Flash",
+
+AnchorProp			: "Formatar Âncora",
+ButtonProp			: "Formatar Botão",
+CheckboxProp		: "Formatar Caixa de Seleção",
+HiddenFieldProp		: "Formatar Campo Oculto",
+RadioButtonProp		: "Formatar Botão de Opção",
+ImageButtonProp		: "Formatar Botão de Imagem",
+TextFieldProp		: "Formatar Caixa de Texto",
+SelectionFieldProp	: "Formatar Caixa de Listagem",
+TextareaProp		: "Formatar Área de Texto",
+FormProp			: "Formatar Formulário",
+
+FontFormats			: "Normal;Formatado;Endereço;Título 1;Título 2;Título 3;Título 4;Título 5;Título 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Processando XHTML. Por favor, aguarde...",
+Done				: "Pronto",
+PasteWordConfirm	: "O texto que você deseja colar parece ter sido copiado do Word. Você gostaria de remover a formatação antes de colar?",
+NotCompatiblePaste	: "Este comando está disponível para o navegador Internet Explorer 5.5 ou superior. Você gostaria de colar sem remover a formatação?",
+UnknownToolbarItem	: "O item da barra de ferramentas \"%1\" não é reconhecido",
+UnknownCommand		: "O comando \"%1\" não é reconhecido",
+NotImplemented		: "O comando não foi implementado",
+UnknownToolbarSet	: "A barra de ferramentas \"%1\" não existe",
+NoActiveX			: "As configurações de segurança do seu browser podem limitar algumas características do editor. Você precisa habilitar a opção \"Executar controles e plug-ins ActiveX\". Você pode experimentar erros e alertas de características faltantes.",
+BrowseServerBlocked : "Os recursos do browser não puderam ser abertos. Tenha certeza que todos os bloqueadores de popup estão desabilitados.",
+DialogBlocked		: "Não foi possível abrir a janela de diálogo. Tenha certeza que todos os bloqueadores de popup estão desabilitados.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Cancelar",
+DlgBtnClose			: "Fechar",
+DlgBtnBrowseServer	: "Localizar no Servidor",
+DlgAdvancedTag		: "Avançado",
+DlgOpOther			: "<Outros>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Inserir a URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<não ajustado>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Direção do idioma",
+DlgGenLangDirLtr	: "Esquerda para Direita (LTR)",
+DlgGenLangDirRtl	: "Direita para Esquerda (RTL)",
+DlgGenLangCode		: "Idioma",
+DlgGenAccessKey		: "Chave de Acesso",
+DlgGenName			: "Nome",
+DlgGenTabIndex		: "Índice de Tabulação",
+DlgGenLongDescr		: "Descrição da URL",
+DlgGenClass			: "Classe de Folhas de Estilo",
+DlgGenTitle			: "Título",
+DlgGenContType		: "Tipo de Conteúdo",
+DlgGenLinkCharset	: "Conjunto de Caracteres do Hiperlink",
+DlgGenStyle			: "Estilos",
+
+// Image Dialog
+DlgImgTitle			: "Formatar Figura",
+DlgImgInfoTab		: "Informações da Figura",
+DlgImgBtnUpload		: "Enviar para o Servidor",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Submeter",
+DlgImgAlt			: "Texto Alternativo",
+DlgImgWidth			: "Largura",
+DlgImgHeight		: "Altura",
+DlgImgLockRatio		: "Manter proporções",
+DlgBtnResetSize		: "Redefinir para o Tamanho Original",
+DlgImgBorder		: "Borda",
+DlgImgHSpace		: "Horizontal",
+DlgImgVSpace		: "Vertical",
+DlgImgAlign			: "Alinhamento",
+DlgImgAlignLeft		: "Esquerda",
+DlgImgAlignAbsBottom: "Inferior Absoluto",
+DlgImgAlignAbsMiddle: "Centralizado Absoluto",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Inferior",
+DlgImgAlignMiddle	: "Centralizado",
+DlgImgAlignRight	: "Direita",
+DlgImgAlignTextTop	: "Superior Absoluto",
+DlgImgAlignTop		: "Superior",
+DlgImgPreview		: "Visualização",
+DlgImgAlertUrl		: "Por favor, digite o URL da figura.",
+DlgImgLinkTab		: "Hiperlink",
+
+// Flash Dialog
+DlgFlashTitle		: "Propriedades Flash",
+DlgFlashChkPlay		: "Tocar Automaticamente",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "Habilita Menu Flash",
+DlgFlashScale		: "Escala",
+DlgFlashScaleAll	: "Mostrar tudo",
+DlgFlashScaleNoBorder	: "Sem Borda",
+DlgFlashScaleFit	: "Escala Exata",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Hiperlink",
+DlgLnkInfoTab		: "Informações do hiperlink",
+DlgLnkTargetTab		: "Informações de destino",
+
+DlgLnkType			: "Tipo de hiperlink",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Âncora nesta página",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocolo",
+DlgLnkProtoOther	: "<outro>",
+DlgLnkURL			: "URL do hiperlink",
+DlgLnkAnchorSel		: "Selecione uma âncora",
+DlgLnkAnchorByName	: "Pelo Nome da âncora",
+DlgLnkAnchorById	: "Pelo Id do Elemento",
+DlgLnkNoAnchors		: "<Não há âncoras disponíveis neste documento>",
+DlgLnkEMail			: "Endereço E-Mail",
+DlgLnkEMailSubject	: "Assunto da Mensagem",
+DlgLnkEMailBody		: "Corpo da Mensagem",
+DlgLnkUpload		: "Enviar ao Servidor",
+DlgLnkBtnUpload		: "Enviar ao Servidor",
+
+DlgLnkTarget		: "Destino",
+DlgLnkTargetFrame	: "<quadro>",
+DlgLnkTargetPopup	: "<janela popup>",
+DlgLnkTargetBlank	: "Nova Janela (_blank)",
+DlgLnkTargetParent	: "Janela Pai (_parent)",
+DlgLnkTargetSelf	: "Mesma Janela (_self)",
+DlgLnkTargetTop		: "Janela Superior (_top)",
+DlgLnkTargetFrameName	: "Nome do Frame de Destino",
+DlgLnkPopWinName	: "Nome da Janela Pop-up",
+DlgLnkPopWinFeat	: "Atributos da Janela Pop-up",
+DlgLnkPopResize		: "Redimensionável",
+DlgLnkPopLocation	: "Barra de Endereços",
+DlgLnkPopMenu		: "Barra de Menus",
+DlgLnkPopScroll		: "Barras de Rolagem",
+DlgLnkPopStatus		: "Barra de Status",
+DlgLnkPopToolbar	: "Barra de Ferramentas",
+DlgLnkPopFullScrn	: "Modo Tela Cheia (IE)",
+DlgLnkPopDependent	: "Dependente (Netscape)",
+DlgLnkPopWidth		: "Largura",
+DlgLnkPopHeight		: "Altura",
+DlgLnkPopLeft		: "Esquerda",
+DlgLnkPopTop		: "Superior",
+
+DlnLnkMsgNoUrl		: "Por favor, digite o endereço do Hiperlink",
+DlnLnkMsgNoEMail	: "Por favor, digite o endereço de e-mail",
+DlnLnkMsgNoAnchor	: "Por favor, selecione uma âncora",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Selecione uma Cor",
+DlgColorBtnClear	: "Limpar",
+DlgColorHighlight	: "Visualização",
+DlgColorSelected	: "Selecionada",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Inserir Emoticon",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Selecione um Caractere Especial",
+
+// Table Dialog
+DlgTableTitle		: "Formatar Tabela",
+DlgTableRows		: "Linhas",
+DlgTableColumns		: "Colunas",
+DlgTableBorder		: "Borda",
+DlgTableAlign		: "Alinhamento",
+DlgTableAlignNotSet	: "<Não ajustado>",
+DlgTableAlignLeft	: "Esquerda",
+DlgTableAlignCenter	: "Centralizado",
+DlgTableAlignRight	: "Direita",
+DlgTableWidth		: "Largura",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "%",
+DlgTableHeight		: "Altura",
+DlgTableCellSpace	: "Espaçamento",
+DlgTableCellPad		: "Enchimento",
+DlgTableCaption		: "Legenda",
+DlgTableSummary		: "Resumo",
+
+// Table Cell Dialog
+DlgCellTitle		: "Formatar célula",
+DlgCellWidth		: "Largura",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "%",
+DlgCellHeight		: "Altura",
+DlgCellWordWrap		: "Quebra de Linha",
+DlgCellWordWrapNotSet	: "<Não ajustado>",
+DlgCellWordWrapYes	: "Sim",
+DlgCellWordWrapNo	: "Não",
+DlgCellHorAlign		: "Alinhamento Horizontal",
+DlgCellHorAlignNotSet	: "<Não ajustado>",
+DlgCellHorAlignLeft	: "Esquerda",
+DlgCellHorAlignCenter	: "Centralizado",
+DlgCellHorAlignRight: "Direita",
+DlgCellVerAlign		: "Alinhamento Vertical",
+DlgCellVerAlignNotSet	: "<Não ajustado>",
+DlgCellVerAlignTop	: "Superior",
+DlgCellVerAlignMiddle	: "Centralizado",
+DlgCellVerAlignBottom	: "Inferior",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellRowSpan		: "Transpor Linhas",
+DlgCellCollSpan		: "Transpor Colunas",
+DlgCellBackColor	: "Cor do Plano de Fundo",
+DlgCellBorderColor	: "Cor da Borda",
+DlgCellBtnSelect	: "Selecionar...",
+
+// Find Dialog
+DlgFindTitle		: "Localizar...",
+DlgFindFindBtn		: "Localizar",
+DlgFindNotFoundMsg	: "O texto especificado não foi encontrado.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Substituir",
+DlgReplaceFindLbl		: "Procurar por:",
+DlgReplaceReplaceLbl	: "Substituir por:",
+DlgReplaceCaseChk		: "Coincidir Maiúsculas/Minúsculas",
+DlgReplaceReplaceBtn	: "Substituir",
+DlgReplaceReplAllBtn	: "Substituir Tudo",
+DlgReplaceWordChk		: "Coincidir a palavra inteira",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "As configurações de segurança do seu navegador não permitem que o editor execute operações de colar automaticamente. Por favor, utilize o teclado para colar (Ctrl+V).",
+PasteErrorCut	: "As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl+X).",
+PasteErrorCopy	: "As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl+C).",
+
+PasteAsText		: "Colar como Texto sem Formatação",
+PasteFromWord	: "Colar do Word",
+
+DlgPasteMsg2	: "Transfira o link usado no box usando o teclado com (<STRONG>Ctrl+V</STRONG>) e <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignorar definições de fonte",
+DlgPasteRemoveStyles	: "Remove definições de estilo",
+DlgPasteCleanBox		: "Limpar Box",
+
+// Color Picker
+ColorAutomatic	: "Automático",
+ColorMoreColors	: "Mais Cores...",
+
+// Document Properties
+DocProps		: "Propriedades Documento",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Formatar Âncora",
+DlgAnchorName		: "Nome da Âncora",
+DlgAnchorErrorName	: "Por favor, digite o nome da âncora",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Não encontrada",
+DlgSpellChangeTo		: "Alterar para",
+DlgSpellBtnIgnore		: "Ignorar uma vez",
+DlgSpellBtnIgnoreAll	: "Ignorar Todas",
+DlgSpellBtnReplace		: "Alterar",
+DlgSpellBtnReplaceAll	: "Alterar Todas",
+DlgSpellBtnUndo			: "Desfazer",
+DlgSpellNoSuggestions	: "-sem sugestões de ortografia-",
+DlgSpellProgress		: "Verificação ortográfica em andamento...",
+DlgSpellNoMispell		: "Verificação encerrada: Não foram encontrados erros de ortografia",
+DlgSpellNoChanges		: "Verificação ortográfica encerrada: Não houve alterações",
+DlgSpellOneChange		: "Verificação ortográfica encerrada: Uma palavra foi alterada",
+DlgSpellManyChanges		: "Verificação ortográfica encerrada: %1 foram alteradas",
+
+IeSpellDownload			: "A verificação ortográfica não foi instalada. Você gostaria de realizar o download agora?",
+
+// Button Dialog
+DlgButtonText		: "Texto (Valor)",
+DlgButtonType		: "Tipo",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nome",
+DlgCheckboxValue	: "Valor",
+DlgCheckboxSelected	: "Selecionado",
+
+// Form Dialog
+DlgFormName		: "Nome",
+DlgFormAction	: "Action",
+DlgFormMethod	: "Método",
+
+// Select Field Dialog
+DlgSelectName		: "Nome",
+DlgSelectValue		: "Valor",
+DlgSelectSize		: "Tamanho",
+DlgSelectLines		: "linhas",
+DlgSelectChkMulti	: "Permitir múltiplas seleções",
+DlgSelectOpAvail	: "Opções disponíveis",
+DlgSelectOpText		: "Texto",
+DlgSelectOpValue	: "Valor",
+DlgSelectBtnAdd		: "Adicionar",
+DlgSelectBtnModify	: "Modificar",
+DlgSelectBtnUp		: "Para cima",
+DlgSelectBtnDown	: "Para baixo",
+DlgSelectBtnSetValue : "Definir como selecionado",
+DlgSelectBtnDelete	: "Remover",
+
+// Textarea Dialog
+DlgTextareaName	: "Nome",
+DlgTextareaCols	: "Colunas",
+DlgTextareaRows	: "Linhas",
+
+// Text Field Dialog
+DlgTextName			: "Nome",
+DlgTextValue		: "Valor",
+DlgTextCharWidth	: "Comprimento (em caracteres)",
+DlgTextMaxChars		: "Número Máximo de Caracteres",
+DlgTextType			: "Tipo",
+DlgTextTypeText		: "Texto",
+DlgTextTypePass		: "Senha",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nome",
+DlgHiddenValue	: "Valor",
+
+// Bulleted List Dialog
+BulletedListProp	: "Formatar Marcadores",
+NumberedListProp	: "Formatar Numeração",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tipo",
+DlgLstTypeCircle	: "Círculo",
+DlgLstTypeDisc		: "Disco",
+DlgLstTypeSquare	: "Quadrado",
+DlgLstTypeNumbers	: "Números (1, 2, 3)",
+DlgLstTypeLCase		: "Letras Minúsculas (a, b, c)",
+DlgLstTypeUCase		: "Letras Maiúsculas (A, B, C)",
+DlgLstTypeSRoman	: "Números Romanos Minúsculos (i, ii, iii)",
+DlgLstTypeLRoman	: "Números Romanos Maiúsculos (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Geral",
+DlgDocBackTab		: "Plano de Fundo",
+DlgDocColorsTab		: "Cores e Margens",
+DlgDocMetaTab		: "Meta Dados",
+
+DlgDocPageTitle		: "Título da Página",
+DlgDocLangDir		: "Direção do Idioma",
+DlgDocLangDirLTR	: "Esquerda para Direita (LTR)",
+DlgDocLangDirRTL	: "Direita para Esquerda (RTL)",
+DlgDocLangCode		: "Código do Idioma",
+DlgDocCharSet		: "Codificação de Caracteres",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Outra Codificação de Caracteres",
+
+DlgDocDocType		: "Cabeçalho Tipo de Documento",
+DlgDocDocTypeOther	: "Other Document Type Heading",
+DlgDocIncXHTML		: "Incluir Declarações XHTML",
+DlgDocBgColor		: "Cor do Plano de Fundo",
+DlgDocBgImage		: "URL da Imagem de Plano de Fundo",
+DlgDocBgNoScroll	: "Plano de Fundo Fixo",
+DlgDocCText			: "Texto",
+DlgDocCLink			: "Hiperlink",
+DlgDocCVisited		: "Hiperlink Visitado",
+DlgDocCActive		: "Hiperlink Ativo",
+DlgDocMargins		: "Margens da Página",
+DlgDocMaTop			: "Superior",
+DlgDocMaLeft		: "Inferior",
+DlgDocMaRight		: "Direita",
+DlgDocMaBottom		: "Inferior",
+DlgDocMeIndex		: "Palavras-chave de Indexação do Documento (separadas por vírgula)",
+DlgDocMeDescr		: "Descrição do Documento",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Direitos Autorais",
+DlgDocPreview		: "Visualizar",
+
+// Templates Dialog
+Templates			: "Modelos de layout",
+DlgTemplatesTitle	: "Modelo de layout do conteúdo",
+DlgTemplatesSelMsg	: "Selecione um modelo de layout para ser aberto no editor<br>(o conteúdo atual será perdido):",
+DlgTemplatesLoading	: "Carregando a lista de modelos de layout. Aguarde...",
+DlgTemplatesNoTpl	: "(Não foram definidos modelos de layout)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Sobre",
+DlgAboutBrowserInfoTab	: "Informações do Navegador",
+DlgAboutLicenseTab	: "Licença",
+DlgAboutVersion		: "versão",
+DlgAboutLicense		: "Licenciado sob os termos da GNU Lesser General Public License",
+DlgAboutInfo		: "Para maiores informações visite"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ru.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ru.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ru.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: ru.js
+ * 	Russian language file.
+ * 
+ * File Authors:
+ * 		Andrey Grebnev (andrey.grebnev@blandware.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Свернуть панель инструментов",
+ToolbarExpand		: "Развернуть панель инструментов",
+
+// Toolbar Items and Context Menu
+Save				: "Сохранить",
+NewPage				: "Новая страница",
+Preview				: "Предварительный просмотр",
+Cut					: "Вырезать",
+Copy				: "Копировать",
+Paste				: "Вставить",
+PasteText			: "Вставить только текст",
+PasteWord			: "Вставить из Word",
+Print				: "Печать",
+SelectAll			: "Выделить все",
+RemoveFormat		: "Убрать форматирование",
+InsertLinkLbl		: "Ссылка",
+InsertLink			: "Вставить/Редактировать ссылку",
+RemoveLink			: "Убрать ссылку",
+Anchor				: "Вставить/Редактировать якорь",
+InsertImageLbl		: "Изображение",
+InsertImage			: "Вставить/Редактировать изображение",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Вставить/Редактировать Flash",
+InsertTableLbl		: "Таблица",
+InsertTable			: "Вставить/Редактировать таблицу",
+InsertLineLbl		: "Линия",
+InsertLine			: "Вставить горизонтальную линию",
+InsertSpecialCharLbl: "Специальный символ",
+InsertSpecialChar	: "Вставить специальный символ",
+InsertSmileyLbl		: "Смайлик",
+InsertSmiley		: "Вставить смайлик",
+About				: "О FCKeditor",
+Bold				: "Жирный",
+Italic				: "Курсив",
+Underline			: "Подчеркнутый",
+StrikeThrough		: "Зачеркнутый",
+Subscript			: "Подстрочный индекс",
+Superscript			: "Надстрочный индекс",
+LeftJustify			: "По левому краю",
+CenterJustify		: "По центру",
+RightJustify		: "По правому краю",
+BlockJustify		: "По ширине",
+DecreaseIndent		: "Уменьшить отступ",
+IncreaseIndent		: "Увеличить отступ",
+Undo				: "Отменить",
+Redo				: "Повторить",
+NumberedListLbl		: "Нумерованный список",
+NumberedList		: "Вставить/Удалить нумерованный список",
+BulletedListLbl		: "Маркированный список",
+BulletedList		: "Вставить/Удалить маркированный список",
+ShowTableBorders	: "Показать бордюры таблицы",
+ShowDetails			: "Показать детали",
+Style				: "Стиль",
+FontFormat			: "Форматирование",
+Font				: "Шрифт",
+FontSize			: "Размер",
+TextColor			: "Цвет текста",
+BGColor				: "Цвет фона",
+Source				: "Источник",
+Find				: "Найти",
+Replace				: "Заменить",
+SpellCheck			: "Проверить орфографию",
+UniversalKeyboard	: "Универсальная клавиатура",
+PageBreakLbl		: "Разрыв страницы",
+PageBreak			: "Вставить разрыв страницы",
+
+Form			: "Форма",
+Checkbox		: "Флаговая кнопка",
+RadioButton		: "Кнопка выбора",
+TextField		: "Текстовое поле",
+Textarea		: "Текстовая область",
+HiddenField		: "Скрытое поле",
+Button			: "Кнопка",
+SelectionField	: "Список",
+ImageButton		: "Кнопка с изображением",
+
+FitWindow		: "Развернуть окно редактора",
+
+// Context Menu
+EditLink			: "Вставить ссылку",
+CellCM				: "Ячейка",
+RowCM				: "Строка",
+ColumnCM			: "Колонка",
+InsertRow			: "Вставить строку",
+DeleteRows			: "Удалить строки",
+InsertColumn		: "Вставить колонку",
+DeleteColumns		: "Удалить колонки",
+InsertCell			: "Вставить ячейку",
+DeleteCells			: "Удалить ячейки",
+MergeCells			: "Соединить ячейки",
+SplitCell			: "Разбить ячейку",
+TableDelete			: "Удалить таблицу",
+CellProperties		: "Свойства ячейки",
+TableProperties		: "Свойства таблицы",
+ImageProperties		: "Свойства изображения",
+FlashProperties		: "Свойства Flash",
+
+AnchorProp			: "Свойства якоря",
+ButtonProp			: "Свойства кнопки",
+CheckboxProp		: "Свойства флаговой кнопки",
+HiddenFieldProp		: "Свойства скрытого поля",
+RadioButtonProp		: "Свойства кнопки выбора",
+ImageButtonProp		: "Свойства кнопки с изображением",
+TextFieldProp		: "Свойства текстового поля",
+SelectionFieldProp	: "Свойства списка",
+TextareaProp		: "Свойства текстовой области",
+FormProp			: "Свойства формы",
+
+FontFormats			: "Нормальный;Форматированный;Адрес;Заголовок 1;Заголовок 2;Заголовок 3;Заголовок 4;Заголовок 5;Заголовок 6;Нормальный (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Обработка XHTML. Пожалуйста подождите...",
+Done				: "Сделано",
+PasteWordConfirm	: "Текст, который вы хотите вставить, похож на копируемый из Word. Вы хотите очистить его перед вставкой?",
+NotCompatiblePaste	: "Эта команда доступна для Internet Explorer версии 5.5 или выше. Вы хотите вставить без очистки?",
+UnknownToolbarItem	: "Не известный элемент панели инструментов \"%1\"",
+UnknownCommand		: "Не известное имя команды \"%1\"",
+NotImplemented		: "Команда не реализована",
+UnknownToolbarSet	: "Панель инструментов \"%1\" не существует",
+NoActiveX			: "Настройки безопасности вашего браузера могут ограничивать некоторые свойства редактора. Вы должны включить опцию \"Запускать элементы управления ActiveX и плугины\". Вы можете видеть ошибки и замечать отсутствие возможностей.",
+BrowseServerBlocked : "Ресурсы браузера не могут быть открыты. Проверьте что блокировки всплывающих окон выключены.",
+DialogBlocked		: "Не возможно открыть окно диалога. Проверьте что блокировки всплывающих окон выключены.",
+
+// Dialogs
+DlgBtnOK			: "ОК",
+DlgBtnCancel		: "Отмена",
+DlgBtnClose			: "Закрыть",
+DlgBtnBrowseServer	: "Просмотреть на сервере",
+DlgAdvancedTag		: "Расширенный",
+DlgOpOther			: "<Другое>",
+DlgInfoTab			: "Информация",
+DlgAlertUrl			: "Пожалуйста вставьте URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<не определено>",
+DlgGenId			: "Идентификатор",
+DlgGenLangDir		: "Направление языка",
+DlgGenLangDirLtr	: "Слева на право (LTR)",
+DlgGenLangDirRtl	: "Справа на лево (RTL)",
+DlgGenLangCode		: "Язык",
+DlgGenAccessKey		: "Горячая клавиша",
+DlgGenName			: "Имя",
+DlgGenTabIndex		: "Последовательность перехода",
+DlgGenLongDescr		: "Длинное описание URL",
+DlgGenClass			: "Класс CSS",
+DlgGenTitle			: "Заголовок",
+DlgGenContType		: "Тип содержимого",
+DlgGenLinkCharset	: "Кодировка",
+DlgGenStyle			: "Стиль CSS",
+
+// Image Dialog
+DlgImgTitle			: "Свойства изображения",
+DlgImgInfoTab		: "Информация о изображении",
+DlgImgBtnUpload		: "Послать на сервер",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Закачать",
+DlgImgAlt			: "Альтернативный текст",
+DlgImgWidth			: "Ширина",
+DlgImgHeight		: "Высота",
+DlgImgLockRatio		: "Сохранять пропорции",
+DlgBtnResetSize		: "Сбросить размер",
+DlgImgBorder		: "Бордюр",
+DlgImgHSpace		: "Горизонтальный отступ",
+DlgImgVSpace		: "Вертикальный отступ",
+DlgImgAlign			: "Выравнивание",
+DlgImgAlignLeft		: "По левому краю",
+DlgImgAlignAbsBottom: "Абс понизу",
+DlgImgAlignAbsMiddle: "Абс посередине",
+DlgImgAlignBaseline	: "По базовой линии",
+DlgImgAlignBottom	: "Понизу",
+DlgImgAlignMiddle	: "Посередине",
+DlgImgAlignRight	: "По правому краю",
+DlgImgAlignTextTop	: "Текст наверху",
+DlgImgAlignTop		: "По верху",
+DlgImgPreview		: "Предварительный просмотр",
+DlgImgAlertUrl		: "Пожалуйста введите URL изображения",
+DlgImgLinkTab		: "Ссылка",
+
+// Flash Dialog
+DlgFlashTitle		: "Свойства Flash",
+DlgFlashChkPlay		: "Авто проигрывание",
+DlgFlashChkLoop		: "Повтор",
+DlgFlashChkMenu		: "Включить меню Flash",
+DlgFlashScale		: "Масштабировать",
+DlgFlashScaleAll	: "Показывать все",
+DlgFlashScaleNoBorder	: "Без бордюра",
+DlgFlashScaleFit	: "Точное совпадение",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Ссылка",
+DlgLnkInfoTab		: "Информация ссылки",
+DlgLnkTargetTab		: "Цель",
+
+DlgLnkType			: "Тип ссылки",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Якорь на эту страницу",
+DlgLnkTypeEMail		: "Эл. почта",
+DlgLnkProto			: "Протокол",
+DlgLnkProtoOther	: "<другое>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Выберите якорь",
+DlgLnkAnchorByName	: "По имени якоря",
+DlgLnkAnchorById	: "По идентификатору элемента",
+DlgLnkNoAnchors		: "<Нет якорей доступных в этом документе>",
+DlgLnkEMail			: "Адрес эл. почты",
+DlgLnkEMailSubject	: "Заголовок сообщения",
+DlgLnkEMailBody		: "Тело сообщения",
+DlgLnkUpload		: "Закачать",
+DlgLnkBtnUpload		: "Послать на сервер",
+
+DlgLnkTarget		: "Цель",
+DlgLnkTargetFrame	: "<фрейм>",
+DlgLnkTargetPopup	: "<всплывающее окно>",
+DlgLnkTargetBlank	: "Новое окно (_blank)",
+DlgLnkTargetParent	: "Родительское окно (_parent)",
+DlgLnkTargetSelf	: "Тоже окно (_self)",
+DlgLnkTargetTop		: "Самое верхнее окно (_top)",
+DlgLnkTargetFrameName	: "Имя целевого фрейма",
+DlgLnkPopWinName	: "Имя всплывающего окна",
+DlgLnkPopWinFeat	: "Свойства всплывающего окна",
+DlgLnkPopResize		: "Изменяющееся в размерах",
+DlgLnkPopLocation	: "Панель локации",
+DlgLnkPopMenu		: "Панель меню",
+DlgLnkPopScroll		: "Полосы прокрутки",
+DlgLnkPopStatus		: "Строка состояния",
+DlgLnkPopToolbar	: "Панель инструментов",
+DlgLnkPopFullScrn	: "Полный экран (IE)",
+DlgLnkPopDependent	: "Зависимый (Netscape)",
+DlgLnkPopWidth		: "Ширина",
+DlgLnkPopHeight		: "Высота",
+DlgLnkPopLeft		: "Позиция слева",
+DlgLnkPopTop		: "Позиция сверху",
+
+DlnLnkMsgNoUrl		: "Пожалуйста введите URL ссылки",
+DlnLnkMsgNoEMail	: "Пожалуйста введите адрес эл. почты",
+DlnLnkMsgNoAnchor	: "Пожалуйста выберете якорь",
+DlnLnkMsgInvPopName	: "Название вспывающего окна должно начинаться буквы и не может содержать пробелов",
+
+// Color Dialog
+DlgColorTitle		: "Выберите цвет",
+DlgColorBtnClear	: "Очистить",
+DlgColorHighlight	: "Подсвеченный",
+DlgColorSelected	: "Выбранный",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Вставить смайлик",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Выберите специальный символ",
+
+// Table Dialog
+DlgTableTitle		: "Свойства таблицы",
+DlgTableRows		: "Строки",
+DlgTableColumns		: "Колонки",
+DlgTableBorder		: "Размер бордюра",
+DlgTableAlign		: "Выравнивание",
+DlgTableAlignNotSet	: "<Не уст.>",
+DlgTableAlignLeft	: "Слева",
+DlgTableAlignCenter	: "По центру",
+DlgTableAlignRight	: "Справа",
+DlgTableWidth		: "Ширина",
+DlgTableWidthPx		: "пикселей",
+DlgTableWidthPc		: "процентов",
+DlgTableHeight		: "Высота",
+DlgTableCellSpace	: "Промежуток (spacing)",
+DlgTableCellPad		: "Отступ (padding)",
+DlgTableCaption		: "Заголовок",
+DlgTableSummary		: "Резюме",
+
+// Table Cell Dialog
+DlgCellTitle		: "Свойства ячейки",
+DlgCellWidth		: "Ширина",
+DlgCellWidthPx		: "пикселей",
+DlgCellWidthPc		: "процентов",
+DlgCellHeight		: "Высота",
+DlgCellWordWrap		: "Заворачивание текста",
+DlgCellWordWrapNotSet	: "<Не уст.>",
+DlgCellWordWrapYes	: "Да",
+DlgCellWordWrapNo	: "Нет",
+DlgCellHorAlign		: "Гор. выравнивание",
+DlgCellHorAlignNotSet	: "<Не уст.>",
+DlgCellHorAlignLeft	: "Слева",
+DlgCellHorAlignCenter	: "По центру",
+DlgCellHorAlignRight: "Справа",
+DlgCellVerAlign		: "Верт. выравнивание",
+DlgCellVerAlignNotSet	: "<Не уст.>",
+DlgCellVerAlignTop	: "Сверху",
+DlgCellVerAlignMiddle	: "Посередине",
+DlgCellVerAlignBottom	: "Снизу",
+DlgCellVerAlignBaseline	: "По базовой линии",
+DlgCellRowSpan		: "Диапазон строк (span)",
+DlgCellCollSpan		: "Диапазон колонок (span)",
+DlgCellBackColor	: "Цвет фона",
+DlgCellBorderColor	: "Цвет бордюра",
+DlgCellBtnSelect	: "Выберите...",
+
+// Find Dialog
+DlgFindTitle		: "Найти",
+DlgFindFindBtn		: "Найти",
+DlgFindNotFoundMsg	: "Указанный текст не найден.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Заменить",
+DlgReplaceFindLbl		: "Найти:",
+DlgReplaceReplaceLbl	: "Заменить на:",
+DlgReplaceCaseChk		: "Учитывать регистр",
+DlgReplaceReplaceBtn	: "Заменить",
+DlgReplaceReplAllBtn	: "Заменить все",
+DlgReplaceWordChk		: "Совпадение целых слов",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Настройки безопасности вашего браузера не позволяют редактору автоматически выполнять операции вставки. Пожалуйста используйте клавиатуру для этого (Ctrl+V).",
+PasteErrorCut	: "Настройки безопасности вашего браузера не позволяют редактору автоматически выполнять операции вырезания. Пожалуйста используйте клавиатуру для этого (Ctrl+X).",
+PasteErrorCopy	: "Настройки безопасности вашего браузера не позволяют редактору автоматически выполнять операции копирования. Пожалуйста используйте клавиатуру для этого (Ctrl+C).",
+
+PasteAsText		: "Вставить только текст",
+PasteFromWord	: "Вставить из Word",
+
+DlgPasteMsg2	: "Пожалуйста вставьте текст в прямоугольник используя сочетание клавиш (<STRONG>Ctrl+V</STRONG>) и нажмите <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Игнорировать определения гарнитуры",
+DlgPasteRemoveStyles	: "Убрать определения стилей",
+DlgPasteCleanBox		: "Очистить",
+
+// Color Picker
+ColorAutomatic	: "Автоматический",
+ColorMoreColors	: "Цвета...",
+
+// Document Properties
+DocProps		: "Свойства документа",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Свойства якоря",
+DlgAnchorName		: "Имя якоря",
+DlgAnchorErrorName	: "Пожалуйста введите имя якоря",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Нет в словаре",
+DlgSpellChangeTo		: "Заменить на",
+DlgSpellBtnIgnore		: "Игнорировать",
+DlgSpellBtnIgnoreAll	: "Игнорировать все",
+DlgSpellBtnReplace		: "Заменить",
+DlgSpellBtnReplaceAll	: "Заменить все",
+DlgSpellBtnUndo			: "Отменить",
+DlgSpellNoSuggestions	: "- Нет предположений -",
+DlgSpellProgress		: "Идет проверка орфографии...",
+DlgSpellNoMispell		: "Проверка орфографии закончена: ошибок не найдено",
+DlgSpellNoChanges		: "Проверка орфографии закончена: ни одного слова не изменено",
+DlgSpellOneChange		: "Проверка орфографии закончена: одно слово изменено",
+DlgSpellManyChanges		: "Проверка орфографии закончена: 1% слов изменен",
+
+IeSpellDownload			: "Модуль проверки орфографии не установлен. Хотите скачать его сейчас?",
+
+// Button Dialog
+DlgButtonText		: "Текст (Значение)",
+DlgButtonType		: "Тип",
+DlgButtonTypeBtn	: "Кнопка",
+DlgButtonTypeSbm	: "Отправить",
+DlgButtonTypeRst	: "Сбросить",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Имя",
+DlgCheckboxValue	: "Значение",
+DlgCheckboxSelected	: "Выбранная",
+
+// Form Dialog
+DlgFormName		: "Имя",
+DlgFormAction	: "Действие",
+DlgFormMethod	: "Метод",
+
+// Select Field Dialog
+DlgSelectName		: "Имя",
+DlgSelectValue		: "Значение",
+DlgSelectSize		: "Размер",
+DlgSelectLines		: "линии",
+DlgSelectChkMulti	: "Разрешить множественный выбор",
+DlgSelectOpAvail	: "Доступные варианты",
+DlgSelectOpText		: "Текст",
+DlgSelectOpValue	: "Значение",
+DlgSelectBtnAdd		: "Добавить",
+DlgSelectBtnModify	: "Модифицировать",
+DlgSelectBtnUp		: "Вверх",
+DlgSelectBtnDown	: "Вниз",
+DlgSelectBtnSetValue : "Установить как выбранное значение",
+DlgSelectBtnDelete	: "Удалить",
+
+// Textarea Dialog
+DlgTextareaName	: "Имя",
+DlgTextareaCols	: "Колонки",
+DlgTextareaRows	: "Строки",
+
+// Text Field Dialog
+DlgTextName			: "Имя",
+DlgTextValue		: "Значение",
+DlgTextCharWidth	: "Ширина",
+DlgTextMaxChars		: "Макс. кол-во символов",
+DlgTextType			: "Тип",
+DlgTextTypeText		: "Текст",
+DlgTextTypePass		: "Пароль",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Имя",
+DlgHiddenValue	: "Значение",
+
+// Bulleted List Dialog
+BulletedListProp	: "Свойства маркированного списка",
+NumberedListProp	: "Свойства нумерованного списка",
+DlgLstStart			: "Начало",
+DlgLstType			: "Тип",
+DlgLstTypeCircle	: "Круг",
+DlgLstTypeDisc		: "Диск",
+DlgLstTypeSquare	: "Квадрат",
+DlgLstTypeNumbers	: "Номера (1, 2, 3)",
+DlgLstTypeLCase		: "Буквы нижнего регистра (a, b, c)",
+DlgLstTypeUCase		: "Буквы верхнего регистра (A, B, C)",
+DlgLstTypeSRoman	: "Малые римские буквы (i, ii, iii)",
+DlgLstTypeLRoman	: "Большие римские буквы (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Общие",
+DlgDocBackTab		: "Задний фон",
+DlgDocColorsTab		: "Цвета и отступы",
+DlgDocMetaTab		: "Мета данные",
+
+DlgDocPageTitle		: "Заголовок страницы",
+DlgDocLangDir		: "Направление текста",
+DlgDocLangDirLTR	: "Слева на право (LTR)",
+DlgDocLangDirRTL	: "Справа на лево (RTL)",
+DlgDocLangCode		: "Код языка",
+DlgDocCharSet		: "Кодировка набора символов",
+DlgDocCharSetCE		: "Центрально-европейская",
+DlgDocCharSetCT		: "Китайская традиционная (Big5)",
+DlgDocCharSetCR		: "Кириллица",
+DlgDocCharSetGR		: "Греческая",
+DlgDocCharSetJP		: "Японская",
+DlgDocCharSetKR		: "Корейская",
+DlgDocCharSetTR		: "Турецкая",
+DlgDocCharSetUN		: "Юникод (UTF-8)",
+DlgDocCharSetWE		: "Западно-европейская",
+DlgDocCharSetOther	: "Другая кодировка набора символов",
+
+DlgDocDocType		: "Заголовок типа документа",
+DlgDocDocTypeOther	: "Другой заголовок типа документа",
+DlgDocIncXHTML		: "Включить XHTML объявления",
+DlgDocBgColor		: "Цвет фона",
+DlgDocBgImage		: "URL изображения фона",
+DlgDocBgNoScroll	: "Нескроллируемый фон",
+DlgDocCText			: "Текст",
+DlgDocCLink			: "Ссылка",
+DlgDocCVisited		: "Посещенная ссылка",
+DlgDocCActive		: "Активная ссылка",
+DlgDocMargins		: "Отступы страницы",
+DlgDocMaTop			: "Верхний",
+DlgDocMaLeft		: "Левый",
+DlgDocMaRight		: "Правый",
+DlgDocMaBottom		: "Нижний",
+DlgDocMeIndex		: "Ключевые слова документа (разделенные запятой)",
+DlgDocMeDescr		: "Описание документа",
+DlgDocMeAuthor		: "Автор",
+DlgDocMeCopy		: "Авторские права",
+DlgDocPreview		: "Предварительный просмотр",
+
+// Templates Dialog
+Templates			: "Шаблоны",
+DlgTemplatesTitle	: "Шаблоны содержимого",
+DlgTemplatesSelMsg	: "Пожалуйста выберете шаблон для открытия в редакторе<br>(текущее содержимое будет потеряно):",
+DlgTemplatesLoading	: "Загрузка списка шаблонов. Пожалуйста подождите...",
+DlgTemplatesNoTpl	: "(Ни одного шаблона не определено)",
+DlgTemplatesReplace	: "Заменить текущее содержание",
+
+// About Dialog
+DlgAboutAboutTab	: "О программе",
+DlgAboutBrowserInfoTab	: "Информация браузера",
+DlgAboutLicenseTab	: "Лицензия",
+DlgAboutVersion		: "Версия",
+DlgAboutLicense		: "Лицензировано в соответствии с условиями GNU Lesser General Public License",
+DlgAboutInfo		: "Для большей информации, посетите"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/nb.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/nb.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/nb.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: nb.js
+ * 	Norwegian Bokmål language file.
+ * 
+ * File Authors:
+ * 		Martin Kronstad (www.siteman.no) (martin.kronstad@gmail.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Skjul verktøylinje",
+ToolbarExpand		: "Vis verktøylinje",
+
+// Toolbar Items and Context Menu
+Save				: "Lagre",
+NewPage				: "Ny Side",
+Preview				: "Forhåndsvis",
+Cut					: "Klipp ut",
+Copy				: "Kopier",
+Paste				: "Lim inn",
+PasteText			: "Lim inn som ren tekst",
+PasteWord			: "Lim inn fra Word",
+Print				: "Skriv ut",
+SelectAll			: "Velg alle",
+RemoveFormat		: "Fjern format",
+InsertLinkLbl		: "Lenke",
+InsertLink			: "Sett inn/Rediger lenke",
+RemoveLink			: "Fjern lenke",
+Anchor				: "Sett inn/Rediger anker",
+InsertImageLbl		: "Bilde",
+InsertImage			: "Sett inn/Rediger bilde",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Sett inn/Rediger Flash",
+InsertTableLbl		: "Tabell",
+InsertTable			: "Sett inn/Rediger tabell",
+InsertLineLbl		: "Linje",
+InsertLine			: "Sett inn horisontal linje",
+InsertSpecialCharLbl: "Spesielt tegn",
+InsertSpecialChar	: "Sett inn spesielt tegn",
+InsertSmileyLbl		: "Smil",
+InsertSmiley		: "Sett inn smil",
+About				: "Om FCKeditor",
+Bold				: "Fet",
+Italic				: "Kursiv",
+Underline			: "Understrek",
+StrikeThrough		: "Gjennomstrek",
+Subscript			: "Senket skrift",
+Superscript			: "Hevet skrift",
+LeftJustify			: "Venstrejuster",
+CenterJustify		: "Midtjuster",
+RightJustify		: "Høyrejuster",
+BlockJustify		: "Blokkjuster",
+DecreaseIndent		: "Senk nivå",
+IncreaseIndent		: "Øk nivå",
+Undo				: "Angre",
+Redo				: "Gjør om",
+NumberedListLbl		: "Numrert liste",
+NumberedList		: "Sett inn/Fjern numrert liste",
+BulletedListLbl		: "Uordnet liste",
+BulletedList		: "Sett inn/Fjern uordnet liste",
+ShowTableBorders	: "Vis tabellrammer",
+ShowDetails			: "Vis detaljer",
+Style				: "Stil",
+FontFormat			: "Format",
+Font				: "Skrift",
+FontSize			: "Størrelse",
+TextColor			: "Tekstfarge",
+BGColor				: "Bakgrunnsfarge",
+Source				: "Kilde",
+Find				: "Finn",
+Replace				: "Erstatt",
+SpellCheck			: "Stavekontroll",
+UniversalKeyboard	: "Universelt tastatur",
+PageBreakLbl		: "Sideskift",
+PageBreak			: "Sett inn sideskift",
+
+Form			: "Skjema",
+Checkbox		: "Sjekkboks",
+RadioButton		: "Radioknapp",
+TextField		: "Tekstfelt",
+Textarea		: "Tekstområde",
+HiddenField		: "Skjult felt",
+Button			: "Knapp",
+SelectionField	: "Dropdown meny",
+ImageButton		: "Bildeknapp",
+
+FitWindow		: "Maksimer størrelsen på redigeringsverktøyet",
+
+// Context Menu
+EditLink			: "Rediger lenke",
+CellCM				: "Celle",
+RowCM				: "Rader",
+ColumnCM			: "Kolonne",
+InsertRow			: "Sett inn rad",
+DeleteRows			: "Slett rader",
+InsertColumn		: "Sett inn kolonne",
+DeleteColumns		: "Slett kolonner",
+InsertCell			: "Sett inn celle",
+DeleteCells			: "Slett celler",
+MergeCells			: "Slå sammen celler",
+SplitCell			: "Splitt celler",
+TableDelete			: "Slett tabell",
+CellProperties		: "Celleegenskaper",
+TableProperties		: "Tabellegenskaper",
+ImageProperties		: "Bildeegenskaper",
+FlashProperties		: "Flash Egenskaper",
+
+AnchorProp			: "Ankeregenskaper",
+ButtonProp			: "Knappegenskaper",
+CheckboxProp		: "Sjekkboksegenskaper",
+HiddenFieldProp		: "Skjult felt egenskaper",
+RadioButtonProp		: "Radioknappegenskaper",
+ImageButtonProp		: "Bildeknappegenskaper",
+TextFieldProp		: "Tekstfeltegenskaper",
+SelectionFieldProp	: "Dropdown menyegenskaper",
+TextareaProp		: "Tekstfeltegenskaper",
+FormProp			: "Skjemaegenskaper",
+
+FontFormats			: "Normal;Formatert;Adresse;Tittel 1;Tittel 2;Tittel 3;Tittel 4;Tittel 5;Tittel 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Lager XHTML. Vennligst vent...",
+Done				: "Ferdig",
+PasteWordConfirm	: "Teksten du prøver å lime inn ser ut som om den kommer fra word , du bør rense den før du limer inn , vil du gjøre dette?",
+NotCompatiblePaste	: "Denne kommandoen er tilgjenglig kun for Internet Explorer version 5.5 eller bedre. Vil du fortsette uten å rense?(Du kan lime inn som ren tekst)",
+UnknownToolbarItem	: "Ukjent menyvalg \"%1\"",
+UnknownCommand		: "Ukjent kommando \"%1\"",
+NotImplemented		: "Kommando ikke ennå implimentert",
+UnknownToolbarSet	: "Verktøylinjesett \"%1\" finnes ikke",
+NoActiveX			: "Din nettleser's sikkerhetsinstillinger kan begrense noen av funksjonene i redigeringsverktøyet. Du må aktivere \"Kjør ActiveXkontroller og plugins\". Du kan oppleve feil og advarsler om manglende funksjoner",
+BrowseServerBlocked : "Kunne ikke åpne dialogboksen for filarkiv. Pass på at du har slått av popupstoppere.",
+DialogBlocked		: "Kunne ikke åpne dialogboksen. Pass på at du har slått av popupstoppere.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Avbryt",
+DlgBtnClose			: "Lukk",
+DlgBtnBrowseServer	: "Bla igjennom server",
+DlgAdvancedTag		: "Avansert",
+DlgOpOther			: "<Annet>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Vennligst skriv inn URL'en",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<ikke satt>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Språkretning",
+DlgGenLangDirLtr	: "Venstre til høyre (VTH)",
+DlgGenLangDirRtl	: "Høyre til venstre (HTV)",
+DlgGenLangCode		: "Språk kode",
+DlgGenAccessKey		: "Aksessknapp",
+DlgGenName			: "Navn",
+DlgGenTabIndex		: "Tab Indeks",
+DlgGenLongDescr		: "Utvidet beskrivelse",
+DlgGenClass			: "Stilarkklasser",
+DlgGenTitle			: "Tittel",
+DlgGenContType		: "Type",
+DlgGenLinkCharset	: "Lenket språkkart",
+DlgGenStyle			: "Stil",
+
+// Image Dialog
+DlgImgTitle			: "Bildeegenskaper",
+DlgImgInfoTab		: "Bildeinformasjon",
+DlgImgBtnUpload		: "Send det til serveren",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Last opp",
+DlgImgAlt			: "Alternativ tekst",
+DlgImgWidth			: "Bredde",
+DlgImgHeight		: "Høyde",
+DlgImgLockRatio		: "Lås forhold",
+DlgBtnResetSize		: "Tilbakestill størrelse",
+DlgImgBorder		: "Ramme",
+DlgImgHSpace		: "HMarg",
+DlgImgVSpace		: "VMarg",
+DlgImgAlign			: "Juster",
+DlgImgAlignLeft		: "Venstre",
+DlgImgAlignAbsBottom: "Abs bunn",
+DlgImgAlignAbsMiddle: "Abs midten",
+DlgImgAlignBaseline	: "Bunnlinje",
+DlgImgAlignBottom	: "Bunn",
+DlgImgAlignMiddle	: "Midten",
+DlgImgAlignRight	: "Høyre",
+DlgImgAlignTextTop	: "Tekst topp",
+DlgImgAlignTop		: "Topp",
+DlgImgPreview		: "Forhåndsvis",
+DlgImgAlertUrl		: "Vennligst skriv bildeurlen",
+DlgImgLinkTab		: "Lenke",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Egenskaper",
+DlgFlashChkPlay		: "Auto Spill",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "Slå på Flash meny",
+DlgFlashScale		: "Skaler",
+DlgFlashScaleAll	: "Vis alt",
+DlgFlashScaleNoBorder	: "Ingen ramme",
+DlgFlashScaleFit	: "Skaler til å passeExact Fit",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Lenke",
+DlgLnkInfoTab		: "Lenkeinfo",
+DlgLnkTargetTab		: "Mål",
+
+DlgLnkType			: "Lenketype",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Bokmerk denne siden",
+DlgLnkTypeEMail		: "E-Post",
+DlgLnkProto			: "Protokoll",
+DlgLnkProtoOther	: "<annet>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Velg ett anker",
+DlgLnkAnchorByName	: "Anker etter navn",
+DlgLnkAnchorById	: "Element etter ID",
+DlgLnkNoAnchors		: "<Ingen anker i dokumentet>",
+DlgLnkEMail			: "E-Post Addresse",
+DlgLnkEMailSubject	: "Meldingsemne",
+DlgLnkEMailBody		: "Melding",
+DlgLnkUpload		: "Last opp",
+DlgLnkBtnUpload		: "Send til server",
+
+DlgLnkTarget		: "Mål",
+DlgLnkTargetFrame	: "<ramme>",
+DlgLnkTargetPopup	: "<popup vindu>",
+DlgLnkTargetBlank	: "Nytt vindu (_blank)",
+DlgLnkTargetParent	: "Foreldre vindu (_parent)",
+DlgLnkTargetSelf	: "Samme vindu (_self)",
+DlgLnkTargetTop		: "Hele vindu (_top)",
+DlgLnkTargetFrameName	: "Målramme",
+DlgLnkPopWinName	: "Popup vindus navn",
+DlgLnkPopWinFeat	: "Popup vindus egenskaper",
+DlgLnkPopResize		: "Endre størrelse",
+DlgLnkPopLocation	: "Adresselinje",
+DlgLnkPopMenu		: "Menylinje",
+DlgLnkPopScroll		: "Scrollbar",
+DlgLnkPopStatus		: "Statuslinje",
+DlgLnkPopToolbar	: "Verktøylinje",
+DlgLnkPopFullScrn	: "Full skjerm (IE)",
+DlgLnkPopDependent	: "Avhenging (Netscape)",
+DlgLnkPopWidth		: "Bredde",
+DlgLnkPopHeight		: "Høyde",
+DlgLnkPopLeft		: "Venstre posisjon",
+DlgLnkPopTop		: "Topp posisjon",
+
+DlnLnkMsgNoUrl		: "Vennligst skriv inn lenkens url",
+DlnLnkMsgNoEMail	: "Vennligst skriv inn e-postadressen",
+DlnLnkMsgNoAnchor	: "Vennligst velg ett anker",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Velg farge",
+DlgColorBtnClear	: "Tøm",
+DlgColorHighlight	: "Marker",
+DlgColorSelected	: "Velg",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Sett inn smil",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Velg spesielt tegn",
+
+// Table Dialog
+DlgTableTitle		: "Tabellegenskaper",
+DlgTableRows		: "Rader",
+DlgTableColumns		: "Kolonner",
+DlgTableBorder		: "Rammestørrelse",
+DlgTableAlign		: "Justering",
+DlgTableAlignNotSet	: "<Ikke satt>",
+DlgTableAlignLeft	: "Venstre",
+DlgTableAlignCenter	: "Midtjuster",
+DlgTableAlignRight	: "Høyre",
+DlgTableWidth		: "Bredde",
+DlgTableWidthPx		: "pixler",
+DlgTableWidthPc		: "prosent",
+DlgTableHeight		: "Høyde",
+DlgTableCellSpace	: "Celle marg",
+DlgTableCellPad		: "Celle polstring",
+DlgTableCaption		: "Tittel",
+DlgTableSummary		: "Sammendrag",
+
+// Table Cell Dialog
+DlgCellTitle		: "Celle egenskaper",
+DlgCellWidth		: "Bredde",
+DlgCellWidthPx		: "pixeler",
+DlgCellWidthPc		: "prosent",
+DlgCellHeight		: "Høyde",
+DlgCellWordWrap		: "Tekstbrytning",
+DlgCellWordWrapNotSet	: "<Ikke satt>",
+DlgCellWordWrapYes	: "Ja",
+DlgCellWordWrapNo	: "Nei",
+DlgCellHorAlign		: "Horisontal justering",
+DlgCellHorAlignNotSet	: "<Ikke satt>",
+DlgCellHorAlignLeft	: "Venstre",
+DlgCellHorAlignCenter	: "Midtjuster",
+DlgCellHorAlignRight: "Høyre",
+DlgCellVerAlign		: "Vertikal justering",
+DlgCellVerAlignNotSet	: "<Ikke satt>",
+DlgCellVerAlignTop	: "Topp",
+DlgCellVerAlignMiddle	: "Midten",
+DlgCellVerAlignBottom	: "Bunn",
+DlgCellVerAlignBaseline	: "Bunnlinje",
+DlgCellRowSpan		: "Radspenn",
+DlgCellCollSpan		: "Kolonnespenn",
+DlgCellBackColor	: "Bakgrunnsfarge",
+DlgCellBorderColor	: "Rammefarge",
+DlgCellBtnSelect	: "Velg...",
+
+// Find Dialog
+DlgFindTitle		: "Finn",
+DlgFindFindBtn		: "Finn",
+DlgFindNotFoundMsg	: "Den spesifiserte teksten ble ikke funnet.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Erstatt",
+DlgReplaceFindLbl		: "Finn hva:",
+DlgReplaceReplaceLbl	: "Erstatt med:",
+DlgReplaceCaseChk		: "Riktig case",
+DlgReplaceReplaceBtn	: "Erstatt",
+DlgReplaceReplAllBtn	: "Erstatt alle",
+DlgReplaceWordChk		: "Finn hele ordet",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk innliming av tekst. Vennligst brukt snareveien (Ctrl+V).",
+PasteErrorCut	: "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst brukt snareveien (Ctrl+X).",
+PasteErrorCopy	: "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst brukt snareveien (Ctrl+C).",
+
+PasteAsText		: "Lim inn som ren tekst",
+PasteFromWord	: "Lim inn fra word",
+
+DlgPasteMsg2	: "Vennligst lim inn i den følgende boksen med tastaturet (<STRONG>Ctrl+V</STRONG>) og trykk <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignorer fonter",
+DlgPasteRemoveStyles	: "Fjern stildefinisjoner",
+DlgPasteCleanBox		: "Tøm boksen",
+
+// Color Picker
+ColorAutomatic	: "Automatisk",
+ColorMoreColors	: "Flere farger...",
+
+// Document Properties
+DocProps		: "Dokumentegenskaper",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ankeregenskaper",
+DlgAnchorName		: "Ankernavn",
+DlgAnchorErrorName	: "Vennligst skriv inn ankernavnet",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Ikke i ordboken",
+DlgSpellChangeTo		: "Endre til",
+DlgSpellBtnIgnore		: "Ignorer",
+DlgSpellBtnIgnoreAll	: "Ignorer alle",
+DlgSpellBtnReplace		: "Erstatt",
+DlgSpellBtnReplaceAll	: "Erstatt alle",
+DlgSpellBtnUndo			: "Angre",
+DlgSpellNoSuggestions	: "- ingen forslag -",
+DlgSpellProgress		: "Stavekontroll pågår...",
+DlgSpellNoMispell		: "Stavekontroll fullført: ingen feilstavinger funnet",
+DlgSpellNoChanges		: "Stavekontroll fullført: ingen ord endret",
+DlgSpellOneChange		: "Stavekontroll fullført: Ett ord endret",
+DlgSpellManyChanges		: "Stavekontroll fullført: %1 ord endret",
+
+IeSpellDownload			: "Stavekontroll ikke installert, vil du laste den ned nå?",
+
+// Button Dialog
+DlgButtonText		: "Tekst",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Navn",
+DlgCheckboxValue	: "Verdi",
+DlgCheckboxSelected	: "Valgt",
+
+// Form Dialog
+DlgFormName		: "Navn",
+DlgFormAction	: "Handling",
+DlgFormMethod	: "Metode",
+
+// Select Field Dialog
+DlgSelectName		: "Navn",
+DlgSelectValue		: "Verdi",
+DlgSelectSize		: "Størrelse",
+DlgSelectLines		: "Linjer",
+DlgSelectChkMulti	: "Tillat flervalg",
+DlgSelectOpAvail	: "Tilgjenglige alternativer",
+DlgSelectOpText		: "Tekst",
+DlgSelectOpValue	: "Verdi",
+DlgSelectBtnAdd		: "Legg til",
+DlgSelectBtnModify	: "Endre",
+DlgSelectBtnUp		: "Opp",
+DlgSelectBtnDown	: "Ned",
+DlgSelectBtnSetValue : "Sett som valgt",
+DlgSelectBtnDelete	: "Slett",
+
+// Textarea Dialog
+DlgTextareaName	: "Navn",
+DlgTextareaCols	: "Kolonner",
+DlgTextareaRows	: "Rader",
+
+// Text Field Dialog
+DlgTextName			: "Navn",
+DlgTextValue		: "verdi",
+DlgTextCharWidth	: "Tegnbredde",
+DlgTextMaxChars		: "Maks antall tegn",
+DlgTextType			: "Type",
+DlgTextTypeText		: "Tekst",
+DlgTextTypePass		: "Passord",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Navn",
+DlgHiddenValue	: "Verdi",
+
+// Bulleted List Dialog
+BulletedListProp	: "Uordnet listeegenskaper",
+NumberedListProp	: "Ordnet listeegenskaper",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Type",
+DlgLstTypeCircle	: "Sirkel",
+DlgLstTypeDisc		: "Hel sirkel",
+DlgLstTypeSquare	: "Firkant",
+DlgLstTypeNumbers	: "Numre(1, 2, 3)",
+DlgLstTypeLCase		: "Små bokstaver (a, b, c)",
+DlgLstTypeUCase		: "Store bokstaver(A, B, C)",
+DlgLstTypeSRoman	: "Små romerske tall(i, ii, iii)",
+DlgLstTypeLRoman	: "Store romerske tall(I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Generalt",
+DlgDocBackTab		: "Bakgrunn",
+DlgDocColorsTab		: "Farger og marginer",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Sidetittel",
+DlgDocLangDir		: "Språkretning",
+DlgDocLangDirLTR	: "Venstre til høyre (LTR)",
+DlgDocLangDirRTL	: "Høyre til venstre (RTL)",
+DlgDocLangCode		: "Språkkode",
+DlgDocCharSet		: "Tegnsett",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Annet tegnsett",
+
+DlgDocDocType		: "Dokumenttype header",
+DlgDocDocTypeOther	: "Annet dokumenttype header",
+DlgDocIncXHTML		: "Inkulder XHTML deklarasjon",
+DlgDocBgColor		: "Bakgrunnsfarge",
+DlgDocBgImage		: "Bakgrunnsbilde url",
+DlgDocBgNoScroll	: "Ikke scroll bakgrunnsbilde",
+DlgDocCText			: "Tekst",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Besøkt lenke",
+DlgDocCActive		: "Aktiv lenke",
+DlgDocMargins		: "Sidemargin",
+DlgDocMaTop			: "Topp",
+DlgDocMaLeft		: "Venstre",
+DlgDocMaRight		: "Høyre",
+DlgDocMaBottom		: "Bunn",
+DlgDocMeIndex		: "Dokument nøkkelord (kommaseparert)",
+DlgDocMeDescr		: "Dokumentbeskrivelse",
+DlgDocMeAuthor		: "Forfatter",
+DlgDocMeCopy		: "Kopirett",
+DlgDocPreview		: "Forhåndsvising",
+
+// Templates Dialog
+Templates			: "Maler",
+DlgTemplatesTitle	: "Innholdsmaler",
+DlgTemplatesSelMsg	: "Velg malen du vil åpne<br>(innholdet du har skrevet blir tapt!):",
+DlgTemplatesLoading	: "Laster malliste. Vennligst vent...",
+DlgTemplatesNoTpl	: "(Ingen maler definert)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Om",
+DlgAboutBrowserInfoTab	: "Nettleserinfo",
+DlgAboutLicenseTab	: "Lisens",
+DlgAboutVersion		: "versjon",
+DlgAboutLicense		: "Lisensiert under GNU Lesser General Public License",
+DlgAboutInfo		: "Oversatt av Siteman AS<br /><a target=\"_blank\" href=\"http://www.siteman.no\">www.siteman.no</a><br /><br />For mer informasjon gå til"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/bn.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/bn.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/bn.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: bn.js
+ * 	Bengali/Bangla language file.
+ * 
+ * File Authors:
+ * 		Richard Walledge (darkdoctrine@hotmail.com)
+ * 		S M Mahbub Murshed (udvranto@yahoo.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "টূলবার গুটিয়ে দাও",
+ToolbarExpand		: "টূলবার ছড়িয়ে দাও",
+
+// Toolbar Items and Context Menu
+Save				: "সংরক্ষন কর",
+NewPage				: "নতুন পেজ",
+Preview				: "প্রিভিউ",
+Cut					: "কাট",
+Copy				: "কপি",
+Paste				: "পেস্ট",
+PasteText			: "পেস্ট (সাদা টেক্সট)",
+PasteWord			: "পেস্ট (শব্দ)",
+Print				: "প্রিন্ট",
+SelectAll			: "সব সিলেক্ট কর",
+RemoveFormat		: "ফরমেট সরাও",
+InsertLinkLbl		: "লিংকের যুক্ত করার লেবেল",
+InsertLink			: "লিংক যুক্ত কর",
+RemoveLink			: "লিংক সরাও",
+Anchor				: "নোঙ্গর",
+InsertImageLbl		: "ছবির লেবেল যুক্ত কর",
+InsertImage			: "ছবি যুক্ত কর",
+InsertFlashLbl		: "ফ্লাশ লেবেল যুক্ত কর",
+InsertFlash			: "ফ্লাশ যুক্ত কর",
+InsertTableLbl		: "টেবিলের লেবেল যুক্ত কর",
+InsertTable			: "টেবিল যুক্ত কর",
+InsertLineLbl		: "রেখা যুক্ত কর",
+InsertLine			: "রেখা যুক্ত কর",
+InsertSpecialCharLbl: "বিশেষ অক্ষরের লেবেল যুক্ত কর",
+InsertSpecialChar	: "বিশেষ অক্ষর যুক্ত কর",
+InsertSmileyLbl		: "স্মাইলী",
+InsertSmiley		: "স্মাইলী যুক্ত কর",
+About				: "FCKeditor কে বানিয়েছে",
+Bold				: "বোল্ড",
+Italic				: "ইটালিক",
+Underline			: "আন্ডারলাইন",
+StrikeThrough		: "স্ট্রাইক থ্রু",
+Subscript			: "অধোলেখ",
+Superscript			: "অভিলেখ",
+LeftJustify			: "বা দিকে ঘেঁষা",
+CenterJustify		: "মাঝ বরাবর ঘেষা",
+RightJustify		: "ডান দিকে ঘেঁষা",
+BlockJustify		: "ব্লক জাস্টিফাই",
+DecreaseIndent		: "ইনডেন্ট কমাও",
+IncreaseIndent		: "ইনডেন্ট বাড়াও",
+Undo				: "আনডু",
+Redo				: "রি-ডু",
+NumberedListLbl		: "সাংখ্যিক লিস্টের লেবেল",
+NumberedList		: "সাংখ্যিক লিস্ট",
+BulletedListLbl		: "বুলেট লিস্ট লেবেল",
+BulletedList		: "বুলেটেড লিস্ট",
+ShowTableBorders	: "টেবিল বর্ডার",
+ShowDetails			: "সবটুকু দেখাও",
+Style				: "স্টাইল",
+FontFormat			: "ফন্ট ফরমেট",
+Font				: "ফন্ট",
+FontSize			: "সাইজ",
+TextColor			: "টেক্স্ট রং",
+BGColor				: "বেকগ্রাউন্ড রং",
+Source				: "সোর্স",
+Find				: "খোজো",
+Replace				: "রিপ্লেস",
+SpellCheck			: "বানান চেক",
+UniversalKeyboard	: "সার্বজনীন কিবোর্ড",
+PageBreakLbl		: "পেজ ব্রেক লেবেল",
+PageBreak			: "পেজ ব্রেক",
+
+Form			: "ফর্ম",
+Checkbox		: "চেক বাক্স",
+RadioButton		: "রেডিও বাটন",
+TextField		: "টেক্সট ফীল্ড",
+Textarea		: "টেক্সট এরিয়া",
+HiddenField		: "গুপ্ত ফীল্ড",
+Button			: "বাটন",
+SelectionField	: "বাছাই ফীল্ড",
+ImageButton		: "ছবির বাটন",
+
+FitWindow		: "উইন্ডো ফিট কর",
+
+// Context Menu
+EditLink			: "লিংক সম্পাদন",
+CellCM				: "সেল",
+RowCM				: "রো",
+ColumnCM			: "কলাম",
+InsertRow			: "রো যুক্ত কর",
+DeleteRows			: "রো মুছে দাও",
+InsertColumn		: "কলাম যুক্ত কর",
+DeleteColumns		: "কলাম মুছে দাও",
+InsertCell			: "সেল যুক্ত কর",
+DeleteCells			: "সেল মুছে দাও",
+MergeCells			: "সেল জোড়া দাও",
+SplitCell			: "সেল আলাদা কর",
+TableDelete			: "টেবিল ডিলীট কর",
+CellProperties		: "সেলের প্রোপার্টিজ",
+TableProperties		: "টেবিল প্রোপার্টি",
+ImageProperties		: "ছবি প্রোপার্টি",
+FlashProperties		: "ফ্লাশ প্রোপার্টি",
+
+AnchorProp			: "নোঙর প্রোপার্টি",
+ButtonProp			: "বাটন প্রোপার্টি",
+CheckboxProp		: "চেক বক্স প্রোপার্টি",
+HiddenFieldProp		: "গুপ্ত ফীল্ড প্রোপার্টি",
+RadioButtonProp		: "রেডিও বাটন প্রোপার্টি",
+ImageButtonProp		: "ছবি বাটন প্রোপার্টি",
+TextFieldProp		: "টেক্সট ফীল্ড প্রোপার্টি",
+SelectionFieldProp	: "বাছাই ফীল্ড প্রোপার্টি",
+TextareaProp		: "টেক্সট এরিয়া প্রোপার্টি",
+FormProp			: "ফর্ম প্রোপার্টি",
+
+FontFormats			: "সাধারণ;ফর্মেটেড;ঠিকানা;শীর্ষক ১;শীর্ষক ২;শীর্ষক ৩;শীর্ষক ৪;শীর্ষক ৫;শীর্ষক ৬;শীর্ষক (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML প্রসেস করা হচ্ছে",
+Done				: "শেষ হয়েছে",
+PasteWordConfirm	: "যে টেকস্টটি আপনি পেস্ট করতে চাচ্ছেন মনে হচ্ছে সেটি ওয়ার্ড থেকে কপি করা। আপনি কি পেস্ট করার আগে একে পরিষ্কার করতে চান?",
+NotCompatiblePaste	: "এই কমান্ডটি শুধুমাত্র ইন্টারনেট এক্সপ্লোরার ৫.০ বা তার পরের ভার্সনে পাওয়া সম্ভব। আপনি কি পরিষ্কার না করেই পেস্ট করতে চান?",
+UnknownToolbarItem	: "অজানা টুলবার আইটেম \"%1\"",
+UnknownCommand		: "অজানা কমান্ড \"%1\"",
+NotImplemented		: "কমান্ড ইমপ্লিমেন্ট করা হয়নি",
+UnknownToolbarSet	: "টুলবার সেট \"%1\" এর অস্তিত্ব নেই",
+NoActiveX			: "আপনার ব্রাউজারের সুরক্ষা সেটিংস কারনে এডিটরের কিছু ফিচার পাওয়া নাও যেতে পারে। আপনাকে অবশ্যই \"Run ActiveX controls and plug-ins\" এনাবেল করে নিতে হবে। আপনি ভুলভ্রান্তি কিছু কিছু ফিচারের অনুপস্থিতি উপলব্ধি করতে পারেন।",
+BrowseServerBlocked : "রিসোর্স ব্রাউজার খোলা গেল না। নিশ্চিত করুন যে সব পপআপ ব্লকার বন্ধ করা আছে।",
+DialogBlocked		: "ডায়ালগ ইউন্ডো খোলা গেল না। নিশ্চিত করুন যে সব পপআপ ব্লকার বন্ধ করা আছে।",
+
+// Dialogs
+DlgBtnOK			: "ওকে",
+DlgBtnCancel		: "বাতিল",
+DlgBtnClose			: "বন্ধ কর",
+DlgBtnBrowseServer	: "ব্রাউজ সার্ভার",
+DlgAdvancedTag		: "এডভান্সড",
+DlgOpOther			: "<অন্য>",
+DlgInfoTab			: "তথ্য",
+DlgAlertUrl			: "দয়া করে URL যুক্ত করুন",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<সেট নেই>",
+DlgGenId			: "আইডি",
+DlgGenLangDir		: "ভাষা লেখার দিক",
+DlgGenLangDirLtr	: "বাম থেকে ডান (LTR)",
+DlgGenLangDirRtl	: "ডান থেকে বাম (RTL)",
+DlgGenLangCode		: "ভাষা কোড",
+DlgGenAccessKey		: "এক্সেস কী",
+DlgGenName			: "নাম",
+DlgGenTabIndex		: "ট্যাব ইন্ডেক্স",
+DlgGenLongDescr		: "URL এর লম্বা বর্ণনা",
+DlgGenClass			: "স্টাইল-শীট ক্লাস",
+DlgGenTitle			: "পরামর্শ শীর্ষক",
+DlgGenContType		: "পরামর্শ কন্টেন্টের প্রকার",
+DlgGenLinkCharset	: "লিংক রিসোর্স ক্যারেক্টর সেট",
+DlgGenStyle			: "স্টাইল",
+
+// Image Dialog
+DlgImgTitle			: "ছবির প্রোপার্টি",
+DlgImgInfoTab		: "ছবির তথ্য",
+DlgImgBtnUpload		: "ইহাকে সার্ভারে প্রেরন কর",
+DlgImgURL			: "URL",
+DlgImgUpload		: "আপলোড",
+DlgImgAlt			: "বিকল্প টেক্সট",
+DlgImgWidth			: "প্রস্থ",
+DlgImgHeight		: "দৈর্ঘ্য",
+DlgImgLockRatio		: "অনুপাত লক কর",
+DlgBtnResetSize		: "সাইজ পূর্বাবস্থায় ফিরিয়ে দাও",
+DlgImgBorder		: "বর্ডার",
+DlgImgHSpace		: "হরাইজন্টাল স্পেস",
+DlgImgVSpace		: "ভার্টিকেল স্পেস",
+DlgImgAlign			: "এলাইন",
+DlgImgAlignLeft		: "বামে",
+DlgImgAlignAbsBottom: "Abs নীচে",
+DlgImgAlignAbsMiddle: "Abs উপর",
+DlgImgAlignBaseline	: "মূল রেখা",
+DlgImgAlignBottom	: "নীচে",
+DlgImgAlignMiddle	: "মধ্য",
+DlgImgAlignRight	: "ডানে",
+DlgImgAlignTextTop	: "টেক্সট উপর",
+DlgImgAlignTop		: "উপর",
+DlgImgPreview		: "প্রীভিউ",
+DlgImgAlertUrl		: "অনুগ্রহক করে ছবির URL টাইপ করুন",
+DlgImgLinkTab		: "লিংক",
+
+// Flash Dialog
+DlgFlashTitle		: "ফ্ল্যাশ প্রোপার্টি",
+DlgFlashChkPlay		: "অটো প্লে",
+DlgFlashChkLoop		: "লূপ",
+DlgFlashChkMenu		: "ফ্ল্যাশ মেনু এনাবল কর",
+DlgFlashScale		: "স্কেল",
+DlgFlashScaleAll	: "সব দেখাও",
+DlgFlashScaleNoBorder	: "কোনো বর্ডার নেই",
+DlgFlashScaleFit	: "নিখুঁত ফিট",
+
+// Link Dialog
+DlgLnkWindowTitle	: "লিংক",
+DlgLnkInfoTab		: "লিংক তথ্য",
+DlgLnkTargetTab		: "টার্গেট",
+
+DlgLnkType			: "লিংক প্রকার",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "এই পেজে নোঙর কর",
+DlgLnkTypeEMail		: "ইমেইল",
+DlgLnkProto			: "প্রোটোকল",
+DlgLnkProtoOther	: "<অন্য>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "নোঙর বাছাই",
+DlgLnkAnchorByName	: "নোঙরের নাম দিয়ে",
+DlgLnkAnchorById	: "নোঙরের আইডি দিয়ে",
+DlgLnkNoAnchors		: "<ডকুমেন্টে আর কোন নোঙর নেই>",
+DlgLnkEMail			: "ইমেইল ঠিকানা",
+DlgLnkEMailSubject	: "মেসেজের বিষয়",
+DlgLnkEMailBody		: "মেসেজের দেহ",
+DlgLnkUpload		: "আপলোড",
+DlgLnkBtnUpload		: "একে সার্ভারে পাঠাও",
+
+DlgLnkTarget		: "টার্গেট",
+DlgLnkTargetFrame	: "<ফ্রেম>",
+DlgLnkTargetPopup	: "<পপআপ উইন্ডো>",
+DlgLnkTargetBlank	: "নতুন উইন্ডো (_blank)",
+DlgLnkTargetParent	: "মূল উইন্ডো (_parent)",
+DlgLnkTargetSelf	: "এই উইন্ডো (_self)",
+DlgLnkTargetTop		: "শীর্ষ উইন্ডো (_top)",
+DlgLnkTargetFrameName	: "টার্গেট ফ্রেমের নাম",
+DlgLnkPopWinName	: "পপআপ উইন্ডোর নাম",
+DlgLnkPopWinFeat	: "পপআপ উইন্ডো ফীচার সমূহ",
+DlgLnkPopResize		: "রিসাইজ করা সম্ভব",
+DlgLnkPopLocation	: "লোকেশন বার",
+DlgLnkPopMenu		: "মেন্যু বার",
+DlgLnkPopScroll		: "স্ক্রল বার",
+DlgLnkPopStatus		: "স্ট্যাটাস বার",
+DlgLnkPopToolbar	: "টুল বার",
+DlgLnkPopFullScrn	: "পূর্ণ পর্দা জুড়ে (IE)",
+DlgLnkPopDependent	: "ডিপেন্ডেন্ট (Netscape)",
+DlgLnkPopWidth		: "প্রস্থ",
+DlgLnkPopHeight		: "দৈর্ঘ্য",
+DlgLnkPopLeft		: "বামের পজিশন",
+DlgLnkPopTop		: "ডানের পজিশন",
+
+DlnLnkMsgNoUrl		: "অনুগ্রহ করে URL লিংক টাইপ করুন",
+DlnLnkMsgNoEMail	: "অনুগ্রহ করে ইমেইল এড্রেস টাইপ করুন",
+DlnLnkMsgNoAnchor	: "অনুগ্রহ করে নোঙর বাছাই করুন",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "রং বাছাই কর",
+DlgColorBtnClear	: "পরিষ্কার কর",
+DlgColorHighlight	: "হাইলাইট",
+DlgColorSelected	: "সিলেক্টেড",
+
+// Smiley Dialog
+DlgSmileyTitle		: "স্মাইলী যুক্ত কর",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "বিশেষ ক্যারেক্টার বাছাই কর",
+
+// Table Dialog
+DlgTableTitle		: "টেবিল প্রোপার্টি",
+DlgTableRows		: "রো",
+DlgTableColumns		: "কলাম",
+DlgTableBorder		: "বর্ডার সাইজ",
+DlgTableAlign		: "এলাইনমেন্ট",
+DlgTableAlignNotSet	: "<সেট নেই>",
+DlgTableAlignLeft	: "বামে",
+DlgTableAlignCenter	: "মাঝখানে",
+DlgTableAlignRight	: "ডানে",
+DlgTableWidth		: "প্রস্থ",
+DlgTableWidthPx		: "পিক্সেল",
+DlgTableWidthPc		: "শতকরা",
+DlgTableHeight		: "দৈর্ঘ্য",
+DlgTableCellSpace	: "সেল স্পেস",
+DlgTableCellPad		: "সেল প্যাডিং",
+DlgTableCaption		: "শীর্ষক",
+DlgTableSummary		: "সারাংশ",
+
+// Table Cell Dialog
+DlgCellTitle		: "সেল প্রোপার্টি",
+DlgCellWidth		: "প্রস্থ",
+DlgCellWidthPx		: "পিক্সেল",
+DlgCellWidthPc		: "শতকরা",
+DlgCellHeight		: "দৈর্ঘ্য",
+DlgCellWordWrap		: "ওয়ার্ড রেপ",
+DlgCellWordWrapNotSet	: "<সেট নেই>",
+DlgCellWordWrapYes	: "হাঁ",
+DlgCellWordWrapNo	: "না",
+DlgCellHorAlign		: "হরাইজন্টাল এলাইনমেন্ট",
+DlgCellHorAlignNotSet	: "<সেট নেই>",
+DlgCellHorAlignLeft	: "বামে",
+DlgCellHorAlignCenter	: "মাঝখানে",
+DlgCellHorAlignRight: "ডানে",
+DlgCellVerAlign		: "ভার্টিক্যাল এলাইনমেন্ট",
+DlgCellVerAlignNotSet	: "<সেট নেই>",
+DlgCellVerAlignTop	: "উপর",
+DlgCellVerAlignMiddle	: "মধ্য",
+DlgCellVerAlignBottom	: "নীচে",
+DlgCellVerAlignBaseline	: "মূলরেখা",
+DlgCellRowSpan		: "রো স্প্যান",
+DlgCellCollSpan		: "কলাম স্প্যান",
+DlgCellBackColor	: "ব্যাকগ্রাউন্ড রং",
+DlgCellBorderColor	: "বর্ডারের রং",
+DlgCellBtnSelect	: "বাছাই কর",
+
+// Find Dialog
+DlgFindTitle		: "খোঁজো",
+DlgFindFindBtn		: "খোঁজো",
+DlgFindNotFoundMsg	: "আপনার উল্লেখিত টেকস্ট পাওয়া যায়নি",
+
+// Replace Dialog
+DlgReplaceTitle			: "বদলে দাও",
+DlgReplaceFindLbl		: "যা খুঁজতে হবে:",
+DlgReplaceReplaceLbl	: "যার সাথে বদলাতে হবে:",
+DlgReplaceCaseChk		: "কেস মিলাও",
+DlgReplaceReplaceBtn	: "বদলে দাও",
+DlgReplaceReplAllBtn	: "সব বদলে দাও",
+DlgReplaceWordChk		: "পুরা শব্দ মেলাও",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক পেস্ট করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl+V)।",
+PasteErrorCut	: "আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কাট করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl+X)।",
+PasteErrorCopy	: "আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কপি করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl+C)।",
+
+PasteAsText		: "সাদা টেক্সট হিসেবে পেস্ট কর",
+PasteFromWord	: "ওয়ার্ড থেকে পেস্ট কর",
+
+DlgPasteMsg2	: "অনুগ্রহ করে নীচের বাক্সে কিবোর্ড ব্যবহার করে (<STRONG>Ctrl+V</STRONG>) পেস্ট করুন এবং <STRONG>OK</STRONG> চাপ দিন",
+DlgPasteIgnoreFont		: "ফন্ট ফেস ডেফিনেশন ইগনোর করুন",
+DlgPasteRemoveStyles	: "স্টাইল ডেফিনেশন সরিয়ে দিন",
+DlgPasteCleanBox		: "বাক্স পরিষ্কার করুন",
+
+// Color Picker
+ColorAutomatic	: "অটোমেটিক",
+ColorMoreColors	: "আরও রং...",
+
+// Document Properties
+DocProps		: "ডক্যুমেন্ট প্রোপার্টি",
+
+// Anchor Dialog
+DlgAnchorTitle		: "নোঙরের প্রোপার্টি",
+DlgAnchorName		: "নোঙরের নাম",
+DlgAnchorErrorName	: "নোঙরের নাম টাইপ করুন",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "শব্দকোষে নেই",
+DlgSpellChangeTo		: "এতে বদলাও",
+DlgSpellBtnIgnore		: "ইগনোর কর",
+DlgSpellBtnIgnoreAll	: "সব ইগনোর কর",
+DlgSpellBtnReplace		: "বদলে দাও",
+DlgSpellBtnReplaceAll	: "সব বদলে দাও",
+DlgSpellBtnUndo			: "আন্ডু",
+DlgSpellNoSuggestions	: "- কোন সাজেশন নেই -",
+DlgSpellProgress		: "বানান পরীক্ষা চলছে...",
+DlgSpellNoMispell		: "বানান পরীক্ষা শেষ: কোন ভুল বানান পাওয়া যায়নি",
+DlgSpellNoChanges		: "বানান পরীক্ষা শেষ: কোন শব্দ পরিবর্তন করা হয়নি",
+DlgSpellOneChange		: "বানান পরীক্ষা শেষ: একটি মাত্র শব্দ পরিবর্তন করা হয়েছে",
+DlgSpellManyChanges		: "বানান পরীক্ষা শেষ: %1 গুলো শব্দ বদলে গ্যাছে",
+
+IeSpellDownload			: "বানান পরীক্ষক ইনস্টল করা নেই। আপনি কি এখনই এটা ডাউনলোড করতে চান?",
+
+// Button Dialog
+DlgButtonText		: "টেক্সট (ভ্যালু)",
+DlgButtonType		: "প্রকার",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "নাম",
+DlgCheckboxValue	: "ভ্যালু",
+DlgCheckboxSelected	: "সিলেক্টেড",
+
+// Form Dialog
+DlgFormName		: "নাম",
+DlgFormAction	: "একশ্যন",
+DlgFormMethod	: "পদ্ধতি",
+
+// Select Field Dialog
+DlgSelectName		: "নাম",
+DlgSelectValue		: "ভ্যালু",
+DlgSelectSize		: "সাইজ",
+DlgSelectLines		: "লাইন সমূহ",
+DlgSelectChkMulti	: "একাধিক সিলেকশন এলাউ কর",
+DlgSelectOpAvail	: "অন্যান্য বিকল্প",
+DlgSelectOpText		: "টেক্সট",
+DlgSelectOpValue	: "ভ্যালু",
+DlgSelectBtnAdd		: "যুক্ত",
+DlgSelectBtnModify	: "বদলে দাও",
+DlgSelectBtnUp		: "উপর",
+DlgSelectBtnDown	: "নীচে",
+DlgSelectBtnSetValue : "বাছাই করা ভ্যালু হিসেবে সেট কর",
+DlgSelectBtnDelete	: "ডিলীট",
+
+// Textarea Dialog
+DlgTextareaName	: "নাম",
+DlgTextareaCols	: "কলাম",
+DlgTextareaRows	: "রো",
+
+// Text Field Dialog
+DlgTextName			: "নাম",
+DlgTextValue		: "ভ্যালু",
+DlgTextCharWidth	: "ক্যারেক্টার প্রশস্ততা",
+DlgTextMaxChars		: "সর্বাধিক ক্যারেক্টার",
+DlgTextType			: "টাইপ",
+DlgTextTypeText		: "টেক্সট",
+DlgTextTypePass		: "পাসওয়ার্ড",
+
+// Hidden Field Dialog
+DlgHiddenName	: "নাম",
+DlgHiddenValue	: "ভ্যালু",
+
+// Bulleted List Dialog
+BulletedListProp	: "বুলেটেড সূচী প্রোপার্টি",
+NumberedListProp	: "সাংখ্যিক সূচী প্রোপার্টি",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "প্রকার",
+DlgLstTypeCircle	: "গোল",
+DlgLstTypeDisc		: "ডিস্ক",
+DlgLstTypeSquare	: "চৌকোণা",
+DlgLstTypeNumbers	: "সংখ্যা (1, 2, 3)",
+DlgLstTypeLCase		: "ছোট অক্ষর (a, b, c)",
+DlgLstTypeUCase		: "বড় অক্ষর (A, B, C)",
+DlgLstTypeSRoman	: "ছোট রোমান সংখ্যা (i, ii, iii)",
+DlgLstTypeLRoman	: "বড় রোমান সংখ্যা (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "সাধারন",
+DlgDocBackTab		: "ব্যাকগ্রাউন্ড",
+DlgDocColorsTab		: "রং এবং মার্জিন",
+DlgDocMetaTab		: "মেটাডেটা",
+
+DlgDocPageTitle		: "পেজ শীর্ষক",
+DlgDocLangDir		: "ভাষা লিখার দিক",
+DlgDocLangDirLTR	: "বাম থেকে ডানে (LTR)",
+DlgDocLangDirRTL	: "ডান থেকে বামে (RTL)",
+DlgDocLangCode		: "ভাষা কোড",
+DlgDocCharSet		: "ক্যারেক্টার সেট এনকোডিং",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "অন্য ক্যারেক্টার সেট এনকোডিং",
+
+DlgDocDocType		: "ডক্যুমেন্ট টাইপ হেডিং",
+DlgDocDocTypeOther	: "অন্য ডক্যুমেন্ট টাইপ হেডিং",
+DlgDocIncXHTML		: "XHTML ডেক্লারেশন যুক্ত কর",
+DlgDocBgColor		: "ব্যাকগ্রাউন্ড রং",
+DlgDocBgImage		: "ব্যাকগ্রাউন্ড ছবির URL",
+DlgDocBgNoScroll	: "স্ক্রলহীন ব্যাকগ্রাউন্ড",
+DlgDocCText			: "টেক্সট",
+DlgDocCLink			: "লিংক",
+DlgDocCVisited		: "ভিজিট করা লিংক",
+DlgDocCActive		: "সক্রিয় লিংক",
+DlgDocMargins		: "পেজ মার্জিন",
+DlgDocMaTop			: "উপর",
+DlgDocMaLeft		: "বামে",
+DlgDocMaRight		: "ডানে",
+DlgDocMaBottom		: "নীচে",
+DlgDocMeIndex		: "ডক্যুমেন্ট ইন্ডেক্স কিওয়ার্ড (কমা দ্বারা বিচ্ছিন্ন)",
+DlgDocMeDescr		: "ডক্যূমেন্ট বর্ণনা",
+DlgDocMeAuthor		: "লেখক",
+DlgDocMeCopy		: "কপীরাইট",
+DlgDocPreview		: "প্রীভিউ",
+
+// Templates Dialog
+Templates			: "টেমপ্লেট",
+DlgTemplatesTitle	: "কনটেন্ট টেমপ্লেট",
+DlgTemplatesSelMsg	: "অনুগ্রহ করে এডিটরে ওপেন করার জন্য টেমপ্লেট বাছাই করুন<br>(আসল কনটেন্ট হারিয়ে যাবে):",
+DlgTemplatesLoading	: "টেমপ্লেট লিস্ট হারিয়ে যাবে। অনুগ্রহ করে অপেক্ষা করুন...",
+DlgTemplatesNoTpl	: "(কোন টেমপ্লেট ডিফাইন করা নেই)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "কে বানিয়েছে",
+DlgAboutBrowserInfoTab	: "ব্রাউজারের ব্যাপারে তথ্য",
+DlgAboutLicenseTab	: "লাইসেন্স",
+DlgAboutVersion		: "ভার্সন",
+DlgAboutLicense		: "লাইসেন্স GNU LGPL এর নীতিমালার অধীনে ",
+DlgAboutInfo		: "আরও তথ্যের জন্য যান"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/el.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/el.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/el.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: el.js
+ * 	Greek language file.
+ * 
+ * File Authors:
+ * 		Vangelis Bibakis (bibakisv[-a-t-]yahoo.com)
+ * 		Spyros Barbatos (sbarbatos{at}users.sourceforge.net)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Απόκρυψη Μπάρας Εργαλείων",
+ToolbarExpand		: "Εμφάνιση Μπάρας Εργαλείων",
+
+// Toolbar Items and Context Menu
+Save				: "Αποθήκευση",
+NewPage				: "Νέα Σελίδα",
+Preview				: "Προεπισκόπιση",
+Cut					: "Αποκοπή",
+Copy				: "Αντιγραφή",
+Paste				: "Επικόλληση",
+PasteText			: "Επικόλληση (απλό κείμενο)",
+PasteWord			: "Επικόλληση από το Word",
+Print				: "Εκτύπωση",
+SelectAll			: "Επιλογή όλων",
+RemoveFormat		: "Αφαίρεση Μορφοποίησης",
+InsertLinkLbl		: "Σύνδεσμος (Link)",
+InsertLink			: "Εισαγωγή/Μεταβολή Συνδέσμου (Link)",
+RemoveLink			: "Αφαίρεση Συνδέσμου (Link)",
+Anchor				: "Εισαγωγή/επεξεργασία Anchor",
+InsertImageLbl		: "Εικόνα",
+InsertImage			: "Εισαγωγή/Μεταβολή Εικόνας",
+InsertFlashLbl		: "Εισαγωγή Flash",
+InsertFlash			: "Εισαγωγή/επεξεργασία Flash",
+InsertTableLbl		: "Πίνακας",
+InsertTable			: "Εισαγωγή/Μεταβολή Πίνακα",
+InsertLineLbl		: "Γραμμή",
+InsertLine			: "Εισαγωγή Οριζόντιας Γραμμής",
+InsertSpecialCharLbl: "Ειδικό Σύμβολο",
+InsertSpecialChar	: "Εισαγωγή Ειδικού Συμβόλου",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Εισαγωγή Smiley",
+About				: "Περί του FCKeditor",
+Bold				: "Έντονα",
+Italic				: "Πλάγια",
+Underline			: "Υπογράμμιση",
+StrikeThrough		: "Διαγράμμιση",
+Subscript			: "Δείκτης",
+Superscript			: "Εκθέτης",
+LeftJustify			: "Στοίχιση Αριστερά",
+CenterJustify		: "Στοίχιση στο Κέντρο",
+RightJustify		: "Στοίχιση Δεξιά",
+BlockJustify		: "Πλήρης Στοίχιση (Block)",
+DecreaseIndent		: "Μείωση Εσοχής",
+IncreaseIndent		: "Αύξηση Εσοχής",
+Undo				: "Αναίρεση",
+Redo				: "Επαναφορά",
+NumberedListLbl		: "Λίστα με Αριθμούς",
+NumberedList		: "Εισαγωγή/Διαγραφή Λίστας με Αριθμούς",
+BulletedListLbl		: "Λίστα με Bullets",
+BulletedList		: "Εισαγωγή/Διαγραφή Λίστας με Bullets",
+ShowTableBorders	: "Προβολή Ορίων Πίνακα",
+ShowDetails			: "Προβολή Λεπτομερειών",
+Style				: "Στυλ",
+FontFormat			: "Μορφή Γραμματοσειράς",
+Font				: "Γραμματοσειρά",
+FontSize			: "Μέγεθος",
+TextColor			: "Χρώμα Γραμμάτων",
+BGColor				: "Χρώμα Υποβάθρου",
+Source				: "HTML κώδικας",
+Find				: "Αναζήτηση",
+Replace				: "Αντικατάσταση",
+SpellCheck			: "Ορθογραφικός έλεγχος",
+UniversalKeyboard	: "Διεθνής πληκτρολόγιο",
+PageBreakLbl		: "Τέλος σελίδας",
+PageBreak			: "Εισαγωγή τέλους σελίδας",
+
+Form			: "Φόρμα",
+Checkbox		: "Κουτί επιλογής",
+RadioButton		: "Κουμπί Radio",
+TextField		: "Πεδίο κειμένου",
+Textarea		: "Περιοχή κειμένου",
+HiddenField		: "Κρυφό πεδίο",
+Button			: "Κουμπί",
+SelectionField	: "Πεδίο επιλογής",
+ImageButton		: "Κουμπί εικόνας",
+
+FitWindow		: "Μεγιστοποίηση προγράμματος",
+
+// Context Menu
+EditLink			: "Μεταβολή Συνδέσμου (Link)",
+CellCM				: "Κελί",
+RowCM				: "Σειρά",
+ColumnCM			: "Στήλη",
+InsertRow			: "Εισαγωγή Γραμμής",
+DeleteRows			: "Διαγραφή Γραμμών",
+InsertColumn		: "Εισαγωγή Κολώνας",
+DeleteColumns		: "Διαγραφή Κολωνών",
+InsertCell			: "Εισαγωγή Κελιού",
+DeleteCells			: "Διαγραφή Κελιών",
+MergeCells			: "Ενοποίηση Κελιών",
+SplitCell			: "Διαχωρισμός Κελιού",
+TableDelete			: "Διαγραφή πίνακα",
+CellProperties		: "Ιδιότητες Κελιού",
+TableProperties		: "Ιδιότητες Πίνακα",
+ImageProperties		: "Ιδιότητες Εικόνας",
+FlashProperties		: "Ιδιότητες Flash",
+
+AnchorProp			: "Ιδιότητες άγκυρας",
+ButtonProp			: "Ιδιότητες κουμπιού",
+CheckboxProp		: "Ιδιότητες κουμπιού επιλογής",
+HiddenFieldProp		: "Ιδιότητες κρυφού πεδίου",
+RadioButtonProp		: "Ιδιότητες κουμπιού radio",
+ImageButtonProp		: "Ιδιότητες κουμπιού εικόνας",
+TextFieldProp		: "Ιδιότητες πεδίου κειμένου",
+SelectionFieldProp	: "Ιδιότητες πεδίου επιλογής",
+TextareaProp		: "Ιδιότητες περιοχής κειμένου",
+FormProp			: "Ιδιότητες φόρμας",
+
+FontFormats			: "Κανονικό;Μορφοποιημένο;Διεύθυνση;Επικεφαλίδα 1;Επικεφαλίδα 2;Επικεφαλίδα 3;Επικεφαλίδα 4;Επικεφαλίδα 5;Επικεφαλίδα 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Επεξεργασία XHTML. Παρακαλώ περιμένετε...",
+Done				: "Έτοιμο",
+PasteWordConfirm	: "Το κείμενο που θέλετε να επικολήσετε, φαίνεται πως προέρχεται από το Word. Θέλετε να καθαριστεί πριν επικοληθεί;",
+NotCompatiblePaste	: "Αυτή η επιλογή είναι διαθέσιμη στον Internet Explorer έκδοση 5.5+. Θέλετε να γίνει η επικόλληση χωρίς καθαρισμό;",
+UnknownToolbarItem	: "Άγνωστο αντικείμενο της μπάρας εργαλείων \"%1\"",
+UnknownCommand		: "Άγνωστή εντολή \"%1\"",
+NotImplemented		: "Η εντολή δεν έχει ενεργοποιηθεί",
+UnknownToolbarSet	: "Η μπάρα εργαλείων \"%1\" δεν υπάρχει",
+NoActiveX			: "Οι ρυθμίσεις ασφαλείας του browser σας μπορεί να περιορίσουν κάποιες ρυθμίσεις του προγράμματος. Χρειάζεται να ενεργοποιήσετε την επιλογή \"Run ActiveX controls and plug-ins\". Ίσως παρουσιαστούν λάθη και παρατηρήσετε ελειπείς λειτουργίες.",
+BrowseServerBlocked : "Οι πόροι του browser σας δεν είναι προσπελάσιμοι. Σιγουρευτείτε ότι δεν υπάρχουν ενεργοί popup blockers.",
+DialogBlocked		: "Δεν ήταν δυνατό να ανοίξει το παράθυρο διαλόγου. Σιγουρευτείτε ότι δεν υπάρχουν ενεργοί popup blockers.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Ακύρωση",
+DlgBtnClose			: "Κλείσιμο",
+DlgBtnBrowseServer	: "Εξερεύνηση διακομιστή",
+DlgAdvancedTag		: "Για προχωρημένους",
+DlgOpOther			: "<Άλλα>",
+DlgInfoTab			: "Πληροφορίες",
+DlgAlertUrl			: "Παρακαλώ εισάγετε URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<χωρίς>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Κατεύθυνση κειμένου",
+DlgGenLangDirLtr	: "Αριστερά προς Δεξιά (LTR)",
+DlgGenLangDirRtl	: "Δεξιά προς Αριστερά (RTL)",
+DlgGenLangCode		: "Κωδικός Γλώσσας",
+DlgGenAccessKey		: "Συντόμευση (Access Key)",
+DlgGenName			: "Όνομα",
+DlgGenTabIndex		: "Tab Index",
+DlgGenLongDescr		: "Αναλυτική περιγραφή URL",
+DlgGenClass			: "Stylesheet Classes",
+DlgGenTitle			: "Συμβουλευτικός τίτλος",
+DlgGenContType		: "Συμβουλευτικός τίτλος περιεχομένου",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Στύλ",
+
+// Image Dialog
+DlgImgTitle			: "Ιδιότητες Εικόνας",
+DlgImgInfoTab		: "Πληροφορίες Εικόνας",
+DlgImgBtnUpload		: "Αποστολή στον Διακομιστή",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Αποστολή",
+DlgImgAlt			: "Εναλλακτικό Κείμενο (ALT)",
+DlgImgWidth			: "Πλάτος",
+DlgImgHeight		: "Ύψος",
+DlgImgLockRatio		: "Κλείδωμα Αναλογίας",
+DlgBtnResetSize		: "Επαναφορά Αρχικού Μεγέθους",
+DlgImgBorder		: "Περιθώριο",
+DlgImgHSpace		: "Οριζόντιος Χώρος (HSpace)",
+DlgImgVSpace		: "Κάθετος Χώρος (VSpace)",
+DlgImgAlign			: "Ευθυγράμμιση (Align)",
+DlgImgAlignLeft		: "Αριστερά",
+DlgImgAlignAbsBottom: "Απόλυτα Κάτω (Abs Bottom)",
+DlgImgAlignAbsMiddle: "Απόλυτα στη Μέση (Abs Middle)",
+DlgImgAlignBaseline	: "Γραμμή Βάσης (Baseline)",
+DlgImgAlignBottom	: "Κάτω (Bottom)",
+DlgImgAlignMiddle	: "Μέση (Middle)",
+DlgImgAlignRight	: "Δεξιά (Right)",
+DlgImgAlignTextTop	: "Κορυφή Κειμένου (Text Top)",
+DlgImgAlignTop		: "Πάνω (Top)",
+DlgImgPreview		: "Προεπισκόπιση",
+DlgImgAlertUrl		: "Εισάγετε την τοποθεσία (URL) της εικόνας",
+DlgImgLinkTab		: "Σύνδεσμος",
+
+// Flash Dialog
+DlgFlashTitle		: "Ιδιότητες flash",
+DlgFlashChkPlay		: "Αυτόματη έναρξη",
+DlgFlashChkLoop		: "Επανάληψη",
+DlgFlashChkMenu		: "Ενεργοποίηση Flash Menu",
+DlgFlashScale		: "Κλίμακα",
+DlgFlashScaleAll	: "Εμφάνιση όλων",
+DlgFlashScaleNoBorder	: "Χωρίς όρια",
+DlgFlashScaleFit	: "Ακριβής εφαρμογή",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Σύνδεσμος (Link)",
+DlgLnkInfoTab		: "Link",
+DlgLnkTargetTab		: "Παράθυρο Στόχος (Target)",
+
+DlgLnkType			: "Τύπος συνδέσμου (Link)",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Άγκυρα σε αυτή τη σελίδα",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Προτόκολο",
+DlgLnkProtoOther	: "<άλλο>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Επιλέξτε μια άγκυρα",
+DlgLnkAnchorByName	: "Βάσει του Ονόματος (Name) της άγκυρας",
+DlgLnkAnchorById	: "Βάσει του Element Id",
+DlgLnkNoAnchors		: "<Δεν υπάρχουν άγκυρες στο κείμενο>",
+DlgLnkEMail			: "Διεύθυνση Ηλεκτρονικού Ταχυδρομείου",
+DlgLnkEMailSubject	: "Θέμα Μηνύματος",
+DlgLnkEMailBody		: "Κείμενο Μηνύματος",
+DlgLnkUpload		: "Αποστολή",
+DlgLnkBtnUpload		: "Αποστολή στον Διακομιστή",
+
+DlgLnkTarget		: "Παράθυρο Στόχος (Target)",
+DlgLnkTargetFrame	: "<πλαίσιο>",
+DlgLnkTargetPopup	: "<παράθυρο popup>",
+DlgLnkTargetBlank	: "Νέο Παράθυρο (_blank)",
+DlgLnkTargetParent	: "Γονικό Παράθυρο (_parent)",
+DlgLnkTargetSelf	: "Ίδιο Παράθυρο (_self)",
+DlgLnkTargetTop		: "Ανώτατο Παράθυρο (_top)",
+DlgLnkTargetFrameName	: "Όνομα πλαισίου στόχου",
+DlgLnkPopWinName	: "Όνομα Popup Window",
+DlgLnkPopWinFeat	: "Επιλογές Popup Window",
+DlgLnkPopResize		: "Με αλλαγή Μεγέθους",
+DlgLnkPopLocation	: "Μπάρα Τοποθεσίας",
+DlgLnkPopMenu		: "Μπάρα Menu",
+DlgLnkPopScroll		: "Μπάρες Κύλισης",
+DlgLnkPopStatus		: "Μπάρα Status",
+DlgLnkPopToolbar	: "Μπάρα Εργαλείων",
+DlgLnkPopFullScrn	: "Ολόκληρη η Οθόνη (IE)",
+DlgLnkPopDependent	: "Dependent (Netscape)",
+DlgLnkPopWidth		: "Πλάτος",
+DlgLnkPopHeight		: "Ύψος",
+DlgLnkPopLeft		: "Τοποθεσία Αριστερής Άκρης",
+DlgLnkPopTop		: "Τοποθεσία Πάνω Άκρης",
+
+DlnLnkMsgNoUrl		: "Εισάγετε την τοποθεσία (URL) του υπερσυνδέσμου (Link)",
+DlnLnkMsgNoEMail	: "Εισάγετε την διεύθυνση ηλεκτρονικού ταχυδρομείου",
+DlnLnkMsgNoAnchor	: "Επιλέξτε ένα Anchor",
+DlnLnkMsgInvPopName	: "Το όνομα του popup πρέπει να αρχίζει με χαρακτήρα της αλφαβήτου και να μην περιέχει κενά",
+
+// Color Dialog
+DlgColorTitle		: "Επιλογή χρώματος",
+DlgColorBtnClear	: "Καθαρισμός",
+DlgColorHighlight	: "Προεπισκόπιση",
+DlgColorSelected	: "Επιλεγμένο",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Επιλέξτε ένα Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Επιλέξτε ένα Ειδικό Σύμβολο",
+
+// Table Dialog
+DlgTableTitle		: "Ιδιότητες Πίνακα",
+DlgTableRows		: "Γραμμές",
+DlgTableColumns		: "Κολώνες",
+DlgTableBorder		: "Μέγεθος Περιθωρίου",
+DlgTableAlign		: "Στοίχιση",
+DlgTableAlignNotSet	: "<χωρίς>",
+DlgTableAlignLeft	: "Αριστερά",
+DlgTableAlignCenter	: "Κέντρο",
+DlgTableAlignRight	: "Δεξιά",
+DlgTableWidth		: "Πλάτος",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "\%",
+DlgTableHeight		: "Ύψος",
+DlgTableCellSpace	: "Απόσταση κελιών",
+DlgTableCellPad		: "Γέμισμα κελιών",
+DlgTableCaption		: "Υπέρτιτλος",
+DlgTableSummary		: "Περίληψη",
+
+// Table Cell Dialog
+DlgCellTitle		: "Ιδιότητες Κελιού",
+DlgCellWidth		: "Πλάτος",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "\%",
+DlgCellHeight		: "Ύψος",
+DlgCellWordWrap		: "Με αλλαγή γραμμής",
+DlgCellWordWrapNotSet	: "<χωρίς>",
+DlgCellWordWrapYes	: "Ναι",
+DlgCellWordWrapNo	: "Όχι",
+DlgCellHorAlign		: "Οριζόντια Στοίχιση",
+DlgCellHorAlignNotSet	: "<χωρίς>",
+DlgCellHorAlignLeft	: "Αριστερά",
+DlgCellHorAlignCenter	: "Κέντρο",
+DlgCellHorAlignRight: "Δεξιά",
+DlgCellVerAlign		: "Κάθετη Στοίχιση",
+DlgCellVerAlignNotSet	: "<χωρίς>",
+DlgCellVerAlignTop	: "Πάνω (Top)",
+DlgCellVerAlignMiddle	: "Μέση (Middle)",
+DlgCellVerAlignBottom	: "Κάτω (Bottom)",
+DlgCellVerAlignBaseline	: "Γραμμή Βάσης (Baseline)",
+DlgCellRowSpan		: "Αριθμός Γραμμών (Rows Span)",
+DlgCellCollSpan		: "Αριθμός Κολωνών (Columns Span)",
+DlgCellBackColor	: "Χρώμα Υποβάθρου",
+DlgCellBorderColor	: "Χρώμα Περιθωρίου",
+DlgCellBtnSelect	: "Επιλογή...",
+
+// Find Dialog
+DlgFindTitle		: "Αναζήτηση",
+DlgFindFindBtn		: "Αναζήτηση",
+DlgFindNotFoundMsg	: "Το κείμενο δεν βρέθηκε.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Αντικατάσταση",
+DlgReplaceFindLbl		: "Αναζήτηση:",
+DlgReplaceReplaceLbl	: "Αντικατάσταση με:",
+DlgReplaceCaseChk		: "Έλεγχος πεζών/κεφαλαίων",
+DlgReplaceReplaceBtn	: "Αντικατάσταση",
+DlgReplaceReplAllBtn	: "Αντικατάσταση Όλων",
+DlgReplaceWordChk		: "Εύρεση πλήρους λέξης",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Οι ρυθμίσεις ασφαλείας του φυλλομετρητή σας δεν επιτρέπουν την επιλεγμένη εργασία επικόλλησης. Χρησιμοποιείστε το πληκτρολόγιο (Ctrl+V).",
+PasteErrorCut	: "Οι ρυθμίσεις ασφαλείας του φυλλομετρητή σας δεν επιτρέπουν την επιλεγμένη εργασία αποκοπής. Χρησιμοποιείστε το πληκτρολόγιο (Ctrl+X).",
+PasteErrorCopy	: "Οι ρυθμίσεις ασφαλείας του φυλλομετρητή σας δεν επιτρέπουν την επιλεγμένη εργασία αντιγραφής. Χρησιμοποιείστε το πληκτρολόγιο (Ctrl+C).",
+
+PasteAsText		: "Επικόλληση ως Απλό Κείμενο",
+PasteFromWord	: "Επικόλληση από το Word",
+
+DlgPasteMsg2	: "Παρακαλώ επικολήστε στο ακόλουθο κουτί χρησιμοποιόντας το πληκτρολόγιο (<STRONG>Ctrl+V</STRONG>) και πατήστε <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Αγνόηση προδιαγραφών γραμματοσειράς",
+DlgPasteRemoveStyles	: "Αφαίρεση προδιαγραφών στύλ",
+DlgPasteCleanBox		: "Κουτί εκαθάρισης",
+
+// Color Picker
+ColorAutomatic	: "Αυτόματο",
+ColorMoreColors	: "Περισσότερα χρώματα...",
+
+// Document Properties
+DocProps		: "Ιδιότητες εγγράφου",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ιδιότητες άγκυρας",
+DlgAnchorName		: "Όνομα άγκυρας",
+DlgAnchorErrorName	: "Παρακαλούμε εισάγετε όνομα άγκυρας",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Δεν υπάρχει στο λεξικό",
+DlgSpellChangeTo		: "Αλλαγή σε",
+DlgSpellBtnIgnore		: "Αγνόηση",
+DlgSpellBtnIgnoreAll	: "Αγνόηση όλων",
+DlgSpellBtnReplace		: "Αντικατάσταση",
+DlgSpellBtnReplaceAll	: "Αντικατάσταση όλων",
+DlgSpellBtnUndo			: "Αναίρεση",
+DlgSpellNoSuggestions	: "- Δεν υπάρχουν προτάσεις -",
+DlgSpellProgress		: "Ορθογραφικός έλεγχος σε εξέλιξη...",
+DlgSpellNoMispell		: "Ο ορθογραφικός έλεγχος ολοκληρώθηκε: Δεν βρέθηκαν λάθη",
+DlgSpellNoChanges		: "Ο ορθογραφικός έλεγχος ολοκληρώθηκε: Δεν άλλαξαν λέξεις",
+DlgSpellOneChange		: "Ο ορθογραφικός έλεγχος ολοκληρώθηκε: Μια λέξη άλλαξε",
+DlgSpellManyChanges		: "Ο ορθογραφικός έλεγχος ολοκληρώθηκε: %1 λέξεις άλλαξαν",
+
+IeSpellDownload			: "Δεν υπάρχει εγκατεστημένος ορθογράφος. Θέλετε να τον κατεβάσετε τώρα;",
+
+// Button Dialog
+DlgButtonText		: "Κείμενο (Τιμή)",
+DlgButtonType		: "Τύπος",
+DlgButtonTypeBtn	: "Κουμπί",
+DlgButtonTypeSbm	: "Καταχώρηση",
+DlgButtonTypeRst	: "Επαναφορά",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Όνομα",
+DlgCheckboxValue	: "Τιμή",
+DlgCheckboxSelected	: "Επιλεγμένο",
+
+// Form Dialog
+DlgFormName		: "Όνομα",
+DlgFormAction	: "Δράση",
+DlgFormMethod	: "Μάθοδος",
+
+// Select Field Dialog
+DlgSelectName		: "Όνομα",
+DlgSelectValue		: "Τιμή",
+DlgSelectSize		: "Μέγεθος",
+DlgSelectLines		: "γραμμές",
+DlgSelectChkMulti	: "Πολλαπλές επιλογές",
+DlgSelectOpAvail	: "Διαθέσιμες επιλογές",
+DlgSelectOpText		: "Κείμενο",
+DlgSelectOpValue	: "Τιμή",
+DlgSelectBtnAdd		: "Προσθήκη",
+DlgSelectBtnModify	: "Αλλαγή",
+DlgSelectBtnUp		: "Πάνω",
+DlgSelectBtnDown	: "Κάτω",
+DlgSelectBtnSetValue : "Προεπιλεγμένη επιλογή",
+DlgSelectBtnDelete	: "Διαγραφή",
+
+// Textarea Dialog
+DlgTextareaName	: "Όνομα",
+DlgTextareaCols	: "Στήλες",
+DlgTextareaRows	: "Σειρές",
+
+// Text Field Dialog
+DlgTextName			: "Όνομα",
+DlgTextValue		: "Τιμή",
+DlgTextCharWidth	: "Μήκος χαρακτήρων",
+DlgTextMaxChars		: "Μέγιστοι χαρακτήρες",
+DlgTextType			: "Τύπος",
+DlgTextTypeText		: "Κείμενο",
+DlgTextTypePass		: "Κωδικός",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Όνομα",
+DlgHiddenValue	: "Τιμή",
+
+// Bulleted List Dialog
+BulletedListProp	: "Ιδιότητες λίστας Bulleted",
+NumberedListProp	: "Ιδιότητες αριθμημένης λίστας ",
+DlgLstStart			: "Αρχή",
+DlgLstType			: "Τύπος",
+DlgLstTypeCircle	: "Κύκλος",
+DlgLstTypeDisc		: "Δίσκος",
+DlgLstTypeSquare	: "Τετράγωνο",
+DlgLstTypeNumbers	: "Αριθμοί (1, 2, 3)",
+DlgLstTypeLCase		: "Πεζά γράμματα (a, b, c)",
+DlgLstTypeUCase		: "Κεφαλαία γράμματα (A, B, C)",
+DlgLstTypeSRoman	: "Μικρά λατινικά αριθμητικά (i, ii, iii)",
+DlgLstTypeLRoman	: "Μεγάλα λατινικά αριθμητικά (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Γενικά",
+DlgDocBackTab		: "Φόντο",
+DlgDocColorsTab		: "Χρώματα και περιθώρια",
+DlgDocMetaTab		: "Δεδομένα Meta",
+
+DlgDocPageTitle		: "Τίτλος σελίδας",
+DlgDocLangDir		: "Κατεύθυνση γραφής",
+DlgDocLangDirLTR	: "αριστερά προς δεξιά (LTR)",
+DlgDocLangDirRTL	: "δεξιά προς αριστερά (RTL)",
+DlgDocLangCode		: "Κωδικός γλώσσας",
+DlgDocCharSet		: "Κωδικοποίηση χαρακτήρων",
+DlgDocCharSetCE		: "Κεντρικής Ευρώπης",
+DlgDocCharSetCT		: "Παραδοσιακά κινέζικα (Big5)",
+DlgDocCharSetCR		: "Κυριλλική",
+DlgDocCharSetGR		: "Ελληνική",
+DlgDocCharSetJP		: "Ιαπωνική",
+DlgDocCharSetKR		: "Κορεάτικη",
+DlgDocCharSetTR		: "Τουρκική",
+DlgDocCharSetUN		: "Διεθνής (UTF-8)",
+DlgDocCharSetWE		: "Δυτικής Ευρώπης",
+DlgDocCharSetOther	: "Άλλη κωδικοποίηση χαρακτήρων",
+
+DlgDocDocType		: "Επικεφαλίδα τύπου εγγράφου",
+DlgDocDocTypeOther	: "Άλλη επικεφαλίδα τύπου εγγράφου",
+DlgDocIncXHTML		: "Να συμπεριληφθούν οι δηλώσεις XHTML",
+DlgDocBgColor		: "Χρώμα φόντου",
+DlgDocBgImage		: "Διεύθυνση εικόνας φόντου",
+DlgDocBgNoScroll	: "Φόντο χωρίς κύλιση",
+DlgDocCText			: "Κείμενο",
+DlgDocCLink			: "Σύνδεσμος",
+DlgDocCVisited		: "Σύνδεσμος που έχει επισκευθεί",
+DlgDocCActive		: "Ενεργός σύνδεσμος",
+DlgDocMargins		: "Περιθώρια σελίδας",
+DlgDocMaTop			: "Κορυφή",
+DlgDocMaLeft		: "Αριστερά",
+DlgDocMaRight		: "Δεξιά",
+DlgDocMaBottom		: "Κάτω",
+DlgDocMeIndex		: "Λέξεις κλειδιά δείκτες εγγράφου (διαχωρισμός με κόμμα)",
+DlgDocMeDescr		: "Περιγραφή εγγράφου",
+DlgDocMeAuthor		: "Συγγραφέας",
+DlgDocMeCopy		: "Πνευματικά δικαιώματα",
+DlgDocPreview		: "Προεπισκόπηση",
+
+// Templates Dialog
+Templates			: "Πρότυπα",
+DlgTemplatesTitle	: "Πρότυπα περιεχομένου",
+DlgTemplatesSelMsg	: "Παρακαλώ επιλέξτε πρότυπο για εισαγωγή στο πρόγραμμα<br>(τα υπάρχοντα περιεχόμενα θα χαθούν):",
+DlgTemplatesLoading	: "Φόρτωση καταλόγου προτύπων. Παρακαλώ περιμένετε...",
+DlgTemplatesNoTpl	: "(Δεν έχουν καθοριστεί πρότυπα)",
+DlgTemplatesReplace	: "Αντικατάσταση υπάρχοντων περιεχομένων",
+
+// About Dialog
+DlgAboutAboutTab	: "Σχετικά",
+DlgAboutBrowserInfoTab	: "Πληροφορίες Browser",
+DlgAboutLicenseTab	: "Άδεια",
+DlgAboutVersion		: "έκδοση",
+DlgAboutLicense		: "Άδεια χρήσης υπό τους όρους της GNU Lesser General Public License",
+DlgAboutInfo		: "Για περισσότερες πληροφορίες"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/en.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/en.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/en.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: en.js
+ * 	English language file.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Collapse Toolbar",
+ToolbarExpand		: "Expand Toolbar",
+
+// Toolbar Items and Context Menu
+Save				: "Save",
+NewPage				: "New Page",
+Preview				: "Preview",
+Cut					: "Cut",
+Copy				: "Copy",
+Paste				: "Paste",
+PasteText			: "Paste as plain text",
+PasteWord			: "Paste from Word",
+Print				: "Print",
+SelectAll			: "Select All",
+RemoveFormat		: "Remove Format",
+InsertLinkLbl		: "Link",
+InsertLink			: "Insert/Edit Link",
+RemoveLink			: "Remove Link",
+Anchor				: "Insert/Edit Anchor",
+InsertImageLbl		: "Image",
+InsertImage			: "Insert/Edit Image",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Insert/Edit Flash",
+InsertTableLbl		: "Table",
+InsertTable			: "Insert/Edit Table",
+InsertLineLbl		: "Line",
+InsertLine			: "Insert Horizontal Line",
+InsertSpecialCharLbl: "Special Character",
+InsertSpecialChar	: "Insert Special Character",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Insert Smiley",
+About				: "About FCKeditor",
+Bold				: "Bold",
+Italic				: "Italic",
+Underline			: "Underline",
+StrikeThrough		: "Strike Through",
+Subscript			: "Subscript",
+Superscript			: "Superscript",
+LeftJustify			: "Left Justify",
+CenterJustify		: "Center Justify",
+RightJustify		: "Right Justify",
+BlockJustify		: "Block Justify",
+DecreaseIndent		: "Decrease Indent",
+IncreaseIndent		: "Increase Indent",
+Undo				: "Undo",
+Redo				: "Redo",
+NumberedListLbl		: "Numbered List",
+NumberedList		: "Insert/Remove Numbered List",
+BulletedListLbl		: "Bulleted List",
+BulletedList		: "Insert/Remove Bulleted List",
+ShowTableBorders	: "Show Table Borders",
+ShowDetails			: "Show Details",
+Style				: "Style",
+FontFormat			: "Format",
+Font				: "Font",
+FontSize			: "Size",
+TextColor			: "Text Color",
+BGColor				: "Background Color",
+Source				: "Source",
+Find				: "Find",
+Replace				: "Replace",
+SpellCheck			: "Check Spelling",
+UniversalKeyboard	: "Universal Keyboard",
+PageBreakLbl		: "Page Break",
+PageBreak			: "Insert Page Break",
+
+Form			: "Form",
+Checkbox		: "Checkbox",
+RadioButton		: "Radio Button",
+TextField		: "Text Field",
+Textarea		: "Textarea",
+HiddenField		: "Hidden Field",
+Button			: "Button",
+SelectionField	: "Selection Field",
+ImageButton		: "Image Button",
+
+FitWindow		: "Maximize the editor size",
+
+// Context Menu
+EditLink			: "Edit Link",
+CellCM				: "Cell",
+RowCM				: "Row",
+ColumnCM			: "Column",
+InsertRow			: "Insert Row",
+DeleteRows			: "Delete Rows",
+InsertColumn		: "Insert Column",
+DeleteColumns		: "Delete Columns",
+InsertCell			: "Insert Cell",
+DeleteCells			: "Delete Cells",
+MergeCells			: "Merge Cells",
+SplitCell			: "Split Cell",
+TableDelete			: "Delete Table",
+CellProperties		: "Cell Properties",
+TableProperties		: "Table Properties",
+ImageProperties		: "Image Properties",
+FlashProperties		: "Flash Properties",
+
+AnchorProp			: "Anchor Properties",
+ButtonProp			: "Button Properties",
+CheckboxProp		: "Checkbox Properties",
+HiddenFieldProp		: "Hidden Field Properties",
+RadioButtonProp		: "Radio Button Properties",
+ImageButtonProp		: "Image Button Properties",
+TextFieldProp		: "Text Field Properties",
+SelectionFieldProp	: "Selection Field Properties",
+TextareaProp		: "Textarea Properties",
+FormProp			: "Form Properties",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Processing XHTML. Please wait...",
+Done				: "Done",
+PasteWordConfirm	: "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?",
+NotCompatiblePaste	: "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?",
+UnknownToolbarItem	: "Unknown toolbar item \"%1\"",
+UnknownCommand		: "Unknown command name \"%1\"",
+NotImplemented		: "Command not implemented",
+UnknownToolbarSet	: "Toolbar set \"%1\" doesn't exist",
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Cancel",
+DlgBtnClose			: "Close",
+DlgBtnBrowseServer	: "Browse Server",
+DlgAdvancedTag		: "Advanced",
+DlgOpOther			: "<Other>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Please insert the URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<not set>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Language Direction",
+DlgGenLangDirLtr	: "Left to Right (LTR)",
+DlgGenLangDirRtl	: "Right to Left (RTL)",
+DlgGenLangCode		: "Language Code",
+DlgGenAccessKey		: "Access Key",
+DlgGenName			: "Name",
+DlgGenTabIndex		: "Tab Index",
+DlgGenLongDescr		: "Long Description URL",
+DlgGenClass			: "Stylesheet Classes",
+DlgGenTitle			: "Advisory Title",
+DlgGenContType		: "Advisory Content Type",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Style",
+
+// Image Dialog
+DlgImgTitle			: "Image Properties",
+DlgImgInfoTab		: "Image Info",
+DlgImgBtnUpload		: "Send it to the Server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Upload",
+DlgImgAlt			: "Alternative Text",
+DlgImgWidth			: "Width",
+DlgImgHeight		: "Height",
+DlgImgLockRatio		: "Lock Ratio",
+DlgBtnResetSize		: "Reset Size",
+DlgImgBorder		: "Border",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Align",
+DlgImgAlignLeft		: "Left",
+DlgImgAlignAbsBottom: "Abs Bottom",
+DlgImgAlignAbsMiddle: "Abs Middle",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Bottom",
+DlgImgAlignMiddle	: "Middle",
+DlgImgAlignRight	: "Right",
+DlgImgAlignTextTop	: "Text Top",
+DlgImgAlignTop		: "Top",
+DlgImgPreview		: "Preview",
+DlgImgAlertUrl		: "Please type the image URL",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Properties",
+DlgFlashChkPlay		: "Auto Play",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "Enable Flash Menu",
+DlgFlashScale		: "Scale",
+DlgFlashScaleAll	: "Show all",
+DlgFlashScaleNoBorder	: "No Border",
+DlgFlashScaleFit	: "Exact Fit",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Link Info",
+DlgLnkTargetTab		: "Target",
+
+DlgLnkType			: "Link Type",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Link to anchor in the text",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocol",
+DlgLnkProtoOther	: "<other>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Select an Anchor",
+DlgLnkAnchorByName	: "By Anchor Name",
+DlgLnkAnchorById	: "By Element Id",
+DlgLnkNoAnchors		: "<No anchors available in the document>",
+DlgLnkEMail			: "E-Mail Address",
+DlgLnkEMailSubject	: "Message Subject",
+DlgLnkEMailBody		: "Message Body",
+DlgLnkUpload		: "Upload",
+DlgLnkBtnUpload		: "Send it to the Server",
+
+DlgLnkTarget		: "Target",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<popup window>",
+DlgLnkTargetBlank	: "New Window (_blank)",
+DlgLnkTargetParent	: "Parent Window (_parent)",
+DlgLnkTargetSelf	: "Same Window (_self)",
+DlgLnkTargetTop		: "Topmost Window (_top)",
+DlgLnkTargetFrameName	: "Target Frame Name",
+DlgLnkPopWinName	: "Popup Window Name",
+DlgLnkPopWinFeat	: "Popup Window Features",
+DlgLnkPopResize		: "Resizable",
+DlgLnkPopLocation	: "Location Bar",
+DlgLnkPopMenu		: "Menu Bar",
+DlgLnkPopScroll		: "Scroll Bars",
+DlgLnkPopStatus		: "Status Bar",
+DlgLnkPopToolbar	: "Toolbar",
+DlgLnkPopFullScrn	: "Full Screen (IE)",
+DlgLnkPopDependent	: "Dependent (Netscape)",
+DlgLnkPopWidth		: "Width",
+DlgLnkPopHeight		: "Height",
+DlgLnkPopLeft		: "Left Position",
+DlgLnkPopTop		: "Top Position",
+
+DlnLnkMsgNoUrl		: "Please type the link URL",
+DlnLnkMsgNoEMail	: "Please type the e-mail address",
+DlnLnkMsgNoAnchor	: "Please select an anchor",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",
+
+// Color Dialog
+DlgColorTitle		: "Select Color",
+DlgColorBtnClear	: "Clear",
+DlgColorHighlight	: "Highlight",
+DlgColorSelected	: "Selected",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Insert a Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Select Special Character",
+
+// Table Dialog
+DlgTableTitle		: "Table Properties",
+DlgTableRows		: "Rows",
+DlgTableColumns		: "Columns",
+DlgTableBorder		: "Border size",
+DlgTableAlign		: "Alignment",
+DlgTableAlignNotSet	: "<Not set>",
+DlgTableAlignLeft	: "Left",
+DlgTableAlignCenter	: "Center",
+DlgTableAlignRight	: "Right",
+DlgTableWidth		: "Width",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "percent",
+DlgTableHeight		: "Height",
+DlgTableCellSpace	: "Cell spacing",
+DlgTableCellPad		: "Cell padding",
+DlgTableCaption		: "Caption",
+DlgTableSummary		: "Summary",
+
+// Table Cell Dialog
+DlgCellTitle		: "Cell Properties",
+DlgCellWidth		: "Width",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "percent",
+DlgCellHeight		: "Height",
+DlgCellWordWrap		: "Word Wrap",
+DlgCellWordWrapNotSet	: "<Not set>",
+DlgCellWordWrapYes	: "Yes",
+DlgCellWordWrapNo	: "No",
+DlgCellHorAlign		: "Horizontal Alignment",
+DlgCellHorAlignNotSet	: "<Not set>",
+DlgCellHorAlignLeft	: "Left",
+DlgCellHorAlignCenter	: "Center",
+DlgCellHorAlignRight: "Right",
+DlgCellVerAlign		: "Vertical Alignment",
+DlgCellVerAlignNotSet	: "<Not set>",
+DlgCellVerAlignTop	: "Top",
+DlgCellVerAlignMiddle	: "Middle",
+DlgCellVerAlignBottom	: "Bottom",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellRowSpan		: "Rows Span",
+DlgCellCollSpan		: "Columns Span",
+DlgCellBackColor	: "Background Color",
+DlgCellBorderColor	: "Border Color",
+DlgCellBtnSelect	: "Select...",
+
+// Find Dialog
+DlgFindTitle		: "Find",
+DlgFindFindBtn		: "Find",
+DlgFindNotFoundMsg	: "The specified text was not found.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Replace",
+DlgReplaceFindLbl		: "Find what:",
+DlgReplaceReplaceLbl	: "Replace with:",
+DlgReplaceCaseChk		: "Match case",
+DlgReplaceReplaceBtn	: "Replace",
+DlgReplaceReplAllBtn	: "Replace All",
+DlgReplaceWordChk		: "Match whole word",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Your browser security settings don't permit the editor to automatically execute pasting operations. Please use the keyboard for that (Ctrl+V).",
+PasteErrorCut	: "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",
+PasteErrorCopy	: "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",
+
+PasteAsText		: "Paste as Plain Text",
+PasteFromWord	: "Paste from Word",
+
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignore Font Face definitions",
+DlgPasteRemoveStyles	: "Remove Styles definitions",
+DlgPasteCleanBox		: "Clean Up Box",
+
+// Color Picker
+ColorAutomatic	: "Automatic",
+ColorMoreColors	: "More Colors...",
+
+// Document Properties
+DocProps		: "Document Properties",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Anchor Properties",
+DlgAnchorName		: "Anchor Name",
+DlgAnchorErrorName	: "Please type the anchor name",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Not in dictionary",
+DlgSpellChangeTo		: "Change to",
+DlgSpellBtnIgnore		: "Ignore",
+DlgSpellBtnIgnoreAll	: "Ignore All",
+DlgSpellBtnReplace		: "Replace",
+DlgSpellBtnReplaceAll	: "Replace All",
+DlgSpellBtnUndo			: "Undo",
+DlgSpellNoSuggestions	: "- No suggestions -",
+DlgSpellProgress		: "Spell check in progress...",
+DlgSpellNoMispell		: "Spell check complete: No misspellings found",
+DlgSpellNoChanges		: "Spell check complete: No words changed",
+DlgSpellOneChange		: "Spell check complete: One word changed",
+DlgSpellManyChanges		: "Spell check complete: %1 words changed",
+
+IeSpellDownload			: "Spell checker not installed. Do you want to download it now?",
+
+// Button Dialog
+DlgButtonText		: "Text (Value)",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Button",
+DlgButtonTypeSbm	: "Submit",
+DlgButtonTypeRst	: "Reset",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Name",
+DlgCheckboxValue	: "Value",
+DlgCheckboxSelected	: "Selected",
+
+// Form Dialog
+DlgFormName		: "Name",
+DlgFormAction	: "Action",
+DlgFormMethod	: "Method",
+
+// Select Field Dialog
+DlgSelectName		: "Name",
+DlgSelectValue		: "Value",
+DlgSelectSize		: "Size",
+DlgSelectLines		: "lines",
+DlgSelectChkMulti	: "Allow multiple selections",
+DlgSelectOpAvail	: "Available Options",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Value",
+DlgSelectBtnAdd		: "Add",
+DlgSelectBtnModify	: "Modify",
+DlgSelectBtnUp		: "Up",
+DlgSelectBtnDown	: "Down",
+DlgSelectBtnSetValue : "Set as selected value",
+DlgSelectBtnDelete	: "Delete",
+
+// Textarea Dialog
+DlgTextareaName	: "Name",
+DlgTextareaCols	: "Columns",
+DlgTextareaRows	: "Rows",
+
+// Text Field Dialog
+DlgTextName			: "Name",
+DlgTextValue		: "Value",
+DlgTextCharWidth	: "Character Width",
+DlgTextMaxChars		: "Maximum Characters",
+DlgTextType			: "Type",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "Password",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Name",
+DlgHiddenValue	: "Value",
+
+// Bulleted List Dialog
+BulletedListProp	: "Bulleted List Properties",
+NumberedListProp	: "Numbered List Properties",
+DlgLstStart			: "Start",
+DlgLstType			: "Type",
+DlgLstTypeCircle	: "Circle",
+DlgLstTypeDisc		: "Disc",
+DlgLstTypeSquare	: "Square",
+DlgLstTypeNumbers	: "Numbers (1, 2, 3)",
+DlgLstTypeLCase		: "Lowercase Letters (a, b, c)",
+DlgLstTypeUCase		: "Uppercase Letters (A, B, C)",
+DlgLstTypeSRoman	: "Small Roman Numerals (i, ii, iii)",
+DlgLstTypeLRoman	: "Large Roman Numerals (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "General",
+DlgDocBackTab		: "Background",
+DlgDocColorsTab		: "Colors and Margins",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Page Title",
+DlgDocLangDir		: "Language Direction",
+DlgDocLangDirLTR	: "Left to Right (LTR)",
+DlgDocLangDirRTL	: "Right to Left (RTL)",
+DlgDocLangCode		: "Language Code",
+DlgDocCharSet		: "Character Set Encoding",
+DlgDocCharSetCE		: "Central European",
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Greek",
+DlgDocCharSetJP		: "Japanese",
+DlgDocCharSetKR		: "Korean",
+DlgDocCharSetTR		: "Turkish",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Western European",
+DlgDocCharSetOther	: "Other Character Set Encoding",
+
+DlgDocDocType		: "Document Type Heading",
+DlgDocDocTypeOther	: "Other Document Type Heading",
+DlgDocIncXHTML		: "Include XHTML Declarations",
+DlgDocBgColor		: "Background Color",
+DlgDocBgImage		: "Background Image URL",
+DlgDocBgNoScroll	: "Nonscrolling Background",
+DlgDocCText			: "Text",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Visited Link",
+DlgDocCActive		: "Active Link",
+DlgDocMargins		: "Page Margins",
+DlgDocMaTop			: "Top",
+DlgDocMaLeft		: "Left",
+DlgDocMaRight		: "Right",
+DlgDocMaBottom		: "Bottom",
+DlgDocMeIndex		: "Document Indexing Keywords (comma separated)",
+DlgDocMeDescr		: "Document Description",
+DlgDocMeAuthor		: "Author",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Preview",
+
+// Templates Dialog
+Templates			: "Templates",
+DlgTemplatesTitle	: "Content Templates",
+DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",
+DlgTemplatesLoading	: "Loading templates list. Please wait...",
+DlgTemplatesNoTpl	: "(No templates defined)",
+DlgTemplatesReplace	: "Replace actual contents",
+
+// About Dialog
+DlgAboutAboutTab	: "About",
+DlgAboutBrowserInfoTab	: "Browser Info",
+DlgAboutLicenseTab	: "License",
+DlgAboutVersion		: "version",
+DlgAboutLicense		: "Licensed under the terms of the GNU Lesser General Public License",
+DlgAboutInfo		: "For further information go to"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ar.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ar.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ar.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: ar.js
+ * 	Arabic language file.
+ * 
+ * File Authors:
+ * 		Abdul-Aziz Abdul-Kareem Al-Oraij (http://aziz.oraij.com)
+ * 		Abu Faisal (http://www.24at24.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "rtl",
+
+ToolbarCollapse		: "ضم شريط الأدوات",
+ToolbarExpand		: "تمدد شريط الأدوات",
+
+// Toolbar Items and Context Menu
+Save				: "حفظ",
+NewPage				: "صفحة جديدة",
+Preview				: "معاينة الصفحة",
+Cut					: "قص",
+Copy				: "نسخ",
+Paste				: "لصق",
+PasteText			: "لصق كنص بسيط",
+PasteWord			: "لصق من وورد",
+Print				: "طباعة",
+SelectAll			: "تحديد الكل",
+RemoveFormat		: "إزالة التنسيقات",
+InsertLinkLbl		: "رابط",
+InsertLink			: "إدراج/تحرير رابط",
+RemoveLink			: "إزالة رابط",
+Anchor				: "إدراج/تحرير إشارة مرجعية",
+InsertImageLbl		: "صورة",
+InsertImage			: "إدراج/تحرير صورة",
+InsertFlashLbl		: "فلاش",
+InsertFlash			: "إدراج/تحرير فيلم فلاش",
+InsertTableLbl		: "جدول",
+InsertTable			: "إدراج/تحرير جدول",
+InsertLineLbl		: "خط فاصل",
+InsertLine			: "إدراج خط فاصل",
+InsertSpecialCharLbl: "رموز",
+InsertSpecialChar	: "إدراج  رموز..ِ",
+InsertSmileyLbl		: "ابتسامات",
+InsertSmiley		: "إدراج ابتسامات",
+About				: "حول FCKeditor",
+Bold				: "غامق",
+Italic				: "مائل",
+Underline			: "تسطير",
+StrikeThrough		: "يتوسطه خط",
+Subscript			: "منخفض",
+Superscript			: "مرتفع",
+LeftJustify			: "محاذاة إلى اليسار",
+CenterJustify		: "توسيط",
+RightJustify		: "محاذاة إلى اليمين",
+BlockJustify		: "ضبط",
+DecreaseIndent		: "إنقاص المسافة البادئة",
+IncreaseIndent		: "زيادة المسافة البادئة",
+Undo				: "تراجع",
+Redo				: "إعادة",
+NumberedListLbl		: "تعداد رقمي",
+NumberedList		: "إدراج/إلغاء تعداد رقمي",
+BulletedListLbl		: "تعداد نقطي",
+BulletedList		: "إدراج/إلغاء تعداد نقطي",
+ShowTableBorders	: "معاينة حدود الجداول",
+ShowDetails			: "معاينة التفاصيل",
+Style				: "نمط",
+FontFormat			: "تنسيق",
+Font				: "خط",
+FontSize			: "حجم الخط",
+TextColor			: "لون النص",
+BGColor				: "لون الخلفية",
+Source				: "شفرة المصدر",
+Find				: "بحث",
+Replace				: "إستبدال",
+SpellCheck			: "تدقيق إملائي",
+UniversalKeyboard	: "لوحة المفاتيح العالمية",
+PageBreakLbl		: "فصل الصفحة",
+PageBreak			: "إدخال صفحة جديدة",
+
+Form			: "نموذج",
+Checkbox		: "خانة إختيار",
+RadioButton		: "زر خيار",
+TextField		: "مربع نص",
+Textarea		: "ناحية نص",
+HiddenField		: "إدراج حقل خفي",
+Button			: "زر ضغط",
+SelectionField	: "قائمة منسدلة",
+ImageButton		: "زر صورة",
+
+FitWindow		: "تكبير حجم المحرر",
+
+// Context Menu
+EditLink			: "تحرير رابط",
+CellCM				: "خلية",
+RowCM				: "صف",
+ColumnCM			: "عمود",
+InsertRow			: "إدراج صف",
+DeleteRows			: "حذف صفوف",
+InsertColumn		: "إدراج عمود",
+DeleteColumns		: "حذف أعمدة",
+InsertCell			: "إدراج خلية",
+DeleteCells			: "حذف خلايا",
+MergeCells			: "دمج خلايا",
+SplitCell			: "تقسيم خلية",
+TableDelete			: "حذف الجدول",
+CellProperties		: "خصائص الخلية",
+TableProperties		: "خصائص الجدول",
+ImageProperties		: "خصائص الصورة",
+FlashProperties		: "خصائص فيلم الفلاش",
+
+AnchorProp			: "خصائص الإشارة المرجعية",
+ButtonProp			: "خصائص زر الضغط",
+CheckboxProp		: "خصائص خانة الإختيار",
+HiddenFieldProp		: "خصائص الحقل الخفي",
+RadioButtonProp		: "خصائص زر الخيار",
+ImageButtonProp		: "خصائص زر الصورة",
+TextFieldProp		: "خصائص مربع النص",
+SelectionFieldProp	: "خصائص القائمة المنسدلة",
+TextareaProp		: "خصائص ناحية النص",
+FormProp			: "خصائص النموذج",
+
+FontFormats			: "عادي;منسّق;دوس;العنوان 1;العنوان  2;العنوان  3;العنوان  4;العنوان  5;العنوان  6",
+
+// Alerts and Messages
+ProcessingXHTML		: "إنتظر قليلاً ريثما تتم   معالَجة‏ XHTML. لن يستغرق طويلاً...",
+Done				: "تم",
+PasteWordConfirm	: "يبدو أن النص المراد لصقه منسوخ من برنامج وورد. هل تود تنظيفه قبل الشروع في عملية اللصق؟",
+NotCompatiblePaste	: "هذه الميزة تحتاج لمتصفح من النوعInternet Explorer إصدار 5.5 فما فوق. هل تود اللصق دون تنظيف الكود؟",
+UnknownToolbarItem	: "عنصر شريط أدوات غير معروف \"%1\"",
+UnknownCommand		: "أمر غير معروف \"%1\"",
+NotImplemented		: "لم يتم دعم هذا الأمر",
+UnknownToolbarSet	: "لم أتمكن من العثور على طقم الأدوات \"%1\" ",
+NoActiveX			: "لتأمين متصفحك يجب أن تحدد بعض مميزات المحرر. يتوجب عليك تمكين الخيار \"Run ActiveX controls and plug-ins\". قد تواجة أخطاء وتلاحظ مميزات مفقودة",
+BrowseServerBlocked : "لايمكن فتح مصدر المتصفح. فضلا يجب التأكد بأن جميع موانع النوافذ المنبثقة معطلة",
+DialogBlocked		: "لايمكن فتح نافذة الحوار . فضلا تأكد من أن  مانع النوافذ المنبثة معطل .",
+
+// Dialogs
+DlgBtnOK			: "موافق",
+DlgBtnCancel		: "إلغاء الأمر",
+DlgBtnClose			: "إغلاق",
+DlgBtnBrowseServer	: "تصفح الخادم",
+DlgAdvancedTag		: "متقدم",
+DlgOpOther			: "<أخرى>",
+DlgInfoTab			: "معلومات",
+DlgAlertUrl			: "الرجاء كتابة عنوان الإنترنت",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<بدون تحديد>",
+DlgGenId			: "الرقم",
+DlgGenLangDir		: "إتجاه النص",
+DlgGenLangDirLtr	: "اليسار لليمين (LTR)",
+DlgGenLangDirRtl	: "اليمين لليسار (RTL)",
+DlgGenLangCode		: "رمز اللغة",
+DlgGenAccessKey		: "مفاتيح الإختصار",
+DlgGenName			: "الاسم",
+DlgGenTabIndex		: "الترتيب",
+DlgGenLongDescr		: "عنوان الوصف المفصّل",
+DlgGenClass			: "فئات التنسيق",
+DlgGenTitle			: "تلميح الشاشة",
+DlgGenContType		: "نوع التلميح",
+DlgGenLinkCharset	: "ترميز المادة المطلوبة",
+DlgGenStyle			: "نمط",
+
+// Image Dialog
+DlgImgTitle			: "خصائص الصورة",
+DlgImgInfoTab		: "معلومات الصورة",
+DlgImgBtnUpload		: "أرسلها للخادم",
+DlgImgURL			: "موقع الصورة",
+DlgImgUpload		: "رفع",
+DlgImgAlt			: "الوصف",
+DlgImgWidth			: "العرض",
+DlgImgHeight		: "الإرتفاع",
+DlgImgLockRatio		: "تناسق الحجم",
+DlgBtnResetSize		: "إستعادة الحجم الأصلي",
+DlgImgBorder		: "سمك الحدود",
+DlgImgHSpace		: "تباعد أفقي",
+DlgImgVSpace		: "تباعد عمودي",
+DlgImgAlign			: "محاذاة",
+DlgImgAlignLeft		: "يسار",
+DlgImgAlignAbsBottom: "أسفل النص",
+DlgImgAlignAbsMiddle: "وسط السطر",
+DlgImgAlignBaseline	: "على السطر",
+DlgImgAlignBottom	: "أسفل",
+DlgImgAlignMiddle	: "وسط",
+DlgImgAlignRight	: "يمين",
+DlgImgAlignTextTop	: "أعلى النص",
+DlgImgAlignTop		: "أعلى",
+DlgImgPreview		: "معاينة",
+DlgImgAlertUrl		: "فضلاً أكتب الموقع الذي توجد عليه هذه الصورة.",
+DlgImgLinkTab		: "الرابط",
+
+// Flash Dialog
+DlgFlashTitle		: "خصائص فيلم الفلاش",
+DlgFlashChkPlay		: "تشغيل تلقائي",
+DlgFlashChkLoop		: "تكرار",
+DlgFlashChkMenu		: "تمكين قائمة فيلم الفلاش",
+DlgFlashScale		: "الحجم",
+DlgFlashScaleAll	: "إظهار الكل",
+DlgFlashScaleNoBorder	: "بلا حدود",
+DlgFlashScaleFit	: "ضبط تام",
+
+// Link Dialog
+DlgLnkWindowTitle	: "إرتباط تشعبي",
+DlgLnkInfoTab		: "معلومات الرابط",
+DlgLnkTargetTab		: "الهدف",
+
+DlgLnkType			: "نوع الربط",
+DlgLnkTypeURL		: "العنوان",
+DlgLnkTypeAnchor	: "مكان في هذا المستند",
+DlgLnkTypeEMail		: "بريد إلكتروني",
+DlgLnkProto			: "البروتوكول",
+DlgLnkProtoOther	: "<أخرى>",
+DlgLnkURL			: "الموقع",
+DlgLnkAnchorSel		: "اختر علامة مرجعية",
+DlgLnkAnchorByName	: "حسب اسم العلامة",
+DlgLnkAnchorById	: "حسب تعريف العنصر",
+DlgLnkNoAnchors		: "<لا يوجد علامات مرجعية في هذا المستند>",
+DlgLnkEMail			: "عنوان بريد إلكتروني",
+DlgLnkEMailSubject	: "موضوع الرسالة",
+DlgLnkEMailBody		: "محتوى الرسالة",
+DlgLnkUpload		: "رفع",
+DlgLnkBtnUpload		: "أرسلها للخادم",
+
+DlgLnkTarget		: "الهدف",
+DlgLnkTargetFrame	: "<إطار>",
+DlgLnkTargetPopup	: "<نافذة منبثقة>",
+DlgLnkTargetBlank	: "إطار جديد (_blank)",
+DlgLnkTargetParent	: "الإطار الأصل (_parent)",
+DlgLnkTargetSelf	: "نفس الإطار (_self)",
+DlgLnkTargetTop		: "صفحة كاملة (_top)",
+DlgLnkTargetFrameName	: "اسم الإطار الهدف",
+DlgLnkPopWinName	: "تسمية النافذة المنبثقة",
+DlgLnkPopWinFeat	: "خصائص النافذة المنبثقة",
+DlgLnkPopResize		: "قابلة للتحجيم",
+DlgLnkPopLocation	: "شريط العنوان",
+DlgLnkPopMenu		: "القوائم الرئيسية",
+DlgLnkPopScroll		: "أشرطة التمرير",
+DlgLnkPopStatus		: "شريط الحالة السفلي",
+DlgLnkPopToolbar	: "شريط الأدوات",
+DlgLnkPopFullScrn	: "ملئ الشاشة (IE)",
+DlgLnkPopDependent	: "تابع (Netscape)",
+DlgLnkPopWidth		: "العرض",
+DlgLnkPopHeight		: "الإرتفاع",
+DlgLnkPopLeft		: "التمركز لليسار",
+DlgLnkPopTop		: "التمركز للأعلى",
+
+DlnLnkMsgNoUrl		: "فضلاً أدخل عنوان الموقع الذي يشير إليه الرابط",
+DlnLnkMsgNoEMail	: "فضلاً أدخل عنوان البريد الإلكتروني",
+DlnLnkMsgNoAnchor	: "فضلاً حدد العلامة المرجعية المرغوبة",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "اختر لوناً",
+DlgColorBtnClear	: "مسح",
+DlgColorHighlight	: "تحديد",
+DlgColorSelected	: "إختيار",
+
+// Smiley Dialog
+DlgSmileyTitle		: "إدراج إبتسامات ",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "إدراج رمز",
+
+// Table Dialog
+DlgTableTitle		: "إدراج جدول",
+DlgTableRows		: "صفوف",
+DlgTableColumns		: "أعمدة",
+DlgTableBorder		: "سمك الحدود",
+DlgTableAlign		: "المحاذاة",
+DlgTableAlignNotSet	: "<بدون تحديد>",
+DlgTableAlignLeft	: "يسار",
+DlgTableAlignCenter	: "وسط",
+DlgTableAlignRight	: "يمين",
+DlgTableWidth		: "العرض",
+DlgTableWidthPx		: "بكسل",
+DlgTableWidthPc		: "بالمئة",
+DlgTableHeight		: "الإرتفاع",
+DlgTableCellSpace	: "تباعد الخلايا",
+DlgTableCellPad		: "المسافة البادئة",
+DlgTableCaption		: "الوصف",
+DlgTableSummary		: "الخلاصة",
+
+// Table Cell Dialog
+DlgCellTitle		: "خصائص الخلية",
+DlgCellWidth		: "العرض",
+DlgCellWidthPx		: "بكسل",
+DlgCellWidthPc		: "بالمئة",
+DlgCellHeight		: "الإرتفاع",
+DlgCellWordWrap		: "التفاف النص",
+DlgCellWordWrapNotSet	: "<بدون تحديد>",
+DlgCellWordWrapYes	: "نعم",
+DlgCellWordWrapNo	: "لا",
+DlgCellHorAlign		: "المحاذاة الأفقية",
+DlgCellHorAlignNotSet	: "<بدون تحديد>",
+DlgCellHorAlignLeft	: "يسار",
+DlgCellHorAlignCenter	: "وسط",
+DlgCellHorAlignRight: "يمين",
+DlgCellVerAlign		: "المحاذاة العمودية",
+DlgCellVerAlignNotSet	: "<بدون تحديد>",
+DlgCellVerAlignTop	: "أعلى",
+DlgCellVerAlignMiddle	: "وسط",
+DlgCellVerAlignBottom	: "أسفل",
+DlgCellVerAlignBaseline	: "على السطر",
+DlgCellRowSpan		: "إمتداد الصفوف",
+DlgCellCollSpan		: "إمتداد الأعمدة",
+DlgCellBackColor	: "لون الخلفية",
+DlgCellBorderColor	: "لون الحدود",
+DlgCellBtnSelect	: "حدّد...",
+
+// Find Dialog
+DlgFindTitle		: "بحث",
+DlgFindFindBtn		: "ابحث",
+DlgFindNotFoundMsg	: "لم يتم العثور على النص المحدد.",
+
+// Replace Dialog
+DlgReplaceTitle			: "إستبدال",
+DlgReplaceFindLbl		: "البحث عن:",
+DlgReplaceReplaceLbl	: "إستبدال بـ:",
+DlgReplaceCaseChk		: "مطابقة حالة الأحرف",
+DlgReplaceReplaceBtn	: "إستبدال",
+DlgReplaceReplAllBtn	: "إستبدال الكل",
+DlgReplaceWordChk		: "الكلمة بالكامل فقط",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع اللصق التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl+V).",
+PasteErrorCut	: "الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع القص التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl+X).",
+PasteErrorCopy	: "الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع النسخ التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl+C).",
+
+PasteAsText		: "لصق كنص بسيط",
+PasteFromWord	: "لصق من وورد",
+
+DlgPasteMsg2	: "الصق داخل الصندوق بإستخدام زرّي (<STRONG>Ctrl+V</STRONG>) في لوحة المفاتيح، ثم اضغط زر  <STRONG>موافق</STRONG>.",
+DlgPasteIgnoreFont		: "تجاهل تعريفات أسماء الخطوط",
+DlgPasteRemoveStyles	: "إزالة تعريفات الأنماط",
+DlgPasteCleanBox		: "نظّف محتوى الصندوق",
+
+// Color Picker
+ColorAutomatic	: "تلقائي",
+ColorMoreColors	: "ألوان إضافية...",
+
+// Document Properties
+DocProps		: "خصائص الصفحة",
+
+// Anchor Dialog
+DlgAnchorTitle		: "خصائص إشارة مرجعية",
+DlgAnchorName		: "اسم الإشارة المرجعية",
+DlgAnchorErrorName	: "الرجاء كتابة اسم الإشارة المرجعية",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "ليست في القاموس",
+DlgSpellChangeTo		: "التغيير إلى",
+DlgSpellBtnIgnore		: "تجاهل",
+DlgSpellBtnIgnoreAll	: "تجاهل الكل",
+DlgSpellBtnReplace		: "تغيير",
+DlgSpellBtnReplaceAll	: "تغيير الكل",
+DlgSpellBtnUndo			: "تراجع",
+DlgSpellNoSuggestions	: "- لا توجد إقتراحات -",
+DlgSpellProgress		: "جاري التدقيق إملائياً",
+DlgSpellNoMispell		: "تم إكمال التدقيق الإملائي: لم يتم العثور على أي أخطاء إملائية",
+DlgSpellNoChanges		: "تم إكمال التدقيق الإملائي: لم يتم تغيير أي كلمة",
+DlgSpellOneChange		: "تم إكمال التدقيق الإملائي: تم تغيير كلمة واحدة فقط",
+DlgSpellManyChanges		: "تم إكمال التدقيق الإملائي: تم تغيير %1 كلمات\كلمة",
+
+IeSpellDownload			: "المدقق الإملائي (الإنجليزي) غير مثبّت. هل تود تحميله الآن؟",
+
+// Button Dialog
+DlgButtonText		: "القيمة/التسمية",
+DlgButtonType		: "نوع الزر",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "الاسم",
+DlgCheckboxValue	: "القيمة",
+DlgCheckboxSelected	: "محدد",
+
+// Form Dialog
+DlgFormName		: "الاسم",
+DlgFormAction	: "اسم الملف",
+DlgFormMethod	: "الأسلوب",
+
+// Select Field Dialog
+DlgSelectName		: "الاسم",
+DlgSelectValue		: "القيمة",
+DlgSelectSize		: "الحجم",
+DlgSelectLines		: "الأسطر",
+DlgSelectChkMulti	: "السماح بتحديدات متعددة",
+DlgSelectOpAvail	: "الخيارات المتاحة",
+DlgSelectOpText		: "النص",
+DlgSelectOpValue	: "القيمة",
+DlgSelectBtnAdd		: "إضافة",
+DlgSelectBtnModify	: "تعديل",
+DlgSelectBtnUp		: "تحريك لأعلى",
+DlgSelectBtnDown	: "تحريك لأسفل",
+DlgSelectBtnSetValue : "إجعلها محددة",
+DlgSelectBtnDelete	: "إزالة",
+
+// Textarea Dialog
+DlgTextareaName	: "الاسم",
+DlgTextareaCols	: "الأعمدة",
+DlgTextareaRows	: "الصفوف",
+
+// Text Field Dialog
+DlgTextName			: "الاسم",
+DlgTextValue		: "القيمة",
+DlgTextCharWidth	: "العرض بالأحرف",
+DlgTextMaxChars		: "عدد الحروف الأقصى",
+DlgTextType			: "نوع المحتوى",
+DlgTextTypeText		: "نص",
+DlgTextTypePass		: "كلمة مرور",
+
+// Hidden Field Dialog
+DlgHiddenName	: "الاسم",
+DlgHiddenValue	: "القيمة",
+
+// Bulleted List Dialog
+BulletedListProp	: "خصائص التعداد النقطي",
+NumberedListProp	: "خصائص التعداد الرقمي",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "النوع",
+DlgLstTypeCircle	: "دائرة",
+DlgLstTypeDisc		: "قرص",
+DlgLstTypeSquare	: "مربع",
+DlgLstTypeNumbers	: "أرقام (1، 2، 3)َ",
+DlgLstTypeLCase		: "حروف صغيرة (a, b, c)َ",
+DlgLstTypeUCase		: "حروف كبيرة (A, B, C)َ",
+DlgLstTypeSRoman	: "ترقيم روماني صغير (i, ii, iii)َ",
+DlgLstTypeLRoman	: "ترقيم روماني كبير (I, II, III)َ",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "عام",
+DlgDocBackTab		: "الخلفية",
+DlgDocColorsTab		: "الألوان والهوامش",
+DlgDocMetaTab		: "المعرّفات الرأسية",
+
+DlgDocPageTitle		: "عنوان الصفحة",
+DlgDocLangDir		: "إتجاه اللغة",
+DlgDocLangDirLTR	: "اليسار لليمين (LTR)",
+DlgDocLangDirRTL	: "اليمين لليسار (RTL)",
+DlgDocLangCode		: "رمز اللغة",
+DlgDocCharSet		: "ترميز الحروف",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "ترميز حروف آخر",
+
+DlgDocDocType		: "ترويسة نوع  الصفحة",
+DlgDocDocTypeOther	: "ترويسة نوع  صفحة أخرى",
+DlgDocIncXHTML		: "تضمين   إعلانات‏ لغة XHTMLَ",
+DlgDocBgColor		: "لون الخلفية",
+DlgDocBgImage		: "رابط الصورة الخلفية",
+DlgDocBgNoScroll	: "جعلها علامة مائية",
+DlgDocCText			: "النص",
+DlgDocCLink			: "الروابط",
+DlgDocCVisited		: "المزارة",
+DlgDocCActive		: "النشطة",
+DlgDocMargins		: "هوامش الصفحة",
+DlgDocMaTop			: "علوي",
+DlgDocMaLeft		: "أيسر",
+DlgDocMaRight		: "أيمن",
+DlgDocMaBottom		: "سفلي",
+DlgDocMeIndex		: "الكلمات الأساسية (مفصولة بفواصل)َ",
+DlgDocMeDescr		: "وصف الصفحة",
+DlgDocMeAuthor		: "الكاتب",
+DlgDocMeCopy		: "المالك",
+DlgDocPreview		: "معاينة",
+
+// Templates Dialog
+Templates			: "القوالب",
+DlgTemplatesTitle	: "قوالب المحتوى",
+DlgTemplatesSelMsg	: "اختر القالب الذي تود وضعه في المحرر <br>(سيتم فقدان المحتوى الحالي):",
+DlgTemplatesLoading	: "جاري تحميل قائمة القوالب، الرجاء الإنتظار...",
+DlgTemplatesNoTpl	: "(لم يتم تعريف أي قالب)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "نبذة",
+DlgAboutBrowserInfoTab	: "معلومات متصفحك",
+DlgAboutLicenseTab	: "الترخيص",
+DlgAboutVersion		: "الإصدار",
+DlgAboutLicense		: "مرخّص بحسب قانون  GNU LGPL",
+DlgAboutInfo		: "لمزيد من المعلومات تفضل بزيارة"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/gl.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/gl.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/gl.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: gl.js
+ * 	Galician language file.
+ * 
+ * File Authors:
+ * 		Fernando Riveiro Lopez
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Ocultar Ferramentas",
+ToolbarExpand		: "Mostrar Ferramentas",
+
+// Toolbar Items and Context Menu
+Save				: "Gardar",
+NewPage				: "Nova Páxina",
+Preview				: "Vista Previa",
+Cut					: "Cortar",
+Copy				: "Copiar",
+Paste				: "Pegar",
+PasteText			: "Pegar como texto plano",
+PasteWord			: "Pegar dende Word",
+Print				: "Imprimir",
+SelectAll			: "Seleccionar todo",
+RemoveFormat		: "Eliminar Formato",
+InsertLinkLbl		: "Ligazón",
+InsertLink			: "Inserir/Editar Ligazón",
+RemoveLink			: "Eliminar Ligazón",
+Anchor				: "Inserir/Editar Referencia",
+InsertImageLbl		: "Imaxe",
+InsertImage			: "Inserir/Editar Imaxe",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Inserir/Editar Flash",
+InsertTableLbl		: "Tabla",
+InsertTable			: "Inserir/Editar Tabla",
+InsertLineLbl		: "Liña",
+InsertLine			: "Inserir Liña Horizontal",
+InsertSpecialCharLbl: "Carácter Special",
+InsertSpecialChar	: "Inserir Carácter Especial",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Inserir Smiley",
+About				: "Acerca de FCKeditor",
+Bold				: "Negrita",
+Italic				: "Cursiva",
+Underline			: "Sub-raiado",
+StrikeThrough		: "Tachado",
+Subscript			: "Subíndice",
+Superscript			: "Superíndice",
+LeftJustify			: "Aliñar á Esquerda",
+CenterJustify		: "Centrado",
+RightJustify		: "Aliñar á Dereita",
+BlockJustify		: "Xustificado",
+DecreaseIndent		: "Disminuir Sangría",
+IncreaseIndent		: "Aumentar Sangría",
+Undo				: "Desfacer",
+Redo				: "Refacer",
+NumberedListLbl		: "Lista Numerada",
+NumberedList		: "Inserir/Eliminar Lista Numerada",
+BulletedListLbl		: "Marcas",
+BulletedList		: "Inserir/Eliminar Marcas",
+ShowTableBorders	: "Mostrar Bordes das Táboas",
+ShowDetails			: "Mostrar Marcas Parágrafo",
+Style				: "Estilo",
+FontFormat			: "Formato",
+Font				: "Tipo",
+FontSize			: "Tamaño",
+TextColor			: "Cor do Texto",
+BGColor				: "Cor do Fondo",
+Source				: "Código Fonte",
+Find				: "Procurar",
+Replace				: "Substituir",
+SpellCheck			: "Corrección Ortográfica",
+UniversalKeyboard	: "Teclado Universal",
+PageBreakLbl		: "Salto de Páxina",
+PageBreak			: "Inserir Salto de Páxina",
+
+Form			: "Formulario",
+Checkbox		: "Cadro de Verificación",
+RadioButton		: "Botón de Radio",
+TextField		: "Campo de Texto",
+Textarea		: "Área de Texto",
+HiddenField		: "Campo Oculto",
+Button			: "Botón",
+SelectionField	: "Campo de Selección",
+ImageButton		: "Botón de Imaxe",
+
+FitWindow		: "Maximizar o tamaño do editor",
+
+// Context Menu
+EditLink			: "Editar Ligazón",
+CellCM				: "Cela",
+RowCM				: "Fila",
+ColumnCM			: "Columna",
+InsertRow			: "Inserir Fila",
+DeleteRows			: "Borrar Filas",
+InsertColumn		: "Inserir Columna",
+DeleteColumns		: "Borrar Columnas",
+InsertCell			: "Inserir Cela",
+DeleteCells			: "Borrar Cela",
+MergeCells			: "Unir Celas",
+SplitCell			: "Partir Celas",
+TableDelete			: "Borrar Táboa",
+CellProperties		: "Propriedades da Cela",
+TableProperties		: "Propriedades da Táboa",
+ImageProperties		: "Propriedades Imaxe",
+FlashProperties		: "Propriedades Flash",
+
+AnchorProp			: "Propriedades da Referencia",
+ButtonProp			: "Propriedades do Botón",
+CheckboxProp		: "Propriedades do Cadro de Verificación",
+HiddenFieldProp		: "Propriedades do Campo Oculto",
+RadioButtonProp		: "Propriedades do Botón de Radio",
+ImageButtonProp		: "Propriedades do Botón de Imaxe",
+TextFieldProp		: "Propriedades do Campo de Texto",
+SelectionFieldProp	: "Propriedades do Campo de Selección",
+TextareaProp		: "Propriedades da Área de Texto",
+FormProp			: "Propriedades do Formulario",
+
+FontFormats			: "Normal;Formateado;Enderezo;Enacabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6;Paragraph (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Procesando XHTML. Por facor, agarde...",
+Done				: "Feiro",
+PasteWordConfirm	: "Parece que o texto que quere pegar está copiado do Word.¿Quere limpar o formato antes de pegalo?",
+NotCompatiblePaste	: "Este comando está disponible para Internet Explorer versión 5.5 ou superior. ¿Quere pegalo sen limpar o formato?",
+UnknownToolbarItem	: "Ítem de ferramentas descoñecido \"%1\"",
+UnknownCommand		: "Nome de comando descoñecido \"%1\"",
+NotImplemented		: "Comando non implementado",
+UnknownToolbarSet	: "O conxunto de ferramentas \"%1\" non existe",
+NoActiveX			: "As opcións de seguridade do seu navegador poderían limitar algunha das características de editor. Debe activar a opción \"Executar controis ActiveX e plug-ins\". Pode notar que faltan características e experimentar erros",
+BrowseServerBlocked : "Non se poido abrir o navegador de recursos. Asegúrese de que están desactivados os bloqueadores de xanelas emerxentes",
+DialogBlocked		: "Non foi posible abrir a xanela de diálogo. Asegúrese de que están desactivados os bloqueadores de xanelas emerxentes",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Cancelar",
+DlgBtnClose			: "Pechar",
+DlgBtnBrowseServer	: "Navegar no Servidor",
+DlgAdvancedTag		: "Advanzado",
+DlgOpOther			: "<Outro>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Por favor, insira a URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<non definido>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Orientación do Idioma",
+DlgGenLangDirLtr	: "Esquerda a Dereita (LTR)",
+DlgGenLangDirRtl	: "Dereita a Esquerda (RTL)",
+DlgGenLangCode		: "Código do Idioma",
+DlgGenAccessKey		: "Chave de Acceso",
+DlgGenName			: "Nome",
+DlgGenTabIndex		: "Índice de Tabulación",
+DlgGenLongDescr		: "Descrición Completa da URL",
+DlgGenClass			: "Clases da Folla de Estilos",
+DlgGenTitle			: "Título",
+DlgGenContType		: "Tipo de Contido",
+DlgGenLinkCharset	: "Fonte de Caracteres Vinculado",
+DlgGenStyle			: "Estilo",
+
+// Image Dialog
+DlgImgTitle			: "Propriedades da Imaxe",
+DlgImgInfoTab		: "Información da Imaxe",
+DlgImgBtnUpload		: "Enviar ó Servidor",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Carregar",
+DlgImgAlt			: "Texto Alternativo",
+DlgImgWidth			: "Largura",
+DlgImgHeight		: "Altura",
+DlgImgLockRatio		: "Proporcional",
+DlgBtnResetSize		: "Tamaño Orixinal",
+DlgImgBorder		: "Límite",
+DlgImgHSpace		: "Esp. Horiz.",
+DlgImgVSpace		: "Esp. Vert.",
+DlgImgAlign			: "Aliñamento",
+DlgImgAlignLeft		: "Esquerda",
+DlgImgAlignAbsBottom: "Abs Inferior",
+DlgImgAlignAbsMiddle: "Abs Centro",
+DlgImgAlignBaseline	: "Liña Base",
+DlgImgAlignBottom	: "Pé",
+DlgImgAlignMiddle	: "Centro",
+DlgImgAlignRight	: "Dereita",
+DlgImgAlignTextTop	: "Tope do Texto",
+DlgImgAlignTop		: "Tope",
+DlgImgPreview		: "Vista Previa",
+DlgImgAlertUrl		: "Por favor, escriba a URL da imaxe",
+DlgImgLinkTab		: "Ligazón",
+
+// Flash Dialog
+DlgFlashTitle		: "Propriedades Flash",
+DlgFlashChkPlay		: "Auto Execución",
+DlgFlashChkLoop		: "Bucle",
+DlgFlashChkMenu		: "Activar Menú Flash",
+DlgFlashScale		: "Escalar",
+DlgFlashScaleAll	: "Amosar Todo",
+DlgFlashScaleNoBorder	: "Sen Borde",
+DlgFlashScaleFit	: "Encaixar axustando",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Ligazón",
+DlgLnkInfoTab		: "Información da Ligazón",
+DlgLnkTargetTab		: "Referencia a esta páxina",
+
+DlgLnkType			: "Tipo de Ligazón",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Referencia nesta páxina",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocolo",
+DlgLnkProtoOther	: "<outro>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Seleccionar unha Referencia",
+DlgLnkAnchorByName	: "Por Nome de Referencia",
+DlgLnkAnchorById	: "Por Element Id",
+DlgLnkNoAnchors		: "<Non hai referencias disponibles no documento>",
+DlgLnkEMail			: "Enderezo de E-Mail",
+DlgLnkEMailSubject	: "Asunto do Mensaxe",
+DlgLnkEMailBody		: "Corpo do Mensaxe",
+DlgLnkUpload		: "Carregar",
+DlgLnkBtnUpload		: "Enviar ó servidor",
+
+DlgLnkTarget		: "Destino",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<Xanela Emerxente>",
+DlgLnkTargetBlank	: "Nova Xanela (_blank)",
+DlgLnkTargetParent	: "Xanela Pai (_parent)",
+DlgLnkTargetSelf	: "Mesma Xanela (_self)",
+DlgLnkTargetTop		: "Xanela Primaria (_top)",
+DlgLnkTargetFrameName	: "Nome do Marco Destino",
+DlgLnkPopWinName	: "Nome da Xanela Emerxente",
+DlgLnkPopWinFeat	: "Características da Xanela Emerxente",
+DlgLnkPopResize		: "Axustable",
+DlgLnkPopLocation	: "Barra de Localización",
+DlgLnkPopMenu		: "Barra de Menú",
+DlgLnkPopScroll		: "Barras de Desplazamento",
+DlgLnkPopStatus		: "Barra de Estado",
+DlgLnkPopToolbar	: "Barra de Ferramentas",
+DlgLnkPopFullScrn	: "A Toda Pantalla (IE)",
+DlgLnkPopDependent	: "Dependente (Netscape)",
+DlgLnkPopWidth		: "Largura",
+DlgLnkPopHeight		: "Altura",
+DlgLnkPopLeft		: "Posición Esquerda",
+DlgLnkPopTop		: "Posición dende Arriba",
+
+DlnLnkMsgNoUrl		: "Por favor, escriba a ligazón URL",
+DlnLnkMsgNoEMail	: "Por favor, escriba o enderezo de e-mail",
+DlnLnkMsgNoAnchor	: "Por favor, seleccione un destino",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Seleccionar Color",
+DlgColorBtnClear	: "Nengunha",
+DlgColorHighlight	: "Destacado",
+DlgColorSelected	: "Seleccionado",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Inserte un Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Seleccione Caracter Especial",
+
+// Table Dialog
+DlgTableTitle		: "Propiedades da Táboa",
+DlgTableRows		: "Filas",
+DlgTableColumns		: "Columnas",
+DlgTableBorder		: "Tamaño do Borde",
+DlgTableAlign		: "Aliñamento",
+DlgTableAlignNotSet	: "<Non Definido>",
+DlgTableAlignLeft	: "Esquerda",
+DlgTableAlignCenter	: "Centro",
+DlgTableAlignRight	: "Ereita",
+DlgTableWidth		: "Largura",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "percent",
+DlgTableHeight		: "Altura",
+DlgTableCellSpace	: "Marxe entre Celas",
+DlgTableCellPad		: "Marxe interior",
+DlgTableCaption		: "Título",
+DlgTableSummary		: "Sumario",
+
+// Table Cell Dialog
+DlgCellTitle		: "Propriedades da Cela",
+DlgCellWidth		: "Largura",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "percent",
+DlgCellHeight		: "Altura",
+DlgCellWordWrap		: "Axustar Liñas",
+DlgCellWordWrapNotSet	: "<Non Definido>",
+DlgCellWordWrapYes	: "Si",
+DlgCellWordWrapNo	: "Non",
+DlgCellHorAlign		: "Aliñamento Horizontal",
+DlgCellHorAlignNotSet	: "<Non definido>",
+DlgCellHorAlignLeft	: "Esquerda",
+DlgCellHorAlignCenter	: "Centro",
+DlgCellHorAlignRight: "Dereita",
+DlgCellVerAlign		: "Aliñamento Vertical",
+DlgCellVerAlignNotSet	: "<Non definido>",
+DlgCellVerAlignTop	: "Arriba",
+DlgCellVerAlignMiddle	: "Medio",
+DlgCellVerAlignBottom	: "Abaixo",
+DlgCellVerAlignBaseline	: "Liña de Base",
+DlgCellRowSpan		: "Ocupar Filas",
+DlgCellCollSpan		: "Ocupar Columnas",
+DlgCellBackColor	: "Color de Fondo",
+DlgCellBorderColor	: "Color de Borde",
+DlgCellBtnSelect	: "Seleccionar...",
+
+// Find Dialog
+DlgFindTitle		: "Procurar",
+DlgFindFindBtn		: "Procurar",
+DlgFindNotFoundMsg	: "Non te atopou o texto indicado.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Substituir",
+DlgReplaceFindLbl		: "Texto a procurar:",
+DlgReplaceReplaceLbl	: "Substituir con:",
+DlgReplaceCaseChk		: "Coincidir Mai./min.",
+DlgReplaceReplaceBtn	: "Substituir",
+DlgReplaceReplAllBtn	: "Substitiur Todo",
+DlgReplaceWordChk		: "Coincidir con toda a palabra",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de pegado. Por favor, use o teclado para iso (Ctrl+V).",
+PasteErrorCut	: "Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de corte. Por favor, use o teclado para iso (Ctrl+X).",
+PasteErrorCopy	: "Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de copia. Por favor, use o teclado para iso (Ctrl+C).",
+
+PasteAsText		: "Pegar como texto plano",
+PasteFromWord	: "Pegar dende Word",
+
+DlgPasteMsg2	: "Por favor, pegue dentro do seguinte cadro usando o teclado (<STRONG>Ctrl+V</STRONG>) e pulse <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignorar as definicións de Tipografía",
+DlgPasteRemoveStyles	: "Eliminar as definicións de Estilos",
+DlgPasteCleanBox		: "Limpar o Cadro",
+
+// Color Picker
+ColorAutomatic	: "Automático",
+ColorMoreColors	: "Máis Cores...",
+
+// Document Properties
+DocProps		: "Propriedades do Documento",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Propriedades da Referencia",
+DlgAnchorName		: "Nome da Referencia",
+DlgAnchorErrorName	: "Por favor, escriba o nome da referencia",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Non está no diccionario",
+DlgSpellChangeTo		: "Cambiar a",
+DlgSpellBtnIgnore		: "Ignorar",
+DlgSpellBtnIgnoreAll	: "Ignorar Todas",
+DlgSpellBtnReplace		: "Substituir",
+DlgSpellBtnReplaceAll	: "Substituir Todas",
+DlgSpellBtnUndo			: "Desfacer",
+DlgSpellNoSuggestions	: "- Sen candidatos -",
+DlgSpellProgress		: "Corrección ortográfica en progreso...",
+DlgSpellNoMispell		: "Corrección ortográfica rematada: Non se atoparon erros",
+DlgSpellNoChanges		: "Corrección ortográfica rematada: Non se substituiu nengunha verba",
+DlgSpellOneChange		: "Corrección ortográfica rematada: Unha verba substituida",
+DlgSpellManyChanges		: "Corrección ortográfica rematada: %1 verbas substituidas",
+
+IeSpellDownload			: "O corrector ortográfico non está instalado. ¿Quere descargalo agora?",
+
+// Button Dialog
+DlgButtonText		: "Texto (Valor)",
+DlgButtonType		: "Tipo",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nome",
+DlgCheckboxValue	: "Valor",
+DlgCheckboxSelected	: "Seleccionado",
+
+// Form Dialog
+DlgFormName		: "Nome",
+DlgFormAction	: "Acción",
+DlgFormMethod	: "Método",
+
+// Select Field Dialog
+DlgSelectName		: "Nome",
+DlgSelectValue		: "Valor",
+DlgSelectSize		: "Tamaño",
+DlgSelectLines		: "liñas",
+DlgSelectChkMulti	: "Permitir múltiples seleccións",
+DlgSelectOpAvail	: "Opcións Disponibles",
+DlgSelectOpText		: "Texto",
+DlgSelectOpValue	: "Valor",
+DlgSelectBtnAdd		: "Engadir",
+DlgSelectBtnModify	: "Modificar",
+DlgSelectBtnUp		: "Subir",
+DlgSelectBtnDown	: "Baixar",
+DlgSelectBtnSetValue : "Definir como valor por defecto",
+DlgSelectBtnDelete	: "Borrar",
+
+// Textarea Dialog
+DlgTextareaName	: "Nome",
+DlgTextareaCols	: "Columnas",
+DlgTextareaRows	: "Filas",
+
+// Text Field Dialog
+DlgTextName			: "Nome",
+DlgTextValue		: "Valor",
+DlgTextCharWidth	: "Tamaño do Caracter",
+DlgTextMaxChars		: "Máximo de Caracteres",
+DlgTextType			: "Tipo",
+DlgTextTypeText		: "Texto",
+DlgTextTypePass		: "Chave",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nome",
+DlgHiddenValue	: "Valor",
+
+// Bulleted List Dialog
+BulletedListProp	: "Propriedades das Marcas",
+NumberedListProp	: "Propriedades da Lista de Numeración",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tipo",
+DlgLstTypeCircle	: "Círculo",
+DlgLstTypeDisc		: "Disco",
+DlgLstTypeSquare	: "Cuadrado",
+DlgLstTypeNumbers	: "Números (1, 2, 3)",
+DlgLstTypeLCase		: "Letras Minúsculas (a, b, c)",
+DlgLstTypeUCase		: "Letras Maiúsculas (A, B, C)",
+DlgLstTypeSRoman	: "Números Romanos en minúscula (i, ii, iii)",
+DlgLstTypeLRoman	: "Números Romanos en Maiúscula (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Xeral",
+DlgDocBackTab		: "Fondo",
+DlgDocColorsTab		: "Cores e Marxes",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Título da Páxina",
+DlgDocLangDir		: "Orientación do Idioma",
+DlgDocLangDirLTR	: "Esquerda a Dereita (LTR)",
+DlgDocLangDirRTL	: "Dereita a Esquerda (RTL)",
+DlgDocLangCode		: "Código de Idioma",
+DlgDocCharSet		: "Codificación do Xogo de Caracteres",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Outra Codificación do Xogo de Caracteres",
+
+DlgDocDocType		: "Encabezado do Tipo de Documento",
+DlgDocDocTypeOther	: "Outro Encabezado do Tipo de Documento",
+DlgDocIncXHTML		: "Incluir Declaracións XHTML",
+DlgDocBgColor		: "Cor de Fondo",
+DlgDocBgImage		: "URL da Imaxe de Fondo",
+DlgDocBgNoScroll	: "Fondo Fixo",
+DlgDocCText			: "Texto",
+DlgDocCLink			: "Ligazóns",
+DlgDocCVisited		: "Ligazón Visitada",
+DlgDocCActive		: "Ligazón Activa",
+DlgDocMargins		: "Marxes da Páxina",
+DlgDocMaTop			: "Arriba",
+DlgDocMaLeft		: "Esquerda",
+DlgDocMaRight		: "Dereita",
+DlgDocMaBottom		: "Abaixo",
+DlgDocMeIndex		: "Palabras Chave de Indexación do Documento (separadas por comas)",
+DlgDocMeDescr		: "Descripción do Documento",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Vista Previa",
+
+// Templates Dialog
+Templates			: "Plantillas",
+DlgTemplatesTitle	: "Plantillas de Contido",
+DlgTemplatesSelMsg	: "Por favor, seleccione a plantilla a abrir no editor<br>(o contido actual perderase):",
+DlgTemplatesLoading	: "Cargando listado de plantillas. Por favor, espere...",
+DlgTemplatesNoTpl	: "(Non hai plantillas definidas)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Acerca de",
+DlgAboutBrowserInfoTab	: "Información do Navegador",
+DlgAboutLicenseTab	: "Licencia",
+DlgAboutVersion		: "versión",
+DlgAboutLicense		: "Licencia concedida baixo os termos da GNU Lesser General Public License",
+DlgAboutInfo		: "Para máis información visitar:"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/_translationstatus.txt
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/_translationstatus.txt	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/_translationstatus.txt	(revision 389)
@@ -0,0 +1,71 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: _translationstatus.txt
+ * 	Translations Status.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+ar.js      Found: 388   Missing: 15
+bg.js      Found: 380   Missing: 23
+bn.js      Found: 388   Missing: 15
+bs.js      Found: 232   Missing: 171
+ca.js      Found: 403   Missing: 0
+cs.js      Found: 388   Missing: 15
+da.js      Found: 388   Missing: 15
+de.js      Found: 403   Missing: 0
+el.js      Found: 403   Missing: 0
+en-au.js   Found: 403   Missing: 0
+en-ca.js   Found: 403   Missing: 0
+en-uk.js   Found: 403   Missing: 0
+eo.js      Found: 352   Missing: 51
+es.js      Found: 388   Missing: 15
+et.js      Found: 388   Missing: 15
+eu.js      Found: 388   Missing: 15
+fa.js      Found: 388   Missing: 15
+fi.js      Found: 388   Missing: 15
+fo.js      Found: 358   Missing: 45
+fr.js      Found: 403   Missing: 0
+gl.js      Found: 388   Missing: 15
+he.js      Found: 388   Missing: 15
+hi.js      Found: 403   Missing: 0
+hr.js      Found: 403   Missing: 0
+hu.js      Found: 402   Missing: 1
+it.js      Found: 388   Missing: 15
+ja.js      Found: 403   Missing: 0
+km.js      Found: 377   Missing: 26
+ko.js      Found: 375   Missing: 28
+lt.js      Found: 383   Missing: 20
+lv.js      Found: 388   Missing: 15
+mn.js      Found: 232   Missing: 171
+ms.js      Found: 358   Missing: 45
+nb.js      Found: 388   Missing: 15
+nl.js      Found: 403   Missing: 0
+no.js      Found: 388   Missing: 15
+pl.js      Found: 388   Missing: 15
+pt-br.js   Found: 384   Missing: 19
+pt.js      Found: 388   Missing: 15
+ro.js      Found: 388   Missing: 15
+ru.js      Found: 403   Missing: 0
+sk.js      Found: 383   Missing: 20
+sl.js      Found: 380   Missing: 23
+sr-latn.js Found: 375   Missing: 28
+sr.js      Found: 375   Missing: 28
+sv.js      Found: 383   Missing: 20
+th.js      Found: 352   Missing: 51
+tr.js      Found: 388   Missing: 15
+uk.js      Found: 375   Missing: 28
+vi.js      Found: 403   Missing: 0
+zh-cn.js   Found: 388   Missing: 15
+zh.js      Found: 403   Missing: 0
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/_getfontformat.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/_getfontformat.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/_getfontformat.html	(revision 389)
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+	<head>
+		<title></title>
+		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
+	</head>
+	<script language="javascript">
+
+window.onload = function()
+{
+	var oRange = document.selection.createRange() ;
+	
+	var sNormal ;
+	var sFormats = '' ;
+	for ( var i = 1 ; i <= 9 ; i++ )
+	{
+		oRange.moveToElementText( document.getElementById( 'x' + i ) ) ;
+		sFormats += oRange.queryCommandValue( 'FormatBlock' ) ;
+		if ( i == 1 )
+			sNormal = sFormats ;
+		sFormats += ';' ;
+	}
+	
+	document.getElementById('xFontFormats').innerHTML = sFormats + sNormal + ' (DIV)' ;
+}
+	</script>
+	<body>
+		<table width="70%" align="center">
+			<tr>
+				<td>
+					<h3>FontFormats Localization</h3>
+					<p>
+						IE has some limits when handling the "Font Format". It actually uses localized 
+						strings to retrieve the current format value. This makes it very difficult to 
+						make a system that works on every single computer in the world.
+					</p>
+					<p>
+						With FCKeditor, this problem impacts in the "Format" toolbar command that 
+						doesn't reflects the format of the current cursor position.
+					</p>
+					<p>
+						There is only one way to make it work. We must localize FCKeditor using the 
+						strings used by IE. In this way, we will have the expected behavior at least 
+						when using FCKeditor in the same language as the browser. So, when localizing 
+						FCKeditor, go to a computer with IE in the target language, open this page and 
+						use the following string to the "FontFormats" value:
+					</p>
+					<div style="white-space: nowrap">
+						FontFormats : "<span id="xFontFormats" style="COLOR: #000099"></span>",
+					</div>
+				</td>
+			</tr>
+		</table>
+		<div style="DISPLAY: none">
+			<p id="x1">&nbsp;</p>
+			<pre id="x2">&nbsp;</pre>
+			<address id="x3">&nbsp;</address>
+			<h1 id="x4">&nbsp;</h1>
+			<h2 id="x5">&nbsp;</h2>
+			<h3 id="x6">&nbsp;</h3>
+			<h4 id="x7">&nbsp;</h4>
+			<h5 id="x8">&nbsp;</h5>
+			<h6 id="x9">&nbsp;</h6>
+		</div>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/fr.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/fr.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/fr.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fr.js
+ * 	French language file.
+ * 
+ * File Authors:
+ * 		Hubert Garrido (liane@users.sourceforge.net)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Masquer Outils",
+ToolbarExpand		: "Afficher Outils",
+
+// Toolbar Items and Context Menu
+Save				: "Enregistrer",
+NewPage				: "Nouvelle page",
+Preview				: "Prévisualisation",
+Cut					: "Couper",
+Copy				: "Copier",
+Paste				: "Coller",
+PasteText			: "Coller comme texte",
+PasteWord			: "Coller de Word",
+Print				: "Imprimer",
+SelectAll			: "Tout sélectionner",
+RemoveFormat		: "Supprimer le format",
+InsertLinkLbl		: "Lien",
+InsertLink			: "Insérer/modifier le lien",
+RemoveLink			: "Supprimer le lien",
+Anchor				: "Insérer/modifier l'ancre",
+InsertImageLbl		: "Image",
+InsertImage			: "Insérer/modifier l'image",
+InsertFlashLbl		: "Animation Flash",
+InsertFlash			: "Insérer/modifier l'animation Flash",
+InsertTableLbl		: "Tableau",
+InsertTable			: "Insérer/modifier le tableau",
+InsertLineLbl		: "Séparateur",
+InsertLine			: "Insérer un séparateur",
+InsertSpecialCharLbl: "Caractères spéciaux",
+InsertSpecialChar	: "Insérer un caractère spécial",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Insérer un Smiley",
+About				: "A propos de FCKeditor",
+Bold				: "Gras",
+Italic				: "Italique",
+Underline			: "Souligné",
+StrikeThrough		: "Barré",
+Subscript			: "Indice",
+Superscript			: "Exposant",
+LeftJustify			: "Aligné à gauche",
+CenterJustify		: "Centré",
+RightJustify		: "Aligné à Droite",
+BlockJustify		: "Texte justifié",
+DecreaseIndent		: "Diminuer le retrait",
+IncreaseIndent		: "Augmenter le retrait",
+Undo				: "Annuler",
+Redo				: "Refaire",
+NumberedListLbl		: "Liste numérotée",
+NumberedList		: "Insérer/supprimer la liste numérotée",
+BulletedListLbl		: "Liste à puces",
+BulletedList		: "Insérer/supprimer la liste à puces",
+ShowTableBorders	: "Afficher les bordures du tableau",
+ShowDetails			: "Afficher les caractères invisibles",
+Style				: "Style",
+FontFormat			: "Format",
+Font				: "Police",
+FontSize			: "Taille",
+TextColor			: "Couleur de caractère",
+BGColor				: "Couleur de fond",
+Source				: "Source",
+Find				: "Chercher",
+Replace				: "Remplacer",
+SpellCheck			: "Orthographe",
+UniversalKeyboard	: "Clavier universel",
+PageBreakLbl		: "Saut de page",
+PageBreak			: "Insérer un saut de page",
+
+Form			: "Formulaire",
+Checkbox		: "Case à cocher",
+RadioButton		: "Bouton radio",
+TextField		: "Champ texte",
+Textarea		: "Zone de texte",
+HiddenField		: "Champ caché",
+Button			: "Bouton",
+SelectionField	: "Liste/menu",
+ImageButton		: "Bouton image",
+
+FitWindow		: "Edition pleine page",
+
+// Context Menu
+EditLink			: "Modifier le lien",
+CellCM				: "Cellule",
+RowCM				: "Ligne",
+ColumnCM			: "Colonne",
+InsertRow			: "Insérer une ligne",
+DeleteRows			: "Supprimer des lignes",
+InsertColumn		: "Insérer une colonne",
+DeleteColumns		: "Supprimer des colonnes",
+InsertCell			: "Insérer une cellule",
+DeleteCells			: "Supprimer des cellules",
+MergeCells			: "Fusionner les cellules",
+SplitCell			: "Scinder les cellules",
+TableDelete			: "Supprimer le tableau",
+CellProperties		: "Propriétés de cellule",
+TableProperties		: "Propriétés du tableau",
+ImageProperties		: "Propriétés de l'image",
+FlashProperties		: "Propriétés de l'animation Flash",
+
+AnchorProp			: "Propriétés de l'ancre",
+ButtonProp			: "Propriétés du bouton",
+CheckboxProp		: "Propriétés de la case à cocher",
+HiddenFieldProp		: "Propriétés du champ caché",
+RadioButtonProp		: "Propriétés du bouton radio",
+ImageButtonProp		: "Propriétés du bouton image",
+TextFieldProp		: "Propriétés du champ texte",
+SelectionFieldProp	: "Propriétés de la liste/du menu",
+TextareaProp		: "Propriétés de la zone de texte",
+FormProp			: "Propriétés du formulaire",
+
+FontFormats			: "Normal;Formaté;Adresse;En-tête 1;En-tête 2;En-tête 3;En-tête 4;En-tête 5;En-tête 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Calcul XHTML. Veuillez patienter...",
+Done				: "Terminé",
+PasteWordConfirm	: "Le texte à coller semble provenir de Word. Désirez-vous le nettoyer avant de coller?",
+NotCompatiblePaste	: "Cette commande nécessite Internet Explorer version 5.5 minimum. Souhaitez-vous coller sans nettoyage?",
+UnknownToolbarItem	: "Elément de barre d'outil inconnu \"%1\"",
+UnknownCommand		: "Nom de commande inconnu \"%1\"",
+NotImplemented		: "Commande non encore écrite",
+UnknownToolbarSet	: "La barre d'outils \"%1\" n'existe pas",
+NoActiveX			: "Les paramètres de sécurité de votre navigateur peuvent limiter quelques fonctionnalités de l'éditeur. Veuillez activer l'option \"Exécuter les contrôles ActiveX et les plug-ins\". Il se peut que vous rencontriez des erreurs et remarquiez quelques limitations.",
+BrowseServerBlocked : "Le navigateur n'a pas pu être ouvert. Assurez-vous que les bloqueurs de popups soient désactivés.",
+DialogBlocked		: "La fenêtre de dialogue n'a pas pu s'ouvrir. Assurez-vous que les bloqueurs de popups soient désactivés.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Annuler",
+DlgBtnClose			: "Fermer",
+DlgBtnBrowseServer	: "Parcourir le serveur",
+DlgAdvancedTag		: "Avancé",
+DlgOpOther			: "<Autre>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Veuillez saisir l'URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<Par défaut>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Sens d'écriture",
+DlgGenLangDirLtr	: "De gauche à droite (LTR)",
+DlgGenLangDirRtl	: "De droite à gauche (RTL)",
+DlgGenLangCode		: "Code langue",
+DlgGenAccessKey		: "Equivalent clavier",
+DlgGenName			: "Nom",
+DlgGenTabIndex		: "Ordre de tabulation",
+DlgGenLongDescr		: "URL de description longue",
+DlgGenClass			: "Classes de feuilles de style",
+DlgGenTitle			: "Titre",
+DlgGenContType		: "Type de contenu",
+DlgGenLinkCharset	: "Encodage de caractère",
+DlgGenStyle			: "Style",
+
+// Image Dialog
+DlgImgTitle			: "Propriétés de l'image",
+DlgImgInfoTab		: "Informations sur l'image",
+DlgImgBtnUpload		: "Envoyer sur le serveur",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Télécharger",
+DlgImgAlt			: "Texte de remplacement",
+DlgImgWidth			: "Largeur",
+DlgImgHeight		: "Hauteur",
+DlgImgLockRatio		: "Garder les proportions",
+DlgBtnResetSize		: "Taille originale",
+DlgImgBorder		: "Bordure",
+DlgImgHSpace		: "Espacement horizontal",
+DlgImgVSpace		: "Espacement vertical",
+DlgImgAlign			: "Alignement",
+DlgImgAlignLeft		: "Gauche",
+DlgImgAlignAbsBottom: "Abs Bas",
+DlgImgAlignAbsMiddle: "Abs Milieu",
+DlgImgAlignBaseline	: "Bas du texte",
+DlgImgAlignBottom	: "Bas",
+DlgImgAlignMiddle	: "Milieu",
+DlgImgAlignRight	: "Droite",
+DlgImgAlignTextTop	: "Haut du texte",
+DlgImgAlignTop		: "Haut",
+DlgImgPreview		: "Prévisualisation",
+DlgImgAlertUrl		: "Veuillez saisir l'URL de l'image",
+DlgImgLinkTab		: "Lien",
+
+// Flash Dialog
+DlgFlashTitle		: "Propriétés de l'animation Flash",
+DlgFlashChkPlay		: "Lecture automatique",
+DlgFlashChkLoop		: "Boucle",
+DlgFlashChkMenu		: "Activer le menu Flash",
+DlgFlashScale		: "Affichage",
+DlgFlashScaleAll	: "Par défaut (tout montrer)",
+DlgFlashScaleNoBorder	: "Sans bordure",
+DlgFlashScaleFit	: "Ajuster aux dimensions",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Propriétés du lien",
+DlgLnkInfoTab		: "Informations sur le lien",
+DlgLnkTargetTab		: "Destination",
+
+DlgLnkType			: "Type de lien",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Ancre dans cette page",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocole",
+DlgLnkProtoOther	: "<autre>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Sélectionner une ancre",
+DlgLnkAnchorByName	: "Par nom",
+DlgLnkAnchorById	: "Par id",
+DlgLnkNoAnchors		: "<Pas d'ancre disponible dans le document>",
+DlgLnkEMail			: "Adresse E-Mail",
+DlgLnkEMailSubject	: "Sujet du message",
+DlgLnkEMailBody		: "Corps du message",
+DlgLnkUpload		: "Télécharger",
+DlgLnkBtnUpload		: "Envoyer sur le serveur",
+
+DlgLnkTarget		: "Destination",
+DlgLnkTargetFrame	: "<cadre>",
+DlgLnkTargetPopup	: "<fenêtre popup>",
+DlgLnkTargetBlank	: "Nouvelle fenêtre (_blank)",
+DlgLnkTargetParent	: "Fenêtre mère (_parent)",
+DlgLnkTargetSelf	: "Même fenêtre (_self)",
+DlgLnkTargetTop		: "Fenêtre supérieure (_top)",
+DlgLnkTargetFrameName	: "Nom du cadre de destination",
+DlgLnkPopWinName	: "Nom de la fenêtre popup",
+DlgLnkPopWinFeat	: "Caractéristiques de la fenêtre popup",
+DlgLnkPopResize		: "Taille modifiable",
+DlgLnkPopLocation	: "Barre d'adresses",
+DlgLnkPopMenu		: "Barre de menu",
+DlgLnkPopScroll		: "Barres de défilement",
+DlgLnkPopStatus		: "Barre d'état",
+DlgLnkPopToolbar	: "Barre d'outils",
+DlgLnkPopFullScrn	: "Plein écran (IE)",
+DlgLnkPopDependent	: "Dépendante (Netscape)",
+DlgLnkPopWidth		: "Largeur",
+DlgLnkPopHeight		: "Hauteur",
+DlgLnkPopLeft		: "Position à partir de la gauche",
+DlgLnkPopTop		: "Position à partir du haut",
+
+DlnLnkMsgNoUrl		: "Veuillez saisir l'URL",
+DlnLnkMsgNoEMail	: "Veuillez saisir l'adresse e-mail",
+DlnLnkMsgNoAnchor	: "Veuillez sélectionner une ancre",
+DlnLnkMsgInvPopName	: "Le nom de la fenêtre popup doit commencer par une lettre et ne doit pas contenir d'espace",
+
+// Color Dialog
+DlgColorTitle		: "Sélectionner",
+DlgColorBtnClear	: "Effacer",
+DlgColorHighlight	: "Prévisualisation",
+DlgColorSelected	: "Sélectionné",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Insérer un Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Insérer un caractère spécial",
+
+// Table Dialog
+DlgTableTitle		: "Propriétés du tableau",
+DlgTableRows		: "Lignes",
+DlgTableColumns		: "Colonnes",
+DlgTableBorder		: "Bordure",
+DlgTableAlign		: "Alignement",
+DlgTableAlignNotSet	: "<Par défaut>",
+DlgTableAlignLeft	: "Gauche",
+DlgTableAlignCenter	: "Centré",
+DlgTableAlignRight	: "Droite",
+DlgTableWidth		: "Largeur",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "pourcentage",
+DlgTableHeight		: "Hauteur",
+DlgTableCellSpace	: "Espacement",
+DlgTableCellPad		: "Contour",
+DlgTableCaption		: "Titre",
+DlgTableSummary		: "Résumé",
+
+// Table Cell Dialog
+DlgCellTitle		: "Propriétés de la cellule",
+DlgCellWidth		: "Largeur",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "pourcentage",
+DlgCellHeight		: "Hauteur",
+DlgCellWordWrap		: "Retour à la ligne",
+DlgCellWordWrapNotSet	: "<Par défaut>",
+DlgCellWordWrapYes	: "Oui",
+DlgCellWordWrapNo	: "Non",
+DlgCellHorAlign		: "Alignement horizontal",
+DlgCellHorAlignNotSet	: "<Par défaut>",
+DlgCellHorAlignLeft	: "Gauche",
+DlgCellHorAlignCenter	: "Centré",
+DlgCellHorAlignRight: "Droite",
+DlgCellVerAlign		: "Alignement vertical",
+DlgCellVerAlignNotSet	: "<Par défaut>",
+DlgCellVerAlignTop	: "Haut",
+DlgCellVerAlignMiddle	: "Milieu",
+DlgCellVerAlignBottom	: "Bas",
+DlgCellVerAlignBaseline	: "Bas du texte",
+DlgCellRowSpan		: "Lignes fusionnées",
+DlgCellCollSpan		: "Colonnes fusionnées",
+DlgCellBackColor	: "Fond",
+DlgCellBorderColor	: "Bordure",
+DlgCellBtnSelect	: "Choisir...",
+
+// Find Dialog
+DlgFindTitle		: "Chercher",
+DlgFindFindBtn		: "Chercher",
+DlgFindNotFoundMsg	: "Le texte indiqué est introuvable.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Remplacer",
+DlgReplaceFindLbl		: "Rechercher:",
+DlgReplaceReplaceLbl	: "Remplacer par:",
+DlgReplaceCaseChk		: "Respecter la casse",
+DlgReplaceReplaceBtn	: "Remplacer",
+DlgReplaceReplAllBtn	: "Tout remplacer",
+DlgReplaceWordChk		: "Mot entier",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Les paramètres de sécurité de votre navigateur empêchent l'éditeur de coller automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+V).",
+PasteErrorCut	: "Les paramètres de sécurité de votre navigateur empêchent l'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+X).",
+PasteErrorCopy	: "Les paramètres de sécurité de votre navigateur empêchent l'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+C).",
+
+PasteAsText		: "Coller comme texte",
+PasteFromWord	: "Coller à partir de Word",
+
+DlgPasteMsg2	: "Veuillez coller dans la zone ci-dessous en utilisant le clavier (<STRONG>Ctrl+V</STRONG>) et cliquez sur <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignorer les polices de caractères",
+DlgPasteRemoveStyles	: "Supprimer les styles",
+DlgPasteCleanBox		: "Effacer le contenu",
+
+// Color Picker
+ColorAutomatic	: "Automatique",
+ColorMoreColors	: "Plus de couleurs...",
+
+// Document Properties
+DocProps		: "Propriétés du document",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Propriétés de l'ancre",
+DlgAnchorName		: "Nom de l'ancre",
+DlgAnchorErrorName	: "Veuillez saisir le nom de l'ancre",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Pas dans le dictionnaire",
+DlgSpellChangeTo		: "Changer en",
+DlgSpellBtnIgnore		: "Ignorer",
+DlgSpellBtnIgnoreAll	: "Ignorer tout",
+DlgSpellBtnReplace		: "Remplacer",
+DlgSpellBtnReplaceAll	: "Remplacer tout",
+DlgSpellBtnUndo			: "Annuler",
+DlgSpellNoSuggestions	: "- Aucune suggestion -",
+DlgSpellProgress		: "Vérification d'orthographe en cours...",
+DlgSpellNoMispell		: "Vérification d'orthographe terminée: Aucune erreur trouvée",
+DlgSpellNoChanges		: "Vérification d'orthographe terminée: Pas de modifications",
+DlgSpellOneChange		: "Vérification d'orthographe terminée: Un mot modifié",
+DlgSpellManyChanges		: "Vérification d'orthographe terminée: %1 mots modifiés",
+
+IeSpellDownload			: "Le Correcteur n'est pas installé. Souhaitez-vous le télécharger maintenant?",
+
+// Button Dialog
+DlgButtonText		: "Texte (valeur)",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Bouton",
+DlgButtonTypeSbm	: "Envoyer",
+DlgButtonTypeRst	: "Réinitialiser",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nom",
+DlgCheckboxValue	: "Valeur",
+DlgCheckboxSelected	: "Sélectionné",
+
+// Form Dialog
+DlgFormName		: "Nom",
+DlgFormAction	: "Action",
+DlgFormMethod	: "Méthode",
+
+// Select Field Dialog
+DlgSelectName		: "Nom",
+DlgSelectValue		: "Valeur",
+DlgSelectSize		: "Taille",
+DlgSelectLines		: "lignes",
+DlgSelectChkMulti	: "Sélection multiple",
+DlgSelectOpAvail	: "Options disponibles",
+DlgSelectOpText		: "Texte",
+DlgSelectOpValue	: "Valeur",
+DlgSelectBtnAdd		: "Ajouter",
+DlgSelectBtnModify	: "Modifier",
+DlgSelectBtnUp		: "Monter",
+DlgSelectBtnDown	: "Descendre",
+DlgSelectBtnSetValue : "Valeur sélectionnée",
+DlgSelectBtnDelete	: "Supprimer",
+
+// Textarea Dialog
+DlgTextareaName	: "Nom",
+DlgTextareaCols	: "Colonnes",
+DlgTextareaRows	: "Lignes",
+
+// Text Field Dialog
+DlgTextName			: "Nom",
+DlgTextValue		: "Valeur",
+DlgTextCharWidth	: "Largeur en caractères",
+DlgTextMaxChars		: "Nombre maximum de caractères",
+DlgTextType			: "Type",
+DlgTextTypeText		: "Texte",
+DlgTextTypePass		: "Mot de passe",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nom",
+DlgHiddenValue	: "Valeur",
+
+// Bulleted List Dialog
+BulletedListProp	: "Propriétés de liste à puces",
+NumberedListProp	: "Propriétés de liste numérotée",
+DlgLstStart			: "Début",
+DlgLstType			: "Type",
+DlgLstTypeCircle	: "Cercle",
+DlgLstTypeDisc		: "Disque",
+DlgLstTypeSquare	: "Carré",
+DlgLstTypeNumbers	: "Nombres (1, 2, 3)",
+DlgLstTypeLCase		: "Lettres minuscules (a, b, c)",
+DlgLstTypeUCase		: "Lettres majuscules (A, B, C)",
+DlgLstTypeSRoman	: "Chiffres romains minuscules (i, ii, iii)",
+DlgLstTypeLRoman	: "Chiffres romains majuscules (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Général",
+DlgDocBackTab		: "Fond",
+DlgDocColorsTab		: "Couleurs et marges",
+DlgDocMetaTab		: "Métadonnées",
+
+DlgDocPageTitle		: "Titre de la page",
+DlgDocLangDir		: "Sens d'écriture",
+DlgDocLangDirLTR	: "De la gauche vers la droite (LTR)",
+DlgDocLangDirRTL	: "De la droite vers la gauche (RTL)",
+DlgDocLangCode		: "Code langue",
+DlgDocCharSet		: "Encodage de caractère",
+DlgDocCharSetCE		: "Europe Centrale",
+DlgDocCharSetCT		: "Chinois Traditionnel (Big5)",
+DlgDocCharSetCR		: "Cyrillique",
+DlgDocCharSetGR		: "Grec",
+DlgDocCharSetJP		: "Japanais",
+DlgDocCharSetKR		: "Coréen",
+DlgDocCharSetTR		: "Turc",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Occidental",
+DlgDocCharSetOther	: "Autre encodage de caractère",
+
+DlgDocDocType		: "Type de document",
+DlgDocDocTypeOther	: "Autre type de document",
+DlgDocIncXHTML		: "Inclure les déclarations XHTML",
+DlgDocBgColor		: "Couleur de fond",
+DlgDocBgImage		: "Image de fond",
+DlgDocBgNoScroll	: "Image fixe sans défilement",
+DlgDocCText			: "Texte",
+DlgDocCLink			: "Lien",
+DlgDocCVisited		: "Lien visité",
+DlgDocCActive		: "Lien activé",
+DlgDocMargins		: "Marges",
+DlgDocMaTop			: "Haut",
+DlgDocMaLeft		: "Gauche",
+DlgDocMaRight		: "Droite",
+DlgDocMaBottom		: "Bas",
+DlgDocMeIndex		: "Mots-clés (séparés par des virgules)",
+DlgDocMeDescr		: "Description",
+DlgDocMeAuthor		: "Auteur",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Prévisualisation",
+
+// Templates Dialog
+Templates			: "Modèles",
+DlgTemplatesTitle	: "Modèles de contenu",
+DlgTemplatesSelMsg	: "Veuillez sélectionner le modèle à ouvrir dans l'éditeur<br>(le contenu actuel sera remplacé):",
+DlgTemplatesLoading	: "Chargement de la liste des modèles. Veuillez patienter...",
+DlgTemplatesNoTpl	: "(Aucun modèle disponible)",
+DlgTemplatesReplace	: "Remplacer tout le contenu",
+
+// About Dialog
+DlgAboutAboutTab	: "A propos de",
+DlgAboutBrowserInfoTab	: "Navigateur",
+DlgAboutLicenseTab	: "License",
+DlgAboutVersion		: "version",
+DlgAboutLicense		: "License selon les termes de GNU Lesser General Public License",
+DlgAboutInfo		: "Pour plus d'informations, aller à"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/et.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/et.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/et.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: et.js
+ * 	Estonian language file.
+ * 
+ * File Authors:
+ * 		Kristjan Kivikangur (kristjan@ttrk.ee)
+ * 		Gustav Kaskema
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Voldi tööriistariba",
+ToolbarExpand		: "Laienda tööriistariba",
+
+// Toolbar Items and Context Menu
+Save				: "Salvesta",
+NewPage				: "Uus leht",
+Preview				: "Eelvaade",
+Cut					: "Lõika",
+Copy				: "Kopeeri",
+Paste				: "Kleebi",
+PasteText			: "Kleebi tavalise tekstina",
+PasteWord			: "Kleebi Wordist",
+Print				: "Prindi",
+SelectAll			: "Vali kõik",
+RemoveFormat		: "Eemalda vorming",
+InsertLinkLbl		: "Link",
+InsertLink			: "Sisesta/Muuda link",
+RemoveLink			: "Eemalda link",
+Anchor				: "Sisesta/Muuda ankur",
+InsertImageLbl		: "Pilt",
+InsertImage			: "Sisesta/Muuda pilt",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Sisesta/Muuda flash",
+InsertTableLbl		: "Tabel",
+InsertTable			: "Sisesta/Muuda tabel",
+InsertLineLbl		: "Joon",
+InsertLine			: "Sisesta horisontaaljoon",
+InsertSpecialCharLbl: "Erimärgid",
+InsertSpecialChar	: "Sisesta erimärk",
+InsertSmileyLbl		: "Emotikon",
+InsertSmiley		: "Sisesta emotikon",
+About				: "FCKeditor teave",
+Bold				: "Rasvane kiri",
+Italic				: "Kursiiv kiri",
+Underline			: "Allajoonitud kiri",
+StrikeThrough		: "Läbijoonitud kiri",
+Subscript			: "Allindeks",
+Superscript			: "Ülaindeks",
+LeftJustify			: "Vasakjoondus",
+CenterJustify		: "Keskjoondus",
+RightJustify		: "Paremjoondus",
+BlockJustify		: "Rööpjoondus",
+DecreaseIndent		: "Vähenda taanet",
+IncreaseIndent		: "Suurenda taanet",
+Undo				: "Võta tagasi",
+Redo				: "Korda toimingut",
+NumberedListLbl		: "Nummerdatud loetelu",
+NumberedList		: "Sisesta/Eemalda nummerdatud loetelu",
+BulletedListLbl		: "Punktiseeritud loetelu",
+BulletedList		: "Sisesta/Eemalda punktiseeritud loetelu",
+ShowTableBorders	: "Näita tabeli jooni",
+ShowDetails			: "Näita üksikasju",
+Style				: "Laad",
+FontFormat			: "Vorming",
+Font				: "Kiri",
+FontSize			: "Suurus",
+TextColor			: "Teksti värv",
+BGColor				: "Tausta värv",
+Source				: "Lähtekood",
+Find				: "Otsi",
+Replace				: "Asenda",
+SpellCheck			: "Kontrolli õigekirja",
+UniversalKeyboard	: "Universaalne klaviatuur",
+PageBreakLbl		: "Lehepiir",
+PageBreak			: "Sisesta lehevahetus koht",
+
+Form			: "Vorm",
+Checkbox		: "Märkeruut",
+RadioButton		: "Raadionupp",
+TextField		: "Tekstilahter",
+Textarea		: "Tekstiala",
+HiddenField		: "Varjatud lahter",
+Button			: "Nupp",
+SelectionField	: "Valiklahter",
+ImageButton		: "Piltnupp",
+
+FitWindow		: "Maksimeeri redaktori mõõtmed",
+
+// Context Menu
+EditLink			: "Muuda linki",
+CellCM				: "Lahter",
+RowCM				: "Rida",
+ColumnCM			: "Veerg",
+InsertRow			: "Lisa rida",
+DeleteRows			: "Eemalda ridu",
+InsertColumn		: "Lisa veerg",
+DeleteColumns		: "Eemalda veerud",
+InsertCell			: "Lisa lahter",
+DeleteCells			: "Eemalda lahtrid",
+MergeCells			: "Ühenda lahtrid",
+SplitCell			: "Lahuta lahtrid",
+TableDelete			: "Kustuta tabel",
+CellProperties		: "Lahtri atribuudid",
+TableProperties		: "Tabeli atribuudid",
+ImageProperties		: "Pildi  atribuudid",
+FlashProperties		: "Flash omadused",
+
+AnchorProp			: "Ankru omadused",
+ButtonProp			: "Nupu omadused",
+CheckboxProp		: "Märkeruudu omadused",
+HiddenFieldProp		: "Varjatud lahtri omadused",
+RadioButtonProp		: "Raadionupu omadused",
+ImageButtonProp		: "Piltnupu omadused",
+TextFieldProp		: "Tekstilahtri omadused",
+SelectionFieldProp	: "Valiklahtri omadused",
+TextareaProp		: "Tekstiala omadused",
+FormProp			: "Vormi omadused",
+
+FontFormats			: "Tavaline;Vormindatud;Aadress;Pealkiri 1;Pealkiri 2;Pealkiri 3;Pealkiri 4;Pealkiri 5;Pealkiri 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Töötlen XHTML. Palun oota...",
+Done				: "Tehtud",
+PasteWordConfirm	: "Tekst, mida soovid lisada paistab pärinevat Wordist. Kas soovid seda enne kleepimist puhastada?",
+NotCompatiblePaste	: "See käsk on saadaval ainult Internet Explorer versioon 5.5 või uuema puhul. Kas soovid kleepida ilma puhastamata?",
+UnknownToolbarItem	: "Tundmatu tööriistariba üksus \"%1\"",
+UnknownCommand		: "Tundmatu käsunimi \"%1\"",
+NotImplemented		: "Käsku ei täidetud",
+UnknownToolbarSet	: "Tööriistariba \"%1\" ei eksisteeri",
+NoActiveX			: "Sinu interneti sirvija turvalisuse seaded võivad limiteerida mõningaid tekstirdaktori kasutus võimalusi. Sa peaksid võimaldama valiku \"Run ActiveX controls and plug-ins\" oma sirvija seadetes. Muidu võid sa täheldada vigu tekstiredaktori töös ja märgata puuduvaid funktsioone.",
+BrowseServerBlocked : "Ressursside sirvija avamine ebaõnnestus. Võimalda pop-up akende avanemine.",
+DialogBlocked		: "Ei olenud võimalik avada dialoogi akent. Võimalda pop-up akende avanemine.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Loobu",
+DlgBtnClose			: "Sulge",
+DlgBtnBrowseServer	: "Sirvi serverit",
+DlgAdvancedTag		: "Täpsemalt",
+DlgOpOther			: "<Teine>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Palun sisesta URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<määramata>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Keele suund",
+DlgGenLangDirLtr	: "Vasakult paremale (LTR)",
+DlgGenLangDirRtl	: "Paremalt vasakule (RTL)",
+DlgGenLangCode		: "Keele kood",
+DlgGenAccessKey		: "Juurdepääsu võti",
+DlgGenName			: "Nimi",
+DlgGenTabIndex		: "Tab indeks",
+DlgGenLongDescr		: "Pikk kirjeldus URL",
+DlgGenClass			: "Stiilistiku klassid",
+DlgGenTitle			: "Juhendav tiitel",
+DlgGenContType		: "Juhendava sisu tüüp",
+DlgGenLinkCharset	: "Lingitud ressurssi märgistik",
+DlgGenStyle			: "Laad",
+
+// Image Dialog
+DlgImgTitle			: "Pildi atribuudid",
+DlgImgInfoTab		: "Pildi info",
+DlgImgBtnUpload		: "Saada serverissee",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Lae üles",
+DlgImgAlt			: "Alternatiivne tekst",
+DlgImgWidth			: "Laius",
+DlgImgHeight		: "Kõrgus",
+DlgImgLockRatio		: "Lukusta kuvasuhe",
+DlgBtnResetSize		: "Lähtesta suurus",
+DlgImgBorder		: "Joon",
+DlgImgHSpace		: "H. vaheruum",
+DlgImgVSpace		: "V. vaheruum",
+DlgImgAlign			: "Joondus",
+DlgImgAlignLeft		: "Vasak",
+DlgImgAlignAbsBottom: "Abs alla",
+DlgImgAlignAbsMiddle: "Abs keskele",
+DlgImgAlignBaseline	: "Baasjoonele",
+DlgImgAlignBottom	: "Alla",
+DlgImgAlignMiddle	: "Keskele",
+DlgImgAlignRight	: "Paremale",
+DlgImgAlignTextTop	: "Tekstit üles",
+DlgImgAlignTop		: "Üles",
+DlgImgPreview		: "Eelvaade",
+DlgImgAlertUrl		: "Palun kirjuta pildi URL",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash omadused",
+DlgFlashChkPlay		: "Automaatne start ",
+DlgFlashChkLoop		: "Korduv",
+DlgFlashChkMenu		: "Võimalda flash menüü",
+DlgFlashScale		: "Mastaap",
+DlgFlashScaleAll	: "Näita kõike",
+DlgFlashScaleNoBorder	: "Äärist ei ole",
+DlgFlashScaleFit	: "Täpne sobivus",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Lingi info",
+DlgLnkTargetTab		: "Sihtkoht",
+
+DlgLnkType			: "Lingi tüüp",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Ankur sellel lehel",
+DlgLnkTypeEMail		: "E-post",
+DlgLnkProto			: "Protokoll",
+DlgLnkProtoOther	: "<muu>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Vali ankur",
+DlgLnkAnchorByName	: "Ankru nime järgi",
+DlgLnkAnchorById	: "Elemendi id järgi",
+DlgLnkNoAnchors		: "<Selles dokumendis ei ole ankruid>",
+DlgLnkEMail			: "E-posti aadress",
+DlgLnkEMailSubject	: "Sõnumi teema",
+DlgLnkEMailBody		: "Sõnumi tekst",
+DlgLnkUpload		: "Lae üles",
+DlgLnkBtnUpload		: "Saada serverisse",
+
+DlgLnkTarget		: "Sihtkoht",
+DlgLnkTargetFrame	: "<raam>",
+DlgLnkTargetPopup	: "<hüpikaken>",
+DlgLnkTargetBlank	: "Uus aken (_blank)",
+DlgLnkTargetParent	: "Vanem aken (_parent)",
+DlgLnkTargetSelf	: "Sama aken (_self)",
+DlgLnkTargetTop		: "Pealmine aken (_top)",
+DlgLnkTargetFrameName	: "Sihtmärk raami nimi",
+DlgLnkPopWinName	: "Hüpikakna nimi",
+DlgLnkPopWinFeat	: "Hüpikakna omadused",
+DlgLnkPopResize		: "Suurendatav",
+DlgLnkPopLocation	: "Aadressiriba",
+DlgLnkPopMenu		: "Menüüriba",
+DlgLnkPopScroll		: "Kerimisribad",
+DlgLnkPopStatus		: "Olekuriba",
+DlgLnkPopToolbar	: "Tööriistariba",
+DlgLnkPopFullScrn	: "Täisekraan (IE)",
+DlgLnkPopDependent	: "Sõltuv (Netscape)",
+DlgLnkPopWidth		: "Laius",
+DlgLnkPopHeight		: "Kõrgus",
+DlgLnkPopLeft		: "Vasak asukoht",
+DlgLnkPopTop		: "Ülemine asukoht",
+
+DlnLnkMsgNoUrl		: "Palun kirjuta lingi URL",
+DlnLnkMsgNoEMail	: "Palun kirjuta E-Posti aadress",
+DlnLnkMsgNoAnchor	: "Palun vali ankur",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Vali värv",
+DlgColorBtnClear	: "Tühjenda",
+DlgColorHighlight	: "Märgi",
+DlgColorSelected	: "Valitud",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Sisesta emotikon",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Vali erimärk",
+
+// Table Dialog
+DlgTableTitle		: "Tabeli atribuudid",
+DlgTableRows		: "Read",
+DlgTableColumns		: "Veerud",
+DlgTableBorder		: "Joone suurus",
+DlgTableAlign		: "Joondus",
+DlgTableAlignNotSet	: "<Määramata>",
+DlgTableAlignLeft	: "Vasak",
+DlgTableAlignCenter	: "Kesk",
+DlgTableAlignRight	: "Parem",
+DlgTableWidth		: "Laius",
+DlgTableWidthPx		: "pikslit",
+DlgTableWidthPc		: "protsenti",
+DlgTableHeight		: "Kõrgus",
+DlgTableCellSpace	: "Lahtri vahe",
+DlgTableCellPad		: "Lahtri täidis",
+DlgTableCaption		: "Tabeli tiitel",
+DlgTableSummary		: "Kokkuvõte",
+
+// Table Cell Dialog
+DlgCellTitle		: "Lahtri atribuudid",
+DlgCellWidth		: "Laius",
+DlgCellWidthPx		: "pikslit",
+DlgCellWidthPc		: "protsenti",
+DlgCellHeight		: "Kõrgus",
+DlgCellWordWrap		: "Sõna ülekanne",
+DlgCellWordWrapNotSet	: "<Määramata>",
+DlgCellWordWrapYes	: "Jah",
+DlgCellWordWrapNo	: "Ei",
+DlgCellHorAlign		: "Horisontaaljoondus",
+DlgCellHorAlignNotSet	: "<Määramata>",
+DlgCellHorAlignLeft	: "Vasak",
+DlgCellHorAlignCenter	: "Kesk",
+DlgCellHorAlignRight: "Parem",
+DlgCellVerAlign		: "Vertikaaljoondus",
+DlgCellVerAlignNotSet	: "<Määramata>",
+DlgCellVerAlignTop	: "Üles",
+DlgCellVerAlignMiddle	: "Keskele",
+DlgCellVerAlignBottom	: "Alla",
+DlgCellVerAlignBaseline	: "Baasjoonele",
+DlgCellRowSpan		: "Reaulatus",
+DlgCellCollSpan		: "Veeruulatus",
+DlgCellBackColor	: "Tausta värv",
+DlgCellBorderColor	: "Joone värv",
+DlgCellBtnSelect	: "Vali...",
+
+// Find Dialog
+DlgFindTitle		: "Otsi",
+DlgFindFindBtn		: "Otsi",
+DlgFindNotFoundMsg	: "Valitud teksti ei leitud.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Asenda",
+DlgReplaceFindLbl		: "Leia mida:",
+DlgReplaceReplaceLbl	: "Asenda millega:",
+DlgReplaceCaseChk		: "Erista suur- ja väiketähti",
+DlgReplaceReplaceBtn	: "Asenda",
+DlgReplaceReplAllBtn	: "Asenda kõik",
+DlgReplaceWordChk		: "Otsi terviklike sõnu",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Sinu interneti sirvija turvaseaded ei luba redaktoril automaatselt kleepida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+V).",
+PasteErrorCut	: "Sinu interneti sirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+X).",
+PasteErrorCopy	: "Sinu interneti sirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+C).",
+
+PasteAsText		: "Kleebi tavalise tekstina",
+PasteFromWord	: "Kleebi Wordist",
+
+DlgPasteMsg2	: "Palun kleebi järgnevasse kasti kasutades klaviatuuri klahvikombinatsiooni (<STRONG>Ctrl+V</STRONG>) ja vajuta seejärel <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignoreeri kirja definitsioone",
+DlgPasteRemoveStyles	: "Eemalda stiilide definitsioonid",
+DlgPasteCleanBox		: "Puhasta ära kast",
+
+// Color Picker
+ColorAutomatic	: "Automaatne",
+ColorMoreColors	: "Rohkem värve...",
+
+// Document Properties
+DocProps		: "Dokumendi omadused",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ankru omadused",
+DlgAnchorName		: "Ankru nimi",
+DlgAnchorErrorName	: "Palun sisest ankru nimi",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Puudub sõnastikust",
+DlgSpellChangeTo		: "Muuda",
+DlgSpellBtnIgnore		: "Ignoreeri",
+DlgSpellBtnIgnoreAll	: "Ignoreeri kõiki",
+DlgSpellBtnReplace		: "Asenda",
+DlgSpellBtnReplaceAll	: "Asenda kõik",
+DlgSpellBtnUndo			: "Võta tagasi",
+DlgSpellNoSuggestions	: "- Soovitused puuduvad -",
+DlgSpellProgress		: "Toimub õigekirja kontroll...",
+DlgSpellNoMispell		: "Õigekirja kontroll sooritatud: õigekirjuvigu ei leitud",
+DlgSpellNoChanges		: "Õigekirja kontroll sooritatud: ühtegi sõna ei muudetud",
+DlgSpellOneChange		: "Õigekirja kontroll sooritatud: üks sõna muudeti",
+DlgSpellManyChanges		: "Õigekirja kontroll sooritatud: %1 sõna muudetud",
+
+IeSpellDownload			: "Õigekirja kontrollija ei ole installeeritud. Soovid sa selle alla laadida?",
+
+// Button Dialog
+DlgButtonText		: "Tekst (väärtus)",
+DlgButtonType		: "Tüüp",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nimi",
+DlgCheckboxValue	: "Väärtus",
+DlgCheckboxSelected	: "Valitud",
+
+// Form Dialog
+DlgFormName		: "Nimi",
+DlgFormAction	: "Toiming",
+DlgFormMethod	: "Meetod",
+
+// Select Field Dialog
+DlgSelectName		: "Nimi",
+DlgSelectValue		: "Väärtus",
+DlgSelectSize		: "Suurus",
+DlgSelectLines		: "ridu",
+DlgSelectChkMulti	: "Võimalda mitu valikut",
+DlgSelectOpAvail	: "Võimalikud valikud",
+DlgSelectOpText		: "Tekst",
+DlgSelectOpValue	: "Väärtus",
+DlgSelectBtnAdd		: "Lisa",
+DlgSelectBtnModify	: "Muuda",
+DlgSelectBtnUp		: "Üles",
+DlgSelectBtnDown	: "Alla",
+DlgSelectBtnSetValue : "Sea valitud olekuna",
+DlgSelectBtnDelete	: "Kustuta",
+
+// Textarea Dialog
+DlgTextareaName	: "Nimi",
+DlgTextareaCols	: "Veerge",
+DlgTextareaRows	: "Ridu",
+
+// Text Field Dialog
+DlgTextName			: "Nimi",
+DlgTextValue		: "Väärtus",
+DlgTextCharWidth	: "Laius (tähemärkides)",
+DlgTextMaxChars		: "Maksimaalselt tähemärke",
+DlgTextType			: "Tüüp",
+DlgTextTypeText		: "Tekst",
+DlgTextTypePass		: "Parool",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nimi",
+DlgHiddenValue	: "Väärtus",
+
+// Bulleted List Dialog
+BulletedListProp	: "Täpitud loetelu omadused",
+NumberedListProp	: "Nummerdatud loetelu omadused",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tüüp",
+DlgLstTypeCircle	: "Ring",
+DlgLstTypeDisc		: "Ketas",
+DlgLstTypeSquare	: "Ruut",
+DlgLstTypeNumbers	: "Numbrid (1, 2, 3)",
+DlgLstTypeLCase		: "Väiketähed (a, b, c)",
+DlgLstTypeUCase		: "Suurtähed (A, B, C)",
+DlgLstTypeSRoman	: "Väiksed Rooma numbrid (i, ii, iii)",
+DlgLstTypeLRoman	: "Suured Rooma numbrid (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Üldine",
+DlgDocBackTab		: "Taust",
+DlgDocColorsTab		: "Värvid ja veerised",
+DlgDocMetaTab		: "Meta andmed",
+
+DlgDocPageTitle		: "Lehekülje tiitel",
+DlgDocLangDir		: "Kirja suund",
+DlgDocLangDirLTR	: "Vasakult paremale (LTR)",
+DlgDocLangDirRTL	: "Paremalt vasakule (RTL)",
+DlgDocLangCode		: "Keele kood",
+DlgDocCharSet		: "Märgistiku kodeering",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Ülejäänud märgistike kodeeringud",
+
+DlgDocDocType		: "Dokumendi tüüppäis",
+DlgDocDocTypeOther	: "Teised dokumendi tüüppäised",
+DlgDocIncXHTML		: "Arva kaasa XHTML deklaratsioonid",
+DlgDocBgColor		: "Taustavärv",
+DlgDocBgImage		: "Taustapildi URL",
+DlgDocBgNoScroll	: "Mittekeritav tagataust",
+DlgDocCText			: "Tekst",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Külastatud link",
+DlgDocCActive		: "Aktiivne link",
+DlgDocMargins		: "Lehekülje äärised",
+DlgDocMaTop			: "Ülaserv",
+DlgDocMaLeft		: "Vasakserv",
+DlgDocMaRight		: "Paremserv",
+DlgDocMaBottom		: "Alaserv",
+DlgDocMeIndex		: "Dokumendi võtmesõnad (eraldatud komadega)",
+DlgDocMeDescr		: "Dokumendi kirjeldus",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Autoriõigus",
+DlgDocPreview		: "Eelvaade",
+
+// Templates Dialog
+Templates			: "Šabloon",
+DlgTemplatesTitle	: "Sisu šabloonid",
+DlgTemplatesSelMsg	: "Palun vali šabloon, et avada see redaktoris<br />(praegune sisu läheb kaotsi):",
+DlgTemplatesLoading	: "Laen šabloonide nimekirja. Palun oota...",
+DlgTemplatesNoTpl	: "(Ühtegi šablooni ei ole defineeritud)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Teave",
+DlgAboutBrowserInfoTab	: "Interneti sirvija info",
+DlgAboutLicenseTab	: "Litsents",
+DlgAboutVersion		: "versioon",
+DlgAboutLicense		: "Litsenseeritud GNU Lesser General Public License litsentsiga",
+DlgAboutInfo		: "Täpsema info saamiseks mine"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/nl.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/nl.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/nl.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: nl.js
+ * 	Dutch language file.
+ * 
+ * File Authors:
+ * 		Bram Crins (bcrins@realdesign.nl)
+ * 		Aaron van Geffen (aaron@aaronweb.net)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Menubalk inklappen",
+ToolbarExpand		: "Menubalk uitklappen",
+
+// Toolbar Items and Context Menu
+Save				: "Opslaan",
+NewPage				: "Nieuwe pagina",
+Preview				: "Voorbeeld",
+Cut					: "Knippen",
+Copy				: "Kopiëren",
+Paste				: "Plakken",
+PasteText			: "Plakken als platte tekst",
+PasteWord			: "Plakken als Word-gegevens",
+Print				: "Printen",
+SelectAll			: "Alles selecteren",
+RemoveFormat		: "Opmaak verwijderen",
+InsertLinkLbl		: "Link",
+InsertLink			: "Invoegen/Wijzigen link",
+RemoveLink			: "Verwijderen link",
+Anchor				: "Interne link",
+InsertImageLbl		: "Afbeelding",
+InsertImage			: "Invoegen/Wijzigen afbeelding",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Invoegen/Wijzigen Flash",
+InsertTableLbl		: "Tabel",
+InsertTable			: "Invoegen/Wijzigen tabel",
+InsertLineLbl		: "Lijn",
+InsertLine			: "Invoegen horizontale lijn",
+InsertSpecialCharLbl: "Speciale tekens",
+InsertSpecialChar	: "Speciaal teken invoegen",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Smiley invoegen",
+About				: "Over FCKeditor",
+Bold				: "Vet",
+Italic				: "Schuingedrukt",
+Underline			: "Onderstreept",
+StrikeThrough		: "Doorhalen",
+Subscript			: "Subscript",
+Superscript			: "Superscript",
+LeftJustify			: "Links uitlijnen",
+CenterJustify		: "Centreren",
+RightJustify		: "Rechts uitlijnen",
+BlockJustify		: "Uitvullen",
+DecreaseIndent		: "Oplopenend",
+IncreaseIndent		: "Aflopend",
+Undo				: "Ongedaan maken",
+Redo				: "Opnieuw",
+NumberedListLbl		: "Genummerde lijst",
+NumberedList		: "Invoegen/Verwijderen genummerde lijst",
+BulletedListLbl		: "Opsomming",
+BulletedList		: "Invoegen/Verwijderen opsomming",
+ShowTableBorders	: "Randen tabel weergeven",
+ShowDetails			: "Details weergeven",
+Style				: "Stijl",
+FontFormat			: "Opmaak",
+Font				: "Lettertype",
+FontSize			: "Grootte",
+TextColor			: "Tekstkleur",
+BGColor				: "Achtergrondkleur",
+Source				: "Code",
+Find				: "Zoeken",
+Replace				: "Vervangen",
+SpellCheck			: "Spellingscontrole",
+UniversalKeyboard	: "Universeel toetsenbord",
+PageBreakLbl		: "Pagina-einde",
+PageBreak			: "Pagina-einde invoegen",
+
+Form			: "Formulier",
+Checkbox		: "Aanvinkvakje",
+RadioButton		: "Selectievakje",
+TextField		: "Tekstveld",
+Textarea		: "Tekstvak",
+HiddenField		: "Verborgen veld",
+Button			: "Knop",
+SelectionField	: "Selectieveld",
+ImageButton		: "Afbeeldingsknop",
+
+FitWindow		: "De editor maximaliseren",
+
+// Context Menu
+EditLink			: "Link wijzigen",
+CellCM				: "Cel",
+RowCM				: "Rij",
+ColumnCM			: "Kolom",
+InsertRow			: "Rij invoegen",
+DeleteRows			: "Rijen verwijderen",
+InsertColumn		: "Kolom invoegen",
+DeleteColumns		: "Kolommen verwijderen",
+InsertCell			: "Cel",
+DeleteCells			: "Cellen verwijderen",
+MergeCells			: "Cellen samenvoegen",
+SplitCell			: "Cellen splitsen",
+TableDelete			: "Tabel verwijderen",
+CellProperties		: "Eigenschappen cel",
+TableProperties		: "Eigenschappen tabel",
+ImageProperties		: "Eigenschappen afbeelding",
+FlashProperties		: "Eigenschappen Flash",
+
+AnchorProp			: "Eigenschappen interne link",
+ButtonProp			: "Eigenschappen knop",
+CheckboxProp		: "Eigenschappen aanvinkvakje",
+HiddenFieldProp		: "Eigenschappen verborgen veld",
+RadioButtonProp		: "Eigenschappen selectievakje",
+ImageButtonProp		: "Eigenschappen afbeeldingsknop",
+TextFieldProp		: "Eigenschappen tekstveld",
+SelectionFieldProp	: "Eigenschappen selectieveld",
+TextareaProp		: "Eigenschappen tekstvak",
+FormProp			: "Eigenschappen formulier",
+
+FontFormats			: "Normaal;Met opmaak;Adres;Kop 1;Kop 2;Kop 3;Kop 4;Kop 5;Kop 6;Normaal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Verwerken XHTML. Even geduld aub...",
+Done				: "Klaar",
+PasteWordConfirm	: "De tekst die je plakte lijkt gekopieerd uit te zijn Word. Wil je de tekst opschonen voordat deze geplakt wordt?",
+NotCompatiblePaste	: "Deze opdracht is beschikbaar voor Internet Explorer versie 5.5 of hoger. Wil je plakken zonder op te schonen?",
+UnknownToolbarItem	: "Onbekend item op menubalk \"%1\"",
+UnknownCommand		: "Onbekende opdrachtnaam: \"%1\"",
+NotImplemented		: "Opdracht niet geïmplementeerd.",
+UnknownToolbarSet	: "Menubalk \"%1\" bestaat niet.",
+NoActiveX			: "De beveilingsinstellingen van je browser zouden sommige functies van de editor kunnen beperken. De optie \"Activeer ActiveX-elementen en plug-ins\" dient ingeschakeld te worden. Het kan zijn dat er nu functies ontbreken of niet werken.",
+BrowseServerBlocked : "De bestandsbrowser kon niet geopend worden. Zorg ervoor dat pop-up-blokkeerders uit staan.",
+DialogBlocked		: "Kan het dialoogvenster niet weergeven. Zorg ervoor dat pop-up-blokkeerders uit staan.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Annuleren",
+DlgBtnClose			: "Afsluiten",
+DlgBtnBrowseServer	: "Bladeren op server",
+DlgAdvancedTag		: "Geavanceerd",
+DlgOpOther			: "<Anders>",
+DlgInfoTab			: "Informatie",
+DlgAlertUrl			: "Geef URL op",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<niet ingevuld>",
+DlgGenId			: "Kenmerk",
+DlgGenLangDir		: "Schrijfrichting",
+DlgGenLangDirLtr	: "Links naar rechts (LTR)",
+DlgGenLangDirRtl	: "Rechts naar links (RTL)",
+DlgGenLangCode		: "Codetaal",
+DlgGenAccessKey		: "Toegangstoets",
+DlgGenName			: "Naam",
+DlgGenTabIndex		: "Tabvolgorde",
+DlgGenLongDescr		: "Lange URL-omschrijving",
+DlgGenClass			: "Stylesheet-klassen",
+DlgGenTitle			: "Aanbevolen titel",
+DlgGenContType		: "Aanbevolen content-type",
+DlgGenLinkCharset	: "Karakterset van gelinkte bron",
+DlgGenStyle			: "Stijl",
+
+// Image Dialog
+DlgImgTitle			: "Eigenschappen afbeelding",
+DlgImgInfoTab		: "Informatie afbeelding",
+DlgImgBtnUpload		: "Naar server verzenden",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Upload",
+DlgImgAlt			: "Alternatieve tekst",
+DlgImgWidth			: "Breedte",
+DlgImgHeight		: "Hoogte",
+DlgImgLockRatio		: "Afmetingen vergrendelen",
+DlgBtnResetSize		: "Afmetingen resetten",
+DlgImgBorder		: "Rand",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Uitlijning",
+DlgImgAlignLeft		: "Links",
+DlgImgAlignAbsBottom: "Absoluut-onder",
+DlgImgAlignAbsMiddle: "Absoluut-midden",
+DlgImgAlignBaseline	: "Basislijn",
+DlgImgAlignBottom	: "Beneden",
+DlgImgAlignMiddle	: "Midden",
+DlgImgAlignRight	: "Rechts",
+DlgImgAlignTextTop	: "Boven tekst",
+DlgImgAlignTop		: "Boven",
+DlgImgPreview		: "Voorbeeld",
+DlgImgAlertUrl		: "Geef de URL van de afbeelding",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Eigenschappen Flash",
+DlgFlashChkPlay		: "Automatisch afspelen",
+DlgFlashChkLoop		: "Herhalen",
+DlgFlashChkMenu		: "Flashmenu\'s inschakelen",
+DlgFlashScale		: "Schaal",
+DlgFlashScaleAll	: "Alles tonen",
+DlgFlashScaleNoBorder	: "Geen rand",
+DlgFlashScaleFit	: "Precies passend",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Linkomschrijving",
+DlgLnkTargetTab		: "Doel",
+
+DlgLnkType			: "Linktype",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Interne link in pagina",
+DlgLnkTypeEMail		: "E-mail",
+DlgLnkProto			: "Protocol",
+DlgLnkProtoOther	: "<anders>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Kies een interne link",
+DlgLnkAnchorByName	: "Op naam interne link",
+DlgLnkAnchorById	: "Op kenmerk interne link",
+DlgLnkNoAnchors		: "<Geen interne links in document gevonden.>",
+DlgLnkEMail			: "E-mailadres",
+DlgLnkEMailSubject	: "Onderwerp bericht",
+DlgLnkEMailBody		: "Inhoud bericht",
+DlgLnkUpload		: "Upload",
+DlgLnkBtnUpload		: "Naar de server versturen",
+
+DlgLnkTarget		: "Doel",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<popup window>",
+DlgLnkTargetBlank	: "Nieuw venster (_blank)",
+DlgLnkTargetParent	: "Origineel venster (_parent)",
+DlgLnkTargetSelf	: "Zelfde venster (_self)",
+DlgLnkTargetTop		: "Hele venster (_top)",
+DlgLnkTargetFrameName	: "Naam doelframe",
+DlgLnkPopWinName	: "Naam popupvenster",
+DlgLnkPopWinFeat	: "Instellingen popupvenster",
+DlgLnkPopResize		: "Grootte wijzigen",
+DlgLnkPopLocation	: "Locatiemenu",
+DlgLnkPopMenu		: "Menubalk",
+DlgLnkPopScroll		: "Schuifbalken",
+DlgLnkPopStatus		: "Statusbalk",
+DlgLnkPopToolbar	: "Menubalk",
+DlgLnkPopFullScrn	: "Volledig scherm (IE)",
+DlgLnkPopDependent	: "Afhankelijk (Netscape)",
+DlgLnkPopWidth		: "Breedte",
+DlgLnkPopHeight		: "Hoogte",
+DlgLnkPopLeft		: "Positie links",
+DlgLnkPopTop		: "Positie boven",
+
+DlnLnkMsgNoUrl		: "Geef de link van de URL",
+DlnLnkMsgNoEMail	: "Geef een e-mailadres",
+DlnLnkMsgNoAnchor	: "Selecteer een interne link",
+DlnLnkMsgInvPopName	: "De naam van de popup moet met een alfa-numerieke waarde beginnen, en mag geen spaties bevatten.",
+
+// Color Dialog
+DlgColorTitle		: "Selecteer kleur",
+DlgColorBtnClear	: "Opschonen",
+DlgColorHighlight	: "Accentueren",
+DlgColorSelected	: "Geselecteerd",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Smiley invoegen",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Selecteer speciaal teken",
+
+// Table Dialog
+DlgTableTitle		: "Eigenschappen tabel",
+DlgTableRows		: "Rijen",
+DlgTableColumns		: "Kolommen",
+DlgTableBorder		: "Breedte rand",
+DlgTableAlign		: "Uitlijning",
+DlgTableAlignNotSet	: "<Niet ingevoerd>",
+DlgTableAlignLeft	: "Links",
+DlgTableAlignCenter	: "Centreren",
+DlgTableAlignRight	: "Rechts",
+DlgTableWidth		: "Breedte",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "procent",
+DlgTableHeight		: "Hoogte",
+DlgTableCellSpace	: "Afstand tussen cellen",
+DlgTableCellPad		: "Afstand vanaf rand cel",
+DlgTableCaption		: "Naam",
+DlgTableSummary		: "Samenvatting",
+
+// Table Cell Dialog
+DlgCellTitle		: "Eigenschappen cel",
+DlgCellWidth		: "Breedte",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "procent",
+DlgCellHeight		: "Hoogte",
+DlgCellWordWrap		: "Afbreken woorden",
+DlgCellWordWrapNotSet	: "<Niet ingevoerd>",
+DlgCellWordWrapYes	: "Ja",
+DlgCellWordWrapNo	: "Nee",
+DlgCellHorAlign		: "Horizontale uitlijning",
+DlgCellHorAlignNotSet	: "<Niet ingevoerd>",
+DlgCellHorAlignLeft	: "Links",
+DlgCellHorAlignCenter	: "Centreren",
+DlgCellHorAlignRight: "Rechts",
+DlgCellVerAlign		: "Verticale uitlijning",
+DlgCellVerAlignNotSet	: "<Niet ingevoerd>",
+DlgCellVerAlignTop	: "Boven",
+DlgCellVerAlignMiddle	: "Midden",
+DlgCellVerAlignBottom	: "Beneden",
+DlgCellVerAlignBaseline	: "Basislijn",
+DlgCellRowSpan		: "Overkoepeling rijen",
+DlgCellCollSpan		: "Overkoepeling kolommen",
+DlgCellBackColor	: "Achtergrondkleur",
+DlgCellBorderColor	: "Randkleur",
+DlgCellBtnSelect	: "Selecteren...",
+
+// Find Dialog
+DlgFindTitle		: "Zoeken",
+DlgFindFindBtn		: "Zoeken",
+DlgFindNotFoundMsg	: "De opgegeven tekst is niet gevonden.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Vervangen",
+DlgReplaceFindLbl		: "Zoeken naar:",
+DlgReplaceReplaceLbl	: "Vervangen met:",
+DlgReplaceCaseChk		: "Hoofdlettergevoelig",
+DlgReplaceReplaceBtn	: "Vervangen",
+DlgReplaceReplAllBtn	: "Alles vervangen",
+DlgReplaceWordChk		: "Hele woord moet voorkomen",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "De beveiligingsinstelling van de browser verhinderen het automatisch plakken. Gebruik de sneltoets Ctrl+V van het toetsenbord.",
+PasteErrorCut	: "De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl+X van het toetsenbord.",
+PasteErrorCopy	: "De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl+C van het toetsenbord.",
+
+PasteAsText		: "Plakken als platte tekst",
+PasteFromWord	: "Plakken als Word-gegevens",
+
+DlgPasteMsg2	: "Plak de tekst in het volgende vak gebruik makend van je toetstenbord (<STRONG>Ctrl+V</STRONG>) en klik op <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Negeer \"Font Face\"-definities",
+DlgPasteRemoveStyles	: "Verwijder \"Style\"-definities",
+DlgPasteCleanBox		: "Vak opschonen",
+
+// Color Picker
+ColorAutomatic	: "Automatisch",
+ColorMoreColors	: "Meer kleuren...",
+
+// Document Properties
+DocProps		: "Eigenschappen document",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Eigenschappen interne link",
+DlgAnchorName		: "Naam interne link",
+DlgAnchorErrorName	: "Geef de naam van de interne link op",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Niet in het woordenboek",
+DlgSpellChangeTo		: "Wijzig in",
+DlgSpellBtnIgnore		: "Negeren",
+DlgSpellBtnIgnoreAll	: "Alles negeren",
+DlgSpellBtnReplace		: "Vervangen",
+DlgSpellBtnReplaceAll	: "Alles vervangen",
+DlgSpellBtnUndo			: "Ongedaan maken",
+DlgSpellNoSuggestions	: "-Geen suggesties-",
+DlgSpellProgress		: "Bezig met spellingscontrole...",
+DlgSpellNoMispell		: "Klaar met spellingscontrole: geen fouten gevonden",
+DlgSpellNoChanges		: "Klaar met spellingscontrole: geen woorden aangepast",
+DlgSpellOneChange		: "Klaar met spellingscontrole: één woord aangepast",
+DlgSpellManyChanges		: "Klaar met spellingscontrole: %1 woorden aangepast",
+
+IeSpellDownload			: "De spellingscontrole niet geïnstalleerd. Wil je deze nu downloaden?",
+
+// Button Dialog
+DlgButtonText		: "Tekst (waarde)",
+DlgButtonType		: "Soort",
+DlgButtonTypeBtn	: "Knop",
+DlgButtonTypeSbm	: "Versturen",
+DlgButtonTypeRst	: "Leegmaken",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Naam",
+DlgCheckboxValue	: "Waarde",
+DlgCheckboxSelected	: "Geselecteerd",
+
+// Form Dialog
+DlgFormName		: "Naam",
+DlgFormAction	: "Actie",
+DlgFormMethod	: "Methode",
+
+// Select Field Dialog
+DlgSelectName		: "Naam",
+DlgSelectValue		: "Waarde",
+DlgSelectSize		: "Grootte",
+DlgSelectLines		: "Regels",
+DlgSelectChkMulti	: "Gecombineerde selecties toestaan",
+DlgSelectOpAvail	: "Beschikbare opties",
+DlgSelectOpText		: "Tekst",
+DlgSelectOpValue	: "Waarde",
+DlgSelectBtnAdd		: "Toevoegen",
+DlgSelectBtnModify	: "Wijzigen",
+DlgSelectBtnUp		: "Omhoog",
+DlgSelectBtnDown	: "Omlaag",
+DlgSelectBtnSetValue : "Als geselecteerde waarde instellen",
+DlgSelectBtnDelete	: "Verwijderen",
+
+// Textarea Dialog
+DlgTextareaName	: "Naam",
+DlgTextareaCols	: "Kolommen",
+DlgTextareaRows	: "Rijen",
+
+// Text Field Dialog
+DlgTextName			: "Naam",
+DlgTextValue		: "Waarde",
+DlgTextCharWidth	: "Breedte (tekens)",
+DlgTextMaxChars		: "Maximum aantal tekens",
+DlgTextType			: "Soort",
+DlgTextTypeText		: "Tekst",
+DlgTextTypePass		: "Wachtwoord",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Naam",
+DlgHiddenValue	: "Waarde",
+
+// Bulleted List Dialog
+BulletedListProp	: "Eigenschappen opsommingslijst",
+NumberedListProp	: "Eigenschappen genummerde opsommingslijst",
+DlgLstStart			: "Start",
+DlgLstType			: "Soort",
+DlgLstTypeCircle	: "Cirkel",
+DlgLstTypeDisc		: "Schijf",
+DlgLstTypeSquare	: "Vierkant",
+DlgLstTypeNumbers	: "Nummers (1, 2, 3)",
+DlgLstTypeLCase		: "Kleine letters (a, b, c)",
+DlgLstTypeUCase		: "Hoofdletters (A, B, C)",
+DlgLstTypeSRoman	: "Klein Romeins (i, ii, iii)",
+DlgLstTypeLRoman	: "Groot Romeins (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Algemeen",
+DlgDocBackTab		: "Achtergrond",
+DlgDocColorsTab		: "Kleuring en marges",
+DlgDocMetaTab		: "META-data",
+
+DlgDocPageTitle		: "Paginatitel",
+DlgDocLangDir		: "Schrijfrichting",
+DlgDocLangDirLTR	: "Links naar rechts",
+DlgDocLangDirRTL	: "Rechts naar links",
+DlgDocLangCode		: "Taalcode",
+DlgDocCharSet		: "Karakterset-encoding",
+DlgDocCharSetCE		: "Centraal Europees",
+DlgDocCharSetCT		: "Traditioneel Chinees (Big5)",
+DlgDocCharSetCR		: "Cyriliaans",
+DlgDocCharSetGR		: "Grieks",
+DlgDocCharSetJP		: "Japans",
+DlgDocCharSetKR		: "Koreaans",
+DlgDocCharSetTR		: "Turks",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "West europees",
+DlgDocCharSetOther	: "Andere karakterset-encoding",
+
+DlgDocDocType		: "Opschrift documentsoort",
+DlgDocDocTypeOther	: "Ander opschrift documentsoort",
+DlgDocIncXHTML		: "XHTML-declaraties meenemen",
+DlgDocBgColor		: "Achtergrondkleur",
+DlgDocBgImage		: "URL achtergrondplaatje",
+DlgDocBgNoScroll	: "Vaste achtergrond",
+DlgDocCText			: "Tekst",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Bezochte link",
+DlgDocCActive		: "Active link",
+DlgDocMargins		: "Afstandsinstellingen document",
+DlgDocMaTop			: "Boven",
+DlgDocMaLeft		: "Links",
+DlgDocMaRight		: "Rechts",
+DlgDocMaBottom		: "Onder",
+DlgDocMeIndex		: "Trefwoorden betreffende document (kommagescheiden)",
+DlgDocMeDescr		: "Beschrijving document",
+DlgDocMeAuthor		: "Auteur",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Voorbeeld",
+
+// Templates Dialog
+Templates			: "Sjablonen",
+DlgTemplatesTitle	: "Inhoud sjabonen",
+DlgTemplatesSelMsg	: "Selecteer het sjabloon dat in de editor geopend moet worden (de actuele inhoud gaat verloren):",
+DlgTemplatesLoading	: "Bezig met laden sjabonen. Even geduld alstublieft...",
+DlgTemplatesNoTpl	: "(Geen sjablonen gedefinieerd)",
+DlgTemplatesReplace	: "Vervang de huidige inhoud",
+
+// About Dialog
+DlgAboutAboutTab	: "Over",
+DlgAboutBrowserInfoTab	: "Browserinformatie",
+DlgAboutLicenseTab	: "Licentie",
+DlgAboutVersion		: "Versie",
+DlgAboutLicense		: "Gelicenceerd onder de condities van het GNU Lesser General Public License",
+DlgAboutInfo		: "Voor meer informatie ga naar "
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/hr.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/hr.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/hr.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: hr.js
+ * 	Croatian language file.
+ * 
+ * File Authors:
+ * 		Alex Varga (avarga@globaldizajn.hr)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Smanji trake s alatima",
+ToolbarExpand		: "Proširi trake s alatima",
+
+// Toolbar Items and Context Menu
+Save				: "Snimi",
+NewPage				: "Nova stranica",
+Preview				: "Pregledaj",
+Cut					: "Izreži",
+Copy				: "Kopiraj",
+Paste				: "Zalijepi",
+PasteText			: "Zalijepi kao čisti tekst",
+PasteWord			: "Zalijepi iz Worda",
+Print				: "Ispiši",
+SelectAll			: "Odaberi sve",
+RemoveFormat		: "Ukloni formatiranje",
+InsertLinkLbl		: "Link",
+InsertLink			: "Ubaci/promijeni link",
+RemoveLink			: "Ukloni link",
+Anchor				: "Ubaci/promijeni sidro",
+InsertImageLbl		: "Slika",
+InsertImage			: "Ubaci/promijeni sliku",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Ubaci/promijeni Flash",
+InsertTableLbl		: "Tablica",
+InsertTable			: "Ubaci/promijeni tablicu",
+InsertLineLbl		: "Linija",
+InsertLine			: "Ubaci vodoravnu liniju",
+InsertSpecialCharLbl: "Posebni karakteri",
+InsertSpecialChar	: "Ubaci posebne znakove",
+InsertSmileyLbl		: "Smješko",
+InsertSmiley		: "Ubaci smješka",
+About				: "O FCKeditoru",
+Bold				: "Podebljaj",
+Italic				: "Ukosi",
+Underline			: "Potcrtano",
+StrikeThrough		: "Precrtano",
+Subscript			: "Subscript",
+Superscript			: "Superscript",
+LeftJustify			: "Lijevo poravnanje",
+CenterJustify		: "Središnje poravnanje",
+RightJustify		: "Desno poravnanje",
+BlockJustify		: "Blok poravnanje",
+DecreaseIndent		: "Pomakni ulijevo",
+IncreaseIndent		: "Pomakni udesno",
+Undo				: "Poništi",
+Redo				: "Ponovi",
+NumberedListLbl		: "Brojčana lista",
+NumberedList		: "Ubaci/ukloni brojčanu listu",
+BulletedListLbl		: "Obična lista",
+BulletedList		: "Ubaci/ukloni običnu listu",
+ShowTableBorders	: "Prikaži okvir tablice",
+ShowDetails			: "Prikaži detalje",
+Style				: "Stil",
+FontFormat			: "Format",
+Font				: "Font",
+FontSize			: "Veličina",
+TextColor			: "Boja teksta",
+BGColor				: "Boja pozadine",
+Source				: "Kôd",
+Find				: "Pronađi",
+Replace				: "Zamijeni",
+SpellCheck			: "Provjeri pravopis",
+UniversalKeyboard	: "Univerzalna tipkovnica",
+PageBreakLbl		: "Prijelom stranice",
+PageBreak			: "Ubaci prijelom stranice",
+
+Form			: "Form",
+Checkbox		: "Checkbox",
+RadioButton		: "Radio Button",
+TextField		: "Text Field",
+Textarea		: "Textarea",
+HiddenField		: "Hidden Field",
+Button			: "Button",
+SelectionField	: "Selection Field",
+ImageButton		: "Image Button",
+
+FitWindow		: "Povećaj veličinu editora",
+
+// Context Menu
+EditLink			: "Promijeni link",
+CellCM				: "Ćelija",
+RowCM				: "Red",
+ColumnCM			: "Kolona",
+InsertRow			: "Ubaci red",
+DeleteRows			: "Izbriši redove",
+InsertColumn		: "Ubaci kolonu",
+DeleteColumns		: "Izbriši kolone",
+InsertCell			: "Ubaci ćelije",
+DeleteCells			: "Izbriši ćelije",
+MergeCells			: "Spoji ćelije",
+SplitCell			: "Razdvoji ćelije",
+TableDelete			: "Izbriši tablicu",
+CellProperties		: "Svojstva ćelije",
+TableProperties		: "Svojstva tablice",
+ImageProperties		: "Svojstva slike",
+FlashProperties		: "Flash svojstva",
+
+AnchorProp			: "Svojstva sidra",
+ButtonProp			: "Image Button svojstva",
+CheckboxProp		: "Checkbox svojstva",
+HiddenFieldProp		: "Hidden Field svojstva",
+RadioButtonProp		: "Radio Button svojstva",
+ImageButtonProp		: "Image Button svojstva",
+TextFieldProp		: "Text Field svojstva",
+SelectionFieldProp	: "Selection svojstva",
+TextareaProp		: "Textarea svojstva",
+FormProp			: "Form svojstva",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Obrađujem XHTML. Molimo pričekajte...",
+Done				: "Završio",
+PasteWordConfirm	: "Tekst koji želite zalijepiti čini se da je kopiran iz Worda. Želite li prije očistiti tekst?",
+NotCompatiblePaste	: "Ova naredba je dostupna samo u Internet Exploreru 5.5 ili novijem. Želite li nastaviti bez čišćenja?",
+UnknownToolbarItem	: "Nepoznati član trake s alatima \"%1\"",
+UnknownCommand		: "Nepoznata naredba \"%1\"",
+NotImplemented		: "Naredba nije implementirana",
+UnknownToolbarSet	: "Traka s alatima \"%1\" ne postoji",
+NoActiveX			: "Vaše postavke pretraživača mogle bi ograničiti neke od mogućnosti editora. Morate uključiti opciju \"Run ActiveX controls and plug-ins\" u postavkama. Ukoliko to ne učinite, moguće su razliite greške tijekom rada.",
+BrowseServerBlocked : "Pretraivač nije moguće otvoriti. Provjerite da li je uključeno blokiranje pop-up prozora.",
+DialogBlocked		: "Nije moguće otvoriti novi prozor. Provjerite da li je uključeno blokiranje pop-up prozora.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Poništi",
+DlgBtnClose			: "Zatvori",
+DlgBtnBrowseServer	: "Pretraži server",
+DlgAdvancedTag		: "Napredno",
+DlgOpOther			: "<Drugo>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Molimo unesite URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nije postavljeno>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Smjer jezika",
+DlgGenLangDirLtr	: "S lijeva na desno (LTR)",
+DlgGenLangDirRtl	: "S desna na lijevo (RTL)",
+DlgGenLangCode		: "Kôd jezika",
+DlgGenAccessKey		: "Pristupna tipka",
+DlgGenName			: "Naziv",
+DlgGenTabIndex		: "Tab Indeks",
+DlgGenLongDescr		: "Dugački opis URL",
+DlgGenClass			: "Stylesheet klase",
+DlgGenTitle			: "Advisory naslov",
+DlgGenContType		: "Advisory vrsta sadržaja",
+DlgGenLinkCharset	: "Kodna stranica povezanih resursa",
+DlgGenStyle			: "Stil",
+
+// Image Dialog
+DlgImgTitle			: "Svojstva slika",
+DlgImgInfoTab		: "Info slike",
+DlgImgBtnUpload		: "Pošalji na server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Pošalji",
+DlgImgAlt			: "Alternativni tekst",
+DlgImgWidth			: "Širina",
+DlgImgHeight		: "Visina",
+DlgImgLockRatio		: "Zaključaj odnos",
+DlgBtnResetSize		: "Obriši veličinu",
+DlgImgBorder		: "Okvir",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Poravnaj",
+DlgImgAlignLeft		: "Lijevo",
+DlgImgAlignAbsBottom: "Abs dolje",
+DlgImgAlignAbsMiddle: "Abs sredina",
+DlgImgAlignBaseline	: "Bazno",
+DlgImgAlignBottom	: "Dolje",
+DlgImgAlignMiddle	: "Sredina",
+DlgImgAlignRight	: "Desno",
+DlgImgAlignTextTop	: "Vrh teksta",
+DlgImgAlignTop		: "Vrh",
+DlgImgPreview		: "Pregledaj",
+DlgImgAlertUrl		: "Unesite URL slike",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash svojstva",
+DlgFlashChkPlay		: "Auto Play",
+DlgFlashChkLoop		: "Ponavljaj",
+DlgFlashChkMenu		: "Omogući Flash izbornik",
+DlgFlashScale		: "Omjer",
+DlgFlashScaleAll	: "Prikaži sve",
+DlgFlashScaleNoBorder	: "Bez okvira",
+DlgFlashScaleFit	: "Točna veličina",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Link Info",
+DlgLnkTargetTab		: "Meta",
+
+DlgLnkType			: "Link vrsta",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Sidro na ovoj stranici",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<drugo>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Odaberi sidro",
+DlgLnkAnchorByName	: "Po nazivu sidra",
+DlgLnkAnchorById	: "Po Id elementa",
+DlgLnkNoAnchors		: "<Nema dostupnih sidra>",
+DlgLnkEMail			: "E-Mail adresa",
+DlgLnkEMailSubject	: "Naslov",
+DlgLnkEMailBody		: "Sadržaj poruke",
+DlgLnkUpload		: "Pošalji",
+DlgLnkBtnUpload		: "Pošalji na server",
+
+DlgLnkTarget		: "Meta",
+DlgLnkTargetFrame	: "<okvir>",
+DlgLnkTargetPopup	: "<popup prozor>",
+DlgLnkTargetBlank	: "Novi prozor (_blank)",
+DlgLnkTargetParent	: "Roditeljski prozor (_parent)",
+DlgLnkTargetSelf	: "Isti prozor (_self)",
+DlgLnkTargetTop		: "Vršni prozor (_top)",
+DlgLnkTargetFrameName	: "Ime ciljnog okvira",
+DlgLnkPopWinName	: "Naziv popup prozora",
+DlgLnkPopWinFeat	: "Mogućnosti popup prozora",
+DlgLnkPopResize		: "Promjenljive veličine",
+DlgLnkPopLocation	: "Traka za lokaciju",
+DlgLnkPopMenu		: "Izborna traka",
+DlgLnkPopScroll		: "Scroll traka",
+DlgLnkPopStatus		: "Statusna traka",
+DlgLnkPopToolbar	: "Traka s alatima",
+DlgLnkPopFullScrn	: "Cijeli ekran (IE)",
+DlgLnkPopDependent	: "Ovisno (Netscape)",
+DlgLnkPopWidth		: "Širina",
+DlgLnkPopHeight		: "Visina",
+DlgLnkPopLeft		: "Lijeva pozicija",
+DlgLnkPopTop		: "Gornja pozicija",
+
+DlnLnkMsgNoUrl		: "Molimo upišite URL link",
+DlnLnkMsgNoEMail	: "Molimo upišite e-mail adresu",
+DlnLnkMsgNoAnchor	: "Molimo odaberite sidro",
+DlnLnkMsgInvPopName	: "Ime popup prozora mora početi sa slovom i ne smije sadržavati razmake",
+
+// Color Dialog
+DlgColorTitle		: "Odaberite boju",
+DlgColorBtnClear	: "Obriši",
+DlgColorHighlight	: "Osvijetli",
+DlgColorSelected	: "Odaberi",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Ubaci smješka",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Odaberite posebni karakter",
+
+// Table Dialog
+DlgTableTitle		: "Svojstva tablice",
+DlgTableRows		: "Redova",
+DlgTableColumns		: "Kolona",
+DlgTableBorder		: "Veličina okvira",
+DlgTableAlign		: "Poravnanje",
+DlgTableAlignNotSet	: "<nije postavljeno>",
+DlgTableAlignLeft	: "Lijevo",
+DlgTableAlignCenter	: "Središnje",
+DlgTableAlignRight	: "Desno",
+DlgTableWidth		: "Širina",
+DlgTableWidthPx		: "piksela",
+DlgTableWidthPc		: "postotaka",
+DlgTableHeight		: "Visina",
+DlgTableCellSpace	: "Prostornost ćelija",
+DlgTableCellPad		: "Razmak ćelija",
+DlgTableCaption		: "Naslov",
+DlgTableSummary		: "Sažetak",
+
+// Table Cell Dialog
+DlgCellTitle		: "Svojstva ćelije",
+DlgCellWidth		: "Širina",
+DlgCellWidthPx		: "piksela",
+DlgCellWidthPc		: "postotaka",
+DlgCellHeight		: "Visina",
+DlgCellWordWrap		: "Word Wrap",
+DlgCellWordWrapNotSet	: "<nije postavljeno>",
+DlgCellWordWrapYes	: "Da",
+DlgCellWordWrapNo	: "Ne",
+DlgCellHorAlign		: "Vodoravno poravnanje",
+DlgCellHorAlignNotSet	: "<nije postavljeno>",
+DlgCellHorAlignLeft	: "Lijevo",
+DlgCellHorAlignCenter	: "Središnje",
+DlgCellHorAlignRight: "Desno",
+DlgCellVerAlign		: "Okomito poravnanje",
+DlgCellVerAlignNotSet	: "<nije postavljeno>",
+DlgCellVerAlignTop	: "Gornje",
+DlgCellVerAlignMiddle	: "Srednišnje",
+DlgCellVerAlignBottom	: "Donje",
+DlgCellVerAlignBaseline	: "Bazno",
+DlgCellRowSpan		: "Spajanje redova",
+DlgCellCollSpan		: "Spajanje kolona",
+DlgCellBackColor	: "Boja pozadine",
+DlgCellBorderColor	: "Boja okvira",
+DlgCellBtnSelect	: "Odaberi...",
+
+// Find Dialog
+DlgFindTitle		: "Pronađi",
+DlgFindFindBtn		: "Pronađi",
+DlgFindNotFoundMsg	: "Traženi tekst nije pronađen.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Zamijeni",
+DlgReplaceFindLbl		: "Pronađi:",
+DlgReplaceReplaceLbl	: "Zamijeni s:",
+DlgReplaceCaseChk		: "Usporedi mala/velika slova",
+DlgReplaceReplaceBtn	: "Zamijeni",
+DlgReplaceReplAllBtn	: "Zamijeni sve",
+DlgReplaceWordChk		: "Usporedi cijele riječi",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog ljepljenja. Molimo koristite kraticu na tipkovnici (Ctrl+V).",
+PasteErrorCut	: "Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl+X).",
+PasteErrorCopy	: "Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl+C).",
+
+PasteAsText		: "Zalijepi kao čisti tekst",
+PasteFromWord	: "Zalijepi iz Worda",
+
+DlgPasteMsg2	: "Molimo zaljepite unutar doljnjeg okvira koristeći tipkovnicu (<STRONG>Ctrl+V</STRONG>) i kliknite <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Zanemari definiciju vrste fonta",
+DlgPasteRemoveStyles	: "Ukloni definicije stilova",
+DlgPasteCleanBox		: "Očisti okvir",
+
+// Color Picker
+ColorAutomatic	: "Automatski",
+ColorMoreColors	: "Više boja...",
+
+// Document Properties
+DocProps		: "Svojstva dokumenta",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Svojstva sidra",
+DlgAnchorName		: "Ime sidra",
+DlgAnchorErrorName	: "Molimo unesite ime sidra",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Nije u rječniku",
+DlgSpellChangeTo		: "Promijeni u",
+DlgSpellBtnIgnore		: "Zanemari",
+DlgSpellBtnIgnoreAll	: "Zanemari sve",
+DlgSpellBtnReplace		: "Zamijeni",
+DlgSpellBtnReplaceAll	: "Zamijeni sve",
+DlgSpellBtnUndo			: "Vrati",
+DlgSpellNoSuggestions	: "-Nema preporuke-",
+DlgSpellProgress		: "Provjera u tijeku...",
+DlgSpellNoMispell		: "Provjera završena: Nema grešaka",
+DlgSpellNoChanges		: "Provjera završena: Nije napravljena promjena",
+DlgSpellOneChange		: "Provjera završena: Jedna riječ promjenjena",
+DlgSpellManyChanges		: "Provjera završena: Promijenjeno %1 riječi",
+
+IeSpellDownload			: "Provjera pravopisa nije instalirana. Želite li skinuti provjeru pravopisa?",
+
+// Button Dialog
+DlgButtonText		: "Tekst (vrijednost)",
+DlgButtonType		: "Vrsta",
+DlgButtonTypeBtn	: "Gumb",
+DlgButtonTypeSbm	: "Pošalji",
+DlgButtonTypeRst	: "Poništi",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Ime",
+DlgCheckboxValue	: "Vrijednost",
+DlgCheckboxSelected	: "Odabrano",
+
+// Form Dialog
+DlgFormName		: "Ime",
+DlgFormAction	: "Akcija",
+DlgFormMethod	: "Metoda",
+
+// Select Field Dialog
+DlgSelectName		: "Ime",
+DlgSelectValue		: "Vrijednost",
+DlgSelectSize		: "Veličina",
+DlgSelectLines		: "linija",
+DlgSelectChkMulti	: "Dozvoli višestruki odabir",
+DlgSelectOpAvail	: "Dostupne opcije",
+DlgSelectOpText		: "Tekst",
+DlgSelectOpValue	: "Vrijednost",
+DlgSelectBtnAdd		: "Dodaj",
+DlgSelectBtnModify	: "Promijeni",
+DlgSelectBtnUp		: "Gore",
+DlgSelectBtnDown	: "Dolje",
+DlgSelectBtnSetValue : "Postavi kao odabranu vrijednost",
+DlgSelectBtnDelete	: "Obriši",
+
+// Textarea Dialog
+DlgTextareaName	: "Ime",
+DlgTextareaCols	: "Kolona",
+DlgTextareaRows	: "Redova",
+
+// Text Field Dialog
+DlgTextName			: "Ime",
+DlgTextValue		: "Vrijednost",
+DlgTextCharWidth	: "Širina",
+DlgTextMaxChars		: "Najviše karaktera",
+DlgTextType			: "Vrsta",
+DlgTextTypeText		: "Tekst",
+DlgTextTypePass		: "Šifra",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Ime",
+DlgHiddenValue	: "Vrijednost",
+
+// Bulleted List Dialog
+BulletedListProp	: "Svojstva liste",
+NumberedListProp	: "Svojstva brojčane liste",
+DlgLstStart			: "Početak",
+DlgLstType			: "Vrsta",
+DlgLstTypeCircle	: "Krug",
+DlgLstTypeDisc		: "Disk",
+DlgLstTypeSquare	: "Kvadrat",
+DlgLstTypeNumbers	: "Brojevi (1, 2, 3)",
+DlgLstTypeLCase		: "Mala slova (a, b, c)",
+DlgLstTypeUCase		: "Velika slova (A, B, C)",
+DlgLstTypeSRoman	: "Male rimske brojke (i, ii, iii)",
+DlgLstTypeLRoman	: "Velike rimske brojke (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Općenito",
+DlgDocBackTab		: "Pozadina",
+DlgDocColorsTab		: "Boje i margine",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Naslov stranice",
+DlgDocLangDir		: "Smjer jezika",
+DlgDocLangDirLTR	: "S lijeva na desno",
+DlgDocLangDirRTL	: "S desna na lijevo",
+DlgDocLangCode		: "Kôd jezika",
+DlgDocCharSet		: "Enkodiranje znakova",
+DlgDocCharSetCE		: "Središnja Europa",
+DlgDocCharSetCT		: "Tradicionalna kineska (Big5)",
+DlgDocCharSetCR		: "Ćirilica",
+DlgDocCharSetGR		: "Grčka",
+DlgDocCharSetJP		: "Japanska",
+DlgDocCharSetKR		: "Koreanska",
+DlgDocCharSetTR		: "Turska",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Zapadna Europa",
+DlgDocCharSetOther	: "Ostalo enkodiranje znakova",
+
+DlgDocDocType		: "Zaglavlje vrste dokumenta",
+DlgDocDocTypeOther	: "Ostalo zaglavlje vrste dokumenta",
+DlgDocIncXHTML		: "Ubaci XHTML deklaracije",
+DlgDocBgColor		: "Boja pozadine",
+DlgDocBgImage		: "URL slike pozadine",
+DlgDocBgNoScroll	: "Pozadine se ne pomiče",
+DlgDocCText			: "Tekst",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Posjećeni link",
+DlgDocCActive		: "Aktivni link",
+DlgDocMargins		: "Margine stranice",
+DlgDocMaTop			: "Vrh",
+DlgDocMaLeft		: "Lijevo",
+DlgDocMaRight		: "Desno",
+DlgDocMaBottom		: "Dolje",
+DlgDocMeIndex		: "Ključne riječi dokumenta (odvojene zarezom)",
+DlgDocMeDescr		: "Opis dokumenta",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Autorska prava",
+DlgDocPreview		: "Pregledaj",
+
+// Templates Dialog
+Templates			: "Predlošci",
+DlgTemplatesTitle	: "Predlošci sadržaja",
+DlgTemplatesSelMsg	: "Molimo odaberite predložak koji želite otvoriti<br>(stvarni sadržaj će biti izgubljen):",
+DlgTemplatesLoading	: "Učitavam listu predložaka. Molimo pričekajte...",
+DlgTemplatesNoTpl	: "(Nema definiranih predložaka)",
+DlgTemplatesReplace	: "Zamijeni trenutne sadržaje",
+
+// About Dialog
+DlgAboutAboutTab	: "O FCKEditoru",
+DlgAboutBrowserInfoTab	: "Podaci o pretraživaču",
+DlgAboutLicenseTab	: "Licenca",
+DlgAboutVersion		: "inačica",
+DlgAboutLicense		: "Licencirano pod uvjetima GNU Lesser General Public License",
+DlgAboutInfo		: "Za više informacija posjetite"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/mn.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/mn.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/mn.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: mn.js
+ * 	Mongolian language file.
+ * 
+ * File Authors:
+ * 		Lkamtseren ODONBAATAR (odonbaatarl@yahoo.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Багажны хэсэг эвдэх",
+ToolbarExpand		: "Багажны хэсэг өргөтгөх",
+
+// Toolbar Items and Context Menu
+Save				: "Хадгалах",
+NewPage				: "Шинэ хуудас",
+Preview				: "Уридчлан харах",
+Cut					: "Хайчлах",
+Copy				: "Хуулах",
+Paste				: "Буулгах",
+PasteText			: "plain text-ээс буулгах",
+PasteWord			: "Word-оос буулгах",
+Print				: "Хэвлэх",
+SelectAll			: "Бүгдийг нь сонгох",
+RemoveFormat		: "Формат авч хаях",
+InsertLinkLbl		: "Линк",
+InsertLink			: "Линк Оруулах/Засварлах",
+RemoveLink			: "Линк авч хаях",
+Anchor				: "Insert/Edit Anchor",	//MISSING
+InsertImageLbl		: "Зураг",
+InsertImage			: "Зураг Оруулах/Засварлах",
+InsertFlashLbl		: "Flash",	//MISSING
+InsertFlash			: "Insert/Edit Flash",	//MISSING
+InsertTableLbl		: "Хүснэгт",
+InsertTable			: "Хүснэгт Оруулах/Засварлах",
+InsertLineLbl		: "Зураас",
+InsertLine			: "Хөндлөн зураас оруулах",
+InsertSpecialCharLbl: "Онцгой тэмдэгт",
+InsertSpecialChar	: "Онцгой тэмдэгт оруулах",
+InsertSmileyLbl		: "Тодорхойлолт",
+InsertSmiley		: "Тодорхойлолт оруулах",
+About				: "FCKeditor-н тухай",
+Bold				: "Тод бүдүүн",
+Italic				: "Налуу",
+Underline			: "Доогуур нь зураастай болгох",
+StrikeThrough		: "Дундуур нь зураастай болгох",
+Subscript			: "Суурь болгох",
+Superscript			: "Зэрэг болгох",
+LeftJustify			: "Зүүн талд байрлуулах",
+CenterJustify		: "Төвд байрлуулах",
+RightJustify		: "Баруун талд байрлуулах",
+BlockJustify		: "Блок хэлбэрээр байрлуулах",
+DecreaseIndent		: "Догол мөр нэмэх",
+IncreaseIndent		: "Догол мөр хасах",
+Undo				: "Хүчингүй болгох",
+Redo				: "Өмнөх үйлдлээ сэргээх",
+NumberedListLbl		: "Дугаарлагдсан жагсаалт",
+NumberedList		: "Дугаарлагдсан жагсаалт Оруулах/Авах",
+BulletedListLbl		: "Цэгтэй жагсаалт",
+BulletedList		: "Цэгтэй жагсаалт Оруулах/Авах",
+ShowTableBorders	: "Хүснэгтийн хүрээг үзүүлэх",
+ShowDetails			: "Деталчлан үзүүлэх",
+Style				: "Загвар",
+FontFormat			: "Формат",
+Font				: "Фонт",
+FontSize			: "Хэмжээ",
+TextColor			: "Фонтны өнгө",
+BGColor				: "Фонны өнгө",
+Source				: "Код",
+Find				: "Хайх",
+Replace				: "Солих",
+SpellCheck			: "Check Spelling",	//MISSING
+UniversalKeyboard	: "Universal Keyboard",	//MISSING
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
+
+Form			: "Form",	//MISSING
+Checkbox		: "Checkbox",	//MISSING
+RadioButton		: "Radio Button",	//MISSING
+TextField		: "Text Field",	//MISSING
+Textarea		: "Textarea",	//MISSING
+HiddenField		: "Hidden Field",	//MISSING
+Button			: "Button",	//MISSING
+SelectionField	: "Selection Field",	//MISSING
+ImageButton		: "Image Button",	//MISSING
+
+FitWindow		: "Maximize the editor size",	//MISSING
+
+// Context Menu
+EditLink			: "Холбоос засварлах",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRow			: "Мөр оруулах",
+DeleteRows			: "Мөр устгах",
+InsertColumn		: "Багана оруулах",
+DeleteColumns		: "Багана устгах",
+InsertCell			: "Нүх оруулах",
+DeleteCells			: "Нүх устгах",
+MergeCells			: "Нүх нэгтэх",
+SplitCell			: "Нүх тусгайрлах",
+TableDelete			: "Delete Table",	//MISSING
+CellProperties		: "Хоосон зайн шинж чанар",
+TableProperties		: "Хүснэгт",
+ImageProperties		: "Зураг",
+FlashProperties		: "Flash Properties",	//MISSING
+
+AnchorProp			: "Anchor Properties",	//MISSING
+ButtonProp			: "Button Properties",	//MISSING
+CheckboxProp		: "Checkbox Properties",	//MISSING
+HiddenFieldProp		: "Hidden Field Properties",	//MISSING
+RadioButtonProp		: "Radio Button Properties",	//MISSING
+ImageButtonProp		: "Image Button Properties",	//MISSING
+TextFieldProp		: "Text Field Properties",	//MISSING
+SelectionFieldProp	: "Selection Field Properties",	//MISSING
+TextareaProp		: "Textarea Properties",	//MISSING
+FormProp			: "Form Properties",	//MISSING
+
+FontFormats			: "Хэвийн;Formatted;Хаяг;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML үйл явц явагдаж байна. Хүлээнэ үү...",
+Done				: "Хийх",
+PasteWordConfirm	: "Word-оос хуулсан текстээ санаж байгааг нь буулгахыг та хүсч байна уу. Та текст-ээ буулгахын өмнө цэвэрлэх үү?",
+NotCompatiblePaste	: "Энэ комманд Internet Explorer-ын 5.5 буюу түүнээс дээш хувилбарт идвэхшинэ. Та цэвэрлэхгүйгээр буулгахыг хүсч байна?",
+UnknownToolbarItem	: "Багажны хэсгийн \"%1\" item мэдэгдэхгүй байна",
+UnknownCommand		: "\"%1\" комманд нэр мэдагдэхгүй байна",
+NotImplemented		: "Зөвшөөрөгдөхгүй комманд",
+UnknownToolbarSet	: "Багажны хэсэгт \"%1\" оноох, үүсээгүй байна",
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Болих",
+DlgBtnClose			: "Хаах",
+DlgBtnBrowseServer	: "Browse Server",	//MISSING
+DlgAdvancedTag		: "Нэмэлт",
+DlgOpOther			: "<Other>",	//MISSING
+DlgInfoTab			: "Info",	//MISSING
+DlgAlertUrl			: "Please insert the URL",	//MISSING
+
+// General Dialogs Labels
+DlgGenNotSet		: "<Оноохгүй>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Хэлний чиглэл",
+DlgGenLangDirLtr	: "Зүүнээс баруун (LTR)",
+DlgGenLangDirRtl	: "Баруунаас зүүн (RTL)",
+DlgGenLangCode		: "Хэлний код",
+DlgGenAccessKey		: "Холбох түлхүүр",
+DlgGenName			: "Нэр",
+DlgGenTabIndex		: "Tab индекс",
+DlgGenLongDescr		: "URL-ын тайлбар",
+DlgGenClass			: "Stylesheet классууд",
+DlgGenTitle			: "Зөвлөлдөх гарчиг",
+DlgGenContType		: "Зөвлөлдөх төрлийн агуулга",
+DlgGenLinkCharset	: "Тэмдэгт оноох нөөцөд холбогдсон",
+DlgGenStyle			: "Загвар",
+
+// Image Dialog
+DlgImgTitle			: "Зураг",
+DlgImgInfoTab		: "Зурагны мэдээлэл",
+DlgImgBtnUpload		: "Үүнийг сервэррүү илгээ",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Хуулах",
+DlgImgAlt			: "Тайлбар текст",
+DlgImgWidth			: "Өргөн",
+DlgImgHeight		: "Өндөр",
+DlgImgLockRatio		: "Lock Ratio",
+DlgBtnResetSize		: "хэмжээ дахин оноох",
+DlgImgBorder		: "Хүрээ",
+DlgImgHSpace		: "Хөндлөн зай",
+DlgImgVSpace		: "Босоо зай",
+DlgImgAlign			: "Эгнээ",
+DlgImgAlignLeft		: "Зүүн",
+DlgImgAlignAbsBottom: "Abs доод талд",
+DlgImgAlignAbsMiddle: "Abs Дунд талд",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Доод талд",
+DlgImgAlignMiddle	: "Дунд талд",
+DlgImgAlignRight	: "Баруун",
+DlgImgAlignTextTop	: "Текст дээр",
+DlgImgAlignTop		: "Дээд талд",
+DlgImgPreview		: "Уридчлан харах",
+DlgImgAlertUrl		: "Зурагны URL-ын төрлийн сонгоно уу",
+DlgImgLinkTab		: "Link",	//MISSING
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Properties",	//MISSING
+DlgFlashChkPlay		: "Auto Play",	//MISSING
+DlgFlashChkLoop		: "Loop",	//MISSING
+DlgFlashChkMenu		: "Enable Flash Menu",	//MISSING
+DlgFlashScale		: "Scale",	//MISSING
+DlgFlashScaleAll	: "Show all",	//MISSING
+DlgFlashScaleNoBorder	: "No Border",	//MISSING
+DlgFlashScaleFit	: "Exact Fit",	//MISSING
+
+// Link Dialog
+DlgLnkWindowTitle	: "Линк",
+DlgLnkInfoTab		: "Линкийн мэдээлэл",
+DlgLnkTargetTab		: "Байрлал",
+
+DlgLnkType			: "Линкийн төрөл",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Энэ хуудасандах холбоос",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Протокол",
+DlgLnkProtoOther	: "<бусад>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Холбоос сонгох",
+DlgLnkAnchorByName	: "Холбоосын нэрээр",
+DlgLnkAnchorById	: "Элемэнт Id-гаар",
+DlgLnkNoAnchors		: "<Баримт бичиг холбоосгүй байна>",
+DlgLnkEMail			: "E-Mail Хаяг",
+DlgLnkEMailSubject	: "Message Subject",
+DlgLnkEMailBody		: "Message-ийн агуулга",
+DlgLnkUpload		: "Хуулах",
+DlgLnkBtnUpload		: "Үүнийг серверрүү илгээ",
+
+DlgLnkTarget		: "Байрлал",
+DlgLnkTargetFrame	: "<Агуулах хүрээ>",
+DlgLnkTargetPopup	: "<popup цонх>",
+DlgLnkTargetBlank	: "Шинэ цонх (_blank)",
+DlgLnkTargetParent	: "Эцэг цонх (_parent)",
+DlgLnkTargetSelf	: "Төстэй цонх (_self)",
+DlgLnkTargetTop		: "Хамгийн түрүүн байх цонх (_top)",
+DlgLnkTargetFrameName	: "Target Frame Name",	//MISSING
+DlgLnkPopWinName	: "Popup цонхны нэр",
+DlgLnkPopWinFeat	: "Popup цонхны онцлог",
+DlgLnkPopResize		: "Хэмжээ өөрчлөх",
+DlgLnkPopLocation	: "Location хэсэг",
+DlgLnkPopMenu		: "Meню хэсэг",
+DlgLnkPopScroll		: "Скрол хэсэгүүд",
+DlgLnkPopStatus		: "Статус хэсэг",
+DlgLnkPopToolbar	: "Багажны хэсэг",
+DlgLnkPopFullScrn	: "Цонх дүүргэх (IE)",
+DlgLnkPopDependent	: "Хамаатай (Netscape)",
+DlgLnkPopWidth		: "Өргөн",
+DlgLnkPopHeight		: "Өндөр",
+DlgLnkPopLeft		: "Зүүн байрлал",
+DlgLnkPopTop		: "Дээд байрлал",
+
+DlnLnkMsgNoUrl		: "Линк URL-ээ төрөлжүүлнэ үү",
+DlnLnkMsgNoEMail	: "Е-mail хаягаа төрөлжүүлнэ үү",
+DlnLnkMsgNoAnchor	: "Холбоосоо сонгоно уу",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Өнгө сонгох",
+DlgColorBtnClear	: "Цэвэрлэх",
+DlgColorHighlight	: "Өнгө",
+DlgColorSelected	: "Сонгогдсон",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Тодорхойлолт оруулах",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Онцгой тэмдэгт сонгох",
+
+// Table Dialog
+DlgTableTitle		: "Хүснэгт",
+DlgTableRows		: "Мөр",
+DlgTableColumns		: "Багана",
+DlgTableBorder		: "Хүрээний хэмжээ",
+DlgTableAlign		: "Эгнээ",
+DlgTableAlignNotSet	: "<Оноохгүй>",
+DlgTableAlignLeft	: "Зүүн талд",
+DlgTableAlignCenter	: "Төвд",
+DlgTableAlignRight	: "Баруун талд",
+DlgTableWidth		: "Өргөн",
+DlgTableWidthPx		: "цэг",
+DlgTableWidthPc		: "хувь",
+DlgTableHeight		: "Өндөр",
+DlgTableCellSpace	: "Нүх хоорондын зай",
+DlgTableCellPad		: "Нүх доторлох",
+DlgTableCaption		: "Тайлбар",
+DlgTableSummary		: "Summary",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "Хоосон зайн шинж чанар",
+DlgCellWidth		: "Өргөн",
+DlgCellWidthPx		: "цэг",
+DlgCellWidthPc		: "хувь",
+DlgCellHeight		: "Өндөр",
+DlgCellWordWrap		: "Үг таслах",
+DlgCellWordWrapNotSet	: "<Оноохгүй>",
+DlgCellWordWrapYes	: "Тийм",
+DlgCellWordWrapNo	: "Үгүй",
+DlgCellHorAlign		: "Босоо эгнээ",
+DlgCellHorAlignNotSet	: "<Оноохгүй>",
+DlgCellHorAlignLeft	: "Зүүн",
+DlgCellHorAlignCenter	: "Төв",
+DlgCellHorAlignRight: "Баруун",
+DlgCellVerAlign		: "Хөндлөн эгнээ",
+DlgCellVerAlignNotSet	: "<Оноохгүй>",
+DlgCellVerAlignTop	: "Дээд тал",
+DlgCellVerAlignMiddle	: "Дунд",
+DlgCellVerAlignBottom	: "Доод тал",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellRowSpan		: "Нийт мөр",
+DlgCellCollSpan		: "Нийт багана",
+DlgCellBackColor	: "Фонны өнгө",
+DlgCellBorderColor	: "Хүрээний өнгө",
+DlgCellBtnSelect	: "Сонго...",
+
+// Find Dialog
+DlgFindTitle		: "Хайх",
+DlgFindFindBtn		: "Хайх",
+DlgFindNotFoundMsg	: "Хайсан текст олсонгүй.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Солих",
+DlgReplaceFindLbl		: "Хайх үг/үсэг:",
+DlgReplaceReplaceLbl	: "Солих үг:",
+DlgReplaceCaseChk		: "Тэнцэх төлөв",
+DlgReplaceReplaceBtn	: "Солих",
+DlgReplaceReplAllBtn	: "Бүгдийг нь Солих",
+DlgReplaceWordChk		: "Тэнцэх бүтэн үг",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар буулгах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl+V) товчны хослолыг ашиглана уу.",
+PasteErrorCut	: "Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хайчлах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl+X) товчны хослолыг ашиглана уу.",
+PasteErrorCopy	: "Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хуулах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl+C) товчны хослолыг ашиглана уу.",
+
+PasteAsText		: "Plain Text-ээс буулгах",
+PasteFromWord	: "Word-оос буулгах",
+
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",	//MISSING
+DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
+DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
+DlgPasteCleanBox		: "Clean Up Box",	//MISSING
+
+// Color Picker
+ColorAutomatic	: "Автоматаар",
+ColorMoreColors	: "Нэмэлт өнгөнүүд...",
+
+// Document Properties
+DocProps		: "Document Properties",	//MISSING
+
+// Anchor Dialog
+DlgAnchorTitle		: "Anchor Properties",	//MISSING
+DlgAnchorName		: "Anchor Name",	//MISSING
+DlgAnchorErrorName	: "Please type the anchor name",	//MISSING
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Not in dictionary",	//MISSING
+DlgSpellChangeTo		: "Change to",	//MISSING
+DlgSpellBtnIgnore		: "Ignore",	//MISSING
+DlgSpellBtnIgnoreAll	: "Ignore All",	//MISSING
+DlgSpellBtnReplace		: "Replace",	//MISSING
+DlgSpellBtnReplaceAll	: "Replace All",	//MISSING
+DlgSpellBtnUndo			: "Undo",	//MISSING
+DlgSpellNoSuggestions	: "- No suggestions -",	//MISSING
+DlgSpellProgress		: "Spell check in progress...",	//MISSING
+DlgSpellNoMispell		: "Spell check complete: No misspellings found",	//MISSING
+DlgSpellNoChanges		: "Spell check complete: No words changed",	//MISSING
+DlgSpellOneChange		: "Spell check complete: One word changed",	//MISSING
+DlgSpellManyChanges		: "Spell check complete: %1 words changed",	//MISSING
+
+IeSpellDownload			: "Spell checker not installed. Do you want to download it now?",	//MISSING
+
+// Button Dialog
+DlgButtonText		: "Text (Value)",	//MISSING
+DlgButtonType		: "Type",	//MISSING
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Name",	//MISSING
+DlgCheckboxValue	: "Value",	//MISSING
+DlgCheckboxSelected	: "Selected",	//MISSING
+
+// Form Dialog
+DlgFormName		: "Name",	//MISSING
+DlgFormAction	: "Action",	//MISSING
+DlgFormMethod	: "Method",	//MISSING
+
+// Select Field Dialog
+DlgSelectName		: "Name",	//MISSING
+DlgSelectValue		: "Value",	//MISSING
+DlgSelectSize		: "Size",	//MISSING
+DlgSelectLines		: "lines",	//MISSING
+DlgSelectChkMulti	: "Allow multiple selections",	//MISSING
+DlgSelectOpAvail	: "Available Options",	//MISSING
+DlgSelectOpText		: "Text",	//MISSING
+DlgSelectOpValue	: "Value",	//MISSING
+DlgSelectBtnAdd		: "Add",	//MISSING
+DlgSelectBtnModify	: "Modify",	//MISSING
+DlgSelectBtnUp		: "Up",	//MISSING
+DlgSelectBtnDown	: "Down",	//MISSING
+DlgSelectBtnSetValue : "Set as selected value",	//MISSING
+DlgSelectBtnDelete	: "Delete",	//MISSING
+
+// Textarea Dialog
+DlgTextareaName	: "Name",	//MISSING
+DlgTextareaCols	: "Columns",	//MISSING
+DlgTextareaRows	: "Rows",	//MISSING
+
+// Text Field Dialog
+DlgTextName			: "Name",	//MISSING
+DlgTextValue		: "Value",	//MISSING
+DlgTextCharWidth	: "Character Width",	//MISSING
+DlgTextMaxChars		: "Maximum Characters",	//MISSING
+DlgTextType			: "Type",	//MISSING
+DlgTextTypeText		: "Text",	//MISSING
+DlgTextTypePass		: "Password",	//MISSING
+
+// Hidden Field Dialog
+DlgHiddenName	: "Name",	//MISSING
+DlgHiddenValue	: "Value",	//MISSING
+
+// Bulleted List Dialog
+BulletedListProp	: "Bulleted List Properties",	//MISSING
+NumberedListProp	: "Numbered List Properties",	//MISSING
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Type",	//MISSING
+DlgLstTypeCircle	: "Circle",	//MISSING
+DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeSquare	: "Square",	//MISSING
+DlgLstTypeNumbers	: "Numbers (1, 2, 3)",	//MISSING
+DlgLstTypeLCase		: "Lowercase Letters (a, b, c)",	//MISSING
+DlgLstTypeUCase		: "Uppercase Letters (A, B, C)",	//MISSING
+DlgLstTypeSRoman	: "Small Roman Numerals (i, ii, iii)",	//MISSING
+DlgLstTypeLRoman	: "Large Roman Numerals (I, II, III)",	//MISSING
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "General",	//MISSING
+DlgDocBackTab		: "Background",	//MISSING
+DlgDocColorsTab		: "Colors and Margins",	//MISSING
+DlgDocMetaTab		: "Meta Data",	//MISSING
+
+DlgDocPageTitle		: "Page Title",	//MISSING
+DlgDocLangDir		: "Language Direction",	//MISSING
+DlgDocLangDirLTR	: "Left to Right (LTR)",	//MISSING
+DlgDocLangDirRTL	: "Right to Left (RTL)",	//MISSING
+DlgDocLangCode		: "Language Code",	//MISSING
+DlgDocCharSet		: "Character Set Encoding",	//MISSING
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Other Character Set Encoding",	//MISSING
+
+DlgDocDocType		: "Document Type Heading",	//MISSING
+DlgDocDocTypeOther	: "Other Document Type Heading",	//MISSING
+DlgDocIncXHTML		: "Include XHTML Declarations",	//MISSING
+DlgDocBgColor		: "Background Color",	//MISSING
+DlgDocBgImage		: "Background Image URL",	//MISSING
+DlgDocBgNoScroll	: "Nonscrolling Background",	//MISSING
+DlgDocCText			: "Text",	//MISSING
+DlgDocCLink			: "Link",	//MISSING
+DlgDocCVisited		: "Visited Link",	//MISSING
+DlgDocCActive		: "Active Link",	//MISSING
+DlgDocMargins		: "Page Margins",	//MISSING
+DlgDocMaTop			: "Top",	//MISSING
+DlgDocMaLeft		: "Left",	//MISSING
+DlgDocMaRight		: "Right",	//MISSING
+DlgDocMaBottom		: "Bottom",	//MISSING
+DlgDocMeIndex		: "Document Indexing Keywords (comma separated)",	//MISSING
+DlgDocMeDescr		: "Document Description",	//MISSING
+DlgDocMeAuthor		: "Author",	//MISSING
+DlgDocMeCopy		: "Copyright",	//MISSING
+DlgDocPreview		: "Preview",	//MISSING
+
+// Templates Dialog
+Templates			: "Templates",	//MISSING
+DlgTemplatesTitle	: "Content Templates",	//MISSING
+DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",	//MISSING
+DlgTemplatesLoading	: "Loading templates list. Please wait...",	//MISSING
+DlgTemplatesNoTpl	: "(No templates defined)",	//MISSING
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "About",	//MISSING
+DlgAboutBrowserInfoTab	: "Browser Info",	//MISSING
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "Хувилбар",
+DlgAboutLicense		: "GNU цөөн ерөнхий нийтийн лицензийн ангилалд багтсан зөвшөөрөлтэй",
+DlgAboutInfo		: "Мэдээллээр туслах"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/pl.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/pl.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/pl.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: pl.js
+ * 	Polish language file.
+ * 
+ * File Authors:
+ * 		Jakub Boesche (jboesche@gazeta.pl)
+ * 		Maciej Bochynski (maciej.bochynski@lubman.pl)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Zwiń pasek narzędzi",
+ToolbarExpand		: "Rozwiń pasek narzędzi",
+
+// Toolbar Items and Context Menu
+Save				: "Zapisz",
+NewPage				: "Nowa strona",
+Preview				: "Podgląd",
+Cut					: "Wytnij",
+Copy				: "Kopiuj",
+Paste				: "Wklej",
+PasteText			: "Wklej jako czysty tekst",
+PasteWord			: "Wklej z Worda",
+Print				: "Drukuj",
+SelectAll			: "Zaznacz wszystko",
+RemoveFormat		: "Usuń formatowanie",
+InsertLinkLbl		: "Hiperłącze",
+InsertLink			: "Wstaw/edytuj hiperłącze",
+RemoveLink			: "Usuń hiperłącze",
+Anchor				: "Wstaw/edytuj kotwicę",
+InsertImageLbl		: "Obrazek",
+InsertImage			: "Wstaw/edytuj obrazek",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Dodaj/Edytuj element Flash",
+InsertTableLbl		: "Tabela",
+InsertTable			: "Wstaw/edytuj tabelę",
+InsertLineLbl		: "Linia pozioma",
+InsertLine			: "Wstaw poziomą linię",
+InsertSpecialCharLbl: "Znak specjalny",
+InsertSpecialChar	: "Wstaw znak specjalny",
+InsertSmileyLbl		: "Emotikona",
+InsertSmiley		: "Wstaw emotikonę",
+About				: "O programie FCKeditor",
+Bold				: "Pogrubienie",
+Italic				: "Kursywa",
+Underline			: "Podkreślenie",
+StrikeThrough		: "Przekreślenie",
+Subscript			: "Indeks dolny",
+Superscript			: "Indeks górny",
+LeftJustify			: "Wyrównaj do lewej",
+CenterJustify		: "Wyrównaj do środka",
+RightJustify		: "Wyrównaj do prawej",
+BlockJustify		: "Wyrównaj do lewej i prawej",
+DecreaseIndent		: "Zmniejsz wcięcie",
+IncreaseIndent		: "Zwiększ wcięcie",
+Undo				: "Cofnij",
+Redo				: "Ponów",
+NumberedListLbl		: "Lista numerowana",
+NumberedList		: "Wstaw/usuń numerowanie listy",
+BulletedListLbl		: "Lista wypunktowana",
+BulletedList		: "Wstaw/usuń wypunktowanie listy",
+ShowTableBorders	: "Pokazuj ramkę tabeli",
+ShowDetails			: "Pokaż szczegóły",
+Style				: "Styl",
+FontFormat			: "Format",
+Font				: "Czcionka",
+FontSize			: "Rozmiar",
+TextColor			: "Kolor tekstu",
+BGColor				: "Kolor tła",
+Source				: "Źródło dokumentu",
+Find				: "Znajdź",
+Replace				: "Zamień",
+SpellCheck			: "Sprawdź pisownię",
+UniversalKeyboard	: "Klawiatura Uniwersalna",
+PageBreakLbl		: "Odstęp",
+PageBreak			: "Wstaw odstęp",
+
+Form			: "Formularz",
+Checkbox		: "Checkbox",
+RadioButton		: "Pole wyboru",
+TextField		: "Pole tekstowe",
+Textarea		: "Obszar tekstowy",
+HiddenField		: "Pole ukryte",
+Button			: "Przycisk",
+SelectionField	: "Lista wyboru",
+ImageButton		: "Przycisk obrazek",
+
+FitWindow		: "Maksymalizuj rozmiar edytora",
+
+// Context Menu
+EditLink			: "Edytuj hiperłącze",
+CellCM				: "Komórka",
+RowCM				: "Wiersz",
+ColumnCM			: "Kolumna",
+InsertRow			: "Wstaw wiersz",
+DeleteRows			: "Usuń wiersze",
+InsertColumn		: "Wstaw kolumnę",
+DeleteColumns		: "Usuń kolumny",
+InsertCell			: "Wstaw komórkę",
+DeleteCells			: "Usuń komórki",
+MergeCells			: "Połącz komórki",
+SplitCell			: "Podziel komórkę",
+TableDelete			: "Usuń tabelę",
+CellProperties		: "Właściwości komórki",
+TableProperties		: "Właściwości tabeli",
+ImageProperties		: "Właściwości obrazka",
+FlashProperties		: "Właściwości elementu Flash",
+
+AnchorProp			: "Właściwości kotwicy",
+ButtonProp			: "Właściwości przycisku",
+CheckboxProp		: "Checkbox - właściwości",
+HiddenFieldProp		: "Właściwości pola ukrytego",
+RadioButtonProp		: "Właściwości pola wyboru",
+ImageButtonProp		: "Właściwości przycisku obrazka",
+TextFieldProp		: "Właściwości pola tekstowego",
+SelectionFieldProp	: "Właściwości listy wyboru",
+TextareaProp		: "Właściwości obszaru tekstowego",
+FormProp			: "Właściwości formularza",
+
+FontFormats			: "Normalny;Tekst sformatowany;Adres;Nagłówek 1;Nagłówek 2;Nagłówek 3;Nagłówek 4;Nagłówek 5;Nagłówek 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Przetwarzanie XHTML. Proszę czekać...",
+Done				: "Gotowe",
+PasteWordConfirm	: "Tekst, który chcesz wkleić, prawdopodobnie pochodzi z programu Word. Czy chcesz go wyczyścic przed wklejeniem?",
+NotCompatiblePaste	: "Ta funkcja jest dostępna w programie Internet Explorer w wersji 5.5 lub wyższej. Czy chcesz wkleić tekst bez czyszczenia?",
+UnknownToolbarItem	: "Nieznany element paska narzędzi \"%1\"",
+UnknownCommand		: "Nieznana komenda \"%1\"",
+NotImplemented		: "Komenda niezaimplementowana",
+UnknownToolbarSet	: "Pasek narzędzi \"%1\" nie istnieje",
+NoActiveX			: "Ustawienia zabezpieczeń twojej przeglądarki mogą ograniczyć niektóre funkcje edytora. Musisz włączyć opcję \"Uruchamianie formantów Activex i dodatków plugin\". W przeciwnym wypadku mogą pojawiać się błędy.",
+BrowseServerBlocked : "Okno menadżera plików nie może zostać otwarte. Upewnij się, że wszystkie blokady popup są wyłączone.",
+DialogBlocked		: "Nie można otworzyć okna dialogowego. Upewnij się, że wszystkie blokady popup są wyłączone.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Anuluj",
+DlgBtnClose			: "Zamknij",
+DlgBtnBrowseServer	: "Przeglądaj",
+DlgAdvancedTag		: "Zaawansowane",
+DlgOpOther			: "<Inny>",
+DlgInfoTab			: "Informacje",
+DlgAlertUrl			: "Proszę podać URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nieustawione>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Kierunek tekstu",
+DlgGenLangDirLtr	: "Od lewej do prawej (LTR)",
+DlgGenLangDirRtl	: "Od prawej do lewej (RTL)",
+DlgGenLangCode		: "Kod języka",
+DlgGenAccessKey		: "Klawisz dostępu",
+DlgGenName			: "Nazwa",
+DlgGenTabIndex		: "Indeks tabeli",
+DlgGenLongDescr		: "Long Description URL",
+DlgGenClass			: "Stylesheet Classes",
+DlgGenTitle			: "Advisory Title",
+DlgGenContType		: "Advisory Content Type",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Styl",
+
+// Image Dialog
+DlgImgTitle			: "Właściwości obrazka",
+DlgImgInfoTab		: "Informacje o obrazku",
+DlgImgBtnUpload		: "Syślij",
+DlgImgURL			: "Adres URL",
+DlgImgUpload		: "Wyślij",
+DlgImgAlt			: "Tekst zastępczy",
+DlgImgWidth			: "Szerokość",
+DlgImgHeight		: "Wysokość",
+DlgImgLockRatio		: "Zablokuj proporcje",
+DlgBtnResetSize		: "Przywróć rozmiar",
+DlgImgBorder		: "Ramka",
+DlgImgHSpace		: "Odstęp poziomy",
+DlgImgVSpace		: "Odstęp pionowy",
+DlgImgAlign			: "Wyrównaj",
+DlgImgAlignLeft		: "Do lewej",
+DlgImgAlignAbsBottom: "Do dołu",
+DlgImgAlignAbsMiddle: "Do środka w pionie",
+DlgImgAlignBaseline	: "Do linii bazowej",
+DlgImgAlignBottom	: "Do dołu",
+DlgImgAlignMiddle	: "Do środka",
+DlgImgAlignRight	: "Do prawej",
+DlgImgAlignTextTop	: "Do góry tekstu",
+DlgImgAlignTop		: "Do góry",
+DlgImgPreview		: "Podgląd",
+DlgImgAlertUrl		: "Podaj adres obrazka.",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Właściwości elementu Flash",
+DlgFlashChkPlay		: "Auto Odtwarzanie",
+DlgFlashChkLoop		: "Pętla",
+DlgFlashChkMenu		: "Włącz menu",
+DlgFlashScale		: "Skaluj",
+DlgFlashScaleAll	: "Pokaż wszystko",
+DlgFlashScaleNoBorder	: "Bez Ramki",
+DlgFlashScaleFit	: "Dokładne dopasowanie",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Hiperłącze",
+DlgLnkInfoTab		: "Informacje ",
+DlgLnkTargetTab		: "Cel",
+
+DlgLnkType			: "Typ hiperłącza",
+DlgLnkTypeURL		: "Adres URL",
+DlgLnkTypeAnchor	: "Odnośnik wewnątrz strony",
+DlgLnkTypeEMail		: "Adres e-mail",
+DlgLnkProto			: "Protokół",
+DlgLnkProtoOther	: "<inny>",
+DlgLnkURL			: "Adres URL",
+DlgLnkAnchorSel		: "Wybierz etykietę",
+DlgLnkAnchorByName	: "Wg etykiety",
+DlgLnkAnchorById	: "Wg identyfikatora elementu",
+DlgLnkNoAnchors		: "<W dokumencie nie zdefiniowano żadnych etykiet>",
+DlgLnkEMail			: "Adres e-mail",
+DlgLnkEMailSubject	: "Temat",
+DlgLnkEMailBody		: "Treść",
+DlgLnkUpload		: "Upload",
+DlgLnkBtnUpload		: "Wyślij",
+
+DlgLnkTarget		: "Cel",
+DlgLnkTargetFrame	: "<ramka>",
+DlgLnkTargetPopup	: "<wyskakujące okno>",
+DlgLnkTargetBlank	: "Nowe okno (_blank)",
+DlgLnkTargetParent	: "Okno nadrzędne (_parent)",
+DlgLnkTargetSelf	: "To samo okno (_self)",
+DlgLnkTargetTop		: "Okno najwyższe w hierarchii (_top)",
+DlgLnkTargetFrameName	: "Nazwa Ramki Docelowej",
+DlgLnkPopWinName	: "Nazwa wyskakującego okna",
+DlgLnkPopWinFeat	: "Właściwości wyskakującego okna",
+DlgLnkPopResize		: "Możliwa zmiana rozmiaru",
+DlgLnkPopLocation	: "Pasek adresu",
+DlgLnkPopMenu		: "Pasek menu",
+DlgLnkPopScroll		: "Paski przewijania",
+DlgLnkPopStatus		: "Pasek statusu",
+DlgLnkPopToolbar	: "Pasek narzędzi",
+DlgLnkPopFullScrn	: "Pełny ekran (IE)",
+DlgLnkPopDependent	: "Okno zależne (Netscape)",
+DlgLnkPopWidth		: "Szerokość",
+DlgLnkPopHeight		: "Wysokość",
+DlgLnkPopLeft		: "Pozycja w poziomie",
+DlgLnkPopTop		: "Pozycja w pionie",
+
+DlnLnkMsgNoUrl		: "Podaj adres URL",
+DlnLnkMsgNoEMail	: "Podaj adres e-mail",
+DlnLnkMsgNoAnchor	: "Wybierz etykietę",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Wybierz kolor",
+DlgColorBtnClear	: "Wyczyść",
+DlgColorHighlight	: "Podgląd",
+DlgColorSelected	: "Wybrane",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Wstaw emotikonę",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Wybierz znak specjalny",
+
+// Table Dialog
+DlgTableTitle		: "Właściwości tabeli",
+DlgTableRows		: "Liczba wierszy",
+DlgTableColumns		: "Liczba kolumn",
+DlgTableBorder		: "Grubość ramki",
+DlgTableAlign		: "Wyrównanie",
+DlgTableAlignNotSet	: "<brak ustawień>",
+DlgTableAlignLeft	: "Do lewej",
+DlgTableAlignCenter	: "Do środka",
+DlgTableAlignRight	: "Do prawej",
+DlgTableWidth		: "Szerokość",
+DlgTableWidthPx		: "piksele",
+DlgTableWidthPc		: "%",
+DlgTableHeight		: "Wysokość",
+DlgTableCellSpace	: "Odstęp pomiędzy komórkami",
+DlgTableCellPad		: "Margines wewnętrzny komórek",
+DlgTableCaption		: "Tytuł",
+DlgTableSummary		: "Podsumowanie",
+
+// Table Cell Dialog
+DlgCellTitle		: "Właściwości komórki",
+DlgCellWidth		: "Szerokość",
+DlgCellWidthPx		: "piksele",
+DlgCellWidthPc		: "%",
+DlgCellHeight		: "Wysokość",
+DlgCellWordWrap		: "Zawijanie tekstu",
+DlgCellWordWrapNotSet	: "<brak ustawień>",
+DlgCellWordWrapYes	: "Tak",
+DlgCellWordWrapNo	: "Nie",
+DlgCellHorAlign		: "Wyrównanie poziome",
+DlgCellHorAlignNotSet	: "<brak ustawień>",
+DlgCellHorAlignLeft	: "Do lewej",
+DlgCellHorAlignCenter	: "Do środka",
+DlgCellHorAlignRight: "Do prawej",
+DlgCellVerAlign		: "Wyrównanie pionowe",
+DlgCellVerAlignNotSet	: "<brak ustawień>",
+DlgCellVerAlignTop	: "Do góry",
+DlgCellVerAlignMiddle	: "Do środka",
+DlgCellVerAlignBottom	: "Do dołu",
+DlgCellVerAlignBaseline	: "Do linii bazowej",
+DlgCellRowSpan		: "Zajętość wierszy",
+DlgCellCollSpan		: "Zajętość kolumn",
+DlgCellBackColor	: "Kolor tła",
+DlgCellBorderColor	: "Kolor ramki",
+DlgCellBtnSelect	: "Wybierz...",
+
+// Find Dialog
+DlgFindTitle		: "Znajdź",
+DlgFindFindBtn		: "Znajdź",
+DlgFindNotFoundMsg	: "Nie znaleziono szukanego hasła.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Zamień",
+DlgReplaceFindLbl		: "Znajdź:",
+DlgReplaceReplaceLbl	: "Zastąp przez:",
+DlgReplaceCaseChk		: "Uwzględnij wielkość liter",
+DlgReplaceReplaceBtn	: "Zastąp",
+DlgReplaceReplAllBtn	: "Zastąp wszystko",
+DlgReplaceWordChk		: "Całe słowa",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wklejanie tekstu. Użyj skrótu klawiszowego Ctrl+V.",
+PasteErrorCut	: "Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl+X.",
+PasteErrorCopy	: "Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl+C.",
+
+PasteAsText		: "Wklej jako czysty tekst",
+PasteFromWord	: "Wklej z Worda",
+
+DlgPasteMsg2	: "Proszę wkleić w poniższym polu używając klawiaturowego skrótu (<STRONG>Ctrl+V</STRONG>) i kliknąć <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignoruj definicje 'Font Face'",
+DlgPasteRemoveStyles	: "Usuń definicje Stylów",
+DlgPasteCleanBox		: "Wyczyść",
+
+// Color Picker
+ColorAutomatic	: "Automatycznie",
+ColorMoreColors	: "Więcej kolorów...",
+
+// Document Properties
+DocProps		: "Właściwości dokumentu",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Właściwości kotwicy",
+DlgAnchorName		: "Nazwa kotwicy",
+DlgAnchorErrorName	: "Wpisz nazwę kotwicy",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Słowa nie ma w słowniku",
+DlgSpellChangeTo		: "Zmień na",
+DlgSpellBtnIgnore		: "Ignoruj",
+DlgSpellBtnIgnoreAll	: "Ignoruj wszystkie",
+DlgSpellBtnReplace		: "Zmień",
+DlgSpellBtnReplaceAll	: "Zmień wszystkie",
+DlgSpellBtnUndo			: "Undo",
+DlgSpellNoSuggestions	: "- Brak sugestii -",
+DlgSpellProgress		: "Trwa sprawdzanie ...",
+DlgSpellNoMispell		: "Sprawdzanie zakończone: nie znaleziono błędów",
+DlgSpellNoChanges		: "Sprawdzanie zakończone: nie zmieniono żadnego słowa",
+DlgSpellOneChange		: "Sprawdzanie zakończone: zmieniono jedno słowo",
+DlgSpellManyChanges		: "Sprawdzanie zakończone: zmieniono %l słów",
+
+IeSpellDownload			: "Słownik nie jest zainstalowany. Chcesz go ściągnąć?",
+
+// Button Dialog
+DlgButtonText		: "Tekst (Wartość)",
+DlgButtonType		: "Typ",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nazwa",
+DlgCheckboxValue	: "Wartość",
+DlgCheckboxSelected	: "Zaznaczony",
+
+// Form Dialog
+DlgFormName		: "Nazwa",
+DlgFormAction	: "Akcja",
+DlgFormMethod	: "Metoda",
+
+// Select Field Dialog
+DlgSelectName		: "Nazwa",
+DlgSelectValue		: "Wartość",
+DlgSelectSize		: "Rozmiar",
+DlgSelectLines		: "linii",
+DlgSelectChkMulti	: "Wielokrotny wybór",
+DlgSelectOpAvail	: "Dostępne opcje",
+DlgSelectOpText		: "Tekst",
+DlgSelectOpValue	: "Wartość",
+DlgSelectBtnAdd		: "Dodaj",
+DlgSelectBtnModify	: "Zmień",
+DlgSelectBtnUp		: "Do góry",
+DlgSelectBtnDown	: "Do dołu",
+DlgSelectBtnSetValue : "Ustaw wartość zaznaczoną",
+DlgSelectBtnDelete	: "Usuń",
+
+// Textarea Dialog
+DlgTextareaName	: "Nazwa",
+DlgTextareaCols	: "Kolumnu",
+DlgTextareaRows	: "Wiersze",
+
+// Text Field Dialog
+DlgTextName			: "Nazwa",
+DlgTextValue		: "Wartość",
+DlgTextCharWidth	: "Szerokość w znakach",
+DlgTextMaxChars		: "Max. szerokość",
+DlgTextType			: "Typ",
+DlgTextTypeText		: "Tekst",
+DlgTextTypePass		: "Hasło",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nazwa",
+DlgHiddenValue	: "Wartość",
+
+// Bulleted List Dialog
+BulletedListProp	: "Właściwości listy punktowanej",
+NumberedListProp	: "Właściwości listy numerowanej",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Typ",
+DlgLstTypeCircle	: "Koło",
+DlgLstTypeDisc		: "Dysk",
+DlgLstTypeSquare	: "Kwadrat",
+DlgLstTypeNumbers	: "Cyfry (1, 2, 3)",
+DlgLstTypeLCase		: "Małe litery (a, b, c)",
+DlgLstTypeUCase		: "Duże litery (A, B, C)",
+DlgLstTypeSRoman	: "Numeracja rzymska (i, ii, iii)",
+DlgLstTypeLRoman	: "Numeracja rzymska (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Ogólne",
+DlgDocBackTab		: "Tło",
+DlgDocColorsTab		: "Kolory i marginesy",
+DlgDocMetaTab		: "Meta Dane",
+
+DlgDocPageTitle		: "Tytuł strony",
+DlgDocLangDir		: "Kierunek pisania",
+DlgDocLangDirLTR	: "Od lewej do prawej (LTR)",
+DlgDocLangDirRTL	: "Od prawej do lewej (RTL)",
+DlgDocLangCode		: "Kod języka",
+DlgDocCharSet		: "Kodowanie znaków",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Inne kodowanie znaków",
+
+DlgDocDocType		: "Nagłowek typu dokumentu",
+DlgDocDocTypeOther	: "Inny typ dokumentu",
+DlgDocIncXHTML		: "Dołącz deklarację XHTML",
+DlgDocBgColor		: "Kolor tła",
+DlgDocBgImage		: "Obrazek tła",
+DlgDocBgNoScroll	: "Tło nieruchome",
+DlgDocCText			: "Tekst",
+DlgDocCLink			: "Hiperłącze",
+DlgDocCVisited		: "Odwiedzane hiperłącze",
+DlgDocCActive		: "Aktywne hiperłącze",
+DlgDocMargins		: "Marginesy strony",
+DlgDocMaTop			: "Górny",
+DlgDocMaLeft		: "Lewy",
+DlgDocMaRight		: "Prawy",
+DlgDocMaBottom		: "Dolny",
+DlgDocMeIndex		: "Słowa kluczowe (oddzielone przecinkami)",
+DlgDocMeDescr		: "Opis dokumentu",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Podgląd",
+
+// Templates Dialog
+Templates			: "Sablony",
+DlgTemplatesTitle	: "Szablony zawartości",
+DlgTemplatesSelMsg	: "Wybierz szablon do otwarcia w edytorze<br>(obecna zawartość okna edytora zostanie utracona):",
+DlgTemplatesLoading	: "Ładowanie listy szablonów. Proszę czekać...",
+DlgTemplatesNoTpl	: "(Brak zdefiniowanych szablonów)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "O ...",
+DlgAboutBrowserInfoTab	: "O przeglądarce",
+DlgAboutLicenseTab	: "Licencja",
+DlgAboutVersion		: "wersja",
+DlgAboutLicense		: "na licencji GNU Lesser General Public License",
+DlgAboutInfo		: "Więcej informacji uzyskasz pod adresem"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/th.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/th.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/th.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: th.js
+ * 	Thai language file.
+ * 
+ * File Authors:
+ * 		Audy Charin Arsakit (arsakit@gmail.com)
+ * 		Joy Piyanoot Promnuan (piyanoot@gmail.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "ซ่อนแถบเครื่องมือ",
+ToolbarExpand		: "แสดงแถบเครื่องมือ",
+
+// Toolbar Items and Context Menu
+Save				: "บันทึก",
+NewPage				: "สร้างหน้าเอกสารใหม่",
+Preview				: "ดูหน้าเอกสารตัวอย่าง",
+Cut					: "ตัด",
+Copy				: "สำเนา",
+Paste				: "วาง",
+PasteText			: "วางสำเนาจากตัวอักษรธรรมดา",
+PasteWord			: "วางสำเนาจากตัวอักษรเวิร์ด",
+Print				: "สั่งพิมพ์",
+SelectAll			: "เลือกทั้งหมด",
+RemoveFormat		: "ล้างรูปแบบ",
+InsertLinkLbl		: "ลิงค์เชื่อมโยงเว็บ อีเมล์ รูปภาพ หรือไฟล์อื่นๆ",
+InsertLink			: "แทรก/แก้ไข ลิงค์",
+RemoveLink			: "ลบ ลิงค์",
+Anchor				: "แทรก/แก้ไข Anchor",
+InsertImageLbl		: "รูปภาพ",
+InsertImage			: "แทรก/แก้ไข รูปภาพ",
+InsertFlashLbl		: "Flash",	//MISSING
+InsertFlash			: "Insert/Edit Flash",	//MISSING
+InsertTableLbl		: "ตาราง",
+InsertTable			: "แทรก/แก้ไข ตาราง",
+InsertLineLbl		: "เส้นคั่นบรรทัด",
+InsertLine			: "แทรกเส้นคั่นบรรทัด",
+InsertSpecialCharLbl: "ตัวอักษรพิเศษ",
+InsertSpecialChar	: "แทรกตัวอักษรพิเศษ",
+InsertSmileyLbl		: "รูปสื่ออารมณ์",
+InsertSmiley		: "แทรกรูปสื่ออารมณ์",
+About				: "เกี่ยวกับโปรแกรม FCKeditor",
+Bold				: "ตัวหนา",
+Italic				: "ตัวเอียง",
+Underline			: "ตัวขีดเส้นใต้",
+StrikeThrough		: "ตัวขีดเส้นทับ",
+Subscript			: "ตัวห้อย",
+Superscript			: "ตัวยก",
+LeftJustify			: "จัดชิดซ้าย",
+CenterJustify		: "จัดกึ่งกลาง",
+RightJustify		: "จัดชิดขวา",
+BlockJustify		: "จัดพอดีหน้ากระดาษ",
+DecreaseIndent		: "ลดระยะย่อหน้า",
+IncreaseIndent		: "เพิ่มระยะย่อหน้า",
+Undo				: "ยกเลิกคำสั่ง",
+Redo				: "ทำซ้ำคำสั่ง",
+NumberedListLbl		: "ลำดับรายการแบบตัวเลข",
+NumberedList		: "แทรก/แก้ไข ลำดับรายการแบบตัวเลข",
+BulletedListLbl		: "ลำดับรายการแบบสัญลักษณ์",
+BulletedList		: "แทรก/แก้ไข ลำดับรายการแบบสัญลักษณ์",
+ShowTableBorders	: "แสดงขอบของตาราง",
+ShowDetails			: "แสดงรายละเอียด",
+Style				: "ลักษณะ",
+FontFormat			: "รูปแบบ",
+Font				: "แบบอักษร",
+FontSize			: "ขนาด",
+TextColor			: "สีตัวอักษร",
+BGColor				: "สีพื้นหลัง",
+Source				: "ดูรหัส HTML",
+Find				: "ค้นหา",
+Replace				: "ค้นหาและแทนที่",
+SpellCheck			: "ตรวจการสะกดคำ",
+UniversalKeyboard	: "คีย์บอร์ดหลากภาษา",
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
+
+Form			: "แบบฟอร์ม",
+Checkbox		: "เช็คบ๊อก",
+RadioButton		: "เรดิโอบัตตอน",
+TextField		: "เท็กซ์ฟิลด์",
+Textarea		: "เท็กซ์แอเรีย",
+HiddenField		: "ฮิดเดนฟิลด์",
+Button			: "ปุ่ม",
+SelectionField	: "แถบตัวเลือก",
+ImageButton		: "ปุ่มแบบรูปภาพ",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+
+// Context Menu
+EditLink			: "แก้ไข ลิงค์",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRow			: "แทรกแถว",
+DeleteRows			: "ลบแถว",
+InsertColumn		: "แทรกสดมน์",
+DeleteColumns		: "ลบสดมน์",
+InsertCell			: "แทรกช่อง",
+DeleteCells			: "ลบช่อง",
+MergeCells			: "ผสานช่อง",
+SplitCell			: "แยกช่อง",
+TableDelete			: "Delete Table",	//MISSING
+CellProperties		: "คุณสมบัติของช่อง",
+TableProperties		: "คุณสมบัติของตาราง",
+ImageProperties		: "คุณสมบัติของรูปภาพ",
+FlashProperties		: "Flash Properties",	//MISSING
+
+AnchorProp			: "รายละเอียด Anchor",
+ButtonProp			: "รายละเอียดของ ปุ่ม",
+CheckboxProp		: "คุณสมบัติของ เช็คบ๊อก",
+HiddenFieldProp		: "คุณสมบัติของ ฮิดเดนฟิลด์",
+RadioButtonProp		: "คุณสมบัติของ เรดิโอบัตตอน",
+ImageButtonProp		: "คุณสมบัติของ ปุ่มแบบรูปภาพ",
+TextFieldProp		: "คุณสมบัติของ เท็กซ์ฟิลด์",
+SelectionFieldProp	: "คุณสมบัติของ แถบตัวเลือก",
+TextareaProp		: "คุณสมบัติของ เท็กแอเรีย",
+FormProp			: "คุณสมบัติของ แบบฟอร์ม",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "โปรแกรมกำลังทำงานด้วยเทคโนโลยี XHTML กรุณารอสักครู่...",
+Done				: "โปรแกรมทำงานเสร็จสมบูรณ์",
+PasteWordConfirm	: "ข้อมูลที่ท่านต้องการวางลงในแผ่นงาน ถูกจัดรูปแบบจากโปรแกรมเวิร์ด. ท่านต้องการล้างรูปแบบที่มาจากโปรแกรมเวิร์ดหรือไม่?",
+NotCompatiblePaste	: "คำสั่งนี้ทำงานในโปรแกรมท่องเว็บ Internet Explorer version รุ่น 5.5 หรือใหม่กว่าเท่านั้น. ท่านต้องการวางตัวอักษรโดยไม่ล้างรูปแบบที่มาจากโปรแกรมเวิร์ดหรือไม่?",
+UnknownToolbarItem	: "ไม่สามารถระบุปุ่มเครื่องมือได้ \"%1\"",
+UnknownCommand		: "ไม่สามารถระบุชื่อคำสั่งได้ \"%1\"",
+NotImplemented		: "ไม่สามารถใช้งานคำสั่งได้",
+UnknownToolbarSet	: "ไม่มีการติดตั้งชุดคำสั่งในแถบเครื่องมือ \"%1\" กรุณาติดต่อผู้ดูแลระบบ",
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
+
+// Dialogs
+DlgBtnOK			: "ตกลง",
+DlgBtnCancel		: "ยกเลิก",
+DlgBtnClose			: "ปิด",
+DlgBtnBrowseServer	: "เปิดหน้าต่างจัดการไฟล์อัพโหลด",
+DlgAdvancedTag		: "ขั้นสูง",
+DlgOpOther			: "<อื่นๆ>",
+DlgInfoTab			: "Info",	//MISSING
+DlgAlertUrl			: "Please insert the URL",	//MISSING
+
+// General Dialogs Labels
+DlgGenNotSet		: "<ไม่ระบุ>",
+DlgGenId			: "ไอดี",
+DlgGenLangDir		: "การเขียน-อ่านภาษา",
+DlgGenLangDirLtr	: "จากซ้ายไปขวา (LTR)",
+DlgGenLangDirRtl	: "จากขวามาซ้าย (RTL)",
+DlgGenLangCode		: "รหัสภาษา",
+DlgGenAccessKey		: "แอคเซส คีย์",
+DlgGenName			: "ชื่อ",
+DlgGenTabIndex		: "ลำดับของ แท็บ",
+DlgGenLongDescr		: "คำอธิบายประกอบ URL",
+DlgGenClass			: "คลาสของไฟล์กำหนดลักษณะการแสดงผล",
+DlgGenTitle			: "คำเกริ่นนำ",
+DlgGenContType		: "ชนิดของคำเกริ่นนำ",
+DlgGenLinkCharset	: "ลิงค์เชื่อมโยงไปยังชุดตัวอักษร",
+DlgGenStyle			: "ลักษณะการแสดงผล",
+
+// Image Dialog
+DlgImgTitle			: "คุณสมบัติของ รูปภาพ",
+DlgImgInfoTab		: "ข้อมูลของรูปภาพ",
+DlgImgBtnUpload		: "อัพโหลดไฟล์ไปเก็บไว้ที่เครื่องแม่ข่าย (เซิร์ฟเวอร์)",
+DlgImgURL			: "ที่อยู่อ้างอิง URL",
+DlgImgUpload		: "อัพโหลดไฟล์",
+DlgImgAlt			: "คำประกอบรูปภาพ",
+DlgImgWidth			: "ความกว้าง",
+DlgImgHeight		: "ความสูง",
+DlgImgLockRatio		: "กำหนดอัตราส่วน กว้าง-สูง แบบคงที่",
+DlgBtnResetSize		: "กำหนดรูปเท่าขนาดจริง",
+DlgImgBorder		: "ขนาดขอบรูป",
+DlgImgHSpace		: "ระยะแนวนอน",
+DlgImgVSpace		: "ระยะแนวตั้ง",
+DlgImgAlign			: "การจัดวาง",
+DlgImgAlignLeft		: "ชิดซ้าย",
+DlgImgAlignAbsBottom: "ชิดด้านล่างสุด",
+DlgImgAlignAbsMiddle: "กึ่งกลาง",
+DlgImgAlignBaseline	: "ชิดบรรทัด",
+DlgImgAlignBottom	: "ชิดด้านล่าง",
+DlgImgAlignMiddle	: "กึ่งกลางแนวตั้ง",
+DlgImgAlignRight	: "ชิดขวา",
+DlgImgAlignTextTop	: "ใต้ตัวอักษร",
+DlgImgAlignTop		: "บนสุด",
+DlgImgPreview		: "หน้าเอกสารตัวอย่าง",
+DlgImgAlertUrl		: "กรุณาระบุที่อยู่อ้างอิงออนไลน์ของไฟล์รูปภาพ (URL)",
+DlgImgLinkTab		: "Link",	//MISSING
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Properties",	//MISSING
+DlgFlashChkPlay		: "Auto Play",	//MISSING
+DlgFlashChkLoop		: "Loop",	//MISSING
+DlgFlashChkMenu		: "Enable Flash Menu",	//MISSING
+DlgFlashScale		: "Scale",	//MISSING
+DlgFlashScaleAll	: "Show all",	//MISSING
+DlgFlashScaleNoBorder	: "No Border",	//MISSING
+DlgFlashScaleFit	: "Exact Fit",	//MISSING
+
+// Link Dialog
+DlgLnkWindowTitle	: "ลิงค์เชื่อมโยงเว็บ อีเมล์ รูปภาพ หรือไฟล์อื่นๆ",
+DlgLnkInfoTab		: "รายละเอียด",
+DlgLnkTargetTab		: "การเปิดหน้าจอ",
+
+DlgLnkType			: "ประเภทของลิงค์",
+DlgLnkTypeURL		: "ที่อยู่อ้างอิงออนไลน์ (URL)",
+DlgLnkTypeAnchor	: "จุดเชื่อมโยง (Anchor)",
+DlgLnkTypeEMail		: "ส่งอีเมล์ (E-Mail)",
+DlgLnkProto			: "โปรโตคอล",
+DlgLnkProtoOther	: "<อื่นๆ>",
+DlgLnkURL			: "ที่อยู่อ้างอิงออนไลน์ (URL)",
+DlgLnkAnchorSel		: "ระบุข้อมูลของจุดเชื่อมโยง (Anchor)",
+DlgLnkAnchorByName	: "ชื่อ",
+DlgLnkAnchorById	: "ไอดี",
+DlgLnkNoAnchors		: "<ยังไม่มีจุดเชื่อมโยงภายในหน้าเอกสารนี้>",
+DlgLnkEMail			: "อีเมล์ (E-Mail)",
+DlgLnkEMailSubject	: "หัวเรื่อง",
+DlgLnkEMailBody		: "ข้อความ",
+DlgLnkUpload		: "อัพโหลดไฟล์",
+DlgLnkBtnUpload		: "บันทึกไฟล์ไว้บนเซิร์ฟเวอร์",
+
+DlgLnkTarget		: "การเปิดหน้าลิงค์",
+DlgLnkTargetFrame	: "<เปิดในเฟรม>",
+DlgLnkTargetPopup	: "<เปิดหน้าจอเล็ก (Pop-up)>",
+DlgLnkTargetBlank	: "เปิดหน้าจอใหม่ (_blank)",
+DlgLnkTargetParent	: "เปิดในหน้าหลัก (_parent)",
+DlgLnkTargetSelf	: "เปิดในหน้าปัจจุบัน (_self)",
+DlgLnkTargetTop		: "เปิดในหน้าบนสุด (_top)",
+DlgLnkTargetFrameName	: "ชื่อทาร์เก็ตเฟรม",
+DlgLnkPopWinName	: "ระบุชื่อหน้าจอเล็ก (Pop-up)",
+DlgLnkPopWinFeat	: "คุณสมบัติของหน้าจอเล็ก (Pop-up)",
+DlgLnkPopResize		: "ปรับขนาดหน้าจอ",
+DlgLnkPopLocation	: "แสดงที่อยู่ของไฟล์",
+DlgLnkPopMenu		: "แสดงแถบเมนู",
+DlgLnkPopScroll		: "แสดงแถบเลื่อน",
+DlgLnkPopStatus		: "แสดงแถบสถานะ",
+DlgLnkPopToolbar	: "แสดงแถบเครื่องมือ",
+DlgLnkPopFullScrn	: "แสดงเต็มหน้าจอ (IE5.5++ เท่านั้น)",
+DlgLnkPopDependent	: "แสดงเต็มหน้าจอ (Netscape)",
+DlgLnkPopWidth		: "กว้าง",
+DlgLnkPopHeight		: "สูง",
+DlgLnkPopLeft		: "พิกัดซ้าย (Left Position)",
+DlgLnkPopTop		: "พิกัดบน (Top Position)",
+
+DlnLnkMsgNoUrl		: "กรุณาระบุที่อยู่อ้างอิงออนไลน์ (URL)",
+DlnLnkMsgNoEMail	: "กรุณาระบุอีเมล์ (E-mail)",
+DlnLnkMsgNoAnchor	: "กรุณาระบุจุดเชื่อมโยง (Anchor)",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "เลือกสี",
+DlgColorBtnClear	: "ล้างค่ารหัสสี",
+DlgColorHighlight	: "ตัวอย่างสี",
+DlgColorSelected	: "สีที่เลือก",
+
+// Smiley Dialog
+DlgSmileyTitle		: "แทรกสัญักษณ์สื่ออารมณ์",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "แทรกตัวอักษรพิเศษ",
+
+// Table Dialog
+DlgTableTitle		: "คุณสมบัติของ ตาราง",
+DlgTableRows		: "แถว",
+DlgTableColumns		: "สดมน์",
+DlgTableBorder		: "ขนาดเส้นขอบ",
+DlgTableAlign		: "การจัดตำแหน่ง",
+DlgTableAlignNotSet	: "<ไม่ระบุ>",
+DlgTableAlignLeft	: "ชิดซ้าย",
+DlgTableAlignCenter	: "กึ่งกลาง",
+DlgTableAlignRight	: "ชิดขวา",
+DlgTableWidth		: "กว้าง",
+DlgTableWidthPx		: "จุดสี",
+DlgTableWidthPc		: "เปอร์เซ็น",
+DlgTableHeight		: "สูง",
+DlgTableCellSpace	: "ระยะแนวนอนน",
+DlgTableCellPad		: "ระยะแนวตั้ง",
+DlgTableCaption		: "หัวเรื่องของตาราง",
+DlgTableSummary		: "Summary",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "คุณสมบัติของ ช่อง",
+DlgCellWidth		: "กว้าง",
+DlgCellWidthPx		: "จุดสี",
+DlgCellWidthPc		: "เปอร์เซ็น",
+DlgCellHeight		: "สูง",
+DlgCellWordWrap		: "ตัดบรรทัดอัตโนมัติ",
+DlgCellWordWrapNotSet	: "<ไม่ระบุ>",
+DlgCellWordWrapYes	: "ใ่ช่",
+DlgCellWordWrapNo	: "ไม่",
+DlgCellHorAlign		: "การจัดวางแนวนอน",
+DlgCellHorAlignNotSet	: "<ไม่ระบุ>",
+DlgCellHorAlignLeft	: "ชิดซ้าย",
+DlgCellHorAlignCenter	: "กึ่งกลาง",
+DlgCellHorAlignRight: "ชิดขวา",
+DlgCellVerAlign		: "การจัดวางแนวตั้ง",
+DlgCellVerAlignNotSet	: "<ไม่ระบุ>",
+DlgCellVerAlignTop	: "บนสุด",
+DlgCellVerAlignMiddle	: "กึ่งกลาง",
+DlgCellVerAlignBottom	: "ล่างสุด",
+DlgCellVerAlignBaseline	: "อิงบรรทัด",
+DlgCellRowSpan		: "จำนวนแถวที่คร่อมกัน",
+DlgCellCollSpan		: "จำนวนสดมน์ที่คร่อมกัน",
+DlgCellBackColor	: "สีพื้นหลัง",
+DlgCellBorderColor	: "สีเส้นขอบ",
+DlgCellBtnSelect	: "เลือก..",
+
+// Find Dialog
+DlgFindTitle		: "ค้นหา",
+DlgFindFindBtn		: "ค้นหา",
+DlgFindNotFoundMsg	: "ไม่พบคำที่ค้นหา.",
+
+// Replace Dialog
+DlgReplaceTitle			: "ค้นหาและแทนที่",
+DlgReplaceFindLbl		: "ค้นหาคำว่า:",
+DlgReplaceReplaceLbl	: "แทนที่ด้วย:",
+DlgReplaceCaseChk		: "ตัวโหญ่-เล็ก ต้องตรงกัน",
+DlgReplaceReplaceBtn	: "แทนที่",
+DlgReplaceReplAllBtn	: "แทนที่ทั้งหมดที่พบ",
+DlgReplaceWordChk		: "ต้องตรงกันทุกคำ",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "ไม่สามารถวางข้อความที่สำเนามาได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl และตัว V พร้อมกัน).",
+PasteErrorCut	: "ไม่สามารถตัดข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl และตัว X พร้อมกัน).",
+PasteErrorCopy	: "ไม่สามารถสำเนาข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl และตัว C พร้อมกัน).",
+
+PasteAsText		: "วางแบบตัวอักษรธรรมดา",
+PasteFromWord	: "วางแบบตัวอักษรจากโปรแกรมเวิร์ด",
+
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",	//MISSING
+DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
+DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
+DlgPasteCleanBox		: "Clean Up Box",	//MISSING
+
+// Color Picker
+ColorAutomatic	: "สีอัตโนมัติ",
+ColorMoreColors	: "เลือกสีอื่นๆ...",
+
+// Document Properties
+DocProps		: "คุณสมบัติของเอกสาร",
+
+// Anchor Dialog
+DlgAnchorTitle		: "คุณสมบัติของ Anchor",
+DlgAnchorName		: "ชื่อ Anchor",
+DlgAnchorErrorName	: "กรุณาระบุชื่อของ Anchor",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "ไม่พบในดิกชันนารี",
+DlgSpellChangeTo		: "แก้ไขเป็น",
+DlgSpellBtnIgnore		: "ยกเว้น",
+DlgSpellBtnIgnoreAll	: "ยกเว้นทั้งหมด",
+DlgSpellBtnReplace		: "แทนที่",
+DlgSpellBtnReplaceAll	: "แทนที่ทั้งหมด",
+DlgSpellBtnUndo			: "ยกเลิก",
+DlgSpellNoSuggestions	: "- ไม่มีคำแนะนำใดๆ -",
+DlgSpellProgress		: "กำลังตรวจสอบคำสะกด...",
+DlgSpellNoMispell		: "ตรวจสอบคำสะกดเสร็จสิ้น: ไม่พบคำสะกดผิด",
+DlgSpellNoChanges		: "ตรวจสอบคำสะกดเสร็จสิ้น: ไม่มีการแก้คำใดๆ",
+DlgSpellOneChange		: "ตรวจสอบคำสะกดเสร็จสิ้น: แก้ไข1คำ",
+DlgSpellManyChanges		: "ตรวจสอบคำสะกดเสร็จสิ้น:: แก้ไข %1 คำ",
+
+IeSpellDownload			: "ไม่ได้ติดตั้งระบบตรวจสอบคำสะกด. ต้องการติดตั้งไหมครับ?",
+
+// Button Dialog
+DlgButtonText		: "ข้อความ (ค่าตัวแปร)",
+DlgButtonType		: "ข้อความ",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "ชื่อ",
+DlgCheckboxValue	: "ค่าตัวแปร",
+DlgCheckboxSelected	: "เลือกเป็นค่าเริ่มต้น",
+
+// Form Dialog
+DlgFormName		: "ชื่อ",
+DlgFormAction	: "แอคชั่น",
+DlgFormMethod	: "เมธอด",
+
+// Select Field Dialog
+DlgSelectName		: "ชื่อ",
+DlgSelectValue		: "ค่าตัวแปร",
+DlgSelectSize		: "ขนาด",
+DlgSelectLines		: "บรรทัด",
+DlgSelectChkMulti	: "เลือกหลายค่าได้",
+DlgSelectOpAvail	: "รายการตัวเลือก",
+DlgSelectOpText		: "ข้อความ",
+DlgSelectOpValue	: "ค่าตัวแปร",
+DlgSelectBtnAdd		: "เพิ่ม",
+DlgSelectBtnModify	: "แก้ไข",
+DlgSelectBtnUp		: "บน",
+DlgSelectBtnDown	: "ล่าง",
+DlgSelectBtnSetValue : "เลือกเป็นค่าเริ่มต้น",
+DlgSelectBtnDelete	: "ลบ",
+
+// Textarea Dialog
+DlgTextareaName	: "ชื่อ",
+DlgTextareaCols	: "สดมภ์",
+DlgTextareaRows	: "แถว",
+
+// Text Field Dialog
+DlgTextName			: "ชื่อ",
+DlgTextValue		: "ค่าตัวแปร",
+DlgTextCharWidth	: "ความกว้าง",
+DlgTextMaxChars		: "จำนวนตัวอักษรสูงสุด",
+DlgTextType			: "ชนิด",
+DlgTextTypeText		: "ข้อความ",
+DlgTextTypePass		: "รหัสผ่าน",
+
+// Hidden Field Dialog
+DlgHiddenName	: "ชื่อ",
+DlgHiddenValue	: "ค่าตัวแปร",
+
+// Bulleted List Dialog
+BulletedListProp	: "คุณสมบัติของ บูลเล็ตลิสต์",
+NumberedListProp	: "คุณสมบัติของ นัมเบอร์ลิสต์",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "ชนิด",
+DlgLstTypeCircle	: "รูปวงกลม",
+DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeSquare	: "รูปสี่เหลี่ยม",
+DlgLstTypeNumbers	: "หมายเลข (1, 2, 3)",
+DlgLstTypeLCase		: "ตัวพิมพ์เล็ก (a, b, c)",
+DlgLstTypeUCase		: "ตัวพิมพ์ใหญ่ (A, B, C)",
+DlgLstTypeSRoman	: "เลขโรมันพิมพ์เล็ก (i, ii, iii)",
+DlgLstTypeLRoman	: "เลขโรมันพิมพ์ใหญ่ (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "ลักษณะทั่วไปของเอกสาร",
+DlgDocBackTab		: "พื้นหลัง",
+DlgDocColorsTab		: "สีและระยะขอบ",
+DlgDocMetaTab		: "ข้อมูลสำหรับเสิร์ชเอนจิ้น",
+
+DlgDocPageTitle		: "ชื่อไตเติ้ล",
+DlgDocLangDir		: "การอ่านภาษา",
+DlgDocLangDirLTR	: "จากซ้ายไปขวา (LTR)",
+DlgDocLangDirRTL	: "จากขวาไปซ้าย (RTL)",
+DlgDocLangCode		: "รหัสภาษา",
+DlgDocCharSet		: "ชุดตัวอักษร",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "ชุดตัวอักษรอื่นๆ",
+
+DlgDocDocType		: "ประเภทของเอกสาร",
+DlgDocDocTypeOther	: "ประเภทเอกสารอื่นๆ",
+DlgDocIncXHTML		: "รวมเอา  XHTML Declarations ไว้ด้วย",
+DlgDocBgColor		: "สีพื้นหลัง",
+DlgDocBgImage		: "ที่อยู่อ้างอิงออนไลน์ของรูปพื้นหลัง (Image URL)",
+DlgDocBgNoScroll	: "พื้นหลังแบบไม่มีแถบเลื่อน",
+DlgDocCText			: "ข้อความ",
+DlgDocCLink			: "ลิงค์",
+DlgDocCVisited		: "ลิงค์ที่เคยคลิ้กแล้ว Visited Link",
+DlgDocCActive		: "ลิงค์ที่กำลังคลิ้ก Active Link",
+DlgDocMargins		: "ระยะขอบของหน้าเอกสาร",
+DlgDocMaTop			: "ด้านบน",
+DlgDocMaLeft		: "ด้านซ้าย",
+DlgDocMaRight		: "ด้านขวา",
+DlgDocMaBottom		: "ด้านล่าง",
+DlgDocMeIndex		: "คำสำคัญอธิบายเอกสาร (คั่นคำด้วย คอมม่า)",
+DlgDocMeDescr		: "ประโยคอธิบายเกี่ยวกับเอกสาร",
+DlgDocMeAuthor		: "ผู้สร้างเอกสาร",
+DlgDocMeCopy		: "สงวนลิขสิทธิ์",
+DlgDocPreview		: "ตัวอย่างหน้าเอกสาร",
+
+// Templates Dialog
+Templates			: "Templates",	//MISSING
+DlgTemplatesTitle	: "Content Templates",	//MISSING
+DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",	//MISSING
+DlgTemplatesLoading	: "Loading templates list. Please wait...",	//MISSING
+DlgTemplatesNoTpl	: "(No templates defined)",	//MISSING
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "เกี่ยวกับโปรแกรม",
+DlgAboutBrowserInfoTab	: "โปรแกรมท่องเว็บที่ท่านใช้",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "รุ่น",
+DlgAboutLicense		: "สงวนลิขสิทธิ์ โดยนโยบายลิขสิทธิ์แบบ GNU Lesser General Public License",
+DlgAboutInfo		: "ข้อมูลเพิ่มเติมภาษาไทยติดต่อ</BR>นาย ชรินทร์ อาษากิจ (อู้ด)</BR><A HREF='mailto:arsakit@gmail.com'>arsakit@gmail.com</A> tel. (+66) 06-9241924</BR>หรือดาวน์โหลดรุ่นภาษาไทยได้ที่เว็บไซต์</BR><A HREF='http://www.thaimall4u.com'>www.Thaimall4u.com</A></BR>ข้อมูลเพิ่มเติมภาษาอังกฤษ กรุณาไปที่นี่"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/it.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/it.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/it.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: it.js
+ * 	Italian language file.
+ * 
+ * File Authors:
+ * 		Simone Chiaretta (simone@piyosailing.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Nascondi la barra degli strumenti",
+ToolbarExpand		: "Mostra la barra degli strumenti",
+
+// Toolbar Items and Context Menu
+Save				: "Salva",
+NewPage				: "Nuova pagina vuota",
+Preview				: "Anteprima",
+Cut					: "Taglia",
+Copy				: "Copia",
+Paste				: "Incolla",
+PasteText			: "Incolla come testo semplice",
+PasteWord			: "Incolla da Word",
+Print				: "Stampa",
+SelectAll			: "Seleziona tutto",
+RemoveFormat		: "Elimina formattazione",
+InsertLinkLbl		: "Collegamento",
+InsertLink			: "Inserisci/Modifica collegamento",
+RemoveLink			: "Elimina collegamento",
+Anchor				: "Inserisci/Modifica Ancora",
+InsertImageLbl		: "Immagine",
+InsertImage			: "Inserisci/Modifica immagine",
+InsertFlashLbl		: "Oggetto Flash",
+InsertFlash			: "Inserisci/Modifica Oggetto Flash",
+InsertTableLbl		: "Tabella",
+InsertTable			: "Inserisci/Modifica tabella",
+InsertLineLbl		: "Riga orizzontale",
+InsertLine			: "Inserisci riga orizzontale",
+InsertSpecialCharLbl: "Caratteri speciali",
+InsertSpecialChar	: "Inserisci carattere speciale",
+InsertSmileyLbl		: "Emoticon",
+InsertSmiley		: "Inserisci emoticon",
+About				: "Informazioni su FCKeditor",
+Bold				: "Grassetto",
+Italic				: "Corsivo",
+Underline			: "Sottolineato",
+StrikeThrough		: "Barrato",
+Subscript			: "Pedice",
+Superscript			: "Apice",
+LeftJustify			: "Allinea a sinistra",
+CenterJustify		: "Centra",
+RightJustify		: "Allinea a destra",
+BlockJustify		: "Giustifica",
+DecreaseIndent		: "Riduci rientro",
+IncreaseIndent		: "Aumenta rientro",
+Undo				: "Annulla",
+Redo				: "Ripristina",
+NumberedListLbl		: "Elenco numerato",
+NumberedList		: "Inserisci/Modifica elenco numerato",
+BulletedListLbl		: "Elenco puntato",
+BulletedList		: "Inserisci/Modifica elenco puntato",
+ShowTableBorders	: "Mostra bordi tabelle",
+ShowDetails			: "Mostra dettagli",
+Style				: "Stile",
+FontFormat			: "Formato",
+Font				: "Font",
+FontSize			: "Dimensione",
+TextColor			: "Colore testo",
+BGColor				: "Colore sfondo",
+Source				: "Codice Sorgente",
+Find				: "Trova",
+Replace				: "Sostituisci",
+SpellCheck			: "Correttore ortografico",
+UniversalKeyboard	: "Tastiera universale",
+PageBreakLbl		: "Interruzione di pagina",
+PageBreak			: "Inserisci interruzione di pagina",
+
+Form			: "Modulo",
+Checkbox		: "Checkbox",
+RadioButton		: "Radio Button",
+TextField		: "Campo di testo",
+Textarea		: "Area di testo",
+HiddenField		: "Campo nascosto",
+Button			: "Bottone",
+SelectionField	: "Menu di selezione",
+ImageButton		: "Bottone immagine",
+
+FitWindow		: "Massimizza l'area dell'editor",
+
+// Context Menu
+EditLink			: "Modifica collegamento",
+CellCM				: "Cella",
+RowCM				: "Riga",
+ColumnCM			: "Colonna",
+InsertRow			: "Inserisci riga",
+DeleteRows			: "Elimina righe",
+InsertColumn		: "Inserisci colonna",
+DeleteColumns		: "Elimina colonne",
+InsertCell			: "Inserisci cella",
+DeleteCells			: "Elimina celle",
+MergeCells			: "Unisce celle",
+SplitCell			: "Dividi celle",
+TableDelete			: "Cancella Tabella",
+CellProperties		: "Proprietà cella",
+TableProperties		: "Proprietà tabella",
+ImageProperties		: "Proprietà immagine",
+FlashProperties		: "Proprietà Oggetto Flash",
+
+AnchorProp			: "Proprietà ancora",
+ButtonProp			: "Proprietà bottone",
+CheckboxProp		: "Proprietà checkbox",
+HiddenFieldProp		: "Proprietà campo nascosto",
+RadioButtonProp		: "Proprietà radio button",
+ImageButtonProp		: "Proprietà bottone immagine",
+TextFieldProp		: "Proprietà campo di testo",
+SelectionFieldProp	: "Proprietà menu di selezione",
+TextareaProp		: "Proprietà area di testo",
+FormProp			: "Proprietà modulo",
+
+FontFormats			: "Normale;Formattato;Indirizzo;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Elaborazione XHTML in corso. Attendere prego...",
+Done				: "Completato",
+PasteWordConfirm	: "Il testo da incollare sembra provenire da Word. Desideri pulirlo prima di incollare?",
+NotCompatiblePaste	: "Questa funzione è disponibile solo per Internet Explorer 5.5 o superiore. Desideri incollare il testo senza pulirlo?",
+UnknownToolbarItem	: "Elemento della barra strumenti sconosciuto \"%1\"",
+UnknownCommand		: "Comando sconosciuto \"%1\"",
+NotImplemented		: "Comando non implementato",
+UnknownToolbarSet	: "La barra di strumenti \"%1\" non esiste",
+NoActiveX			: "Le impostazioni di sicurezza del tuo browser potrebbero limitare alcune funzionalità dell'editor. Devi abilitare l'opzione \"Esegui controlli e plug-in ActiveX\". Potresti avere errori e notare funzionalità mancanti.",
+BrowseServerBlocked : "Non è possibile aprire la finestra di espolorazione risorse. Verifica che tutti i blocca popup siano bloccati.",
+DialogBlocked		: "Non è possibile aprire la finestra di dialogo. Verifica che tutti i blocca popup siano bloccati.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Annulla",
+DlgBtnClose			: "Chiudi",
+DlgBtnBrowseServer	: "Cerca sul server",
+DlgAdvancedTag		: "Avanzate",
+DlgOpOther			: "<Altro>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Devi inserire l'URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<non impostato>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Direzione scrittura",
+DlgGenLangDirLtr	: "Da Sinistra a Destra (LTR)",
+DlgGenLangDirRtl	: "Da Destra a Sinistra (RTL)",
+DlgGenLangCode		: "Codice Lingua",
+DlgGenAccessKey		: "Scorciatoia<br />da tastiera",
+DlgGenName			: "Nome",
+DlgGenTabIndex		: "Ordine di tabulazione",
+DlgGenLongDescr		: "URL descrizione estesa",
+DlgGenClass			: "Nome classe CSS",
+DlgGenTitle			: "Titolo",
+DlgGenContType		: "Tipo della risorsa collegata",
+DlgGenLinkCharset	: "Set di caretteri della risorsa collegata",
+DlgGenStyle			: "Stile",
+
+// Image Dialog
+DlgImgTitle			: "Proprietà immagine",
+DlgImgInfoTab		: "Informazioni immagine",
+DlgImgBtnUpload		: "Invia al server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Carica",
+DlgImgAlt			: "Testo alternativo",
+DlgImgWidth			: "Larghezza",
+DlgImgHeight		: "Altezza",
+DlgImgLockRatio		: "Blocca rapporto",
+DlgBtnResetSize		: "Reimposta dimensione",
+DlgImgBorder		: "Bordo",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Allineamento",
+DlgImgAlignLeft		: "Sinistra",
+DlgImgAlignAbsBottom: "In basso assoluto",
+DlgImgAlignAbsMiddle: "Centrato assoluto",
+DlgImgAlignBaseline	: "Linea base",
+DlgImgAlignBottom	: "In Basso",
+DlgImgAlignMiddle	: "Centrato",
+DlgImgAlignRight	: "Destra",
+DlgImgAlignTextTop	: "In alto al testo",
+DlgImgAlignTop		: "In Alto",
+DlgImgPreview		: "Anteprima",
+DlgImgAlertUrl		: "Devi inserire l'URL per l'immagine",
+DlgImgLinkTab		: "Collegamento",
+
+// Flash Dialog
+DlgFlashTitle		: "Proprietà Oggetto Flash",
+DlgFlashChkPlay		: "Avvio Automatico",
+DlgFlashChkLoop		: "Cicla",
+DlgFlashChkMenu		: "Abilita Menu di Flash",
+DlgFlashScale		: "Ridimensiona",
+DlgFlashScaleAll	: "Mostra Tutto",
+DlgFlashScaleNoBorder	: "Senza Bordo",
+DlgFlashScaleFit	: "Dimensione Esatta",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Collegamento",
+DlgLnkInfoTab		: "Informazioni collegamento",
+DlgLnkTargetTab		: "Destinazione",
+
+DlgLnkType			: "Tipo di Collegamento",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Ancora nella pagina",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocollo",
+DlgLnkProtoOther	: "<altro>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Scegli Ancora",
+DlgLnkAnchorByName	: "Per Nome",
+DlgLnkAnchorById	: "Per id elemento",
+DlgLnkNoAnchors		: "<Nessuna ancora disponibile nel documento>",
+DlgLnkEMail			: "Indirizzo E-Mail",
+DlgLnkEMailSubject	: "Oggetto del messaggio",
+DlgLnkEMailBody		: "Corpo del messaggio",
+DlgLnkUpload		: "Carica",
+DlgLnkBtnUpload		: "Invia al Server",
+
+DlgLnkTarget		: "Destinazione",
+DlgLnkTargetFrame	: "<riquadro>",
+DlgLnkTargetPopup	: "<finestra popup>",
+DlgLnkTargetBlank	: "Nuova finestra (_blank)",
+DlgLnkTargetParent	: "Finestra padre (_parent)",
+DlgLnkTargetSelf	: "Stessa finestra (_self)",
+DlgLnkTargetTop		: "Finestra superiore (_top)",
+DlgLnkTargetFrameName	: "Nome del riquadro di destinazione",
+DlgLnkPopWinName	: "Nome finestra popup",
+DlgLnkPopWinFeat	: "Caratteristiche finestra popup",
+DlgLnkPopResize		: "Ridimensionabile",
+DlgLnkPopLocation	: "Barra degli indirizzi",
+DlgLnkPopMenu		: "Barra del menu",
+DlgLnkPopScroll		: "Barre di scorrimento",
+DlgLnkPopStatus		: "Barra di stato",
+DlgLnkPopToolbar	: "Barra degli strumenti",
+DlgLnkPopFullScrn	: "A tutto schermo (IE)",
+DlgLnkPopDependent	: "Dipendente (Netscape)",
+DlgLnkPopWidth		: "Larghezza",
+DlgLnkPopHeight		: "Altezza",
+DlgLnkPopLeft		: "Posizione da sinistra",
+DlgLnkPopTop		: "Posizione dall'alto",
+
+DlnLnkMsgNoUrl		: "Devi inserire l'URL del collegamento",
+DlnLnkMsgNoEMail	: "Devi inserire un'indirizzo e-mail",
+DlnLnkMsgNoAnchor	: "Devi selezionare un'ancora",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Seleziona colore",
+DlgColorBtnClear	: "Vuota",
+DlgColorHighlight	: "Evidenziato",
+DlgColorSelected	: "Selezionato",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Inserisci emoticon",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Seleziona carattere speciale",
+
+// Table Dialog
+DlgTableTitle		: "Proprietà tabella",
+DlgTableRows		: "Righe",
+DlgTableColumns		: "Colonne",
+DlgTableBorder		: "Dimensione bordo",
+DlgTableAlign		: "Allineamento",
+DlgTableAlignNotSet	: "<non impostato>",
+DlgTableAlignLeft	: "Sinistra",
+DlgTableAlignCenter	: "Centrato",
+DlgTableAlignRight	: "Destra",
+DlgTableWidth		: "Larghezza",
+DlgTableWidthPx		: "pixel",
+DlgTableWidthPc		: "percento",
+DlgTableHeight		: "Altezza",
+DlgTableCellSpace	: "Spaziatura celle",
+DlgTableCellPad		: "Padding celle",
+DlgTableCaption		: "Intestazione",
+DlgTableSummary		: "Indice",
+
+// Table Cell Dialog
+DlgCellTitle		: "Proprietà cella",
+DlgCellWidth		: "Larghezza",
+DlgCellWidthPx		: "pixel",
+DlgCellWidthPc		: "percento",
+DlgCellHeight		: "Altezza",
+DlgCellWordWrap		: "A capo automatico",
+DlgCellWordWrapNotSet	: "<non impostato>",
+DlgCellWordWrapYes	: "Si",
+DlgCellWordWrapNo	: "No",
+DlgCellHorAlign		: "Allineamento orizzontale",
+DlgCellHorAlignNotSet	: "<non impostato>",
+DlgCellHorAlignLeft	: "Sinistra",
+DlgCellHorAlignCenter	: "Centrato",
+DlgCellHorAlignRight: "Destra",
+DlgCellVerAlign		: "Allineamento verticale",
+DlgCellVerAlignNotSet	: "<non impostato>",
+DlgCellVerAlignTop	: "In Alto",
+DlgCellVerAlignMiddle	: "Centrato",
+DlgCellVerAlignBottom	: "In Basso",
+DlgCellVerAlignBaseline	: "Linea base",
+DlgCellRowSpan		: "Righe occupate",
+DlgCellCollSpan		: "Colonne occupate",
+DlgCellBackColor	: "Colore sfondo",
+DlgCellBorderColor	: "Colore bordo",
+DlgCellBtnSelect	: "Scegli...",
+
+// Find Dialog
+DlgFindTitle		: "Trova",
+DlgFindFindBtn		: "Trova",
+DlgFindNotFoundMsg	: "L'elemento cercato non è stato trovato.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Sostituisci",
+DlgReplaceFindLbl		: "Trova:",
+DlgReplaceReplaceLbl	: "Sostituisci con:",
+DlgReplaceCaseChk		: "Maiuscole/minuscole",
+DlgReplaceReplaceBtn	: "Sostituisci",
+DlgReplaceReplAllBtn	: "Sostituisci tutto",
+DlgReplaceWordChk		: "Solo parole intere",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Le impostazioni di sicurezza del browser non permettono di incollare automaticamente il testo. Usa la tastiera (Ctrl+V).",
+PasteErrorCut	: "Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl+X).",
+PasteErrorCopy	: "Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl+C).",
+
+PasteAsText		: "Incolla come testo semplice",
+PasteFromWord	: "Incolla da Word",
+
+DlgPasteMsg2	: "Incolla il testo all'interno dell'area sottostante usando la scorciatoia di tastiere (<STRONG>Ctrl+V</STRONG>) e premi <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignora le definizioni di Font",
+DlgPasteRemoveStyles	: "Rimuovi le definizioni di Stile",
+DlgPasteCleanBox		: "Svuota area di testo",
+
+// Color Picker
+ColorAutomatic	: "Automatico",
+ColorMoreColors	: "Altri colori...",
+
+// Document Properties
+DocProps		: "Proprietà del Documento",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Proprietà ancora",
+DlgAnchorName		: "Nome ancora",
+DlgAnchorErrorName	: "Inserici il nome dell'ancora",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Non nel dizionario",
+DlgSpellChangeTo		: "Cambia in",
+DlgSpellBtnIgnore		: "Ignora",
+DlgSpellBtnIgnoreAll	: "Ignora tutto",
+DlgSpellBtnReplace		: "Cambia",
+DlgSpellBtnReplaceAll	: "Cambia tutto",
+DlgSpellBtnUndo			: "Annulla",
+DlgSpellNoSuggestions	: "- Nessun suggerimento -",
+DlgSpellProgress		: "Controllo ortografico in corso",
+DlgSpellNoMispell		: "Controllo ortografico completato: nessun errore trovato",
+DlgSpellNoChanges		: "Controllo ortografico completato: nessuna parola cambiata",
+DlgSpellOneChange		: "Controllo ortografico completato: 1 parola cambiata",
+DlgSpellManyChanges		: "Controllo ortografico completato: %1 parole cambiate",
+
+IeSpellDownload			: "Contollo ortografico non installato. Lo vuoi scaricare ora?",
+
+// Button Dialog
+DlgButtonText		: "Testo (Value)",
+DlgButtonType		: "Tipo",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nome",
+DlgCheckboxValue	: "Valore",
+DlgCheckboxSelected	: "Selezionato",
+
+// Form Dialog
+DlgFormName		: "Nome",
+DlgFormAction	: "Azione",
+DlgFormMethod	: "Metodo",
+
+// Select Field Dialog
+DlgSelectName		: "Nome",
+DlgSelectValue		: "Valore",
+DlgSelectSize		: "Dimensione",
+DlgSelectLines		: "righe",
+DlgSelectChkMulti	: "Permetti selezione multipla",
+DlgSelectOpAvail	: "Opzioni disponibili",
+DlgSelectOpText		: "Testo",
+DlgSelectOpValue	: "Valore",
+DlgSelectBtnAdd		: "Aggiungi",
+DlgSelectBtnModify	: "Modifica",
+DlgSelectBtnUp		: "Su",
+DlgSelectBtnDown	: "Gi",
+DlgSelectBtnSetValue : "Imposta come predefinito",
+DlgSelectBtnDelete	: "Rimuovi",
+
+// Textarea Dialog
+DlgTextareaName	: "Nome",
+DlgTextareaCols	: "Colonne",
+DlgTextareaRows	: "Righe",
+
+// Text Field Dialog
+DlgTextName			: "Nome",
+DlgTextValue		: "Valore",
+DlgTextCharWidth	: "Larghezza",
+DlgTextMaxChars		: "Numero massimo di caratteri",
+DlgTextType			: "Tipo",
+DlgTextTypeText		: "Testo",
+DlgTextTypePass		: "Password",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nome",
+DlgHiddenValue	: "Valore",
+
+// Bulleted List Dialog
+BulletedListProp	: "Proprietà lista puntata",
+NumberedListProp	: "Proprietà lista numerata",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tipo",
+DlgLstTypeCircle	: "Tondo",
+DlgLstTypeDisc		: "Disco",
+DlgLstTypeSquare	: "Quadrato",
+DlgLstTypeNumbers	: "Numeri (1, 2, 3)",
+DlgLstTypeLCase		: "Caratteri minuscoli (a, b, c)",
+DlgLstTypeUCase		: "Caratteri maiuscoli (A, B, C)",
+DlgLstTypeSRoman	: "Numeri Romani minuscoli (i, ii, iii)",
+DlgLstTypeLRoman	: "Numeri Romani maiuscoli (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Genarale",
+DlgDocBackTab		: "Sfondo",
+DlgDocColorsTab		: "Colori e margini",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Titolo pagina",
+DlgDocLangDir		: "Direzione scrittura",
+DlgDocLangDirLTR	: "Da Sinistra a Destra (LTR)",
+DlgDocLangDirRTL	: "Da Destra a Sinistra (RTL)",
+DlgDocLangCode		: "Codice Lingua",
+DlgDocCharSet		: "Set di caretteri",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Altro set di caretteri",
+
+DlgDocDocType		: "Intestazione DocType",
+DlgDocDocTypeOther	: "Altra intestazione DocType",
+DlgDocIncXHTML		: "Includi dichiarazione XHTML",
+DlgDocBgColor		: "Colore di sfondo",
+DlgDocBgImage		: "Immagine di sfondo",
+DlgDocBgNoScroll	: "Sfondo fissato",
+DlgDocCText			: "Testo",
+DlgDocCLink			: "Collegamento",
+DlgDocCVisited		: "Collegamento visitato",
+DlgDocCActive		: "Collegamento attivo",
+DlgDocMargins		: "Margini",
+DlgDocMaTop			: "In Alto",
+DlgDocMaLeft		: "A Sinistra",
+DlgDocMaRight		: "A Destra",
+DlgDocMaBottom		: "In Basso",
+DlgDocMeIndex		: "Chiavi di indicizzazione documento (separate da virgola)",
+DlgDocMeDescr		: "Descrizione documento",
+DlgDocMeAuthor		: "Autore",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Anteprima",
+
+// Templates Dialog
+Templates			: "Modelli",
+DlgTemplatesTitle	: "Contenuto dei modelli",
+DlgTemplatesSelMsg	: "Seleziona il modello da aprire nell'editor<br />(il contenuto attuale verrà eliminato):",
+DlgTemplatesLoading	: "Caricamento modelli in corso. Attendere prego...",
+DlgTemplatesNoTpl	: "(Nessun modello definito)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Informazioni",
+DlgAboutBrowserInfoTab	: "Informazioni Browser",
+DlgAboutLicenseTab	: "Licenza",
+DlgAboutVersion		: "versione",
+DlgAboutLicense		: "Rilasciato sotto la licensa GNU Lesser General Public License",
+DlgAboutInfo		: "Localizzazione in Italiano realizzata da Simone Chiaretta<br /><a target=\"_blank\" href=\"http://www.piyosailing.com/S/\">www.piyosailing.com</a><br /><br />Per maggiori informazioni visitare"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/sl.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/sl.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/sl.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: sl.js
+ * 	Slovenian language file.
+ * 
+ * File Authors:
+ * 		Boris Volarič (vol@rutka.net)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Zloži orodno vrstico",
+ToolbarExpand		: "Razširi orodno vrstico",
+
+// Toolbar Items and Context Menu
+Save				: "Shrani",
+NewPage				: "Nova stran",
+Preview				: "Predogled",
+Cut					: "Izreži",
+Copy				: "Kopiraj",
+Paste				: "Prilepi",
+PasteText			: "Prilepi kot golo besedilo",
+PasteWord			: "Prilepi iz Worda",
+Print				: "Natisni",
+SelectAll			: "Izberi vse",
+RemoveFormat		: "Odstrani oblikovanje",
+InsertLinkLbl		: "Povezava",
+InsertLink			: "Vstavi/uredi povezavo",
+RemoveLink			: "Odstrani povezavo",
+Anchor				: "Vstavi/uredi zaznamek",
+InsertImageLbl		: "Slika",
+InsertImage			: "Vstavi/uredi sliko",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Vstavi/Uredi Flash",
+InsertTableLbl		: "Tabela",
+InsertTable			: "Vstavi/uredi tabelo",
+InsertLineLbl		: "Črta",
+InsertLine			: "Vstavi vodoravno črto",
+InsertSpecialCharLbl: "Posebni znak",
+InsertSpecialChar	: "Vstavi posebni znak",
+InsertSmileyLbl		: "Smeško",
+InsertSmiley		: "Vstavi smeška",
+About				: "O FCKeditorju",
+Bold				: "Krepko",
+Italic				: "Ležeče",
+Underline			: "Podčrtano",
+StrikeThrough		: "Prečrtano",
+Subscript			: "Podpisano",
+Superscript			: "Nadpisano",
+LeftJustify			: "Leva poravnava",
+CenterJustify		: "Sredinska poravnava",
+RightJustify		: "Desna poravnava",
+BlockJustify		: "Obojestranska poravnava",
+DecreaseIndent		: "Zmanjšaj zamik",
+IncreaseIndent		: "Povečaj zamik",
+Undo				: "Razveljavi",
+Redo				: "Ponovi",
+NumberedListLbl		: "Oštevilčen seznam",
+NumberedList		: "Vstavi/odstrani oštevilčevanje",
+BulletedListLbl		: "Označen seznam",
+BulletedList		: "Vstavi/odstrani označevanje",
+ShowTableBorders	: "Pokaži meje tabele",
+ShowDetails			: "Pokaži podrobnosti",
+Style				: "Slog",
+FontFormat			: "Oblika",
+Font				: "Pisava",
+FontSize			: "Velikost",
+TextColor			: "Barva besedila",
+BGColor				: "Barva ozadja",
+Source				: "Izvorna koda",
+Find				: "Najdi",
+Replace				: "Zamenjaj",
+SpellCheck			: "Preveri črkovanje",
+UniversalKeyboard	: "Večjezična tipkovnica",
+PageBreakLbl		: "Prelom strani",
+PageBreak			: "Vstavi prelom strani",
+
+Form			: "Obrazec",
+Checkbox		: "Potrditveno polje",
+RadioButton		: "Izbirno polje",
+TextField		: "Vnosno polje",
+Textarea		: "Vnosno območje",
+HiddenField		: "Skrito polje",
+Button			: "Gumb",
+SelectionField	: "Spustni seznam",
+ImageButton		: "Gumb s sliko",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+
+// Context Menu
+EditLink			: "Uredi povezavo",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRow			: "Vstavi vrstico",
+DeleteRows			: "Izbriši vrstice",
+InsertColumn		: "Vstavi stolpec",
+DeleteColumns		: "Izbriši stolpce",
+InsertCell			: "Vstavi celico",
+DeleteCells			: "Izbriši celice",
+MergeCells			: "Združi celice",
+SplitCell			: "Razdeli celico",
+TableDelete			: "Izbriši tabelo",
+CellProperties		: "Lastnosti celice",
+TableProperties		: "Lastnosti tabele",
+ImageProperties		: "Lastnosti slike",
+FlashProperties		: "Lastnosti Flash",
+
+AnchorProp			: "Lastnosti zaznamka",
+ButtonProp			: "Lastnosti gumba",
+CheckboxProp		: "Lastnosti potrditvenega polja",
+HiddenFieldProp		: "Lastnosti skritega polja",
+RadioButtonProp		: "Lastnosti izbirnega polja",
+ImageButtonProp		: "Lastnosti gumba s sliko",
+TextFieldProp		: "Lastnosti vnosnega polja",
+SelectionFieldProp	: "Lastnosti spustnega seznama",
+TextareaProp		: "Lastnosti vnosnega območja",
+FormProp			: "Lastnosti obrazca",
+
+FontFormats			: "Navaden;Oblikovan;Napis;Naslov 1;Naslov 2;Naslov 3;Naslov 4;Naslov 5;Naslov 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Obdelujem XHTML. Prosim počakajte...",
+Done				: "Narejeno",
+PasteWordConfirm	: "Izgleda, da želite prilepiti besedilo iz Worda. Ali ga želite očistiti, preden ga prilepite?",
+NotCompatiblePaste	: "Ta ukaz deluje le v Internet Explorerje različice 5.5 ali višje. Ali želite prilepiti brez čiščenja?",
+UnknownToolbarItem	: "Neznan element orodne vrstice \"%1\"",
+UnknownCommand		: "Neznano ime ukaza \"%1\"",
+NotImplemented		: "Ukaz ni izdelan",
+UnknownToolbarSet	: "Skupina orodnih vrstic \"%1\" ne obstoja",
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
+
+// Dialogs
+DlgBtnOK			: "V redu",
+DlgBtnCancel		: "Prekliči",
+DlgBtnClose			: "Zapri",
+DlgBtnBrowseServer	: "Prebrskaj na strežniku",
+DlgAdvancedTag		: "Napredno",
+DlgOpOther			: "<Ostalo>",
+DlgInfoTab			: "Podatki",
+DlgAlertUrl			: "Prosim vpiši spletni naslov",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<ni postavljen>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Smer jezika",
+DlgGenLangDirLtr	: "Od leve proti desni (LTR)",
+DlgGenLangDirRtl	: "Od desne proti levi (RTL)",
+DlgGenLangCode		: "Oznaka jezika",
+DlgGenAccessKey		: "Vstopno geslo",
+DlgGenName			: "Ime",
+DlgGenTabIndex		: "Številka tabulatorja",
+DlgGenLongDescr		: "Dolg opis URL-ja",
+DlgGenClass			: "Razred stilne predloge",
+DlgGenTitle			: "Predlagani naslov",
+DlgGenContType		: "Predlagani tip vsebine (content-type)",
+DlgGenLinkCharset	: "Kodna tabela povezanega vira",
+DlgGenStyle			: "Slog",
+
+// Image Dialog
+DlgImgTitle			: "Lastnosti slike",
+DlgImgInfoTab		: "Podatki o sliki",
+DlgImgBtnUpload		: "Pošlji na strežnik",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Pošlji",
+DlgImgAlt			: "Nadomestno besedilo",
+DlgImgWidth			: "Širina",
+DlgImgHeight		: "Višina",
+DlgImgLockRatio		: "Zakleni razmerje",
+DlgBtnResetSize		: "Ponastavi velikost",
+DlgImgBorder		: "Obroba",
+DlgImgHSpace		: "Vodoravni razmik",
+DlgImgVSpace		: "Navpični razmik",
+DlgImgAlign			: "Poravnava",
+DlgImgAlignLeft		: "Levo",
+DlgImgAlignAbsBottom: "Popolnoma na dno",
+DlgImgAlignAbsMiddle: "Popolnoma v sredino",
+DlgImgAlignBaseline	: "Na osnovno črto",
+DlgImgAlignBottom	: "Na dno",
+DlgImgAlignMiddle	: "V sredino",
+DlgImgAlignRight	: "Desno",
+DlgImgAlignTextTop	: "Besedilo na vrh",
+DlgImgAlignTop		: "Na vrh",
+DlgImgPreview		: "Predogled",
+DlgImgAlertUrl		: "Vnesite URL slike",
+DlgImgLinkTab		: "Povezava",
+
+// Flash Dialog
+DlgFlashTitle		: "Lastnosti Flash",
+DlgFlashChkPlay		: "Samodejno predvajaj",
+DlgFlashChkLoop		: "Ponavljanje",
+DlgFlashChkMenu		: "Omogoči Flash Meni",
+DlgFlashScale		: "Povečava",
+DlgFlashScaleAll	: "Pokaži vse",
+DlgFlashScaleNoBorder	: "Brez obrobe",
+DlgFlashScaleFit	: "Natančno prileganje",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Povezava",
+DlgLnkInfoTab		: "Podatki o povezavi",
+DlgLnkTargetTab		: "Cilj",
+
+DlgLnkType			: "Vrsta povezave",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Zaznamek na tej strani",
+DlgLnkTypeEMail		: "Elektronski naslov",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<drugo>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Izberi zaznamek",
+DlgLnkAnchorByName	: "Po imenu zaznamka",
+DlgLnkAnchorById	: "Po ID-ju elementa",
+DlgLnkNoAnchors		: "<V tem dokumentu ni zaznamkov>",
+DlgLnkEMail			: "Elektronski naslov",
+DlgLnkEMailSubject	: "Predmet sporočila",
+DlgLnkEMailBody		: "Vsebina sporočila",
+DlgLnkUpload		: "Prenesi",
+DlgLnkBtnUpload		: "Pošlji na strežnik",
+
+DlgLnkTarget		: "Cilj",
+DlgLnkTargetFrame	: "<okvir>",
+DlgLnkTargetPopup	: "<pojavno okno>",
+DlgLnkTargetBlank	: "Novo okno (_blank)",
+DlgLnkTargetParent	: "Starševsko okno (_parent)",
+DlgLnkTargetSelf	: "Isto okno (_self)",
+DlgLnkTargetTop		: "Najvišje okno (_top)",
+DlgLnkTargetFrameName	: "Ime ciljnega okvirja",
+DlgLnkPopWinName	: "Ime pojavnega okna",
+DlgLnkPopWinFeat	: "Značilnosti pojavnega okna",
+DlgLnkPopResize		: "Spremenljive velikosti",
+DlgLnkPopLocation	: "Naslovna vrstica",
+DlgLnkPopMenu		: "Menijska vrstica",
+DlgLnkPopScroll		: "Drsniki",
+DlgLnkPopStatus		: "Vrstica stanja",
+DlgLnkPopToolbar	: "Orodna vrstica",
+DlgLnkPopFullScrn	: "Celozaslonska slika (IE)",
+DlgLnkPopDependent	: "Podokno (Netscape)",
+DlgLnkPopWidth		: "Širina",
+DlgLnkPopHeight		: "Višina",
+DlgLnkPopLeft		: "Lega levo",
+DlgLnkPopTop		: "Lega na vrhu",
+
+DlnLnkMsgNoUrl		: "Vnesite URL povezave",
+DlnLnkMsgNoEMail	: "Vnesite elektronski naslov",
+DlnLnkMsgNoAnchor	: "Izberite zaznamek",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Izberite barvo",
+DlgColorBtnClear	: "Počisti",
+DlgColorHighlight	: "Označi",
+DlgColorSelected	: "Izbrano",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Vstavi smeška",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Izberi posebni znak",
+
+// Table Dialog
+DlgTableTitle		: "Lastnosti tabele",
+DlgTableRows		: "Vrstice",
+DlgTableColumns		: "Stolpci",
+DlgTableBorder		: "Velikost obrobe",
+DlgTableAlign		: "Poravnava",
+DlgTableAlignNotSet	: "<Ni nastavljeno>",
+DlgTableAlignLeft	: "Levo",
+DlgTableAlignCenter	: "Sredinsko",
+DlgTableAlignRight	: "Desno",
+DlgTableWidth		: "Širina",
+DlgTableWidthPx		: "pik",
+DlgTableWidthPc		: "procentov",
+DlgTableHeight		: "Višina",
+DlgTableCellSpace	: "Razmik med celicami",
+DlgTableCellPad		: "Polnilo med celicami",
+DlgTableCaption		: "Naslov",
+DlgTableSummary		: "Povzetek",
+
+// Table Cell Dialog
+DlgCellTitle		: "Lastnosti celice",
+DlgCellWidth		: "Širina",
+DlgCellWidthPx		: "pik",
+DlgCellWidthPc		: "procentov",
+DlgCellHeight		: "Višina",
+DlgCellWordWrap		: "Pomikanje besedila",
+DlgCellWordWrapNotSet	: "<Ni nastavljeno>",
+DlgCellWordWrapYes	: "Da",
+DlgCellWordWrapNo	: "Ne",
+DlgCellHorAlign		: "Vodoravna poravnava",
+DlgCellHorAlignNotSet	: "<Ni nastavljeno>",
+DlgCellHorAlignLeft	: "Levo",
+DlgCellHorAlignCenter	: "Sredinsko",
+DlgCellHorAlignRight: "Desno",
+DlgCellVerAlign		: "Navpična poravnava",
+DlgCellVerAlignNotSet	: "<Ni nastavljeno>",
+DlgCellVerAlignTop	: "Na vrh",
+DlgCellVerAlignMiddle	: "V sredino",
+DlgCellVerAlignBottom	: "Na dno",
+DlgCellVerAlignBaseline	: "Na osnovno črto",
+DlgCellRowSpan		: "Spojenih vrstic (row-span)",
+DlgCellCollSpan		: "Spojenih stolpcev (col-span)",
+DlgCellBackColor	: "Barva ozadja",
+DlgCellBorderColor	: "Barva obrobe",
+DlgCellBtnSelect	: "Izberi...",
+
+// Find Dialog
+DlgFindTitle		: "Najdi",
+DlgFindFindBtn		: "Najdi",
+DlgFindNotFoundMsg	: "Navedeno besedilo ni bilo najdeno.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Zamenjaj",
+DlgReplaceFindLbl		: "Najdi:",
+DlgReplaceReplaceLbl	: "Zamenjaj z:",
+DlgReplaceCaseChk		: "Razlikuj velike in male črke",
+DlgReplaceReplaceBtn	: "Zamenjaj",
+DlgReplaceReplAllBtn	: "Zamenjaj vse",
+DlgReplaceWordChk		: "Samo cele besede",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Varnostne nastavitve brskalnika ne dopuščajo samodejnega lepljenja. Uporabite kombinacijo tipk na tipkovnici (Ctrl+V).",
+PasteErrorCut	: "Varnostne nastavitve brskalnika ne dopuščajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl+X).",
+PasteErrorCopy	: "Varnostne nastavitve brskalnika ne dopuščajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl+C).",
+
+PasteAsText		: "Prilepi kot golo besedilo",
+PasteFromWord	: "Prilepi iz Worda",
+
+DlgPasteMsg2	: "Prosim prilepite v sleči okvir s pomočjo tipkovnice (<STRONG>Ctrl+V</STRONG>) in pritisnite <STRONG>V redu</STRONG>.",
+DlgPasteIgnoreFont		: "Prezri obliko pisave",
+DlgPasteRemoveStyles	: "Odstrani nastavitve stila",
+DlgPasteCleanBox		: "Počisti okvir",
+
+// Color Picker
+ColorAutomatic	: "Samodejno",
+ColorMoreColors	: "Več barv...",
+
+// Document Properties
+DocProps		: "Lastnosti dokumenta",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Lastnosti zaznamka",
+DlgAnchorName		: "Ime zaznamka",
+DlgAnchorErrorName	: "Prosim vnesite ime zaznamka",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Ni v slovarju",
+DlgSpellChangeTo		: "Spremeni v",
+DlgSpellBtnIgnore		: "Prezri",
+DlgSpellBtnIgnoreAll	: "Prezri vse",
+DlgSpellBtnReplace		: "Zamenjaj",
+DlgSpellBtnReplaceAll	: "Zamenjaj vse",
+DlgSpellBtnUndo			: "Razveljavi",
+DlgSpellNoSuggestions	: "- Ni predlogov -",
+DlgSpellProgress		: "Preverjanje črkovanja se izvaja...",
+DlgSpellNoMispell		: "Črkovanje je končano: Brez napak",
+DlgSpellNoChanges		: "Črkovanje je končano: Nobena beseda ni bila spremenjena",
+DlgSpellOneChange		: "Črkovanje je končano: Spremenjena je bila ena beseda",
+DlgSpellManyChanges		: "Črkovanje je končano: Spremenjenih je bilo %1 besed",
+
+IeSpellDownload			: "Črkovalnik ni nameščen. Ali ga želite prenesti sedaj?",
+
+// Button Dialog
+DlgButtonText		: "Besedilo (Vrednost)",
+DlgButtonType		: "Tip",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Ime",
+DlgCheckboxValue	: "Vrednost",
+DlgCheckboxSelected	: "Izbrano",
+
+// Form Dialog
+DlgFormName		: "Ime",
+DlgFormAction	: "Akcija",
+DlgFormMethod	: "Metoda",
+
+// Select Field Dialog
+DlgSelectName		: "Ime",
+DlgSelectValue		: "Vrednost",
+DlgSelectSize		: "Velikost",
+DlgSelectLines		: "vrstic",
+DlgSelectChkMulti	: "Dovoli izbor večih vrstic",
+DlgSelectOpAvail	: "Razpoložljive izbire",
+DlgSelectOpText		: "Besedilo",
+DlgSelectOpValue	: "Vrednost",
+DlgSelectBtnAdd		: "Dodaj",
+DlgSelectBtnModify	: "Spremeni",
+DlgSelectBtnUp		: "Gor",
+DlgSelectBtnDown	: "Dol",
+DlgSelectBtnSetValue : "Postavi kot privzeto izbiro",
+DlgSelectBtnDelete	: "Izbriši",
+
+// Textarea Dialog
+DlgTextareaName	: "Ime",
+DlgTextareaCols	: "Stolpcev",
+DlgTextareaRows	: "Vrstic",
+
+// Text Field Dialog
+DlgTextName			: "Ime",
+DlgTextValue		: "Vrednost",
+DlgTextCharWidth	: "Dolžina",
+DlgTextMaxChars		: "Največje število znakov",
+DlgTextType			: "Tip",
+DlgTextTypeText		: "Besedilo",
+DlgTextTypePass		: "Geslo",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Ime",
+DlgHiddenValue	: "Vrednost",
+
+// Bulleted List Dialog
+BulletedListProp	: "Lastnosti označenega seznama",
+NumberedListProp	: "Lastnosti oštevilčenega seznama",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tip",
+DlgLstTypeCircle	: "Pikica",
+DlgLstTypeDisc		: "Kroglica",
+DlgLstTypeSquare	: "Kvadratek",
+DlgLstTypeNumbers	: "Številke (1, 2, 3)",
+DlgLstTypeLCase		: "Male črke (a, b, c)",
+DlgLstTypeUCase		: "Velike črke (A, B, C)",
+DlgLstTypeSRoman	: "Male rimske številke (i, ii, iii)",
+DlgLstTypeLRoman	: "Velike rimske številke (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Splošno",
+DlgDocBackTab		: "Ozadje",
+DlgDocColorsTab		: "Barve in zamiki",
+DlgDocMetaTab		: "Meta podatki",
+
+DlgDocPageTitle		: "Naslov strani",
+DlgDocLangDir		: "Smer jezika",
+DlgDocLangDirLTR	: "Od leve proti desni (LTR)",
+DlgDocLangDirRTL	: "Od desne proti levi (RTL)",
+DlgDocLangCode		: "Oznaka jezika",
+DlgDocCharSet		: "Kodna tabela",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Druga kodna tabela",
+
+DlgDocDocType		: "Glava tipa dokumenta",
+DlgDocDocTypeOther	: "Druga glava tipa dokumenta",
+DlgDocIncXHTML		: "Vstavi XHTML deklaracije",
+DlgDocBgColor		: "Barva ozadja",
+DlgDocBgImage		: "URL slike za ozadje",
+DlgDocBgNoScroll	: "Nepremično ozadje",
+DlgDocCText			: "Besedilo",
+DlgDocCLink			: "Povezava",
+DlgDocCVisited		: "Obiskana povezava",
+DlgDocCActive		: "Aktivna povezava",
+DlgDocMargins		: "Zamiki strani",
+DlgDocMaTop			: "Na vrhu",
+DlgDocMaLeft		: "Levo",
+DlgDocMaRight		: "Desno",
+DlgDocMaBottom		: "Spodaj",
+DlgDocMeIndex		: "Ključne besede (ločene z vejicami)",
+DlgDocMeDescr		: "Opis strani",
+DlgDocMeAuthor		: "Avtor",
+DlgDocMeCopy		: "Avtorske pravice",
+DlgDocPreview		: "Predogled",
+
+// Templates Dialog
+Templates			: "Predloge",
+DlgTemplatesTitle	: "Vsebinske predloge",
+DlgTemplatesSelMsg	: "Izberite predlogo, ki jo želite odpreti v urejevalniku<br>(trenutna vsebina bo izgubljena):",
+DlgTemplatesLoading	: "Nalagam seznam predlog. Prosim počakajte...",
+DlgTemplatesNoTpl	: "(Ni pripravljenih predlog)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Vizitka",
+DlgAboutBrowserInfoTab	: "Informacije o brskalniku",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "različica",
+DlgAboutLicense		: "Pravica za uporabo pod pogoji GNU Lesser General Public License",
+DlgAboutInfo		: "Za več informacij obiščite"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/lt.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/lt.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/lt.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: lt.js
+ * 	Lithuanian language file.
+ * 
+ * File Authors:
+ * 		Tauras Paliulis (tauras.paliulis@tauras.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Sutraukti mygtukų juostą",
+ToolbarExpand		: "Išplėsti mygtukų juostą",
+
+// Toolbar Items and Context Menu
+Save				: "Išsaugoti",
+NewPage				: "Naujas puslapis",
+Preview				: "Peržiūra",
+Cut					: "Iškirpti",
+Copy				: "Kopijuoti",
+Paste				: "Įdėti",
+PasteText			: "Įdėti kaip gryną tekstą",
+PasteWord			: "Įdėti iš Word",
+Print				: "Spausdinti",
+SelectAll			: "Pažymėti viską",
+RemoveFormat		: "Panaikinti formatą",
+InsertLinkLbl		: "Nuoroda",
+InsertLink			: "Įterpti/taisyti nuorodą",
+RemoveLink			: "Panaikinti nuorodą",
+Anchor				: "Įterpti/modifikuoti žymę",
+InsertImageLbl		: "Vaizdas",
+InsertImage			: "Įterpti/taisyti vaizdą",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Įterpti/taisyti Flash",
+InsertTableLbl		: "Lentelė",
+InsertTable			: "Įterpti/taisyti lentelę",
+InsertLineLbl		: "Linija",
+InsertLine			: "Įterpti horizontalią liniją",
+InsertSpecialCharLbl: "Spec. simbolis",
+InsertSpecialChar	: "Įterpti specialų simbolį",
+InsertSmileyLbl		: "Veideliai",
+InsertSmiley		: "Įterpti veidelį",
+About				: "Apie FCKeditor",
+Bold				: "Pusjuodis",
+Italic				: "Kursyvas",
+Underline			: "Pabrauktas",
+StrikeThrough		: "Perbrauktas",
+Subscript			: "Apatinis indeksas",
+Superscript			: "Viršutinis indeksas",
+LeftJustify			: "Lygiuoti kairę",
+CenterJustify		: "Centruoti",
+RightJustify		: "Lygiuoti dešinę",
+BlockJustify		: "Lygiuoti abi puses",
+DecreaseIndent		: "Sumažinti įtrauką",
+IncreaseIndent		: "Padidinti įtrauką",
+Undo				: "Atšaukti",
+Redo				: "Atstatyti",
+NumberedListLbl		: "Numeruotas sąrašas",
+NumberedList		: "Įterpti/Panaikinti numeruotą sąrašą",
+BulletedListLbl		: "Suženklintas sąrašas",
+BulletedList		: "Įterpti/Panaikinti suženklintą sąrašą",
+ShowTableBorders	: "Rodyti lentelės rėmus",
+ShowDetails			: "Rodyti detales",
+Style				: "Stilius",
+FontFormat			: "Šrifto formatas",
+Font				: "Šriftas",
+FontSize			: "Šrifto dydis",
+TextColor			: "Teksto spalva",
+BGColor				: "Fono spalva",
+Source				: "Šaltinis",
+Find				: "Rasti",
+Replace				: "Pakeisti",
+SpellCheck			: "Rašybos tikrinimas",
+UniversalKeyboard	: "Universali klaviatūra",
+PageBreakLbl		: "Puslapių skirtukas",
+PageBreak			: "Įterpti puslapių skirtuką",
+
+Form			: "Forma",
+Checkbox		: "Žymimasis langelis",
+RadioButton		: "Žymimoji akutė",
+TextField		: "Teksto laukas",
+Textarea		: "Teksto sritis",
+HiddenField		: "Nerodomas laukas",
+Button			: "Mygtukas",
+SelectionField	: "Atrankos laukas",
+ImageButton		: "Vaizdinis mygtukas",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+
+// Context Menu
+EditLink			: "Taisyti nuorodą",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRow			: "Įterpti eilutę",
+DeleteRows			: "Šalinti eilutes",
+InsertColumn		: "Įterpti stulpelį",
+DeleteColumns		: "Šalinti stulpelius",
+InsertCell			: "Įterpti langelį",
+DeleteCells			: "Šalinti langelius",
+MergeCells			: "Sujungti langelius",
+SplitCell			: "Skaidyti langelius",
+TableDelete			: "Šalinti lentelę",
+CellProperties		: "Langelio savybės",
+TableProperties		: "Lentelės savybės",
+ImageProperties		: "Vaizdo savybės",
+FlashProperties		: "Flash savybės",
+
+AnchorProp			: "Žymės savybės",
+ButtonProp			: "Mygtuko savybės",
+CheckboxProp		: "Žymimojo langelio savybės",
+HiddenFieldProp		: "Nerodomo lauko savybės",
+RadioButtonProp		: "Žymimosios akutės savybės",
+ImageButtonProp		: "Vaizdinio mygtuko savybės",
+TextFieldProp		: "Teksto lauko savybės",
+SelectionFieldProp	: "Atrankos lauko savybės",
+TextareaProp		: "Teksto srities savybės",
+FormProp			: "Formos savybės",
+
+FontFormats			: "Normalus;Formuotas;Kreipinio;Antraštinis 1;Antraštinis 2;Antraštinis 3;Antraštinis 4;Antraštinis 5;Antraštinis 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Apdorojamas XHTML. Prašome palaukti...",
+Done				: "Baigta",
+PasteWordConfirm	: "Įdedamas tekstas yra panašus į kopiją iš Word. Ar Jūs norite prieš įdėjimą išvalyti jį?",
+NotCompatiblePaste	: "Ši komanda yra prieinama tik per Internet Explorer 5.5 ar aukštesnę versiją. Ar Jūs norite įterpti be valymo?",
+UnknownToolbarItem	: "Nežinomas mygtukų juosta elementas \"%1\"",
+UnknownCommand		: "Nežinomas komandos vardas \"%1\"",
+NotImplemented		: "Komanda nėra įgyvendinta",
+UnknownToolbarSet	: "Mygtukų juostos rinkinys \"%1\" neegzistuoja",
+NoActiveX			: "Jūsų naršyklės saugumo nuostatos gali riboti kai kurias redaktoriaus savybes. Jūs turite aktyvuoti opciją \"Run ActiveX controls and plug-ins\". Kitu atveju Jums bus pranešama apie klaidas ir trūkstamas savybes.",
+BrowseServerBlocked : "Neįmanoma atidaryti naujo naršyklės lango. Įsitikinkite, kad iškylančių langų blokavimo programos neveiksnios.",
+DialogBlocked		: "Neįmanoma atidaryti dialogo lango. Įsitikinkite, kad iškylančių langų blokavimo programos neveiksnios.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Nutraukti",
+DlgBtnClose			: "Uždaryti",
+DlgBtnBrowseServer	: "Naršyti po serverį",
+DlgAdvancedTag		: "Papildomas",
+DlgOpOther			: "<Kita>",
+DlgInfoTab			: "Informacija",
+DlgAlertUrl			: "Prašome įrašyti URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nėra nustatyta>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Teksto kryptis",
+DlgGenLangDirLtr	: "Iš kairės į dešinę (LTR)",
+DlgGenLangDirRtl	: "Iš dešinės į kairę (RTL)",
+DlgGenLangCode		: "Kalbos kodas",
+DlgGenAccessKey		: "Prieigos raktas",
+DlgGenName			: "Vardas",
+DlgGenTabIndex		: "Tabuliavimo indeksas",
+DlgGenLongDescr		: "Ilgas aprašymas URL",
+DlgGenClass			: "Stilių lentelės klasės",
+DlgGenTitle			: "Konsultacinė antraštė",
+DlgGenContType		: "Konsultacinio turinio tipas",
+DlgGenLinkCharset	: "Susietų išteklių simbolių lentelė",
+DlgGenStyle			: "Stilius",
+
+// Image Dialog
+DlgImgTitle			: "Vaizdo savybės",
+DlgImgInfoTab		: "Vaizdo informacija",
+DlgImgBtnUpload		: "Siųsti į serverį",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Nusiųsti",
+DlgImgAlt			: "Alternatyvus Tekstas",
+DlgImgWidth			: "Plotis",
+DlgImgHeight		: "Aukštis",
+DlgImgLockRatio		: "Išlaikyti proporciją",
+DlgBtnResetSize		: "Atstatyti dydį",
+DlgImgBorder		: "Rėmelis",
+DlgImgHSpace		: "Hor.Erdvė",
+DlgImgVSpace		: "Vert.Erdvė",
+DlgImgAlign			: "Lygiuoti",
+DlgImgAlignLeft		: "Kairę",
+DlgImgAlignAbsBottom: "Absoliučią apačią",
+DlgImgAlignAbsMiddle: "Absoliutų vidurį",
+DlgImgAlignBaseline	: "Apatinę liniją",
+DlgImgAlignBottom	: "Apačią",
+DlgImgAlignMiddle	: "Vidurį",
+DlgImgAlignRight	: "Dešinę",
+DlgImgAlignTextTop	: "Teksto viršūnę",
+DlgImgAlignTop		: "Viršūnę",
+DlgImgPreview		: "Peržiūra",
+DlgImgAlertUrl		: "Prašome įvesti vaizdo URL",
+DlgImgLinkTab		: "Nuoroda",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash savybės",
+DlgFlashChkPlay		: "Automatinis paleidimas",
+DlgFlashChkLoop		: "Ciklas",
+DlgFlashChkMenu		: "Leisti Flash meniu",
+DlgFlashScale		: "Mastelis",
+DlgFlashScaleAll	: "Rodyti visą",
+DlgFlashScaleNoBorder	: "Be rėmelio",
+DlgFlashScaleFit	: "Tikslus atitikimas",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Nuoroda",
+DlgLnkInfoTab		: "Nuorodos informacija",
+DlgLnkTargetTab		: "Paskirtis",
+
+DlgLnkType			: "Nuorodos tipas",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Žymė šiame puslapyje",
+DlgLnkTypeEMail		: "El.paštas",
+DlgLnkProto			: "Protokolas",
+DlgLnkProtoOther	: "<kitas>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Pasirinkite žymę",
+DlgLnkAnchorByName	: "Pagal žymės vardą",
+DlgLnkAnchorById	: "Pagal žymės Id",
+DlgLnkNoAnchors		: "<Šiame dokumente žymių nėra>",
+DlgLnkEMail			: "El.pašto adresas",
+DlgLnkEMailSubject	: "Žinutės tema",
+DlgLnkEMailBody		: "Žinutės turinys",
+DlgLnkUpload		: "Siųsti",
+DlgLnkBtnUpload		: "Siųsti į serverį",
+
+DlgLnkTarget		: "Paskirties vieta",
+DlgLnkTargetFrame	: "<kadras>",
+DlgLnkTargetPopup	: "<išskleidžiamas langas>",
+DlgLnkTargetBlank	: "Naujas langas (_blank)",
+DlgLnkTargetParent	: "Pirminis langas (_parent)",
+DlgLnkTargetSelf	: "Tas pats langas (_self)",
+DlgLnkTargetTop		: "Svarbiausias langas (_top)",
+DlgLnkTargetFrameName	: "Paskirties kadro vardas",
+DlgLnkPopWinName	: "Paskirties lango vardas",
+DlgLnkPopWinFeat	: "Išskleidžiamo lango savybės",
+DlgLnkPopResize		: "Keičiamas dydis",
+DlgLnkPopLocation	: "Adreso juosta",
+DlgLnkPopMenu		: "Meniu juosta",
+DlgLnkPopScroll		: "Slinkties juostos",
+DlgLnkPopStatus		: "Būsenos juosta",
+DlgLnkPopToolbar	: "Mygtukų juosta",
+DlgLnkPopFullScrn	: "Visas ekranas (IE)",
+DlgLnkPopDependent	: "Priklausomas (Netscape)",
+DlgLnkPopWidth		: "Plotis",
+DlgLnkPopHeight		: "Aukštis",
+DlgLnkPopLeft		: "Kairė pozicija",
+DlgLnkPopTop		: "Viršutinė pozicija",
+
+DlnLnkMsgNoUrl		: "Prašome įvesti nuorodos URL",
+DlnLnkMsgNoEMail	: "Prašome įvesti el.pašto adresą",
+DlnLnkMsgNoAnchor	: "Prašome pasirinkti žymę",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Pasirinkite spalvą",
+DlgColorBtnClear	: "Trinti",
+DlgColorHighlight	: "Paryškinta",
+DlgColorSelected	: "Pažymėta",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Įterpti veidelį",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Pasirinkite specialų simbolį",
+
+// Table Dialog
+DlgTableTitle		: "Lentelės savybės",
+DlgTableRows		: "Eilutės",
+DlgTableColumns		: "Stulpeliai",
+DlgTableBorder		: "Rėmelio dydis",
+DlgTableAlign		: "Lygiuoti",
+DlgTableAlignNotSet	: "<Nenustatyta>",
+DlgTableAlignLeft	: "Kairę",
+DlgTableAlignCenter	: "Centrą",
+DlgTableAlignRight	: "Dešinę",
+DlgTableWidth		: "Plotis",
+DlgTableWidthPx		: "taškais",
+DlgTableWidthPc		: "procentais",
+DlgTableHeight		: "Aukštis",
+DlgTableCellSpace	: "Tarpas tarp langelių",
+DlgTableCellPad		: "Trapas nuo langelio rėmo iki teksto",
+DlgTableCaption		: "Antraštė",
+DlgTableSummary		: "Santrauka",
+
+// Table Cell Dialog
+DlgCellTitle		: "Langelio savybės",
+DlgCellWidth		: "Plotis",
+DlgCellWidthPx		: "taškais",
+DlgCellWidthPc		: "procentais",
+DlgCellHeight		: "Aukštis",
+DlgCellWordWrap		: "Teksto laužymas",
+DlgCellWordWrapNotSet	: "<Nenustatyta>",
+DlgCellWordWrapYes	: "Taip",
+DlgCellWordWrapNo	: "Ne",
+DlgCellHorAlign		: "Horizontaliai lygiuoti",
+DlgCellHorAlignNotSet	: "<Nenustatyta>",
+DlgCellHorAlignLeft	: "Kairę",
+DlgCellHorAlignCenter	: "Centrą",
+DlgCellHorAlignRight: "Dešinę",
+DlgCellVerAlign		: "Vertikaliai lygiuoti",
+DlgCellVerAlignNotSet	: "<Nenustatyta>",
+DlgCellVerAlignTop	: "Viršų",
+DlgCellVerAlignMiddle	: "Vidurį",
+DlgCellVerAlignBottom	: "Apačią",
+DlgCellVerAlignBaseline	: "Apatinę liniją",
+DlgCellRowSpan		: "Eilučių apjungimas",
+DlgCellCollSpan		: "Stulpelių apjungimas",
+DlgCellBackColor	: "Fono spalva",
+DlgCellBorderColor	: "Rėmelio spalva",
+DlgCellBtnSelect	: "Pažymėti...",
+
+// Find Dialog
+DlgFindTitle		: "Paieška",
+DlgFindFindBtn		: "Surasti",
+DlgFindNotFoundMsg	: "Nurodytas tekstas nerastas.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Pakeisti",
+DlgReplaceFindLbl		: "Surasti tekstą:",
+DlgReplaceReplaceLbl	: "Pakeisti tekstu:",
+DlgReplaceCaseChk		: "Skirti didžiąsias ir mažąsias raides",
+DlgReplaceReplaceBtn	: "Pakeisti",
+DlgReplaceReplAllBtn	: "Pakeisti viską",
+DlgReplaceWordChk		: "Atitikti pilną žodį",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti įdėjimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl+V).",
+PasteErrorCut	: "Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti iškirpimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl+X).",
+PasteErrorCopy	: "Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti kopijavimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl+C).",
+
+PasteAsText		: "Įdėti kaip gryną tekstą",
+PasteFromWord	: "Įdėti iš Word",
+
+DlgPasteMsg2	: "Žemiau esančiame įvedimo lauke įdėkite tekstą, naudodami klaviatūrą (<STRONG>Ctrl+V</STRONG>) ir spūstelkite mygtuką <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignoruoti šriftų nustatymus",
+DlgPasteRemoveStyles	: "Pašalinti stilių nustatymus",
+DlgPasteCleanBox		: "Trinti įvedimo lauką",
+
+// Color Picker
+ColorAutomatic	: "Automatinis",
+ColorMoreColors	: "Daugiau spalvų...",
+
+// Document Properties
+DocProps		: "Dokumento savybės",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Žymės savybės",
+DlgAnchorName		: "Žymės vardas",
+DlgAnchorErrorName	: "Prašome įvesti žymės vardą",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Žodyne nerastas",
+DlgSpellChangeTo		: "Pakeisti į",
+DlgSpellBtnIgnore		: "Ignoruoti",
+DlgSpellBtnIgnoreAll	: "Ignoruoti visus",
+DlgSpellBtnReplace		: "Pakeisti",
+DlgSpellBtnReplaceAll	: "Pakeisti visus",
+DlgSpellBtnUndo			: "Atšaukti",
+DlgSpellNoSuggestions	: "- Nėra pasiūlymų -",
+DlgSpellProgress		: "Vyksta rašybos tikrinimas...",
+DlgSpellNoMispell		: "Rašybos tikrinimas baigtas: Nerasta rašybos klaidų",
+DlgSpellNoChanges		: "Rašybos tikrinimas baigtas: Nėra pakeistų žodžių",
+DlgSpellOneChange		: "Rašybos tikrinimas baigtas: Vienas žodis pakeistas",
+DlgSpellManyChanges		: "Rašybos tikrinimas baigtas: Pakeista %1 žodžių",
+
+IeSpellDownload			: "Rašybos tikrinimas neinstaliuotas. Ar Jūs norite jį dabar atsisiųsti?",
+
+// Button Dialog
+DlgButtonText		: "Tekstas (Reikšmė)",
+DlgButtonType		: "Tipas",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Vardas",
+DlgCheckboxValue	: "Reikšmė",
+DlgCheckboxSelected	: "Pažymėtas",
+
+// Form Dialog
+DlgFormName		: "Vardas",
+DlgFormAction	: "Veiksmas",
+DlgFormMethod	: "Metodas",
+
+// Select Field Dialog
+DlgSelectName		: "Vardas",
+DlgSelectValue		: "Reikšmė",
+DlgSelectSize		: "Dydis",
+DlgSelectLines		: "eilučių",
+DlgSelectChkMulti	: "Leisti daugeriopą atranką",
+DlgSelectOpAvail	: "Galimos parinktys",
+DlgSelectOpText		: "Tekstas",
+DlgSelectOpValue	: "Reikšmė",
+DlgSelectBtnAdd		: "Įtraukti",
+DlgSelectBtnModify	: "Modifikuoti",
+DlgSelectBtnUp		: "Aukštyn",
+DlgSelectBtnDown	: "Žemyn",
+DlgSelectBtnSetValue : "Laikyti pažymėta reikšme",
+DlgSelectBtnDelete	: "Trinti",
+
+// Textarea Dialog
+DlgTextareaName	: "Vardas",
+DlgTextareaCols	: "Ilgis",
+DlgTextareaRows	: "Plotis",
+
+// Text Field Dialog
+DlgTextName			: "Vardas",
+DlgTextValue		: "Reikšmė",
+DlgTextCharWidth	: "Ilgis simboliais",
+DlgTextMaxChars		: "Maksimalus simbolių skaičius",
+DlgTextType			: "Tipas",
+DlgTextTypeText		: "Tekstas",
+DlgTextTypePass		: "Slaptažodis",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Vardas",
+DlgHiddenValue	: "Reikšmė",
+
+// Bulleted List Dialog
+BulletedListProp	: "Suženklinto sąrašo savybės",
+NumberedListProp	: "Numeruoto sąrašo savybės",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tipas",
+DlgLstTypeCircle	: "Apskritimas",
+DlgLstTypeDisc		: "Diskas",
+DlgLstTypeSquare	: "Kvadratas",
+DlgLstTypeNumbers	: "Skaičiai (1, 2, 3)",
+DlgLstTypeLCase		: "Mažosios raidės (a, b, c)",
+DlgLstTypeUCase		: "Didžiosios raidės (A, B, C)",
+DlgLstTypeSRoman	: "Romėnų mažieji skaičiai (i, ii, iii)",
+DlgLstTypeLRoman	: "Romėnų didieji skaičiai (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Bendros savybės",
+DlgDocBackTab		: "Fonas",
+DlgDocColorsTab		: "Spalvos ir kraštinės",
+DlgDocMetaTab		: "Meta duomenys",
+
+DlgDocPageTitle		: "Puslapio antraštė",
+DlgDocLangDir		: "Kalbos kryptis",
+DlgDocLangDirLTR	: "Iš kairės į dešinę (LTR)",
+DlgDocLangDirRTL	: "Iš dešinės į kairę (RTL)",
+DlgDocLangCode		: "Kalbos kodas",
+DlgDocCharSet		: "Simbolių kodavimo lentelė",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Kita simbolių kodavimo lentelė",
+
+DlgDocDocType		: "Dokumento tipo antraštė",
+DlgDocDocTypeOther	: "Kita dokumento tipo antraštė",
+DlgDocIncXHTML		: "Įtraukti XHTML deklaracijas",
+DlgDocBgColor		: "Fono spalva",
+DlgDocBgImage		: "Fono paveikslėlio nuoroda (URL)",
+DlgDocBgNoScroll	: "Neslenkantis fonas",
+DlgDocCText			: "Tekstas",
+DlgDocCLink			: "Nuoroda",
+DlgDocCVisited		: "Aplankyta nuoroda",
+DlgDocCActive		: "Aktyvi nuoroda",
+DlgDocMargins		: "Puslapio kraštinės",
+DlgDocMaTop			: "Viršuje",
+DlgDocMaLeft		: "Kairėje",
+DlgDocMaRight		: "Dešinėje",
+DlgDocMaBottom		: "Apačioje",
+DlgDocMeIndex		: "Dokumento indeksavimo raktiniai žodžiai (atskirti kableliais)",
+DlgDocMeDescr		: "Dokumento apibūdinimas",
+DlgDocMeAuthor		: "Autorius",
+DlgDocMeCopy		: "Autorinės teisės",
+DlgDocPreview		: "Peržiūra",
+
+// Templates Dialog
+Templates			: "Šablonai",
+DlgTemplatesTitle	: "Turinio šablonai",
+DlgTemplatesSelMsg	: "Pasirinkite norimą šabloną<br>(<b>Dėmesio!</b> esamas turinys bus prarastas):",
+DlgTemplatesLoading	: "Įkeliamas šablonų sąrašas. Prašome palaukti...",
+DlgTemplatesNoTpl	: "(Šablonų sąrašas tuščias)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Apie",
+DlgAboutBrowserInfoTab	: "Naršyklės informacija",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "versija",
+DlgAboutLicense		: "Licencijuota pagal GNU mažesnės atsakomybės pagrindinės viešos licencijos sąlygas",
+DlgAboutInfo		: "Papildomą informaciją galima gauti"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/sr-latn.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/sr-latn.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/sr-latn.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: sr-latn.js
+ * 	Serbian (Latin) language file.
+ * 
+ * File Authors:
+ * 		Zoran Subic (zoran@tf.zr.ac.yu)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Smanji liniju sa alatkama",
+ToolbarExpand		: "Proiri liniju sa alatkama",
+
+// Toolbar Items and Context Menu
+Save				: "Sačuvaj",
+NewPage				: "Nova stranica",
+Preview				: "Izgled stranice",
+Cut					: "Iseci",
+Copy				: "Kopiraj",
+Paste				: "Zalepi",
+PasteText			: "Zalepi kao neformatiran tekst",
+PasteWord			: "Zalepi iz Worda",
+Print				: "Štampa",
+SelectAll			: "Označi sve",
+RemoveFormat		: "Ukloni formatiranje",
+InsertLinkLbl		: "Link",
+InsertLink			: "Unesi/izmeni link",
+RemoveLink			: "Ukloni link",
+Anchor				: "Unesi/izmeni sidro",
+InsertImageLbl		: "Slika",
+InsertImage			: "Unesi/izmeni sliku",
+InsertFlashLbl		: "Fleš",
+InsertFlash			: "Unesi/izmeni fleš",
+InsertTableLbl		: "Tabela",
+InsertTable			: "Unesi/izmeni tabelu",
+InsertLineLbl		: "Linija",
+InsertLine			: "Unesi horizontalnu liniju",
+InsertSpecialCharLbl: "Specijalni karakteri",
+InsertSpecialChar	: "Unesi specijalni karakter",
+InsertSmileyLbl		: "Smajli",
+InsertSmiley		: "Unesi smajlija",
+About				: "O FCKeditoru",
+Bold				: "Podebljano",
+Italic				: "Kurziv",
+Underline			: "Podvučeno",
+StrikeThrough		: "Precrtano",
+Subscript			: "Indeks",
+Superscript			: "Stepen",
+LeftJustify			: "Levo ravnanje",
+CenterJustify		: "Centriran tekst",
+RightJustify		: "Desno ravnanje",
+BlockJustify		: "Obostrano ravnanje",
+DecreaseIndent		: "Smanji levu marginu",
+IncreaseIndent		: "Uvećaj levu marginu",
+Undo				: "Poni�ti akciju",
+Redo				: "Ponovi akciju",
+NumberedListLbl		: "Nabrojiva lista",
+NumberedList		: "Unesi/ukloni nabrojivu listu",
+BulletedListLbl		: "Nenabrojiva lista",
+BulletedList		: "Unesi/ukloni nenabrojivu listu",
+ShowTableBorders	: "Prikaži okvir tabele",
+ShowDetails			: "Prikaži detalje",
+Style				: "Stil",
+FontFormat			: "Format",
+Font				: "Font",
+FontSize			: "Veličina fonta",
+TextColor			: "Boja teksta",
+BGColor				: "Boja pozadine",
+Source				: "Kôd",
+Find				: "Pretraga",
+Replace				: "Zamena",
+SpellCheck			: "Proveri spelovanje",
+UniversalKeyboard	: "Univerzalna tastatura",
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
+
+Form			: "Forma",
+Checkbox		: "Polje za potvrdu",
+RadioButton		: "Radio-dugme",
+TextField		: "Tekstualno polje",
+Textarea		: "Zona teksta",
+HiddenField		: "Skriveno polje",
+Button			: "Dugme",
+SelectionField	: "Izborno polje",
+ImageButton		: "Dugme sa slikom",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+
+// Context Menu
+EditLink			: "Izmeni link",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRow			: "Unesi red",
+DeleteRows			: "Obriši redove",
+InsertColumn		: "Unesi kolonu",
+DeleteColumns		: "Obriši kolone",
+InsertCell			: "Unesi ćelije",
+DeleteCells			: "Obriši ćelije",
+MergeCells			: "Spoj celije",
+SplitCell			: "Razdvoji celije",
+TableDelete			: "Delete Table",	//MISSING
+CellProperties		: "Osobine celije",
+TableProperties		: "Osobine tabele",
+ImageProperties		: "Osobine slike",
+FlashProperties		: "Osobine fleša",
+
+AnchorProp			: "Osobine sidra",
+ButtonProp			: "Osobine dugmeta",
+CheckboxProp		: "Osobine polja za potvrdu",
+HiddenFieldProp		: "Osobine skrivenog polja",
+RadioButtonProp		: "Osobine radio-dugmeta",
+ImageButtonProp		: "Osobine dugmeta sa slikom",
+TextFieldProp		: "Osobine tekstualnog polja",
+SelectionFieldProp	: "Osobine izbornog polja",
+TextareaProp		: "Osobine zone teksta",
+FormProp			: "Osobine forme",
+
+FontFormats			: "Normal;Formatirano;Adresa;Naslov 1;Naslov 2;Naslov 3;Naslov 4;Naslov 5;Naslov 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Obradujem XHTML. Malo strpljenja...",
+Done				: "Završio",
+PasteWordConfirm	: "Tekst koji želite da nalepite kopiran je iz Worda. Da li želite da bude očišćen od formata pre lepljenja?",
+NotCompatiblePaste	: "Ova komanda je dostupna samo za Internet Explorer od verzije 5.5. Da li želite da nalepim tekst bez čišćenja?",
+UnknownToolbarItem	: "Nepoznata stavka toolbara \"%1\"",
+UnknownCommand		: "Nepoznata naredba \"%1\"",
+NotImplemented		: "Naredba nije implementirana",
+UnknownToolbarSet	: "Toolbar \"%1\" ne postoji",
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Otkaži",
+DlgBtnClose			: "Zatvori",
+DlgBtnBrowseServer	: "Pretraži server",
+DlgAdvancedTag		: "Napredni tagovi",
+DlgOpOther			: "<Ostali>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Molimo Vas, unesite URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nije postavljeno>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Smer jezika",
+DlgGenLangDirLtr	: "S leva na desno (LTR)",
+DlgGenLangDirRtl	: "S desna na levo (RTL)",
+DlgGenLangCode		: "Kôd jezika",
+DlgGenAccessKey		: "Pristupni taster",
+DlgGenName			: "Naziv",
+DlgGenTabIndex		: "Tab indeks",
+DlgGenLongDescr		: "Pun opis URL",
+DlgGenClass			: "Stylesheet klase",
+DlgGenTitle			: "Advisory naslov",
+DlgGenContType		: "Advisory vrsta sadržaja",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Stil",
+
+// Image Dialog
+DlgImgTitle			: "Osobine slika",
+DlgImgInfoTab		: "Info slike",
+DlgImgBtnUpload		: "Pošalji na server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Pošalji",
+DlgImgAlt			: "Alternativni tekst",
+DlgImgWidth			: "Širina",
+DlgImgHeight		: "Visina",
+DlgImgLockRatio		: "Zaključaj odnos",
+DlgBtnResetSize		: "Resetuj veličinu",
+DlgImgBorder		: "Okvir",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Ravnanje",
+DlgImgAlignLeft		: "Levo",
+DlgImgAlignAbsBottom: "Abs dole",
+DlgImgAlignAbsMiddle: "Abs sredina",
+DlgImgAlignBaseline	: "Bazno",
+DlgImgAlignBottom	: "Dole",
+DlgImgAlignMiddle	: "Sredina",
+DlgImgAlignRight	: "Desno",
+DlgImgAlignTextTop	: "Vrh teksta",
+DlgImgAlignTop		: "Vrh",
+DlgImgPreview		: "Izgled",
+DlgImgAlertUrl		: "Unesite URL slike",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Osobine fleša",
+DlgFlashChkPlay		: "Automatski start",
+DlgFlashChkLoop		: "Ponavljaj",
+DlgFlashChkMenu		: "Uključi fleš meni",
+DlgFlashScale		: "Skaliraj",
+DlgFlashScaleAll	: "Prikaži sve",
+DlgFlashScaleNoBorder	: "Bez ivice",
+DlgFlashScaleFit	: "Popuni površinu",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Link Info",
+DlgLnkTargetTab		: "Meta",
+
+DlgLnkType			: "Vrsta linka",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Sidro na ovoj stranici",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<drugo>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Odaberi sidro",
+DlgLnkAnchorByName	: "Po nazivu sidra",
+DlgLnkAnchorById	: "Po Id-ju elementa",
+DlgLnkNoAnchors		: "<Nema dostupnih sidra>",
+DlgLnkEMail			: "E-Mail adresa",
+DlgLnkEMailSubject	: "Naslov",
+DlgLnkEMailBody		: "Sadržaj poruke",
+DlgLnkUpload		: "Pošalji",
+DlgLnkBtnUpload		: "Pošalji na server",
+
+DlgLnkTarget		: "Meta",
+DlgLnkTargetFrame	: "<okvir>",
+DlgLnkTargetPopup	: "<popup prozor>",
+DlgLnkTargetBlank	: "Novi prozor (_blank)",
+DlgLnkTargetParent	: "Roditeljski prozor (_parent)",
+DlgLnkTargetSelf	: "Isti prozor (_self)",
+DlgLnkTargetTop		: "Prozor na vrhu (_top)",
+DlgLnkTargetFrameName	: "Naziv odredišnog frejma",
+DlgLnkPopWinName	: "Naziv popup prozora",
+DlgLnkPopWinFeat	: "Mogućnosti popup prozora",
+DlgLnkPopResize		: "Promenljiva velicina",
+DlgLnkPopLocation	: "Lokacija",
+DlgLnkPopMenu		: "Kontekstni meni",
+DlgLnkPopScroll		: "Scroll bar",
+DlgLnkPopStatus		: "Statusna linija",
+DlgLnkPopToolbar	: "Toolbar",
+DlgLnkPopFullScrn	: "Prikaz preko celog ekrana (IE)",
+DlgLnkPopDependent	: "Zavisno (Netscape)",
+DlgLnkPopWidth		: "Širina",
+DlgLnkPopHeight		: "Visina",
+DlgLnkPopLeft		: "Od leve ivice ekrana (px)",
+DlgLnkPopTop		: "Od vrha ekrana (px)",
+
+DlnLnkMsgNoUrl		: "Unesite URL linka",
+DlnLnkMsgNoEMail	: "Otkucajte adresu elektronske pote",
+DlnLnkMsgNoAnchor	: "Odaberite sidro",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Odaberite boju",
+DlgColorBtnClear	: "Obriši",
+DlgColorHighlight	: "Posvetli",
+DlgColorSelected	: "Odaberi",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Unesi smajlija",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Odaberite specijalni karakter",
+
+// Table Dialog
+DlgTableTitle		: "Osobine tabele",
+DlgTableRows		: "Redova",
+DlgTableColumns		: "Kolona",
+DlgTableBorder		: "Veličina okvira",
+DlgTableAlign		: "Ravnanje",
+DlgTableAlignNotSet	: "<nije postavljeno>",
+DlgTableAlignLeft	: "Levo",
+DlgTableAlignCenter	: "Sredina",
+DlgTableAlignRight	: "Desno",
+DlgTableWidth		: "Širina",
+DlgTableWidthPx		: "piksela",
+DlgTableWidthPc		: "procenata",
+DlgTableHeight		: "Visina",
+DlgTableCellSpace	: "Ćelijski prostor",
+DlgTableCellPad		: "Razmak ćelija",
+DlgTableCaption		: "Naslov tabele",
+DlgTableSummary		: "Summary",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "Osobine ćelije",
+DlgCellWidth		: "Širina",
+DlgCellWidthPx		: "piksela",
+DlgCellWidthPc		: "procenata",
+DlgCellHeight		: "Visina",
+DlgCellWordWrap		: "Deljenje reči",
+DlgCellWordWrapNotSet	: "<nije postavljeno>",
+DlgCellWordWrapYes	: "Da",
+DlgCellWordWrapNo	: "Ne",
+DlgCellHorAlign		: "Vodoravno ravnanje",
+DlgCellHorAlignNotSet	: "<nije postavljeno>",
+DlgCellHorAlignLeft	: "Levo",
+DlgCellHorAlignCenter	: "Sredina",
+DlgCellHorAlignRight: "Desno",
+DlgCellVerAlign		: "Vertikalno ravnanje",
+DlgCellVerAlignNotSet	: "<nije postavljeno>",
+DlgCellVerAlignTop	: "Gornje",
+DlgCellVerAlignMiddle	: "Sredina",
+DlgCellVerAlignBottom	: "Donje",
+DlgCellVerAlignBaseline	: "Bazno",
+DlgCellRowSpan		: "Spajanje redova",
+DlgCellCollSpan		: "Spajanje kolona",
+DlgCellBackColor	: "Boja pozadine",
+DlgCellBorderColor	: "Boja okvira",
+DlgCellBtnSelect	: "Odaberi...",
+
+// Find Dialog
+DlgFindTitle		: "Pronađi",
+DlgFindFindBtn		: "Pronađi",
+DlgFindNotFoundMsg	: "Traženi tekst nije pronađen.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Zameni",
+DlgReplaceFindLbl		: "Pronadi:",
+DlgReplaceReplaceLbl	: "Zameni sa:",
+DlgReplaceCaseChk		: "Razlikuj mala i velika slova",
+DlgReplaceReplaceBtn	: "Zameni",
+DlgReplaceReplAllBtn	: "Zameni sve",
+DlgReplaceWordChk		: "Uporedi cele reci",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog lepljenja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl+V).",
+PasteErrorCut	: "Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl+X).",
+PasteErrorCopy	: "Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl+C).",
+
+PasteAsText		: "Zalepi kao čist tekst",
+PasteFromWord	: "Zalepi iz Worda",
+
+DlgPasteMsg2	: "Molimo Vas da zalepite unutar donje povrine koristeći tastaturnu prečicu (<STRONG>Ctrl+V</STRONG>) i da pritisnete <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignoriši definicije fontova",
+DlgPasteRemoveStyles	: "Ukloni definicije stilova",
+DlgPasteCleanBox		: "Obriši sve",
+
+// Color Picker
+ColorAutomatic	: "Automatski",
+ColorMoreColors	: "Više boja...",
+
+// Document Properties
+DocProps		: "Osobine dokumenta",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Osobine sidra",
+DlgAnchorName		: "Ime sidra",
+DlgAnchorErrorName	: "Unesite ime sidra",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Nije u rečniku",
+DlgSpellChangeTo		: "Izmeni",
+DlgSpellBtnIgnore		: "Ignoriši",
+DlgSpellBtnIgnoreAll	: "Ignoriši sve",
+DlgSpellBtnReplace		: "Zameni",
+DlgSpellBtnReplaceAll	: "Zameni sve",
+DlgSpellBtnUndo			: "Vrati akciju",
+DlgSpellNoSuggestions	: "- Bez sugestija -",
+DlgSpellProgress		: "Provera spelovanja u toku...",
+DlgSpellNoMispell		: "Provera spelovanja završena: greške nisu pronadene",
+DlgSpellNoChanges		: "Provera spelovanja završena: Nije izmenjena nijedna rec",
+DlgSpellOneChange		: "Provera spelovanja završena: Izmenjena je jedna reč",
+DlgSpellManyChanges		: "Provera spelovanja završena: %1 reč(i) je izmenjeno",
+
+IeSpellDownload			: "Provera spelovanja nije instalirana. Da li želite da je skinete sa Interneta?",
+
+// Button Dialog
+DlgButtonText		: "Tekst (vrednost)",
+DlgButtonType		: "Tip",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Naziv",
+DlgCheckboxValue	: "Vrednost",
+DlgCheckboxSelected	: "Označeno",
+
+// Form Dialog
+DlgFormName		: "Naziv",
+DlgFormAction	: "Akcija",
+DlgFormMethod	: "Metoda",
+
+// Select Field Dialog
+DlgSelectName		: "Naziv",
+DlgSelectValue		: "Vrednost",
+DlgSelectSize		: "Veličina",
+DlgSelectLines		: "linija",
+DlgSelectChkMulti	: "Dozvoli višestruku selekciju",
+DlgSelectOpAvail	: "Dostupne opcije",
+DlgSelectOpText		: "Tekst",
+DlgSelectOpValue	: "Vrednost",
+DlgSelectBtnAdd		: "Dodaj",
+DlgSelectBtnModify	: "Izmeni",
+DlgSelectBtnUp		: "Gore",
+DlgSelectBtnDown	: "Dole",
+DlgSelectBtnSetValue : "Podesi kao označenu vrednost",
+DlgSelectBtnDelete	: "Obriši",
+
+// Textarea Dialog
+DlgTextareaName	: "Naziv",
+DlgTextareaCols	: "Broj kolona",
+DlgTextareaRows	: "Broj redova",
+
+// Text Field Dialog
+DlgTextName			: "Naziv",
+DlgTextValue		: "Vrednost",
+DlgTextCharWidth	: "Širina (karaktera)",
+DlgTextMaxChars		: "Maksimalno karaktera",
+DlgTextType			: "Tip",
+DlgTextTypeText		: "Tekst",
+DlgTextTypePass		: "Lozinka",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Naziv",
+DlgHiddenValue	: "Vrednost",
+
+// Bulleted List Dialog
+BulletedListProp	: "Osobine nenabrojive liste",
+NumberedListProp	: "Osobine nabrojive liste",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tip",
+DlgLstTypeCircle	: "Krug",
+DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeSquare	: "Kvadrat",
+DlgLstTypeNumbers	: "Brojevi (1, 2, 3)",
+DlgLstTypeLCase		: "mala slova (a, b, c)",
+DlgLstTypeUCase		: "VELIKA slova (A, B, C)",
+DlgLstTypeSRoman	: "Male rimske cifre (i, ii, iii)",
+DlgLstTypeLRoman	: "Velike rimske cifre (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Opšte osobine",
+DlgDocBackTab		: "Pozadina",
+DlgDocColorsTab		: "Boje i margine",
+DlgDocMetaTab		: "Metapodaci",
+
+DlgDocPageTitle		: "Naslov stranice",
+DlgDocLangDir		: "Smer jezika",
+DlgDocLangDirLTR	: "Sleva nadesno (LTR)",
+DlgDocLangDirRTL	: "Zdesna nalevo (RTL)",
+DlgDocLangCode		: "Šifra jezika",
+DlgDocCharSet		: "Kodiranje skupa karaktera",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Ostala kodiranja skupa karaktera",
+
+DlgDocDocType		: "Zaglavlje tipa dokumenta",
+DlgDocDocTypeOther	: "Ostala zaglavlja tipa dokumenta",
+DlgDocIncXHTML		: "Ukljuci XHTML deklaracije",
+DlgDocBgColor		: "Boja pozadine",
+DlgDocBgImage		: "URL pozadinske slike",
+DlgDocBgNoScroll	: "Fiksirana pozadina",
+DlgDocCText			: "Tekst",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Posećeni link",
+DlgDocCActive		: "Aktivni link",
+DlgDocMargins		: "Margine stranice",
+DlgDocMaTop			: "Gornja",
+DlgDocMaLeft		: "Leva",
+DlgDocMaRight		: "Desna",
+DlgDocMaBottom		: "Donja",
+DlgDocMeIndex		: "Ključne reci za indeksiranje dokumenta (razdvojene zarezima)",
+DlgDocMeDescr		: "Opis dokumenta",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Autorska prava",
+DlgDocPreview		: "Izgled stranice",
+
+// Templates Dialog
+Templates			: "Obrasci",
+DlgTemplatesTitle	: "Obrasci za sadržaj",
+DlgTemplatesSelMsg	: "Molimo Vas da odaberete obrazac koji ce biti primenjen na stranicu (trenutni sadržaj ce biti obrisan):",
+DlgTemplatesLoading	: "Učitavam listu obrazaca. Malo strpljenja...",
+DlgTemplatesNoTpl	: "(Nema definisanih obrazaca)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "O editoru",
+DlgAboutBrowserInfoTab	: "Informacije o pretraživacu",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "verzija",
+DlgAboutLicense		: "Licencirano pod uslovima GNU Lesser General Public License",
+DlgAboutInfo		: "Za više informacija posetite"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/lv.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/lv.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/lv.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: lv.js
+ * 	Latvian language file.
+ * 
+ * File Authors:
+ * 		Jānis Kļaviņš (janis@4id.lv)
+ * 		Slowmo (slowmo@inbox.lv)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Samazināt rīku joslu",
+ToolbarExpand		: "Paplašināt rīku joslu",
+
+// Toolbar Items and Context Menu
+Save				: "Saglabāt",
+NewPage				: "Jauna lapa",
+Preview				: "Pārskatīt",
+Cut					: "Izgriezt",
+Copy				: "Kopēt",
+Paste				: "Ievietot",
+PasteText			: "Ievietot kā vienkāršu tekstu",
+PasteWord			: "Ievietot no Worda",
+Print				: "Drukāt",
+SelectAll			: "Iezīmēt visu",
+RemoveFormat		: "Noņemt stilus",
+InsertLinkLbl		: "Hipersaite",
+InsertLink			: "Ievietot/Labot hipersaiti",
+RemoveLink			: "Noņemt hipersaiti",
+Anchor				: "Ievietot/Labot iezīmi",
+InsertImageLbl		: "Attēls",
+InsertImage			: "Ievietot/Labot Attēlu",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Ievietot/Labot Flash",
+InsertTableLbl		: "Tabula",
+InsertTable			: "Ievietot/Labot Tabulu",
+InsertLineLbl		: "Atdalītājsvītra",
+InsertLine			: "Ievietot horizontālu Atdalītājsvītru",
+InsertSpecialCharLbl: "Īpašs simbols",
+InsertSpecialChar	: "Ievietot speciālo simbolu",
+InsertSmileyLbl		: "Smaidiņi",
+InsertSmiley		: "Ievietot smaidiņu",
+About				: "Īsumā par FCKeditor",
+Bold				: "Treknu šriftu",
+Italic				: "Slīprakstā",
+Underline			: "Apakšsvītra",
+StrikeThrough		: "Pārsvītrots",
+Subscript			: "Zemrakstā",
+Superscript			: "Augšrakstā",
+LeftJustify			: "Izlīdzināt pa kreisi",
+CenterJustify		: "Izlīdzināt pret centru",
+RightJustify		: "Izlīdzināt pa labi",
+BlockJustify		: "Izlīdzināt malas",
+DecreaseIndent		: "Samazināt atkāpi",
+IncreaseIndent		: "Palielināt atkāpi",
+Undo				: "Atcelt",
+Redo				: "Atkārtot",
+NumberedListLbl		: "Numurēts saraksts",
+NumberedList		: "Ievietot/Noņemt numerēto sarakstu",
+BulletedListLbl		: "Izcelts saraksts",
+BulletedList		: "Ievietot/Noņemt izceltu sarakstu",
+ShowTableBorders	: "Parādīt tabulas robežas",
+ShowDetails			: "Parādīt sīkāku informāciju",
+Style				: "Stils",
+FontFormat			: "Formāts",
+Font				: "Šrifts",
+FontSize			: "Izmērs",
+TextColor			: "Teksta krāsa",
+BGColor				: "Fona krāsa",
+Source				: "HTML kods",
+Find				: "Meklēt",
+Replace				: "Nomainīt",
+SpellCheck			: "Pareizrakstības pārbaude",
+UniversalKeyboard	: "Universāla klaviatūra",
+PageBreakLbl		: "Lapas pārtraukums",
+PageBreak			: "Ievietot lapas pārtraukumu",
+
+Form			: "Forma",
+Checkbox		: "Atzīmēšanas kastīte",
+RadioButton		: "Izvēles poga",
+TextField		: "Teksta rinda",
+Textarea		: "Teksta laukums",
+HiddenField		: "Paslēpta teksta rinda",
+Button			: "Poga",
+SelectionField	: "Iezīmēšanas lauks",
+ImageButton		: "Attēlpoga",
+
+FitWindow		: "Maksimizēt redaktora izmēru",
+
+// Context Menu
+EditLink			: "Labot hipersaiti",
+CellCM				: "Šūna",
+RowCM				: "Rinda",
+ColumnCM			: "Kolonna",
+InsertRow			: "Ievietot rindu",
+DeleteRows			: "Dzēst rindas",
+InsertColumn		: "Ievietot kolonnu",
+DeleteColumns		: "Dzēst kolonnas",
+InsertCell			: "Ievietot rūtiņu",
+DeleteCells			: "Dzēst rūtiņas",
+MergeCells			: "Apvienot rūtiņas",
+SplitCell			: "Sadalīt rūtiņu",
+TableDelete			: "Dzēst tabulu",
+CellProperties		: "Rūtiņas īpašības",
+TableProperties		: "Tabulas īpašības",
+ImageProperties		: "Attēla īpašības",
+FlashProperties		: "Flash īpašības",
+
+AnchorProp			: "Iezīmes īpašības",
+ButtonProp			: "Pogas īpašības",
+CheckboxProp		: "Atzīmēšanas kastītes īpašības",
+HiddenFieldProp		: "Paslēptās teksta rindas īpašības",
+RadioButtonProp		: "Izvēles poga īpašības",
+ImageButtonProp		: "Attēlpogas īpašības",
+TextFieldProp		: "Teksta rindas  īpašības",
+SelectionFieldProp	: "Iezīmēšanas lauka īpašības",
+TextareaProp		: "Teksta laukuma īpašības",
+FormProp			: "Formas īpašības",
+
+FontFormats			: "Normāls teksts;Formatēts teksts;Adrese;Virsraksts 1;Virsraksts 2;Virsraksts 3;Virsraksts 4;Virsraksts 5;Virsraksts 6;Rindkopa (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Tiek apstrādāts XHTML. Lūdzu uzgaidiet...",
+Done				: "Darīts",
+PasteWordConfirm	: "Teksta fragments, kas tiek ievietots, izskatās, ka būtu sagatavots Word'ā. Vai vēlaties to apstrādāt pirms ievietošanas?",
+NotCompatiblePaste	: "Šī darbība ir pieejama Internet Explorer'ī, kas jaunāks par 5.5 versiju. Vai vēlaties ievietot bez apstrādes?",
+UnknownToolbarItem	: "Nezināms rīku joslas objekts \"%1\"",
+UnknownCommand		: "Nezināmas darbības nosaukums \"%1\"",
+NotImplemented		: "Darbība netika paveikta",
+UnknownToolbarSet	: "Rīku joslas komplekts \"%1\" neeksistē",
+NoActiveX			: "Interneta pārlūkprogrammas drošības uzstādījumi varētu ietekmēt dažas no redaktora īpašībām. Jābūt aktivizētai sadaļai \"Run ActiveX controls and plug-ins\". Savādāk ir iespējamas kļūdas darbībā un kļūdu paziņojumu parādīšanās.",
+BrowseServerBlocked : "Resursu pārlūks nevar tikt atvērts. Pārliecinieties, ka uznirstošo logu bloķētāji ir atslēgti.",
+DialogBlocked		: "Nav iespējams atvērt dialoglogu. Pārliecinieties, ka uznirstošo logu bloķētāji ir atslēgti.",
+
+// Dialogs
+DlgBtnOK			: "Darīts!",
+DlgBtnCancel		: "Atcelt",
+DlgBtnClose			: "Aizvērt",
+DlgBtnBrowseServer	: "Skatīt servera saturu",
+DlgAdvancedTag		: "Izvērstais",
+DlgOpOther			: "<Cits>",
+DlgInfoTab			: "Informācija",
+DlgAlertUrl			: "Lūdzu, ievietojiet hipersaiti",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nav iestatīts>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Valodas lasīšanas virziens",
+DlgGenLangDirLtr	: "No kreisās uz labo (LTR)",
+DlgGenLangDirRtl	: "No labās uz kreiso (RTL)",
+DlgGenLangCode		: "Valodas kods",
+DlgGenAccessKey		: "Pieejas kods",
+DlgGenName			: "Nosaukums",
+DlgGenTabIndex		: "Ciļņu indekss",
+DlgGenLongDescr		: "Gara apraksta Hipersaite",
+DlgGenClass			: "Stilu saraksta klases",
+DlgGenTitle			: "Konsultatīvs virsraksts",
+DlgGenContType		: "Konsultatīvs satura tips",
+DlgGenLinkCharset	: "Pievienotā resursa kodu tabula",
+DlgGenStyle			: "Stils",
+
+// Image Dialog
+DlgImgTitle			: "Attēla īpašības",
+DlgImgInfoTab		: "Informācija par attēlu",
+DlgImgBtnUpload		: "Nosūtīt serverim",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Augšupielādēt",
+DlgImgAlt			: "Alternatīvais teksts",
+DlgImgWidth			: "Platums",
+DlgImgHeight		: "Augstums",
+DlgImgLockRatio		: "Nemainīga Augstuma/Platuma attiecība",
+DlgBtnResetSize		: "Atjaunot sākotnējo izmēru",
+DlgImgBorder		: "Rāmis",
+DlgImgHSpace		: "Horizontālā telpa",
+DlgImgVSpace		: "Vertikālā telpa",
+DlgImgAlign			: "Nolīdzināt",
+DlgImgAlignLeft		: "Pa kreisi",
+DlgImgAlignAbsBottom: "Absolūti apakšā",
+DlgImgAlignAbsMiddle: "Absolūti vertikāli centrēts",
+DlgImgAlignBaseline	: "Pamatrindā",
+DlgImgAlignBottom	: "Apakšā",
+DlgImgAlignMiddle	: "Vertikāli centrēts",
+DlgImgAlignRight	: "Pa labi",
+DlgImgAlignTextTop	: "Teksta augšā",
+DlgImgAlignTop		: "Augšā",
+DlgImgPreview		: "Pārskats",
+DlgImgAlertUrl		: "Lūdzu norādīt attēla hipersaiti",
+DlgImgLinkTab		: "Hipersaite",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash īpašības",
+DlgFlashChkPlay		: "Automātiska atskaņošana",
+DlgFlashChkLoop		: "Nepārtraukti",
+DlgFlashChkMenu		: "Atļaut Flash izvēlni",
+DlgFlashScale		: "Mainīt izmēru",
+DlgFlashScaleAll	: "Rādīt visu",
+DlgFlashScaleNoBorder	: "Bez rāmja",
+DlgFlashScaleFit	: "Precīzs izmērs",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Hipersaite",
+DlgLnkInfoTab		: "Hipersaites informācija",
+DlgLnkTargetTab		: "Mērķis",
+
+DlgLnkType			: "Hipersaites tips",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Iezīme šajā lapā",
+DlgLnkTypeEMail		: "E-pasts",
+DlgLnkProto			: "Protokols",
+DlgLnkProtoOther	: "<cits>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Izvēlēties iezīmi",
+DlgLnkAnchorByName	: "Pēc iezīmes nosaukuma",
+DlgLnkAnchorById	: "Pēc elementa ID",
+DlgLnkNoAnchors		: "<Šajā dokumentā nav iezīmju>",
+DlgLnkEMail			: "E-pasta adrese",
+DlgLnkEMailSubject	: "Ziņas tēma",
+DlgLnkEMailBody		: "Ziņas saturs",
+DlgLnkUpload		: "Augšupielādēt",
+DlgLnkBtnUpload		: "Nosūtīt serverim",
+
+DlgLnkTarget		: "Mērķis",
+DlgLnkTargetFrame	: "<ietvars>",
+DlgLnkTargetPopup	: "<uznirstošā logā>",
+DlgLnkTargetBlank	: "Jaunā logā (_blank)",
+DlgLnkTargetParent	: "Esošajā logā (_parent)",
+DlgLnkTargetSelf	: "Tajā pašā logā (_self)",
+DlgLnkTargetTop		: "Visredzamākajā logā (_top)",
+DlgLnkTargetFrameName	: "Mērķa ietvara nosaukums",
+DlgLnkPopWinName	: "Uznirstošā loga nosaukums",
+DlgLnkPopWinFeat	: "Uznirstošā loga nosaukums īpašības",
+DlgLnkPopResize		: "Ar maināmu izmēru",
+DlgLnkPopLocation	: "Atrašanās vietas josla",
+DlgLnkPopMenu		: "Izvēlnes josla",
+DlgLnkPopScroll		: "Ritjoslas",
+DlgLnkPopStatus		: "Statusa josla",
+DlgLnkPopToolbar	: "Rīku josla",
+DlgLnkPopFullScrn	: "Pilnā ekrānā (IE)",
+DlgLnkPopDependent	: "Atkarīgs (Netscape)",
+DlgLnkPopWidth		: "Platums",
+DlgLnkPopHeight		: "Augstums",
+DlgLnkPopLeft		: "Kreisā koordināte",
+DlgLnkPopTop		: "Augšējā koordināte",
+
+DlnLnkMsgNoUrl		: "Lūdzu norādi hipersaiti",
+DlnLnkMsgNoEMail	: "Lūdzu norādi e-pasta adresi",
+DlnLnkMsgNoAnchor	: "Lūdzu norādi iezīmi",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Izvēlies krāsu",
+DlgColorBtnClear	: "Dzēst",
+DlgColorHighlight	: "Izcelt",
+DlgColorSelected	: "Iezīmētais",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Ievietot smaidiņu",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Ievietot īpašu simbolu",
+
+// Table Dialog
+DlgTableTitle		: "Tabulas īpašības",
+DlgTableRows		: "Rindas",
+DlgTableColumns		: "Kolonnas",
+DlgTableBorder		: "Rāmja izmērs",
+DlgTableAlign		: "Novietojums",
+DlgTableAlignNotSet	: "<nav norādīts>",
+DlgTableAlignLeft	: "Pa kreisi",
+DlgTableAlignCenter	: "Centrēti",
+DlgTableAlignRight	: "Pa labi",
+DlgTableWidth		: "Platums",
+DlgTableWidthPx		: "pikseļos",
+DlgTableWidthPc		: "procentuāli",
+DlgTableHeight		: "Augstums",
+DlgTableCellSpace	: "Rūtiņu atstatums",
+DlgTableCellPad		: "Rūtiņu nobīde",
+DlgTableCaption		: "Leģenda",
+DlgTableSummary		: "Anotācija",
+
+// Table Cell Dialog
+DlgCellTitle		: "Rūtiņas īpašības",
+DlgCellWidth		: "Platums",
+DlgCellWidthPx		: "pikseļi",
+DlgCellWidthPc		: "procentos",
+DlgCellHeight		: "Augstums",
+DlgCellWordWrap		: "Teksta pārnese",
+DlgCellWordWrapNotSet	: "<nav norādīta>",
+DlgCellWordWrapYes	: "Jā",
+DlgCellWordWrapNo	: "Nē",
+DlgCellHorAlign		: "Horizontāla novietojums",
+DlgCellHorAlignNotSet	: "<Nav norādīts>",
+DlgCellHorAlignLeft	: "Pa kreisi",
+DlgCellHorAlignCenter	: "Centrēti",
+DlgCellHorAlignRight: "Pa labi",
+DlgCellVerAlign		: "Vertikālais novietojums",
+DlgCellVerAlignNotSet	: "<nav norādīts>",
+DlgCellVerAlignTop	: "Augša",
+DlgCellVerAlignMiddle	: "Vidus",
+DlgCellVerAlignBottom	: "Apakša",
+DlgCellVerAlignBaseline	: "Pamatrindā",
+DlgCellRowSpan		: "Rindu pārnese",
+DlgCellCollSpan		: "Kolonnu pārnese",
+DlgCellBackColor	: "Fona krāsa",
+DlgCellBorderColor	: "Rāmja krāsa",
+DlgCellBtnSelect	: "Iezīmē...",
+
+// Find Dialog
+DlgFindTitle		: "Meklētājs",
+DlgFindFindBtn		: "Meklēt",
+DlgFindNotFoundMsg	: "Norādītā frāze netika atrasta.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Aizvietošana",
+DlgReplaceFindLbl		: "Meklēt:",
+DlgReplaceReplaceLbl	: "Nomainīt uz:",
+DlgReplaceCaseChk		: "Reģistrjūtīgs",
+DlgReplaceReplaceBtn	: "Aizvietot",
+DlgReplaceReplAllBtn	: "Aizvietot visu",
+DlgReplaceWordChk		: "Jāsakrīt pilnībā",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj editoram automātiski veikt ievietošanas darbību. Lūdzu, izmantojiet (Ctrl+V), lai veiktu šo darbību.",
+PasteErrorCut	: "Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj editoram automātiski veikt izgriešanas darbību.  Lūdzu, izmantojiet (Ctrl+X, lai veiktu šo darbību.",
+PasteErrorCopy	: "Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj editoram automātiski veikt kopēšanas darbību.  Lūdzu, izmantojiet (Ctrl+C), lai veiktu šo darbību.",
+
+PasteAsText		: "Ievietot kā vienkāršu tekstu",
+PasteFromWord	: "Ievietot no Worda",
+
+DlgPasteMsg2	: "Lūdzu, ievietojiet tekstu šajā laukumā, izmantojot klaviatūru (<STRONG>Ctrl+V</STRONG>) un apstipriniet ar <STRONG>Darīts!</STRONG>.",
+DlgPasteIgnoreFont		: "Ignorēt iepriekš norādītos fontus",
+DlgPasteRemoveStyles	: "Noņemt norādītos stilus",
+DlgPasteCleanBox		: "Apstrādāt laukuma saturu",
+
+// Color Picker
+ColorAutomatic	: "Automātiska",
+ColorMoreColors	: "Plašāka palete...",
+
+// Document Properties
+DocProps		: "Dokumenta īpašības",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Iezīmes īpašības",
+DlgAnchorName		: "Iezīmes nosaukums",
+DlgAnchorErrorName	: "Lūdzu norādiet iezīmes nosaukumu",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Netika atrasts vārdnīcā",
+DlgSpellChangeTo		: "Nomainīt uz",
+DlgSpellBtnIgnore		: "Ignorēt",
+DlgSpellBtnIgnoreAll	: "Ignorēt visu",
+DlgSpellBtnReplace		: "Aizvietot",
+DlgSpellBtnReplaceAll	: "Aizvietot visu",
+DlgSpellBtnUndo			: "Atcelt",
+DlgSpellNoSuggestions	: "- Nav ieteikumu -",
+DlgSpellProgress		: "Notiek pareizrakstības pārbaude...",
+DlgSpellNoMispell		: "Pareizrakstības pārbaude pabeigta: kļūdas netika atrastas",
+DlgSpellNoChanges		: "Pareizrakstības pārbaude pabeigta: nekas netika labots",
+DlgSpellOneChange		: "Pareizrakstības pārbaude pabeigta: 1 vārds izmainīts",
+DlgSpellManyChanges		: "Pareizrakstības pārbaude pabeigta: %1 vārdi tika mainīti",
+
+IeSpellDownload			: "Pareizrakstības pārbaudītājs nav pievienots. Vai vēlaties to lejupielādēt tagad?",
+
+// Button Dialog
+DlgButtonText		: "Teksts (vērtība)",
+DlgButtonType		: "Tips",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nosaukums",
+DlgCheckboxValue	: "Vērtība",
+DlgCheckboxSelected	: "Iezīmēts",
+
+// Form Dialog
+DlgFormName		: "Nosaukums",
+DlgFormAction	: "Darbība",
+DlgFormMethod	: "Metode",
+
+// Select Field Dialog
+DlgSelectName		: "Nosaukums",
+DlgSelectValue		: "Vērtība",
+DlgSelectSize		: "Izmērs",
+DlgSelectLines		: "rindas",
+DlgSelectChkMulti	: "Atļaut vairākus iezīmējumus",
+DlgSelectOpAvail	: "Pieejamās iespējas",
+DlgSelectOpText		: "Teksts",
+DlgSelectOpValue	: "Vērtība",
+DlgSelectBtnAdd		: "Pievienot",
+DlgSelectBtnModify	: "Veikt izmaiņas",
+DlgSelectBtnUp		: "Augšup",
+DlgSelectBtnDown	: "Lejup",
+DlgSelectBtnSetValue : "Noteikt kā iezīmēto vērtību",
+DlgSelectBtnDelete	: "Dzēst",
+
+// Textarea Dialog
+DlgTextareaName	: "Nosaukums",
+DlgTextareaCols	: "Kolonnas",
+DlgTextareaRows	: "Rindas",
+
+// Text Field Dialog
+DlgTextName			: "Nosaukums",
+DlgTextValue		: "Vērtība",
+DlgTextCharWidth	: "Simbolu platums",
+DlgTextMaxChars		: "Simbolu maksimālais daudzums",
+DlgTextType			: "Tips",
+DlgTextTypeText		: "Teksts",
+DlgTextTypePass		: "Parole",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nosaukums",
+DlgHiddenValue	: "Vērtība",
+
+// Bulleted List Dialog
+BulletedListProp	: "Aizzīmju saraksta īpašības",
+NumberedListProp	: "Numerētā saraksta īpašības",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tips",
+DlgLstTypeCircle	: "Aplis",
+DlgLstTypeDisc		: "Disks",
+DlgLstTypeSquare	: "Kvadrāts",
+DlgLstTypeNumbers	: "Skaitļi (1, 2, 3)",
+DlgLstTypeLCase		: "Maziem burtiem (a, b, c)",
+DlgLstTypeUCase		: "Lieliem burtiem (A, B, C)",
+DlgLstTypeSRoman	: "Maziem romiešu cipariem (i, ii, iii)",
+DlgLstTypeLRoman	: "Lieliem romiešu cipariem (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Vispārīga informācija",
+DlgDocBackTab		: "Fons",
+DlgDocColorsTab		: "Krāsas un robežu nobīdes",
+DlgDocMetaTab		: "META dati",
+
+DlgDocPageTitle		: "Dokumenta virsraksts <Title>",
+DlgDocLangDir		: "Valodas lasīšanas virziens",
+DlgDocLangDirLTR	: "No kreisās uz labo (LTR)",
+DlgDocLangDirRTL	: "No labās uz kreiso (RTL)",
+DlgDocLangCode		: "Valodas kods",
+DlgDocCharSet		: "Simbolu kodējums",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Cits simbolu kodējums",
+
+DlgDocDocType		: "Dokumenta tips",
+DlgDocDocTypeOther	: "Cits dokumenta tips",
+DlgDocIncXHTML		: "Ietvert XHTML deklarācijas",
+DlgDocBgColor		: "Fona krāsa",
+DlgDocBgImage		: "Fona attēla hipersaite",
+DlgDocBgNoScroll	: "Fona attēls ir fiksēts",
+DlgDocCText			: "Teksts",
+DlgDocCLink			: "Hipersaite",
+DlgDocCVisited		: "Apmeklēta hipersaite",
+DlgDocCActive		: "Aktīva hipersaite",
+DlgDocMargins		: "Lapas robežas",
+DlgDocMaTop			: "Augšā",
+DlgDocMaLeft		: "Pa kreisi",
+DlgDocMaRight		: "Pa labi",
+DlgDocMaBottom		: "Apakšā",
+DlgDocMeIndex		: "Dokumentu aprakstoši atslēgvārdi (atdalīti ar komatu)",
+DlgDocMeDescr		: "Dokumenta apraksts",
+DlgDocMeAuthor		: "Autors",
+DlgDocMeCopy		: "Autortiesības",
+DlgDocPreview		: "Priekšskats",
+
+// Templates Dialog
+Templates			: "Sagataves",
+DlgTemplatesTitle	: "Satura sagataves",
+DlgTemplatesSelMsg	: "Lūdzu, norādiet sagatavi, ko atvērt editorā<br>(patreizējie dati tiks zaudēti):",
+DlgTemplatesLoading	: "Notiek sagatavju saraksta ielāde. Lūdzu, uzgaidiet...",
+DlgTemplatesNoTpl	: "(Nav norādītas sagataves)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Par",
+DlgAboutBrowserInfoTab	: "Informācija par pārlūkprogrammu",
+DlgAboutLicenseTab	: "Licence",
+DlgAboutVersion		: "versija",
+DlgAboutLicense		: "Programmatūra lietojama saskaņā ar GNU Lesser General Public License",
+DlgAboutInfo		: "Papildus informācija ir pieejama"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/zh.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/zh.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/zh.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: zh.js
+ * 	Chinese Traditional language file.
+ * 
+ * File Authors:
+ * 		Zak Fong (zakfong@yahoo.com.tw)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "隱藏面板",
+ToolbarExpand		: "顯示面板",
+
+// Toolbar Items and Context Menu
+Save				: "儲存",
+NewPage				: "開新檔案",
+Preview				: "預覽",
+Cut					: "剪下",
+Copy				: "複製",
+Paste				: "貼上",
+PasteText			: "貼為純文字格式",
+PasteWord			: "自 Word 貼上",
+Print				: "列印",
+SelectAll			: "全選",
+RemoveFormat		: "清除格式",
+InsertLinkLbl		: "超連結",
+InsertLink			: "插入/編輯超連結",
+RemoveLink			: "移除超連結",
+Anchor				: "插入/編輯錨點",
+InsertImageLbl		: "影像",
+InsertImage			: "插入/編輯影像",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "插入/編輯 Flash",
+InsertTableLbl		: "表格",
+InsertTable			: "插入/編輯表格",
+InsertLineLbl		: "水平線",
+InsertLine			: "插入水平線",
+InsertSpecialCharLbl: "特殊符號",
+InsertSpecialChar	: "插入特殊符號",
+InsertSmileyLbl		: "表情符號",
+InsertSmiley		: "插入表情符號",
+About				: "關於 FCKeditor",
+Bold				: "粗體",
+Italic				: "斜體",
+Underline			: "底線",
+StrikeThrough		: "刪除線",
+Subscript			: "下標",
+Superscript			: "上標",
+LeftJustify			: "靠左對齊",
+CenterJustify		: "置中",
+RightJustify		: "靠右對齊",
+BlockJustify		: "左右對齊",
+DecreaseIndent		: "減少縮排",
+IncreaseIndent		: "增加縮排",
+Undo				: "復原",
+Redo				: "重複",
+NumberedListLbl		: "編號清單",
+NumberedList		: "插入/移除編號清單",
+BulletedListLbl		: "項目清單",
+BulletedList		: "插入/移除項目清單",
+ShowTableBorders	: "顯示表格邊框",
+ShowDetails			: "顯示詳細資料",
+Style				: "樣式",
+FontFormat			: "格式",
+Font				: "字體",
+FontSize			: "大小",
+TextColor			: "文字顏色",
+BGColor				: "背景顏色",
+Source				: "原始碼",
+Find				: "尋找",
+Replace				: "取代",
+SpellCheck			: "拼字檢查",
+UniversalKeyboard	: "萬國鍵盤",
+PageBreakLbl		: "分頁符號",
+PageBreak			: "插入分頁符號",
+
+Form			: "表單",
+Checkbox		: "核取方塊",
+RadioButton		: "選項按鈕",
+TextField		: "文字方塊",
+Textarea		: "文字區域",
+HiddenField		: "隱藏欄位",
+Button			: "按鈕",
+SelectionField	: "清單/選單",
+ImageButton		: "影像按鈕",
+
+FitWindow		: "編輯器最大化",
+
+// Context Menu
+EditLink			: "編輯超連結",
+CellCM				: "儲存格",
+RowCM				: "列",
+ColumnCM			: "欄",
+InsertRow			: "插入列",
+DeleteRows			: "刪除列",
+InsertColumn		: "插入欄",
+DeleteColumns		: "刪除欄",
+InsertCell			: "插入儲存格",
+DeleteCells			: "刪除儲存格",
+MergeCells			: "合併儲存格",
+SplitCell			: "分割儲存格",
+TableDelete			: "刪除表格",
+CellProperties		: "儲存格屬性",
+TableProperties		: "表格屬性",
+ImageProperties		: "影像屬性",
+FlashProperties		: "Flash 屬性",
+
+AnchorProp			: "錨點屬性",
+ButtonProp			: "按鈕屬性",
+CheckboxProp		: "核取方塊屬性",
+HiddenFieldProp		: "隱藏欄位屬性",
+RadioButtonProp		: "選項按鈕屬性",
+ImageButtonProp		: "影像按鈕屬性",
+TextFieldProp		: "文字方塊屬性",
+SelectionFieldProp	: "清單/選單屬性",
+TextareaProp		: "文字區域屬性",
+FormProp			: "表單屬性",
+
+FontFormats			: "本文;已格式化;位址;標題 1;標題 2;標題 3;標題 4;標題 5;標題 6;本文 (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "處理 XHTML 中，請稍候…",
+Done				: "完成",
+PasteWordConfirm	: "您想貼上的文字似乎是自 Word 複製而來，請問您是否要先清除 Word 的格式後再行貼上？",
+NotCompatiblePaste	: "此指令僅在 Internet Explorer 5.5 或以上的版本有效。請問您是否同意不清除格式即貼上？",
+UnknownToolbarItem	: "未知工具列項目 \"%1\"",
+UnknownCommand		: "未知指令名稱 \"%1\"",
+NotImplemented		: "尚未安裝此指令",
+UnknownToolbarSet	: "工具列設定 \"%1\" 不存在",
+NoActiveX			: "瀏覽器的安全性設定限制了本編輯器的某些功能。您必須啟用安全性設定中的「執行ActiveX控制項與外掛程式」項目，否則本編輯器將會出現錯誤並缺少某些功能",
+BrowseServerBlocked : "無法開啟資源瀏覽器，請確定所有快顯視窗封鎖程式是否關閉",
+DialogBlocked		: "無法開啟對話視窗，請確定所有快顯視窗封鎖程式是否關閉",
+
+// Dialogs
+DlgBtnOK			: "確定",
+DlgBtnCancel		: "取消",
+DlgBtnClose			: "關閉",
+DlgBtnBrowseServer	: "瀏覽伺服器端",
+DlgAdvancedTag		: "進階",
+DlgOpOther			: "<其他>",
+DlgInfoTab			: "資訊",
+DlgAlertUrl			: "請插入 URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<尚未設定>",
+DlgGenId			: "ID",
+DlgGenLangDir		: "語言方向",
+DlgGenLangDirLtr	: "由左而右 (LTR)",
+DlgGenLangDirRtl	: "由右而左 (RTL)",
+DlgGenLangCode		: "語言代碼",
+DlgGenAccessKey		: "存取鍵",
+DlgGenName			: "名稱",
+DlgGenTabIndex		: "定位順序",
+DlgGenLongDescr		: "詳細 URL",
+DlgGenClass			: "樣式表類別",
+DlgGenTitle			: "標題",
+DlgGenContType		: "內容類型",
+DlgGenLinkCharset	: "連結資源之編碼",
+DlgGenStyle			: "樣式",
+
+// Image Dialog
+DlgImgTitle			: "影像屬性",
+DlgImgInfoTab		: "影像資訊",
+DlgImgBtnUpload		: "上傳至伺服器",
+DlgImgURL			: "URL",
+DlgImgUpload		: "上傳",
+DlgImgAlt			: "替代文字",
+DlgImgWidth			: "寬度",
+DlgImgHeight		: "高度",
+DlgImgLockRatio		: "等比例",
+DlgBtnResetSize		: "重設為原大小",
+DlgImgBorder		: "邊框",
+DlgImgHSpace		: "水平距離",
+DlgImgVSpace		: "垂直距離",
+DlgImgAlign			: "對齊",
+DlgImgAlignLeft		: "靠左對齊",
+DlgImgAlignAbsBottom: "絕對下方",
+DlgImgAlignAbsMiddle: "絕對中間",
+DlgImgAlignBaseline	: "基準線",
+DlgImgAlignBottom	: "靠下對齊",
+DlgImgAlignMiddle	: "置中對齊",
+DlgImgAlignRight	: "靠右對齊",
+DlgImgAlignTextTop	: "文字上方",
+DlgImgAlignTop		: "靠上對齊",
+DlgImgPreview		: "預覽",
+DlgImgAlertUrl		: "請輸入影像 URL",
+DlgImgLinkTab		: "超連結",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash 屬性",
+DlgFlashChkPlay		: "自動播放",
+DlgFlashChkLoop		: "重複",
+DlgFlashChkMenu		: "開啟選單",
+DlgFlashScale		: "縮放",
+DlgFlashScaleAll	: "全部顯示",
+DlgFlashScaleNoBorder	: "無邊框",
+DlgFlashScaleFit	: "精確符合",
+
+// Link Dialog
+DlgLnkWindowTitle	: "超連結",
+DlgLnkInfoTab		: "超連結資訊",
+DlgLnkTargetTab		: "目標",
+
+DlgLnkType			: "超連接類型",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "本頁錨點",
+DlgLnkTypeEMail		: "電子郵件",
+DlgLnkProto			: "通訊協定",
+DlgLnkProtoOther	: "<其他>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "請選擇錨點",
+DlgLnkAnchorByName	: "依錨點名稱",
+DlgLnkAnchorById	: "依元件 ID",
+DlgLnkNoAnchors		: "<本文件尚無可用之錨點>",
+DlgLnkEMail			: "電子郵件",
+DlgLnkEMailSubject	: "郵件主旨",
+DlgLnkEMailBody		: "郵件內容",
+DlgLnkUpload		: "上傳",
+DlgLnkBtnUpload		: "傳送至伺服器",
+
+DlgLnkTarget		: "目標",
+DlgLnkTargetFrame	: "<框架>",
+DlgLnkTargetPopup	: "<快顯視窗>",
+DlgLnkTargetBlank	: "新視窗 (_blank)",
+DlgLnkTargetParent	: "父視窗 (_parent)",
+DlgLnkTargetSelf	: "本視窗 (_self)",
+DlgLnkTargetTop		: "最上層視窗 (_top)",
+DlgLnkTargetFrameName	: "目標框架名稱",
+DlgLnkPopWinName	: "快顯視窗名稱",
+DlgLnkPopWinFeat	: "快顯視窗屬性",
+DlgLnkPopResize		: "可調整大小",
+DlgLnkPopLocation	: "網址列",
+DlgLnkPopMenu		: "選單列",
+DlgLnkPopScroll		: "捲軸",
+DlgLnkPopStatus		: "狀態列",
+DlgLnkPopToolbar	: "工具列",
+DlgLnkPopFullScrn	: "全螢幕 (IE)",
+DlgLnkPopDependent	: "從屬 (NS)",
+DlgLnkPopWidth		: "寬",
+DlgLnkPopHeight		: "高",
+DlgLnkPopLeft		: "左",
+DlgLnkPopTop		: "右",
+
+DlnLnkMsgNoUrl		: "請輸入欲連結的 URL",
+DlnLnkMsgNoEMail	: "請輸入電子郵件位址",
+DlnLnkMsgNoAnchor	: "請選擇錨點",
+DlnLnkMsgInvPopName	: "快顯名稱必須以「英文字母」為開頭，且不得含有空白",
+
+// Color Dialog
+DlgColorTitle		: "請選擇顏色",
+DlgColorBtnClear	: "清除",
+DlgColorHighlight	: "預覽",
+DlgColorSelected	: "選擇",
+
+// Smiley Dialog
+DlgSmileyTitle		: "插入表情符號",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "請選擇特殊符號",
+
+// Table Dialog
+DlgTableTitle		: "表格屬性",
+DlgTableRows		: "列數",
+DlgTableColumns		: "欄數",
+DlgTableBorder		: "邊框",
+DlgTableAlign		: "對齊",
+DlgTableAlignNotSet	: "<未設定>",
+DlgTableAlignLeft	: "靠左對齊",
+DlgTableAlignCenter	: "置中",
+DlgTableAlignRight	: "靠右對齊",
+DlgTableWidth		: "寬度",
+DlgTableWidthPx		: "像素",
+DlgTableWidthPc		: "百分比",
+DlgTableHeight		: "高度",
+DlgTableCellSpace	: "間距",
+DlgTableCellPad		: "內距",
+DlgTableCaption		: "標題",
+DlgTableSummary		: "摘要",
+
+// Table Cell Dialog
+DlgCellTitle		: "儲存格屬性",
+DlgCellWidth		: "寬度",
+DlgCellWidthPx		: "像素",
+DlgCellWidthPc		: "百分比",
+DlgCellHeight		: "高度",
+DlgCellWordWrap		: "自動換行",
+DlgCellWordWrapNotSet	: "<尚未設定>",
+DlgCellWordWrapYes	: "是",
+DlgCellWordWrapNo	: "否",
+DlgCellHorAlign		: "水平對齊",
+DlgCellHorAlignNotSet	: "<尚未設定>",
+DlgCellHorAlignLeft	: "靠左對齊",
+DlgCellHorAlignCenter	: "置中",
+DlgCellHorAlignRight: "靠右對齊",
+DlgCellVerAlign		: "垂直對齊",
+DlgCellVerAlignNotSet	: "<尚未設定>",
+DlgCellVerAlignTop	: "靠上對齊",
+DlgCellVerAlignMiddle	: "置中",
+DlgCellVerAlignBottom	: "靠下對齊",
+DlgCellVerAlignBaseline	: "基準線",
+DlgCellRowSpan		: "合併列數",
+DlgCellCollSpan		: "合併欄数",
+DlgCellBackColor	: "背景顏色",
+DlgCellBorderColor	: "邊框顏色",
+DlgCellBtnSelect	: "請選擇…",
+
+// Find Dialog
+DlgFindTitle		: "尋找",
+DlgFindFindBtn		: "尋找",
+DlgFindNotFoundMsg	: "未找到指定的文字。",
+
+// Replace Dialog
+DlgReplaceTitle			: "取代",
+DlgReplaceFindLbl		: "尋找:",
+DlgReplaceReplaceLbl	: "取代:",
+DlgReplaceCaseChk		: "大小寫須相符",
+DlgReplaceReplaceBtn	: "取代",
+DlgReplaceReplAllBtn	: "全部取代",
+DlgReplaceWordChk		: "全字相符",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "瀏覽器的安全性設定不允許編輯器自動執行貼上動作。請使用快捷鍵 (Ctrl+V) 貼上。",
+PasteErrorCut	: "瀏覽器的安全性設定不允許編輯器自動執行剪下動作。請使用快捷鍵 (Ctrl+X) 剪下。",
+PasteErrorCopy	: "瀏覽器的安全性設定不允許編輯器自動執行複製動作。請使用快捷鍵 (Ctrl+C) 複製。",
+
+PasteAsText		: "貼為純文字格式",
+PasteFromWord	: "自 Word 貼上",
+
+DlgPasteMsg2	: "請使用快捷鍵 (<strong>Ctrl+V</strong>) 貼到下方區域中並按下 <strong>確定</strong>",
+DlgPasteIgnoreFont		: "移除字型設定",
+DlgPasteRemoveStyles	: "移除樣式設定",
+DlgPasteCleanBox		: "清除文字區域",
+
+// Color Picker
+ColorAutomatic	: "自動",
+ColorMoreColors	: "更多顏色…",
+
+// Document Properties
+DocProps		: "文件屬性",
+
+// Anchor Dialog
+DlgAnchorTitle		: "命名錨點",
+DlgAnchorName		: "錨點名稱",
+DlgAnchorErrorName	: "請輸入錨點名稱",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "不在字典中",
+DlgSpellChangeTo		: "更改為",
+DlgSpellBtnIgnore		: "忽略",
+DlgSpellBtnIgnoreAll	: "全部忽略",
+DlgSpellBtnReplace		: "取代",
+DlgSpellBtnReplaceAll	: "全部取代",
+DlgSpellBtnUndo			: "復原",
+DlgSpellNoSuggestions	: "- 無建議值 -",
+DlgSpellProgress		: "進行拼字檢查中…",
+DlgSpellNoMispell		: "拼字檢查完成：未發現拼字錯誤",
+DlgSpellNoChanges		: "拼字檢查完成：未更改任何單字",
+DlgSpellOneChange		: "拼字檢查完成：更改了 1 個單字",
+DlgSpellManyChanges		: "拼字檢查完成：更改了 %1 個單字",
+
+IeSpellDownload			: "尚未安裝拼字檢查元件。您是否想要現在下載？",
+
+// Button Dialog
+DlgButtonText		: "顯示文字 (值)",
+DlgButtonType		: "類型",
+DlgButtonTypeBtn	: "按鈕 (Button)",
+DlgButtonTypeSbm	: "送出 (Submit)",
+DlgButtonTypeRst	: "重設 (Reset)",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "名稱",
+DlgCheckboxValue	: "選取值",
+DlgCheckboxSelected	: "已選取",
+
+// Form Dialog
+DlgFormName		: "名稱",
+DlgFormAction	: "動作",
+DlgFormMethod	: "方法",
+
+// Select Field Dialog
+DlgSelectName		: "名稱",
+DlgSelectValue		: "選取值",
+DlgSelectSize		: "大小",
+DlgSelectLines		: "行",
+DlgSelectChkMulti	: "可多選",
+DlgSelectOpAvail	: "可用選項",
+DlgSelectOpText		: "顯示文字",
+DlgSelectOpValue	: "值",
+DlgSelectBtnAdd		: "新增",
+DlgSelectBtnModify	: "修改",
+DlgSelectBtnUp		: "上移",
+DlgSelectBtnDown	: "下移",
+DlgSelectBtnSetValue : "設為預設值",
+DlgSelectBtnDelete	: "刪除",
+
+// Textarea Dialog
+DlgTextareaName	: "名稱",
+DlgTextareaCols	: "字元寬度",
+DlgTextareaRows	: "列數",
+
+// Text Field Dialog
+DlgTextName			: "名稱",
+DlgTextValue		: "值",
+DlgTextCharWidth	: "字元寬度",
+DlgTextMaxChars		: "最多字元數",
+DlgTextType			: "類型",
+DlgTextTypeText		: "文字",
+DlgTextTypePass		: "密碼",
+
+// Hidden Field Dialog
+DlgHiddenName	: "名稱",
+DlgHiddenValue	: "值",
+
+// Bulleted List Dialog
+BulletedListProp	: "項目清單屬性",
+NumberedListProp	: "編號清單屬性",
+DlgLstStart			: "起始編號",
+DlgLstType			: "清單類型",
+DlgLstTypeCircle	: "圓圈",
+DlgLstTypeDisc		: "圓點",
+DlgLstTypeSquare	: "方塊",
+DlgLstTypeNumbers	: "數字 (1, 2, 3)",
+DlgLstTypeLCase		: "小寫字母 (a, b, c)",
+DlgLstTypeUCase		: "大寫字母 (A, B, C)",
+DlgLstTypeSRoman	: "小寫羅馬數字 (i, ii, iii)",
+DlgLstTypeLRoman	: "大寫羅馬數字 (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "一般",
+DlgDocBackTab		: "背景",
+DlgDocColorsTab		: "顯色與邊界",
+DlgDocMetaTab		: "Meta 資料",
+
+DlgDocPageTitle		: "頁面標題",
+DlgDocLangDir		: "語言方向",
+DlgDocLangDirLTR	: "由左而右 (LTR)",
+DlgDocLangDirRTL	: "由右而左 (RTL)",
+DlgDocLangCode		: "語言代碼",
+DlgDocCharSet		: "字元編碼",
+DlgDocCharSetCE		: "中歐語系",
+DlgDocCharSetCT		: "正體中文 (Big5)",
+DlgDocCharSetCR		: "斯拉夫文",
+DlgDocCharSetGR		: "希臘文",
+DlgDocCharSetJP		: "日文",
+DlgDocCharSetKR		: "韓文",
+DlgDocCharSetTR		: "土耳其文",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "西歐語系",
+DlgDocCharSetOther	: "其他字元編碼",
+
+DlgDocDocType		: "文件類型",
+DlgDocDocTypeOther	: "其他文件類型",
+DlgDocIncXHTML		: "包含 XHTML 定義",
+DlgDocBgColor		: "背景顏色",
+DlgDocBgImage		: "背景影像",
+DlgDocBgNoScroll	: "浮水印",
+DlgDocCText			: "文字",
+DlgDocCLink			: "超連結",
+DlgDocCVisited		: "已瀏覽過的超連結",
+DlgDocCActive		: "作用中的超連結",
+DlgDocMargins		: "頁面邊界",
+DlgDocMaTop			: "上",
+DlgDocMaLeft		: "左",
+DlgDocMaRight		: "右",
+DlgDocMaBottom		: "下",
+DlgDocMeIndex		: "文件索引關鍵字 (用半形逗號[,]分隔)",
+DlgDocMeDescr		: "文件說明",
+DlgDocMeAuthor		: "作者",
+DlgDocMeCopy		: "版權所有",
+DlgDocPreview		: "預覽",
+
+// Templates Dialog
+Templates			: "樣版",
+DlgTemplatesTitle	: "內容樣版",
+DlgTemplatesSelMsg	: "請選擇欲開啟的樣版<br> (原有的內容將會被清除):",
+DlgTemplatesLoading	: "讀取樣版清單中，請稍候…",
+DlgTemplatesNoTpl	: "(無樣版)",
+DlgTemplatesReplace	: "取代原有內容",
+
+// About Dialog
+DlgAboutAboutTab	: "關於",
+DlgAboutBrowserInfoTab	: "瀏覽器資訊",
+DlgAboutLicenseTab	: "許可證",
+DlgAboutVersion		: "版本",
+DlgAboutLicense		: "依據 GNU 較寬鬆公共許可證(LGPL)發佈",
+DlgAboutInfo		: "想獲得更多資訊請至 "
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ca.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ca.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ca.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: ca.js
+ * 	Catalan language file.
+ * 
+ * File Authors:
+ * 		Jordi Cerdan (nan@myp.ad)
+ * 		Marc Folch (mcus21@gmail.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Col·lapsa la barra",
+ToolbarExpand		: "Amplia la barra",
+
+// Toolbar Items and Context Menu
+Save				: "Desa",
+NewPage				: "Nova Pàgina",
+Preview				: "Vista Prèvia",
+Cut					: "Retalla",
+Copy				: "Copia",
+Paste				: "Enganxa",
+PasteText			: "Enganxa com a text no formatat",
+PasteWord			: "Enganxa des del Word",
+Print				: "Imprimeix",
+SelectAll			: "Selecciona-ho tot",
+RemoveFormat		: "Elimina Format",
+InsertLinkLbl		: "Enllaç",
+InsertLink			: "Insereix/Edita enllaç",
+RemoveLink			: "Elimina enllaç",
+Anchor				: "Insereix/Edita àncora",
+InsertImageLbl		: "Imatge",
+InsertImage			: "Insereix/Edita imatge",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Insereix/Edita Flash",
+InsertTableLbl		: "Taula",
+InsertTable			: "Insereix/Edita taula",
+InsertLineLbl		: "Línia",
+InsertLine			: "Insereix línia horitzontal",
+InsertSpecialCharLbl: "Caràcter Especial",
+InsertSpecialChar	: "Insereix caràcter especial",
+InsertSmileyLbl		: "Icona",
+InsertSmiley		: "Insereix icona",
+About				: "Quant a FCKeditor",
+Bold				: "Negreta",
+Italic				: "Cursiva",
+Underline			: "Subratllat",
+StrikeThrough		: "Barrat",
+Subscript			: "Subíndex",
+Superscript			: "Superíndex",
+LeftJustify			: "Aliniament esquerra",
+CenterJustify		: "Aliniament centrat",
+RightJustify		: "Aliniament dreta",
+BlockJustify		: "Justifica",
+DecreaseIndent		: "Sagna el text",
+IncreaseIndent		: "Treu el sagnat del text",
+Undo				: "Desfés",
+Redo				: "Refés",
+NumberedListLbl		: "Llista numerada",
+NumberedList		: "Aplica o elimina la llista numerada",
+BulletedListLbl		: "Llista de pics",
+BulletedList		: "Aplica o elimina la llista de pics",
+ShowTableBorders	: "Mostra les vores de les taules",
+ShowDetails			: "Mostra detalls",
+Style				: "Estil",
+FontFormat			: "Format",
+Font				: "Tipus de lletra",
+FontSize			: "Mida",
+TextColor			: "Color de Text",
+BGColor				: "Color de Fons",
+Source				: "Codi font",
+Find				: "Cerca",
+Replace				: "Reemplaça",
+SpellCheck			: "Revisa l'ortografia",
+UniversalKeyboard	: "Teclat universal",
+PageBreakLbl		: "Salt de pàgina",
+PageBreak			: "Insereix salt de pàgina",
+
+Form			: "Formulari",
+Checkbox		: "Casella de verificació",
+RadioButton		: "Botó d'opció",
+TextField		: "Camp de text",
+Textarea		: "Àrea de text",
+HiddenField		: "Camp ocult",
+Button			: "Botó",
+SelectionField	: "Camp de selecció",
+ImageButton		: "Botó d'imatge",
+
+FitWindow		: "Maximiza la mida de l'editor",
+
+// Context Menu
+EditLink			: "Edita l'enllaç",
+CellCM				: "Cel·la",
+RowCM				: "Fila",
+ColumnCM			: "Columna",
+InsertRow			: "Insereix una fila",
+DeleteRows			: "Suprimeix una fila",
+InsertColumn		: "Afegeix una columna",
+DeleteColumns		: "Suprimeix una columna",
+InsertCell			: "Insereix una cel·la",
+DeleteCells			: "Suprimeix les cel·les",
+MergeCells			: "Fusiona les cel·les",
+SplitCell			: "Separa les cel·les",
+TableDelete			: "Suprimeix la taula",
+CellProperties		: "Propietats de la cel·la",
+TableProperties		: "Propietats de la taula",
+ImageProperties		: "Propietats de la imatge",
+FlashProperties		: "Propietats del Flash",
+
+AnchorProp			: "Propietats de l'àncora",
+ButtonProp			: "Propietats del botó",
+CheckboxProp		: "Propietats de la casella de verificació",
+HiddenFieldProp		: "Propietats del camp ocult",
+RadioButtonProp		: "Propietats del botó d'opció",
+ImageButtonProp		: "Propietats del botó d'imatge",
+TextFieldProp		: "Propietats del camp de text",
+SelectionFieldProp	: "Propietats del camp de selecció",
+TextareaProp		: "Propietats de l'àrea de text",
+FormProp			: "Propietats del formulari",
+
+FontFormats			: "Normal;Formatejat;Adreça;Encapçalament 1;Encapçalament 2;Encapçalament 3;Encapçalament 4;Encapçalament 5;Encapçalament 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Processant XHTML. Si us plau esperi...",
+Done				: "Fet",
+PasteWordConfirm	: "El text que voleu enganxar sembla provenir de Word. Voleu netejar aquest text abans que sigui enganxat?",
+NotCompatiblePaste	: "Aquesta funció és disponible per a Internet Explorer versió 5.5 o superior. Voleu enganxar sense netejar?",
+UnknownToolbarItem	: "Element de la barra d'eines desconegut \"%1\"",
+UnknownCommand		: "Nom de comanda desconegut \"%1\"",
+NotImplemented		: "Mètode no implementat",
+UnknownToolbarSet	: "Conjunt de barra d'eines \"%1\" inexistent",
+NoActiveX			: "Les preferències del navegador poden limitar algunes funcions d'aquest editor. Cal habilitar l'opció \"Executa controls ActiveX i plug-ins\". Poden sorgir errors i poden faltar algunes funcions.",
+BrowseServerBlocked : "El visualitzador de recursos no s'ha pogut obrir. Assegura't de que els bloquejos de finestres emergents estan desactivats.",
+DialogBlocked		: "No ha estat possible obrir una finestra de diàleg. Assegura't de que els bloquejos de finestres emergents estan desactivats.",
+
+// Dialogs
+DlgBtnOK			: "D'acord",
+DlgBtnCancel		: "Cancel·la",
+DlgBtnClose			: "Tanca",
+DlgBtnBrowseServer	: "Veure servidor",
+DlgAdvancedTag		: "Avançat",
+DlgOpOther			: "Altres",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Si us plau, afegiu la URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<no definit>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Direcció de l'idioma",
+DlgGenLangDirLtr	: "D'esquerra a dreta (LTR)",
+DlgGenLangDirRtl	: "De dreta a esquerra (RTL)",
+DlgGenLangCode		: "Codi d'idioma",
+DlgGenAccessKey		: "Clau d'accés",
+DlgGenName			: "Nom",
+DlgGenTabIndex		: "Index de Tab",
+DlgGenLongDescr		: "Descripció llarga de la URL",
+DlgGenClass			: "Classes del full d'estil",
+DlgGenTitle			: "Títol consultiu",
+DlgGenContType		: "Tipus de contingut consultiu",
+DlgGenLinkCharset	: "Conjunt de caràcters font enllaçat",
+DlgGenStyle			: "Estil",
+
+// Image Dialog
+DlgImgTitle			: "Propietats de la imatge",
+DlgImgInfoTab		: "Informació de la imatge",
+DlgImgBtnUpload		: "Envia-la al servidor",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Puja",
+DlgImgAlt			: "Text alternatiu",
+DlgImgWidth			: "Amplada",
+DlgImgHeight		: "Alçada",
+DlgImgLockRatio		: "Bloqueja les proporcions",
+DlgBtnResetSize		: "Restaura la mida",
+DlgImgBorder		: "Vora",
+DlgImgHSpace		: "Espaiat horit.",
+DlgImgVSpace		: "Espaiat vert.",
+DlgImgAlign			: "Alineació",
+DlgImgAlignLeft		: "Ajusta a l'esquerra",
+DlgImgAlignAbsBottom: "Abs Bottom",
+DlgImgAlignAbsMiddle: "Abs Middle",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Bottom",
+DlgImgAlignMiddle	: "Middle",
+DlgImgAlignRight	: "Ajusta a la dreta",
+DlgImgAlignTextTop	: "Text Top",
+DlgImgAlignTop		: "Top",
+DlgImgPreview		: "Vista prèvia",
+DlgImgAlertUrl		: "Si us plau, escriviu la URL de la imatge",
+DlgImgLinkTab		: "Enllaç",
+
+// Flash Dialog
+DlgFlashTitle		: "Propietats del Flash",
+DlgFlashChkPlay		: "Reprodució automàtica",
+DlgFlashChkLoop		: "Bucle",
+DlgFlashChkMenu		: "Habilita menú Flash",
+DlgFlashScale		: "Escala",
+DlgFlashScaleAll	: "Mostra-ho tot",
+DlgFlashScaleNoBorder	: "Sense vores",
+DlgFlashScaleFit	: "Mida exacta",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Enllaç",
+DlgLnkInfoTab		: "Informació de l'enllaç",
+DlgLnkTargetTab		: "Destí",
+
+DlgLnkType			: "Tipus d'enllaç",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Àncora en aquesta pàgina",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocol",
+DlgLnkProtoOther	: "<altra>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Selecciona una àncora",
+DlgLnkAnchorByName	: "Per nom d'àncora",
+DlgLnkAnchorById	: "Per Id d'element",
+DlgLnkNoAnchors		: "<No hi ha àncores disponibles en aquest document>",
+DlgLnkEMail			: "Adreça d'E-Mail",
+DlgLnkEMailSubject	: "Assumpte del missatge",
+DlgLnkEMailBody		: "Cos del missatge",
+DlgLnkUpload		: "Puja",
+DlgLnkBtnUpload		: "Envia al servidor",
+
+DlgLnkTarget		: "Destí",
+DlgLnkTargetFrame	: "<marc>",
+DlgLnkTargetPopup	: "<finestra emergent>",
+DlgLnkTargetBlank	: "Nova finestra (_blank)",
+DlgLnkTargetParent	: "Finestra pare (_parent)",
+DlgLnkTargetSelf	: "Mateixa finestra (_self)",
+DlgLnkTargetTop		: "Finestra Major (_top)",
+DlgLnkTargetFrameName	: "Nom del marc de destí",
+DlgLnkPopWinName	: "Nom finestra popup",
+DlgLnkPopWinFeat	: "Característiques finestra popup",
+DlgLnkPopResize		: "Redimensionable",
+DlgLnkPopLocation	: "Barra d'adreça",
+DlgLnkPopMenu		: "Barra de menú",
+DlgLnkPopScroll		: "Barres d'scroll",
+DlgLnkPopStatus		: "Barra d'estat",
+DlgLnkPopToolbar	: "Barra d'eines",
+DlgLnkPopFullScrn	: "Pantalla completa (IE)",
+DlgLnkPopDependent	: "Depenent (Netscape)",
+DlgLnkPopWidth		: "Amplada",
+DlgLnkPopHeight		: "Alçada",
+DlgLnkPopLeft		: "Posició esquerra",
+DlgLnkPopTop		: "Posició dalt",
+
+DlnLnkMsgNoUrl		: "Si us plau, escrigui l'enllaç URL",
+DlnLnkMsgNoEMail	: "Si us plau, escrigui l'adreça e-mail",
+DlnLnkMsgNoAnchor	: "Si us plau, escrigui l'àncora",
+DlnLnkMsgInvPopName	: "El nom de la finestra emergent ha de començar amb una lletra i no pot tenir espais",
+
+// Color Dialog
+DlgColorTitle		: "Selecciona el color",
+DlgColorBtnClear	: "Neteja",
+DlgColorHighlight	: "Realça",
+DlgColorSelected	: "Selecciona",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Insereix una icona",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Selecciona el caràcter especial",
+
+// Table Dialog
+DlgTableTitle		: "Propietats de la taula",
+DlgTableRows		: "Files",
+DlgTableColumns		: "Columnes",
+DlgTableBorder		: "Tamany vora",
+DlgTableAlign		: "Alineació",
+DlgTableAlignNotSet	: "<No Definit>",
+DlgTableAlignLeft	: "Esquerra",
+DlgTableAlignCenter	: "Centre",
+DlgTableAlignRight	: "Dreta",
+DlgTableWidth		: "Amplada",
+DlgTableWidthPx		: "píxels",
+DlgTableWidthPc		: "percentatge",
+DlgTableHeight		: "Alçada",
+DlgTableCellSpace	: "Espaiat de cel·les",
+DlgTableCellPad		: "Encoixinament de cel·les",
+DlgTableCaption		: "Títol",
+DlgTableSummary		: "Resum",
+
+// Table Cell Dialog
+DlgCellTitle		: "Propietats de la cel·la",
+DlgCellWidth		: "Amplada",
+DlgCellWidthPx		: "píxels",
+DlgCellWidthPc		: "percentatge",
+DlgCellHeight		: "Alçada",
+DlgCellWordWrap		: "Ajust de paraula",
+DlgCellWordWrapNotSet	: "<No Definit>",
+DlgCellWordWrapYes	: "Si",
+DlgCellWordWrapNo	: "No",
+DlgCellHorAlign		: "Alineació horitzontal",
+DlgCellHorAlignNotSet	: "<No Definit>",
+DlgCellHorAlignLeft	: "Esquerra",
+DlgCellHorAlignCenter	: "Centre",
+DlgCellHorAlignRight: "Dreta",
+DlgCellVerAlign		: "Alineació vertical",
+DlgCellVerAlignNotSet	: "<No definit>",
+DlgCellVerAlignTop	: "Top",
+DlgCellVerAlignMiddle	: "Middle",
+DlgCellVerAlignBottom	: "Bottom",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellRowSpan		: "Rows Span",
+DlgCellCollSpan		: "Columns Span",
+DlgCellBackColor	: "Color de fons",
+DlgCellBorderColor	: "Color de la vora",
+DlgCellBtnSelect	: "Seleccioneu...",
+
+// Find Dialog
+DlgFindTitle		: "Cerca",
+DlgFindFindBtn		: "Cerca",
+DlgFindNotFoundMsg	: "El text especificat no s'ha trobat.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Reemplaça",
+DlgReplaceFindLbl		: "Cerca:",
+DlgReplaceReplaceLbl	: "Remplaça amb:",
+DlgReplaceCaseChk		: "Sensible a majúscules",
+DlgReplaceReplaceBtn	: "Reemplaça",
+DlgReplaceReplAllBtn	: "Reemplaça'ls tots",
+DlgReplaceWordChk		: "Cerca paraula completa",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "La seguretat del vostre navegador no permet executar automàticament les operacions d'enganxat. Si us plau, utilitzeu el teclat (Ctrl+V).",
+PasteErrorCut	: "La seguretat del vostre navegador no permet executar automàticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl+X).",
+PasteErrorCopy	: "La seguretat del vostre navegador no permet executar automàticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl+C).",
+
+PasteAsText		: "Enganxa com a text sense format",
+PasteFromWord	: "Enganxa com a Word",
+
+DlgPasteMsg2	: "Si us plau, enganxeu dins del següent camp utilitzant el teclat (<STRONG>Ctrl+V</STRONG>) i premeu <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignora definicions de font",
+DlgPasteRemoveStyles	: "Elimina definicions d'estil",
+DlgPasteCleanBox		: "Neteja camp",
+
+// Color Picker
+ColorAutomatic	: "Automàtic",
+ColorMoreColors	: "Més colors...",
+
+// Document Properties
+DocProps		: "Propietats del document",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Propietats de l'àncora",
+DlgAnchorName		: "Nom de l'àncora",
+DlgAnchorErrorName	: "Si us plau, escriviu el nom de l'ancora",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "No és al diccionari",
+DlgSpellChangeTo		: "Canvia a",
+DlgSpellBtnIgnore		: "Ignora",
+DlgSpellBtnIgnoreAll	: "Ignora-les totes",
+DlgSpellBtnReplace		: "Canvia",
+DlgSpellBtnReplaceAll	: "Canvia-les totes",
+DlgSpellBtnUndo			: "Desfés",
+DlgSpellNoSuggestions	: "Cap sugerència",
+DlgSpellProgress		: "Comprovació ortogràfica en progrés",
+DlgSpellNoMispell		: "Comprovació ortogràfica completada",
+DlgSpellNoChanges		: "Comprovació ortogràfica: cap paraulada canviada",
+DlgSpellOneChange		: "Comprovació ortogràfica: una paraula canviada",
+DlgSpellManyChanges		: "Comprovació ortogràfica %1 paraules canviades",
+
+IeSpellDownload			: "Comprovació ortogràfica no instal·lada. Voleu descarregar-ho ara?",
+
+// Button Dialog
+DlgButtonText		: "Text (Valor)",
+DlgButtonType		: "Tipus",
+DlgButtonTypeBtn	: "Botó",
+DlgButtonTypeSbm	: "Transmet formulari",
+DlgButtonTypeRst	: "Reinicia formulari",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nom",
+DlgCheckboxValue	: "Valor",
+DlgCheckboxSelected	: "Seleccionat",
+
+// Form Dialog
+DlgFormName		: "Nom",
+DlgFormAction	: "Acció",
+DlgFormMethod	: "Mètode",
+
+// Select Field Dialog
+DlgSelectName		: "Nom",
+DlgSelectValue		: "Valor",
+DlgSelectSize		: "Tamany",
+DlgSelectLines		: "Línies",
+DlgSelectChkMulti	: "Permet múltiples seleccions",
+DlgSelectOpAvail	: "Opcions disponibles",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Valor",
+DlgSelectBtnAdd		: "Afegeix",
+DlgSelectBtnModify	: "Modifica",
+DlgSelectBtnUp		: "Amunt",
+DlgSelectBtnDown	: "Avall",
+DlgSelectBtnSetValue : "Selecciona per defecte",
+DlgSelectBtnDelete	: "Elimina",
+
+// Textarea Dialog
+DlgTextareaName	: "Nom",
+DlgTextareaCols	: "Columnes",
+DlgTextareaRows	: "Files",
+
+// Text Field Dialog
+DlgTextName			: "Nom",
+DlgTextValue		: "Valor",
+DlgTextCharWidth	: "Amplada de caràcter",
+DlgTextMaxChars		: "Màxim de caràcters",
+DlgTextType			: "Tipus",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "Contrasenya",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nom",
+DlgHiddenValue	: "Valor",
+
+// Bulleted List Dialog
+BulletedListProp	: "Propietats de la llista de pics",
+NumberedListProp	: "Propietats de llista numerada",
+DlgLstStart			: "Inici",
+DlgLstType			: "Tipus",
+DlgLstTypeCircle	: "Cercle",
+DlgLstTypeDisc		: "Disc",
+DlgLstTypeSquare	: "Quadrat",
+DlgLstTypeNumbers	: "Números (1, 2, 3)",
+DlgLstTypeLCase		: "Lletres minúscules (a, b, c)",
+DlgLstTypeUCase		: "Lletres majúscules (A, B, C)",
+DlgLstTypeSRoman	: "Números romans minúscules (i, ii, iii)",
+DlgLstTypeLRoman	: "Números romans majúscules (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "General",
+DlgDocBackTab		: "Fons",
+DlgDocColorsTab		: "Colors i marges",
+DlgDocMetaTab		: "Dades Meta",
+
+DlgDocPageTitle		: "Títol de la pàgina",
+DlgDocLangDir		: "Direcció llenguatge",
+DlgDocLangDirLTR	: "Esquerra a dreta (LTR)",
+DlgDocLangDirRTL	: "Dreta a esquerra (RTL)",
+DlgDocLangCode		: "Codi de llenguatge",
+DlgDocCharSet		: "Codificació de conjunt de caràcters",
+DlgDocCharSetCE		: "Centreeuropeu",
+DlgDocCharSetCT		: "Xinès tradicional (Big5)",
+DlgDocCharSetCR		: "Ciríl·lic",
+DlgDocCharSetGR		: "Grec",
+DlgDocCharSetJP		: "Japonès",
+DlgDocCharSetKR		: "Coreà",
+DlgDocCharSetTR		: "Turc",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Europeu occidental",
+DlgDocCharSetOther	: "Una altra codificació de caràcters",
+
+DlgDocDocType		: "Capçalera de tipus de document",
+DlgDocDocTypeOther	: "Altra Capçalera de tipus de document",
+DlgDocIncXHTML		: "Incloure declaracions XHTML",
+DlgDocBgColor		: "Color de fons",
+DlgDocBgImage		: "URL de la imatge de fons",
+DlgDocBgNoScroll	: "Fons fixe",
+DlgDocCText			: "Text",
+DlgDocCLink			: "Enllaç",
+DlgDocCVisited		: "Enllaç visitat",
+DlgDocCActive		: "Enllaç actiu",
+DlgDocMargins		: "Marges de pàgina",
+DlgDocMaTop			: "Cap",
+DlgDocMaLeft		: "Esquerra",
+DlgDocMaRight		: "Dreta",
+DlgDocMaBottom		: "Peu",
+DlgDocMeIndex		: "Mots clau per a indexació (separats per coma)",
+DlgDocMeDescr		: "Descripció del document",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Vista prèvia",
+
+// Templates Dialog
+Templates			: "Plantilles",
+DlgTemplatesTitle	: "Contingut plantilles",
+DlgTemplatesSelMsg	: "Si us plau, seleccioneu la plantilla per obrir en l'editor<br>(el contingut actual no serà enregistrat):",
+DlgTemplatesLoading	: "Carregant la llista de plantilles. Si us plau, espereu...",
+DlgTemplatesNoTpl	: "(No hi ha plantilles definides)",
+DlgTemplatesReplace	: "Reemplaça el contingut actual",
+
+// About Dialog
+DlgAboutAboutTab	: "Quant a",
+DlgAboutBrowserInfoTab	: "Informació del navegador",
+DlgAboutLicenseTab	: "Llicència",
+DlgAboutVersion		: "versió",
+DlgAboutLicense		: "Segons els termes de la Llicència GNU Lesser General Public License",
+DlgAboutInfo		: "Per a més informació aneu a"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/en-ca.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/en-ca.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/en-ca.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: en-ca.js
+ * 	English (Canadian) language file.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ * 		Kevin Bennett
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Collapse Toolbar",
+ToolbarExpand		: "Expand Toolbar",
+
+// Toolbar Items and Context Menu
+Save				: "Save",
+NewPage				: "New Page",
+Preview				: "Preview",
+Cut					: "Cut",
+Copy				: "Copy",
+Paste				: "Paste",
+PasteText			: "Paste as plain text",
+PasteWord			: "Paste from Word",
+Print				: "Print",
+SelectAll			: "Select All",
+RemoveFormat		: "Remove Format",
+InsertLinkLbl		: "Link",
+InsertLink			: "Insert/Edit Link",
+RemoveLink			: "Remove Link",
+Anchor				: "Insert/Edit Anchor",
+InsertImageLbl		: "Image",
+InsertImage			: "Insert/Edit Image",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Insert/Edit Flash",
+InsertTableLbl		: "Table",
+InsertTable			: "Insert/Edit Table",
+InsertLineLbl		: "Line",
+InsertLine			: "Insert Horizontal Line",
+InsertSpecialCharLbl: "Special Character",
+InsertSpecialChar	: "Insert Special Character",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Insert Smiley",
+About				: "About FCKeditor",
+Bold				: "Bold",
+Italic				: "Italic",
+Underline			: "Underline",
+StrikeThrough		: "Strike Through",
+Subscript			: "Subscript",
+Superscript			: "Superscript",
+LeftJustify			: "Left Justify",
+CenterJustify		: "Centre Justify",
+RightJustify		: "Right Justify",
+BlockJustify		: "Block Justify",
+DecreaseIndent		: "Decrease Indent",
+IncreaseIndent		: "Increase Indent",
+Undo				: "Undo",
+Redo				: "Redo",
+NumberedListLbl		: "Numbered List",
+NumberedList		: "Insert/Remove Numbered List",
+BulletedListLbl		: "Bulleted List",
+BulletedList		: "Insert/Remove Bulleted List",
+ShowTableBorders	: "Show Table Borders",
+ShowDetails			: "Show Details",
+Style				: "Style",
+FontFormat			: "Format",
+Font				: "Font",
+FontSize			: "Size",
+TextColor			: "Text Colour",
+BGColor				: "Background Colour",
+Source				: "Source",
+Find				: "Find",
+Replace				: "Replace",
+SpellCheck			: "Check Spelling",
+UniversalKeyboard	: "Universal Keyboard",
+PageBreakLbl		: "Page Break",
+PageBreak			: "Insert Page Break",
+
+Form			: "Form",
+Checkbox		: "Checkbox",
+RadioButton		: "Radio Button",
+TextField		: "Text Field",
+Textarea		: "Textarea",
+HiddenField		: "Hidden Field",
+Button			: "Button",
+SelectionField	: "Selection Field",
+ImageButton		: "Image Button",
+
+FitWindow		: "Maximize the editor size",
+
+// Context Menu
+EditLink			: "Edit Link",
+CellCM				: "Cell",
+RowCM				: "Row",
+ColumnCM			: "Column",
+InsertRow			: "Insert Row",
+DeleteRows			: "Delete Rows",
+InsertColumn		: "Insert Column",
+DeleteColumns		: "Delete Columns",
+InsertCell			: "Insert Cell",
+DeleteCells			: "Delete Cells",
+MergeCells			: "Merge Cells",
+SplitCell			: "Split Cell",
+TableDelete			: "Delete Table",
+CellProperties		: "Cell Properties",
+TableProperties		: "Table Properties",
+ImageProperties		: "Image Properties",
+FlashProperties		: "Flash Properties",
+
+AnchorProp			: "Anchor Properties",
+ButtonProp			: "Button Properties",
+CheckboxProp		: "Checkbox Properties",
+HiddenFieldProp		: "Hidden Field Properties",
+RadioButtonProp		: "Radio Button Properties",
+ImageButtonProp		: "Image Button Properties",
+TextFieldProp		: "Text Field Properties",
+SelectionFieldProp	: "Selection Field Properties",
+TextareaProp		: "Textarea Properties",
+FormProp			: "Form Properties",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Processing XHTML. Please wait...",
+Done				: "Done",
+PasteWordConfirm	: "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?",
+NotCompatiblePaste	: "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?",
+UnknownToolbarItem	: "Unknown toolbar item \"%1\"",
+UnknownCommand		: "Unknown command name \"%1\"",
+NotImplemented		: "Command not implemented",
+UnknownToolbarSet	: "Toolbar set \"%1\" doesn't exist",
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Cancel",
+DlgBtnClose			: "Close",
+DlgBtnBrowseServer	: "Browse Server",
+DlgAdvancedTag		: "Advanced",
+DlgOpOther			: "<Other>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Please insert the URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<not set>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Language Direction",
+DlgGenLangDirLtr	: "Left to Right (LTR)",
+DlgGenLangDirRtl	: "Right to Left (RTL)",
+DlgGenLangCode		: "Language Code",
+DlgGenAccessKey		: "Access Key",
+DlgGenName			: "Name",
+DlgGenTabIndex		: "Tab Index",
+DlgGenLongDescr		: "Long Description URL",
+DlgGenClass			: "Stylesheet Classes",
+DlgGenTitle			: "Advisory Title",
+DlgGenContType		: "Advisory Content Type",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Style",
+
+// Image Dialog
+DlgImgTitle			: "Image Properties",
+DlgImgInfoTab		: "Image Info",
+DlgImgBtnUpload		: "Send it to the Server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Upload",
+DlgImgAlt			: "Alternative Text",
+DlgImgWidth			: "Width",
+DlgImgHeight		: "Height",
+DlgImgLockRatio		: "Lock Ratio",
+DlgBtnResetSize		: "Reset Size",
+DlgImgBorder		: "Border",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Align",
+DlgImgAlignLeft		: "Left",
+DlgImgAlignAbsBottom: "Abs Bottom",
+DlgImgAlignAbsMiddle: "Abs Middle",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Bottom",
+DlgImgAlignMiddle	: "Middle",
+DlgImgAlignRight	: "Right",
+DlgImgAlignTextTop	: "Text Top",
+DlgImgAlignTop		: "Top",
+DlgImgPreview		: "Preview",
+DlgImgAlertUrl		: "Please type the image URL",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Properties",
+DlgFlashChkPlay		: "Auto Play",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "Enable Flash Menu",
+DlgFlashScale		: "Scale",
+DlgFlashScaleAll	: "Show all",
+DlgFlashScaleNoBorder	: "No Border",
+DlgFlashScaleFit	: "Exact Fit",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Link Info",
+DlgLnkTargetTab		: "Target",
+
+DlgLnkType			: "Link Type",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Link to anchor in the text",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocol",
+DlgLnkProtoOther	: "<other>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Select an Anchor",
+DlgLnkAnchorByName	: "By Anchor Name",
+DlgLnkAnchorById	: "By Element Id",
+DlgLnkNoAnchors		: "<No anchors available in the document>",
+DlgLnkEMail			: "E-Mail Address",
+DlgLnkEMailSubject	: "Message Subject",
+DlgLnkEMailBody		: "Message Body",
+DlgLnkUpload		: "Upload",
+DlgLnkBtnUpload		: "Send it to the Server",
+
+DlgLnkTarget		: "Target",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<popup window>",
+DlgLnkTargetBlank	: "New Window (_blank)",
+DlgLnkTargetParent	: "Parent Window (_parent)",
+DlgLnkTargetSelf	: "Same Window (_self)",
+DlgLnkTargetTop		: "Topmost Window (_top)",
+DlgLnkTargetFrameName	: "Target Frame Name",
+DlgLnkPopWinName	: "Popup Window Name",
+DlgLnkPopWinFeat	: "Popup Window Features",
+DlgLnkPopResize		: "Resizable",
+DlgLnkPopLocation	: "Location Bar",
+DlgLnkPopMenu		: "Menu Bar",
+DlgLnkPopScroll		: "Scroll Bars",
+DlgLnkPopStatus		: "Status Bar",
+DlgLnkPopToolbar	: "Toolbar",
+DlgLnkPopFullScrn	: "Full Screen (IE)",
+DlgLnkPopDependent	: "Dependent (Netscape)",
+DlgLnkPopWidth		: "Width",
+DlgLnkPopHeight		: "Height",
+DlgLnkPopLeft		: "Left Position",
+DlgLnkPopTop		: "Top Position",
+
+DlnLnkMsgNoUrl		: "Please type the link URL",
+DlnLnkMsgNoEMail	: "Please type the e-mail address",
+DlnLnkMsgNoAnchor	: "Please select an anchor",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",
+
+// Color Dialog
+DlgColorTitle		: "Select Colour",
+DlgColorBtnClear	: "Clear",
+DlgColorHighlight	: "Highlight",
+DlgColorSelected	: "Selected",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Insert a Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Select Special Character",
+
+// Table Dialog
+DlgTableTitle		: "Table Properties",
+DlgTableRows		: "Rows",
+DlgTableColumns		: "Columns",
+DlgTableBorder		: "Border size",
+DlgTableAlign		: "Alignment",
+DlgTableAlignNotSet	: "<Not set>",
+DlgTableAlignLeft	: "Left",
+DlgTableAlignCenter	: "Centre",
+DlgTableAlignRight	: "Right",
+DlgTableWidth		: "Width",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "percent",
+DlgTableHeight		: "Height",
+DlgTableCellSpace	: "Cell spacing",
+DlgTableCellPad		: "Cell padding",
+DlgTableCaption		: "Caption",
+DlgTableSummary		: "Summary",
+
+// Table Cell Dialog
+DlgCellTitle		: "Cell Properties",
+DlgCellWidth		: "Width",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "percent",
+DlgCellHeight		: "Height",
+DlgCellWordWrap		: "Word Wrap",
+DlgCellWordWrapNotSet	: "<Not set>",
+DlgCellWordWrapYes	: "Yes",
+DlgCellWordWrapNo	: "No",
+DlgCellHorAlign		: "Horizontal Alignment",
+DlgCellHorAlignNotSet	: "<Not set>",
+DlgCellHorAlignLeft	: "Left",
+DlgCellHorAlignCenter	: "Centre",
+DlgCellHorAlignRight: "Right",
+DlgCellVerAlign		: "Vertical Alignment",
+DlgCellVerAlignNotSet	: "<Not set>",
+DlgCellVerAlignTop	: "Top",
+DlgCellVerAlignMiddle	: "Middle",
+DlgCellVerAlignBottom	: "Bottom",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellRowSpan		: "Rows Span",
+DlgCellCollSpan		: "Columns Span",
+DlgCellBackColor	: "Background Colour",
+DlgCellBorderColor	: "Border Colour",
+DlgCellBtnSelect	: "Select...",
+
+// Find Dialog
+DlgFindTitle		: "Find",
+DlgFindFindBtn		: "Find",
+DlgFindNotFoundMsg	: "The specified text was not found.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Replace",
+DlgReplaceFindLbl		: "Find what:",
+DlgReplaceReplaceLbl	: "Replace with:",
+DlgReplaceCaseChk		: "Match case",
+DlgReplaceReplaceBtn	: "Replace",
+DlgReplaceReplAllBtn	: "Replace All",
+DlgReplaceWordChk		: "Match whole word",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Your browser security settings don't permit the editor to automatically execute pasting operations. Please use the keyboard for that (Ctrl+V).",
+PasteErrorCut	: "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",
+PasteErrorCopy	: "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",
+
+PasteAsText		: "Paste as Plain Text",
+PasteFromWord	: "Paste from Word",
+
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignore Font Face definitions",
+DlgPasteRemoveStyles	: "Remove Styles definitions",
+DlgPasteCleanBox		: "Clean Up Box",
+
+// Color Picker
+ColorAutomatic	: "Automatic",
+ColorMoreColors	: "More Colours...",
+
+// Document Properties
+DocProps		: "Document Properties",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Anchor Properties",
+DlgAnchorName		: "Anchor Name",
+DlgAnchorErrorName	: "Please type the anchor name",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Not in dictionary",
+DlgSpellChangeTo		: "Change to",
+DlgSpellBtnIgnore		: "Ignore",
+DlgSpellBtnIgnoreAll	: "Ignore All",
+DlgSpellBtnReplace		: "Replace",
+DlgSpellBtnReplaceAll	: "Replace All",
+DlgSpellBtnUndo			: "Undo",
+DlgSpellNoSuggestions	: "- No suggestions -",
+DlgSpellProgress		: "Spell check in progress...",
+DlgSpellNoMispell		: "Spell check complete: No misspellings found",
+DlgSpellNoChanges		: "Spell check complete: No words changed",
+DlgSpellOneChange		: "Spell check complete: One word changed",
+DlgSpellManyChanges		: "Spell check complete: %1 words changed",
+
+IeSpellDownload			: "Spell checker not installed. Do you want to download it now?",
+
+// Button Dialog
+DlgButtonText		: "Text (Value)",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Button",
+DlgButtonTypeSbm	: "Submit",
+DlgButtonTypeRst	: "Reset",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Name",
+DlgCheckboxValue	: "Value",
+DlgCheckboxSelected	: "Selected",
+
+// Form Dialog
+DlgFormName		: "Name",
+DlgFormAction	: "Action",
+DlgFormMethod	: "Method",
+
+// Select Field Dialog
+DlgSelectName		: "Name",
+DlgSelectValue		: "Value",
+DlgSelectSize		: "Size",
+DlgSelectLines		: "lines",
+DlgSelectChkMulti	: "Allow multiple selections",
+DlgSelectOpAvail	: "Available Options",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Value",
+DlgSelectBtnAdd		: "Add",
+DlgSelectBtnModify	: "Modify",
+DlgSelectBtnUp		: "Up",
+DlgSelectBtnDown	: "Down",
+DlgSelectBtnSetValue : "Set as selected value",
+DlgSelectBtnDelete	: "Delete",
+
+// Textarea Dialog
+DlgTextareaName	: "Name",
+DlgTextareaCols	: "Columns",
+DlgTextareaRows	: "Rows",
+
+// Text Field Dialog
+DlgTextName			: "Name",
+DlgTextValue		: "Value",
+DlgTextCharWidth	: "Character Width",
+DlgTextMaxChars		: "Maximum Characters",
+DlgTextType			: "Type",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "Password",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Name",
+DlgHiddenValue	: "Value",
+
+// Bulleted List Dialog
+BulletedListProp	: "Bulleted List Properties",
+NumberedListProp	: "Numbered List Properties",
+DlgLstStart			: "Start",
+DlgLstType			: "Type",
+DlgLstTypeCircle	: "Circle",
+DlgLstTypeDisc		: "Disc",
+DlgLstTypeSquare	: "Square",
+DlgLstTypeNumbers	: "Numbers (1, 2, 3)",
+DlgLstTypeLCase		: "Lowercase Letters (a, b, c)",
+DlgLstTypeUCase		: "Uppercase Letters (A, B, C)",
+DlgLstTypeSRoman	: "Small Roman Numerals (i, ii, iii)",
+DlgLstTypeLRoman	: "Large Roman Numerals (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "General",
+DlgDocBackTab		: "Background",
+DlgDocColorsTab		: "Colours and Margins",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Page Title",
+DlgDocLangDir		: "Language Direction",
+DlgDocLangDirLTR	: "Left to Right (LTR)",
+DlgDocLangDirRTL	: "Right to Left (RTL)",
+DlgDocLangCode		: "Language Code",
+DlgDocCharSet		: "Character Set Encoding",
+DlgDocCharSetCE		: "Central European",
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Greek",
+DlgDocCharSetJP		: "Japanese",
+DlgDocCharSetKR		: "Korean",
+DlgDocCharSetTR		: "Turkish",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Western European",
+DlgDocCharSetOther	: "Other Character Set Encoding",
+
+DlgDocDocType		: "Document Type Heading",
+DlgDocDocTypeOther	: "Other Document Type Heading",
+DlgDocIncXHTML		: "Include XHTML Declarations",
+DlgDocBgColor		: "Background Colour",
+DlgDocBgImage		: "Background Image URL",
+DlgDocBgNoScroll	: "Nonscrolling Background",
+DlgDocCText			: "Text",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Visited Link",
+DlgDocCActive		: "Active Link",
+DlgDocMargins		: "Page Margins",
+DlgDocMaTop			: "Top",
+DlgDocMaLeft		: "Left",
+DlgDocMaRight		: "Right",
+DlgDocMaBottom		: "Bottom",
+DlgDocMeIndex		: "Document Indexing Keywords (comma separated)",
+DlgDocMeDescr		: "Document Description",
+DlgDocMeAuthor		: "Author",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Preview",
+
+// Templates Dialog
+Templates			: "Templates",
+DlgTemplatesTitle	: "Content Templates",
+DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",
+DlgTemplatesLoading	: "Loading templates list. Please wait...",
+DlgTemplatesNoTpl	: "(No templates defined)",
+DlgTemplatesReplace	: "Replace actual contents",
+
+// About Dialog
+DlgAboutAboutTab	: "About",
+DlgAboutBrowserInfoTab	: "Browser Info",
+DlgAboutLicenseTab	: "License",
+DlgAboutVersion		: "version",
+DlgAboutLicense		: "Licensed under the terms of the GNU Lesser General Public License",
+DlgAboutInfo		: "For further information go to"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/pt.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/pt.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/pt.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: pt.js
+ * 	Portuguese language file.
+ * 
+ * File Authors:
+ * 		Francisco Pereira (fjpereira@netcabo.pt)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Fechar Barra",
+ToolbarExpand		: "Expandir Barra",
+
+// Toolbar Items and Context Menu
+Save				: "Guardar",
+NewPage				: "Nova Página",
+Preview				: "Pré-visualizar",
+Cut					: "Cortar",
+Copy				: "Copiar",
+Paste				: "Colar",
+PasteText			: "Colar como texto não formatado",
+PasteWord			: "Colar do Word",
+Print				: "Imprimir",
+SelectAll			: "Seleccionar Tudo",
+RemoveFormat		: "Eliminar Formato",
+InsertLinkLbl		: "Hiperligação",
+InsertLink			: "Inserir/Editar Hiperligação",
+RemoveLink			: "Eliminar Hiperligação",
+Anchor				: " Inserir/Editar Âncora",
+InsertImageLbl		: "Imagem",
+InsertImage			: "Inserir/Editar Imagem",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Inserir/Editar Flash",
+InsertTableLbl		: "Tabela",
+InsertTable			: "Inserir/Editar Tabela",
+InsertLineLbl		: "Linha",
+InsertLine			: "Inserir Linha Horizontal",
+InsertSpecialCharLbl: "Caracter Especial",
+InsertSpecialChar	: "Inserir Caracter Especial",
+InsertSmileyLbl		: "Emoticons",
+InsertSmiley		: "Inserir Emoticons",
+About				: "Acerca do FCKeditor",
+Bold				: "Negrito",
+Italic				: "Itálico",
+Underline			: "Sublinhado",
+StrikeThrough		: "Rasurado",
+Subscript			: "Superior à Linha",
+Superscript			: "Inferior à Linha",
+LeftJustify			: "Alinhar à Esquerda",
+CenterJustify		: "Alinhar ao Centro",
+RightJustify		: "Alinhar à Direita",
+BlockJustify		: "Justificado",
+DecreaseIndent		: "Diminuir Avanço",
+IncreaseIndent		: "Aumentar Avanço",
+Undo				: "Anular",
+Redo				: "Repetir",
+NumberedListLbl		: "Numeração",
+NumberedList		: "Inserir/Eliminar Numeração",
+BulletedListLbl		: "Marcas",
+BulletedList		: "Inserir/Eliminar Marcas",
+ShowTableBorders	: "Mostrar Limites da Tabelas",
+ShowDetails			: "Mostrar Parágrafo",
+Style				: "Estilo",
+FontFormat			: "Formato",
+Font				: "Tipo de Letra",
+FontSize			: "Tamanho",
+TextColor			: "Cor do Texto",
+BGColor				: "Cor de Fundo",
+Source				: "Fonte",
+Find				: "Procurar",
+Replace				: "Substituir",
+SpellCheck			: "Verificação Ortográfica",
+UniversalKeyboard	: "Teclado Universal",
+PageBreakLbl		: "Quebra de Página",
+PageBreak			: "Inserir Quebra de Página",
+
+Form			: "Formulário",
+Checkbox		: "Caixa de Verificação",
+RadioButton		: "Botão de Opção",
+TextField		: "Campo de Texto",
+Textarea		: "Área de Texto",
+HiddenField		: "Campo Escondido",
+Button			: "Botão",
+SelectionField	: "Caixa de Combinação",
+ImageButton		: "Botão de Imagem",
+
+FitWindow		: "Maximizar o tamanho do editor",
+
+// Context Menu
+EditLink			: "Editar Hiperligação",
+CellCM				: "Célula",
+RowCM				: "Linha",
+ColumnCM			: "Coluna",
+InsertRow			: "Inserir Linha",
+DeleteRows			: "Eliminar Linhas",
+InsertColumn		: "Inserir Coluna",
+DeleteColumns		: "Eliminar Coluna",
+InsertCell			: "Inserir Célula",
+DeleteCells			: "Eliminar Célula",
+MergeCells			: "Unir Células",
+SplitCell			: "Dividir Célula",
+TableDelete			: "Eliminar Tabela",
+CellProperties		: "Propriedades da Célula",
+TableProperties		: "Propriedades da Tabela",
+ImageProperties		: "Propriedades da Imagem",
+FlashProperties		: "Propriedades do Flash",
+
+AnchorProp			: "Propriedades da Âncora",
+ButtonProp			: "Propriedades do Botão",
+CheckboxProp		: "Propriedades da Caixa de Verificação",
+HiddenFieldProp		: "Propriedades do Campo Escondido",
+RadioButtonProp		: "Propriedades do Botão de Opção",
+ImageButtonProp		: "Propriedades do Botão de imagens",
+TextFieldProp		: "Propriedades do Campo de Texto",
+SelectionFieldProp	: "Propriedades da Caixa de Combinação",
+TextareaProp		: "Propriedades da Área de Texto",
+FormProp			: "Propriedades do Formulário",
+
+FontFormats			: "Normal;Formatado;Endereço;Título 1;Título 2;Título 3;Título 4;Título 5;Título 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "A Processar XHTML. Por favor, espere...",
+Done				: "Concluído",
+PasteWordConfirm	: "O texto que deseja parece ter sido copiado do Word. Deseja limpar a formatação antes de colar?",
+NotCompatiblePaste	: "Este comando só está disponível para Internet Explorer versão 5.5 ou superior. Deseja colar sem limpar a formatação?",
+UnknownToolbarItem	: "Item de barra desconhecido \"%1\"",
+UnknownCommand		: "Nome de comando desconhecido \"%1\"",
+NotImplemented		: "Comando não implementado",
+UnknownToolbarSet	: "Nome de barra \"%1\" não definido",
+NoActiveX			: "As definições de segurança do navegador podem limitar algumas potencalidades do editr. Deve activar a opção \"Executar controlos e extensões ActiveX\". Pode ocorrer erros ou verificar que faltam potencialidades.",
+BrowseServerBlocked : "Não foi possível abrir o navegador de recursos. Certifique-se que todos os bloqueadores de popup estão desactivados.",
+DialogBlocked		: "Não foi possível abrir a janela de diálogo. Certifique-se que todos os bloqueadores de popup estão desactivados.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Cancelar",
+DlgBtnClose			: "Fechar",
+DlgBtnBrowseServer	: "Navegar no Servidor",
+DlgAdvancedTag		: "Avançado",
+DlgOpOther			: "<Outro>",
+DlgInfoTab			: "Informação",
+DlgAlertUrl			: "Por favor introduza o URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<Não definido>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Orientação de idioma",
+DlgGenLangDirLtr	: "Esquerda à Direita (LTR)",
+DlgGenLangDirRtl	: "Direita a Esquerda (RTL)",
+DlgGenLangCode		: "Código de Idioma",
+DlgGenAccessKey		: "Chave de Acesso",
+DlgGenName			: "Nome",
+DlgGenTabIndex		: "Índice de Tubulação",
+DlgGenLongDescr		: "Descrição Completa do URL",
+DlgGenClass			: "Classes de Estilo de Folhas Classes",
+DlgGenTitle			: "Título",
+DlgGenContType		: "Tipo de Conteúdo",
+DlgGenLinkCharset	: "Fonte de caracteres vinculado",
+DlgGenStyle			: "Estilo",
+
+// Image Dialog
+DlgImgTitle			: "Propriedades da Imagem",
+DlgImgInfoTab		: "Informação da Imagem",
+DlgImgBtnUpload		: "Enviar para o Servidor",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Carregar",
+DlgImgAlt			: "Texto Alternativo",
+DlgImgWidth			: "Largura",
+DlgImgHeight		: "Altura",
+DlgImgLockRatio		: "Proporcional",
+DlgBtnResetSize		: "Tamanho Original",
+DlgImgBorder		: "Limite",
+DlgImgHSpace		: "Esp.Horiz",
+DlgImgVSpace		: "Esp.Vert",
+DlgImgAlign			: "Alinhamento",
+DlgImgAlignLeft		: "Esquerda",
+DlgImgAlignAbsBottom: "Abs inferior",
+DlgImgAlignAbsMiddle: "Abs centro",
+DlgImgAlignBaseline	: "Linha de base",
+DlgImgAlignBottom	: "Fundo",
+DlgImgAlignMiddle	: "Centro",
+DlgImgAlignRight	: "Direita",
+DlgImgAlignTextTop	: "Topo do texto",
+DlgImgAlignTop		: "Topo",
+DlgImgPreview		: "Pré-visualizar",
+DlgImgAlertUrl		: "Por favor introduza o URL da imagem",
+DlgImgLinkTab		: "Hiperligação",
+
+// Flash Dialog
+DlgFlashTitle		: "Propriedades do Flash",
+DlgFlashChkPlay		: "Reproduzir automaticamente",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "Permitir Menu do Flash",
+DlgFlashScale		: "Escala",
+DlgFlashScaleAll	: "Mostrar tudo",
+DlgFlashScaleNoBorder	: "Sem Limites",
+DlgFlashScaleFit	: "Tamanho Exacto",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Hiperligação",
+DlgLnkInfoTab		: "Informação de Hiperligação",
+DlgLnkTargetTab		: "Destino",
+
+DlgLnkType			: "Tipo de Hiperligação",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Referência a esta página",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocolo",
+DlgLnkProtoOther	: "<outro>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Seleccionar una referência",
+DlgLnkAnchorByName	: "Por Nome de Referência",
+DlgLnkAnchorById	: "Por ID de elemento",
+DlgLnkNoAnchors		: "<Não há referências disponíveis no documento>",
+DlgLnkEMail			: "Endereço de E-Mail",
+DlgLnkEMailSubject	: "Título de Mensagem",
+DlgLnkEMailBody		: "Corpo da Mensagem",
+DlgLnkUpload		: "Carregar",
+DlgLnkBtnUpload		: "Enviar ao Servidor",
+
+DlgLnkTarget		: "Destino",
+DlgLnkTargetFrame	: "<Frame>",
+DlgLnkTargetPopup	: "<Janela de popup>",
+DlgLnkTargetBlank	: "Nova Janela(_blank)",
+DlgLnkTargetParent	: "Janela Pai (_parent)",
+DlgLnkTargetSelf	: "Mesma janela (_self)",
+DlgLnkTargetTop		: "Janela primaria (_top)",
+DlgLnkTargetFrameName	: "Nome do Frame Destino",
+DlgLnkPopWinName	: "Nome da Janela de Popup",
+DlgLnkPopWinFeat	: "Características de Janela de Popup",
+DlgLnkPopResize		: "Ajustável",
+DlgLnkPopLocation	: "Barra de localização",
+DlgLnkPopMenu		: "Barra de Menu",
+DlgLnkPopScroll		: "Barras de deslocamento",
+DlgLnkPopStatus		: "Barra de Estado",
+DlgLnkPopToolbar	: "Barra de Ferramentas",
+DlgLnkPopFullScrn	: "Janela Completa (IE)",
+DlgLnkPopDependent	: "Dependente (Netscape)",
+DlgLnkPopWidth		: "Largura",
+DlgLnkPopHeight		: "Altura",
+DlgLnkPopLeft		: "Posição Esquerda",
+DlgLnkPopTop		: "Posição Direita",
+
+DlnLnkMsgNoUrl		: "Por favor introduza a hiperligação URL",
+DlnLnkMsgNoEMail	: "Por favor introduza o endereço de e-mail",
+DlnLnkMsgNoAnchor	: "Por favor seleccione uma referência",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Seleccionar Cor",
+DlgColorBtnClear	: "Nenhuma",
+DlgColorHighlight	: "Destacado",
+DlgColorSelected	: "Seleccionado",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Inserir um Emoticon",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Seleccione um caracter especial",
+
+// Table Dialog
+DlgTableTitle		: "Propriedades da Tabela",
+DlgTableRows		: "Linhas",
+DlgTableColumns		: "Colunas",
+DlgTableBorder		: "Tamanho do Limite",
+DlgTableAlign		: "Alinhamento",
+DlgTableAlignNotSet	: "<Não definido>",
+DlgTableAlignLeft	: "Esquerda",
+DlgTableAlignCenter	: "Centrado",
+DlgTableAlignRight	: "Direita",
+DlgTableWidth		: "Largura",
+DlgTableWidthPx		: "pixeis",
+DlgTableWidthPc		: "percentagem",
+DlgTableHeight		: "Altura",
+DlgTableCellSpace	: "Esp. e/células",
+DlgTableCellPad		: "Esp. interior",
+DlgTableCaption		: "Título",
+DlgTableSummary		: "Sumário",
+
+// Table Cell Dialog
+DlgCellTitle		: "Propriedades da Célula",
+DlgCellWidth		: "Largura",
+DlgCellWidthPx		: "pixeis",
+DlgCellWidthPc		: "percentagem",
+DlgCellHeight		: "Altura",
+DlgCellWordWrap		: "Moldar Texto",
+DlgCellWordWrapNotSet	: "<Não definido>",
+DlgCellWordWrapYes	: "Sim",
+DlgCellWordWrapNo	: "Não",
+DlgCellHorAlign		: "Alinhamento Horizontal",
+DlgCellHorAlignNotSet	: "<Não definido>",
+DlgCellHorAlignLeft	: "Esquerda",
+DlgCellHorAlignCenter	: "Centrado",
+DlgCellHorAlignRight: "Direita",
+DlgCellVerAlign		: "Alinhamento Vertical",
+DlgCellVerAlignNotSet	: "<Não definido>",
+DlgCellVerAlignTop	: "Topo",
+DlgCellVerAlignMiddle	: "Médio",
+DlgCellVerAlignBottom	: "Fundi",
+DlgCellVerAlignBaseline	: "Linha de Base",
+DlgCellRowSpan		: "Unir Linhas",
+DlgCellCollSpan		: "Unir Colunas",
+DlgCellBackColor	: "Cor do Fundo",
+DlgCellBorderColor	: "Cor do Limite",
+DlgCellBtnSelect	: "Seleccione...",
+
+// Find Dialog
+DlgFindTitle		: "Procurar",
+DlgFindFindBtn		: "Procurar",
+DlgFindNotFoundMsg	: "O texto especificado não foi encontrado.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Substituir",
+DlgReplaceFindLbl		: "Texto a Procurar:",
+DlgReplaceReplaceLbl	: "Substituir por:",
+DlgReplaceCaseChk		: "Maiúsculas/Minúsculas",
+DlgReplaceReplaceBtn	: "Substituir",
+DlgReplaceReplAllBtn	: "Substituir Tudo",
+DlgReplaceWordChk		: "Coincidir com toda a palavra",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "A configuração de segurança do navegador não permite a execução automática de operações de colar. Por favor use o teclado (Ctrl+V).",
+PasteErrorCut	: "A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl+X).",
+PasteErrorCopy	: "A configuração de segurança do navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl+C).",
+
+PasteAsText		: "Colar como Texto Simples",
+PasteFromWord	: "Colar do Word",
+
+DlgPasteMsg2	: "Por favor, cole dentro da seguinte caixa usando o teclado (<STRONG>Ctrl+V</STRONG>) e prima <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignorar da definições do Tipo de Letra ",
+DlgPasteRemoveStyles	: "Remover as definições de Estilos",
+DlgPasteCleanBox		: "Caixa de Limpeza",
+
+// Color Picker
+ColorAutomatic	: "Automático",
+ColorMoreColors	: "Mais Cores...",
+
+// Document Properties
+DocProps		: "Propriedades do Documento",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Propriedades da Âncora",
+DlgAnchorName		: "Nome da Âncora",
+DlgAnchorErrorName	: "Por favor, introduza o nome da âncora",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Não está num directório",
+DlgSpellChangeTo		: "Mudar para",
+DlgSpellBtnIgnore		: "Ignorar",
+DlgSpellBtnIgnoreAll	: "Ignorar Tudo",
+DlgSpellBtnReplace		: "Substituir",
+DlgSpellBtnReplaceAll	: "Substituir Tudo",
+DlgSpellBtnUndo			: "Anular",
+DlgSpellNoSuggestions	: "- Sem sugestões -",
+DlgSpellProgress		: "Verificação ortográfica em progresso…",
+DlgSpellNoMispell		: "Verificação ortográfica completa: não foram encontrados erros",
+DlgSpellNoChanges		: "Verificação ortográfica completa: não houve alteração de palavras",
+DlgSpellOneChange		: "Verificação ortográfica completa: uma palavra alterada",
+DlgSpellManyChanges		: "Verificação ortográfica completa: %1 palavras alteradas",
+
+IeSpellDownload			: " Verificação ortográfica não instalada. Quer descarregar agora?",
+
+// Button Dialog
+DlgButtonText		: "Texto (Valor)",
+DlgButtonType		: "Tipo",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nome",
+DlgCheckboxValue	: "Valor",
+DlgCheckboxSelected	: "Seleccionado",
+
+// Form Dialog
+DlgFormName		: "Nome",
+DlgFormAction	: "Acção",
+DlgFormMethod	: "Método",
+
+// Select Field Dialog
+DlgSelectName		: "Nome",
+DlgSelectValue		: "Valor",
+DlgSelectSize		: "Tamanho",
+DlgSelectLines		: "linhas",
+DlgSelectChkMulti	: "Permitir selecções múltiplas",
+DlgSelectOpAvail	: "Opções Possíveis",
+DlgSelectOpText		: "Texto",
+DlgSelectOpValue	: "Valor",
+DlgSelectBtnAdd		: "Adicionar",
+DlgSelectBtnModify	: "Modificar",
+DlgSelectBtnUp		: "Para cima",
+DlgSelectBtnDown	: "Para baixo",
+DlgSelectBtnSetValue : "Definir um valor por defeito",
+DlgSelectBtnDelete	: "Apagar",
+
+// Textarea Dialog
+DlgTextareaName	: "Nome",
+DlgTextareaCols	: "Colunas",
+DlgTextareaRows	: "Linhas",
+
+// Text Field Dialog
+DlgTextName			: "Nome",
+DlgTextValue		: "Valor",
+DlgTextCharWidth	: "Tamanho do caracter",
+DlgTextMaxChars		: "Nr. Máximo de Caracteres",
+DlgTextType			: "Tipo",
+DlgTextTypeText		: "Texto",
+DlgTextTypePass		: "Palavra-chave",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nome",
+DlgHiddenValue	: "Valor",
+
+// Bulleted List Dialog
+BulletedListProp	: "Propriedades da Marca",
+NumberedListProp	: "Propriedades da Numeração",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tipo",
+DlgLstTypeCircle	: "Circulo",
+DlgLstTypeDisc		: "Disco",
+DlgLstTypeSquare	: "Quadrado",
+DlgLstTypeNumbers	: "Números (1, 2, 3)",
+DlgLstTypeLCase		: "Letras Minúsculas (a, b, c)",
+DlgLstTypeUCase		: "Letras Maiúsculas (A, B, C)",
+DlgLstTypeSRoman	: "Numeração Romana em Minúsculas (i, ii, iii)",
+DlgLstTypeLRoman	: "Numeração Romana em Maiúsculas (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Geral",
+DlgDocBackTab		: "Fundo",
+DlgDocColorsTab		: "Cores e Margens",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Título da Página",
+DlgDocLangDir		: "Orientação de idioma",
+DlgDocLangDirLTR	: "Esquerda à Direita (LTR)",
+DlgDocLangDirRTL	: "Direita à Esquerda (RTL)",
+DlgDocLangCode		: "Código de Idioma",
+DlgDocCharSet		: "Codificação de Caracteres",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Outra Codificação de Caracteres",
+
+DlgDocDocType		: "Tipo de Cabeçalho do Documento",
+DlgDocDocTypeOther	: "Outro Tipo de Cabeçalho do Documento",
+DlgDocIncXHTML		: "Incluir Declarações XHTML",
+DlgDocBgColor		: "Cor de Fundo",
+DlgDocBgImage		: "Caminho para a Imagem de Fundo",
+DlgDocBgNoScroll	: "Fundo Fixo",
+DlgDocCText			: "Texto",
+DlgDocCLink			: "Hiperligação",
+DlgDocCVisited		: "Hiperligação Visitada",
+DlgDocCActive		: "Hiperligação Activa",
+DlgDocMargins		: "Margem das Páginas",
+DlgDocMaTop			: "Topo",
+DlgDocMaLeft		: "Esquerda",
+DlgDocMaRight		: "Direita",
+DlgDocMaBottom		: "Fundo",
+DlgDocMeIndex		: "Palavras de Indexação do Documento (separadas por virgula)",
+DlgDocMeDescr		: "Descrição do Documento",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Direitos de Autor",
+DlgDocPreview		: "Pré-visualizar",
+
+// Templates Dialog
+Templates			: "Modelos",
+DlgTemplatesTitle	: "Modelo de Conteúdo",
+DlgTemplatesSelMsg	: "Por favor, seleccione o modelo a abrir no editor<br>(o conteúdo actual será perdido):",
+DlgTemplatesLoading	: "A carregar a lista de modelos. Aguarde por favor...",
+DlgTemplatesNoTpl	: "(Sem modelos definidos)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Acerca",
+DlgAboutBrowserInfoTab	: "Informação do Nevegador",
+DlgAboutLicenseTab	: "Licença",
+DlgAboutVersion		: "versão",
+DlgAboutLicense		: "Licenciado segundo os términos de GNU Lesser General Public License",
+DlgAboutInfo		: "Para mais informações por favor dirija-se a"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/da.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/da.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/da.js	(revision 389)
@@ -0,0 +1,503 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: da.js
+ * 	Danish language file.
+ * 
+ * File Authors:
+ * 		Jørgen Nordstrøm (jn@FirstWeb.dk)
+ * 		Jesper Michelsen (jm@i-deVision.dk)
+ * 		Bo Brandt (bbr@dynamicweb.dk)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Skjul værktøjslinier",
+ToolbarExpand		: "Vis værktøjslinier",
+
+// Toolbar Items and Context Menu
+Save				: "Gem",
+NewPage				: "Ny side",
+Preview				: "Vis eksempel",
+Cut					: "Klip",
+Copy				: "Kopier",
+Paste				: "Indsæt",
+PasteText			: "Indsæt som ikke-formateret tekst",
+PasteWord			: "Indsæt fra Word",
+Print				: "Udskriv",
+SelectAll			: "Vælg alt",
+RemoveFormat		: "Fjern formatering",
+InsertLinkLbl		: "Hyperlink",
+InsertLink			: "Indsæt/rediger hyperlink",
+RemoveLink			: "Fjern hyperlink",
+Anchor				: "Indsæt/rediger bogmærke",
+InsertImageLbl		: "Indsæt billede",
+InsertImage			: "Indsæt/rediger billede",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Indsæt/rediger Flash",
+InsertTableLbl		: "Table",
+InsertTable			: "Indsæt/rediger tabel",
+InsertLineLbl		: "Linie",
+InsertLine			: "Indsæt vandret linie",
+InsertSpecialCharLbl: "Symbol",
+InsertSpecialChar	: "Indsæt symbol",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Indsæt smiley",
+About				: "Om FCKeditor",
+Bold				: "Fed",
+Italic				: "Kursiv",
+Underline			: "Understreget",
+StrikeThrough		: "Overstreget",
+Subscript			: "Sænket skrift",
+Superscript			: "Hævet skrift",
+LeftJustify			: "Venstrestillet",
+CenterJustify		: "Centreret",
+RightJustify		: "Højrestillet",
+BlockJustify		: "Lige margener",
+DecreaseIndent		: "Formindsk indrykning",
+IncreaseIndent		: "Forøg indrykning",
+Undo				: "Fortryd",
+Redo				: "Annuller fortryd",
+NumberedListLbl		: "Talopstilling",
+NumberedList		: "Indsæt/fjern talopstilling",
+BulletedListLbl		: "Punktopstilling",
+BulletedList		: "Indsæt/fjern punktopstilling",
+ShowTableBorders	: "Vis tabelkanter",
+ShowDetails			: "Vis detaljer",
+Style				: "Typografi",
+FontFormat			: "Formatering",
+Font				: "Skrifttype",
+FontSize			: "Skriftstørrelse",
+TextColor			: "Tekstfarve",
+BGColor				: "Baggrundsfarve",
+Source				: "Kilde",
+Find				: "Søg",
+Replace				: "Erstat",
+SpellCheck			: "Stavekontrol",
+UniversalKeyboard	: "Universaltastatur",
+PageBreakLbl		: "Sidskift",
+PageBreak			: "Indsæt sideskift",
+
+Form			: "Indsæt formular",
+Checkbox		: "Indsæt afkrydsningsfelt",
+RadioButton		: "Indsæt alternativknap",
+TextField		: "Indsæt tekstfelt",
+Textarea		: "Indsæt tekstboks",
+HiddenField		: "Indsæt skjult felt",
+Button			: "Indsæt knap",
+SelectionField	: "Indsæt liste",
+ImageButton		: "Indsæt billedknap",
+
+FitWindow		: "Maksimer editor vinduet",
+
+// Context Menu
+EditLink			: "Rediger hyperlink",
+CellCM				: "Celle",
+RowCM				: "Række",
+ColumnCM			: "Kolonne",
+InsertRow			: "Indsæt række",
+DeleteRows			: "Slet række",
+InsertColumn		: "Indsæt kolonne",
+DeleteColumns		: "Slet kolonne",
+InsertCell			: "Indsæt celle",
+DeleteCells			: "Slet celle",
+MergeCells			: "Flet celler",
+SplitCell			: "Opdel celle",
+TableDelete			: "Slet tabel",
+CellProperties		: "Egenskaber for celle",
+TableProperties		: "Egenskaber for tabel",
+ImageProperties		: "Egenskaber for billede",
+FlashProperties		: "Egenskaber for Flash",
+
+AnchorProp			: "Egenskaber for bogmærke",
+ButtonProp			: "Egenskaber for knap",
+CheckboxProp		: "Egenskaber for afkrydsningsfelt",
+HiddenFieldProp		: "Egenskaber for skjult felt",
+RadioButtonProp		: "Egenskaber for alternativknap",
+ImageButtonProp		: "Egenskaber for billedknap",
+TextFieldProp		: "Egenskaber for tekstfelt",
+SelectionFieldProp	: "Egenskaber for liste",
+TextareaProp		: "Egenskaber for tekstboks",
+FormProp			: "Egenskaber for formular",
+
+FontFormats			: "Normal;Formateret;Adresse;Overskrift 1;Overskrift 2;Overskrift 3;Overskrift 4;Overskrift 5;Overskrift 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Behandler XHTML...",
+Done				: "Færdig",
+PasteWordConfirm	: "Den tekst du forsøger at indsætte ser ud til at komme fra Word.<br>Vil du rense teksten før den indsættes?",
+NotCompatiblePaste	: "Denne kommando er tilgændelig i Internet Explorer 5.5 eller senere.<br>Vil du indsætte teksten uden at rense den ?",
+UnknownToolbarItem	: "Ukendt værktøjslinjeobjekt \"%1\"!",
+UnknownCommand		: "Ukendt kommandonavn \"%1\"!",
+NotImplemented		: "Kommandoen er ikke implementeret!",
+UnknownToolbarSet	: "Værktøjslinjen \"%1\" eksisterer ikke!",
+NoActiveX			: "Din browsers sikkerhedsindstillinger begrænser nogle af editorens muligheder.<br>Slå \"Kør ActiveX-objekter og plug-ins\" til, ellers vil du opleve fejl og manglende muligheder.",
+BrowseServerBlocked : "Browseren kunne ikke åbne de nødvendige ressourcer!<br>Slå pop-up blokering fra.",
+DialogBlocked		: "Dialogvinduet kunne ikke åbnes!<br>Slå pop-up blokering fra.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Annuller",
+DlgBtnClose			: "Luk",
+DlgBtnBrowseServer	: "Gennemse...",
+DlgAdvancedTag		: "Avanceret",
+DlgOpOther			: "<Andet>",
+DlgInfoTab			: "Generelt",
+DlgAlertUrl			: "Indtast URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<intet valgt>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Tekstretning",
+DlgGenLangDirLtr	: "Fra venstre mod højre (LTR)",
+DlgGenLangDirRtl	: "Fra højre mod venstre (RTL)",
+DlgGenLangCode		: "Sprogkode",
+DlgGenAccessKey		: "Genvejstast",
+DlgGenName			: "Navn",
+DlgGenTabIndex		: "Tabulator indeks",
+DlgGenLongDescr		: "Udvidet beskrivelse",
+DlgGenClass			: "Typografiark",
+DlgGenTitle			: "Titel",
+DlgGenContType		: "Indholdstype",
+DlgGenLinkCharset	: "Tegnsæt",
+DlgGenStyle			: "Typografi",
+
+// Image Dialog
+DlgImgTitle			: "Egenskaber for billede",
+DlgImgInfoTab		: "Generelt",
+DlgImgBtnUpload		: "Upload",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Upload",
+DlgImgAlt			: "Alternativ tekst",
+DlgImgWidth			: "Bredde",
+DlgImgHeight		: "Højde",
+DlgImgLockRatio		: "Lås størrelsesforhold",
+DlgBtnResetSize		: "Nulstil størrelse",
+DlgImgBorder		: "Ramme",
+DlgImgHSpace		: "HMargen",
+DlgImgVSpace		: "VMargen",
+DlgImgAlign			: "Justering",
+DlgImgAlignLeft		: "Venstre",
+DlgImgAlignAbsBottom: "Absolut nederst",
+DlgImgAlignAbsMiddle: "Absolut centreret",
+DlgImgAlignBaseline	: "Grundlinje",
+DlgImgAlignBottom	: "Nederst",
+DlgImgAlignMiddle	: "Centreret",
+DlgImgAlignRight	: "Højre",
+DlgImgAlignTextTop	: "Toppen af teksten",
+DlgImgAlignTop		: "Øverst",
+DlgImgPreview		: "Vis eksempel",
+DlgImgAlertUrl		: "Indtast stien til billedet",
+DlgImgLinkTab		: "Hyperlink",
+
+// Flash Dialog
+DlgFlashTitle		: "Egenskaber for Flash",
+DlgFlashChkPlay		: "Automatisk afspilning",
+DlgFlashChkLoop		: "Gentagelse",
+DlgFlashChkMenu		: "Vis Flash menu",
+DlgFlashScale		: "Skalér",
+DlgFlashScaleAll	: "Vis alt",
+DlgFlashScaleNoBorder	: "Ingen ramme",
+DlgFlashScaleFit	: "Tilpas størrelse",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Egenskaber for hyperlink",
+DlgLnkInfoTab		: "Generelt",
+DlgLnkTargetTab		: "Mål",
+
+DlgLnkType			: "Hyperlink type",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Bogmærke på denne side",
+DlgLnkTypeEMail		: "E-mail",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<anden>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Vælg et anker",
+DlgLnkAnchorByName	: "Efter anker navn",
+DlgLnkAnchorById	: "Efter element Id",
+DlgLnkNoAnchors		: "<Ingen bogmærker dokumentet>",
+DlgLnkEMail			: "E-mailadresse",
+DlgLnkEMailSubject	: "Emne",
+DlgLnkEMailBody		: "Brødtekst",
+DlgLnkUpload		: "Upload",
+DlgLnkBtnUpload		: "Upload",
+
+DlgLnkTarget		: "Mål",
+DlgLnkTargetFrame	: "<ramme>",
+DlgLnkTargetPopup	: "<popup vindue>",
+DlgLnkTargetBlank	: "Nyt vindue (_blank)",
+DlgLnkTargetParent	: "Overordnet ramme (_parent)",
+DlgLnkTargetSelf	: "Samme vindue (_self)",
+DlgLnkTargetTop		: "Hele vinduet (_top)",
+DlgLnkTargetFrameName	: "Destinationsvinduets navn",
+DlgLnkPopWinName	: "Pop-up vinduets navn",
+DlgLnkPopWinFeat	: "Egenskaber for pop-up",
+DlgLnkPopResize		: "Skalering",
+DlgLnkPopLocation	: "Adresselinje",
+DlgLnkPopMenu		: "Menulinje",
+DlgLnkPopScroll		: "Scrollbars",
+DlgLnkPopStatus		: "Statuslinje",
+DlgLnkPopToolbar	: "Værktøjslinje",
+DlgLnkPopFullScrn	: "Fuld skærm (IE)",
+DlgLnkPopDependent	: "Koblet/dependent (Netscape)",
+DlgLnkPopWidth		: "Bredde",
+DlgLnkPopHeight		: "Højde",
+DlgLnkPopLeft		: "Position fra venstre",
+DlgLnkPopTop		: "Position fra toppen",
+
+DlnLnkMsgNoUrl		: "Indtast hyperlink URL!",
+DlnLnkMsgNoEMail	: "Indtast e-mailaddresse!",
+DlnLnkMsgNoAnchor	: "Vælg bogmærke!",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Vælg farve",
+DlgColorBtnClear	: "Nulstil",
+DlgColorHighlight	: "Markeret",
+DlgColorSelected	: "Valgt",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Vælg smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Vælg symbol",
+
+// Table Dialog
+DlgTableTitle		: "Egenskaber for tabel",
+DlgTableRows		: "Rækker",
+DlgTableColumns		: "Kolonner",
+DlgTableBorder		: "Rammebredde",
+DlgTableAlign		: "Justering",
+DlgTableAlignNotSet	: "<intet valgt>",
+DlgTableAlignLeft	: "Venstrestillet",
+DlgTableAlignCenter	: "Centreret",
+DlgTableAlignRight	: "Højrestillet",
+DlgTableWidth		: "Bredde",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "procent",
+DlgTableHeight		: "Højde",
+DlgTableCellSpace	: "Celleafstand",
+DlgTableCellPad		: "Cellemargen",
+DlgTableCaption		: "Titel",
+DlgTableSummary		: "Resume",
+
+// Table Cell Dialog
+DlgCellTitle		: "Egenskaber for celle",
+DlgCellWidth		: "Bredde",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "procent",
+DlgCellHeight		: "Højde",
+DlgCellWordWrap		: "Orddeling",
+DlgCellWordWrapNotSet	: "<intet valgt>",
+DlgCellWordWrapYes	: "Ja",
+DlgCellWordWrapNo	: "Nej",
+DlgCellHorAlign		: "Vandret justering",
+DlgCellHorAlignNotSet	: "<intet valgt>",
+DlgCellHorAlignLeft	: "Venstrestillet",
+DlgCellHorAlignCenter	: "Centreret",
+DlgCellHorAlignRight: "Højrestillet",
+DlgCellVerAlign		: "Lodret justering",
+DlgCellVerAlignNotSet	: "<intet valgt>",
+DlgCellVerAlignTop	: "Øverst",
+DlgCellVerAlignMiddle	: "Centreret",
+DlgCellVerAlignBottom	: "Nederst",
+DlgCellVerAlignBaseline	: "Grundlinje",
+DlgCellRowSpan		: "Højde i antal rækker",
+DlgCellCollSpan		: "Bredde i antal kolonner",
+DlgCellBackColor	: "Baggrundsfarve",
+DlgCellBorderColor	: "Rammefarve",
+DlgCellBtnSelect	: "Vælg...",
+
+// Find Dialog
+DlgFindTitle		: "Find",
+DlgFindFindBtn		: "Find",
+DlgFindNotFoundMsg	: "Søgeteksten blev ikke fundet!",
+
+// Replace Dialog
+DlgReplaceTitle			: "Erstat",
+DlgReplaceFindLbl		: "Søg efter:",
+DlgReplaceReplaceLbl	: "Erstat med:",
+DlgReplaceCaseChk		: "Forskel på store og små bogstaver",
+DlgReplaceReplaceBtn	: "Erstat",
+DlgReplaceReplAllBtn	: "Erstat alle",
+DlgReplaceWordChk		: "Kun hele ord",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Din browsers sikkerhedsindstillinger tillader ikke editoren at indsætte tekst automatisk!<br>Brug i stedet tastaturet til at indsætte teksten (Ctrl+V).",
+PasteErrorCut	: "Din browsers sikkerhedsindstillinger tillader ikke editoren at klippe tekst automatisk!<br>Brug i stedet tastaturet til at klippe teksten (Ctrl+X).",
+PasteErrorCopy	: "Din browsers sikkerhedsindstillinger tillader ikke editoren at kopiere tekst automatisk!<br>Brug i stedet tastaturet til at kopiere teksten (Ctrl+C).",
+
+PasteAsText		: "Indsæt som ikke-formateret tekst",
+PasteFromWord	: "Indsæt fra Word",
+
+DlgPasteMsg2	: "Indsæt i feltet herunder (<STRONG>Ctrl+V</STRONG>) og klik <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignorer font definitioner",
+DlgPasteRemoveStyles	: "Ignorer typografi",
+DlgPasteCleanBox		: "Slet indhold",
+
+// Color Picker
+ColorAutomatic	: "Automatisk",
+ColorMoreColors	: "Flere farver...",
+
+// Document Properties
+DocProps		: "Egenskaber for dokument",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Egenskaber for bogmærke",
+DlgAnchorName		: "Bogmærke navn",
+DlgAnchorErrorName	: "Indtast bogmærke navn!",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Ikke i ordbogen",
+DlgSpellChangeTo		: "Forslag",
+DlgSpellBtnIgnore		: "Ignorer",
+DlgSpellBtnIgnoreAll	: "Ignorer alle",
+DlgSpellBtnReplace		: "Erstat",
+DlgSpellBtnReplaceAll	: "Erstat alle",
+DlgSpellBtnUndo			: "Tilbage",
+DlgSpellNoSuggestions	: "- ingen forslag -",
+DlgSpellProgress		: "Stavekontrolen arbejder...",
+DlgSpellNoMispell		: "Stavekontrol færdig: Ingen fejl fundet",
+DlgSpellNoChanges		: "Stavekontrol færdig: Ingen ord ændret",
+DlgSpellOneChange		: "Stavekontrol færdig: Et ord ændret",
+DlgSpellManyChanges		: "Stavekontrol færdig: %1 ord ændret",
+
+IeSpellDownload			: "Stavekontrol ikke installeret.<br>Vil du hente den nu?",
+
+// Button Dialog
+DlgButtonText		: "Tekst",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Navn",
+DlgCheckboxValue	: "Værdi",
+DlgCheckboxSelected	: "Valgt",
+
+// Form Dialog
+DlgFormName		: "Navn",
+DlgFormAction	: "Handling",
+DlgFormMethod	: "Metod",
+
+// Select Field Dialog
+DlgSelectName		: "Navn",
+DlgSelectValue		: "Værdi",
+DlgSelectSize		: "Størrelse",
+DlgSelectLines		: "linier",
+DlgSelectChkMulti	: "Tillad flere valg",
+DlgSelectOpAvail	: "Valgmuligheder",
+DlgSelectOpText		: "Tekst",
+DlgSelectOpValue	: "Værdi",
+DlgSelectBtnAdd		: "Tilføj",
+DlgSelectBtnModify	: "Rediger",
+DlgSelectBtnUp		: "Op",
+DlgSelectBtnDown	: "Ned",
+DlgSelectBtnSetValue : "Sæt som valgt",
+DlgSelectBtnDelete	: "Slet",
+
+// Textarea Dialog
+DlgTextareaName	: "Navn",
+DlgTextareaCols	: "Kolonner",
+DlgTextareaRows	: "Rækker",
+
+// Text Field Dialog
+DlgTextName			: "Navn",
+DlgTextValue		: "Værdi",
+DlgTextCharWidth	: "Bredde (tegn)",
+DlgTextMaxChars		: "Max antal tegn",
+DlgTextType			: "Type",
+DlgTextTypeText		: "Tekst",
+DlgTextTypePass		: "Adgangskode",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Navn",
+DlgHiddenValue	: "Værdi",
+
+// Bulleted List Dialog
+BulletedListProp	: "Egenskaber for punktopstilling",
+NumberedListProp	: "Egenskaber for talopstilling",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Type",
+DlgLstTypeCircle	: "Cirkel",
+DlgLstTypeDisc		: "Udfyldt cirkel",
+DlgLstTypeSquare	: "Firkant",
+DlgLstTypeNumbers	: "Nummereret (1, 2, 3)",
+DlgLstTypeLCase		: "Små bogstaver (a, b, c)",
+DlgLstTypeUCase		: "Store bogstaver (A, B, C)",
+DlgLstTypeSRoman	: "Små romertal (i, ii, iii)",
+DlgLstTypeLRoman	: "Store romertal (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Generelt",
+DlgDocBackTab		: "Baggrund",
+DlgDocColorsTab		: "Farver og margen",
+DlgDocMetaTab		: "Metadata",
+
+DlgDocPageTitle		: "Sidetitel",
+DlgDocLangDir		: "Sprog",
+DlgDocLangDirLTR	: "Fra venstre mod højre (LTR)",
+DlgDocLangDirRTL	: "Fra højre mod venstre (RTL)",
+DlgDocLangCode		: "Landekode",
+DlgDocCharSet		: "Tegnsæt kode",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Anden tegnsæt kode",
+
+DlgDocDocType		: "Dokumenttype kategori",
+DlgDocDocTypeOther	: "Anden dokumenttype kategori",
+DlgDocIncXHTML		: "Inkludere XHTML deklartion",
+DlgDocBgColor		: "Baggrundsfarve",
+DlgDocBgImage		: "Baggrundsbillede URL",
+DlgDocBgNoScroll	: "Fastlåst baggrund",
+DlgDocCText			: "Tekst",
+DlgDocCLink			: "Hyperlink",
+DlgDocCVisited		: "Besøgt hyperlink",
+DlgDocCActive		: "Aktivt hyperlink",
+DlgDocMargins		: "Sidemargen",
+DlgDocMaTop			: "Øverst",
+DlgDocMaLeft		: "Venstre",
+DlgDocMaRight		: "Højre",
+DlgDocMaBottom		: "Nederst",
+DlgDocMeIndex		: "Dokument index nøgleord (kommasepareret)",
+DlgDocMeDescr		: "Dokument beskrivelse",
+DlgDocMeAuthor		: "Forfatter",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Vis",
+
+// Templates Dialog
+Templates			: "Skabeloner",
+DlgTemplatesTitle	: "Indholdsskabeloner",
+DlgTemplatesSelMsg	: "Vælg den skabelon, som skal åbnes i editoren.<br>(Nuværende indhold vil blive overskrevet!):",
+DlgTemplatesLoading	: "Henter liste over skabeloner...",
+DlgTemplatesNoTpl	: "(Der er ikke defineret nogen skabelon!)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Om",
+DlgAboutBrowserInfoTab	: "Generelt",
+DlgAboutLicenseTab	: "Licens",
+DlgAboutVersion		: "version",
+DlgAboutLicense		: "Licens under vilkår for GNU Lesser General Public License",
+DlgAboutInfo		: "For yderlig information gå til"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/sr.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/sr.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/sr.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: sr.js
+ * 	Serbian (Cyrillic) language file.
+ * 
+ * File Authors:
+ * 		Zoran Subić (zoran@tf.zr.ac.yu)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Смањи линију са алаткама",
+ToolbarExpand		: "Прошири линију са алаткама",
+
+// Toolbar Items and Context Menu
+Save				: "Сачувај",
+NewPage				: "Нова страница",
+Preview				: "Изглед странице",
+Cut					: "Исеци",
+Copy				: "Копирај",
+Paste				: "Залепи",
+PasteText			: "Залепи као неформатиран текст",
+PasteWord			: "Залепи из Worda",
+Print				: "Штампа",
+SelectAll			: "Означи све",
+RemoveFormat		: "Уклони форматирање",
+InsertLinkLbl		: "Линк",
+InsertLink			: "Унеси/измени линк",
+RemoveLink			: "Уклони линк",
+Anchor				: "Унеси/измени сидро",
+InsertImageLbl		: "Слика",
+InsertImage			: "Унеси/измени слику",
+InsertFlashLbl		: "Флеш елемент",
+InsertFlash			: "Унеси/измени флеш",
+InsertTableLbl		: "Табела",
+InsertTable			: "Унеси/измени табелу",
+InsertLineLbl		: "Линија",
+InsertLine			: "Унеси хоризонталну линију",
+InsertSpecialCharLbl: "Специјални карактери",
+InsertSpecialChar	: "Унеси специјални карактер",
+InsertSmileyLbl		: "Смајли",
+InsertSmiley		: "Унеси смајлија",
+About				: "О ФЦКедитору",
+Bold				: "Подебљано",
+Italic				: "Курзив",
+Underline			: "Подвучено",
+StrikeThrough		: "Прецртано",
+Subscript			: "Индекс",
+Superscript			: "Степен",
+LeftJustify			: "Лево равнање",
+CenterJustify		: "Центриран текст",
+RightJustify		: "Десно равнање",
+BlockJustify		: "Обострано равнање",
+DecreaseIndent		: "Смањи леву маргину",
+IncreaseIndent		: "Увећај леву маргину",
+Undo				: "Поништи акцију",
+Redo				: "Понови акцију",
+NumberedListLbl		: "Набројиву листу",
+NumberedList		: "Унеси/уклони набројиву листу",
+BulletedListLbl		: "Ненабројива листа",
+BulletedList		: "Унеси/уклони ненабројиву листу",
+ShowTableBorders	: "Прикажи оквир табеле",
+ShowDetails			: "Прикажи детаље",
+Style				: "Стил",
+FontFormat			: "Формат",
+Font				: "Фонт",
+FontSize			: "Величина фонта",
+TextColor			: "Боја текста",
+BGColor				: "Боја позадине",
+Source				: "Kôд",
+Find				: "Претрага",
+Replace				: "Замена",
+SpellCheck			: "Провери спеловање",
+UniversalKeyboard	: "Универзална тастатура",
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
+
+Form			: "Форма",
+Checkbox		: "Поље за потврду",
+RadioButton		: "Радио-дугме",
+TextField		: "Текстуално поље",
+Textarea		: "Зона текста",
+HiddenField		: "Скривено поље",
+Button			: "Дугме",
+SelectionField	: "Изборно поље",
+ImageButton		: "Дугме са сликом",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+
+// Context Menu
+EditLink			: "Промени линк",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRow			: "Унеси ред",
+DeleteRows			: "Обриши редове",
+InsertColumn		: "Унеси колону",
+DeleteColumns		: "Обриши колоне",
+InsertCell			: "Унеси ћелије",
+DeleteCells			: "Обриши ћелије",
+MergeCells			: "Спој ћелије",
+SplitCell			: "Раздвоји ћелије",
+TableDelete			: "Delete Table",	//MISSING
+CellProperties		: "Особине ћелије",
+TableProperties		: "Особине табеле",
+ImageProperties		: "Особине слике",
+FlashProperties		: "Особине Флеша",
+
+AnchorProp			: "Особине сидра",
+ButtonProp			: "Особине дугмета",
+CheckboxProp		: "Особине поља за потврду",
+HiddenFieldProp		: "Особине скривеног поља",
+RadioButtonProp		: "Особине радио-дугмета",
+ImageButtonProp		: "Особине дугмета са сликом",
+TextFieldProp		: "Особине текстуалног поља",
+SelectionFieldProp	: "Особине изборног поља",
+TextareaProp		: "Особине зоне текста",
+FormProp			: "Особине форме",
+
+FontFormats			: "Normal;Formatirano;Adresa;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Обрађујем XHTML. Maлo стрпљења...",
+Done				: "Завршио",
+PasteWordConfirm	: "Текст који желите да налепите копиран је из Worda. Да ли желите да буде очишћен од формата пре лепљења?",
+NotCompatiblePaste	: "Ова команда је доступна само за Интернет Екплорер од верзије 5.5. Да ли желите да налепим текст без чишћења?",
+UnknownToolbarItem	: "Непозната ставка toolbara \"%1\"",
+UnknownCommand		: "Непозната наредба \"%1\"",
+NotImplemented		: "Наредба није имплементирана",
+UnknownToolbarSet	: "Toolbar \"%1\" не постоји",
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Oткажи",
+DlgBtnClose			: "Затвори",
+DlgBtnBrowseServer	: "Претражи сервер",
+DlgAdvancedTag		: "Напредни тагови",
+DlgOpOther			: "<Остали>",
+DlgInfoTab			: "Инфо",
+DlgAlertUrl			: "Молимо Вас, унесите УРЛ",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<није постављено>",
+DlgGenId			: "Ид",
+DlgGenLangDir		: "Смер језика",
+DlgGenLangDirLtr	: "С лева на десно (LTR)",
+DlgGenLangDirRtl	: "С десна на лево (RTL)",
+DlgGenLangCode		: "Kôд језика",
+DlgGenAccessKey		: "Приступни тастер",
+DlgGenName			: "Назив",
+DlgGenTabIndex		: "Таб индекс",
+DlgGenLongDescr		: "Пун опис УРЛ",
+DlgGenClass			: "Stylesheet класе",
+DlgGenTitle			: "Advisory наслов",
+DlgGenContType		: "Advisory врста садржаја",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Стил",
+
+// Image Dialog
+DlgImgTitle			: "Особине слика",
+DlgImgInfoTab		: "Инфо слике",
+DlgImgBtnUpload		: "Пошаљи на сервер",
+DlgImgURL			: "УРЛ",
+DlgImgUpload		: "Пошаљи",
+DlgImgAlt			: "Алтернативни текст",
+DlgImgWidth			: "Ширина",
+DlgImgHeight		: "Висина",
+DlgImgLockRatio		: "Закључај однос",
+DlgBtnResetSize		: "Ресетуј величину",
+DlgImgBorder		: "Оквир",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Равнање",
+DlgImgAlignLeft		: "Лево",
+DlgImgAlignAbsBottom: "Abs доле",
+DlgImgAlignAbsMiddle: "Abs средина",
+DlgImgAlignBaseline	: "Базно",
+DlgImgAlignBottom	: "Доле",
+DlgImgAlignMiddle	: "Средина",
+DlgImgAlignRight	: "Десно",
+DlgImgAlignTextTop	: "Врх текста",
+DlgImgAlignTop		: "Врх",
+DlgImgPreview		: "Изглед",
+DlgImgAlertUrl		: "Унесите УРЛ слике",
+DlgImgLinkTab		: "Линк",
+
+// Flash Dialog
+DlgFlashTitle		: "Особине флеша",
+DlgFlashChkPlay		: "Аутоматски старт",
+DlgFlashChkLoop		: "Понављај",
+DlgFlashChkMenu		: "Укључи флеш мени",
+DlgFlashScale		: "Скалирај",
+DlgFlashScaleAll	: "Прикажи све",
+DlgFlashScaleNoBorder	: "Без ивице",
+DlgFlashScaleFit	: "Попуни површину",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Линк",
+DlgLnkInfoTab		: "Линк инфо",
+DlgLnkTargetTab		: "Мета",
+
+DlgLnkType			: "Врста линка",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Сидро на овој страници",
+DlgLnkTypeEMail		: "Eлектронска пошта",
+DlgLnkProto			: "Протокол",
+DlgLnkProtoOther	: "<друго>",
+DlgLnkURL			: "УРЛ",
+DlgLnkAnchorSel		: "Одабери сидро",
+DlgLnkAnchorByName	: "По називу сидра",
+DlgLnkAnchorById	: "Пo Ид-jу елемента",
+DlgLnkNoAnchors		: "<Нема доступних сидра>",
+DlgLnkEMail			: "Адреса електронске поште",
+DlgLnkEMailSubject	: "Наслов",
+DlgLnkEMailBody		: "Садржај поруке",
+DlgLnkUpload		: "Пошаљи",
+DlgLnkBtnUpload		: "Пошаљи на сервер",
+
+DlgLnkTarget		: "Meтa",
+DlgLnkTargetFrame	: "<оквир>",
+DlgLnkTargetPopup	: "<искачући прозор>",
+DlgLnkTargetBlank	: "Нови прозор (_blank)",
+DlgLnkTargetParent	: "Родитељски прозор (_parent)",
+DlgLnkTargetSelf	: "Исти прозор (_self)",
+DlgLnkTargetTop		: "Прозор на врху (_top)",
+DlgLnkTargetFrameName	: "Назив одредишног фрејма",
+DlgLnkPopWinName	: "Назив искачућег прозора",
+DlgLnkPopWinFeat	: "Могућности искачућег прозора",
+DlgLnkPopResize		: "Променљива величина",
+DlgLnkPopLocation	: "Локација",
+DlgLnkPopMenu		: "Контекстни мени",
+DlgLnkPopScroll		: "Скрол бар",
+DlgLnkPopStatus		: "Статусна линија",
+DlgLnkPopToolbar	: "Toolbar",
+DlgLnkPopFullScrn	: "Приказ преко целог екрана (ИE)",
+DlgLnkPopDependent	: "Зависно (Netscape)",
+DlgLnkPopWidth		: "Ширина",
+DlgLnkPopHeight		: "Висина",
+DlgLnkPopLeft		: "Од леве ивице екрана (пиксела)",
+DlgLnkPopTop		: "Од врха екрана (пиксела)",
+
+DlnLnkMsgNoUrl		: "Унесите УРЛ линка",
+DlnLnkMsgNoEMail	: "Откуцајте адресу електронске поште",
+DlnLnkMsgNoAnchor	: "Одаберите сидро",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Одаберите боју",
+DlgColorBtnClear	: "Обриши",
+DlgColorHighlight	: "Посветли",
+DlgColorSelected	: "Одабери",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Унеси смајлија",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Одаберите специјални карактер",
+
+// Table Dialog
+DlgTableTitle		: "Особине табеле",
+DlgTableRows		: "Редова",
+DlgTableColumns		: "Kолона",
+DlgTableBorder		: "Величина оквира",
+DlgTableAlign		: "Равнање",
+DlgTableAlignNotSet	: "<није постављено>",
+DlgTableAlignLeft	: "Лево",
+DlgTableAlignCenter	: "Средина",
+DlgTableAlignRight	: "Десно",
+DlgTableWidth		: "Ширина",
+DlgTableWidthPx		: "пиксела",
+DlgTableWidthPc		: "процената",
+DlgTableHeight		: "Висина",
+DlgTableCellSpace	: "Ћелијски простор",
+DlgTableCellPad		: "Размак ћелија",
+DlgTableCaption		: "Наслов табеле",
+DlgTableSummary		: "Summary",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "Особине ћелије",
+DlgCellWidth		: "Ширина",
+DlgCellWidthPx		: "пиксела",
+DlgCellWidthPc		: "процената",
+DlgCellHeight		: "Висина",
+DlgCellWordWrap		: "Дељење речи",
+DlgCellWordWrapNotSet	: "<није постављено>",
+DlgCellWordWrapYes	: "Да",
+DlgCellWordWrapNo	: "Не",
+DlgCellHorAlign		: "Водоравно равнање",
+DlgCellHorAlignNotSet	: "<није постављено>",
+DlgCellHorAlignLeft	: "Лево",
+DlgCellHorAlignCenter	: "Средина",
+DlgCellHorAlignRight: "Десно",
+DlgCellVerAlign		: "Вертикално равнање",
+DlgCellVerAlignNotSet	: "<није постављено>",
+DlgCellVerAlignTop	: "Горње",
+DlgCellVerAlignMiddle	: "Средина",
+DlgCellVerAlignBottom	: "Доње",
+DlgCellVerAlignBaseline	: "Базно",
+DlgCellRowSpan		: "Спајање редова",
+DlgCellCollSpan		: "Спајање колона",
+DlgCellBackColor	: "Боја позадине",
+DlgCellBorderColor	: "Боја оквира",
+DlgCellBtnSelect	: "Oдабери...",
+
+// Find Dialog
+DlgFindTitle		: "Пронађи",
+DlgFindFindBtn		: "Пронађи",
+DlgFindNotFoundMsg	: "Тражени текст није пронађен.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Замени",
+DlgReplaceFindLbl		: "Пронађи:",
+DlgReplaceReplaceLbl	: "Замени са:",
+DlgReplaceCaseChk		: "Разликуј велика и мала слова",
+DlgReplaceReplaceBtn	: "Замени",
+DlgReplaceReplAllBtn	: "Замени све",
+DlgReplaceWordChk		: "Упореди целе речи",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског лепљења текста. Молимо Вас да користите пречицу са тастатуре (Ctrl+V).",
+PasteErrorCut	: "Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског исецања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl+X).",
+PasteErrorCopy	: "Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског копирања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl+C).",
+
+PasteAsText		: "Залепи као чист текст",
+PasteFromWord	: "Залепи из Worda",
+
+DlgPasteMsg2	: "Молимо Вас да залепите унутар доње површине користећи тастатурну пречицу (<STRONG>Ctrl+V</STRONG>) и да притиснете <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Игнориши Font Face дефиниције",
+DlgPasteRemoveStyles	: "Уклони дефиниције стилова",
+DlgPasteCleanBox		: "Обриши све",
+
+// Color Picker
+ColorAutomatic	: "Аутоматски",
+ColorMoreColors	: "Више боја...",
+
+// Document Properties
+DocProps		: "Особине документа",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Особине сидра",
+DlgAnchorName		: "Име сидра",
+DlgAnchorErrorName	: "Молимо Вас да унесете име сидра",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Није у речнику",
+DlgSpellChangeTo		: "Измени",
+DlgSpellBtnIgnore		: "Игнориши",
+DlgSpellBtnIgnoreAll	: "Игнориши све",
+DlgSpellBtnReplace		: "Замени",
+DlgSpellBtnReplaceAll	: "Замени све",
+DlgSpellBtnUndo			: "Врати акцију",
+DlgSpellNoSuggestions	: "- Без сугестија -",
+DlgSpellProgress		: "Провера спеловања у току...",
+DlgSpellNoMispell		: "Провера спеловања завршена: грешке нису пронађене",
+DlgSpellNoChanges		: "Провера спеловања завршена: Није измењена ниједна реч",
+DlgSpellOneChange		: "Провера спеловања завршена: Измењена је једна реч",
+DlgSpellManyChanges		: "Провера спеловања завршена:  %1 реч(и) је измењено",
+
+IeSpellDownload			: "Провера спеловања није инсталирана. Да ли желите да је скинете са Интернета?",
+
+// Button Dialog
+DlgButtonText		: "Текст (вредност)",
+DlgButtonType		: "Tип",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Назив",
+DlgCheckboxValue	: "Вредност",
+DlgCheckboxSelected	: "Означено",
+
+// Form Dialog
+DlgFormName		: "Назив",
+DlgFormAction	: "Aкција",
+DlgFormMethod	: "Mетода",
+
+// Select Field Dialog
+DlgSelectName		: "Назив",
+DlgSelectValue		: "Вредност",
+DlgSelectSize		: "Величина",
+DlgSelectLines		: "линија",
+DlgSelectChkMulti	: "Дозволи вишеструку селекцију",
+DlgSelectOpAvail	: "Доступне опције",
+DlgSelectOpText		: "Текст",
+DlgSelectOpValue	: "Вредност",
+DlgSelectBtnAdd		: "Додај",
+DlgSelectBtnModify	: "Измени",
+DlgSelectBtnUp		: "Горе",
+DlgSelectBtnDown	: "Доле",
+DlgSelectBtnSetValue : "Подеси као означену вредност",
+DlgSelectBtnDelete	: "Обриши",
+
+// Textarea Dialog
+DlgTextareaName	: "Назив",
+DlgTextareaCols	: "Број колона",
+DlgTextareaRows	: "Број редова",
+
+// Text Field Dialog
+DlgTextName			: "Назив",
+DlgTextValue		: "Вредност",
+DlgTextCharWidth	: "Ширина (карактера)",
+DlgTextMaxChars		: "Максимално карактера",
+DlgTextType			: "Тип",
+DlgTextTypeText		: "Текст",
+DlgTextTypePass		: "Лозинка",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Назив",
+DlgHiddenValue	: "Вредност",
+
+// Bulleted List Dialog
+BulletedListProp	: "Особине Bulleted листе",
+NumberedListProp	: "Особине набројиве листе",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Тип",
+DlgLstTypeCircle	: "Круг",
+DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeSquare	: "Квадрат",
+DlgLstTypeNumbers	: "Бројеви (1, 2, 3)",
+DlgLstTypeLCase		: "мала слова (a, b, c)",
+DlgLstTypeUCase		: "ВЕЛИКА СЛОВА (A, B, C)",
+DlgLstTypeSRoman	: "Мале римске цифре (i, ii, iii)",
+DlgLstTypeLRoman	: "Велике римске цифре (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Опште особине",
+DlgDocBackTab		: "Позадина",
+DlgDocColorsTab		: "Боје и маргине",
+DlgDocMetaTab		: "Метаподаци",
+
+DlgDocPageTitle		: "Наслов странице",
+DlgDocLangDir		: "Смер језика",
+DlgDocLangDirLTR	: "Слева надесно (LTR)",
+DlgDocLangDirRTL	: "Здесна налево (RTL)",
+DlgDocLangCode		: "Шифра језика",
+DlgDocCharSet		: "Кодирање скупа карактера",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Остала кодирања скупа карактера",
+
+DlgDocDocType		: "Заглавље типа документа",
+DlgDocDocTypeOther	: "Остала заглавља типа документа",
+DlgDocIncXHTML		: "Улључи XHTML декларације",
+DlgDocBgColor		: "Боја позадине",
+DlgDocBgImage		: "УРЛ позадинске слике",
+DlgDocBgNoScroll	: "Фиксирана позадина",
+DlgDocCText			: "Текст",
+DlgDocCLink			: "Линк",
+DlgDocCVisited		: "Посећени линк",
+DlgDocCActive		: "Активни линк",
+DlgDocMargins		: "Маргине странице",
+DlgDocMaTop			: "Горња",
+DlgDocMaLeft		: "Лева",
+DlgDocMaRight		: "Десна",
+DlgDocMaBottom		: "Доња",
+DlgDocMeIndex		: "Кључне речи за индексирање документа (раздвојене зарезом)",
+DlgDocMeDescr		: "Опис документа",
+DlgDocMeAuthor		: "Аутор",
+DlgDocMeCopy		: "Ауторска права",
+DlgDocPreview		: "Изглед странице",
+
+// Templates Dialog
+Templates			: "Обрасци",
+DlgTemplatesTitle	: "Обрасци за садржај",
+DlgTemplatesSelMsg	: "Молимо Вас да одаберете образац који ће бити примењен на страницу (тренутни садржај ће бити обрисан):",
+DlgTemplatesLoading	: "Учитавам листу образаца. Мало стрпљења...",
+DlgTemplatesNoTpl	: "(Нема дефинисаних образаца)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "О едитору",
+DlgAboutBrowserInfoTab	: "Информације о претраживачу",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "верзија",
+DlgAboutLicense		: "Лиценцирано под условима GNU Lesser General Public License",
+DlgAboutInfo		: "За више информација посетите"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/tr.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/tr.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/tr.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: tr.js
+ * 	Turkish language file.
+ * 
+ * File Authors:
+ * 		Bogac Guven (bogacmx@yahoo.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Araç Çubugunu Kapat",
+ToolbarExpand		: "Araç Çubugunu Aç",
+
+// Toolbar Items and Context Menu
+Save				: "Kaydet",
+NewPage				: "Yeni Sayfa",
+Preview				: "Ön İzleme",
+Cut					: "Kes",
+Copy				: "Kopyala",
+Paste				: "Yapıştır",
+PasteText			: "Düzyazı Olarak Yapıştır",
+PasteWord			: "Word'den Yapıştır",
+Print				: "Yazdır",
+SelectAll			: "Tümünü Seç",
+RemoveFormat		: "Biçimi Kaldır",
+InsertLinkLbl		: "Köprü",
+InsertLink			: "Köprü Ekle/Düzenle",
+RemoveLink			: "Köprü Kaldır",
+Anchor				: "Çapa Ekle/Düzenle",
+InsertImageLbl		: "Resim",
+InsertImage			: "Resim Ekle/Düzenle",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Flash Ekle/Düzenle",
+InsertTableLbl		: "Tablo",
+InsertTable			: "Tablo Ekle/Düzenle",
+InsertLineLbl		: "Satır",
+InsertLine			: "Yatay Satır Ekle",
+InsertSpecialCharLbl: "Özel Karakter",
+InsertSpecialChar	: "Özel Karakter Ekle",
+InsertSmileyLbl		: "İfade",
+InsertSmiley		: "İfade Ekle",
+About				: "FCKeditor Hakkında",
+Bold				: "Kalın",
+Italic				: "İtalik",
+Underline			: "Altı Çizgili",
+StrikeThrough		: "Üstü Çizgili",
+Subscript			: "Alt Simge",
+Superscript			: "Üst Simge",
+LeftJustify			: "Sola Dayalı",
+CenterJustify		: "Ortalanmış",
+RightJustify		: "Sağa Dayalı",
+BlockJustify		: "İki Kenara Yaslanmış",
+DecreaseIndent		: "Sekme Azalt",
+IncreaseIndent		: "Sekme Arttır",
+Undo				: "Geri Al",
+Redo				: "Tekrarla",
+NumberedListLbl		: "Numaralı Liste",
+NumberedList		: "Numaralı Liste Ekle/Kaldır",
+BulletedListLbl		: "Simgeli Liste",
+BulletedList		: "Simgeli Liste Ekle/Kaldır",
+ShowTableBorders	: "Tablo Kenarlarını Göster",
+ShowDetails			: "Detayları Göster",
+Style				: "Stil",
+FontFormat			: "Biçim",
+Font				: "Yazı Tipi",
+FontSize			: "Boyut",
+TextColor			: "Yazı Rengi",
+BGColor				: "Arka Renk",
+Source				: "Kaynak",
+Find				: "Bul",
+Replace				: "Değiştir",
+SpellCheck			: "Yazım Denetimi",
+UniversalKeyboard	: "Evrensel Klavye",
+PageBreakLbl		: "Sayfa sonu",
+PageBreak			: "Sayfa Sonu Ekle",
+
+Form			: "Form",
+Checkbox		: "Onay Kutusu",
+RadioButton		: "Seçenek Düğmesi",
+TextField		: "Metin Girişi",
+Textarea		: "Çok Satırlı Metin",
+HiddenField		: "Gizli Veri",
+Button			: "Düğme",
+SelectionField	: "Seçim Mönüsü",
+ImageButton		: "Resimli Düğme",
+
+FitWindow		: "Editör boyutunu büyüt",
+
+// Context Menu
+EditLink			: "Köprü Düzenle",
+CellCM				: "Hücre",
+RowCM				: "Satır",
+ColumnCM			: "Sütun",
+InsertRow			: "Satır Ekle",
+DeleteRows			: "Satır Sil",
+InsertColumn		: "Sütun Ekle",
+DeleteColumns		: "Sütun Sil",
+InsertCell			: "Hücre Ekle",
+DeleteCells			: "Hücre Sil",
+MergeCells			: "Hücreleri Birleştir",
+SplitCell			: "Hücre Böl",
+TableDelete			: "Tabloyu Sil",
+CellProperties		: "Hücre Özellikleri",
+TableProperties		: "Tablo Özellikleri",
+ImageProperties		: "Resim Özellikleri",
+FlashProperties		: "Flash Özellikleri",
+
+AnchorProp			: "Çapa Özellikleri",
+ButtonProp			: "Düğme Özellikleri",
+CheckboxProp		: "Onay Kutusu Özellikleri",
+HiddenFieldProp		: "Gizli Veri Özellikleri",
+RadioButtonProp		: "Seçenek Düğmesi Özellikleri",
+ImageButtonProp		: "Resimli Düğme Özellikleri",
+TextFieldProp		: "Metin Girişi Özellikleri",
+SelectionFieldProp	: "Seçim Mönüsü Özellikleri",
+TextareaProp		: "Çok Satırlı Metin Özellikleri",
+FormProp			: "Form Özellikleri",
+
+FontFormats			: "Normal;Biçimli;Adres;Başlık 1;Başlık 2;Başlık 3;Başlık 4;Başlık 5;Başlık 6;Paragraf (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML işleniyor. Lütfen bekleyin...",
+Done				: "Bitti",
+PasteWordConfirm	: "Yapıştırdığınız yazı Word'den gelmişe benziyor. Yapıştırmadan önce gereksiz eklentileri silmek ister misiniz?",
+NotCompatiblePaste	: "Bu komut Internet Explorer 5.5 ve ileriki sürümleri için mevcuttur. Temizlenmeden yapıştırılmasını ister misiniz ?",
+UnknownToolbarItem	: "Bilinmeyen araç çubugu öğesi \"%1\"",
+UnknownCommand		: "Bilinmeyen komut \"%1\"",
+NotImplemented		: "Komut uyarlanamadı",
+UnknownToolbarSet	: "\"%1\" araç çubuğu öğesi mevcut değil",
+NoActiveX			: "Kullandığınız tarayıcının güvenlik ayarları bazı özelliklerin kullanılmasını engelliyor. Bu özelliklerin çalışması için \"Run ActiveX controls and plug-ins (Activex ve eklentileri çalıştır)\" seçeneğinin aktif yapılması gerekiyor. Kullanılamayan eklentiler ve hatalar konusunda daha fazla bilgi sahibi olun.",
+BrowseServerBlocked : "Kaynak tarayıcısı açılamadı. Tüm \"popup blocker\" programlarının devre dışı olduğundan emin olun. (Yahoo toolbar, Msn toolbar, Google toolbar gibi)",
+DialogBlocked		: "diyalog açmak mümkün olmadı. Tüm \"Popup Blocker\" programlarının devre dışı olduğundan emin olun.",
+
+// Dialogs
+DlgBtnOK			: "Tamam",
+DlgBtnCancel		: "İptal",
+DlgBtnClose			: "Kapat",
+DlgBtnBrowseServer	: "Sunucuyu Gez",
+DlgAdvancedTag		: "Gelişmiş",
+DlgOpOther			: "<Diğer>",
+DlgInfoTab			: "Bilgi",
+DlgAlertUrl			: "Lütfen URL girin",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<tanımlanmamış>",
+DlgGenId			: "Kimlik",
+DlgGenLangDir		: "Lisan Yönü",
+DlgGenLangDirLtr	: "Soldan Sağa (LTR)",
+DlgGenLangDirRtl	: "Sağdan Sola (RTL)",
+DlgGenLangCode		: "Lisan Kodlaması",
+DlgGenAccessKey		: "Erişim Tuşu",
+DlgGenName			: "İsim",
+DlgGenTabIndex		: "Sekme İndeksi",
+DlgGenLongDescr		: "Uzun Tanımlı URL",
+DlgGenClass			: "Stil Klasları",
+DlgGenTitle			: "Danışma Baslığı",
+DlgGenContType		: "Danışma İçerik Türü",
+DlgGenLinkCharset	: "Bağlı Kaynak Karakter Gurubu",
+DlgGenStyle			: "Stil",
+
+// Image Dialog
+DlgImgTitle			: "Resim Özellikleri",
+DlgImgInfoTab		: "Resim Bilgisi",
+DlgImgBtnUpload		: "Sunucuya Yolla",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Karsıya Yükle",
+DlgImgAlt			: "Alternatif Yazı",
+DlgImgWidth			: "Genişlik",
+DlgImgHeight		: "Yükseklik",
+DlgImgLockRatio		: "Oranı Kilitle",
+DlgBtnResetSize		: "Boyutu Başa Döndür",
+DlgImgBorder		: "Kenar",
+DlgImgHSpace		: "Yatay Boşluk",
+DlgImgVSpace		: "Dikey Boşluk",
+DlgImgAlign			: "Hizalama",
+DlgImgAlignLeft		: "Sol",
+DlgImgAlignAbsBottom: "Tam Altı",
+DlgImgAlignAbsMiddle: "Tam Ortası",
+DlgImgAlignBaseline	: "Taban Çizgisi",
+DlgImgAlignBottom	: "Alt",
+DlgImgAlignMiddle	: "Orta",
+DlgImgAlignRight	: "Sağ",
+DlgImgAlignTextTop	: "Yazı Tepeye",
+DlgImgAlignTop		: "Tepe",
+DlgImgPreview		: "Ön İzleme",
+DlgImgAlertUrl		: "Lütfen resmin URL'sini yazınız",
+DlgImgLinkTab		: "Köprü",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Özellikleri",
+DlgFlashChkPlay		: "Otomatik Oynat",
+DlgFlashChkLoop		: "Döngü",
+DlgFlashChkMenu		: "Flash Mönüsünü Kullan",
+DlgFlashScale		: "Boyutlandır",
+DlgFlashScaleAll	: "Hepsini Göster",
+DlgFlashScaleNoBorder	: "Kenar Yok",
+DlgFlashScaleFit	: "Tam Sığdır",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Köprü",
+DlgLnkInfoTab		: "Köprü Bilgisi",
+DlgLnkTargetTab		: "Hedef",
+
+DlgLnkType			: "Köprü Türü",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Bu sayfada çapa",
+DlgLnkTypeEMail		: "E-Posta",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<diğer>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Çapa Seç",
+DlgLnkAnchorByName	: "Çapa İsmi ile",
+DlgLnkAnchorById	: "Eleman Id ile",
+DlgLnkNoAnchors		: "<Bu dokümanda hiç çapa yok>",
+DlgLnkEMail			: "E-Posta Adresi",
+DlgLnkEMailSubject	: "Mesaj Konusu",
+DlgLnkEMailBody		: "Mesaj Vücudu",
+DlgLnkUpload		: "Karşıya Yükle",
+DlgLnkBtnUpload		: "Sunucuya Gönder",
+
+DlgLnkTarget		: "Hedef",
+DlgLnkTargetFrame	: "<çerçeve>",
+DlgLnkTargetPopup	: "<yeni açılan pencere>",
+DlgLnkTargetBlank	: "Yeni Pencere(_blank)",
+DlgLnkTargetParent	: "Anne Pencere (_parent)",
+DlgLnkTargetSelf	: "Kendi Penceresi (_self)",
+DlgLnkTargetTop		: "En Üst Pencere (_top)",
+DlgLnkTargetFrameName	: "Hedef Çerçeve İsmi",
+DlgLnkPopWinName	: "Yeni Açılan Pencere İsmi",
+DlgLnkPopWinFeat	: "Yeni Açılan Pencere Özellikleri",
+DlgLnkPopResize		: "Boyutlandırılabilir",
+DlgLnkPopLocation	: "Yer Çubuğu",
+DlgLnkPopMenu		: "Mönü Çubuğu",
+DlgLnkPopScroll		: "Kaydırma Çubukları",
+DlgLnkPopStatus		: "Statü Çubuğu",
+DlgLnkPopToolbar	: "Araç Çubuğu",
+DlgLnkPopFullScrn	: "Tam Ekran (IE)",
+DlgLnkPopDependent	: "Bağlı-Dependent- (Netscape)",
+DlgLnkPopWidth		: "Genişlik",
+DlgLnkPopHeight		: "Yükseklik",
+DlgLnkPopLeft		: "Sola Göre Pozisyon",
+DlgLnkPopTop		: "Yukarıya Göre Pozisyon",
+
+DlnLnkMsgNoUrl		: "Lütfen köprü URL'sini yazın",
+DlnLnkMsgNoEMail	: "Lütfen E-posta adresini yazın",
+DlnLnkMsgNoAnchor	: "Lütfen bir çapa seçin",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Renk Seç",
+DlgColorBtnClear	: "Temizle",
+DlgColorHighlight	: "Belirle",
+DlgColorSelected	: "Seçilmiş",
+
+// Smiley Dialog
+DlgSmileyTitle		: "İfade Ekle",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Özel Karakter Seç",
+
+// Table Dialog
+DlgTableTitle		: "Tablo Özellikleri",
+DlgTableRows		: "Satırlar",
+DlgTableColumns		: "Sütunlar",
+DlgTableBorder		: "Kenar Kalınlığı",
+DlgTableAlign		: "Hizalama",
+DlgTableAlignNotSet	: "<Tanımlanmamış>",
+DlgTableAlignLeft	: "Sol",
+DlgTableAlignCenter	: "Merkez",
+DlgTableAlignRight	: "Sağ",
+DlgTableWidth		: "Genişlik",
+DlgTableWidthPx		: "piksel",
+DlgTableWidthPc		: "yüzde",
+DlgTableHeight		: "Yükseklik",
+DlgTableCellSpace	: "Izgara kalınlığı",
+DlgTableCellPad		: "Izgara yazı arası",
+DlgTableCaption		: "Başlık",
+DlgTableSummary		: "Özet",
+
+// Table Cell Dialog
+DlgCellTitle		: "Hücre Özellikleri",
+DlgCellWidth		: "Genişlik",
+DlgCellWidthPx		: "piksel",
+DlgCellWidthPc		: "yüzde",
+DlgCellHeight		: "Yükseklik",
+DlgCellWordWrap		: "Sözcük Kaydır",
+DlgCellWordWrapNotSet	: "<Tanımlanmamış>",
+DlgCellWordWrapYes	: "Evet",
+DlgCellWordWrapNo	: "Hayır",
+DlgCellHorAlign		: "Yatay Hizalama",
+DlgCellHorAlignNotSet	: "<Tanımlanmamış>",
+DlgCellHorAlignLeft	: "Sol",
+DlgCellHorAlignCenter	: "Merkez",
+DlgCellHorAlignRight: "Sağ",
+DlgCellVerAlign		: "Dikey Hizalama",
+DlgCellVerAlignNotSet	: "<Tanımlanmamış>",
+DlgCellVerAlignTop	: "Tepe",
+DlgCellVerAlignMiddle	: "Orta",
+DlgCellVerAlignBottom	: "Alt",
+DlgCellVerAlignBaseline	: "Taban Çizgisi",
+DlgCellRowSpan		: "Satır Kapla",
+DlgCellCollSpan		: "Sütun Kapla",
+DlgCellBackColor	: "Arka Plan Rengi",
+DlgCellBorderColor	: "Kenar Rengi",
+DlgCellBtnSelect	: "Seç...",
+
+// Find Dialog
+DlgFindTitle		: "Bul",
+DlgFindFindBtn		: "Bul",
+DlgFindNotFoundMsg	: "Belirtilen yazı bulunamadı.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Değiştir",
+DlgReplaceFindLbl		: "Aranan:",
+DlgReplaceReplaceLbl	: "Bununla değiştir:",
+DlgReplaceCaseChk		: "Büyük/küçük harf duyarlı",
+DlgReplaceReplaceBtn	: "Değiştir",
+DlgReplaceReplAllBtn	: "Tümünü Değiştir",
+DlgReplaceWordChk		: "Kelimenin tamamı uysun",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Gezgin yazılımınızın güvenlik ayarları editörün otomatik yapıştırma işlemine izin vermiyor. İşlem için (Ctrl+V) tuşlarını kullanın.",
+PasteErrorCut	: "Gezgin yazılımınızın güvenlik ayarları editörün otomatik kesme işlemine izin vermiyor. İşlem için (Ctrl+X) tuşlarını kullanın.",
+PasteErrorCopy	: "Gezgin yazılımınızın güvenlik ayarları editörün otomatik kopyalama işlemine izin vermiyor. İşlem için (Ctrl+C) tuşlarını kullanın.",
+
+PasteAsText		: "Düz Metin Olarak Yapıştır",
+PasteFromWord	: "Word'den yapıştır",
+
+DlgPasteMsg2	: "Lütfen aşağıdaki kutunun içine yapıştırın. (<STRONG>Ctrl+V</STRONG>) ve <STRONG>Tamam</STRONG> butonunu tıklayın.",
+DlgPasteIgnoreFont		: "Yazı Tipi tanımlarını yoksay",
+DlgPasteRemoveStyles	: "Sitil Tanımlarını çıkar",
+DlgPasteCleanBox		: "Temizlik Kutusu",
+
+// Color Picker
+ColorAutomatic	: "Otomatik",
+ColorMoreColors	: "Diğer renkler...",
+
+// Document Properties
+DocProps		: "Doküman Özellikleri",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Çapa Özellikleri",
+DlgAnchorName		: "Çapa İsmi",
+DlgAnchorErrorName	: "Lütfen çapa için isim giriniz",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Sözlükte Yok",
+DlgSpellChangeTo		: "Şuna değiştir:",
+DlgSpellBtnIgnore		: "Yoksay",
+DlgSpellBtnIgnoreAll	: "Tümünü Yoksay",
+DlgSpellBtnReplace		: "Değiştir",
+DlgSpellBtnReplaceAll	: "Tümünü Değiştir",
+DlgSpellBtnUndo			: "Geri Al",
+DlgSpellNoSuggestions	: "- Öneri Yok -",
+DlgSpellProgress		: "Yazım denetimi işlemde...",
+DlgSpellNoMispell		: "Yazım denetimi tamamlandı: Yanlış yazıma rastlanmadı",
+DlgSpellNoChanges		: "Yazım denetimi tamamlandı: Hiçbir kelime değiştirilmedi",
+DlgSpellOneChange		: "Yazım denetimi tamamlandı: Bir kelime değiştirildi",
+DlgSpellManyChanges		: "Yazım denetimi tamamlandı: %1 kelime değiştirildi",
+
+IeSpellDownload			: "Yazım denetimi yüklenmemiş. Şimdi yüklemek ister misiniz?",
+
+// Button Dialog
+DlgButtonText		: "Metin (Değer)",
+DlgButtonType		: "Tip",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "İsim",
+DlgCheckboxValue	: "Değer",
+DlgCheckboxSelected	: "Seçili",
+
+// Form Dialog
+DlgFormName		: "İsim",
+DlgFormAction	: "İşlem",
+DlgFormMethod	: "Metod",
+
+// Select Field Dialog
+DlgSelectName		: "İsim",
+DlgSelectValue		: "Değer",
+DlgSelectSize		: "Boyut",
+DlgSelectLines		: "satır",
+DlgSelectChkMulti	: "Çoklu seçime izin ver",
+DlgSelectOpAvail	: "Mevcut Seçenekler",
+DlgSelectOpText		: "Metin",
+DlgSelectOpValue	: "Değer",
+DlgSelectBtnAdd		: "Ekle",
+DlgSelectBtnModify	: "Düzenle",
+DlgSelectBtnUp		: "Yukari",
+DlgSelectBtnDown	: "Aşağı",
+DlgSelectBtnSetValue : "Seçili değer olarak ata",
+DlgSelectBtnDelete	: "Sil",
+
+// Textarea Dialog
+DlgTextareaName	: "İsim",
+DlgTextareaCols	: "Sütunlar",
+DlgTextareaRows	: "Satırlar",
+
+// Text Field Dialog
+DlgTextName			: "İsim",
+DlgTextValue		: "Değer",
+DlgTextCharWidth	: "Karakter Genişliği",
+DlgTextMaxChars		: "En Fazla Karakter",
+DlgTextType			: "Tip",
+DlgTextTypeText		: "Metin",
+DlgTextTypePass		: "Şifre",
+
+// Hidden Field Dialog
+DlgHiddenName	: "İsim",
+DlgHiddenValue	: "Değer",
+
+// Bulleted List Dialog
+BulletedListProp	: "Simgeli Liste Özellikleri",
+NumberedListProp	: "Numaralı Liste Özellikleri",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tip",
+DlgLstTypeCircle	: "Çember",
+DlgLstTypeDisc		: "Disk",
+DlgLstTypeSquare	: "Kare",
+DlgLstTypeNumbers	: "Sayılar (1, 2, 3)",
+DlgLstTypeLCase		: "Küçük Harfler (a, b, c)",
+DlgLstTypeUCase		: "Büyük Harfler (A, B, C)",
+DlgLstTypeSRoman	: "Küçük Romen Rakamları (i, ii, iii)",
+DlgLstTypeLRoman	: "Büyük Romen Rakamları (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Genel",
+DlgDocBackTab		: "Arka Plan",
+DlgDocColorsTab		: "Renkler ve Mesafeler",
+DlgDocMetaTab		: "Tanım Bilgisi (Meta)",
+
+DlgDocPageTitle		: "Sayfa Başlığı",
+DlgDocLangDir		: "Lisan Yönü",
+DlgDocLangDirLTR	: "Soldan Sağa (LTR)",
+DlgDocLangDirRTL	: "Sağdan Sola (RTL)",
+DlgDocLangCode		: "Lisan Kodu",
+DlgDocCharSet		: "Karakter Kümesi Kodlaması",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Diğer Karakter Kümesi Kodlaması",
+
+DlgDocDocType		: "Doküman Türü Başlığı",
+DlgDocDocTypeOther	: "Diğer Doküman Türü Başlığı",
+DlgDocIncXHTML		: "XHTML Bildirimlerini Dahil Et",
+DlgDocBgColor		: "Arka Plan Rengi",
+DlgDocBgImage		: "Arka Plan Resim URLsi",
+DlgDocBgNoScroll	: "Sabit Arka Plan",
+DlgDocCText			: "Metin",
+DlgDocCLink			: "Köprü",
+DlgDocCVisited		: "Görülmüs Köprü",
+DlgDocCActive		: "Aktif Köprü",
+DlgDocMargins		: "Kenar Boşlukları",
+DlgDocMaTop			: "Tepe",
+DlgDocMaLeft		: "Sol",
+DlgDocMaRight		: "Sağ",
+DlgDocMaBottom		: "Alt",
+DlgDocMeIndex		: "Doküman İndeksleme Anahtar Kelimeleri (virgülle ayrılmış)",
+DlgDocMeDescr		: "Doküman Tanımı",
+DlgDocMeAuthor		: "Yazar",
+DlgDocMeCopy		: "Telif",
+DlgDocPreview		: "Ön İzleme",
+
+// Templates Dialog
+Templates			: "Düzenler",
+DlgTemplatesTitle	: "İçerik Düzenleri",
+DlgTemplatesSelMsg	: "Editörde açmak için lütfen bir düzen seçin.<br>(hali hazırdaki içerik kaybolacaktır.):",
+DlgTemplatesLoading	: "Düzenler listesi yüklenmekte. Lütfen bekleyiniz...",
+DlgTemplatesNoTpl	: "(Belirli bir düzen seçilmedi)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Hakkında",
+DlgAboutBrowserInfoTab	: "Gezgin Bilgisi",
+DlgAboutLicenseTab	: "Lisans",
+DlgAboutVersion		: "versiyon",
+DlgAboutLicense		: "GNU Kısıtlı Kamu Lisansı (LGPL) koşulları altında lisanslanmıştır",
+DlgAboutInfo		: "Daha fazla bilgi için:"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/fa.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/fa.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/fa.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fa.js
+ * 	Persian language file.
+ * 
+ * File Authors:
+ * 		Hamed Taj-Abadi (hamed@ranginkaman.com)
+ * 		Pooyan Mahdavi (pooyanmx -@- gmail -.- com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "rtl",
+
+ToolbarCollapse		: "برچیدن نوارابزار",
+ToolbarExpand		: "گستردن نوارابزار",
+
+// Toolbar Items and Context Menu
+Save				: "ذخیره",
+NewPage				: "برگهٴ تازه",
+Preview				: "پیش‌نمایش",
+Cut					: "برش",
+Copy				: "کپی",
+Paste				: "چسباندن",
+PasteText			: "چسباندن به عنوان متن ِساده",
+PasteWord			: "چسباندن از Word",
+Print				: "چاپ",
+SelectAll			: "گزینش همه",
+RemoveFormat		: "برداشتن فرمت",
+InsertLinkLbl		: "پیوند",
+InsertLink			: "گنجاندن/ویرایش ِپیوند",
+RemoveLink			: "برداشتن پیوند",
+Anchor				: "گنجاندن/ویرایش ِلنگر",
+InsertImageLbl		: "تصویر",
+InsertImage			: "گنجاندن/ویرایش ِتصویر",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "گنجاندن/ویرایش ِFlash",
+InsertTableLbl		: "جدول",
+InsertTable			: "گنجاندن/ویرایش ِجدول",
+InsertLineLbl		: "خط",
+InsertLine			: "گنجاندن خط ِافقی",
+InsertSpecialCharLbl: "نویسهٴ ویژه",
+InsertSpecialChar	: "گنجاندن نویسهٴ ویژه",
+InsertSmileyLbl		: "خندانک",
+InsertSmiley		: "گنجاندن خندانک",
+About				: "دربارهٴ FCKeditor",
+Bold				: "درشت",
+Italic				: "خمیده",
+Underline			: "خط‌زیردار",
+StrikeThrough		: "میان‌خط",
+Subscript			: "زیرنویس",
+Superscript			: "بالانویس",
+LeftJustify			: "چپ‌چین",
+CenterJustify		: "میان‌چین",
+RightJustify		: "راست‌چین",
+BlockJustify		: "بلوک‌چین",
+DecreaseIndent		: "کاهش تورفتگی",
+IncreaseIndent		: "افزایش تورفتگی",
+Undo				: "واچیدن",
+Redo				: "بازچیدن",
+NumberedListLbl		: "فهرست شماره‌دار",
+NumberedList		: "گنجاندن/برداشتن فهرست شماره‌دار",
+BulletedListLbl		: "فهرست نقطه‌ای",
+BulletedList		: "گنجاندن/برداشتن فهرست نقطه‌ای",
+ShowTableBorders	: "نمایش لبهٴ جدول",
+ShowDetails			: "نمایش جزئیات",
+Style				: "سبک",
+FontFormat			: "فرمت",
+Font				: "قلم",
+FontSize			: "اندازه",
+TextColor			: "رنگ متن",
+BGColor				: "رنگ پس‌زمینه",
+Source				: "منبع",
+Find				: "جستجو",
+Replace				: "جایگزینی",
+SpellCheck			: "بررسی املا",
+UniversalKeyboard	: "صفحه‌کلید جهانی",
+PageBreakLbl		: "شکستگی ِپایان ِبرگه",
+PageBreak			: "گنجاندن شکستگی ِپایان ِبرگه",
+
+Form			: "فرم",
+Checkbox		: "خانهٴ گزینه‌ای",
+RadioButton		: "دکمهٴ رادیویی",
+TextField		: "فیلد متنی",
+Textarea		: "ناحیهٴ متنی",
+HiddenField		: "فیلد پنهان",
+Button			: "دکمه",
+SelectionField	: "فیلد چندگزینه‌ای",
+ImageButton		: "دکمهٴ تصویری",
+
+FitWindow		: "بیشینه‌سازی ِاندازهٴ ویرایشگر",
+
+// Context Menu
+EditLink			: "ویرایش پیوند",
+CellCM				: "سلول",
+RowCM				: "سطر",
+ColumnCM			: "ستون",
+InsertRow			: "گنجاندن سطر",
+DeleteRows			: "حذف سطرها",
+InsertColumn		: "گنجاندن ستون",
+DeleteColumns		: "حذف ستونها",
+InsertCell			: "گنجاندن سلول",
+DeleteCells			: "حذف سلولها",
+MergeCells			: "ادغام سلولها",
+SplitCell			: "جداسازی سلول",
+TableDelete			: "پاک‌کردن جدول",
+CellProperties		: "ویژگیهای سلول",
+TableProperties		: "ویژگیهای جدول",
+ImageProperties		: "ویژگیهای تصویر",
+FlashProperties		: "ویژگیهای Flash",
+
+AnchorProp			: "ویژگیهای لنگر",
+ButtonProp			: "ویژگیهای دکمه",
+CheckboxProp		: "ویژگیهای خانهٴ گزینه‌ای",
+HiddenFieldProp		: "ویژگیهای فیلد پنهان",
+RadioButtonProp		: "ویژگیهای دکمهٴ رادیویی",
+ImageButtonProp		: "ویژگیهای دکمهٴ تصویری",
+TextFieldProp		: "ویژگیهای فیلد متنی",
+SelectionFieldProp	: "ویژگیهای فیلد چندگزینه‌ای",
+TextareaProp		: "ویژگیهای ناحیهٴ متنی",
+FormProp			: "ویژگیهای فرم",
+
+FontFormats			: "نرمال;فرمت‌شده;آدرس;سرنویس 1;سرنویس 2;سرنویس 3;سرنویس 4;سرنویس 5;سرنویس 6;بند;(DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "پردازش XHTML. لطفا صبر کنید...",
+Done				: "انجام شد",
+PasteWordConfirm	: "کپی شده است. آیا می‌خواهید قبل از چسباندن آن را پاک‌سازی کنید؟ Word متنی که می‌خواهید بچسبانید به نظر می‌رسد از",
+NotCompatiblePaste	: "این فرمان برای مرورگر Internet Explorer از نگارش 5.5 یا بالاتر در دسترس است. آیا می‌خواهید بدون پاک‌سازی، متن را بچسبانید؟",
+UnknownToolbarItem	: "فقرهٴ نوارابزار ناشناخته \"%1\"",
+UnknownCommand		: "نام دستور ناشناخته \"%1\"",
+NotImplemented		: "دستور پیاده‌سازی‌نشده",
+UnknownToolbarSet	: "مجموعهٴ نوارابزار \"%1\" وجود ندارد",
+NoActiveX			: "تنظیمات امنیتی مرورگر شما ممکن است در بعضی از ویژگیهای مرورگر محدودیت ایجاد کند. شما باید گزینهٴ \"Run ActiveX controls and plug-ins\" را فعال کنید. ممکن است شما با خطاهایی روبرو باشید و متوجه کمبود ویژگیهایی شوید.",
+BrowseServerBlocked : "توانایی بازگشایی مرورگر منابع فراهم نیست. اطمینان حاصل کنید که تمامی برنامه‌های پیشگیری از نمایش popup را از کار بازداشته‌اید.",
+DialogBlocked		: "توانایی بازگشایی پنجرهٴ کوچک ِگفتگو فراهم نیست. اطمینان حاصل کنید که تمامی برنامه‌های پیشگیری از نمایش popup را از کار بازداشته‌اید.",
+
+// Dialogs
+DlgBtnOK			: "پذیرش",
+DlgBtnCancel		: "انصراف",
+DlgBtnClose			: "بستن",
+DlgBtnBrowseServer	: "فهرست‌نمایی سرور",
+DlgAdvancedTag		: "پیشرفته",
+DlgOpOther			: "<غیره>",
+DlgInfoTab			: "اطلاعات",
+DlgAlertUrl			: "لطفاً URL را بنویسید",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<تعین‌نشده>",
+DlgGenId			: "شناسه",
+DlgGenLangDir		: "جهت‌نمای زبان",
+DlgGenLangDirLtr	: "چپ به راست (LTR)",
+DlgGenLangDirRtl	: "راست به چپ (RTL)",
+DlgGenLangCode		: "کد زبان",
+DlgGenAccessKey		: "کلید دستیابی",
+DlgGenName			: "نام",
+DlgGenTabIndex		: "نمایهٴ دسترسی با Tab",
+DlgGenLongDescr		: "URL توصیف طولانی",
+DlgGenClass			: "کلاسهای شیوه‌نامه(Stylesheet)",
+DlgGenTitle			: "عنوان کمکی",
+DlgGenContType		: "نوع محتوای کمکی",
+DlgGenLinkCharset	: "نویسه‌گان منبع ِپیوندشده",
+DlgGenStyle			: "شیوه(style)",
+
+// Image Dialog
+DlgImgTitle			: "ویژگیهای تصویر",
+DlgImgInfoTab		: "اطلاعات تصویر",
+DlgImgBtnUpload		: "به سرور بفرست",
+DlgImgURL			: "URL",
+DlgImgUpload		: "انتقال به سرور",
+DlgImgAlt			: "متن جایگزین",
+DlgImgWidth			: "پهنا",
+DlgImgHeight		: "درازا",
+DlgImgLockRatio		: "قفل‌کردن ِنسبت",
+DlgBtnResetSize		: "بازنشانی اندازه",
+DlgImgBorder		: "لبه",
+DlgImgHSpace		: "فاصلهٴ افقی",
+DlgImgVSpace		: "فاصلهٴ عمودی",
+DlgImgAlign			: "چینش",
+DlgImgAlignLeft		: "چپ",
+DlgImgAlignAbsBottom: "پائین مطلق",
+DlgImgAlignAbsMiddle: "وسط مطلق",
+DlgImgAlignBaseline	: "خط‌پایه",
+DlgImgAlignBottom	: "پائین",
+DlgImgAlignMiddle	: "وسط",
+DlgImgAlignRight	: "راست",
+DlgImgAlignTextTop	: "متن بالا",
+DlgImgAlignTop		: "بالا",
+DlgImgPreview		: "پیش‌نمایش",
+DlgImgAlertUrl		: "لطفا URL تصویر را بنویسید",
+DlgImgLinkTab		: "پیوند",
+
+// Flash Dialog
+DlgFlashTitle		: "ویژگیهای Flash",
+DlgFlashChkPlay		: "آغاز ِخودکار",
+DlgFlashChkLoop		: "اجرای پیاپی",
+DlgFlashChkMenu		: "دردسترس‌بودن منوی Flash",
+DlgFlashScale		: "مقیاس",
+DlgFlashScaleAll	: "نمایش همه",
+DlgFlashScaleNoBorder	: "بدون کران",
+DlgFlashScaleFit	: "جایگیری کامل",
+
+// Link Dialog
+DlgLnkWindowTitle	: "پیوند",
+DlgLnkInfoTab		: "اطلاعات پیوند",
+DlgLnkTargetTab		: "مقصد",
+
+DlgLnkType			: "نوع پیوند",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "لنگر در همین صفحه",
+DlgLnkTypeEMail		: "پست الکترونیکی",
+DlgLnkProto			: "پروتکل",
+DlgLnkProtoOther	: "<دیگر>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "یک لنگر برگزینید",
+DlgLnkAnchorByName	: "با نام لنگر",
+DlgLnkAnchorById	: "با شناسهٴ المان",
+DlgLnkNoAnchors		: "<در این سند لنگری دردسترس نیست>",
+DlgLnkEMail			: "نشانی پست الکترونیکی",
+DlgLnkEMailSubject	: "موضوع پیام",
+DlgLnkEMailBody		: "متن پیام",
+DlgLnkUpload		: "انتقال به سرور",
+DlgLnkBtnUpload		: "به سرور بفرست",
+
+DlgLnkTarget		: "مقصد",
+DlgLnkTargetFrame	: "<فریم>",
+DlgLnkTargetPopup	: "<پنجرهٴ پاپاپ>",
+DlgLnkTargetBlank	: "پنجرهٴ دیگر (_blank)",
+DlgLnkTargetParent	: "پنجرهٴ والد (_parent)",
+DlgLnkTargetSelf	: "همان پنجره (_self)",
+DlgLnkTargetTop		: "بالاترین پنجره (_top)",
+DlgLnkTargetFrameName	: "نام فریم مقصد",
+DlgLnkPopWinName	: "نام پنجرهٴ پاپاپ",
+DlgLnkPopWinFeat	: "ویژگیهای پنجرهٴ پاپاپ",
+DlgLnkPopResize		: "قابل تغیر اندازه",
+DlgLnkPopLocation	: "نوار موقعیت",
+DlgLnkPopMenu		: "نوار منو",
+DlgLnkPopScroll		: "میله‌های پیمایش",
+DlgLnkPopStatus		: "نوار وضعیت",
+DlgLnkPopToolbar	: "نوارابزار",
+DlgLnkPopFullScrn	: "تمام‌صفحه (IE)",
+DlgLnkPopDependent	: "وابسته (Netscape)",
+DlgLnkPopWidth		: "پهنا",
+DlgLnkPopHeight		: "درازا",
+DlgLnkPopLeft		: "موقعیت ِچپ",
+DlgLnkPopTop		: "موقعیت ِبالا",
+
+DlnLnkMsgNoUrl		: "لطفا URL پیوند را بنویسید",
+DlnLnkMsgNoEMail	: "لطفا نشانی پست الکترونیکی را بنویسید",
+DlnLnkMsgNoAnchor	: "لطفا لنگری را برگزینید",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "گزینش رنگ",
+DlgColorBtnClear	: "پاک‌کردن",
+DlgColorHighlight	: "نمونه",
+DlgColorSelected	: "برگزیده",
+
+// Smiley Dialog
+DlgSmileyTitle		: "گنجاندن خندانک",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "گزینش نویسهٴ‌ویژه",
+
+// Table Dialog
+DlgTableTitle		: "ویژگیهای جدول",
+DlgTableRows		: "سطرها",
+DlgTableColumns		: "ستونها",
+DlgTableBorder		: "اندازهٴ لبه",
+DlgTableAlign		: "چینش",
+DlgTableAlignNotSet	: "<تعین‌نشده>",
+DlgTableAlignLeft	: "چپ",
+DlgTableAlignCenter	: "وسط",
+DlgTableAlignRight	: "راست",
+DlgTableWidth		: "پهنا",
+DlgTableWidthPx		: "پیکسل",
+DlgTableWidthPc		: "درصد",
+DlgTableHeight		: "درازا",
+DlgTableCellSpace	: "فاصلهٴ میان سلولها",
+DlgTableCellPad		: "فاصلهٴ پرشده در سلول",
+DlgTableCaption		: "عنوان",
+DlgTableSummary		: "خلاصه",
+
+// Table Cell Dialog
+DlgCellTitle		: "ویژگیهای سلول",
+DlgCellWidth		: "پهنا",
+DlgCellWidthPx		: "پیکسل",
+DlgCellWidthPc		: "درصد",
+DlgCellHeight		: "درازا",
+DlgCellWordWrap		: "شکستن واژه‌ها",
+DlgCellWordWrapNotSet	: "<تعین‌نشده>",
+DlgCellWordWrapYes	: "بله",
+DlgCellWordWrapNo	: "خیر",
+DlgCellHorAlign		: "چینش ِافقی",
+DlgCellHorAlignNotSet	: "<تعین‌نشده>",
+DlgCellHorAlignLeft	: "چپ",
+DlgCellHorAlignCenter	: "وسط",
+DlgCellHorAlignRight: "راست",
+DlgCellVerAlign		: "چینش ِعمودی",
+DlgCellVerAlignNotSet	: "<تعین‌نشده>",
+DlgCellVerAlignTop	: "بالا",
+DlgCellVerAlignMiddle	: "میان",
+DlgCellVerAlignBottom	: "پائین",
+DlgCellVerAlignBaseline	: "خط‌پایه",
+DlgCellRowSpan		: "گستردگی سطرها",
+DlgCellCollSpan		: "گستردگی ستونها",
+DlgCellBackColor	: "رنگ پس‌زمینه",
+DlgCellBorderColor	: "رنگ لبه",
+DlgCellBtnSelect	: "برگزینید...",
+
+// Find Dialog
+DlgFindTitle		: "یافتن",
+DlgFindFindBtn		: "یافتن",
+DlgFindNotFoundMsg	: "متن موردنظر یافت نشد.",
+
+// Replace Dialog
+DlgReplaceTitle			: "جایگزینی",
+DlgReplaceFindLbl		: "چه‌چیز را می‌یابید:",
+DlgReplaceReplaceLbl	: "جایگزینی با:",
+DlgReplaceCaseChk		: "همسانی در بزرگی و کوچکی نویسه‌ها",
+DlgReplaceReplaceBtn	: "جایگزینی",
+DlgReplaceReplAllBtn	: "جایگزینی همهٴ یافته‌ها",
+DlgReplaceWordChk		: "همسانی با واژهٴ کامل",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "تنظیمات امنیتی مرورگر شما اجازه نمی‌دهد که ویرایشگر به طور خودکار عملکردهای چسباندن را انجام دهد. لطفا با دکمه‌های صفحه‌کلید این کار را انجام دهید (Ctrl+V).",
+PasteErrorCut	: "تنظیمات امنیتی مرورگر شما اجازه نمی‌دهد که ویرایشگر به طور خودکار عملکردهای برش را انجام دهد. لطفا با دکمه‌های صفحه‌کلید این کار را انجام دهید (Ctrl+X).",
+PasteErrorCopy	: "تنظیمات امنیتی مرورگر شما اجازه نمی‌دهد که ویرایشگر به طور خودکار عملکردهای کپی‌کردن را انجام دهد. لطفا با دکمه‌های صفحه‌کلید این کار را انجام دهید (Ctrl+C).",
+
+PasteAsText		: "چسباندن به عنوان متن ِساده",
+PasteFromWord	: "چسباندن از Word",
+
+DlgPasteMsg2	: "لطفا متن را با کلیدهای (<STRONG>Ctrl+V</STRONG>) در این جعبهٴ متنی بچسبانید و <STRONG>پذیرش</STRONG> را بزنید.",
+DlgPasteIgnoreFont		: "چشم‌پوشی از تعاریف نوع قلم",
+DlgPasteRemoveStyles	: "چشم‌پوشی از تعاریف سبک (style)",
+DlgPasteCleanBox		: "پاک‌کردن ناحیه",
+
+// Color Picker
+ColorAutomatic	: "خودکار",
+ColorMoreColors	: "رنگهای بیشتر...",
+
+// Document Properties
+DocProps		: "ویژگیهای سند",
+
+// Anchor Dialog
+DlgAnchorTitle		: "ویژگیهای لنگر",
+DlgAnchorName		: "نام لنگر",
+DlgAnchorErrorName	: "لطفا نام لنگر را بنویسید",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "در واژه‌نامه موجود نیست",
+DlgSpellChangeTo		: "تغیر به",
+DlgSpellBtnIgnore		: "چشم‌پوشی",
+DlgSpellBtnIgnoreAll	: "چشم‌پوشی همه",
+DlgSpellBtnReplace		: "جایگزینی",
+DlgSpellBtnReplaceAll	: "جایگزینی همه",
+DlgSpellBtnUndo			: "واچینش",
+DlgSpellNoSuggestions	: "- پیشنهادی نیست -",
+DlgSpellProgress		: "بررسی املا در حال انجام...",
+DlgSpellNoMispell		: "بررسی املا انجام شد. هیچ غلط‌املائی یافت نشد",
+DlgSpellNoChanges		: "بررسی املا انجام شد. هیچ واژه‌ای تغیر نیافت",
+DlgSpellOneChange		: "بررسی املا انجام شد. یک واژه تغیر یافت",
+DlgSpellManyChanges		: "بررسی املا انجام شد. %1 واژه تغیر یافت",
+
+IeSpellDownload			: "بررسی‌کنندهٴ املا نصب نشده است. آیا می‌خواهید آن را هم‌اکنون دریافت کنید؟",
+
+// Button Dialog
+DlgButtonText		: "متن (مقدار)",
+DlgButtonType		: "نوع",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "نام",
+DlgCheckboxValue	: "مقدار",
+DlgCheckboxSelected	: "برگزیده",
+
+// Form Dialog
+DlgFormName		: "نام",
+DlgFormAction	: "اقدام",
+DlgFormMethod	: "متد",
+
+// Select Field Dialog
+DlgSelectName		: "نام",
+DlgSelectValue		: "مقدار",
+DlgSelectSize		: "اندازه",
+DlgSelectLines		: "خطوط",
+DlgSelectChkMulti	: "گزینش چندگانه فراهم باشد",
+DlgSelectOpAvail	: "گزینه‌های موجود",
+DlgSelectOpText		: "متن",
+DlgSelectOpValue	: "مقدار",
+DlgSelectBtnAdd		: "اضافه",
+DlgSelectBtnModify	: "ویرایش",
+DlgSelectBtnUp		: "بالا",
+DlgSelectBtnDown	: "پائین",
+DlgSelectBtnSetValue : "تنظیم به عنوان مقدار ِبرگزیده",
+DlgSelectBtnDelete	: "حذف",
+
+// Textarea Dialog
+DlgTextareaName	: "نام",
+DlgTextareaCols	: "ستونها",
+DlgTextareaRows	: "سطرها",
+
+// Text Field Dialog
+DlgTextName			: "نام",
+DlgTextValue		: "مقدار",
+DlgTextCharWidth	: "پهنای نویسه",
+DlgTextMaxChars		: "بیشینهٴ نویسه‌ها",
+DlgTextType			: "نوع",
+DlgTextTypeText		: "متن",
+DlgTextTypePass		: "گذرواژه",
+
+// Hidden Field Dialog
+DlgHiddenName	: "نام",
+DlgHiddenValue	: "مقدار",
+
+// Bulleted List Dialog
+BulletedListProp	: "ویژگیهای فهرست نقطه‌ای",
+NumberedListProp	: "ویژگیهای فهرست شماره‌دار",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "نوع",
+DlgLstTypeCircle	: "دایره",
+DlgLstTypeDisc		: "قرص",
+DlgLstTypeSquare	: "چهارگوش",
+DlgLstTypeNumbers	: "شماره‌ها (1، 2، 3)",
+DlgLstTypeLCase		: "نویسه‌های کوچک (a، b، c)",
+DlgLstTypeUCase		: "نویسه‌های بزرگ (A، B، C)",
+DlgLstTypeSRoman	: "شمارگان رومی کوچک (i، ii، iii)",
+DlgLstTypeLRoman	: "شمارگان رومی بزرگ (I، II، III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "عمومی",
+DlgDocBackTab		: "پس‌زمینه",
+DlgDocColorsTab		: "رنگها و حاشیه‌ها",
+DlgDocMetaTab		: "فراداده",
+
+DlgDocPageTitle		: "عنوان صفحه",
+DlgDocLangDir		: "جهت زبان",
+DlgDocLangDirLTR	: "چپ به راست (LTR(",
+DlgDocLangDirRTL	: "راست به چپ (RTL(",
+DlgDocLangCode		: "کد زبان",
+DlgDocCharSet		: "رمزگذاری نویسه‌گان",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "رمزگذاری نویسه‌گان دیگر",
+
+DlgDocDocType		: "عنوان نوع سند",
+DlgDocDocTypeOther	: "عنوان نوع سند دیگر",
+DlgDocIncXHTML		: "شامل تعاریف XHTML",
+DlgDocBgColor		: "رنگ پس‌زمینه",
+DlgDocBgImage		: "URL تصویر پس‌زمینه",
+DlgDocBgNoScroll	: "پس‌زمینهٴ پیمایش‌ناپذیر",
+DlgDocCText			: "متن",
+DlgDocCLink			: "پیوند",
+DlgDocCVisited		: "پیوند مشاهده‌شده",
+DlgDocCActive		: "پیوند فعال",
+DlgDocMargins		: "حاشیه‌های صفحه",
+DlgDocMaTop			: "بالا",
+DlgDocMaLeft		: "چپ",
+DlgDocMaRight		: "راست",
+DlgDocMaBottom		: "پایین",
+DlgDocMeIndex		: "کلیدواژگان نمایه‌گذاری سند (با کاما جدا شوند)",
+DlgDocMeDescr		: "توصیف سند",
+DlgDocMeAuthor		: "نویسنده",
+DlgDocMeCopy		: "کپی‌رایت",
+DlgDocPreview		: "پیش‌نمایش",
+
+// Templates Dialog
+Templates			: "الگوها",
+DlgTemplatesTitle	: "الگوهای محتویات",
+DlgTemplatesSelMsg	: "لطفا الگوی موردنظر را برای بازکردن در ویرایشگر برگزینید<br>(محتویات اصلی از دست خواهند رفت):",
+DlgTemplatesLoading	: "بارگذاری فهرست الگوها. لطفا صبر کنید...",
+DlgTemplatesNoTpl	: "(الگوئی تعریف نشده است)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "درباره",
+DlgAboutBrowserInfoTab	: "اطلاعات مرورگر",
+DlgAboutLicenseTab	: "گواهینامه",
+DlgAboutVersion		: "نگارش",
+DlgAboutLicense		: "لیسانس برپایهٴبندهای آیین‌نامهٴ GNU Lesser General Public License",
+DlgAboutInfo		: "برای آگاهی بیشتر به این نشانی بروید"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/bg.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/bg.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/bg.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: bg.js
+ * 	Bulgarian language file.
+ * 
+ * File Authors:
+ * 		Miroslav Ivanov (miro@primal-chaos.net)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Скрий панела с инструментите",
+ToolbarExpand		: "Покажи панела с инструментите",
+
+// Toolbar Items and Context Menu
+Save				: "Запази",
+NewPage				: "Нова страница",
+Preview				: "Предварителен изглед",
+Cut					: "Изрежи",
+Copy				: "Запамети",
+Paste				: "Вмъкни",
+PasteText			: "Вмъкни само текст",
+PasteWord			: "Вмъкни от MS Word",
+Print				: "Печат",
+SelectAll			: "Селектирай всичко",
+RemoveFormat		: "Изтрий форматирането",
+InsertLinkLbl		: "Връзка",
+InsertLink			: "Добави/Редактирай връзка",
+RemoveLink			: "Изтрий връзка",
+Anchor				: "Добави/Редактирай котва",
+InsertImageLbl		: "Изображение",
+InsertImage			: "Добави/Редактирай изображение",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Добави/Редактиай Flash обект",
+InsertTableLbl		: "Таблица",
+InsertTable			: "Добави/Редактирай таблица",
+InsertLineLbl		: "Линия",
+InsertLine			: "Вмъкни хоризонтална линия",
+InsertSpecialCharLbl: "Специален символ",
+InsertSpecialChar	: "Вмъкни специален символ",
+InsertSmileyLbl		: "Усмивка",
+InsertSmiley		: "Добави усмивка",
+About				: "За FCKeditor",
+Bold				: "Удебелен",
+Italic				: "Курсив",
+Underline			: "Подчертан",
+StrikeThrough		: "Зачертан",
+Subscript			: "Индекс за база",
+Superscript			: "Индекс за степен",
+LeftJustify			: "Подравняване в ляво",
+CenterJustify		: "Подравнявне в средата",
+RightJustify		: "Подравняване в дясно",
+BlockJustify		: "Двустранно подравняване",
+DecreaseIndent		: "Намали отстъпа",
+IncreaseIndent		: "Увеличи отстъпа",
+Undo				: "Отмени",
+Redo				: "Повтори",
+NumberedListLbl		: "Нумериран списък",
+NumberedList		: "Добави/Изтрий нумериран списък",
+BulletedListLbl		: "Ненумериран списък",
+BulletedList		: "Добави/Изтрий ненумериран списък",
+ShowTableBorders	: "Покажи рамките на таблицата",
+ShowDetails			: "Покажи подробности",
+Style				: "Стил",
+FontFormat			: "Формат",
+Font				: "Шрифт",
+FontSize			: "Размер",
+TextColor			: "Цвят на текста",
+BGColor				: "Цвят на фона",
+Source				: "Код",
+Find				: "Търси",
+Replace				: "Замести",
+SpellCheck			: "Провери правописа",
+UniversalKeyboard	: "Универсална клавиатура",
+PageBreakLbl		: "Нов ред",
+PageBreak			: "Вмъкни нов ред",
+
+Form			: "Формуляр",
+Checkbox		: "Поле за отметка",
+RadioButton		: "Поле за опция",
+TextField		: "Текстово поле",
+Textarea		: "Текстова област",
+HiddenField		: "Скрито поле",
+Button			: "Бутон",
+SelectionField	: "Падащо меню с опции",
+ImageButton		: "Бутон-изображение",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+
+// Context Menu
+EditLink			: "Редактирай връзка",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRow			: "Добави ред",
+DeleteRows			: "Изтрий редовете",
+InsertColumn		: "Добави колона",
+DeleteColumns		: "Изтрий колоните",
+InsertCell			: "Добави клетка",
+DeleteCells			: "Изтрий клетките",
+MergeCells			: "Обедини клетките",
+SplitCell			: "Раздели клетката",
+TableDelete			: "Изтрий таблицата",
+CellProperties		: "Параметри на клетката",
+TableProperties		: "Параметри на таблицата",
+ImageProperties		: "Параметри на изображението",
+FlashProperties		: "Параметри на Flash обекта",
+
+AnchorProp			: "Параметри на котвата",
+ButtonProp			: "Параметри на бутона",
+CheckboxProp		: "Параметри на полето за отметка",
+HiddenFieldProp		: "Параметри на скритото поле",
+RadioButtonProp		: "Параметри на полето за опция",
+ImageButtonProp		: "Параметри на бутона-изображение",
+TextFieldProp		: "Параметри на текстовото-поле",
+SelectionFieldProp	: "Параметри на падащото меню с опции",
+TextareaProp		: "Параметри на текстовата област",
+FormProp			: "Параметри на формуляра",
+
+FontFormats			: "Нормален;Форматиран;Адрес;Заглавие 1;Заглавие 2;Заглавие 3;Заглавие 4;Заглавие 5;Заглавие 6;Параграф (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Обработка на XHTML. Моля изчакайте...",
+Done				: "Готово",
+PasteWordConfirm	: "Текстът, който искате да вмъкнете е копиран от MS Word. Желаете ли да бъде изчистен преди вмъкването?",
+NotCompatiblePaste	: "Тази операция изисква MS Internet Explorer версия 5.5 или по-висока. Желаете ли да вмъкнете запаметеното без изчистване?",
+UnknownToolbarItem	: "Непознат инструмент \"%1\"",
+UnknownCommand		: "Непозната команда \"%1\"",
+NotImplemented		: "Командата не е имплементирана",
+UnknownToolbarSet	: "Панелът \"%1\" не съществува",
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
+
+// Dialogs
+DlgBtnOK			: "ОК",
+DlgBtnCancel		: "Отказ",
+DlgBtnClose			: "Затвори",
+DlgBtnBrowseServer	: "Разгледай сървъра",
+DlgAdvancedTag		: "Подробности...",
+DlgOpOther			: "<Друго>",
+DlgInfoTab			: "Информация",
+DlgAlertUrl			: "Моля, въведете пълния път (URL)",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<не е настроен>",
+DlgGenId			: "Идентификатор",
+DlgGenLangDir		: "посока на речта",
+DlgGenLangDirLtr	: "От ляво на дясно",
+DlgGenLangDirRtl	: "От дясно на ляво",
+DlgGenLangCode		: "Код на езика",
+DlgGenAccessKey		: "Бърз клавиш",
+DlgGenName			: "Име",
+DlgGenTabIndex		: "Ред на достъп",
+DlgGenLongDescr		: "Описание на връзката",
+DlgGenClass			: "Клас от стиловите таблици",
+DlgGenTitle			: "Препоръчително заглавие",
+DlgGenContType		: "Препоръчителен тип на съдържанието",
+DlgGenLinkCharset	: "Тип на свързания ресурс",
+DlgGenStyle			: "Стил",
+
+// Image Dialog
+DlgImgTitle			: "Параметри на изображението",
+DlgImgInfoTab		: "Информация за изображението",
+DlgImgBtnUpload		: "Прати към сървъра",
+DlgImgURL			: "Пълен път (URL)",
+DlgImgUpload		: "Качи",
+DlgImgAlt			: "Алтернативен текст",
+DlgImgWidth			: "Ширина",
+DlgImgHeight		: "Височина",
+DlgImgLockRatio		: "Запази пропорцията",
+DlgBtnResetSize		: "Възстанови размера",
+DlgImgBorder		: "Рамка",
+DlgImgHSpace		: "Хоризонтален отстъп",
+DlgImgVSpace		: "Вертикален отстъп",
+DlgImgAlign			: "Подравняване",
+DlgImgAlignLeft		: "Ляво",
+DlgImgAlignAbsBottom: "Най-долу",
+DlgImgAlignAbsMiddle: "Точно по средата",
+DlgImgAlignBaseline	: "По базовата линия",
+DlgImgAlignBottom	: "Долу",
+DlgImgAlignMiddle	: "По средата",
+DlgImgAlignRight	: "Дясно",
+DlgImgAlignTextTop	: "Върху текста",
+DlgImgAlignTop		: "Отгоре",
+DlgImgPreview		: "Изглед",
+DlgImgAlertUrl		: "Моля, въведете пълния път до изображението",
+DlgImgLinkTab		: "Връзка",
+
+// Flash Dialog
+DlgFlashTitle		: "Параметри на Flash обекта",
+DlgFlashChkPlay		: "Автоматично стартиране",
+DlgFlashChkLoop		: "Ново стартиране след завършването",
+DlgFlashChkMenu		: "Разрешено Flash меню",
+DlgFlashScale		: "Оразмеряване",
+DlgFlashScaleAll	: "Покажи целия обект",
+DlgFlashScaleNoBorder	: "Без рамка",
+DlgFlashScaleFit	: "Според мястото",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Връзка",
+DlgLnkInfoTab		: "Информация за връзката",
+DlgLnkTargetTab		: "Цел",
+
+DlgLnkType			: "Вид на връзката",
+DlgLnkTypeURL		: "Пълен път (URL)",
+DlgLnkTypeAnchor	: "Котва в текущата страница",
+DlgLnkTypeEMail		: "Е-поща",
+DlgLnkProto			: "Протокол",
+DlgLnkProtoOther	: "<друго>",
+DlgLnkURL			: "Пълен път (URL)",
+DlgLnkAnchorSel		: "Изберете котва",
+DlgLnkAnchorByName	: "По име на котвата",
+DlgLnkAnchorById	: "По идентификатор на елемент",
+DlgLnkNoAnchors		: "<Няма котви в текущия документ>",
+DlgLnkEMail			: "Адрес за е-поща",
+DlgLnkEMailSubject	: "Тема на писмото",
+DlgLnkEMailBody		: "Текст на писмото",
+DlgLnkUpload		: "Качи",
+DlgLnkBtnUpload		: "Прати на сървъра",
+
+DlgLnkTarget		: "Цел",
+DlgLnkTargetFrame	: "<рамка>",
+DlgLnkTargetPopup	: "<дъщерен прозорец>",
+DlgLnkTargetBlank	: "Нов прозорец (_blank)",
+DlgLnkTargetParent	: "Родителски прозорец (_parent)",
+DlgLnkTargetSelf	: "Активния прозорец (_self)",
+DlgLnkTargetTop		: "Целия прозорец (_top)",
+DlgLnkTargetFrameName	: "Име на целевия прозорец",
+DlgLnkPopWinName	: "Име на дъщерния прозорец",
+DlgLnkPopWinFeat	: "Параметри на дъщерния прозорец",
+DlgLnkPopResize		: "С променливи размери",
+DlgLnkPopLocation	: "Поле за адрес",
+DlgLnkPopMenu		: "Меню",
+DlgLnkPopScroll		: "Плъзгач",
+DlgLnkPopStatus		: "Поле за статус",
+DlgLnkPopToolbar	: "Панел с бутони",
+DlgLnkPopFullScrn	: "Голям екран (MS IE)",
+DlgLnkPopDependent	: "Зависим (Netscape)",
+DlgLnkPopWidth		: "Ширина",
+DlgLnkPopHeight		: "Височина",
+DlgLnkPopLeft		: "Координати - X",
+DlgLnkPopTop		: "Координати - Y",
+
+DlnLnkMsgNoUrl		: "Моля, напишете пълния път (URL)",
+DlnLnkMsgNoEMail	: "Моля, напишете адреса за е-поща",
+DlnLnkMsgNoAnchor	: "Моля, изберете котва",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Изберете цвят",
+DlgColorBtnClear	: "Изчисти",
+DlgColorHighlight	: "Текущ",
+DlgColorSelected	: "Избран",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Добави усмивка",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Изберете специален символ",
+
+// Table Dialog
+DlgTableTitle		: "Параметри на таблицата",
+DlgTableRows		: "Редове",
+DlgTableColumns		: "Колони",
+DlgTableBorder		: "Размер на рамката",
+DlgTableAlign		: "Подравняване",
+DlgTableAlignNotSet	: "<Не е избрано>",
+DlgTableAlignLeft	: "Ляво",
+DlgTableAlignCenter	: "Център",
+DlgTableAlignRight	: "Дясно",
+DlgTableWidth		: "Ширина",
+DlgTableWidthPx		: "пиксели",
+DlgTableWidthPc		: "проценти",
+DlgTableHeight		: "Височина",
+DlgTableCellSpace	: "Разстояние между клетките",
+DlgTableCellPad		: "Отстъп на съдържанието в клетките",
+DlgTableCaption		: "Заглавие",
+DlgTableSummary		: "Резюме",
+
+// Table Cell Dialog
+DlgCellTitle		: "Параметри на клетката",
+DlgCellWidth		: "Ширина",
+DlgCellWidthPx		: "пиксели",
+DlgCellWidthPc		: "проценти",
+DlgCellHeight		: "Височина",
+DlgCellWordWrap		: "пренасяне на нов ред",
+DlgCellWordWrapNotSet	: "<Не е настроено>",
+DlgCellWordWrapYes	: "Да",
+DlgCellWordWrapNo	: "не",
+DlgCellHorAlign		: "Хоризонтално подравняване",
+DlgCellHorAlignNotSet	: "<Не е настроено>",
+DlgCellHorAlignLeft	: "Ляво",
+DlgCellHorAlignCenter	: "Център",
+DlgCellHorAlignRight: "Дясно",
+DlgCellVerAlign		: "Вертикално подравняване",
+DlgCellVerAlignNotSet	: "<Не е настроено>",
+DlgCellVerAlignTop	: "Горе",
+DlgCellVerAlignMiddle	: "По средата",
+DlgCellVerAlignBottom	: "Долу",
+DlgCellVerAlignBaseline	: "По базовата линия",
+DlgCellRowSpan		: "повече от един ред",
+DlgCellCollSpan		: "повече от една колона",
+DlgCellBackColor	: "фонов цвят",
+DlgCellBorderColor	: "цвят на рамката",
+DlgCellBtnSelect	: "Изберете...",
+
+// Find Dialog
+DlgFindTitle		: "Търси",
+DlgFindFindBtn		: "Търси",
+DlgFindNotFoundMsg	: "Указания текст не беше намерен.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Замести",
+DlgReplaceFindLbl		: "Търси:",
+DlgReplaceReplaceLbl	: "Замести с:",
+DlgReplaceCaseChk		: "Със същия регистър",
+DlgReplaceReplaceBtn	: "Замести",
+DlgReplaceReplAllBtn	: "Замести всички",
+DlgReplaceWordChk		: "Търси същата дума",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни вмъкването. За целта използвайте клавиатурата (Ctrl+V).",
+PasteErrorCut	: "Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни изрязването. За целта използвайте клавиатурата (Ctrl+X).",
+PasteErrorCopy	: "Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни запаметяването. За целта използвайте клавиатурата (Ctrl+C).",
+
+PasteAsText		: "Вмъкни като чист текст",
+PasteFromWord	: "Вмъкни от MS Word",
+
+DlgPasteMsg2	: "Вмъкнете тук съдъжанието с клавиатуарата (<STRONG>Ctrl+V</STRONG>) и натиснете <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Игнорирай шрифтовите дефиниции",
+DlgPasteRemoveStyles	: "Изтрий стиловите дефиниции",
+DlgPasteCleanBox		: "Изчисти",
+
+// Color Picker
+ColorAutomatic	: "По подразбиране",
+ColorMoreColors	: "Други цветове...",
+
+// Document Properties
+DocProps		: "Параметри на документа",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Параметри на котвата",
+DlgAnchorName		: "Име на котвата",
+DlgAnchorErrorName	: "Моля, въведете име на котвата",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Липсва в речника",
+DlgSpellChangeTo		: "Промени на",
+DlgSpellBtnIgnore		: "Игнорирай",
+DlgSpellBtnIgnoreAll	: "Игнорирай всички",
+DlgSpellBtnReplace		: "Замести",
+DlgSpellBtnReplaceAll	: "Замести всички",
+DlgSpellBtnUndo			: "Отмени",
+DlgSpellNoSuggestions	: "- Няма предложения -",
+DlgSpellProgress		: "Извършване на проверката за правопис...",
+DlgSpellNoMispell		: "Проверката за правопис завършена: не са открити правописни грешки",
+DlgSpellNoChanges		: "Проверката за правопис завършена: няма променени думи",
+DlgSpellOneChange		: "Проверката за правопис завършена: една дума е променена",
+DlgSpellManyChanges		: "Проверката за правопис завършена: %1 думи са променени",
+
+IeSpellDownload			: "Инструментът за проверка на правопис не е инсталиран. Желаете ли да го инсталирате ?",
+
+// Button Dialog
+DlgButtonText		: "Текст (Стойност)",
+DlgButtonType		: "Тип",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Име",
+DlgCheckboxValue	: "Стойност",
+DlgCheckboxSelected	: "Отметнато",
+
+// Form Dialog
+DlgFormName		: "Име",
+DlgFormAction	: "Действие",
+DlgFormMethod	: "Метод",
+
+// Select Field Dialog
+DlgSelectName		: "Име",
+DlgSelectValue		: "Стойност",
+DlgSelectSize		: "Размер",
+DlgSelectLines		: "линии",
+DlgSelectChkMulti	: "Разрешено множествено селектиране",
+DlgSelectOpAvail	: "Възможни опции",
+DlgSelectOpText		: "Текст",
+DlgSelectOpValue	: "Стойност",
+DlgSelectBtnAdd		: "Добави",
+DlgSelectBtnModify	: "Промени",
+DlgSelectBtnUp		: "Нагоре",
+DlgSelectBtnDown	: "Надолу",
+DlgSelectBtnSetValue : "Настрой като избрана стойност",
+DlgSelectBtnDelete	: "Изтрий",
+
+// Textarea Dialog
+DlgTextareaName	: "Име",
+DlgTextareaCols	: "Колони",
+DlgTextareaRows	: "Редове",
+
+// Text Field Dialog
+DlgTextName			: "Име",
+DlgTextValue		: "Стойност",
+DlgTextCharWidth	: "Ширина на символите",
+DlgTextMaxChars		: "Максимум символи",
+DlgTextType			: "Тип",
+DlgTextTypeText		: "Текст",
+DlgTextTypePass		: "Парола",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Име",
+DlgHiddenValue	: "Стойност",
+
+// Bulleted List Dialog
+BulletedListProp	: "Параметри на ненумерирания списък",
+NumberedListProp	: "Параметри на нумерирания списък",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Тип",
+DlgLstTypeCircle	: "Окръжност",
+DlgLstTypeDisc		: "Кръг",
+DlgLstTypeSquare	: "Квадрат",
+DlgLstTypeNumbers	: "Числа (1, 2, 3)",
+DlgLstTypeLCase		: "Малки букви (a, b, c)",
+DlgLstTypeUCase		: "Големи букви (A, B, C)",
+DlgLstTypeSRoman	: "Малки римски числа (i, ii, iii)",
+DlgLstTypeLRoman	: "Големи римски числа (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Общи",
+DlgDocBackTab		: "Фон",
+DlgDocColorsTab		: "Цветове и отстъпи",
+DlgDocMetaTab		: "Мета данни",
+
+DlgDocPageTitle		: "Заглавие на страницата",
+DlgDocLangDir		: "Посока на речта",
+DlgDocLangDirLTR	: "От ляво на дясно",
+DlgDocLangDirRTL	: "От дясно на ляво",
+DlgDocLangCode		: "Код на езика",
+DlgDocCharSet		: "Кодиране на символите",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Друго кодиране на символите",
+
+DlgDocDocType		: "Тип на документа",
+DlgDocDocTypeOther	: "Друг тип на документа",
+DlgDocIncXHTML		: "Включи XHTML декларация",
+DlgDocBgColor		: "Цвят на фона",
+DlgDocBgImage		: "Пълен път до фоновото изображение",
+DlgDocBgNoScroll	: "Не-повтарящо се фоново изображение",
+DlgDocCText			: "Текст",
+DlgDocCLink			: "Връзка",
+DlgDocCVisited		: "Посетена връзка",
+DlgDocCActive		: "Активна връзка",
+DlgDocMargins		: "Отстъпи на страницата",
+DlgDocMaTop			: "Горе",
+DlgDocMaLeft		: "Ляво",
+DlgDocMaRight		: "Дясно",
+DlgDocMaBottom		: "Долу",
+DlgDocMeIndex		: "Ключови думи за документа (разделени със запетаи)",
+DlgDocMeDescr		: "Описание на документа",
+DlgDocMeAuthor		: "Автор",
+DlgDocMeCopy		: "Авторски права",
+DlgDocPreview		: "Изглед",
+
+// Templates Dialog
+Templates			: "Шаблони",
+DlgTemplatesTitle	: "Шаблони",
+DlgTemplatesSelMsg	: "Изберете шаблон <br>(текущото съдържание на редактора ще бъде загубено):",
+DlgTemplatesLoading	: "Зареждане на списъка с шаблоните. Моля изчакайте...",
+DlgTemplatesNoTpl	: "(Няма дефинирани шаблони)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "За",
+DlgAboutBrowserInfoTab	: "Информация за браузъра",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "версия",
+DlgAboutLicense		: "Лиценз по условията на GNU Lesser General Public License",
+DlgAboutInfo		: "За повече информация посетете"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/de.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/de.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/de.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: de.js
+ * 	German language file.
+ * 
+ * File Authors:
+ * 		Maik Unruh (m.unruh@mm-concept.de)
+ * 		Hendrik Kramer (HK@lwd.de)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Symbolleiste einklappen",
+ToolbarExpand		: "Symbolleiste ausklappen",
+
+// Toolbar Items and Context Menu
+Save				: "Speichern",
+NewPage				: "Neue Seite",
+Preview				: "Vorschau",
+Cut					: "Ausschneiden",
+Copy				: "Kopieren",
+Paste				: "Einfügen",
+PasteText			: "aus Textdatei einfügen",
+PasteWord			: "aus MS-Word einfügen",
+Print				: "Drucken",
+SelectAll			: "Alles auswählen",
+RemoveFormat		: "Formatierungen entfernen",
+InsertLinkLbl		: "Link",
+InsertLink			: "Link einfügen/editieren",
+RemoveLink			: "Link entfernen",
+Anchor				: "Anker einfügen/editieren",
+InsertImageLbl		: "Bild",
+InsertImage			: "Bild einfügen/editieren",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Flash einfügen/editieren",
+InsertTableLbl		: "Tabelle",
+InsertTable			: "Tabelle einfügen/editieren",
+InsertLineLbl		: "Linie",
+InsertLine			: "Horizontale Linie einfügen",
+InsertSpecialCharLbl: "Sonderzeichen",
+InsertSpecialChar	: "Sonderzeichen einfügen/editieren",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Smiley einfügen",
+About				: "Über FCKeditor",
+Bold				: "Fett",
+Italic				: "Kursiv",
+Underline			: "Unterstrichen",
+StrikeThrough		: "Durchgestrichen",
+Subscript			: "Tiefgestellt",
+Superscript			: "Hochgestellt",
+LeftJustify			: "Linksbündig",
+CenterJustify		: "Zentriert",
+RightJustify		: "Rechtsbündig",
+BlockJustify		: "Blocksatz",
+DecreaseIndent		: "Einzug verringern",
+IncreaseIndent		: "Einzug erhöhen",
+Undo				: "Rückgängig",
+Redo				: "Wiederherstellen",
+NumberedListLbl		: "Nummerierte Liste",
+NumberedList		: "Nummerierte Liste einfügen/entfernen",
+BulletedListLbl		: "Liste",
+BulletedList		: "Liste einfügen/entfernen",
+ShowTableBorders	: "Zeige Tabellenrahmen",
+ShowDetails			: "Zeige Details",
+Style				: "Style",
+FontFormat			: "Format",
+Font				: "Schriftart",
+FontSize			: "Size",
+TextColor			: "Textfarbe",
+BGColor				: "Hintergrundfarbe",
+Source				: "Quellcode",
+Find				: "Finden",
+Replace				: "Ersetzen",
+SpellCheck			: "Rechtschreibprüfung",
+UniversalKeyboard	: "Universal-Tastatur",
+PageBreakLbl		: "Seitenumbruch",
+PageBreak			: "Seitenumbruch einfügen",
+
+Form			: "Formular",
+Checkbox		: "Checkbox",
+RadioButton		: "Radiobutton",
+TextField		: "Textfeld einzeilig",
+Textarea		: "Textfeld mehrzeilig",
+HiddenField		: "verstecktes Feld",
+Button			: "Klickbutton",
+SelectionField	: "Auswahlfeld",
+ImageButton		: "Bildbutton",
+
+FitWindow		: "Editor maximieren",
+
+// Context Menu
+EditLink			: "Link editieren",
+CellCM				: "Zelle",
+RowCM				: "Zeile",
+ColumnCM			: "Spalte",
+InsertRow			: "Zeile einfügen",
+DeleteRows			: "Zeile entfernen",
+InsertColumn		: "Spalte einfügen",
+DeleteColumns		: "Spalte löschen",
+InsertCell			: "Zelle einfügen",
+DeleteCells			: "Zelle löschen",
+MergeCells			: "Zellen vereinen",
+SplitCell			: "Zelle teilen",
+TableDelete			: "Tabelle löschen",
+CellProperties		: "Zellen Eigenschaften",
+TableProperties		: "Tabellen Eigenschaften",
+ImageProperties		: "Bild Eigenschaften",
+FlashProperties		: "Flash Eigenschaften",
+
+AnchorProp			: "Anker Eigenschaften",
+ButtonProp			: "Button Eigenschaften",
+CheckboxProp		: "Checkbox Eigenschaften",
+HiddenFieldProp		: "Verstecktes Feld Eigenschaften",
+RadioButtonProp		: "Optionsfeld Eigenschaften",
+ImageButtonProp		: "Bildbutton Eigenschaften",
+TextFieldProp		: "Textfeld (einzeilig) Eigenschaften",
+SelectionFieldProp	: "Auswahlfeld Eigenschaften",
+TextareaProp		: "Textfeld (mehrzeilig) Eigenschaften",
+FormProp			: "Formular Eigenschaften",
+
+FontFormats			: "Normal;Formatiert;Addresse;Überschrift 1;Überschrift 2;Überschrift 3;Überschrift 4;Überschrift 5;Überschrift 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Bearbeite XHTML. Bitte warten...",
+Done				: "Fertig",
+PasteWordConfirm	: "Der Text, den Sie einfügen möchten, scheint aus MS-Word kopiert zu sein. Möchten Sie ihn zuvor bereinigen lassen?",
+NotCompatiblePaste	: "Diese Funktion steht nur im Internet Explorer ab Version 5.5 zur Verfügung. Möchten Sie den Text unbereinigt einfügen?",
+UnknownToolbarItem	: "Unbekanntes Menüleisten-Objekt \"%1\"",
+UnknownCommand		: "Unbekannter Befehl \"%1\"",
+NotImplemented		: "Befehl nicht implementiert",
+UnknownToolbarSet	: "Menüleiste \"%1\" existiert nicht",
+NoActiveX			: "Die Sicherheitseinstellungen Ihres Browsers beschränken evtl. einige Funktionen des Editors. Aktivieren Sie die Option \"ActiveX-Steuerelemente und Plugins ausführen\" in den Sicherheitseinstellungen, um diese Funktionen nutzen zu können",
+BrowseServerBlocked : "Ein Auswahlfenster konnte nicht geöffnet werden. Stellen Sie sicher, das alle Popup-Blocker ausgeschaltet sind.",
+DialogBlocked		: "Das Dialog-Fenster konnte nicht geöffnet werden. Stellen Sie sicher, das alle Popup-Blocker ausgeschaltet sind.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Abbrechen",
+DlgBtnClose			: "Schließen",
+DlgBtnBrowseServer	: "Server durchsuchen",
+DlgAdvancedTag		: "Erweitert",
+DlgOpOther			: "<andere>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Bitte tragen Sie die URL ein",
+
+// General Dialogs Labels
+DlgGenNotSet		: "< nichts >",
+DlgGenId			: "ID",
+DlgGenLangDir		: "Schreibrichtung",
+DlgGenLangDirLtr	: "Links nach Rechts (LTR)",
+DlgGenLangDirRtl	: "Rechts nach Links (RTL)",
+DlgGenLangCode		: "Sprachenkürzel",
+DlgGenAccessKey		: "Schlüssel",
+DlgGenName			: "Name",
+DlgGenTabIndex		: "Tab Index",
+DlgGenLongDescr		: "Langform URL",
+DlgGenClass			: "Stylesheet Klasse",
+DlgGenTitle			: "Titel Beschreibung",
+DlgGenContType		: "Content Beschreibung",
+DlgGenLinkCharset	: "Ziel-Zeichensatz",
+DlgGenStyle			: "Style",
+
+// Image Dialog
+DlgImgTitle			: "Bild Eigenschaften",
+DlgImgInfoTab		: "Bild-Info",
+DlgImgBtnUpload		: "Zum Server senden",
+DlgImgURL			: "Bildauswahl",
+DlgImgUpload		: "Upload",
+DlgImgAlt			: "Alternativer Text",
+DlgImgWidth			: "Breite",
+DlgImgHeight		: "Höhe",
+DlgImgLockRatio		: "Größenverhältniss beibehalten",
+DlgBtnResetSize		: "Größe zurücksetzen",
+DlgImgBorder		: "Rahmen",
+DlgImgHSpace		: "H-Abstand",
+DlgImgVSpace		: "V-Abstand",
+DlgImgAlign			: "Ausrichtung",
+DlgImgAlignLeft		: "Links",
+DlgImgAlignAbsBottom: "Abs Unten",
+DlgImgAlignAbsMiddle: "Abs Mitte",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Unten",
+DlgImgAlignMiddle	: "Mitte",
+DlgImgAlignRight	: "Rechts",
+DlgImgAlignTextTop	: "Text Oben",
+DlgImgAlignTop		: "Oben",
+DlgImgPreview		: "Vorschau",
+DlgImgAlertUrl		: "Bitte geben Sie die Bild-URL an",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Eigenschaften",
+DlgFlashChkPlay		: "autom. Abspielen",
+DlgFlashChkLoop		: "Endlosschleife",
+DlgFlashChkMenu		: "Flash-Menü aktivieren",
+DlgFlashScale		: "Skalierung",
+DlgFlashScaleAll	: "Alles anzeigen",
+DlgFlashScaleNoBorder	: "ohne Rand",
+DlgFlashScaleFit	: "Passgenau",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Link Info",
+DlgLnkTargetTab		: "Zielseite",
+
+DlgLnkType			: "Link-Typ",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Anker in dieser Seite",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protokoll",
+DlgLnkProtoOther	: "<anderes>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Anker auswählen",
+DlgLnkAnchorByName	: "nach Anker Name",
+DlgLnkAnchorById	: "nach Element Id",
+DlgLnkNoAnchors		: "<keine Anker im Dokument vorhanden>",
+DlgLnkEMail			: "E-Mail Addresse",
+DlgLnkEMailSubject	: "Betreffzeile",
+DlgLnkEMailBody		: "Nachrichtentext",
+DlgLnkUpload		: "Upload",
+DlgLnkBtnUpload		: "Zum Server senden",
+
+DlgLnkTarget		: "Zielseite",
+DlgLnkTargetFrame	: "<Frame>",
+DlgLnkTargetPopup	: "<Pop-up Fenster>",
+DlgLnkTargetBlank	: "Neues Fenster (_blank)",
+DlgLnkTargetParent	: "Oberes Fenster (_parent)",
+DlgLnkTargetSelf	: "Gleiches Fenster (_self)",
+DlgLnkTargetTop		: "Oberstes Fenster (_top)",
+DlgLnkTargetFrameName	: "Ziel-Fenster Name",
+DlgLnkPopWinName	: "Pop-up Fenster Name",
+DlgLnkPopWinFeat	: "Pop-up Fenster Eigenschaften",
+DlgLnkPopResize		: "Vergrößerbar",
+DlgLnkPopLocation	: "Adress-Leiste",
+DlgLnkPopMenu		: "Menü-Leiste",
+DlgLnkPopScroll		: "Rollbalken",
+DlgLnkPopStatus		: "Statusleiste",
+DlgLnkPopToolbar	: "Werkzeugleiste",
+DlgLnkPopFullScrn	: "Vollbild (IE)",
+DlgLnkPopDependent	: "Abhängig (Netscape)",
+DlgLnkPopWidth		: "Breite",
+DlgLnkPopHeight		: "Höhe",
+DlgLnkPopLeft		: "Linke Position",
+DlgLnkPopTop		: "Obere Position",
+
+DlnLnkMsgNoUrl		: "Bitte geben Sie die Link-URL an",
+DlnLnkMsgNoEMail	: "Bitte geben Sie e-Mail Adresse an",
+DlnLnkMsgNoAnchor	: "Bitte wählen Sie einen Anker aus",
+DlnLnkMsgInvPopName	: "Der Name des Popups muss mit einem Buchstaben beginnen und darf keine Leerzeichen enthalten",
+
+// Color Dialog
+DlgColorTitle		: "Farbauswahl",
+DlgColorBtnClear	: "Keine Farbe",
+DlgColorHighlight	: "Vorschau",
+DlgColorSelected	: "Ausgewählt",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Smiley auswählen",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Sonderzeichen auswählen",
+
+// Table Dialog
+DlgTableTitle		: "Tabellen Eigenschaften",
+DlgTableRows		: "Zeile",
+DlgTableColumns		: "Spalte",
+DlgTableBorder		: "Rahmen",
+DlgTableAlign		: "Ausrichtung",
+DlgTableAlignNotSet	: "<nichts>",
+DlgTableAlignLeft	: "Links",
+DlgTableAlignCenter	: "Zentriert",
+DlgTableAlignRight	: "Rechts",
+DlgTableWidth		: "Breite",
+DlgTableWidthPx		: "Pixel",
+DlgTableWidthPc		: "%",
+DlgTableHeight		: "Höhe",
+DlgTableCellSpace	: "Zellenabstand außen",
+DlgTableCellPad		: "Zellenabstand innen",
+DlgTableCaption		: "Überschrift",
+DlgTableSummary		: "Inhaltsübersicht",
+
+// Table Cell Dialog
+DlgCellTitle		: "Zellen-Eigenschaften",
+DlgCellWidth		: "Breite",
+DlgCellWidthPx		: "Pixel",
+DlgCellWidthPc		: "%",
+DlgCellHeight		: "Höhe",
+DlgCellWordWrap		: "Umbruch",
+DlgCellWordWrapNotSet	: "<nichts>",
+DlgCellWordWrapYes	: "Ja",
+DlgCellWordWrapNo	: "Nein",
+DlgCellHorAlign		: "Horizontale Ausrichtung",
+DlgCellHorAlignNotSet	: "<nichts>",
+DlgCellHorAlignLeft	: "Links",
+DlgCellHorAlignCenter	: "Zentriert",
+DlgCellHorAlignRight: "Rechts",
+DlgCellVerAlign		: "Vertikale Ausrichtung",
+DlgCellVerAlignNotSet	: "<nichts>",
+DlgCellVerAlignTop	: "Oben",
+DlgCellVerAlignMiddle	: "Mitte",
+DlgCellVerAlignBottom	: "Unten",
+DlgCellVerAlignBaseline	: "Grundlinie",
+DlgCellRowSpan		: "Zeilen zusammenfassen",
+DlgCellCollSpan		: "Spalten zusammenfassen",
+DlgCellBackColor	: "Hintergrundfarbe",
+DlgCellBorderColor	: "Rahmenfarbe",
+DlgCellBtnSelect	: "Auswahl...",
+
+// Find Dialog
+DlgFindTitle		: "Finden",
+DlgFindFindBtn		: "Finden",
+DlgFindNotFoundMsg	: "Der gesuchte Text wurde nicht gefunden.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Ersetzen",
+DlgReplaceFindLbl		: "Suche nach:",
+DlgReplaceReplaceLbl	: "Ersetze mit:",
+DlgReplaceCaseChk		: "Groß-Kleinschreibung beachten",
+DlgReplaceReplaceBtn	: "Ersetzen",
+DlgReplaceReplAllBtn	: "Alle Ersetzen",
+DlgReplaceWordChk		: "Nur ganze Worte suchen",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch einzufügen. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren) und STRG-V (einfügen).",
+PasteErrorCut	: "Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).",
+PasteErrorCopy	: "Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).",
+
+PasteAsText		: "Als Text einfügen",
+PasteFromWord	: "Aus Word einfügen",
+
+DlgPasteMsg2	: "Bitte fügen Sie den Text in der folgenden Box über die Tastatur (mit <STRONG>Ctrl+V</STRONG>) ein und bestätigen Sie mit <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignoriere Schriftart-Definitionen",
+DlgPasteRemoveStyles	: "Entferne Style-Definitionen",
+DlgPasteCleanBox		: "Inhalt aufräumen",
+
+// Color Picker
+ColorAutomatic	: "Automatisch",
+ColorMoreColors	: "Weitere Farben...",
+
+// Document Properties
+DocProps		: "Dokument Eigenschaften",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Anker Eigenschaften",
+DlgAnchorName		: "Anker Name",
+DlgAnchorErrorName	: "Bitte geben Sie den Namen des Ankers ein",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Nicht im Wörterbuch",
+DlgSpellChangeTo		: "Ändern in",
+DlgSpellBtnIgnore		: "Ignorieren",
+DlgSpellBtnIgnoreAll	: "Alle Ignorieren",
+DlgSpellBtnReplace		: "Ersetzen",
+DlgSpellBtnReplaceAll	: "Alle Ersetzen",
+DlgSpellBtnUndo			: "Rückgängig",
+DlgSpellNoSuggestions	: " - keine Vorschläge - ",
+DlgSpellProgress		: "Rechtschreibprüfung läuft...",
+DlgSpellNoMispell		: "Rechtschreibprüfung abgeschlossen - keine Fehler gefunden",
+DlgSpellNoChanges		: "Rechtschreibprüfung abgeschlossen - keine Worte geändert",
+DlgSpellOneChange		: "Rechtschreibprüfung abgeschlossen - ein Wort geändert",
+DlgSpellManyChanges		: "Rechtschreibprüfung abgeschlossen - %1 Wörter geändert",
+
+IeSpellDownload			: "Rechtschreibprüfung nicht installiert. Möchten Sie sie jetzt herunterladen?",
+
+// Button Dialog
+DlgButtonText		: "Text (Wert)",
+DlgButtonType		: "Typ",
+DlgButtonTypeBtn	: "Button",
+DlgButtonTypeSbm	: "Absenden",
+DlgButtonTypeRst	: "Zurücksetzen",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Name",
+DlgCheckboxValue	: "Wert",
+DlgCheckboxSelected	: "ausgewählt",
+
+// Form Dialog
+DlgFormName		: "Name",
+DlgFormAction	: "Action",
+DlgFormMethod	: "Method",
+
+// Select Field Dialog
+DlgSelectName		: "Name",
+DlgSelectValue		: "Wert",
+DlgSelectSize		: "Größe",
+DlgSelectLines		: "Linien",
+DlgSelectChkMulti	: "Erlaube Mehrfachauswahl",
+DlgSelectOpAvail	: "Mögliche Optionen",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Wert",
+DlgSelectBtnAdd		: "Hinzufügen",
+DlgSelectBtnModify	: "Ändern",
+DlgSelectBtnUp		: "Hoch",
+DlgSelectBtnDown	: "Runter",
+DlgSelectBtnSetValue : "Setze als Standardwert",
+DlgSelectBtnDelete	: "Entfernen",
+
+// Textarea Dialog
+DlgTextareaName	: "Name",
+DlgTextareaCols	: "Spalten",
+DlgTextareaRows	: "Reihen",
+
+// Text Field Dialog
+DlgTextName			: "Name",
+DlgTextValue		: "Wert",
+DlgTextCharWidth	: "Zeichenbreite",
+DlgTextMaxChars		: "Max. Zeichen",
+DlgTextType			: "Typ",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "Passwort",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Name",
+DlgHiddenValue	: "Wert",
+
+// Bulleted List Dialog
+BulletedListProp	: "Listen-Eigenschaften",
+NumberedListProp	: "Nummerierte Listen-Eigenschaften",
+DlgLstStart			: "Start",
+DlgLstType			: "Typ",
+DlgLstTypeCircle	: "Ring",
+DlgLstTypeDisc		: "Kreis",
+DlgLstTypeSquare	: "Quadrat",
+DlgLstTypeNumbers	: "Nummern (1, 2, 3)",
+DlgLstTypeLCase		: "Kleinbuchstaben (a, b, c)",
+DlgLstTypeUCase		: "Großbuchstaben (A, B, C)",
+DlgLstTypeSRoman	: "Kleine römische Zahlen (i, ii, iii)",
+DlgLstTypeLRoman	: "Große römische Zahlen (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Allgemein",
+DlgDocBackTab		: "Hintergrund",
+DlgDocColorsTab		: "Farben und Abstände",
+DlgDocMetaTab		: "Metadaten",
+
+DlgDocPageTitle		: "Seitentitel",
+DlgDocLangDir		: "Schriftrichtung",
+DlgDocLangDirLTR	: "Links nach Rechts",
+DlgDocLangDirRTL	: "rechts nach Links",
+DlgDocLangCode		: "Sprachkürzel",
+DlgDocCharSet		: "Zeichenkodierung",
+DlgDocCharSetCE		: "Zentraleuropäisch",
+DlgDocCharSetCT		: "traditionell Chinesisch (Big5)",
+DlgDocCharSetCR		: "Kyrillisch",
+DlgDocCharSetGR		: "Griechisch",
+DlgDocCharSetJP		: "Japanisch",
+DlgDocCharSetKR		: "Koreanisch",
+DlgDocCharSetTR		: "Türkisch",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Westeuropäisch",
+DlgDocCharSetOther	: "Andere Zeichenkodierung",
+
+DlgDocDocType		: "Dokumententyp",
+DlgDocDocTypeOther	: "Anderer Dokumententyp",
+DlgDocIncXHTML		: "Beziehe XHTML Deklarationen ein",
+DlgDocBgColor		: "Hintergrundfarbe",
+DlgDocBgImage		: "Hintergrundbild URL",
+DlgDocBgNoScroll	: "feststehender Hintergrund",
+DlgDocCText			: "Text",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Besuchter Link",
+DlgDocCActive		: "Aktiver Link",
+DlgDocMargins		: "Seitenränder",
+DlgDocMaTop			: "Oben",
+DlgDocMaLeft		: "Links",
+DlgDocMaRight		: "Rechts",
+DlgDocMaBottom		: "Unten",
+DlgDocMeIndex		: "Schlüsselwörter (durch Komma getrennt)",
+DlgDocMeDescr		: "Dokument-Beschreibung",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Vorschau",
+
+// Templates Dialog
+Templates			: "Vorlagen",
+DlgTemplatesTitle	: "Vorlagen",
+DlgTemplatesSelMsg	: "Klicken Sie auf eine Vorlage, um sie im Editor zu öffnen (der aktuelle Inhalt wird dabei gelöscht!):",
+DlgTemplatesLoading	: "Liste der Vorlagen wird geladen. Bitte warten...",
+DlgTemplatesNoTpl	: "(keine Vorlagen definiert)",
+DlgTemplatesReplace	: "Aktuellen Inhalt ersetzen",
+
+// About Dialog
+DlgAboutAboutTab	: "Über",
+DlgAboutBrowserInfoTab	: "Browser-Info",
+DlgAboutLicenseTab	: "Lizenz",
+DlgAboutVersion		: "Version",
+DlgAboutLicense		: "Lizensiert unter den Richtlinien der GNU Lesser General Public License",
+DlgAboutInfo		: "Für weitere Informationen siehe"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/sv.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/sv.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/sv.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: sv.js
+ * 	Swedish language file.
+ * 
+ * File Authors:
+ * 		Kristoffer Malvefors (kristoffer@intema.ws)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Dölj verktygsfält",
+ToolbarExpand		: "Visa verktygsfält",
+
+// Toolbar Items and Context Menu
+Save				: "Spara",
+NewPage				: "Ny sida",
+Preview				: "Förhandsgranska",
+Cut					: "Klipp ut",
+Copy				: "Kopiera",
+Paste				: "Klistra in",
+PasteText			: "Klistra in som text",
+PasteWord			: "Klistra in från Word",
+Print				: "Skriv ut",
+SelectAll			: "Markera allt",
+RemoveFormat		: "Radera formatering",
+InsertLinkLbl		: "Länk",
+InsertLink			: "Infoga/Redigera länk",
+RemoveLink			: "Radera länk",
+Anchor				: "Infoga/Redigera ankarlänk",
+InsertImageLbl		: "Bild",
+InsertImage			: "Infoga/Redigera bild",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Infoga/Redigera Flash",
+InsertTableLbl		: "Tabell",
+InsertTable			: "Infoga/Redigera tabell",
+InsertLineLbl		: "Linje",
+InsertLine			: "Infoga horisontal linje",
+InsertSpecialCharLbl: "Utökade tecken",
+InsertSpecialChar	: "Klistra in utökat tecken",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Infoga Smiley",
+About				: "Om FCKeditor",
+Bold				: "Fet",
+Italic				: "Kursiv",
+Underline			: "Understruken",
+StrikeThrough		: "Genomstruken",
+Subscript			: "Nedsänkta tecken",
+Superscript			: "Upphöjda tecken",
+LeftJustify			: "Vänsterjustera",
+CenterJustify		: "Centrera",
+RightJustify		: "Högerjustera",
+BlockJustify		: "Justera till marginaler",
+DecreaseIndent		: "Minska indrag",
+IncreaseIndent		: "Öka indrag",
+Undo				: "Ångra",
+Redo				: "Gör om",
+NumberedListLbl		: "Numrerad lista",
+NumberedList		: "Infoga/Radera numrerad lista",
+BulletedListLbl		: "Punktlista",
+BulletedList		: "Infoga/Radera punktlista",
+ShowTableBorders	: "Visa tabellkant",
+ShowDetails			: "Visa radbrytningar",
+Style				: "Anpassad stil",
+FontFormat			: "Teckenformat",
+Font				: "Typsnitt",
+FontSize			: "Storlek",
+TextColor			: "Textfärg",
+BGColor				: "Bakgrundsfärg",
+Source				: "Källa",
+Find				: "Sök",
+Replace				: "Ersätt",
+SpellCheck			: "Stavningskontroll",
+UniversalKeyboard	: "Universellt tangentbord",
+PageBreakLbl		: "Sidbrytning",
+PageBreak			: "Infoga sidbrytning",
+
+Form			: "Formulär",
+Checkbox		: "Kryssruta",
+RadioButton		: "Alternativknapp",
+TextField		: "Textfält",
+Textarea		: "Textruta",
+HiddenField		: "Dolt fält",
+Button			: "Knapp",
+SelectionField	: "Flervalslista",
+ImageButton		: "Bildknapp",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+
+// Context Menu
+EditLink			: "Redigera länk",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRow			: "Infoga rad",
+DeleteRows			: "Radera rad",
+InsertColumn		: "Infoga kolumn",
+DeleteColumns		: "Radera kolumn",
+InsertCell			: "Infoga cell",
+DeleteCells			: "Radera celler",
+MergeCells			: "Sammanfoga celler",
+SplitCell			: "Separera celler",
+TableDelete			: "Radera tabell",
+CellProperties		: "Cellegenskaper",
+TableProperties		: "Tabellegenskaper",
+ImageProperties		: "Bildegenskaper",
+FlashProperties		: "Flashegenskaper",
+
+AnchorProp			: "Egenskaper för ankarlänk",
+ButtonProp			: "Egenskaper för knapp",
+CheckboxProp		: "Egenskaper för kryssruta",
+HiddenFieldProp		: "Egenskaper för dolt fält",
+RadioButtonProp		: "Egenskaper för alternativknapp",
+ImageButtonProp		: "Egenskaper för bildknapp",
+TextFieldProp		: "Egenskaper för textfält",
+SelectionFieldProp	: "Egenskaper för flervalslista",
+TextareaProp		: "Egenskaper för textruta",
+FormProp			: "Egenskaper för formulär",
+
+FontFormats			: "Normal;Formaterad;Adress;Rubrik 1;Rubrik 2;Rubrik 3;Rubrik 4;Rubrik 5;Rubrik 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Bearbetar XHTML. Var god vänta...",
+Done				: "Klar",
+PasteWordConfirm	: "Texten du vill klistra in verkar vara kopierad från Word. Vill du rensa innan du klistar in?",
+NotCompatiblePaste	: "Denna åtgärd är inte tillgängligt för Internet Explorer version 5.5 eller högre. Vill du klistra in utan att rensa?",
+UnknownToolbarItem	: "Okänt verktygsfält \"%1\"",
+UnknownCommand		: "Okänt kommando \"%1\"",
+NotImplemented		: "Kommandot finns ej",
+UnknownToolbarSet	: "Verktygsfält \"%1\" finns ej",
+NoActiveX			: "Din webläsares säkerhetsinställningar kan begränsa funktionaliteten. Du bör aktivera \"Kör ActiveX kontroller och plug-ins\". Fel och avsaknad av funktioner kan annars uppstå.",
+BrowseServerBlocked : "Kunde Ej öppna resursfönstret. Var god och avaktivera alla popup-blockerare.",
+DialogBlocked		: "Kunde Ej öppna dialogfönstret. Var god och avaktivera alla popup-blockerare.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Avbryt",
+DlgBtnClose			: "Stäng",
+DlgBtnBrowseServer	: "Bläddra på server",
+DlgAdvancedTag		: "Avancerad",
+DlgOpOther			: "Övrigt",
+DlgInfoTab			: "Information",
+DlgAlertUrl			: "Var god och ange en URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<ej angivet>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Språkriktning",
+DlgGenLangDirLtr	: "Vänster till Höger (VTH)",
+DlgGenLangDirRtl	: "Höger till Vänster (HTV)",
+DlgGenLangCode		: "Språkkod",
+DlgGenAccessKey		: "Behörighetsnyckel",
+DlgGenName			: "Namn",
+DlgGenTabIndex		: "Tabindex",
+DlgGenLongDescr		: "URL-beskrivning",
+DlgGenClass			: "Stylesheet class",
+DlgGenTitle			: "Titel",
+DlgGenContType		: "Innehållstyp",
+DlgGenLinkCharset	: "Teckenuppställning",
+DlgGenStyle			: "Style",
+
+// Image Dialog
+DlgImgTitle			: "Bildegenskaper",
+DlgImgInfoTab		: "Bildinformation",
+DlgImgBtnUpload		: "Skicka till server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Ladda upp",
+DlgImgAlt			: "Alternativ text",
+DlgImgWidth			: "Bredd",
+DlgImgHeight		: "Höjd",
+DlgImgLockRatio		: "Lås höjd/bredd förhållanden",
+DlgBtnResetSize		: "Återställ storlek",
+DlgImgBorder		: "Kant",
+DlgImgHSpace		: "Horis. marginal",
+DlgImgVSpace		: "Vert. marginal",
+DlgImgAlign			: "Justering",
+DlgImgAlignLeft		: "Vänster",
+DlgImgAlignAbsBottom: "Absolut nederkant",
+DlgImgAlignAbsMiddle: "Absolut centrering",
+DlgImgAlignBaseline	: "Baslinje",
+DlgImgAlignBottom	: "Nederkant",
+DlgImgAlignMiddle	: "Mitten",
+DlgImgAlignRight	: "Höger",
+DlgImgAlignTextTop	: "Text överkant",
+DlgImgAlignTop		: "Överkant",
+DlgImgPreview		: "Förhandsgranska",
+DlgImgAlertUrl		: "Var god och ange bildens URL",
+DlgImgLinkTab		: "Länk",
+
+// Flash Dialog
+DlgFlashTitle		: "Flashegenskaper",
+DlgFlashChkPlay		: "Automatisk uppspelning",
+DlgFlashChkLoop		: "Upprepa/Loopa",
+DlgFlashChkMenu		: "Aktivera Flashmeny",
+DlgFlashScale		: "Skala",
+DlgFlashScaleAll	: "Visa allt",
+DlgFlashScaleNoBorder	: "Ingen ram",
+DlgFlashScaleFit	: "Exakt passning",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Länk",
+DlgLnkInfoTab		: "Länkinformation",
+DlgLnkTargetTab		: "Mål",
+
+DlgLnkType			: "Länktyp",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Ankare i sidan",
+DlgLnkTypeEMail		: "E-post",
+DlgLnkProto			: "Protokoll",
+DlgLnkProtoOther	: "<övrigt>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Välj ett ankare",
+DlgLnkAnchorByName	: "efter ankarnamn",
+DlgLnkAnchorById	: "efter objektid",
+DlgLnkNoAnchors		: "<Inga ankare kunde hittas>",
+DlgLnkEMail			: "E-postadress",
+DlgLnkEMailSubject	: "Ämne",
+DlgLnkEMailBody		: "Innehåll",
+DlgLnkUpload		: "Ladda upp",
+DlgLnkBtnUpload		: "Skicka till servern",
+
+DlgLnkTarget		: "Mål",
+DlgLnkTargetFrame	: "<ram>",
+DlgLnkTargetPopup	: "<popup-fönster>",
+DlgLnkTargetBlank	: "Nytt fönster (_blank)",
+DlgLnkTargetParent	: "Föregående Window (_parent)",
+DlgLnkTargetSelf	: "Detta fönstret (_self)",
+DlgLnkTargetTop		: "Översta fönstret (_top)",
+DlgLnkTargetFrameName	: "Målets ramnamn",
+DlgLnkPopWinName	: "Popup-fönstrets namn",
+DlgLnkPopWinFeat	: "Popup-fönstrets egenskaper",
+DlgLnkPopResize		: "Kan ändra storlek",
+DlgLnkPopLocation	: "Adressfält",
+DlgLnkPopMenu		: "Menyfält",
+DlgLnkPopScroll		: "Scrolllista",
+DlgLnkPopStatus		: "Statusfält",
+DlgLnkPopToolbar	: "Verktygsfält",
+DlgLnkPopFullScrn	: "Helskärm (endast IE)",
+DlgLnkPopDependent	: "Beroende (endest Netscape)",
+DlgLnkPopWidth		: "Bredd",
+DlgLnkPopHeight		: "Höjd",
+DlgLnkPopLeft		: "Position från vänster",
+DlgLnkPopTop		: "Position från sidans topp",
+
+DlnLnkMsgNoUrl		: "Var god ange länkens URL",
+DlnLnkMsgNoEMail	: "Var god ange E-postadress",
+DlnLnkMsgNoAnchor	: "Var god ange ett ankare",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Välj färg",
+DlgColorBtnClear	: "Rensa",
+DlgColorHighlight	: "Markera",
+DlgColorSelected	: "Vald",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Infoga smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Välj utökat tecken",
+
+// Table Dialog
+DlgTableTitle		: "Tabellegenskaper",
+DlgTableRows		: "Rader",
+DlgTableColumns		: "Kolumner",
+DlgTableBorder		: "Kantstorlek",
+DlgTableAlign		: "Justering",
+DlgTableAlignNotSet	: "<ej angivet>",
+DlgTableAlignLeft	: "Vänster",
+DlgTableAlignCenter	: "Centrerad",
+DlgTableAlignRight	: "Höger",
+DlgTableWidth		: "Bredd",
+DlgTableWidthPx		: "pixlar",
+DlgTableWidthPc		: "procent",
+DlgTableHeight		: "Höjd",
+DlgTableCellSpace	: "Cellavstånd",
+DlgTableCellPad		: "Cellutfyllnad",
+DlgTableCaption		: "Rubrik",
+DlgTableSummary		: "Sammanfattning",
+
+// Table Cell Dialog
+DlgCellTitle		: "Cellegenskaper",
+DlgCellWidth		: "Bredd",
+DlgCellWidthPx		: "pixlar",
+DlgCellWidthPc		: "procent",
+DlgCellHeight		: "Höjd",
+DlgCellWordWrap		: "Automatisk radbrytning",
+DlgCellWordWrapNotSet	: "<Ej angivet>",
+DlgCellWordWrapYes	: "Ja",
+DlgCellWordWrapNo	: "Nej",
+DlgCellHorAlign		: "Horisontal justering",
+DlgCellHorAlignNotSet	: "<Ej angivet>",
+DlgCellHorAlignLeft	: "Vänster",
+DlgCellHorAlignCenter	: "Centrerad",
+DlgCellHorAlignRight: "Höger",
+DlgCellVerAlign		: "Vertikal justering",
+DlgCellVerAlignNotSet	: "<Ej angivet>",
+DlgCellVerAlignTop	: "Topp",
+DlgCellVerAlignMiddle	: "Mitten",
+DlgCellVerAlignBottom	: "Nederkant",
+DlgCellVerAlignBaseline	: "Underst",
+DlgCellRowSpan		: "Radomfång",
+DlgCellCollSpan		: "Kolumnomfång",
+DlgCellBackColor	: "Bakgrundsfärg",
+DlgCellBorderColor	: "Kantfärg",
+DlgCellBtnSelect	: "Välj...",
+
+// Find Dialog
+DlgFindTitle		: "Sök",
+DlgFindFindBtn		: "Sök",
+DlgFindNotFoundMsg	: "Angiven text kunde ej hittas.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Ersätt",
+DlgReplaceFindLbl		: "Sök efter:",
+DlgReplaceReplaceLbl	: "Ersätt med:",
+DlgReplaceCaseChk		: "Skiftläge",
+DlgReplaceReplaceBtn	: "Ersätt",
+DlgReplaceReplAllBtn	: "Ersätt alla",
+DlgReplaceWordChk		: "Inkludera hela ord",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Säkerhetsinställningar i Er webläsare tillåter inte åtgården Klistra in. Använd (Ctrl+V) istället.",
+PasteErrorCut	: "Säkerhetsinställningar i Er webläsare tillåter inte åtgården Klipp ut. Använd (Ctrl+X) istället.",
+PasteErrorCopy	: "Säkerhetsinställningar i Er webläsare tillåter inte åtgården Kopiera. Använd (Ctrl+C) istället",
+
+PasteAsText		: "Klistra in som vanlig text",
+PasteFromWord	: "Klistra in från Word",
+
+DlgPasteMsg2	: "Var god och klistra in Er text i rutan nedan genom att använda (<STRONG>Ctrl+V</STRONG>) klicka sen på <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Ignorera typsnittsdefinitioner",
+DlgPasteRemoveStyles	: "Radera Stildefinitioner",
+DlgPasteCleanBox		: "Töm rutans innehåll",
+
+// Color Picker
+ColorAutomatic	: "Automatisk",
+ColorMoreColors	: "Fler färger...",
+
+// Document Properties
+DocProps		: "Dokumentegenskaper",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ankaregenskaper",
+DlgAnchorName		: "Ankarnamn",
+DlgAnchorErrorName	: "Var god ange ett ankarnamn",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Saknas i ordlistan",
+DlgSpellChangeTo		: "Ändra till",
+DlgSpellBtnIgnore		: "Ignorera",
+DlgSpellBtnIgnoreAll	: "Ignorera alla",
+DlgSpellBtnReplace		: "Ersätt",
+DlgSpellBtnReplaceAll	: "Ersätt alla",
+DlgSpellBtnUndo			: "Ångra",
+DlgSpellNoSuggestions	: "- Förslag saknas -",
+DlgSpellProgress		: "Stavningskontroll pågår...",
+DlgSpellNoMispell		: "Stavningskontroll slutförd: Inga stavfel påträffades.",
+DlgSpellNoChanges		: "Stavningskontroll slutförd: Inga ord rättades.",
+DlgSpellOneChange		: "Stavningskontroll slutförd: Ett ord rättades.",
+DlgSpellManyChanges		: "Stavningskontroll slutförd: %1 ord rättades.",
+
+IeSpellDownload			: "Stavningskontrollen är ej installerad. Vill du göra det nu?",
+
+// Button Dialog
+DlgButtonText		: "Text (Värde)",
+DlgButtonType		: "Typ",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Namn",
+DlgCheckboxValue	: "Värde",
+DlgCheckboxSelected	: "Vald",
+
+// Form Dialog
+DlgFormName		: "Namn",
+DlgFormAction	: "Funktion",
+DlgFormMethod	: "Metod",
+
+// Select Field Dialog
+DlgSelectName		: "Namn",
+DlgSelectValue		: "Värde",
+DlgSelectSize		: "Storlek",
+DlgSelectLines		: "Linjer",
+DlgSelectChkMulti	: "Tillåt flerval",
+DlgSelectOpAvail	: "Befintliga val",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Värde",
+DlgSelectBtnAdd		: "Lägg till",
+DlgSelectBtnModify	: "Redigera",
+DlgSelectBtnUp		: "Upp",
+DlgSelectBtnDown	: "Ner",
+DlgSelectBtnSetValue : "Markera som valt värde",
+DlgSelectBtnDelete	: "Radera",
+
+// Textarea Dialog
+DlgTextareaName	: "Namn",
+DlgTextareaCols	: "Kolumner",
+DlgTextareaRows	: "Rader",
+
+// Text Field Dialog
+DlgTextName			: "Namn",
+DlgTextValue		: "Värde",
+DlgTextCharWidth	: "Teckenbredd",
+DlgTextMaxChars		: "Max antal tecken",
+DlgTextType			: "Typ",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "Lösenord",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Namn",
+DlgHiddenValue	: "Värde",
+
+// Bulleted List Dialog
+BulletedListProp	: "Egenskaper för punktlista",
+NumberedListProp	: "Egenskaper för numrerad lista",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Typ",
+DlgLstTypeCircle	: "Cirkel",
+DlgLstTypeDisc		: "Punkt",
+DlgLstTypeSquare	: "Ruta",
+DlgLstTypeNumbers	: "Nummer (1, 2, 3)",
+DlgLstTypeLCase		: "Gemener (a, b, c)",
+DlgLstTypeUCase		: "Versaler (A, B, C)",
+DlgLstTypeSRoman	: "Små romerska siffror (i, ii, iii)",
+DlgLstTypeLRoman	: "Stora romerska siffror (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Allmän",
+DlgDocBackTab		: "Bakgrund",
+DlgDocColorsTab		: "Färg och marginal",
+DlgDocMetaTab		: "Metadata",
+
+DlgDocPageTitle		: "Sidtitel",
+DlgDocLangDir		: "Språkriktning",
+DlgDocLangDirLTR	: "Vänster till Höger",
+DlgDocLangDirRTL	: "Höger till Vänster",
+DlgDocLangCode		: "Språkkod",
+DlgDocCharSet		: "Teckenuppsättningar",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Övriga teckenuppsättningar",
+
+DlgDocDocType		: "Sidhuvud",
+DlgDocDocTypeOther	: "Övriga sidhuvuden",
+DlgDocIncXHTML		: "Inkludera XHTML deklaration",
+DlgDocBgColor		: "Bakgrundsfärg",
+DlgDocBgImage		: "Bakgrundsbildens URL",
+DlgDocBgNoScroll	: "Fast bakgrund",
+DlgDocCText			: "Text",
+DlgDocCLink			: "Länk",
+DlgDocCVisited		: "Besökt länk",
+DlgDocCActive		: "Aktiv länk",
+DlgDocMargins		: "Sidmarginal",
+DlgDocMaTop			: "Topp",
+DlgDocMaLeft		: "Vänster",
+DlgDocMaRight		: "Höger",
+DlgDocMaBottom		: "Botten",
+DlgDocMeIndex		: "Sidans nyckelord",
+DlgDocMeDescr		: "Sidans beskrivning",
+DlgDocMeAuthor		: "Författare",
+DlgDocMeCopy		: "Upphovsrätt",
+DlgDocPreview		: "Förhandsgranska",
+
+// Templates Dialog
+Templates			: "Sidmallar",
+DlgTemplatesTitle	: "Sidmallar",
+DlgTemplatesSelMsg	: "Var god välj en mall att använda med editorn<br>(allt nuvarande innehåll raderas):",
+DlgTemplatesLoading	: "Laddar mallar. Var god vänta...",
+DlgTemplatesNoTpl	: "(Ingen mall är vald)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Om",
+DlgAboutBrowserInfoTab	: "Webläsare",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "version",
+DlgAboutLicense		: "Licensierad under villkoren av GNU Lesser General Public License",
+DlgAboutInfo		: "För mer information se"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ja.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ja.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/ja.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: ja.js
+ * 	Japanese language file.
+ * 
+ * File Authors:
+ * 		Takashi Yamaguchi (jack@omakase.net)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "ツールバーを隠す",
+ToolbarExpand		: "ツールバーを表示",
+
+// Toolbar Items and Context Menu
+Save				: "保存",
+NewPage				: "新しいページ",
+Preview				: "プレビュー",
+Cut					: "切り取り",
+Copy				: "コピー",
+Paste				: "貼り付け",
+PasteText			: "プレーンテキスト貼り付け",
+PasteWord			: "ワード文章から貼り付け",
+Print				: "印刷",
+SelectAll			: "すべて選択",
+RemoveFormat		: "フォーマット削除",
+InsertLinkLbl		: "リンク",
+InsertLink			: "リンク挿入/編集",
+RemoveLink			: "リンク削除",
+Anchor				: "アンカー挿入/編集",
+InsertImageLbl		: "イメージ",
+InsertImage			: "イメージ挿入/編集",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Flash挿入/編集",
+InsertTableLbl		: "テーブル",
+InsertTable			: "テーブル挿入/編集",
+InsertLineLbl		: "ライン",
+InsertLine			: "横罫線",
+InsertSpecialCharLbl: "特殊文字",
+InsertSpecialChar	: "特殊文字挿入",
+InsertSmileyLbl		: "絵文字",
+InsertSmiley		: "絵文字挿入",
+About				: "FCKeditorヘルプ",
+Bold				: "太字",
+Italic				: "斜体",
+Underline			: "下線",
+StrikeThrough		: "打ち消し線",
+Subscript			: "添え字",
+Superscript			: "上付き文字",
+LeftJustify			: "左揃え",
+CenterJustify		: "中央揃え",
+RightJustify		: "右揃え",
+BlockJustify		: "両端揃え",
+DecreaseIndent		: "インデント解除",
+IncreaseIndent		: "インデント",
+Undo				: "元に戻す",
+Redo				: "やり直し",
+NumberedListLbl		: "段落番号",
+NumberedList		: "段落番号の追加/削除",
+BulletedListLbl		: "箇条書き",
+BulletedList		: "箇条書きの追加/削除",
+ShowTableBorders	: "テーブルボーダー表示",
+ShowDetails			: "詳細表示",
+Style				: "スタイル",
+FontFormat			: "フォーマット",
+Font				: "フォント",
+FontSize			: "サイズ",
+TextColor			: "テキスト色",
+BGColor				: "背景色",
+Source				: "ソース",
+Find				: "検索",
+Replace				: "置き換え",
+SpellCheck			: "スペルチェック",
+UniversalKeyboard	: "ユニバーサル・キーボード",
+PageBreakLbl		: "改ページ",
+PageBreak			: "改ページ挿入",
+
+Form			: "フォーム",
+Checkbox		: "チェックボックス",
+RadioButton		: "ラジオボタン",
+TextField		: "１行テキスト",
+Textarea		: "テキストエリア",
+HiddenField		: "不可視フィールド",
+Button			: "ボタン",
+SelectionField	: "選択フィールド",
+ImageButton		: "画像ボタン",
+
+FitWindow		: "エディタサイズを最大にします",
+
+// Context Menu
+EditLink			: "リンク編集",
+CellCM				: "セル",
+RowCM				: "行",
+ColumnCM			: "カラム",
+InsertRow			: "行挿入",
+DeleteRows			: "行削除",
+InsertColumn		: "列挿入",
+DeleteColumns		: "列削除",
+InsertCell			: "セル挿入",
+DeleteCells			: "セル削除",
+MergeCells			: "セル結合",
+SplitCell			: "セル分割",
+TableDelete			: "テーブル削除",
+CellProperties		: "セル プロパティ",
+TableProperties		: "テーブル プロパティ",
+ImageProperties		: "イメージ プロパティ",
+FlashProperties		: "Flash プロパティ",
+
+AnchorProp			: "アンカー プロパティ",
+ButtonProp			: "ボタン プロパティ",
+CheckboxProp		: "チェックボックス プロパティ",
+HiddenFieldProp		: "不可視フィールド プロパティ",
+RadioButtonProp		: "ラジオボタン プロパティ",
+ImageButtonProp		: "画像ボタン プロパティ",
+TextFieldProp		: "１行テキスト プロパティ",
+SelectionFieldProp	: "選択フィールド プロパティ",
+TextareaProp		: "テキストエリア プロパティ",
+FormProp			: "フォーム プロパティ",
+
+FontFormats			: "標準;書式付き;アドレス;見出し 1;見出し 2;見出し 3;見出し 4;見出し 5;見出し 6;標準 (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML処理中. しばらくお待ちください...",
+Done				: "完了",
+PasteWordConfirm	: "貼り付けを行うテキストは、ワード文章からコピーされようとしています。貼り付ける前にクリーニングを行いますか？",
+NotCompatiblePaste	: "このコマンドはインターネット・エクスプローラーバージョン5.5以上で利用可能です。クリーニングしないで貼り付けを行いますか？",
+UnknownToolbarItem	: "未知のツールバー項目 \"%1\"",
+UnknownCommand		: "未知のコマンド名 \"%1\"",
+NotImplemented		: "コマンドはインプリメントされませんでした。",
+UnknownToolbarSet	: "ツールバー設定 \"%1\" 存在しません。",
+NoActiveX			: "エラー、警告メッセージなどが発生した場合、ブラウザーのセキュリティ設定によりエディタのいくつかの機能が制限されている可能性があります。セキュリティ設定のオプションで\"ActiveXコントロールとプラグインの実行\"を有効にするにしてください。",
+BrowseServerBlocked : "サーバーブラウザーを開くことができませんでした。ポップアップ・ブロック機能が無効になっているか確認してください。",
+DialogBlocked		: "ダイアログウィンドウを開くことができませんでした。ポップアップ・ブロック機能が無効になっているか確認してください。",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "キャンセル",
+DlgBtnClose			: "閉じる",
+DlgBtnBrowseServer	: "サーバーブラウザー",
+DlgAdvancedTag		: "高度な設定",
+DlgOpOther			: "<その他>",
+DlgInfoTab			: "情報",
+DlgAlertUrl			: "URLを挿入してください",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<なし>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "文字表記の方向",
+DlgGenLangDirLtr	: "左から右 (LTR)",
+DlgGenLangDirRtl	: "右から左 (RTL)",
+DlgGenLangCode		: "言語コード",
+DlgGenAccessKey		: "アクセスキー",
+DlgGenName			: "Name属性",
+DlgGenTabIndex		: "タブインデックス",
+DlgGenLongDescr		: "longdesc属性(長文説明)",
+DlgGenClass			: "スタイルシートクラス",
+DlgGenTitle			: "Title属性",
+DlgGenContType		: "Content Type属性",
+DlgGenLinkCharset	: "リンクcharset属性",
+DlgGenStyle			: "スタイルシート",
+
+// Image Dialog
+DlgImgTitle			: "イメージ プロパティ",
+DlgImgInfoTab		: "イメージ 情報",
+DlgImgBtnUpload		: "サーバーに送信",
+DlgImgURL			: "URL",
+DlgImgUpload		: "アップロード",
+DlgImgAlt			: "代替テキスト",
+DlgImgWidth			: "幅",
+DlgImgHeight		: "高さ",
+DlgImgLockRatio		: "ロック比率",
+DlgBtnResetSize		: "サイズリセット",
+DlgImgBorder		: "ボーダー",
+DlgImgHSpace		: "横間隔",
+DlgImgVSpace		: "縦間隔",
+DlgImgAlign			: "行揃え",
+DlgImgAlignLeft		: "左",
+DlgImgAlignAbsBottom: "下部(絶対的)",
+DlgImgAlignAbsMiddle: "中央(絶対的)",
+DlgImgAlignBaseline	: "ベースライン",
+DlgImgAlignBottom	: "下",
+DlgImgAlignMiddle	: "中央",
+DlgImgAlignRight	: "右",
+DlgImgAlignTextTop	: "テキスト上部",
+DlgImgAlignTop		: "上",
+DlgImgPreview		: "プレビュー",
+DlgImgAlertUrl		: "イメージのURLを入力してください。",
+DlgImgLinkTab		: "リンク",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash プロパティ",
+DlgFlashChkPlay		: "再生",
+DlgFlashChkLoop		: "ループ再生",
+DlgFlashChkMenu		: "Flashメニュー可能",
+DlgFlashScale		: "拡大縮小設定",
+DlgFlashScaleAll	: "すべて表示",
+DlgFlashScaleNoBorder	: "外が見えない様に拡大",
+DlgFlashScaleFit	: "上下左右にフィット",
+
+// Link Dialog
+DlgLnkWindowTitle	: "ハイパーリンク",
+DlgLnkInfoTab		: "ハイパーリンク 情報",
+DlgLnkTargetTab		: "ターゲット",
+
+DlgLnkType			: "リンクタイプ",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "このページのアンカー",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "プロトコル",
+DlgLnkProtoOther	: "<その他>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "アンカーを選択",
+DlgLnkAnchorByName	: "アンカー名",
+DlgLnkAnchorById	: "エレメントID",
+DlgLnkNoAnchors		: "<ドキュメントにおいて利用可能なアンカーはありません。>",
+DlgLnkEMail			: "E-Mail アドレス",
+DlgLnkEMailSubject	: "件名",
+DlgLnkEMailBody		: "本文",
+DlgLnkUpload		: "アップロード",
+DlgLnkBtnUpload		: "サーバーに送信",
+
+DlgLnkTarget		: "ターゲット",
+DlgLnkTargetFrame	: "<フレーム>",
+DlgLnkTargetPopup	: "<ポップアップウィンドウ>",
+DlgLnkTargetBlank	: "新しいウィンドウ (_blank)",
+DlgLnkTargetParent	: "親ウィンドウ (_parent)",
+DlgLnkTargetSelf	: "同じウィンドウ (_self)",
+DlgLnkTargetTop		: "最上位ウィンドウ (_top)",
+DlgLnkTargetFrameName	: "目的のフレーム名",
+DlgLnkPopWinName	: "ポップアップウィンドウ名",
+DlgLnkPopWinFeat	: "ポップアップウィンドウ特徴",
+DlgLnkPopResize		: "リサイズ可能",
+DlgLnkPopLocation	: "ロケーションバー",
+DlgLnkPopMenu		: "メニューバー",
+DlgLnkPopScroll		: "スクロールバー",
+DlgLnkPopStatus		: "ステータスバー",
+DlgLnkPopToolbar	: "ツールバー",
+DlgLnkPopFullScrn	: "全画面モード(IE)",
+DlgLnkPopDependent	: "開いたウィンドウに連動して閉じる (Netscape)",
+DlgLnkPopWidth		: "幅",
+DlgLnkPopHeight		: "高さ",
+DlgLnkPopLeft		: "左端からの座標で指定",
+DlgLnkPopTop		: "上端からの座標で指定",
+
+DlnLnkMsgNoUrl		: "リンクURLを入力してください。",
+DlnLnkMsgNoEMail	: "メールアドレスを入力してください。",
+DlnLnkMsgNoAnchor	: "アンカーを選択してください。",
+DlnLnkMsgInvPopName	: "ポップ・アップ名は英字で始まる文字で指定してくだい。ポップ・アップ名にスペースは含めません",
+
+// Color Dialog
+DlgColorTitle		: "色選択",
+DlgColorBtnClear	: "クリア",
+DlgColorHighlight	: "ハイライト",
+DlgColorSelected	: "選択色",
+
+// Smiley Dialog
+DlgSmileyTitle		: "顔文字挿入",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "特殊文字選択",
+
+// Table Dialog
+DlgTableTitle		: "テーブル プロパティ",
+DlgTableRows		: "行",
+DlgTableColumns		: "列",
+DlgTableBorder		: "ボーダーサイズ",
+DlgTableAlign		: "キャプションの整列",
+DlgTableAlignNotSet	: "<なし>",
+DlgTableAlignLeft	: "左",
+DlgTableAlignCenter	: "中央",
+DlgTableAlignRight	: "右",
+DlgTableWidth		: "テーブル幅",
+DlgTableWidthPx		: "ピクセル",
+DlgTableWidthPc		: "パーセント",
+DlgTableHeight		: "テーブル高さ",
+DlgTableCellSpace	: "セル内余白",
+DlgTableCellPad		: "セル内間隔",
+DlgTableCaption		: "ｷｬﾌﾟｼｮﾝ",
+DlgTableSummary		: "テーブル目的/構造",
+
+// Table Cell Dialog
+DlgCellTitle		: "セル プロパティ",
+DlgCellWidth		: "幅",
+DlgCellWidthPx		: "ピクセル",
+DlgCellWidthPc		: "パーセント",
+DlgCellHeight		: "高さ",
+DlgCellWordWrap		: "折り返し",
+DlgCellWordWrapNotSet	: "<なし>",
+DlgCellWordWrapYes	: "Yes",
+DlgCellWordWrapNo	: "No",
+DlgCellHorAlign		: "セル横の整列",
+DlgCellHorAlignNotSet	: "<なし>",
+DlgCellHorAlignLeft	: "左",
+DlgCellHorAlignCenter	: "中央",
+DlgCellHorAlignRight: "右",
+DlgCellVerAlign		: "セル縦の整列",
+DlgCellVerAlignNotSet	: "<なし>",
+DlgCellVerAlignTop	: "上",
+DlgCellVerAlignMiddle	: "中央",
+DlgCellVerAlignBottom	: "下",
+DlgCellVerAlignBaseline	: "ベースライン",
+DlgCellRowSpan		: "縦幅(行数)",
+DlgCellCollSpan		: "横幅(列数)",
+DlgCellBackColor	: "背景色",
+DlgCellBorderColor	: "ボーダーカラー",
+DlgCellBtnSelect	: "選択...",
+
+// Find Dialog
+DlgFindTitle		: "検索",
+DlgFindFindBtn		: "検索",
+DlgFindNotFoundMsg	: "指定された文字列は見つかりませんでした。",
+
+// Replace Dialog
+DlgReplaceTitle			: "置き換え",
+DlgReplaceFindLbl		: "検索する文字列:",
+DlgReplaceReplaceLbl	: "置換えする文字列:",
+DlgReplaceCaseChk		: "部分一致",
+DlgReplaceReplaceBtn	: "置換え",
+DlgReplaceReplAllBtn	: "すべて置換え",
+DlgReplaceWordChk		: "単語単位で一致",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "ブラウザーのセキュリティ設定によりエディタの貼り付け操作が自動で実行することができません。実行するには手動でキーボードの(Ctrl+V)を使用してください。",
+PasteErrorCut	: "ブラウザーのセキュリティ設定によりエディタの切り取り操作が自動で実行することができません。実行するには手動でキーボードの(Ctrl+X)を使用してください。",
+PasteErrorCopy	: "ブラウザーのセキュリティ設定によりエディタのコピー操作が自動で実行することができません。実行するには手動でキーボードの(Ctrl+C)を使用してください。",
+
+PasteAsText		: "プレーンテキスト貼り付け",
+PasteFromWord	: "ワード文章から貼り付け",
+
+DlgPasteMsg2	: "キーボード(<STRONG>Ctrl+V</STRONG>)を使用して、次の入力エリア内で貼って、<STRONG>OK</STRONG>を押してください。",
+DlgPasteIgnoreFont		: "FontタグのFace属性を無視します。",
+DlgPasteRemoveStyles	: "スタイル定義を削除します。",
+DlgPasteCleanBox		: "入力エリアクリア",
+
+// Color Picker
+ColorAutomatic	: "自動",
+ColorMoreColors	: "その他の色...",
+
+// Document Properties
+DocProps		: "文書 プロパティ",
+
+// Anchor Dialog
+DlgAnchorTitle		: "アンカー プロパティ",
+DlgAnchorName		: "アンカー名",
+DlgAnchorErrorName	: "アンカー名を必ず入力してください。",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "辞書にありません",
+DlgSpellChangeTo		: "変更",
+DlgSpellBtnIgnore		: "無視",
+DlgSpellBtnIgnoreAll	: "すべて無視",
+DlgSpellBtnReplace		: "置換",
+DlgSpellBtnReplaceAll	: "すべて置換",
+DlgSpellBtnUndo			: "やり直し",
+DlgSpellNoSuggestions	: "- 該当なし -",
+DlgSpellProgress		: "スペルチェック処理中...",
+DlgSpellNoMispell		: "スペルチェック完了: スペルの誤りはありませんでした",
+DlgSpellNoChanges		: "スペルチェック完了: 語句は変更されませんでした",
+DlgSpellOneChange		: "スペルチェック完了: １語句変更されました",
+DlgSpellManyChanges		: "スペルチェック完了: %1 語句変更されました",
+
+IeSpellDownload			: "スペルチェッカーがインストールされていません。今すぐダウンロードしますか?",
+
+// Button Dialog
+DlgButtonText		: "テキスト (値)",
+DlgButtonType		: "タイプ",
+DlgButtonTypeBtn	: "ボタン",
+DlgButtonTypeSbm	: "送信",
+DlgButtonTypeRst	: "リセット",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "名前",
+DlgCheckboxValue	: "値",
+DlgCheckboxSelected	: "選択済み",
+
+// Form Dialog
+DlgFormName		: "フォーム名",
+DlgFormAction	: "アクション",
+DlgFormMethod	: "メソッド",
+
+// Select Field Dialog
+DlgSelectName		: "名前",
+DlgSelectValue		: "値",
+DlgSelectSize		: "サイズ",
+DlgSelectLines		: "行",
+DlgSelectChkMulti	: "複数項目選択を許可",
+DlgSelectOpAvail	: "利用可能なオプション",
+DlgSelectOpText		: "選択項目名",
+DlgSelectOpValue	: "選択項目値",
+DlgSelectBtnAdd		: "追加",
+DlgSelectBtnModify	: "編集",
+DlgSelectBtnUp		: "上へ",
+DlgSelectBtnDown	: "下へ",
+DlgSelectBtnSetValue : "選択した値を設定",
+DlgSelectBtnDelete	: "削除",
+
+// Textarea Dialog
+DlgTextareaName	: "名前",
+DlgTextareaCols	: "列",
+DlgTextareaRows	: "行",
+
+// Text Field Dialog
+DlgTextName			: "名前",
+DlgTextValue		: "値",
+DlgTextCharWidth	: "サイズ",
+DlgTextMaxChars		: "最大長",
+DlgTextType			: "タイプ",
+DlgTextTypeText		: "テキスト",
+DlgTextTypePass		: "パスワード入力",
+
+// Hidden Field Dialog
+DlgHiddenName	: "名前",
+DlgHiddenValue	: "値",
+
+// Bulleted List Dialog
+BulletedListProp	: "箇条書き プロパティ",
+NumberedListProp	: "段落番号 プロパティ",
+DlgLstStart			: "開始文字",
+DlgLstType			: "タイプ",
+DlgLstTypeCircle	: "白丸",
+DlgLstTypeDisc		: "黒丸",
+DlgLstTypeSquare	: "四角",
+DlgLstTypeNumbers	: "アラビア数字 (1, 2, 3)",
+DlgLstTypeLCase		: "英字小文字 (a, b, c)",
+DlgLstTypeUCase		: "英字大文字 (A, B, C)",
+DlgLstTypeSRoman	: "ローマ数字小文字 (i, ii, iii)",
+DlgLstTypeLRoman	: "ローマ数字大文字 (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "全般",
+DlgDocBackTab		: "背景",
+DlgDocColorsTab		: "色とマージン",
+DlgDocMetaTab		: "メタデータ",
+
+DlgDocPageTitle		: "ページタイトル",
+DlgDocLangDir		: "言語文字表記の方向",
+DlgDocLangDirLTR	: "左から右に表記(LTR)",
+DlgDocLangDirRTL	: "右から左に表記(RTL)",
+DlgDocLangCode		: "言語コード",
+DlgDocCharSet		: "文字セット符号化",
+DlgDocCharSetCE		: "Central European",
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Greek",
+DlgDocCharSetJP		: "Japanese",
+DlgDocCharSetKR		: "Korean",
+DlgDocCharSetTR		: "Turkish",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Western European",
+DlgDocCharSetOther	: "他の文字セット符号化",
+
+DlgDocDocType		: "文書タイプヘッダー",
+DlgDocDocTypeOther	: "その他文書タイプヘッダー",
+DlgDocIncXHTML		: "XHTML宣言をインクルード",
+DlgDocBgColor		: "背景色",
+DlgDocBgImage		: "背景画像 URL",
+DlgDocBgNoScroll	: "スクロールしない背景",
+DlgDocCText			: "テキスト",
+DlgDocCLink			: "リンク",
+DlgDocCVisited		: "アクセス済みリンク",
+DlgDocCActive		: "アクセス中リンク",
+DlgDocMargins		: "ページ・マージン",
+DlgDocMaTop			: "上部",
+DlgDocMaLeft		: "左",
+DlgDocMaRight		: "右",
+DlgDocMaBottom		: "下部",
+DlgDocMeIndex		: "文書のキーワード(カンマ区切り)",
+DlgDocMeDescr		: "文書の概要",
+DlgDocMeAuthor		: "文書の作者",
+DlgDocMeCopy		: "文書の著作権",
+DlgDocPreview		: "プレビュー",
+
+// Templates Dialog
+Templates			: "テンプレート(雛形)",
+DlgTemplatesTitle	: "テンプレート内容",
+DlgTemplatesSelMsg	: "エディターで使用するテンプレートを選択してください。<br>(現在のエディタの内容は失われます):",
+DlgTemplatesLoading	: "テンプレート一覧読み込み中. しばらくお待ちください...",
+DlgTemplatesNoTpl	: "(テンプレートが定義されていません)",
+DlgTemplatesReplace	: "現在のエディタの内容と置換えをします",
+
+// About Dialog
+DlgAboutAboutTab	: "バージョン情報",
+DlgAboutBrowserInfoTab	: "ブラウザ情報",
+DlgAboutLicenseTab	: "ライセンス",
+DlgAboutVersion		: "バージョン",
+DlgAboutLicense		: "Licensed under the terms of the GNU Lesser General Public License",
+DlgAboutInfo		: "より詳しい情報はこちらで"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/he.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/he.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/he.js	(revision 389)
@@ -0,0 +1,502 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: he.js
+ * 	Hebrew language file.
+ * 
+ * File Authors:
+ * 		Tamir Mordo (tamir@tetitu.co.il)
+ * 		Ophir Radnitz (ophir@liqweed.net)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "rtl",
+
+ToolbarCollapse		: "כיווץ סרגל הכלים",
+ToolbarExpand		: "פתיחת סרגל הכלים",
+
+// Toolbar Items and Context Menu
+Save				: "שמירה",
+NewPage				: "דף חדש",
+Preview				: "תצוגה מקדימה",
+Cut					: "גזירה",
+Copy				: "העתקה",
+Paste				: "הדבקה",
+PasteText			: "הדבקה כטקסט פשוט",
+PasteWord			: "הדבקה מ-וורד",
+Print				: "הדפסה",
+SelectAll			: "בחירת הכל",
+RemoveFormat		: "הסרת העיצוב",
+InsertLinkLbl		: "קישור",
+InsertLink			: "הוספת/עריכת קישור",
+RemoveLink			: "הסרת הקישור",
+Anchor				: "הוספת/עריכת נקודת עיגון",
+InsertImageLbl		: "תמונה",
+InsertImage			: "הוספת/עריכת תמונה",
+InsertFlashLbl		: "פלאש",
+InsertFlash			: "הוסף/ערוך פלאש",
+InsertTableLbl		: "טבלה",
+InsertTable			: "הוספת/עריכת טבלה",
+InsertLineLbl		: "קו",
+InsertLine			: "הוספת קו אופקי",
+InsertSpecialCharLbl: "תו מיוחד",
+InsertSpecialChar	: "הוספת תו מיוחד",
+InsertSmileyLbl		: "סמיילי",
+InsertSmiley		: "הוספת סמיילי",
+About				: "אודות FCKeditor",
+Bold				: "מודגש",
+Italic				: "נטוי",
+Underline			: "קו תחתון",
+StrikeThrough		: "כתיב מחוק",
+Subscript			: "כתיב תחתון",
+Superscript			: "כתיב עליון",
+LeftJustify			: "יישור לשמאל",
+CenterJustify		: "מרכוז",
+RightJustify		: "יישור לימין",
+BlockJustify		: "יישור לשוליים",
+DecreaseIndent		: "הקטנת אינדנטציה",
+IncreaseIndent		: "הגדלת אינדנטציה",
+Undo				: "ביטול צעד אחרון",
+Redo				: "חזרה על צעד אחרון",
+NumberedListLbl		: "רשימה ממוספרת",
+NumberedList		: "הוספת/הסרת רשימה ממוספרת",
+BulletedListLbl		: "רשימת נקודות",
+BulletedList		: "הוספת/הסרת רשימת נקודות",
+ShowTableBorders	: "הצגת מסגרת הטבלה",
+ShowDetails			: "הצגת פרטים",
+Style				: "סגנון",
+FontFormat			: "עיצוב",
+Font				: "גופן",
+FontSize			: "גודל",
+TextColor			: "צבע טקסט",
+BGColor				: "צבע רקע",
+Source				: "מקור",
+Find				: "חיפוש",
+Replace				: "החלפה",
+SpellCheck			: "בדיקת איות",
+UniversalKeyboard	: "מקלדת אוניברסלית",
+PageBreakLbl		: "שבירת דף",
+PageBreak			: "הוסף שבירת דף",
+
+Form			: "טופס",
+Checkbox		: "תיבת סימון",
+RadioButton		: "לחצן אפשרויות",
+TextField		: "שדה טקסט",
+Textarea		: "איזור טקסט",
+HiddenField		: "שדה חבוי",
+Button			: "כפתור",
+SelectionField	: "שדה בחירה",
+ImageButton		: "כפתור תמונה",
+
+FitWindow		: "הגדל את גודל העורך",
+
+// Context Menu
+EditLink			: "עריכת קישור",
+CellCM				: "תא",
+RowCM				: "שורה",
+ColumnCM			: "עמודה",
+InsertRow			: "הוספת שורה",
+DeleteRows			: "מחיקת שורות",
+InsertColumn		: "הוספת עמודה",
+DeleteColumns		: "מחיקת עמודות",
+InsertCell			: "הוספת תא",
+DeleteCells			: "מחיקת תאים",
+MergeCells			: "מיזוג תאים",
+SplitCell			: "פיצול תאים",
+TableDelete			: "מחק טבלה",
+CellProperties		: "תכונות התא",
+TableProperties		: "תכונות הטבלה",
+ImageProperties		: "תכונות התמונה",
+FlashProperties		: "מאפייני פלאש",
+
+AnchorProp			: "מאפייני נקודת עיגון",
+ButtonProp			: "מאפייני כפתור",
+CheckboxProp		: "מאפייני תיבת סימון",
+HiddenFieldProp		: "מאפיני שדה חבוי",
+RadioButtonProp		: "מאפייני לחצן אפשרויות",
+ImageButtonProp		: "מאפיני כפתור תמונה",
+TextFieldProp		: "מאפייני שדה טקסט",
+SelectionFieldProp	: "מאפייני שדה בחירה",
+TextareaProp		: "מאפיני איזור טקסט",
+FormProp			: "מאפיני טופס",
+
+FontFormats			: "נורמלי;קוד;כתובת;כותרת;כותרת 2;כותרת 3;כותרת 4;כותרת 5;כותרת 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "מעבד XHTML, נא להמתין...",
+Done				: "המשימה הושלמה",
+PasteWordConfirm	: "נראה הטקסט שבכוונתך להדביק מקורו בקובץ וורד. האם ברצונך לנקות אותו טרם ההדבקה?",
+NotCompatiblePaste	: "פעולה זו זמינה לדפדפן אינטרנט אקספלורר מגירסא 5.5 ומעלה. האם להמשיך בהדבקה ללא הניקוי?",
+UnknownToolbarItem	: "פריט לא ידוע בסרגל הכלים \"%1\"",
+UnknownCommand		: "שם פעולה לא ידוע \"%1\"",
+NotImplemented		: "הפקודה לא מיושמת",
+UnknownToolbarSet	: "ערכת סרגל הכלים \"%1\" לא קיימת",
+NoActiveX			: "הגדרות אבטחה של הדפדפן עלולות לגביל את אפשרויות העריכה.יש לאפשר את האופציה \"הרץ פקדים פעילים ותוספות\". תוכל לחוות טעויות וחיווים של אפשרויות שחסרים.",
+BrowseServerBlocked : "לא ניתן לגשת לדפדפן משאבים.אנא וודא שחוסם חלונות הקופצים לא פעיל.",
+DialogBlocked		: "לא היה ניתן לפתוח חלון דיאלוג. אנא וודא שחוסם חלונות קופצים לא פעיל.",
+
+// Dialogs
+DlgBtnOK			: "אישור",
+DlgBtnCancel		: "ביטול",
+DlgBtnClose			: "סגירה",
+DlgBtnBrowseServer	: "סייר השרת",
+DlgAdvancedTag		: "אפשרויות מתקדמות",
+DlgOpOther			: "<אחר>",
+DlgInfoTab			: "מידע",
+DlgAlertUrl			: "אנה הזן URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<לא נקבע>",
+DlgGenId			: "זיהוי (Id)",
+DlgGenLangDir		: "כיוון שפה",
+DlgGenLangDirLtr	: "שמאל לימין (LTR)",
+DlgGenLangDirRtl	: "ימין לשמאל (RTL)",
+DlgGenLangCode		: "קוד שפה",
+DlgGenAccessKey		: "מקש גישה",
+DlgGenName			: "שם",
+DlgGenTabIndex		: "מספר טאב",
+DlgGenLongDescr		: "קישור לתיאור מפורט",
+DlgGenClass			: "גיליונות עיצוב קבוצות",
+DlgGenTitle			: "כותרת מוצעת",
+DlgGenContType		: "Content Type מוצע",
+DlgGenLinkCharset	: "קידוד המשאב המקושר",
+DlgGenStyle			: "סגנון",
+
+// Image Dialog
+DlgImgTitle			: "תכונות התמונה",
+DlgImgInfoTab		: "מידע על התמונה",
+DlgImgBtnUpload		: "שליחה לשרת",
+DlgImgURL			: "כתובת (URL)",
+DlgImgUpload		: "העלאה",
+DlgImgAlt			: "טקסט חלופי",
+DlgImgWidth			: "רוחב",
+DlgImgHeight		: "גובה",
+DlgImgLockRatio		: "נעילת היחס",
+DlgBtnResetSize		: "איפוס הגודל",
+DlgImgBorder		: "מסגרת",
+DlgImgHSpace		: "מרווח אופקי",
+DlgImgVSpace		: "מרווח אנכי",
+DlgImgAlign			: "יישור",
+DlgImgAlignLeft		: "לשמאל",
+DlgImgAlignAbsBottom: "לתחתית האבסולוטית",
+DlgImgAlignAbsMiddle: "מרכוז אבסולוטי",
+DlgImgAlignBaseline	: "לקו התחתית",
+DlgImgAlignBottom	: "לתחתית",
+DlgImgAlignMiddle	: "לאמצע",
+DlgImgAlignRight	: "לימין",
+DlgImgAlignTextTop	: "לראש הטקסט",
+DlgImgAlignTop		: "למעלה",
+DlgImgPreview		: "תצוגה מקדימה",
+DlgImgAlertUrl		: "נא להקליד את כתובת התמונה",
+DlgImgLinkTab		: "קישור",
+
+// Flash Dialog
+DlgFlashTitle		: "מאפיני פלאש",
+DlgFlashChkPlay		: "נגן אוטומטי",
+DlgFlashChkLoop		: "לולאה",
+DlgFlashChkMenu		: "אפשר תפריט פלאש",
+DlgFlashScale		: "גודל",
+DlgFlashScaleAll	: "הצג הכל",
+DlgFlashScaleNoBorder	: "ללא גבולות",
+DlgFlashScaleFit	: "התאמה מושלמת",
+
+// Link Dialog
+DlgLnkWindowTitle	: "קישור",
+DlgLnkInfoTab		: "מידע על הקישור",
+DlgLnkTargetTab		: "מטרה",
+
+DlgLnkType			: "סוג קישור",
+DlgLnkTypeURL		: "כתובת (URL)",
+DlgLnkTypeAnchor	: "עוגן בעמוד זה",
+DlgLnkTypeEMail		: "דוא''ל",
+DlgLnkProto			: "פרוטוקול",
+DlgLnkProtoOther	: "<אחר>",
+DlgLnkURL			: "כתובת (URL)",
+DlgLnkAnchorSel		: "בחירת עוגן",
+DlgLnkAnchorByName	: "עפ''י שם העוגן",
+DlgLnkAnchorById	: "עפ''י זיהוי (Id) הרכיב",
+DlgLnkNoAnchors		: "<אין עוגנים זמינים בדף>",
+DlgLnkEMail			: "כתובת הדוא''ל",
+DlgLnkEMailSubject	: "נושא ההודעה",
+DlgLnkEMailBody		: "גוף ההודעה",
+DlgLnkUpload		: "העלאה",
+DlgLnkBtnUpload		: "שליחה לשרת",
+
+DlgLnkTarget		: "מטרה",
+DlgLnkTargetFrame	: "<מסגרת>",
+DlgLnkTargetPopup	: "<חלון קופץ>",
+DlgLnkTargetBlank	: "חלון חדש (_blank)",
+DlgLnkTargetParent	: "חלון האב (_parent)",
+DlgLnkTargetSelf	: "באותו החלון (_self)",
+DlgLnkTargetTop		: "חלון ראשי (_top)",
+DlgLnkTargetFrameName	: "שם מסגרת היעד",
+DlgLnkPopWinName	: "שם החלון הקופץ",
+DlgLnkPopWinFeat	: "תכונות החלון הקופץ",
+DlgLnkPopResize		: "בעל גודל ניתן לשינוי",
+DlgLnkPopLocation	: "סרגל כתובת",
+DlgLnkPopMenu		: "סרגל תפריט",
+DlgLnkPopScroll		: "ניתן לגלילה",
+DlgLnkPopStatus		: "סרגל חיווי",
+DlgLnkPopToolbar	: "סרגל הכלים",
+DlgLnkPopFullScrn	: "מסך מלא (IE)",
+DlgLnkPopDependent	: "תלוי (Netscape)",
+DlgLnkPopWidth		: "רוחב",
+DlgLnkPopHeight		: "גובה",
+DlgLnkPopLeft		: "מיקום צד שמאל",
+DlgLnkPopTop		: "מיקום צד עליון",
+
+DlnLnkMsgNoUrl		: "נא להקליד את כתובת הקישור (URL)",
+DlnLnkMsgNoEMail	: "נא להקליד את כתובת הדוא''ל",
+DlnLnkMsgNoAnchor	: "נא לבחור עוגן במסמך",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "בחירת צבע",
+DlgColorBtnClear	: "איפוס",
+DlgColorHighlight	: "נוכחי",
+DlgColorSelected	: "נבחר",
+
+// Smiley Dialog
+DlgSmileyTitle		: "הוספת סמיילי",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "בחירת תו מיוחד",
+
+// Table Dialog
+DlgTableTitle		: "תכונות טבלה",
+DlgTableRows		: "שורות",
+DlgTableColumns		: "עמודות",
+DlgTableBorder		: "גודל מסגרת",
+DlgTableAlign		: "יישור",
+DlgTableAlignNotSet	: "<לא נקבע>",
+DlgTableAlignLeft	: "שמאל",
+DlgTableAlignCenter	: "מרכז",
+DlgTableAlignRight	: "ימין",
+DlgTableWidth		: "רוחב",
+DlgTableWidthPx		: "פיקסלים",
+DlgTableWidthPc		: "אחוז",
+DlgTableHeight		: "גובה",
+DlgTableCellSpace	: "מרווח תא",
+DlgTableCellPad		: "ריפוד תא",
+DlgTableCaption		: "כיתוב",
+DlgTableSummary		: "סיכום",
+
+// Table Cell Dialog
+DlgCellTitle		: "תכונות תא",
+DlgCellWidth		: "רוחב",
+DlgCellWidthPx		: "פיקסלים",
+DlgCellWidthPc		: "אחוז",
+DlgCellHeight		: "גובה",
+DlgCellWordWrap		: "גלילת שורות",
+DlgCellWordWrapNotSet	: "<לא נקבע>",
+DlgCellWordWrapYes	: "כן",
+DlgCellWordWrapNo	: "לא",
+DlgCellHorAlign		: "יישור אופקי",
+DlgCellHorAlignNotSet	: "<לא נקבע>",
+DlgCellHorAlignLeft	: "שמאל",
+DlgCellHorAlignCenter	: "מרכז",
+DlgCellHorAlignRight: "ימין",
+DlgCellVerAlign		: "יישור אנכי",
+DlgCellVerAlignNotSet	: "<לא נקבע>",
+DlgCellVerAlignTop	: "למעלה",
+DlgCellVerAlignMiddle	: "לאמצע",
+DlgCellVerAlignBottom	: "לתחתית",
+DlgCellVerAlignBaseline	: "קו תחתית",
+DlgCellRowSpan		: "טווח שורות",
+DlgCellCollSpan		: "טווח עמודות",
+DlgCellBackColor	: "צבע רקע",
+DlgCellBorderColor	: "צבע מסגרת",
+DlgCellBtnSelect	: "בחירה...",
+
+// Find Dialog
+DlgFindTitle		: "חיפוש",
+DlgFindFindBtn		: "חיפוש",
+DlgFindNotFoundMsg	: "הטקסט המבוקש לא נמצא.",
+
+// Replace Dialog
+DlgReplaceTitle			: "החלפה",
+DlgReplaceFindLbl		: "חיפוש מחרוזת:",
+DlgReplaceReplaceLbl	: "החלפה במחרוזת:",
+DlgReplaceCaseChk		: "התאמת סוג אותיות (Case)",
+DlgReplaceReplaceBtn	: "החלפה",
+DlgReplaceReplAllBtn	: "החלפה בכל העמוד",
+DlgReplaceWordChk		: "התאמה למילה המלאה",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות הדבקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl+V).",
+PasteErrorCut	: "הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות גזירה  אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl+X).",
+PasteErrorCopy	: "הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות העתקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl+C).",
+
+PasteAsText		: "הדבקה כטקסט פשוט",
+PasteFromWord	: "הדבקה מ-וורד",
+
+DlgPasteMsg2	: "אנא הדבק בתוך הקופסה באמצעות  (<STRONG>Ctrl+V</STRONG>) ולחץ על  <STRONG>אישור</STRONG>.",
+DlgPasteIgnoreFont		: "התעלם מהגדרות סוג פונט",
+DlgPasteRemoveStyles	: "הסר הגדרות סגנון",
+DlgPasteCleanBox		: "ניקוי קופסה",
+
+// Color Picker
+ColorAutomatic	: "אוטומטי",
+ColorMoreColors	: "צבעים נוספים...",
+
+// Document Properties
+DocProps		: "מאפיני מסמך",
+
+// Anchor Dialog
+DlgAnchorTitle		: "מאפיני נקודת עיגון",
+DlgAnchorName		: "שם לנקודת עיגון",
+DlgAnchorErrorName	: "אנא הזן שם לנקודת עיגון",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "לא נמצא במילון",
+DlgSpellChangeTo		: "שנה ל",
+DlgSpellBtnIgnore		: "התעלם",
+DlgSpellBtnIgnoreAll	: "התעלם מהכל",
+DlgSpellBtnReplace		: "החלף",
+DlgSpellBtnReplaceAll	: "החלף הכל",
+DlgSpellBtnUndo			: "החזר",
+DlgSpellNoSuggestions	: "- אין הצעות -",
+DlgSpellProgress		: "בדיקות איות בתהליך ....",
+DlgSpellNoMispell		: "בדיקות איות הסתיימה: לא נמצאו שגיעות כתיב",
+DlgSpellNoChanges		: "בדיקות איות הסתיימה: לא שונתה אף מילה",
+DlgSpellOneChange		: "בדיקות איות הסתיימה: שונתה מילה אחת",
+DlgSpellManyChanges		: "בדיקות איות הסתיימה: %1 מילים שונו",
+
+IeSpellDownload			: "בודק האיות לא מותקן, האם אתה מעוניין להוריד?",
+
+// Button Dialog
+DlgButtonText		: "טקסט (ערך)",
+DlgButtonType		: "סוג",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "שם",
+DlgCheckboxValue	: "ערך",
+DlgCheckboxSelected	: "בחור",
+
+// Form Dialog
+DlgFormName		: "שם",
+DlgFormAction	: "שלח אל",
+DlgFormMethod	: "סוג שליחה",
+
+// Select Field Dialog
+DlgSelectName		: "שם",
+DlgSelectValue		: "ערך",
+DlgSelectSize		: "גודל",
+DlgSelectLines		: "שורות",
+DlgSelectChkMulti	: "אפשר בחירות מרובות",
+DlgSelectOpAvail	: "אפשרויות זמינות",
+DlgSelectOpText		: "טקסט",
+DlgSelectOpValue	: "ערך",
+DlgSelectBtnAdd		: "הוסף",
+DlgSelectBtnModify	: "שנה",
+DlgSelectBtnUp		: "למעלה",
+DlgSelectBtnDown	: "למטה",
+DlgSelectBtnSetValue : "קבע כברירת מחדל",
+DlgSelectBtnDelete	: "מחק",
+
+// Textarea Dialog
+DlgTextareaName	: "שם",
+DlgTextareaCols	: "עמודות",
+DlgTextareaRows	: "שורות",
+
+// Text Field Dialog
+DlgTextName			: "שם",
+DlgTextValue		: "ערך",
+DlgTextCharWidth	: "רוחב באותיות",
+DlgTextMaxChars		: "מקסימות אותיות",
+DlgTextType			: "סוג",
+DlgTextTypeText		: "טקסט",
+DlgTextTypePass		: "סיסמה",
+
+// Hidden Field Dialog
+DlgHiddenName	: "שם",
+DlgHiddenValue	: "ערך",
+
+// Bulleted List Dialog
+BulletedListProp	: "מאפייני רשימה",
+NumberedListProp	: "מאפייני רשימה ממוספרת",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "סוג",
+DlgLstTypeCircle	: "עיגול",
+DlgLstTypeDisc		: "דיסק",
+DlgLstTypeSquare	: "מרובע",
+DlgLstTypeNumbers	: "מספרים (1, 2, 3)",
+DlgLstTypeLCase		: "אותיות קטנות (a, b, c)",
+DlgLstTypeUCase		: "אותיות גדולות (A, B, C)",
+DlgLstTypeSRoman	: "ספרות רומאיות קטנות (i, ii, iii)",
+DlgLstTypeLRoman	: "ספרות רומאיות גדולות (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "כללי",
+DlgDocBackTab		: "רקע",
+DlgDocColorsTab		: "צבעים וגבולות",
+DlgDocMetaTab		: "נתוני META",
+
+DlgDocPageTitle		: "כותרת דף",
+DlgDocLangDir		: "כיוון שפה",
+DlgDocLangDirLTR	: "שמאל לימין (LTR)",
+DlgDocLangDirRTL	: "ימין לשמאל (RTL)",
+DlgDocLangCode		: "קוד שפה",
+DlgDocCharSet		: "קידוד אותיות",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "קידוד אותיות אחר",
+
+DlgDocDocType		: "הגדרות סוג מסמך",
+DlgDocDocTypeOther	: "הגדרות סוג מסמך אחרות",
+DlgDocIncXHTML		: "כלול הגדרות XHTML",
+DlgDocBgColor		: "צבע רקע",
+DlgDocBgImage		: "URL לתמונת רקע",
+DlgDocBgNoScroll	: "רגע ללא גלילה",
+DlgDocCText			: "טקסט",
+DlgDocCLink			: "קישור",
+DlgDocCVisited		: "קישור שבוקר",
+DlgDocCActive		: " קישור פעיל",
+DlgDocMargins		: "גבולות דף",
+DlgDocMaTop			: "למעלה",
+DlgDocMaLeft		: "שמאלה",
+DlgDocMaRight		: "ימינה",
+DlgDocMaBottom		: "למטה",
+DlgDocMeIndex		: "מפתח עניינים של המסמך )מופרד בפסיק(",
+DlgDocMeDescr		: "תאור מסמך",
+DlgDocMeAuthor		: "מחבר",
+DlgDocMeCopy		: "זכויות יוצרים",
+DlgDocPreview		: "תצוגה מקדימה",
+
+// Templates Dialog
+Templates			: "תבניות",
+DlgTemplatesTitle	: "תביות תוכן",
+DlgTemplatesSelMsg	: "אנא בחר תבנית לפתיחה בעורך <BR>התוכן המקורי ימחק:",
+DlgTemplatesLoading	: "מעלה רשימת תבניות אנא המתן",
+DlgTemplatesNoTpl	: "(לא הוגדרו תבניות)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "אודות",
+DlgAboutBrowserInfoTab	: "גירסת דפדפן",
+DlgAboutLicenseTab	: "רשיון",
+DlgAboutVersion		: "גירסא",
+DlgAboutLicense		: "ברשיון תחת תנאי GNU Lesser General Public License",
+DlgAboutInfo		: "מידע נוסף ניתן למצוא כאן:"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/fi.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/fi.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/fi.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fi.js
+ * 	Finnish language file.
+ * 
+ * File Authors:
+ * 		Marko Korhonen (marko.korhonen@datafisher.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Piilota työkalurivi",
+ToolbarExpand		: "Näytä työkalurivi",
+
+// Toolbar Items and Context Menu
+Save				: "Tallenna",
+NewPage				: "Tyhjennä",
+Preview				: "Esikatsele",
+Cut					: "Leikkaa",
+Copy				: "Kopioi",
+Paste				: "Liitä",
+PasteText			: "Liitä tekstinä",
+PasteWord			: "Liitä Wordista",
+Print				: "Tulosta",
+SelectAll			: "Valitse kaikki",
+RemoveFormat		: "Poista muotoilu",
+InsertLinkLbl		: "Linkki",
+InsertLink			: "Lisää linkki/muokkaa linkkiä",
+RemoveLink			: "Poista linkki",
+Anchor				: "Lisää ankkuri/muokkaa ankkuria",
+InsertImageLbl		: "Kuva",
+InsertImage			: "Lisää kuva/muokkaa kuvaa",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Lisää/muokkaa Flashia",
+InsertTableLbl		: "Taulu",
+InsertTable			: "Lisää taulu/muokkaa taulua",
+InsertLineLbl		: "Murtoviiva",
+InsertLine			: "Lisää murtoviiva",
+InsertSpecialCharLbl: "Erikoismerkki",
+InsertSpecialChar	: "Lisää erikoismerkki",
+InsertSmileyLbl		: "Hymiö",
+InsertSmiley		: "Lisää hymiö",
+About				: "FCKeditorista",
+Bold				: "Lihavoitu",
+Italic				: "Kursivoitu",
+Underline			: "Alleviivattu",
+StrikeThrough		: "Yliviivattu",
+Subscript			: "Alaindeksi",
+Superscript			: "Yläindeksi",
+LeftJustify			: "Tasaa vasemmat reunat",
+CenterJustify		: "Keskitä",
+RightJustify		: "Tasaa oikeat reunat",
+BlockJustify		: "Tasaa molemmat reunat",
+DecreaseIndent		: "Pienennä sisennystä",
+IncreaseIndent		: "Suurenna sisennystä",
+Undo				: "Kumoa",
+Redo				: "Toista",
+NumberedListLbl		: "Numerointi",
+NumberedList		: "Lisää/poista numerointi",
+BulletedListLbl		: "Luottelomerkit",
+BulletedList		: "Lisää/poista luottelomerkit",
+ShowTableBorders	: "Näytä taulun rajat",
+ShowDetails			: "Näytä muotoilu",
+Style				: "Tyyli",
+FontFormat			: "Muotoilu",
+Font				: "Fontti",
+FontSize			: "Koko",
+TextColor			: "Tekstiväri",
+BGColor				: "Taustaväri",
+Source				: "Koodi",
+Find				: "Etsi",
+Replace				: "Korvaa",
+SpellCheck			: "Tarkista oikeinkirjoitus",
+UniversalKeyboard	: "Universaali näppäimistö",
+PageBreakLbl		: "Sivun vaihto",
+PageBreak			: "Lisää sivun vaihto",
+
+Form			: "Lomake",
+Checkbox		: "Valintaruutu",
+RadioButton		: "Radiopainike",
+TextField		: "Tekstikenttä",
+Textarea		: "Tekstilaatikko",
+HiddenField		: "Piilokenttä",
+Button			: "Painike",
+SelectionField	: "Valintakenttä",
+ImageButton		: "Kuvapainike",
+
+FitWindow		: "Suurenna editori koko ikkunaan",
+
+// Context Menu
+EditLink			: "Muokkaa linkkiä",
+CellCM				: "Solu",
+RowCM				: "Rivi",
+ColumnCM			: "Sarake",
+InsertRow			: "Lisää rivi",
+DeleteRows			: "Poista rivit",
+InsertColumn		: "Lisää sarake",
+DeleteColumns		: "Poista sarakkeet",
+InsertCell			: "Lisää solu",
+DeleteCells			: "Poista solut",
+MergeCells			: "Yhdistä solut",
+SplitCell			: "Jaa solu",
+TableDelete			: "Poista taulu",
+CellProperties		: "Solun ominaisuudet",
+TableProperties		: "Taulun ominaisuudet",
+ImageProperties		: "Kuvan ominaisuudet",
+FlashProperties		: "Flash ominaisuudet",
+
+AnchorProp			: "Ankkurin ominaisuudet",
+ButtonProp			: "Painikkeen ominaisuudet",
+CheckboxProp		: "Valintaruudun ominaisuudet",
+HiddenFieldProp		: "Piilokentän ominaisuudet",
+RadioButtonProp		: "Radiopainikkeen ominaisuudet",
+ImageButtonProp		: "Kuvapainikkeen ominaisuudet",
+TextFieldProp		: "Tekstikentän ominaisuudet",
+SelectionFieldProp	: "Valintakentän ominaisuudet",
+TextareaProp		: "Tekstilaatikon ominaisuudet",
+FormProp			: "Lomakkeen ominaisuudet",
+
+FontFormats			: "Normaali;Muotoiltu;Osoite;Otsikko 1;Otsikko 2;Otsikko 3;Otsikko 4;Otsikko 5;Otsikko 6",
+
+// Alerts and Messages
+ProcessingXHTML		: "Prosessoidaan XHTML:ää. Odota hetki...",
+Done				: "Valmis",
+PasteWordConfirm	: "Teksti, jonka haluat liittää, näyttää olevan kopioitu Wordista. Haluatko puhdistaa sen ennen liittämistä?",
+NotCompatiblePaste	: "Tämä komento toimii vain Internet Explorer 5.5:ssa tai uudemmassa. Haluatko liittää ilman puhdistusta?",
+UnknownToolbarItem	: "Tuntemanton työkalu \"%1\"",
+UnknownCommand		: "Tuntematon komento \"%1\"",
+NotImplemented		: "Komentoa ei ole liitetty sovellukseen",
+UnknownToolbarSet	: "Työkalukokonaisuus \"%1\" ei ole olemassa",
+NoActiveX			: "Selaimesi turvallisuusasetukset voivat rajoittaa joitain editorin ominaisuuksia. Sinun pitää ottaa käyttöön asetuksista \"Suorita ActiveX komponentit ja -plugin-laajennukset\". Saatat kohdata virheitä ja huomata puuttuvia ominaisuuksia.",
+BrowseServerBlocked : "Resurssiselainta ei voitu avata. Varmista, että ponnahdusikkunoiden estäjät eivät ole päällä.",
+DialogBlocked		: "Apuikkunaa ei voitu avaata. Varmista, että ponnahdusikkunoiden estäjät eivät ole päällä.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Peruuta",
+DlgBtnClose			: "Sulje",
+DlgBtnBrowseServer	: "Selaa palvelinta",
+DlgAdvancedTag		: "Lisäominaisuudet",
+DlgOpOther			: "Muut",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Lisää URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<ei asetettu>",
+DlgGenId			: "Tunniste",
+DlgGenLangDir		: "Kielen suunta",
+DlgGenLangDirLtr	: "Vasemmalta oikealle (LTR)",
+DlgGenLangDirRtl	: "Oikealta vasemmalle (RTL)",
+DlgGenLangCode		: "Kielikoodi",
+DlgGenAccessKey		: "Pikanäppäin",
+DlgGenName			: "Nimi",
+DlgGenTabIndex		: "Tabulaattori indeksi",
+DlgGenLongDescr		: "Pitkän kuvauksen URL",
+DlgGenClass			: "Tyyliluokat",
+DlgGenTitle			: "Avustava otsikko",
+DlgGenContType		: "Avustava sisällön tyyppi",
+DlgGenLinkCharset	: "Linkitetty kirjaimisto",
+DlgGenStyle			: "Tyyli",
+
+// Image Dialog
+DlgImgTitle			: "Kuvan ominaisuudet",
+DlgImgInfoTab		: "Kuvan tiedot",
+DlgImgBtnUpload		: "Lähetä palvelimelle",
+DlgImgURL			: "Osoite",
+DlgImgUpload		: "Lisää kuva",
+DlgImgAlt			: "Vaihtoehtoinen teksti",
+DlgImgWidth			: "Leveys",
+DlgImgHeight		: "Korkeus",
+DlgImgLockRatio		: "Lukitse suhteet",
+DlgBtnResetSize		: "Alkuperäinen koko",
+DlgImgBorder		: "Raja",
+DlgImgHSpace		: "Vaakatila",
+DlgImgVSpace		: "Pystytila",
+DlgImgAlign			: "Kohdistus",
+DlgImgAlignLeft		: "Vasemmalle",
+DlgImgAlignAbsBottom: "Aivan alas",
+DlgImgAlignAbsMiddle: "Aivan keskelle",
+DlgImgAlignBaseline	: "Alas (teksti)",
+DlgImgAlignBottom	: "Alas",
+DlgImgAlignMiddle	: "Keskelle",
+DlgImgAlignRight	: "Oikealle",
+DlgImgAlignTextTop	: "Ylös (teksti)",
+DlgImgAlignTop		: "Ylös",
+DlgImgPreview		: "Esikatselu",
+DlgImgAlertUrl		: "Kirjoita kuvan osoite (URL)",
+DlgImgLinkTab		: "Linkki",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash ominaisuudet",
+DlgFlashChkPlay		: "Automaattinen käynnistys",
+DlgFlashChkLoop		: "Toisto",
+DlgFlashChkMenu		: "Näytä Flash-valikko",
+DlgFlashScale		: "Levitä",
+DlgFlashScaleAll	: "Näytä kaikki",
+DlgFlashScaleNoBorder	: "Ei rajaa",
+DlgFlashScaleFit	: "Tarkka koko",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Linkki",
+DlgLnkInfoTab		: "Linkin tiedot",
+DlgLnkTargetTab		: "Kohde",
+
+DlgLnkType			: "Linkkityyppi",
+DlgLnkTypeURL		: "Osoite",
+DlgLnkTypeAnchor	: "Ankkuri tässä sivussa",
+DlgLnkTypeEMail		: "Sähköposti",
+DlgLnkProto			: "Protokolla",
+DlgLnkProtoOther	: "<muu>",
+DlgLnkURL			: "Osoite",
+DlgLnkAnchorSel		: "Valitse ankkuri",
+DlgLnkAnchorByName	: "Ankkurin nimen mukaan",
+DlgLnkAnchorById	: "Ankkurin ID:n mukaan",
+DlgLnkNoAnchors		: "<Ei ankkureita tässä dokumentissa>",
+DlgLnkEMail			: "Sähköpostiosoite",
+DlgLnkEMailSubject	: "Aihe",
+DlgLnkEMailBody		: "Viesti",
+DlgLnkUpload		: "Lisää tiedosto",
+DlgLnkBtnUpload		: "Lähetä palvelimelle",
+
+DlgLnkTarget		: "Kohde",
+DlgLnkTargetFrame	: "<kehys>",
+DlgLnkTargetPopup	: "<popup ikkuna>",
+DlgLnkTargetBlank	: "Uusi ikkuna (_blank)",
+DlgLnkTargetParent	: "Emoikkuna (_parent)",
+DlgLnkTargetSelf	: "Sama ikkuna (_self)",
+DlgLnkTargetTop		: "Päällimmäisin ikkuna (_top)",
+DlgLnkTargetFrameName	: "Kohdekehyksen nimi",
+DlgLnkPopWinName	: "Popup ikkunan nimi",
+DlgLnkPopWinFeat	: "Popup ikkunan ominaisuudet",
+DlgLnkPopResize		: "Venytettävä",
+DlgLnkPopLocation	: "Osoiterivi",
+DlgLnkPopMenu		: "Valikkorivi",
+DlgLnkPopScroll		: "Vierityspalkit",
+DlgLnkPopStatus		: "Tilarivi",
+DlgLnkPopToolbar	: "Vakiopainikkeet",
+DlgLnkPopFullScrn	: "Täysi ikkuna (IE)",
+DlgLnkPopDependent	: "Riippuva (Netscape)",
+DlgLnkPopWidth		: "Leveys",
+DlgLnkPopHeight		: "Korkeus",
+DlgLnkPopLeft		: "Vasemmalta (px)",
+DlgLnkPopTop		: "Ylhäältä (px)",
+
+DlnLnkMsgNoUrl		: "Linkille on kirjoitettava URL",
+DlnLnkMsgNoEMail	: "Kirjoita sähköpostiosoite",
+DlnLnkMsgNoAnchor	: "Valitse ankkuri",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Valitse väri",
+DlgColorBtnClear	: "Tyhjennä",
+DlgColorHighlight	: "Kohdalla",
+DlgColorSelected	: "Valittu",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Lisää hymiö",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Valitse erikoismerkki",
+
+// Table Dialog
+DlgTableTitle		: "Taulun ominaisuudet",
+DlgTableRows		: "Rivit",
+DlgTableColumns		: "Sarakkeet",
+DlgTableBorder		: "Rajan paksuus",
+DlgTableAlign		: "Kohdistus",
+DlgTableAlignNotSet	: "<ei asetettu>",
+DlgTableAlignLeft	: "Vasemmalle",
+DlgTableAlignCenter	: "Keskelle",
+DlgTableAlignRight	: "Oikealle",
+DlgTableWidth		: "Leveys",
+DlgTableWidthPx		: "pikseliä",
+DlgTableWidthPc		: "prosenttia",
+DlgTableHeight		: "Korkeus",
+DlgTableCellSpace	: "Solujen väli",
+DlgTableCellPad		: "Solujen sisennys",
+DlgTableCaption		: "Otsikko",
+DlgTableSummary		: "Yhteenveto",
+
+// Table Cell Dialog
+DlgCellTitle		: "Solun ominaisuudet",
+DlgCellWidth		: "Leveys",
+DlgCellWidthPx		: "pikseliä",
+DlgCellWidthPc		: "prosenttia",
+DlgCellHeight		: "Korkeus",
+DlgCellWordWrap		: "Tekstikierrätys",
+DlgCellWordWrapNotSet	: "<Ei asetettu>",
+DlgCellWordWrapYes	: "Kyllä",
+DlgCellWordWrapNo	: "Ei",
+DlgCellHorAlign		: "Vaakakohdistus",
+DlgCellHorAlignNotSet	: "<Ei asetettu>",
+DlgCellHorAlignLeft	: "Vasemmalle",
+DlgCellHorAlignCenter	: "Keskelle",
+DlgCellHorAlignRight: "Oikealle",
+DlgCellVerAlign		: "Pystykohdistus",
+DlgCellVerAlignNotSet	: "<Ei asetettu>",
+DlgCellVerAlignTop	: "Ylös",
+DlgCellVerAlignMiddle	: "Keskelle",
+DlgCellVerAlignBottom	: "Alas",
+DlgCellVerAlignBaseline	: "Tekstin alas",
+DlgCellRowSpan		: "Rivin jatkuvuus",
+DlgCellCollSpan		: "Sarakkeen jatkuvuus",
+DlgCellBackColor	: "Taustaväri",
+DlgCellBorderColor	: "Rajan väri",
+DlgCellBtnSelect	: "Valitse...",
+
+// Find Dialog
+DlgFindTitle		: "Etsi",
+DlgFindFindBtn		: "Etsi",
+DlgFindNotFoundMsg	: "Etsittyä tekstiä ei löytynyt.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Korvaa",
+DlgReplaceFindLbl		: "Etsi mitä:",
+DlgReplaceReplaceLbl	: "Korvaa tällä:",
+DlgReplaceCaseChk		: "Sama kirjainkoko",
+DlgReplaceReplaceBtn	: "Korvaa",
+DlgReplaceReplAllBtn	: "Korvaa kaikki",
+DlgReplaceWordChk		: "Koko sana",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "Selaimesi turva-asetukset eivät salli editorin toteuttaa liittämistä. Käytä näppäimistöä liittämiseen (Ctrl+V).",
+PasteErrorCut	: "Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).",
+PasteErrorCopy	: "Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).",
+
+PasteAsText		: "Liitä tekstinä",
+PasteFromWord	: "Liitä Wordista",
+
+DlgPasteMsg2	: "Liitä painamalla (<STRONG>Ctrl+V</STRONG>) ja painamalla <STRONG>OK</STRONG>.",
+DlgPasteIgnoreFont		: "Jätä huomioimatta fonttimääritykset",
+DlgPasteRemoveStyles	: "Poista tyylimääritykset",
+DlgPasteCleanBox		: "Tyhjennä",
+
+// Color Picker
+ColorAutomatic	: "Automaattinen",
+ColorMoreColors	: "Lisää värejä...",
+
+// Document Properties
+DocProps		: "Dokumentin ominaisuudet",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ankkurin ominaisuudet",
+DlgAnchorName		: "Nimi",
+DlgAnchorErrorName	: "Ankkurille on kirjoitettava nimi",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Ei sanakirjassa",
+DlgSpellChangeTo		: "Vaihda",
+DlgSpellBtnIgnore		: "Jätä huomioimatta",
+DlgSpellBtnIgnoreAll	: "Jätä kaikki huomioimatta",
+DlgSpellBtnReplace		: "Korvaa",
+DlgSpellBtnReplaceAll	: "Korvaa kaikki",
+DlgSpellBtnUndo			: "Kumoa",
+DlgSpellNoSuggestions	: "Ei ehdotuksia",
+DlgSpellProgress		: "Tarkistus käynnissä...",
+DlgSpellNoMispell		: "Tarkistus valmis: Ei virheitä",
+DlgSpellNoChanges		: "Tarkistus valmis: Yhtään sanaa ei muutettu",
+DlgSpellOneChange		: "Tarkistus valmis: Yksi sana muutettiin",
+DlgSpellManyChanges		: "Tarkistus valmis: %1 sanaa muutettiin",
+
+IeSpellDownload			: "Oikeinkirjoituksen tarkistusta ei ole asennettu. Haluatko ladata sen nyt?",
+
+// Button Dialog
+DlgButtonText		: "Teksti (arvo)",
+DlgButtonType		: "Tyyppi",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nimi",
+DlgCheckboxValue	: "Arvo",
+DlgCheckboxSelected	: "Valittu",
+
+// Form Dialog
+DlgFormName		: "Nimi",
+DlgFormAction	: "Toiminto",
+DlgFormMethod	: "Tapa",
+
+// Select Field Dialog
+DlgSelectName		: "Nimi",
+DlgSelectValue		: "Arvo",
+DlgSelectSize		: "Koko",
+DlgSelectLines		: "Rivit",
+DlgSelectChkMulti	: "Salli usea valinta",
+DlgSelectOpAvail	: "Ominaisuudet",
+DlgSelectOpText		: "Teksti",
+DlgSelectOpValue	: "Arvo",
+DlgSelectBtnAdd		: "Lisää",
+DlgSelectBtnModify	: "Muuta",
+DlgSelectBtnUp		: "Ylös",
+DlgSelectBtnDown	: "Alas",
+DlgSelectBtnSetValue : "Aseta valituksi",
+DlgSelectBtnDelete	: "Poista",
+
+// Textarea Dialog
+DlgTextareaName	: "Nimi",
+DlgTextareaCols	: "Sarakkeita",
+DlgTextareaRows	: "Rivejä",
+
+// Text Field Dialog
+DlgTextName			: "Nimi",
+DlgTextValue		: "Arvo",
+DlgTextCharWidth	: "Leveys",
+DlgTextMaxChars		: "Maksimi merkkimäärä",
+DlgTextType			: "Tyyppi",
+DlgTextTypeText		: "Teksti",
+DlgTextTypePass		: "Salasana",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nimi",
+DlgHiddenValue	: "Arvo",
+
+// Bulleted List Dialog
+BulletedListProp	: "Luettelon ominaisuudet",
+NumberedListProp	: "Numeroinnin ominaisuudet",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tyyppi",
+DlgLstTypeCircle	: "Kehä",
+DlgLstTypeDisc		: "Ympyrä",
+DlgLstTypeSquare	: "Neliö",
+DlgLstTypeNumbers	: "Numerot (1, 2, 3)",
+DlgLstTypeLCase		: "Pienet kirjaimet (a, b, c)",
+DlgLstTypeUCase		: "Isot kirjaimet (A, B, C)",
+DlgLstTypeSRoman	: "Pienet roomalaiset numerot (i, ii, iii)",
+DlgLstTypeLRoman	: "Isot roomalaiset numerot (Ii, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Yleiset",
+DlgDocBackTab		: "Tausta",
+DlgDocColorsTab		: "Värit ja marginaalit",
+DlgDocMetaTab		: "Meta-tieto",
+
+DlgDocPageTitle		: "Sivun nimi",
+DlgDocLangDir		: "Kielen suunta",
+DlgDocLangDirLTR	: "Vasemmalta oikealle (LTR)",
+DlgDocLangDirRTL	: "Oikealta vasemmalle (RTL)",
+DlgDocLangCode		: "Kielikoodi",
+DlgDocCharSet		: "Merkistäkoodaus",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Muu merkistäkoodaus",
+
+DlgDocDocType		: "Dokumentin tyyppi",
+DlgDocDocTypeOther	: "Muu dokumentin tyyppi",
+DlgDocIncXHTML		: "Lisää XHTML julistukset",
+DlgDocBgColor		: "Taustaväri",
+DlgDocBgImage		: "Taustakuva",
+DlgDocBgNoScroll	: "Paikallaanpysyvä tausta",
+DlgDocCText			: "Teksti",
+DlgDocCLink			: "Linkki",
+DlgDocCVisited		: "Vierailtu linkki",
+DlgDocCActive		: "Aktiivinen linkki",
+DlgDocMargins		: "Sivun marginaalit",
+DlgDocMaTop			: "Ylä",
+DlgDocMaLeft		: "Vasen",
+DlgDocMaRight		: "Oikea",
+DlgDocMaBottom		: "Ala",
+DlgDocMeIndex		: "Hakusanat (pilkulla erotettuna)",
+DlgDocMeDescr		: "Kuvaus",
+DlgDocMeAuthor		: "Tekijä",
+DlgDocMeCopy		: "Tekijänoikeudet",
+DlgDocPreview		: "Esikatselu",
+
+// Templates Dialog
+Templates			: "Pohjat",
+DlgTemplatesTitle	: "Sisältöpohjat",
+DlgTemplatesSelMsg	: "Valitse pohja editoriin<br>(aiempi sisältö menetetään):",
+DlgTemplatesLoading	: "Ladataan listaa pohjista. Hetkinen...",
+DlgTemplatesNoTpl	: "(Ei määriteltyjä pohjia)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Editorista",
+DlgAboutBrowserInfoTab	: "Selaimen tiedot",
+DlgAboutLicenseTab	: "Lisenssi",
+DlgAboutVersion		: "versio",
+DlgAboutLicense		: "Lisenssi: GNU Lesser General Public License",
+DlgAboutInfo		: "Lisää tietoa osoitteesta"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/hi.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/hi.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/hi.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: hi.js
+ * 	Hindi language file.
+ * 
+ * File Authors:
+ * 		Utkarshraj Atmaram (utcursch@gmail.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "टूलबार सिमटायें",
+ToolbarExpand		: "टूलबार का विस्तार करें",
+
+// Toolbar Items and Context Menu
+Save				: "सेव",
+NewPage				: "नया पेज",
+Preview				: "प्रीव्यू",
+Cut					: "कट",
+Copy				: "कॉपी",
+Paste				: "पेस्ट",
+PasteText			: "पेस्ट (सादा टॅक्स्ट)",
+PasteWord			: "पेस्ट (वर्ड से)",
+Print				: "प्रिन्ट",
+SelectAll			: "सब सॅलॅक्ट करें",
+RemoveFormat		: "फ़ॉर्मैट हटायें",
+InsertLinkLbl		: "लिंक",
+InsertLink			: "लिंक इन्सर्ट/संपादन",
+RemoveLink			: "लिंक हटायें",
+Anchor				: "ऐंकर इन्सर्ट/संपादन",
+InsertImageLbl		: "तस्वीर",
+InsertImage			: "तस्वीर इन्सर्ट/संपादन",
+InsertFlashLbl		: "फ़्लैश",
+InsertFlash			: "फ़्लैश इन्सर्ट/संपादन",
+InsertTableLbl		: "टेबल",
+InsertTable			: "टेबल इन्सर्ट/संपादन",
+InsertLineLbl		: "रेखा",
+InsertLine			: "हॉरिज़ॉन्टल रेखा इन्सर्ट करें",
+InsertSpecialCharLbl: "विशेष करॅक्टर",
+InsertSpecialChar	: "विशेष करॅक्टर इन्सर्ट करें",
+InsertSmileyLbl		: "स्माइली",
+InsertSmiley		: "स्माइली इन्सर्ट करें",
+About				: "FCKeditor के बारे में",
+Bold				: "बोल्ड",
+Italic				: "इटैलिक",
+Underline			: "रेखांकण",
+StrikeThrough		: "स्ट्राइक थ्रू",
+Subscript			: "अधोलेख",
+Superscript			: "अभिलेख",
+LeftJustify			: "बायीं तरफ",
+CenterJustify		: "बीच में",
+RightJustify		: "दायीं तरफ",
+BlockJustify		: "ब्लॉक जस्टीफ़ाई",
+DecreaseIndent		: "इन्डॅन्ट कम करें",
+IncreaseIndent		: "इन्डॅन्ट बढ़ायें",
+Undo				: "अन्डू",
+Redo				: "रीडू",
+NumberedListLbl		: "अंकीय सूची",
+NumberedList		: "अंकीय सूची इन्सर्ट/संपादन",
+BulletedListLbl		: "बुलॅट सूची",
+BulletedList		: "बुलॅट सूची इन्सर्ट/संपादन",
+ShowTableBorders	: "टेबल बॉर्डरयें दिखायें",
+ShowDetails			: "ज्यादा   दिखायें",
+Style				: "स्टाइल",
+FontFormat			: "फ़ॉर्मैट",
+Font				: "फ़ॉन्ट",
+FontSize			: "साइज़",
+TextColor			: "टेक्स्ट रंग",
+BGColor				: "बैक्ग्राउन्ड रंग",
+Source				: "सोर्स",
+Find				: "खोजें",
+Replace				: "रीप्लेस",
+SpellCheck			: "वर्तनी (स्पेलिंग) जाँच",
+UniversalKeyboard	: "यूनीवर्सल कीबोर्ड",
+PageBreakLbl		: "पेज ब्रेक",
+PageBreak			: "पेज ब्रेक इन्सर्ट् करें",
+
+Form			: "फ़ॉर्म",
+Checkbox		: "चॅक बॉक्स",
+RadioButton		: "रेडिओ बटन",
+TextField		: "टेक्स्ट फ़ील्ड",
+Textarea		: "टेक्स्ट एरिया",
+HiddenField		: "गुप्त फ़ील्ड",
+Button			: "बटन",
+SelectionField	: "चुनाव फ़ील्ड",
+ImageButton		: "तस्वीर बटन",
+
+FitWindow		: "एडिटर साइज़ को चरम सीमा तक बढ़ायें",
+
+// Context Menu
+EditLink			: "लिंक संपादन",
+CellCM				: "खाना",
+RowCM				: "पंक्ति",
+ColumnCM			: "कालम",
+InsertRow			: "पंक्ति इन्सर्ट करें",
+DeleteRows			: "पंक्तियाँ डिलीट करें",
+InsertColumn		: "कॉलम इन्सर्ट करें",
+DeleteColumns		: "कॉलम डिलीट करें",
+InsertCell			: "सॅल इन्सर्ट करें",
+DeleteCells			: "सॅल डिलीट करें",
+MergeCells			: "सॅल मिलायें",
+SplitCell			: "सॅल अलग करें",
+TableDelete			: "टेबल डिलीट करें",
+CellProperties		: "सॅल प्रॉपर्टीज़",
+TableProperties		: "टेबल प्रॉपर्टीज़",
+ImageProperties		: "तस्वीर प्रॉपर्टीज़",
+FlashProperties		: "फ़्लैश प्रॉपर्टीज़",
+
+AnchorProp			: "ऐंकर प्रॉपर्टीज़",
+ButtonProp			: "बटन प्रॉपर्टीज़",
+CheckboxProp		: "चॅक बॉक्स प्रॉपर्टीज़",
+HiddenFieldProp		: "गुप्त फ़ील्ड प्रॉपर्टीज़",
+RadioButtonProp		: "रेडिओ बटन प्रॉपर्टीज़",
+ImageButtonProp		: "तस्वीर बटन प्रॉपर्टीज़",
+TextFieldProp		: "टेक्स्ट फ़ील्ड प्रॉपर्टीज़",
+SelectionFieldProp	: "चुनाव फ़ील्ड प्रॉपर्टीज़",
+TextareaProp		: "टेक्स्त एरिया प्रॉपर्टीज़",
+FormProp			: "फ़ॉर्म प्रॉपर्टीज़",
+
+FontFormats			: "साधारण;फ़ॉर्मैटॅड;पता;शीर्षक 1;शीर्षक 2;शीर्षक 3;शीर्षक 4;शीर्षक 5;शीर्षक 6;शीर्षक (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML प्रोसॅस हो रहा है। ज़रा ठहरें...",
+Done				: "पूरा हुआ",
+PasteWordConfirm	: "आप जो टेक्स्ट पेस्ट करना चाहते हैं, वह वर्ड से कॉपी किया हुआ लग रहा है। क्या पेस्ट करने से पहले आप इसे साफ़ करना चाहेंगे?",
+NotCompatiblePaste	: "यह कमांड इन्टरनॅट एक्स्प्लोरर(Internet Explorer) 5.5 या उसके बाद के वर्ज़न के लिए ही उपलब्ध है। क्या आप बिना साफ़ किए पेस्ट करना चाहेंगे?",
+UnknownToolbarItem	: "अनजान टूलबार आइटम \"%1\"",
+UnknownCommand		: "अनजान कमान्ड \"%1\"",
+NotImplemented		: "कमान्ड इम्प्लीमॅन्ट नहीं किया गया है",
+UnknownToolbarSet	: "टूलबार सॅट \"%1\" उपलब्ध नहीं है",
+NoActiveX			: "आपके ब्राउज़र् की सुरक्शा सेटिंग्स् एडिटर की कुछ् फ़ीचरों को सीमित कर् सकती हैं। क्रिपया \"Run ActiveX controls and plug-ins\" विकल्प को एनेबल करें. आपको एरर्स् और गायब फ़ीचर्स् का अनुभव हो सकता है।",
+BrowseServerBlocked : "रिसोर्सेज़ ब्राउज़र् नहीं खोला जा सका। क्रिपया सभी पॉप्-अप् ब्लॉकर्स् को डिसेबल करें।",
+DialogBlocked		: "डायलग विन्डो नहीं खोला जा सका। क्रिपया सभी पॉप्-अप् ब्लॉकर्स् को डिसेबल करें।",
+
+// Dialogs
+DlgBtnOK			: "ठीक है",
+DlgBtnCancel		: "रद्द करें",
+DlgBtnClose			: "बन्द करें",
+DlgBtnBrowseServer	: "सर्वर ब्राउज़ करें",
+DlgAdvancedTag		: "ऍड्वान्स्ड",
+DlgOpOther			: "<अन्य>",
+DlgInfoTab			: "सूचना",
+DlgAlertUrl			: "URL इन्सर्ट करें",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<सॅट नहीं>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "भाषा लिखने की दिशा",
+DlgGenLangDirLtr	: "बायें से दायें (LTR)",
+DlgGenLangDirRtl	: "दायें से बायें (RTL)",
+DlgGenLangCode		: "भाषा कोड",
+DlgGenAccessKey		: "ऍक्सॅस की",
+DlgGenName			: "नाम",
+DlgGenTabIndex		: "टैब इन्डॅक्स",
+DlgGenLongDescr		: "अधिक विवरण के लिए URL",
+DlgGenClass			: "स्टाइल-शीट क्लास",
+DlgGenTitle			: "परामर्श शीर्शक",
+DlgGenContType		: "परामर्श कन्टॅन्ट प्रकार",
+DlgGenLinkCharset	: "लिंक रिसोर्स करॅक्टर सॅट",
+DlgGenStyle			: "स्टाइल",
+
+// Image Dialog
+DlgImgTitle			: "तस्वीर प्रॉपर्टीज़",
+DlgImgInfoTab		: "तस्वीर की जानकारी",
+DlgImgBtnUpload		: "इसे सर्वर को भेजें",
+DlgImgURL			: "URL",
+DlgImgUpload		: "अपलोड",
+DlgImgAlt			: "वैकल्पिक टेक्स्ट",
+DlgImgWidth			: "चौड़ाई",
+DlgImgHeight		: "ऊँचाई",
+DlgImgLockRatio		: "लॉक अनुपात",
+DlgBtnResetSize		: "रीसॅट साइज़",
+DlgImgBorder		: "बॉर्डर",
+DlgImgHSpace		: "हॉरिज़ॉन्टल स्पेस",
+DlgImgVSpace		: "वर्टिकल स्पेस",
+DlgImgAlign			: "ऍलाइन",
+DlgImgAlignLeft		: "दायें",
+DlgImgAlignAbsBottom: "Abs नीचे",
+DlgImgAlignAbsMiddle: "Abs ऊपर",
+DlgImgAlignBaseline	: "मूल रेखा",
+DlgImgAlignBottom	: "नीचे",
+DlgImgAlignMiddle	: "मध्य",
+DlgImgAlignRight	: "दायें",
+DlgImgAlignTextTop	: "टेक्स्ट ऊपर",
+DlgImgAlignTop		: "ऊपर",
+DlgImgPreview		: "प्रीव्यू",
+DlgImgAlertUrl		: "तस्वीर का URL टाइप करें ",
+DlgImgLinkTab		: "लिंक",
+
+// Flash Dialog
+DlgFlashTitle		: "फ़्लैश प्रॉपर्टीज़",
+DlgFlashChkPlay		: "ऑटो प्ले",
+DlgFlashChkLoop		: "लूप",
+DlgFlashChkMenu		: "फ़्लैश मॅन्यू का प्रयोग करें",
+DlgFlashScale		: "स्केल",
+DlgFlashScaleAll	: "सभी दिखायें",
+DlgFlashScaleNoBorder	: "कोई बॉर्डर नहीं",
+DlgFlashScaleFit	: "बिल्कुल फ़िट",
+
+// Link Dialog
+DlgLnkWindowTitle	: "लिंक",
+DlgLnkInfoTab		: "लिंक  ",
+DlgLnkTargetTab		: "टार्गेट",
+
+DlgLnkType			: "लिंक प्रकार",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "इस पेज का ऐंकर",
+DlgLnkTypeEMail		: "ई-मेल",
+DlgLnkProto			: "प्रोटोकॉल",
+DlgLnkProtoOther	: "<अन्य>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "ऐंकर चुनें",
+DlgLnkAnchorByName	: "ऐंकर नाम से",
+DlgLnkAnchorById	: "ऍलीमॅन्ट Id से",
+DlgLnkNoAnchors		: "<डॉक्यूमॅन्ट में ऐंकर्स की संख्या>",
+DlgLnkEMail			: "ई-मेल पता",
+DlgLnkEMailSubject	: "संदेश विषय",
+DlgLnkEMailBody		: "संदेश",
+DlgLnkUpload		: "अपलोड",
+DlgLnkBtnUpload		: "इसे सर्वर को भेजें",
+
+DlgLnkTarget		: "टार्गेट",
+DlgLnkTargetFrame	: "<फ़्रेम>",
+DlgLnkTargetPopup	: "<पॉप-अप विन्डो>",
+DlgLnkTargetBlank	: "नया विन्डो (_blank)",
+DlgLnkTargetParent	: "मूल विन्डो (_parent)",
+DlgLnkTargetSelf	: "इसी विन्डो (_self)",
+DlgLnkTargetTop		: "शीर्ष विन्डो (_top)",
+DlgLnkTargetFrameName	: "टार्गेट फ़्रेम का नाम",
+DlgLnkPopWinName	: "पॉप-अप विन्डो का नाम",
+DlgLnkPopWinFeat	: "पॉप-अप विन्डो फ़ीचर्स",
+DlgLnkPopResize		: "साइज़ बदला जा सकता है",
+DlgLnkPopLocation	: "लोकेशन बार",
+DlgLnkPopMenu		: "मॅन्यू बार",
+DlgLnkPopScroll		: "स्क्रॉल बार",
+DlgLnkPopStatus		: "स्टेटस बार",
+DlgLnkPopToolbar	: "टूल बार",
+DlgLnkPopFullScrn	: "फ़ुल स्क्रीन (IE)",
+DlgLnkPopDependent	: "डिपेन्डॅन्ट (Netscape)",
+DlgLnkPopWidth		: "चौड़ाई",
+DlgLnkPopHeight		: "ऊँचाई",
+DlgLnkPopLeft		: "बायीं तरफ",
+DlgLnkPopTop		: "दायीं तरफ",
+
+DlnLnkMsgNoUrl		: "लिंक URL टाइप करें",
+DlnLnkMsgNoEMail	: "ई-मेल पता टाइप करें",
+DlnLnkMsgNoAnchor	: "ऐंकर चुनें",
+DlnLnkMsgInvPopName	: "पॉप-अप का नाम अल्फाबेट से शुरू होना चाहिये और उसमें स्पेस नहीं होने चाहिए",
+
+// Color Dialog
+DlgColorTitle		: "रंग चुनें",
+DlgColorBtnClear	: "साफ़ करें",
+DlgColorHighlight	: "हाइलाइट",
+DlgColorSelected	: "सॅलॅक्टॅड",
+
+// Smiley Dialog
+DlgSmileyTitle		: "स्माइली इन्सर्ट करें",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "विशेष करॅक्टर चुनें",
+
+// Table Dialog
+DlgTableTitle		: "टेबल प्रॉपर्टीज़",
+DlgTableRows		: "पंक्तियाँ",
+DlgTableColumns		: "कॉलम",
+DlgTableBorder		: "बॉर्डर साइज़",
+DlgTableAlign		: "ऍलाइन्मॅन्ट",
+DlgTableAlignNotSet	: "<सॅट नहीं>",
+DlgTableAlignLeft	: "दायें",
+DlgTableAlignCenter	: "बीच में",
+DlgTableAlignRight	: "बायें",
+DlgTableWidth		: "चौड़ाई",
+DlgTableWidthPx		: "पिक्सॅल",
+DlgTableWidthPc		: "प्रतिशत",
+DlgTableHeight		: "ऊँचाई",
+DlgTableCellSpace	: "सॅल अंतर",
+DlgTableCellPad		: "सॅल पैडिंग",
+DlgTableCaption		: "शीर्षक",
+DlgTableSummary		: "सारांश",
+
+// Table Cell Dialog
+DlgCellTitle		: "सॅल प्रॉपर्टीज़",
+DlgCellWidth		: "चौड़ाई",
+DlgCellWidthPx		: "पिक्सॅल",
+DlgCellWidthPc		: "प्रतिशत",
+DlgCellHeight		: "ऊँचाई",
+DlgCellWordWrap		: "वर्ड रैप",
+DlgCellWordWrapNotSet	: "<सॅट नहीं>",
+DlgCellWordWrapYes	: "हाँ",
+DlgCellWordWrapNo	: "नहीं",
+DlgCellHorAlign		: "हॉरिज़ॉन्टल ऍलाइन्मॅन्ट",
+DlgCellHorAlignNotSet	: "<सॅट नहीं>",
+DlgCellHorAlignLeft	: "दायें",
+DlgCellHorAlignCenter	: "बीच में",
+DlgCellHorAlignRight: "बायें",
+DlgCellVerAlign		: "वर्टिकल ऍलाइन्मॅन्ट",
+DlgCellVerAlignNotSet	: "<सॅट नहीं>",
+DlgCellVerAlignTop	: "ऊपर",
+DlgCellVerAlignMiddle	: "मध्य",
+DlgCellVerAlignBottom	: "नीचे",
+DlgCellVerAlignBaseline	: "मूलरेखा",
+DlgCellRowSpan		: "पंक्ति स्पैन",
+DlgCellCollSpan		: "कॉलम स्पैन",
+DlgCellBackColor	: "बैक्ग्राउन्ड रंग",
+DlgCellBorderColor	: "बॉर्डर का रंग",
+DlgCellBtnSelect	: "चुनें...",
+
+// Find Dialog
+DlgFindTitle		: "खोजें",
+DlgFindFindBtn		: "खोजें",
+DlgFindNotFoundMsg	: "आपके द्वारा दिया गया टेक्स्ट नहीं मिला",
+
+// Replace Dialog
+DlgReplaceTitle			: "रिप्लेस",
+DlgReplaceFindLbl		: "यह खोजें:",
+DlgReplaceReplaceLbl	: "इससे रिप्लेस करें:",
+DlgReplaceCaseChk		: "केस मिलायें",
+DlgReplaceReplaceBtn	: "रिप्लेस",
+DlgReplaceReplAllBtn	: "सभी रिप्लेस करें",
+DlgReplaceWordChk		: "पूरा शब्द मिलायें",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "आपके ब्रा‌उज़र की सुरक्षा सॅटिन्ग्स ने पेस्ट करने की अनुमति नहीं प्रदान की है। (Ctrl+V) का प्रयोग करें।",
+PasteErrorCut	: "आपके ब्राउज़र की सुरक्षा सॅटिन्ग्स ने कट करने की अनुमति नहीं प्रदान की है। (Ctrl+X) का प्रयोग करें।",
+PasteErrorCopy	: "आपके ब्राआउज़र की सुरक्षा सॅटिन्ग्स ने कॉपी करने की अनुमति नहीं प्रदान की है। (Ctrl+C) का प्रयोग करें।",
+
+PasteAsText		: "पेस्ट (सादा टॅक्स्ट)",
+PasteFromWord	: "पेस्ट (वर्ड से)",
+
+DlgPasteMsg2	: "Ctrl+V का प्रयोग करके पेस्ट करें और ठीक है करें.",
+DlgPasteIgnoreFont		: "फ़ॉन्ट परिभाषा निकालें",
+DlgPasteRemoveStyles	: "स्टाइल परिभाषा निकालें",
+DlgPasteCleanBox		: "बॉक्स साफ़ करें",
+
+// Color Picker
+ColorAutomatic	: "ऑटोमैटिक",
+ColorMoreColors	: "और रंग...",
+
+// Document Properties
+DocProps		: "डॉक्यूमॅन्ट प्रॉपर्टीज़",
+
+// Anchor Dialog
+DlgAnchorTitle		: "ऐंकर प्रॉपर्टीज़",
+DlgAnchorName		: "ऐंकर का नाम",
+DlgAnchorErrorName	: "ऐंकर का नाम टाइप करें",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "शब्दकोश में नहीं",
+DlgSpellChangeTo		: "इसमें बदलें",
+DlgSpellBtnIgnore		: "इग्नोर",
+DlgSpellBtnIgnoreAll	: "सभी इग्नोर करें",
+DlgSpellBtnReplace		: "रिप्लेस",
+DlgSpellBtnReplaceAll	: "सभी रिप्लेस करें",
+DlgSpellBtnUndo			: "अन्डू",
+DlgSpellNoSuggestions	: "- कोई सुझाव नहीं -",
+DlgSpellProgress		: "वर्तनी की जाँच (स्पॅल-चॅक) जारी है...",
+DlgSpellNoMispell		: "वर्तनी की जाँच : कोई गलत वर्तनी (स्पॅलिंग) नहीं पाई गई",
+DlgSpellNoChanges		: "वर्तनी की जाँच :कोई शब्द नहीं बदला गया",
+DlgSpellOneChange		: "वर्तनी की जाँच : एक शब्द बदला गया",
+DlgSpellManyChanges		: "वर्तनी की जाँच : %1 शब्द बदले गये",
+
+IeSpellDownload			: "स्पॅल-चॅकर इन्स्टाल नहीं किया गया है। क्या आप इसे डा‌उनलोड करना चाहेंगे?",
+
+// Button Dialog
+DlgButtonText		: "टेक्स्ट (वैल्यू)",
+DlgButtonType		: "प्रकार",
+DlgButtonTypeBtn	: "बटन",
+DlgButtonTypeSbm	: "सब्मिट",
+DlgButtonTypeRst	: "रिसेट",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "नाम",
+DlgCheckboxValue	: "वैल्यू",
+DlgCheckboxSelected	: "सॅलॅक्टॅड",
+
+// Form Dialog
+DlgFormName		: "नाम",
+DlgFormAction	: "ऍक्शन",
+DlgFormMethod	: "तरीका",
+
+// Select Field Dialog
+DlgSelectName		: "नाम",
+DlgSelectValue		: "वैल्यू",
+DlgSelectSize		: "साइज़",
+DlgSelectLines		: "पंक्तियाँ",
+DlgSelectChkMulti	: "एक से ज्यादा विकल्प चुनने दें",
+DlgSelectOpAvail	: "उपलब्ध विकल्प",
+DlgSelectOpText		: "टेक्स्ट",
+DlgSelectOpValue	: "वैल्यू",
+DlgSelectBtnAdd		: "जोड़ें",
+DlgSelectBtnModify	: "बदलें",
+DlgSelectBtnUp		: "ऊपर",
+DlgSelectBtnDown	: "नीचे",
+DlgSelectBtnSetValue : "चुनी गई वैल्यू सॅट करें",
+DlgSelectBtnDelete	: "डिलीट",
+
+// Textarea Dialog
+DlgTextareaName	: "नाम",
+DlgTextareaCols	: "कॉलम",
+DlgTextareaRows	: "पंक्तियां",
+
+// Text Field Dialog
+DlgTextName			: "नाम",
+DlgTextValue		: "वैल्यू",
+DlgTextCharWidth	: "करॅक्टर की चौढ़ाई",
+DlgTextMaxChars		: "अधिकतम करॅक्टर",
+DlgTextType			: "टाइप",
+DlgTextTypeText		: "टेक्स्ट",
+DlgTextTypePass		: "पास्वर्ड",
+
+// Hidden Field Dialog
+DlgHiddenName	: "नाम",
+DlgHiddenValue	: "वैल्यू",
+
+// Bulleted List Dialog
+BulletedListProp	: "बुलॅट सूची प्रॉपर्टीज़",
+NumberedListProp	: "अंकीय सूची प्रॉपर्टीज़",
+DlgLstStart			: "प्रारम्भ",
+DlgLstType			: "प्रकार",
+DlgLstTypeCircle	: "गोल",
+DlgLstTypeDisc		: "डिस्क",
+DlgLstTypeSquare	: "चौकॊण",
+DlgLstTypeNumbers	: "अंक (1, 2, 3)",
+DlgLstTypeLCase		: "छोटे अक्षर (a, b, c)",
+DlgLstTypeUCase		: "बड़े अक्षर (A, B, C)",
+DlgLstTypeSRoman	: "छोटे रोमन अंक (i, ii, iii)",
+DlgLstTypeLRoman	: "बड़े रोमन अंक (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "आम",
+DlgDocBackTab		: "बैक्ग्राउन्ड",
+DlgDocColorsTab		: "रंग और मार्जिन",
+DlgDocMetaTab		: "मॅटाडेटा",
+
+DlgDocPageTitle		: "पेज शीर्षक",
+DlgDocLangDir		: "भाषा लिखने की दिशा",
+DlgDocLangDirLTR	: "बायें से दायें (LTR)",
+DlgDocLangDirRTL	: "दायें से बायें (RTL)",
+DlgDocLangCode		: "भाषा कोड",
+DlgDocCharSet		: "करेक्टर सॅट ऍन्कोडिंग",
+DlgDocCharSetCE		: "मध्य यूरोपीय (Central European)",
+DlgDocCharSetCT		: "चीनी (Chinese Traditional Big5)",
+DlgDocCharSetCR		: "सिरीलिक (Cyrillic)",
+DlgDocCharSetGR		: "यवन (Greek)",
+DlgDocCharSetJP		: "जापानी (Japanese)",
+DlgDocCharSetKR		: "कोरीयन (Korean)",
+DlgDocCharSetTR		: "तुर्की (Turkish)",
+DlgDocCharSetUN		: "यूनीकोड (UTF-8)",
+DlgDocCharSetWE		: "पश्चिम यूरोपीय (Western European)",
+DlgDocCharSetOther	: "अन्य करेक्टर सॅट ऍन्कोडिंग",
+
+DlgDocDocType		: "डॉक्यूमॅन्ट प्रकार शीर्षक",
+DlgDocDocTypeOther	: "अन्य डॉक्यूमॅन्ट प्रकार शीर्षक",
+DlgDocIncXHTML		: "XHTML सूचना सम्मिलित करें",
+DlgDocBgColor		: "बैक्ग्राउन्ड रंग",
+DlgDocBgImage		: "बैक्ग्राउन्ड तस्वीर URL",
+DlgDocBgNoScroll	: "स्क्रॉल न करने वाला बैक्ग्राउन्ड",
+DlgDocCText			: "टेक्स्ट",
+DlgDocCLink			: "लिंक",
+DlgDocCVisited		: "विज़िट किया गया लिंक",
+DlgDocCActive		: "सक्रिय लिंक",
+DlgDocMargins		: "पेज मार्जिन",
+DlgDocMaTop			: "ऊपर",
+DlgDocMaLeft		: "बायें",
+DlgDocMaRight		: "दायें",
+DlgDocMaBottom		: "नीचे",
+DlgDocMeIndex		: "डॉक्युमॅन्ट इन्डेक्स संकेतशब्द (अल्पविराम से अलग करें)",
+DlgDocMeDescr		: "डॉक्यूमॅन्ट करॅक्टरन",
+DlgDocMeAuthor		: "लेखक",
+DlgDocMeCopy		: "कॉपीराइट",
+DlgDocPreview		: "प्रीव्यू",
+
+// Templates Dialog
+Templates			: "टॅम्प्लेट",
+DlgTemplatesTitle	: "कन्टेन्ट टॅम्प्लेट",
+DlgTemplatesSelMsg	: "ऍडिटर में ओपन करने हेतु टॅम्प्लेट चुनें(वर्तमान कन्टॅन्ट सेव नहीं होंगे):",
+DlgTemplatesLoading	: "टॅम्प्लेट सूची लोड की जा रही है। ज़रा ठहरें...",
+DlgTemplatesNoTpl	: "(कोई टॅम्प्लेट डिफ़ाइन नहीं किया गया है)",
+DlgTemplatesReplace	: "मूल शब्दों को बदलें",
+
+// About Dialog
+DlgAboutAboutTab	: "FCKEditor के बारे में",
+DlgAboutBrowserInfoTab	: "ब्राउज़र के बारे में",
+DlgAboutLicenseTab	: "लाइसैन्स",
+DlgAboutVersion		: "वर्ज़न",
+DlgAboutLicense		: "लाइसेंस :GNU LGPL",
+DlgAboutInfo		: "अधिक जानकारी के लिये यहाँ जायें:"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/eo.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/eo.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/lang/eo.js	(revision 389)
@@ -0,0 +1,501 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: eo.js
+ * 	Esperanto language file.
+ * 
+ * File Authors:
+ * 		Tim Morley (timsk@openoffice.org)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Kaŝi Ilobreton",
+ToolbarExpand		: "Vidigi Ilojn",
+
+// Toolbar Items and Context Menu
+Save				: "Sekurigi",
+NewPage				: "Nova Paĝo",
+Preview				: "Vidigi Aspekton",
+Cut					: "Eltondi",
+Copy				: "Kopii",
+Paste				: "Interglui",
+PasteText			: "Interglui kiel Tekston",
+PasteWord			: "Interglui el Word",
+Print				: "Presi",
+SelectAll			: "Elekti ĉion",
+RemoveFormat		: "Forigi Formaton",
+InsertLinkLbl		: "Ligilo",
+InsertLink			: "Enmeti/Ŝanĝi Ligilon",
+RemoveLink			: "Forigi Ligilon",
+Anchor				: "Enmeti/Ŝanĝi Ankron",
+InsertImageLbl		: "Bildo",
+InsertImage			: "Enmeti/Ŝanĝi Bildon",
+InsertFlashLbl		: "Flash",	//MISSING
+InsertFlash			: "Insert/Edit Flash",	//MISSING
+InsertTableLbl		: "Tabelo",
+InsertTable			: "Enmeti/Ŝanĝi Tabelon",
+InsertLineLbl		: "Horizonta Linio",
+InsertLine			: "Enmeti Horizonta Linio",
+InsertSpecialCharLbl: "Speciala Signo",
+InsertSpecialChar	: "Enmeti Specialan Signon",
+InsertSmileyLbl		: "Mienvinjeto",
+InsertSmiley		: "Enmeti Mienvinjeton",
+About				: "Pri FCKeditor",
+Bold				: "Grasa",
+Italic				: "Kursiva",
+Underline			: "Substreko",
+StrikeThrough		: "Trastreko",
+Subscript			: "Subskribo",
+Superscript			: "Superskribo",
+LeftJustify			: "Maldekstrigi",
+CenterJustify		: "Centrigi",
+RightJustify		: "Dekstrigi",
+BlockJustify		: "Ĝisrandigi Ambaŭflanke",
+DecreaseIndent		: "Malpligrandigi Krommarĝenon",
+IncreaseIndent		: "Pligrandigi Krommarĝenon",
+Undo				: "Malfari",
+Redo				: "Refari",
+NumberedListLbl		: "Numera Listo",
+NumberedList		: "Enmeti/Forigi Numeran Liston",
+BulletedListLbl		: "Bula Listo",
+BulletedList		: "Enmeti/Forigi Bulan Liston",
+ShowTableBorders	: "Vidigi Borderojn de Tabelo",
+ShowDetails			: "Vidigi Detalojn",
+Style				: "Stilo",
+FontFormat			: "Formato",
+Font				: "Tiparo",
+FontSize			: "Grando",
+TextColor			: "Teksta Koloro",
+BGColor				: "Fona Koloro",
+Source				: "Fonto",
+Find				: "Serĉi",
+Replace				: "Anstataŭigi",
+SpellCheck			: "Literumada Kontrolilo",
+UniversalKeyboard	: "Universala Klavaro",
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
+
+Form			: "Formularo",
+Checkbox		: "Markobutono",
+RadioButton		: "Radiobutono",
+TextField		: "Teksta kampo",
+Textarea		: "Teksta Areo",
+HiddenField		: "Kaŝita Kampo",
+Button			: "Butono",
+SelectionField	: "Elekta Kampo",
+ImageButton		: "Bildbutono",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+
+// Context Menu
+EditLink			: "Modifier Ligilon",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRow			: "Enmeti Linion",
+DeleteRows			: "Forigi Liniojn",
+InsertColumn		: "Enmeti Kolumnon",
+DeleteColumns		: "Forigi Kolumnojn",
+InsertCell			: "Enmeti Ĉelon",
+DeleteCells			: "Forigi Ĉelojn",
+MergeCells			: "Kunfandi Ĉelojn",
+SplitCell			: "Dividi Ĉelojn",
+TableDelete			: "Delete Table",	//MISSING
+CellProperties		: "Atributoj de Ĉelo",
+TableProperties		: "Atributoj de Tabelo",
+ImageProperties		: "Atributoj de Bildo",
+FlashProperties		: "Flash Properties",	//MISSING
+
+AnchorProp			: "Ankraj Atributoj",
+ButtonProp			: "Butonaj Atributoj",
+CheckboxProp		: "Markobutonaj Atributoj",
+HiddenFieldProp		: "Atributoj de Kaŝita Kampo",
+RadioButtonProp		: "Radiobutonaj Atributoj",
+ImageButtonProp		: "Bildbutonaj Atributoj",
+TextFieldProp		: "Atributoj de Teksta Kampo",
+SelectionFieldProp	: "Atributoj de Elekta Kampo",
+TextareaProp		: "Atributoj de Teksta Areo",
+FormProp			: "Formularaj Atributoj",
+
+FontFormats			: "Normala;Formatita;Adreso;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML		: "Traktado de XHTML. Bonvolu pacienci...",
+Done				: "Finita",
+PasteWordConfirm	: "La algluota teksto ŝajnas esti Word-devena. Ĉu vi volas purigi ĝin antaŭ ol interglui?",
+NotCompatiblePaste	: "Tiu ĉi komando bezonas almenaŭ Internet Explorer 5.5. Ĉu vi volas daŭrigi sen purigado?",
+UnknownToolbarItem	: "Ilobretero nekonata \"%1\"",
+UnknownCommand		: "Komandonomo nekonata \"%1\"",
+NotImplemented		: "Komando ne ankoraŭ realigita",
+UnknownToolbarSet	: "La ilobreto \"%1\" ne ekzistas",
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
+
+// Dialogs
+DlgBtnOK			: "Akcepti",
+DlgBtnCancel		: "Rezigni",
+DlgBtnClose			: "Fermi",
+DlgBtnBrowseServer	: "Foliumi en la Servilo",
+DlgAdvancedTag		: "Speciala",
+DlgOpOther			: "<Alia>",
+DlgInfoTab			: "Info",	//MISSING
+DlgAlertUrl			: "Please insert the URL",	//MISSING
+
+// General Dialogs Labels
+DlgGenNotSet		: "<Defaŭlta>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Skribdirekto",
+DlgGenLangDirLtr	: "De maldekstro dekstren (LTR)",
+DlgGenLangDirRtl	: "De dekstro maldekstren (RTL)",
+DlgGenLangCode		: "Lingva Kodo",
+DlgGenAccessKey		: "Fulmoklavo",
+DlgGenName			: "Nomo",
+DlgGenTabIndex		: "Taba Ordo",
+DlgGenLongDescr		: "URL de Longa Priskribo",
+DlgGenClass			: "Klasoj de Stilfolioj",
+DlgGenTitle			: "Indika Titolo",
+DlgGenContType		: "Indika Enhavotipo",
+DlgGenLinkCharset	: "Signaro de la Ligita Rimedo",
+DlgGenStyle			: "Stilo",
+
+// Image Dialog
+DlgImgTitle			: "Atributoj de Bildo",
+DlgImgInfoTab		: "Informoj pri Bildo",
+DlgImgBtnUpload		: "Sendu al Servilo",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Alŝuti",
+DlgImgAlt			: "Anstataŭiga Teksto",
+DlgImgWidth			: "Larĝo",
+DlgImgHeight		: "Alto",
+DlgImgLockRatio		: "Konservi Proporcion",
+DlgBtnResetSize		: "Origina Grando",
+DlgImgBorder		: "Bordero",
+DlgImgHSpace		: "HSpaco",
+DlgImgVSpace		: "VSpaco",
+DlgImgAlign			: "Ĝisrandigo",
+DlgImgAlignLeft		: "Maldekstre",
+DlgImgAlignAbsBottom: "Abs Malsupre",
+DlgImgAlignAbsMiddle: "Abs Centre",
+DlgImgAlignBaseline	: "Je Malsupro de Teksto",
+DlgImgAlignBottom	: "Malsupre",
+DlgImgAlignMiddle	: "Centre",
+DlgImgAlignRight	: "Dekstre",
+DlgImgAlignTextTop	: "Je Supro de Teksto",
+DlgImgAlignTop		: "Supre",
+DlgImgPreview		: "Vidigi Aspekton",
+DlgImgAlertUrl		: "Bonvolu tajpi la URL de la bildo",
+DlgImgLinkTab		: "Link",	//MISSING
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Properties",	//MISSING
+DlgFlashChkPlay		: "Auto Play",	//MISSING
+DlgFlashChkLoop		: "Loop",	//MISSING
+DlgFlashChkMenu		: "Enable Flash Menu",	//MISSING
+DlgFlashScale		: "Scale",	//MISSING
+DlgFlashScaleAll	: "Show all",	//MISSING
+DlgFlashScaleNoBorder	: "No Border",	//MISSING
+DlgFlashScaleFit	: "Exact Fit",	//MISSING
+
+// Link Dialog
+DlgLnkWindowTitle	: "Ligilo",
+DlgLnkInfoTab		: "Informoj pri la Ligilo",
+DlgLnkTargetTab		: "Celo",
+
+DlgLnkType			: "Tipo de Ligilo",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Ankri en tiu ĉi paĝo",
+DlgLnkTypeEMail		: "Retpoŝto",
+DlgLnkProto			: "Protokolo",
+DlgLnkProtoOther	: "<alia>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Elekti Ankron",
+DlgLnkAnchorByName	: "Per Ankronomo",
+DlgLnkAnchorById	: "Per Elementidentigilo",
+DlgLnkNoAnchors		: "<Ne disponeblas ankroj en la dokumento>",
+DlgLnkEMail			: "Retadreso",
+DlgLnkEMailSubject	: "Temlinio",
+DlgLnkEMailBody		: "Mesaĝa korpo",
+DlgLnkUpload		: "Alŝuti",
+DlgLnkBtnUpload		: "Sendi al Servilo",
+
+DlgLnkTarget		: "Celo",
+DlgLnkTargetFrame	: "<kadro>",
+DlgLnkTargetPopup	: "<ŝprucfenestro>",
+DlgLnkTargetBlank	: "Nova Fenestro (_blank)",
+DlgLnkTargetParent	: "Gepatra Fenestro (_parent)",
+DlgLnkTargetSelf	: "Sama Fenestro (_self)",
+DlgLnkTargetTop		: "Plej Supra Fenestro (_top)",
+DlgLnkTargetFrameName	: "Nomo de Kadro",
+DlgLnkPopWinName	: "Nomo de Ŝprucfenestro",
+DlgLnkPopWinFeat	: "Atributoj de la Ŝprucfenestro",
+DlgLnkPopResize		: "Grando Ŝanĝebla",
+DlgLnkPopLocation	: "Adresobreto",
+DlgLnkPopMenu		: "Menubreto",
+DlgLnkPopScroll		: "Rulumlisteloj",
+DlgLnkPopStatus		: "Statobreto",
+DlgLnkPopToolbar	: "Ilobreto",
+DlgLnkPopFullScrn	: "Tutekrane (IE)",
+DlgLnkPopDependent	: "Dependa (Netscape)",
+DlgLnkPopWidth		: "Larĝo",
+DlgLnkPopHeight		: "Alto",
+DlgLnkPopLeft		: "Pozicio de Maldekstro",
+DlgLnkPopTop		: "Pozicio de Supro",
+
+DlnLnkMsgNoUrl		: "Bonvolu entajpi la URL-on",
+DlnLnkMsgNoEMail	: "Bonvolu entajpi la retadreson",
+DlnLnkMsgNoAnchor	: "Bonvolu elekti ankron",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Elekti",
+DlgColorBtnClear	: "Forigi",
+DlgColorHighlight	: "Emfazi",
+DlgColorSelected	: "Elektita",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Enmeti Mienvinjeton",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Enmeti Specialan Signon",
+
+// Table Dialog
+DlgTableTitle		: "Atributoj de Tabelo",
+DlgTableRows		: "Linioj",
+DlgTableColumns		: "Kolumnoj",
+DlgTableBorder		: "Bordero",
+DlgTableAlign		: "Ĝisrandigo",
+DlgTableAlignNotSet	: "<Defaŭlte>",
+DlgTableAlignLeft	: "Maldekstre",
+DlgTableAlignCenter	: "Centre",
+DlgTableAlignRight	: "Dekstre",
+DlgTableWidth		: "Larĝo",
+DlgTableWidthPx		: "Bitbilderoj",
+DlgTableWidthPc		: "elcentoj",
+DlgTableHeight		: "Alto",
+DlgTableCellSpace	: "Interspacigo de Ĉeloj",
+DlgTableCellPad		: "Ĉirkaŭenhava Plenigado",
+DlgTableCaption		: "Titolo",
+DlgTableSummary		: "Summary",	//MISSING
+
+// Table Cell Dialog
+DlgCellTitle		: "Atributoj de Celo",
+DlgCellWidth		: "Larĝo",
+DlgCellWidthPx		: "bitbilderoj",
+DlgCellWidthPc		: "elcentoj",
+DlgCellHeight		: "Alto",
+DlgCellWordWrap		: "Linifaldo",
+DlgCellWordWrapNotSet	: "<Defaŭlte>",
+DlgCellWordWrapYes	: "Jes",
+DlgCellWordWrapNo	: "Ne",
+DlgCellHorAlign		: "Horizonta Ĝisrandigo",
+DlgCellHorAlignNotSet	: "<Defaŭlte>",
+DlgCellHorAlignLeft	: "Maldekstre",
+DlgCellHorAlignCenter	: "Centre",
+DlgCellHorAlignRight: "Dekstre",
+DlgCellVerAlign		: "Vertikala Ĝisrandigo",
+DlgCellVerAlignNotSet	: "<Defaŭlte>",
+DlgCellVerAlignTop	: "Supre",
+DlgCellVerAlignMiddle	: "Centre",
+DlgCellVerAlignBottom	: "Malsupre",
+DlgCellVerAlignBaseline	: "Je Malsupro de Teksto",
+DlgCellRowSpan		: "Linioj Kunfanditaj",
+DlgCellCollSpan		: "Kolumnoj Kunfanditaj",
+DlgCellBackColor	: "Fono",
+DlgCellBorderColor	: "Bordero",
+DlgCellBtnSelect	: "Elekti...",
+
+// Find Dialog
+DlgFindTitle		: "Serĉi",
+DlgFindFindBtn		: "Serĉi",
+DlgFindNotFoundMsg	: "La celteksto ne estas trovita.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Anstataŭigi",
+DlgReplaceFindLbl		: "Serĉi:",
+DlgReplaceReplaceLbl	: "Anstataŭigi per:",
+DlgReplaceCaseChk		: "Kongruigi Usklecon",
+DlgReplaceReplaceBtn	: "Anstataŭigi",
+DlgReplaceReplAllBtn	: "Anstataŭigi Ĉiun",
+DlgReplaceWordChk		: "Tuta Vorto",
+
+// Paste Operations / Dialog
+PasteErrorPaste	: "La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras intergluajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-V).",
+PasteErrorCut	: "La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-X).",
+PasteErrorCopy	: "La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-C).",
+
+PasteAsText		: "Interglui kiel Tekston",
+PasteFromWord	: "Interglui el Word",
+
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",	//MISSING
+DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
+DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
+DlgPasteCleanBox		: "Clean Up Box",	//MISSING
+
+// Color Picker
+ColorAutomatic	: "Aŭtomata",
+ColorMoreColors	: "Pli da Koloroj...",
+
+// Document Properties
+DocProps		: "Dokumentaj Atributoj",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ankraj Atributoj",
+DlgAnchorName		: "Ankra Nomo",
+DlgAnchorErrorName	: "Bv tajpi la ankran nomon",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Ne trovita en la vortaro",
+DlgSpellChangeTo		: "Ŝanĝi al",
+DlgSpellBtnIgnore		: "Malatenti",
+DlgSpellBtnIgnoreAll	: "Malatenti Ĉiun",
+DlgSpellBtnReplace		: "Anstataŭigi",
+DlgSpellBtnReplaceAll	: "Anstataŭigi Ĉiun",
+DlgSpellBtnUndo			: "Malfari",
+DlgSpellNoSuggestions	: "- Neniu propono -",
+DlgSpellProgress		: "Literumkontrolado daŭras...",
+DlgSpellNoMispell		: "Literumkontrolado finita: neniu fuŝo trovita",
+DlgSpellNoChanges		: "Literumkontrolado finita: neniu vorto ŝanĝita",
+DlgSpellOneChange		: "Literumkontrolado finita: unu vorto ŝanĝita",
+DlgSpellManyChanges		: "Literumkontrolado finita: %1 vortoj ŝanĝitaj",
+
+IeSpellDownload			: "Literumada Kontrolilo ne instalita. Ĉu vi volas elŝuti ĝin nun?",
+
+// Button Dialog
+DlgButtonText		: "Teksto (Valoro)",
+DlgButtonType		: "Tipo",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nomo",
+DlgCheckboxValue	: "Valoro",
+DlgCheckboxSelected	: "Elektita",
+
+// Form Dialog
+DlgFormName		: "Nomo",
+DlgFormAction	: "Ago",
+DlgFormMethod	: "Metodo",
+
+// Select Field Dialog
+DlgSelectName		: "Nomo",
+DlgSelectValue		: "Valoro",
+DlgSelectSize		: "Grando",
+DlgSelectLines		: "Linioj",
+DlgSelectChkMulti	: "Permesi Plurajn Elektojn",
+DlgSelectOpAvail	: "Elektoj Disponeblaj",
+DlgSelectOpText		: "Teksto",
+DlgSelectOpValue	: "Valoro",
+DlgSelectBtnAdd		: "Aldoni",
+DlgSelectBtnModify	: "Modifi",
+DlgSelectBtnUp		: "Supren",
+DlgSelectBtnDown	: "Malsupren",
+DlgSelectBtnSetValue : "Agordi kiel Elektitan Valoron",
+DlgSelectBtnDelete	: "Forigi",
+
+// Textarea Dialog
+DlgTextareaName	: "Nomo",
+DlgTextareaCols	: "Kolumnoj",
+DlgTextareaRows	: "Vicoj",
+
+// Text Field Dialog
+DlgTextName			: "Nomo",
+DlgTextValue		: "Valoro",
+DlgTextCharWidth	: "Signolarĝo",
+DlgTextMaxChars		: "Maksimuma Nombro da Signoj",
+DlgTextType			: "Tipo",
+DlgTextTypeText		: "Teksto",
+DlgTextTypePass		: "Pasvorto",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nomo",
+DlgHiddenValue	: "Valoro",
+
+// Bulleted List Dialog
+BulletedListProp	: "Atributoj de Bula Listo",
+NumberedListProp	: "Atributoj de Numera Listo",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tipo",
+DlgLstTypeCircle	: "Cirklo",
+DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeSquare	: "Kvadrato",
+DlgLstTypeNumbers	: "Ciferoj (1, 2, 3)",
+DlgLstTypeLCase		: "Minusklaj Literoj (a, b, c)",
+DlgLstTypeUCase		: "Majusklaj Literoj (A, B, C)",
+DlgLstTypeSRoman	: "Malgrandaj Romanaj Ciferoj (i, ii, iii)",
+DlgLstTypeLRoman	: "Grandaj Romanaj Ciferoj (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Ĝeneralaĵoj",
+DlgDocBackTab		: "Fono",
+DlgDocColorsTab		: "Koloroj kaj Marĝenoj",
+DlgDocMetaTab		: "Metadatumoj",
+
+DlgDocPageTitle		: "Paĝotitolo",
+DlgDocLangDir		: "Skribdirekto de la Lingvo",
+DlgDocLangDirLTR	: "De maldekstro dekstren (LTR)",
+DlgDocLangDirRTL	: "De dekstro maldekstren (LTR)",
+DlgDocLangCode		: "Lingvokodo",
+DlgDocCharSet		: "Signara Kodo",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Alia Signara Kodo",
+
+DlgDocDocType		: "Dokumenta Tipo",
+DlgDocDocTypeOther	: "Alia Dokumenta Tipo",
+DlgDocIncXHTML		: "Inkluzivi XHTML Deklaroj",
+DlgDocBgColor		: "Fona Koloro",
+DlgDocBgImage		: "URL de Fona Bildo",
+DlgDocBgNoScroll	: "Neruluma Fono",
+DlgDocCText			: "Teksto",
+DlgDocCLink			: "Ligilo",
+DlgDocCVisited		: "Vizitita Ligilo",
+DlgDocCActive		: "Aktiva Ligilo",
+DlgDocMargins		: "Paĝaj Marĝenoj",
+DlgDocMaTop			: "Supra",
+DlgDocMaLeft		: "Maldekstra",
+DlgDocMaRight		: "Dekstra",
+DlgDocMaBottom		: "Malsupra",
+DlgDocMeIndex		: "Ŝlosilvortoj de la Dokumento (apartigita de komoj)",
+DlgDocMeDescr		: "Dokumenta Priskribo",
+DlgDocMeAuthor		: "Verkinto",
+DlgDocMeCopy		: "Kopirajto",
+DlgDocPreview		: "Aspekto",
+
+// Templates Dialog
+Templates			: "Templates",	//MISSING
+DlgTemplatesTitle	: "Content Templates",	//MISSING
+DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",	//MISSING
+DlgTemplatesLoading	: "Loading templates list. Please wait...",	//MISSING
+DlgTemplatesNoTpl	: "(No templates defined)",	//MISSING
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Pri",
+DlgAboutBrowserInfoTab	: "Informoj pri TTT-legilo",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "versio",
+DlgAboutLicense		: "Disdonata laŭ la GNU Lesser General Public License",
+DlgAboutInfo		: "Por pli da informoj, vizitu"
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/lang/fr.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/lang/fr.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/lang/fr.js	(revision 389)
@@ -0,0 +1,23 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fr.js
+ * 	Placholder Italian language file.
+ * 
+ * File Authors:
+ * 		Hubert Garrido (liane@users.sourceforge.net)
+ */
+FCKLang.PlaceholderBtn			= 'Insérer/Modifier Substitut' ;
+FCKLang.PlaceholderDlgTitle		= 'Propriétés de Substitut' ;
+FCKLang.PlaceholderDlgName		= 'Nom de Substitut' ;
+FCKLang.PlaceholderErrNoName	= 'Veuillez saisir le nom de Substitut' ;
+FCKLang.PlaceholderErrNameInUse	= 'Ce nom est déjà utilisé' ;
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/lang/de.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/lang/de.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/lang/de.js	(revision 389)
@@ -0,0 +1,23 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: de.js
+ * 	Placholder German language file.
+ * 
+ * File Authors:
+ * 		José Fontanil
+ */
+FCKLang.PlaceholderBtn			= 'Einfügen/editieren Platzhalter' ;
+FCKLang.PlaceholderDlgTitle		= 'Platzhalter Eigenschaften' ;
+FCKLang.PlaceholderDlgName		= 'Platzhalter Name' ;
+FCKLang.PlaceholderErrNoName	= 'Bitte den Namen des Platzhalters schreiben' ;
+FCKLang.PlaceholderErrNameInUse	= 'Der angegebene Namen ist schon in Gebrauch' ;
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/lang/pl.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/lang/pl.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/lang/pl.js	(revision 389)
@@ -0,0 +1,23 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: pl.js
+ * 	Placholder Polish language file.
+ * 
+ * File Authors:
+ * 		Marcin Pietrzak (fck@iworks.pl)
+ */
+FCKLang.PlaceholderBtn			= 'Wstaw/Edytuj nagłówek' ;
+FCKLang.PlaceholderDlgTitle		= 'Właśności nagłówka' ;
+FCKLang.PlaceholderDlgName		= 'Nazwa nagłówka' ;
+FCKLang.PlaceholderErrNoName	= 'Proszę wprowadzić nazwę nagłówka' ;
+FCKLang.PlaceholderErrNameInUse	= 'Podana nazwa jest już w użyciu' ;
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/lang/it.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/lang/it.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/lang/it.js	(revision 389)
@@ -0,0 +1,23 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: it.js
+ * 	Placholder Italian language file.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+FCKLang.PlaceholderBtn			= 'Aggiungi/Modifica Placeholder' ;
+FCKLang.PlaceholderDlgTitle		= 'Proprietà del Placeholder' ;
+FCKLang.PlaceholderDlgName		= 'Nome del Placeholder' ;
+FCKLang.PlaceholderErrNoName	= 'Digitare il nome del placeholder' ;
+FCKLang.PlaceholderErrNameInUse	= 'Il nome inserito è già in uso' ;
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/lang/en.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/lang/en.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/lang/en.js	(revision 389)
@@ -0,0 +1,23 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: en.js
+ * 	Placholder English language file.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+FCKLang.PlaceholderBtn			= 'Insert/Edit Placeholder' ;
+FCKLang.PlaceholderDlgTitle		= 'Placeholder Properties' ;
+FCKLang.PlaceholderDlgName		= 'Placeholder Name' ;
+FCKLang.PlaceholderErrNoName	= 'Please type the placeholder name' ;
+FCKLang.PlaceholderErrNameInUse	= 'The specified name is already in use' ;
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/fck_placeholder.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/fck_placeholder.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/fck_placeholder.html	(revision 389)
@@ -0,0 +1,96 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_placeholder.html
+ * 	Placeholder Plugin.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html>
+	<head>
+		<title>Placeholder Properties</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta content="noindex, nofollow" name="robots">
+		<script language="javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+var FCKLang = oEditor.FCKLang ;
+var FCKPlaceholders = oEditor.FCKPlaceholders ;
+
+window.onload = function ()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage( document ) ;
+	
+	LoadSelected() ;
+	
+	// Show the "Ok" button.
+	window.parent.SetOkButton( true ) ;	
+}
+
+var eSelected = oEditor.FCKSelection.GetSelectedElement() ;
+
+function LoadSelected()
+{
+	if ( !eSelected )
+		return ;
+
+	if ( eSelected.tagName == 'SPAN' && eSelected._fckplaceholder )
+		document.getElementById('txtName').value = eSelected._fckplaceholder ;
+	else
+		eSelected == null ;
+}
+
+function Ok()
+{
+	var sValue = document.getElementById('txtName').value ;
+	
+	if ( eSelected && eSelected._fckplaceholder == sValue )
+		return true ;
+
+	if ( sValue.length == 0 )
+	{
+		alert( FCKLang.PlaceholderErrNoName ) ;
+		return false ;
+	}
+	
+	if ( FCKPlaceholders.Exist( sValue ) )
+	{
+		alert( FCKLang.PlaceholderErrNameInUse ) ;
+		return false ;
+	}
+
+	FCKPlaceholders.Add( sValue ) ;
+	return true ;
+}
+
+		</script>
+	</head>
+	<body scroll="no" style="OVERFLOW: hidden">
+		<table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
+			<tr>
+				<td>
+					<table cellSpacing="0" cellPadding="0" align="center" border="0">
+						<tr>
+							<td>
+								<span fckLang="PlaceholderDlgName">Placeholder Name</span><br>
+								<input id="txtName" type="text">
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/fckplugin.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/fckplugin.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/placeholder/fckplugin.js	(revision 389)
@@ -0,0 +1,175 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckplugin.js
+ * 	Plugin to insert "Placeholders" in the editor.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+// Register the related command.
+FCKCommands.RegisterCommand( 'Placeholder', new FCKDialogCommand( 'Placeholder', FCKLang.PlaceholderDlgTitle, FCKPlugins.Items['placeholder'].Path + 'fck_placeholder.html', 340, 170 ) ) ;
+
+// Create the "Plaholder" toolbar button.
+var oPlaceholderItem = new FCKToolbarButton( 'Placeholder', FCKLang.PlaceholderBtn ) ;
+oPlaceholderItem.IconPath = FCKPlugins.Items['placeholder'].Path + 'placeholder.gif' ;
+
+FCKToolbarItems.RegisterItem( 'Placeholder', oPlaceholderItem ) ;
+
+
+// The object used for all Placeholder operations.
+var FCKPlaceholders = new Object() ;
+
+// Add a new placeholder at the actual selection.
+FCKPlaceholders.Add = function( name )
+{
+	var oSpan = FCK.CreateElement( 'SPAN' ) ;
+	this.SetupSpan( oSpan, name ) ;
+}
+
+FCKPlaceholders.SetupSpan = function( span, name )
+{
+	span.innerHTML = '[[ ' + name + ' ]]' ;
+
+	span.style.backgroundColor = '#ffff00' ;
+	span.style.color = '#000000' ;
+
+	if ( FCKBrowserInfo.IsGecko )
+		span.style.cursor = 'default' ;
+
+	span._fckplaceholder = name ;
+	span.contentEditable = false ;
+
+	// To avoid it to be resized.
+	span.onresizestart = function()
+	{
+		FCK.EditorWindow.event.returnValue = false ;
+		return false ;
+	}
+}
+
+// On Gecko we must do this trick so the user select all the SPAN when clicking on it.
+FCKPlaceholders._SetupClickListener = function()
+{
+	FCKPlaceholders._ClickListener = function( e )
+	{
+		if ( e.target.tagName == 'SPAN' && e.target._fckplaceholder )
+			FCKSelection.SelectNode( e.target ) ;
+	}
+
+	FCK.EditorDocument.addEventListener( 'click', FCKPlaceholders._ClickListener, true ) ;
+}
+
+// Open the Placeholder dialog on double click.
+FCKPlaceholders.OnDoubleClick = function( span )
+{
+	if ( span.tagName == 'SPAN' && span._fckplaceholder )
+		FCKCommands.GetCommand( 'Placeholder' ).Execute() ;
+}
+
+FCK.RegisterDoubleClickHandler( FCKPlaceholders.OnDoubleClick, 'SPAN' ) ;
+
+// Check if a Placholder name is already in use.
+FCKPlaceholders.Exist = function( name )
+{
+	var aSpans = FCK.EditorDocument.getElementsByTagName( 'SPAN' )
+
+	for ( var i = 0 ; i < aSpans.length ; i++ )
+	{
+		if ( aSpans[i]._fckplaceholder == name )
+			return true ;
+	}
+}
+
+if ( FCKBrowserInfo.IsIE )
+{
+	FCKPlaceholders.Redraw = function()
+	{
+		var aPlaholders = FCK.EditorDocument.body.innerText.match( /\[\[[^\[\]]+\]\]/g ) ;
+		if ( !aPlaholders )
+			return ;
+
+		var oRange = FCK.EditorDocument.body.createTextRange() ;
+
+		for ( var i = 0 ; i < aPlaholders.length ; i++ )
+		{
+			if ( oRange.findText( aPlaholders[i] ) )
+			{
+				var sName = aPlaholders[i].match( /\[\[\s*([^\]]*?)\s*\]\]/ )[1] ;
+				oRange.pasteHTML( '<span style="color: #000000; background-color: #ffff00" contenteditable="false" _fckplaceholder="' + sName + '">' + aPlaholders[i] + '</span>' ) ;
+			}
+		}
+	}
+}
+else
+{
+	FCKPlaceholders.Redraw = function()
+	{
+		var oInteractor = FCK.EditorDocument.createTreeWalker( FCK.EditorDocument.body, NodeFilter.SHOW_TEXT, FCKPlaceholders._AcceptNode, true ) ;
+
+		var	aNodes = new Array() ;
+
+		while ( oNode = oInteractor.nextNode() )
+		{
+			aNodes[ aNodes.length ] = oNode ;
+		}
+
+		for ( var n = 0 ; n < aNodes.length ; n++ )
+		{
+			var aPieces = aNodes[n].nodeValue.split( /(\[\[[^\[\]]+\]\])/g ) ;
+
+			for ( var i = 0 ; i < aPieces.length ; i++ )
+			{
+				if ( aPieces[i].length > 0 )
+				{
+					if ( aPieces[i].indexOf( '[[' ) == 0 )
+					{
+						var sName = aPieces[i].match( /\[\[\s*([^\]]*?)\s*\]\]/ )[1] ;
+
+						var oSpan = FCK.EditorDocument.createElement( 'span' ) ;
+						FCKPlaceholders.SetupSpan( oSpan, sName ) ;
+
+						aNodes[n].parentNode.insertBefore( oSpan, aNodes[n] ) ;
+					}
+					else
+						aNodes[n].parentNode.insertBefore( FCK.EditorDocument.createTextNode( aPieces[i] ) , aNodes[n] ) ;
+				}
+			}
+
+			aNodes[n].parentNode.removeChild( aNodes[n] ) ;
+		}
+		
+		FCKPlaceholders._SetupClickListener() ;
+	}
+
+	FCKPlaceholders._AcceptNode = function( node )
+	{
+		if ( /\[\[[^\[\]]+\]\]/.test( node.nodeValue ) )
+			return NodeFilter.FILTER_ACCEPT ;
+		else
+			return NodeFilter.FILTER_SKIP ;
+	}
+}
+
+FCK.Events.AttachEvent( 'OnAfterSetHTML', FCKPlaceholders.Redraw ) ;
+
+// We must process the SPAN tags to replace then with the real resulting value of the placeholder.
+FCKXHtml.TagProcessors['span'] = function( node, htmlNode )
+{
+	if ( htmlNode._fckplaceholder )
+		node = FCKXHtml.XML.createTextNode( '[[' + htmlNode._fckplaceholder + ']]' ) ;
+	else
+		FCKXHtml._AppendChildNodes( node, htmlNode, false ) ;
+
+	return node ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/autogrow/fckplugin.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/autogrow/fckplugin.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/autogrow/fckplugin.js	(revision 389)
@@ -0,0 +1,85 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckplugin.js
+ * 	Plugin: automatically resizes the editor until a configurable maximun 
+ * 	height (FCKConfig.AutoGrowMax), based on its contents.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKAutoGrow_Min = window.frameElement.offsetHeight ;
+
+function FCKAutoGrow_Check()
+{
+	var oInnerDoc = FCK.EditorDocument ;
+
+	var iFrameHeight, iInnerHeight ;
+	
+	if ( FCKBrowserInfo.IsIE )
+	{
+		iFrameHeight = FCK.EditorWindow.frameElement.offsetHeight ;
+		iInnerHeight = oInnerDoc.body.scrollHeight ;
+	}
+	else
+	{
+		iFrameHeight = FCK.EditorWindow.innerHeight ;
+		iInnerHeight = oInnerDoc.body.offsetHeight ;
+	}
+
+	var iDiff = iInnerHeight - iFrameHeight ;
+
+	if ( iDiff != 0 )
+	{
+		var iMainFrameSize = window.frameElement.offsetHeight ;
+		
+		if ( iDiff > 0 && iMainFrameSize < FCKConfig.AutoGrowMax )
+		{
+			iMainFrameSize += iDiff ;
+			if ( iMainFrameSize > FCKConfig.AutoGrowMax )
+				iMainFrameSize = FCKConfig.AutoGrowMax ;
+		}
+		else if ( iDiff < 0 && iMainFrameSize > FCKAutoGrow_Min )
+		{
+			iMainFrameSize += iDiff ;
+			if ( iMainFrameSize < FCKAutoGrow_Min )
+				iMainFrameSize = FCKAutoGrow_Min ;
+		}
+		else
+			return ;
+			
+		window.frameElement.height = iMainFrameSize ;
+	}
+}
+
+FCK.AttachToOnSelectionChange( FCKAutoGrow_Check ) ;
+
+function FCKAutoGrow_SetListeners()
+{
+	FCK.EditorWindow.attachEvent( 'onscroll', FCKAutoGrow_Check ) ;
+	FCK.EditorDocument.attachEvent( 'onkeyup', FCKAutoGrow_Check ) ;
+}
+
+if ( FCKBrowserInfo.IsIE )
+{
+//	FCKAutoGrow_SetListeners() ;
+	FCK.Events.AttachEvent( 'OnAfterSetHTML', FCKAutoGrow_SetListeners ) ;
+}
+
+function FCKAutoGrow_CheckEditorStatus( sender, status )
+{
+	if ( status == FCK_STATUS_COMPLETE )
+		FCKAutoGrow_Check() ;
+}
+
+FCK.Events.AttachEvent( 'OnStatusChange', FCKAutoGrow_CheckEditorStatus ) ;
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/tablecommands/fckplugin.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/tablecommands/fckplugin.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/tablecommands/fckplugin.js	(revision 389)
@@ -0,0 +1,28 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckplugin.js
+ * 	This plugin register the required Toolbar items to be able to insert the
+ * 	toolbar commands in the toolbar.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCKToolbarItems.RegisterItem( 'TableInsertRow'		, new FCKToolbarButton( 'TableInsertRow'	, FCKLang.InsertRow, null, null, null, null, 62 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableDeleteRows'		, new FCKToolbarButton( 'TableDeleteRows'	, FCKLang.DeleteRows, null, null, null, null, 63 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableInsertColumn'	, new FCKToolbarButton( 'TableInsertColumn'	, FCKLang.InsertColumn, null, null, null, null, 64 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableDeleteColumns'	, new FCKToolbarButton( 'TableDeleteColumns', FCKLang.DeleteColumns, null, null, null, null, 65 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableInsertCell'		, new FCKToolbarButton( 'TableInsertCell'	, FCKLang.InsertCell, null, null, null, null, 58 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableDeleteCells'	, new FCKToolbarButton( 'TableDeleteCells'	, FCKLang.DeleteCells, null, null, null, null, 59 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableMergeCells'		, new FCKToolbarButton( 'TableMergeCells'	, FCKLang.MergeCells, null, null, null, null, 60 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableSplitCell'		, new FCKToolbarButton( 'TableSplitCell'	, FCKLang.SplitCell, null, null, null, null, 61 ) ) ;
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/simplecommands/fckplugin.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/simplecommands/fckplugin.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/plugins/simplecommands/fckplugin.js	(revision 389)
@@ -0,0 +1,25 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckplugin.js
+ * 	This plugin register Toolbar items for the combos modifying the style to 
+ * 	not show the box.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCKToolbarItems.RegisterItem( 'SourceSimple'	, new FCKToolbarButton( 'Source', FCKLang.Source, null, FCK_TOOLBARITEM_ONLYICON, true, true, 1 ) ) ;
+FCKToolbarItems.RegisterItem( 'StyleSimple'		, new FCKToolbarStyleCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ;
+FCKToolbarItems.RegisterItem( 'FontNameSimple'	, new FCKToolbarFontsCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ;
+FCKToolbarItems.RegisterItem( 'FontSizeSimple'	, new FCKToolbarFontSizeCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ;
+FCKToolbarItems.RegisterItem( 'FontFormatSimple', new FCKToolbarFontFormatCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ;
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/fckdialog.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/fckdialog.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/fckdialog.html	(revision 389)
@@ -0,0 +1,322 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckdialog.html
+ * 	This page is used by all dialog box as the container.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+		<meta name="robots" content="noindex, nofollow" />
+		<script type="text/javascript">
+
+// On some Gecko browsers (probably over slow connections) the
+// "dialogArguments" are not set so we must get it from the opener window.
+if ( !window.dialogArguments )
+	window.dialogArguments = window.opener.FCKLastDialogInfo ;
+
+// Sets the Skin CSS
+document.write( '<link href="' + window.dialogArguments.Editor.FCKConfig.SkinPath + 'fck_dialog.css" type="text/css" rel="stylesheet">' ) ;
+
+// Sets the language direction.
+window.document.dir = window.dialogArguments.Editor.FCKLang.Dir ;
+
+var sTitle = window.dialogArguments.Title ;
+document.write( '<title>' + sTitle + '<\/title>' ) ;
+
+function LoadInnerDialog()
+{
+	// The following value is set, so the editor can check that the dialog has been correctly opened.
+	window.setTimeout( function() { window.returnValue = true ; }, 100 ) ;
+
+	if ( window.onresize )
+		window.onresize() ;
+
+	// First of all, translate the dialog box contents.
+	window.dialogArguments.Editor.FCKLanguageManager.TranslatePage( document ) ;
+
+	window.frames["frmMain"].document.location.href = window.dialogArguments.Page ;
+}
+
+function InnerDialogLoaded()
+{
+	var oInnerDoc = document.getElementById('frmMain').contentWindow.document ;
+
+	// Set the language direction.
+	oInnerDoc.dir = window.dialogArguments.Editor.FCKLang.Dir ;
+
+	// Sets the Skin CSS.
+	oInnerDoc.write( '<link href="' + window.dialogArguments.Editor.FCKConfig.SkinPath + 'fck_dialog.css" type="text/css" rel="stylesheet">' ) ;
+
+	SetOnKeyDown( oInnerDoc ) ;
+	DisableContextMenu( oInnerDoc ) ;
+
+	return window.dialogArguments.Editor ;
+}
+
+function SetOkButton( showIt )
+{
+	document.getElementById('btnOk').style.visibility = ( showIt ? '' : 'hidden' ) ;
+}
+
+var bAutoSize = false ;
+
+function SetAutoSize( autoSize )
+{
+	bAutoSize = autoSize ;
+	RefreshSize() ;
+}
+
+function RefreshSize()
+{
+	if ( bAutoSize )
+	{
+		var oInnerDoc = document.getElementById('frmMain').contentWindow.document ;
+
+		var iFrameHeight ;
+		if ( document.all )
+			iFrameHeight = oInnerDoc.body.offsetHeight ;
+		else
+			iFrameHeight = document.getElementById('frmMain').contentWindow.innerHeight ;
+
+		var iInnerHeight = oInnerDoc.body.scrollHeight ;
+
+		var iDiff = iInnerHeight - iFrameHeight ;
+
+		if ( iDiff > 0 )
+		{
+			if ( document.all )
+				window.dialogHeight = ( parseInt( window.dialogHeight ) + iDiff ) + 'px' ;
+			else
+				window.resizeBy( 0, iDiff ) ;
+		}
+	}
+}
+
+function Ok()
+{
+	if ( window.frames["frmMain"].Ok && window.frames["frmMain"].Ok() )
+		Cancel() ;
+}
+
+function Cancel( dontFireChange )
+{
+	if ( !dontFireChange )
+	{
+		// All dialog windows, by default, will fire the "OnSelectionChange"
+		// event, no matter the Ok or Cancel button has been pressed.
+		window.dialogArguments.Editor.FCK.Events.FireEvent( 'OnSelectionChange' ) ;
+	}
+	window.close() ;
+}
+
+// Object that holds all available tabs.
+var oTabs = new Object() ;
+
+function TabDiv_OnClick()
+{
+	SetSelectedTab( this.TabCode ) ;
+}
+
+function AddTab( tabCode, tabText, startHidden )
+{
+	if ( typeof( oTabs[ tabCode ] ) != 'undefined' )
+		return ;
+
+	var eTabsRow = document.getElementById( 'Tabs' ) ;
+
+	var oCell = eTabsRow.insertCell(  eTabsRow.cells.length - 1 ) ;
+	oCell.noWrap = true ;
+
+	var oDiv = document.createElement( 'DIV' ) ;
+	oDiv.className = 'PopupTab' ;
+	oDiv.innerHTML = tabText ;
+	oDiv.TabCode = tabCode ;
+	oDiv.onclick = TabDiv_OnClick ;
+
+	if ( startHidden )
+		oDiv.style.display = 'none' ;
+
+	eTabsRow = document.getElementById( 'TabsRow' ) ;
+
+	oCell.appendChild( oDiv ) ;
+
+	if ( eTabsRow.style.display == 'none' )
+	{
+		var eTitleArea = document.getElementById( 'TitleArea' ) ;
+		eTitleArea.className = 'PopupTitle' ;
+
+		oDiv.className = 'PopupTabSelected' ;
+		eTabsRow.style.display = '' ;
+
+		if ( ! window.dialogArguments.Editor.FCKBrowserInfo.IsIE )
+			window.onresize() ;
+	}
+
+	oTabs[ tabCode ] = oDiv ;
+	oTabs[ tabCode ].Index = oTabs.length - 1 ;
+}
+
+function SetSelectedTab( tabCode )
+{
+	for ( var sCode in oTabs )
+	{
+		if ( sCode == tabCode )
+			oTabs[sCode].className = 'PopupTabSelected' ;
+		else
+			oTabs[sCode].className = 'PopupTab' ;
+	}
+
+	if ( typeof( window.frames["frmMain"].OnDialogTabChange ) == 'function' )
+		window.frames["frmMain"].OnDialogTabChange( tabCode ) ;
+}
+
+function SetTabVisibility( tabCode, isVisible )
+{
+	var oTab = oTabs[ tabCode ] ;
+	oTab.style.display = isVisible ? '' : 'none' ;
+
+	if ( ! isVisible && oTab.className == 'PopupTabSelected' )
+	{
+		for ( var sCode in oTabs )
+		{
+			if ( oTabs[sCode].style.display != 'none' )
+			{
+				SetSelectedTab( sCode ) ;
+				break ;
+			}
+		}
+	}
+}
+
+function SetOnKeyDown( targetDocument )
+{
+	targetDocument.onkeydown = function ( e )
+	{
+		e = e || event || this.parentWindow.event ;
+		switch ( e.keyCode )
+		{
+			case 13 :		// ENTER
+				var oTarget = e.srcElement || e.target ;
+				if ( oTarget.tagName == 'TEXTAREA' ) return ;
+				Ok() ;
+				return false ;
+			case 27 :		// ESC
+				Cancel() ;
+				return false ;
+				break ;
+		}
+		return true ;
+	}
+}
+SetOnKeyDown( document ) ;
+
+function DisableContextMenu( targetDocument )
+{
+	if ( window.dialogArguments.Editor.FCKBrowserInfo.IsIE ) return ;
+
+	// Disable Right-Click
+	var oOnContextMenu = function( e )
+	{
+		var sTagName = e.target.tagName ;
+		if ( ! ( ( sTagName == "INPUT" && e.target.type == "text" ) || sTagName == "TEXTAREA" ) )
+			e.preventDefault() ;
+	}
+	targetDocument.addEventListener( 'contextmenu', oOnContextMenu, true ) ;
+}
+DisableContextMenu( document ) ;
+
+if ( ! window.dialogArguments.Editor.FCKBrowserInfo.IsIE )
+{
+	window.onresize = function()
+	{
+		var oFrame = document.getElementById("frmMain") ;
+
+		if ( ! oFrame )
+		return ;
+
+		oFrame.height = 0 ;
+
+		var oCell = document.getElementById("FrameCell") ;
+		var iHeight = oCell.offsetHeight ;
+
+		oFrame.height = iHeight - 2 ;
+	}
+}
+
+if ( window.dialogArguments.Editor.FCKBrowserInfo.IsIE )
+{
+	function Window_OnBeforeUnload()
+	{
+		for ( var t in oTabs )
+			oTabs[t] = null ;
+
+		window.dialogArguments.Editor = null ;
+	}
+	window.attachEvent( "onbeforeunload", Window_OnBeforeUnload ) ;
+}
+
+function Window_OnClose()
+{
+	window.dialogArguments.Editor.FCKFocusManager.Unlock() ;
+}
+
+if ( window.addEventListener )
+	window.addEventListener( 'unload', Window_OnClose, false ) ;
+
+		</script>
+	</head>
+	<body onload="LoadInnerDialog();" class="PopupBody">
+		<table height="100%" cellspacing="0" cellpadding="0" width="100%" border="0">
+			<tr>
+				<td id="TitleArea" class="PopupTitle PopupTitleBorder">
+					<script type="text/javascript">
+document.write( sTitle ) ;
+					</script>
+				</td>
+			</tr>
+			<tr id="TabsRow" style="DISPLAY: none">
+				<td class="PopupTabArea">
+					<table border="0" cellpadding="0" cellspacing="0" width="100%">
+						<tr id="Tabs" onselectstart="return false;">
+							<td class="PopupTabEmptyArea">&nbsp;</td>
+							<td class="PopupTabEmptyArea" width="100%">&nbsp;</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td id="FrameCell" height="100%" valign="top">
+					<iframe id="frmMain" src="fckblank.html" name="frmMain" frameborder="0" height="100%" width="100%" scrolling="auto">
+					</iframe>
+				</td>
+			</tr>
+			<tr>
+				<td class="PopupButtons">
+					<table border="0" cellpadding="0" cellspacing="0">
+						<tr>
+							<td width="100%">&nbsp;</td>
+							<td nowrap="nowrap">
+								<input id="btnOk" style="VISIBILITY: hidden; WIDTH: 100px" type="button" value="Ok" class="Button"
+									onclick="Ok();" fckLang="DlgBtnOK" />&nbsp; <input type="button" value="Cancel" class="Button" onclick="Cancel();" fckLang="DlgBtnCancel" />
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/office2003/fck_editor.css
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/office2003/fck_editor.css	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/office2003/fck_editor.css	(revision 389)
@@ -0,0 +1,472 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_editor.css
+ * 	Styles used by the editor IFRAME and Toolbar.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+/*
+	### Basic Editor IFRAME Styles.
+*/
+
+body
+{
+    padding: 1px 1px 1px 1px;
+    margin: 0px 0px 0px 0px;
+}
+
+#xEditingArea
+{
+    border: #696969 1px solid;
+}
+
+.SourceField
+{
+    padding: 5px;
+    margin: 0px;
+    font-family: Monospace;
+}
+
+/*
+	Toolbar
+*/
+
+.TB_ToolbarSet, .TB_Expand, .TB_Collapse
+{
+    cursor: default;
+    background-color: #f7f8fd;
+}
+
+.TB_ToolbarSet
+{
+    border-top: #f7f8fd 1px outset;
+    border-bottom: #f7f8fd 1px outset;
+}
+
+.TB_ToolbarSet TD
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.TB_Toolbar
+{
+   	background-color: #d6dff7;
+	background-image: url(images/toolbar.bg.gif);
+	background-repeat: repeat-x;
+    display: inline-table;
+}
+
+.TB_Separator
+{
+    width: 1px;
+    height: 16px;
+    margin: 2px;
+    background-color: #B2CBFF;
+}
+
+.TB_Start
+{
+    background-image: url(images/toolbar.start.gif);
+    background-repeat: no-repeat;
+    background-position: center center;
+    margin: 0px;
+    width: 7px;
+    height: 24px;
+}
+
+.TB_End
+{
+    background-image: url(images/toolbar.end.gif);
+    background-repeat: no-repeat;
+    background-position: center left;
+    height: 24px;
+    width: 12px;
+}
+
+.TB_ExpandImg
+{
+    background-image: url(images/toolbar.expand.gif);
+    background-repeat: no-repeat;
+}
+
+.TB_CollapseImg
+{
+    background-image: url(images/toolbar.collapse.gif);
+    background-repeat: no-repeat;
+}
+
+.TB_SideBorder
+{
+    background-color: #696969;
+}
+
+.TB_Expand, .TB_Collapse
+{
+    padding: 2px 2px 2px 2px;
+    border: #f7f8fd 1px outset;
+}
+
+.TB_Collapse
+{
+    width: 5px;
+}
+
+.TB_Break
+{
+    height: 24px; /* IE needs the height to be set, otherwise no break */
+}
+
+/*
+	Toolbar Button
+*/
+
+.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled
+{
+    margin: 1px;
+    height: 22px; /* The height is necessary, otherwise IE will not apply the alpha */
+}
+
+.TB_Button_On
+{
+    margin: 0px;
+    border: #316ac5 1px solid;
+    background-color: #c1d2ee;
+}
+
+.TB_Button_On_Over, .TB_Button_Off_Over
+{
+    margin: 0px ;
+    border: #316ac5 1px solid;
+    background-color: #dff1ff;
+}
+
+.TB_Button_Off
+{
+    filter: alpha(opacity=70); /* IE */
+    opacity: 0.70; /* Safari, Opera and Mozilla */
+}
+
+.TB_Button_Disabled
+{
+    filter: gray() alpha(opacity=30); /* IE */
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+}
+
+.TB_Button_Padding
+{
+    visibility: hidden;
+    width: 3px;
+    height: 22px;
+}
+
+.TB_Button_Image
+{
+    overflow: hidden;
+    width: 16px;
+    height: 16px;
+    margin: 3px;
+    background-repeat: no-repeat;
+}
+
+.TB_Button_Image img
+{
+    position: relative;
+}
+
+.TB_Button_Off .TB_Button_Text
+{
+   	background-color: #d6dff7;  /* Needed because of a bug on ClearType */
+	background-image: url(images/toolbar.bg.gif);
+	background-repeat: repeat-x;
+}
+
+.TB_ConnectionLine
+{
+    background-color: #f7f8fd;
+    height: 1px;
+    margin-left: 1px;   /* ltr */
+    margin-right: 1px;  /* rtl */
+}
+
+.TB_Button_Off .TB_Text
+{
+   	background-color: #d6dff7;  /* Needed because of a bug on ClearType */
+	background-image: url(images/toolbar.bg.gif);
+	background-repeat: repeat-x;
+}
+
+.TB_Button_On_Over .TB_Text
+{
+   	background-color: #dff1ff ;  /* Needed because of a bug on ClearType */
+}
+
+/*
+	Menu
+*/
+
+.MN_Menu
+{
+    border: 1px solid #8f8f73;
+    padding: 2px;
+    background-color: #f7f8fd;
+    cursor: default;
+}
+
+.MN_Menu, .MN_Menu .MN_Label
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.MN_Item_Padding
+{
+    visibility: hidden;
+    width: 3px;
+    height: 20px;
+}
+
+.MN_Icon
+{
+    background-color: #d6dff7;
+    text-align: center;
+    height: 20px;
+}
+
+.MN_Label
+{
+    padding-left: 3px;
+    padding-right: 3px;
+}
+
+.MN_Separator
+{
+    height: 3px;
+}
+
+.MN_Separator_Line
+{
+    border-top: #b9b99d 1px solid;
+}
+
+.MN_Item .MN_Icon IMG
+{
+    filter: alpha(opacity=70);
+    opacity: 0.70;
+}
+
+.MN_Item_Over
+{
+    color: #ffffff;
+    background-color: #7096FA;
+}
+
+.MN_Item_Over .MN_Icon
+{
+    background-color: #466ca6;
+}
+
+.MN_Item_Disabled IMG
+{
+    filter: gray() alpha(opacity=30); /* IE */
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+}
+
+.MN_Item_Disabled .MN_Label
+{
+    color: #b7b7b7;
+}
+
+.MN_Arrow
+{
+    padding-right: 3px;
+    padding-left: 3px;
+}
+
+.MN_ConnectionLine
+{
+    background-color: #f7f8fd;
+}
+
+.Menu .TB_Button_On, .Menu .TB_Button_On_Over
+{
+    border: #8f8f73 1px solid;
+    background-color: #f7f8fd;
+}
+
+/*
+	### Panel Styles
+*/
+
+.FCK_Panel
+{
+    border: #8f8f73 1px solid;
+    padding: 2px;
+    background-color: #f7f8fd;
+}
+
+.FCK_Panel, .FCK_Panel TD
+{
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+    font-size: 11px;
+}
+
+/*
+	### Special Combos
+*/
+
+.SC_Panel
+{
+    overflow: auto;
+    white-space: nowrap;
+    cursor: default;
+    border: 1px solid #8f8f73;
+    padding-left: 2px;
+    padding-right: 2px;
+    background-color: #ffffff;
+}
+
+.SC_Panel, .SC_Panel TD
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.SC_Item, .SC_ItemSelected
+{
+    margin-top: 2px;
+    margin-bottom: 2px;
+    background-position: left center;
+    padding-left: 11px;
+    padding-right: 3px;
+    padding-top: 2px;
+    padding-bottom: 2px;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    background-repeat: no-repeat;
+    border: #dddddd 1px solid;
+}
+
+.SC_Item *, .SC_ItemSelected *
+{
+    margin-top: 0px;
+    margin-bottom: 0px;
+}
+
+.SC_ItemSelected
+{
+    border: #9a9afb 1px solid;
+    background-image: url(images/toolbar.arrowright.gif);
+}
+
+.SC_ItemOver
+{
+    border: #316ac5 1px solid;
+}
+
+.SC_Field
+{
+    margin-top: 2px ;
+    border: #b7b7a6 1px solid;
+    cursor: default;
+}
+
+.SC_FieldCaption
+{
+    overflow: visible;
+    padding-right: 5px;
+    padding-left: 5px;
+    opacity: 0.75; /* Safari, Opera and Mozilla */
+    filter: alpha(opacity=70); /* IE */ /* -moz-opacity: 0.75; Mozilla (Old) */
+    height: 23px;
+   	background-color: #d6dff7;  /* Needed because of a bug on ClearType */
+	background-image: url(images/toolbar.bg.gif);
+	background-repeat: repeat-x;
+/*    background-color:  inherit;     Maybe this is needed wait to check */
+}
+
+.SC_FieldLabel
+{
+    white-space: nowrap;
+    padding: 2px;
+    width: 100%;
+    cursor: default;
+    background-color: #ffffff;
+    text-overflow: ellipsis;
+    overflow: hidden;
+}
+
+.SC_FieldButton
+{
+    background-position: center center;
+    background-image: url(images/toolbar.buttonarrow.gif);
+    border-left: #b7b7a6 1px solid;
+    width: 14px;
+    background-repeat: no-repeat;
+}
+
+.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption
+{
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+    filter: gray() alpha(opacity=30); /* IE */ /* -moz-opacity: 0.30; Mozilla (Old) */
+}
+
+.SC_FieldOver
+{
+    border: #316ac5 1px solid;
+}
+
+.SC_FieldOver .SC_FieldButton
+{
+    border-left: #316ac5 1px solid;
+}
+
+/*
+	### Color Selector Panel
+*/
+
+.ColorBoxBorder
+{
+    border: #808080 1px solid;
+    position: static;
+}
+
+.ColorBox
+{
+    font-size: 1px;
+    width: 10px;
+    position: static;
+    height: 10px;
+}
+
+.ColorDeselected, .ColorSelected
+{
+    cursor: default;
+}
+
+.ColorDeselected
+{
+    border: #ffffff 1px solid;
+    padding: 2px;
+    float: left;
+}
+
+.ColorSelected
+{
+    border: #330066 1px solid;
+    padding: 2px;
+    float: left;
+    background-color: #c4cdd6;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/office2003/fck_dialog.css
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/office2003/fck_dialog.css	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/office2003/fck_dialog.css	(revision 389)
@@ -0,0 +1,129 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_dialog.css
+ * 	Styles used by the dialog boxes.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+body
+{
+	margin: 0px;
+	padding: 10px;
+	background-color: #f7f8fd;
+}
+
+body, td, input, select, textarea
+{
+	font-size: 11px;
+	font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;
+}
+
+body, .BackColor
+{
+	background-color: #f7f8fd;
+}
+
+.PopupBody
+{
+	margin: 0px;
+	padding: 0px;
+}
+
+.PopupTitle
+{
+	font-weight: bold;
+	font-size: 14pt;
+	color: #0e3460;
+	background-color: #8cb2fd;
+	padding: 3px 10px 3px 10px;
+}
+
+.PopupButtons
+{
+	border-top: #466ca6 1px solid;
+	background-color: #8cb2fd;
+	padding: 7px 10px 7px 10px;
+}
+
+.Button
+{
+	border: #1c3460 1px solid;
+	color: #000a28;
+	background-color: #7096d3;
+}
+
+.DarkBackground
+{
+	background-color: #d7d79f;
+}
+
+.LightBackground
+{
+	background-color: #ffffbe;
+}
+
+.PopupTitleBorder
+{
+	border-bottom: #d5d59d 1px solid;
+}
+
+.PopupTabArea
+{
+	color: #0e3460;
+	background-color: #8cb2fd;
+}
+
+.PopupTabEmptyArea
+{
+	padding-left: 10px ;
+	border-bottom: #466ca6 1px solid;
+}
+
+.PopupTab, .PopupTabSelected
+{
+	border-right: #466ca6 1px solid;
+	border-top: #466ca6 1px solid;
+	border-left: #466ca6 1px solid;
+	padding-right: 5px;
+	padding-left: 5px;
+	padding-bottom: 3px;
+	padding-top: 3px;
+	color: #0e3460;
+}
+
+.PopupTab
+{
+	margin-top: 1px;
+	border-bottom: #466ca6 1px solid;
+	cursor: pointer;
+	cursor: hand;
+}
+
+.PopupTabSelected
+{
+	font-weight:bold;
+	cursor: default;
+	padding-top: 4px;
+	border-bottom: #f7f8fd 1px solid;
+	background-color: #f7f8fd;
+}
+
+.PopupSelectionBox
+{
+	border: #1e90ff 1px solid !important;
+	background-color: #add8e6 !important;
+	cursor: pointer;
+	cursor: hand;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/default/fck_editor.css
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/default/fck_editor.css	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/default/fck_editor.css	(revision 389)
@@ -0,0 +1,459 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_editor.css
+ * 	Styles used by the editor IFRAME and Toolbar.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+/*
+	### Basic Editor IFRAME Styles.
+*/
+
+body
+{
+    padding: 1px 1px 1px 1px;
+    margin: 0px 0px 0px 0px;
+}
+
+#xEditingArea
+{
+    border: #696969 1px solid;
+}
+
+.SourceField
+{
+    padding: 5px;
+    margin: 0px;
+    font-family: Monospace;
+}
+
+/*
+	Toolbar
+*/
+
+.TB_ToolbarSet, .TB_Expand, .TB_Collapse
+{
+    cursor: default;
+    background-color: #efefde;
+}
+
+.TB_ToolbarSet
+{
+    border-top: #efefde 1px outset;
+    border-bottom: #efefde 1px outset;
+}
+
+.TB_ToolbarSet TD
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.TB_Toolbar
+{
+    display: inline-table;	/* inline = Opera jumping buttons bug */
+}
+
+.TB_Separator
+{
+    width: 1px;
+    height: 16px;
+    margin: 2px;
+    background-color: #999966;
+}
+
+.TB_Start
+{
+    background-image: url(images/toolbar.start.gif);
+    margin: 2px;
+    width: 3px;
+    background-repeat: no-repeat;
+    height: 16px;
+}
+
+.TB_End
+{
+    display: none;
+}
+
+.TB_ExpandImg
+{
+    background-image: url(images/toolbar.expand.gif);
+    background-repeat: no-repeat;
+}
+
+.TB_CollapseImg
+{
+    background-image: url(images/toolbar.collapse.gif);
+    background-repeat: no-repeat;
+}
+
+.TB_SideBorder
+{
+    background-color: #696969;
+}
+
+.TB_Expand, .TB_Collapse
+{
+    padding: 2px 2px 2px 2px;
+    border: #efefde 1px outset;
+}
+
+.TB_Collapse
+{
+    width: 5px;
+}
+
+.TB_Break
+{
+    height: 24px; /* IE needs the height to be set, otherwise no break */
+}
+
+/*
+	Toolbar Button
+*/
+
+.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled
+{
+    border: #efefde 1px solid; /* This is the default border */
+    height: 22px; /* The height is necessary, otherwise IE will not apply the alpha */
+}
+
+.TB_Button_On
+{
+    border: #316ac5 1px solid;
+    background-color: #c1d2ee;
+}
+
+.TB_Button_On_Over, .TB_Button_Off_Over
+{
+    border: #316ac5 1px solid;
+    background-color: #dff1ff;
+}
+
+.TB_Button_Off
+{
+    filter: alpha(opacity=70); /* IE */
+    opacity: 0.70; /* Safari, Opera and Mozilla */
+}
+
+.TB_Button_Disabled
+{
+    filter: gray() alpha(opacity=30); /* IE */
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+}
+
+.TB_Button_Padding
+{
+    visibility: hidden;
+    width: 3px;
+    height: 22px;
+}
+
+.TB_Button_Image
+{
+    overflow: hidden;
+    width: 16px;
+    height: 16px;
+    margin: 3px;
+    background-repeat: no-repeat;
+}
+
+.TB_Button_Image img
+{
+    position: relative;
+}
+
+.TB_Button_Off .TB_Button_Text
+{
+   	background-color: #efefde;  /* Needed because of a bug on Clear Type */
+}
+
+.TB_ConnectionLine
+{
+    background-color: #ffffff;
+    height: 1px;
+    margin-left: 1px;   /* ltr */
+    margin-right: 1px;  /* rtl */
+}
+
+.TB_Text
+{
+	height: 22px;
+}
+
+.TB_Button_Off .TB_Text
+{
+   	background-color: #efefde ;  /* Needed because of a bug on ClearType */
+}
+
+.TB_Button_On_Over .TB_Text
+{
+   	background-color: #dff1ff ;  /* Needed because of a bug on ClearType */
+}
+
+/*
+	Menu
+*/
+
+.MN_Menu
+{
+    border: 1px solid #8f8f73;
+    padding: 2px;
+    background-color: #ffffff;
+    cursor: default;
+}
+
+.MN_Menu, .MN_Menu .MN_Label
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.MN_Item_Padding
+{
+    visibility: hidden;
+    width: 3px;
+    height: 20px;
+}
+
+.MN_Icon
+{
+    background-color: #e3e3c7;
+    text-align: center;
+    height: 20px;
+}
+
+.MN_Label
+{
+    padding-left: 3px;
+    padding-right: 3px;
+}
+
+.MN_Separator
+{
+    height: 3px;
+}
+
+.MN_Separator_Line
+{
+    border-top: #b9b99d 1px solid;
+}
+
+.MN_Item .MN_Icon IMG
+{
+    filter: alpha(opacity=70);
+    opacity: 0.70;
+}
+
+.MN_Item_Over
+{
+    color: #ffffff;
+    background-color: #8f8f73;
+}
+
+.MN_Item_Over .MN_Icon
+{
+    background-color: #737357;
+}
+
+.MN_Item_Disabled IMG
+{
+    filter: gray() alpha(opacity=30); /* IE */
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+}
+
+.MN_Item_Disabled .MN_Label
+{
+    color: #b7b7b7;
+}
+
+.MN_Arrow
+{
+    padding-right: 3px;
+    padding-left: 3px;
+}
+
+.MN_ConnectionLine
+{
+    background-color: #ffffff;
+}
+
+.Menu .TB_Button_On, .Menu .TB_Button_On_Over
+{
+    border: #8f8f73 1px solid;
+    background-color: #ffffff;
+}
+
+/*
+	### Panel Styles
+*/
+
+.FCK_Panel
+{
+    border: #8f8f73 1px solid;
+    padding: 2px;
+    background-color: #ffffff;
+}
+
+.FCK_Panel, .FCK_Panel TD
+{
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+    font-size: 11px;
+}
+
+/*
+	### Special Combos
+*/
+
+.SC_Panel
+{
+    overflow: auto;
+    white-space: nowrap;
+    cursor: default;
+    border: 1px solid #8f8f73;
+    padding-left: 2px;
+    padding-right: 2px;
+    background-color: #ffffff;
+}
+
+.SC_Panel, .SC_Panel TD
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.SC_Item, .SC_ItemSelected
+{
+    margin-top: 2px;
+    margin-bottom: 2px;
+    background-position: left center;
+    padding-left: 11px;
+    padding-right: 3px;
+    padding-top: 2px;
+    padding-bottom: 2px;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    background-repeat: no-repeat;
+    border: #dddddd 1px solid;
+}
+
+.SC_Item *, .SC_ItemSelected *
+{
+    margin-top: 0px;
+    margin-bottom: 0px;
+}
+
+.SC_ItemSelected
+{
+    border: #9a9afb 1px solid;
+    background-image: url(images/toolbar.arrowright.gif);
+}
+
+.SC_ItemOver
+{
+    border: #316ac5 1px solid;
+}
+
+.SC_Field
+{
+    border: #b7b7a6 1px solid;
+    cursor: default;
+}
+
+.SC_FieldCaption
+{
+    overflow: visible;
+    padding-right: 5px;
+    padding-left: 5px;
+    opacity: 0.75; /* Safari, Opera and Mozilla */
+    filter: alpha(opacity=70); /* IE */ /* -moz-opacity: 0.75; Mozilla (Old) */
+    height: 23px;
+    background-color: #efefde;
+}
+
+.SC_FieldLabel
+{
+    white-space: nowrap;
+    padding: 2px;
+    width: 100%;
+    cursor: default;
+    background-color: #ffffff;
+    text-overflow: ellipsis;
+    overflow: hidden;
+}
+
+.SC_FieldButton
+{
+    background-position: center center;
+    background-image: url(images/toolbar.buttonarrow.gif);
+    border-left: #b7b7a6 1px solid;
+    width: 14px;
+    background-repeat: no-repeat;
+}
+
+.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption
+{
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+    filter: gray() alpha(opacity=30); /* IE */ /* -moz-opacity: 0.30; Mozilla (Old) */
+}
+
+.SC_FieldOver
+{
+    border: #316ac5 1px solid;
+}
+
+.SC_FieldOver .SC_FieldButton
+{
+    border-left: #316ac5 1px solid;
+}
+
+/*
+	### Color Selector Panel
+*/
+
+.ColorBoxBorder
+{
+    border: #808080 1px solid;
+    position: static;
+}
+
+.ColorBox
+{
+    font-size: 1px;
+    width: 10px;
+    position: static;
+    height: 10px;
+}
+
+.ColorDeselected, .ColorSelected
+{
+    cursor: default;
+}
+
+.ColorDeselected
+{
+    border: #ffffff 1px solid;
+    padding: 2px;
+    float: left;
+}
+
+.ColorSelected
+{
+    border: #330066 1px solid;
+    padding: 2px;
+    float: left;
+    background-color: #c4cdd6;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/default/fck_dialog.css
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/default/fck_dialog.css	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/default/fck_dialog.css	(revision 389)
@@ -0,0 +1,131 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_dialog.css
+ * 	Styles used by the dialog boxes.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+body
+{
+	margin: 0px;
+	padding: 10px;
+}
+
+body, td, input, select, textarea
+{
+	font-size: 11px;
+	font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;
+}
+
+body, .BackColor
+{
+	background-color: #f1f1e3;
+}
+
+.PopupBody
+{
+	margin: 0px;
+	padding: 0px;
+}
+
+.PopupTitle
+{
+	font-weight: bold;
+	font-size: 14pt;
+	color: #737357;
+	background-color: #e3e3c7;
+	padding: 3px 10px 3px 10px;
+}
+
+.PopupButtons
+{
+	border-top: #d5d59d 1px solid;
+	background-color: #e3e3c7;
+	padding: 7px 10px 7px 10px;
+}
+
+.Button
+{
+	border-right: #737357 1px solid;
+	border-top: #737357 1px solid;
+	border-left: #737357 1px solid;
+	color: #3b3b1f;
+	border-bottom: #737357 1px solid;
+	background-color: #c7c78f;
+}
+
+.DarkBackground
+{
+	background-color: #d7d79f;
+}
+
+.LightBackground
+{
+	background-color: #ffffbe;
+}
+
+.PopupTitleBorder
+{
+	border-bottom: #d5d59d 1px solid;
+}
+
+.PopupTabArea
+{
+	color: #737357;
+	background-color: #e3e3c7;
+}
+
+.PopupTabEmptyArea
+{
+	padding-left: 10px ;
+	border-bottom: #d5d59d 1px solid;
+}
+
+.PopupTab, .PopupTabSelected
+{
+	border-right: #d5d59d 1px solid;
+	border-top: #d5d59d 1px solid;
+	border-left: #d5d59d 1px solid;
+	padding-right: 5px;
+	padding-left: 5px;
+	padding-bottom: 3px;
+	padding-top: 3px;
+	color: #737357;
+}
+
+.PopupTab
+{
+	margin-top: 1px;
+	border-bottom: #d5d59d 1px solid;
+	cursor: pointer;
+	cursor: hand;
+}
+
+.PopupTabSelected
+{
+	font-weight:bold;
+	cursor: default;
+	padding-top: 4px;
+	border-bottom: #f1f1e3 1px solid;
+	background-color: #f1f1e3;
+}
+
+.PopupSelectionBox
+{
+	border: #ff9933 1px solid !important;
+	background-color: #fffacd !important;
+	cursor: pointer;
+	cursor: hand;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/silver/fck_editor.css
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/silver/fck_editor.css	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/silver/fck_editor.css	(revision 389)
@@ -0,0 +1,470 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_editor.css
+ * 	Styles used by the editor IFRAME and Toolbar.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ * 		gazou[Fr]
+ */
+
+/*
+	### Basic Editor IFRAME Styles.
+*/
+
+body
+{
+	padding: 1px 1px 1px 1px;
+	margin: 0px 0px 0px 0px;
+}
+
+#xEditingArea
+{
+	border: #696969 1px solid;
+}
+
+.SourceField
+{
+	padding: 5px;
+	margin: 0px;
+	font-family: Monospace;
+}
+
+/*
+	Toolbar
+*/
+
+.TB_ToolbarSet, .TB_Expand, .TB_Collapse
+{
+    cursor: default;
+	background-color: #f7f7f7;
+}
+
+.TB_ToolbarSet
+{
+	padding: 1px;
+	border-top: #efefde 1px outset;
+	border-bottom: #efefde 1px outset;
+}
+
+.TB_ToolbarSet TD
+{
+	font-size: 11px;
+	font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.TB_Toolbar
+{
+    display: inline-table;
+}
+
+.TB_Separator
+{
+    width: 1px;
+    height: 21px;
+    margin: 2px;
+    background-color: #C6C3BD;
+}
+
+.TB_Start
+{
+    background-image: url(images/toolbar.start.gif);
+    margin-left: 2px;
+    margin-right: 2px;
+    width: 3px;
+    background-repeat: no-repeat;
+    height: 27px;
+    background-position: center center;
+}
+
+.TB_End
+{
+	display: none;
+}
+
+.TB_ExpandImg
+{
+	background-image: url(images/toolbar.expand.gif);
+	background-repeat: no-repeat;
+}
+
+.TB_CollapseImg
+{
+	background-image: url(images/toolbar.collapse.gif);
+	background-repeat: no-repeat;
+}
+
+.TB_SideBorder
+{
+	background-color: #696969;
+}
+
+.TB_Expand, .TB_Collapse
+{
+	padding: 2px 2px 2px 2px;
+	border: #efefde 1px outset;
+}
+
+.TB_Collapse
+{
+	border: #efefde 1px outset;
+	width: 5px;
+}
+
+.TB_Break
+{
+	height: 27px;
+}
+
+/*
+	Toolbar Button
+*/
+
+.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled
+{
+	padding: 1px ;
+	margin:1px;
+	height: 21px;
+}
+
+.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled
+{
+	border: #cec6b5 1px solid;
+}
+
+.TB_Button_On
+{
+	border-color: #316ac5;
+	background-color: #c1d2ee;
+}
+
+.TB_Button_On_Over, .TB_Button_Off_Over
+{
+    border: #316ac5 1px solid;
+    background-color: #dff1ff;
+}
+
+.TB_Button_Off
+{
+	background: #efefef url(images/toolbar.buttonbg.gif) repeat-x;
+}
+
+.TB_Button_Off, .TB_Combo_Off
+{
+	opacity: 0.70; /* Safari, Opera and Mozilla */
+	filter: alpha(opacity=70); /* IE */
+	/* -moz-opacity: 0.70; Mozilla (Old) */
+}
+
+.TB_Button_Disabled
+{
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+    filter: gray() alpha(opacity=30); /* IE */
+}
+
+.TB_Button_Padding
+{
+    visibility: hidden;
+    width: 3px;
+    height: 21px;
+}
+
+.TB_Button_Image
+{
+    overflow: hidden;
+    width: 16px;
+    height: 16px;
+    margin: 3px;
+    margin-top: 4px;
+    margin-bottom: 2px;
+    background-repeat: no-repeat;
+}
+
+/* For composed button ( icon + text, icon + arrow ), we must compensate the table */
+.TB_Button_On TABLE .TB_Button_Image, 
+.TB_Button_Off TABLE .TB_Button_Image, 
+.TB_Button_On_Over TABLE .TB_Button_Image,
+.TB_Button_Off_Over TABLE .TB_Button_Image,
+.TB_Button_Disabled TABLE .TB_Button_Image
+{
+    margin-top: 3px;
+}
+
+.TB_Button_Image img
+{
+    position: relative;
+}
+
+.TB_ConnectionLine
+{
+    background-color: #ffffff;
+    height: 1px;
+    margin-left: 1px;   /* ltr */
+    margin-right: 1px;  /* rtl */
+}
+
+/*
+	Menu
+*/
+
+.MN_Menu
+{
+    border: 1px solid #8f8f73;
+    padding: 2px;
+    background-color: #f7f7f7;
+    cursor: default;
+}
+
+.MN_Menu, .MN_Menu .MN_Label
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.MN_Item_Padding
+{
+    visibility: hidden;
+    width: 3px;
+    height: 20px;
+}
+
+.MN_Icon
+{
+    background-color: #dedede;
+    text-align: center;
+    height: 20px;
+}
+
+.MN_Label
+{
+    padding-left: 3px;
+    padding-right: 3px;
+}
+
+.MN_Separator
+{
+    height: 3px;
+}
+
+.MN_Separator_Line
+{
+    border-top: #b9b99d 1px solid;
+}
+
+.MN_Item .MN_Icon IMG
+{
+    filter: alpha(opacity=70);
+    opacity: 0.70;
+}
+
+.MN_Item_Over
+{
+    color: #ffffff;
+    background-color: #8a857d;
+}
+
+.MN_Item_Over .MN_Icon
+{
+    background-color: #6c6761;
+}
+
+.MN_Item_Disabled IMG
+{
+    filter: gray() alpha(opacity=30); /* IE */
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+}
+
+.MN_Item_Disabled .MN_Label
+{
+    color: #b7b7b7;
+}
+
+.MN_Arrow
+{
+    padding-right: 3px;
+    padding-left: 3px;
+}
+
+.MN_ConnectionLine
+{
+    background-color: #ffffff;
+}
+
+.Menu .TB_Button_On, .Menu .TB_Button_On_Over
+{
+    border: #8f8f73 1px solid;
+    background-color: #ffffff;
+}
+
+/*
+	### Panel Styles
+*/
+
+.FCK_Panel
+{
+    border: #8f8f73 1px solid;
+    padding: 2px;
+    background-color: #ffffff;
+}
+
+.FCK_Panel, .FCK_Panel TD
+{
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+    font-size: 11px;
+}
+
+/*
+	### Special Combos
+*/
+
+.SC_Panel
+{
+    overflow: auto;
+    white-space: nowrap;
+    cursor: default;
+    border: 1px solid #8f8f73;
+    padding-left: 2px;
+    padding-right: 2px;
+    background-color: #ffffff;
+}
+
+.SC_Panel, .SC_Panel TD
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.SC_Item, .SC_ItemSelected
+{
+    margin-top: 2px;
+    margin-bottom: 2px;
+    background-position: left center;
+    padding-left: 11px;
+    padding-right: 3px;
+    padding-top: 2px;
+    padding-bottom: 2px;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    background-repeat: no-repeat;
+    border: #dddddd 1px solid;
+}
+
+.SC_Item *, .SC_ItemSelected *
+{
+    margin-top: 0px;
+    margin-bottom: 0px;
+}
+
+.SC_ItemSelected
+{
+    border: #9a9afb 1px solid;
+    background-image: url(images/toolbar.arrowright.gif);
+}
+
+.SC_ItemOver
+{
+    border: #316ac5 1px solid;
+}
+
+.SC_Field
+{
+    margin-top:1px ;
+    border: #b7b7a6 1px solid;
+    cursor: default;
+}
+
+.SC_FieldCaption
+{
+    padding-top: 1px ;
+    overflow: visible;
+    padding-right: 5px;
+    padding-left: 5px;
+    opacity: 0.75; /* Safari, Opera and Mozilla */
+    filter: alpha(opacity=70); /* IE */ /* -moz-opacity: 0.75; Mozilla (Old) */
+    height: 23px;
+    background-color: #f7f7f7;
+}
+
+.SC_FieldLabel
+{
+    white-space: nowrap;
+    padding: 2px;
+    width: 100%;
+    cursor: default;
+    background-color: #ffffff;
+    text-overflow: ellipsis;
+    overflow: hidden;
+}
+
+.SC_FieldButton
+{
+    background-position: center center;
+    background-image: url(images/toolbar.buttonarrow.gif);
+    border-left: #b7b7a6 1px solid;
+    width: 14px;
+    background-repeat: no-repeat;
+}
+
+.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption
+{
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+    filter: gray() alpha(opacity=30); /* IE */ /* -moz-opacity: 0.30; Mozilla (Old) */
+}
+
+.SC_FieldOver
+{
+    border: #316ac5 1px solid;
+}
+
+.SC_FieldOver .SC_FieldButton
+{
+    border-left: #316ac5 1px solid;
+}
+
+/*
+	### Color Selector Panel
+*/
+
+.ColorBoxBorder
+{
+    border: #808080 1px solid;
+    position: static;
+}
+
+.ColorBox
+{
+    font-size: 1px;
+    width: 10px;
+    position: static;
+    height: 10px;
+}
+
+.ColorDeselected, .ColorSelected
+{
+    cursor: default;
+}
+
+.ColorDeselected
+{
+    border: #ffffff 1px solid;
+    padding: 2px;
+    float: left;
+}
+
+.ColorSelected
+{
+    border: #316ac5 1px solid;
+    padding: 2px;
+    float: left;
+    background-color: #c1d2ee;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/silver/fck_dialog.css
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/silver/fck_dialog.css	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/silver/fck_dialog.css	(revision 389)
@@ -0,0 +1,132 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_dialog.css
+ * 	Styles used by the dialog boxes.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+body
+{
+	margin: 0px;
+	padding: 10px;
+	background-color: #f7f7f7;
+}
+
+body, td, input, select, textarea
+{
+	font-size: 11px;
+	font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;
+}
+
+body, .BackColor
+{
+	background-color: #f7f7f7;
+}
+
+.PopupBody
+{
+	margin: 0px;
+	padding: 0px;
+}
+
+.PopupTitle
+{
+	padding-right: 10px;
+	padding-left: 10px;
+	font-weight: bold;
+	font-size: 14pt;
+	padding-bottom: 3px;
+	color: #504845;
+	padding-top: 3px;
+	background-color: #dedede;
+}
+
+.PopupButtons
+{
+	border-top: #cec6b5 1px solid;
+	background-color: #DEDEDE;
+	padding: 7px 10px 7px 10px;
+}
+
+.Button
+{
+	border: #7a7261 1px solid;
+	color: #504845;
+	background-color: #cec6b5;
+}
+
+.DarkBackground
+{
+	background-color: #d7d79f;
+}
+
+.LightBackground
+{
+	background-color: #ffffbe;
+}
+
+.PopupTitleBorder
+{
+	border-bottom: #cec6b5 1px solid;
+}
+
+.PopupTabArea
+{
+	color: #504845;
+	background-color: #DEDEDE;
+}
+
+.PopupTabEmptyArea
+{
+	padding-left: 10px ;
+	border-bottom: #cec6b5 1px solid;
+}
+
+.PopupTab, .PopupTabSelected
+{
+	border-right: #cec6b5 1px solid;
+	border-top: #cec6b5 1px solid;
+	border-left: #cec6b5 1px solid;
+	padding-right: 5px;
+	padding-left: 5px;
+	padding-bottom: 3px;
+	padding-top: 3px;
+	color: #504845;
+}
+
+.PopupTab
+{
+	margin-top: 1px;
+	border-bottom: #cec6b5 1px solid;
+	cursor: pointer;
+	cursor: hand;
+}
+
+.PopupTabSelected
+{
+	font-weight:bold;
+	cursor: default;
+	padding-top: 4px;
+	border-bottom: #f1f1e3 1px solid;
+	background-color: #f7f7f7;
+}
+
+.PopupSelectionBox
+{
+	border: #a9a9a9 1px solid !important;
+	background-color: #dcdcdc !important;
+	cursor: pointer;
+	cursor: hand;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/_fckviewstrips.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/_fckviewstrips.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/skins/_fckviewstrips.html	(revision 389)
@@ -0,0 +1,118 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: _fckviewstrips.html
+ * 	Useful page that enumerates all icons in the skins strips.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor - View Icons Strips</title>
+	<style type="text/css">
+		.TB_Button_Image
+		{
+			overflow: hidden;
+			width: 16px;
+			height: 16px;
+			margin: 3px;
+			background-repeat: no-repeat;
+		}
+
+		.TB_Button_Image img
+		{
+			position: relative;
+		}
+	</style>
+	<script type="text/javascript">
+
+window.onload = function()
+{
+	var eImg1 = document.createElement( 'img' ) ;
+	eImg1.onreadystatechange = Img_OnReadyStateChange ;
+	eImg1.src = 'default/fck_strip.gif' ;
+
+	var eImg2 = document.createElement( 'img' ) ;
+	eImg2.onreadystatechange = Img_OnReadyStateChange ;
+	eImg2.src = 'office2003/fck_strip.gif' ;
+
+	var eImg3 = document.createElement( 'img' ) ;
+	eImg3.onreadystatechange = Img_OnReadyStateChange ;
+	eImg3.src = 'silver/fck_strip.gif' ;
+}
+
+var iTotalStrips = 3 ;
+var iMaxHeight = 0 ;
+
+function Img_OnReadyStateChange()
+{
+	if ( this.readyState == 'complete' )
+	{
+		if ( iMaxHeight < this.height )
+			iMaxHeight = this.height ;
+		
+		iTotalStrips-- ;
+		
+		if ( iTotalStrips == 0 )
+			LoadIcons( iMaxHeight / 16 ) ;
+	}
+}
+
+function LoadIcons( total )
+{
+	for ( var i = 0 ; i < total ; i++ )
+	{
+		var eRow = xIconsTable.insertRow(-1) ;
+		
+		var eCell = eRow.insertCell(-1) ;
+		eCell.innerHTML = i + 1 ;
+		
+		eCell = eRow.insertCell(-1) ;
+		eCell.align = 'center' ;
+		eCell.style.border = '#dcdcdc 1px solid' ;
+		eCell.innerHTML = '<div class="TB_Button_Image"><img src="default/fck_strip.gif" style="top=-' + ( i * 16 ) + 'px;"></div>' ;
+
+		eCell = eRow.insertCell(-1) ;
+		eCell.align = 'center' ;
+		eCell.style.border = '#dcdcdc 1px solid' ;
+		eCell.innerHTML = '<div class="TB_Button_Image"><img src="office2003/fck_strip.gif" style="top=-' + ( i * 16 ) + 'px;"></div>' ;
+
+		eCell = eRow.insertCell(-1) ;
+		eCell.align = 'center' ;
+		eCell.style.border = '#dcdcdc 1px solid' ;
+		eCell.innerHTML = '<div class="TB_Button_Image"><img src="silver/fck_strip.gif" style="top=-' + ( i * 16 ) + 'px;"></div>' ;
+	}
+}
+
+	</script>
+</head>
+<body>
+	<table id="xIconsTable">
+		<tr>
+			<td rowspan="2">
+				Index</td>
+			<td align="center" colspan="3">
+				Skins</td>
+		</tr>
+		<tr>
+			<td width="80" align="center">
+				default</td>
+			<td width="80" align="center">
+				office2003</td>
+			<td width="80" align="center">
+				silver</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/css/behaviors/disablehandles.htc
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/css/behaviors/disablehandles.htc	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/css/behaviors/disablehandles.htc	(revision 389)
@@ -0,0 +1,15 @@
+<public:component lightweight="true">
+
+<script language="javascript">
+
+function CancelEvent()
+{
+	return false ;
+}
+
+this.onresizestart = CancelEvent ;
+this.onbeforeeditfocus = CancelEvent ;
+
+</script>
+
+</public:component>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/css/behaviors/showtableborders.htc
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/css/behaviors/showtableborders.htc	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/css/behaviors/showtableborders.htc	(revision 389)
@@ -0,0 +1,36 @@
+<public:component lightweight="true">
+
+<public:attach event="oncontentready" onevent="ShowBorders()" />
+<public:attach event="onpropertychange" onevent="OnPropertyChange()" />
+
+<script language="javascript">
+
+var oClassRegex = /\s*FCK__ShowTableBorders/ ;
+
+function ShowBorders()
+{
+	if ( this.border == 0 )
+	{
+		if ( !oClassRegex.test( this.className ) )
+			this.className += ' FCK__ShowTableBorders' ;
+	}
+	else
+	{
+		if ( oClassRegex.test( this.className ) )
+		{
+			this.className = this.className.replace( oClassRegex, '' ) ;
+			if ( this.className.length == 0 )
+				this.removeAttribute( 'className', 0 ) ;
+		}
+	}
+}
+
+function OnPropertyChange()
+{
+	if ( event.propertyName == 'border' || event.propertyName == 'className' )
+		ShowBorders.call(this) ;
+}
+
+</script>
+
+</public:component>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/css/behaviors/hiddenfield.htc
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/css/behaviors/hiddenfield.htc	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/css/behaviors/hiddenfield.htc	(revision 389)
@@ -0,0 +1,30 @@
+<public:component lightweight="true">
+
+<public:attach event="oncontentready" onevent="ShowField()" />
+<public:attach event="ondoubleclick" onevent="EditField()" />
+
+<script language="javascript">
+
+var bIsHiddenField = this.type == 'hidden' ;
+
+function ShowField()
+{
+	if ( bIsHiddenField ) 
+	{
+		this.runtimeStyle.width				= '20px' ;
+		this.runtimeStyle.height			= '20px' ;
+		this.runtimeStyle.border			= '1px dotted #FF0000' ;
+		this.runtimeStyle.backgroundImage	= 'url(css/behaviors/hiddenfield.gif)' ;
+		this.runtimeStyle.fontSize			= '99px' ;
+	}
+}
+
+function EditField()
+{
+	if ( bIsHiddenField ) 
+		alert( this.outerHTML ) ;
+}
+
+</script>
+
+</public:component>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/css/fck_internal.css
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/css/fck_internal.css	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/css/fck_internal.css	(revision 389)
@@ -0,0 +1,88 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_internal.css
+ * 	This CSS Style Sheet defines rules used by the editor for its internal use.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+/* Fix to allow putting the caret at the end of the
+content in Firefox if clicking below the content */
+html
+{
+	min-height:100%;
+}
+
+
+table.FCK__ShowTableBorders, table.FCK__ShowTableBorders td, table.FCK__ShowTableBorders th
+{
+	border: #d3d3d3 1px solid;
+}
+
+form
+{
+	border: 1px dotted #FF0000;
+	padding: 2px;
+}
+
+.FCK__Flash
+{
+	border: darkgray 1px solid;
+	background-position: center center;
+	background-image: url(images/fck_flashlogo.gif);
+	background-repeat: no-repeat;
+	width: 80px;
+	height: 80px;
+}
+
+.FCK__Anchor
+{
+	background-position: center center;
+	background-image: url(images/fck_anchor.gif);
+	background-repeat: no-repeat;
+	width: 16px;
+	height: 15px;
+}
+
+.FCK__PageBreak
+{
+	background-position: center center;
+	background-image: url(images/fck_pagebreak.gif);
+	background-repeat: no-repeat;
+	clear: both;
+	display: block;
+	float: none;
+	width: 100%;
+	border-top: #999999 1px dotted;
+	border-bottom: #999999 1px dotted;
+	border-right: 0px;
+	border-left: 0px;
+	height: 5px;
+}
+
+input[type="hidden"]
+{
+	display: inline;
+	width:20px;
+	height:20px;
+	border:1px dotted #FF0000 ;
+	background-image: url(behaviors/hiddenfield.gif);
+	background-repeat: no-repeat;
+}
+
+input[type="hidden"]:after
+{
+	padding-left: 20px;
+	content: "" ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/css/fck_editorarea.css
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/css/fck_editorarea.css	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/css/fck_editorarea.css	(revision 389)
@@ -0,0 +1,92 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_editorarea.css
+ * 	This is the default CSS file used by the editor area. It defines the
+ * 	initial font of the editor and background color.
+ * 
+ * 	A user can configure the editor to use another CSS file. Just change
+ * 	the value of the FCKConfig.EditorAreaCSS key in the configuration
+ * 	file.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+/*
+    The "body" styles should match your editor web site, mainly regarding
+    background color and font family and size.
+*/
+
+body
+{
+	background-color: #ffffff;
+	padding: 5px 5px 5px 5px;
+	margin: 0px;
+}
+
+body, td
+{
+	font-family: Arial, Verdana, Sans-Serif;
+	font-size: 12px;
+}
+
+a
+{
+	color: #0000FF !important;	/* For Firefox... mark as important, otherwise it becomes black */
+}
+
+h3
+{
+	color: #000080;
+}
+
+/* 
+	Just uncomment the following block if you want to avoid spaces between 
+	paragraphs. Remember to apply the same style in your output front end page.
+*/
+
+/*
+P, UL, LI
+{
+	margin-top: 0px;
+	margin-bottom: 0px;
+}
+*/
+
+/*
+    The following are some sample styles used in the "Styles" toolbar command.
+    You should instead remove them, and include the styles used by the site
+    you are using the editor in.
+*/
+
+.Bold
+{
+	font-weight: bold;
+}
+
+.Title
+{
+	font-weight: bold;
+	font-size: 18px;
+	color: #cc3300;
+}
+
+.Code
+{
+	border: #8b4513 1px solid;
+	padding-right: 5px;
+	padding-left: 5px;
+	color: #000066;
+	font-family: 'Courier New' , Monospace;
+	background-color: #ff9933;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/css/fck_showtableborders_gecko.css
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/css/fck_showtableborders_gecko.css	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/css/fck_showtableborders_gecko.css	(revision 389)
@@ -0,0 +1,38 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fck_showtableborders_gecko.css
+ * 	This CSS Style Sheet defines the rules to show table borders on Gecko.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+/* For tables with the "border" attribute set to "0" */
+table[border="0"], 
+table[border="0"] > tr > td, table[border="0"] > tr > th, 
+table[border="0"] > tbody > tr > td, table[border="0"] > tbody > tr > th, 
+table[border="0"] > thead > tr > td, table[border="0"] > thead > tr > th, 
+table[border="0"] > tfoot > tr > td, table[border="0"] > tfoot > tr > th
+{
+	border: #d3d3d3 1px dotted ;
+}
+
+/* For tables with no "border" attribute set */
+table:not([border]), 
+table:not([border]) > tr > td, table:not([border]) > tr > th,
+table:not([border]) > tbody > tr > td, table:not([border]) > tbody > tr > th,
+table:not([border]) > thead > tr > td, table:not([border]) > thead > tr > th,
+table:not([border]) > tfoot > tr > td, table:not([border]) > tfoot > tr > th
+{
+	border: #d3d3d3 1px dotted ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/frmresourcetype.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/frmresourcetype.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/frmresourcetype.html	(revision 389)
@@ -0,0 +1,61 @@
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: frmresourcetype.html
+ * 	This page shows the list of available resource types.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<link href="browser.css" type="text/css" rel="stylesheet">
+		<script type="text/javascript" src="js/common.js"></script>
+		<script language="javascript">
+
+function SetResourceType( type )
+{
+	window.parent.frames["frmFolders"].SetResourceType( type ) ;
+}
+
+var aTypes = [
+	['File','File'],
+	['Image','Image'],
+	['Flash','Flash'],
+	['Media','Media']
+] ;
+
+window.onload = function()
+{
+	for ( var i = 0 ; i < aTypes.length ; i++ )
+	{
+		if ( oConnector.ShowAllTypes || aTypes[i][0] == oConnector.ResourceType )
+			AddSelectOption( document.getElementById('cmbType'), aTypes[i][1], aTypes[i][0] ) ;
+	}
+}
+
+		</script>
+	</head>
+	<body bottomMargin="0" topMargin="0">
+		<table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
+			<tr>
+				<td nowrap>
+					Resource Type<BR>
+					<select id="cmbType" style="WIDTH: 100%" onchange="SetResourceType(this.value);">
+					</select>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/browser.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/browser.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/browser.html	(revision 389)
@@ -0,0 +1,148 @@
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: browser.html
+ * 	This page compose the File Browser dialog frameset.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+	<head>
+		<title>FCKeditor - Resources Browser</title>
+		<link href="browser.css" type="text/css" rel="stylesheet">
+		<script type="text/javascript" src="js/fckxml.js"></script>
+		<script language="javascript">
+
+function GetUrlParam( paramName )
+{
+	var oRegex = new RegExp( '[\?&]' + paramName + '=([^&]+)', 'i' ) ;
+	var oMatch = oRegex.exec( window.top.location.search ) ;
+	
+	if ( oMatch && oMatch.length > 1 )
+		return unescape( oMatch[1] ) ;
+	else
+		return '' ;
+}
+
+var oConnector = new Object() ;
+oConnector.CurrentFolder	= '/' ;
+
+var sConnUrl = GetUrlParam( 'Connector' ) ;
+
+// Gecko has some problems when using relative URLs (not starting with slash).
+if ( sConnUrl.substr(0,1) != '/' && sConnUrl.indexOf( '://' ) < 0 )
+	sConnUrl = window.location.href.replace( /browser.html.*$/, '' ) + sConnUrl ;
+
+oConnector.ConnectorUrl = sConnUrl + ( sConnUrl.indexOf('?') != -1 ? '&' : '?' ) ;
+
+var sServerPath = GetUrlParam( 'ServerPath' ) ;
+if ( sServerPath.length > 0 )
+	oConnector.ConnectorUrl += 'ServerPath=' + escape( sServerPath ) + '&' ;
+
+oConnector.ResourceType		= GetUrlParam( 'Type' ) ;
+oConnector.ShowAllTypes		= ( oConnector.ResourceType.length == 0 ) ;
+
+if ( oConnector.ShowAllTypes )
+	oConnector.ResourceType = 'File' ;
+
+oConnector.SendCommand = function( command, params, callBackFunction )
+{
+	var sUrl = this.ConnectorUrl + 'Command=' + command ;
+	sUrl += '&Type=' + this.ResourceType ;
+	sUrl += '&CurrentFolder=' + escape( this.CurrentFolder ) ;
+	
+	if ( params ) sUrl += '&' + params ;
+
+	var oXML = new FCKXml() ;
+	
+	if ( callBackFunction )
+		oXML.LoadUrl( sUrl, callBackFunction ) ;	// Asynchronous load.
+	else
+		return oXML.LoadUrl( sUrl ) ;
+}
+
+oConnector.CheckError = function( responseXml )
+{
+	var iErrorNumber = 0
+	var oErrorNode = responseXml.SelectSingleNode( 'Connector/Error' ) ;
+	
+	if ( oErrorNode )
+	{
+		iErrorNumber = parseInt( oErrorNode.attributes.getNamedItem('number').value ) ;
+		
+		switch ( iErrorNumber )
+		{
+			case 0 :
+				break ;
+			case 1 :	// Custom error. Message placed in the "text" attribute.
+				alert( oErrorNode.attributes.getNamedItem('text').value ) ;
+				break ;
+			case 101 :
+				alert( 'Folder already exists' ) ;
+				break ;
+			case 102 :
+				alert( 'Invalid folder name' ) ;
+				break ;
+			case 103 :
+				alert( 'You have no permissions to create the folder' ) ;
+				break ;
+			case 110 :
+				alert( 'Unknown error creating folder' ) ;
+				break ;
+			default :
+				alert( 'Error on your request. Error number: ' + iErrorNumber ) ;
+				break ;
+		}
+	}
+	return iErrorNumber ;
+}
+
+var oIcons = new Object() ;
+
+oIcons.AvailableIconsArray = [ 
+	'ai','avi','bmp','cs','dll','doc','exe','fla','gif','htm','html','jpg','js',
+	'mdb','mp3','pdf','ppt','rdp','swf','swt','txt','vsd','xls','xml','zip' ] ;
+	
+oIcons.AvailableIcons = new Object() ;
+
+for ( var i = 0 ; i < oIcons.AvailableIconsArray.length ; i++ )
+	oIcons.AvailableIcons[ oIcons.AvailableIconsArray[i] ] = true ;
+
+oIcons.GetIcon = function( fileName )
+{
+	var sExtension = fileName.substr( fileName.lastIndexOf('.') + 1 ).toLowerCase() ;
+
+	if ( this.AvailableIcons[ sExtension ] == true )
+		return sExtension ;
+	else
+		return 'default.icon' ;
+}
+		</script>
+	</head>
+	<frameset cols="150,*" class="Frame" framespacing="3" bordercolor="#f1f1e3" frameborder="1">
+		<frameset rows="50,*" framespacing="0">
+			<frame src="frmresourcetype.html" scrolling="no" frameborder="0">
+			<frame name="frmFolders" src="frmfolders.html" scrolling="auto" frameborder="1">
+		</frameset>
+		<frameset rows="50,*,50" framespacing="0">
+			<frame name="frmActualFolder" src="frmactualfolder.html" scrolling="no" frameborder="0">
+			<frame name="frmResourcesList" src="frmresourceslist.html" scrolling="auto" frameborder="1">
+			<frameset cols="150,*,0" framespacing="0" frameborder="0">
+				<frame name="frmCreateFolder" src="frmcreatefolder.html" scrolling="no" frameborder="0">
+				<frame name="frmUpload" src="frmupload.html" scrolling="no" frameborder="0">
+				<frame name="frmUploadWorker" src="../../../fckblank.html" scrolling="no" frameborder="0">
+			</frameset>
+		</frameset>
+	</frameset>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/frmfolders.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/frmfolders.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/frmfolders.html	(revision 389)
@@ -0,0 +1,192 @@
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: frmfolders.html
+ * 	This page shows the list of folders available in the parent folder 
+ * 	of the current folder.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+	<head>
+		<link href="browser.css" type="text/css" rel="stylesheet">
+		<script type="text/javascript" src="js/common.js"></script>
+		<script language="javascript">
+
+var sActiveFolder ;
+
+var bIsLoaded = false ;
+var iIntervalId ;
+
+var oListManager = new Object() ;
+
+oListManager.Init = function()
+{
+	this.Table = document.getElementById('tableFiles') ;
+	this.UpRow = document.getElementById('trUp') ;
+
+	this.TableRows = new Object() ;	
+}
+
+oListManager.Clear = function()
+{
+	// Remove all other rows available.
+	while ( this.Table.rows.length > 1 )
+		this.Table.deleteRow(1) ;
+
+	// Reset the TableRows collection.
+	this.TableRows = new Object() ;
+}
+
+oListManager.AddItem = function( folderName, folderPath )
+{
+	// Create the new row.
+	var oRow = this.Table.insertRow(-1) ;
+	oRow.className = 'FolderListFolder' ;
+
+	// Build the link to view the folder.
+	var sLink = '<a href="#" onclick="OpenFolder(\'' + folderPath + '\');return false;">' ;
+
+	// Add the folder icon cell.
+	var oCell = oRow.insertCell(-1) ;
+	oCell.width = 16 ;
+	oCell.innerHTML = sLink + '<img alt="" src="images/spacer.gif" width="16" height="16" border="0"></a>' ;
+
+	// Add the folder name cell.
+	oCell = oRow.insertCell(-1) ;
+	oCell.noWrap = true ;
+	oCell.innerHTML = '&nbsp;' + sLink + folderName + '</a>' ;
+	
+	this.TableRows[ folderPath ] = oRow ;
+}
+
+oListManager.ShowUpFolder = function( upFolderPath )
+{
+	this.UpRow.style.display = ( upFolderPath != null ? '' : 'none' ) ;
+	
+	if ( upFolderPath != null )
+	{
+		document.getElementById('linkUpIcon').onclick = document.getElementById('linkUp').onclick = function()
+		{
+			LoadFolders( upFolderPath ) ;
+			return false ;
+		}
+	}
+}
+
+function CheckLoaded()
+{
+	if ( window.top.IsLoadedActualFolder 
+		&& window.top.IsLoadedCreateFolder 
+		&& window.top.IsLoadedUpload
+		&& window.top.IsLoadedResourcesList )
+	{
+		window.clearInterval( iIntervalId ) ;
+		bIsLoaded = true ;
+		OpenFolder( sActiveFolder ) ;
+	}
+}
+
+function OpenFolder( folderPath )
+{
+	sActiveFolder = folderPath ;
+
+	if ( ! bIsLoaded )
+	{
+		if ( ! iIntervalId )
+			iIntervalId = window.setInterval( CheckLoaded, 100 ) ;
+		return ;
+	}
+
+	// Change the style for the select row (to show the opened folder).
+	for ( var sFolderPath in oListManager.TableRows )
+	{
+		oListManager.TableRows[ sFolderPath ].className = 
+			( sFolderPath == folderPath ? 'FolderListCurrentFolder' : 'FolderListFolder' ) ;
+	}
+
+	// Set the current folder in all frames.
+	window.parent.frames['frmActualFolder'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ;
+	window.parent.frames['frmCreateFolder'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ;
+	window.parent.frames['frmUpload'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ;
+	
+	// Load the resources list for this folder.
+	window.parent.frames['frmResourcesList'].LoadResources( oConnector.ResourceType, folderPath ) ;
+}
+
+function LoadFolders( folderPath )
+{
+	// Clear the folders list.
+	oListManager.Clear() ;
+
+	// Get the parent folder path.
+	var sParentFolderPath ;
+	if ( folderPath != '/' )
+		sParentFolderPath = folderPath.substring( 0, folderPath.lastIndexOf( '/', folderPath.length - 2 ) + 1 ) ;
+
+	// Show/Hide the Up Folder.
+	oListManager.ShowUpFolder( sParentFolderPath ) ;
+	
+	if ( folderPath != '/' )
+	{
+		sActiveFolder = folderPath ;
+		oConnector.CurrentFolder = sParentFolderPath
+		oConnector.SendCommand( 'GetFolders', null, GetFoldersCallBack ) ;
+	}
+	else
+		OpenFolder( '/' ) ;
+}
+
+function GetFoldersCallBack( fckXml )
+{
+	if ( oConnector.CheckError( fckXml ) != 0 )
+		return ;
+		
+	// Get the current folder path.
+	var oNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' ) ;
+	var sCurrentFolderPath = oNode.attributes.getNamedItem('path').value ;
+	
+	var oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' ) ;
+	
+	for ( var i = 0 ; i < oNodes.length ; i++ )
+	{
+		var sFolderName = oNodes[i].attributes.getNamedItem('name').value ;
+		oListManager.AddItem( sFolderName, sCurrentFolderPath + sFolderName + "/" ) ;
+	}
+	
+	OpenFolder( sActiveFolder ) ;
+}
+
+function SetResourceType( type )
+{
+	oConnector.ResourceType = type ;
+	LoadFolders( '/' ) ;
+}
+
+window.onload = function()
+{
+	oListManager.Init() ;
+	LoadFolders( '/' ) ;
+}
+		</script>
+	</head>
+	<body class="FileArea" bottomMargin="10" leftMargin="10" topMargin="10" rightMargin="10">
+		<table id="tableFiles" cellSpacing="0" cellPadding="0" width="100%" border="0">
+			<tr id="trUp" style="DISPLAY: none">
+				<td width="16"><a id="linkUpIcon" href="#"><img alt="" src="images/FolderUp.gif" width="16" height="16" border="0"></a></td>
+				<td nowrap width="100%">&nbsp;<a id="linkUp" href="#">..</a></td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html	(revision 389)
@@ -0,0 +1,109 @@
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: frmcreatefolder.html
+ * 	Page used to create new folders in the current folder.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<link href="browser.css" type="text/css" rel="stylesheet">
+		<script type="text/javascript" src="js/common.js"></script>
+		<script language="javascript">
+
+function SetCurrentFolder( resourceType, folderPath )
+{
+	oConnector.ResourceType = resourceType ;
+	oConnector.CurrentFolder = folderPath
+}
+
+function CreateFolder()
+{
+	var sFolderName ;
+	
+	while ( true ) 
+	{
+		sFolderName = prompt( 'Type the name of the new folder:', '' ) ;
+	
+		if ( sFolderName == null )
+			return ;
+		else if ( sFolderName.length == 0 )
+			alert( 'Please type the folder name' ) ;
+		else
+			break ;
+	}
+	
+	oConnector.SendCommand( 'CreateFolder', 'NewFolderName=' + escape( sFolderName) , CreateFolderCallBack ) ;
+}
+
+function CreateFolderCallBack( fckXml )
+{
+	if ( oConnector.CheckError( fckXml ) == 0 )
+		window.parent.frames['frmResourcesList'].Refresh() ;
+	
+	/*
+	// Get the current folder path.
+	var oNode = fckXml.SelectSingleNode( 'Connector/Error' ) ;
+	var iErrorNumber = parseInt( oNode.attributes.getNamedItem('number').value ) ;
+	
+	switch ( iErrorNumber )
+	{
+		case 0 :
+			window.parent.frames['frmResourcesList'].Refresh() ;
+			break ;
+		case 101 :
+			alert( 'Folder already exists' ) ;
+			break ;
+		case 102 :
+			alert( 'Invalid folder name' ) ;
+			break ;
+		case 103 :
+			alert( 'You have no permissions to create the folder' ) ;
+			break ;
+		case 110 :
+			alert( 'Unknown error creating folder' ) ;
+			break ;
+		default :
+			alert( 'Error creating folder. Error number: ' + iErrorNumber ) ;
+			break ;
+	}
+	*/
+}
+
+window.onload = function()
+{
+	window.top.IsLoadedCreateFolder = true ;
+}
+		</script>
+	</head>
+	<body bottomMargin="0" topMargin="0">
+		<table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
+			<tr>
+				<td>
+					<button type="button" style="WIDTH: 100%" onclick="CreateFolder();">
+						<table cellSpacing="0" cellPadding="0" border="0">
+							<tr>
+								<td><img height="16" alt="" src="images/Folder.gif" width="16"></td>
+								<td>&nbsp;</td>
+								<td nowrap>Create New Folder</td>
+							</tr>
+						</table>
+					</button>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/browser.css
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/browser.css	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/browser.css	(revision 389)
@@ -0,0 +1,84 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: browser.css
+ * 	CSS styles used by all pages that compose the File Browser.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+body
+{
+	background-color: #f1f1e3;
+}
+
+form
+{
+	margin: 0px 0px 0px 0px ;
+	padding: 0px 0px 0px 0px ;
+}
+
+.Frame
+{
+	background-color: #f1f1e3;
+	border-color: #f1f1e3;
+	border-right: thin inset;
+	border-top: thin inset;
+	border-left: thin inset;
+	border-bottom: thin inset;
+}
+
+body.FileArea
+{
+
+	background-color: #ffffff;
+}
+
+body, td, input, select
+{
+	font-size: 11px;
+	font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;
+}
+
+.ActualFolder
+{
+	font-weight: bold;
+	font-size: 14px;
+}
+
+.PopupButtons
+{
+	border-top: #d5d59d 1px solid;
+	background-color: #e3e3c7;
+	padding: 7px 10px 7px 10px;
+}
+
+.Button, button
+{
+	border-right: #737357 1px solid;
+	border-top: #737357 1px solid;
+	border-left: #737357 1px solid;
+	color: #3b3b1f;
+	border-bottom: #737357 1px solid;
+	background-color: #c7c78f;
+}
+
+.FolderListCurrentFolder img
+{
+	background-image: url(images/FolderOpened.gif);
+}
+
+.FolderListFolder img
+{
+	background-image: url(images/Folder.gif);
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/frmupload.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/frmupload.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/frmupload.html	(revision 389)
@@ -0,0 +1,109 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: frmupload.html
+ * 	Page used to upload new files in the current folder.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+	<head>
+		<link href="browser.css" type="text/css" rel="stylesheet" />
+		<script type="text/javascript" src="js/common.js"></script>
+		<script type="text/javascript">
+
+function SetCurrentFolder( resourceType, folderPath )
+{
+	var sUrl = oConnector.ConnectorUrl + 'Command=FileUpload' ;
+	sUrl += '&Type=' + resourceType ;
+	sUrl += '&CurrentFolder=' + escape( folderPath ) ;
+	
+	document.getElementById('frmUpload').action = sUrl ;
+}
+
+function OnSubmit()
+{
+	if ( document.getElementById('NewFile').value.length == 0 )
+	{
+		alert( 'Please select a file from your computer' ) ;
+		return false ;
+	}
+
+	// Set the interface elements.
+	document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder (Upload in progress, please wait...)' ;
+	document.getElementById('btnUpload').disabled = true ;
+	
+	return true ;
+}
+
+function OnUploadCompleted( errorNumber, data )
+{
+	// Reset the Upload Worker Frame.
+	window.parent.frames['frmUploadWorker'].location = '../../../../../fckblank.html' ;
+	
+	// Reset the upload form (On IE we must do a little trick to avout problems).
+	if ( document.all )
+		document.getElementById('NewFile').outerHTML = '<input id="NewFile" name="NewFile" style="WIDTH: 100%" type="file">' ;
+	else
+		document.getElementById('frmUpload').reset() ;
+	
+	// Reset the interface elements.
+	document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder' ;
+	document.getElementById('btnUpload').disabled = false ;
+	
+	switch ( errorNumber )
+	{
+		case 0 :
+			window.parent.frames['frmResourcesList'].Refresh() ;
+			break ;
+		case 1 :	// Custom error.
+			alert( data ) ;
+			break ;
+		case 201 :
+			window.parent.frames['frmResourcesList'].Refresh() ;
+			alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + data + '"' ) ;
+			break ;
+		case 202 :
+			alert( 'Invalid file' ) ;
+			break ;
+		default :
+			alert( 'Error on file upload. Error number: ' + errorNumber ) ;
+			break ;
+	}
+}
+
+window.onload = function()
+{
+	window.top.IsLoadedUpload = true ;
+}
+		</script>
+	</head>
+	<body bottommargin="0" topmargin="0">
+		<form id="frmUpload" action="" target="frmUploadWorker" method="post" enctype="multipart/form-data" onsubmit="return OnSubmit();">
+			<table height="100%" cellspacing="0" cellpadding="0" width="100%" border="0">
+				<tr>
+					<td nowrap="nowrap">
+						<span id="eUploadMessage">Upload a new file in this folder</span><br>
+						<table cellspacing="0" cellpadding="0" width="100%" border="0">
+							<tr>
+								<td width="100%"><input id="NewFile" name="NewFile" style="WIDTH: 100%" type="file"></td>
+								<td nowrap="nowrap">&nbsp;<input id="btnUpload" type="submit" value="Upload"></td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+			</table>
+		</form>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/js/fckxml.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/js/fckxml.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/js/fckxml.js	(revision 389)
@@ -0,0 +1,116 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckxml.js
+ * 	Defines the FCKXml object that is used for XML data calls
+ * 	and XML processing.
+ * 	This script is shared by almost all pages that compose the 
+ * 	File Browser frameset.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKXml = function()
+{}
+
+FCKXml.prototype.GetHttpRequest = function()
+{
+	// Gecko / IE7
+	if ( typeof(XMLHttpRequest) != 'undefined' )
+		return new XMLHttpRequest() ;
+
+	// IE6
+	try { return new ActiveXObject("Msxml2.XMLHTTP") ; } 
+	catch(e) {}
+
+	// IE5
+	try { return new ActiveXObject("Microsoft.XMLHTTP") ; }
+	catch(e) {}
+}
+
+FCKXml.prototype.LoadUrl = function( urlToCall, asyncFunctionPointer )
+{
+	var oFCKXml = this ;
+
+	var bAsync = ( typeof(asyncFunctionPointer) == 'function' ) ;
+
+	var oXmlHttp = this.GetHttpRequest() ;
+		
+	oXmlHttp.open( "GET", urlToCall, bAsync ) ;
+	
+	if ( bAsync )
+	{	
+		oXmlHttp.onreadystatechange = function() 
+		{
+			if ( oXmlHttp.readyState == 4 )
+			{
+				oFCKXml.DOMDocument = oXmlHttp.responseXML ;
+				if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 )
+					asyncFunctionPointer( oFCKXml ) ;
+				else
+					alert( 'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')' ) ;
+			}
+		}
+	}
+	
+	oXmlHttp.send( null ) ;
+	
+	if ( ! bAsync )
+	{
+		if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 )
+			this.DOMDocument = oXmlHttp.responseXML ;
+		else
+		{
+			alert( 'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')' ) ;
+		}
+	}
+}
+
+FCKXml.prototype.SelectNodes = function( xpath )
+{
+	if ( navigator.userAgent.indexOf('MSIE') >= 0 )		// IE
+		return this.DOMDocument.selectNodes( xpath ) ;
+	else					// Gecko
+	{
+		var aNodeArray = new Array();
+
+		var xPathResult = this.DOMDocument.evaluate( xpath, this.DOMDocument, 
+				this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), XPathResult.ORDERED_NODE_ITERATOR_TYPE, null) ;
+		if ( xPathResult ) 
+		{
+			var oNode = xPathResult.iterateNext() ;
+ 			while( oNode )
+ 			{
+ 				aNodeArray[aNodeArray.length] = oNode ;
+ 				oNode = xPathResult.iterateNext();
+ 			}
+		} 
+		return aNodeArray ;
+	}
+}
+
+FCKXml.prototype.SelectSingleNode = function( xpath ) 
+{
+	if ( navigator.userAgent.indexOf('MSIE') >= 0 )		// IE
+		return this.DOMDocument.selectSingleNode( xpath ) ;
+	else					// Gecko
+	{
+		var xPathResult = this.DOMDocument.evaluate( xpath, this.DOMDocument,
+				this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), 9, null);
+
+		if ( xPathResult && xPathResult.singleNodeValue )
+			return xPathResult.singleNodeValue ;
+		else	
+			return null ;
+	}
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/js/common.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/js/common.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/js/common.js	(revision 389)
@@ -0,0 +1,51 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: common.js
+ * 	Common objects and functions shared by all pages that compose the
+ * 	File Browser dialog window.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+function AddSelectOption( selectElement, optionText, optionValue )
+{
+	var oOption = document.createElement("OPTION") ;
+
+	oOption.text	= optionText ;
+	oOption.value	= optionValue ;	
+
+	selectElement.options.add(oOption) ;
+
+	return oOption ;
+}
+
+var oConnector	= window.parent.oConnector ;
+var oIcons		= window.parent.oIcons ;
+
+
+function StringBuilder( value )
+{
+    this._Strings = new Array( value || '' ) ;
+}
+
+StringBuilder.prototype.Append = function( value )
+{
+    if ( value )
+        this._Strings.push( value ) ;
+}
+
+StringBuilder.prototype.ToString = function()
+{
+    return this._Strings.join( '' ) ;
+}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/lasso/config.lasso
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/lasso/config.lasso	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/lasso/config.lasso	(revision 389)
@@ -0,0 +1,61 @@
+[//lasso
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: config.lasso
+ * 	Configuration file for the File Manager Connector for Lasso.
+ * 
+ * File Authors:
+ * 		Jason Huck (jason.huck@corefive.com)
+ */
+
+    /*.....................................................................     
+    The connector uses the file tags, which require authentication. Enter a
+    valid username and password from Lasso admin for a group with file tags
+    permissions for uploads and the path you define in UserFilesPath below.                                                                        
+    */ 
+    
+	var('connection') = array(
+		-username='xxxxxxxx',
+		-password='xxxxxxxx'
+	);
+
+
+    /*.....................................................................     
+    Set the base path for files that users can upload and browse (relative
+    to server root).
+    
+    Set which file extensions are allowed and/or denied for each file type.                                                                           
+    */                                                                          
+	var('config') = map(
+	    'Enabled' = true,
+		'UserFilesPath' = '/UserFiles/',
+		'Subdirectories' = map(
+			'File' = 'File/',
+			'Image' = 'Image/',
+			'Flash' = 'Flash/',
+			'Media' = 'Media/'
+		),
+		'AllowedExtensions' = map(
+			'File' = array(),
+			'Image' = array('jpg','gif','jpeg','png'),
+			'Flash' = array('swf','fla'),
+			'Media' = array('swf','fla','jpg','gif','jpeg','png','avi','mpg','mpeg')
+		),
+		'DeniedExtensions' = map(
+			'File' = array('php','php2','php3','php4','php5','phtml','pwml','inc','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','com','dll','vbs','js','reg','cgi','lasso','lassoapp','htaccess'),
+			'Image' = array(),
+			'Flash' = array(),
+			'Media' = array()
+		)
+	);
+]
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/lasso/connector.lasso
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/lasso/connector.lasso	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/lasso/connector.lasso	(revision 389)
@@ -0,0 +1,245 @@
+[//lasso
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: connector.lasso
+ * 	This is the File Manager Connector for Lasso.
+ * 
+ * File Authors:
+ * 		Jason Huck (jason.huck@corefive.com)
+ */
+
+    /*.....................................................................     
+    Include global configuration. See config.lasso for details.                                                                           
+    */                                                                          
+	include('config.lasso');
+
+		
+    /*.....................................................................     
+    Translate current date/time to GMT for custom header.                                                                          
+    */                                                                          
+	var('headerDate') = date_localtogmt(date)->format('%a, %d %b %Y %T GMT');
+
+
+    /*.....................................................................     
+    Convert query string parameters to variables and initialize output.                                                                           
+    */                                                                          
+	var(
+		'Command'		=	action_param('Command'),
+		'Type'			=	action_param('Type'),
+		'CurrentFolder'	=	action_param('CurrentFolder'),
+		'ServerPath'	=	action_param('ServerPath'),
+		'NewFolderName'	=	action_param('NewFolderName'),
+		'NewFile'		=	null,
+		'NewFileName'	=	string,
+		'OrigFilePath'	=	string,
+		'NewFilePath'	=	string,
+		'commandData'	=	string,
+		'folders'		=	'\t<Folders>\n',
+		'files'			=	'\t<Files>\n',
+		'errorNumber'	=	integer,
+		'responseType'	=	'xml',
+		'uploadResult'	=	'0'
+	);
+
+
+    /*.....................................................................     
+    Calculate the path to the current folder.                                                                           
+    */                                                                          
+	$ServerPath == '' ? $ServerPath = $config->find('UserFilesPath');
+		
+	var('currentFolderURL' = $ServerPath 
+		+ $config->find('Subdirectories')->find(action_param('Type'))
+		+ action_param('CurrentFolder')
+	);
+
+
+    /*.....................................................................     
+    Build the appropriate response per the 'Command' parameter. Wrap the
+    entire process in an inline for file tag permissions.                                                                         
+    */                                                                          
+	inline($connection);
+		select($Command);	
+            /*.............................................................     
+            List all subdirectories in the 'Current Folder' directory.                                                                   
+            */                                                                  
+			case('GetFolders');
+				$commandData += '\t<Folders>\n';
+			
+				iterate(file_listdirectory($currentFolderURL), local('this'));
+					#this->endswith('/') ? $commandData += '\t\t<Folder name="' + #this->removetrailing('/')& + '" />\n';
+				/iterate;
+				
+				$commandData += '\t</Folders>\n';
+
+
+            /*.............................................................     
+            List both files and folders in the 'Current Folder' directory.
+            Include the file sizes in kilobytes.                                                                   
+            */                                                                  				
+			case('GetFoldersAndFiles');
+				iterate(file_listdirectory($currentFolderURL), local('this'));
+					if(#this->endswith('/'));
+						$folders += '\t\t<Folder name="' + #this->removetrailing('/')& + '" />\n';
+					else;
+						local('size') = file_getsize($currentFolderURL + #this) / 1024;
+						$files += '\t\t<File name="' + #this + '" size="' + #size + '" />\n';
+					/if;					
+				/iterate;
+
+				$folders += '\t</Folders>\n';
+				$files += '\t</Files>\n';
+				
+				$commandData += $folders + $files;
+
+
+            /*.............................................................     
+            Create a directory 'NewFolderName' within the 'Current Folder.'                                                                 
+            */                                                                  				
+			case('CreateFolder');
+				var('newFolder' = $currentFolderURL + $NewFolderName + '/');			
+				file_create($newFolder);			
+				
+				
+                /*.........................................................     
+                Map Lasso's file error codes to FCKEditor's error codes.                                                              
+                */                                                              				
+				select(file_currenterror( -errorcode));
+					case(0);
+						$errorNumber = 0;
+					case( -9983);
+						$errorNumber = 101;
+					case( -9976);
+						$errorNumber = 102;
+					case( -9977);
+						$errorNumber = 102;
+					case( -9961);
+						$errorNumber = 103;
+					case;
+						$errorNumber = 110;
+				/select;
+				
+				$commandData += '<Error number="' + $errorNumber + '" />\n';
+
+
+            /*.............................................................     
+            Process an uploaded file.                                                                  
+            */                                                                  				
+			case('FileUpload');		
+                /*.........................................................     
+                This is the only command that returns an HTML response.                                                              
+                */                                                              			
+				$responseType = 'html';
+				
+				
+                /*.........................................................     
+                Was a file actually uploaded?                                                              
+                */                                                              
+				file_uploads->size ? $NewFile = file_uploads->get(1) | $uploadResult = '202';
+								
+				if($uploadResult == '0');
+                    /*.....................................................     
+                    Split the file's extension from the filename in order
+                    to follow the API's naming convention for duplicate
+                    files. (Test.txt, Test(1).txt, Test(2).txt, etc.)                                                          
+                    */                                                          
+					$NewFileName = $NewFile->find('OrigName');													
+					$OrigFilePath = $currentFolderURL + $NewFileName;
+					$NewFilePath = $OrigFilePath;
+					local('fileExtension') = '.' + $NewFile->find('OrigExtension');					
+					local('shortFileName') = $NewFileName->removetrailing(#fileExtension)&;
+
+
+                    /*.....................................................     
+                    Make sure the file extension is allowed.                                                          
+                    */                                                          
+					if($config->find('DeniedExtensions')->find($Type) >> $NewFile->find('OrigExtension'));
+						$uploadResult = '202';
+					else;
+                        /*.................................................     
+                        Rename the target path until it is unique.                                                    
+                        */                                                      										
+						while(file_exists($NewFilePath));
+							$NewFilePath = $currentFolderURL + #shortFileName + '(' + loop_count + ')' + #fileExtension;
+						/while;
+						
+						
+                        /*.................................................     
+                        Copy the uploaded file to its final location.                                                     
+                        */                                                      
+						file_copy($NewFile->find('path'), $NewFilePath);
+
+
+                        /*.................................................     
+                        Set the error code for the response. Note whether
+                        the file had to be renamed.                                                      
+                        */                                                      						
+						select(file_currenterror( -errorcode));
+							case(0);
+								$OrigFilePath != $NewFilePath ? $uploadResult = '201, \'' + $NewFilePath->split('/')->last + '\'';
+							case;
+								$uploadResult = '202';
+						/select;
+					/if;
+				/if;
+
+
+                /*.........................................................     
+                Set the HTML response.                                                               
+                */                                                              				
+				$__html_reply__ = '\
+<script type="text/javascript">
+	window.parent.frames[\'frmUpload\'].OnUploadCompleted(' + $uploadResult + ');
+</script>
+				';
+		/select;
+	/inline;
+
+
+    /*.....................................................................     
+    Send a custom header for xml responses.                                                                          
+    */                                                                          
+	if($responseType == 'xml');
+		header;
+]
+HTTP/1.0 200 OK
+Date: [$headerDate]
+Server: Lasso Professional [lasso_version( -lassoversion)]
+Expires: Mon, 26 Jul 1997 05:00:00 GMT
+Last-Modified: [$headerDate]
+Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
+Pragma: no-cache
+Keep-Alive: timeout=15, max=98
+Connection: Keep-Alive
+Content-Type: text/xml; charset=utf-8
+[//lasso
+		/header;
+
+
+        /*.................................................................     
+        Set the content type encoding for Lasso.                                                                      
+        */                                                                      
+		content_type('text/xml; charset=utf-8');
+
+
+        /*.................................................................     
+        Wrap the response as XML and output.                                                                      
+        */                                                                      
+		$__html_reply__ = '\
+<?xml version="1.0" encoding="utf-8" ?>
+<Connector command="' + $Command + '" resourceType="' + $Type + '">
+	<CurrentFolder path="' + $CurrentFolder + '" url="' + $currentFolderURL + '" />
+' + $commandData + '
+</Connector>
+		';
+	/if;
+]	
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/perl/io.pl
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/perl/io.pl	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/perl/io.pl	(revision 389)
@@ -0,0 +1,127 @@
+#####
+#  FCKeditor - The text editor for internet
+#  Copyright (C) 2003-2006 Frederico Caldeira Knabben
+#  
+#  Licensed under the terms of the GNU Lesser General Public License:
+#  		http://www.opensource.org/licenses/lgpl-license.php
+#  
+#  For further information visit:
+#  		http://www.fckeditor.net/
+#  
+#  "Support Open Source software. What about a donation today?"
+#  
+#  File Name: io.pl
+#  	This is the File Manager Connector for Perl.
+#  
+#  File Authors:
+#  		Takashi Yamaguchi (jack@omakase.net)
+#####
+
+sub GetUrlFromPath
+{
+	local($resourceType, $folderPath) = @_;
+
+	if($resourceType eq '') {
+		$rmpath = &RemoveFromEnd($GLOBALS{'UserFilesPath'},'/');
+		return("$rmpath$folderPath");
+	} else {
+		return("$GLOBALS{'UserFilesPath'}$resourceType$folderPath");
+	}
+}
+
+sub RemoveExtension
+{
+	local($fileName) = @_;
+	local($path, $base, $ext);
+	if($fileName !~ /\./) {
+		$fileName .= '.';
+	}
+	if($fileName =~ /([^\\\/]*)\.(.*)$/) {
+		$base = $1;
+		$ext  = $2;
+		if($fileName =~ /(.*)$base\.$ext$/) {
+			$path = $1;
+		}
+	}
+	return($path,$base,$ext);
+
+}
+
+sub ServerMapFolder
+{
+	local($resourceType,$folderPath) = @_;
+
+	# Get the resource type directory.
+	$sResourceTypePath = $GLOBALS{'UserFilesDirectory'} . $resourceType . '/';
+
+	# Ensure that the directory exists.
+	&CreateServerFolder($sResourceTypePath);
+
+	# Return the resource type directory combined with the required path.
+	$rmpath = &RemoveFromStart($folderPath,'/');
+	return("$sResourceTypePath$rmpath");
+}
+
+sub GetParentFolder
+{
+	local($folderPath) = @_;
+
+	$folderPath =~ s/[\/][^\/]+[\/]?$//g;
+	return $folderPath;
+}
+
+sub CreateServerFolder
+{
+	local($folderPath) = @_;
+
+	$sParent = &GetParentFolder($folderPath);
+	# Check if the parent exists, or create it.
+	if(!(-e $sParent)) {
+		$sErrorMsg = &CreateServerFolder($sParent);
+		if($sErrorMsg == 1) {
+			return(1);
+		}
+	}
+	if(!(-e $folderPath)) {
+		umask(000);
+		mkdir("$folderPath",0777);
+		chmod(0777,"$folderPath");
+		return(0);
+	} else {
+		return(1);
+	}
+}
+
+sub GetRootPath
+{
+#use Cwd;
+
+#	my $dir = getcwd;
+#	print $dir;
+#	$dir  =~ s/$ENV{'DOCUMENT_ROOT'}//g;
+#	print $dir;
+#	return($dir);
+
+#	$wk = $0;
+#	$wk =~ s/\/connector\.cgi//g;
+#	if($wk) {
+#		$current_dir = $wk;
+#	} else {
+#		$current_dir = `pwd`;
+#	}
+#	return($current_dir);
+use Cwd;
+
+	if($ENV{'DOCUMENT_ROOT'}) {
+		$dir = $ENV{'DOCUMENT_ROOT'};
+	} else {
+		my $dir = getcwd;
+		$workdir =~ s/\/connector\.cgi//g;
+		$dir  =~ s/$workdir//g;
+	}
+	return($dir);
+
+
+
+}
+1;
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/perl/upload_fck.pl
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/perl/upload_fck.pl	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/perl/upload_fck.pl	(revision 389)
@@ -0,0 +1,663 @@
+#####
+#  FCKeditor - The text editor for internet
+#  Copyright (C) 2003-2006 Frederico Caldeira Knabben
+#  
+#  Licensed under the terms of the GNU Lesser General Public License:
+#  		http://www.opensource.org/licenses/lgpl-license.php
+#  
+#  For further information visit:
+#  		http://www.fckeditor.net/
+#  
+#  "Support Open Source software. What about a donation today?"
+#  
+#  File Name: upload_fck.pl
+#  	This is the File Manager Connector for Perl.
+#  
+#  File Authors:
+#  		Takashi Yamaguchi (jack@omakase.net)
+#####
+
+# image data save dir
+$img_dir	= './temp/';
+
+
+# File size max(unit KB)
+$MAX_CONTENT_SIZE =  30000;
+
+# Filelock (1=use,0=not use)
+$PM{'flock'}		= '1';
+
+
+# upload Content-Type list
+my %UPLOAD_CONTENT_TYPE_LIST = (
+	'image/(x-)?png'						=>	'png',	# PNG image
+	'image/p?jpe?g'							=>	'jpg',	# JPEG image
+	'image/gif'								=>	'gif',	# GIF image
+	'image/x-xbitmap'						=>	'xbm',	# XBM image
+
+	'image/(x-(MS-)?)?bmp'					=>	'bmp',	# Windows BMP image
+	'image/pict'							=>	'pict',	# Macintosh PICT image
+	'image/tiff'							=>	'tif',	# TIFF image
+	'application/pdf'						=>	'pdf',	# PDF image
+	'application/x-shockwave-flash'			=>	'swf',	# Shockwave Flash
+
+	'video/(x-)?msvideo'					=>	'avi',	# Microsoft Video
+	'video/quicktime'						=>	'mov',	# QuickTime Video
+	'video/mpeg'							=>	'mpeg',	# MPEG Video
+	'video/x-mpeg2'							=>	'mpv2', # MPEG2 Video
+
+	'audio/(x-)?midi?'						=>	'mid',	# MIDI Audio
+	'audio/(x-)?wav'						=>	'wav',	# WAV Audio
+	'audio/basic'							=>	'au',	# ULAW Audio
+	'audio/mpeg'							=>	'mpga',	# MPEG Audio
+
+	'application/(x-)?zip(-compressed)?'	=>	'zip',	# ZIP Compress
+
+	'text/html'								=>	'html', # HTML
+	'text/plain'							=>	'txt',	# TEXT
+	'(?:application|text)/(?:rtf|richtext)'	=>	'rtf',	# RichText
+
+	'application/msword'					=>	'doc',	# Microsoft Word
+	'application/vnd.ms-excel'				=>	'xls',	# Microsoft Excel
+
+	''
+);
+
+# Upload is permitted.
+# A regular expression is possible.
+my %UPLOAD_EXT_LIST = (
+	'png'					=>	'PNG image',
+	'p?jpe?g|jpe|jfif|pjp'	=>	'JPEG image',
+	'gif'					=>	'GIF image',
+	'xbm'					=>	'XBM image',
+
+	'bmp|dib|rle'			=>	'Windows BMP image',
+	'pi?ct'					=>	'Macintosh PICT image',
+	'tiff?'					=>	'TIFF image',
+	'pdf'					=>	'PDF image',
+	'swf'					=>	'Shockwave Flash',
+
+	'avi'					=>	'Microsoft Video',
+	'moo?v|qt'				=>	'QuickTime Video',
+	'm(p(e?gv?|e|v)|1v)'	=>	'MPEG Video',
+	'mp(v2|2v)'				=>	'MPEG2 Video',
+
+	'midi?|kar|smf|rmi|mff'	=>	'MIDI Audio',
+	'wav'					=>	'WAVE Audio',
+	'au|snd'				=>	'ULAW Audio',
+	'mp(e?ga|2|a|3)|abs'	=>	'MPEG Audio',
+
+	'zip'					=>	'ZIP Compress',
+	'lzh'					=>	'LZH Compress',
+	'cab'					=>	'CAB Compress',
+
+	'd?html?'				=>	'HTML',
+	'rtf|rtx'				=>	'RichText',
+	'txt|text'				=>	'Text',
+
+	''
+);
+
+
+# sjis or euc
+my $CHARCODE = 'sjis';
+
+$TRANS_2BYTE_CODE = 0;
+
+##############################################################################
+# Summary
+#
+# Form Read input
+#
+# Parameters
+# Returns
+# Memo
+##############################################################################
+sub read_input
+{
+eval("use File::Copy;");
+eval("use File::Path;");
+
+	my ($FORM) = @_;
+
+
+	mkdir($img_dir,0777);
+	chmod(0777,$img_dir);
+
+	undef $img_data_exists;
+	undef @NEWFNAMES;
+	undef @NEWFNAME_DATA;
+
+	if($ENV{'CONTENT_LENGTH'} > 10000000 || $ENV{'CONTENT_LENGTH'} > $MAX_CONTENT_SIZE * 1024) {
+		&upload_error(
+			'Size Error',
+			sprintf(
+				"Transmitting size is too large.MAX <strong>%d KB</strong> Now Size <strong>%d KB</strong>(<strong>%d bytes</strong> Over)",
+				$MAX_CONTENT_SIZE,
+				int($ENV{'CONTENT_LENGTH'} / 1024),
+				$ENV{'CONTENT_LENGTH'} - $MAX_CONTENT_SIZE * 1024
+			)
+		);
+	}
+
+	my $Buffer;
+	if($ENV{'CONTENT_TYPE'} =~ /multipart\/form-data/) {
+		# METHOD POST only
+		return	unless($ENV{'CONTENT_LENGTH'});
+
+		binmode(STDIN);
+		# STDIN A pause character is detected.'(MacIE3.0 boundary of $ENV{'CONTENT_TYPE'} cannot be trusted.)
+		my $Boundary = <STDIN>;
+		$Boundary =~ s/\x0D\x0A//;
+		$Boundary = quotemeta($Boundary);
+		while(<STDIN>) {
+			if(/^\s*Content-Disposition:/i) {
+				my($name,$ContentType,$FileName);
+				# form data get
+				if(/\bname="([^"]+)"/i || /\bname=([^\s:;]+)/i) {
+					$name = $1;
+					$name	=~ tr/+/ /;
+					$name	=~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+					&Encode(\$name);
+				}
+				if(/\bfilename="([^"]*)"/i || /\bfilename=([^\s:;]*)/i) {
+					$FileName = $1 || 'unknown';
+				}
+				# head read
+				while(<STDIN>) {
+					last	if(! /\w/);
+					if(/^\s*Content-Type:\s*"([^"]+)"/i || /^\s*Content-Type:\s*([^\s:;]+)/i) {
+						$ContentType = $1;
+					}
+				}
+				# body read
+				$value = "";
+				while(<STDIN>) {
+					last	if(/^$Boundary/o);
+					$value .= $_;
+				};
+				$lastline = $_;
+				$value =~s /\x0D\x0A$//;
+				if($value ne '') {
+					if($FileName || $ContentType) {
+						$img_data_exists = 1;
+						(
+							$FileName,		#
+							$Ext,			#
+							$Length,		#
+							$ImageWidth,	#
+							$ImageHeight,	#
+							$ContentName	#
+						) = &CheckContentType(\$value,$FileName,$ContentType);
+						
+						$FORM{$name}	= $FileName;
+						$new_fname		= $FileName;
+						push(@NEWFNAME_DATA,"$FileName\t$Ext\t$Length\t$ImageWidth\t$ImageHeight\t$ContentName");
+
+						# Multi-upload correspondence
+						push(@NEWFNAMES,$new_fname);
+						open(OUT,">$img_dir/$new_fname");
+						binmode(OUT);
+						eval "flock(OUT,2);" if($PM{'flock'} == 1);
+						print OUT $value;
+						eval "flock(OUT,8);" if($PM{'flock'} == 1);
+						close(OUT);
+
+					} elsif($name) {
+						$value	=~ tr/+/ /;
+						$value	=~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+						&Encode(\$value,'trans');
+						$FORM{$name} .= "\0"			if(defined($FORM{$name}));
+						$FORM{$name} .= $value;
+					}
+				}
+			};
+			last if($lastline =~ /^$Boundary\-\-/o);
+		}
+	} elsif($ENV{'CONTENT_LENGTH'}) {
+		read(STDIN,$Buffer,$ENV{'CONTENT_LENGTH'});
+	}
+	foreach(split(/&/,$Buffer),split(/&/,$ENV{'QUERY_STRING'})) {
+		my($name, $value) = split(/=/);
+		$name	=~ tr/+/ /;
+		$name	=~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+		$value	=~ tr/+/ /;
+		$value	=~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+
+		&Encode(\$name);
+		&Encode(\$value,'trans');
+		$FORM{$name} .= "\0"			if(defined($FORM{$name}));
+		$FORM{$name} .= $value;
+
+	}
+
+}
+
+##############################################################################
+# Summary
+#
+#	CheckContentType
+#
+# Parameters
+# Returns
+# Memo
+##############################################################################
+sub CheckContentType
+{
+
+	my($DATA,$FileName,$ContentType) = @_;
+	my($Ext,$ImageWidth,$ImageHeight,$ContentName,$Infomation);
+	my $DataLength = length($$DATA);
+
+	# An unknown file type
+
+	$_ = $ContentType;
+	my $UnknownType = (
+		!$_
+		|| /^application\/(x-)?macbinary$/i
+		|| /^application\/applefile$/i
+		|| /^application\/octet-stream$/i
+		|| /^text\/plane$/i
+		|| /^x-unknown-content-type/i
+	);
+
+	# MacBinary(Mac Unnecessary data are deleted.)
+	if($UnknownType || $ENV{'HTTP_USER_AGENT'} =~ /Macintosh|Mac_/) {
+		if($DataLength > 128 && !unpack("C",substr($$DATA,0,1)) && !unpack("C",substr($$DATA,74,1)) && !unpack("C",substr($$DATA,82,1)) ) {
+			my $MacBinary_ForkLength = unpack("N", substr($$DATA, 83, 4));		# ForkLength Get
+			my $MacBinary_FileName = quotemeta(substr($$DATA, 2, unpack("C",substr($$DATA, 1, 1))));
+			if($MacBinary_FileName && $MacBinary_ForkLength && $DataLength >= $MacBinary_ForkLength + 128
+					&& ($FileName =~ /$MacBinary_FileName/i || substr($$DATA,102,4) eq 'mBIN')) {	# DATA TOP 128byte MacBinary!!
+				$$DATA				= substr($$DATA,128,$MacBinary_ForkLength);
+				my $ResourceLength	= $DataLength - $MacBinary_ForkLength - 128;
+				$DataLength			= $MacBinary_ForkLength;
+			}
+		}
+	}
+
+	# A file name is changed into EUC.
+#	&jcode::convert(\$FileName,'euc',$FormCodeDefault);
+#	&jcode::h2z_euc(\$FileName);
+	$FileName =~ s/^.*\\//;					# Windows, Mac
+	$FileName =~ s/^.*\///;					# UNIX
+	$FileName =~ s/&/&amp;/g;
+	$FileName =~ s/"/&quot;/g;
+	$FileName =~ s/</&lt;/g;
+	$FileName =~ s/>/&gt;/g;
+#
+#	if($CHARCODE ne 'euc') {
+#		&jcode::convert(\$FileName,$CHARCODE,'euc');
+#	}
+
+	# An extension is extracted and it changes into a small letter.
+	my $FileExt;
+	if($FileName =~ /\.(\w+)$/) {
+		$FileExt = $1;
+		$FileExt =~ tr/A-Z/a-z/;
+	}
+
+	# Executable file detection (ban on upload)
+	if($$DATA =~ /^MZ/) {
+		$Ext = 'exe';
+	}
+	# text
+	if(!$Ext && ($UnknownType || $ContentType =~ /^text\//i || $ContentType =~ /^application\/(?:rtf|richtext)$/i || $ContentType =~ /^image\/x-xbitmap$/i)
+				&& ! $$DATA =~ /[\000-\006\177\377]/) {
+#		$$DATA =~ s/\x0D\x0A/\n/g;
+#		$$DATA =~ tr/\x0D\x0A/\n\n/;
+#
+#		if(
+#			$$DATA =~ /<\s*SCRIPT(?:.|\n)*?>/i
+#				|| $$DATA =~ /<\s*(?:.|\n)*?\bONLOAD\s*=(?:.|\n)*?>/i
+#				|| $$DATA =~ /<\s*(?:.|\n)*?\bONCLICK\s*=(?:.|\n)*?>/i
+#				) {
+#			$Infomation = '(JavaScript contains)';
+#		}
+#		if($$DATA =~ /<\s*TABLE(?:.|\n)*?>/i
+#				|| $$DATA =~ /<\s*BLINK(?:.|\n)*?>/i
+#				|| $$DATA =~ /<\s*MARQUEE(?:.|\n)*?>/i
+#				|| $$DATA =~ /<\s*OBJECT(?:.|\n)*?>/i
+#				|| $$DATA =~ /<\s*EMBED(?:.|\n)*?>/i
+#				|| $$DATA =~ /<\s*FRAME(?:.|\n)*?>/i
+#				|| $$DATA =~ /<\s*APPLET(?:.|\n)*?>/i
+#				|| $$DATA =~ /<\s*FORM(?:.|\n)*?>/i
+#				|| $$DATA =~ /<\s*(?:.|\n)*?\bSRC\s*=(?:.|\n)*?>/i
+#				|| $$DATA =~ /<\s*(?:.|\n)*?\bDYNSRC\s*=(?:.|\n)*?>/i
+#				) {
+#			$Infomation = '(the HTML tag which is not safe is included)';
+#		}
+
+		if($FileExt =~ /^txt$/i || $FileExt =~ /^cgi$/i || $FileExt =~ /^pl$/i) {								# Text File
+			$Ext = 'txt';
+		} elsif($ContentType =~ /^text\/html$/i || $FileExt =~ /html?/i || $$DATA =~ /<\s*HTML(?:.|\n)*?>/i) {	# HTML File
+			$Ext = 'html';
+		} elsif($ContentType =~ /^image\/x-xbitmap$/i || $FileExt =~ /^xbm$/i) {								# XBM(x-BitMap) Image
+			my $XbmName = $1;
+			my ($XbmWidth, $XbmHeight);
+			if($$DATA =~ /\#define\s*$XbmName\_width\s*(\d+)/i) {
+				$XbmWidth = $1;
+			}
+			if($$DATA =~ /\#define\s*$XbmName\_height\s*(\d+)/i) {
+				$XbmHeight = $1;
+			}
+			if($XbmWidth && $XbmHeight) {
+				$Ext = 'xbm';
+				$ImageWidth		= $XbmWidth;
+				$ImageHeight	= $XbmHeight;
+			}
+		} else {		# 
+			$Ext = 'txt';
+		}
+	}
+
+	# image
+	if(!$Ext && ($UnknownType || $ContentType =~ /^image\//i)) {
+		# PNG
+		if($$DATA =~ /^\x89PNG\x0D\x0A\x1A\x0A/) {
+			if(substr($$DATA, 12, 4) eq 'IHDR') {
+				$Ext = 'png';
+				($ImageWidth, $ImageHeight) = unpack("N2", substr($$DATA, 16, 8));
+			}
+		} elsif($$DATA =~ /^GIF8(?:9|7)a/) {															# GIF89a(modified), GIF89a, GIF87a
+			$Ext = 'gif';
+			($ImageWidth, $ImageHeight) = unpack("v2", substr($$DATA, 6, 4));
+		} elsif($$DATA =~ /^II\x2a\x00\x08\x00\x00\x00/ || $$DATA =~ /^MM\x00\x2a\x00\x00\x00\x08/) {	# TIFF
+			$Ext = 'tif';
+		} elsif($$DATA =~ /^BM/) {																		# BMP
+			$Ext = 'bmp';
+		} elsif($$DATA =~ /^\xFF\xD8\xFF/ || $$DATA =~ /JFIF/) {										# JPEG
+			my $HeaderPoint = index($$DATA, "\xFF\xD8\xFF", 0);
+			my $Point = $HeaderPoint + 2;
+			while($Point < $DataLength) {
+				my($Maker, $MakerType, $MakerLength) = unpack("C2n",substr($$DATA,$Point,4));
+				if($Maker != 0xFF || $MakerType == 0xd9 || $MakerType == 0xda) {
+					last;
+				} elsif($MakerType >= 0xC0 && $MakerType <= 0xC3) {
+					$Ext = 'jpg';
+					($ImageHeight, $ImageWidth) = unpack("n2", substr($$DATA, $Point + 5, 4));
+					if($HeaderPoint > 0) {
+						$$DATA = substr($$DATA, $HeaderPoint);
+						$DataLength = length($$DATA);
+					}
+					last;
+				} else {
+					$Point += $MakerLength + 2;
+				}
+			}
+		}
+	}
+
+	# audio
+	if(!$Ext && ($UnknownType || $ContentType =~ /^audio\//i)) {
+		# MIDI Audio
+		if($$DATA =~ /^MThd/) {
+			$Ext = 'mid';
+		} elsif($$DATA =~ /^\x2esnd/) {		# ULAW Audio
+			$Ext = 'au';
+		} elsif($$DATA =~ /^RIFF/ || $$DATA =~ /^ID3/ && $$DATA =~ /RIFF/) {
+			my $HeaderPoint = index($$DATA, "RIFF", 0);
+			$_ = substr($$DATA, $HeaderPoint + 8, 8);
+			if(/^WAVEfmt $/) {
+				# WAVE
+				if(unpack("V",substr($$DATA, $HeaderPoint + 16, 4)) == 16) {
+					$Ext = 'wav';
+				} else {					# RIFF WAVE MP3
+					$Ext = 'mp3';
+				}
+			} elsif(/^RMIDdata$/) {			# RIFF MIDI
+				$Ext = 'rmi';
+			} elsif(/^RMP3data$/) {			# RIFF MP3
+				$Ext = 'rmp';
+			}
+			if($ContentType =~ /^audio\//i) {
+				$Infomation .= '(RIFF '. substr($$DATA, $HeaderPoint + 8, 4). ')';
+			}
+		}
+	}
+
+	# a binary file
+	unless ($Ext) {
+		# PDF image
+		if($$DATA =~ /^\%PDF/) {
+			# Picture size is not measured.
+			$Ext = 'pdf';
+		} elsif($$DATA =~ /^FWS/) {		# Shockwave Flash
+			$Ext = 'swf';
+		} elsif($$DATA =~ /^RIFF/ || $$DATA =~ /^ID3/ && $$DATA =~ /RIFF/) {
+			my $HeaderPoint = index($$DATA, "RIFF", 0);
+			$_ = substr($$DATA,$HeaderPoint + 8, 8);
+			# AVI
+			if(/^AVI LIST$/) {
+				$Ext = 'avi';
+			}
+			if($ContentType =~ /^video\//i) {
+				$Infomation .= '(RIFF '. substr($$DATA, $HeaderPoint + 8, 4). ')';
+			}
+		} elsif($$DATA =~ /^PK/) {			# ZIP Compress File
+			$Ext = 'zip';
+		} elsif($$DATA =~ /^MSCF/) {		# CAB Compress File
+			$Ext = 'cab';
+		} elsif($$DATA =~ /^Rar\!/) {		# RAR Compress File
+			$Ext = 'rar';
+		} elsif(substr($$DATA, 2, 5) =~ /^\-lh(\d+|d)\-$/) {		# LHA Compress File
+			$Infomation .= "(lh$1)";
+			$Ext = 'lzh';
+		} elsif(substr($$DATA, 325, 25) eq "Apple Video Media Handler" || substr($$DATA, 325, 30) eq "Apple \x83\x72\x83\x66\x83\x49\x81\x45\x83\x81\x83\x66\x83\x42\x83\x41\x83\x6E\x83\x93\x83\x68\x83\x89") {
+			# QuickTime
+			$Ext = 'mov';
+		}
+	}
+
+	# Header analysis failure
+	unless ($Ext) {
+		# It will be followed if it applies for the MIME type from the browser.
+		foreach (keys %UPLOAD_CONTENT_TYPE_LIST) {
+			next unless ($_);
+			if($ContentType =~ /^$_$/i) {
+				$Ext = $UPLOAD_CONTENT_TYPE_LIST{$_};
+				$ContentName = &CheckContentExt($Ext);
+				if(
+					grep {$_ eq $Ext;} (
+						'png',
+						'gif',
+						'jpg',
+						'xbm',
+						'tif',
+						'bmp',
+						'pdf',
+						'swf',
+						'mov',
+						'zip',
+						'cab',
+						'lzh',
+						'rar',
+						'mid',
+						'rmi',
+						'au',
+						'wav',
+						'avi',
+						'exe'
+					)
+				) {
+					$Infomation .= ' / Header analysis failure';
+				}
+				if($Ext ne $FileExt && &CheckContentExt($FileExt) eq $ContentName) {
+					$Ext = $FileExt;
+				}
+				last;
+			}
+		}
+		# a MIME type is unknown--It judges from an extension.
+		unless ($Ext) {
+			$ContentName = &CheckContentExt($FileExt);
+			if($ContentName) {
+				$Ext = $FileExt;
+				$Infomation .= ' /	MIME type is unknown('. $ContentType. ')';
+				last;
+			}
+		}
+	}
+
+#	$ContentName = &CheckContentExt($Ext)	unless($ContentName);
+#	if($Ext && $ContentName) {
+#		$ContentName .=  $Infomation;
+#	} else {
+#		&upload_error(
+#			'Extension Error',
+#			"$FileName A not corresponding extension ($Ext)<BR>The extension which can be responded ". join(',', sort values(%UPLOAD_EXT_LIST))
+#		);
+#	}
+
+#	# SSI Tag Deletion
+#	if($Ext =~ /.?html?/ && $$DATA =~ /<\!/) {
+#		foreach (
+#			'config',
+#			'echo',
+#			'exec',
+#			'flastmod',
+#			'fsize',
+#			'include'
+#		) {
+#			$$DATA =~ s/\#\s*$_/\&\#35\;$_/ig
+#		}
+#	}
+
+	return (
+		$FileName,
+		$Ext,
+		int($DataLength / 1024 + 1),
+		$ImageWidth,
+		$ImageHeight,
+		$ContentName
+	);
+}
+
+##############################################################################
+# Summary
+#
+# Extension discernment
+#
+# Parameters
+# Returns
+# Memo
+##############################################################################
+
+sub CheckContentExt
+{
+
+	my($Ext) = @_;
+	my $ContentName;
+	foreach (keys %UPLOAD_EXT_LIST) {
+		next	unless ($_);
+		if($_ && $Ext =~ /^$_$/) {
+			$ContentName = $UPLOAD_EXT_LIST{$_};
+			last;
+		}
+	}
+	return $ContentName;
+
+}
+
+##############################################################################
+# Summary
+#
+# Form decode
+#
+# Parameters
+# Returns
+# Memo
+##############################################################################
+sub Encode
+{
+
+	my($value,$Trans) = @_;
+
+#	my $FormCode = &jcode::getcode($value) || $FormCodeDefault;
+#	$FormCodeDefault ||= $FormCode;
+#
+#	if($Trans && $TRANS_2BYTE_CODE) {
+#		if($FormCode ne 'euc') {
+#			&jcode::convert($value, 'euc', $FormCode);
+#		}
+#		&jcode::tr(
+#			$value,
+#			"\xA3\xB0-\xA3\xB9\xA3\xC1-\xA3\xDA\xA3\xE1-\xA3\xFA",
+#			'0-9A-Za-z'
+#		);
+#		if($CHARCODE ne 'euc') {
+#			&jcode::convert($value,$CHARCODE,'euc');
+#		}
+#	} else {
+#		if($CHARCODE ne $FormCode) {
+#			&jcode::convert($value,$CHARCODE,$FormCode);
+#		}
+#	}
+#	if($CHARCODE eq 'euc') {
+#		&jcode::h2z_euc($value);
+#	} elsif($CHARCODE eq 'sjis') {
+#		&jcode::h2z_sjis($value);
+#	}
+
+}
+
+##############################################################################
+# Summary
+#
+# Error Msg
+#
+# Parameters
+# Returns
+# Memo
+##############################################################################
+
+sub upload_error
+{
+
+	local($error_message)	= $_[0];
+	local($error_message2)	= $_[1];
+
+	print "Content-type: text/html\n\n";
+	print<<EOF;
+<HTML>
+<HEAD>
+<TITLE>Error Message</TITLE></HEAD>
+<BODY>
+<table border="1" cellspacing="10" cellpadding="10">
+	<TR bgcolor="#0000B0">
+	<TD bgcolor="#0000B0" NOWRAP><font size="-1" color="white"><B>Error Message</B></font></TD>
+	</TR>
+</table>
+<UL>
+<H4> $error_message </H4>
+$error_message2 <BR>
+</UL>
+</BODY>
+</HTML>
+EOF
+	&rm_tmp_uploaded_files; 		# Image Temporary deletion
+	exit;
+}
+
+##############################################################################
+# Summary
+#
+# Image Temporary deletion
+#
+# Parameters
+# Returns
+# Memo
+##############################################################################
+
+sub rm_tmp_uploaded_files
+{
+	if($img_data_exists == 1){
+		sleep 1;
+		foreach $fname_list(@NEWFNAMES) {
+			if(-e "$img_dir/$fname_list") {
+				unlink("$img_dir/$fname_list");
+			}
+		}
+	}
+
+}
+1;
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/perl/basexml.pl
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/perl/basexml.pl	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/perl/basexml.pl	(revision 389)
@@ -0,0 +1,59 @@
+#####
+#  FCKeditor - The text editor for internet
+#  Copyright (C) 2003-2006 Frederico Caldeira Knabben
+#  
+#  Licensed under the terms of the GNU Lesser General Public License:
+#  		http://www.opensource.org/licenses/lgpl-license.php
+#  
+#  For further information visit:
+#  		http://www.fckeditor.net/
+#  
+#  "Support Open Source software. What about a donation today?"
+#  
+#  File Name: basexml.pl
+#  	This is the File Manager Connector for Perl.
+#  
+#  File Authors:
+#  		Takashi Yamaguchi (jack@omakase.net)
+#####
+
+sub CreateXmlHeader
+{
+	local($command,$resourceType,$currentFolder) = @_;
+
+	# Create the XML document header.
+	print '<?xml version="1.0" encoding="utf-8" ?>';
+
+	# Create the main "Connector" node.
+	print '<Connector command="' . $command . '" resourceType="' . $resourceType . '">';
+
+	# Add the current folder node.
+	print '<CurrentFolder path="' . ConvertToXmlAttribute($currentFolder) . '" url="' . ConvertToXmlAttribute(GetUrlFromPath($resourceType,$currentFolder)) . '" />';
+}
+
+sub CreateXmlFooter
+{
+	print '</Connector>';
+}
+
+sub SendError
+{
+	local( $number, $text ) = @_;
+
+	print << "_HTML_HEAD_";
+Content-Type:text/xml; charset=utf-8
+Pragma: no-cache
+Cache-Control: no-cache
+Expires: Thu, 01 Dec 1994 16:00:00 GMT
+
+_HTML_HEAD_
+
+	# Create the XML document header
+	print '<?xml version="1.0" encoding="utf-8" ?>' ;
+	
+	print '<Connector><Error number="' . $number . '" text="' . &specialchar_cnv( $text ) . '" /></Connector>' ;
+	
+	exit ;
+}
+
+1;
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/perl/util.pl
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/perl/util.pl	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/perl/util.pl	(revision 389)
@@ -0,0 +1,56 @@
+#####
+#  FCKeditor - The text editor for internet
+#  Copyright (C) 2003-2006 Frederico Caldeira Knabben
+#  
+#  Licensed under the terms of the GNU Lesser General Public License:
+#  		http://www.opensource.org/licenses/lgpl-license.php
+#  
+#  For further information visit:
+#  		http://www.fckeditor.net/
+#  
+#  "Support Open Source software. What about a donation today?"
+#  
+#  File Name: util.pl
+#  	This is the File Manager Connector for Perl.
+#  
+#  File Authors:
+#  		Takashi Yamaguchi (jack@omakase.net)
+#####
+
+sub RemoveFromStart
+{
+	local($sourceString, $charToRemove) = @_;
+	$sPattern = '^' . $charToRemove . '+' ;
+	$sourceString =~ s/^$charToRemove+//g;
+	return $sourceString;
+}
+
+sub RemoveFromEnd
+{
+	local($sourceString, $charToRemove) = @_;
+	$sPattern = $charToRemove . '+$' ;
+	$sourceString =~ s/$charToRemove+$//g;
+	return $sourceString;
+}
+
+sub ConvertToXmlAttribute
+{
+	local($value) = @_;
+	return $value;
+#	return utf8_encode(htmlspecialchars($value));
+
+}
+
+sub specialchar_cnv
+{
+	local($ch) = @_;
+
+	$ch =~ s/&/&amp;/g;		# &
+	$ch =~ s/\"/&quot;/g;	#"
+	$ch =~ s/\'/&#39;/g;	# '
+	$ch =~ s/</&lt;/g;		# <
+	$ch =~ s/>/&gt;/g;		# >
+	return($ch);
+}
+
+1;
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/perl/commands.pl
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/perl/commands.pl	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/perl/commands.pl	(revision 389)
@@ -0,0 +1,154 @@
+#####
+#  FCKeditor - The text editor for internet
+#  Copyright (C) 2003-2006 Frederico Caldeira Knabben
+#  
+#  Licensed under the terms of the GNU Lesser General Public License:
+#  		http://www.opensource.org/licenses/lgpl-license.php
+#  
+#  For further information visit:
+#  		http://www.fckeditor.net/
+#  
+#  "Support Open Source software. What about a donation today?"
+#  
+#  File Name: commands.pl
+#  	This is the File Manager Connector for Perl.
+#  
+#  File Authors:
+#  		Takashi Yamaguchi (jack@omakase.net)
+#####
+
+sub GetFolders
+{
+
+	local($resourceType, $currentFolder) = @_;
+
+	# Map the virtual path to the local server path.
+	$sServerDir = &ServerMapFolder($resourceType, $currentFolder);
+	print "<Folders>";			# Open the "Folders" node.
+
+	opendir(DIR,"$sServerDir");
+	@files = grep(!/^\.\.?$/,readdir(DIR));
+	closedir(DIR);
+
+	foreach $sFile (@files) {
+		if($sFile != '.' && $sFile != '..' && (-d "$sServerDir$sFile")) {
+			$cnv_filename = &ConvertToXmlAttribute($sFile);
+			print '<Folder name="' . $cnv_filename . '" />';
+		}
+	}
+	print "</Folders>";			# Close the "Folders" node.
+}
+
+sub GetFoldersAndFiles
+{
+
+	local($resourceType, $currentFolder) = @_;
+	# Map the virtual path to the local server path.
+	$sServerDir = &ServerMapFolder($resourceType,$currentFolder);
+
+	# Initialize the output buffers for "Folders" and "Files".
+	$sFolders	= '<Folders>';
+	$sFiles		= '<Files>';
+
+	opendir(DIR,"$sServerDir");
+	@files = grep(!/^\.\.?$/,readdir(DIR));
+	closedir(DIR);
+
+	foreach $sFile (@files) {
+		if($sFile ne '.' && $sFile ne '..') {
+			if(-d "$sServerDir$sFile") {
+				$cnv_filename = &ConvertToXmlAttribute($sFile);
+				$sFolders .= '<Folder name="' . $cnv_filename . '" />' ;
+			} else {
+				($iFileSize,$refdate,$filedate,$fileperm) = (stat("$sServerDir$sFile"))[7,8,9,2];
+				if($iFileSize > 0) {
+					$iFileSize = int($iFileSize / 1024);
+					if($iFileSize < 1) {
+						$iFileSize = 1;
+					}
+				}
+				$cnv_filename = &ConvertToXmlAttribute($sFile);
+				$sFiles	.= '<File name="' . $cnv_filename . '" size="' . $iFileSize . '" />' ;
+			}
+		}
+	}
+	print $sFolders ;
+	print '</Folders>';			# Close the "Folders" node.
+	print $sFiles ;
+	print '</Files>';			# Close the "Files" node.
+}
+
+sub CreateFolder
+{
+
+	local($resourceType, $currentFolder) = @_;
+	$sErrorNumber	= '0' ;
+	$sErrorMsg		= '' ;
+
+	if($FORM{'NewFolderName'} ne "") {
+		$sNewFolderName = $FORM{'NewFolderName'};
+		# Map the virtual path to the local server path of the current folder.
+		$sServerDir = &ServerMapFolder($resourceType, $currentFolder);
+		if(-w $sServerDir) {
+			$sServerDir .= $sNewFolderName;
+			$sErrorMsg = &CreateServerFolder($sServerDir);
+			if($sErrorMsg == 0) {
+				$sErrorNumber = '0';
+			} elsif($sErrorMsg eq 'Invalid argument' || $sErrorMsg eq 'No such file or directory') {
+				$sErrorNumber = '102';		#// Path too long.
+			} else {
+				$sErrorNumber = '110';
+			}
+		} else {
+			$sErrorNumber = '103';
+		}
+	} else {
+		$sErrorNumber = '102' ;
+	}
+	# Create the "Error" node.
+	$cnv_errmsg = &ConvertToXmlAttribute($sErrorMsg);
+	print '<Error number="' . $sErrorNumber . '" originalDescription="' . $cnv_errmsg . '" />';
+}
+
+sub FileUpload
+{
+eval("use File::Copy;");
+
+	local($resourceType, $currentFolder) = @_;
+
+	$sErrorNumber = '0' ;
+	$sFileName = '' ;
+	if($new_fname) {
+		# Map the virtual path to the local server path.
+		$sServerDir = &ServerMapFolder($resourceType,$currentFolder);
+
+		# Get the uploaded file name.
+		$sFileName = $new_fname;
+		$sOriginalFileName = $sFileName;
+
+		$iCounter = 0;
+		while(1) {
+			$sFilePath = $sServerDir . $sFileName;
+			if(-e $sFilePath) {
+				$iCounter++ ;
+				($path,$BaseName,$ext) = &RemoveExtension($sOriginalFileName);
+				$sFileName = $BaseName . '(' . $iCounter . ').' . $ext;
+				$sErrorNumber = '201';
+			} else {
+				copy("$img_dir/$new_fname","$sFilePath");
+				chmod(0777,$sFilePath);
+				unlink("$img_dir/$new_fname");
+				last;
+			}
+		}
+	} else {
+		$sErrorNumber = '202' ;
+	}
+	$sFileName	=~ s/"/\\"/g;
+	print "Content-type: text/html\n\n";
+	print '<script type="text/javascript">';
+	print 'window.parent.frames["frmUpload"].OnUploadCompleted(' . $sErrorNumber . ',"' . $sFileName . '") ;';
+	print '</script>';
+	exit ;
+}
+1;
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/perl/connector.cgi
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/perl/connector.cgi	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/perl/connector.cgi	(revision 389)
@@ -0,0 +1,134 @@
+#!/usr/bin/env perl 
+
+#####
+#  FCKeditor - The text editor for internet
+#  Copyright (C) 2003-2006 Frederico Caldeira Knabben
+#  
+#  Licensed under the terms of the GNU Lesser General Public License:
+#  		http://www.opensource.org/licenses/lgpl-license.php
+#  
+#  For further information visit:
+#  		http://www.fckeditor.net/
+#  
+#  "Support Open Source software. What about a donation today?"
+#  
+#  File Name: connector.cgi
+#  	This is the File Manager Connector for Perl.
+#  
+#  File Authors:
+#  		Takashi Yamaguchi (jack@omakase.net)
+#  		Frederico Caldeira Knabben (fredck@fckeditor.net)
+#####
+
+##
+# ATTENTION: To enable this connector, look for the "SECURITY" comment in this file.
+##
+
+## START: Hack for Windows (Not important to understand the editor code... Perl specific).
+if(Windows_check()) {
+	chdir(GetScriptPath($0));
+}
+
+sub Windows_check
+{
+	# IIS,PWS(NT/95)
+	$www_server_os = $^O;
+	# Win98 & NT(SP4)
+	if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
+	# AnHTTPd/Omni/IIS
+	if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
+	# Win Apache
+	if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
+	if($www_server_os=~ /win/i) { return(1); }
+	return(0);
+}
+
+sub GetScriptPath {
+	local($path) = @_;
+	if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
+	$path;
+}
+## END: Hack for IIS
+
+require 'util.pl';
+require 'io.pl';
+require 'basexml.pl';
+require 'commands.pl';
+require 'upload_fck.pl';
+
+##
+# SECURITY: REMOVE/COMMENT THE FOLLOWING LINE TO ENABLE THIS CONNECTOR.
+##
+&SendError( 1, 'This connector is disabled. Please check the "editor/filemanager/browser/default/connectors/perl/connector.cgi" file' ) ;
+
+	&read_input();
+
+	if($FORM{'ServerPath'} ne "") {
+		$GLOBALS{'UserFilesPath'} = $FORM{'ServerPath'};
+		if(!($GLOBALS{'UserFilesPath'} =~ /\/$/)) {
+			$GLOBALS{'UserFilesPath'} .= '/' ;
+		}
+	} else {
+		$GLOBALS{'UserFilesPath'} = '/UserFiles/';
+	}
+
+	# Map the "UserFiles" path to a local directory.
+	$rootpath = &GetRootPath();
+	$GLOBALS{'UserFilesDirectory'} = $rootpath . $GLOBALS{'UserFilesPath'};
+
+	&DoResponse();
+
+sub DoResponse
+{
+
+	if($FORM{'Command'} eq "" || $FORM{'Type'} eq "" || $FORM{'CurrentFolder'} eq "") {
+		return ;
+	}
+	# Get the main request informaiton.
+	$sCommand		= $FORM{'Command'};
+	$sResourceType	= $FORM{'Type'};
+	$sCurrentFolder	= $FORM{'CurrentFolder'};
+
+	# Check the current folder syntax (must begin and start with a slash).
+	if(!($sCurrentFolder =~ /\/$/)) {
+		$sCurrentFolder .= '/';
+	}
+	if(!($sCurrentFolder =~ /^\//)) {
+		$sCurrentFolder = '/' . $sCurrentFolder;
+	}
+	
+	# Check for invalid folder paths (..)
+	if ( $sCurrentFolder =~ /\.\./ ) {
+		SendError( 102, "" ) ;
+	}
+
+	# File Upload doesn't have to Return XML, so it must be intercepted before anything.
+	if($sCommand eq 'FileUpload') {
+		FileUpload($sResourceType,$sCurrentFolder);
+		return ;
+	}
+
+	print << "_HTML_HEAD_";
+Content-Type:text/xml; charset=utf-8
+Pragma: no-cache
+Cache-Control: no-cache
+Expires: Thu, 01 Dec 1994 16:00:00 GMT
+
+_HTML_HEAD_
+
+	&CreateXmlHeader($sCommand,$sResourceType,$sCurrentFolder);
+	
+	# Execute the required command.
+	if($sCommand eq 'GetFolders') {
+		&GetFolders($sResourceType,$sCurrentFolder);
+	} elsif($sCommand eq 'GetFoldersAndFiles') {
+		&GetFoldersAndFiles($sResourceType,$sCurrentFolder);
+	} elsif($sCommand eq 'CreateFolder') {
+		&CreateFolder($sResourceType,$sCurrentFolder);
+	}
+	
+	&CreateXmlFooter();
+	
+	exit ;
+}
+
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/test.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/test.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/test.html	(revision 389)
@@ -0,0 +1,177 @@
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: test.html
+ * 	Test page for the File Browser connectors.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor - Connectors Tests</title>
+	<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5" />
+	<script type="text/javascript">
+
+function BuildBaseUrl( command )
+{
+	var sUrl =  
+		document.getElementById('cmbConnector').value +
+		'?Command=' + command +
+		'&Type=' + document.getElementById('cmbType').value +
+		'&CurrentFolder=' + document.getElementById('txtFolder').value ;
+	
+	return sUrl ;
+}
+
+function SetFrameUrl( url )
+{
+	if ( document.all )
+		eRunningFrame.document.location = url ;
+	else
+		document.getElementById('eRunningFrame').src = url ;
+		
+	document.getElementById('eUrl').innerHTML = url ;
+}
+
+function GetFolders()
+{	
+	SetFrameUrl( BuildBaseUrl( 'GetFolders' ) ) ;
+	return false ;
+}
+
+function GetFoldersAndFiles()
+{
+	SetFrameUrl( BuildBaseUrl( 'GetFoldersAndFiles' ) ) ;
+	return false ;
+}
+
+function CreateFolder()
+{
+	var sFolder = prompt( 'Type the folder name:', 'Test Folder' ) ;
+	
+	if ( ! sFolder )
+		return ;
+	
+	var sUrl = BuildBaseUrl( 'CreateFolder' ) ;
+	sUrl += '&NewFolderName=' + escape( sFolder ) ;
+
+	SetFrameUrl( sUrl ) ;
+	return false ;
+}
+
+function OnUploadCompleted( errorNumber, fileName )
+{
+	switch ( errorNumber )
+	{
+		case 0 :
+			alert( 'File uploaded with no errors' ) ;
+			break ;
+		case 201 :
+			GetFoldersAndFiles()
+			alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
+			break ;
+		case 202 :
+			alert( 'Invalid file' ) ;
+			break ;
+		default :
+			alert( 'Error on file upload. Error number: ' + errorNumber ) ;
+			break ;
+	}
+}
+
+this.frames.frmUpload = this ;
+
+function SetAction()
+{
+	var sUrl = BuildBaseUrl( 'FileUpload' ) ;
+	document.getElementById('eUrl').innerHTML = sUrl ;
+	document.getElementById('frmUpload').action = sUrl ;
+}
+
+	</script>
+</head>
+<body>
+	<table height="100%" cellspacing="0" cellpadding="0" width="100%" border="0">
+		<tr>
+			<td>
+				<table cellspacing="0" cellpadding="0" border="0">
+					<tr>
+						<td>
+							Connector:<br />
+							<select id="cmbConnector" name="cmbConnector">
+								<option value="asp/connector.asp" selected="selected">ASP</option>
+								<option value="aspx/connector.aspx">ASP.Net</option>
+								<option value="cfm/connector.cfm">ColdFusion</option>
+								<option value="lasso/connector.lasso">Lasso</option>
+								<option value="perl/connector.cgi">Perl</option>
+								<option value="php/connector.php">PHP</option>
+								<option value="py/connector.py">Python</option>
+							</select>
+						</td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td>
+							Current Folder<br />
+							<input id="txtFolder" type="text" value="/" name="txtFolder" /></td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td>
+							Resource Type<br />
+							<select id="cmbType" name="cmbType">
+								<option value="File" selected="selected">File</option>
+								<option value="Image">Image</option>
+								<option value="Flash">Flash</option>
+								<option value="Media">Media</option>
+								<option value="Invalid">Invalid Type (for testing)</option>
+							</select>
+						</td>
+					</tr>
+				</table>
+				<br />
+				<table cellspacing="0" cellpadding="0" border="0">
+					<tr>
+						<td valign="top">
+							<a href="#" onclick="GetFolders();">Get Folders</a></td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td valign="top">
+							<a href="#" onclick="GetFoldersAndFiles();">Get Folders and Files</a></td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td valign="top">
+							<a href="#" onclick="CreateFolder();">Create Folder</a></td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td valign="top">
+							<form id="frmUpload" action="" target="eRunningFrame" method="post" enctype="multipart/form-data">
+								File Upload<br />
+								<input id="txtFileUpload" type="file" name="NewFile" />
+								<input type="submit" value="Upload" onclick="SetAction();" />
+							</form>
+						</td>
+					</tr>
+				</table>
+				<br />
+				URL: <span id="eUrl"></span>
+			</td>
+		</tr>
+		<tr>
+			<td height="100%" valign="top">
+				<iframe id="eRunningFrame" src="../../../../fckblank.html" name="eRunningFrame" width="100%"
+					height="100%"></iframe>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/util.asp
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/util.asp	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/util.asp	(revision 389)
@@ -0,0 +1,51 @@
+﻿<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: util.asp
+ * 	This file include generic functions used by the ASP Connector.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<%
+Function RemoveFromStart( sourceString, charToRemove )
+	Dim oRegex
+	Set oRegex = New RegExp
+	oRegex.Pattern = "^" & charToRemove & "+"
+
+	RemoveFromStart = oRegex.Replace( sourceString, "" )
+End Function
+
+Function RemoveFromEnd( sourceString, charToRemove )
+	Dim oRegex
+	Set oRegex = New RegExp
+	oRegex.Pattern = charToRemove & "+$"
+
+	RemoveFromEnd = oRegex.Replace( sourceString, "" )
+End Function
+
+Function ConvertToXmlAttribute( value )
+	ConvertToXmlAttribute = Replace( value, "&", "&amp;" )
+End Function
+
+Function InArray( value, sourceArray )
+	Dim i
+	For i = 0 to UBound( sourceArray )
+		If sourceArray(i) = value Then
+			InArray = True
+			Exit Function
+		End If
+	Next
+	InArray = False
+End Function
+
+%>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/commands.asp
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/commands.asp	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/commands.asp	(revision 389)
@@ -0,0 +1,179 @@
+﻿<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: commands.asp
+ * 	This file include the functions that handle the Command requests
+ * 	in the ASP Connector.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<%
+Sub GetFolders( resourceType, currentFolder )
+	' Map the virtual path to the local server path.
+	Dim sServerDir
+	sServerDir = ServerMapFolder( resourceType, currentFolder )
+
+	' Open the "Folders" node.
+	Response.Write "<Folders>"
+
+	Dim oFSO, oCurrentFolder, oFolders, oFolder
+	Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
+	Set oCurrentFolder = oFSO.GetFolder( sServerDir )
+	Set oFolders = oCurrentFolder.SubFolders
+
+	For Each oFolder in oFolders
+		Response.Write "<Folder name=""" & ConvertToXmlAttribute( oFolder.name ) & """ />"
+	Next
+	
+	Set oFSO = Nothing
+	
+	' Close the "Folders" node.
+	Response.Write "</Folders>"
+End Sub
+
+Sub GetFoldersAndFiles( resourceType, currentFolder )
+	' Map the virtual path to the local server path.
+	Dim sServerDir
+	sServerDir = ServerMapFolder( resourceType, currentFolder )
+
+	Dim oFSO, oCurrentFolder, oFolders, oFolder, oFiles, oFile
+	Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
+	Set oCurrentFolder = oFSO.GetFolder( sServerDir )
+	Set oFolders	= oCurrentFolder.SubFolders
+	Set oFiles		= oCurrentFolder.Files
+	
+	' Open the "Folders" node.
+	Response.Write "<Folders>"
+	
+	For Each oFolder in oFolders
+		Response.Write "<Folder name=""" & ConvertToXmlAttribute( oFolder.name ) & """ />"
+	Next
+	
+	' Close the "Folders" node.
+	Response.Write "</Folders>"
+		
+	' Open the "Files" node.
+	Response.Write "<Files>"
+	
+	For Each oFile in oFiles
+		Dim iFileSize
+		iFileSize = Round( oFile.size / 1024 )
+		If ( iFileSize < 1 AND oFile.size <> 0 ) Then iFileSize = 1
+		
+		Response.Write "<File name=""" & ConvertToXmlAttribute( oFile.name ) & """ size=""" & iFileSize & """ />"
+	Next
+	
+	' Close the "Files" node.
+	Response.Write "</Files>"
+End Sub
+
+Sub CreateFolder( resourceType, currentFolder )
+	Dim sErrorNumber
+
+	Dim sNewFolderName
+	sNewFolderName = Request.QueryString( "NewFolderName" )
+
+	If ( sNewFolderName = "" OR InStr( 1, sNewFolderName, ".." ) > 0  ) Then
+		sErrorNumber = "102"
+	Else
+		' Map the virtual path to the local server path of the current folder.
+		Dim sServerDir
+		sServerDir = ServerMapFolder( resourceType, currentFolder & "/" & sNewFolderName )
+		
+		On Error Resume Next
+
+		CreateServerFolder sServerDir
+		
+		Dim iErrNumber, sErrDescription
+		iErrNumber		= err.number
+		sErrDescription	= err.Description
+		
+		On Error Goto 0
+		
+		Select Case iErrNumber
+			Case 0
+				sErrorNumber = "0"
+			Case 52
+				sErrorNumber = "102"	' Invalid Folder Name.
+			Case 70
+				sErrorNumber = "103"	' Security Error.
+			Case 76
+				sErrorNumber = "102"	' Path too long.
+			Case Else
+				sErrorNumber = "110"
+		End Select
+	End If
+
+	' Create the "Error" node.
+	Response.Write "<Error number=""" & sErrorNumber & """ originalNumber=""" & iErrNumber & """ originalDescription=""" & ConvertToXmlAttribute( sErrDescription ) & """ />"
+End Sub
+
+Sub FileUpload( resourceType, currentFolder )
+	Dim oUploader
+	Set oUploader = New NetRube_Upload
+	oUploader.MaxSize	= 0
+	oUploader.Allowed	= ConfigAllowedExtensions.Item( resourceType )
+	oUploader.Denied	= ConfigDeniedExtensions.Item( resourceType )
+	oUploader.GetData
+
+	Dim sErrorNumber
+	sErrorNumber = "0"
+	
+	Dim sFileName, sOriginalFileName, sExtension
+	sFileName = ""
+
+	If oUploader.ErrNum > 1 Then
+		sErrorNumber = "202"
+	Else
+		' Map the virtual path to the local server path.
+		Dim sServerDir
+		sServerDir = ServerMapFolder( resourceType, currentFolder )
+
+		Dim oFSO
+		Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
+	
+		' Get the uploaded file name.
+		sFileName	= oUploader.File( "NewFile" ).Name
+		sExtension	= oUploader.File( "NewFile" ).Ext
+		sOriginalFileName = sFileName
+
+		Dim iCounter
+		iCounter = 0
+
+		Do While ( True )
+			Dim sFilePath
+			sFilePath = sServerDir & sFileName
+
+			If ( oFSO.FileExists( sFilePath ) ) Then
+				iCounter = iCounter + 1
+				sFileName = RemoveExtension( sOriginalFileName ) & "(" & iCounter & ")." & sExtension
+				sErrorNumber = "201"
+			Else
+				oUploader.SaveAs "NewFile", sFilePath
+				If oUploader.ErrNum > 0 Then sErrorNumber = "202"
+				Exit Do
+			End If
+		Loop
+	End If
+
+	Set oUploader	= Nothing
+
+	Response.Clear
+
+	Response.Write "<script type=""text/javascript"">"
+	Response.Write "window.parent.frames['frmUpload'].OnUploadCompleted(" & sErrorNumber & ",'" & Replace( sFileName, "'", "\'" ) & "') ;"
+	Response.Write "</script>"
+
+	Response.End
+End Sub
+%>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/config.asp
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/config.asp	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/config.asp	(revision 389)
@@ -0,0 +1,45 @@
+﻿<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: config.asp
+ * 	Configuration file for the File Manager Connector for ASP.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<%
+
+' SECURITY: You must explicitelly enable this "connector" (set it to "True"). 
+Dim ConfigIsEnabled
+ConfigIsEnabled = False
+
+' Path to user files relative to the document root.
+Dim ConfigUserFilesPath
+ConfigUserFilesPath = "/UserFiles/"
+
+Dim ConfigAllowedExtensions, ConfigDeniedExtensions
+Set ConfigAllowedExtensions	= CreateObject( "Scripting.Dictionary" )
+Set ConfigDeniedExtensions	= CreateObject( "Scripting.Dictionary" )
+
+ConfigAllowedExtensions.Add	"File", ""
+ConfigDeniedExtensions.Add	"File", "php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi|htaccess"
+
+ConfigAllowedExtensions.Add	"Image", "jpg|gif|jpeg|png|bmp"
+ConfigDeniedExtensions.Add	"Image", ""
+
+ConfigAllowedExtensions.Add	"Flash", "swf|fla"
+ConfigDeniedExtensions.Add	"Flash", ""
+
+ConfigAllowedExtensions.Add	"Media", "swf|fla|jpg|gif|jpeg|png|avi|mpg|mpeg|mp(1-4)|wma|wmv|wav|mid|midi|rmi|rm|ram|rmvb|mov|qt"
+ConfigDeniedExtensions.Add	"Media", ""
+
+%>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/io.asp
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/io.asp	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/io.asp	(revision 389)
@@ -0,0 +1,85 @@
+﻿<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: io.asp
+ * 	This file include IO specific functions used by the ASP Connector.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<%
+Function GetUrlFromPath( resourceType, folderPath )
+	If resourceType = "" Then
+		GetUrlFromPath = RemoveFromEnd( sUserFilesPath, "/" ) & folderPath
+	Else
+		GetUrlFromPath = sUserFilesPath & resourceType & folderPath
+	End If
+End Function
+
+Function RemoveExtension( fileName )
+	RemoveExtension = Left( fileName, InStrRev( fileName, "." ) - 1 )
+End Function
+
+Function ServerMapFolder( resourceType, folderPath )
+	' Get the resource type directory.
+	Dim sResourceTypePath
+	sResourceTypePath = sUserFilesDirectory & resourceType & "\"
+	
+	' Ensure that the directory exists.
+	CreateServerFolder sResourceTypePath
+
+	' Return the resource type directory combined with the required path.
+	ServerMapFolder = sResourceTypePath & RemoveFromStart( folderPath, "/" )
+End Function
+
+Sub CreateServerFolder( folderPath )
+	Dim oFSO
+	Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
+	
+	Dim sParent
+	sParent = oFSO.GetParentFolderName( folderPath )
+	
+	' Check if the parent exists, or create it.
+	If ( NOT oFSO.FolderExists( sParent ) ) Then CreateServerFolder( sParent )
+	
+	If ( oFSO.FolderExists( folderPath ) = False ) Then 
+		oFSO.CreateFolder( folderPath )
+	End If
+	
+	Set oFSO = Nothing
+End Sub
+
+Function IsAllowedExt( extension, resourceType )
+	Dim oRE
+	Set oRE	= New RegExp
+	oRE.IgnoreCase	= True
+	oRE.Global		= True
+	
+	Dim sAllowed, sDenied
+	sAllowed	= ConfigAllowedExtensions.Item( resourceType )
+	sDenied		= ConfigDeniedExtensions.Item( resourceType )
+	
+	IsAllowedExt = True
+	
+	If sDenied <> "" Then
+		oRE.Pattern	= sDenied
+		IsAllowedExt	= Not oRE.Test( extension )
+	End If 
+	
+	If IsAllowedExt And sAllowed <> "" Then
+		oRE.Pattern		= sAllowed
+		IsAllowedExt	= oRE.Test( extension )
+	End If
+	
+	Set oRE	= Nothing
+End Function
+%>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/class_upload.asp
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/class_upload.asp	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/class_upload.asp	(revision 389)
@@ -0,0 +1,230 @@
+﻿<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: class_upload.asp
+ * 	These are the classes used to handle ASP upload without using third
+ * 	part components (OCX/DLL).
+ * 
+ * File Authors:
+ * 		NetRube (netrube@126.com)
+-->
+<%
+'**********************************************
+' File:		NetRube_Upload.asp
+' Version:	NetRube Upload Class Version 2.1 Build 20050228
+' Author:	NetRube
+' Email:	NetRube@126.com
+' Date:		02/28/2005
+' Comments:	The code for the Upload.
+'			This can free usage, but please
+'			not to delete this copyright information.
+'			If you have a modification version,
+'			Please send out a duplicate to me.
+'**********************************************
+' 文件名:	NetRube_Upload.asp
+' 版本:		NetRube Upload Class Version 2.1 Build 20050228
+' 作者:		NetRube(网络乡巴佬)
+' 电子邮件:	NetRube@126.com
+' 日期:		2005年02月28日
+' 声明:		文件上传类
+'			本上传类可以自由使用，但请保留此版权声明信息
+'			如果您对本上传类进行修改增强，
+'			请发送一份给俺。
+'**********************************************
+
+Class NetRube_Upload
+
+	Public	File, Form
+	Private oSourceData
+	Private nMaxSize, nErr, sAllowed, sDenied
+	
+	Private Sub Class_Initialize
+		nErr		= 0
+		nMaxSize	= 1048576
+		
+		Set File			= Server.CreateObject("Scripting.Dictionary")
+		File.CompareMode	= 1
+		Set Form			= Server.CreateObject("Scripting.Dictionary")
+		Form.CompareMode	= 1
+		
+		Set oSourceData		= Server.CreateObject("ADODB.Stream")
+		oSourceData.Type	= 1
+		oSourceData.Mode	= 3
+		oSourceData.Open
+	End Sub
+	
+	Private Sub Class_Terminate
+		Form.RemoveAll
+		Set Form = Nothing
+		File.RemoveAll
+		Set File = Nothing
+		
+		oSourceData.Close
+		Set oSourceData = Nothing
+	End Sub
+	
+	Public Property Get Version
+		Version = "NetRube Upload Class Version 1.0 Build 20041218"
+	End Property
+
+	Public Property Get ErrNum
+		ErrNum	= nErr
+	End Property
+	
+	Public Property Let MaxSize(nSize)
+		nMaxSize	= nSize
+	End Property
+	
+	Public Property Let Allowed(sExt)
+		sAllowed	= sExt
+	End Property
+	
+	Public Property Let Denied(sExt)
+		sDenied	= sExt
+	End Property
+
+	Public Sub GetData
+		Dim aCType
+		aCType = Split(Request.ServerVariables("HTTP_CONTENT_TYPE"), ";")
+		If aCType(0) <> "multipart/form-data" Then
+			nErr = 1
+			Exit Sub
+		End If
+		
+		Dim nTotalSize
+		nTotalSize	= Request.TotalBytes
+		If nTotalSize < 1 Then
+			nErr = 2
+			Exit Sub
+		End If
+		If nMaxSize > 0 And nTotalSize > nMaxSize Then
+			nErr = 3
+			Exit Sub
+		End If
+		
+		oSourceData.Write Request.BinaryRead(nTotalSize)
+		oSourceData.Position = 0
+		
+		Dim oTotalData, oFormStream, sFormHeader, sFormName, bCrLf, nBoundLen, nFormStart, nFormEnd, nPosStart, nPosEnd, sBoundary
+		
+		oTotalData	= oSourceData.Read
+		bCrLf		= ChrB(13) & ChrB(10)
+		sBoundary	= MidB(oTotalData, 1, InStrB(1, oTotalData, bCrLf) - 1)
+		nBoundLen	= LenB(sBoundary) + 2
+		nFormStart	= nBoundLen
+		
+		Set oFormStream = Server.CreateObject("ADODB.Stream")
+		
+		Do While (nFormStart + 2) < nTotalSize
+			nFormEnd	= InStrB(nFormStart, oTotalData, bCrLf & bCrLf) + 3
+			
+			With oFormStream
+				.Type	= 1
+				.Mode	= 3
+				.Open
+				oSourceData.Position = nFormStart
+				oSourceData.CopyTo oFormStream, nFormEnd - nFormStart
+				.Position	= 0
+				.Type		= 2
+				.CharSet	= "UTF-8"
+				sFormHeader	= .ReadText
+				.Close
+			End With
+			
+			nFormStart	= InStrB(nFormEnd, oTotalData, sBoundary) - 1
+			nPosStart	= InStr(22, sFormHeader, " name=", 1) + 7
+			nPosEnd		= InStr(nPosStart, sFormHeader, """")
+			sFormName	= Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
+			
+			If InStr(45, sFormHeader, " filename=", 1) > 0 Then
+				Set File(sFormName)			= New NetRube_FileInfo
+				File(sFormName).FormName	= sFormName
+				File(sFormName).Start		= nFormEnd
+				File(sFormName).Size		= nFormStart - nFormEnd - 2
+				nPosStart					= InStr(nPosEnd, sFormHeader, " filename=", 1) + 11
+				nPosEnd						= InStr(nPosStart, sFormHeader, """")
+				File(sFormName).ClientPath	= Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
+				File(sFormName).Name		= Mid(File(sFormName).ClientPath, InStrRev(File(sFormName).ClientPath, "\") + 1)
+				File(sFormName).Ext			= LCase(Mid(File(sFormName).Name, InStrRev(File(sFormName).Name, ".") + 1))
+				nPosStart					= InStr(nPosEnd, sFormHeader, "Content-Type: ", 1) + 14
+				nPosEnd						= InStr(nPosStart, sFormHeader, vbCr)
+				File(sFormName).MIME		= Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
+			Else
+				With oFormStream
+					.Type	= 1
+					.Mode	= 3
+					.Open
+					oSourceData.Position = nPosEnd
+					oSourceData.CopyTo oFormStream, nFormStart - nFormEnd - 2
+					.Position	= 0
+					.Type		= 2
+					.CharSet	= "UTF-8"
+					Form(sFormName)	= .ReadText
+					.Close
+				End With
+			End If
+			
+			nFormStart	= nFormStart + nBoundLen
+		Loop
+		
+		oTotalData = ""
+		Set oFormStream = Nothing
+	End Sub
+
+	Public Sub SaveAs(sItem, sFileName)
+		If File(sItem).Size < 1 Then
+			nErr = 2
+			Exit Sub
+		End If
+		
+		If Not IsAllowed(File(sItem).Ext) Then
+			nErr = 4
+			Exit Sub
+		End If
+		
+		Dim oFileStream
+		Set oFileStream = Server.CreateObject("ADODB.Stream")
+		With oFileStream
+			.Type		= 1
+			.Mode		= 3
+			.Open
+			oSourceData.Position = File(sItem).Start
+			oSourceData.CopyTo oFileStream, File(sItem).Size
+			.Position	= 0
+			.SaveToFile sFileName, 2
+			.Close
+		End With
+		Set oFileStream = Nothing
+	End Sub
+	
+	Private Function IsAllowed(sExt)
+		Dim oRE
+		Set oRE	= New RegExp
+		oRE.IgnoreCase	= True
+		oRE.Global		= True
+		
+		If sDenied = "" Then
+			oRE.Pattern	= sAllowed
+			IsAllowed	= (sAllowed = "") Or oRE.Test(sExt)
+		Else
+			oRE.Pattern	= sDenied
+			IsAllowed	= Not oRE.Test(sExt)
+		End If
+		
+		Set oRE	= Nothing
+	End Function
+End Class
+
+Class NetRube_FileInfo
+	Dim FormName, ClientPath, Path, Name, Ext, Content, Size, MIME, Start
+End Class
+%>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/connector.asp
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/connector.asp	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/connector.asp	(revision 389)
@@ -0,0 +1,120 @@
+﻿<%@ CodePage=65001 Language="VBScript"%>
+<%
+Option Explicit
+Response.Buffer = True
+%>
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: connector.asp
+ * 	This is the File Manager Connector for ASP.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<!--#include file="config.asp"-->
+<!--#include file="util.asp"-->
+<!--#include file="io.asp"-->
+<!--#include file="basexml.asp"-->
+<!--#include file="commands.asp"-->
+<!--#include file="class_upload.asp"-->
+<%
+
+If ( ConfigIsEnabled = False ) Then
+	SendError 1, "This connector is disabled. Please check the ""editor/filemanager/browser/default/connectors/asp/config.asp"" file"
+End If
+
+' Get the "UserFiles" path.
+Dim sUserFilesPath
+
+If ( Not IsEmpty( ConfigUserFilesPath ) ) Then
+	sUserFilesPath = ConfigUserFilesPath
+
+	If ( Right( sUserFilesPath, 1 ) <> "/" ) Then
+		sUserFilesPath = sUserFilesPath & "/"
+	End If
+Else
+	sUserFilesPath = "/UserFiles/"
+End If
+
+' Map the "UserFiles" path to a local directory.
+Dim sUserFilesDirectory
+sUserFilesDirectory = Server.MapPath( sUserFilesPath )
+
+If ( Right( sUserFilesDirectory, 1 ) <> "\" ) Then
+	sUserFilesDirectory = sUserFilesDirectory & "\"
+End If
+
+DoResponse
+
+Sub DoResponse()
+	Dim sCommand, sResourceType, sCurrentFolder
+	
+	' Get the main request information.
+	sCommand = Request.QueryString("Command")
+	If ( sCommand = "" ) Then Exit Sub
+
+	sResourceType = Request.QueryString("Type")
+	If ( sResourceType = "" ) Then Exit Sub
+	
+	sCurrentFolder = Request.QueryString("CurrentFolder")
+	If ( sCurrentFolder = "" ) Then Exit Sub
+
+	' Check if it is an allower resource type.
+	if ( Not IsAllowedType( sResourceType ) ) Then Exit Sub
+
+	' Check the current folder syntax (must begin and start with a slash).
+	If ( Right( sCurrentFolder, 1 ) <> "/" ) Then sCurrentFolder = sCurrentFolder & "/"
+	If ( Left( sCurrentFolder, 1 ) <> "/" ) Then sCurrentFolder = "/" & sCurrentFolder
+
+	' Check for invalid folder paths (..)
+	If ( InStr( 1, sCurrentFolder, ".." ) <> 0 OR InStr( 1, sResourceType, ".." ) <> 0 ) Then
+		SendError 102, ""
+	End If 
+
+	' File Upload doesn't have to Return XML, so it must be intercepted before anything.
+	If ( sCommand = "FileUpload" ) Then
+		FileUpload sResourceType, sCurrentFolder
+		Exit Sub
+	End If
+
+	SetXmlHeaders
+	
+	CreateXmlHeader sCommand, sResourceType, sCurrentFolder
+
+	' Execute the required command.
+	Select Case sCommand
+		Case "GetFolders"
+			GetFolders sResourceType, sCurrentFolder
+		Case "GetFoldersAndFiles"
+			GetFoldersAndFiles sResourceType, sCurrentFolder
+		Case "CreateFolder"
+			CreateFolder sResourceType, sCurrentFolder
+	End Select
+
+	CreateXmlFooter
+
+	Response.End
+End Sub
+
+Function IsAllowedType( resourceType )
+	Dim oRE
+	Set oRE	= New RegExp
+	oRE.IgnoreCase	= True
+	oRE.Global		= True
+	oRE.Pattern		= "^(File|Image|Flash|Media)$"
+	
+	IsAllowedType = oRE.Test( resourceType )
+	
+	Set oRE	= Nothing
+End Function
+%>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/basexml.asp
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/basexml.asp	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/asp/basexml.asp	(revision 389)
@@ -0,0 +1,58 @@
+﻿<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: basexml.asp
+ * 	This file include the functions that create the base XML output.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<%
+
+Sub SetXmlHeaders()
+	' Cleans the response buffer.
+	Response.Clear()
+
+	' Prevent the browser from caching the result.
+	Response.CacheControl = "no-cache"
+
+	' Set the response format.
+	Response.CharSet		= "UTF-8"
+	Response.ContentType	= "text/xml"
+End Sub
+
+Sub CreateXmlHeader( command, resourceType, currentFolder )
+	' Create the XML document header.
+	Response.Write "<?xml version=""1.0"" encoding=""utf-8"" ?>"
+
+	' Create the main "Connector" node.
+	Response.Write "<Connector command=""" & command & """ resourceType=""" & resourceType & """>"
+	
+	' Add the current folder node.
+	Response.Write "<CurrentFolder path=""" & ConvertToXmlAttribute( currentFolder ) & """ url=""" & ConvertToXmlAttribute( GetUrlFromPath( resourceType, currentFolder) ) & """ />"
+End Sub
+
+Sub CreateXmlFooter()
+	Response.Write "</Connector>"
+End Sub
+
+Sub SendError( number, text )
+	SetXmlHeaders
+	
+	' Create the XML document header.
+	Response.Write "<?xml version=""1.0"" encoding=""utf-8"" ?>"
+	
+	Response.Write "<Connector><Error number=""" & number & """ text=""" & Server.HTMLEncode( text ) & """ /></Connector>"
+	
+	Response.End
+End Sub
+%>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/cfm/config.cfm
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/cfm/config.cfm	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/cfm/config.cfm	(revision 389)
@@ -0,0 +1,80 @@
+<cfsetting enablecfoutputonly="Yes">
+
+<cfscript>
+	config = structNew();
+
+	// SECURITY: You must explicitly enable this "connector". (Set enabled to "true")
+	config.enabled = false;
+
+	config.userFilesPath = "/UserFiles/";
+
+	config.serverPath = ""; // use this to force the server path if FCKeditor is not running directly off the root of the application or the FCKeditor directory in the URL is a virtual directory or a symbolic link / junction
+
+	config.allowedExtensions = structNew();
+	config.deniedExtensions = structNew();
+
+	// config.allowedExtensions["File"] = "doc,rtf,pdf,ppt,pps,xls,csv,vnd,zip";
+	config.allowedExtensions["File"] = "";
+	config.deniedExtensions["File"] = "php,php2,php3,php4,php5,phtml,pwml,inc,asp,aspx,ascx,jsp,cfm,cfc,pl,bat,exe,com,dll,vbs,js,reg,cgi,htaccess";
+
+	config.allowedExtensions["Image"] = "png,gif,jpg,jpeg,bmp";
+	config.deniedExtensions["Image"] = "";
+
+	config.allowedExtensions["Flash"] = "swf,fla";
+	config.deniedExtensions["Flash"] = "";
+
+	config.allowedExtensions["Media"] = "swf,fla,jpg,gif,jpeg,png,avi,mpg,mpeg,mp3,mp4,m4a,wma,wmv,wav,mid,midi,rmi,rm,ram,rmvb,mov,qt";
+	config.deniedExtensions["Media"] = "";
+</cfscript>
+
+<!--- code to maintain backwards compatibility with previous version of cfm connector --->
+<cfif isDefined("application.userFilesPath")>
+
+	<cflock scope="application" type="readonly" timeout="5">
+	<cfset config.userFilesPath = application.userFilesPath>
+	</cflock>
+
+<cfelseif isDefined("server.userFilesPath")>
+	
+	<cflock scope="server" type="readonly" timeout="5">
+	<cfset config.userFilesPath = server.userFilesPath>
+	</cflock>
+	
+</cfif>
+
+<!--- look for config struct in request, application and server scopes --->
+<cfif isDefined("request.FCKeditor") and isStruct(request.FCKeditor)>
+
+	<cfset variables.FCKeditor = request.FCKeditor>
+
+<cfelseif isDefined("application.FCKeditor") and isStruct(application.FCKeditor)>
+
+	<cflock scope="application" type="readonly" timeout="5">
+	<cfset variables.FCKeditor = duplicate(application.FCKeditor)>
+	</cflock>
+
+<cfelseif isDefined("server.FCKeditor") and isStruct(server.FCKeditor)>
+
+	<cflock scope="server" type="readonly" timeout="5">
+	<cfset variables.FCKeditor = duplicate(server.FCKeditor)>
+	</cflock>
+
+</cfif>
+
+<cfif isDefined("FCKeditor")>
+
+	<!--- copy key values from external to local config (i.e. override default config as required) --->
+	<cfscript>
+		function structCopyKeys(stFrom, stTo) {
+			for ( key in stFrom ) {
+				if ( isStruct(stFrom[key]) ) {
+					structCopyKeys(stFrom[key],stTo[key]);
+				} else {
+					stTo[key] = stFrom[key];
+				}
+			}
+		}
+		structCopyKeys(FCKeditor, config);
+	</cfscript>
+
+</cfif>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/cfm/connector.cfm
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/cfm/connector.cfm	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/cfm/connector.cfm	(revision 389)
@@ -0,0 +1,364 @@
+<cfsetting enablecfoutputonly="yes" showdebugoutput="no">
+<!---
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: connector.cfm
+ * 	File Browser connector for ColdFusion.
+ * 	(based on the original CF connector by Hendrik Kramer - hk@lwd.de)
+ * 
+ * 	Note: 
+ * 	FCKeditor requires that the connector responds with UTF-8 encoded XML.
+ * 	As ColdFusion 5 does not fully support UTF-8 encoding, we force ASCII 
+ * 	file and folder names in this connector to allow CF5 send a UTF-8 
+ * 	encoded response - code points under 127 in UTF-8 are stored using a 
+ * 	single byte, using the same encoding as ASCII, which is damn handy. 
+ * 	This is all grand for the English speakers, like meself, but I dunno 
+ * 	how others are gonna take to it. Well, the previous version of this 
+ * 	connector already did this with file names and nobody seemed to mind, 
+ * 	so fingers-crossed nobody will mind their folder names being munged too.
+ * 	  
+ * 
+ * File Authors:
+ * 		Mark Woods (mark@thickpaddy.com)
+ * 		Wim Lemmens (didgiman@gmail.com)
+--->
+
+<cfparam name="url.command">
+<cfparam name="url.type"> 
+<cfparam name="url.currentFolder">
+<!--- note: no serverPath url parameter - see config.cfm if you need to set the serverPath manually --->
+
+<cfinclude template="config.cfm">
+
+<cfscript>
+	userFilesPath = config.userFilesPath;
+	lAllowedExtensions = config.allowedExtensions[url.type];
+	lDeniedExtensions = config.deniedExtensions[url.type];
+	
+	// make sure the user files path is correctly formatted
+	userFilesPath = replace(userFilesPath, "\", "/", "ALL");
+	userFilesPath = replace(userFilesPath, '//', '/', 'ALL');
+	if ( right(userFilesPath,1) neq "/" ) {
+		userFilesPath = userFilesPath & "/";
+	}
+	if ( left(userFilesPath,1) neq "/" ) {
+		userFilesPath = "/" & userFilesPath;
+	}
+	
+	// make sure the current folder is correctly formatted
+	url.currentFolder = replace(url.currentFolder, "\", "/", "ALL");
+	url.currentFolder = replace(url.currentFolder, '//', '/', 'ALL');
+	if ( right(url.currentFolder,1) neq "/" ) {
+		url.currentFolder = url.currentFolder & "/";
+	}
+	if ( left(url.currentFolder,1) neq "/" ) {
+		url.currentFolder = "/" & url.currentFolder;
+	}
+
+	if ( find("/",getBaseTemplatePath()) neq 0 ) {
+		fs = "/";
+	} else {
+		fs = "\";
+	}
+	
+	// Get the base physical path to the web root for this application. The code to determine the path automatically assumes that
+	// the "FCKeditor" directory in the http request path is directly off the web root for the application and that it's not a 
+	// virtual directory or a symbolic link / junction. Use the serverPath config setting to force a physical path if necessary.
+	if ( len(config.serverPath) ) {
+		serverPath = config.serverPath;
+	} else {
+		serverPath = replaceNoCase(getBaseTemplatePath(),replace(cgi.script_name,"/",fs,"all"),"");
+	}
+			
+	// map the user files path to a physical directory
+	userFilesServerPath = serverPath & replace(userFilesPath,"/",fs,"all");
+	
+	xmlContent = ""; // append to this string to build content
+</cfscript>
+
+<cfif not config.enabled>
+
+	<cfset xmlContent = "<Error number=""1"" text=""This connector is disabled. Please check the 'editor/filemanager/browser/default/connectors/cfm/config.cfm' file"" />">
+	
+<cfelseif find("..",url.currentFolder)>
+	
+	<cfset xmlContent = "<Error number=""102"" />">
+	
+</cfif>
+
+<cfif not len(xmlContent)>
+
+<!--- create directories in physical path if they don't already exist --->
+<cfset currentPath = serverPath>
+<cftry>
+
+	<cfloop list="#userFilesPath#" index="name" delimiters="/">
+		
+		<cfif not directoryExists(currentPath & fs & name)>
+				<cfdirectory action="create" directory="#currentPath##fs##name#" mode="755">
+		</cfif>
+		
+		<cfset currentPath = currentPath & fs & name>
+		
+	</cfloop>
+	
+	<!--- create sub-directory for file type if it doesn't already exist --->
+		<cfif not directoryExists(userFilesServerPath & url.type)>	
+		<cfdirectory action="create" directory="#userFilesServerPath##url.type#" mode="755">
+	</cfif>
+
+<cfcatch>
+
+	<!--- this should only occur as a result of a permissions problem --->
+	<cfset xmlContent = "<Error number=""103"" />">
+
+</cfcatch>
+</cftry>
+
+</cfif>
+
+<cfif not len(xmlContent)>
+
+	<!--- no errors thus far - run command --->
+	
+	<!--- we need to know the physical path to the current folder for all commands --->
+	<cfset currentFolderPath = userFilesServerPath & url.type & replace(url.currentFolder,"/",fs,"all")>
+	
+	<cfswitch expression="#url.command#">
+	
+	
+		<cfcase value="FileUpload">
+		
+			<cfset fileName = "">
+			<cfset fileExt = "">
+		
+			<cftry>
+			
+				<!--- TODO: upload to a temp directory and move file if extension is allowed --->
+			
+				<!--- first upload the file with an unique filename --->
+				<cffile action="upload"
+					fileField="NewFile"
+					destination="#currentFolderPath#"
+					nameConflict="makeunique"
+					mode="644"
+					attributes="normal">
+				
+				<cfif cffile.fileSize EQ 0>
+					<cfthrow>
+				</cfif>
+				
+				<cfif ( len(lAllowedExtensions) and not listFindNoCase(lAllowedExtensions,cffile.ServerFileExt) )
+					or ( len(lDeniedExtensions) and listFindNoCase(lDeniedExtensions,cffile.ServerFileExt) )>
+				
+					<cfset errorNumber = "202">
+					<cffile action="delete" file="#cffile.ServerDirectory##fs##cffile.ServerFile#">
+				
+				<cfelse>
+				
+					<cfscript>
+					errorNumber = 0;
+					fileName = cffile.ClientFileName;
+					fileExt = cffile.ServerFileExt;
+			
+					// munge filename for html download. Only a-z, 0-9, _, - and . are allowed
+					if( reFind("[^A-Za-z0-9_\-\.]", fileName) ) {
+						fileName = reReplace(fileName, "[^A-Za-z0-9\-\.]", "_", "ALL");
+						fileName = reReplace(fileName, "_{2,}", "_", "ALL");
+						fileName = reReplace(fileName, "([^_]+)_+$", "\1", "ALL");
+						fileName = reReplace(fileName, "$_([^_]+)$", "\1", "ALL");
+					}
+					
+					// When the original filename already exists, add numbers (0), (1), (2), ... at the end of the filename.
+					if( compare( cffile.ServerFileName, fileName ) ) {
+						counter = 0;
+						tmpFileName = fileName;
+						while( fileExists("#currentFolderPath##fileName#.#fileExt#") ) {
+						  	counter = counter + 1;
+							fileName = tmpFileName & '(#counter#)';
+						}
+					}
+					</cfscript>
+					
+					<!--- Rename the uploaded file, if neccessary --->
+					<cfif compare(cffile.ServerFileName,fileName)>
+					
+						<cfset errorNumber = "201">
+						<cffile
+							action="rename"
+							source="#currentFolderPath##cffile.ServerFileName#.#cffile.ServerFileExt#"
+							destination="#currentFolderPath##fileName#.#fileExt#"
+							mode="644"
+							attributes="normal">
+					
+					</cfif>					
+				
+				</cfif>
+		
+				<cfcatch type="Any">
+				
+					<cfset errorNumber = "202">
+					
+				</cfcatch>
+				
+			</cftry>
+			
+			
+			<cfif errorNumber eq 201>
+			
+				<!--- file was changed (201), submit the new filename --->
+				<cfoutput>
+				<script type="text/javascript">
+				window.parent.frames['frmUpload'].OnUploadCompleted(#errorNumber#,'#replace( fileName & "." & fileExt, "'", "\'", "ALL")#');
+				</script>
+				</cfoutput>
+
+			<cfelse>
+			
+				<!--- file was uploaded succesfully(0) or an error occured(202). Submit only the error code. --->
+				<cfoutput>
+				<script type="text/javascript">
+				window.parent.frames['frmUpload'].OnUploadCompleted(#errorNumber#);
+				</script>
+				</cfoutput>
+				
+			</cfif>
+			
+			<cfabort>
+		
+		</cfcase>
+		
+		
+		<cfcase value="GetFolders">
+		
+			<!--- Sort directories first, name ascending --->
+			<cfdirectory 
+				action="list" 
+				directory="#currentFolderPath#" 
+				name="qDir"
+				sort="type,name">
+			
+			<cfscript>
+				i=1;
+				folders = "";
+				while( i lte qDir.recordCount ) {
+					if( not compareNoCase( qDir.type[i], "FILE" ))
+						break;
+					if( not listFind(".,..", qDir.name[i]) )
+						folders = folders & '<Folder name="#qDir.name[i]#" />';
+					i=i+1;
+				}
+		
+				xmlContent = xmlContent & '<Folders>' & folders & '</Folders>';
+			</cfscript>
+		
+		</cfcase>
+		
+		
+		<cfcase value="GetFoldersAndFiles">
+		
+			<!--- Sort directories first, name ascending --->
+			<cfdirectory 
+				action="list" 
+				directory="#currentFolderPath#" 
+				name="qDir"
+				sort="type,name">
+				
+			<cfscript>
+				i=1;
+				folders = "";
+				files = "";
+				while( i lte qDir.recordCount ) {
+					if( not compareNoCase( qDir.type[i], "DIR" ) and not listFind(".,..", qDir.name[i]) ) {
+						folders = folders & '<Folder name="#qDir.name[i]#" />';
+					} else if( not compareNoCase( qDir.type[i], "FILE" ) ) {
+						fileSizeKB = round(qDir.size[i] / 1024);
+						files = files & '<File name="#qDir.name[i]#" size="#IIf( fileSizeKB GT 0, DE( fileSizeKB ), 1)#" />';
+					}
+					i=i+1;
+				}
+		
+				xmlContent = xmlContent & '<Folders>' & folders & '</Folders>';
+				xmlContent = xmlContent & '<Files>' & files & '</Files>';
+			</cfscript>
+		
+		</cfcase>
+		
+		
+		<cfcase value="CreateFolder">
+		
+			<cfparam name="url.newFolderName" default="">
+			
+			<cfscript>
+				newFolderName = url.newFolderName;
+				if( reFind("[^A-Za-z0-9_\-\.]", newFolderName) ) {
+					// Munge folder name same way as we do the filename
+					// This means folder names are always US-ASCII so we don't have to worry about CF5 and UTF-8
+					newFolderName = reReplace(newFolderName, "[^A-Za-z0-9\-\.]", "_", "all");
+					newFolderName = reReplace(newFolderName, "_{2,}", "_", "all");
+					newFolderName = reReplace(newFolderName, "([^_]+)_+$", "\1", "all");
+					newFolderName = reReplace(newFolderName, "$_([^_]+)$", "\1", "all");
+				}
+			</cfscript>
+		
+			<cfif not len(newFolderName) or len(newFolderName) gt 255>
+				<cfset errorNumber = 102>	
+			<cfelseif directoryExists(currentFolderPath & newFolderName)>
+				<cfset errorNumber = 101>
+			<cfelseif reFind("^\.\.",newFolderName)>
+				<cfset errorNumber = 103>
+			<cfelse>
+				<cfset errorNumber = 0>
+		
+				<cftry>
+					<cfdirectory
+						action="create"
+						directory="#currentFolderPath##newFolderName#"
+						mode="755">
+					<cfcatch>
+						<!--- 
+						un-resolvable error numbers in ColdFusion:
+						* 102 : Invalid folder name. 
+						* 103 : You have no permissions to create the folder. 
+						--->
+						<cfset errorNumber = 110>
+					</cfcatch>
+				</cftry>
+			</cfif>
+			
+			<cfset xmlContent = xmlContent & '<Error number="#errorNumber#" />'>
+		
+		</cfcase>
+		
+		
+		<cfdefaultcase>
+		
+			<cfthrow type="fckeditor.connector" message="Illegal command: #url.command#">
+			
+		</cfdefaultcase>
+		
+		
+	</cfswitch>
+	
+</cfif>
+
+<cfscript>
+	xmlHeader = '<?xml version="1.0" encoding="utf-8" ?><Connector command="#url.command#" resourceType="#url.type#">';
+	xmlHeader = xmlHeader & '<CurrentFolder path="#url.currentFolder#" url="#userFilesPath##url.type##url.currentFolder#" />';
+	xmlFooter = '</Connector>';
+</cfscript>
+
+<cfheader name="Expires" value="#GetHttpTimeString(Now())#">
+<cfheader name="Pragma" value="no-cache">
+<cfheader name="Cache-Control" value="no-cache, no-store, must-revalidate">
+<cfcontent reset="true" type="text/xml; charset=UTF-8">
+<cfoutput>#xmlHeader##xmlContent##xmlFooter#</cfoutput>	
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/php/connector.php
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/php/connector.php	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/php/connector.php	(revision 389)
@@ -0,0 +1,109 @@
+<?php 
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: connector.php
+ * 	This is the File Manager Connector for PHP.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+ob_start() ;
+
+include('config.php') ;
+include('util.php') ;
+include('io.php') ;
+include('basexml.php') ;
+include('commands.php') ;
+
+if ( !$Config['Enabled'] )
+	SendError( 1, 'This connector is disabled. Please check the "editor/filemanager/browser/default/connectors/php/config.php" file' ) ;
+
+// Get the "UserFiles" path.
+$GLOBALS["UserFilesPath"] = '' ;
+
+if ( isset( $Config['UserFilesPath'] ) )
+	$GLOBALS["UserFilesPath"] = $Config['UserFilesPath'] ;
+else if ( isset( $_GET['ServerPath'] ) )
+	$GLOBALS["UserFilesPath"] = $_GET['ServerPath'] ;
+else
+	$GLOBALS["UserFilesPath"] = '/UserFiles/' ;
+
+if ( ! ereg( '/$', $GLOBALS["UserFilesPath"] ) )
+	$GLOBALS["UserFilesPath"] .= '/' ;
+
+if ( strlen( $Config['UserFilesAbsolutePath'] ) > 0 ) 
+{
+	$GLOBALS["UserFilesDirectory"] = $Config['UserFilesAbsolutePath'] ;
+
+	if ( ! ereg( '/$', $GLOBALS["UserFilesDirectory"] ) )
+		$GLOBALS["UserFilesDirectory"] .= '/' ;
+}
+else
+{
+	// Map the "UserFiles" path to a local directory.
+	$GLOBALS["UserFilesDirectory"] = GetRootPath() . $GLOBALS["UserFilesPath"] ;
+}
+
+DoResponse() ;
+
+function DoResponse()
+{
+	if ( !isset( $_GET['Command'] ) || !isset( $_GET['Type'] ) || !isset( $_GET['CurrentFolder'] ) )
+		return ;
+
+	// Get the main request informaiton.
+	$sCommand		= $_GET['Command'] ;
+	$sResourceType	= $_GET['Type'] ;
+	$sCurrentFolder	= $_GET['CurrentFolder'] ;
+
+	// Check if it is an allowed type.
+	if ( !in_array( $sResourceType, array('File','Image','Flash','Media') ) )
+		return ;
+
+	// Check the current folder syntax (must begin and start with a slash).
+	if ( ! ereg( '/$', $sCurrentFolder ) ) $sCurrentFolder .= '/' ;
+	if ( strpos( $sCurrentFolder, '/' ) !== 0 ) $sCurrentFolder = '/' . $sCurrentFolder ;
+	
+	// Check for invalid folder paths (..)
+	if ( strpos( $sCurrentFolder, '..' ) )
+		SendError( 102, "" ) ;
+
+	// File Upload doesn't have to Return XML, so it must be intercepted before anything.
+	if ( $sCommand == 'FileUpload' )
+	{
+		FileUpload( $sResourceType, $sCurrentFolder ) ;
+		return ;
+	}
+
+	CreateXmlHeader( $sCommand, $sResourceType, $sCurrentFolder ) ;
+
+	// Execute the required command.
+	switch ( $sCommand )
+	{
+		case 'GetFolders' :
+			GetFolders( $sResourceType, $sCurrentFolder ) ;
+			break ;
+		case 'GetFoldersAndFiles' :
+			GetFoldersAndFiles( $sResourceType, $sCurrentFolder ) ;
+			break ;
+		case 'CreateFolder' :
+			CreateFolder( $sResourceType, $sCurrentFolder ) ;
+			break ;
+	}
+
+	CreateXmlFooter() ;
+
+	exit ;
+}
+?>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/php/basexml.php
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/php/basexml.php	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/php/basexml.php	(revision 389)
@@ -0,0 +1,71 @@
+<?php 
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: basexml.php
+ * 	These functions define the base of the XML response sent by the PHP
+ * 	connector.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+function SetXmlHeaders()
+{
+	ob_end_clean() ;
+
+	// Prevent the browser from caching the result.
+	// Date in the past
+	header('Expires: Mon, 26 Jul 1997 05:00:00 GMT') ;
+	// always modified
+	header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT') ;
+	// HTTP/1.1
+	header('Cache-Control: no-store, no-cache, must-revalidate') ;
+	header('Cache-Control: post-check=0, pre-check=0', false) ;
+	// HTTP/1.0
+	header('Pragma: no-cache') ;
+
+	// Set the response format.
+	header( 'Content-Type:text/xml; charset=utf-8' ) ;
+}
+
+function CreateXmlHeader( $command, $resourceType, $currentFolder )
+{
+	SetXmlHeaders() ;
+	
+	// Create the XML document header.
+	echo '<?xml version="1.0" encoding="utf-8" ?>' ;
+
+	// Create the main "Connector" node.
+	echo '<Connector command="' . $command . '" resourceType="' . $resourceType . '">' ;
+	
+	// Add the current folder node.
+	echo '<CurrentFolder path="' . ConvertToXmlAttribute( $currentFolder ) . '" url="' . ConvertToXmlAttribute( GetUrlFromPath( $resourceType, $currentFolder ) ) . '" />' ;
+}
+
+function CreateXmlFooter()
+{
+	echo '</Connector>' ;
+}
+
+function SendError( $number, $text )
+{
+	SetXmlHeaders() ;
+	
+	// Create the XML document header
+	echo '<?xml version="1.0" encoding="utf-8" ?>' ;
+	
+	echo '<Connector><Error number="' . $number . '" text="' . htmlspecialchars( $text ) . '" /></Connector>' ;
+	
+	exit ;
+}
+?>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/php/util.php
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/php/util.php	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/php/util.php	(revision 389)
@@ -0,0 +1,37 @@
+<?php 
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: util.php
+ * 	This is the File Manager Connector for ASP.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+function RemoveFromStart( $sourceString, $charToRemove )
+{
+	$sPattern = '|^' . $charToRemove . '+|' ;
+	return preg_replace( $sPattern, '', $sourceString ) ;
+}
+
+function RemoveFromEnd( $sourceString, $charToRemove )
+{
+	$sPattern = '|' . $charToRemove . '+$|' ;
+	return preg_replace( $sPattern, '', $sourceString ) ;
+}
+
+function ConvertToXmlAttribute( $value )
+{
+	return utf8_encode( htmlspecialchars( $value ) ) ;
+}
+?>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/php/commands.php
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/php/commands.php	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/php/commands.php	(revision 389)
@@ -0,0 +1,218 @@
+<?php 
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: commands.php
+ * 	This is the File Manager Connector for PHP.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+function GetFolders( $resourceType, $currentFolder )
+{
+	// Map the virtual path to the local server path.
+	$sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
+
+	// Array that will hold the folders names.
+	$aFolders	= array() ;
+
+	$oCurrentFolder = opendir( $sServerDir ) ;
+
+	while ( $sFile = readdir( $oCurrentFolder ) )
+	{
+		if ( $sFile != '.' && $sFile != '..' && is_dir( $sServerDir . $sFile ) )
+			$aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
+	}
+
+	closedir( $oCurrentFolder ) ;
+
+	// Open the "Folders" node.
+	echo "<Folders>" ;
+	
+	natcasesort( $aFolders ) ;
+	foreach ( $aFolders as $sFolder )
+		echo $sFolder ;
+
+	// Close the "Folders" node.
+	echo "</Folders>" ;
+}
+
+function GetFoldersAndFiles( $resourceType, $currentFolder )
+{
+	// Map the virtual path to the local server path.
+	$sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
+
+	// Arrays that will hold the folders and files names.
+	$aFolders	= array() ;
+	$aFiles		= array() ;
+
+	$oCurrentFolder = opendir( $sServerDir ) ;
+
+	while ( $sFile = readdir( $oCurrentFolder ) )
+	{
+		if ( $sFile != '.' && $sFile != '..' )
+		{
+			if ( is_dir( $sServerDir . $sFile ) )
+				$aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
+			else
+			{
+				$iFileSize = filesize( $sServerDir . $sFile ) ;
+				if ( $iFileSize > 0 )
+				{
+					$iFileSize = round( $iFileSize / 1024 ) ;
+					if ( $iFileSize < 1 ) $iFileSize = 1 ;
+				}
+
+				$aFiles[] = '<File name="' . ConvertToXmlAttribute( $sFile ) . '" size="' . $iFileSize . '" />' ;
+			}
+		}
+	}
+
+	// Send the folders
+	natcasesort( $aFolders ) ;
+	echo '<Folders>' ;
+
+	foreach ( $aFolders as $sFolder )
+		echo $sFolder ;
+
+	echo '</Folders>' ;
+
+	// Send the files
+	natcasesort( $aFiles ) ;
+	echo '<Files>' ;
+
+	foreach ( $aFiles as $sFiles )
+		echo $sFiles ;
+
+	echo '</Files>' ;
+}
+
+function CreateFolder( $resourceType, $currentFolder )
+{
+	$sErrorNumber	= '0' ;
+	$sErrorMsg		= '' ;
+
+	if ( isset( $_GET['NewFolderName'] ) )
+	{
+		$sNewFolderName = $_GET['NewFolderName'] ;
+
+		if ( strpos( $sNewFolderName, '..' ) !== FALSE )
+			$sErrorNumber = '102' ;		// Invalid folder name.
+		else
+		{
+			// Map the virtual path to the local server path of the current folder.
+			$sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
+
+			if ( is_writable( $sServerDir ) )
+			{
+				$sServerDir .= $sNewFolderName ;
+
+				$sErrorMsg = CreateServerFolder( $sServerDir ) ;
+
+				switch ( $sErrorMsg )
+				{
+					case '' :
+						$sErrorNumber = '0' ;
+						break ;
+					case 'Invalid argument' :
+					case 'No such file or directory' :
+						$sErrorNumber = '102' ;		// Path too long.
+						break ;
+					default :
+						$sErrorNumber = '110' ;
+						break ;
+				}
+			}
+			else
+				$sErrorNumber = '103' ;
+		}
+	}
+	else
+		$sErrorNumber = '102' ;
+
+	// Create the "Error" node.
+	echo '<Error number="' . $sErrorNumber . '" originalDescription="' . ConvertToXmlAttribute( $sErrorMsg ) . '" />' ;
+}
+
+function FileUpload( $resourceType, $currentFolder )
+{
+	$sErrorNumber = '0' ;
+	$sFileName = '' ;
+
+	if ( isset( $_FILES['NewFile'] ) && !is_null( $_FILES['NewFile']['tmp_name'] ) )
+	{
+		global $Config ;
+
+		$oFile = $_FILES['NewFile'] ;
+
+		// Map the virtual path to the local server path.
+		$sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
+
+		// Get the uploaded file name.
+		$sFileName = $oFile['name'] ;
+		
+		// Replace dots in the name with underscores (only one dot can be there... security issue).
+		if ( $Config['ForceSingleExtension'] )
+			$sFileName = preg_replace( '/\\.(?![^.]*$)/', '_', $sFileName ) ;
+
+		$sOriginalFileName = $sFileName ;
+
+		// Get the extension.
+		$sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ;
+		$sExtension = strtolower( $sExtension ) ;
+
+		$arAllowed	= $Config['AllowedExtensions'][$resourceType] ;
+		$arDenied	= $Config['DeniedExtensions'][$resourceType] ;
+
+		if ( ( count($arAllowed) == 0 || in_array( $sExtension, $arAllowed ) ) && ( count($arDenied) == 0 || !in_array( $sExtension, $arDenied ) ) )
+		{
+			$iCounter = 0 ;
+
+			while ( true )
+			{
+				$sFilePath = $sServerDir . $sFileName ;
+
+				if ( is_file( $sFilePath ) )
+				{
+					$iCounter++ ;
+					$sFileName = RemoveExtension( $sOriginalFileName ) . '(' . $iCounter . ').' . $sExtension ;
+					$sErrorNumber = '201' ;
+				}
+				else
+				{
+					move_uploaded_file( $oFile['tmp_name'], $sFilePath ) ;
+
+					if ( is_file( $sFilePath ) )
+					{
+						$oldumask = umask(0) ;
+						chmod( $sFilePath, 0777 ) ;
+						umask( $oldumask ) ;
+					}
+
+					break ;
+				}
+			}
+		}
+		else
+			$sErrorNumber = '202' ;
+	}
+	else
+		$sErrorNumber = '202' ;
+
+	echo '<script type="text/javascript">' ;
+	echo 'window.parent.frames["frmUpload"].OnUploadCompleted(' . $sErrorNumber . ',"' . str_replace( '"', '\\"', $sFileName ) . '") ;' ;
+	echo '</script>' ;
+
+	exit ;
+}
+?>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/php/config.php
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/php/config.php	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/php/config.php	(revision 389)
@@ -0,0 +1,51 @@
+<?php 
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: config.php
+ * 	Configuration file for the File Manager Connector for PHP.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+global $Config ;
+
+// SECURITY: You must explicitelly enable this "connector". (Set it to "true").
+$Config['Enabled'] = true ;
+
+// Path to user files relative to the document root.
+$Config['UserFilesPath'] = '/public/' ;
+
+// Fill the following value it you prefer to specify the absolute path for the
+// user files directory. Usefull if you are using a virtual directory, symbolic
+// link or alias. Examples: 'C:\\MySite\\UserFiles\\' or '/root/mysite/UserFiles/'.
+// Attention: The above 'UserFilesPath' must point to the same directory.
+$Config['UserFilesAbsolutePath'] = '' ;
+
+// Due to security issues with Apache modules, it is reccomended to leave the
+// following setting enabled.
+$Config['ForceSingleExtension'] = true ;
+
+$Config['AllowedExtensions']['File']	= array() ;
+$Config['DeniedExtensions']['File']		= array('php','php2','php3','php4','php5','phtml','pwml','inc','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','com','dll','vbs','js','reg','cgi','htaccess') ;
+
+$Config['AllowedExtensions']['Image']	= array('jpg','gif','jpeg','png') ;
+$Config['DeniedExtensions']['Image']	= array() ;
+
+$Config['AllowedExtensions']['Flash']	= array('swf','fla') ;
+$Config['DeniedExtensions']['Flash']	= array() ;
+
+$Config['AllowedExtensions']['Media']	= array('swf','fla','jpg','gif','jpeg','png','avi','mpg','mpeg') ;
+$Config['DeniedExtensions']['Media']	= array() ;
+
+?>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/php/io.php
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/php/io.php	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/php/io.php	(revision 389)
@@ -0,0 +1,97 @@
+<?php 
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: io.php
+ * 	This is the File Manager Connector for ASP.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+function GetUrlFromPath( $resourceType, $folderPath )
+{
+	if ( $resourceType == '' )
+		return RemoveFromEnd( $GLOBALS["UserFilesPath"], '/' ) . $folderPath ;
+	else
+		return $GLOBALS["UserFilesPath"] . $resourceType . $folderPath ;
+}
+
+function RemoveExtension( $fileName )
+{
+	return substr( $fileName, 0, strrpos( $fileName, '.' ) ) ;
+}
+
+function ServerMapFolder( $resourceType, $folderPath )
+{
+	// Get the resource type directory.
+	$sResourceTypePath = $GLOBALS["UserFilesDirectory"] . $resourceType . '/' ;
+
+	// Ensure that the directory exists.
+	CreateServerFolder( $sResourceTypePath ) ;
+
+	// Return the resource type directory combined with the required path.
+	return $sResourceTypePath . RemoveFromStart( $folderPath, '/' ) ;
+}
+
+function GetParentFolder( $folderPath )
+{
+	$sPattern = "-[/\\\\][^/\\\\]+[/\\\\]?$-" ;
+	return preg_replace( $sPattern, '', $folderPath ) ;
+}
+
+function CreateServerFolder( $folderPath )
+{
+	$sParent = GetParentFolder( $folderPath ) ;
+
+	// Check if the parent exists, or create it.
+	if ( !file_exists( $sParent ) )
+	{
+		$sErrorMsg = CreateServerFolder( $sParent ) ;
+		if ( $sErrorMsg != '' )
+			return $sErrorMsg ;
+	}
+
+	if ( !file_exists( $folderPath ) )
+	{
+		// Turn off all error reporting.
+		error_reporting( 0 ) ;
+		// Enable error tracking to catch the error.
+		ini_set( 'track_errors', '1' ) ;
+
+		// To create the folder with 0777 permissions, we need to set umask to zero.
+		$oldumask = umask(0) ;
+		mkdir( $folderPath, 0777 ) ;
+		umask( $oldumask ) ;
+
+		$sErrorMsg = $php_errormsg ;
+
+		// Restore the configurations.
+		ini_restore( 'track_errors' ) ;
+		ini_restore( 'error_reporting' ) ;
+
+		return $sErrorMsg ;
+	}
+	else
+		return '' ;
+}
+
+function GetRootPath()
+{
+	$sRealPath = realpath( './' ) ;
+
+	$sSelfPath = $_SERVER['PHP_SELF'] ;
+	$sSelfPath = substr( $sSelfPath, 0, strrpos( $sSelfPath, '/' ) ) ;
+
+	return substr( $sRealPath, 0, strlen( $sRealPath ) - strlen( $sSelfPath ) ) ;
+}
+?>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/py/connector.py
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/py/connector.py	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/py/connector.py	(revision 389)
@@ -0,0 +1,781 @@
+#!/usr/bin/env python
+
+"""
+FCKeditor - The text editor for internet
+Copyright (C) 2003-2006 Frederico Caldeira Knabben
+
+Licensed under the terms of the GNU Lesser General Public License:
+		http://www.opensource.org/licenses/lgpl-license.php
+
+For further information visit:
+		http://www.fckeditor.net/
+
+"Support Open Source software. What about a donation today?"
+
+File Name: connector.py
+	Connector for Python.
+	
+	Tested With:
+	Standard:
+		Python 2.3.3
+	Zope:
+		Zope Version: (Zope 2.8.1-final, python 2.3.5, linux2)
+		Python Version: 2.3.5 (#4, Mar 10 2005, 01:40:25) 
+			[GCC 3.3.3 20040412 (Red Hat Linux 3.3.3-7)]
+		System Platform: linux2 
+
+File Authors:
+		Andrew Liu (andrew@liuholdings.com)
+"""
+
+"""
+Author Notes (04 December 2005):
+This module has gone through quite a few phases of change.  Obviously,
+I am only supporting that part of the code that I use.  Initially
+I had the upload directory as a part of zope (ie. uploading files
+directly into Zope), before realising that there were too many 
+complex intricacies within Zope to deal with.  Zope is one ugly piece
+of code.  So I decided to complement Zope by an Apache server (which
+I had running anyway, and doing nothing).  So I mapped all uploads
+from an arbitrary server directory to an arbitrary web directory.
+All the FCKeditor uploading occurred this way, and I didn't have to
+stuff around with fiddling with Zope objects and the like (which are
+terribly complex and something you don't want to do - trust me).
+
+Maybe a Zope expert can touch up the Zope components.  In the end, 
+I had FCKeditor loaded in Zope (probably a bad idea as well), and
+I replaced the connector.py with an alias to a server module.
+Right now, all Zope components will simple remain as is because
+I've had enough of Zope.
+
+See notes right at the end of this file for how I aliased out of Zope.
+
+Anyway, most of you probably wont use Zope, so things are pretty
+simple in that regard.
+
+Typically, SERVER_DIR is the root of WEB_DIR (not necessarily).
+Most definitely, SERVER_USERFILES_DIR points to WEB_USERFILES_DIR.
+"""
+
+import cgi
+import re
+import os
+import string
+
+"""
+escape
+
+Converts the special characters '<', '>', and '&'.
+
+RFC 1866 specifies that these characters be represented
+in HTML as &lt; &gt; and &amp; respectively. In Python
+1.5 we use the new string.replace() function for speed.
+"""
+def escape(text, replace=string.replace):
+    text = replace(text, '&', '&amp;') # must be done 1st
+    text = replace(text, '<', '&lt;')
+    text = replace(text, '>', '&gt;')
+    text = replace(text, '"', '&quot;')
+    return text
+
+"""
+getFCKeditorConnector
+
+Creates a new instance of an FCKeditorConnector, and runs it
+"""
+def getFCKeditorConnector(context=None):
+	# Called from Zope.  Passes the context through
+	connector = FCKeditorConnector(context=context)
+	return connector.run()
+
+
+"""
+FCKeditorRequest
+
+A wrapper around the request object
+Can handle normal CGI request, or a Zope request
+Extend as required
+"""
+class FCKeditorRequest(object):
+	def __init__(self, context=None):
+		if (context is not None):
+			r = context.REQUEST
+		else:
+			r = cgi.FieldStorage()
+		self.context = context
+		self.request = r
+
+	def isZope(self):
+		if (self.context is not None):
+			return True
+		return False
+
+	def has_key(self, key):
+		return self.request.has_key(key)
+
+	def get(self, key, default=None):
+		value = None
+		if (self.isZope()):
+			value = self.request.get(key, default)
+		else:
+			if key in self.request.keys():
+				value = self.request[key].value
+			else:
+				value = default
+		return value
+
+"""
+FCKeditorConnector
+
+The connector class
+"""
+class FCKeditorConnector(object):
+	# Configuration for FCKEditor
+	# can point to another server here, if linked correctly
+	#WEB_HOST = "http://127.0.0.1/" 
+	WEB_HOST = ""
+	SERVER_DIR = "/var/www/html/"
+
+	WEB_USERFILES_FOLDER = WEB_HOST + "upload/"
+	SERVER_USERFILES_FOLDER = SERVER_DIR + "upload/"
+
+	# Allow access (Zope)
+	__allow_access_to_unprotected_subobjects__ = 1
+	# Class Attributes
+	parentFolderRe = re.compile("[\/][^\/]+[\/]?$")
+
+	"""
+	Constructor
+	"""
+	def __init__(self, context=None):
+		# The given root path will NOT be shown to the user
+		# Only the userFilesPath will be shown
+
+		# Instance Attributes
+		self.context = context
+		self.request = FCKeditorRequest(context=context)
+		self.rootPath = self.SERVER_DIR
+		self.userFilesFolder = self.SERVER_USERFILES_FOLDER
+		self.webUserFilesFolder = self.WEB_USERFILES_FOLDER
+
+		# Enables / Disables the connector
+		self.enabled = False # Set to True to enable this connector
+
+		# These are instance variables
+		self.zopeRootContext = None
+		self.zopeUploadContext = None
+
+		# Copied from php module =)
+		self.allowedExtensions = {
+				"File": None,
+				"Image": None,
+				"Flash": None,
+				"Media": None
+				}
+		self.deniedExtensions = {
+				"File": [ "php","php2","php3","php4","php5","phtml","pwml","inc","asp","aspx","ascx","jsp","cfm","cfc","pl","bat","exe","com","dll","vbs","js","reg","cgi","htaccess" ],
+				"Image": [ "php","php2","php3","php4","php5","phtml","pwml","inc","asp","aspx","ascx","jsp","cfm","cfc","pl","bat","exe","com","dll","vbs","js","reg","cgi","htaccess" ],
+				"Flash": [ "php","php2","php3","php4","php5","phtml","pwml","inc","asp","aspx","ascx","jsp","cfm","cfc","pl","bat","exe","com","dll","vbs","js","reg","cgi","htaccess" ],
+				"Media": [ "php","php2","php3","php4","php5","phtml","pwml","inc","asp","aspx","ascx","jsp","cfm","cfc","pl","bat","exe","com","dll","vbs","js","reg","cgi","htaccess" ]
+				}
+
+	"""
+	Zope specific functions
+	"""
+	def isZope(self):
+		# The context object is the zope object
+		if (self.context is not None):
+			return True
+		return False
+
+	def getZopeRootContext(self):
+		if self.zopeRootContext is None:
+			self.zopeRootContext = self.context.getPhysicalRoot()
+		return self.zopeRootContext
+
+	def getZopeUploadContext(self):
+		if self.zopeUploadContext is None:
+			folderNames = self.userFilesFolder.split("/")
+			c = self.getZopeRootContext()
+			for folderName in folderNames:
+				if (folderName <> ""):
+					c = c[folderName]
+			self.zopeUploadContext = c
+		return self.zopeUploadContext
+
+	"""
+	Generic manipulation functions
+	"""
+	def getUserFilesFolder(self):
+		return self.userFilesFolder
+
+	def getWebUserFilesFolder(self):
+		return self.webUserFilesFolder
+
+	def getAllowedExtensions(self, resourceType):
+		return self.allowedExtensions[resourceType]
+
+	def getDeniedExtensions(self, resourceType):
+		return self.deniedExtensions[resourceType]
+
+	def removeFromStart(self, string, char):
+		return string.lstrip(char)
+
+	def removeFromEnd(self, string, char):
+		return string.rstrip(char)
+
+	def convertToXmlAttribute(self, value):
+		if (value is None):
+			value = ""
+		return escape(value)
+
+	def convertToPath(self, path):
+		if (path[-1] <> "/"):
+			return path + "/"
+		else:
+			return path
+
+	def getUrlFromPath(self, resourceType, path):
+		if (resourceType is None) or (resourceType == ''):
+			url = "%s%s" % (
+					self.removeFromEnd(self.getUserFilesFolder(), '/'),
+					path
+					)
+		else:
+			url = "%s%s%s" % (
+					self.getUserFilesFolder(),
+					resourceType,
+					path
+					)
+		return url
+
+	def getWebUrlFromPath(self, resourceType, path):
+		if (resourceType is None) or (resourceType == ''):
+			url = "%s%s" % (
+					self.removeFromEnd(self.getWebUserFilesFolder(), '/'),
+					path
+					)
+		else:
+			url = "%s%s%s" % (
+					self.getWebUserFilesFolder(),
+					resourceType,
+					path
+					)
+		return url
+
+	def removeExtension(self, fileName):
+		index = fileName.rindex(".")
+		newFileName = fileName[0:index]
+		return newFileName
+
+	def getExtension(self, fileName):
+		index = fileName.rindex(".") + 1
+		fileExtension = fileName[index:]
+		return fileExtension
+		
+	def getParentFolder(self, folderPath):
+		parentFolderPath = self.parentFolderRe.sub('', folderPath)
+		return parentFolderPath
+	
+	"""
+	serverMapFolder
+
+	Purpose: works out the folder map on the server
+	"""
+	def serverMapFolder(self, resourceType, folderPath):
+		# Get the resource type directory
+		resourceTypeFolder = "%s%s/" % (
+				self.getUserFilesFolder(),
+				resourceType
+				)
+		# Ensure that the directory exists
+		self.createServerFolder(resourceTypeFolder)
+
+		# Return the resource type directory combined with the
+		# required path
+		return "%s%s" % (
+				resourceTypeFolder,
+				self.removeFromStart(folderPath, '/')
+				)
+
+	"""
+	createServerFolder
+
+	Purpose: physically creates a folder on the server
+	"""
+	def createServerFolder(self, folderPath):
+		# Check if the parent exists
+		parentFolderPath = self.getParentFolder(folderPath)
+		if not(os.path.exists(parentFolderPath)):
+			errorMsg = self.createServerFolder(parentFolderPath)
+			if errorMsg is not None:
+				return errorMsg
+		# Check if this exists
+		if not(os.path.exists(folderPath)):
+			os.mkdir(folderPath)
+			os.chmod(folderPath, 0755)
+			errorMsg = None
+		else:
+			if os.path.isdir(folderPath):
+				errorMsg = None
+			else:
+				raise "createServerFolder: Non-folder of same name already exists"
+		return errorMsg
+
+
+	"""
+	getRootPath
+
+	Purpose: returns the root path on the server
+	"""
+	def getRootPath(self):
+		return self.rootPath
+		
+	"""
+	setXmlHeaders
+
+	Purpose: to prepare the headers for the xml to return
+	"""
+	def setXmlHeaders(self):
+		#now = self.context.BS_get_now()
+		#yesterday = now - 1
+		self.setHeader("Content-Type", "text/xml")
+		#self.setHeader("Expires", yesterday)
+		#self.setHeader("Last-Modified", now)
+		#self.setHeader("Cache-Control", "no-store, no-cache, must-revalidate")
+		self.printHeaders()
+		return
+
+	def setHeader(self, key, value):
+		if (self.isZope()):
+			self.context.REQUEST.RESPONSE.setHeader(key, value)
+		else:
+			print "%s: %s" % (key, value)
+		return
+
+	def printHeaders(self):
+		# For non-Zope requests, we need to print an empty line
+		# to denote the end of headers
+		if (not(self.isZope())):
+			print ""
+
+	"""
+	createXmlFooter
+
+	Purpose: returns the xml header
+	"""
+	def createXmlHeader(self, command, resourceType, currentFolder):
+		self.setXmlHeaders()
+		s = ""
+		# Create the XML document header
+		s += """<?xml version="1.0" encoding="utf-8" ?>"""
+		# Create the main connector node
+		s += """<Connector command="%s" resourceType="%s">""" % (
+				command,
+				resourceType
+				)
+		# Add the current folder node
+		s += """<CurrentFolder path="%s" url="%s" />""" % (
+				self.convertToXmlAttribute(currentFolder),
+				self.convertToXmlAttribute(
+					self.getWebUrlFromPath(
+						resourceType, 
+						currentFolder
+						)
+					),
+				)
+		return s
+
+	"""
+	createXmlFooter
+
+	Purpose: returns the xml footer
+	"""
+	def createXmlFooter(self):
+		s = """</Connector>"""
+		return s
+
+	"""
+	sendError
+
+	Purpose: in the event of an error, return an xml based error
+	"""
+	def sendError(self, number, text):
+		self.setXmlHeaders()
+		s = ""
+		# Create the XML document header
+		s += """<?xml version="1.0" encoding="utf-8" ?>"""
+		s += """<Connector>"""
+		s += """<Error number="%s" text="%s" />""" % (number, text)
+		s += """</Connector>"""
+		return s
+
+	"""
+	getFolders
+
+	Purpose: command to recieve a list of folders
+	"""
+	def getFolders(self, resourceType, currentFolder):
+		if (self.isZope()):
+			return self.getZopeFolders(resourceType, currentFolder)
+		else:
+			return self.getNonZopeFolders(resourceType, currentFolder)
+
+	def getZopeFolders(self, resourceType, currentFolder):
+		# Open the folders node
+		s = ""
+		s += """<Folders>"""
+		zopeFolder = self.findZopeFolder(resourceType, currentFolder)
+		for (name, o) in zopeFolder.objectItems(["Folder"]):
+			s += """<Folder name="%s" />""" % (
+					self.convertToXmlAttribute(name)
+					)
+		# Close the folders node
+		s += """</Folders>"""
+		return s
+
+	def getNonZopeFolders(self, resourceType, currentFolder):
+		# Map the virtual path to our local server
+		serverPath = self.serverMapFolder(resourceType, currentFolder)
+		# Open the folders node
+		s = ""
+		s += """<Folders>"""
+		for someObject in os.listdir(serverPath):
+			someObjectPath = os.path.join(serverPath, someObject)
+			if os.path.isdir(someObjectPath):
+				s += """<Folder name="%s" />""" % (
+						self.convertToXmlAttribute(someObject)
+						)
+		# Close the folders node
+		s += """</Folders>"""
+		return s
+		
+	"""
+	getFoldersAndFiles
+
+	Purpose: command to recieve a list of folders and files
+	"""
+	def getFoldersAndFiles(self, resourceType, currentFolder):
+		if (self.isZope()):
+			return self.getZopeFoldersAndFiles(resourceType, currentFolder)
+		else:
+			return self.getNonZopeFoldersAndFiles(resourceType, currentFolder)
+
+	def getNonZopeFoldersAndFiles(self, resourceType, currentFolder):
+		# Map the virtual path to our local server
+		serverPath = self.serverMapFolder(resourceType, currentFolder)
+		# Open the folders / files node
+		folders = """<Folders>"""
+		files = """<Files>"""
+		for someObject in os.listdir(serverPath):
+			someObjectPath = os.path.join(serverPath, someObject)
+			if os.path.isdir(someObjectPath):
+				folders += """<Folder name="%s" />""" % (
+						self.convertToXmlAttribute(someObject)
+						)
+			elif os.path.isfile(someObjectPath):
+				size = os.path.getsize(someObjectPath)
+				files += """<File name="%s" size="%s" />""" % (
+						self.convertToXmlAttribute(someObject),
+						os.path.getsize(someObjectPath)
+						)
+		# Close the folders / files node
+		folders += """</Folders>"""
+		files += """</Files>"""
+		# Return it
+		s = folders + files
+		return s
+
+	def getZopeFoldersAndFiles(self, resourceType, currentFolder):
+		folders = self.getZopeFolders(resourceType, currentFolder)
+		files = self.getZopeFiles(resourceType, currentFolder)
+		s = folders + files
+		return s
+
+	def getZopeFiles(self, resourceType, currentFolder):
+		# Open the files node
+		s = ""
+		s += """<Files>"""
+		zopeFolder = self.findZopeFolder(resourceType, currentFolder)
+		for (name, o) in zopeFolder.objectItems(["File","Image"]):
+			s += """<File name="%s" size="%s" />""" % (
+					self.convertToXmlAttribute(name),
+					((o.get_size() / 1024) + 1)
+					)
+		# Close the files node
+		s += """</Files>"""
+		return s
+		
+	def findZopeFolder(self, resourceType, folderName):
+		# returns the context of the resource / folder
+		zopeFolder = self.getZopeUploadContext()
+		folderName = self.removeFromStart(folderName, "/")
+		folderName = self.removeFromEnd(folderName, "/")
+		if (resourceType <> ""):
+			try:
+				zopeFolder = zopeFolder[resourceType]
+			except:
+				zopeFolder.manage_addProduct["OFSP"].manage_addFolder(id=resourceType, title=resourceType)
+				zopeFolder = zopeFolder[resourceType]
+		if (folderName <> ""):
+			folderNames = folderName.split("/")
+			for folderName in folderNames:
+				zopeFolder = zopeFolder[folderName]
+		return zopeFolder
+
+	"""
+	createFolder
+
+	Purpose: command to create a new folder
+	"""
+	def createFolder(self, resourceType, currentFolder):
+		if (self.isZope()):
+			return self.createZopeFolder(resourceType, currentFolder)
+		else:
+			return self.createNonZopeFolder(resourceType, currentFolder)
+
+	def createZopeFolder(self, resourceType, currentFolder):
+		# Find out where we are
+		zopeFolder = self.findZopeFolder(resourceType, currentFolder)
+		errorNo = 0
+		errorMsg = ""
+		if self.request.has_key("NewFolderName"):
+			newFolder = self.request.get("NewFolderName", None)
+			zopeFolder.manage_addProduct["OFSP"].manage_addFolder(id=newFolder, title=newFolder)
+		else:
+			errorNo = 102
+		error = """<Error number="%s" originalDescription="%s" />""" % (
+				errorNo,
+				self.convertToXmlAttribute(errorMsg)
+				)
+		return error
+
+	def createNonZopeFolder(self, resourceType, currentFolder):
+		errorNo = 0
+		errorMsg = ""
+		if self.request.has_key("NewFolderName"):
+			newFolder = self.request.get("NewFolderName", None)
+			currentFolderPath = self.serverMapFolder(
+					resourceType, 
+					currentFolder
+					)
+			try:
+				newFolderPath = currentFolderPath + newFolder
+				errorMsg = self.createServerFolder(newFolderPath)
+				if (errorMsg is not None):
+					errorNo = 110
+			except:
+				errorNo = 103
+		else:
+			errorNo = 102
+		error = """<Error number="%s" originalDescription="%s" />""" % (
+				errorNo,
+				self.convertToXmlAttribute(errorMsg)
+				)
+		return error
+
+	"""
+	getFileName
+
+	Purpose: helper function to extrapolate the filename
+	"""
+	def getFileName(self, filename):
+		for splitChar in ["/", "\\"]:
+			array = filename.split(splitChar)
+			if (len(array) > 1):
+				filename = array[-1]
+		return filename
+
+	"""
+	fileUpload
+
+	Purpose: command to upload files to server
+	"""
+	def fileUpload(self, resourceType, currentFolder):
+		if (self.isZope()):
+			return self.zopeFileUpload(resourceType, currentFolder)
+		else:
+			return self.nonZopeFileUpload(resourceType, currentFolder)
+
+	def zopeFileUpload(self, resourceType, currentFolder, count=None):
+		zopeFolder = self.findZopeFolder(resourceType, currentFolder)
+		file = self.request.get("NewFile", None)
+		fileName = self.getFileName(file.filename)
+		fileNameOnly = self.removeExtension(fileName)
+		fileExtension = self.getExtension(fileName).lower()
+		if (count):
+			nid = "%s.%s.%s" % (fileNameOnly, count, fileExtension)
+		else:
+			nid = fileName
+		title = nid
+		try:
+			zopeFolder.manage_addProduct['OFSP'].manage_addFile(
+					id=nid,
+					title=title,
+					file=file.read()
+					)
+		except:
+			if (count):
+				count += 1
+			else:
+				count = 1
+			self.zopeFileUpload(resourceType, currentFolder, count)
+		return
+		
+	def nonZopeFileUpload(self, resourceType, currentFolder):
+		errorNo = 0
+		errorMsg = ""
+		if self.request.has_key("NewFile"):
+			# newFile has all the contents we need
+			newFile = self.request.get("NewFile", "")
+			# Get the file name
+			newFileName = newFile.filename
+			newFileNameOnly = self.removeExtension(newFileName)
+			newFileExtension = self.getExtension(newFileName).lower()
+			allowedExtensions = self.getAllowedExtensions(resourceType)
+			deniedExtensions = self.getDeniedExtensions(resourceType)
+			if (allowedExtensions is not None):
+				# Check for allowed
+				isAllowed = False
+				if (newFileExtension in allowedExtensions):
+					isAllowed = True
+			elif (deniedExtensions is not None):
+				# Check for denied
+				isAllowed = True
+				if (newFileExtension in deniedExtensions):
+					isAllowed = False
+			else:
+				# No extension limitations
+				isAllowed = True
+
+			if (isAllowed):
+				if (self.isZope()):
+					# Upload into zope
+					self.zopeFileUpload(resourceType, currentFolder)
+				else:
+					# Upload to operating system
+					# Map the virtual path to the local server path
+					currentFolderPath = self.serverMapFolder(
+							resourceType, 
+							currentFolder
+							)
+					i = 0
+					while (True):
+						newFilePath = "%s%s" % (
+								currentFolderPath,
+								newFileName
+								)
+						if os.path.exists(newFilePath):
+							i += 1
+							newFilePath = "%s%s(%s).%s" % (
+									currentFolderPath,
+									newFileNameOnly,
+									i,
+									newFileExtension
+									)
+							errorNo = 201
+							break
+						else:
+							fileHandle = open(newFilePath,'w')
+							linecount = 0
+							while (1):
+								#line = newFile.file.readline()
+								line = newFile.readline()
+								if not line: break
+								fileHandle.write("%s" % line)
+								linecount += 1
+							os.chmod(newFilePath, 0777)
+							break
+			else:
+				newFileName = "Extension not allowed"
+				errorNo = 203
+		else:
+			newFileName = "No File"
+			errorNo = 202
+	
+		string = """
+<script type="text/javascript">
+window.parent.frames["frmUpload"].OnUploadCompleted(%s,"%s");
+</script>
+				""" % (
+						errorNo,
+						newFileName.replace('"',"'")
+						)
+		return string
+
+	def run(self):
+		s = ""
+		try:
+			# Check if this is disabled
+			if not(self.enabled):
+				return self.sendError(1, "This connector is disabled.  Please check the connector configurations and try again")
+			# Make sure we have valid inputs
+			if not(
+					(self.request.has_key("Command")) and 
+					(self.request.has_key("Type")) and 
+					(self.request.has_key("CurrentFolder"))
+					):
+				return 
+			# Get command
+			command = self.request.get("Command", None)
+			# Get resource type
+			resourceType = self.request.get("Type", None)
+			# folder syntax must start and end with "/"
+			currentFolder = self.request.get("CurrentFolder", None)
+			if (currentFolder[-1] <> "/"):
+				currentFolder += "/"
+			if (currentFolder[0] <> "/"):
+				currentFolder = "/" + currentFolder
+			# Check for invalid paths
+			if (".." in currentFolder):
+				return self.sendError(102, "")
+			# File upload doesn't have to return XML, so intercept
+			# her:e
+			if (command == "FileUpload"):
+				return self.fileUpload(resourceType, currentFolder)
+			# Begin XML
+			s += self.createXmlHeader(command, resourceType, currentFolder)
+			# Execute the command
+			if (command == "GetFolders"):
+				f = self.getFolders
+			elif (command == "GetFoldersAndFiles"):
+				f = self.getFoldersAndFiles
+			elif (command == "CreateFolder"):
+				f = self.createFolder
+			else:
+				f = None
+			if (f is not None):
+				s += f(resourceType, currentFolder)
+			s += self.createXmlFooter()
+		except Exception, e:
+			s = "ERROR: %s" % e
+		return s
+			
+# Running from command line
+if __name__ == '__main__':
+	# To test the output, uncomment the standard headers
+	#print "Content-Type: text/html"
+	#print ""
+	print getFCKeditorConnector()
+
+"""
+Running from zope, you will need to modify this connector. 
+If you have uploaded the FCKeditor into Zope (like me), you need to 
+move this connector out of Zope, and replace the "connector" with an
+alias as below.  The key to it is to pass the Zope context in, as
+we then have a like to the Zope context.
+
+## Script (Python) "connector.py"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=*args, **kws
+##title=ALIAS
+##
+import Products.connector as connector
+return connector.getFCKeditorConnector(context=context).run()
+"""
+			
+	
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx	(revision 389)
@@ -0,0 +1,26 @@
+<%@ Page language="c#" Inherits="FredCK.FCKeditorV2.FileBrowserConnector" AutoEventWireup="false" %>
+<%--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: connector.aspx
+ * 	This is the File Browser Connector for ASP.NET.
+ * 	
+ * 	The code of this page if included in the FCKeditor.Net package, 
+ * 	in the FredCK.FCKeditorV2.dll assemblyfile. So to use it you must 
+ * 	include that DLL in your "bin" directory.
+ * 	
+ * 	To download the FCKeditor.Net package, go to our official web site:
+ * 	http://www.fckeditor.net
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+--%>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/frmactualfolder.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/frmactualfolder.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/frmactualfolder.html	(revision 389)
@@ -0,0 +1,63 @@
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: frmactualfolder.html
+ * 	This page shows the actual folder path.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+	<head>
+		<link href="browser.css" type="text/css" rel="stylesheet">
+		<script type="text/javascript">
+
+function OnResize()
+{
+	divName.style.width = "1px" ;
+	divName.style.width = tdName.offsetWidth + "px" ;
+}
+
+function SetCurrentFolder( resourceType, folderPath )
+{
+	document.getElementById('tdName').innerHTML = folderPath ;
+}
+
+window.onload = function()
+{
+	window.top.IsLoadedActualFolder = true ;
+}
+
+		</script>
+	</head>
+	<body bottomMargin="0" topMargin="0">
+		<table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
+			<tr>
+				<td>
+					<button style="WIDTH: 100%" type="button">
+						<table cellSpacing="0" cellPadding="0" width="100%" border="0">
+							<tr>
+								<td><img height="32" alt="" src="images/FolderOpened32.gif" width="32"></td>
+								<td>&nbsp;</td>
+								<td id="tdName" width="100%" nowrap class="ActualFolder">/</td>
+								<td>&nbsp;</td>
+								<td><img height="8" src="images/ButtonArrow.gif" width="12"></td>
+								<td>&nbsp;</td>
+							</tr>
+						</table>
+					</button>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/frmresourceslist.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/frmresourceslist.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/browser/default/frmresourceslist.html	(revision 389)
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: frmresourceslist.html
+ * 	This page shows all resources available in a folder in the File Browser.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<link href="browser.css" type="text/css" rel="stylesheet" />
+	<script type="text/javascript" src="js/common.js"></script>
+	<script type="text/javascript">
+
+var oListManager = new Object() ;
+
+oListManager.Clear = function()
+{
+	document.body.innerHTML = '' ;
+}
+
+oListManager.GetFolderRowHtml = function( folderName, folderPath )
+{
+	// Build the link to view the folder.
+	var sLink = '<a href="#" onclick="OpenFolder(\'' + folderPath.replace( /'/g, '\\\'') + '\');return false;">' ;
+
+	return '<tr>' +
+			'<td width="16">' +
+				sLink +
+				'<img alt="" src="images/Folder.gif" width="16" height="16" border="0"></a>' +
+			'</td><td nowrap colspan="2">&nbsp;' +
+				sLink + 
+				folderName + 
+				'</a>' +
+		'</td></tr>' ;
+}
+
+oListManager.GetFileRowHtml = function( fileName, fileUrl, fileSize )
+{
+	// Build the link to view the folder.
+	var sLink = '<a href="#" onclick="OpenFile(\'' + fileUrl.replace( /'/g, '\\\'') + '\');return false;">' ;
+
+	// Get the file icon.
+	var sIcon = oIcons.GetIcon( fileName ) ;
+
+	return '<tr>' +
+			'<td width="16">' +
+				sLink + 
+				'<img alt="" src="images/icons/' + sIcon + '.gif" width="16" height="16" border="0"></a>' +
+			'</td><td>&nbsp;' +
+				sLink + 
+				fileName + 
+				'</a>' +
+			'</td><td align="right" nowrap>&nbsp;' +
+				fileSize + 
+				' KB' +
+		'</td></tr>' ;
+}
+
+function OpenFolder( folderPath )
+{
+	// Load the resources list for this folder.
+	window.parent.frames['frmFolders'].LoadFolders( folderPath ) ;
+}
+
+function OpenFile( fileUrl )
+{
+	window.top.opener.SetUrl( fileUrl ) ;
+	window.top.close() ;
+	window.top.opener.focus() ;
+}
+
+function LoadResources( resourceType, folderPath )
+{
+	oListManager.Clear() ;
+	oConnector.ResourceType = resourceType ;
+	oConnector.CurrentFolder = folderPath ;
+	oConnector.SendCommand( 'GetFoldersAndFiles', null, GetFoldersAndFilesCallBack ) ;
+}
+
+function Refresh()
+{
+	LoadResources( oConnector.ResourceType, oConnector.CurrentFolder ) ;
+}
+
+function GetFoldersAndFilesCallBack( fckXml )
+{
+	if ( oConnector.CheckError( fckXml ) != 0 )
+		return ;
+
+	// Get the current folder path.
+	var oNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' ) ;
+	var sCurrentFolderPath	= oNode.attributes.getNamedItem('path').value ;
+	var sCurrentFolderUrl	= oNode.attributes.getNamedItem('url').value ;
+
+//	var dTimer = new Date() ;
+
+	var oHtml = new StringBuilder( '<table id="tableFiles" cellspacing="1" cellpadding="0" width="100%" border="0">' ) ;
+
+	// Add the Folders.	
+	var oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' ) ;
+	for ( var i = 0 ; i < oNodes.length ; i++ )
+	{
+		var sFolderName = oNodes[i].attributes.getNamedItem('name').value ;
+		oHtml.Append( oListManager.GetFolderRowHtml( sFolderName, sCurrentFolderPath + sFolderName + "/" ) ) ;
+	}
+
+	// Add the Files.	
+	var oNodes = fckXml.SelectNodes( 'Connector/Files/File' ) ;
+	for ( var i = 0 ; i < oNodes.length ; i++ )
+	{
+		var oNode = oNodes[i] ;
+		var sFileName = oNode.attributes.getNamedItem('name').value ;
+		var sFileSize = oNode.attributes.getNamedItem('size').value ;
+
+		// Get the optional "url" attribute. If not available, build the url.
+		var oFileUrlAtt = oNodes[i].attributes.getNamedItem('url') ;
+		var sFileUrl = oFileUrlAtt != null ? oFileUrlAtt.value : sCurrentFolderUrl + sFileName ;
+		
+		oHtml.Append( oListManager.GetFileRowHtml( sFileName, sFileUrl, sFileSize ) ) ;
+	}
+
+	oHtml.Append( '</table>' ) ;
+	
+	document.body.innerHTML = oHtml.ToString() ;
+
+//	window.top.document.title = 'Finished processing in ' + ( ( ( new Date() ) - dTimer ) / 1000 ) + ' seconds' ;
+
+}
+
+window.onload = function()
+{
+	window.top.IsLoadedResourcesList = true ;
+}
+	</script>
+</head>
+<body class="FileArea" bottommargin="10" leftmargin="10" topmargin="10" rightmargin="10">
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/lasso/upload.lasso
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/lasso/upload.lasso	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/lasso/upload.lasso	(revision 389)
@@ -0,0 +1,152 @@
+[//lasso
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * File Name: upload.php
+ * 	This is the "File Uploader" for Lasso.
+ * 
+ * File Authors:
+ * 		Jason Huck (jason.huck@corefive.com)
+ */
+
+
+    /*.....................................................................     
+    Include global configuration. See config.lasso for details.                                                                           
+    */                                                                          
+	include('config.lasso');
+
+
+    /*.....................................................................     
+    Convert query string parameters to variables and initialize output.                                                                           
+    */                                                                          
+	var(
+		'Type'			=	action_param('Type'),
+		'CurrentFolder'	=	action_param('CurrentFolder'),
+		'ServerPath'	=	action_param('ServerPath'),
+		'NewFile'		=	null,
+		'NewFileName'	=	string,
+		'OrigFilePath'	=	string,
+		'NewFilePath'	=	string,
+		'errorNumber'	=	0,
+		'customMsg'		=	''
+	);
+
+	$Type == '' ? $Type = 'File';
+
+
+    /*.....................................................................     
+    Calculate the path to the current folder.                                                                           
+    */                                                                          
+	$ServerPath == '' ? $ServerPath = $config->find('UserFilesPath');
+		
+	var('currentFolderURL' = $ServerPath 
+		+ $config->find('Subdirectories')->find(action_param('Type'))
+		+ action_param('CurrentFolder')
+	);
+
+
+	/*.....................................................................    
+	Custom tag sets the HTML response.                                                               
+	*/
+	
+	define_tag(
+		'sendresults',
+		-namespace='fck_',
+		-priority='replace',
+		-required='errorNumber',
+		-type='integer',
+		-optional='fileUrl',
+		-type='string',
+		-optional='fileName',
+		-type='string',
+		-optional='customMsg',
+		-type='string',
+		-description='Sets the HTML response for the FCKEditor Quick Upload feature.'
+	);
+		$__html_reply__ = '\
+<script type="text/javascript">
+	window.parent.OnUploadCompleted(' + #errorNumber + ',"' 
+		+ string_replace(#fileUrl, -find='"', -replace='\\"') + '","' 
+		+ string_replace(#fileName, -find='"', -replace='\\"') + '","' 
+		+ string_replace(#customMsg, -find='"', -replace='\\"') + '");
+</script>
+		';
+	/define_tag;
+
+
+	if($config->find('Enabled'));
+		/*.................................................................     
+		Process an uploaded file.                                                                        
+		*/                                                                          
+		inline($connection);
+			/*.............................................................     
+			Was a file actually uploaded?                                                              
+			*/                                                              
+			file_uploads->size ? $NewFile = file_uploads->get(1) | $errorNumber = 202;
+							
+			if($errorNumber == 0);
+				/*.........................................................     
+				Split the file's extension from the filename in order
+				to follow the API's naming convention for duplicate
+				files. (Test.txt, Test(1).txt, Test(2).txt, etc.)                                                          
+				*/                                                          
+				$NewFileName = $NewFile->find('OrigName');													
+				$OrigFilePath = $currentFolderURL + $NewFileName;
+				$NewFilePath = $OrigFilePath;
+				local('fileExtension') = '.' + $NewFile->find('OrigExtension');					
+				local('shortFileName') = $NewFileName->removetrailing(#fileExtension)&;
+	
+	
+				/*.........................................................     
+				Make sure the file extension is allowed.                                                          
+				*/ 
+								
+				if($config->find('DeniedExtensions')->find($Type) >> $NewFile->find('OrigExtension'));
+					$errorNumber = 202;
+				else;
+					/*.....................................................     
+					Rename the target path until it is unique.                                                    
+					*/                                                      										
+					while(file_exists($NewFilePath));
+						$NewFileName = #shortFileName + '(' + loop_count + ')' + #fileExtension;
+						$NewFilePath = $currentFolderURL + $NewFileName;
+					/while;
+					
+					
+					/*.....................................................     
+					Copy the uploaded file to its final location.                                                     
+					*/                                                      
+					file_copy($NewFile->find('path'), $NewFilePath);
+	
+	
+					/*.....................................................    
+					Set the error code for the response.                                          
+					*/                                                      						
+					select(file_currenterror( -errorcode));
+						case(0);
+							$OrigFilePath != $NewFilePath ? $errorNumber = 201;
+						case;
+							$errorNumber = 202;
+					/select;
+				/if;
+			/if;
+		/inline;
+	else;
+		$errorNumber = 1;
+		$customMsg = 'This file uploader is disabled. Please check the "editor/filemanager/upload/lasso/config.lasso" file.';
+	/if;
+	
+	fck_sendresults(
+		-errorNumber=$errorNumber,
+		-fileUrl=$NewFilePath,
+		-fileName=$NewFileName,
+		-customMsg=$customMsg
+	);
+]	
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/lasso/config.lasso
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/lasso/config.lasso	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/lasso/config.lasso	(revision 389)
@@ -0,0 +1,59 @@
+[//lasso
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * File Name: config.php
+ * 	Configuration file for the Lasso File Uploader.
+ * 
+ * File Authors:
+ * 		Jason Huck (jason.huck@corefive.com)
+ */
+
+    /*.....................................................................     
+    The connector uses the file tags, which require authentication. Enter a
+    valid username and password from Lasso admin for a group with file tags
+    permissions for uploads and the path you define in UserFilesPath below.                                                                        
+    */ 
+    
+	var('connection') = array(
+		-username='xxxxxxxx',
+		-password='xxxxxxxx'
+	);
+
+
+    /*.....................................................................     
+    Set the base path for files that users can upload and browse (relative
+    to server root).
+    
+    Set which file extensions are allowed and/or denied for each file type.                                                                           
+    */                                                                          
+	var('config') = map(
+		'Enabled' = false,
+		'UserFilesPath' = '/UserFiles/',
+		'Subdirectories' = map(
+			'File' = 'File/',
+			'Image' = 'Image/',
+			'Flash' = 'Flash/',
+			'Media' = 'Media/'
+		),
+		'AllowedExtensions' = map(
+			'File' = array(),
+			'Image' = array('jpg','gif','jpeg','png'),
+			'Flash' = array('swf','fla'),
+			'Media' = array('swf','fla','jpg','gif','jpeg','png','avi','mpg','mpeg')
+		),
+		'DeniedExtensions' = map(
+			'File' = array('php','php2','php3','php4','php5','phtml','pwml','inc','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','com','dll','vbs','js','reg','cgi','lasso','lassoapp'),
+			'Image' = array(),
+			'Flash' = array(),
+			'Media' = array()
+		)
+	);
+]
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/test.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/test.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/test.html	(revision 389)
@@ -0,0 +1,129 @@
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: test.html
+ * 	Test page for the "File Uploaders".
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html>
+	<head>
+		<title>FCKeditor - Uploaders Tests</title>
+		<script language="javascript">
+
+function SendFile()
+{
+	var sUploaderUrl = cmbUploaderUrl.value ;
+	
+	if ( sUploaderUrl.length == 0 )
+		sUploaderUrl = txtCustomUrl.value ;
+	
+	if ( sUploaderUrl.length == 0 )
+	{
+		alert( 'Please provide your custom URL or select a default one' ) ;
+		return ;
+	}
+	
+	eURL.innerHTML = sUploaderUrl ;
+	txtUrl.value = '' ;
+	
+	frmUpload.action = sUploaderUrl ;
+	frmUpload.submit() ;
+}
+
+function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
+{
+	switch ( errorNumber )
+	{
+		case 0 :	// No errors
+			txtUrl.value = fileUrl ;
+			alert( 'File uploaded with no errors' ) ;
+			break ;
+		case 1 :	// Custom error
+			alert( customMsg ) ;
+			break ;
+		case 10 :	// Custom warning
+			txtUrl.value = fileUrl ;
+			alert( customMsg ) ;
+			break ;
+		case 201 :
+			txtUrl.value = fileUrl ;
+			alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
+			break ;
+		case 202 :
+			alert( 'Invalid file' ) ;
+			break ;
+		case 203 :
+			alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ;
+			break ;
+		default :
+			alert( 'Error on file upload. Error number: ' + errorNumber ) ;
+			break ;
+	}
+}
+
+		</script>
+	</head>
+	<body>
+		<table cellSpacing="0" cellPadding="0" width="100%" border="0" height="100%">
+			<tr>
+				<td>
+					<table cellSpacing="0" cellPadding="0" width="100%" border="0">
+						<tr>
+							<td nowrap>
+								Select the "File Uploader" to use:<br>
+								<select id="cmbUploaderUrl">
+									<option selected value="asp/upload.asp">ASP</option>
+									<option value="aspx/upload.aspx">ASP.Net</option>
+									<option value="cfm/upload.cfm">ColdFusion</option>
+									<option value="lasso/upload.lasso">Lasso</option>
+									<option value="php/upload.php">PHP</option>
+									<option value="">(Custom)</option>
+								</select>
+							</td>
+							<td nowrap>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
+							<td width="100%">
+								Custom Uploader URL:<BR>
+								<input id="txtCustomUrl" style="WIDTH: 100%; BACKGROUND-COLOR: #dcdcdc" disabled type="text">
+							</td>
+						</tr>
+					</table>
+					<br>
+					<table cellSpacing="0" cellPadding="0" width="100%" border="0">
+						<tr>
+							<td noWrap>
+								<form id="frmUpload" target="UploadWindow" enctype="multipart/form-data" action="" method="post">
+									Upload a new file:<br>
+									<input type="file" name="NewFile"><br>
+									<input type="button" value="Send it to the Server" onclick="SendFile();">
+								</form>
+							</td>
+							<td style="WIDTH: 16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
+							<td vAlign="top" width="100%">
+								Uploaded File URL:<br>
+								<INPUT id="txtUrl" style="WIDTH: 100%" readonly type="text">
+							</td>
+						</tr>
+					</table>
+					<br>
+					Post URL: <span id="eURL">&nbsp;</span>
+				</td>
+			</tr>
+			<tr>
+				<td height="100%">
+					<iframe name="UploadWindow" width="100%" height="100%" src="../../fckblank.html"></iframe>
+				</td>
+			</tr>
+		</table>
+	</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/asp/upload.asp
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/asp/upload.asp	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/asp/upload.asp	(revision 389)
@@ -0,0 +1,117 @@
+﻿<%@ CodePage=65001 Language="VBScript"%>
+<%
+Option Explicit
+Response.Buffer = True
+%>
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: upload.asp
+ * 	This is the "File Uploader" for ASP.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<!--#include file="config.asp"-->
+<!--#include file="io.asp"-->
+<!--#include file="class_upload.asp"-->
+<%
+
+' This is the function that sends the results of the uploading process.
+Function SendResults( errorNumber, fileUrl, fileName, customMsg )
+	Response.Write "<script type=""text/javascript"">"
+	Response.Write "window.parent.OnUploadCompleted(" & errorNumber & ",""" & Replace( fileUrl, """", "\""" ) & """,""" & Replace( fileName, """", "\""" ) & """,""" & Replace( customMsg , """", "\""" ) & """) ;"
+	Response.Write "</script>"
+	Response.End
+End Function
+
+%>
+<%
+
+' Check if this uploader has been enabled.
+If ( ConfigIsEnabled = False ) Then
+	SendResults "1", "", "", "This file uploader is disabled. Please check the ""editor/filemanager/upload/asp/config.asp"" file"
+End If
+
+' The the file type (from the QueryString, by default 'File').
+Dim resourceType
+If ( Request.QueryString("Type") <> "" ) Then
+	resourceType = Request.QueryString("Type")
+Else
+	resourceType = "File"
+End If
+
+' Create the Uploader object.
+Dim oUploader
+Set oUploader = New NetRube_Upload
+oUploader.MaxSize	= 0
+oUploader.Allowed	= ConfigAllowedExtensions.Item( resourceType )
+oUploader.Denied	= ConfigDeniedExtensions.Item( resourceType )
+oUploader.GetData
+
+If oUploader.ErrNum > 1 Then
+	SendResults "202", "", "", ""
+Else
+	Dim sFileName, sFileUrl, sErrorNumber, sOriginalFileName, sExtension
+	sFileName		= ""
+	sFileUrl		= ""
+	sErrorNumber	= "0"
+
+	' Map the virtual path to the local server path.
+	Dim sServerDir
+	sServerDir = Server.MapPath( ConfigUserFilesPath )
+	If ( Right( sServerDir, 1 ) <> "\" ) Then
+		sServerDir = sServerDir & "\"
+	End If
+	
+	If ( ConfigUseFileType = True ) Then
+		sServerDir = sServerDir & resourceType & "\"
+	End If 
+
+	Dim oFSO
+	Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
+
+	' Get the uploaded file name.
+	sFileName	= oUploader.File( "NewFile" ).Name
+	sExtension	= oUploader.File( "NewFile" ).Ext
+	sOriginalFileName = sFileName
+
+	Dim iCounter
+	iCounter = 0
+
+	Do While ( True )
+		Dim sFilePath
+		sFilePath = sServerDir & sFileName
+
+		If ( oFSO.FileExists( sFilePath ) ) Then
+			iCounter = iCounter + 1
+			sFileName = RemoveExtension( sOriginalFileName ) & "(" & iCounter & ")." & sExtension
+			sErrorNumber = "201"
+		Else
+			oUploader.SaveAs "NewFile", sFilePath
+			If oUploader.ErrNum > 0 Then SendResults "202", "", "", ""
+			Exit Do
+		End If
+	Loop
+
+	If ( ConfigUseFileType = True ) Then
+		sFileUrl = ConfigUserFilesPath & resourceType & "/" & sFileName
+	Else
+		sFileUrl = ConfigUserFilesPath & sFileName
+	End If
+
+	SendResults sErrorNumber, sFileUrl, sFileName, ""
+	
+End If
+
+Set oUploader = Nothing
+%>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/asp/config.asp
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/asp/config.asp	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/asp/config.asp	(revision 389)
@@ -0,0 +1,48 @@
+﻿<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: config.asp
+ * 	Configuration file for the File Manager Connector for ASP.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<%
+
+' SECURITY: You must explicitelly enable this "uploader" (set it to "True"). 
+Dim ConfigIsEnabled
+ConfigIsEnabled = False
+
+' Set if the file type must be considere in the target path. 
+' Ex: /UserFiles/Image/ or /UserFiles/File/
+Dim ConfigUseFileType
+ConfigUseFileType = False
+
+' Path to user files relative to the document root.
+Dim ConfigUserFilesPath
+ConfigUserFilesPath = "/UserFiles/"
+
+' Allowed and Denied extensions configurations.
+Dim ConfigAllowedExtensions, ConfigDeniedExtensions
+Set ConfigAllowedExtensions	= CreateObject( "Scripting.Dictionary" )
+Set ConfigDeniedExtensions	= CreateObject( "Scripting.Dictionary" )
+
+ConfigAllowedExtensions.Add	"File", ""
+ConfigDeniedExtensions.Add	"File", "php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi"
+
+ConfigAllowedExtensions.Add	"Image", "jpg|gif|jpeg|png|bmp"
+ConfigDeniedExtensions.Add	"Image", ""
+
+ConfigAllowedExtensions.Add	"Flash", "swf|fla"
+ConfigDeniedExtensions.Add	"Flash", ""
+
+%>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/asp/io.asp
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/asp/io.asp	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/asp/io.asp	(revision 389)
@@ -0,0 +1,25 @@
+﻿<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: io.asp
+ * 	This file include IO specific functions used by the ASP Uploader.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<%
+
+Function RemoveExtension( fileName )
+	RemoveExtension = Left( fileName, InStrRev( fileName, "." ) - 1 )
+End Function
+
+%>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/asp/class_upload.asp
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/asp/class_upload.asp	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/asp/class_upload.asp	(revision 389)
@@ -0,0 +1,230 @@
+﻿<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: class_upload.asp
+ * 	These are the classes used to handle ASP upload without using third
+ * 	part components (OCX/DLL).
+ * 
+ * File Authors:
+ * 		NetRube (netrube@126.com)
+-->
+<%
+'**********************************************
+' File:		NetRube_Upload.asp
+' Version:	NetRube Upload Class Version 2.1 Build 20050228
+' Author:	NetRube
+' Email:	NetRube@126.com
+' Date:		02/28/2005
+' Comments:	The code for the Upload.
+'			This can free usage, but please
+'			not to delete this copyright information.
+'			If you have a modification version,
+'			Please send out a duplicate to me.
+'**********************************************
+' 文件名:	NetRube_Upload.asp
+' 版本:		NetRube Upload Class Version 2.1 Build 20050228
+' 作者:		NetRube(网络乡巴佬)
+' 电子邮件:	NetRube@126.com
+' 日期:		2005年02月28日
+' 声明:		文件上传类
+'			本上传类可以自由使用，但请保留此版权声明信息
+'			如果您对本上传类进行修改增强，
+'			请发送一份给俺。
+'**********************************************
+
+Class NetRube_Upload
+
+	Public	File, Form
+	Private oSourceData
+	Private nMaxSize, nErr, sAllowed, sDenied
+	
+	Private Sub Class_Initialize
+		nErr		= 0
+		nMaxSize	= 1048576
+		
+		Set File			= Server.CreateObject("Scripting.Dictionary")
+		File.CompareMode	= 1
+		Set Form			= Server.CreateObject("Scripting.Dictionary")
+		Form.CompareMode	= 1
+		
+		Set oSourceData		= Server.CreateObject("ADODB.Stream")
+		oSourceData.Type	= 1
+		oSourceData.Mode	= 3
+		oSourceData.Open
+	End Sub
+	
+	Private Sub Class_Terminate
+		Form.RemoveAll
+		Set Form = Nothing
+		File.RemoveAll
+		Set File = Nothing
+		
+		oSourceData.Close
+		Set oSourceData = Nothing
+	End Sub
+	
+	Public Property Get Version
+		Version = "NetRube Upload Class Version 1.0 Build 20041218"
+	End Property
+
+	Public Property Get ErrNum
+		ErrNum	= nErr
+	End Property
+	
+	Public Property Let MaxSize(nSize)
+		nMaxSize	= nSize
+	End Property
+	
+	Public Property Let Allowed(sExt)
+		sAllowed	= sExt
+	End Property
+	
+	Public Property Let Denied(sExt)
+		sDenied	= sExt
+	End Property
+
+	Public Sub GetData
+		Dim aCType
+		aCType = Split(Request.ServerVariables("HTTP_CONTENT_TYPE"), ";")
+		If aCType(0) <> "multipart/form-data" Then
+			nErr = 1
+			Exit Sub
+		End If
+		
+		Dim nTotalSize
+		nTotalSize	= Request.TotalBytes
+		If nTotalSize < 1 Then
+			nErr = 2
+			Exit Sub
+		End If
+		If nMaxSize > 0 And nTotalSize > nMaxSize Then
+			nErr = 3
+			Exit Sub
+		End If
+		
+		oSourceData.Write Request.BinaryRead(nTotalSize)
+		oSourceData.Position = 0
+		
+		Dim oTotalData, oFormStream, sFormHeader, sFormName, bCrLf, nBoundLen, nFormStart, nFormEnd, nPosStart, nPosEnd, sBoundary
+		
+		oTotalData	= oSourceData.Read
+		bCrLf		= ChrB(13) & ChrB(10)
+		sBoundary	= MidB(oTotalData, 1, InStrB(1, oTotalData, bCrLf) - 1)
+		nBoundLen	= LenB(sBoundary) + 2
+		nFormStart	= nBoundLen
+		
+		Set oFormStream = Server.CreateObject("ADODB.Stream")
+		
+		Do While (nFormStart + 2) < nTotalSize
+			nFormEnd	= InStrB(nFormStart, oTotalData, bCrLf & bCrLf) + 3
+			
+			With oFormStream
+				.Type	= 1
+				.Mode	= 3
+				.Open
+				oSourceData.Position = nFormStart
+				oSourceData.CopyTo oFormStream, nFormEnd - nFormStart
+				.Position	= 0
+				.Type		= 2
+				.CharSet	= "UTF-8"
+				sFormHeader	= .ReadText
+				.Close
+			End With
+			
+			nFormStart	= InStrB(nFormEnd, oTotalData, sBoundary) - 1
+			nPosStart	= InStr(22, sFormHeader, " name=", 1) + 7
+			nPosEnd		= InStr(nPosStart, sFormHeader, """")
+			sFormName	= Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
+			
+			If InStr(45, sFormHeader, " filename=", 1) > 0 Then
+				Set File(sFormName)			= New NetRube_FileInfo
+				File(sFormName).FormName	= sFormName
+				File(sFormName).Start		= nFormEnd
+				File(sFormName).Size		= nFormStart - nFormEnd - 2
+				nPosStart					= InStr(nPosEnd, sFormHeader, " filename=", 1) + 11
+				nPosEnd						= InStr(nPosStart, sFormHeader, """")
+				File(sFormName).ClientPath	= Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
+				File(sFormName).Name		= Mid(File(sFormName).ClientPath, InStrRev(File(sFormName).ClientPath, "\") + 1)
+				File(sFormName).Ext			= LCase(Mid(File(sFormName).Name, InStrRev(File(sFormName).Name, ".") + 1))
+				nPosStart					= InStr(nPosEnd, sFormHeader, "Content-Type: ", 1) + 14
+				nPosEnd						= InStr(nPosStart, sFormHeader, vbCr)
+				File(sFormName).MIME		= Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
+			Else
+				With oFormStream
+					.Type	= 1
+					.Mode	= 3
+					.Open
+					oSourceData.Position = nPosEnd
+					oSourceData.CopyTo oFormStream, nFormStart - nFormEnd - 2
+					.Position	= 0
+					.Type		= 2
+					.CharSet	= "UTF-8"
+					Form(sFormName)	= .ReadText
+					.Close
+				End With
+			End If
+			
+			nFormStart	= nFormStart + nBoundLen
+		Loop
+		
+		oTotalData = ""
+		Set oFormStream = Nothing
+	End Sub
+
+	Public Sub SaveAs(sItem, sFileName)
+		If File(sItem).Size < 1 Then
+			nErr = 2
+			Exit Sub
+		End If
+		
+		If Not IsAllowed(File(sItem).Ext) Then
+			nErr = 4
+			Exit Sub
+		End If
+		
+		Dim oFileStream
+		Set oFileStream = Server.CreateObject("ADODB.Stream")
+		With oFileStream
+			.Type		= 1
+			.Mode		= 3
+			.Open
+			oSourceData.Position = File(sItem).Start
+			oSourceData.CopyTo oFileStream, File(sItem).Size
+			.Position	= 0
+			.SaveToFile sFileName, 2
+			.Close
+		End With
+		Set oFileStream = Nothing
+	End Sub
+	
+	Private Function IsAllowed(sExt)
+		Dim oRE
+		Set oRE	= New RegExp
+		oRE.IgnoreCase	= True
+		oRE.Global		= True
+		
+		If sDenied = "" Then
+			oRE.Pattern	= sAllowed
+			IsAllowed	= (sAllowed = "") Or oRE.Test(sExt)
+		Else
+			oRE.Pattern	= sDenied
+			IsAllowed	= Not oRE.Test(sExt)
+		End If
+		
+		Set oRE	= Nothing
+	End Function
+End Class
+
+Class NetRube_FileInfo
+	Dim FormName, ClientPath, Path, Name, Ext, Content, Size, MIME, Start
+End Class
+%>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/cfm/upload.cfm
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/cfm/upload.cfm	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/cfm/upload.cfm	(revision 389)
@@ -0,0 +1,164 @@
+<!---
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: upload.cfm
+ * 	This is the "File Uploader" for ColdFusion.
+ * 	Based on connector.cfm by Mark Woods (mark@thickpaddy.com)
+ * 
+ * File Authors:
+ * 		Wim Lemmens (didgiman@gmail.com)
+--->
+
+<cfinclude template="config.cfm">
+
+<cfparam name="url.type" default="File">
+
+<cffunction name="SendResults">
+	<cfargument name="errorNumber" type="numeric" required="yes">
+	<cfargument name="fileUrl" type="string" required="no" default="">
+	<cfargument name="fileName" type="string" required="no" default="">
+	<cfargument name="customMsg" type="string" required="no" default="">
+	
+	<cfoutput>
+		<script type="text/javascript">
+			window.parent.OnUploadCompleted(#errorNumber#, "#JSStringFormat(fileUrl)#", "#JSStringFormat(fileName)#", "#JSStringFormat(customMsg)#");			
+		</script>
+	</cfoutput>
+
+	<cfabort><!--- Result sent, stop processing this page --->
+</cffunction>
+
+<cfif NOT config.enabled>
+	<cfset SendResults(1, '', '', 'This file uploader is disabled. Please check the "editor/filemanager/upload/cfm/config.cfm" file')>
+<cfelse>
+	<cfscript>
+		
+		userFilesPath = config.userFilesPath;
+		lAllowedExtensions = config.allowedExtensions[url.type];
+		lDeniedExtensions = config.deniedExtensions[url.type];
+		customMsg = ''; // Can be overwritten. The last value will be sent with the result
+		
+		// make sure the user files path is correctly formatted
+		userFilesPath = replace(userFilesPath, "\", "/", "ALL");
+		userFilesPath = replace(userFilesPath, '//', '/', 'ALL');
+		if ( right(userFilesPath,1) NEQ "/" ) {
+			userFilesPath = userFilesPath & "/";
+		}
+		if ( left(userFilesPath,1) NEQ "/" ) {
+			userFilesPath = "/" & userFilesPath;
+		}
+		
+		if (find("/",getBaseTemplatePath())) {
+			fs = "/";
+		} else {
+			fs = "\";
+		}
+		
+		// Get the base physical path to the web root for this application. The code to determine the path automatically assumes that
+		// the "FCKeditor" directory in the http request path is directly off the web root for the application and that it's not a 
+		// virtual directory or a symbolic link / junction. Use the serverPath config setting to force a physical path if necessary.
+		if ( len(config.serverPath) ) {
+			serverPath = config.serverPath;
+		} else {
+			serverPath = replaceNoCase(getBaseTemplatePath(),replace(cgi.script_name,"/",fs,"all"),"");
+		}
+				
+		// map the user files path to a physical directory
+		userFilesServerPath = serverPath & replace(userFilesPath,"/",fs,"all");
+	</cfscript>
+	
+	<cfset fileName = "">
+	<cfset fileExt = "">
+	
+	<cftry>
+	
+		<!--- we need to know the physical path to the current folder for all commands --->
+		<cfset currentFolderPath = userFilesServerPath & url.type & fs>
+	
+		<!--- TODO: upload to a temp directory and move file if extension is allowed --->
+	
+		<!--- first upload the file with an unique filename --->
+		<cffile action="upload"
+			fileField="NewFile"
+			destination="#currentFolderPath#"
+			nameConflict="makeunique"
+			mode="644"
+			attributes="normal">
+		
+		<cfif (Len(lAllowedExtensions) AND NOT listFindNoCase(lAllowedExtensions, cffile.ServerFileExt))
+			OR (Len(lDeniedExtensions) AND listFindNoCase(lDeniedExtensions, cffile.ServerFileExt))>
+			
+			<!--- Extension of the uploaded file is not allowed --->
+			<cfset errorNumber = "202">
+			<cffile action="delete" file="#cffile.ServerDirectory##fs##cffile.ServerFile#">
+		
+		<cfelse>
+		
+			<cfscript>
+				errorNumber = 0;
+				fileName = cffile.ClientFileName;
+				fileExt = cffile.ServerFileExt;
+		
+				// munge filename for html download. Only a-z, 0-9, _, - and . are allowed
+				if( reFind("[^A-Za-z0-9_\-\.]", fileName) ) {
+					fileName = reReplace(fileName, "[^A-Za-z0-9\-\.]", "_", "ALL");
+					fileName = reReplace(fileName, "_{2,}", "_", "ALL");
+					fileName = reReplace(fileName, "([^_]+)_+$", "\1", "ALL");
+					fileName = reReplace(fileName, "$_([^_]+)$", "\1", "ALL");
+				}
+				
+				// When the original filename already exists, add numbers (0), (1), (2), ... at the end of the filename.
+				if( compare( cffile.ServerFileName, fileName ) ) {
+					counter = 0;
+					tmpFileName = fileName;
+					while( fileExists("#currentFolderPath##fileName#.#fileExt#") ) {
+						counter = counter + 1;
+						fileName = tmpFileName & '(#counter#)';
+					}
+				}
+			</cfscript>
+			
+			<!--- Rename the uploaded file, if neccessary --->
+			<cfif compare(cffile.ServerFileName,fileName)>
+			
+				<cfset errorNumber = "201">
+				<cffile
+					action="rename"
+					source="#currentFolderPath##cffile.ServerFileName#.#cffile.ServerFileExt#"
+					destination="#currentFolderPath##fileName#.#fileExt#"
+					mode="644"
+					attributes="normal">
+			
+			</cfif>					
+		
+		</cfif>
+	
+		<cfcatch type="Any">
+		
+			<cfset errorNumber = "1">
+			<cfset customMsg = "An error occured: " & cfcatch.message & " - " & cfcatch.detail>
+			
+		</cfcatch>
+		
+	</cftry>
+	
+	<cfif errorNumber EQ 0>
+		<!--- file was uploaded succesfully --->
+		<cfset SendResults(errorNumber, '#userFilesPath##url.type#/#fileName#.#fileExt#')>
+	<cfelseif errorNumber EQ 201>
+		<!--- file was changed (201), submit the new filename --->
+		<cfset SendResults(errorNumber, '#userFilesPath##url.type#/#fileName#.#fileExt#', replace( fileName & "." & fileExt, "'", "\'", "ALL"), customMsg)>
+	<cfelse>
+		<!--- An error occured(202). Submit only the error code and a message (if available). --->
+		<cfset SendResults(errorNumber, '', '', customMsg)>
+	</cfif>
+</cfif>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/cfm/config.cfm
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/cfm/config.cfm	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/cfm/config.cfm	(revision 389)
@@ -0,0 +1,94 @@
+<!---
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: config.cfm
+ * 	Configuration file for the ColdFusion File Uploader.
+ * 
+ * File Authors:
+ * 		Wim Lemmens (didgiman@gmail.com)
+--->
+
+<cfscript>
+	config = StructNew();
+		 
+	// SECURITY: You must explicitelly enable this "uploader". 
+	config.enabled = false;
+	
+	// Path to uploaded files relative to the document root.
+	config.userFilesPath = "/UserFiles/";
+	
+	config.serverPath = ""; // use this to force the server path if FCKeditor is not running directly off the root of the application or the FCKeditor directory in the URL is a virtual directory or a symbolic link / junction
+		
+	config.allowedExtensions = StructNew();
+	config.deniedExtensions = StructNew();
+	
+	config.allowedExtensions["File"] = "";
+	config.deniedExtensions["File"] = "php,php2,php3,php4,php5,phtml,pwml,inc,asp,aspx,ascx,jsp,cfm,cfc,pl,bat,exe,com,dll,vbs,js,reg,cgi";
+	
+	config.allowedExtensions["Image"] = "png,gif,jpg,jpeg,bmp";
+	config.deniedExtensions["Image"] = "";
+	
+	config.allowedExtensions["Flash"] = "swf,fla";
+	config.deniedExtensions["Flash"] = "";
+</cfscript>
+
+<!--- code to maintain backwards compatibility with previous version of cfm connector --->
+<cfif isDefined("application.userFilesPath")>
+
+	<cflock scope="application" type="readonly" timeout="5">
+		<cfset config.userFilesPath = application.userFilesPath>
+	</cflock>
+
+<cfelseif isDefined("server.userFilesPath")>
+	
+	<cflock scope="server" type="readonly" timeout="5">
+		<cfset config.userFilesPath = server.userFilesPath>
+	</cflock>
+	
+</cfif>
+
+<!--- look for config struct in request, application and server scopes --->
+<cfif isDefined("request.FCKeditor") and isStruct(request.FCKeditor)>
+
+	<cfset variables.FCKeditor = request.FCKeditor>
+
+<cfelseif isDefined("application.FCKeditor") and isStruct(application.FCKeditor)>
+
+	<cflock scope="application" type="readonly" timeout="5">
+	<cfset variables.FCKeditor = duplicate(application.FCKeditor)>
+	</cflock>
+
+<cfelseif isDefined("server.FCKeditor") and isStruct(server.FCKeditor)>
+
+	<cflock scope="server" type="readonly" timeout="5">
+	<cfset variables.FCKeditor = duplicate(server.FCKeditor)>
+	</cflock>
+
+</cfif>
+
+<cfif isDefined("FCKeditor")>
+
+	<!--- copy key values from external to local config (i.e. override default config as required) --->
+	<cfscript>
+		function structCopyKeys(stFrom, stTo) {
+			for ( key in stFrom ) {
+				if ( isStruct(stFrom[key]) ) {
+					structCopyKeys(stFrom[key],stTo[key]);
+				} else {
+					stTo[key] = stFrom[key];
+				}
+			}
+		}
+		structCopyKeys(FCKeditor, config);
+	</cfscript>
+
+</cfif>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/php/util.php
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/php/util.php	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/php/util.php	(revision 389)
@@ -0,0 +1,36 @@
+<?php 
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: util.php
+ * 	This is the File Manager Connector for ASP.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+function RemoveExtension( $fileName )
+{
+	return substr( $fileName, 0, strrpos( $fileName, '.' ) ) ;
+}
+
+function GetRootPath()
+{
+	$sRealPath = realpath( './' ) ;
+
+	$sSelfPath = $_SERVER['PHP_SELF'] ;
+	$sSelfPath = substr( $sSelfPath, 0, strrpos( $sSelfPath, '/' ) ) ;
+
+	return substr( $sRealPath, 0, strlen( $sRealPath ) - strlen( $sSelfPath ) ) ;
+}
+
+?>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/php/upload.php
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/php/upload.php	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/php/upload.php	(revision 389)
@@ -0,0 +1,120 @@
+<?php 
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: upload.php
+ * 	This is the "File Uploader" for PHP.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+require('config.php') ;
+require('util.php') ;
+
+// This is the function that sends the results of the uploading process.
+function SendResults( $errorNumber, $fileUrl = '', $fileName = '', $customMsg = '' )
+{
+	echo '<script type="text/javascript">' ;
+	echo 'window.parent.OnUploadCompleted(' . $errorNumber . ',"' . str_replace( '"', '\\"', $fileUrl ) . '","' . str_replace( '"', '\\"', $fileName ) . '", "' . str_replace( '"', '\\"', $customMsg ) . '") ;' ;
+	echo '</script>' ;
+	exit ;
+}
+
+// Check if this uploader has been enabled.
+if ( !$Config['Enabled'] )
+	SendResults( '1', '', '', 'This file uploader is disabled. Please check the "editor/filemanager/upload/php/config.php" file' ) ;
+
+// Check if the file has been correctly uploaded.
+if ( !isset( $_FILES['NewFile'] ) || is_null( $_FILES['NewFile']['tmp_name'] ) || $_FILES['NewFile']['name'] == '' )
+	SendResults( '202' ) ;
+
+// Get the posted file.
+$oFile = $_FILES['NewFile'] ;
+
+// Get the uploaded file name extension.
+$sFileName = $oFile['name'] ;
+
+// Replace dots in the name with underscores (only one dot can be there... security issue).
+if ( $Config['ForceSingleExtension'] )
+	$sFileName = preg_replace( '/\\.(?![^.]*$)/', '_', $sFileName ) ;
+
+$sOriginalFileName = $sFileName ;
+
+// Get the extension.
+$sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ;
+$sExtension = strtolower( $sExtension ) ;
+
+// The the file type (from the QueryString, by default 'File').
+$sType = isset( $_GET['Type'] ) ? $_GET['Type'] : 'File' ;
+
+// Check if it is an allowed type.
+if ( !in_array( $sType, array('File','Image','Flash','Media') ) )
+    SendResults( 1, '', '', 'Invalid type specified' ) ;
+
+// Get the allowed and denied extensions arrays.
+$arAllowed	= $Config['AllowedExtensions'][$sType] ;
+$arDenied	= $Config['DeniedExtensions'][$sType] ;
+
+// Check if it is an allowed extension.
+if ( ( count($arAllowed) > 0 && !in_array( $sExtension, $arAllowed ) ) || ( count($arDenied) > 0 && in_array( $sExtension, $arDenied ) ) )
+	SendResults( '202' ) ;
+
+$sErrorNumber	= '0' ;
+$sFileUrl		= '' ;
+
+// Initializes the counter used to rename the file, if another one with the same name already exists.
+$iCounter = 0 ;
+
+// Get the target directory.
+if ( isset( $Config['UserFilesAbsolutePath'] ) && strlen( $Config['UserFilesAbsolutePath'] ) > 0 )
+	$sServerDir = $Config['UserFilesAbsolutePath'] ;
+else 
+	$sServerDir = GetRootPath() . $Config["UserFilesPath"] ;
+
+if ( $Config['UseFileType'] )
+	$sServerDir .= $sType . '/' ;
+
+while ( true )
+{
+	// Compose the file path.
+	$sFilePath = $sServerDir . $sFileName ;
+
+	// If a file with that name already exists.
+	if ( is_file( $sFilePath ) )
+	{
+		$iCounter++ ;
+		$sFileName = RemoveExtension( $sOriginalFileName ) . '(' . $iCounter . ').' . $sExtension ;
+		$sErrorNumber = '201' ;
+	}
+	else
+	{
+		move_uploaded_file( $oFile['tmp_name'], $sFilePath ) ;
+
+		if ( is_file( $sFilePath ) )
+		{
+			$oldumask = umask(0) ;
+			chmod( $sFilePath, 0777 ) ;
+			umask( $oldumask ) ;
+		}
+		
+		if ( $Config['UseFileType'] )
+			$sFileUrl = $Config["UserFilesPath"] . $sType . '/' . $sFileName ;
+		else
+			$sFileUrl = $Config["UserFilesPath"] . $sFileName ;
+
+		break ;
+	}
+}
+
+SendResults( $sErrorNumber, $sFileUrl, $sFileName ) ;
+?>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/php/config.php
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/php/config.php	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/php/config.php	(revision 389)
@@ -0,0 +1,52 @@
+<?php 
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: config.php
+ * 	Configuration file for the PHP File Uploader.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+global $Config ;
+
+// SECURITY: You must explicitelly enable this "uploader". 
+$Config['Enabled'] = true ;
+
+// Set if the file type must be considere in the target path. 
+// Ex: /UserFiles/Image/ or /UserFiles/File/
+$Config['UseFileType'] = true ;
+
+// Path to uploaded files relative to the document root.
+$Config['UserFilesPath'] = '/public/' ;
+
+// Fill the following value it you prefer to specify the absolute path for the
+// user files directory. Usefull if you are using a virtual directory, symbolic
+// link or alias. Examples: 'C:\\MySite\\UserFiles\\' or '/root/mysite/UserFiles/'.
+// Attention: The above 'UserFilesPath' must point to the same directory.
+$Config['UserFilesAbsolutePath'] = '' ;
+
+// Due to security issues with Apache modules, it is reccomended to leave the
+// following setting enabled.
+$Config['ForceSingleExtension'] = true ;
+
+$Config['AllowedExtensions']['File']	= array() ;
+$Config['DeniedExtensions']['File']		= array('php','php2','php3','php4','php5','phtml','pwml','inc','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','com','dll','vbs','js','reg','cgi') ;
+
+$Config['AllowedExtensions']['Image']	= array('jpg','gif','jpeg','png') ;
+$Config['DeniedExtensions']['Image']	= array() ;
+
+$Config['AllowedExtensions']['Flash']	= array('swf','fla') ;
+$Config['DeniedExtensions']['Flash']	= array() ;
+
+?>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/aspx/upload.aspx
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/aspx/upload.aspx	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/filemanager/upload/aspx/upload.aspx	(revision 389)
@@ -0,0 +1,26 @@
+<%@ Page language="c#" Inherits="FredCK.FCKeditorV2.Uploader" AutoEventWireup="false" %>
+<%--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: upload.aspx
+ * 	This is the Uploader for ASP.NET.
+ * 	
+ * 	The code of this page if included in the FCKeditor.Net package, 
+ * 	in the FredCK.FCKeditorV2.dll assemblyfile. So to use it you must 
+ * 	include that DLL in your "bin" directory.
+ * 	
+ * 	To download the FCKeditor.Net package, go to our official web site:
+ * 	http://www.fckeditor.net
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+--%>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/js/fckeditorcode_gecko.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/js/fckeditorcode_gecko.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/js/fckeditorcode_gecko.js	(revision 389)
@@ -0,0 +1,80 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * This file has been compacted for best loading performance.
+ */
+var FCK_STATUS_NOTLOADED=window.parent.FCK_STATUS_NOTLOADED=0;var FCK_STATUS_ACTIVE=window.parent.FCK_STATUS_ACTIVE=1;var FCK_STATUS_COMPLETE=window.parent.FCK_STATUS_COMPLETE=2;var FCK_TRISTATE_OFF=window.parent.FCK_TRISTATE_OFF=0;var FCK_TRISTATE_ON=window.parent.FCK_TRISTATE_ON=1;var FCK_TRISTATE_DISABLED=window.parent.FCK_TRISTATE_DISABLED=-1;var FCK_UNKNOWN=window.parent.FCK_UNKNOWN=-9;var FCK_TOOLBARITEM_ONLYICON=window.parent.FCK_TOOLBARITEM_ONLYICON=0;var FCK_TOOLBARITEM_ONLYTEXT=window.parent.FCK_TOOLBARITEM_ONLYTEXT=1;var FCK_TOOLBARITEM_ICONTEXT=window.parent.FCK_TOOLBARITEM_ICONTEXT=2;var FCK_EDITMODE_WYSIWYG=window.parent.FCK_EDITMODE_WYSIWYG=0;var FCK_EDITMODE_SOURCE=window.parent.FCK_EDITMODE_SOURCE=1;var FCK_IMAGES_PATH='images/';var FCK_SPACER_PATH='images/spacer.gif';
+String.prototype.Contains=function(A){return (this.indexOf(A)>-1);};String.prototype.Equals=function(){for (var i=0;i<arguments.length;i++) if (this==arguments[i]) return true;return false;};String.prototype.ReplaceAll=function(A,B){var C=this;for (var i=0;i<A.length;i++){C=C.replace(A[i],B[i]);};return C;};Array.prototype.AddItem=function(A){var i=this.length;this[i]=A;return i;};Array.prototype.indexOf=function(A){for (var i=0;i<this.length;i++){if (this[i]==A) return i;};return-1;};String.prototype.startsWith=function(A){return (this.substr(0,A.length)==A);};String.prototype.endsWith=function(A,B){var C=this.length;var D=A.length;if (D>C) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.remove=function(A,B){var s='';if (A>0) s=this.substring(0,A);if (A+B<this.length) s+=this.substring(A+B,this.length);return s;};String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g,'');};String.prototype.ltrim=function(){return this.replace(/^\s*/g,'');};String.prototype.rtrim=function(){return this.replace(/\s*$/g,'');};String.prototype.replaceNewLineChars=function(A){return this.replace(/\n/g,A);}
+var s=navigator.userAgent.toLowerCase();var FCKBrowserInfo={IsIE:s.Contains('msie'),IsIE7:s.Contains('msie 7'),IsGecko:s.Contains('gecko/'),IsSafari:s.Contains('safari'),IsOpera:s.Contains('opera')};FCKBrowserInfo.IsGeckoLike=FCKBrowserInfo.IsGecko||FCKBrowserInfo.IsSafari||FCKBrowserInfo.IsOpera;if (FCKBrowserInfo.IsGecko){var sGeckoVersion=s.match(/gecko\/(\d+)/)[1];FCKBrowserInfo.IsGecko10=sGeckoVersion<20051111;}
+var FCKURLParams=new Object();var aParams=document.location.search.substr(1).split('&');for (var i=0;i<aParams.length;i++){var aParam=aParams[i].split('=');var sParamName=aParam[0];var sParamValue=aParam[1];FCKURLParams[sParamName]=sParamValue;}
+var FCK=new Object();FCK.Name=FCKURLParams['InstanceName'];FCK.Status=FCK_STATUS_NOTLOADED;FCK.EditMode=FCK_EDITMODE_WYSIWYG;FCK.LoadLinkedFile=function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var C=A.getElementsByName(FCK.Name);var i=0;while (B||i==0){if (B&&(B.tagName.toLowerCase()=='input'||B.tagName.toLowerCase()=='textarea')){FCK.LinkedField=B;break;};B=C[i++];}};FCK.LoadLinkedFile();var FCKTempBin=new Object();FCKTempBin.Elements=new Array();FCKTempBin.AddElement=function(A){var B=this.Elements.length;this.Elements[B]=A;return B;};FCKTempBin.RemoveElement=function(A){var e=this.Elements[A];this.Elements[A]=null;return e;};FCKTempBin.Reset=function(){var i=0;while (i<this.Elements.length) this.Elements[i++]==null;this.Elements.length=0;}
+var FCKConfig=FCK.Config=new Object();if (document.location.protocol=='file:'){FCKConfig.BasePath=unescape(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi, '/');FCKConfig.BasePath='file://'+FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1);FCKConfig.FullBasePath=FCKConfig.BasePath;}else{FCKConfig.BasePath=document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=document.location.protocol+'//'+document.location.host+FCKConfig.BasePath;};FCKConfig.EditorPath=FCKConfig.BasePath.replace(/editor\/$/,'');try{FCKConfig.ScreenWidth=screen.width;FCKConfig.ScreenHeight=screen.height;}catch (e){FCKConfig.ScreenWidth=800;FCKConfig.ScreenHeight=600;};FCKConfig.ProcessHiddenField=function(){this.PageConfig=new Object();var A=window.parent.document.getElementById(FCK.Name+'___Config');if (!A) return;var B=A.value.split('&');for (var i=0;i<B.length;i++){if (B[i].length==0) continue;var C=B[i].split('=');var D=unescape(C[0]);var E=unescape(C[1]);if (D=='CustomConfigurationsPath') FCKConfig[D]=E;else if (E.toLowerCase()=="true") this.PageConfig[D]=true;else if (E.toLowerCase()=="false") this.PageConfig[D]=false;else if (E.length>0&&!isNaN(E)) this.PageConfig[D]=parseInt(E);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var oPageConfig=FCKConfig.PageConfig;for (var sKey in oPageConfig) FCKConfig[sKey]=oPageConfig[sKey];};function FCKConfig_PreProcess(){var oConfig=FCKConfig;if (oConfig.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) oConfig.Debug=true;}catch (e) { /* Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error). */ }};if (!oConfig.PluginsPath.endsWith('/')) oConfig.PluginsPath+='/';if (typeof(oConfig.EditorAreaCSS)=='string') oConfig.EditorAreaCSS=[oConfig.EditorAreaCSS];var sComboPreviewCSS=oConfig.ToolbarComboPreviewCSS;if (!sComboPreviewCSS||sComboPreviewCSS.length==0) oConfig.ToolbarComboPreviewCSS=oConfig.EditorAreaCSS;else if (typeof(sComboPreviewCSS)=='string') oConfig.ToolbarComboPreviewCSS=[sComboPreviewCSS];};FCKConfig.ToolbarSets=new Object();FCKConfig.Plugins=new Object();FCKConfig.Plugins.Items=new Array();FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.AddItem([A,B,C]);};FCKConfig.ProtectedSource=new Object();FCKConfig.ProtectedSource.RegexEntries=[/<!--[\s\S]*?-->/g,/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){function _Replace(protectedSource){var B=FCKTempBin.AddElement(protectedSource);return '<!--{PS..'+B+'}-->';};for (var i=0;i<this.RegexEntries.length;i++){A=A.replace(this.RegexEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};return A.replace(/(<|&lt;)!--\{PS..(\d+)\}--(>|&gt;)/g,_Replace);}
+var FCKDebug=new Object();FCKDebug.Output=function(A,B,C){if (!FCKConfig.Debug) return;if (!C&&A!=null&&isNaN(A)) A=A.replace(/</g,"&lt;");if (!this.DebugWindow||this.DebugWindow.closed) this.DebugWindow=window.open(FCKConfig.BasePath+'fckdebug.html','FCKeditorDebug','menubar=no,scrollbars=no,resizable=yes,location=no,toolbar=no,width=600,height=500',true);if (this.DebugWindow&&this.DebugWindow.Output){try{this.DebugWindow.Output(A,B);}catch (e) {}}};FCKDebug.OutputObject=function(A,B){if (!FCKConfig.Debug) return;var C;if (A!=null){C='Properties of: '+A+'</b><blockquote>';for (var D in A){try{var E=A[D]?A[D]+'':'[null]';C+='<b>'+D+'</b> : '+E.replace(/</g,'&lt;')+'<br>';}catch (e){try{C+='<b>'+D+'</b> : ['+typeof(A[D])+']<br>';}catch (e){C+='<b>'+D+'</b> : [-error-]<br>';}}};C+='</blockquote><b>';} else C='OutputObject : Object is "null".';FCKDebug.Output(C,B,true);}
+var FCKTools=new Object();FCKTools.AppendStyleSheet=function(A,B){if (typeof(B)=='string') return this._AppendStyleSheet(A,B);else{for (var i=0;i<B.length;i++) this._AppendStyleSheet(A,B[i]);}};FCKTools.GetLinkedFieldValue=function(){return FCK.LinkedField.value;};FCKTools.AttachToLinkedFieldFormSubmit=function(A){var B=FCK.LinkedField.form;if (!B) return;if (FCKBrowserInfo.IsIE) B.attachEvent("onsubmit",A);else B.addEventListener('submit',A,false);if (!B.updateFCKeditor) B.updateFCKeditor=new Array();B.updateFCKeditor[B.updateFCKeditor.length]=A;if (!B.originalSubmit&&(typeof(B.submit)=='function'||(!B.submit.tagName&&!B.submit.length))){B.originalSubmit=B.submit;B.submit=FCKTools_SubmitReplacer;}};function FCKTools_SubmitReplacer(){if (this.updateFCKeditor){for (var i=0;i<this.updateFCKeditor.length;i++) this.updateFCKeditor[i]();};this.originalSubmit();};FCKTools.GetElementWindow=function(A){return this.GetDocumentWindow(this.GetElementDocument(A));};FCKTools.GetDocumentWindow=function(A){if (FCKBrowserInfo.IsSafari&&!A.parentWindow) this.FixDocumentParentWindow(window.top);return A.parentWindow||A.defaultView;};FCKTools.FixDocumentParentWindow=function(A){A.document.parentWindow=A;for (var i=0;i<A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.GetParentWindow=function(A){return A.contentWindow?A.contentWindow:A.parentWindow;};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,'&amp;');A=A.replace(/</g,'&lt;');A=A.replace(/>/g,'&gt;');return A;};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement("OPTION");D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.endsWith('%')?A:parseInt(A);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.endsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=","+B.toUpperCase()+",";while (e){if (C.indexOf(","+e.nodeName.toUpperCase()+",")!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=0;i<arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.GetElementDocument=function (A){return A.ownerDocument||A.document;}
+var GECKO_BOGUS=FCKBrowserInfo.IsGecko?'<br _moz_editor_bogus_node="TRUE">':'';FCKTools.CancelEvent=function(e){if (e) e.preventDefault();};FCKTools.DisableSelection=function(A){if (FCKBrowserInfo.IsGecko) A.style.MozUserSelect='none';else A.style.userSelect='none';};FCKTools._AppendStyleSheet=function(A,B){var e=A.createElement('LINK');e.rel='stylesheet';e.type='text/css';e.href=B;A.getElementsByTagName("HEAD")[0].appendChild(e);return e;};FCKTools.ClearElementAttributes=function(A){for (var i=0;i<A.attributes.length;i++){A.removeAttribute(A.attributes[i].name,0);}};FCKTools.GetAllChildrenIds=function(A){var B=new Array();var C=function(parent){for (var i=0;i<parent.childNodes.length;i++){var D=parent.childNodes[i].id;if (D&&D.length>0) B[B.length]=D;C(parent.childNodes[i]);}};C(A);return B;};FCKTools.RemoveOuterTags=function(e){var A=e.ownerDocument.createDocumentFragment();for (var i=0;i<e.childNodes.length;i++) A.appendChild(e.childNodes[i]);e.parentNode.replaceChild(A,e);};FCKTools.CreateXmlObject=function(A){switch (A){case 'XmlHttp':return new XMLHttpRequest();case 'DOMDocument':return document.implementation.createDocument('','',null);};return null;};FCKTools.GetScrollPosition=function(A){return { X:A.pageXOffset,Y:A.pageYOffset };};FCKTools.AddEventListener=function(A,B,C){A.addEventListener(B,C,false);};FCKTools.RemoveEventListener=function(A,B,C){A.removeEventListener(B,C,false);};FCKTools.AddEventListenerEx=function(A,B,C,D){A.addEventListener(B,function(e){C.apply(A,[e].concat(D||[]));},false);};FCKTools.GetViewPaneSize=function(A){return { Width:A.innerWidth,Height:A.innerHeight };};FCKTools.SaveStyles=function(A){var B=new Object();if (A.className.length>0){B.Class=A.className;A.className='';};var C=A.getAttribute('style');if (C&&C.length>0){B.Inline=C;A.setAttribute('style','',0);};return B;};FCKTools.RestoreStyles=function(A,B){A.className=B.Class||'';if (B.Inline) A.setAttribute('style',B.Inline,0);else A.removeAttribute('style',0);};FCKTools.RegisterDollarFunction=function(A){A.$=function(id){return this.document.getElementById(id);};};FCKTools.AppendElement=function(A,B){return A.appendChild(A.ownerDocument.createElement(B));};FCKTools.GetElementPosition=function(A,B){var c={ X:0,Y:0 };var C=B||window;var D=FCKTools.GetElementWindow(A);while (A){var E=D.getComputedStyle(A,'').position;if (E&&E!='static'&&A.style.zIndex!=FCKConfig.FloatingPanelsZIndex) break;c.X+=A.offsetLeft-A.scrollLeft;c.Y+=A.offsetTop-A.scrollTop;if (A.offsetParent) A=A.offsetParent;else{if (D!=C){if (A=D.frameElement) D=FCKTools.GetElementWindow(A);}else{c.X+=A.scrollLeft;c.Y+=A.scrollTop;break;}}};return c;}
+var FCKeditorAPI;function InitializeAPI(){if (!(FCKeditorAPI=window.parent.FCKeditorAPI)){var sScript='\ var FCKeditorAPI={\ Version:\'2.3.2\',\ VersionBuild:\'1082\',\ __Instances:new Object(),\ GetInstance:function(instanceName)\{\ return this.__Instances[instanceName];\},\ _FunctionQueue:{\ Functions:new Array(),\ IsRunning:false,\ Add:function(functionToAdd)\{\ this.Functions.push(functionToAdd);\ if (!this.IsRunning)\ this.StartNext();\},\ StartNext:function()\{\ var aQueue=this.Functions;\ if (aQueue.length>0)\{\ this.IsRunning=true;\ aQueue[0].call();\}\ else\ this.IsRunning=false;\},\ Remove:function(func)\{\ var aQueue=this.Functions;\ var i=0,fFunc;\ while(fFunc=aQueue[i])\{\ if (fFunc==func)\ aQueue.splice(i,1);\ i++;\}\ this.StartNext();\}\}\}';if (window.parent.execScript) window.parent.execScript(sScript,'JavaScript');else{if (FCKBrowserInfo.IsGecko10){eval.call(window.parent,sScript);}else window.parent.eval(sScript);};FCKeditorAPI=window.parent.FCKeditorAPI;};FCKeditorAPI.__Instances[FCK.Name]=FCK;};function FCKeditorAPI_Cleanup(){FCKeditorAPI.__Instances[FCK.Name]=null;};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);
+var FCKRegexLib={AposEntity:/&apos;/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,BlockElements:/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TD|TH)$/i,EmptyElements:/^(?:BASE|META|LINK|HR|BR|PARAM|IMG|AREA|INPUT)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BodyContents:/([\s\S]*\<body[^\>]*\>)([\s\S]*)(\<\/body\>[\s\S]*)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,TableBorderClass:/\s*FCK__ShowTableBorders\s*/,ElementName:/(^[A-Za-z_:][\w.\-:]*\w$)|(^[A-Za-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<(p|div)>\s*<\/\1>$/i,TagBody:/></,StrongOpener:/<STRONG([ \>])/gi,StrongCloser:/<\/STRONG>/gi,EmOpener:/<EM([ \>])/gi,EmCloser:/<\/EM>/gi,AbbrOpener:/<ABBR([ \>])/gi,AbbrCloser:/<\/ABBR>/gi,GeckoEntitiesMarker:/#\?-\:/g,ProtectUrlsImg:/(?:(<img(?=\s).*?\ssrc=)("|')(.*?)\2)|(?:(<img\s.*?src=)([^"'][^ >]+))/gi,ProtectUrlsA:/(?:(<a(?=\s).*?\shref=)("|')(.*?)\2)|(?:(<a\s.*?href=)([^"'][^ >]+))/gi,Html4DocType:/HTML 4\.0 Transitional/i,DocTypeTag:/<!DOCTYPE[^>]*>/i,TagsWithEvent:/<[^\>]+ on\w+[\s\r\n]*=[\s\r\n]*?('|")[\s\S]+?\>/g,EventAttributes:/\s(on\w+)[\s\r\n]*=[\s\r\n]*?('|")([\s\S]*?)\2/g,ProtectedEvents:/\s\w+_fckprotectedatt="([^"]+)"/g}
+var FCKLanguageManager=FCK.Language=new Object();FCKLanguageManager.AvailableLanguages={'ar':'Arabic','bg':'Bulgarian','bn':'Bengali/Bangla','bs':'Bosnian','ca':'Catalan','cs':'Czech','da':'Danish','de':'German','el':'Greek','en':'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)','eo':'Esperanto','es':'Spanish','et':'Estonian','eu':'Basque','fa':'Persian','fi':'Finnish','fo':'Faroese','fr':'French','gl':'Galician','he':'Hebrew','hi':'Hindi','hr':'Croatian','hu':'Hungarian','it':'Italian','ja':'Japanese','km':'Khmer','ko':'Korean','lt':'Lithuanian','lv':'Latvian','mn':'Mongolian','ms':'Malay','nb':'Norwegian Bokmal','nl':'Dutch','no':'Norwegian','pl':'Polish','pt':'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)','ro':'Romanian','ru':'Russian','sk':'Slovak','sl':'Slovenian','sr':'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)','sv':'Swedish','th':'Thai','tr':'Turkish','uk':'Ukrainian','vi':'Vietnamese','zh':'Chinese Traditional','zh-cn':'Chinese Simplified'};FCKLanguageManager.GetActiveLanguage=function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length>=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length>=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;}};return this.DefaultLanguage;};FCKLanguageManager.TranslateElements=function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i<e.length;i++){if (E=e[i].getAttribute('fckLang')){if (s=FCKLang[E]){if (D) s=FCKTools.HTMLEncode(s);eval('e[i].'+C+' = s');}}}};FCKLanguageManager.TranslatePage=function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML',true);};FCKLanguageManager.Initialize=function(){if (this.AvailableLanguages[FCKConfig.DefaultLanguage]) this.DefaultLanguage=FCKConfig.DefaultLanguage;else this.DefaultLanguage='en';this.ActiveLanguage=new Object();this.ActiveLanguage.Code=this.GetActiveLanguage();this.ActiveLanguage.Name=this.AvailableLanguages[this.ActiveLanguage.Code];}
+var FCKEvents;FCKEvents=function(A){this.Owner=A;this.RegisteredEvents=new Object();};FCKEvents.prototype.AttachEvent=function(A,B){var C;if (!(C=this.RegisteredEvents[A])) this.RegisteredEvents[A]=[B];else C.push(B);};FCKEvents.prototype.FireEvent=function(A,B){var C=true;var D=this.RegisteredEvents[A];if (D){for (var i=0;i<D.length;i++) C=(D[i](this.Owner,B)&&C);};return C;}
+var FCKXHtmlEntities=new Object();FCKXHtmlEntities.Initialize=function(){if (FCKXHtmlEntities.Entities) return;var A='';if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.Entities={' ':'nbsp','¡':'iexcl','¢':'cent','£':'pound','¤':'curren','¥':'yen','¦':'brvbar','§':'sect','¨':'uml','©':'copy','ª':'ordf','«':'laquo','¬':'not','­':'shy','®':'reg','¯':'macr','°':'deg','±':'plusmn','²':'sup2','³':'sup3','´':'acute','µ':'micro','¶':'para','·':'middot','¸':'cedil','¹':'sup1','º':'ordm','»':'raquo','¼':'frac14','½':'frac12','¾':'frac34','¿':'iquest','×':'times','÷':'divide','ƒ':'fnof','•':'bull','…':'hellip','′':'prime','″':'Prime','‾':'oline','⁄':'frasl','℘':'weierp','ℑ':'image','ℜ':'real','™':'trade','ℵ':'alefsym','←':'larr','↑':'uarr','→':'rarr','↓':'darr','↔':'harr','↵':'crarr','⇐':'lArr','⇑':'uArr','⇒':'rArr','⇓':'dArr','⇔':'hArr','∀':'forall','∂':'part','∃':'exist','∅':'empty','∇':'nabla','∈':'isin','∉':'notin','∋':'ni','∏':'prod','∑':'sum','−':'minus','∗':'lowast','√':'radic','∝':'prop','∞':'infin','∠':'ang','∧':'and','∨':'or','∩':'cap','∪':'cup','∫':'int','∴':'there4','∼':'sim','≅':'cong','≈':'asymp','≠':'ne','≡':'equiv','≤':'le','≥':'ge','⊂':'sub','⊃':'sup','⊄':'nsub','⊆':'sube','⊇':'supe','⊕':'oplus','⊗':'otimes','⊥':'perp','⋅':'sdot','◊':'loz','♠':'spades','♣':'clubs','♥':'hearts','♦':'diams','"':'quot','ˆ':'circ','˜':'tilde',' ':'ensp',' ':'emsp',' ':'thinsp','‌':'zwnj','‍':'zwj','‎':'lrm','‏':'rlm','–':'ndash','—':'mdash','‘':'lsquo','’':'rsquo','‚':'sbquo','“':'ldquo','”':'rdquo','„':'bdquo','†':'dagger','‡':'Dagger','‰':'permil','‹':'lsaquo','›':'rsaquo','€':'euro'};for (var e in FCKXHtmlEntities.Entities) A+=e;if (FCKConfig.IncludeLatinEntities){var B={'À':'Agrave','Á':'Aacute','Â':'Acirc','Ã':'Atilde','Ä':'Auml','Å':'Aring','Æ':'AElig','Ç':'Ccedil','È':'Egrave','É':'Eacute','Ê':'Ecirc','Ë':'Euml','Ì':'Igrave','Í':'Iacute','Î':'Icirc','Ï':'Iuml','Ð':'ETH','Ñ':'Ntilde','Ò':'Ograve','Ó':'Oacute','Ô':'Ocirc','Õ':'Otilde','Ö':'Ouml','Ø':'Oslash','Ù':'Ugrave','Ú':'Uacute','Û':'Ucirc','Ü':'Uuml','Ý':'Yacute','Þ':'THORN','ß':'szlig','à':'agrave','á':'aacute','â':'acirc','ã':'atilde','ä':'auml','å':'aring','æ':'aelig','ç':'ccedil','è':'egrave','é':'eacute','ê':'ecirc','ë':'euml','ì':'igrave','í':'iacute','î':'icirc','ï':'iuml','ð':'eth','ñ':'ntilde','ò':'ograve','ó':'oacute','ô':'ocirc','õ':'otilde','ö':'ouml','ø':'oslash','ù':'ugrave','ú':'uacute','û':'ucirc','ü':'uuml','ý':'yacute','þ':'thorn','ÿ':'yuml','Œ':'OElig','œ':'oelig','Š':'Scaron','š':'scaron','Ÿ':'Yuml'};for (var e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;};if (FCKConfig.IncludeGreekEntities){var B={'Α':'Alpha','Β':'Beta','Γ':'Gamma','Δ':'Delta','Ε':'Epsilon','Ζ':'Zeta','Η':'Eta','Θ':'Theta','Ι':'Iota','Κ':'Kappa','Λ':'Lambda','Μ':'Mu','Ν':'Nu','Ξ':'Xi','Ο':'Omicron','Π':'Pi','Ρ':'Rho','Σ':'Sigma','Τ':'Tau','Υ':'Upsilon','Φ':'Phi','Χ':'Chi','Ψ':'Psi','Ω':'Omega','α':'alpha','β':'beta','γ':'gamma','δ':'delta','ε':'epsilon','ζ':'zeta','η':'eta','θ':'theta','ι':'iota','κ':'kappa','λ':'lambda','μ':'mu','ν':'nu','ξ':'xi','ο':'omicron','π':'pi','ρ':'rho','ς':'sigmaf','σ':'sigma','τ':'tau','υ':'upsilon','φ':'phi','χ':'chi','ψ':'psi','ω':'omega'};for (var e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;}}else{FCKXHtmlEntities.Entities={};A=' ';};var D='['+A+']';if (FCKConfig.ProcessNumericEntities) D='[^ -~]|'+D;var E=FCKConfig.AdditionalNumericEntities;if (E||E.length>0) D+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(D,'g');}
+var FCKXHtml=new Object();FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKXHtmlEntities.Initialize();var D=FCK.IsDirty();this._CreateNode=FCKConfig.ForceStrongEm?FCKXHtml_CreateNode_StrongEm:FCKXHtml_CreateNode_Normal;FCKXHtml.SpecialBlocks=new Array();this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;E=E.substr(7,E.length-15).trim();if (FCKBrowserInfo.IsGecko) E=E.replace(/<br\/>$/,'');E=E.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i<FCKXHtml.SpecialBlocks.length;i++){var F=new RegExp('___FCKsi___'+i);E=E.replace(F,FCKXHtml.SpecialBlocks[i]);};E=E.replace(FCKRegexLib.GeckoEntitiesMarker,'&');if (!D) FCK.ResetIsDirty();return E};FCKXHtml._AppendAttribute=function(A,B,C){if (FCKConfig.ForceSimpleAmpersand&&C.replace) C=C.replace(/&/g,'___FCKAmp___');try{var D=this.XML.createAttribute(B);D.value=C?C:'';A.attributes.setNamedItem(D);}catch (e){}};FCKXHtml._AppendChildNodes=function(A,B,C){var D=0;var E=B.firstChild;while (E){if (this._AppendNode(A,E)) D++;E=E.nextSibling;};if (D==0){if (C&&FCKConfig.FillEmptyBlocks){this._AppendEntity(A,'nbsp');return;};if (!FCKRegexLib.EmptyElements.test(B.nodeName)) A.appendChild(this.XML.createTextNode(''));}};FCKXHtml._AppendNode=function(A,B){if (!B) return;switch (B.nodeType){case 1:if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&&B.hasAttribute('_moz_editor_bogus_node')) return false;if (B.getAttribute('_fcktemp')) return false;var C=B.nodeName;if (FCKBrowserInfo.IsIE&&B.scopeName&&B.scopeName!='HTML'&&B.scopeName!='FCK') C=B.scopeName+':'+C;if (!FCKRegexLib.ElementName.test(C)) return false;C=C.toLowerCase();if (FCKBrowserInfo.IsGecko&&C=='br'&&B.hasAttribute('type')&&B.getAttribute('type',2)=='_moz') return false;if (B._fckxhtmljob&&B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var D=this._CreateNode(C);FCKXHtml._AppendAttributes(A,B,D,C);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var E=FCKXHtml.TagProcessors[C];if (E){D=E(D,B,A);if (!D) break;}else this._AppendChildNodes(D,B,FCKRegexLib.BlockElements.test(C));A.appendChild(D);break;case 3:this._AppendTextNode(A,B.nodeValue.replaceNewLineChars(' '));break;case 8:if (FCKBrowserInfo.IsIE&&!B.innerHTML) break;try { A.appendChild(this.XML.createComment(B.nodeValue));}catch (e) { /* Do nothing... probably this is a wrong format comment. */};break;default:A.appendChild(this.XML.createComment("Element not supported - Type: "+B.nodeType+" Name: "+B.nodeName));break;};return true;};function FCKXHtml_CreateNode_StrongEm(nodeName){switch (nodeName){case 'b':nodeName='strong';break;case 'i':nodeName='em';break;};return this.XML.createElement(nodeName);};function FCKXHtml_CreateNode_Normal(nodeName){return this.XML.createElement(nodeName);};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+FCKXHtml.SpecialBlocks.AddItem(A);};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendTextNode=function(A,B){A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return;};function FCKXHtml_GetEntity(character){var sEntity=FCKXHtmlEntities.Entities[character]||('#'+character.charCodeAt(0));return '#?-:'+sEntity+';';};FCKXHtml.TagProcessors=new Object();FCKXHtml.TagProcessors['img']=function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);return A;};FCKXHtml.TagProcessors['a']=function(A,B){var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);FCKXHtml._AppendChildNodes(A,B,false);if (A.childNodes.length==0&&!A.getAttribute('name')) return false;return A;};FCKXHtml.TagProcessors['script']=function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;};FCKXHtml.TagProcessors['style']=function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.innerHTML)));return A;};FCKXHtml.TagProcessors['title']=function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;};FCKXHtml.TagProcessors['table']=function(A,B){var C=A.attributes.getNamedItem('class');if (C&&FCKRegexLib.TableBorderClass.test(C.nodeValue)){var D=C.nodeValue.replace(FCKRegexLib.TableBorderClass,'');if (D.length==0) A.attributes.removeNamedItem('class');else FCKXHtml._AppendAttribute(A,'class',D);};FCKXHtml._AppendChildNodes(A,B,false);return A;};FCKXHtml.TagProcessors['ol']=FCKXHtml.TagProcessors['ul']=function(A,B,C){if (B.innerHTML.trim().length==0) return;var D=C.lastChild;if (D&&D.nodeType==3) D=D.previousSibling;if (D&&D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return;};FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['span']=function(A,B){if (B.innerHTML.length==0) return false;FCKXHtml._AppendChildNodes(A,B,false);return A;}
+FCKXHtml._GetMainXmlString=function(){var A=new XMLSerializer();return A.serializeToString(this.MainNode);};FCKXHtml._AppendAttributes=function(A,B,C){var D=B.attributes;for (var n=0;n<D.length;n++){var E=D[n];if (E.specified){var F=E.nodeName.toLowerCase();var G;if (F.startsWith('_fck')) continue;else if (F.indexOf('_moz')==0) continue;else if (F=='class') G=E.nodeValue;else if (E.nodeValue===true) G=F;else G=B.getAttribute(F,2);this._AppendAttribute(C,F,G);}}}
+var FCKCodeFormatter=new Object();FCKCodeFormatter.Init=function(){var A=this.Regex=new Object();A.BlocksOpener=/\<(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.BlocksCloser=/\<\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.NewLineTags=/\<(BR|HR)[^\>]*\>/gi;A.MainTags=/\<\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\>]*\>/gi;A.LineSplitter=/\s*\n+\s*/g;A.IncreaseIndent=/^\<(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\>]/i;A.DecreaseIndent=/^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \>]/i;A.FormatIndentatorRemove=new RegExp('^'+FCKConfig.FormatIndentator);A.ProtectedTags=/(<PRE[^>]*>)([\s\S]*?)(<\/PRE>)/gi;};FCKCodeFormatter._ProtectData=function(A,B,C,D){return B+'___FCKpd___'+FCKCodeFormatter.ProtectedData.AddItem(C)+D;};FCKCodeFormatter.Format=function(A){if (!this.Regex) this.Init();FCKCodeFormatter.ProtectedData=new Array();var B=A.replace(this.Regex.ProtectedTags,FCKCodeFormatter._ProtectData);B=B.replace(this.Regex.BlocksOpener,'\n$&');;B=B.replace(this.Regex.BlocksCloser,'$&\n');B=B.replace(this.Regex.NewLineTags,'$&\n');B=B.replace(this.Regex.MainTags,'\n$&\n');var C='';var D=B.split(this.Regex.LineSplitter);B='';for (var i=0;i<D.length;i++){var E=D[i];if (E.length==0) continue;if (this.Regex.DecreaseIndent.test(E)) C=C.replace(this.Regex.FormatIndentatorRemove,'');B+=C+E+'\n';if (this.Regex.IncreaseIndent.test(E)) C+=FCKConfig.FormatIndentator;};for (var i=0;i<FCKCodeFormatter.ProtectedData.length;i++){var F=new RegExp('___FCKpd___'+i);B=B.replace(F,FCKCodeFormatter.ProtectedData[i].replace(/\$/g,'$$$$'));};return B.trim();}
+var FCKUndo=new Object();FCKUndo.SaveUndoStep=function(){}
+var FCKEditingArea=function(A){this.TargetElement=A;this.Mode=FCK_EDITMODE_WYSIWYG;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKEditingArea_Cleanup);};FCKEditingArea.prototype.Start=function(A,B){var C=this.TargetElement;var D=FCKTools.GetElementDocument(C);while(C.childNodes.length>0) C.removeChild(C.childNodes[0]);if (this.Mode==FCK_EDITMODE_WYSIWYG){if (FCKBrowserInfo.IsGecko) A=A.replace(/(<body[^>]*>)\s*(<\/body>)/i,'$1'+GECKO_BOGUS+'$2');var E=this.IFrame=D.createElement('iframe');E.src='javascript:void(0)';E.frameBorder=0;E.width=E.height='100%';C.appendChild(E);if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');this.Window=E.contentWindow;var F=this.Document=this.Window.document;F.open();F.write(A);F.close();if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}else{var G=this.Textarea=D.createElement('textarea');G.className='SourceField';G.dir='ltr';G.style.width=G.style.height='100%';G.style.border='none';C.appendChild(G);G.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var oEditorArea=this._FCKEditingArea;oEditorArea.MakeEditable();FCKTools.RunFunction(oEditorArea.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE) A.body.contentEditable=true;else{try{A.designMode='on';A.execCommand('useCSS',false,!FCKConfig.GeckoUseSPAN);A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e) {}}};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==FCK_EDITMODE_WYSIWYG){if (FCKBrowserInfo.IsSafari) this.IFrame.focus();else this.Window.focus();}else this.Textarea.focus();}catch(e) {}};function FCKEditingArea_Cleanup(){this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}}
+var FCKDocumentProcessor=new Object();FCKDocumentProcessor._Items=new Array();FCKDocumentProcessor.AppendNew=function(){var A=new Object();this._Items.AddItem(A);return A;};FCKDocumentProcessor.Process=function(A){var B,i=0;while((B=this._Items[i++])) B.ProcessDocument(A);};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCK.EditorDocument.createElement('IMG');C.className=A;C.src=FCKConfig.FullBasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.name.length>0&&(!C.getAttribute('href')||C.getAttribute('href').length==0)){var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.style.pageBreakAfter=='always'&&C.childNodes.length==1&&C.childNodes[0].style&&C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var FCKFlashProcessor=FCKDocumentProcessor.AppendNew();FCKFlashProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('EMBED');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.src.endsWith('.swf',true)){var D=C.cloneNode(true);if (FCKBrowserInfo.IsIE){var E;if (E=C.getAttribute('scale')) D.setAttribute('scale',E);if (E=C.getAttribute('play')) D.setAttribute('play',E);if (E=C.getAttribute('loop')) D.setAttribute('loop',E);if (E=C.getAttribute('menu')) D.setAttribute('menu',E);if (E=C.getAttribute('wmode')) D.setAttribute('wmode',E);if (E=C.getAttribute('quality')) D.setAttribute('quality',E);};var F=FCKDocumentProcessor_CreateFakeImage('FCK__Flash',D);F.setAttribute('_fckflash','true',0);FCKFlashProcessor.RefreshView(F,C);C.parentNode.insertBefore(F,C);C.parentNode.removeChild(C);}}};FCKFlashProcessor.RefreshView=function(A,B){if (B.width>0) A.style.width=FCKTools.ConvertHtmlSizeToStyle(B.width);if (B.height>0) A.style.height=FCKTools.ConvertHtmlSizeToStyle(B.height);};FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length>0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length>0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;};
+var FCK_StartupValue;FCK.Events=new FCKEvents(FCK);FCK.Toolbar=null;FCK.HasFocus=false;FCK.StartEditor=function(){FCK.TempBaseTag=FCKConfig.BaseHref.length>0?'<base href="'+FCKConfig.BaseHref+'" _fcktemp="true"></base>':'';FCK.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.SetHTML(FCKTools.GetLinkedFieldValue());};FCK.Focus=function(){FCK.EditingArea.Focus();};FCK.SetStatus=function(A){this.Status=A;if (A==FCK_STATUS_ACTIVE){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);};FCK.GetHTML=FCK.GetXHTML=function(A){if (FCK.EditMode==FCK_EDITMODE_SOURCE) return FCK.EditingArea.Textarea.value;var B;var C=FCK.EditorDocument;if (FCKConfig.FullPage) B=FCKXHtml.GetXHTML(C.getElementsByTagName('html')[0],true,A);else{if (FCKConfig.IgnoreEmptyParagraphValue&&C.body.innerHTML=='<P>&nbsp;</P>') B='';else B=FCKXHtml.GetXHTML(C.body,false,A);};B=FCK.ProtectEventsRestore(B);if (FCKBrowserInfo.IsIE) B=B.replace(FCKRegexLib.ToReplace,'$1');if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) B=FCK.DocTypeDeclaration+'\n'+B;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) B=FCK.XmlDeclaration+'\n'+B;return FCKConfig.ProtectedSource.Revert(B);};FCK.UpdateLinkedField=function(){FCK.LinkedField.value=FCK.GetXHTML(FCKConfig.FormatOutput);FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');};FCK.RegisteredDoubleClickHandlers=new Object();FCK.OnDoubleClick=function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName];if (B) B(A);};FCK.RegisterDoubleClickHandler=function(A,B){FCK.RegisteredDoubleClickHandlers[B.toUpperCase()]=A;};FCK.OnAfterSetHTML=function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCKUndo.SaveUndoStep();FCK.Events.FireEvent('OnSelectionChange');FCK.Events.FireEvent('OnAfterSetHTML');};FCK.ProtectUrls=function(A){A=A.replace(FCKRegexLib.ProtectUrlsA,'$1$4$2$3$5$2 _fcksavedurl=$2$3$5$2');A=A.replace(FCKRegexLib.ProtectUrlsImg,'$1$4$2$3$5$2 _fcksavedurl=$2$3$5$2');return A;};FCK.ProtectEvents=function(A){return A.replace(FCKRegexLib.TagsWithEvent,_FCK_ProtectEvents_ReplaceTags);};function _FCK_ProtectEvents_ReplaceTags(tagMatch){return tagMatch.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(eventMatch,attName){return ' '+attName+'_fckprotectedatt="'+eventMatch.ReplaceAll([/&/g,/'/g,/"/g,/=/g,/</g,/>/g,/\r/g,/\n/g],['&apos;','&#39;','&quot;','&#61;','&lt;','&gt;','&#10;','&#13;'])+'"';};FCK.ProtectEventsRestore=function(A){return A.replace(FCKRegexLib.ProtectedEvents,_FCK_ProtectEvents_RestoreEvents);};function _FCK_ProtectEvents_RestoreEvents(match,encodedOriginal){return encodedOriginal.ReplaceAll([/&#39;/g,/&quot;/g,/&#61;/g,/&lt;/g,/&gt;/g,/&#10;/g,/&#13;/g,/&apos;/g],["'",'"','=','<','>','\r','\n','&']);};FCK.IsDirty=function(){return (FCK_StartupValue!=FCK.EditorDocument.body.innerHTML);};FCK.ResetIsDirty=function(){if (FCK.EditorDocument.body) FCK_StartupValue=FCK.EditorDocument.body.innerHTML;};FCK.SetHTML=function(A){this.EditingArea.Mode=FCK.EditMode;if (FCK.EditMode==FCK_EDITMODE_WYSIWYG){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);if (FCKBrowserInfo.IsGecko){A=A.replace(FCKRegexLib.StrongOpener,'<b$1');A=A.replace(FCKRegexLib.StrongCloser,'<\/b>');A=A.replace(FCKRegexLib.EmOpener,'<i$1');A=A.replace(FCKRegexLib.EmCloser,'<\/i>');}else if (FCKBrowserInfo.IsIE){A=A.replace(FCKRegexLib.AbbrOpener,'<FCK:abbr$1');A=A.replace(FCKRegexLib.AbbrCloser,'<\/FCK:abbr>');};var B='';if (FCKConfig.FullPage){if (!FCKRegexLib.HeadOpener.test(A)){if (!FCKRegexLib.HtmlOpener.test(A)) A='<html dir="'+FCKConfig.ContentLangDirection+'">'+A+'</html>';A=A.replace(FCKRegexLib.HtmlOpener,'$&<head></head>');};FCK.DocTypeDeclaration=A.match(FCKRegexLib.DocTypeTag);if (FCKBrowserInfo.IsIE) B=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) B='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';B+='<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css'+'" rel="stylesheet" type="text/css" _fcktemp="true" />';B=A.replace(FCKRegexLib.HeadCloser,B+'$&');if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) B=B.replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);}else{B=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"';if (FCKBrowserInfo.IsIE&&!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) B+=' style="overflow-y: scroll"';B+='><head><title></title>'+this._GetEditorAreaStyleTags()+'<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css'+'" rel="stylesheet" type="text/css" _fcktemp="true" />';if (FCKBrowserInfo.IsIE) B+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) B+='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';B+=FCK.TempBaseTag;B+='</head><body>';if (FCKBrowserInfo.IsGecko&&(A.length==0||FCKRegexLib.EmptyParagraph.test(A))) B+=GECKO_BOGUS;else B+=A;B+='</body></html>';};this.EditingArea.OnLoad=FCK_EditingArea_OnLoad;this.EditingArea.Start(B);}else{this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;};if (FCKBrowserInfo.IsGecko) window.onresize();};function FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;FCK.InitializeBehaviors();FCK.OnAfterSetHTML();if (FCK.Status!=FCK_STATUS_NOTLOADED) return;FCK.ResetIsDirty();FCKTools.AttachToLinkedFieldFormSubmit(FCK.UpdateLinkedField);FCK.SetStatus(FCK_STATUS_ACTIVE);};FCK._GetEditorAreaStyleTags=function(){var A='';var B=FCKConfig.EditorAreaCSS;for (var i=0;i<B.length;i++) A+='<link href="'+B[i]+'" rel="stylesheet" type="text/css" />';return A;};var FCKFocusManager=FCK.FocusManager=new Object();FCKFocusManager.IsLocked=false;FCK.HasFocus=false;FCKFocusManager.AddWindow=function(A,B){var C;if (FCKBrowserInfo.IsIE) C=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else C=A.document;FCKTools.AddEventListener(C,'blur',FCKFocusManager_Win_OnBlur);FCKTools.AddEventListener(C,'focus',B?FCKFocusManager_Win_OnFocus_Area:FCKFocusManager_Win_OnFocus);};FCKFocusManager.RemoveWindow=function(A){if (FCKBrowserInfo.IsIE) oTarget=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else oTarget=A.document;FCKTools.RemoveEventListener(oTarget,'blur',FCKFocusManager_Win_OnBlur);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus_Area);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus);};FCKFocusManager.Lock=function(){this.IsLocked=true;};FCKFocusManager.Unlock=function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;};FCKFocusManager._ResetTimer=function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}};function FCKFocusManager_Win_OnBlur(){if (typeof(FCK)!='undefined'&&FCK.HasFocus){FCKFocusManager._ResetTimer();FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);}};function FCKFocusManager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent("OnBlur");}};function FCKFocusManager_Win_OnFocus_Area(){FCKFocusManager_Win_OnFocus();FCK.Focus();};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&&!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent("OnFocus");}}
+FCK.Description="FCKeditor for Gecko Browsers";FCK.InitializeBehaviors=function(){Window_OnResize();FCKFocusManager.AddWindow(this.EditorWindow);var A=function(e){var B;if (e.ctrlKey&&!e.shiftKey&&!e.altKey){switch (e.which){case 66:case 98:FCK.ExecuteNamedCommand('bold');B=true;break;case 105:case 73:FCK.ExecuteNamedCommand('italic');B=true;break;case 117:case 85:FCK.ExecuteNamedCommand('underline');B=true;break;case 86:case 118:B=(FCK.Status!=FCK_STATUS_COMPLETE||!FCK.Events.FireEvent("OnPaste"));break;}}else if (e.shiftKey&&!e.ctrlKey&&!e.altKey&&e.keyCode==45) B=(FCK.Status!=FCK_STATUS_COMPLETE||!FCK.Events.FireEvent("OnPaste"));if (B){e.preventDefault();e.stopPropagation();}};this.EditorDocument.addEventListener('keypress',A,true);this.ExecOnSelectionChange=function(){FCK.Events.FireEvent("OnSelectionChange");};this.ExecOnSelectionChangeTimer=function(){if (FCK.LastOnChangeTimer) window.clearTimeout(FCK.LastOnChangeTimer);FCK.LastOnChangeTimer=window.setTimeout(FCK.ExecOnSelectionChange,100);};this.EditorDocument.addEventListener('mouseup',this.ExecOnSelectionChange,false);this.EditorDocument.addEventListener('keyup',this.ExecOnSelectionChangeTimer,false);this._DblClickListener=function(e){FCK.OnDoubleClick(e.target);e.stopPropagation();};this.EditorDocument.addEventListener('dblclick',this._DblClickListener,true);FCK.ContextMenu._InnerContextMenu.SetMouseClickWindow(FCK.EditorWindow);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument);};FCK.MakeEditable=function(){this.EditingArea.MakeEditable();};function Document_OnContextMenu(e){if (!e.target._FCKShowContextMenu) e.preventDefault();};document.oncontextmenu=Document_OnContextMenu;
+FCK.RedirectNamedCommands=new Object();FCK.ExecuteNamedCommand=function(A,B,C){FCKUndo.SaveUndoStep();if (!C&&FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};FCKUndo.SaveUndoStep();};FCK.GetNamedCommandState=function(A){try{if (!FCK.EditorDocument.queryCommandEnabled(A)) return FCK_TRISTATE_DISABLED;else return FCK.EditorDocument.queryCommandState(A)?FCK_TRISTATE_ON:FCK_TRISTATE_OFF;}catch (e){return FCK_TRISTATE_OFF;}};FCK.GetNamedCommandValue=function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==FCK_TRISTATE_DISABLED) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';};FCK.PasteFromWord=function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');};FCK.Preview=function(){var A=FCKConfig.ScreenWidth*0.8;var B=FCKConfig.ScreenHeight*0.7;var C=(FCKConfig.ScreenWidth-A)/2;var D=window.open('',null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+A+',height='+B+',left='+C);var E;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) E=FCK.TempBaseTag+FCK.GetXHTML();else E=FCK.GetXHTML();}else{E=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'">'+'<head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+FCK._GetEditorAreaStyleTags()+'</head><body>'+FCK.GetXHTML()+'</body></html>';};D.document.write(E);D.document.close();};FCK.SwitchEditMode=function(A){var B=(FCK.EditMode==FCK_EDITMODE_WYSIWYG);var C;if (B){if (!A&&FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();C=FCK.GetXHTML(FCKConfig.FormatSource);}else C=this.EditingArea.Textarea.value;FCK.EditMode=B?FCK_EDITMODE_SOURCE:FCK_EDITMODE_WYSIWYG;FCK.SetHTML(C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);};FCK.CreateElement=function(A){var e=FCK.EditorDocument.createElement(A);return FCK.InsertElementAndGetIt(e);};FCK.InsertElementAndGetIt=function(e){e.setAttribute('FCKTempLabel','true');this.InsertElement(e);var A=FCK.EditorDocument.getElementsByTagName(e.tagName);for (var i=0;i<A.length;i++){if (A[i].getAttribute('FCKTempLabel')){A[i].removeAttribute('FCKTempLabel');return A[i];}};return null;};
+FCK._BaseGetNamedCommandState=FCK.GetNamedCommandState;FCK.GetNamedCommandState=function(A){switch (A){case 'Unlink':return FCKSelection.HasAncestorNode('A')?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;default:return FCK._BaseGetNamedCommandState(A);}};FCK.RedirectNamedCommands={Print:true,Paste:true,Cut:true,Copy:true};FCK.ExecuteRedirectedNamedCommand=function(A,B){switch (A){case 'Print':FCK.EditorWindow.print();break;case 'Paste':try			{ if (FCK.Paste()) FCK.ExecuteNamedCommand('Paste',null,true);}catch (e)	{ alert(FCKLang.PasteErrorPaste);};break;case 'Cut':try			{ FCK.ExecuteNamedCommand('Cut',null,true);}catch (e)	{ alert(FCKLang.PasteErrorCut);};break;case 'Copy':try			{ FCK.ExecuteNamedCommand('Copy',null,true);}catch (e)	{ alert(FCKLang.PasteErrorCopy);};break;default:FCK.ExecuteNamedCommand(A,B);}};FCK.AttachToOnSelectionChange=function(A){this.Events.AttachEvent('OnSelectionChange',A);};FCK.Paste=function(){if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;}else return true;};FCK.InsertHtml=function(A){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectUrls(A);var B=FCKSelection.Delete();var C=B.getRangeAt(0);var D=C.createContextualFragment(A);var E=D.lastChild;C.insertNode(D);FCKSelection.SelectNode(E);FCKSelection.Collapse(false);this.Focus();};FCK.InsertElement=function(A){var B=FCKSelection.Delete();var C=B.getRangeAt(0);C.insertNode(A);FCKSelection.SelectNode(A);FCKSelection.Collapse(false);this.Focus();};FCK.PasteAsPlainText=function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText');};FCK.GetClipboardHTML=function(){return '';};FCK.CreateLink=function(A){FCK.ExecuteNamedCommand('Unlink');if (A.length>0){var B='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',B);var C=document.evaluate("//a[@href='"+B+"']",this.EditorDocument.body,null,9,null).singleNodeValue;if (C){C.href=A;return C;}}};
+var FCKSelection=FCK.Selection=new Object();
+FCKSelection.GetType=function(){this._Type='Text';var A;try { A=FCK.EditorWindow.getSelection();}catch (e) {};if (A&&A.rangeCount==1){var B=A.getRangeAt(0);if (B.startContainer==B.endContainer&&(B.endOffset-B.startOffset)==1&&B.startContainer.nodeType!=Node.TEXT_NODE) this._Type='Control';};return this._Type;};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=FCK.EditorWindow.getSelection();return A.anchorNode.childNodes[A.anchorOffset];}};FCKSelection.GetParentElement=function(){if (this.GetType()=='Control') return FCKSelection.GetSelectedElement().parentNode;else{var A=FCK.EditorWindow.getSelection();if (A){var B=A.anchorNode;while (B&&B.nodeType!=1) B=B.parentNode;return B;}}};FCKSelection.SelectNode=function(A){var B=FCK.EditorDocument.createRange();B.selectNode(A);var C=FCK.EditorWindow.getSelection();C.removeAllRanges();C.addRange(B);};FCKSelection.Collapse=function(A){var B=FCK.EditorWindow.getSelection();if (A==null||A===true) B.collapseToStart();else B.collapseToEnd();};FCKSelection.HasAncestorNode=function(A){var B=this.GetSelectedElement();if (!B&&FCK.EditorWindow){try		{ B=FCK.EditorWindow.getSelection().getRangeAt(0).startContainer;}catch(e){}};while (B){if (B.nodeType==1&&B.tagName==A) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B;var C=this.GetSelectedElement();if (!C) C=FCK.EditorWindow.getSelection().getRangeAt(0).startContainer;while (C){if (C.tagName==A) return C;C=C.parentNode;};return null;};FCKSelection.Delete=function(){var A=FCK.EditorWindow.getSelection();for (var i=0;i<A.rangeCount;i++){A.getRangeAt(i).deleteContents();};return A;};
+var FCKTableHandler=new Object();FCKTableHandler.InsertRow=function(){var A=FCKSelection.MoveToAncestorNode("TR");if (!A) return;var B=A.cloneNode(true);A.parentNode.insertBefore(B,A);FCKTableHandler.ClearRow(A);};FCKTableHandler.DeleteRows=function(A){if (!A) A=FCKSelection.MoveToAncestorNode("TR");if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');if (B.rows.length==1){FCKTableHandler.DeleteTable(B);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){var A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode("TABLE");};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(){var A=FCKSelection.MoveToAncestorNode("TD");if (!A) A=FCKSelection.MoveToAncestorNode("TH");if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex+1;for (var i=0;i<B.rows.length;i++){var D=B.rows[i];if (D.cells.length<C) continue;A=D.cells[C-1].cloneNode(false);if (FCKBrowserInfo.IsGecko) A.innerHTML=GECKO_BOGUS;var E=D.cells[C];if (E) D.insertBefore(A,E);else D.appendChild(A);}};FCKTableHandler.DeleteColumns=function(){var A=FCKSelection.MoveToAncestorNode('TD')||FCKSelection.MoveToAncestorNode('TH');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex;for (var i=B.rows.length-1;i>=0;i--){var D=B.rows[i];if (C==0&&D.cells.length==1){FCKTableHandler.DeleteRows(D);continue;};if (D.cells[C]) D.removeChild(D.cells[C]);}};FCKTableHandler.InsertCell=function(A){var B=A?A:FCKSelection.MoveToAncestorNode("TD");if (!B) return;var C=FCK.EditorDocument.createElement("TD");if (FCKBrowserInfo.IsGecko) C.innerHTML=GECKO_BOGUS;if (B.cellIndex==B.parentNode.cells.length-1){B.parentNode.appendChild(C);}else{B.parentNode.insertBefore(C,B.nextSibling);};return C;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i>=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler.MergeCells=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length<2) return;if (A[0].parentNode!=A[A.length-1].parentNode) return;var B=isNaN(A[0].colSpan)?1:A[0].colSpan;var C='';var D=FCK.EditorDocument.createDocumentFragment();for (var i=A.length-1;i>=0;i--){var E=A[i];for (var c=E.childNodes.length-1;c>=0;c--){var F=E.removeChild(E.childNodes[c]);if ((F.hasAttribute&&F.hasAttribute('_moz_editor_bogus_node'))||(F.getAttribute&&F.getAttribute('type',2)=='_moz')) continue;D.insertBefore(F,D.firstChild);};if (i>0){B+=isNaN(E.colSpan)?1:E.colSpan;FCKTableHandler.DeleteCell(E);}};A[0].colSpan=B;if (FCKBrowserInfo.IsGecko&&D.childNodes.length==0) A[0].innerHTML=GECKO_BOGUS;else A[0].appendChild(D);};FCKTableHandler.SplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=FCKTableHandler._GetCellIndexSpan(B,A[0].parentNode.rowIndex,A[0]);var D=this._GetCollumnCells(B,C);for (var i=0;i<D.length;i++){if (D[i]==A[0]){var E=this.InsertCell(A[0]);if (!isNaN(A[0].rowSpan)&&A[0].rowSpan>1) E.rowSpan=A[0].rowSpan;}else{if (isNaN(D[i].colSpan)) D[i].colSpan=2;else D[i].colSpan+=1;}}};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length<B+1) return null;var D=A[B];for (var c=0;c<D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCollumnCells=function(A,B){var C=new Array();for (var r=0;r<A.length;r++){var D=A[r][B];if (D&&(C.length==0||C[C.length-1]!=D)) C[C.length]=D;};return C;};FCKTableHandler._CreateTableMap=function(A){var B=A.rows;var r=-1;var C=new Array();for (var i=0;i<B.length;i++){r++;if (!C[r]) C[r]=new Array();var c=-1;for (var j=0;j<B[i].cells.length;j++){var D=B[i].cells[j];c++;while (C[r][c]) c++;var E=isNaN(D.colSpan)?1:D.colSpan;var F=isNaN(D.rowSpan)?1:D.rowSpan;for (var G=0;G<F;G++){if (!C[r+G]) C[r+G]=new Array();for (var H=0;H<E;H++){C[r+G][c+H]=B[i].cells[j];}};c+=E-1;}};return C;};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i<B.length;i++){if (FCKBrowserInfo.IsGecko) B[i].innerHTML=GECKO_BOGUS;else B[i].innerHTML='';}};
+FCKTableHandler.GetSelectedCells=function(){var A=new Array();var B=FCK.EditorWindow.getSelection();if (B.rangeCount==1&&B.anchorNode.nodeType==3){var C=FCKTools.GetElementAscensor(B.anchorNode,'TD,TH');if (C){A[0]=C;return A;}};for (var i=0;i<B.rangeCount;i++){var D=B.getRangeAt(i);var E;if (D.startContainer.tagName.Equals('TD','TH')) E=D.startContainer;else E=D.startContainer.childNodes[D.startOffset];if (E.tagName.Equals('TD','TH')) A[A.length]=E;};return A;};
+var FCKXml=function(){};FCKXml.prototype.LoadUrl=function(A){var B=this;var C=FCKTools.CreateXmlObject('XmlHttp');C.open("GET",A,false);C.send(null);if (C.status==200||C.status==304) this.DOMDocument=C.responseXML;else if (C.status==0&&C.readyState==4) this.DOMDocument=C.responseXML;else alert('Error loading "'+A+'"');};FCKXml.prototype.SelectNodes=function(A,B){var C=new Array();var D=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);if (D){var E=D.iterateNext();while(E){C[C.length]=E;E=D.iterateNext();}};return C;};FCKXml.prototype.SelectSingleNode=function(A,B){var C=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),9,null);if (C&&C.singleNodeValue) return C.singleNodeValue;else return null;}
+var FCKStyleDef=function(A,B){this.Name=A;this.Element=B.toUpperCase();this.IsObjectElement=FCKRegexLib.ObjectElements.test(this.Element);this.Attributes=new Object();};FCKStyleDef.prototype.AddAttribute=function(A,B){this.Attributes[A]=B;};FCKStyleDef.prototype.GetOpenerTag=function(){var s='<'+this.Element;for (var a in this.Attributes) s+=' '+a+'="'+this.Attributes[a]+'"';return s+'>';};FCKStyleDef.prototype.GetCloserTag=function(){return '</'+this.Element+'>';};FCKStyleDef.prototype.RemoveFromSelection=function(){if (FCKSelection.GetType()=='Control') this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement());else this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetParentElement());}
+FCKStyleDef.prototype.ApplyToSelection=function(){if (FCKSelection.GetType()=='Text'&&!this.IsObjectElement){var A=FCK.ToolbarSet.CurrentInstance.EditorWindow.getSelection();var e=FCK.ToolbarSet.CurrentInstance.EditorDocument.createElement(this.Element);for (var i=0;i<A.rangeCount;i++){e.appendChild(A.getRangeAt(i).extractContents());};this._AddAttributes(e);this._RemoveDuplicates(e);var B=A.getRangeAt(0);B.insertNode(e);}else{var C=FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement();if (C.tagName==this.Element) this._AddAttributes(C);}};FCKStyleDef.prototype._AddAttributes=function(A){for (var a in this.Attributes){switch (a.toLowerCase()){case 'src':A.setAttribute('_fcksavedurl',this.Attributes[a],0);default:A.setAttribute(a,this.Attributes[a],0);}}};FCKStyleDef.prototype._RemoveDuplicates=function(A){for (var i=0;i<A.childNodes.length;i++){var B=A.childNodes[i];if (B.nodeType!=1) continue;this._RemoveDuplicates(B);if (this.IsEqual(B)) FCKTools.RemoveOuterTags(B);}};FCKStyleDef.prototype.IsEqual=function(e){if (e.tagName!=this.Element) return false;for (var a in this.Attributes){if (e.getAttribute(a)!=this.Attributes[a]) return false;};return true;};FCKStyleDef.prototype._RemoveMe=function(A){if (!A) return;var B=A.parentNode;if (A.nodeType==1&&this.IsEqual(A)){if (this.IsObjectElement){for (var a in this.Attributes) A.removeAttribute(a,0);return;}else FCKTools.RemoveOuterTags(A);};this._RemoveMe(B);}
+var FCKStylesLoader=function(){this.Styles=new Object();this.StyleGroups=new Object();this.Loaded=false;this.HasObjectElements=false;};FCKStylesLoader.prototype.Load=function(A){var B=new FCKXml();B.LoadUrl(A);var C=B.SelectNodes('Styles/Style');for (var i=0;i<C.length;i++){var D=C[i].attributes.getNamedItem('element').value.toUpperCase();var E=new FCKStyleDef(C[i].attributes.getNamedItem('name').value,D);if (E.IsObjectElement) this.HasObjectElements=true;var F=B.SelectNodes('Attribute',C[i]);for (var j=0;j<F.length;j++){var G=F[j].attributes.getNamedItem('name').value;var H=F[j].attributes.getNamedItem('value').value;if (G.toLowerCase()=='style'){var I=document.createElement('SPAN');I.style.cssText=H;H=I.style.cssText;};E.AddAttribute(G,H);};this.Styles[E.Name]=E;var J=this.StyleGroups[D];if (J==null){this.StyleGroups[D]=new Array();J=this.StyleGroups[D];};J[J.length]=E;};this.Loaded=true;}
+var FCKNamedCommand=function(A){this.Name=A;};FCKNamedCommand.prototype.Execute=function(){FCK.ExecuteNamedCommand(this.Name);};FCKNamedCommand.prototype.GetState=function(){return FCK.GetNamedCommandState(this.Name);};
+var FCKDialogCommand=function(A,B,C,D,E,F,G){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.GetStateFunction=F;this.GetStateParam=G;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return FCK_TRISTATE_OFF;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKFontNameCommand=function(){this.Name='FontName';};FCKFontNameCommand.prototype.Execute=function(A){if (A==null||A==""){}else FCK.ExecuteNamedCommand('FontName',A);};FCKFontNameCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontName');};var FCKFontSizeCommand=function(){this.Name='FontSize';};FCKFontSizeCommand.prototype.Execute=function(A){if (typeof(A)=='string') A=parseInt(A);if (A==null||A==''){FCK.ExecuteNamedCommand('FontSize',3);}else FCK.ExecuteNamedCommand('FontSize',A);};FCKFontSizeCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontSize');};var FCKFormatBlockCommand=function(){this.Name='FormatBlock';};FCKFormatBlockCommand.prototype.Execute=function(A){if (A==null||A=='') FCK.ExecuteNamedCommand('FormatBlock','<P>');else if (A=='div'&&FCKBrowserInfo.IsGecko) FCK.ExecuteNamedCommand('FormatBlock','div');else FCK.ExecuteNamedCommand('FormatBlock','<'+A+'>');};FCKFormatBlockCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FormatBlock');};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.LinkedField.form;if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&&B===false) return;};A.submit();};FCKSaveCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetHTML('');FCKUndo.Typing=true;};FCKNewPageCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKConfig.SourcePopup){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==FCK_EDITMODE_WYSIWYG?FCK_TRISTATE_OFF:FCK_TRISTATE_ON);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Undo();else FCK.ExecuteNamedCommand('Undo');};FCKUndoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckUndoState()?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED);else return FCK.GetNamedCommandState('Undo');};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Redo();else FCK.ExecuteNamedCommand('Redo');};FCKRedoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckRedoState()?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED);else return FCK.GetNamedCommandState('Redo');};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='<span style="DISPLAY:none">&nbsp;</span>';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);A=FCK.InsertElement(A);};FCKPageBreakCommand.prototype.GetState=function(){return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsGecko){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCK.Selection.SelectNode(A);};FCK.ExecuteNamedCommand(this.Name);if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);};FCKUnlinkCommand.prototype.GetState=function(){return FCK.GetNamedCommandState(this.Name);}
+var FCKSpellCheckCommand=function(){this.Name='SpellCheck';this.IsEnabled=(FCKConfig.SpellChecker=='SpellerPages');};FCKSpellCheckCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','dialog/fck_spellerpages.html',440,480);};FCKSpellCheckCommand.prototype.GetState=function(){return this.IsEnabled?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;}
+var FCKTextColorCommand=function(A){this.Name=A=='ForeColor'?'TextColor':'BGColor';this.Type=A;var B;if (FCKBrowserInfo.IsIE) B=window;else if (FCK.ToolbarSet._IFrame) B=FCKTools.GetElementWindow(FCK.ToolbarSet._IFrame);else B=window.parent;this._Panel=new FCKPanel(B,true);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCKTools.DisableSelection(this._Panel.Document.body);};FCKTextColorCommand.prototype.Execute=function(A,B,C){FCK._ActiveColorPanelType=this.Type;this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){if (FCK._ActiveColorPanelType=='ForeColor') FCK.ExecuteNamedCommand('ForeColor',A);else if (FCKBrowserInfo.IsGeckoLike){if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,false);FCK.ExecuteNamedCommand('hilitecolor',A);if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,true);}else FCK.ExecuteNamedCommand('BackColor',A);delete FCK._ActiveColorPanelType;};FCKTextColorCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};function FCKTextColorCommand_OnMouseOver()	{ this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut()	{ this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(){this.className='ColorDeselected';this.Command.SetColor('#'+this.Color);this.Command._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(){this.className='ColorDeselected';this.Command.SetColor('');this.Command._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(){this.className='ColorDeselected';this.Command._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',400,330,this.Command.SetColor);};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement("DIV");C.className='ColorDeselected';C.onmouseover=FCKTextColorCommand_OnMouseOver;C.onmouseout=FCKTextColorCommand_OnMouseOut;return C;};var D=B.appendChild(A.createElement("TABLE"));D.className='ForceBaseFont';D.style.tableLayout='fixed';D.cellPadding=0;D.cellSpacing=0;D.border=0;D.width=150;var E=D.insertRow(-1).insertCell(-1);E.colSpan=8;var C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table cellspacing="0" cellpadding="0" width="100%" border="0">\<tr>\<td><div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #000000"></div></div></td>\<td nowrap width="100%" align="center">' + FCKLang.ColorAutomatic + '</td>\</tr>\</table>';C.Command=this;C.onclick=FCKTextColorCommand_AutoOnClick;var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H<G.length){var I=D.insertRow(-1);for (var i=0;i<8&&H<G.length;i++,H++){C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.Color=G[H];C.innerHTML='<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #'+G[H]+'"></div></div>';C.Command=this;C.onclick=FCKTextColorCommand_OnClick;}};E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td nowrap align="center">'+FCKLang.ColorMoreColors+'</td></tr></table>';C.Command=this;C.onclick=FCKTextColorCommand_MoreOnClick;}
+var FCKPastePlainTextCommand=function(){this.Name='PasteText';};FCKPastePlainTextCommand.prototype.Execute=function(){FCK.PasteAsPlainText();};FCKPastePlainTextCommand.prototype.GetState=function(){return FCK.GetNamedCommandState('Paste');};
+var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCKConfig.ForcePasteAsPlainText) return FCK_TRISTATE_DISABLED;else return FCK.GetNamedCommandState('Paste');};
+var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();switch (this.Name){case 'TableInsertRow':FCKTableHandler.InsertRow();break;case 'TableDeleteRows':FCKTableHandler.DeleteRows();break;case 'TableInsertColumn':FCKTableHandler.InsertColumn();break;case 'TableDeleteColumns':FCKTableHandler.DeleteColumns();break;case 'TableInsertCell':FCKTableHandler.InsertCell();break;case 'TableDeleteCells':FCKTableHandler.DeleteCells();break;case 'TableMergeCells':FCKTableHandler.MergeCells();break;case 'TableSplitCell':FCKTableHandler.SplitCell();break;case 'TableDelete':FCKTableHandler.DeleteTable();break;default:alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;}
+var FCKStyleCommand=function(){this.Name='Style';this.StylesLoader=new FCKStylesLoader();this.StylesLoader.Load(FCKConfig.StylesXmlPath);this.Styles=this.StylesLoader.Styles;};FCKStyleCommand.prototype.Execute=function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) B.Style.RemoveFromSelection();else B.Style.ApplyToSelection();FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent("OnSelectionChange");};FCKStyleCommand.prototype.GetState=function(){if (!FCK.EditorDocument) return FCK_TRISTATE_DISABLED;var A=FCK.EditorDocument.selection;if (FCKSelection.GetType()=='Control'){var e=FCKSelection.GetSelectedElement();if (e) return this.StylesLoader.StyleGroups[e.tagName]?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;};return FCK_TRISTATE_OFF;};FCKStyleCommand.prototype.GetActiveStyles=function(){var A=new Array();if (FCKSelection.GetType()=='Control') this._CheckStyle(FCKSelection.GetSelectedElement(),A,false);else this._CheckStyle(FCKSelection.GetParentElement(),A,true);return A;};FCKStyleCommand.prototype._CheckStyle=function(A,B,C){if (!A) return;if (A.nodeType==1){var D=this.StylesLoader.StyleGroups[A.tagName];if (D){for (var i=0;i<D.length;i++){if (D[i].IsEqual(A)) B[B.length]=D[i];}}};if (C) this._CheckStyle(A.parentNode,B,C);}
+var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);var G=A;while(G=G.parentNode){if (G.nodeType==1) G._fckSavedStyles=FCKTools.SaveStyles(G);};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var H=FCKTools.GetViewPaneSize(C);B.position="absolute";B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=H.Width+"px";B.height=H.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent("onresize",FCKFitWindow_Resize);else C.removeEventListener("resize",FCKFitWindow_Resize,true);var G=A;while(G=G.parentNode){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();FCK.EditingArea.MakeEditable();FCK.Focus();};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return FCK_TRISTATE_DISABLED;else return (this.IsMaximized?FCK_TRISTATE_ON:FCK_TRISTATE_OFF);};function FCKFitWindow_Resize(){var oViewPaneSize=FCKTools.GetViewPaneSize(parent);var eEditorFrameStyle=window.frameElement.style;eEditorFrameStyle.width=oViewPaneSize.Width+'px';eEditorFrameStyle.height=oViewPaneSize.Height+'px';};
+var FCKCommands=FCK.Commands=new Object();FCKCommands.LoadedCommands=new Object();FCKCommands.RegisterCommand=function(A,B){this.LoadedCommands[A]=B;};FCKCommands.GetCommand=function(A){var B=FCKCommands.LoadedCommands[A];if (B) return B;switch (A){case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,390,FCKCommands.GetFullPageState);break;case 'Templates':B=new FCKDialogCommand('Templates',FCKLang.DlgTemplatesTitle,'dialog/fck_template.html',380,450);break;case 'Link':B=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,330,FCK.GetNamedCommandState,'CreateLink');break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,170);break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html',370,170);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html',370,170);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',400,330);break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindTitle,'dialog/fck_find.html',340,170);break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgReplaceTitle,'dialog/fck_replace.html',340,200);break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,400);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,400);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,320);break;case 'Smiley':B=new FCKDialogCommand('Smiley',FCKLang.DlgSmileyTitle,'dialog/fck_smiley.html',FCKConfig.SmileyWindowWidth,FCKConfig.SmileyWindowHeight);break;case 'Table':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html',450,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',400,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',550,250);break;case 'UniversalKey':B=new FCKDialogCommand('UniversalKey',FCKLang.UniversalKeyboard,'dialog/fck_universalkey.html',415,300);break;case 'Style':B=new FCKStyleCommand();break;case 'FontName':B=new FCKFontNameCommand();break;case 'FontSize':B=new FCKFontSizeCommand();break;case 'FontFormat':B=new FCKFormatBlockCommand();break;case 'Source':B=new FCKSourceCommand();break;case 'Preview':B=new FCKPreviewCommand();break;case 'Save':B=new FCKSaveCommand();break;case 'NewPage':B=new FCKNewPageCommand();break;case 'PageBreak':B=new FCKPageBreakCommand();break;case 'TextColor':B=new FCKTextColorCommand('ForeColor');break;case 'BGColor':B=new FCKTextColorCommand('BackColor');break;case 'PasteText':B=new FCKPastePlainTextCommand();break;case 'PasteWord':B=new FCKPasteWordCommand();break;case 'TableInsertRow':B=new FCKTableCommand('TableInsertRow');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumn':B=new FCKTableCommand('TableInsertColumn');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCell':B=new FCKTableCommand('TableInsertCell');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableSplitCell':B=new FCKTableCommand('TableSplitCell');break;case 'TableDelete':B=new FCKTableCommand('TableDelete');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,230);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,230);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,230);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,230);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,230);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,230);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,230);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,380);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,400);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'FitWindow':B=new FCKFitWindow();break;case 'Undo':B=new FCKUndoCommand();break;case 'Redo':B=new FCKRedoCommand();break;case 'Undefined':B=new FCKUndefinedCommand();break;default:if (FCKRegexLib.NamedCommands.test(A)) B=new FCKNamedCommand(A);else{alert(FCKLang.UnknownCommand.replace(/%1/g,A));return null;}};FCKCommands.LoadedCommands[A]=B;return B;};FCKCommands.GetFullPageState=function(){return FCKConfig.FullPage?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;};
+var FCKPanel=function(A){this.IsRTL=(FCKLang.Dir=='rtl');this.IsContextMenu=false;this._LockCounter=0;this._Window=A||window;var B;if (FCKBrowserInfo.IsIE){this._Popup=this._Window.createPopup();B=this.Document=this._Popup.document;}else{var C=this._IFrame=this._Window.document.createElement('iframe');C.src='javascript:void(0)';C.allowTransparency=true;C.frameBorder='0';C.scrolling='no';C.style.position='absolute';C.style.zIndex=FCKConfig.FloatingPanelsZIndex;C.width=C.height=0;if (this._Window==window.parent&&window.frameElement) window.frameElement.parentNode.insertBefore(C,window.frameElement);else this._Window.document.body.appendChild(C);var D=C.contentWindow;B=this.Document=D.document;B.open();B.write('<html><head></head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();FCKTools.AddEventListenerEx(D,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(D,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;B.oncontextmenu=FCKTools.CancelEvent;this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.Show=function(x,y,A,B,C){if (this._Popup){this._Popup.show(x,y,0,0,A);this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';var D=this.MainNode.offsetWidth;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};this._Popup.show(x,y,D,this.MainNode.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Lock();if (this.ParentPanel) this.ParentPanel.Lock();this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';var D=this.MainNode.offsetWidth;if (!B)	this._IFrame.width=1;if (!C)	this._IFrame.height=1;D=this.MainNode.offsetWidth;var F=FCKTools.GetElementPosition((A.nodeType==9?A.body:A),this._Window);if (this.IsRTL&&!this.IsContextMenu) x=(x*-1);x+=F.X;y+=F.Y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var G=FCKTools.GetViewPaneSize(this._Window);var H=FCKTools.GetScrollPosition(this._Window);var I=G.Height+H.Y;var J=G.Width+H.X;if ((x+D)>J) x-=x+D-J;if ((y+this.MainNode.offsetHeight)>I) y-=y+this.MainNode.offsetHeight-I;};if (x<0) x=0;this._IFrame.style.left=x+'px';this._IFrame.style.top=y+'px';var K=D;var L=this.MainNode.offsetHeight;this._IFrame.width=K;this._IFrame.height=L;this._IFrame.contentWindow.focus();};this._IsOpened=true;FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened) return;if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Unlock();this._IFrame.width=this._IFrame.height=0;this._IsOpened=false;if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetParentWindow(this.Document):this._Window;var B=new FCKPanel(A,true);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&&!this.HasFocus) this.Hide();};/* Events */ function FCKPanel_Window_OnFocus(e,panel){panel.HasFocus=true;};function FCKPanel_Window_OnBlur(e,panel){panel.HasFocus=false;if (panel._LockCounter==0) FCKTools.RunFunction(panel.Hide,panel);};function CheckPopupOnHide(forceHide){if (forceHide||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;}
+var FCKIcon=function(A){var B=A?typeof(A):'undefined';switch (B){case 'number':this.Path=FCKConfig.SkinPath+'fck_strip.gif';this.Size=16;this.Position=A;break;case 'undefined':this.Path=FCK_SPACER_PATH;break;case 'string':this.Path=A;break;default:this.Path=A[0];this.Size=A[1];this.Position=A[2];}};FCKIcon.prototype.CreateIconElement=function(A){var B;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');var D=B.appendChild(A.createElement('IMG'));D.src=this.Path;D.style.top=C;}else{B=A.createElement('IMG');B.src=FCK_SPACER_PATH;B.style.backgroundPosition='0px '+C;B.style.backgroundImage='url('+this.Path+')';}}else{B=A.createElement('DIV');var D=B.appendChild(A.createElement('IMG'));D.src=this.Path?this.Path:FCK_SPACER_PATH;};B.className='TB_Button_Image';return B;}
+var FCKToolbarButtonUI=function(A,B,C,D,E,F){this.Name=A;this.Label=B||A;this.Tooltip=C||this.Label;this.Style=E||FCK_TOOLBARITEM_ONLYICON;this.State=F||FCK_TRISTATE_OFF;this.Icon=new FCKIcon(D);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarButtonUI_Cleanup);};FCKToolbarButtonUI.prototype._CreatePaddingElement=function(A){var B=A.createElement('IMG');B.className='TB_Button_Padding';B.src=FCK_SPACER_PATH;return B;};FCKToolbarButtonUI.prototype.Create=function(A){var B=this.MainElement;if (B){FCKToolbarButtonUI_Cleanup.call(this);if (B.parentNode) B.parentNode.removeChild(B);B=this.MainElement=null;};var C=FCKTools.GetElementDocument(A);B=this.MainElement=C.createElement('DIV');B._FCKButton=this;B.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) B.onmousedown=FCKTools.CancelEvent;this.ChangeState(this.State,true);if (this.Style==FCK_TOOLBARITEM_ONLYICON&&!this.ShowArrow){B.appendChild(this.Icon.CreateIconElement(C));}else{var D=B.appendChild(C.createElement('TABLE'));D.cellPadding=0;D.cellSpacing=0;var E=D.insertRow(-1);var F=E.insertCell(-1);if (this.Style==FCK_TOOLBARITEM_ONLYICON||this.Style==FCK_TOOLBARITEM_ICONTEXT) F.appendChild(this.Icon.CreateIconElement(C));else F.appendChild(this._CreatePaddingElement(C));if (this.Style==FCK_TOOLBARITEM_ONLYTEXT||this.Style==FCK_TOOLBARITEM_ICONTEXT){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(C.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=FCK_TOOLBARITEM_ONLYICON){E.insertCell(-1).appendChild(this._CreatePaddingElement(C));};F=E.insertCell(-1);var G=F.appendChild(C.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(C));};A.appendChild(B);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&&this.State==A) return;var e=this.MainElement;switch (parseInt(A)){case FCK_TRISTATE_OFF:e.className='TB_Button_Off';e.onmouseover=FCKToolbarButton_OnMouseOverOff;e.onmouseout=FCKToolbarButton_OnMouseOutOff;e.onclick=FCKToolbarButton_OnClick;break;case FCK_TRISTATE_ON:e.className='TB_Button_On';e.onmouseover=FCKToolbarButton_OnMouseOverOn;e.onmouseout=FCKToolbarButton_OnMouseOutOn;e.onclick=FCKToolbarButton_OnClick;break;case FCK_TRISTATE_DISABLED:e.className='TB_Button_Disabled';e.onmouseover=null;e.onmouseout=null;e.onclick=null;bEnableEvents=false;break;};this.State=A;};function FCKToolbarButtonUI_Cleanup(){if (this.MainElement){this.MainElement._FCKButton=null;this.MainElement=null;}};function FCKToolbarButton_OnMouseOverOn(){this.className='TB_Button_On_Over';};function FCKToolbarButton_OnMouseOutOn(){this.className='TB_Button_On';};function FCKToolbarButton_OnMouseOverOff(){this.className='TB_Button_Off_Over';};function FCKToolbarButton_OnMouseOutOff(){this.className='TB_Button_Off';};function FCKToolbarButton_OnClick(e){if (this._FCKButton.OnClick) this._FCKButton.OnClick(this._FCKButton);};
+var FCKToolbarButton=function(A,B,C,D,E,F,G){this.CommandName=A;this.Label=B;this.Tooltip=C;this.Style=D;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;if (G==null) this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(G)=='number') this.IconPath=[FCKConfig.SkinPath+'fck_strip.gif',16,G];};FCKToolbarButton.prototype.Create=function(A){this._UIButton=new FCKToolbarButtonUI(this.CommandName,this.Label,this.Tooltip,this.IconPath,this.Style);this._UIButton.OnClick=this.Click;this._UIButton._ToolbarButton=this;this._UIButton.Create(A);};FCKToolbarButton.prototype.RefreshState=function(){var A=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (A==this._UIButton.State) return;this._UIButton.ChangeState(A);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(FCK_TRISTATE_DISABLED);}
+var FCKSpecialCombo=function(A,B,C,D,E){this.FieldWidth=B||100;this.PanelWidth=C||150;this.PanelMaxHeight=D||150;this.Label='&nbsp;';this.Caption=A;this.Tooltip=A;this.Style=FCK_TOOLBARITEM_ICONTEXT;this.Enabled=true;this.Items=new Object();this._Panel=new FCKPanel(E||window,true);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._PanelBox=this._Panel.MainNode.appendChild(this._Panel.Document.createElement('DIV'));this._PanelBox.className='SC_Panel';this._PanelBox.style.width=this.PanelWidth+'px';this._PanelBox.innerHTML='<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>';this._ItemsHolderEl=this._PanelBox.getElementsByTagName('TD')[0];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKSpecialCombo_Cleanup);};function FCKSpecialCombo_ItemOnMouseOver(){this.className+=' SC_ItemOver';};function FCKSpecialCombo_ItemOnMouseOut(){this.className=this.originalClass;};function FCKSpecialCombo_ItemOnClick(){this.className=this.originalClass;this.FCKSpecialCombo._Panel.Hide();this.FCKSpecialCombo.SetLabel(this.FCKItemLabel);if (typeof(this.FCKSpecialCombo.OnSelect)=='function') this.FCKSpecialCombo.OnSelect(this.FCKItemID,this);};FCKSpecialCombo.prototype.AddItem=function(A,B,C,D){var E=this._ItemsHolderEl.appendChild(this._Panel.Document.createElement('DIV'));E.className=E.originalClass='SC_Item';E.innerHTML=B;E.FCKItemID=A;E.FCKItemLabel=C||A;E.FCKSpecialCombo=this;E.Selected=false;if (FCKBrowserInfo.IsIE) E.style.width='100%';if (D) E.style.backgroundColor=D;E.onmouseover=FCKSpecialCombo_ItemOnMouseOver;E.onmouseout=FCKSpecialCombo_ItemOnMouseOut;E.onclick=FCKSpecialCombo_ItemOnClick;this.Items[A.toString().toLowerCase()]=E;return E;};FCKSpecialCombo.prototype.SelectItem=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];if (B){B.className=B.originalClass='SC_ItemSelected';B.Selected=true;}};FCKSpecialCombo.prototype.SelectItemByLabel=function(A,B){for (var C in this.Items){var D=this.Items[C];if (D.FCKItemLabel==A){D.className=D.originalClass='SC_ItemSelected';D.Selected=true;if (B) this.SetLabel(A);}}};FCKSpecialCombo.prototype.DeselectAll=function(A){for (var i in this.Items){this.Items[i].className=this.Items[i].originalClass='SC_Item';this.Items[i].Selected=false;};if (A) this.SetLabel('');};FCKSpecialCombo.prototype.SetLabelById=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];this.SetLabel(B?B.FCKItemLabel:'');};FCKSpecialCombo.prototype.SetLabel=function(A){this.Label=A.length==0?'&nbsp;':A;if (this._LabelEl) this._LabelEl.innerHTML=this.Label;};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this._OuterTable=A.appendChild(B.createElement('TABLE'));C.cellPadding=0;C.cellSpacing=0;C.insertRow(-1);var D;var E;switch (this.Style){case FCK_TOOLBARITEM_ONLYICON:D='TB_ButtonType_Icon';E=false;break;case FCK_TOOLBARITEM_ONLYTEXT:D='TB_ButtonType_Text';E=false;break;case FCK_TOOLBARITEM_ICONTEXT:E=true;break;};if (this.Caption&&this.Caption.length>0&&E){var F=C.rows[0].insertCell(-1);F.innerHTML=this.Caption;F.className='SC_FieldCaption';};var G=FCKTools.AppendElement(C.rows[0].insertCell(-1),'div');if (E){G.className='SC_Field';G.style.width=this.FieldWidth+'px';G.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldLabel"><label>&nbsp;</label></td><td class="SC_FieldButton">&nbsp;</td></tr></tbody></table>';this._LabelEl=G.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{G.className='TB_Button_Off';G.innerHTML='<table title="'+this.Tooltip+'" class="'+D+'" cellspacing="0" cellpadding="0" border="0">'+'<tr>'+'<td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td>'+'<td class="TB_Text">'+this.Caption+'</td>'+'<td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td>'+'<td class="TB_ButtonArrow"><img src="'+FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif" width="5" height="3"></td>'+'<td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td>'+'</tr>'+'</table>';};G.SpecialCombo=this;G.onmouseover=FCKSpecialCombo_OnMouseOver;G.onmouseout=FCKSpecialCombo_OnMouseOut;G.onclick=FCKSpecialCombo_OnClick;FCKTools.DisableSelection(this._Panel.Document.body);};function FCKSpecialCombo_Cleanup(){this._LabelEl=null;this._OuterTable=null;this._ItemsHolderEl=null;this._PanelBox=null;if (this.Items){for (var key in this.Items) this.Items[key]=null;}};function FCKSpecialCombo_OnMouseOver(){if (this.SpecialCombo.Enabled){switch (this.SpecialCombo.Style){case FCK_TOOLBARITEM_ONLYICON:this.className='TB_Button_On_Over';break;case FCK_TOOLBARITEM_ONLYTEXT:this.className='TB_Button_On_Over';break;case FCK_TOOLBARITEM_ICONTEXT:this.className='SC_Field SC_FieldOver';break;}}};function FCKSpecialCombo_OnMouseOut(){switch (this.SpecialCombo.Style){case FCK_TOOLBARITEM_ONLYICON:this.className='TB_Button_Off';break;case FCK_TOOLBARITEM_ONLYTEXT:this.className='TB_Button_Off';break;case FCK_TOOLBARITEM_ICONTEXT:this.className='SC_Field';break;}};function FCKSpecialCombo_OnClick(e){var oSpecialCombo=this.SpecialCombo;if (oSpecialCombo.Enabled){var oPanel=oSpecialCombo._Panel;var oPanelBox=oSpecialCombo._PanelBox;var oItemsHolder=oSpecialCombo._ItemsHolderEl;var iMaxHeight=oSpecialCombo.PanelMaxHeight;if (oSpecialCombo.OnBeforeClick) oSpecialCombo.OnBeforeClick(oSpecialCombo);if (FCKBrowserInfo.IsIE) oPanel.Preload(0,this.offsetHeight,this);if (oItemsHolder.offsetHeight>iMaxHeight) oPanelBox.style.height=iMaxHeight+'px';else oPanelBox.style.height='';oPanel.Show(0,this.offsetHeight,this);}};
+var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;};function FCKToolbarSpecialCombo_OnSelect(itemId,item){FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Execute(itemId,item);};FCKToolbarSpecialCombo.prototype.Create=function(A){this._Combo=new FCKSpecialCombo(this.GetLabel(),this.FieldWidth,this.PanelWidth,this.PanelMaxHeight,FCKBrowserInfo.IsIE?window:FCKTools.GetElementWindow(A).parent);this._Combo.Tooltip=this.Tooltip;this._Combo.Style=this.Style;this.CreateItems(this._Combo);this._Combo.Create(A);this._Combo.CommandName=this.CommandName;this._Combo.OnSelect=FCKToolbarSpecialCombo_OnSelect;};function FCKToolbarSpecialCombo_RefreshActiveItems(combo,value){combo.DeselectAll();combo.SelectItem(value);combo.SetLabelById(value);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B!=FCK_TRISTATE_DISABLED){A=FCK_TRISTATE_ON;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else{if (this._LastValue!=B){this._LastValue=B;FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}}}else A=FCK_TRISTATE_DISABLED;if (A==this.State) return;if (A==FCK_TRISTATE_DISABLED){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=FCK_TRISTATE_DISABLED);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=FCK_TRISTATE_DISABLED;this._Combo.DeselectAll();this._Combo.SetLabel('');this._Combo.SetEnabled(false);}
+var FCKToolbarFontsCombo=function(A,B){this.CommandName='FontName';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;};FCKToolbarFontsCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontsCombo.prototype.GetLabel=function(){return FCKLang.Font;};FCKToolbarFontsCombo.prototype.CreateItems=function(A){var B=FCKConfig.FontNames.split(';');for (var i=0;i<B.length;i++) this._Combo.AddItem(B[i],'<font face="'+B[i]+'" style="font-size: 12px">'+B[i]+'</font>');}
+var FCKToolbarFontSizeCombo=function(A,B){this.CommandName='FontSize';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;};FCKToolbarFontSizeCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontSizeCombo.prototype.GetLabel=function(){return FCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.CreateItems=function(A){A.FieldWidth=70;var B=FCKConfig.FontSizes.split(';');for (var i=0;i<B.length;i++){var C=B[i].split('/');this._Combo.AddItem(C[0],'<font size="'+C[0]+'">'+C[1]+'</font>',C[1]);}}
+var FCKToolbarFontFormatCombo=function(A,B){this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;this.NormalLabel='Normal';this.PanelWidth=190;};FCKToolbarFontFormatCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.CreateItems=function(A){FCKTools.AppendStyleSheet(A._Panel.Document,FCKConfig.ToolbarComboPreviewCSS);var B=FCKLang['FontFormats'].split(';');var C={p:B[0],pre:B[1],address:B[2],h1:B[3],h2:B[4],h3:B[5],h4:B[6],h5:B[7],h6:B[8],div:B[9]};var D=FCKConfig.FontFormats.split(';');for (var i=0;i<D.length;i++){var E=D[i];var F=C[E];if (E=='p') this.NormalLabel=F;this._Combo.AddItem(E,'<div class="BaseFont"><'+E+'>'+F+'</'+E+'></div>',F);}};if (FCKBrowserInfo.IsIE){FCKToolbarFontFormatCombo.prototype.RefreshActiveItems=function(A,B){if (B==this.NormalLabel){if (A.Label!='&nbsp;') A.DeselectAll(true);}else{if (this._LastValue==B) return;A.SelectItemByLabel(B,true);};this._LastValue=B;}}
+var FCKToolbarStyleCombo=function(A,B){this.CommandName='Style';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);B.body.className+=' ForceBaseFont';if (!FCKBrowserInfo.IsGecko) A.OnBeforeClick=this.RefreshVisibleItems;var C=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Styles;for (var s in C){var D=C[s];var E;if (D.IsObjectElement) E=A.AddItem(s,s);else E=A.AddItem(s,D.GetOpenerTag()+s+D.GetCloserTag());E.Style=D;}};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){A.DeselectAll();var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetActiveStyles();if (B.length>0){for (var i=0;i<B.length;i++) A.SelectItem(B[i].Name);A.SetLabelById(B[0].Name);}else A.SetLabel('');};FCKToolbarStyleCombo.prototype.RefreshVisibleItems=function(A){if (FCKSelection.GetType()=='Control') var B=FCKSelection.GetSelectedElement().tagName;for (var i in A.Items){var C=A.Items[i];if ((B&&C.Style.Element==B)||(!B&&!C.Style.IsObjectElement)) C.style.display='';else C.style.display='none';}}
+var FCKToolbarPanelButton=function(A,B,C,D,E){this.CommandName=A;var F;if (E==null) F=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(E)=='number') F=[FCKConfig.SkinPath+'fck_strip.gif',16,E];var G=this._UIButton=new FCKToolbarButtonUI(A,B,C,F,D);G._FCKToolbarPanelButton=this;G.ShowArrow=true;G.OnClick=FCKToolbarPanelButton_OnButtonClick;};FCKToolbarPanelButton.prototype.TypeName='FCKToolbarPanelButton';FCKToolbarPanelButton.prototype.Create=function(A){A.className+='Menu';this._UIButton.Create(A);var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName)._Panel;B._FCKToolbarPanelButton=this;var C=B.Document.body.appendChild(B.Document.createElement('div'));C.style.position='absolute';C.style.top='0px';var D=this.LineImg=C.appendChild(B.Document.createElement('IMG'));D.className='TB_ConnectionLine';D.src=FCK_SPACER_PATH;B.OnHide=FCKToolbarPanelButton_OnPanelHide;};function FCKToolbarPanelButton_OnButtonClick(toolbarButton){var oButton=this._FCKToolbarPanelButton;var e=oButton._UIButton.MainElement;oButton._UIButton.ChangeState(FCK_TRISTATE_ON);oButton.LineImg.style.width=(e.offsetWidth-2)+'px';FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(oButton.CommandName).Execute(0,e.offsetHeight-1,e);};function FCKToolbarPanelButton_OnPanelHide(){var oMenuButton=this._FCKToolbarPanelButton;oMenuButton._UIButton.ChangeState(FCK_TRISTATE_OFF);};FCKToolbarPanelButton.prototype.RefreshState=FCKToolbarButton.prototype.RefreshState;FCKToolbarPanelButton.prototype.Enable=FCKToolbarButton.prototype.Enable;FCKToolbarPanelButton.prototype.Disable=FCKToolbarButton.prototype.Disable;
+var FCKToolbarItems=new Object();FCKToolbarItems.LoadedItems=new Object();FCKToolbarItems.RegisterItem=function(A,B){this.LoadedItems[A]=B;};FCKToolbarItems.GetItem=function(A){var B=FCKToolbarItems.LoadedItems[A];if (B) return B;switch (A){case 'Source':B=new FCKToolbarButton('Source',FCKLang.Source,null,FCK_TOOLBARITEM_ICONTEXT,true,true,1);break;case 'DocProps':B=new FCKToolbarButton('DocProps',FCKLang.DocProps,null,null,null,null,2);break;case 'Save':B=new FCKToolbarButton('Save',FCKLang.Save,null,null,true,null,3);break;case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true,null,4);break;case 'Preview':B=new FCKToolbarButton('Preview',FCKLang.Preview,null,null,true,null,5);break;case 'Templates':B=new FCKToolbarButton('Templates',FCKLang.Templates,null,null,null,null,6);break;case 'About':B=new FCKToolbarButton('About',FCKLang.About,null,null,true,null,47);break;case 'Cut':B=new FCKToolbarButton('Cut',FCKLang.Cut,null,null,false,true,7);break;case 'Copy':B=new FCKToolbarButton('Copy',FCKLang.Copy,null,null,false,true,8);break;case 'Paste':B=new FCKToolbarButton('Paste',FCKLang.Paste,null,null,false,true,9);break;case 'PasteText':B=new FCKToolbarButton('PasteText',FCKLang.PasteText,null,null,false,true,10);break;case 'PasteWord':B=new FCKToolbarButton('PasteWord',FCKLang.PasteWord,null,null,false,true,11);break;case 'Print':B=new FCKToolbarButton('Print',FCKLang.Print,null,null,false,true,12);break;case 'SpellCheck':B=new FCKToolbarButton('SpellCheck',FCKLang.SpellCheck,null,null,null,null,13);break;case 'Undo':B=new FCKToolbarButton('Undo',FCKLang.Undo,null,null,false,true,14);break;case 'Redo':B=new FCKToolbarButton('Redo',FCKLang.Redo,null,null,false,true,15);break;case 'SelectAll':B=new FCKToolbarButton('SelectAll',FCKLang.SelectAll,null,null,null,null,18);break;case 'RemoveFormat':B=new FCKToolbarButton('RemoveFormat',FCKLang.RemoveFormat,null,null,false,true,19);break;case 'FitWindow':B=new FCKToolbarButton('FitWindow',FCKLang.FitWindow,null,null,true,true,66);break;case 'Bold':B=new FCKToolbarButton('Bold',FCKLang.Bold,null,null,false,true,20);break;case 'Italic':B=new FCKToolbarButton('Italic',FCKLang.Italic,null,null,false,true,21);break;case 'Underline':B=new FCKToolbarButton('Underline',FCKLang.Underline,null,null,false,true,22);break;case 'StrikeThrough':B=new FCKToolbarButton('StrikeThrough',FCKLang.StrikeThrough,null,null,false,true,23);break;case 'Subscript':B=new FCKToolbarButton('Subscript',FCKLang.Subscript,null,null,false,true,24);break;case 'Superscript':B=new FCKToolbarButton('Superscript',FCKLang.Superscript,null,null,false,true,25);break;case 'OrderedList':B=new FCKToolbarButton('InsertOrderedList',FCKLang.NumberedListLbl,FCKLang.NumberedList,null,false,true,26);break;case 'UnorderedList':B=new FCKToolbarButton('InsertUnorderedList',FCKLang.BulletedListLbl,FCKLang.BulletedList,null,false,true,27);break;case 'Outdent':B=new FCKToolbarButton('Outdent',FCKLang.DecreaseIndent,null,null,false,true,28);break;case 'Indent':B=new FCKToolbarButton('Indent',FCKLang.IncreaseIndent,null,null,false,true,29);break;case 'Link':B=new FCKToolbarButton('Link',FCKLang.InsertLinkLbl,FCKLang.InsertLink,null,false,true,34);break;case 'Unlink':B=new FCKToolbarButton('Unlink',FCKLang.RemoveLink,null,null,false,true,35);break;case 'Anchor':B=new FCKToolbarButton('Anchor',FCKLang.Anchor,null,null,null,null,36);break;case 'Image':B=new FCKToolbarButton('Image',FCKLang.InsertImageLbl,FCKLang.InsertImage,null,false,true,37);break;case 'Flash':B=new FCKToolbarButton('Flash',FCKLang.InsertFlashLbl,FCKLang.InsertFlash,null,false,true,38);break;case 'Table':B=new FCKToolbarButton('Table',FCKLang.InsertTableLbl,FCKLang.InsertTable,null,false,true,39);break;case 'SpecialChar':B=new FCKToolbarButton('SpecialChar',FCKLang.InsertSpecialCharLbl,FCKLang.InsertSpecialChar,null,false,true,42);break;case 'Smiley':B=new FCKToolbarButton('Smiley',FCKLang.InsertSmileyLbl,FCKLang.InsertSmiley,null,false,true,41);break;case 'PageBreak':B=new FCKToolbarButton('PageBreak',FCKLang.PageBreakLbl,FCKLang.PageBreak,null,false,true,43);break;case 'UniversalKey':B=new FCKToolbarButton('UniversalKey',FCKLang.UniversalKeyboard,null,null,false,true,44);break;case 'Rule':B=new FCKToolbarButton('InsertHorizontalRule',FCKLang.InsertLineLbl,FCKLang.InsertLine,null,false,true,40);break;case 'JustifyLeft':B=new FCKToolbarButton('JustifyLeft',FCKLang.LeftJustify,null,null,false,true,30);break;case 'JustifyCenter':B=new FCKToolbarButton('JustifyCenter',FCKLang.CenterJustify,null,null,false,true,31);break;case 'JustifyRight':B=new FCKToolbarButton('JustifyRight',FCKLang.RightJustify,null,null,false,true,32);break;case 'JustifyFull':B=new FCKToolbarButton('JustifyFull',FCKLang.BlockJustify,null,null,false,true,33);break;case 'Style':B=new FCKToolbarStyleCombo();break;case 'FontName':B=new FCKToolbarFontsCombo();break;case 'FontSize':B=new FCKToolbarFontSizeCombo();break;case 'FontFormat':B=new FCKToolbarFontFormatCombo();break;case 'TextColor':B=new FCKToolbarPanelButton('TextColor',FCKLang.TextColor,null,null,45);break;case 'BGColor':B=new FCKToolbarPanelButton('BGColor',FCKLang.BGColor,null,null,46);break;case 'Find':B=new FCKToolbarButton('Find',FCKLang.Find,null,null,null,null,16);break;case 'Replace':B=new FCKToolbarButton('Replace',FCKLang.Replace,null,null,null,null,17);break;case 'Form':B=new FCKToolbarButton('Form',FCKLang.Form,null,null,null,null,48);break;case 'Checkbox':B=new FCKToolbarButton('Checkbox',FCKLang.Checkbox,null,null,null,null,49);break;case 'Radio':B=new FCKToolbarButton('Radio',FCKLang.RadioButton,null,null,null,null,50);break;case 'TextField':B=new FCKToolbarButton('TextField',FCKLang.TextField,null,null,null,null,51);break;case 'Textarea':B=new FCKToolbarButton('Textarea',FCKLang.Textarea,null,null,null,null,52);break;case 'HiddenField':B=new FCKToolbarButton('HiddenField',FCKLang.HiddenField,null,null,null,null,56);break;case 'Button':B=new FCKToolbarButton('Button',FCKLang.Button,null,null,null,null,54);break;case 'Select':B=new FCKToolbarButton('Select',FCKLang.SelectionField,null,null,null,null,53);break;case 'ImageButton':B=new FCKToolbarButton('ImageButton',FCKLang.ImageButton,null,null,null,null,55);break;default:alert(FCKLang.UnknownToolbarItem.replace(/%1/g,A));return null;};FCKToolbarItems.LoadedItems[A]=B;return B;}
+var FCKToolbar=function(){this.Items=new Array();if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbar_Cleanup);};FCKToolbar.prototype.AddItem=function(A){return this.Items[this.Items.length]=A;};FCKToolbar.prototype.AddButton=function(A,B,C,D,E,F){if (typeof(D)=='number') D=[this.DefaultIconsStrip,this.DefaultIconSize,D];var G=new FCKToolbarButtonUI(A,B,C,D,E,F);G._FCKToolbar=this;G.OnClick=FCKToolbar_OnItemClick;return this.AddItem(G);};function FCKToolbar_OnItemClick(item){var oToolbar=item._FCKToolbar;if (oToolbar.OnItemClick) oToolbar.OnItemClick(oToolbar,item);};FCKToolbar.prototype.AddSeparator=function(){this.AddItem(new FCKToolbarSeparator());};FCKToolbar.prototype.Create=function(A){if (this.MainElement){if (this.MainElement.parentNode) this.MainElement.parentNode.removeChild(this.MainElement);this.MainElement=null;};var B=FCKTools.GetElementDocument(A);var e=this.MainElement=B.createElement('table');e.className='TB_Toolbar';e.style.styleFloat=e.style.cssFloat=(FCKLang.Dir=='ltr'?'left':'right');e.dir=FCKLang.Dir;e.cellPadding=0;e.cellSpacing=0;this.RowElement=e.insertRow(-1);var C;if (!this.HideStart){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_Start';};for (var i=0;i<this.Items.length;i++){this.Items[i].Create(this.RowElement.insertCell(-1));};if (!this.HideEnd){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_End';};A.appendChild(e);};function FCKToolbar_Cleanup(){this.MainElement=null;this.RowElement=null;};var FCKToolbarSeparator=function(){};FCKToolbarSeparator.prototype.Create=function(A){FCKTools.AppendElement(A,'div').className='TB_Separator';}
+var FCKToolbarBreak=function(){};FCKToolbarBreak.prototype.Create=function(A){var B=A.ownerDocument.createElement('div');B.style.clear=B.style.cssFloat=FCKLang.Dir=='rtl'?'right':'left';A.appendChild(B);}
+function FCKToolbarSet_Create(overhideLocation){var oToolbarSet;var sLocation=overhideLocation||FCKConfig.ToolbarLocation;switch (sLocation){case 'In':document.getElementById('xToolbarRow').style.display='';oToolbarSet=new FCKToolbarSet(document);break;default:FCK.Events.AttachEvent('OnBlur',FCK_OnBlur);FCK.Events.AttachEvent('OnFocus',FCK_OnFocus);var eToolbarTarget;var oOutMatch=sLocation.match(/^Out:(.+)\((\w+)\)$/);if (oOutMatch){eToolbarTarget=eval('parent.'+oOutMatch[1]).document.getElementById(oOutMatch[2]);}else{oOutMatch=sLocation.match(/^Out:(\w+)$/);if (oOutMatch) eToolbarTarget=parent.document.getElementById(oOutMatch[1]);};if (!eToolbarTarget){alert('Invalid value for "ToolbarLocation"');return this._Init('In');};if (oToolbarSet=eToolbarTarget.__FCKToolbarSet) break;var eToolbarIFrame=FCKTools.GetElementDocument(eToolbarTarget).createElement('iframe');eToolbarIFrame.frameBorder=0;eToolbarIFrame.width='100%';eToolbarIFrame.height='10';eToolbarTarget.appendChild(eToolbarIFrame);eToolbarIFrame.unselectable='on';var eTargetDocument=eToolbarIFrame.contentWindow.document;eTargetDocument.open();eTargetDocument.write('<html><head><script type="text/javascript"> window.onload = window.onresize = function() { window.frameElement.height = document.body.scrollHeight ; } </script></head><body style="overflow: hidden">'+document.getElementById('xToolbarSpace').innerHTML+'</body></html>');eTargetDocument.close();eTargetDocument.oncontextmenu=FCKTools.CancelEvent;FCKTools.AppendStyleSheet(eTargetDocument,FCKConfig.SkinPath+'fck_editor.css');oToolbarSet=eToolbarTarget.__FCKToolbarSet=new FCKToolbarSet(eTargetDocument);oToolbarSet._IFrame=eToolbarIFrame;if (FCK.IECleanup) FCK.IECleanup.AddItem(eToolbarTarget,FCKToolbarSet_Target_Cleanup);};oToolbarSet.CurrentInstance=FCK;FCK.AttachToOnSelectionChange(oToolbarSet.RefreshItemsState);return oToolbarSet;};function FCK_OnBlur(editorInstance){var eToolbarSet=editorInstance.ToolbarSet;if (eToolbarSet.CurrentInstance==editorInstance) eToolbarSet.Disable();};function FCK_OnFocus(editorInstance){var oToolbarset=editorInstance.ToolbarSet;var oInstance=editorInstance||FCK;oToolbarset.CurrentInstance.FocusManager.RemoveWindow(oToolbarset._IFrame.contentWindow);oToolbarset.CurrentInstance=oInstance;oInstance.FocusManager.AddWindow(oToolbarset._IFrame.contentWindow,true);oToolbarset.Enable();};function FCKToolbarSet_Cleanup(){this._TargetElement=null;this._IFrame=null;};function FCKToolbarSet_Target_Cleanup(){this.__FCKToolbarSet=null;};var FCKToolbarSet=function(A){this._Document=A;this._TargetElement=A.getElementById('xToolbar');var B=A.getElementById('xExpandHandle');var C=A.getElementById('xCollapseHandle');B.title=FCKLang.ToolbarExpand;B.onclick=FCKToolbarSet_Expand_OnClick;C.title=FCKLang.ToolbarCollapse;C.onclick=FCKToolbarSet_Collapse_OnClick;if (!FCKConfig.ToolbarCanCollapse||FCKConfig.ToolbarStartExpanded) this.Expand();else this.Collapse();C.style.display=FCKConfig.ToolbarCanCollapse?'':'none';if (FCKConfig.ToolbarCanCollapse) C.style.display='';else A.getElementById('xTBLeftBorder').style.display='';this.Toolbars=new Array();this.IsLoaded=false;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarSet_Cleanup);};function FCKToolbarSet_Expand_OnClick(){FCK.ToolbarSet.Expand();};function FCKToolbarSet_Collapse_OnClick(){FCK.ToolbarSet.Collapse();};FCKToolbarSet.prototype.Expand=function(){this._ChangeVisibility(false);};FCKToolbarSet.prototype.Collapse=function(){this._ChangeVisibility(true);};FCKToolbarSet.prototype._ChangeVisibility=function(A){this._Document.getElementById('xCollapsed').style.display=A?'':'none';this._Document.getElementById('xExpanded').style.display=A?'none':'';if (FCKBrowserInfo.IsGecko){FCKTools.RunFunction(window.onresize);}};FCKToolbarSet.prototype.Load=function(A){this.Name=A;this.Items=new Array();this.ItemsWysiwygOnly=new Array();this.ItemsContextSensitive=new Array();this._TargetElement.innerHTML='';var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=new Array();for (var x=0;x<B.length;x++){var C=B[x];var D;if (typeof(C)=='string'){if (C=='/') D=new FCKToolbarBreak();}else{D=new FCKToolbar();for (var j=0;j<C.length;j++){var E=C[j];if (E=='-') D.AddSeparator();else{var F=FCKToolbarItems.GetItem(E);if (F){D.AddItem(F);this.Items.push(F);if (!F.SourceView) this.ItemsWysiwygOnly.push(F);if (F.ContextSensitive) this.ItemsContextSensitive.push(F);}}}};D.Create(this._TargetElement);this.Toolbars[this.Toolbars.length]=D;};FCKTools.DisableSelection(this._Document.getElementById('xCollapseHandle').parentNode);if (FCK.Status!=FCK_STATUS_COMPLETE) FCK.Events.AttachEvent('OnStatusChange',this.RefreshModeState);else this.RefreshModeState();this.IsLoaded=true;this.IsEnabled=true;FCKTools.RunFunction(this.OnLoad);};FCKToolbarSet.prototype.Enable=function(){if (this.IsEnabled) return;this.IsEnabled=true;var A=this.Items;for (var i=0;i<A.length;i++) A[i].RefreshState();};FCKToolbarSet.prototype.Disable=function(){if (!this.IsEnabled) return;this.IsEnabled=false;var A=this.Items;for (var i=0;i<A.length;i++) A[i].Disable();};FCKToolbarSet.prototype.RefreshModeState=function(A){if (FCK.Status!=FCK_STATUS_COMPLETE) return;var B=A?A.ToolbarSet:this;var C=B.ItemsWysiwygOnly;if (FCK.EditMode==FCK_EDITMODE_WYSIWYG){for (var i=0;i<C.length;i++) C[i].Enable();B.RefreshItemsState(A);}else{B.RefreshItemsState(A);for (var i=0;i<C.length;i++) C[i].Disable();}};FCKToolbarSet.prototype.RefreshItemsState=function(A){var B=(A?A.ToolbarSet:this).ItemsContextSensitive;for (var i=0;i<B.length;i++) B[i].RefreshState();};
+var FCKDialog=new Object();FCKDialog.OpenDialog=function(A,B,C,D,E,F,G,H){var I=new Object();I.Title=B;I.Page=C;I.Editor=window;I.CustomValue=F;var J=FCKConfig.BasePath+'fckdialog.html';this.Show(I,A,J,D,E,G,H);};
+FCKDialog.Show=function(A,B,C,D,E,F,G){var H=(FCKConfig.ScreenHeight-E)/2;var I=(FCKConfig.ScreenWidth-D)/2;var J="location=no,menubar=no,toolbar=no,dependent=yes,dialog=yes,minimizable=no,modal=yes,alwaysRaised=yes"+",resizable="+(G?'yes':'no')+",width="+D+",height="+E+",top="+H+",left="+I;if (!F) F=window;FCKFocusManager.Lock();var K=F.open('','FCKeditorDialog_'+B,J,true);if (!K){alert(FCKLang.DialogBlocked);FCKFocusManager.Unlock();return;};K.moveTo(I,H);K.resizeTo(D,E);K.focus();K.location.href=C;K.dialogArguments=A;F.FCKLastDialogInfo=A;this.Window=K;try{window.top.captureEvents(Event.CLICK|Event.MOUSEDOWN|Event.MOUSEUP|Event.FOCUS);window.top.parent.addEventListener('mousedown',this.CheckFocus,true);window.top.parent.addEventListener('mouseup',this.CheckFocus,true);window.top.parent.addEventListener('click',this.CheckFocus,true);window.top.parent.addEventListener('focus',this.CheckFocus,true);}catch (e){}};FCKDialog.CheckFocus=function(){if (typeof(FCKDialog)!="object") return false;if (FCKDialog.Window&&!FCKDialog.Window.closed) FCKDialog.Window.focus();else{try{window.top.releaseEvents(Event.CLICK|Event.MOUSEDOWN|Event.MOUSEUP|Event.FOCUS);window.top.parent.removeEventListener('onmousedown',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('mouseup',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('click',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('onfocus',FCKDialog.CheckFocus,true);}catch (e){}};return false;};
+var FCKMenuItem=function(A,B,C,D,E){this.Name=B;this.Label=C||B;this.IsDisabled=E;this.Icon=new FCKIcon(D);this.SubMenu=new FCKMenuBlockPanel();this.SubMenu.Parent=A;this.SubMenu.OnClick=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnClick,this);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuItem_Cleanup);};FCKMenuItem.prototype.AddItem=function(A,B,C,D){this.HasSubMenu=true;return this.SubMenu.AddItem(A,B,C,D);};FCKMenuItem.prototype.AddSeparator=function(){this.SubMenu.AddSeparator();};FCKMenuItem.prototype.Create=function(A){var B=this.HasSubMenu;var C=FCKTools.GetElementDocument(A);var r=this.MainElement=A.insertRow(-1);r.className=this.IsDisabled?'MN_Item_Disabled':'MN_Item';if (!this.IsDisabled){FCKTools.AddEventListenerEx(r,'mouseover',FCKMenuItem_OnMouseOver,[this]);FCKTools.AddEventListenerEx(r,'click',FCKMenuItem_OnClick,[this]);if (!B) FCKTools.AddEventListenerEx(r,'mouseout',FCKMenuItem_OnMouseOut,[this]);};var D=r.insertCell(-1);D.className='MN_Icon';D.appendChild(this.Icon.CreateIconElement(C));D=r.insertCell(-1);D.className='MN_Label';D.noWrap=true;D.appendChild(C.createTextNode(this.Label));D=r.insertCell(-1);if (B){D.className='MN_Arrow';var E=D.appendChild(C.createElement('IMG'));E.src=FCK_IMAGES_PATH+'arrow_'+FCKLang.Dir+'.gif';E.width=4;E.height=7;this.SubMenu.Create();this.SubMenu.Panel.OnHide=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnHide,this);}};FCKMenuItem.prototype.Activate=function(){this.MainElement.className='MN_Item_Over';if (this.HasSubMenu){this.SubMenu.Show(this.MainElement.offsetWidth+2,-2,this.MainElement);};FCKTools.RunFunction(this.OnActivate,this);};FCKMenuItem.prototype.Deactivate=function(){this.MainElement.className='MN_Item';if (this.HasSubMenu) this.SubMenu.Hide();};/* Events */ function FCKMenuItem_SubMenu_OnClick(clickedItem,listeningItem){FCKTools.RunFunction(listeningItem.OnClick,listeningItem,[clickedItem]);};function FCKMenuItem_SubMenu_OnHide(menuItem){menuItem.Deactivate();};function FCKMenuItem_OnClick(ev,menuItem){if (menuItem.HasSubMenu) menuItem.Activate();else{menuItem.Deactivate();FCKTools.RunFunction(menuItem.OnClick,menuItem,[menuItem]);}};function FCKMenuItem_OnMouseOver(ev,menuItem){menuItem.Activate();};function FCKMenuItem_OnMouseOut(ev,menuItem){menuItem.Deactivate();};function FCKMenuItem_Cleanup(){this.MainElement=null;}
+var FCKMenuBlock=function(){this._Items=new Array();};FCKMenuBlock.prototype.Count=function(){return this._Items.length;};FCKMenuBlock.prototype.AddItem=function(A,B,C,D){var E=new FCKMenuItem(this,A,B,C,D);E.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);E.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(E);return E;};FCKMenuBlock.prototype.AddSeparator=function(){this._Items.push(new FCKMenuSeparator());};FCKMenuBlock.prototype.RemoveAllItems=function(){this._Items=new Array();var A=this._ItemsTable;if (A){while (A.rows.length>0) A.deleteRow(0);}};FCKMenuBlock.prototype.Create=function(A){if (!this._ItemsTable){if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuBlock_Cleanup);this._Window=FCKTools.GetElementWindow(A);var B=FCKTools.GetElementDocument(A);var C=A.appendChild(B.createElement('table'));C.cellPadding=0;C.cellSpacing=0;FCKTools.DisableSelection(C);var D=C.insertRow(-1).insertCell(-1);D.className='MN_Menu';var E=this._ItemsTable=D.appendChild(B.createElement('table'));E.cellPadding=0;E.cellSpacing=0;};for (var i=0;i<this._Items.length;i++) this._Items[i].Create(this._ItemsTable);};/* Events */ function FCKMenuBlock_Item_OnClick(clickedItem,menuBlock){FCKTools.RunFunction(menuBlock.OnClick,menuBlock,[clickedItem]);};function FCKMenuBlock_Item_OnActivate(menuBlock){var oActiveItem=menuBlock._ActiveItem;if (oActiveItem&&oActiveItem!=this){if (!FCKBrowserInfo.IsIE&&oActiveItem.HasSubMenu&&!this.HasSubMenu) menuBlock._Window.focus();oActiveItem.Deactivate();};menuBlock._ActiveItem=this;};function FCKMenuBlock_Cleanup(){this._Window=null;this._ItemsTable=null;};var FCKMenuSeparator=function(){};FCKMenuSeparator.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var r=A.insertRow(-1);var C=r.insertCell(-1);C.className='MN_Separator MN_Icon';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';}
+var FCKMenuBlockPanel=function(){FCKMenuBlock.call(this);};FCKMenuBlockPanel.prototype=new FCKMenuBlock();FCKMenuBlockPanel.prototype.Create=function(){var A=this.Panel=(this.Parent&&this.Parent.Panel?this.Parent.Panel.CreateChildPanel():new FCKPanel());A.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');FCKMenuBlock.prototype.Create.call(this,A.MainNode);};FCKMenuBlockPanel.prototype.Show=function(x,y,A){if (!this.Panel.CheckIsOpened()) this.Panel.Show(x,y,A);};FCKMenuBlockPanel.prototype.Hide=function(){if (this.Panel.CheckIsOpened()) this.Panel.Hide();}
+var FCKContextMenu=function(A,B,C){var D=this._Panel=new FCKPanel(A,true);D.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');D.IsContextMenu=true;var E=this._MenuBlock=new FCKMenuBlock();E.Panel=D;E.OnClick=FCKTools.CreateEventListener(FCKContextMenu_MenuBlock_OnClick,this);this._Redraw=true;this.SetMouseClickWindow(B||A);};FCKContextMenu.prototype.SetMouseClickWindow=function(A){if (!FCKBrowserInfo.IsIE){this._Document=A.document;this._Document.addEventListener('contextmenu',FCKContextMenu_Document_OnContextMenu,false);}};FCKContextMenu.prototype.AddItem=function(A,B,C,D){var E=this._MenuBlock.AddItem(A,B,C,D);this._Redraw=true;return E;};FCKContextMenu.prototype.AddSeparator=function(){this._MenuBlock.AddSeparator();this._Redraw=true;};FCKContextMenu.prototype.RemoveAllItems=function(){this._MenuBlock.RemoveAllItems();this._Redraw=true;};FCKContextMenu.prototype.AttachToElement=function(A){if (FCKBrowserInfo.IsIE) FCKTools.AddEventListenerEx(A,'contextmenu',FCKContextMenu_AttachedElement_OnContextMenu,this);else A._FCKContextMenu=this;};function FCKContextMenu_Document_OnContextMenu(e){var el=e.target;while (el){if (el._FCKContextMenu){FCKTools.CancelEvent(e);FCKContextMenu_AttachedElement_OnContextMenu(e,el._FCKContextMenu,el);};el=el.parentNode;}};function FCKContextMenu_AttachedElement_OnContextMenu(ev,fckContextMenu,el){var eTarget=el||this;if (fckContextMenu.OnBeforeOpen) fckContextMenu.OnBeforeOpen.call(fckContextMenu,eTarget);if (fckContextMenu._MenuBlock.Count()==0) return false;if (fckContextMenu._Redraw){fckContextMenu._MenuBlock.Create(fckContextMenu._Panel.MainNode);fckContextMenu._Redraw=false;};fckContextMenu._Panel.Show(ev.pageX||ev.screenX,ev.pageY||ev.screenY,ev.currentTarget||null);return false;};function FCKContextMenu_MenuBlock_OnClick(menuItem,contextMenu){contextMenu._Panel.Hide();FCKTools.RunFunction(contextMenu.OnItemClick,contextMenu,menuItem);}
+FCK.ContextMenu=new Object();FCK.ContextMenu.Listeners=new Array();FCK.ContextMenu.RegisterListener=function(A){if (A) this.Listeners.push(A);};function FCK_ContextMenu_Init(){var oInnerContextMenu=FCK.ContextMenu._InnerContextMenu=new FCKContextMenu(FCKBrowserInfo.IsIE?window:window.parent,FCK.EditorWindow,FCKLang.Dir);oInnerContextMenu.OnBeforeOpen=FCK_ContextMenu_OnBeforeOpen;oInnerContextMenu.OnItemClick=FCK_ContextMenu_OnItemClick;var oMenu=FCK.ContextMenu;for (var i=0;i<FCKConfig.ContextMenu.length;i++) oMenu.RegisterListener(FCK_ContextMenu_GetListener(FCKConfig.ContextMenu[i]));};function FCK_ContextMenu_GetListener(listenerName){switch (listenerName){case 'Generic':return {AddItems:function(A,B,C){A.AddItem('Cut',FCKLang.Cut,7,FCKCommands.GetCommand('Cut').GetState()==FCK_TRISTATE_DISABLED);A.AddItem('Copy',FCKLang.Copy,8,FCKCommands.GetCommand('Copy').GetState()==FCK_TRISTATE_DISABLED);A.AddItem('Paste',FCKLang.Paste,9,FCKCommands.GetCommand('Paste').GetState()==FCK_TRISTATE_DISABLED);}};case 'Table':return {AddItems:function(A,B,C){var D=(C=='TABLE');var E=(!D&&FCKSelection.HasAncestorNode('TABLE'));if (E){A.AddSeparator();var F=A.AddItem('Cell',FCKLang.CellCM);F.AddItem('TableInsertCell',FCKLang.InsertCell,58);F.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);F.AddItem('TableMergeCells',FCKLang.MergeCells,60);F.AddItem('TableSplitCell',FCKLang.SplitCell,61);F.AddSeparator();F.AddItem('TableCellProp',FCKLang.CellProperties,57);A.AddSeparator();F=A.AddItem('Row',FCKLang.RowCM);F.AddItem('TableInsertRow',FCKLang.InsertRow,62);F.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);A.AddSeparator();F=A.AddItem('Column',FCKLang.ColumnCM);F.AddItem('TableInsertColumn',FCKLang.InsertColumn,64);F.AddItem('TableDeleteColumns',FCKLang.DeleteColumns,65);};if (D||E){A.AddSeparator();A.AddItem('TableDelete',FCKLang.TableDelete);A.AddItem('TableProp',FCKLang.TableProperties,39);}}};case 'Link':return {AddItems:function(A,B,C){var D=(C=='A'||FCKSelection.HasAncestorNode('A'));if (D||FCK.GetNamedCommandState('Unlink')!=FCK_TRISTATE_DISABLED){A.AddSeparator();if (D) A.AddItem('Link',FCKLang.EditLink,34);A.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(A,B,C){if (C=='IMG'&&!B.getAttribute('_fckfakelement')){A.AddSeparator();A.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(A,B,C){if (C=='IMG'&&B.getAttribute('_fckanchor')){A.AddSeparator();A.AddItem('Anchor',FCKLang.AnchorProp,36);}}};case 'Flash':return {AddItems:function(A,B,C){if (C=='IMG'&&B.getAttribute('_fckflash')){A.AddSeparator();A.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(A,B,C){if (FCKSelection.HasAncestorNode('FORM')){A.AddSeparator();A.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(A,B,C){if (C=='INPUT'&&B.type=='checkbox'){A.AddSeparator();A.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(A,B,C){if (C=='INPUT'&&B.type=='radio'){A.AddSeparator();A.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(A,B,C){if (C=='INPUT'&&(B.type=='text'||B.type=='password')){A.AddSeparator();A.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(A,B,C){if (C=='INPUT'&&B.type=='hidden'){A.AddSeparator();A.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(A,B,C){if (C=='INPUT'&&B.type=='image'){A.AddSeparator();A.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(A,B,C){if (C=='INPUT'&&(B.type=='button'||B.type=='submit'||B.type=='reset')){A.AddSeparator();A.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(A,B,C){if (C=='SELECT'){A.AddSeparator();A.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(A,B,C){if (C=='TEXTAREA'){A.AddSeparator();A.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(A,B,C){if (FCKSelection.HasAncestorNode('UL')){A.AddSeparator();A.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(A,B,C){if (FCKSelection.HasAncestorNode('OL')){A.AddSeparator();A.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};}};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent("OnSelectionChange");var oTag,sTagName;if (oTag=FCKSelection.GetSelectedElement()) sTagName=oTag.tagName;var oMenu=FCK.ContextMenu._InnerContextMenu;oMenu.RemoveAllItems();var aListeners=FCK.ContextMenu.Listeners;for (var i=0;i<aListeners.length;i++) aListeners[i].AddItems(oMenu,oTag,sTagName);};function FCK_ContextMenu_OnItemClick(item){FCK.Focus();FCKCommands.GetCommand(item.Name).Execute();}
+var FCKPlugin=function(A,B,C){this.Name=A;this.BasePath=C?C:FCKConfig.PluginsPath;this.Path=this.BasePath+A+'/';if (!B||B.length==0) this.AvailableLangs=new Array();else this.AvailableLangs=B.split(',');};FCKPlugin.prototype.Load=function(){if (this.AvailableLangs.length>0){var A;if (this.AvailableLangs.indexOf(FCKLanguageManager.ActiveLanguage.Code)>=0) A=FCKLanguageManager.ActiveLanguage.Code;else A=this.AvailableLangs[0];LoadScript(this.Path+'lang/'+A+'.js');};LoadScript(this.Path+'fckplugin.js');}
+var FCKPlugins=FCK.Plugins=new Object();FCKPlugins.ItemsCount=0;FCKPlugins.Items=new Object();FCKPlugins.Load=function(){var A=FCKPlugins.Items;for (var i=0;i<FCKConfig.Plugins.Items.length;i++){var B=FCKConfig.Plugins.Items[i];var C=A[B[0]]=new FCKPlugin(B[0],B[1],B[2]);FCKPlugins.ItemsCount++;};for (var s in A) A[s].Load();FCKPlugins.Load=null;}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/js/fckeditorcode_ie.js
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/js/fckeditorcode_ie.js	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/js/fckeditorcode_ie.js	(revision 389)
@@ -0,0 +1,81 @@
+﻿/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * This file has been compacted for best loading performance.
+ */
+var FCK_STATUS_NOTLOADED=window.parent.FCK_STATUS_NOTLOADED=0;var FCK_STATUS_ACTIVE=window.parent.FCK_STATUS_ACTIVE=1;var FCK_STATUS_COMPLETE=window.parent.FCK_STATUS_COMPLETE=2;var FCK_TRISTATE_OFF=window.parent.FCK_TRISTATE_OFF=0;var FCK_TRISTATE_ON=window.parent.FCK_TRISTATE_ON=1;var FCK_TRISTATE_DISABLED=window.parent.FCK_TRISTATE_DISABLED=-1;var FCK_UNKNOWN=window.parent.FCK_UNKNOWN=-9;var FCK_TOOLBARITEM_ONLYICON=window.parent.FCK_TOOLBARITEM_ONLYICON=0;var FCK_TOOLBARITEM_ONLYTEXT=window.parent.FCK_TOOLBARITEM_ONLYTEXT=1;var FCK_TOOLBARITEM_ICONTEXT=window.parent.FCK_TOOLBARITEM_ICONTEXT=2;var FCK_EDITMODE_WYSIWYG=window.parent.FCK_EDITMODE_WYSIWYG=0;var FCK_EDITMODE_SOURCE=window.parent.FCK_EDITMODE_SOURCE=1;var FCK_IMAGES_PATH='images/';var FCK_SPACER_PATH='images/spacer.gif';
+String.prototype.Contains=function(A){return (this.indexOf(A)>-1);};String.prototype.Equals=function(){for (var i=0;i<arguments.length;i++) if (this==arguments[i]) return true;return false;};String.prototype.ReplaceAll=function(A,B){var C=this;for (var i=0;i<A.length;i++){C=C.replace(A[i],B[i]);};return C;};Array.prototype.AddItem=function(A){var i=this.length;this[i]=A;return i;};Array.prototype.indexOf=function(A){for (var i=0;i<this.length;i++){if (this[i]==A) return i;};return-1;};String.prototype.startsWith=function(A){return (this.substr(0,A.length)==A);};String.prototype.endsWith=function(A,B){var C=this.length;var D=A.length;if (D>C) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.remove=function(A,B){var s='';if (A>0) s=this.substring(0,A);if (A+B<this.length) s+=this.substring(A+B,this.length);return s;};String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g,'');};String.prototype.ltrim=function(){return this.replace(/^\s*/g,'');};String.prototype.rtrim=function(){return this.replace(/\s*$/g,'');};String.prototype.replaceNewLineChars=function(A){return this.replace(/\n/g,A);}
+var	FCKIECleanup=function(A){this.Items=new Array();A._FCKCleanupObj=this;A.attachEvent('onunload',FCKIECleanup_Cleanup);};FCKIECleanup.prototype.AddItem=function(A,B){this.Items.push([A,B]);};function FCKIECleanup_Cleanup(){var aItems=this._FCKCleanupObj.Items;var iLenght=aItems.length;for (var i=0;i<iLenght;i++){var oItem=aItems[i];oItem[1].call(oItem[0]);aItems[i]=null;};this._FCKCleanupObj=null;if (CollectGarbage) CollectGarbage();}
+var s=navigator.userAgent.toLowerCase();var FCKBrowserInfo={IsIE:s.Contains('msie'),IsIE7:s.Contains('msie 7'),IsGecko:s.Contains('gecko/'),IsSafari:s.Contains('safari'),IsOpera:s.Contains('opera')};FCKBrowserInfo.IsGeckoLike=FCKBrowserInfo.IsGecko||FCKBrowserInfo.IsSafari||FCKBrowserInfo.IsOpera;if (FCKBrowserInfo.IsGecko){var sGeckoVersion=s.match(/gecko\/(\d+)/)[1];FCKBrowserInfo.IsGecko10=sGeckoVersion<20051111;}
+var FCKURLParams=new Object();var aParams=document.location.search.substr(1).split('&');for (var i=0;i<aParams.length;i++){var aParam=aParams[i].split('=');var sParamName=aParam[0];var sParamValue=aParam[1];FCKURLParams[sParamName]=sParamValue;}
+var FCK=new Object();FCK.Name=FCKURLParams['InstanceName'];FCK.Status=FCK_STATUS_NOTLOADED;FCK.EditMode=FCK_EDITMODE_WYSIWYG;FCK.LoadLinkedFile=function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var C=A.getElementsByName(FCK.Name);var i=0;while (B||i==0){if (B&&(B.tagName.toLowerCase()=='input'||B.tagName.toLowerCase()=='textarea')){FCK.LinkedField=B;break;};B=C[i++];}};FCK.LoadLinkedFile();var FCKTempBin=new Object();FCKTempBin.Elements=new Array();FCKTempBin.AddElement=function(A){var B=this.Elements.length;this.Elements[B]=A;return B;};FCKTempBin.RemoveElement=function(A){var e=this.Elements[A];this.Elements[A]=null;return e;};FCKTempBin.Reset=function(){var i=0;while (i<this.Elements.length) this.Elements[i++]==null;this.Elements.length=0;}
+var FCKConfig=FCK.Config=new Object();if (document.location.protocol=='file:'){FCKConfig.BasePath=unescape(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi, '/');FCKConfig.BasePath='file://'+FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1);FCKConfig.FullBasePath=FCKConfig.BasePath;}else{FCKConfig.BasePath=document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=document.location.protocol+'//'+document.location.host+FCKConfig.BasePath;};FCKConfig.EditorPath=FCKConfig.BasePath.replace(/editor\/$/,'');try{FCKConfig.ScreenWidth=screen.width;FCKConfig.ScreenHeight=screen.height;}catch (e){FCKConfig.ScreenWidth=800;FCKConfig.ScreenHeight=600;};FCKConfig.ProcessHiddenField=function(){this.PageConfig=new Object();var A=window.parent.document.getElementById(FCK.Name+'___Config');if (!A) return;var B=A.value.split('&');for (var i=0;i<B.length;i++){if (B[i].length==0) continue;var C=B[i].split('=');var D=unescape(C[0]);var E=unescape(C[1]);if (D=='CustomConfigurationsPath') FCKConfig[D]=E;else if (E.toLowerCase()=="true") this.PageConfig[D]=true;else if (E.toLowerCase()=="false") this.PageConfig[D]=false;else if (E.length>0&&!isNaN(E)) this.PageConfig[D]=parseInt(E);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var oPageConfig=FCKConfig.PageConfig;for (var sKey in oPageConfig) FCKConfig[sKey]=oPageConfig[sKey];};function FCKConfig_PreProcess(){var oConfig=FCKConfig;if (oConfig.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) oConfig.Debug=true;}catch (e) { /* Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error). */ }};if (!oConfig.PluginsPath.endsWith('/')) oConfig.PluginsPath+='/';if (typeof(oConfig.EditorAreaCSS)=='string') oConfig.EditorAreaCSS=[oConfig.EditorAreaCSS];var sComboPreviewCSS=oConfig.ToolbarComboPreviewCSS;if (!sComboPreviewCSS||sComboPreviewCSS.length==0) oConfig.ToolbarComboPreviewCSS=oConfig.EditorAreaCSS;else if (typeof(sComboPreviewCSS)=='string') oConfig.ToolbarComboPreviewCSS=[sComboPreviewCSS];};FCKConfig.ToolbarSets=new Object();FCKConfig.Plugins=new Object();FCKConfig.Plugins.Items=new Array();FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.AddItem([A,B,C]);};FCKConfig.ProtectedSource=new Object();FCKConfig.ProtectedSource.RegexEntries=[/<!--[\s\S]*?-->/g,/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){function _Replace(protectedSource){var B=FCKTempBin.AddElement(protectedSource);return '<!--{PS..'+B+'}-->';};for (var i=0;i<this.RegexEntries.length;i++){A=A.replace(this.RegexEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};return A.replace(/(<|&lt;)!--\{PS..(\d+)\}--(>|&gt;)/g,_Replace);}
+var FCKDebug=new Object();FCKDebug.Output=function(A,B,C){if (!FCKConfig.Debug) return;if (!C&&A!=null&&isNaN(A)) A=A.replace(/</g,"&lt;");if (!this.DebugWindow||this.DebugWindow.closed) this.DebugWindow=window.open(FCKConfig.BasePath+'fckdebug.html','FCKeditorDebug','menubar=no,scrollbars=no,resizable=yes,location=no,toolbar=no,width=600,height=500',true);if (this.DebugWindow&&this.DebugWindow.Output){try{this.DebugWindow.Output(A,B);}catch (e) {}}};FCKDebug.OutputObject=function(A,B){if (!FCKConfig.Debug) return;var C;if (A!=null){C='Properties of: '+A+'</b><blockquote>';for (var D in A){try{var E=A[D]?A[D]+'':'[null]';C+='<b>'+D+'</b> : '+E.replace(/</g,'&lt;')+'<br>';}catch (e){try{C+='<b>'+D+'</b> : ['+typeof(A[D])+']<br>';}catch (e){C+='<b>'+D+'</b> : [-error-]<br>';}}};C+='</blockquote><b>';} else C='OutputObject : Object is "null".';FCKDebug.Output(C,B,true);}
+var FCKTools=new Object();FCKTools.AppendStyleSheet=function(A,B){if (typeof(B)=='string') return this._AppendStyleSheet(A,B);else{for (var i=0;i<B.length;i++) this._AppendStyleSheet(A,B[i]);}};FCKTools.GetLinkedFieldValue=function(){return FCK.LinkedField.value;};FCKTools.AttachToLinkedFieldFormSubmit=function(A){var B=FCK.LinkedField.form;if (!B) return;if (FCKBrowserInfo.IsIE) B.attachEvent("onsubmit",A);else B.addEventListener('submit',A,false);if (!B.updateFCKeditor) B.updateFCKeditor=new Array();B.updateFCKeditor[B.updateFCKeditor.length]=A;if (!B.originalSubmit&&(typeof(B.submit)=='function'||(!B.submit.tagName&&!B.submit.length))){B.originalSubmit=B.submit;B.submit=FCKTools_SubmitReplacer;}};function FCKTools_SubmitReplacer(){if (this.updateFCKeditor){for (var i=0;i<this.updateFCKeditor.length;i++) this.updateFCKeditor[i]();};this.originalSubmit();};FCKTools.GetElementWindow=function(A){return this.GetDocumentWindow(this.GetElementDocument(A));};FCKTools.GetDocumentWindow=function(A){if (FCKBrowserInfo.IsSafari&&!A.parentWindow) this.FixDocumentParentWindow(window.top);return A.parentWindow||A.defaultView;};FCKTools.FixDocumentParentWindow=function(A){A.document.parentWindow=A;for (var i=0;i<A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.GetParentWindow=function(A){return A.contentWindow?A.contentWindow:A.parentWindow;};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,'&amp;');A=A.replace(/</g,'&lt;');A=A.replace(/>/g,'&gt;');return A;};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement("OPTION");D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.endsWith('%')?A:parseInt(A);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.endsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=","+B.toUpperCase()+",";while (e){if (C.indexOf(","+e.nodeName.toUpperCase()+",")!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=0;i<arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.GetElementDocument=function (A){return A.ownerDocument||A.document;}
+FCKTools.CancelEvent=function(e){return false;};FCKTools._AppendStyleSheet=function(A,B){return A.createStyleSheet(B).owningElement;};FCKTools.ClearElementAttributes=function(A){A.clearAttributes();};FCKTools.GetAllChildrenIds=function(A){var B=new Array();for (var i=0;i<A.all.length;i++){var C=A.all[i].id;if (C&&C.length>0) B[B.length]=C;};return B;};FCKTools.RemoveOuterTags=function(e){e.insertAdjacentHTML('beforeBegin',e.innerHTML);e.parentNode.removeChild(e);};FCKTools.CreateXmlObject=function(A){var B;switch (A){case 'XmlHttp':B=['MSXML2.XmlHttp','Microsoft.XmlHttp'];break;case 'DOMDocument':B=['MSXML2.DOMDocument','Microsoft.XmlDom'];break;};for (var i=0;i<2;i++){try { return new ActiveXObject(B[i]);}catch (e){}};if (FCKLang.NoActiveX){alert(FCKLang.NoActiveX);FCKLang.NoActiveX=null;}};FCKTools.DisableSelection=function(A){A.unselectable='on';var e,i=0;while (e=A.all[i++]){switch (e.tagName){case 'IFRAME':case 'TEXTAREA':case 'INPUT':case 'SELECT':/* Ignore the above tags */ break;default:e.unselectable='on';}}};FCKTools.GetScrollPosition=function(A){var B=A.document;var C={ X:B.documentElement.scrollLeft,Y:B.documentElement.scrollTop };if (C.X>0||C.Y>0) return C;return { X:B.body.scrollLeft,Y:B.body.scrollTop };};FCKTools.AddEventListener=function(A,B,C){A.attachEvent('on'+B,C);};FCKTools.RemoveEventListener=function(A,B,C){A.detachEvent('on'+B,C);};FCKTools.AddEventListenerEx=function(A,B,C,D){var o=new Object();o.Source=A;o.Params=D||[];o.Listener=function(ev){return C.apply(o.Source,[ev].concat(o.Params));};if (FCK.IECleanup) FCK.IECleanup.AddItem(null,function() { o.Source=null;o.Params=null;});A.attachEvent('on'+B,o.Listener);A=null;D=null;};FCKTools.GetViewPaneSize=function(A){var B;var C=A.document.documentElement;if (C&&C.clientWidth) B=C;else B=top.document.body;if (B) return { Width:B.clientWidth,Height:B.clientHeight };else return { Width:0,Height:0 };};FCKTools.SaveStyles=function(A){var B=new Object();if (A.className.length>0){B.Class=A.className;A.className='';};var C=A.style.cssText;if (C.length>0){B.Inline=C;A.style.cssText='';};return B;};FCKTools.RestoreStyles=function(A,B){A.className=B.Class||'';A.style.cssText=B.Inline||'';};FCKTools.RegisterDollarFunction=function(A){A.$=A.document.getElementById;};FCKTools.AppendElement=function(A,B){return A.appendChild(this.GetElementDocument(A).createElement(B));}
+var FCKeditorAPI;function InitializeAPI(){if (!(FCKeditorAPI=window.parent.FCKeditorAPI)){var sScript='\ var FCKeditorAPI={\ Version:\'2.3.2\',\ VersionBuild:\'1082\',\ __Instances:new Object(),\ GetInstance:function(instanceName)\{\ return this.__Instances[instanceName];\},\ _FunctionQueue:{\ Functions:new Array(),\ IsRunning:false,\ Add:function(functionToAdd)\{\ this.Functions.push(functionToAdd);\ if (!this.IsRunning)\ this.StartNext();\},\ StartNext:function()\{\ var aQueue=this.Functions;\ if (aQueue.length>0)\{\ this.IsRunning=true;\ aQueue[0].call();\}\ else\ this.IsRunning=false;\},\ Remove:function(func)\{\ var aQueue=this.Functions;\ var i=0,fFunc;\ while(fFunc=aQueue[i])\{\ if (fFunc==func)\ aQueue.splice(i,1);\ i++;\}\ this.StartNext();\}\}\}';if (window.parent.execScript) window.parent.execScript(sScript,'JavaScript');else{if (FCKBrowserInfo.IsGecko10){eval.call(window.parent,sScript);}else window.parent.eval(sScript);};FCKeditorAPI=window.parent.FCKeditorAPI;};FCKeditorAPI.__Instances[FCK.Name]=FCK;};function FCKeditorAPI_Cleanup(){FCKeditorAPI.__Instances[FCK.Name]=null;};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);
+var FCKRegexLib={AposEntity:/&apos;/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,BlockElements:/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TD|TH)$/i,EmptyElements:/^(?:BASE|META|LINK|HR|BR|PARAM|IMG|AREA|INPUT)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BodyContents:/([\s\S]*\<body[^\>]*\>)([\s\S]*)(\<\/body\>[\s\S]*)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,TableBorderClass:/\s*FCK__ShowTableBorders\s*/,ElementName:/(^[A-Za-z_:][\w.\-:]*\w$)|(^[A-Za-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<(p|div)>\s*<\/\1>$/i,TagBody:/></,StrongOpener:/<STRONG([ \>])/gi,StrongCloser:/<\/STRONG>/gi,EmOpener:/<EM([ \>])/gi,EmCloser:/<\/EM>/gi,AbbrOpener:/<ABBR([ \>])/gi,AbbrCloser:/<\/ABBR>/gi,GeckoEntitiesMarker:/#\?-\:/g,ProtectUrlsImg:/(?:(<img(?=\s).*?\ssrc=)("|')(.*?)\2)|(?:(<img\s.*?src=)([^"'][^ >]+))/gi,ProtectUrlsA:/(?:(<a(?=\s).*?\shref=)("|')(.*?)\2)|(?:(<a\s.*?href=)([^"'][^ >]+))/gi,Html4DocType:/HTML 4\.0 Transitional/i,DocTypeTag:/<!DOCTYPE[^>]*>/i,TagsWithEvent:/<[^\>]+ on\w+[\s\r\n]*=[\s\r\n]*?('|")[\s\S]+?\>/g,EventAttributes:/\s(on\w+)[\s\r\n]*=[\s\r\n]*?('|")([\s\S]*?)\2/g,ProtectedEvents:/\s\w+_fckprotectedatt="([^"]+)"/g}
+var FCKLanguageManager=FCK.Language=new Object();FCKLanguageManager.AvailableLanguages={'ar':'Arabic','bg':'Bulgarian','bn':'Bengali/Bangla','bs':'Bosnian','ca':'Catalan','cs':'Czech','da':'Danish','de':'German','el':'Greek','en':'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)','eo':'Esperanto','es':'Spanish','et':'Estonian','eu':'Basque','fa':'Persian','fi':'Finnish','fo':'Faroese','fr':'French','gl':'Galician','he':'Hebrew','hi':'Hindi','hr':'Croatian','hu':'Hungarian','it':'Italian','ja':'Japanese','km':'Khmer','ko':'Korean','lt':'Lithuanian','lv':'Latvian','mn':'Mongolian','ms':'Malay','nb':'Norwegian Bokmal','nl':'Dutch','no':'Norwegian','pl':'Polish','pt':'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)','ro':'Romanian','ru':'Russian','sk':'Slovak','sl':'Slovenian','sr':'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)','sv':'Swedish','th':'Thai','tr':'Turkish','uk':'Ukrainian','vi':'Vietnamese','zh':'Chinese Traditional','zh-cn':'Chinese Simplified'};FCKLanguageManager.GetActiveLanguage=function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length>=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length>=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;}};return this.DefaultLanguage;};FCKLanguageManager.TranslateElements=function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i<e.length;i++){if (E=e[i].getAttribute('fckLang')){if (s=FCKLang[E]){if (D) s=FCKTools.HTMLEncode(s);eval('e[i].'+C+' = s');}}}};FCKLanguageManager.TranslatePage=function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML',true);};FCKLanguageManager.Initialize=function(){if (this.AvailableLanguages[FCKConfig.DefaultLanguage]) this.DefaultLanguage=FCKConfig.DefaultLanguage;else this.DefaultLanguage='en';this.ActiveLanguage=new Object();this.ActiveLanguage.Code=this.GetActiveLanguage();this.ActiveLanguage.Name=this.AvailableLanguages[this.ActiveLanguage.Code];}
+var FCKEvents;FCKEvents=function(A){this.Owner=A;this.RegisteredEvents=new Object();};FCKEvents.prototype.AttachEvent=function(A,B){var C;if (!(C=this.RegisteredEvents[A])) this.RegisteredEvents[A]=[B];else C.push(B);};FCKEvents.prototype.FireEvent=function(A,B){var C=true;var D=this.RegisteredEvents[A];if (D){for (var i=0;i<D.length;i++) C=(D[i](this.Owner,B)&&C);};return C;}
+var FCKXHtmlEntities=new Object();FCKXHtmlEntities.Initialize=function(){if (FCKXHtmlEntities.Entities) return;var A='';if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.Entities={' ':'nbsp','¡':'iexcl','¢':'cent','£':'pound','¤':'curren','¥':'yen','¦':'brvbar','§':'sect','¨':'uml','©':'copy','ª':'ordf','«':'laquo','¬':'not','­':'shy','®':'reg','¯':'macr','°':'deg','±':'plusmn','²':'sup2','³':'sup3','´':'acute','µ':'micro','¶':'para','·':'middot','¸':'cedil','¹':'sup1','º':'ordm','»':'raquo','¼':'frac14','½':'frac12','¾':'frac34','¿':'iquest','×':'times','÷':'divide','ƒ':'fnof','•':'bull','…':'hellip','′':'prime','″':'Prime','‾':'oline','⁄':'frasl','℘':'weierp','ℑ':'image','ℜ':'real','™':'trade','ℵ':'alefsym','←':'larr','↑':'uarr','→':'rarr','↓':'darr','↔':'harr','↵':'crarr','⇐':'lArr','⇑':'uArr','⇒':'rArr','⇓':'dArr','⇔':'hArr','∀':'forall','∂':'part','∃':'exist','∅':'empty','∇':'nabla','∈':'isin','∉':'notin','∋':'ni','∏':'prod','∑':'sum','−':'minus','∗':'lowast','√':'radic','∝':'prop','∞':'infin','∠':'ang','∧':'and','∨':'or','∩':'cap','∪':'cup','∫':'int','∴':'there4','∼':'sim','≅':'cong','≈':'asymp','≠':'ne','≡':'equiv','≤':'le','≥':'ge','⊂':'sub','⊃':'sup','⊄':'nsub','⊆':'sube','⊇':'supe','⊕':'oplus','⊗':'otimes','⊥':'perp','⋅':'sdot','◊':'loz','♠':'spades','♣':'clubs','♥':'hearts','♦':'diams','"':'quot','ˆ':'circ','˜':'tilde',' ':'ensp',' ':'emsp',' ':'thinsp','‌':'zwnj','‍':'zwj','‎':'lrm','‏':'rlm','–':'ndash','—':'mdash','‘':'lsquo','’':'rsquo','‚':'sbquo','“':'ldquo','”':'rdquo','„':'bdquo','†':'dagger','‡':'Dagger','‰':'permil','‹':'lsaquo','›':'rsaquo','€':'euro'};for (var e in FCKXHtmlEntities.Entities) A+=e;if (FCKConfig.IncludeLatinEntities){var B={'À':'Agrave','Á':'Aacute','Â':'Acirc','Ã':'Atilde','Ä':'Auml','Å':'Aring','Æ':'AElig','Ç':'Ccedil','È':'Egrave','É':'Eacute','Ê':'Ecirc','Ë':'Euml','Ì':'Igrave','Í':'Iacute','Î':'Icirc','Ï':'Iuml','Ð':'ETH','Ñ':'Ntilde','Ò':'Ograve','Ó':'Oacute','Ô':'Ocirc','Õ':'Otilde','Ö':'Ouml','Ø':'Oslash','Ù':'Ugrave','Ú':'Uacute','Û':'Ucirc','Ü':'Uuml','Ý':'Yacute','Þ':'THORN','ß':'szlig','à':'agrave','á':'aacute','â':'acirc','ã':'atilde','ä':'auml','å':'aring','æ':'aelig','ç':'ccedil','è':'egrave','é':'eacute','ê':'ecirc','ë':'euml','ì':'igrave','í':'iacute','î':'icirc','ï':'iuml','ð':'eth','ñ':'ntilde','ò':'ograve','ó':'oacute','ô':'ocirc','õ':'otilde','ö':'ouml','ø':'oslash','ù':'ugrave','ú':'uacute','û':'ucirc','ü':'uuml','ý':'yacute','þ':'thorn','ÿ':'yuml','Œ':'OElig','œ':'oelig','Š':'Scaron','š':'scaron','Ÿ':'Yuml'};for (var e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;};if (FCKConfig.IncludeGreekEntities){var B={'Α':'Alpha','Β':'Beta','Γ':'Gamma','Δ':'Delta','Ε':'Epsilon','Ζ':'Zeta','Η':'Eta','Θ':'Theta','Ι':'Iota','Κ':'Kappa','Λ':'Lambda','Μ':'Mu','Ν':'Nu','Ξ':'Xi','Ο':'Omicron','Π':'Pi','Ρ':'Rho','Σ':'Sigma','Τ':'Tau','Υ':'Upsilon','Φ':'Phi','Χ':'Chi','Ψ':'Psi','Ω':'Omega','α':'alpha','β':'beta','γ':'gamma','δ':'delta','ε':'epsilon','ζ':'zeta','η':'eta','θ':'theta','ι':'iota','κ':'kappa','λ':'lambda','μ':'mu','ν':'nu','ξ':'xi','ο':'omicron','π':'pi','ρ':'rho','ς':'sigmaf','σ':'sigma','τ':'tau','υ':'upsilon','φ':'phi','χ':'chi','ψ':'psi','ω':'omega'};for (var e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;}}else{FCKXHtmlEntities.Entities={};A=' ';};var D='['+A+']';if (FCKConfig.ProcessNumericEntities) D='[^ -~]|'+D;var E=FCKConfig.AdditionalNumericEntities;if (E||E.length>0) D+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(D,'g');}
+var FCKXHtml=new Object();FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKXHtmlEntities.Initialize();var D=FCK.IsDirty();this._CreateNode=FCKConfig.ForceStrongEm?FCKXHtml_CreateNode_StrongEm:FCKXHtml_CreateNode_Normal;FCKXHtml.SpecialBlocks=new Array();this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;E=E.substr(7,E.length-15).trim();if (FCKBrowserInfo.IsGecko) E=E.replace(/<br\/>$/,'');E=E.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i<FCKXHtml.SpecialBlocks.length;i++){var F=new RegExp('___FCKsi___'+i);E=E.replace(F,FCKXHtml.SpecialBlocks[i]);};E=E.replace(FCKRegexLib.GeckoEntitiesMarker,'&');if (!D) FCK.ResetIsDirty();return E};FCKXHtml._AppendAttribute=function(A,B,C){if (FCKConfig.ForceSimpleAmpersand&&C.replace) C=C.replace(/&/g,'___FCKAmp___');try{var D=this.XML.createAttribute(B);D.value=C?C:'';A.attributes.setNamedItem(D);}catch (e){}};FCKXHtml._AppendChildNodes=function(A,B,C){var D=0;var E=B.firstChild;while (E){if (this._AppendNode(A,E)) D++;E=E.nextSibling;};if (D==0){if (C&&FCKConfig.FillEmptyBlocks){this._AppendEntity(A,'nbsp');return;};if (!FCKRegexLib.EmptyElements.test(B.nodeName)) A.appendChild(this.XML.createTextNode(''));}};FCKXHtml._AppendNode=function(A,B){if (!B) return;switch (B.nodeType){case 1:if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&&B.hasAttribute('_moz_editor_bogus_node')) return false;if (B.getAttribute('_fcktemp')) return false;var C=B.nodeName;if (FCKBrowserInfo.IsIE&&B.scopeName&&B.scopeName!='HTML'&&B.scopeName!='FCK') C=B.scopeName+':'+C;if (!FCKRegexLib.ElementName.test(C)) return false;C=C.toLowerCase();if (FCKBrowserInfo.IsGecko&&C=='br'&&B.hasAttribute('type')&&B.getAttribute('type',2)=='_moz') return false;if (B._fckxhtmljob&&B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var D=this._CreateNode(C);FCKXHtml._AppendAttributes(A,B,D,C);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var E=FCKXHtml.TagProcessors[C];if (E){D=E(D,B,A);if (!D) break;}else this._AppendChildNodes(D,B,FCKRegexLib.BlockElements.test(C));A.appendChild(D);break;case 3:this._AppendTextNode(A,B.nodeValue.replaceNewLineChars(' '));break;case 8:if (FCKBrowserInfo.IsIE&&!B.innerHTML) break;try { A.appendChild(this.XML.createComment(B.nodeValue));}catch (e) { /* Do nothing... probably this is a wrong format comment. */};break;default:A.appendChild(this.XML.createComment("Element not supported - Type: "+B.nodeType+" Name: "+B.nodeName));break;};return true;};function FCKXHtml_CreateNode_StrongEm(nodeName){switch (nodeName){case 'b':nodeName='strong';break;case 'i':nodeName='em';break;};return this.XML.createElement(nodeName);};function FCKXHtml_CreateNode_Normal(nodeName){return this.XML.createElement(nodeName);};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+FCKXHtml.SpecialBlocks.AddItem(A);};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendTextNode=function(A,B){A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return;};function FCKXHtml_GetEntity(character){var sEntity=FCKXHtmlEntities.Entities[character]||('#'+character.charCodeAt(0));return '#?-:'+sEntity+';';};FCKXHtml.TagProcessors=new Object();FCKXHtml.TagProcessors['img']=function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);return A;};FCKXHtml.TagProcessors['a']=function(A,B){var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);FCKXHtml._AppendChildNodes(A,B,false);if (A.childNodes.length==0&&!A.getAttribute('name')) return false;return A;};FCKXHtml.TagProcessors['script']=function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;};FCKXHtml.TagProcessors['style']=function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.innerHTML)));return A;};FCKXHtml.TagProcessors['title']=function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;};FCKXHtml.TagProcessors['table']=function(A,B){var C=A.attributes.getNamedItem('class');if (C&&FCKRegexLib.TableBorderClass.test(C.nodeValue)){var D=C.nodeValue.replace(FCKRegexLib.TableBorderClass,'');if (D.length==0) A.attributes.removeNamedItem('class');else FCKXHtml._AppendAttribute(A,'class',D);};FCKXHtml._AppendChildNodes(A,B,false);return A;};FCKXHtml.TagProcessors['ol']=FCKXHtml.TagProcessors['ul']=function(A,B,C){if (B.innerHTML.trim().length==0) return;var D=C.lastChild;if (D&&D.nodeType==3) D=D.previousSibling;if (D&&D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return;};FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['span']=function(A,B){if (B.innerHTML.length==0) return false;FCKXHtml._AppendChildNodes(A,B,false);return A;}
+FCKXHtml._GetMainXmlString=function(){return this.MainNode.xml;};FCKXHtml._AppendAttributes=function(A,B,C,D){var E=B.attributes;for (var n=0;n<E.length;n++){var F=E[n];if (F.specified){var G=F.nodeName.toLowerCase();var H;if (G.startsWith('_fck')) continue;else if (G=='style') H=B.style.cssText;else if (G=='class'||G.indexOf('on')==0) H=F.nodeValue;else if (D=='body'&&G=='contenteditable') continue;else if (F.nodeValue===true) H=G;else if (!(H=B.getAttribute(G,2))) H=F.nodeValue;this._AppendAttribute(C,G,H);}}};FCKXHtml.TagProcessors['meta']=function(A,B){var C=A.attributes.getNamedItem('http-equiv');if (C==null||C.value.length==0){var D=B.outerHTML.match(FCKRegexLib.MetaHttpEquiv);if (D){D=D[1];FCKXHtml._AppendAttribute(A,'http-equiv',D);}};return A;};FCKXHtml.TagProcessors['font']=function(A,B){if (A.attributes.length==0) A=FCKXHtml.XML.createDocumentFragment();FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['input']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);if (B.value&&!A.attributes.getNamedItem('value')) FCKXHtml._AppendAttribute(A,'value',B.value);if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text');return A;};FCKXHtml.TagProcessors['option']=function(A,B){if (B.selected&&!A.attributes.getNamedItem('selected')) FCKXHtml._AppendAttribute(A,'selected','selected');FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['area']=function(A,B){if (!A.attributes.getNamedItem('coords')){var C=B.getAttribute('coords',2);if (C&&C!='0,0,0') FCKXHtml._AppendAttribute(A,'coords',C);};if (!A.attributes.getNamedItem('shape')){var C=B.getAttribute('shape',2);if (C&&C.length>0) FCKXHtml._AppendAttribute(A,'shape',C);};return A;};FCKXHtml.TagProcessors['label']=function(A,B){if (B.htmlFor.length>0) FCKXHtml._AppendAttribute(A,'for',B.htmlFor);FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['form']=function(A,B){if (B.acceptCharset&&B.acceptCharset.length>0&&B.acceptCharset!='UNKNOWN') FCKXHtml._AppendAttribute(A,'accept-charset',B.acceptCharset);if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['textarea']=FCKXHtml.TagProcessors['select']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['div']=function(A,B){if (B.align.length>0) FCKXHtml._AppendAttribute(A,'align',B.align);FCKXHtml._AppendChildNodes(A,B);return A;}
+var FCKCodeFormatter=new Object();FCKCodeFormatter.Init=function(){var A=this.Regex=new Object();A.BlocksOpener=/\<(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.BlocksCloser=/\<\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.NewLineTags=/\<(BR|HR)[^\>]*\>/gi;A.MainTags=/\<\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\>]*\>/gi;A.LineSplitter=/\s*\n+\s*/g;A.IncreaseIndent=/^\<(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\>]/i;A.DecreaseIndent=/^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \>]/i;A.FormatIndentatorRemove=new RegExp('^'+FCKConfig.FormatIndentator);A.ProtectedTags=/(<PRE[^>]*>)([\s\S]*?)(<\/PRE>)/gi;};FCKCodeFormatter._ProtectData=function(A,B,C,D){return B+'___FCKpd___'+FCKCodeFormatter.ProtectedData.AddItem(C)+D;};FCKCodeFormatter.Format=function(A){if (!this.Regex) this.Init();FCKCodeFormatter.ProtectedData=new Array();var B=A.replace(this.Regex.ProtectedTags,FCKCodeFormatter._ProtectData);B=B.replace(this.Regex.BlocksOpener,'\n$&');;B=B.replace(this.Regex.BlocksCloser,'$&\n');B=B.replace(this.Regex.NewLineTags,'$&\n');B=B.replace(this.Regex.MainTags,'\n$&\n');var C='';var D=B.split(this.Regex.LineSplitter);B='';for (var i=0;i<D.length;i++){var E=D[i];if (E.length==0) continue;if (this.Regex.DecreaseIndent.test(E)) C=C.replace(this.Regex.FormatIndentatorRemove,'');B+=C+E+'\n';if (this.Regex.IncreaseIndent.test(E)) C+=FCKConfig.FormatIndentator;};for (var i=0;i<FCKCodeFormatter.ProtectedData.length;i++){var F=new RegExp('___FCKpd___'+i);B=B.replace(F,FCKCodeFormatter.ProtectedData[i].replace(/\$/g,'$$$$'));};return B.trim();}
+var FCKUndo=new Object();FCKUndo.SavedData=new Array();FCKUndo.CurrentIndex=-1;FCKUndo.TypesCount=FCKUndo.MaxTypes=25;FCKUndo.Typing=false;FCKUndo.SaveUndoStep=function(){if (FCK.EditMode!=FCK_EDITMODE_WYSIWYG) return;FCKUndo.SavedData=FCKUndo.SavedData.slice(0,FCKUndo.CurrentIndex+1);var A=FCK.EditorDocument.body.innerHTML;if (FCKUndo.CurrentIndex>=0&&A==FCKUndo.SavedData[FCKUndo.CurrentIndex][0]) return;if (FCKUndo.CurrentIndex+1>=FCKConfig.MaxUndoLevels) FCKUndo.SavedData.shift();else FCKUndo.CurrentIndex++;var B;if (FCK.EditorDocument.selection.type=='Text') B=FCK.EditorDocument.selection.createRange().getBookmark();FCKUndo.SavedData[FCKUndo.CurrentIndex]=[A,B];FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.CheckUndoState=function(){return (FCKUndo.Typing||FCKUndo.CurrentIndex>0);};FCKUndo.CheckRedoState=function(){return (!FCKUndo.Typing&&FCKUndo.CurrentIndex<(FCKUndo.SavedData.length-1));};FCKUndo.Undo=function(){if (FCKUndo.CheckUndoState()){if (FCKUndo.CurrentIndex==(FCKUndo.SavedData.length-1)){FCKUndo.SaveUndoStep();};FCKUndo._ApplyUndoLevel(--FCKUndo.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo.Redo=function(){if (FCKUndo.CheckRedoState()){FCKUndo._ApplyUndoLevel(++FCKUndo.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo._ApplyUndoLevel=function(A){var B=FCKUndo.SavedData[A];if (!B) return;FCK.SetInnerHtml(B[0]);if (B[1]){var C=FCK.EditorDocument.selection.createRange();C.moveToBookmark(B[1]);C.select();};FCKUndo.TypesCount=0;FCKUndo.Typing=false;}
+var FCKEditingArea=function(A){this.TargetElement=A;this.Mode=FCK_EDITMODE_WYSIWYG;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKEditingArea_Cleanup);};FCKEditingArea.prototype.Start=function(A,B){var C=this.TargetElement;var D=FCKTools.GetElementDocument(C);while(C.childNodes.length>0) C.removeChild(C.childNodes[0]);if (this.Mode==FCK_EDITMODE_WYSIWYG){if (FCKBrowserInfo.IsGecko) A=A.replace(/(<body[^>]*>)\s*(<\/body>)/i,'$1'+GECKO_BOGUS+'$2');var E=this.IFrame=D.createElement('iframe');E.src='javascript:void(0)';E.frameBorder=0;E.width=E.height='100%';C.appendChild(E);if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');this.Window=E.contentWindow;var F=this.Document=this.Window.document;F.open();F.write(A);F.close();if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}else{var G=this.Textarea=D.createElement('textarea');G.className='SourceField';G.dir='ltr';G.style.width=G.style.height='100%';G.style.border='none';C.appendChild(G);G.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var oEditorArea=this._FCKEditingArea;oEditorArea.MakeEditable();FCKTools.RunFunction(oEditorArea.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE) A.body.contentEditable=true;else{try{A.designMode='on';A.execCommand('useCSS',false,!FCKConfig.GeckoUseSPAN);A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e) {}}};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==FCK_EDITMODE_WYSIWYG){if (FCKBrowserInfo.IsSafari) this.IFrame.focus();else this.Window.focus();}else this.Textarea.focus();}catch(e) {}};function FCKEditingArea_Cleanup(){this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}}
+var FCKDocumentProcessor=new Object();FCKDocumentProcessor._Items=new Array();FCKDocumentProcessor.AppendNew=function(){var A=new Object();this._Items.AddItem(A);return A;};FCKDocumentProcessor.Process=function(A){var B,i=0;while((B=this._Items[i++])) B.ProcessDocument(A);};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCK.EditorDocument.createElement('IMG');C.className=A;C.src=FCKConfig.FullBasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.name.length>0&&(!C.getAttribute('href')||C.getAttribute('href').length==0)){var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.style.pageBreakAfter=='always'&&C.childNodes.length==1&&C.childNodes[0].style&&C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var FCKFlashProcessor=FCKDocumentProcessor.AppendNew();FCKFlashProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('EMBED');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.src.endsWith('.swf',true)){var D=C.cloneNode(true);if (FCKBrowserInfo.IsIE){var E;if (E=C.getAttribute('scale')) D.setAttribute('scale',E);if (E=C.getAttribute('play')) D.setAttribute('play',E);if (E=C.getAttribute('loop')) D.setAttribute('loop',E);if (E=C.getAttribute('menu')) D.setAttribute('menu',E);if (E=C.getAttribute('wmode')) D.setAttribute('wmode',E);if (E=C.getAttribute('quality')) D.setAttribute('quality',E);};var F=FCKDocumentProcessor_CreateFakeImage('FCK__Flash',D);F.setAttribute('_fckflash','true',0);FCKFlashProcessor.RefreshView(F,C);C.parentNode.insertBefore(F,C);C.parentNode.removeChild(C);}}};FCKFlashProcessor.RefreshView=function(A,B){if (B.width>0) A.style.width=FCKTools.ConvertHtmlSizeToStyle(B.width);if (B.height>0) A.style.height=FCKTools.ConvertHtmlSizeToStyle(B.height);};FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length>0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length>0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;};
+var FCK_StartupValue;FCK.Events=new FCKEvents(FCK);FCK.Toolbar=null;FCK.HasFocus=false;FCK.StartEditor=function(){FCK.TempBaseTag=FCKConfig.BaseHref.length>0?'<base href="'+FCKConfig.BaseHref+'" _fcktemp="true"></base>':'';FCK.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.SetHTML(FCKTools.GetLinkedFieldValue());};FCK.Focus=function(){FCK.EditingArea.Focus();};FCK.SetStatus=function(A){this.Status=A;if (A==FCK_STATUS_ACTIVE){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);};FCK.GetHTML=FCK.GetXHTML=function(A){if (FCK.EditMode==FCK_EDITMODE_SOURCE) return FCK.EditingArea.Textarea.value;var B;var C=FCK.EditorDocument;if (FCKConfig.FullPage) B=FCKXHtml.GetXHTML(C.getElementsByTagName('html')[0],true,A);else{if (FCKConfig.IgnoreEmptyParagraphValue&&C.body.innerHTML=='<P>&nbsp;</P>') B='';else B=FCKXHtml.GetXHTML(C.body,false,A);};B=FCK.ProtectEventsRestore(B);if (FCKBrowserInfo.IsIE) B=B.replace(FCKRegexLib.ToReplace,'$1');if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) B=FCK.DocTypeDeclaration+'\n'+B;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) B=FCK.XmlDeclaration+'\n'+B;return FCKConfig.ProtectedSource.Revert(B);};FCK.UpdateLinkedField=function(){FCK.LinkedField.value=FCK.GetXHTML(FCKConfig.FormatOutput);FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');};FCK.RegisteredDoubleClickHandlers=new Object();FCK.OnDoubleClick=function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName];if (B) B(A);};FCK.RegisterDoubleClickHandler=function(A,B){FCK.RegisteredDoubleClickHandlers[B.toUpperCase()]=A;};FCK.OnAfterSetHTML=function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCKUndo.SaveUndoStep();FCK.Events.FireEvent('OnSelectionChange');FCK.Events.FireEvent('OnAfterSetHTML');};FCK.ProtectUrls=function(A){A=A.replace(FCKRegexLib.ProtectUrlsA,'$1$4$2$3$5$2 _fcksavedurl=$2$3$5$2');A=A.replace(FCKRegexLib.ProtectUrlsImg,'$1$4$2$3$5$2 _fcksavedurl=$2$3$5$2');return A;};FCK.ProtectEvents=function(A){return A.replace(FCKRegexLib.TagsWithEvent,_FCK_ProtectEvents_ReplaceTags);};function _FCK_ProtectEvents_ReplaceTags(tagMatch){return tagMatch.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(eventMatch,attName){return ' '+attName+'_fckprotectedatt="'+eventMatch.ReplaceAll([/&/g,/'/g,/"/g,/=/g,/</g,/>/g,/\r/g,/\n/g],['&apos;','&#39;','&quot;','&#61;','&lt;','&gt;','&#10;','&#13;'])+'"';};FCK.ProtectEventsRestore=function(A){return A.replace(FCKRegexLib.ProtectedEvents,_FCK_ProtectEvents_RestoreEvents);};function _FCK_ProtectEvents_RestoreEvents(match,encodedOriginal){return encodedOriginal.ReplaceAll([/&#39;/g,/&quot;/g,/&#61;/g,/&lt;/g,/&gt;/g,/&#10;/g,/&#13;/g,/&apos;/g],["'",'"','=','<','>','\r','\n','&']);};FCK.IsDirty=function(){return (FCK_StartupValue!=FCK.EditorDocument.body.innerHTML);};FCK.ResetIsDirty=function(){if (FCK.EditorDocument.body) FCK_StartupValue=FCK.EditorDocument.body.innerHTML;};FCK.SetHTML=function(A){this.EditingArea.Mode=FCK.EditMode;if (FCK.EditMode==FCK_EDITMODE_WYSIWYG){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);if (FCKBrowserInfo.IsGecko){A=A.replace(FCKRegexLib.StrongOpener,'<b$1');A=A.replace(FCKRegexLib.StrongCloser,'<\/b>');A=A.replace(FCKRegexLib.EmOpener,'<i$1');A=A.replace(FCKRegexLib.EmCloser,'<\/i>');}else if (FCKBrowserInfo.IsIE){A=A.replace(FCKRegexLib.AbbrOpener,'<FCK:abbr$1');A=A.replace(FCKRegexLib.AbbrCloser,'<\/FCK:abbr>');};var B='';if (FCKConfig.FullPage){if (!FCKRegexLib.HeadOpener.test(A)){if (!FCKRegexLib.HtmlOpener.test(A)) A='<html dir="'+FCKConfig.ContentLangDirection+'">'+A+'</html>';A=A.replace(FCKRegexLib.HtmlOpener,'$&<head></head>');};FCK.DocTypeDeclaration=A.match(FCKRegexLib.DocTypeTag);if (FCKBrowserInfo.IsIE) B=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) B='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';B+='<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css'+'" rel="stylesheet" type="text/css" _fcktemp="true" />';B=A.replace(FCKRegexLib.HeadCloser,B+'$&');if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) B=B.replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);}else{B=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"';if (FCKBrowserInfo.IsIE&&!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) B+=' style="overflow-y: scroll"';B+='><head><title></title>'+this._GetEditorAreaStyleTags()+'<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css'+'" rel="stylesheet" type="text/css" _fcktemp="true" />';if (FCKBrowserInfo.IsIE) B+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) B+='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';B+=FCK.TempBaseTag;B+='</head><body>';if (FCKBrowserInfo.IsGecko&&(A.length==0||FCKRegexLib.EmptyParagraph.test(A))) B+=GECKO_BOGUS;else B+=A;B+='</body></html>';};this.EditingArea.OnLoad=FCK_EditingArea_OnLoad;this.EditingArea.Start(B);}else{this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;};if (FCKBrowserInfo.IsGecko) window.onresize();};function FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;FCK.InitializeBehaviors();FCK.OnAfterSetHTML();if (FCK.Status!=FCK_STATUS_NOTLOADED) return;FCK.ResetIsDirty();FCKTools.AttachToLinkedFieldFormSubmit(FCK.UpdateLinkedField);FCK.SetStatus(FCK_STATUS_ACTIVE);};FCK._GetEditorAreaStyleTags=function(){var A='';var B=FCKConfig.EditorAreaCSS;for (var i=0;i<B.length;i++) A+='<link href="'+B[i]+'" rel="stylesheet" type="text/css" />';return A;};var FCKFocusManager=FCK.FocusManager=new Object();FCKFocusManager.IsLocked=false;FCK.HasFocus=false;FCKFocusManager.AddWindow=function(A,B){var C;if (FCKBrowserInfo.IsIE) C=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else C=A.document;FCKTools.AddEventListener(C,'blur',FCKFocusManager_Win_OnBlur);FCKTools.AddEventListener(C,'focus',B?FCKFocusManager_Win_OnFocus_Area:FCKFocusManager_Win_OnFocus);};FCKFocusManager.RemoveWindow=function(A){if (FCKBrowserInfo.IsIE) oTarget=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else oTarget=A.document;FCKTools.RemoveEventListener(oTarget,'blur',FCKFocusManager_Win_OnBlur);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus_Area);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus);};FCKFocusManager.Lock=function(){this.IsLocked=true;};FCKFocusManager.Unlock=function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;};FCKFocusManager._ResetTimer=function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}};function FCKFocusManager_Win_OnBlur(){if (typeof(FCK)!='undefined'&&FCK.HasFocus){FCKFocusManager._ResetTimer();FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);}};function FCKFocusManager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent("OnBlur");}};function FCKFocusManager_Win_OnFocus_Area(){FCKFocusManager_Win_OnFocus();FCK.Focus();};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&&!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent("OnFocus");}}
+FCK.Description="FCKeditor for Internet Explorer 5.5+";FCK._GetBehaviorsStyle=function(){if (!FCK._BehaviorsStyle){var A=FCKConfig.FullBasePath;var B='';var C;C='<style type="text/css" _fcktemp="true">'+'INPUT { behavior: url('+A+'css/behaviors/hiddenfield.htc) ; }';if (FCKConfig.ShowBorders) B='url('+A+'css/behaviors/showtableborders.htc)';C+='INPUT,TEXTAREA,SELECT,.FCK__Anchor,.FCK__PageBreak';if (FCKConfig.DisableObjectResizing){C+=',IMG';B+=' url('+A+'css/behaviors/disablehandles.htc)';};C+=' { behavior: url('+A+'css/behaviors/disablehandles.htc) ; }';if (B.length>0) C+='TABLE { behavior: '+B+' ; }';C+='</style>';FCK._BehaviorsStyle=C;};return FCK._BehaviorsStyle;};function Doc_OnMouseUp(){if (FCK.EditorWindow.event.srcElement.tagName=='HTML'){FCK.Focus();FCK.EditorWindow.event.cancelBubble=true;FCK.EditorWindow.event.returnValue=false;}};function Doc_OnPaste(){if (FCK.Status==FCK_STATUS_COMPLETE) FCK.Events.FireEvent("OnPaste");return false;};function Doc_OnKeyDown(){var e=FCK.EditorWindow.event;switch (e.keyCode){case 13:if (FCKConfig.UseBROnCarriageReturn&&!(e.ctrlKey||e.altKey||e.shiftKey)){Doc_OnKeyDownUndo();if (FCK.EditorDocument.queryCommandState('InsertOrderedList')||FCK.EditorDocument.queryCommandState('InsertUnorderedList')) return true;FCK.InsertHtml('<br>&nbsp;');var oRange=FCK.EditorDocument.selection.createRange();oRange.moveStart('character',-1);oRange.select();FCK.EditorDocument.selection.clear();return false;};break;case 8:if (FCKSelection.GetType()=='Control'){FCKSelection.Delete();return false;};break;case 9:if (FCKConfig.TabSpaces>0&&!(e.ctrlKey||e.altKey||e.shiftKey)){Doc_OnKeyDownUndo();FCK.InsertHtml(window.FCKTabHTML);return false;};break;case 90:if (e.ctrlKey&&!(e.altKey||e.shiftKey)){FCKUndo.Undo();return false;};break;case 89:if (e.ctrlKey&&!(e.altKey||e.shiftKey)){FCKUndo.Redo();return false;};break;};if (!(e.keyCode>=16&&e.keyCode<=18)) Doc_OnKeyDownUndo();return true;};function Doc_OnKeyDownUndo(){if (!FCKUndo.Typing){FCKUndo.SaveUndoStep();FCKUndo.Typing=true;FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.TypesCount++;if (FCKUndo.TypesCount>FCKUndo.MaxTypes){FCKUndo.TypesCount=0;FCKUndo.SaveUndoStep();}};function Doc_OnDblClick(){FCK.OnDoubleClick(FCK.EditorWindow.event.srcElement);FCK.EditorWindow.event.cancelBubble=true;};function Doc_OnSelectionChange(){FCK.Events.FireEvent("OnSelectionChange");};FCK.InitializeBehaviors=function(A){this.EditorDocument.attachEvent('onmouseup',Doc_OnMouseUp);this.EditorDocument.body.attachEvent('onpaste',Doc_OnPaste);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument.body);if (FCKConfig.TabSpaces>0){window.FCKTabHTML='';for (i=0;i<FCKConfig.TabSpaces;i++) window.FCKTabHTML+="&nbsp;";};this.EditorDocument.attachEvent("onkeydown",Doc_OnKeyDown);this.EditorDocument.attachEvent("ondblclick",Doc_OnDblClick);this.EditorDocument.attachEvent("onselectionchange",Doc_OnSelectionChange);};FCK.InsertHtml=function(A){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectUrls(A);FCK.Focus();FCKUndo.SaveUndoStep();var B=FCK.EditorDocument.selection;if (B.type.toLowerCase()=='control') B.clear();B.createRange().pasteHTML(A);FCKDocumentProcessor.Process(FCK.EditorDocument);};FCK.SetInnerHtml=function(A){var B=FCK.EditorDocument;B.body.innerHTML='<div id="__fakeFCKRemove__">&nbsp;</div>'+A;B.getElementById('__fakeFCKRemove__').removeNode(true);};var FCK_PreloadImages_Count=0;var FCK_PreloadImages_Images=new Array();function FCK_PreloadImages(){var aImages=FCKConfig.PreloadImages||[];if (typeof(aImages)=='string') aImages=aImages.split(';');aImages.push(FCKConfig.SkinPath+'fck_strip.gif');FCK_PreloadImages_Count=aImages.length;var aImageElements=new Array();for (var i=0;i<aImages.length;i++){var eImg=document.createElement('img');eImg.onload=eImg.onerror=FCK_PreloadImages_OnImage;eImg.src=aImages[i];FCK_PreloadImages_Images[i]=eImg;}};function FCK_PreloadImages_OnImage(){if ((--FCK_PreloadImages_Count)==0) FCKTools.RunFunction(LoadToolbarSetup);};function Document_OnContextMenu(){return (event.srcElement._FCKShowContextMenu==true);};document.oncontextmenu=Document_OnContextMenu;function FCK_Cleanup(){this.EditorWindow=null;this.EditorDocument=null;}
+FCK.RedirectNamedCommands=new Object();FCK.ExecuteNamedCommand=function(A,B,C){FCKUndo.SaveUndoStep();if (!C&&FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};FCKUndo.SaveUndoStep();};FCK.GetNamedCommandState=function(A){try{if (!FCK.EditorDocument.queryCommandEnabled(A)) return FCK_TRISTATE_DISABLED;else return FCK.EditorDocument.queryCommandState(A)?FCK_TRISTATE_ON:FCK_TRISTATE_OFF;}catch (e){return FCK_TRISTATE_OFF;}};FCK.GetNamedCommandValue=function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==FCK_TRISTATE_DISABLED) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';};FCK.PasteFromWord=function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');};FCK.Preview=function(){var A=FCKConfig.ScreenWidth*0.8;var B=FCKConfig.ScreenHeight*0.7;var C=(FCKConfig.ScreenWidth-A)/2;var D=window.open('',null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+A+',height='+B+',left='+C);var E;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) E=FCK.TempBaseTag+FCK.GetXHTML();else E=FCK.GetXHTML();}else{E=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'">'+'<head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+FCK._GetEditorAreaStyleTags()+'</head><body>'+FCK.GetXHTML()+'</body></html>';};D.document.write(E);D.document.close();};FCK.SwitchEditMode=function(A){var B=(FCK.EditMode==FCK_EDITMODE_WYSIWYG);var C;if (B){if (!A&&FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();C=FCK.GetXHTML(FCKConfig.FormatSource);}else C=this.EditingArea.Textarea.value;FCK.EditMode=B?FCK_EDITMODE_SOURCE:FCK_EDITMODE_WYSIWYG;FCK.SetHTML(C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);};FCK.CreateElement=function(A){var e=FCK.EditorDocument.createElement(A);return FCK.InsertElementAndGetIt(e);};FCK.InsertElementAndGetIt=function(e){e.setAttribute('FCKTempLabel','true');this.InsertElement(e);var A=FCK.EditorDocument.getElementsByTagName(e.tagName);for (var i=0;i<A.length;i++){if (A[i].getAttribute('FCKTempLabel')){A[i].removeAttribute('FCKTempLabel');return A[i];}};return null;};
+FCK.Paste=function(){if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return;};var A=FCK.GetClipboardHTML();if (FCKConfig.AutoDetectPasteFromWord){var B=/<\w[^>]*(( class="?MsoNormal"?)|(="mso-))/gi;if (B.test(A)){if (confirm(FCKLang["PasteWordConfirm"])){FCK.PasteFromWord();return;}}};FCK.InsertHtml(A);};FCK.PasteAsPlainText=function(){var A=FCKTools.HTMLEncode(clipboardData.getData("Text"));A=A.replace(/\n/g,'<BR>');this.InsertHtml(A);};FCK.InsertElement=function(A){FCK.InsertHtml(A.outerHTML);};FCK.GetClipboardHTML=function(){var A=document.getElementById('___FCKHiddenDiv');if (!A){var A=document.createElement('DIV');A.id='___FCKHiddenDiv';A.style.visibility='hidden';A.style.overflow='hidden';A.style.position='absolute';A.style.width=1;A.style.height=1;document.body.appendChild(A);};A.innerHTML='';var C=document.body.createTextRange();C.moveToElementText(A);C.execCommand('Paste');var D=A.innerHTML;A.innerHTML='';return D;};FCK.AttachToOnSelectionChange=function(A){this.Events.AttachEvent('OnSelectionChange',A);};FCK.CreateLink=function(A){FCK.ExecuteNamedCommand('Unlink');if (A.length>0){var B='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',B);var C=this.EditorDocument.links;for (i=0;i<C.length;i++){var D=C[i];if (D.href==B){var E=D.innerHTML;D.href=A;D.innerHTML=E;return D;}}}};
+var FCKSelection=FCK.Selection=new Object();
+FCKSelection.GetType=function(){return FCK.EditorDocument.selection.type;};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=FCK.EditorDocument.selection.createRange();if (A&&A.item) return FCK.EditorDocument.selection.createRange().item(0);}};FCKSelection.GetParentElement=function(){switch (this.GetType()){case 'Control':return FCKSelection.GetSelectedElement().parentElement;case 'None':return;default:return FCK.EditorDocument.selection.createRange().parentElement();}};FCKSelection.SelectNode=function(A){FCK.Focus();FCK.EditorDocument.selection.empty();try{var B=FCK.EditorDocument.body.createControlRange();B.addElement(A);}catch(e){var B=FCK.EditorDocument.selection.createRange();B.moveToElementText(A);};B.select();};FCKSelection.Collapse=function(A){FCK.Focus();if (this.GetType()=='Text'){var B=FCK.EditorDocument.selection.createRange();B.collapse(A==null||A===true);B.select();}};FCKSelection.HasAncestorNode=function(A){var B;if (FCK.EditorDocument.selection.type=="Control"){B=this.GetSelectedElement();}else{var C=FCK.EditorDocument.selection.createRange();B=C.parentElement();};while (B){if (B.tagName==A) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B;if (FCK.EditorDocument.selection.type=="Control"){var C=FCK.EditorDocument.selection.createRange();for (i=0;i<C.length;i++){if (C(i).parentNode){B=C(i).parentNode;break;}}}else{var C=FCK.EditorDocument.selection.createRange();B=C.parentElement();};while (B&&B.nodeName!=A) B=B.parentNode;return B;};FCKSelection.Delete=function(){var A=FCK.EditorDocument.selection;if (A.type.toLowerCase()!="none"){A.clear();};return A;};
+var FCKTableHandler=new Object();FCKTableHandler.InsertRow=function(){var A=FCKSelection.MoveToAncestorNode("TR");if (!A) return;var B=A.cloneNode(true);A.parentNode.insertBefore(B,A);FCKTableHandler.ClearRow(A);};FCKTableHandler.DeleteRows=function(A){if (!A) A=FCKSelection.MoveToAncestorNode("TR");if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');if (B.rows.length==1){FCKTableHandler.DeleteTable(B);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){var A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode("TABLE");};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(){var A=FCKSelection.MoveToAncestorNode("TD");if (!A) A=FCKSelection.MoveToAncestorNode("TH");if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex+1;for (var i=0;i<B.rows.length;i++){var D=B.rows[i];if (D.cells.length<C) continue;A=D.cells[C-1].cloneNode(false);if (FCKBrowserInfo.IsGecko) A.innerHTML=GECKO_BOGUS;var E=D.cells[C];if (E) D.insertBefore(A,E);else D.appendChild(A);}};FCKTableHandler.DeleteColumns=function(){var A=FCKSelection.MoveToAncestorNode('TD')||FCKSelection.MoveToAncestorNode('TH');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex;for (var i=B.rows.length-1;i>=0;i--){var D=B.rows[i];if (C==0&&D.cells.length==1){FCKTableHandler.DeleteRows(D);continue;};if (D.cells[C]) D.removeChild(D.cells[C]);}};FCKTableHandler.InsertCell=function(A){var B=A?A:FCKSelection.MoveToAncestorNode("TD");if (!B) return;var C=FCK.EditorDocument.createElement("TD");if (FCKBrowserInfo.IsGecko) C.innerHTML=GECKO_BOGUS;if (B.cellIndex==B.parentNode.cells.length-1){B.parentNode.appendChild(C);}else{B.parentNode.insertBefore(C,B.nextSibling);};return C;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i>=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler.MergeCells=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length<2) return;if (A[0].parentNode!=A[A.length-1].parentNode) return;var B=isNaN(A[0].colSpan)?1:A[0].colSpan;var C='';var D=FCK.EditorDocument.createDocumentFragment();for (var i=A.length-1;i>=0;i--){var E=A[i];for (var c=E.childNodes.length-1;c>=0;c--){var F=E.removeChild(E.childNodes[c]);if ((F.hasAttribute&&F.hasAttribute('_moz_editor_bogus_node'))||(F.getAttribute&&F.getAttribute('type',2)=='_moz')) continue;D.insertBefore(F,D.firstChild);};if (i>0){B+=isNaN(E.colSpan)?1:E.colSpan;FCKTableHandler.DeleteCell(E);}};A[0].colSpan=B;if (FCKBrowserInfo.IsGecko&&D.childNodes.length==0) A[0].innerHTML=GECKO_BOGUS;else A[0].appendChild(D);};FCKTableHandler.SplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=FCKTableHandler._GetCellIndexSpan(B,A[0].parentNode.rowIndex,A[0]);var D=this._GetCollumnCells(B,C);for (var i=0;i<D.length;i++){if (D[i]==A[0]){var E=this.InsertCell(A[0]);if (!isNaN(A[0].rowSpan)&&A[0].rowSpan>1) E.rowSpan=A[0].rowSpan;}else{if (isNaN(D[i].colSpan)) D[i].colSpan=2;else D[i].colSpan+=1;}}};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length<B+1) return null;var D=A[B];for (var c=0;c<D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCollumnCells=function(A,B){var C=new Array();for (var r=0;r<A.length;r++){var D=A[r][B];if (D&&(C.length==0||C[C.length-1]!=D)) C[C.length]=D;};return C;};FCKTableHandler._CreateTableMap=function(A){var B=A.rows;var r=-1;var C=new Array();for (var i=0;i<B.length;i++){r++;if (!C[r]) C[r]=new Array();var c=-1;for (var j=0;j<B[i].cells.length;j++){var D=B[i].cells[j];c++;while (C[r][c]) c++;var E=isNaN(D.colSpan)?1:D.colSpan;var F=isNaN(D.rowSpan)?1:D.rowSpan;for (var G=0;G<F;G++){if (!C[r+G]) C[r+G]=new Array();for (var H=0;H<E;H++){C[r+G][c+H]=B[i].cells[j];}};c+=E-1;}};return C;};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i<B.length;i++){if (FCKBrowserInfo.IsGecko) B[i].innerHTML=GECKO_BOGUS;else B[i].innerHTML='';}};
+FCKTableHandler.GetSelectedCells=function(){var A=new Array();var B=FCK.EditorDocument.selection.createRange();var C=FCKSelection.GetParentElement();if (C&&C.tagName.Equals('TD','TH')) A[0]=C;else{var C=FCKSelection.MoveToAncestorNode("TABLE");if (C){for (var i=0;i<C.cells.length;i++){var E=FCK.EditorDocument.selection.createRange();E.moveToElementText(C.cells[i]);if (B.inRange(E)||(B.compareEndPoints('StartToStart',E)>=0&&B.compareEndPoints('StartToEnd',E)<=0)||(B.compareEndPoints('EndToStart',E)>=0&&B.compareEndPoints('EndToEnd',E)<=0)){A[A.length]=C.cells[i];}}}};return A;};
+var FCKXml=function(){this.Error=false;};FCKXml.prototype.LoadUrl=function(A){this.Error=false;var B=FCKTools.CreateXmlObject('XmlHttp');if (!B){this.Error=true;return;};B.open("GET",A,false);B.send(null);if (B.status==200||B.status==304) this.DOMDocument=B.responseXML;else if (B.status==0&&B.readyState==4){this.DOMDocument=FCKTools.CreateXmlObject('DOMDocument');this.DOMDocument.async=false;this.DOMDocument.resolveExternals=false;this.DOMDocument.loadXML(B.responseText);}else{this.Error=true;alert('Error loading "'+A+'"');}};FCKXml.prototype.SelectNodes=function(A,B){if (this.Error) return new Array();if (B) return B.selectNodes(A);else return this.DOMDocument.selectNodes(A);};FCKXml.prototype.SelectSingleNode=function(A,B){if (this.Error) return;if (B) return B.selectSingleNode(A);else return this.DOMDocument.selectSingleNode(A);}
+var FCKStyleDef=function(A,B){this.Name=A;this.Element=B.toUpperCase();this.IsObjectElement=FCKRegexLib.ObjectElements.test(this.Element);this.Attributes=new Object();};FCKStyleDef.prototype.AddAttribute=function(A,B){this.Attributes[A]=B;};FCKStyleDef.prototype.GetOpenerTag=function(){var s='<'+this.Element;for (var a in this.Attributes) s+=' '+a+'="'+this.Attributes[a]+'"';return s+'>';};FCKStyleDef.prototype.GetCloserTag=function(){return '</'+this.Element+'>';};FCKStyleDef.prototype.RemoveFromSelection=function(){if (FCKSelection.GetType()=='Control') this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement());else this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetParentElement());}
+FCKStyleDef.prototype.ApplyToSelection=function(){var A=FCK.ToolbarSet.CurrentInstance.EditorDocument.selection;if (A.type=='Text'){var B=A.createRange();var e=document.createElement(this.Element);e.innerHTML=B.htmlText;this._AddAttributes(e);this._RemoveDuplicates(e);B.pasteHTML(e.outerHTML);}else if (A.type=='Control'){var C=FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement();if (C.tagName==this.Element) this._AddAttributes(C);}};FCKStyleDef.prototype._AddAttributes=function(A){for (var a in this.Attributes){switch (a.toLowerCase()){case 'style':A.style.cssText=this.Attributes[a];break;case 'class':A.setAttribute('className',this.Attributes[a],0);break;case 'src':A.setAttribute('_fcksavedurl',this.Attributes[a],0);default:A.setAttribute(a,this.Attributes[a],0);}}};FCKStyleDef.prototype._RemoveDuplicates=function(A){for (var i=0;i<A.children.length;i++){var B=A.children[i];this._RemoveDuplicates(B);if (this.IsEqual(B)) FCKTools.RemoveOuterTags(B);}};FCKStyleDef.prototype.IsEqual=function(e){if (e.tagName!=this.Element) return false;for (var a in this.Attributes){switch (a.toLowerCase()){case 'style':if (e.style.cssText.toLowerCase()!=this.Attributes[a].toLowerCase()) return false;break;case 'class':if (e.getAttribute('className',0)!=this.Attributes[a]) return false;break;default:if (e.getAttribute(a,0)!=this.Attributes[a]) return false;}};return true;};FCKStyleDef.prototype._RemoveMe=function(A){if (!A) return;var B=A.parentElement;if (this.IsEqual(A)){if (this.IsObjectElement){for (var a in this.Attributes){switch (a.toLowerCase()){case 'class':A.removeAttribute('className',0);break;default:A.removeAttribute(a,0);}};return;}else FCKTools.RemoveOuterTags(A);};this._RemoveMe(B);}
+var FCKStylesLoader=function(){this.Styles=new Object();this.StyleGroups=new Object();this.Loaded=false;this.HasObjectElements=false;};FCKStylesLoader.prototype.Load=function(A){var B=new FCKXml();B.LoadUrl(A);var C=B.SelectNodes('Styles/Style');for (var i=0;i<C.length;i++){var D=C[i].attributes.getNamedItem('element').value.toUpperCase();var E=new FCKStyleDef(C[i].attributes.getNamedItem('name').value,D);if (E.IsObjectElement) this.HasObjectElements=true;var F=B.SelectNodes('Attribute',C[i]);for (var j=0;j<F.length;j++){var G=F[j].attributes.getNamedItem('name').value;var H=F[j].attributes.getNamedItem('value').value;if (G.toLowerCase()=='style'){var I=document.createElement('SPAN');I.style.cssText=H;H=I.style.cssText;};E.AddAttribute(G,H);};this.Styles[E.Name]=E;var J=this.StyleGroups[D];if (J==null){this.StyleGroups[D]=new Array();J=this.StyleGroups[D];};J[J.length]=E;};this.Loaded=true;}
+var FCKNamedCommand=function(A){this.Name=A;};FCKNamedCommand.prototype.Execute=function(){FCK.ExecuteNamedCommand(this.Name);};FCKNamedCommand.prototype.GetState=function(){return FCK.GetNamedCommandState(this.Name);};
+var FCKDialogCommand=function(A,B,C,D,E,F,G){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.GetStateFunction=F;this.GetStateParam=G;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return FCK_TRISTATE_OFF;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKFontNameCommand=function(){this.Name='FontName';};FCKFontNameCommand.prototype.Execute=function(A){if (A==null||A==""){}else FCK.ExecuteNamedCommand('FontName',A);};FCKFontNameCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontName');};var FCKFontSizeCommand=function(){this.Name='FontSize';};FCKFontSizeCommand.prototype.Execute=function(A){if (typeof(A)=='string') A=parseInt(A);if (A==null||A==''){FCK.ExecuteNamedCommand('FontSize',3);}else FCK.ExecuteNamedCommand('FontSize',A);};FCKFontSizeCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontSize');};var FCKFormatBlockCommand=function(){this.Name='FormatBlock';};FCKFormatBlockCommand.prototype.Execute=function(A){if (A==null||A=='') FCK.ExecuteNamedCommand('FormatBlock','<P>');else if (A=='div'&&FCKBrowserInfo.IsGecko) FCK.ExecuteNamedCommand('FormatBlock','div');else FCK.ExecuteNamedCommand('FormatBlock','<'+A+'>');};FCKFormatBlockCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FormatBlock');};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.LinkedField.form;if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&&B===false) return;};A.submit();};FCKSaveCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetHTML('');FCKUndo.Typing=true;};FCKNewPageCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKConfig.SourcePopup){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==FCK_EDITMODE_WYSIWYG?FCK_TRISTATE_OFF:FCK_TRISTATE_ON);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Undo();else FCK.ExecuteNamedCommand('Undo');};FCKUndoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckUndoState()?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED);else return FCK.GetNamedCommandState('Undo');};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Redo();else FCK.ExecuteNamedCommand('Redo');};FCKRedoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckRedoState()?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED);else return FCK.GetNamedCommandState('Redo');};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='<span style="DISPLAY:none">&nbsp;</span>';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);A=FCK.InsertElement(A);};FCKPageBreakCommand.prototype.GetState=function(){return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsGecko){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCK.Selection.SelectNode(A);};FCK.ExecuteNamedCommand(this.Name);if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);};FCKUnlinkCommand.prototype.GetState=function(){return FCK.GetNamedCommandState(this.Name);}
+var FCKSpellCheckCommand=function(){this.Name='SpellCheck';this.IsEnabled=(FCKConfig.SpellChecker=='ieSpell'||FCKConfig.SpellChecker=='SpellerPages');};FCKSpellCheckCommand.prototype.Execute=function(){switch (FCKConfig.SpellChecker){case 'ieSpell':this._RunIeSpell();break;case 'SpellerPages':FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','dialog/fck_spellerpages.html',440,480);break;}};FCKSpellCheckCommand.prototype._RunIeSpell=function(){try{var A=new ActiveXObject("ieSpell.ieSpellExtension");A.CheckAllLinkedDocuments(FCK.EditorDocument);}catch(e){if(e.number==-2146827859){if (confirm(FCKLang.IeSpellDownload)) window.open(FCKConfig.IeSpellDownloadUrl,'IeSpellDownload');}else alert('Error Loading ieSpell: '+e.message+' ('+e.number+')');}};FCKSpellCheckCommand.prototype.GetState=function(){return this.IsEnabled?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;}
+var FCKTextColorCommand=function(A){this.Name=A=='ForeColor'?'TextColor':'BGColor';this.Type=A;var B;if (FCKBrowserInfo.IsIE) B=window;else if (FCK.ToolbarSet._IFrame) B=FCKTools.GetElementWindow(FCK.ToolbarSet._IFrame);else B=window.parent;this._Panel=new FCKPanel(B,true);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCKTools.DisableSelection(this._Panel.Document.body);};FCKTextColorCommand.prototype.Execute=function(A,B,C){FCK._ActiveColorPanelType=this.Type;this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){if (FCK._ActiveColorPanelType=='ForeColor') FCK.ExecuteNamedCommand('ForeColor',A);else if (FCKBrowserInfo.IsGeckoLike){if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,false);FCK.ExecuteNamedCommand('hilitecolor',A);if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,true);}else FCK.ExecuteNamedCommand('BackColor',A);delete FCK._ActiveColorPanelType;};FCKTextColorCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};function FCKTextColorCommand_OnMouseOver()	{ this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut()	{ this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(){this.className='ColorDeselected';this.Command.SetColor('#'+this.Color);this.Command._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(){this.className='ColorDeselected';this.Command.SetColor('');this.Command._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(){this.className='ColorDeselected';this.Command._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',400,330,this.Command.SetColor);};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement("DIV");C.className='ColorDeselected';C.onmouseover=FCKTextColorCommand_OnMouseOver;C.onmouseout=FCKTextColorCommand_OnMouseOut;return C;};var D=B.appendChild(A.createElement("TABLE"));D.className='ForceBaseFont';D.style.tableLayout='fixed';D.cellPadding=0;D.cellSpacing=0;D.border=0;D.width=150;var E=D.insertRow(-1).insertCell(-1);E.colSpan=8;var C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table cellspacing="0" cellpadding="0" width="100%" border="0">\<tr>\<td><div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #000000"></div></div></td>\<td nowrap width="100%" align="center">' + FCKLang.ColorAutomatic + '</td>\</tr>\</table>';C.Command=this;C.onclick=FCKTextColorCommand_AutoOnClick;var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H<G.length){var I=D.insertRow(-1);for (var i=0;i<8&&H<G.length;i++,H++){C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.Color=G[H];C.innerHTML='<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #'+G[H]+'"></div></div>';C.Command=this;C.onclick=FCKTextColorCommand_OnClick;}};E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td nowrap align="center">'+FCKLang.ColorMoreColors+'</td></tr></table>';C.Command=this;C.onclick=FCKTextColorCommand_MoreOnClick;}
+var FCKPastePlainTextCommand=function(){this.Name='PasteText';};FCKPastePlainTextCommand.prototype.Execute=function(){FCK.PasteAsPlainText();};FCKPastePlainTextCommand.prototype.GetState=function(){return FCK.GetNamedCommandState('Paste');};
+var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCKConfig.ForcePasteAsPlainText) return FCK_TRISTATE_DISABLED;else return FCK.GetNamedCommandState('Paste');};
+var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();switch (this.Name){case 'TableInsertRow':FCKTableHandler.InsertRow();break;case 'TableDeleteRows':FCKTableHandler.DeleteRows();break;case 'TableInsertColumn':FCKTableHandler.InsertColumn();break;case 'TableDeleteColumns':FCKTableHandler.DeleteColumns();break;case 'TableInsertCell':FCKTableHandler.InsertCell();break;case 'TableDeleteCells':FCKTableHandler.DeleteCells();break;case 'TableMergeCells':FCKTableHandler.MergeCells();break;case 'TableSplitCell':FCKTableHandler.SplitCell();break;case 'TableDelete':FCKTableHandler.DeleteTable();break;default:alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;}
+var FCKStyleCommand=function(){this.Name='Style';this.StylesLoader=new FCKStylesLoader();this.StylesLoader.Load(FCKConfig.StylesXmlPath);this.Styles=this.StylesLoader.Styles;};FCKStyleCommand.prototype.Execute=function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) B.Style.RemoveFromSelection();else B.Style.ApplyToSelection();FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent("OnSelectionChange");};FCKStyleCommand.prototype.GetState=function(){if (!FCK.EditorDocument) return FCK_TRISTATE_DISABLED;var A=FCK.EditorDocument.selection;if (FCKSelection.GetType()=='Control'){var e=FCKSelection.GetSelectedElement();if (e) return this.StylesLoader.StyleGroups[e.tagName]?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;};return FCK_TRISTATE_OFF;};FCKStyleCommand.prototype.GetActiveStyles=function(){var A=new Array();if (FCKSelection.GetType()=='Control') this._CheckStyle(FCKSelection.GetSelectedElement(),A,false);else this._CheckStyle(FCKSelection.GetParentElement(),A,true);return A;};FCKStyleCommand.prototype._CheckStyle=function(A,B,C){if (!A) return;if (A.nodeType==1){var D=this.StylesLoader.StyleGroups[A.tagName];if (D){for (var i=0;i<D.length;i++){if (D[i].IsEqual(A)) B[B.length]=D[i];}}};if (C) this._CheckStyle(A.parentNode,B,C);}
+var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);var G=A;while(G=G.parentNode){if (G.nodeType==1) G._fckSavedStyles=FCKTools.SaveStyles(G);};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var H=FCKTools.GetViewPaneSize(C);B.position="absolute";B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=H.Width+"px";B.height=H.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent("onresize",FCKFitWindow_Resize);else C.removeEventListener("resize",FCKFitWindow_Resize,true);var G=A;while(G=G.parentNode){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();FCK.EditingArea.MakeEditable();FCK.Focus();};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return FCK_TRISTATE_DISABLED;else return (this.IsMaximized?FCK_TRISTATE_ON:FCK_TRISTATE_OFF);};function FCKFitWindow_Resize(){var oViewPaneSize=FCKTools.GetViewPaneSize(parent);var eEditorFrameStyle=window.frameElement.style;eEditorFrameStyle.width=oViewPaneSize.Width+'px';eEditorFrameStyle.height=oViewPaneSize.Height+'px';};
+var FCKCommands=FCK.Commands=new Object();FCKCommands.LoadedCommands=new Object();FCKCommands.RegisterCommand=function(A,B){this.LoadedCommands[A]=B;};FCKCommands.GetCommand=function(A){var B=FCKCommands.LoadedCommands[A];if (B) return B;switch (A){case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,390,FCKCommands.GetFullPageState);break;case 'Templates':B=new FCKDialogCommand('Templates',FCKLang.DlgTemplatesTitle,'dialog/fck_template.html',380,450);break;case 'Link':B=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,330,FCK.GetNamedCommandState,'CreateLink');break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,170);break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html',370,170);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html',370,170);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',400,330);break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindTitle,'dialog/fck_find.html',340,170);break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgReplaceTitle,'dialog/fck_replace.html',340,200);break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,400);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,400);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,320);break;case 'Smiley':B=new FCKDialogCommand('Smiley',FCKLang.DlgSmileyTitle,'dialog/fck_smiley.html',FCKConfig.SmileyWindowWidth,FCKConfig.SmileyWindowHeight);break;case 'Table':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html',450,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',400,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',550,250);break;case 'UniversalKey':B=new FCKDialogCommand('UniversalKey',FCKLang.UniversalKeyboard,'dialog/fck_universalkey.html',415,300);break;case 'Style':B=new FCKStyleCommand();break;case 'FontName':B=new FCKFontNameCommand();break;case 'FontSize':B=new FCKFontSizeCommand();break;case 'FontFormat':B=new FCKFormatBlockCommand();break;case 'Source':B=new FCKSourceCommand();break;case 'Preview':B=new FCKPreviewCommand();break;case 'Save':B=new FCKSaveCommand();break;case 'NewPage':B=new FCKNewPageCommand();break;case 'PageBreak':B=new FCKPageBreakCommand();break;case 'TextColor':B=new FCKTextColorCommand('ForeColor');break;case 'BGColor':B=new FCKTextColorCommand('BackColor');break;case 'PasteText':B=new FCKPastePlainTextCommand();break;case 'PasteWord':B=new FCKPasteWordCommand();break;case 'TableInsertRow':B=new FCKTableCommand('TableInsertRow');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumn':B=new FCKTableCommand('TableInsertColumn');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCell':B=new FCKTableCommand('TableInsertCell');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableSplitCell':B=new FCKTableCommand('TableSplitCell');break;case 'TableDelete':B=new FCKTableCommand('TableDelete');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,230);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,230);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,230);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,230);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,230);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,230);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,230);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,380);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,400);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'FitWindow':B=new FCKFitWindow();break;case 'Undo':B=new FCKUndoCommand();break;case 'Redo':B=new FCKRedoCommand();break;case 'Undefined':B=new FCKUndefinedCommand();break;default:if (FCKRegexLib.NamedCommands.test(A)) B=new FCKNamedCommand(A);else{alert(FCKLang.UnknownCommand.replace(/%1/g,A));return null;}};FCKCommands.LoadedCommands[A]=B;return B;};FCKCommands.GetFullPageState=function(){return FCKConfig.FullPage?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;};
+var FCKPanel=function(A){this.IsRTL=(FCKLang.Dir=='rtl');this.IsContextMenu=false;this._LockCounter=0;this._Window=A||window;var B;if (FCKBrowserInfo.IsIE){this._Popup=this._Window.createPopup();B=this.Document=this._Popup.document;}else{var C=this._IFrame=this._Window.document.createElement('iframe');C.src='javascript:void(0)';C.allowTransparency=true;C.frameBorder='0';C.scrolling='no';C.style.position='absolute';C.style.zIndex=FCKConfig.FloatingPanelsZIndex;C.width=C.height=0;if (this._Window==window.parent&&window.frameElement) window.frameElement.parentNode.insertBefore(C,window.frameElement);else this._Window.document.body.appendChild(C);var D=C.contentWindow;B=this.Document=D.document;B.open();B.write('<html><head></head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();FCKTools.AddEventListenerEx(D,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(D,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;B.oncontextmenu=FCKTools.CancelEvent;this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.Show=function(x,y,A,B,C){if (this._Popup){this._Popup.show(x,y,0,0,A);this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';var D=this.MainNode.offsetWidth;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};this._Popup.show(x,y,D,this.MainNode.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Lock();if (this.ParentPanel) this.ParentPanel.Lock();this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';var D=this.MainNode.offsetWidth;if (!B)	this._IFrame.width=1;if (!C)	this._IFrame.height=1;D=this.MainNode.offsetWidth;var F=FCKTools.GetElementPosition((A.nodeType==9?A.body:A),this._Window);if (this.IsRTL&&!this.IsContextMenu) x=(x*-1);x+=F.X;y+=F.Y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var G=FCKTools.GetViewPaneSize(this._Window);var H=FCKTools.GetScrollPosition(this._Window);var I=G.Height+H.Y;var J=G.Width+H.X;if ((x+D)>J) x-=x+D-J;if ((y+this.MainNode.offsetHeight)>I) y-=y+this.MainNode.offsetHeight-I;};if (x<0) x=0;this._IFrame.style.left=x+'px';this._IFrame.style.top=y+'px';var K=D;var L=this.MainNode.offsetHeight;this._IFrame.width=K;this._IFrame.height=L;this._IFrame.contentWindow.focus();};this._IsOpened=true;FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened) return;if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Unlock();this._IFrame.width=this._IFrame.height=0;this._IsOpened=false;if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetParentWindow(this.Document):this._Window;var B=new FCKPanel(A,true);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&&!this.HasFocus) this.Hide();};/* Events */ function FCKPanel_Window_OnFocus(e,panel){panel.HasFocus=true;};function FCKPanel_Window_OnBlur(e,panel){panel.HasFocus=false;if (panel._LockCounter==0) FCKTools.RunFunction(panel.Hide,panel);};function CheckPopupOnHide(forceHide){if (forceHide||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;}
+var FCKIcon=function(A){var B=A?typeof(A):'undefined';switch (B){case 'number':this.Path=FCKConfig.SkinPath+'fck_strip.gif';this.Size=16;this.Position=A;break;case 'undefined':this.Path=FCK_SPACER_PATH;break;case 'string':this.Path=A;break;default:this.Path=A[0];this.Size=A[1];this.Position=A[2];}};FCKIcon.prototype.CreateIconElement=function(A){var B;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');var D=B.appendChild(A.createElement('IMG'));D.src=this.Path;D.style.top=C;}else{B=A.createElement('IMG');B.src=FCK_SPACER_PATH;B.style.backgroundPosition='0px '+C;B.style.backgroundImage='url('+this.Path+')';}}else{B=A.createElement('DIV');var D=B.appendChild(A.createElement('IMG'));D.src=this.Path?this.Path:FCK_SPACER_PATH;};B.className='TB_Button_Image';return B;}
+var FCKToolbarButtonUI=function(A,B,C,D,E,F){this.Name=A;this.Label=B||A;this.Tooltip=C||this.Label;this.Style=E||FCK_TOOLBARITEM_ONLYICON;this.State=F||FCK_TRISTATE_OFF;this.Icon=new FCKIcon(D);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarButtonUI_Cleanup);};FCKToolbarButtonUI.prototype._CreatePaddingElement=function(A){var B=A.createElement('IMG');B.className='TB_Button_Padding';B.src=FCK_SPACER_PATH;return B;};FCKToolbarButtonUI.prototype.Create=function(A){var B=this.MainElement;if (B){FCKToolbarButtonUI_Cleanup.call(this);if (B.parentNode) B.parentNode.removeChild(B);B=this.MainElement=null;};var C=FCKTools.GetElementDocument(A);B=this.MainElement=C.createElement('DIV');B._FCKButton=this;B.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) B.onmousedown=FCKTools.CancelEvent;this.ChangeState(this.State,true);if (this.Style==FCK_TOOLBARITEM_ONLYICON&&!this.ShowArrow){B.appendChild(this.Icon.CreateIconElement(C));}else{var D=B.appendChild(C.createElement('TABLE'));D.cellPadding=0;D.cellSpacing=0;var E=D.insertRow(-1);var F=E.insertCell(-1);if (this.Style==FCK_TOOLBARITEM_ONLYICON||this.Style==FCK_TOOLBARITEM_ICONTEXT) F.appendChild(this.Icon.CreateIconElement(C));else F.appendChild(this._CreatePaddingElement(C));if (this.Style==FCK_TOOLBARITEM_ONLYTEXT||this.Style==FCK_TOOLBARITEM_ICONTEXT){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(C.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=FCK_TOOLBARITEM_ONLYICON){E.insertCell(-1).appendChild(this._CreatePaddingElement(C));};F=E.insertCell(-1);var G=F.appendChild(C.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(C));};A.appendChild(B);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&&this.State==A) return;var e=this.MainElement;switch (parseInt(A)){case FCK_TRISTATE_OFF:e.className='TB_Button_Off';e.onmouseover=FCKToolbarButton_OnMouseOverOff;e.onmouseout=FCKToolbarButton_OnMouseOutOff;e.onclick=FCKToolbarButton_OnClick;break;case FCK_TRISTATE_ON:e.className='TB_Button_On';e.onmouseover=FCKToolbarButton_OnMouseOverOn;e.onmouseout=FCKToolbarButton_OnMouseOutOn;e.onclick=FCKToolbarButton_OnClick;break;case FCK_TRISTATE_DISABLED:e.className='TB_Button_Disabled';e.onmouseover=null;e.onmouseout=null;e.onclick=null;bEnableEvents=false;break;};this.State=A;};function FCKToolbarButtonUI_Cleanup(){if (this.MainElement){this.MainElement._FCKButton=null;this.MainElement=null;}};function FCKToolbarButton_OnMouseOverOn(){this.className='TB_Button_On_Over';};function FCKToolbarButton_OnMouseOutOn(){this.className='TB_Button_On';};function FCKToolbarButton_OnMouseOverOff(){this.className='TB_Button_Off_Over';};function FCKToolbarButton_OnMouseOutOff(){this.className='TB_Button_Off';};function FCKToolbarButton_OnClick(e){if (this._FCKButton.OnClick) this._FCKButton.OnClick(this._FCKButton);};
+var FCKToolbarButton=function(A,B,C,D,E,F,G){this.CommandName=A;this.Label=B;this.Tooltip=C;this.Style=D;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;if (G==null) this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(G)=='number') this.IconPath=[FCKConfig.SkinPath+'fck_strip.gif',16,G];};FCKToolbarButton.prototype.Create=function(A){this._UIButton=new FCKToolbarButtonUI(this.CommandName,this.Label,this.Tooltip,this.IconPath,this.Style);this._UIButton.OnClick=this.Click;this._UIButton._ToolbarButton=this;this._UIButton.Create(A);};FCKToolbarButton.prototype.RefreshState=function(){var A=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (A==this._UIButton.State) return;this._UIButton.ChangeState(A);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(FCK_TRISTATE_DISABLED);}
+var FCKSpecialCombo=function(A,B,C,D,E){this.FieldWidth=B||100;this.PanelWidth=C||150;this.PanelMaxHeight=D||150;this.Label='&nbsp;';this.Caption=A;this.Tooltip=A;this.Style=FCK_TOOLBARITEM_ICONTEXT;this.Enabled=true;this.Items=new Object();this._Panel=new FCKPanel(E||window,true);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._PanelBox=this._Panel.MainNode.appendChild(this._Panel.Document.createElement('DIV'));this._PanelBox.className='SC_Panel';this._PanelBox.style.width=this.PanelWidth+'px';this._PanelBox.innerHTML='<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>';this._ItemsHolderEl=this._PanelBox.getElementsByTagName('TD')[0];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKSpecialCombo_Cleanup);};function FCKSpecialCombo_ItemOnMouseOver(){this.className+=' SC_ItemOver';};function FCKSpecialCombo_ItemOnMouseOut(){this.className=this.originalClass;};function FCKSpecialCombo_ItemOnClick(){this.className=this.originalClass;this.FCKSpecialCombo._Panel.Hide();this.FCKSpecialCombo.SetLabel(this.FCKItemLabel);if (typeof(this.FCKSpecialCombo.OnSelect)=='function') this.FCKSpecialCombo.OnSelect(this.FCKItemID,this);};FCKSpecialCombo.prototype.AddItem=function(A,B,C,D){var E=this._ItemsHolderEl.appendChild(this._Panel.Document.createElement('DIV'));E.className=E.originalClass='SC_Item';E.innerHTML=B;E.FCKItemID=A;E.FCKItemLabel=C||A;E.FCKSpecialCombo=this;E.Selected=false;if (FCKBrowserInfo.IsIE) E.style.width='100%';if (D) E.style.backgroundColor=D;E.onmouseover=FCKSpecialCombo_ItemOnMouseOver;E.onmouseout=FCKSpecialCombo_ItemOnMouseOut;E.onclick=FCKSpecialCombo_ItemOnClick;this.Items[A.toString().toLowerCase()]=E;return E;};FCKSpecialCombo.prototype.SelectItem=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];if (B){B.className=B.originalClass='SC_ItemSelected';B.Selected=true;}};FCKSpecialCombo.prototype.SelectItemByLabel=function(A,B){for (var C in this.Items){var D=this.Items[C];if (D.FCKItemLabel==A){D.className=D.originalClass='SC_ItemSelected';D.Selected=true;if (B) this.SetLabel(A);}}};FCKSpecialCombo.prototype.DeselectAll=function(A){for (var i in this.Items){this.Items[i].className=this.Items[i].originalClass='SC_Item';this.Items[i].Selected=false;};if (A) this.SetLabel('');};FCKSpecialCombo.prototype.SetLabelById=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];this.SetLabel(B?B.FCKItemLabel:'');};FCKSpecialCombo.prototype.SetLabel=function(A){this.Label=A.length==0?'&nbsp;':A;if (this._LabelEl) this._LabelEl.innerHTML=this.Label;};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this._OuterTable=A.appendChild(B.createElement('TABLE'));C.cellPadding=0;C.cellSpacing=0;C.insertRow(-1);var D;var E;switch (this.Style){case FCK_TOOLBARITEM_ONLYICON:D='TB_ButtonType_Icon';E=false;break;case FCK_TOOLBARITEM_ONLYTEXT:D='TB_ButtonType_Text';E=false;break;case FCK_TOOLBARITEM_ICONTEXT:E=true;break;};if (this.Caption&&this.Caption.length>0&&E){var F=C.rows[0].insertCell(-1);F.innerHTML=this.Caption;F.className='SC_FieldCaption';};var G=FCKTools.AppendElement(C.rows[0].insertCell(-1),'div');if (E){G.className='SC_Field';G.style.width=this.FieldWidth+'px';G.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldLabel"><label>&nbsp;</label></td><td class="SC_FieldButton">&nbsp;</td></tr></tbody></table>';this._LabelEl=G.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{G.className='TB_Button_Off';G.innerHTML='<table title="'+this.Tooltip+'" class="'+D+'" cellspacing="0" cellpadding="0" border="0">'+'<tr>'+'<td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td>'+'<td class="TB_Text">'+this.Caption+'</td>'+'<td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td>'+'<td class="TB_ButtonArrow"><img src="'+FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif" width="5" height="3"></td>'+'<td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td>'+'</tr>'+'</table>';};G.SpecialCombo=this;G.onmouseover=FCKSpecialCombo_OnMouseOver;G.onmouseout=FCKSpecialCombo_OnMouseOut;G.onclick=FCKSpecialCombo_OnClick;FCKTools.DisableSelection(this._Panel.Document.body);};function FCKSpecialCombo_Cleanup(){this._LabelEl=null;this._OuterTable=null;this._ItemsHolderEl=null;this._PanelBox=null;if (this.Items){for (var key in this.Items) this.Items[key]=null;}};function FCKSpecialCombo_OnMouseOver(){if (this.SpecialCombo.Enabled){switch (this.SpecialCombo.Style){case FCK_TOOLBARITEM_ONLYICON:this.className='TB_Button_On_Over';break;case FCK_TOOLBARITEM_ONLYTEXT:this.className='TB_Button_On_Over';break;case FCK_TOOLBARITEM_ICONTEXT:this.className='SC_Field SC_FieldOver';break;}}};function FCKSpecialCombo_OnMouseOut(){switch (this.SpecialCombo.Style){case FCK_TOOLBARITEM_ONLYICON:this.className='TB_Button_Off';break;case FCK_TOOLBARITEM_ONLYTEXT:this.className='TB_Button_Off';break;case FCK_TOOLBARITEM_ICONTEXT:this.className='SC_Field';break;}};function FCKSpecialCombo_OnClick(e){var oSpecialCombo=this.SpecialCombo;if (oSpecialCombo.Enabled){var oPanel=oSpecialCombo._Panel;var oPanelBox=oSpecialCombo._PanelBox;var oItemsHolder=oSpecialCombo._ItemsHolderEl;var iMaxHeight=oSpecialCombo.PanelMaxHeight;if (oSpecialCombo.OnBeforeClick) oSpecialCombo.OnBeforeClick(oSpecialCombo);if (FCKBrowserInfo.IsIE) oPanel.Preload(0,this.offsetHeight,this);if (oItemsHolder.offsetHeight>iMaxHeight) oPanelBox.style.height=iMaxHeight+'px';else oPanelBox.style.height='';oPanel.Show(0,this.offsetHeight,this);}};
+var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;};function FCKToolbarSpecialCombo_OnSelect(itemId,item){FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Execute(itemId,item);};FCKToolbarSpecialCombo.prototype.Create=function(A){this._Combo=new FCKSpecialCombo(this.GetLabel(),this.FieldWidth,this.PanelWidth,this.PanelMaxHeight,FCKBrowserInfo.IsIE?window:FCKTools.GetElementWindow(A).parent);this._Combo.Tooltip=this.Tooltip;this._Combo.Style=this.Style;this.CreateItems(this._Combo);this._Combo.Create(A);this._Combo.CommandName=this.CommandName;this._Combo.OnSelect=FCKToolbarSpecialCombo_OnSelect;};function FCKToolbarSpecialCombo_RefreshActiveItems(combo,value){combo.DeselectAll();combo.SelectItem(value);combo.SetLabelById(value);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B!=FCK_TRISTATE_DISABLED){A=FCK_TRISTATE_ON;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else{if (this._LastValue!=B){this._LastValue=B;FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}}}else A=FCK_TRISTATE_DISABLED;if (A==this.State) return;if (A==FCK_TRISTATE_DISABLED){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=FCK_TRISTATE_DISABLED);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=FCK_TRISTATE_DISABLED;this._Combo.DeselectAll();this._Combo.SetLabel('');this._Combo.SetEnabled(false);}
+var FCKToolbarFontsCombo=function(A,B){this.CommandName='FontName';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;};FCKToolbarFontsCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontsCombo.prototype.GetLabel=function(){return FCKLang.Font;};FCKToolbarFontsCombo.prototype.CreateItems=function(A){var B=FCKConfig.FontNames.split(';');for (var i=0;i<B.length;i++) this._Combo.AddItem(B[i],'<font face="'+B[i]+'" style="font-size: 12px">'+B[i]+'</font>');}
+var FCKToolbarFontSizeCombo=function(A,B){this.CommandName='FontSize';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;};FCKToolbarFontSizeCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontSizeCombo.prototype.GetLabel=function(){return FCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.CreateItems=function(A){A.FieldWidth=70;var B=FCKConfig.FontSizes.split(';');for (var i=0;i<B.length;i++){var C=B[i].split('/');this._Combo.AddItem(C[0],'<font size="'+C[0]+'">'+C[1]+'</font>',C[1]);}}
+var FCKToolbarFontFormatCombo=function(A,B){this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;this.NormalLabel='Normal';this.PanelWidth=190;};FCKToolbarFontFormatCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.CreateItems=function(A){FCKTools.AppendStyleSheet(A._Panel.Document,FCKConfig.ToolbarComboPreviewCSS);var B=FCKLang['FontFormats'].split(';');var C={p:B[0],pre:B[1],address:B[2],h1:B[3],h2:B[4],h3:B[5],h4:B[6],h5:B[7],h6:B[8],div:B[9]};var D=FCKConfig.FontFormats.split(';');for (var i=0;i<D.length;i++){var E=D[i];var F=C[E];if (E=='p') this.NormalLabel=F;this._Combo.AddItem(E,'<div class="BaseFont"><'+E+'>'+F+'</'+E+'></div>',F);}};if (FCKBrowserInfo.IsIE){FCKToolbarFontFormatCombo.prototype.RefreshActiveItems=function(A,B){if (B==this.NormalLabel){if (A.Label!='&nbsp;') A.DeselectAll(true);}else{if (this._LastValue==B) return;A.SelectItemByLabel(B,true);};this._LastValue=B;}}
+var FCKToolbarStyleCombo=function(A,B){this.CommandName='Style';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);B.body.className+=' ForceBaseFont';if (!FCKBrowserInfo.IsGecko) A.OnBeforeClick=this.RefreshVisibleItems;var C=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Styles;for (var s in C){var D=C[s];var E;if (D.IsObjectElement) E=A.AddItem(s,s);else E=A.AddItem(s,D.GetOpenerTag()+s+D.GetCloserTag());E.Style=D;}};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){A.DeselectAll();var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetActiveStyles();if (B.length>0){for (var i=0;i<B.length;i++) A.SelectItem(B[i].Name);A.SetLabelById(B[0].Name);}else A.SetLabel('');};FCKToolbarStyleCombo.prototype.RefreshVisibleItems=function(A){if (FCKSelection.GetType()=='Control') var B=FCKSelection.GetSelectedElement().tagName;for (var i in A.Items){var C=A.Items[i];if ((B&&C.Style.Element==B)||(!B&&!C.Style.IsObjectElement)) C.style.display='';else C.style.display='none';}}
+var FCKToolbarPanelButton=function(A,B,C,D,E){this.CommandName=A;var F;if (E==null) F=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(E)=='number') F=[FCKConfig.SkinPath+'fck_strip.gif',16,E];var G=this._UIButton=new FCKToolbarButtonUI(A,B,C,F,D);G._FCKToolbarPanelButton=this;G.ShowArrow=true;G.OnClick=FCKToolbarPanelButton_OnButtonClick;};FCKToolbarPanelButton.prototype.TypeName='FCKToolbarPanelButton';FCKToolbarPanelButton.prototype.Create=function(A){A.className+='Menu';this._UIButton.Create(A);var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName)._Panel;B._FCKToolbarPanelButton=this;var C=B.Document.body.appendChild(B.Document.createElement('div'));C.style.position='absolute';C.style.top='0px';var D=this.LineImg=C.appendChild(B.Document.createElement('IMG'));D.className='TB_ConnectionLine';D.src=FCK_SPACER_PATH;B.OnHide=FCKToolbarPanelButton_OnPanelHide;};function FCKToolbarPanelButton_OnButtonClick(toolbarButton){var oButton=this._FCKToolbarPanelButton;var e=oButton._UIButton.MainElement;oButton._UIButton.ChangeState(FCK_TRISTATE_ON);oButton.LineImg.style.width=(e.offsetWidth-2)+'px';FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(oButton.CommandName).Execute(0,e.offsetHeight-1,e);};function FCKToolbarPanelButton_OnPanelHide(){var oMenuButton=this._FCKToolbarPanelButton;oMenuButton._UIButton.ChangeState(FCK_TRISTATE_OFF);};FCKToolbarPanelButton.prototype.RefreshState=FCKToolbarButton.prototype.RefreshState;FCKToolbarPanelButton.prototype.Enable=FCKToolbarButton.prototype.Enable;FCKToolbarPanelButton.prototype.Disable=FCKToolbarButton.prototype.Disable;
+var FCKToolbarItems=new Object();FCKToolbarItems.LoadedItems=new Object();FCKToolbarItems.RegisterItem=function(A,B){this.LoadedItems[A]=B;};FCKToolbarItems.GetItem=function(A){var B=FCKToolbarItems.LoadedItems[A];if (B) return B;switch (A){case 'Source':B=new FCKToolbarButton('Source',FCKLang.Source,null,FCK_TOOLBARITEM_ICONTEXT,true,true,1);break;case 'DocProps':B=new FCKToolbarButton('DocProps',FCKLang.DocProps,null,null,null,null,2);break;case 'Save':B=new FCKToolbarButton('Save',FCKLang.Save,null,null,true,null,3);break;case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true,null,4);break;case 'Preview':B=new FCKToolbarButton('Preview',FCKLang.Preview,null,null,true,null,5);break;case 'Templates':B=new FCKToolbarButton('Templates',FCKLang.Templates,null,null,null,null,6);break;case 'About':B=new FCKToolbarButton('About',FCKLang.About,null,null,true,null,47);break;case 'Cut':B=new FCKToolbarButton('Cut',FCKLang.Cut,null,null,false,true,7);break;case 'Copy':B=new FCKToolbarButton('Copy',FCKLang.Copy,null,null,false,true,8);break;case 'Paste':B=new FCKToolbarButton('Paste',FCKLang.Paste,null,null,false,true,9);break;case 'PasteText':B=new FCKToolbarButton('PasteText',FCKLang.PasteText,null,null,false,true,10);break;case 'PasteWord':B=new FCKToolbarButton('PasteWord',FCKLang.PasteWord,null,null,false,true,11);break;case 'Print':B=new FCKToolbarButton('Print',FCKLang.Print,null,null,false,true,12);break;case 'SpellCheck':B=new FCKToolbarButton('SpellCheck',FCKLang.SpellCheck,null,null,null,null,13);break;case 'Undo':B=new FCKToolbarButton('Undo',FCKLang.Undo,null,null,false,true,14);break;case 'Redo':B=new FCKToolbarButton('Redo',FCKLang.Redo,null,null,false,true,15);break;case 'SelectAll':B=new FCKToolbarButton('SelectAll',FCKLang.SelectAll,null,null,null,null,18);break;case 'RemoveFormat':B=new FCKToolbarButton('RemoveFormat',FCKLang.RemoveFormat,null,null,false,true,19);break;case 'FitWindow':B=new FCKToolbarButton('FitWindow',FCKLang.FitWindow,null,null,true,true,66);break;case 'Bold':B=new FCKToolbarButton('Bold',FCKLang.Bold,null,null,false,true,20);break;case 'Italic':B=new FCKToolbarButton('Italic',FCKLang.Italic,null,null,false,true,21);break;case 'Underline':B=new FCKToolbarButton('Underline',FCKLang.Underline,null,null,false,true,22);break;case 'StrikeThrough':B=new FCKToolbarButton('StrikeThrough',FCKLang.StrikeThrough,null,null,false,true,23);break;case 'Subscript':B=new FCKToolbarButton('Subscript',FCKLang.Subscript,null,null,false,true,24);break;case 'Superscript':B=new FCKToolbarButton('Superscript',FCKLang.Superscript,null,null,false,true,25);break;case 'OrderedList':B=new FCKToolbarButton('InsertOrderedList',FCKLang.NumberedListLbl,FCKLang.NumberedList,null,false,true,26);break;case 'UnorderedList':B=new FCKToolbarButton('InsertUnorderedList',FCKLang.BulletedListLbl,FCKLang.BulletedList,null,false,true,27);break;case 'Outdent':B=new FCKToolbarButton('Outdent',FCKLang.DecreaseIndent,null,null,false,true,28);break;case 'Indent':B=new FCKToolbarButton('Indent',FCKLang.IncreaseIndent,null,null,false,true,29);break;case 'Link':B=new FCKToolbarButton('Link',FCKLang.InsertLinkLbl,FCKLang.InsertLink,null,false,true,34);break;case 'Unlink':B=new FCKToolbarButton('Unlink',FCKLang.RemoveLink,null,null,false,true,35);break;case 'Anchor':B=new FCKToolbarButton('Anchor',FCKLang.Anchor,null,null,null,null,36);break;case 'Image':B=new FCKToolbarButton('Image',FCKLang.InsertImageLbl,FCKLang.InsertImage,null,false,true,37);break;case 'Flash':B=new FCKToolbarButton('Flash',FCKLang.InsertFlashLbl,FCKLang.InsertFlash,null,false,true,38);break;case 'Table':B=new FCKToolbarButton('Table',FCKLang.InsertTableLbl,FCKLang.InsertTable,null,false,true,39);break;case 'SpecialChar':B=new FCKToolbarButton('SpecialChar',FCKLang.InsertSpecialCharLbl,FCKLang.InsertSpecialChar,null,false,true,42);break;case 'Smiley':B=new FCKToolbarButton('Smiley',FCKLang.InsertSmileyLbl,FCKLang.InsertSmiley,null,false,true,41);break;case 'PageBreak':B=new FCKToolbarButton('PageBreak',FCKLang.PageBreakLbl,FCKLang.PageBreak,null,false,true,43);break;case 'UniversalKey':B=new FCKToolbarButton('UniversalKey',FCKLang.UniversalKeyboard,null,null,false,true,44);break;case 'Rule':B=new FCKToolbarButton('InsertHorizontalRule',FCKLang.InsertLineLbl,FCKLang.InsertLine,null,false,true,40);break;case 'JustifyLeft':B=new FCKToolbarButton('JustifyLeft',FCKLang.LeftJustify,null,null,false,true,30);break;case 'JustifyCenter':B=new FCKToolbarButton('JustifyCenter',FCKLang.CenterJustify,null,null,false,true,31);break;case 'JustifyRight':B=new FCKToolbarButton('JustifyRight',FCKLang.RightJustify,null,null,false,true,32);break;case 'JustifyFull':B=new FCKToolbarButton('JustifyFull',FCKLang.BlockJustify,null,null,false,true,33);break;case 'Style':B=new FCKToolbarStyleCombo();break;case 'FontName':B=new FCKToolbarFontsCombo();break;case 'FontSize':B=new FCKToolbarFontSizeCombo();break;case 'FontFormat':B=new FCKToolbarFontFormatCombo();break;case 'TextColor':B=new FCKToolbarPanelButton('TextColor',FCKLang.TextColor,null,null,45);break;case 'BGColor':B=new FCKToolbarPanelButton('BGColor',FCKLang.BGColor,null,null,46);break;case 'Find':B=new FCKToolbarButton('Find',FCKLang.Find,null,null,null,null,16);break;case 'Replace':B=new FCKToolbarButton('Replace',FCKLang.Replace,null,null,null,null,17);break;case 'Form':B=new FCKToolbarButton('Form',FCKLang.Form,null,null,null,null,48);break;case 'Checkbox':B=new FCKToolbarButton('Checkbox',FCKLang.Checkbox,null,null,null,null,49);break;case 'Radio':B=new FCKToolbarButton('Radio',FCKLang.RadioButton,null,null,null,null,50);break;case 'TextField':B=new FCKToolbarButton('TextField',FCKLang.TextField,null,null,null,null,51);break;case 'Textarea':B=new FCKToolbarButton('Textarea',FCKLang.Textarea,null,null,null,null,52);break;case 'HiddenField':B=new FCKToolbarButton('HiddenField',FCKLang.HiddenField,null,null,null,null,56);break;case 'Button':B=new FCKToolbarButton('Button',FCKLang.Button,null,null,null,null,54);break;case 'Select':B=new FCKToolbarButton('Select',FCKLang.SelectionField,null,null,null,null,53);break;case 'ImageButton':B=new FCKToolbarButton('ImageButton',FCKLang.ImageButton,null,null,null,null,55);break;default:alert(FCKLang.UnknownToolbarItem.replace(/%1/g,A));return null;};FCKToolbarItems.LoadedItems[A]=B;return B;}
+var FCKToolbar=function(){this.Items=new Array();if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbar_Cleanup);};FCKToolbar.prototype.AddItem=function(A){return this.Items[this.Items.length]=A;};FCKToolbar.prototype.AddButton=function(A,B,C,D,E,F){if (typeof(D)=='number') D=[this.DefaultIconsStrip,this.DefaultIconSize,D];var G=new FCKToolbarButtonUI(A,B,C,D,E,F);G._FCKToolbar=this;G.OnClick=FCKToolbar_OnItemClick;return this.AddItem(G);};function FCKToolbar_OnItemClick(item){var oToolbar=item._FCKToolbar;if (oToolbar.OnItemClick) oToolbar.OnItemClick(oToolbar,item);};FCKToolbar.prototype.AddSeparator=function(){this.AddItem(new FCKToolbarSeparator());};FCKToolbar.prototype.Create=function(A){if (this.MainElement){if (this.MainElement.parentNode) this.MainElement.parentNode.removeChild(this.MainElement);this.MainElement=null;};var B=FCKTools.GetElementDocument(A);var e=this.MainElement=B.createElement('table');e.className='TB_Toolbar';e.style.styleFloat=e.style.cssFloat=(FCKLang.Dir=='ltr'?'left':'right');e.dir=FCKLang.Dir;e.cellPadding=0;e.cellSpacing=0;this.RowElement=e.insertRow(-1);var C;if (!this.HideStart){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_Start';};for (var i=0;i<this.Items.length;i++){this.Items[i].Create(this.RowElement.insertCell(-1));};if (!this.HideEnd){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_End';};A.appendChild(e);};function FCKToolbar_Cleanup(){this.MainElement=null;this.RowElement=null;};var FCKToolbarSeparator=function(){};FCKToolbarSeparator.prototype.Create=function(A){FCKTools.AppendElement(A,'div').className='TB_Separator';}
+var FCKToolbarBreak=function(){};FCKToolbarBreak.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A).createElement('div');B.className='TB_Break';B.style.clear=FCKLang.Dir=='rtl'?'left':'right';A.appendChild(B);}
+function FCKToolbarSet_Create(overhideLocation){var oToolbarSet;var sLocation=overhideLocation||FCKConfig.ToolbarLocation;switch (sLocation){case 'In':document.getElementById('xToolbarRow').style.display='';oToolbarSet=new FCKToolbarSet(document);break;default:FCK.Events.AttachEvent('OnBlur',FCK_OnBlur);FCK.Events.AttachEvent('OnFocus',FCK_OnFocus);var eToolbarTarget;var oOutMatch=sLocation.match(/^Out:(.+)\((\w+)\)$/);if (oOutMatch){eToolbarTarget=eval('parent.'+oOutMatch[1]).document.getElementById(oOutMatch[2]);}else{oOutMatch=sLocation.match(/^Out:(\w+)$/);if (oOutMatch) eToolbarTarget=parent.document.getElementById(oOutMatch[1]);};if (!eToolbarTarget){alert('Invalid value for "ToolbarLocation"');return this._Init('In');};if (oToolbarSet=eToolbarTarget.__FCKToolbarSet) break;var eToolbarIFrame=FCKTools.GetElementDocument(eToolbarTarget).createElement('iframe');eToolbarIFrame.frameBorder=0;eToolbarIFrame.width='100%';eToolbarIFrame.height='10';eToolbarTarget.appendChild(eToolbarIFrame);eToolbarIFrame.unselectable='on';var eTargetDocument=eToolbarIFrame.contentWindow.document;eTargetDocument.open();eTargetDocument.write('<html><head><script type="text/javascript"> window.onload = window.onresize = function() { window.frameElement.height = document.body.scrollHeight ; } </script></head><body style="overflow: hidden">'+document.getElementById('xToolbarSpace').innerHTML+'</body></html>');eTargetDocument.close();eTargetDocument.oncontextmenu=FCKTools.CancelEvent;FCKTools.AppendStyleSheet(eTargetDocument,FCKConfig.SkinPath+'fck_editor.css');oToolbarSet=eToolbarTarget.__FCKToolbarSet=new FCKToolbarSet(eTargetDocument);oToolbarSet._IFrame=eToolbarIFrame;if (FCK.IECleanup) FCK.IECleanup.AddItem(eToolbarTarget,FCKToolbarSet_Target_Cleanup);};oToolbarSet.CurrentInstance=FCK;FCK.AttachToOnSelectionChange(oToolbarSet.RefreshItemsState);return oToolbarSet;};function FCK_OnBlur(editorInstance){var eToolbarSet=editorInstance.ToolbarSet;if (eToolbarSet.CurrentInstance==editorInstance) eToolbarSet.Disable();};function FCK_OnFocus(editorInstance){var oToolbarset=editorInstance.ToolbarSet;var oInstance=editorInstance||FCK;oToolbarset.CurrentInstance.FocusManager.RemoveWindow(oToolbarset._IFrame.contentWindow);oToolbarset.CurrentInstance=oInstance;oInstance.FocusManager.AddWindow(oToolbarset._IFrame.contentWindow,true);oToolbarset.Enable();};function FCKToolbarSet_Cleanup(){this._TargetElement=null;this._IFrame=null;};function FCKToolbarSet_Target_Cleanup(){this.__FCKToolbarSet=null;};var FCKToolbarSet=function(A){this._Document=A;this._TargetElement=A.getElementById('xToolbar');var B=A.getElementById('xExpandHandle');var C=A.getElementById('xCollapseHandle');B.title=FCKLang.ToolbarExpand;B.onclick=FCKToolbarSet_Expand_OnClick;C.title=FCKLang.ToolbarCollapse;C.onclick=FCKToolbarSet_Collapse_OnClick;if (!FCKConfig.ToolbarCanCollapse||FCKConfig.ToolbarStartExpanded) this.Expand();else this.Collapse();C.style.display=FCKConfig.ToolbarCanCollapse?'':'none';if (FCKConfig.ToolbarCanCollapse) C.style.display='';else A.getElementById('xTBLeftBorder').style.display='';this.Toolbars=new Array();this.IsLoaded=false;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarSet_Cleanup);};function FCKToolbarSet_Expand_OnClick(){FCK.ToolbarSet.Expand();};function FCKToolbarSet_Collapse_OnClick(){FCK.ToolbarSet.Collapse();};FCKToolbarSet.prototype.Expand=function(){this._ChangeVisibility(false);};FCKToolbarSet.prototype.Collapse=function(){this._ChangeVisibility(true);};FCKToolbarSet.prototype._ChangeVisibility=function(A){this._Document.getElementById('xCollapsed').style.display=A?'':'none';this._Document.getElementById('xExpanded').style.display=A?'none':'';if (FCKBrowserInfo.IsGecko){FCKTools.RunFunction(window.onresize);}};FCKToolbarSet.prototype.Load=function(A){this.Name=A;this.Items=new Array();this.ItemsWysiwygOnly=new Array();this.ItemsContextSensitive=new Array();this._TargetElement.innerHTML='';var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=new Array();for (var x=0;x<B.length;x++){var C=B[x];var D;if (typeof(C)=='string'){if (C=='/') D=new FCKToolbarBreak();}else{D=new FCKToolbar();for (var j=0;j<C.length;j++){var E=C[j];if (E=='-') D.AddSeparator();else{var F=FCKToolbarItems.GetItem(E);if (F){D.AddItem(F);this.Items.push(F);if (!F.SourceView) this.ItemsWysiwygOnly.push(F);if (F.ContextSensitive) this.ItemsContextSensitive.push(F);}}}};D.Create(this._TargetElement);this.Toolbars[this.Toolbars.length]=D;};FCKTools.DisableSelection(this._Document.getElementById('xCollapseHandle').parentNode);if (FCK.Status!=FCK_STATUS_COMPLETE) FCK.Events.AttachEvent('OnStatusChange',this.RefreshModeState);else this.RefreshModeState();this.IsLoaded=true;this.IsEnabled=true;FCKTools.RunFunction(this.OnLoad);};FCKToolbarSet.prototype.Enable=function(){if (this.IsEnabled) return;this.IsEnabled=true;var A=this.Items;for (var i=0;i<A.length;i++) A[i].RefreshState();};FCKToolbarSet.prototype.Disable=function(){if (!this.IsEnabled) return;this.IsEnabled=false;var A=this.Items;for (var i=0;i<A.length;i++) A[i].Disable();};FCKToolbarSet.prototype.RefreshModeState=function(A){if (FCK.Status!=FCK_STATUS_COMPLETE) return;var B=A?A.ToolbarSet:this;var C=B.ItemsWysiwygOnly;if (FCK.EditMode==FCK_EDITMODE_WYSIWYG){for (var i=0;i<C.length;i++) C[i].Enable();B.RefreshItemsState(A);}else{B.RefreshItemsState(A);for (var i=0;i<C.length;i++) C[i].Disable();}};FCKToolbarSet.prototype.RefreshItemsState=function(A){var B=(A?A.ToolbarSet:this).ItemsContextSensitive;for (var i=0;i<B.length;i++) B[i].RefreshState();};
+var FCKDialog=new Object();FCKDialog.OpenDialog=function(A,B,C,D,E,F,G,H){var I=new Object();I.Title=B;I.Page=C;I.Editor=window;I.CustomValue=F;var J=FCKConfig.BasePath+'fckdialog.html';this.Show(I,A,J,D,E,G,H);};
+FCKDialog.Show=function(A,B,C,D,E,F){if (!F) F=window;FCKFocusManager.Lock();var G;try{G=F.showModalDialog(C,A,"dialogWidth:"+D+"px;dialogHeight:"+E+"px;help:no;scroll:no;status:no");}catch(e){};if (!G) alert(FCKLang.DialogBlocked);FCKFocusManager.Unlock();};
+var FCKMenuItem=function(A,B,C,D,E){this.Name=B;this.Label=C||B;this.IsDisabled=E;this.Icon=new FCKIcon(D);this.SubMenu=new FCKMenuBlockPanel();this.SubMenu.Parent=A;this.SubMenu.OnClick=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnClick,this);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuItem_Cleanup);};FCKMenuItem.prototype.AddItem=function(A,B,C,D){this.HasSubMenu=true;return this.SubMenu.AddItem(A,B,C,D);};FCKMenuItem.prototype.AddSeparator=function(){this.SubMenu.AddSeparator();};FCKMenuItem.prototype.Create=function(A){var B=this.HasSubMenu;var C=FCKTools.GetElementDocument(A);var r=this.MainElement=A.insertRow(-1);r.className=this.IsDisabled?'MN_Item_Disabled':'MN_Item';if (!this.IsDisabled){FCKTools.AddEventListenerEx(r,'mouseover',FCKMenuItem_OnMouseOver,[this]);FCKTools.AddEventListenerEx(r,'click',FCKMenuItem_OnClick,[this]);if (!B) FCKTools.AddEventListenerEx(r,'mouseout',FCKMenuItem_OnMouseOut,[this]);};var D=r.insertCell(-1);D.className='MN_Icon';D.appendChild(this.Icon.CreateIconElement(C));D=r.insertCell(-1);D.className='MN_Label';D.noWrap=true;D.appendChild(C.createTextNode(this.Label));D=r.insertCell(-1);if (B){D.className='MN_Arrow';var E=D.appendChild(C.createElement('IMG'));E.src=FCK_IMAGES_PATH+'arrow_'+FCKLang.Dir+'.gif';E.width=4;E.height=7;this.SubMenu.Create();this.SubMenu.Panel.OnHide=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnHide,this);}};FCKMenuItem.prototype.Activate=function(){this.MainElement.className='MN_Item_Over';if (this.HasSubMenu){this.SubMenu.Show(this.MainElement.offsetWidth+2,-2,this.MainElement);};FCKTools.RunFunction(this.OnActivate,this);};FCKMenuItem.prototype.Deactivate=function(){this.MainElement.className='MN_Item';if (this.HasSubMenu) this.SubMenu.Hide();};/* Events */ function FCKMenuItem_SubMenu_OnClick(clickedItem,listeningItem){FCKTools.RunFunction(listeningItem.OnClick,listeningItem,[clickedItem]);};function FCKMenuItem_SubMenu_OnHide(menuItem){menuItem.Deactivate();};function FCKMenuItem_OnClick(ev,menuItem){if (menuItem.HasSubMenu) menuItem.Activate();else{menuItem.Deactivate();FCKTools.RunFunction(menuItem.OnClick,menuItem,[menuItem]);}};function FCKMenuItem_OnMouseOver(ev,menuItem){menuItem.Activate();};function FCKMenuItem_OnMouseOut(ev,menuItem){menuItem.Deactivate();};function FCKMenuItem_Cleanup(){this.MainElement=null;}
+var FCKMenuBlock=function(){this._Items=new Array();};FCKMenuBlock.prototype.Count=function(){return this._Items.length;};FCKMenuBlock.prototype.AddItem=function(A,B,C,D){var E=new FCKMenuItem(this,A,B,C,D);E.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);E.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(E);return E;};FCKMenuBlock.prototype.AddSeparator=function(){this._Items.push(new FCKMenuSeparator());};FCKMenuBlock.prototype.RemoveAllItems=function(){this._Items=new Array();var A=this._ItemsTable;if (A){while (A.rows.length>0) A.deleteRow(0);}};FCKMenuBlock.prototype.Create=function(A){if (!this._ItemsTable){if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuBlock_Cleanup);this._Window=FCKTools.GetElementWindow(A);var B=FCKTools.GetElementDocument(A);var C=A.appendChild(B.createElement('table'));C.cellPadding=0;C.cellSpacing=0;FCKTools.DisableSelection(C);var D=C.insertRow(-1).insertCell(-1);D.className='MN_Menu';var E=this._ItemsTable=D.appendChild(B.createElement('table'));E.cellPadding=0;E.cellSpacing=0;};for (var i=0;i<this._Items.length;i++) this._Items[i].Create(this._ItemsTable);};/* Events */ function FCKMenuBlock_Item_OnClick(clickedItem,menuBlock){FCKTools.RunFunction(menuBlock.OnClick,menuBlock,[clickedItem]);};function FCKMenuBlock_Item_OnActivate(menuBlock){var oActiveItem=menuBlock._ActiveItem;if (oActiveItem&&oActiveItem!=this){if (!FCKBrowserInfo.IsIE&&oActiveItem.HasSubMenu&&!this.HasSubMenu) menuBlock._Window.focus();oActiveItem.Deactivate();};menuBlock._ActiveItem=this;};function FCKMenuBlock_Cleanup(){this._Window=null;this._ItemsTable=null;};var FCKMenuSeparator=function(){};FCKMenuSeparator.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var r=A.insertRow(-1);var C=r.insertCell(-1);C.className='MN_Separator MN_Icon';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';}
+var FCKMenuBlockPanel=function(){FCKMenuBlock.call(this);};FCKMenuBlockPanel.prototype=new FCKMenuBlock();FCKMenuBlockPanel.prototype.Create=function(){var A=this.Panel=(this.Parent&&this.Parent.Panel?this.Parent.Panel.CreateChildPanel():new FCKPanel());A.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');FCKMenuBlock.prototype.Create.call(this,A.MainNode);};FCKMenuBlockPanel.prototype.Show=function(x,y,A){if (!this.Panel.CheckIsOpened()) this.Panel.Show(x,y,A);};FCKMenuBlockPanel.prototype.Hide=function(){if (this.Panel.CheckIsOpened()) this.Panel.Hide();}
+var FCKContextMenu=function(A,B,C){var D=this._Panel=new FCKPanel(A,true);D.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');D.IsContextMenu=true;var E=this._MenuBlock=new FCKMenuBlock();E.Panel=D;E.OnClick=FCKTools.CreateEventListener(FCKContextMenu_MenuBlock_OnClick,this);this._Redraw=true;this.SetMouseClickWindow(B||A);};FCKContextMenu.prototype.SetMouseClickWindow=function(A){if (!FCKBrowserInfo.IsIE){this._Document=A.document;this._Document.addEventListener('contextmenu',FCKContextMenu_Document_OnContextMenu,false);}};FCKContextMenu.prototype.AddItem=function(A,B,C,D){var E=this._MenuBlock.AddItem(A,B,C,D);this._Redraw=true;return E;};FCKContextMenu.prototype.AddSeparator=function(){this._MenuBlock.AddSeparator();this._Redraw=true;};FCKContextMenu.prototype.RemoveAllItems=function(){this._MenuBlock.RemoveAllItems();this._Redraw=true;};FCKContextMenu.prototype.AttachToElement=function(A){if (FCKBrowserInfo.IsIE) FCKTools.AddEventListenerEx(A,'contextmenu',FCKContextMenu_AttachedElement_OnContextMenu,this);else A._FCKContextMenu=this;};function FCKContextMenu_Document_OnContextMenu(e){var el=e.target;while (el){if (el._FCKContextMenu){FCKTools.CancelEvent(e);FCKContextMenu_AttachedElement_OnContextMenu(e,el._FCKContextMenu,el);};el=el.parentNode;}};function FCKContextMenu_AttachedElement_OnContextMenu(ev,fckContextMenu,el){var eTarget=el||this;if (fckContextMenu.OnBeforeOpen) fckContextMenu.OnBeforeOpen.call(fckContextMenu,eTarget);if (fckContextMenu._MenuBlock.Count()==0) return false;if (fckContextMenu._Redraw){fckContextMenu._MenuBlock.Create(fckContextMenu._Panel.MainNode);fckContextMenu._Redraw=false;};fckContextMenu._Panel.Show(ev.pageX||ev.screenX,ev.pageY||ev.screenY,ev.currentTarget||null);return false;};function FCKContextMenu_MenuBlock_OnClick(menuItem,contextMenu){contextMenu._Panel.Hide();FCKTools.RunFunction(contextMenu.OnItemClick,contextMenu,menuItem);}
+FCK.ContextMenu=new Object();FCK.ContextMenu.Listeners=new Array();FCK.ContextMenu.RegisterListener=function(A){if (A) this.Listeners.push(A);};function FCK_ContextMenu_Init(){var oInnerContextMenu=FCK.ContextMenu._InnerContextMenu=new FCKContextMenu(FCKBrowserInfo.IsIE?window:window.parent,FCK.EditorWindow,FCKLang.Dir);oInnerContextMenu.OnBeforeOpen=FCK_ContextMenu_OnBeforeOpen;oInnerContextMenu.OnItemClick=FCK_ContextMenu_OnItemClick;var oMenu=FCK.ContextMenu;for (var i=0;i<FCKConfig.ContextMenu.length;i++) oMenu.RegisterListener(FCK_ContextMenu_GetListener(FCKConfig.ContextMenu[i]));};function FCK_ContextMenu_GetListener(listenerName){switch (listenerName){case 'Generic':return {AddItems:function(A,B,C){A.AddItem('Cut',FCKLang.Cut,7,FCKCommands.GetCommand('Cut').GetState()==FCK_TRISTATE_DISABLED);A.AddItem('Copy',FCKLang.Copy,8,FCKCommands.GetCommand('Copy').GetState()==FCK_TRISTATE_DISABLED);A.AddItem('Paste',FCKLang.Paste,9,FCKCommands.GetCommand('Paste').GetState()==FCK_TRISTATE_DISABLED);}};case 'Table':return {AddItems:function(A,B,C){var D=(C=='TABLE');var E=(!D&&FCKSelection.HasAncestorNode('TABLE'));if (E){A.AddSeparator();var F=A.AddItem('Cell',FCKLang.CellCM);F.AddItem('TableInsertCell',FCKLang.InsertCell,58);F.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);F.AddItem('TableMergeCells',FCKLang.MergeCells,60);F.AddItem('TableSplitCell',FCKLang.SplitCell,61);F.AddSeparator();F.AddItem('TableCellProp',FCKLang.CellProperties,57);A.AddSeparator();F=A.AddItem('Row',FCKLang.RowCM);F.AddItem('TableInsertRow',FCKLang.InsertRow,62);F.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);A.AddSeparator();F=A.AddItem('Column',FCKLang.ColumnCM);F.AddItem('TableInsertColumn',FCKLang.InsertColumn,64);F.AddItem('TableDeleteColumns',FCKLang.DeleteColumns,65);};if (D||E){A.AddSeparator();A.AddItem('TableDelete',FCKLang.TableDelete);A.AddItem('TableProp',FCKLang.TableProperties,39);}}};case 'Link':return {AddItems:function(A,B,C){var D=(C=='A'||FCKSelection.HasAncestorNode('A'));if (D||FCK.GetNamedCommandState('Unlink')!=FCK_TRISTATE_DISABLED){A.AddSeparator();if (D) A.AddItem('Link',FCKLang.EditLink,34);A.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(A,B,C){if (C=='IMG'&&!B.getAttribute('_fckfakelement')){A.AddSeparator();A.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(A,B,C){if (C=='IMG'&&B.getAttribute('_fckanchor')){A.AddSeparator();A.AddItem('Anchor',FCKLang.AnchorProp,36);}}};case 'Flash':return {AddItems:function(A,B,C){if (C=='IMG'&&B.getAttribute('_fckflash')){A.AddSeparator();A.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(A,B,C){if (FCKSelection.HasAncestorNode('FORM')){A.AddSeparator();A.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(A,B,C){if (C=='INPUT'&&B.type=='checkbox'){A.AddSeparator();A.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(A,B,C){if (C=='INPUT'&&B.type=='radio'){A.AddSeparator();A.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(A,B,C){if (C=='INPUT'&&(B.type=='text'||B.type=='password')){A.AddSeparator();A.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(A,B,C){if (C=='INPUT'&&B.type=='hidden'){A.AddSeparator();A.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(A,B,C){if (C=='INPUT'&&B.type=='image'){A.AddSeparator();A.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(A,B,C){if (C=='INPUT'&&(B.type=='button'||B.type=='submit'||B.type=='reset')){A.AddSeparator();A.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(A,B,C){if (C=='SELECT'){A.AddSeparator();A.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(A,B,C){if (C=='TEXTAREA'){A.AddSeparator();A.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(A,B,C){if (FCKSelection.HasAncestorNode('UL')){A.AddSeparator();A.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(A,B,C){if (FCKSelection.HasAncestorNode('OL')){A.AddSeparator();A.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};}};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent("OnSelectionChange");var oTag,sTagName;if (oTag=FCKSelection.GetSelectedElement()) sTagName=oTag.tagName;var oMenu=FCK.ContextMenu._InnerContextMenu;oMenu.RemoveAllItems();var aListeners=FCK.ContextMenu.Listeners;for (var i=0;i<aListeners.length;i++) aListeners[i].AddItems(oMenu,oTag,sTagName);};function FCK_ContextMenu_OnItemClick(item){FCK.Focus();FCKCommands.GetCommand(item.Name).Execute();}
+var FCKPlugin=function(A,B,C){this.Name=A;this.BasePath=C?C:FCKConfig.PluginsPath;this.Path=this.BasePath+A+'/';if (!B||B.length==0) this.AvailableLangs=new Array();else this.AvailableLangs=B.split(',');};FCKPlugin.prototype.Load=function(){if (this.AvailableLangs.length>0){var A;if (this.AvailableLangs.indexOf(FCKLanguageManager.ActiveLanguage.Code)>=0) A=FCKLanguageManager.ActiveLanguage.Code;else A=this.AvailableLangs[0];LoadScript(this.Path+'lang/'+A+'.js');};LoadScript(this.Path+'fckplugin.js');}
+var FCKPlugins=FCK.Plugins=new Object();FCKPlugins.ItemsCount=0;FCKPlugins.Items=new Object();FCKPlugins.Load=function(){var A=FCKPlugins.Items;for (var i=0;i<FCKConfig.Plugins.Items.length;i++){var B=FCKConfig.Plugins.Items[i];var C=A[B[0]]=new FCKPlugin(B[0],B[1],B[2]);FCKPlugins.ItemsCount++;};for (var s in A) A[s].Load();FCKPlugins.Load=null;}
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/fckdebug.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/fckdebug.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/fckdebug.html	(revision 389)
@@ -0,0 +1,111 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckdebug.html
+ * 	This is the Debug window.
+ * 	It automatically popups if the Debug = true in the configuration file.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor Debug Window</title>
+	<meta name="robots" content="noindex, nofollow" />
+	<script type="text/javascript">
+
+var oWindow ;
+var oDiv ;
+
+if ( !window.FCKMessages )
+	window.FCKMessages = new Array() ;
+
+window.onload = function()
+{
+	oWindow = document.getElementById('xOutput').contentWindow ;
+	oWindow.document.open() ;
+	oWindow.document.write( '<div id="divMsg"><\/div>' ) ;
+	oWindow.document.close() ;
+	oDiv	= oWindow.document.getElementById('divMsg') ;
+}
+
+function Output( message, color )
+{
+	if ( color )
+		message = '<font color="' + color + '">' + message + '<\/font>' ;
+		
+	window.FCKMessages[ window.FCKMessages.length ] = message ;
+	StartTimer() ;
+}
+
+function StartTimer()
+{
+	window.setTimeout( 'CheckMessages()', 100 ) ;
+}
+
+function CheckMessages()
+{
+	if ( window.FCKMessages.length > 0 )
+	{
+		// Get the first item in the queue
+		var sMessage = window.FCKMessages[0] ;
+		
+		// Removes the first item from the queue
+		var oTempArray = new Array() ;
+		for ( i = 1 ; i < window.FCKMessages.length ; i++ )
+			oTempArray[ i - 1 ] = window.FCKMessages[ i ] ;
+		window.FCKMessages = oTempArray ;
+		
+		var d = new Date() ;
+		var sTime = 
+			( d.getHours() + 100 + '' ).substr( 1,2 ) + ':' + 
+			( d.getMinutes() + 100 + '' ).substr( 1,2 ) + ':' + 
+			( d.getSeconds() + 100 + '' ).substr( 1,2 ) + ':' + 
+			( d.getMilliseconds() + 1000 + '' ).substr( 1,3 ) ;
+
+		var oMsgDiv = oWindow.document.createElement( 'div' ) ;
+		oMsgDiv.innerHTML = sTime + ': <b>' + sMessage + '<\/b>' ;
+		oDiv.appendChild( oMsgDiv ) ;
+		oMsgDiv.scrollIntoView() ;
+	}
+}
+
+function Clear()
+{
+	oDiv.innerHTML = '' ;
+}
+	</script>
+</head>
+<body style="margin: 10px">
+	<table style="height: 100%" cellspacing="5" cellpadding="0" width="100%" border="0">
+		<tr>
+			<td>
+				<table cellspacing="0" cellpadding="0" width="100%" border="0">
+					<tr>
+						<td style="font-weight: bold; font-size: 1.2em;">
+							FCKeditor Debug Window</td>
+						<td align="right">
+							<input type="button" value="Clear" onclick="Clear();" /></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+		<tr style="height: 100%">
+			<td style="border: #696969 1px solid">
+				<iframe id="xOutput" width="100%" height="100%" scrolling="auto" src="fckblank.html"
+					frameborder="0"></iframe>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/fckeditor.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/fckeditor.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/fckeditor.html	(revision 389)
@@ -0,0 +1,210 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckeditor.html
+ * 	Main page that holds the editor.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor</title>
+	<meta name="robots" content="noindex, nofollow" />
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta http-equiv="Cache-Control" content="public" />
+	<script type="text/javascript">
+
+// Instead of loading scripts and CSSs using inline tags, all scripts are
+// loaded by code. In this way we can guarantee the correct processing order,
+// otherwise external scripts and inline scripts could be executed in an
+// unwanted order (IE).
+
+function LoadScript( url )
+{
+	document.write( '<script type="text/javascript" src="' + url + '" onerror="alert(\'Error loading \' + this.src);"><\/script>' ) ;
+}
+
+function LoadCss( url )
+{
+	document.write( '<link href="' + url + '" type="text/css" rel="stylesheet" onerror="alert(\'Error loading \' + this.src);" />' ) ;
+}
+
+// Main editor scripts.
+var sSuffix = /msie/.test( navigator.userAgent.toLowerCase() ) ? 'ie' : 'gecko' ;
+
+LoadScript( 'js/fckeditorcode_' + sSuffix + '.js' ) ;
+
+// Base configuration file.
+LoadScript( '../fckconfig.js' ) ;
+
+	</script>
+	<script type="text/javascript">
+
+// Create the default cleanup object used by the editor.
+if ( FCKBrowserInfo.IsIE )
+{
+	FCK.IECleanup = new FCKIECleanup( window ) ;
+	FCK.IECleanup.AddItem( FCKTempBin, FCKTempBin.Reset ) ;
+	FCK.IECleanup.AddItem( FCK, FCK_Cleanup ) ;
+}
+
+// The config hidden field is processed immediately, because
+// CustomConfigurationsPath may be set in the page.
+FCKConfig.ProcessHiddenField() ;
+
+// Load the custom configurations file (if defined).
+if ( FCKConfig.CustomConfigurationsPath.length > 0 )
+	LoadScript( FCKConfig.CustomConfigurationsPath ) ;
+
+	</script>
+	<script type="text/javascript">
+
+// Load configurations defined at page level.
+FCKConfig_LoadPageConfig() ;
+
+FCKConfig_PreProcess() ;
+
+// Load the active skin CSS.
+LoadCss( FCKConfig.SkinPath + 'fck_editor.css' ) ;
+
+// Load the language file.
+FCKLanguageManager.Initialize() ;
+LoadScript( 'lang/' + FCKLanguageManager.ActiveLanguage.Code + '.js' ) ;
+
+	</script>
+	<script type="text/javascript">
+
+// Initialize the editing area context menu.
+FCK_ContextMenu_Init() ;
+
+FCKPlugins.Load() ;
+
+	</script>
+	<script type="text/javascript">
+	
+// Set the editor interface direction.
+window.document.dir = FCKLang.Dir ;
+
+// Activate pasting operations.
+if ( FCKConfig.ForcePasteAsPlainText || FCKConfig.AutoDetectPasteFromWord )
+	FCK.Events.AttachEvent( "OnPaste", FCK.Paste ) ;
+
+	</script>
+	<script type="text/javascript">
+
+window.onload = function()
+{
+	InitializeAPI() ;
+
+	if ( FCKBrowserInfo.IsIE )
+		FCK_PreloadImages() ;
+	else
+		LoadToolbarSetup() ;
+}
+
+function LoadToolbarSetup()
+{
+	FCKeditorAPI._FunctionQueue.Add( LoadToolbar ) ;
+}
+
+function LoadToolbar()
+{
+	var oToolbarSet = FCK.ToolbarSet = FCKToolbarSet_Create() ;
+	
+	if ( oToolbarSet.IsLoaded )
+		StartEditor() ;
+	else
+	{
+		oToolbarSet.OnLoad = StartEditor ;
+		oToolbarSet.Load( FCKURLParams['Toolbar'] || 'Default' ) ;
+	}
+}
+
+function StartEditor()
+{
+	// Remove the onload listener.
+	FCK.ToolbarSet.OnLoad = null ;
+
+	FCKeditorAPI._FunctionQueue.Remove( LoadToolbar ) ;
+
+	FCK.Events.AttachEvent( 'OnStatusChange', WaitForActive ) ;
+
+	// Start the editor.
+	FCK.StartEditor() ;
+}
+
+function WaitForActive( editorInstance, newStatus )
+{
+	if ( newStatus == FCK_STATUS_ACTIVE )
+	{
+		if ( FCKBrowserInfo.IsGecko )
+			FCKTools.RunFunction( window.onresize ) ;
+
+		FCK.SetStatus( FCK_STATUS_COMPLETE ) ;
+
+		// Call the special "FCKeditor_OnComplete" function that should be present in 
+		// the HTML page where the editor is located.
+		if ( typeof( window.parent.FCKeditor_OnComplete ) == 'function' )
+			window.parent.FCKeditor_OnComplete( FCK ) ;	
+	}
+}
+
+// Gecko browsers doens't calculate well that IFRAME size so we must
+// recalculate it every time the window size changes.
+if ( FCKBrowserInfo.IsGecko )
+{
+	function Window_OnResize()
+	{
+		if ( FCKBrowserInfo.IsOpera )
+			return ;
+
+		var oCell = document.getElementById( 'xEditingArea' ) ;
+
+		var eInnerElement ;
+		if ( eInnerElement = oCell.firstChild )
+		{
+			eInnerElement.style.height = 0 ;
+			eInnerElement.style.height = oCell.scrollHeight - 2 ;
+		}
+	}
+	window.onresize = Window_OnResize ;
+}
+
+	</script>
+</head>
+<body>
+	<table width="100%" cellpadding="0" cellspacing="0" style="height: 100%; table-layout: fixed">
+		<tr id="xToolbarRow" style="display: none">
+			<td id="xToolbarSpace" style="overflow: hidden">
+				<table width="100%" cellpadding="0" cellspacing="0">
+					<tr id="xCollapsed" style="display: none">
+						<td id="xExpandHandle" class="TB_Expand" colspan="3">
+							<img class="TB_ExpandImg" alt="" src="images/spacer.gif" width="8" height="4" /></td>
+					</tr>
+					<tr id="xExpanded" style="display: none">
+						<td id="xTBLeftBorder" class="TB_SideBorder" style="width: 1px; display: none;"></td>
+						<td id="xCollapseHandle" style="display: none" class="TB_Collapse" valign="bottom">
+							<img class="TB_CollapseImg" alt="" src="images/spacer.gif" width="8" height="4" /></td>
+						<td id="xToolbar" class="TB_ToolbarSet"></td>
+						<td class="TB_SideBorder" style="width: 1px"></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+		<tr style="height: 100%">
+			<td id="xEditingArea" valign="top"></td>
+		</tr>
+	</table>
+</body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/editor/fckblank.html
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/editor/fckblank.html	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/editor/fckblank.html	(revision 389)
@@ -0,0 +1,5 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head><title></title></head>
+<body></body>
+</html>
Index: tags/expressoMail1_2/1.234/js/fckeditor/fckstyles.xml
===================================================================
--- tags/expressoMail1_2/1.234/js/fckeditor/fckstyles.xml	(revision 389)
+++ tags/expressoMail1_2/1.234/js/fckeditor/fckstyles.xml	(revision 389)
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ * 
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * 		http://www.opensource.org/licenses/lgpl-license.php
+ * 
+ * For further information visit:
+ * 		http://www.fckeditor.net/
+ * 
+ * "Support Open Source software. What about a donation today?"
+ * 
+ * File Name: fckstyles.xml
+ * 	This is the sample style definitions file. It makes the styles combo
+ * 	completely customizable.
+ * 	See FCKConfig.StylesXmlPath in the configuration file.
+ * 
+ * File Authors:
+ * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
+-->
+<Styles>
+	<Style name="Image on Left" element="img">
+		<Attribute name="style" value="padding: 5px; margin-right: 5px" />
+		<Attribute name="border" value="2" />
+		<Attribute name="align" value="left" />
+	</Style>
+	<Style name="Image on Right" element="img">
+		<Attribute name="style" value="padding: 5px; margin-left: 5px" />
+		<Attribute name="border" value="2" />
+		<Attribute name="align" value="right" />
+	</Style>
+	<Style name="Custom Bold" element="span">
+		<Attribute name="style" value="font-weight: bold;" />
+	</Style>
+	<Style name="Custom Italic" element="em" />
+	<Style name="Title" element="span">
+		<Attribute name="class" value="Title" />
+	</Style>
+	<Style name="Code" element="span">
+		<Attribute name="class" value="Code" />
+	</Style>
+	<Style name="Title H3" element="h3" />
+	<Style name="Custom Ruler" element="hr">
+		<Attribute name="size" value="1" />
+		<Attribute name="color" value="#ff0000" />
+	</Style>
+</Styles>
Index: tags/expressoMail1_2/1.234/js/rich_text_editor.js
===================================================================
--- tags/expressoMail1_2/1.234/js/rich_text_editor.js	(revision 811)
+++ tags/expressoMail1_2/1.234/js/rich_text_editor.js	(revision 811)
@@ -0,0 +1,504 @@
+function cRichTextEditor(){
+	this.emwindow   = new Array;
+	this.editor = "body_1";
+	this.table = "";
+	this.id = "1";
+	this.buildEditor();
+	this.saveFlag = 0;
+}
+
+cRichTextEditor.prototype.loadEditor = function(ID) {
+	var _this = this;
+	_this.id = ID;
+	parentDiv = document.getElementById("body_position_"+this.id);
+	this.editor = "body_"+this.id;
+
+	if(this.table.parentNode)
+		this.table.parentNode.removeChild(this.table);
+	
+	if( parentDiv.firstChild )
+	{
+		if (!parentDiv.firstChild.hasChildNodes()) 
+			parentDiv.insertBefore(this.table,parentDiv.firstChild);
+	}
+	else
+		parentDiv.appendChild(this.table);
+
+	if(!Element(this.editor))
+	{
+		this.createElementEditor(this.editor);
+	}
+	else
+	{
+		Element("viewsource_rt_checkbox").checked=false;
+	}
+
+	document.getElementById('fontname').selectedIndex = 0;
+	document.getElementById('fontsize').selectedIndex = 0;
+}
+
+cRichTextEditor.prototype.createElementEditor = function(pObj)
+{
+		iframe = document.createElement("IFRAME");
+		iframe.id = pObj;
+		iframe.name = pObj;
+		iframe.width = "99%";
+		iframe.height = 300;
+		iframe.setAttribute("unselectable","on");
+		iframe.setAttribute("tabIndex","1");
+
+		config_events( iframe, 'onload', function( )
+		{
+			iframe.contentWindow.document.designMode = "on";
+			if ( iframe.contentWindow.document.documentElement )
+				iframe.contentWindow.document.documentElement.style.background = '#fff';
+		});
+
+		var checkbox = document.createElement("INPUT");
+		checkbox.id = 'viewsource_rt_checkbox';
+		checkbox.type = "checkbox";
+		checkbox.setAttribute("tabIndex","-1");
+		checkbox.onclick = function () {RichTextEditor.viewsource(this.checked)};
+		var text = document.createTextNode(get_lang('View HTML source') + '.');
+		parentDiv.appendChild(iframe);
+		parentDiv.appendChild(checkbox);
+		parentDiv.appendChild(text);
+}
+
+cRichTextEditor.prototype.viewsource = function(source) {
+	var html;
+	var mainField = document.getElementById(this.editor).contentWindow;
+	if (source) {
+		if (is_ie){
+			connector.loadScript('html2xhtml');
+			html = frames[this.editor].document.body;
+			var xhtml = get_xhtml(html, 'en', 'iso-8859-1');
+			frames[this.editor].document.body.innerText = xhtml;
+			document.getElementById("table_richtext_toolbar").style.visibility="hidden";
+		}
+		else{
+			html = document.createTextNode(document.getElementById(this.editor).contentWindow.document.body.innerHTML);
+			document.getElementById(this.editor).contentWindow.document.body.innerHTML = "";
+			html = document.getElementById(this.editor).contentWindow.document.importNode(html,false);
+			document.getElementById(this.editor).contentWindow.document.body.appendChild(html);
+			document.getElementById("table_richtext_toolbar").style.visibility="hidden";
+		}		
+	} else {
+		if (is_ie){
+			var output = escape(frames[this.editor].document.body.innerText);
+			output = output.replace("%3CP%3E%0D%0A%3CHR%3E", "%3CHR%3E");
+			output = output.replace("%3CHR%3E%0D%0A%3C/P%3E", "%3CHR%3E");
+			frames[this.editor].document.body.innerHTML = unescape(output);
+			document.getElementById("table_richtext_toolbar").style.visibility="visible";  
+		}
+		else{
+			html = document.getElementById(this.editor).contentWindow.document.body.ownerDocument.createRange();
+			html.selectNodeContents(document.getElementById(this.editor).contentWindow.document.body);
+			document.getElementById(this.editor).contentWindow.document.body.innerHTML = html.toString();
+			document.getElementById("table_richtext_toolbar").style.visibility="visible";  
+		}
+	}
+}
+
+cRichTextEditor.prototype.buildEditor = function() {
+	this.table = document.createElement("TABLE");
+	this.table.id = "table_richtext_toolbar";
+	this.table.className = "richtext_toolbar";
+	this.table.width = "100%";
+	var tbody = document.createElement("TBODY");
+	var tr = document.createElement("TR");
+	var td = document.createElement("TD");
+	var div_button_rt = document.createElement("DIV");
+	
+	selectBox=document.createElement("SELECT");
+	selectBox.id="fontname";
+	selectBox.setAttribute("tabIndex","-1");
+	selectBox.onchange = function () {RichTextEditor.Select("fontname");};
+	selectBox.className = 'select_richtext';
+	var option1 = new Option(get_lang('Font'), 'Font');
+	var option2 = new Option('Arial', 'Arial');
+	var option3 = new Option('Courier', 'Courier');
+	var option4 = new Option('Times New Roman', 'Times');
+	if (is_ie){
+		selectBox.add(option1);
+		selectBox.add(option2);
+		selectBox.add(option3);
+		selectBox.add(option4);
+	}
+	else{
+		selectBox.add(option1, null);
+		selectBox.add(option2, null);
+		selectBox.add(option3, null);
+		selectBox.add(option4, null);
+	}
+	div_button_rt.appendChild(selectBox);
+
+	selectBox=document.createElement("SELECT");
+	selectBox.id="fontsize";
+	selectBox.setAttribute("tabIndex","-1");
+	selectBox.setAttribute("unselectable","on");
+	selectBox.className = 'select_richtext';
+	selectBox.onchange = function () {RichTextEditor.Select("fontsize");};
+	var option1 = new Option(get_lang('Size'), 'Size');
+	var option2 = new Option('1 (8 pt)','1' );
+	var option3 = new Option('2 (10 pt)','2');
+	var option4 = new Option('3 (12 pt)','3');
+	var option5 = new Option('4 (14 pt)','4');
+	var option6 = new Option('5 (18 pt)','5');
+	var option7 = new Option('6 (24 pt)','6');
+	var option8 = new Option('7 (36 pt)','7');
+	if (is_ie){
+		selectBox.add(option1);
+		selectBox.add(option2);
+		selectBox.add(option3);
+		selectBox.add(option4);
+		selectBox.add(option5);
+		selectBox.add(option6);
+		selectBox.add(option7);
+		selectBox.add(option8);
+	}
+	else{
+		selectBox.add(option1, null);
+		selectBox.add(option2, null);
+		selectBox.add(option3, null);
+		selectBox.add(option4, null);
+		selectBox.add(option5, null);
+		selectBox.add(option6, null);
+		selectBox.add(option7, null);
+		selectBox.add(option8, null);	
+	}
+	div_button_rt.appendChild(selectBox);
+	
+	var buttons = ['bold', 'italic', 'underline', 'forecolor', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull',
+				   'undo', 'redo', 'insertorderedlist', 'insertunorderedlist', 'outdent', 'indent', 'link', 'image', 'table', 'signature'];
+
+	for (var i=0; i<buttons.length; i++){
+		var img = document.createElement("IMG");
+		img.id = buttons[i];
+		img.className = 'imagebutton';
+		img.align = 'center';
+		img.src = './templates/'+template+'/images/'+buttons[i]+'.gif';
+		img.title = get_lang(buttons[i]);
+		img.style.cursor = 'pointer';
+
+		if (buttons[i] == 'forecolor')
+			img.onclick = function () {RichTextEditor.show_pc('forecolor')};
+		else if (buttons[i] == 'link')
+			img.onclick = function () {RichTextEditor.createLink();};
+		else if (buttons[i] == 'image')
+			img.onclick = function () {RichTextEditor.createImage();};
+		else if (buttons[i] == 'table')
+			img.onclick = function () {RichTextEditor.createTable();};
+		else
+			img.onclick = function () {RichTextEditor.editorCommand(this.id,'');};
+		
+		img.onmouseover = function () {this.style.border="outset 2px";};
+		img.onmouseout = function () {this.style.border="solid 2px #C0C0C0";};
+		div_button_rt.appendChild(img);
+	}
+
+	td.appendChild(div_button_rt);
+	tr.appendChild(td);
+	tbody.appendChild(tr);
+	this.table.appendChild(tbody);
+}
+
+cRichTextEditor.prototype.editorCommand = function(command, option) {
+	try {
+		var mainField = document.getElementById(this.editor).contentWindow;
+		mainField.focus();
+		var signature = preferences.type_signature == 'html' ? preferences.signature : preferences.signature.replace(/\n/g, "<br>");
+		if (command == 'signature'){
+			if (is_ie){
+				var sel = document.selection;
+				if (sel!=null)
+				{
+				    var rng = sel.createRange();
+				    if (rng!=null)
+			        	rng.pasteHTML(signature);
+				}
+			}
+			else{
+				mainField.document.execCommand('inserthtml', false, signature);
+			}
+		}
+		else if (command == 'CreateLink')
+			mainField.document.execCommand('CreateLink', false, option);
+		else if (command == 'Table'){
+			if (is_ie){
+				var sel = document.selection;
+				if (sel!=null)
+				{
+				    var rng = sel.createRange();
+				    if (rng!=null)
+			        rng.pasteHTML(option);
+				}
+			}
+			else 
+				mainField.document.execCommand('inserthtml', false, option);
+			}
+		else if (command == 'Image')
+			mainField.document.execCommand('InsertImage', false, option);
+		else
+			mainField.document.execCommand(command, false, option);
+		//mainField.focus();
+    } catch (e) {/* alert(e);*/ }
+}
+
+cRichTextEditor.prototype.createLink = function(){
+	var mainField = document.getElementById(this.editor).contentWindow;
+	if (is_ie){
+		if ((mainField.document.selection.createRange().text) == ''){
+				alert(get_lang('Chose the text you want transform in link before.')); 
+			return;
+		}
+	}
+	else{
+		if (mainField.window.getSelection() == ''){
+				alert(get_lang('Chose the text you want transform in link before.')); 
+			return;
+		}
+	}
+		var szURL = prompt(get_lang('Enter with link URL:'), 'http://'); 
+	if ((szURL != null) && (szURL != "")){
+		this.editorCommand("CreateLink", szURL);
+	}
+}
+
+// It include the image file in emails body
+// It saves and attach in drafts folder and open it
+cRichTextEditor.prototype.addInputFile = function()
+{
+	//Begin: Verify if the image extension is allowed.
+	var imgExtensions = new Array("jpeg", "jpg", "gif", "png", "bmp", "xbm", "tiff", "pcx");
+	var inputFile = document.getElementById('inputFile_img');	
+	if(!inputFile.value) return false;
+	var fileExtension = inputFile.value.split(".");
+	fileExtension = fileExtension[(fileExtension.length-1)];
+	var deniedExtension = true;
+	for(var i=0; i<imgExtensions.length; i++) {
+		if(imgExtensions[i].toUpperCase() == fileExtension.toUpperCase()) {
+			deniedExtension = false;
+			break;
+		}
+	}
+	if(deniedExtension) {
+		alert(get_lang('File extension forbidden or invalid file') + '.');
+		return false;
+	}
+	// End: Verify image extension.
+	var id = this.editor.substr(5); // border_id
+	divFiles = document.getElementById("divFiles_"+id);
+	var countDivFiles = divFiles.childNodes.length + 1;
+
+	var divFiles = document.getElementById('divFiles_'+id);
+	inputFile.id = 'inputFile_'+id +"_"+countDivFiles;
+	inputFile.name = 'file_'+countDivFiles;
+	divFile = document.createElement('DIV');
+	divFile.appendChild(inputFile);
+	divFiles.appendChild(divFile);
+
+	var form_upload = document.getElementById('form_upload');
+	form_upload.parentNode.removeChild(form_upload);
+	win.close();
+
+	RichTextEditor.saveFlag = 0; // See if save function finished
+	var save_link = document.getElementById("save_message_options_"+id);
+	//save_link.onclick = function () {};
+	save_msg(id);
+	setTimeout("RichTextEditor.insertImgHtml("+id+")",1000);
+}
+
+cRichTextEditor.prototype.insertImgHtml = function (id){
+	if (RichTextEditor.saveFlag == 0)
+		setTimeout("RichTextEditor.insertImgHtml("+id+")",500);
+	else
+		if (RichTextEditor.saveFlag == 1)
+			this.editorCommand('Image', './inc/show_embedded_attach.php?msg_folder=INBOX/'+draftsfolder+'&msg_num='+openTab.imapUid[id]+'&msg_part='+(openTab.countFile[id]+1));
+			// this.editorCommand('Image', '.inc/gotodownload.php?msg_folder="+msg_folder+"&msg_number="+msg_number+"&idx_file="+idx_file+"&msg_part="+msg_part+params'));
+}
+
+cRichTextEditor.prototype.insertTableHtml = function (){
+	var id = this.editor.substr(5); // border_id
+	var	rows = document.getElementById('rows').value;
+	var	cols = document.getElementById('cols').value;
+	var border = document.getElementById('border').value;
+	var insertTable = '<table border="'+border+'px"><tbody>';
+	for (var i = 0; i < rows; i++){
+		insertTable += "<tr>";	
+		for (var j = 0; j < cols; j++)
+			insertTable += "<td>&nbsp;</td>";	
+		insertTable += "</tr>";
+	}
+	insertTable += "</tbody></table>";
+	this.editorCommand('Table', insertTable);
+}
+
+cRichTextEditor.prototype.createTable = function(){
+	var form = document.getElementById("table_window");
+	if (form == null){
+		form = document.createElement("DIV");
+		form.id  = "table_window";
+		form.style.visibility = "hidden";
+		form.style.position = "absolute";
+		form.style.background = "#eeeeee";
+		form.style.left = "0px";
+		form.style.top  = "0px"; 
+		form.style.width = "0px";
+		form.style.height = "0px";
+		document.body.appendChild(form);
+	}
+		
+		var form_table = document.createElement("DIV");
+		form_table.id = "form_table";
+		form_table.style.position = "absolute";
+		form_table.style.top = "5px";
+		form_table.style.left = "5px";
+		form_table.style.width = "190px";
+		form_table.style.height = "90px";
+		form_table.name = get_lang("Insert Table");		
+		form_table.innerHTML = get_lang('Select the table size')+':<br><br><table cellspacing="0"><tbody><tr><td align="center">'+
+								get_lang('Rows')+':</td><td></td><td align="center">'+get_lang('Cols')+':</td><td></td><td align="center">'+get_lang('Border')+':</td></tr>'+
+									'<tr><td align="right"><input type="text" readonly="true" id="rows" size="2" maxlength="2" value="1"></input></td><td align="left"><img src="templates/'+template+'/images/plus.png" onclick="javascript:RichTextEditor.incrementField(\'rows\');"></img><br><img src="templates/'+template+'/images/minus.png" onclick="javascript:RichTextEditor.decrementField(\'rows\');"></img></td>'+
+									'<td align="right"><input type="text" readonly="true" id="cols" size="2" maxlength="2" value="1"></input></td><td align="left"><img src="templates/'+template+'/images/plus.png" onclick="javascript:RichTextEditor.incrementField(\'cols\');"></img><br><img src="templates/'+template+'/images/minus.png" onclick="javascript:RichTextEditor.decrementField(\'cols\');"></img></td>'+
+									'<td align="right"><input type="text" readonly="true" id="border" size="2" maxlength="2" value="1"></input></td><td align="left"><img src="templates/'+template+'/images/plus.png" onclick="javascript:RichTextEditor.incrementField(\'border\');"></img><br><img src="templates/'+template+'/images/minus.png" onclick="javascript:RichTextEditor.decrementField(\'border\');"></img></td>'+
+									'</tr></tbody></table>'+
+	  								'&nbsp;&nbsp;&nbsp;<input title="'+get_lang('Close')+'"  value="' + get_lang('Close') + '" type="button" onclick="win.close()">&nbsp;'+
+									'<input title="' + get_lang('Include') + '"  value="' + get_lang('Include') + '" type="button" onclick="RichTextEditor.insertTableHtml();win.close();">';	
+		form.appendChild(form_table);
+		
+		this.showWindow(form);
+		}
+
+cRichTextEditor.prototype.incrementField = function(id_val){
+	var field_text = document.getElementById(id_val);
+	field_text.value = parseInt(field_text.value)+1;
+}
+
+cRichTextEditor.prototype.decrementField = function(id_val){
+	var field_text = document.getElementById(id_val);
+	if (parseInt(field_text.value) > 0)
+		field_text.value = parseInt(field_text.value)-1;
+}
+
+cRichTextEditor.prototype.createImage = function(){
+	if (preferences.auto_save_draft == 1){
+			autosave_time = 200000;
+			clearTimeout(openTab.autosave_timer[currentTab]);
+		}
+	var form = document.getElementById("attachment_window");
+	if (form == null){
+		form = document.createElement("DIV");
+		form.id  = "attachment_window";
+		form.style.visibility = "hidden";
+		form.style.position = "absolute";
+		form.style.background = "#eeeeee";
+		form.style.left = "0px";
+		form.style.top  = "0px"; 
+		form.style.width = "0px";
+		form.style.height = "0px";
+		document.body.appendChild(form);
+	}
+		
+		var form_upload = document.createElement("DIV");
+		form_upload.id = "form_upload";
+		form_upload.style.position = "absolute";
+		form_upload.style.top = "5px";
+		form_upload.style.left = "5px";
+		form_upload.name = get_lang("Upload File");
+		form_upload.style.width = "450px";
+		form_upload.style.height = "75px";
+		form_upload.innerHTML = get_lang('Select the desired image file')+':<br>'+
+								'<input name="image_at" maxlength="255" size="50" id="inputFile_img" type="file"><br>' +
+								'<input title="' + get_lang('Include') + '"  value="' + get_lang('Include') + '"' + 'type="button" onclick="RichTextEditor.addInputFile();">&nbsp;' +
+								'<input title="' + get_lang('Close') + '"  value="' + get_lang('Close') + '"' +
+								' type="button" onclick="win.close()">';
+		form.appendChild(form_upload);
+		
+		this.showWindow(form);
+}
+cRichTextEditor.prototype.showWindow = function (div){
+
+		if(! div) {
+			return;
+		}
+		
+		if(! this.emwindow[div.id]) {
+			div.style.width  =  div.firstChild.style.width;
+			div.style.height = div.firstChild.style.height;
+			div.style.zIndex = "10000";			
+			var title = div.firstChild.name;
+			var wHeight = div.offsetHeight + "px";
+			var wWidth =  div.offsetWidth   + "px";
+			div.style.width = div.offsetWidth - 5;
+
+			win = new dJSWin({
+				id: 'win_'+div.id,
+				content_id: div.id,
+				width: wWidth,
+				height: wHeight,
+				title_color: '#3978d6',
+				bg_color: '#eee',
+				title: title,
+				title_text_color: 'white',
+				button_x_img: '../phpgwapi/images/winclose.gif',
+				border: true });
+			
+			this.emwindow[div.id] = win;
+			win.draw();
+		}
+		else
+			win = this.emwindow[div.id];
+		win.open();	
+}
+
+cRichTextEditor.prototype.Select = function(selectname)
+{
+	var mainField = Element(this.editor).contentWindow;
+	var cursel = document.getElementById(selectname).selectedIndex;
+
+	if (cursel != 0) {
+		var selected = document.getElementById(selectname).options[cursel].value;
+		mainField.document.execCommand(selectname, false, selected);
+		document.getElementById(selectname).selectedIndex = cursel;
+	}
+	mainField.focus();
+}
+
+cRichTextEditor.prototype.show_pc = function(command)
+{
+	connector.loadScript("color_palette");
+	ColorPalette.loadPalette(this.id);
+  	if (ColorPalette.div.style.visibility != "visible")
+		ColorPalette.div.style.visibility="visible";
+	else
+		this.hide_pc();
+}
+
+cRichTextEditor.prototype.hide_pc = function()
+{
+	document.getElementById("palettecolor").style.visibility="hidden";
+}
+
+cRichTextEditor.prototype.getOffsetTop = function(elm) {
+  var mOffsetTop = elm.offsetTop;1
+  var mOffsetParent = elm.offsetParent;
+  while(mOffsetParent){
+    mOffsetTop += mOffsetParent.offsetTop;
+    mOffsetParent = mOffsetParent.offsetParent;
+  }
+  return mOffsetTop;
+}
+
+cRichTextEditor.prototype.getOffsetLeft = function(elm) {
+  var mOffsetLeft = elm.offsetLeft;
+  var mOffsetParent = elm.offsetParent;
+  while(mOffsetParent){
+    mOffsetLeft += mOffsetParent.offsetLeft;
+    mOffsetParent = mOffsetParent.offsetParent;
+  }
+  return mOffsetLeft;
+}
+
+//Build the Object
+RichTextEditor = new cRichTextEditor();
Index: tags/expressoMail1_2/1.234/js/TreeShow.js
===================================================================
--- tags/expressoMail1_2/1.234/js/TreeShow.js	(revision 689)
+++ tags/expressoMail1_2/1.234/js/TreeShow.js	(revision 689)
@@ -0,0 +1,302 @@
+/**************************************************************************\
+ Início 
+\**************************************************************************/
+
+	function Tree_Box(){
+		
+		this.name_folder = "";
+		this.name_func   = "";
+		connector.loadScript("TreeS");
+	}
+	Tree_Box.prototype.update_folder = function(){
+
+		var handler_update_folders = function(data){
+			folders = data;
+			// update element dftree_folders_tree;
+			ttree.make_tree(data,"div_tree","folders_tree","ttree.get_folder(\"root\")",ttreeBox.name_folder,ttreeBox.name_folder,false);
+			
+			// update element dftree_tree_folders;
+			if(Element('content_folders')){Element('content_folders').innerHTML = "";}
+			draw_tree_folders(folders);
+			
+			// update element dftree_wfolders_tree;
+			if (Element('dftree_wfolders_tree')){
+				Element('dftree_wfolders_tree').innerHTML = '';
+				ttree.make_tree(data,"wfolders_content_tree","wfolders_tree","","","",false);	
+			}
+			ttree.FOLDER = ttreeBox.name_folder;
+			if (tree_folders.getNodeById(get_current_folder()))
+				tree_folders.getNodeById(get_current_folder())._select();
+		}
+		cExecute ("$this.imap_functions.get_folders_list&folder="+current_folder, handler_update_folders);		
+	}
+
+	Tree_Box.prototype.verify_children = function(param){
+		var aux;
+		var aux1;
+		var cont = parseInt(0);
+		for(var i=0 ; i < folders.length; i++){
+			aux = folders[i].folder_id.split(cyrus_delimiter);
+			aux.pop();
+			for(var j=0; j < aux.length; j++){
+				if(j == 0)
+					aux1 = aux[j];
+				else
+					aux1 += cyrus_delimiter + aux[j];
+			}
+			if( aux1 == param){
+				cont++;
+			}
+		}
+		if( cont == 0){
+			ttreeBox.del_past(param);
+		}else{
+                       alert(get_lang("Delete your sub-folders first"));
+		}
+		cont = parseInt(0);
+	}
+	
+	// Função para verificar ponto e espacos;
+	Tree_Box.prototype.verify = function(exp)
+ 	{
+		var reTipo = /^(.*)(\/)(.*)$/;
+		
+		if(reTipo.test(exp)){
+			return false;
+		}
+		return true;
+ 	}
+
+ 	// Função para verificar o nome da caixa;
+ 	Tree_Box.prototype.verify_names = function(name_folder){
+	    var arr_nm_folder = new Array("INBOX",trashfolder,draftsfolder,sentfolder,spamfolder);
+ 		for(var i=0 ; i < arr_nm_folder.length; i++){
+ 			if(name_folder == arr_nm_folder[i]){
+				ttree.FOLDER = "";
+				return true;
+ 			}
+ 		}
+		return false;
+ 	}
+	
+	// Valida os nomes das pastas
+	Tree_Box.prototype.validate = function(func){
+	
+		var aux = ttree.FOLDER.split(cyrus_delimiter);
+		var aux2;
+
+		if(ttree.FOLDER != ""){
+			if(aux.length > 1){aux2 = aux[1];}
+			else{aux2 = aux[0];}
+			if(this.verify_names(aux2)){
+				if(func == "newpast")
+                   alert(get_lang("It's not possible create inside: ") + (get_lang(special_folders[aux2])));
+				if(func == "rename")
+                   alert(get_lang("It's not possible rename the folder: ") + (get_lang(special_folders[aux2])));
+				return false;
+			}else{
+				if(func == "newpast"){
+                    var button = prompt(get_lang('Enter the name of the new folder:'),"");
+					
+					if (button.indexOf("local_") != -1  || button.toUpperCase() == "INBOX") {
+						alert(get_lang("cannot create folder. try other folder name"));
+						return false; //Não posso criar pastas contendo a string local_					
+					}
+
+					if(trim(button) == "" || trim(button) == null){
+						return false;
+					}else{
+						ttreeBox.new_past(button);
+					}
+				}
+				if(func == "rename"){
+					if(ttree.FOLDER == "root"){
+	                	alert(get_lang("It's not possible rename this folder!"));
+						return false;
+					}
+					if(ttree.FOLDER == get_current_folder()){
+                        alert(get_lang("It's not possible rename this folder, because it is being used in the moment!"));
+						return false;
+					}
+                    var button1 = prompt(get_lang("Enter a name for the box"), "");
+					if (button1.indexOf("local_") != -1 || button1.toUpperCase() == "INBOX") {
+						alert(get_lang("cannot create folder. try other folder name"));
+						return false; //Não posso criar pastas contendo a string local_					
+					}
+					if(trim(button1) == "" || trim(button1) == null){
+						return false;
+					}else{
+						ttreeBox.rename(button1);
+					}
+				}
+			}
+		}else{
+            alert(get_lang("Select a folder!"));
+			return false;
+		}
+	}
+ 	
+ 	// Para criar a nova pasta;
+ 	Tree_Box.prototype.new_past = function(newp){
+
+	var aux   = ttree.FOLDER.split(cyrus_delimiter);
+	var newp2 = "";
+		
+		if(aux.length == 1 && aux[0] != "root"){
+            alert(get_lang("It's not possible create inside: ") + aux[0]);
+			newp = "";
+		}else{
+			if( aux[0] == "root"){
+				if(!this.verify(newp)){
+                    alert(get_lang("Type without spaces, dots or special characters!"));
+					newp = "";
+					return false;
+				}else{
+					newp2 = newp;
+					newp = "INBOX" + cyrus_delimiter + newp;
+				}
+			}else{
+				if(!this.verify(newp)){
+                    alert(get_lang("Type without spaces, dots or special characters!"));
+					newp = "";
+					return false;
+				}else{
+					newp2 = newp;
+					newp = ttree.FOLDER + cyrus_delimiter + newp;
+				}
+			}
+		}
+		if(newp != ""){
+			var handler_return = function(data){		
+				if(data != "Ok"){
+					alert(data);
+				}else{
+					ttreeBox.name_folder = newp;
+					this.name_func = "newpast";
+					ttreeBox.update_folder();
+				}
+			}
+			var args = "$this.imap_functions.create_mailbox";
+			var params = "newp="+newp;
+			cExecute(args,handler_return,params);
+		}	
+	}
+	
+	// Funcao para renomear a pasta;
+	Tree_Box.prototype.rename = function(rename){
+		var old_box  = ttree.FOLDER;
+		var aux = old_box.split(cyrus_delimiter);
+		var rename_new = "";
+		
+		if(old_box == "root"){
+            alert(get_lang("Select a folder!"));
+			return false;
+		}
+		if(aux.length == 1){
+            alert(get_lang("It's not possible rename the folder: ") + aux[0]);
+			rename = "";
+			return false;
+		}else{
+			if(this.verify_names(aux[1])){
+                alert(get_lang("It's not possible rename the folder: ") + aux[1]);
+				rename = "";
+				return false;
+			}else{
+				if(!this.verify(rename)){
+                    alert(get_lang("Type without spaces, dots or special characters!"));
+					rename = "";
+					return false;
+				}else{
+					aux.pop();
+					aux.push(rename);
+					for(var i=0; i< aux.length; i++){
+						if( i == 0)
+							rename_new = aux[i];
+						else
+							rename_new += cyrus_delimiter + aux[i];
+					}
+				}	
+			}
+		}
+		if(rename != ""){
+			var handler_return = function(data)
+			{		
+				ttree.FOLDER = "";
+				ttreeBox.update_folder();				
+			}
+			var args = "$this.imap_functions.ren_mailbox";
+			var params = "rename="+rename_new+"&current="+old_box;
+			cExecute(args,handler_return,params);
+		}
+	}
+	//
+	Tree_Box.prototype.export_all_msg = function(){
+			
+		if(ttree.FOLDER == "root"){return false;}
+		var nm_bx = ttree.FOLDER.split(cyrus_delimiter);
+		var name_f = nm_bx[nm_bx.length -1];
+		var hand_export = function(data){
+			if(!data){
+				write_msg(get_lang('Error compressing messages (ZIP). Contact the administrator.'))
+			}else
+			  download_attachments(null, null, data, null,null, name_f +'.zip');
+		}
+		cExecute("$this.exporteml.export_all",hand_export,"folder="+ttree.FOLDER);	
+		write_msg(get_lang('You must wait while the messages will be exported...'));			
+	}
+	
+	// Função para deletar a pasta;
+	Tree_Box.prototype.del = function(){
+	
+		var aux = ttree.FOLDER.split(cyrus_delimiter);
+
+		if(aux[0] == "root" || ttree.FOLDER == ""){
+                        alert(get_lang("Select a folder!"));
+			return false;
+		}
+		
+		if(aux.length == 1){
+            alert(get_lang("It's not possible delete the folder: ") + get_lang("Inbox"));
+			return false;
+		}else{
+			if(this.verify_names(aux[1])){
+	            alert(get_lang("It's not possible delete the folder: ") + get_lang(special_folders[aux[1]]));	 
+      			return false;
+			}else{
+				this.verify_children(ttree.FOLDER);
+			}
+		}	
+	}
+	
+	Tree_Box.prototype.del_past = function(param){
+
+		var aux = param.split(cyrus_delimiter);
+		var aux1 = aux.pop();
+
+		if(ttree.FOLDER == get_current_folder()){
+            alert(get_lang("It's not possible rename this folder, because it is being used in the moment!"));
+			return false;
+		}
+        if(confirm(get_lang("Do you wish to exclude the folder ") + aux1+ "?")){
+			var handler_return = function(data)
+			{		
+				if(data != "Ok")
+				{
+					alert(data);
+				}else{
+					ttree.FOLDER = "";
+					ttreeBox.update_folder();
+                    alert(get_lang("The folder %1 was successfully removed", aux1));
+				}
+			}
+			var args = "$this.imap_functions.delete_mailbox";
+			var params = "del_past="+param;
+			cExecute(args,handler_return,params);
+		}else{
+			alert(get_lang("The folder was not deleted!"));
+		}
+	
+	}
+/* - Build Object -*/
+ 	var ttreeBox;
+	ttreeBox = new Tree_Box();
Index: tags/expressoMail1_2/1.234/js/QuickSearchUser.js
===================================================================
--- tags/expressoMail1_2/1.234/js/QuickSearchUser.js	(revision 647)
+++ tags/expressoMail1_2/1.234/js/QuickSearchUser.js	(revision 647)
@@ -0,0 +1,99 @@
+	function emQuickSearchUser ()
+	{
+		this.arrayWin = new Array();
+		this.el;
+		this.cc_contacts = new Array();
+		this.cc_groups  = new Array();
+	}
+
+	emQuickSearchUser.prototype.showList = function(data)
+	{
+		id = '1';
+		_this = this;
+
+		var el = document.createElement("DIV");
+		el.style.visibility = "hidden";
+		el.style.position = "absolute";
+		el.style.left = "0px";
+		el.style.top = "0px";
+		el.style.width = "0px";
+		el.style.height = "0px";
+		el.id = 'window_QuickSearchUser';
+		document.body.appendChild(el);
+		el.innerHTML = '<br>';
+		
+		if (document.getElementById('div_QuickSearchUser') == null)
+		{
+			el.innerHTML += '<div id="div_QuickSearchUser" class="quicksearchcontacts">' + 
+			'<table class="quicksearchcontacts"><tbody id="table_QuickSearchUser">' + data + '</tbody></table>' +
+			'</div>';
+			el.innerHTML += '&nbsp;&nbsp;<input type="button" value=' + get_lang("Close")+ ' id="QuickSearchUser_button_close" onClick="QuickSearchUser.close_window();">';
+		}
+		else{
+			var div_QuickSearchUser = document.getElementById('div_QuickSearchUser');
+			div_QuickSearchUser.style.display = "";
+			div_QuickSearchUser.innerHTML = '<table class="quicksearchcontacts"><tbody id="table_QuickSearchUser">' + data + '</tbody></table>';
+			var butt_close = document.getElementById("QuickSearchUser_button_close");
+			butt_close.onclick = function () {QuickSearchUser.close_window();};
+		}
+		_this.showWindow(el);
+	}
+
+	emQuickSearchUser.prototype.showWindow = function (div)
+	{
+		if(! div) {
+			alert(get_lang('The list has no participant.'));
+			return;
+		}
+							
+		if(! this.arrayWin[div.id]) {
+			div.style.width = "600px";
+			div.style.height = "350px";
+			var title = get_lang('The results were found in the Global Catalog')+':';
+			var wHeight = div.offsetHeight + "px";
+			var wWidth =  div.offsetWidth   + "px";
+			div.style.width = div.offsetWidth - 5;
+
+			win = new dJSWin({			
+				id: 'QuickSearchUser_'+div.id,
+				content_id: div.id,
+				width: wWidth,
+				height: wHeight,
+				title_color: '#3978d6',
+				bg_color: '#eee',
+				title: title,						
+				title_text_color: 'white',
+				button_x_img: '../phpgwapi/images/winclose.gif',
+				border: true });
+			
+			this.arrayWin[div.id] = win;
+			win.draw();
+		}
+		else {
+			win = this.arrayWin[div.id];
+		}
+		win.open();
+	}
+
+	emQuickSearchUser.prototype.close_window = function() {
+		Element("em_message_search").value = "";
+		this.arrayWin['window_QuickSearchUser'].close();
+	}
+	
+	emQuickSearchUser.prototype.create_new_message = function (cn, mail) {
+		QuickSearchUser.close_window();
+		if (openTab.type[currentTab] != 4)
+		{
+			Element("msg_number").value = cn+" <"+mail+">";
+			new_message("new","null");
+		}
+		else
+		{
+			var ToField = Element('to_'+currentTab);
+			ToField.value = ToField.value +cn+" <"+mail+">,";
+		}
+	}
+
+/* Build the Object */
+	var QuickSearchUser;
+	QuickSearchUser = new emQuickSearchUser();
Index: tags/expressoMail1_2/1.234/js/preferences.js
===================================================================
--- tags/expressoMail1_2/1.234/js/preferences.js	(revision 485)
+++ tags/expressoMail1_2/1.234/js/preferences.js	(revision 485)
@@ -0,0 +1,296 @@
+/**************************************************************************\
+ Início 
+\**************************************************************************/
+	function Preferences(){
+		this.prefeW 		= new Array;
+	}
+	// Cria as divs;
+	Preferences.prototype.showList = function(){
+	
+		id = '1';
+		_this = this;
+		
+		form_pref = document.createElement("DIV");
+		form_pref.style.visibility = "hidden";
+		form_pref.style.position = "absolute";
+		form_pref.id = "window_confexp";
+		document.body.appendChild(form_pref);
+		prefe.showWindow(form_pref);
+		var form = Element("form_preferences");
+		
+		if(!form) {
+			form = document.createElement("FORM");
+			form.id  = "form_preferences";
+			form.innerHTML = 	"<table border='0' cellpading='0' cellspacing='0'>"+
+				"<tr><td colspan='2'><center>" + get_lang('Config for expressoMail') + "</center></td></tr>"+
+				"<tr><td nowrap> - " + get_lang('What is the maximum number of messages per page?') + "</td>"+
+				"<td>&nbsp;<select id='sel_num_max' name='sel_num_max'>"+
+				"<option value='25'>25</option>"+
+				"<option value='50'>50</option>"+
+				"<option value='75'>75</option>"+
+				"<option value='100'>100</option>"+														
+				"</select></td>"+
+				"</tr>"+
+				"<tr><td nowrap> - " + get_lang('Save deleted messages in trash folder?') + "</td>"+
+				"<td><input type='checkBox' id='check_save_men' name='check_save_men'></td>"+
+				"</tr>"+
+				"<tr><td nowrap> - " + get_lang('Delete trash messages after how many days?') + "</td>"+
+				"<td>&nbsp;<select id='sel_del_men' name='sel_del_men'>"+
+				"<option value='0'>" + get_lang('None') + "</option>"+
+				"<option value='1'>"+get_lang("1 day")+"</option>"+
+				"<option value='2'>"+get_lang("2 days")+"</option>"+												
+				"<option value='3'>"+get_lang("3 days")+"</option>"+							
+				"<option value='4'>"+get_lang("4 days")+"</option>"+							
+				"<option value='5'>"+get_lang("5 days")+"</option>"+							
+				"</select></td>"+
+				"</tr>"+
+				"<tr><td nowrap> - " + get_lang('Show previous message, after delete actual message?') + "</td>"+
+				"<td><input type='checkBox' id='check_show_previous' name='check_show_previous'></td>"+
+				"</tr>"+
+				"<tr><td nowrap> - " + get_lang('Do you wanna receive an alert for new messages?') + "</td>"+
+				"<td><input type='checkBox' id='check_alert' name='check_alert'></td>"+
+				"</tr>"+
+				"<tr><td nowrap> - " + get_lang('Show default view on main screen?') + "</td>"+
+				"<td><input type='checkBox' id='check_view' name='check_view'></td>"+
+				"</tr>"+
+				"<tr><td nowrap> - " + get_lang('Save sent messages in folder') + "</td>"+				
+				"<td>&nbsp;<select style='width:125px' id='sel_name_box' name='sel_name_box'></select></td>"+
+				"</tr>"+
+				"<tr><td> - " + get_lang('Hide menu folders?') + "</td>"+
+				"<td><input type='checkBox' id='check_menu' name='check_menu'></td>"+
+				"</tr>"+
+				"<tr><td> - " + get_lang('What is the height of the lines in the list of messages?') + "</td>"+
+				"<td>&nbsp;<select id='sel_height_line' name='sel_height_line'>"+
+				"<option value='20'>"+get_lang("Normal")+"</option>"+
+				"<option value='30'>"+get_lang("Medium")+"</option>"+
+				"<option value='40'>"+get_lang("Big")+"</option>"+														
+				"</select></td>"+
+				"</tr>"+
+				"<tr><td> - " + get_lang('What the font size in the list of messages?') + "</td>"+
+				"<td>&nbsp;<select id='sel_size_font' name='sel_size_font'>"+
+				"<option value='10'>"+get_lang("Small")+"</option>"+
+				"<option value='11'>"+get_lang("Normal")+"</option>"+							
+				"<option value='15'>"+get_lang("Big")+"</option>"+
+				"</select></td></tr>"+
+				"<tr><td> - " + get_lang("Use dynamic contacts?") + "</td>"+
+				"<td><input type='checkBox' id='use_dynamic_contacts' name='use_dynamic_contacts'></td></tr>"+
+				"<tr><td> - " + get_lang("Auto save draft") + "?</td>"+
+				"<td><input type='checkBox' id='auto_save_draft' name='auto_save_draft'></td></tr>"+
+				"<tr><td> - " + get_lang("Use shortcuts?") + "</td>"+
+				"<td><input type='checkBox' id='use_shortcuts' name='use_shortcuts'></td></tr>"+
+				"<tr><td nowrap> - " + get_lang('Insert signature automatically in new messages?') + "</td>"+
+				"<td><input type='checkBox' id='use_signature' name='use_signature'></td>"+
+				"</tr>"+
+				"<tr><td colspan='2'> - " + get_lang('Signature') + "<br>"+
+				"<textarea id='txt_signature' name='txt_signature' rows='3' cols='59'></textarea></td>"+
+				"</tr>"+
+				"<tr><td><input type='button' value='"+get_lang("Cancel")+"' onclick='prefe.close_win();'>"+
+				"<td align='left'><input type='button' value='"+get_lang("Save")+"' onclick='prefe.save_form()'>"+
+				"</tr>"+
+				"</table>";
+			form_pref.appendChild(form);
+			var sel_nm = Element("sel_name_box");
+			var opt = new Option(get_lang("Select the user"),"-1",true,true);
+			sel_nm.options[sel_nm.length] = opt;
+			var reg = /user(\.|\/)(.*)$/;
+			for(var i=0; i < folders.length; i++){
+				if(reg.test(folders[i].folder_id))
+					continue;
+				var level =  parseInt(folders[i].folder_id.split(cyrus_delimiter).length);
+				var	ident = '';
+				for(var j = 2;level > 2 && j < level; j++)
+					ident += ' - ';
+				var opt = new Option(ident+lang_folder(folders[i].folder_name),folders[i].folder_id,false,true);
+				sel_nm.options[sel_nm.length] = opt;
+			}
+			sel_nm.options[0].selected = true;
+			_this.clean_all();
+		}
+		_this.load_form();
+	}
+	
+	// Preenche os campos no form;
+	Preferences.prototype.load_form = function(){
+		var sel_num_max = Element("sel_num_max");
+			for(var i=0; i < sel_num_max.options.length; i++){
+				if(sel_num_max.options[i].value == preferences.max_email_per_page){sel_num_max.options[i].selected = true;}
+			}
+		var check_save_men = Element("check_save_men");
+			if( preferences.save_deleted_msg == 1){check_save_men.checked = true;}
+		var sel_del_men = Element("sel_del_men");
+			for(var i=0; i < sel_del_men.options.length; i++){
+				if(sel_del_men.options[i].value == preferences.delete_trash_messages_after_n_days){sel_del_men.options[i].selected = true;}
+			}
+		var check_show_previous = Element("check_show_previous");
+			if( preferences.delete_and_show_previous_message == 1){check_show_previous.checked = true;} 
+		var check_alert = Element("check_alert");
+			if( preferences.alert_new_msg == 1){check_alert.checked = true;}
+		var check_view = Element("check_view");
+			if( preferences.mainscreen_showmail == 1){check_view.checked = true;}
+		var sel_name_box = Element("sel_name_box");
+			for(var i=0; i < sel_name_box.options.length; i++){
+				if(sel_name_box.options[i].value == preferences.save_in_folder){sel_name_box.options[i].selected = true;}
+			}
+		var check_menu = Element("check_menu");
+			if( preferences.hide_folders == 1){check_menu.checked = true;}
+		var sel_height_line = Element("sel_height_line");
+			for(var i=0; i < sel_height_line.options.length; i++){
+				if( sel_height_line.options[i].value == preferences.line_height){sel_height_line.options[i].selected = true;}
+			}
+		var sel_size_font = Element("sel_size_font");
+			for(var i=0; i < sel_size_font.options.length; i++){
+				if(sel_size_font.options[i].value == preferences.font_size){sel_size_font.options[i].selected = true;}
+			}
+		var use_dynamic_contacts = Element("use_dynamic_contacts");
+			if (preferences.use_dynamic_contacts == 1) {
+				use_dynamic_contacts.checked = true;
+			}
+		var use_signature = Element("use_signature");
+			if( preferences.use_signature == 1){
+				use_signature.checked = true;
+			}
+		var txt_signature = Element("txt_signature");
+			txt_signature.value = preferences.signature;
+		
+		if ((preferences.number_of_contacts < 1) || isNaN(preferences.number_of_contacts)){
+			Element("use_dynamic_contacts").checked = false;
+			Element("use_dynamic_contacts").disabled = 'disabled';
+		}
+		if( preferences.use_shortcuts == 1) Element("use_shortcuts").checked = true;
+		if( preferences.auto_save_draft == 1) Element("auto_save_draft").checked = true;
+	}
+	
+
+	// Salva as opções do form;
+	Preferences.prototype.save_form = function(){
+		
+		var _this = this;	
+	    //var prefe_string;			
+		var reload_page = false;
+
+		if(preferences.max_email_per_page != Element("sel_num_max").value)
+			reload_page = true;
+		else if(preferences.delete_trash_messages_after_n_days != Element("sel_del_men").value)
+		   	reload_page = true;
+		else if(preferences.hide_folders != Element("check_menu").checked)
+			reload_page = true;
+		else if(preferences.line_height != Element("sel_height_line").value)
+	    	reload_page = true;
+	    else if(preferences.font_size != Element("sel_size_font").value)
+			reload_page = true;
+	    else if(preferences.use_shortcuts != Element("use_shortcuts").checked)
+			reload_page = true;
+	    else if(preferences.auto_save_draft != Element("auto_save_draft").checked)
+			reload_page = true;
+		else if(preferences.use_dynamic_contacts != Element("use_dynamic_contacts").checked) {
+			reload_page = true;
+			_this.delete_dynamic_contacts();
+		}
+				
+		preferences.max_email_per_page = Element("sel_num_max").value; 
+	 	preferences.save_deleted_msg = Element("check_save_men").checked ? 1 : 0;
+		preferences.delete_trash_messages_after_n_days = Element("sel_del_men").value;
+		preferences.delete_and_show_previous_message = Element("check_show_previous").checked ? 1 : 0;
+		preferences.alert_new_msg = Element("check_alert").checked ? 1 : 0;
+		preferences.mainscreen_showmail = Element("check_view").checked ? 1 : 0;
+	   	preferences.save_in_folder = Element("sel_name_box").value;
+		preferences.hide_folders = Element("check_menu").checked ? 1 : 0;
+	    preferences.line_height = Element("sel_height_line").value;
+		preferences.font_size = Element("sel_size_font").value;
+		preferences.use_signature = Element("use_signature").checked ? 1 : 0;
+		preferences.signature = Element("txt_signature").value;
+		preferences.use_dynamic_contacts = Element("use_dynamic_contacts").checked ? 1 : 0;
+		preferences.use_shortcuts = Element("use_shortcuts").checked ? 1 : 0;
+		preferences.auto_save_draft = Element("auto_save_draft").checked ? 1 : 0;
+
+
+	   	var handler_preferences = function(data){
+	   		if(data && data.success){
+	   			if(reload_page)
+			   		window.location.reload(true);
+			   	else
+				   	_this.close_win();
+	   		}else{
+	   			alert(data);
+	   		}
+	   	}
+	   	var args   = "$this.db_functions.update_preferences";
+		var params = "prefe_string="+url_encode(connector.serialize(preferences));
+	   	cExecute(args,handler_preferences,params);
+	}	
+	//Fecha a janela
+	Preferences.prototype.close_win = function(){
+		this.prefeW['window_confexp'].close();
+	}
+	
+	// Salva uma unica preferencia
+	Preferences.prototype.save = function(key, value){
+		var _this = this;		
+	   	var handler_preferences = function(data){
+	   		if(data && data.success)
+	   			return;	   		
+	   		else
+	   			alert(data);
+	   	}
+	   	preferences[key] = value;
+	   	var args   = "$this.db_functions.update_preferences";
+		var params = "prefe_string="+url_encode(connector.serialize(preferences));
+	   	cExecute(args,handler_preferences,params);
+	}	
+
+	//Limpa os campos
+	Preferences.prototype.clean_all = function(){
+		document.getElementById('check_save_men').checked = false;
+		document.getElementById('check_show_previous').value = false;
+		document.getElementById('check_alert').checked = false;
+		document.getElementById('check_view').checked = false;
+		document.getElementById('check_menu').checked = false;
+		document.getElementById("sel_name_box").options[0].selected = true;
+		document.getElementById("use_signature").checked = false;		
+		document.getElementById('txt_signature').value = "";
+		document.getElementById("use_dynamic_contacts").checked = false;
+	}
+
+	//Monta a janela principal da aplicação;
+	Preferences.prototype.showWindow = function(div){
+		
+		if(! this.prefeW[div.id]) {
+			div.style.height = is_ie ? "385px" : "370px";
+			div.style.width = "515px";
+			div.style.visibility = "hidden";
+			div.style.position = "absolute";
+			div.style.paddingLeft = "10px";			
+			var title = get_lang("ExpressoMail 1.2 Configuration");
+			var wHeight = "480px";
+			var wWidth =  "530px";
+
+			win = new dJSWin({			
+				id: 'cc_'+div.id,
+				content_id: div.id,
+				width: wWidth,
+				height: wHeight,
+				title_color: '#3978d6',
+				bg_color: '#eee',
+				title: title,						
+				title_text_color: 'white',
+				button_x_img: '../phpgwapi/images/winclose.gif',
+				border: true });
+			
+			this.prefeW[div.id] = win;
+			win.draw();
+		}
+		else {
+			win = this.prefeW[div.id];
+
+		}
+		win.open();
+	}	
+	Preferences.prototype.delete_dynamic_contacts = function(){
+		var handler = function(data){}
+		var args   = "$this.dynamic_contacts.delete_dynamic_contacts";
+		var params = "";
+		cExecute(args,handler,params);
+	}
+// Cria o objeto	
+	var prefe;
+	prefe = new Preferences();
Index: tags/expressoMail1_2/1.234/js/html2xhtml.js
===================================================================
--- tags/expressoMail1_2/1.234/js/html2xhtml.js	(revision 2)
+++ tags/expressoMail1_2/1.234/js/html2xhtml.js	(revision 2)
@@ -0,0 +1,1 @@
+var need_nl_before='|div|p|table|tbody|tr|td|th|title|head|body|script|comment|li|meta|h1|h2|h3|h4|h5|h6|hr|ul|ol|option|';var need_nl_after='|html|head|body|p|th|style|';var re_comment=new RegExp();re_comment.compile("^<!--(.*)-->$");var re_hyphen=new RegExp();re_hyphen.compile("-$");function get_xhtml(node,lang,encoding,need_nl,inside_pre){var i;var text='';var children=node.childNodes;var child_length=children.length;var tag_name;var do_nl=need_nl?true:false;var page_mode=true;for(i=0;i<child_length;i++){var child=children[i];switch(child.nodeType){case 1:{var tag_name=String(child.tagName).toLowerCase();if(tag_name=='')break;if(tag_name=='meta'){var meta_name=String(child.name).toLowerCase();if(meta_name=='generator')break;}if(!need_nl&&tag_name=='body'){page_mode=false;}if(tag_name=='!'){var parts=re_comment.exec(child.text);if(parts){var inner_text=parts[1];text+=fix_comment(inner_text);}}else{if(tag_name=='html'){text='<?xml version="1.0" encoding="'+encoding+'"?>\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n';}if(need_nl_before.indexOf('|'+tag_name+'|')!=-1){if((do_nl||text!='')&&!inside_pre)text+='\n';}else{do_nl=true;}text+='<'+tag_name;var attr=child.attributes;var attr_length=attr.length;var attr_value;var attr_lang=false;var attr_xml_lang=false;var attr_xmlns=false;var is_alt_attr=false;for(j=0;j<attr_length;j++){var attr_name=attr[j].nodeName.toLowerCase();if(!attr[j].specified&&(attr_name!='selected'||!child.selected)&&(attr_name!='style'||child.style.cssText=='')&&attr_name!='value')continue;if(attr_name=='_moz_dirty'||attr_name=='_moz_resizing'||tag_name=='br'&&attr_name=='type'&&child.getAttribute('type')=='_moz')continue;var valid_attr=true;switch(attr_name){case"style":attr_value=child.style.cssText;break;case"class":attr_value=child.className;break;case"http-equiv":attr_value=child.httpEquiv;break;case"noshade":break;case"checked":break;case"selected":break;case"multiple":break;case"nowrap":break;case"disabled":break;attr_value=attr_name;break;default:try{attr_value=child.getAttribute(attr_name,2);}catch(e){valid_attr=false;}break;}if(attr_name=='lang'){attr_lang=true;attr_value=lang;}if(attr_name=='xml:lang'){attr_xml_lang=true;attr_value=lang;}if(attr_name=='xmlns')attr_xmlns=true;if(valid_attr){if(!(tag_name=='li'&&attr_name=='value')){text+=' '+attr_name+'="'+fix_attribute(attr_value)+'"';}}if(attr_name=='alt')is_alt_attr=true;}if(tag_name=='img'&&!is_alt_attr){text+=' alt=""';}if(tag_name=='html'){if(!attr_lang)text+=' lang="'+lang+'"';if(!attr_xml_lang)text+=' xml:lang="'+lang+'"';if(!attr_xmlns)text+=' xmlns="http://www.w3.org/1999/xhtml"';}if(child.canHaveChildren||child.hasChildNodes()){text+='>';text+=get_xhtml(child,lang,encoding,true,inside_pre||tag_name=='pre'?true:false);text+='</'+tag_name+'>';}else{if(tag_name=='style'||tag_name=='title'||tag_name=='script'){text+='>';var inner_text;if(tag_name=='script'){inner_text=child.text;}else{inner_text=child.innerHTML;}if(tag_name=='style'){inner_text=String(inner_text).replace(/[\n]+/g,'\n');}text+=inner_text+'</'+tag_name+'>';}else{text+=' />';}}}break;}case 3:{if(!inside_pre){if(child.nodeValue!='\n'){text+=fix_text(child.nodeValue);}}else{text+=child.nodeValue;}break;}case 8:{text+=fix_comment(child.nodeValue);break;}default:break;}}if(!need_nl&&!page_mode){text=text.replace(/<\/?head>[\n]*/gi,"");text=text.replace(/<head \/>[\n]*/gi,"");text=text.replace(/<\/?body>[\n]*/gi,"");}return text;}function fix_comment(text){text=text.replace(/--/g,"__");if(re_hyphen.exec(text)){text+=" ";}return"<!--"+text+"-->";}function fix_text(text){return String(text).replace(/\n{2,}/g,"\n").replace(/\&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\u00A0/g,"&nbsp;");}function fix_attribute(text){return String(text).replace(/\&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\"/g,"&quot;");}
Index: tags/expressoMail1_2/1.234/index.php
===================================================================
--- tags/expressoMail1_2/1.234/index.php	(revision 859)
+++ tags/expressoMail1_2/1.234/index.php	(revision 859)
@@ -0,0 +1,226 @@
+<?php
+
+	/* Begin: Check config needed for expressoMail */
+	/* Config need for expressoMail work */
+	$php_ini['session.auto_start'] = '1';
+	$php_ini['magic_quotes_gpc'] = '';
+	$php_ini['magic_quotes_runtime'] = '';
+	$php_ini['magic_quotes_sybase'] = '';
+	
+	/* Config from php.ini */
+	$php_ini_configs = array("session.auto_start","magic_quotes_gpc","magic_quotes_runtime","magic_quotes_sybase");
+	/* Checking */
+	$error = false;
+	foreach($php_ini_configs as $config)
+	{
+		if ( ($f_phpini=ini_get($config)) != $php_ini[$config])
+		{
+			$error = true;
+			echo "Erro: Config <font color=red>$config</font> from php.ini needs to be '" . $php_ini[$config] . "', but is set to '" . $f_phpini . "'.<br>";
+		}
+	}
+	if ($error)
+		exit;
+	/* End: Check config needed for expressoMail */
+		
+	$GLOBALS['phpgw_info']['flags'] = array(
+		'noheader' => False,
+		'nonavbar' => False,
+		'currentapp' => 'expressoMail1_2',
+		'update_version'	=> '1.234',
+		'enable_nextmatchs_class' => True
+	);
+	
+	include('../header.inc.php');
+	$update_version = $GLOBALS['phpgw_info']['flags']['update_version'];
+	$_SESSION['phpgw_info']['expressomail']['user'] = $GLOBALS['phpgw_info']['user'];
+	echo '<link rel="stylesheet" type="text/css" href="templates/'.$_SESSION['phpgw_info']['expressoMail1_2']['user']['preferences']['common']['template_set'].'/main.css">';
+	echo '<link rel="stylesheet" type="text/css" href="../phpgwapi/js/dftree/dftree.css">';
+	echo "<script type='text/javascript'>var template = '".$_SESSION['phpgw_info']['expressoMail1_2']['user']['preferences']['common']['template_set']."';</script>";
+	echo "<script src='js/globals.js?".$update_version."' type='text/javascript'></script>";
+	echo "<script src='js/sniff_browser.js?".$update_version."' type='text/javascript'></script>";
+	echo '<script type="text/javascript" src="../phpgwapi/js/wz_dragdrop/wz_dragdrop.js?'.$update_version.'"></script>
+		<script type="text/javascript" src="../phpgwapi/js/dJSWin/dJSWin.js?'.$update_version.'"></script>';
+	
+	//Enable/Disable VoIP Service -> Voip Server Config
+	$voip_enabled = false;
+	$voip_groups = array();	
+	if($GLOBALS['phpgw_info']['server']['voip_groups']) {
+		$emailVoip = false;
+		foreach(explode(",",$GLOBALS['phpgw_info']['server']['voip_groups']) as $i => $voip_group){
+			$a_voip = explode(";",$voip_group);			
+			$voip_groups[] = $a_voip[1];
+		}
+		foreach($GLOBALS['phpgw']->accounts->membership() as $idx => $group){			
+			if(array_search($group['account_name'],$voip_groups) !== FALSE){		 
+				$voip_enabled = true;
+				$emailVoip = $GLOBALS['phpgw_info']['server']['voip_email_redirect'];
+				break;
+			}
+		}
+	}
+
+	//Local messages
+	$_SESSION['phpgw_info']['server']['expressomail']['enable_local_messages'] = $current_config['enable_local_messages'];
+
+	// Get Data from ldap_manager and emailadmin.
+	$ldap_manager = CreateObject('contactcenter.bo_ldap_manager');
+	$boemailadmin	= CreateObject('emailadmin.bo');
+	$emailadmin_profile = $boemailadmin->getProfileList();
+    // Loading Admin Config Module
+    $c = CreateObject('phpgwapi.config','expressoMail1_2');
+    $c->read_repository();
+    $current_config = $c->config_data;    
+
+	$_SESSION['phpgw_info']['expressomail']['email_server'] = $boemailadmin->getProfile($emailadmin_profile[0]['profileID']);
+//	$_SESSION['phpgw_info']['expressomail']['user'] = $GLOBALS['phpgw_info']['user'];
+	$_SESSION['phpgw_info']['expressomail']['server'] = $GLOBALS['phpgw_info']['server'];
+	$_SESSION['phpgw_info']['expressomail']['ldap_server'] = $ldap_manager ? $ldap_manager->srcs[1] : null;
+	$_SESSION['phpgw_info']['expressomail']['user']['email'] = $GLOBALS['phpgw']->preferences->values['email'];
+	
+	if($current_config['enable_local_messages']!='True')  {
+		$GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_local_messages'] = 0;
+	}
+
+	$_SESSION['phpgw_info']['user']['preferences']['expressoMail'] = array(
+			'voip_enabled'						=> $voip_enabled,
+			'voip_email_redirect'				=> $emailVoip,
+			'outoffice'							=> $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['outoffice'],
+			'telephone_number'					=> $GLOBALS['phpgw_info']['user']['telephonenumber'],
+			'max_email_per_page' 				=> $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['max_email_per_page'],
+    		'save_deleted_msg' 					=> $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['save_deleted_msg'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['save_deleted_msg'] : "0",
+            'delete_trash_messages_after_n_days'=> $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['delete_trash_messages_after_n_days'],
+    		'delete_and_show_previous_message' 	=> $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['delete_and_show_previous_message'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['delete_and_show_previous_message'] : "0",
+    		'alert_new_msg' 					=> $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['alert_new_msg'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['alert_new_msg'] : "0",
+    		'mainscreen_showmail' 				=> $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['mainscreen_showmail'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['mainscreen_showmail'] : "0",
+    		'signature' 						=> $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['signature'],
+    		'type_signature' 					=> $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['type_signature'],
+    		'use_signature' 					=> $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_signature'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_signature'] : "0",
+		'hide_folders' 						=> $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['hide_folders'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['hide_folders'] : "0",    		
+    		'save_in_folder' 					=> $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['save_in_folder'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['save_in_folder'] : "-1",
+    		'line_height' 						=> $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['line_height'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['line_height'] : "30",
+    		'font_size' 						=> $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['font_size'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['font_size'] : "11",
+    		'use_shortcuts' 					=> $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_shortcuts'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_shortcuts'] : "0",
+    		'auto_save_draft'					=> $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['auto_save_draft'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['auto_save_draft'] : "0",
+		'use_dynamic_contacts' 					=> $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_dynamic_contacts'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_dynamic_contacts'] : "0",
+		'number_of_contacts' 					=> $current_config['expressoMail_Number_of_dynamic_contacts'] ? $current_config['expressoMail_Number_of_dynamic_contacts'] : "0",
+		'use_cache' 						=> $current_config['expressoMail_enable_cache'],
+		'notification_domains'					=> $current_config['expressoMail_notification_domains'],
+		'remove_attachments_function'				=> $current_config['expressoMail_remove_attachments_function'],
+		'use_important_flag'					=> $current_config['expressoMail_enable_important_flag'],
+   		'use_local_messages'	 			=> $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_local_messages'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_local_messages'] : "0",
+   		'keep_archived_messages'	 		=> $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['keep_archived_messages'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['keep_archived_messages'] : "0"
+
+
+
+
+	);
+
+
+	$template = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
+	$template->set_var("txt_loading",lang("Loading"));
+	$template->set_var("txt_clear_trash",lang("message(s) deleted from your trash folder."));
+    $template->set_var("new_message", lang("New Message"));
+	$template->set_var("lang_inbox", lang("Inbox"));
+    $template->set_var("refresh", lang("Refresh"));
+    $template->set_var("tools", lang("Tools"));	
+	$template->set_var("lang_Open_Search_Window", lang("Open search window") . '...');
+	$template->set_var("lang_search_user", lang("Search user") . '...'); 
+	$template->set_var("upload_max_filesize",ini_get('upload_max_filesize'));
+	$template->set_var("msg_folder",$_GET['msgball']['folder']);
+	$template->set_var("msg_number",$_GET['msgball']['msgnum'] ? $_GET['msgball']['msgnum'] : $_GET['to']);
+	$template->set_var("user_email",$_SESSION['phpgw_info']['expressomail']['user']['email']);
+	$acc = CreateObject('phpgwapi.accounts');
+	$template->set_var("user_organization", $acc->get_organization($GLOBALS['phpgw_info']['user']['account_dn']));
+	$template->set_var("cyrus_delimiter",$_SESSION['phpgw_info']['expressomail']['email_server']['imapDelimiter']);	
+	// Fix problem with cyrus delimiter changes in preferences.
+	// Dots in names: enabled/disabled.
+	$save_in_folder = @eregi_replace("INBOX/", "INBOX".$_SESSION['phpgw_info']['expressomail']['email_server']['imapDelimiter'], $_SESSION['phpgw_info']['user']['preferences']['expressoMail']['save_in_folder']);
+	$save_in_folder = @eregi_replace("INBOX.", "INBOX".$_SESSION['phpgw_info']['expressomail']['email_server']['imapDelimiter'], $save_in_folder);
+	$_SESSION['phpgw_info']['user']['preferences']['expressoMail']['save_in_folder'] = $save_in_folder;
+	// End Fix.
+	
+	$template->set_file(Array('expressoMail' => 'index.tpl'));
+	$template->set_block('expressoMail','list');
+	$template->pfp('out','list');
+	$GLOBALS['phpgw']->common->phpgw_footer();
+    
+    $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_enable_log_messages'] = $current_config['expressoMail_enable_log_messages'];
+	
+    // Begin Set Anti-Spam options.
+    $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_ham'] = $current_config['expressoMail_command_for_ham'];
+    $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_spam'] = $current_config['expressoMail_command_for_spam'];
+    $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_use_spam_filter'] = $current_config['expressoMail_use_spam_filter'];   
+    echo '<script> var use_spam_filter = \''.$current_config['expressoMail_use_spam_filter'].'\' </script>';
+	// End Set Anti-Spam options.
+
+    // Set Imap Folder names options
+
+    $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder'] 	= $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder']	? $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder']		: lang("Trash");
+    $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder'] 	= $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder'] ? $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder'] 	: lang("Drafts");
+    $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder'] 	= $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder']	? $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder']		: lang("Spam");
+    $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder']	= $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder'] 	? $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder'] 		: lang("Sent");
+    
+    echo '<script> var special_folders = new Array(4);
+   	special_folders["'.$_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder'].'"] = \'Trash\';
+    special_folders["'.$_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder'].'"] = \'Drafts\';
+    special_folders["'.$_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder'].'"] = \'Spam\';
+    special_folders["'.$_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder'].'"] = \'Sent\';
+    var trashfolder = "'.$_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder'].'";
+    var draftsfolder = "'.$_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder'].'";
+    var sentfolder = "'.$_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder'].'";
+    var spamfolder = "'.$_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder'].'";                 
+    </script>';
+
+    // End Set Imap Folder names options
+	//User info
+	echo "<script language='javascript'> var account_id = ".$GLOBALS['phpgw_info']['user']['account_id'].";</script>";
+
+	$obj = createobject("expressoMail1_2.functions");
+	// este arquivo deve ser carregado antes que
+	// os demais pois nele contem a função get_lang
+	// que é utilizada em diversas partes
+	echo $obj -> getFilesJs("js/common_functions.js");
+	include("inc/load_lang.php");		
+
+	// INCLUDE these JS Files: 
+	echo $obj -> getFilesJs("js/abas.js," .
+							"js/doiMenuData.js," .
+							"js/drag_area.js," .
+							"js/draw_api.js," .
+							"js/DropDownContacts.js," .
+							"js/InfoContact.js," .
+							"js/main.js," .
+							"js/gears_init.js," .
+							"js/local_messages.js," .
+							"js/messages_proxy.js," .
+							"js/rich_text_editor.js," .
+							"js/wfolders.js,",
+							$GLOBALS['phpgw_info']['flags']['update_version']);
+
+	if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_shortcuts'])
+	{
+		echo $obj -> getFilesJs("js/shortcut.js", $GLOBALS['phpgw_info']['flags']['update_version']);
+	}
+
+	// Get Preferences or redirect to preferences page.
+	$GLOBALS['phpgw']->preferences->read_repository();
+	if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail'] == null){
+		echo '<script>alert("' . lang('Dear user,\nthis is your first time in the ExpressoMail, your preferences must be saved.\nPlease, choose your preferences and click on the button Save.') . '")</script>';
+		echo "<script>location.href='./preferences.php'</script>";
+	}	
+
+?>
+
+<html>
+<head>
+<title>ExpressoMail</title>
+<link rel="stylesheet" type="text/css" href="../phpgwapi/js/dftree/dftree.css">
+</head>
+<body scroll="no" style="overflow:hidden">
+</body>
+</html>
+<script src="js/connector.js?<?=$update_version?>" type="text/javascript"></script>
+<script src="../phpgwapi/js/dftree/dftree.js?<?=$update_version?>" type="text/javascript"></script>
+<script language="Javascript">connector.updateVersion = "<?=$update_version?>";init();</script>
+<!-----Expresso Mail - Version Updated:<?=$update_version?>-------->
Index: tags/expressoMail1_2/1.234/templates/default/preferences.tpl
===================================================================
--- tags/expressoMail1_2/1.234/templates/default/preferences.tpl	(revision 695)
+++ tags/expressoMail1_2/1.234/templates/default/preferences.tpl	(revision 695)
@@ -0,0 +1,209 @@
+
+<script src="js/main.js"></script>
+<center>
+
+<table width="65%" border="0" cellspacing="2" cellpadding="2">
+
+<form  method="POST" action="{save_action}" onSubmit="selectValues()">
+<input type="hidden" name="try_saved" value="false">
+    <tr bgcolor="{th_bg}">
+        <td colspan="2" align="center">{lang_config_expressoMail}</td>
+    </tr>
+    <tr bgcolor="{tr_color1}">
+        <td>{lang_max_emails_per_page}</td>
+        <td align="center">
+			<select name="max_emails_per_page">
+				<option {option_25_selected} value="25">25</option>
+				<option {option_50_selected} value="50">50</option>
+				<option {option_75_selected} value="75">75</option>
+				<option {option_100_selected} value="100">100</option>
+			</select>
+        </td>
+    </tr>
+    <tr bgcolor="{tr_color2}">
+        <td>{lang_save_deleted_msg}</td>
+        <td align="center">
+        	<input type="checkbox" name="save_deleted_msg" value=1 {checked_save_deleted_msg}>
+        </td>
+    </tr>
+    <tr bgcolor="{tr_color1}">
+        <td>{lang_delete_trash_messages_after_n_days}</td>
+        <td align="center">
+			<select name="delete_trash_messages_after_n_days">
+				<option {delete_trash_messages_option_0_selected} value="0">{lang_none}</option>
+				<option {delete_trash_messages_option_1_selected} value="1">{one_day}</option>
+				<option {delete_trash_messages_option_2_selected} value="2">{two_days}</option>
+				<option {delete_trash_messages_option_3_selected} value="3">{three_days}</option>
+				<option {delete_trash_messages_option_4_selected} value="4">{four_days}</option>
+				<option {delete_trash_messages_option_5_selected} value="5">{five_days}</option>
+			</select>
+        </td>
+    </tr>
+    {open_comment_local_messages_config}
+	<tr bgcolor="{tr_color2}">
+        <td>{lang_Would_you_like_to_use_local_messages_?}</td>
+        <td align="center">
+        	<select name="use_local_messages" id="use_local_messages" onchange="disable_field(document.getElementById('keep_archived_messages'),'document.getElementById(\'use_local_messages\').value==\'0\'')">
+				<option {use_local_messages_option_No_selected} value="0">{lang_No}</option>
+				<option {use_local_messages_option_Yes_selected} value="1">{lang_Yes}</option>
+			</select>
+        </td>
+    </tr>
+	<tr bgcolor="{tr_color1}">
+        <td>{lang_Would_you_like_to_keep_archived_messages_?}</td>
+        <td align="center">
+        	<select name="keep_archived_messages" id="keep_archived_messages">				
+				<option {keep_archived_messages_option_No_selected} value="0">{lang_No}</option>
+				<option {keep_archived_messages_option_Yes_selected} value="1">{lang_Yes}</option>
+			</select>
+        </td>
+    </tr>
+    {close_comment_local_messages_config}
+    <tr bgcolor="{tr_color2}">
+        <td>{lang_delete_and_show_previous_message}</td>
+        <td align="center">
+        	<input type="checkbox" name="delete_and_show_previous_message" value=1 {checked_delete_and_show_previous_message}>
+        </td>
+    </tr>
+	<tr bgcolor="{tr_color1}">
+        <td>{lang_alert_new_msg}</td>
+        <td align="center">
+        	<input type="checkbox" name="alert_new_msg" value=1 {checked_alert_new_msg}>
+        </td>
+    </tr>
+    <tr bgcolor="{tr_color2}">
+        <td>{lang_hook_home}</td>
+        <td align="center">
+        	<input type="checkbox" name="mainscreen_showmail" value=1 {checked_mainscreen_showmail}>
+        </td>
+    </tr>
+    <tr bgcolor="{tr_color1}">
+        <td>{lang_save_in_folder}</td>
+        <td align="center">
+        	<select name="save_in_folder">{value_save_in_folder}</select>
+        </td>
+    </tr>
+    <tr bgcolor="{tr_color2}">
+        <td>{lang_hide_menu}</td>
+        <td align="center">
+			<input type="checkbox" name="check_menu" value=1 {checked_menu}>
+        </td>
+    </tr>
+    <tr bgcolor="{tr_color1}">
+        <td>{lang_line_height}</td>
+        <td align="center">
+			<select name="line_height">
+				<option {line_height_option_20_selected} value="20">{normal}</option>
+				<option {line_height_option_30_selected} value="30">{medium}</option>
+				<option {line_height_option_40_selected} value="40">{big}</option>
+			</select>
+        </td>
+    </tr>
+    <tr bgcolor="{tr_color2}">
+        <td>{lang_font_size}</td>
+        <td align="center">
+			<select name="font_size">
+				<option {font_size_option_10_selected} value="10">{small}</option>
+				<option {font_size_option_11_selected} value="11">{normal}</option>
+				<option {font_size_option_15_selected} value="15">{big}</option>
+			</select>
+        </td>
+    </tr>
+    <tr bgcolor="{tr_color1}">
+        <td>{lang_use_dynamic_contacts}</td>
+        <td align="center">
+			<input type="checkbox" name="use_dynamic_contacts" value=1 {checked_dynamic_contacts}>
+        </td>
+    </tr>
+    <tr bgcolor="{tr_color2}">
+        <td>
+			{lang_use_shortcuts}
+		</td>
+		<td align="center">
+			<input type="checkbox" name="use_shortcuts" value=1 {checked_shortcuts}>
+		</td>
+    </tr>
+
+    <tr bgcolor="{tr_color1}">
+        <td>
+			{lang_auto_save_draft}
+		</td>
+		<td align="center">
+			<input type="checkbox" name="auto_save_draft" value=1 {checked_auto_save_draft}>
+		</td>
+    </tr>
+    <tr bgcolor="{th_bg}">
+        <td colspan="2" align="center">{lang_config_signature}</td>
+    </tr>
+     <tr bgcolor="{tr_color1}">
+        <td>
+			{lang_use_signature}
+		</td>
+		<td align="center">
+			<input type="checkbox" name="use_signature" value=1 {checked_use_signature}>
+		</td>
+    </tr>
+    <tr bgcolor="{tr_color2}">
+        <td valign="center">
+			{lang_type_signature}
+        </td>
+        <td align="center">
+			<select id="type_signature" name="type_signature" onChange="javascript:changeTypeSignature(this.value)">
+				<option {type_signature_option_text_selected} value="text">{simple_text}</option>
+				<option {type_signature_option_html_selected} value="html">{html_text}</option>
+			</select>
+		</td>
+    </tr>
+    <tr bgcolor="{tr_color2}">
+        <td colspan='2' valign="center" id="td_html_signature" style="{type_signature_td_html}">
+			{rtf_signature}
+        </td>
+    </tr>
+     <tr bgcolor="{tr_color2}">
+        <td colspan='2' align="center" id="td_text_signature"  style="{type_signature_td_text}">
+			<textarea name='text_signature' rows='4' cols='70'>{text_signature}</textarea>
+        </td>
+    </tr>
+    <tr bgcolor="{th_bg}">
+    	<td colspan="2" >
+    		<table width="100%" border="0" cellspacing="2" cellpadding="2">
+    			<tr>
+        			<td align="left">
+        				<input type="button" name="cancel" value="{lang_cancel}" onClick="javascript:document.location.href = '../expressoMail1_2/index.php'">
+        			</td>
+        			<td align="right">
+        				<input type="submit" name="submit" value="{lang_save}" onClick="try_saved.value='true';">
+        			</td>
+        		</tr>
+        </td>
+    </tr>
+
+</table>
+</center>
+<script language="JavaScript" type="text/javascript">
+	if(document.getElementById('keep_archived_messages'))
+		disable_field(document.getElementById('keep_archived_messages'),'document.getElementById(\'use_local_messages\').value==\'0\'')
+	var form = 	document.forms[0];
+
+	function selectValues(){
+		var signature = eval("form."+form.type_signature.value+"_signature");
+		signature.name = "signature";
+		return true;
+	} 	
+
+	function changeTypeSignature(value){
+		var html_signature = FCKeditorAPI.GetInstance("html_signature");
+
+  		if(value == 'text'){
+			form.text_signature.value = html_signature.GetHTML();
+  	  		document.getElementById("td_text_signature").style.display = '';
+	  	  	document.getElementById("td_html_signature").style.display = 'none';
+  		}
+	  	else if(value == 'html'){
+  		  	html_signature.SetHTML(form.text_signature.value);
+  		  	document.getElementById("td_text_signature").style.display = 'none';
+  	  		document.getElementById("td_html_signature").style.display  = '';
+	  	}
+	  	
+	}
+</script>  
Index: tags/expressoMail1_2/1.234/templates/default/config.tpl
===================================================================
--- tags/expressoMail1_2/1.234/templates/default/config.tpl	(revision 689)
+++ tags/expressoMail1_2/1.234/templates/default/config.tpl	(revision 689)
@@ -0,0 +1,107 @@
+<!-- BEGIN header -->
+<form method="POST" action="{action_url}">
+<table border="0" align="center">
+   <tr bgcolor="{th_bg}">
+    <td colspan="2"><font color="{th_text}">&nbsp;<b>{title}</b></font></td>
+   </tr>
+<!-- END header -->
+<!-- BEGIN body -->
+   <tr bgcolor="{row_on}">
+    <td colspan="2">&nbsp;</td>
+   </tr>
+   <tr bgcolor="{row_off}">
+    <td colspan="2"><b>{lang_ExpressoMail_settings}</b></td>
+   </tr>
+	<tr class="{row_off}">
+    <td>{lang_Would_you_like_to_use_local_messages_?}:</td>
+    <td>
+     <select name="newsettings[enable_local_messages]">
+      <option value="">{lang_No}</option>
+      <option value="True"{selected_enable_local_messages_True}>{lang_Yes}</option>
+     </select>
+    </td>
+   </tr>
+   <tr bgcolor="{row_on}">
+    <td>{lang_Do_you_want_to_log_the_sent_messages?}</td>
+    <td>
+     <select name="newsettings[expressoMail_enable_log_messages]">
+      <option value=""{selected_expressoMail_enable_log_messages_False}>{lang_No}</option>
+      <option value="True"{selected_expressoMail_enable_log_messages_True}>{lang_Yes}</option>
+     </select>&nbsp;&nbsp;&nbsp;path: /home/expresso/mail_senders.log
+    </td>
+   </tr>
+   <tr bgcolor="{row_off}">
+   <td>{lang_Do_you_want_to_cache_php_requests_in_javascript?}</td>
+   <td>
+   <select name="newsettings[expressoMail_enable_cache]">
+   <option value=""{selected_expressoMail_enable_cache_False}>{lang_No}</option>
+   <option value="True"{selected_expressoMail_enable_cache_True}>{lang_Yes}</option>
+   </select>
+   </td>
+   </tr>
+   <tr bgcolor="{row_on}">
+   <td>{lang_Do_you_want_to_use_important_flag_in_email_editor?}</td>
+   <td>
+   <select name="newsettings[expressoMail_enable_important_flag]">
+   <option value=""{selected_expressoMail_enable_important_flag_False}>{lang_No}</option>  
+   <option value="True"{selected_expressoMail_enable_important_flag_True}>{lang_Yes}</option>
+   </select>
+   </td>
+   </tr>
+   <tr bgcolor="{row_off}">
+   <td>{lang_Do_you_want_to_use_remove_attachments_function?}</td>
+   <td>
+   <select name="newsettings[expressoMail_remove_attachments_function]">
+   <option value=""{selected_expressoMail_remove_attachments_function_False}>{lang_No}</option>
+   <option value="True"{selected_expressoMail_remove_attachments_function_True}>{lang_Yes}</option>
+   </select>
+   </td>
+   </tr>
+   <tr bgcolor="{row_on}">
+   <td>{lang_Do_you_want_to_use_the_spam_filter?}</td>
+   <td>
+   <select name="newsettings[expressoMail_use_spam_filter]">
+   <option value=""{selected_expressoMail_use_spam_filter_False}>{lang_No}</option>
+   <option value="True"{selected_expressoMail_use_spam_filter_True}>{lang_Yes}</option>
+   </select>
+    </td>
+   </tr>
+   <tr bgcolor="{row_off}">
+    <td>{lang_Command_for_spam}</td>
+    <td>
+    <input type="text" name="newsettings[expressoMail_command_for_spam]" value="{value_expressoMail_command_for_spam}" size="60" /> 
+    </td>
+    <tr bgcolor="{row_on}">
+    <td>{lang_Command_for_unmark_spam}</td>
+    <td>
+    <input size="60" name="newsettings[expressoMail_command_for_ham]" value="{value_expressoMail_command_for_ham}"> 
+    </td>
+    </tr>
+    <tr bgcolor="{row_off}">
+    <td>{lang_Always_confirm_notification_to_these_domains}</td>
+    <td>
+    <input size="60" name="newsettings[expressoMail_notification_domains]" value="{value_expressoMail_notification_domains}">
+    </td>
+    </tr>
+    <tr bgcolor="{row_on}">
+    <td>{lang_Number_of_dynamic_contacts}</td>
+    <td>
+    <input size="1" name="newsettings[expressoMail_Number_of_dynamic_contacts]" value="{value_expressoMail_Number_of_dynamic_contacts}"> 
+    </td>
+    </tr>
+<!-- END body -->
+<!-- BEGIN footer -->
+  <tr bgcolor="{th_bg}">
+    <td colspan="2">
+&nbsp;
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" align="center">
+      <input type="submit" name="submit" value="{lang_submit}">
+      <input type="submit" name="cancel" value="{lang_cancel}">
+    </td>
+  </tr>
+</table>
+</form>
+<!-- END footer -->
Index: tags/expressoMail1_2/1.234/templates/default/index.tpl
===================================================================
--- tags/expressoMail1_2/1.234/templates/default/index.tpl	(revision 627)
+++ tags/expressoMail1_2/1.234/templates/default/index.tpl	(revision 627)
@@ -0,0 +1,92 @@
+<!-- BEGIN list -->
+<input type="hidden" value="{txt_loading}" id="txt_loading">
+<input type="hidden" value="{txt_clear_trash}" id="txt_clear_trash">
+<input type="hidden" value="{upload_max_filesize}" id="upload_max_filesize">
+<input type="hidden" value="{msg_folder}" id="msg_folder">
+<input type="hidden" value="{msg_number}" id="msg_number">
+<input type="hidden" value="{user_email}" id="user_email">
+<input type="hidden" value="{user_organization}" id="user_organization">
+<input type="hidden" value="{cyrus_delimiter}" id="cyrus_delimiter">
+<table id="main_table" width="100%" cellspacing="0" cellpadding="0" border="0" style="display:none">
+	<tbody>
+		<tr>
+			<td id="folderscol" width="162px" height="100%" valign="top">			
+				<table id="folders_tbl" width="162px" border="0" cellspacing="0" cellpadding="0" border="0">
+					<tbody>
+						<tr><td><div class='content-menu'>
+							<table border="0" cellspacing="0" cellpadding="0" border="0"><tbody>
+								<tr><td class='content-menu-td' onclick='javascript:new_message("new","null");' onmouseover='javascript:set_menu_bg(this);' onmouseout='javascript:unset_menu_bg(this);'><div class='em_div_sidebox_menu'><img src='./templates/default/images/menu/createmail.gif'><span class="em_sidebox_menu">{new_message}</span></div></td></tr>
+								<tr><td class='content-menu-td' id='em_refresh_button' onclick='javascript:refresh();' onmouseover='javascript:set_menu_bg(this);' onmouseout='javascript:unset_menu_bg(this);'><div class='em_div_sidebox_menu'><img src='./templates/default/images/menu/checkmail.gif'><span class="em_sidebox_menu">{refresh}</span></div></td></tr>
+								<tr><td id="link_tools" class='content-menu-td' onmouseover='javascript:set_menu_bg(Element("link_tools"));' onmouseout='javascript:unset_menu_bg(this);'><div class='em_div_sidebox_menu'><img height='16px' src='./templates/default/images/menu/tools.gif'><span class="em_sidebox_menu">{tools} ...</span></div></td></tr>								
+							</tbody></table>
+						</div></td></tr>
+						<tr><td height="2px"></td></tr>						
+						<tr><td class="content-folders" valign="top" style="padding:2px">
+							<div id="content_folders" style="height:100%;width:162px;overflow:auto"></div>
+						</td></tr>
+					</tbody>
+				</table>
+				<div style="height:4px"></div>
+				<div align="center" style="white-space:nowrap">
+					<input type="text" id="em_message_search" size="16" maxlength="22" onfocus="javascript:onFocusQuickSearchEmail(this); return false;"/>
+					<a class='' onMouseOut="window.status='';return true;" title='{lang_Open_Search_Window}' onMouseOver="window.status='{lang_Open_Search_Window}';return true;" href="javascript:void(0);"  onClick="javascript:search_emails(Element('em_message_search').value)">
+						<img valign="center" align="center" src="templates/default/images/search.gif">
+					</a>
+					<a class='' onMouseOut="window.status='';return true;" title='{lang_search_user}' onMouseOver="window.status='{lang_search_user}' ;return true;" href="javascript:void(0);"  onClick="javascript:emQuickSearch(Element('em_message_search').value, 'null', 'null')">
+						<img valign="center" align="center" src="templates/default/images/users.jpg">
+					</a>
+				</div>
+				<script type="text/javascript">
+					
+					var element_input = document.getElementById('em_message_search');
+				
+					function keyPressQuickSearchEmail(e)
+					{
+						if( e.keyCode == 13 )
+							emQuickSearch(Element('em_message_search').value, 'null', 'null');
+					}
+
+					if ( element_input.addEventListener )
+						element_input.addEventListener('keypress', keyPressQuickSearchEmail, false);
+					else if ( element_input.attachEvent )
+						element_input.attachEvent('onkeypress', keyPressQuickSearchEmail);
+
+					function onFocusQuickSearchEmail(pInput)
+					{
+						if ( pInput.createTextRange )
+						{
+							var FieldRange = pInput.createTextRange();
+								FieldRange.moveStart('character', pInput.value.length);
+								FieldRange.collapse();
+								FieldRange.select();
+						}
+					}
+				
+				</script>
+			</td>
+			<td width="2px">&nbsp;</td>			
+			<td width="*" valign="top" align="left">
+				<div id="exmail_main_body" class="messagescol">
+					<table id="border_table" width="auto" height="26" cellspacing="0" cellpadding="0" border="0">
+						<tbody id="border_tbody">
+							<tr id="border_tr">
+								<td nowrap class="menu" onClick="alternate_border(0);"  id="border_id_0">&nbsp;{lang_inbox}&nbsp;<font face="Verdana" size="1" color="#505050">[<span id="new_m">0</span> / <span id="tot_m">0</span>]</font>
+								</td>
+								<td nowrap id="border_blank" class="last_menu" width="100%">&nbsp;</td>								
+							</tr>
+						</tbody>
+					</table>
+					<div id="content_id_0" class="conteudo"></div>
+					<div id="footer_menu">
+						<table style="border-top:0px solid black" id="footer_box" cellpadding=0 cellspacing=0 border=0 width="100%" height="10px">
+							<tbody>
+								<tr id="table_message"></tr>
+							</tbody>
+						</table>
+					</div>
+				</div>
+			</td>
+		</tr>
+	</tbody>
+</table>
+<!-- END list -->
Index: tags/expressoMail1_2/1.234/templates/default/signature-example.tpl
===================================================================
--- tags/expressoMail1_2/1.234/templates/default/signature-example.tpl	(revision 389)
+++ tags/expressoMail1_2/1.234/templates/default/signature-example.tpl	(revision 389)
@@ -0,0 +1,8 @@
+<br>
+<br>
+<div width="100%" style="padding-left: 10px;"><font size="3">{full_name} . <em><strong>{first_name}</strong></em></font><br />
+Seu Cargo<br />
+Sua Empresa<br />
+Fone (XX) XXXX.XXXX - Fax (XX) XXXX.XXXX </div>
+<div style="border-left: 1px solid red; padding-left: 10px;" width="100%"><a href="http://www.expressolivre.org/">www.expressolivre.org</a>  </div>
+<div style="border-left: 1px solid red; border-bottom: 1px solid red; width: 10%;">&nbsp;</div>
Index: tags/expressoMail1_2/1.234/templates/default/main.css
===================================================================
--- tags/expressoMail1_2/1.234/templates/default/main.css	(revision 831)
+++ tags/expressoMail1_2/1.234/templates/default/main.css	(revision 831)
@@ -0,0 +1,489 @@
+* {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+}
+
+.checkbox {
+	border:none;
+}
+
+textarea{
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 13px;
+}
+
+.table_box{
+	width: 100%;
+	color: black;
+	border-style: solid;
+	border-width: 1px;
+	border-color: #bbbbbb;
+	font-family: Arial;
+	font-size: 13px;
+	cursor: pointer;
+}
+
+.em_div_write_msg{
+	height: 16px;
+	background: #f7f8fa;
+}
+
+
+/* begin class msgs */
+.tr_msg_unread {
+	color: black;
+	background-color: #e8eef7;
+	font-weight: bold;
+	border-bottom:1px solid #cfcfcf;
+    -moz-user-select: none;
+}
+.tr_msg_read {
+	color: black;
+	background-color: #ffffff;
+	border-bottom:1px solid #cfcfcf;
+    -moz-user-select: none;
+}
+.selected_msg{
+	background-color: #ffffcc;
+}
+.flagged_msg{
+	color: red;
+}
+.selected_shortcut_msg{
+	color: white;
+	background-color: #5194d2;
+}
+.show_img_link{
+	width : 100%;
+	color: black;
+        font-weight: bold;
+	background-color: #ffc;
+	border-bottom:1px solid #cfcfcf;
+	cursor: pointer;		 
+	-moz-user-select: none;
+}
+/* end class msgs */
+
+.show_img_link:hover {
+	color: #000 !important;
+}
+
+.action_info_table {
+	border-spacing: 0px 0px;
+}
+.action_info_th {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 11px;
+	border-width: 0px 0px 0px 0px;
+	padding: 1px 10px 0px 10px;	
+	border-style: inset inset inset inset;
+	border-color: gray gray gray gray;
+	background-color: rgb(250, 209, 99);
+	-moz-border-radius: 6px 6px 6px 6px;
+}
+
+.message_header{
+	background-color: #CCCCCC;
+}
+
+.table_message_header_box{
+	width: 100%;
+	color: black;
+	border-style: solid;
+	border-width: 0px;
+	border-collapse: collapse;
+	border-color: #bbbbbb;
+	font-family: Arial;
+	font-size: 13px;	
+	cursor: pointer;
+}
+.font-menu
+{
+    text-decoration: none;
+    text-align: center;
+    font: bold 13px Lucidatypewriter,monospace;
+    color: #505050;
+}
+
+.font-menu-sel
+{
+    text-decoration: none;
+    text-align: center;
+    font: bold 13px Lucidatypewriter,monospace;
+   	color:#0000FF;
+}
+
+.menu-sel
+{
+    text-decoration: none;
+    text-align: center;
+    font: bold 13px Lucidatypewriter,monospace;
+   	color:#0000FF;
+    height: 20px;
+	width:220px;
+    background-color: #F7F7F7;
+    margin-bottom: 0px;
+    border-left: 1px solid #000000;
+    border-top: 1px solid #000000;
+    border-right: 1px solid #000000;
+    padding:0px 5px 0px 0px;
+    -moz-border-radius: 9px 9px 0px 0px;
+    -moz-user-select: none;
+    cursor: pointer;	
+}
+.menu
+{
+    text-decoration: none;
+    text-align: center;
+    font: bold 13px Lucidatypewriter,monospace;
+    color: #505050;
+    height: 20px;    
+	width:220px;
+    background-color:#E5E5E5;
+    margin-bottom: 0px;
+    border-left: 1px solid #c0c0c0;
+    border-top: 1px solid #c0c0c0;
+    border-right: 1px solid #c0c0c0;       
+    border-bottom: 1px solid #000000;
+	padding:0px 5px 0px 0px;
+    -moz-border-radius: 9px 9px 0px 0px;
+    -moz-user-select: none;
+    cursor: pointer;
+}
+
+.last_menu
+{
+	border-bottom: 1px solid #000000;
+	-moz-border-radius: 0px 0px 0px 0px;
+}
+
+.conteudo {
+    font-family: Verdana, Arial, Helvetica, sans-serif;
+    font-size: 10px;
+    font-weight: normal;
+    color: #000033;
+	padding: 1px;
+    border-color: gray gray gray gray;
+   
+	border-right: 1px solid #000000;
+	border-left: 1px solid #000000;
+	border-bottom: 1px solid #000000;
+	width:99.5%;
+    -moz-border-radius: 0px 0px 6px 6px;
+}
+
+.table_message{
+	background-color: #CCCCCC;
+	padding: 1px;
+	cursor: default;
+	border-width: 1px 1px 1px 1px;
+	border-spacing: 0px 1px;
+	border-style: outset outset outset outset;
+	border-color: gray gray gray gray;
+	border-collapse: separate;
+	-moz-border-radius: 3px 3px 3px 3px;
+}
+.table_top{
+	background-color: #FFFFFF;
+	padding:1px 1px 1px 1px;
+	height:16px;
+	cursor: default;
+	margin: 0px 0px 0px 0px;
+	border-width: 0px 1px 1px 1px;
+	border-style: outset outset outset outset;
+	border-color: black black black black;	
+}
+
+.tr_message_header{
+	background-color: #EEEEEE;
+	cursor: default;
+	border-style: none none none none;
+	-moz-border-radius: 0px 0px 0px 0px;
+}
+
+.tr_message_body{
+	background-color: #FFFFFF;
+	cursor: default;
+	-moz-border-radius: 9px 9px 9px 9px;
+}
+
+.message_body{
+	background-color: #FFFFFF;
+	cursor: default;
+	-moz-border-radius: 9px 9px 9px 9px;
+}
+
+.header_message_field{
+	font-weight: bold;
+}
+
+.suggestion_list
+{
+background: white;
+border: 1px solid;
+padding: 4px;
+}
+        
+.suggestion_list ul
+{
+padding: 0;
+margin: 0;
+list-style-type: none;
+}
+
+.suggestion_list a
+{
+text-decoration: none;
+color: navy;
+}
+
+.suggestion_list .selected
+{
+background: navy;
+color: white;
+}
+        
+        
+.suggestion_list .selected a
+{
+color: white;
+}
+
+#autosuggest
+{
+display: none;
+} 
+
+div#tipDiv {
+  position:absolute; visibility:hidden; left:0; top:0; z-index:10000;
+  background-color:#EFEFEF; border:1px solid #337;
+  width:220px; padding:0px;
+  color:#000; font-size:11px; line-height:1.2;
+  cursor: pointer;
+}
+
+.richtext_toolbar {background-color: #C0C0C0;}
+.imagebutton {border: solid 2px #C0C0C0; background-color: #C0C0C0; float:left;}
+.select_richtext {float:left;}
+/*.image {position: relative; left: 1; top: 1; height:20; width:21; border:none;}*/
+/*.imagebutton_out: {border-style: solid 2px #C0C0C0;}*/
+/*.imagebutton_over: {border-style: outset 20px;}*/
+.sel_color{	border-width:1px;border-color:#FFFFFF;border-style:solid;cursor:pointer;}
+.unsel_color{border-width:1px;border-color:#BBBBBB;border-style:solid;}
+
+/* Conf tree	*/
+.dtree {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 8px;
+	color: #000000;
+	/*white-space: nowrap;*/
+	background-color: #FFFFFF;
+
+}
+.dtree img {
+	border: 0px;
+	vertical-align: middle;
+
+}
+.dtree a {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	color: #000000;
+	white-space: nowrap;	
+}
+.dtree table{
+	margin-top: 0%;
+	padding: 0px 0px 0px 0px;
+}
+.dtree td{
+	padding: 0px 0px 0px 0px;
+}
+
+.folderscol{
+	/*width: 18%;*/
+	width: 100%;
+	/*float: left;*/
+	/*padding: 0px 0px 0px 0px;*/
+}
+
+.messagescol{
+	/*padding-left: 18.5%;*/
+	/*width: 85%;*/
+	width: 100%;
+	/*float: left*/
+	/*margin-rigth: 0px;*/
+	padding: 0px 0px 0px 0px;
+}
+
+.menu-folders
+{
+	text-align: center;
+    text-decoration: none;
+	font: bold 12px Verdana, Arial, Helvetica, sans-serif;
+	color: rgb(0, 102, 51);
+	width: 100%;
+	height: 20px;
+
+	border-right: 1px solid #000000;
+	border-left: 1px solid #000000;
+	border-top: 1px solid #000000;
+		
+	cursor: default;
+    -moz-border-radius: 9px 9px 0px 0px;
+}
+
+.content-menu {
+	padding: 3px 0px 3px 5px;
+	border-top: 1px solid #000000;
+    border-right: 1px solid #000000;
+    border-left: 1px solid #000000;
+	border-bottom: 1px solid #000000;
+	-moz-border-radius: 9px 9px 9px 9px;
+}
+.content-menu-td {
+	border: 1px solid #f7f7f7;
+}
+
+.content-folders {
+	padding: 0px 0px 0px 0px;
+
+	border-top: 1px solid #000000;
+    border-right: 1px solid #000000;
+    border-left: 1px solid #000000;
+	border-bottom: 1px solid #000000;
+    -moz-border-radius: 9px 9px 9px 9px;
+
+	position: relative;
+	overflow: auto;
+}
+
+/* Conf Filter	*/
+.filter {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 8px;
+	background-color : #FFFFFF;
+}
+.filter img {
+	border: 0px;
+	vertical-align: middle;
+}
+.filter a {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	color: #000000;
+	white-space: nowrap;
+}
+
+.message_options {
+	cursor: pointer;
+	color: blue;
+	white-space: nowrap;
+	/*padding:0 1.8;*/
+}
+.message_options_trash,
+.message_options_import,
+.message_options_export,
+.message_options_print,
+.message_options_move {
+        padding:0pt 1pt 1pt 8pt;
+}
+.message_options_inactive {
+         white-space: nowrap;
+        color: #999;
+}
+
+.message_options_active {
+	white-space: nowrap;	
+	color: blue;
+	cursor: pointer;
+}
+
+.message_options_over {
+	cursor: pointer;
+	color: blue;
+	white-space: nowrap;
+	font-weight: bold;
+	text-decoration: underline;
+}
+
+.em_sidebox_menu {
+	position: relative;
+	left: 2px;
+	padding: 0px 13px 0px 0px;
+	font-weight: bold;
+	font-size: 10px;
+	color: #666666;
+	text-decoration: none;
+	white-space: nowrap;
+	font-family: sans-serif;
+}
+
+.em_div_sidebox_menu {
+	position: relative;
+	left: 5px;
+	cursor: pointer;
+}
+.catalog{
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 14px;
+	font-weight: bold;
+}
+
+div.quicksearchcontacts {
+	border-width: 1px;
+	border-style: solid;
+	broder-color: grey;
+	overflow: auto;
+	position: relative;
+	left: 10px;
+	height: 302px;
+	width: 577px;
+}
+
+table.quicksearchcontacts {
+	border-width: 0px 0px 0px 0px;
+	border-spacing: 0px;
+	background-color: white;
+	cursor: default;
+}
+
+tr.quicksearchcontacts_unselected {
+	background-color: white;
+}
+
+tr.quicksearchcontacts_selected {
+	background-color: #5598d7;
+	color: white;
+}
+
+td.quicksearchcontacts_cc {
+	border-style: none;
+}
+
+input.em_button_like_span {
+	border:0px none !important;
+	margin: 0px !important;
+	padding:0px !important;
+	color:blue !important;
+	background:transparent none repeat scroll 0% !important;
+	font-family:Verdana,Arial,Helvetica,sans-serif !important;
+	font-size:11px !important;
+	height:15px !important;
+}
+
+
+
+.l {
+	background-image: url() !important;
+	padding: 0 13 0 0 !important;
+	font-weight: bold !important;
+	font-size: 10px !important;
+	color: #666 !important;
+	text-decoration: none !important;
+	font-family: sans-serif !important;
+}
+.sl {
+	background-image: url() !important; 
+	padding: 0 13 0 0 !important;
+	font-weight: bold !important;
+	font-size: 10px !important;
+	color: #0000FF !important;
+	font-family: sans-serif !important;
+}
Index: tags/expressoMail1_2/1.234/templates/default/error.html
===================================================================
--- tags/expressoMail1_2/1.234/templates/default/error.html	(revision 790)
+++ tags/expressoMail1_2/1.234/templates/default/error.html	(revision 790)
@@ -0,0 +1,11 @@
+<br><br><br>
+<table width='100%' height='100%'>
+	<tr><td width="100%" align='center' height="100%" valign="center">
+	<div style="background-color:white;height:150px;padding:20px;width:50%;border:1px dashed black"><br>
+	<img align="left" src="templates/default/images/manutencao.png" style="margin-right:15px;">
+	<br>
+	<p style="color:darkblue;text-align:justify;font-size:12px">Caro Usuário, <br><br>O <u>serviço de email</u> do Expresso encontra-se temporariamente indisponível. Por favor, retorne mais tarde.</p>
+	<div style="color:darkblue;font-size:12px" align="right"><b>Suporte Expresso Livre</b></div>
+	</td></tr>
+</table>
+<br><br><br>
Index: tags/expressoMail1_2/1.234/templates/canyon/preferences.tpl
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/preferences.tpl	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/preferences.tpl	(revision 791)
@@ -0,0 +1,1 @@
+link ../default/preferences.tpl
Index: tags/expressoMail1_2/1.234/templates/canyon/config.tpl
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/config.tpl	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/config.tpl	(revision 791)
@@ -0,0 +1,1 @@
+link ../default/config.tpl
Index: tags/expressoMail1_2/1.234/templates/canyon/images/users.jpg
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/users.jpg	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/users.jpg	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/users.jpg
Index: tags/expressoMail1_2/1.234/templates/canyon/images/arrow_up.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/arrow_up.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/arrow_up.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/arrow_up.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/image.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/image.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/image.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/image.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/move.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/move.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/move.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/move.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/notification.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/notification.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/notification.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/notification.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/forecolor.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/forecolor.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/forecolor.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/forecolor.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/dsunused.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/dsunused.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/dsunused.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/dsunused.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/filtro
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/filtro	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/filtro	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/filtro/
Index: tags/expressoMail1_2/1.234/templates/canyon/images/personal_catalog.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/personal_catalog.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/personal_catalog.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/personal_catalog.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/menu
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/menu	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/menu	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/menu
Index: tags/expressoMail1_2/1.234/templates/canyon/images/italic.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/italic.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/italic.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/italic.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/search.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/search.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/search.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/search.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/undo.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/undo.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/undo.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/undo.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/answered.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/answered.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/answered.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/answered.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/signed.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/signed.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/signed.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/signed.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/phone.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/phone.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/phone.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/phone.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/minus.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/minus.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/minus.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/minus.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/forbidden.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/forbidden.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/forbidden.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/forbidden.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/forwarded.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/forwarded.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/forwarded.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/forwarded.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/important.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/important.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/important.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/important.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/bold.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/bold.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/bold.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/bold.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/indent.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/indent.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/indent.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/indent.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/arrow_descendant.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/arrow_descendant.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/arrow_descendant.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/arrow_descendant.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/left.button.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/left.button.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/left.button.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/left.button.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/arrow_left.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/arrow_left.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/arrow_left.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/arrow_left.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/underline.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/underline.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/underline.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/underline.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/redo.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/redo.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/redo.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/redo.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/import.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/import.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/import.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/import.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/justifyright.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/justifyright.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/justifyright.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/justifyright.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/envelope.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/envelope.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/envelope.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/envelope.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/link.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/link.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/link.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/link.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/dswarn.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/dswarn.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/dswarn.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/dswarn.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/ajuda.jpg
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/ajuda.jpg	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/ajuda.jpg	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/ajuda.jpg
Index: tags/expressoMail1_2/1.234/templates/canyon/images/deny.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/deny.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/deny.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/deny.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/export.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/export.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/export.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/export.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/down.button.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/down.button.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/down.button.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/down.button.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/signature.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/signature.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/signature.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/signature.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/card.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/card.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/card.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/card.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/up.button.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/up.button.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/up.button.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/up.button.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/users.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/users.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/users.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/users.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/dsalert.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/dsalert.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/dsalert.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/dsalert.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/arrow_down.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/arrow_down.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/arrow_down.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/arrow_down.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/close_button.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/close_button.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/close_button.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/close_button.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/draft.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/draft.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/draft.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/draft.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/plus.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/plus.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/plus.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/plus.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/right.button.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/right.button.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/right.button.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/right.button.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/insertunorderedlist.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/insertunorderedlist.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/insertunorderedlist.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/insertunorderedlist.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/justifyleft.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/justifyleft.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/justifyleft.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/justifyleft.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/new.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/new.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/new.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/new.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/photo.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/photo.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/photo.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/photo.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/manutencao.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/manutencao.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/manutencao.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/manutencao.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/sent.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/sent.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/sent.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/sent.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/print.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/print.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/print.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/print.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/justifyfull.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/justifyfull.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/justifyfull.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/justifyfull.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/outdent.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/outdent.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/outdent.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/outdent.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/invalid.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/invalid.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/invalid.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/invalid.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/user_card.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/user_card.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/user_card.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/user_card.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/clip.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/clip.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/clip.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/clip.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/table.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/table.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/table.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/table.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/justifycenter.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/justifycenter.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/justifycenter.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/justifycenter.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/insertorderedlist.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/insertorderedlist.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/insertorderedlist.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/insertorderedlist.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/images/arrow_right.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/arrow_right.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/arrow_right.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/arrow_right.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/global_catalog.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/global_catalog.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/global_catalog.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/global_catalog.png
Index: tags/expressoMail1_2/1.234/templates/canyon/images/arrow_ascendant.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/images/arrow_ascendant.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/images/arrow_ascendant.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/arrow_ascendant.gif
Index: tags/expressoMail1_2/1.234/templates/canyon/index.tpl
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/index.tpl	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/index.tpl	(revision 791)
@@ -0,0 +1,91 @@
+<!-- BEGIN list -->
+<input type="hidden" value="{txt_loading}" id="txt_loading">
+<input type="hidden" value="{txt_clear_trash}" id="txt_clear_trash">
+<input type="hidden" value="{upload_max_filesize}" id="upload_max_filesize">
+<input type="hidden" value="{msg_folder}" id="msg_folder">
+<input type="hidden" value="{msg_number}" id="msg_number">
+<input type="hidden" value="{user_email}" id="user_email">
+<input type="hidden" value="{user_organization}" id="user_organization">
+<input type="hidden" value="{cyrus_delimiter}" id="cyrus_delimiter">
+<table id="main_table" width="100%" cellspacing="0" cellpadding="0" border="0" style="display:none">
+	<tbody>
+		<tr> <td id="folderscol" width="162px" height="100%" valign="top">
+			<table id="folders_tbl" width="162px" border="0" cellspacing="0" cellpadding="0" border="0">
+					<tbody>
+						<tr><td class='content-menu'><div class='folders_degrade'>
+							<table border="0" cellspacing="0" cellpadding="0" border="0"><tbody>
+								<tr><td><div align="center" style="white-space:nowrap">
+					<input type="text" id="em_message_search" size="16" maxlength="22" onfocus="javascript:onFocusQuickSearchEmail(this); return false;"/>
+					<a class='' onMouseOut="window.status='';return true;" title='{lang_Open_Search_Window}' onMouseOver="window.status='{lang_Open_Search_Window}';return true;" href="javascript:void(0);"  onClick="javascript:search_emails(Element('em_message_search').value)">
+						<img valign="center" align="center" src="templates/canyon/images/search.gif">
+					</a>
+					<a class='' onMouseOut="window.status='';return true;" title='{lang_search_user}' onMouseOver="window.status='{lang_search_user}' ;return true;" href="javascript:void(0);"  onClick="javascript:emQuickSearch(Element('em_message_search').value, 'null', 'null')">
+						<img valign="center" align="center" src="templates/canyon/images/users.jpg">
+					</a>
+							</div>
+						</td></tr>
+								<tr height="24"><td class='content-menu-td' onclick='javascript:new_message("new","null");' onmouseover='javascript:set_menu_bg(this);' onmouseout='javascript:unset_menu_bg(this);'><div class='em_div_sidebox_menu'><img src='./templates/canyon/images/menu/createmail.gif'><span class="em_sidebox_menu">{new_message}</span></div></td></tr>
+								<tr height="24"><td class='content-menu-td' id='em_refresh_button' onclick='javascript:refresh();' onmouseover='javascript:set_menu_bg(this);' onmouseout='javascript:unset_menu_bg(this);'><div class='em_div_sidebox_menu'><img src='./templates/canyon/images/menu/checkmail.gif'><span class="em_sidebox_menu">{refresh}</span></div></td></tr>
+								<tr height="24"><td id="link_tools" class='content-menu-td' onmouseover='javascript:set_menu_bg(Element("link_tools"));' onmouseout='javascript:unset_menu_bg(this);'><div class='em_div_sidebox_menu'><img height='16px' src='./templates/canyon/images/menu/tools.gif'><span class="em_sidebox_menu">{tools} ...</span></div></td></tr>								
+							</tbody></table>
+						</div></td></tr>
+						<tr><td height="2px"></td></tr>						
+						<tr><td class="content-folders" valign="top" style="padding:0px">
+							<div id="content_folders" class="folders_degrade" style="height:100%;width:162px;overflow:auto"></div>
+						</td></tr>
+					</tbody>
+				</table>
+				<script type="text/javascript">
+					
+					var element_input = document.getElementById('em_message_search');
+				
+					function keyPressQuickSearchEmail(e)
+					{
+						if( e.keyCode == 13 )
+							emQuickSearch(Element('em_message_search').value, 'null', 'null');
+					}
+
+					if ( element_input.addEventListener )
+						element_input.addEventListener('keypress', keyPressQuickSearchEmail, false);
+					else if ( element_input.attachEvent )
+						element_input.attachEvent('onkeypress', keyPressQuickSearchEmail);
+
+					function onFocusQuickSearchEmail(pInput)
+					{
+						if ( pInput.createTextRange )
+						{
+							var FieldRange = pInput.createTextRange();
+								FieldRange.moveStart('character', pInput.value.length);
+								FieldRange.collapse();
+								FieldRange.select();
+						}
+					}
+				
+				</script>
+			</td>
+			<td width="2px">&nbsp;</td>			
+			<td width="*" valign="top" align="left">
+				<div id="exmail_main_body" class="messagescol">
+					<table id="border_table" width="auto" height="26" cellspacing="0" cellpadding="0" border="0">
+						<tbody id="border_tbody">
+							<tr id="border_tr">
+								<td nowrap class="menu" onClick="alternate_border(0);"  id="border_id_0">&nbsp;{lang_inbox}&nbsp;<font face="Verdana" size="1" color="#505050">[<span id="new_m">0</span> / <span id="tot_m">0</span>]</font>
+								</td>
+								<td nowrap id="border_blank" class="last_menu" width="100%">&nbsp;</td>								
+							</tr>
+						</tbody>
+					</table>
+					<div id="content_id_0" class="conteudo"></div>
+					<div id="footer_menu">
+						<table style="border-top:0px solid black" id="footer_box" cellpadding=0 cellspacing=0 border=0 width="100%" height="10px">
+							<tbody>
+								<tr id="table_message"></tr>
+							</tbody>
+						</table>
+					</div>
+				</div>
+			</td>
+		</tr>
+	</tbody>
+</table>
+<!-- END list -->
Index: tags/expressoMail1_2/1.234/templates/canyon/signature-example.tpl
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/signature-example.tpl	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/signature-example.tpl	(revision 791)
@@ -0,0 +1,1 @@
+link ../default/signature-example.tpl
Index: tags/expressoMail1_2/1.234/templates/canyon/main.css
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/main.css	(revision 831)
+++ tags/expressoMail1_2/1.234/templates/canyon/main.css	(revision 831)
@@ -0,0 +1,483 @@
+* {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+}
+
+.checkbox {
+	border:none;
+}
+
+textarea{
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 13px;
+}
+
+
+.table_box{
+	width: 100%;
+	color: black;
+	border-style: solid;
+	border-width: 1px;
+	border-color: #bbbbbb;
+	font-family: Arial;
+	font-size: 13px;
+	cursor: pointer;
+}
+
+.em_div_write_msg{
+       height: 24px;
+       background: transparent;
+}
+
+/* begin class msgs */
+.tr_msg_unread {
+	color: black;
+	background-color: #e8eef7;
+	font-weight: bold;
+	border-bottom:1px solid #cfcfcf;
+    -moz-user-select: none;
+}
+.tr_msg_read {
+	color: black;
+	background-color: #ffffff;
+	border-bottom:1px solid #cfcfcf;
+    -moz-user-select: none;
+}
+.selected_msg{
+	background-color: #ffffcc;
+}
+.flagged_msg{
+	color: red;
+}
+.selected_shortcut_msg{
+	color: white;
+	background-color: #5194d2;
+}
+.show_img_link{
+	width : 100%;
+	color: black;
+        font-weight: bold;
+	background-color: #ffc;
+	border-bottom:1px solid #cfcfcf;
+	cursor: pointer;		 
+	-moz-user-select: none;
+}
+/* end class msgs */
+
+.show_img_link:hover {
+	color: #000 !important;
+}
+
+.action_info_table {
+	border-spacing: 0px 0px;
+}
+.action_info_th {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 11px;
+	border-width: 0px 0px 0px 0px;
+	padding: 1px 10px 0px 10px;	
+	border-style: inset inset inset inset;
+	border-color: gray gray gray gray;
+	background-color: rgb(250, 209, 99);
+	-moz-border-radius: 6px 6px 6px 6px;
+}
+
+.message_header{
+	background-color: #cfb69e;
+}
+
+.table_message_header_box{
+	width: 100%;
+	color: black;
+	border-style: solid;
+	border-width: 0px;
+	border-collapse: collapse;
+	border-color: #bbbbbb;
+	font-family: Arial;
+	font-size: 13px;	
+	cursor: pointer;
+}
+.font-menu
+{
+    text-decoration: none;
+    text-align: center;
+/*    font: bold 13px Lucidatypewriter,monospace;*/
+    color: #000;
+}
+
+.font-menu-sel
+{
+    text-decoration: none;
+    text-align: center;
+    font: bold 13px Lucidatypewriter,monospace;
+   	color:#0000FF;
+}
+
+.menu-sel
+{
+    text-decoration: none;
+    text-align: center;
+    font: bold 13px Lucidatypewriter,monospace;
+    color:#0000FF;
+    height: 20px;
+    width:220px;
+    background-color:#F7F7F7;
+    margin-bottom: 0px;
+    border: 1px solid #4a79b1;
+    border-bottom: 0px;
+    padding:0px 5px 0px 0px;
+    -moz-border-radius: 9px 9px 0px 0px;
+    -moz-user-select: none;
+    cursor: pointer;	
+}
+.menu
+{
+    text-decoration: none;
+    text-align: center;
+/*    font: bold 13px Lucidatypewriter,monospace;*/
+    height: 20px;    
+    width:220px;
+    background-color:#a19183;
+    margin-bottom: 0px;
+    border: 1px solid #f4f7fc;
+    border-bottom: 1px solid #4a79b1;
+    padding:0px 5px 0px 0px;
+    -moz-border-radius: 9px 9px 0px 0px;
+    -moz-user-select: none;
+    cursor: pointer;
+}
+
+.last_menu
+{
+	border-bottom: 1px solid #4a79b1;
+	-moz-border-radius: 0px 0px 0px 0px;
+}
+
+.conteudo {
+    font-family: Verdana, Arial, Helvetica, sans-serif;
+    font-size: 10px;
+    font-weight: normal;
+    color: #000033;
+    padding: 1px;
+    border-right: 2px solid #FFF;
+    width:99.5%;
+    overflow: none;
+    -moz-border-radius: 0px 0px 6px 6px;
+}
+
+.table_message{
+	background-image: url(../../../phpgwapi/templates/canyon/images/fundo_topo.png);
+	padding: 1px;
+	cursor: default;
+	border-width: 1px 1px 1px 1px;
+	border-spacing: 0px 1px;
+	border-style: outset outset outset outset;
+	border-color: gray gray gray gray;
+	border-collapse: separate;
+	-moz-border-radius: 3px 3px 3px 3px;
+}
+.table_top{
+	background-color: #FFFFFF;
+	padding:1px 1px 1px 1px;
+	height:16px;
+	cursor: default;
+	margin: 0px 0px 0px 0px;
+	border-width: 0px 1px 1px 1px;
+	border-style: outset outset outset outset;
+	border-color: black black black black;	
+}
+
+.tr_message_header{
+	background-color: #EEEEEE;
+	cursor: default;
+	border-style: none none none none;
+	-moz-border-radius: 0px 0px 0px 0px;
+}
+
+.tr_message_body{
+	background-color: #FFFFFF;
+	cursor: default;
+	-moz-border-radius: 9px 9px 9px 9px;
+}
+
+.message_body{
+	background-color: #FFFFFF;
+	cursor: default;
+	-moz-border-radius: 9px 9px 9px 9px;
+}
+
+.header_message_field{
+	font-weight: bold;
+}
+
+.suggestion_list
+{
+background: white;
+border: 1px solid;
+padding: 4px;
+}
+        
+.suggestion_list ul
+{
+padding: 0;
+margin: 0;
+list-style-type: none;
+}
+
+.suggestion_list a
+{
+text-decoration: none;
+color: navy;
+}
+
+.suggestion_list .selected
+{
+background: navy;
+color: white;
+}
+        
+        
+.suggestion_list .selected a
+{
+color: white;
+}
+
+#autosuggest
+{
+display: none;
+} 
+
+div#tipDiv {
+  position:absolute; visibility:hidden; left:0; top:0; z-index:10000;
+  background-color:#EFEFEF; border:1px solid #337;
+  width:220px; padding:0px;
+  color:#000; font-size:11px; line-height:1.2;
+  cursor: pointer;
+}
+
+.richtext_toolbar {background-color: #C0C0C0;}
+.imagebutton {border: solid 2px #C0C0C0; background-color: #C0C0C0; float:left;}
+.select_richtext {float:left;}
+/*.image {position: relative; left: 1; top: 1; height:20; width:21; border:none;}*/
+/*.imagebutton_out: {border-style: solid 2px #C0C0C0;}*/
+/*.imagebutton_over: {border-style: outset 20px;}*/
+.sel_color{	border-width:1px;border-color:#FFFFFF;border-style:solid;cursor:pointer;}
+.unsel_color{border-width:1px;border-color:#BBBBBB;border-style:solid;}
+
+/* Conf tree	*/
+.dtree {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 8px;
+	color: #000000;
+	/*white-space: nowrap;*/
+	background-color: #FFFFFF;
+
+}
+.dtree img {
+	border: 0px;
+	vertical-align: middle;
+
+}
+.dtree a {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	color: #000000;
+	white-space: nowrap;	
+}
+.dtree table{
+	margin-top: 0%;
+	padding: 0px 0px 0px 0px;
+}
+.dtree td{
+	padding: 0px 0px 0px 0px;
+}
+
+.folderscol{
+	/*width: 18%;*/
+	width: 100%;
+	/*float: left;*/
+	/*padding: 0px 0px 0px 0px;*/
+}
+
+.messagescol{
+	/*padding-left: 18.5%;*/
+	/*width: 85%;*/
+	width: 100%;
+	/*float: left*/
+	/*margin-rigth: 0px;*/
+	padding: 0px 0px 0px 0px;
+}
+
+.menu-folders
+{
+	text-align: center;
+	text-decoration: none;
+	font: bold 12px Verdana, Arial, Helvetica, sans-serif;
+	color: rgb(0, 102, 51);
+	width: 100%;
+	height: 20px;
+
+	border-right: 1px solid #000000;
+	border-left: 1px solid #000000;
+	border-top: 1px solid #000000;	
+	cursor: default;
+	-moz-border-radius: 9px 9px 0px 0px;
+}
+
+.content-menu {
+	padding: 0px 0px 0px 0px;
+        background: #ddf4fe url(../../../phpgwapi/templates/canyon/images/folder_bg.png) no-repeat scroll center bottom;
+}
+.content-menu-td {
+/*	border: 1px solid #f7f7f7;*/
+}
+
+.content-folders {
+	padding: 0px 0px 0px 0px;
+	background: #ddf4fe url(../../../phpgwapi/templates/canyon/images/folder_bg.png) no-repeat scroll center bottom;
+	position: relative;
+	overflow: auto;
+}
+
+.folders_degrade {
+	  background-image: url(../../../phpgwapi/templates/canyon/images/degrade.png);
+	  background-repeat: repeat-x;
+}
+
+/* Conf Filter	*/
+.filter {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 8px;
+	background-color : #FFFFFF;
+}
+.filter img {
+	border: 0px;
+	vertical-align: middle;
+}
+.filter a {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	color: #000000;
+	white-space: nowrap;
+}
+.message_options_trash {
+        background-image: url(/phpgwapi/templates/canyon/images/foldertree_trash.png);
+        background-repeat: no-repeat;
+        background-position:left center;
+        padding:0pt 6pt 1pt 14pt;
+}
+.message_options_move {
+        background-image: url(../../templates/canyon/images/move.png);
+        background-repeat: no-repeat;
+        background-position:left center;
+        padding:0pt 6pt 1pt 14pt;
+}
+.message_options_print {
+        background-image: url(../../templates/canyon/images/print.png);
+        background-repeat: no-repeat;
+        background-position:left center;
+        padding:0pt 6pt 1pt 14pt;
+}
+
+.message_options_export {
+        background-image: url(../../templates/canyon/images/export.png);
+        background-repeat: no-repeat;
+        background-position:left center;
+        padding:0pt 6pt 1pt 14pt;
+}
+
+.message_options_import {
+        background-image: url(../../templates/canyon/images/import.png);
+        background-repeat: no-repeat;
+        background-position:left center;
+        padding:0pt 6pt 1pt 14pt;
+}
+.message_options_active {
+	 cursor: pointer;
+         white-space: nowrap;
+	 color: #D00;
+	/*text-decoration: underline;*/
+         font-weight: bold;
+}
+
+.message_options_inactive {
+         white-space: nowrap;
+	 color: #999;
+}
+.message_options {
+	cursor: pointer;
+        color: #863;
+	white-space: nowrap;
+	font-weight: bold;
+}
+
+.message_options_over {
+	 cursor: pointer;
+         white-space: nowrap;
+	 color: #D00;
+	/*text-decoration: underline;*/
+         font-weight: bold;
+}
+
+.em_sidebox_menu {
+	position: relative;
+	left: 2px;
+	padding: 0px 13px 0px 0px;
+	font-weight: bold;
+	font-size: 10px;
+	color: #666666;
+	text-decoration: none;
+	white-space: nowrap;
+	font-family: sans-serif;
+}
+
+.em_div_sidebox_menu {
+	position: relative;
+	left: 5px;
+	cursor: pointer;
+}
+.catalog{
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 14px;
+	font-weight: bold;
+}
+
+div.quicksearchcontacts {
+	border-width: 1px;
+	border-style: solid;
+	broder-color: grey;
+	overflow: auto;
+	position: relative;
+	left: 10px;
+	height: 302px;
+	width: 577px;
+}
+
+table.quicksearchcontacts {
+	border-width: 0px 0px 0px 0px;
+	border-spacing: 0px;
+	background-color: white;
+	cursor: default;
+}
+
+tr.quicksearchcontacts_unselected {
+	background-color: white;
+}
+
+tr.quicksearchcontacts_selected {
+	background-color: #5598d7;
+	color: white;
+}
+
+td.quicksearchcontacts_cc {
+	border-style: none;
+}
+
+input.em_button_like_span {
+	border:0px none !important;
+	margin: 0px !important;
+	padding:0px !important;
+	color:#114fa4 !important;
+	background:transparent none repeat scroll 0% !important;
+	font-family:Verdana,Arial,Helvetica,sans-serif !important;
+	font-size:11px !important;
+	height:15px !important;
+	font-weight: bold;
+}
Index: tags/expressoMail1_2/1.234/templates/canyon/error.html
===================================================================
--- tags/expressoMail1_2/1.234/templates/canyon/error.html	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/canyon/error.html	(revision 791)
@@ -0,0 +1,1 @@
+link ../default/error.html
Index: tags/expressoMail1_2/1.234/templates/fozi/preferences.tpl
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/preferences.tpl	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/preferences.tpl	(revision 791)
@@ -0,0 +1,1 @@
+link ../default/preferences.tpl
Index: tags/expressoMail1_2/1.234/templates/fozi/config.tpl
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/config.tpl	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/config.tpl	(revision 791)
@@ -0,0 +1,1 @@
+link ../default/config.tpl
Index: tags/expressoMail1_2/1.234/templates/fozi/images/users.jpg
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/users.jpg	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/users.jpg	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/users.jpg
Index: tags/expressoMail1_2/1.234/templates/fozi/images/arrow_up.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/arrow_up.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/arrow_up.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/arrow_up.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/image.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/image.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/image.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/image.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/move.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/move.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/move.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/move.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/notification.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/notification.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/notification.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/notification.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/forecolor.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/forecolor.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/forecolor.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/forecolor.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/dsunused.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/dsunused.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/dsunused.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/dsunused.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/filtro
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/filtro	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/filtro	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/filtro/
Index: tags/expressoMail1_2/1.234/templates/fozi/images/personal_catalog.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/personal_catalog.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/personal_catalog.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/personal_catalog.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/menu
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/menu	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/menu	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/menu
Index: tags/expressoMail1_2/1.234/templates/fozi/images/italic.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/italic.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/italic.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/italic.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/search.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/search.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/search.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/search.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/undo.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/undo.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/undo.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/undo.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/answered.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/answered.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/answered.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/answered.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/signed.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/signed.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/signed.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/signed.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/phone.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/phone.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/phone.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/phone.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/minus.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/minus.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/minus.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/minus.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/forbidden.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/forbidden.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/forbidden.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/forbidden.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/forwarded.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/forwarded.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/forwarded.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/forwarded.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/important.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/important.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/important.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/important.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/bold.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/bold.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/bold.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/bold.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/indent.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/indent.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/indent.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/indent.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/arrow_descendant.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/arrow_descendant.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/arrow_descendant.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/arrow_descendant.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/left.button.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/left.button.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/left.button.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/left.button.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/arrow_left.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/arrow_left.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/arrow_left.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/arrow_left.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/underline.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/underline.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/underline.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/underline.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/redo.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/redo.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/redo.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/redo.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/import.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/import.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/import.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/import.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/justifyright.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/justifyright.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/justifyright.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/justifyright.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/envelope.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/envelope.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/envelope.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/envelope.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/link.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/link.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/link.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/link.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/dswarn.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/dswarn.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/dswarn.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/dswarn.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/ajuda.jpg
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/ajuda.jpg	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/ajuda.jpg	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/ajuda.jpg
Index: tags/expressoMail1_2/1.234/templates/fozi/images/deny.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/deny.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/deny.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/deny.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/export.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/export.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/export.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/export.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/down.button.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/down.button.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/down.button.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/down.button.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/signature.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/signature.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/signature.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/signature.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/card.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/card.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/card.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/card.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/up.button.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/up.button.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/up.button.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/up.button.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/users.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/users.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/users.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/users.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/dsalert.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/dsalert.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/dsalert.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/dsalert.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/arrow_down.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/arrow_down.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/arrow_down.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/arrow_down.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/close_button.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/close_button.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/close_button.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/close_button.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/draft.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/draft.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/draft.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/draft.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/plus.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/plus.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/plus.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/plus.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/right.button.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/right.button.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/right.button.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/right.button.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/insertunorderedlist.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/insertunorderedlist.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/insertunorderedlist.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/insertunorderedlist.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/justifyleft.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/justifyleft.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/justifyleft.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/justifyleft.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/new.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/new.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/new.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/new.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/photo.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/photo.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/photo.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/photo.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/manutencao.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/manutencao.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/manutencao.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/manutencao.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/sent.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/sent.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/sent.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/sent.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/print.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/print.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/print.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/print.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/justifyfull.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/justifyfull.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/justifyfull.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/justifyfull.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/outdent.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/outdent.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/outdent.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/outdent.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/invalid.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/invalid.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/invalid.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/invalid.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/user_card.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/user_card.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/user_card.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/user_card.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/clip.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/clip.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/clip.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/clip.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/table.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/table.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/table.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/table.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/justifycenter.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/justifycenter.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/justifycenter.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/justifycenter.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/insertorderedlist.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/insertorderedlist.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/insertorderedlist.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/insertorderedlist.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/images/arrow_right.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/arrow_right.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/arrow_right.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/arrow_right.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/global_catalog.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/global_catalog.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/global_catalog.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/global_catalog.png
Index: tags/expressoMail1_2/1.234/templates/fozi/images/arrow_ascendant.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/images/arrow_ascendant.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/images/arrow_ascendant.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/arrow_ascendant.gif
Index: tags/expressoMail1_2/1.234/templates/fozi/index.tpl
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/index.tpl	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/index.tpl	(revision 791)
@@ -0,0 +1,91 @@
+<!-- BEGIN list -->
+<input type="hidden" value="{txt_loading}" id="txt_loading">
+<input type="hidden" value="{txt_clear_trash}" id="txt_clear_trash">
+<input type="hidden" value="{upload_max_filesize}" id="upload_max_filesize">
+<input type="hidden" value="{msg_folder}" id="msg_folder">
+<input type="hidden" value="{msg_number}" id="msg_number">
+<input type="hidden" value="{user_email}" id="user_email">
+<input type="hidden" value="{user_organization}" id="user_organization">
+<input type="hidden" value="{cyrus_delimiter}" id="cyrus_delimiter">
+<table id="main_table" width="100%" cellspacing="0" cellpadding="0" border="0" style="display:none">
+	<tbody>
+		<tr> <td id="folderscol" width="162px" height="100%" valign="top">
+			<table id="folders_tbl" width="162px" border="0" cellspacing="0" cellpadding="0" border="0">
+					<tbody>
+						<tr><td class='content-menu'><div class='folders_degrade'>
+							<table border="0" cellspacing="0" cellpadding="0" border="0"><tbody>
+								<tr><td><div align="center" style="white-space:nowrap">
+					<input type="text" id="em_message_search" size="16" maxlength="22" onfocus="javascript:onFocusQuickSearchEmail(this); return false;"/>
+					<a class='' onMouseOut="window.status='';return true;" title='{lang_Open_Search_Window}' onMouseOver="window.status='{lang_Open_Search_Window}';return true;" href="javascript:void(0);"  onClick="javascript:search_emails(Element('em_message_search').value)">
+						<img valign="center" align="center" src="templates/fozi/images/search.gif">
+					</a>
+					<a class='' onMouseOut="window.status='';return true;" title='{lang_search_user}' onMouseOver="window.status='{lang_search_user}' ;return true;" href="javascript:void(0);"  onClick="javascript:emQuickSearch(Element('em_message_search').value, 'null', 'null')">
+						<img valign="center" align="center" src="templates/fozi/images/users.jpg">
+					</a>
+							</div>
+						</td></tr>
+								<tr height="24"><td class='content-menu-td' onclick='javascript:new_message("new","null");' onmouseover='javascript:set_menu_bg(this);' onmouseout='javascript:unset_menu_bg(this);'><div class='em_div_sidebox_menu'><img src='./templates/fozi/images/menu/createmail.gif'><span class="em_sidebox_menu">{new_message}</span></div></td></tr>
+								<tr height="24"><td class='content-menu-td' id='em_refresh_button' onclick='javascript:refresh();' onmouseover='javascript:set_menu_bg(this);' onmouseout='javascript:unset_menu_bg(this);'><div class='em_div_sidebox_menu'><img src='./templates/fozi/images/menu/checkmail.gif'><span class="em_sidebox_menu">{refresh}</span></div></td></tr>
+								<tr height="24"><td id="link_tools" class='content-menu-td' onmouseover='javascript:set_menu_bg(Element("link_tools"));' onmouseout='javascript:unset_menu_bg(this);'><div class='em_div_sidebox_menu'><img height='16px' src='./templates/fozi/images/menu/tools.gif'><span class="em_sidebox_menu">{tools} ...</span></div></td></tr>								
+							</tbody></table>
+						</div></td></tr>
+						<tr><td height="2px"></td></tr>						
+						<tr><td class="content-folders" valign="top" style="padding:0px">
+							<div id="content_folders" class="folders_degrade" style="height:100%;width:162px;overflow:auto"></div>
+						</td></tr>
+					</tbody>
+				</table>
+				<script type="text/javascript">
+					
+					var element_input = document.getElementById('em_message_search');
+				
+					function keyPressQuickSearchEmail(e)
+					{
+						if( e.keyCode == 13 )
+							emQuickSearch(Element('em_message_search').value, 'null', 'null');
+					}
+
+					if ( element_input.addEventListener )
+						element_input.addEventListener('keypress', keyPressQuickSearchEmail, false);
+					else if ( element_input.attachEvent )
+						element_input.attachEvent('onkeypress', keyPressQuickSearchEmail);
+
+					function onFocusQuickSearchEmail(pInput)
+					{
+						if ( pInput.createTextRange )
+						{
+							var FieldRange = pInput.createTextRange();
+								FieldRange.moveStart('character', pInput.value.length);
+								FieldRange.collapse();
+								FieldRange.select();
+						}
+					}
+				
+				</script>
+			</td>
+			<td width="2px">&nbsp;</td>			
+			<td width="*" valign="top" align="left">
+				<div id="exmail_main_body" class="messagescol">
+					<table id="border_table" width="auto" height="26" cellspacing="0" cellpadding="0" border="0">
+						<tbody id="border_tbody">
+							<tr id="border_tr">
+								<td nowrap class="menu" onClick="alternate_border(0);"  id="border_id_0">&nbsp;{lang_inbox}&nbsp;<font face="Verdana" size="1" color="#505050">[<span id="new_m">0</span> / <span id="tot_m">0</span>]</font>
+								</td>
+								<td nowrap id="border_blank" class="last_menu" width="100%">&nbsp;</td>								
+							</tr>
+						</tbody>
+					</table>
+					<div id="content_id_0" class="conteudo"></div>
+					<div id="footer_menu">
+						<table style="border-top:0px solid black" id="footer_box" cellpadding=0 cellspacing=0 border=0 width="100%" height="10px">
+							<tbody>
+								<tr id="table_message"></tr>
+							</tbody>
+						</table>
+					</div>
+				</div>
+			</td>
+		</tr>
+	</tbody>
+</table>
+<!-- END list -->
Index: tags/expressoMail1_2/1.234/templates/fozi/signature-example.tpl
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/signature-example.tpl	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/signature-example.tpl	(revision 791)
@@ -0,0 +1,1 @@
+link ../default/signature-example.tpl
Index: tags/expressoMail1_2/1.234/templates/fozi/main.css
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/main.css	(revision 831)
+++ tags/expressoMail1_2/1.234/templates/fozi/main.css	(revision 831)
@@ -0,0 +1,482 @@
+* {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+}
+
+.checkbox {
+	border:none;
+}
+
+textarea{
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 13px;
+}
+
+.table_box{
+	width: 100%;
+	color: black;
+	border-style: solid;
+	border-width: 1px;
+	border-color: #bbbbbb;
+	font-family: Arial;
+	font-size: 13px;
+	cursor: pointer;
+}
+
+.em_div_write_msg{
+	height: 24px;
+	background: transparent;
+}
+
+/* begin class msgs */
+.tr_msg_unread {
+	color: black;
+	background-color: #e8eef7;
+	font-weight: bold;
+	border-bottom:1px solid #cfcfcf;
+    -moz-user-select: none;
+}
+.tr_msg_read {
+	color: black;
+	background-color: #ffffff;
+	border-bottom:1px solid #cfcfcf;
+    -moz-user-select: none;
+}
+.selected_msg{
+	background-color: #ffffcc;
+}
+.flagged_msg{
+	color: red;
+}
+.selected_shortcut_msg{
+	color: white;
+	background-color: #5194d2;
+}
+.show_img_link{
+	width : 100%;
+	color: black;
+        font-weight: bold;
+	background-color: #ffc;
+	border-bottom:1px solid #cfcfcf;
+	cursor: pointer;		 
+	-moz-user-select: none;
+}
+/* end class msgs */
+
+.show_img_link:hover {
+	color: #000 !important;
+}
+
+.action_info_table {
+	border-spacing: 0px 0px;
+}
+.action_info_th {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 11px;
+	border-width: 0px 0px 0px 0px;
+	padding: 1px 10px 0px 10px;	
+	border-style: inset inset inset inset;
+	border-color: gray gray gray gray;
+	background-color: rgb(250, 209, 99);
+	-moz-border-radius: 6px 6px 6px 6px;
+}
+
+.message_header{
+	background-color: #98c17f;
+}
+
+.table_message_header_box{
+	width: 100%;
+	color: black;
+	border-style: solid;
+	border-width: 0px;
+	border-collapse: collapse;
+	border-color: #bbbbbb;
+	font-family: Arial;
+	font-size: 13px;	
+	cursor: pointer;
+}
+.font-menu
+{
+    text-decoration: none;
+    text-align: center;
+/*    font: bold 13px Lucidatypewriter,monospace;*/
+    color: #000;
+}
+
+.font-menu-sel
+{
+    text-decoration: none;
+    text-align: center;
+    font: bold 13px Lucidatypewriter,monospace;
+   	color:#0000FF;
+}
+
+.menu-sel
+{
+    text-decoration: none;
+    text-align: center;
+    font: bold 13px Lucidatypewriter,monospace;
+    color:#0000FF;
+    height: 20px;
+    width:220px;
+    background-color:#F7F7F7;
+    margin-bottom: 0px;
+    border: 1px solid #4a79b1;
+    border-bottom: 0px;
+    padding:0px 5px 0px 0px;
+    -moz-border-radius: 9px 9px 0px 0px;
+    -moz-user-select: none;
+    cursor: pointer;	
+}
+.menu
+{
+    text-decoration: none;
+    text-align: center;
+/*    font: bold 13px Lucidatypewriter,monospace;*/
+    height: 20px;    
+    width:220px;
+    background-color:#c2d8b1;
+    margin-bottom: 0px;
+    border: 1px solid #f4f7fc;
+    border-bottom: 1px solid #4a79b1;
+    padding:0px 5px 0px 0px;
+    -moz-border-radius: 9px 9px 0px 0px;
+    -moz-user-select: none;
+    cursor: pointer;
+}
+
+.last_menu
+{
+	border-bottom: 1px solid #4a79b1;
+	-moz-border-radius: 0px 0px 0px 0px;
+}
+
+.conteudo {
+    font-family: Verdana, Arial, Helvetica, sans-serif;
+    font-size: 10px;
+    font-weight: normal;
+    color: #000033;
+    padding: 1px;
+    border-right: 2px solid #FFF;
+    width:99.5%;
+    overflow: none;
+    -moz-border-radius: 0px 0px 6px 6px;
+}
+
+.table_message{
+	background-color: #98C17F;
+	padding: 1px;
+	cursor: default;
+	border-width: 1px 1px 1px 1px;
+	border-spacing: 0px 1px;
+	border-style: outset outset outset outset;
+	border-color: gray gray gray gray;
+	border-collapse: separate;
+	-moz-border-radius: 3px 3px 3px 3px;
+}
+.table_top{
+	background-color: #FFFFFF;
+	padding:1px 1px 1px 1px;
+	height:16px;
+	cursor: default;
+	margin: 0px 0px 0px 0px;
+	border-width: 0px 1px 1px 1px;
+	border-style: outset outset outset outset;
+	border-color: black black black black;	
+}
+
+.tr_message_header{
+	background-color: #EEEEEE;
+	cursor: default;
+	border-style: none none none none;
+	-moz-border-radius: 0px 0px 0px 0px;
+}
+
+.tr_message_body{
+	background-color: #FFFFFF;
+	cursor: default;
+	-moz-border-radius: 9px 9px 9px 9px;
+}
+
+.message_body{
+	background-color: #FFFFFF;
+	cursor: default;
+	-moz-border-radius: 9px 9px 9px 9px;
+}
+
+.header_message_field{
+	font-weight: bold;
+}
+
+.suggestion_list
+{
+background: white;
+border: 1px solid;
+padding: 4px;
+}
+        
+.suggestion_list ul
+{
+padding: 0;
+margin: 0;
+list-style-type: none;
+}
+
+.suggestion_list a
+{
+text-decoration: none;
+color: navy;
+}
+
+.suggestion_list .selected
+{
+background: navy;
+color: white;
+}
+        
+        
+.suggestion_list .selected a
+{
+color: white;
+}
+
+#autosuggest
+{
+display: none;
+} 
+
+div#tipDiv {
+  position:absolute; visibility:hidden; left:0; top:0; z-index:10000;
+  background-color:#EFEFEF; border:1px solid #337;
+  width:220px; padding:0px;
+  color:#000; font-size:11px; line-height:1.2;
+  cursor: pointer;
+}
+
+.richtext_toolbar {background-color: #C0C0C0;}
+.imagebutton {border: solid 2px #C0C0C0; background-color: #C0C0C0; float:left;}
+.select_richtext {float:left;}
+/*.image {position: relative; left: 1; top: 1; height:20; width:21; border:none;}*/
+/*.imagebutton_out: {border-style: solid 2px #C0C0C0;}*/
+/*.imagebutton_over: {border-style: outset 20px;}*/
+.sel_color{	border-width:1px;border-color:#FFFFFF;border-style:solid;cursor:pointer;}
+.unsel_color{border-width:1px;border-color:#BBBBBB;border-style:solid;}
+
+/* Conf tree	*/
+.dtree {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 8px;
+	color: #000000;
+	/*white-space: nowrap;*/
+	background-color: #FFFFFF;
+
+}
+.dtree img {
+	border: 0px;
+	vertical-align: middle;
+
+}
+.dtree a {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	color: #000000;
+	white-space: nowrap;	
+}
+.dtree table{
+	margin-top: 0%;
+	padding: 0px 0px 0px 0px;
+}
+.dtree td{
+	padding: 0px 0px 0px 0px;
+}
+
+.folderscol{
+	/*width: 18%;*/
+	width: 100%;
+	/*float: left;*/
+	/*padding: 0px 0px 0px 0px;*/
+}
+
+.messagescol{
+	/*padding-left: 18.5%;*/
+	/*width: 85%;*/
+	width: 100%;
+	/*float: left*/
+	/*margin-rigth: 0px;*/
+	padding: 0px 0px 0px 0px;
+}
+
+.menu-folders
+{
+	text-align: center;
+	text-decoration: none;
+	font: bold 12px Verdana, Arial, Helvetica, sans-serif;
+	color: rgb(0, 102, 51);
+	width: 100%;
+	height: 20px;
+
+	border-right: 1px solid #000000;
+	border-left: 1px solid #000000;
+	border-top: 1px solid #000000;	
+	cursor: default;
+	-moz-border-radius: 9px 9px 0px 0px;
+}
+
+.content-menu {
+	padding: 0px 0px 0px 0px;
+        background: #a0b2cc url(../../../phpgwapi/templates/fozi/images/folder_bg.png) no-repeat scroll center bottom;
+}
+.content-menu-td {
+/*	border: 1px solid #f7f7f7;*/
+}
+
+.content-folders {
+	padding: 0px 0px 0px 0px;
+	background: #a0b2cc url(../../../phpgwapi/templates/fozi/images/folder_bg.png) no-repeat scroll center bottom;
+	position: relative;
+	overflow: auto;
+}
+
+.folders_degrade {
+	  background-image: url(../../../phpgwapi/templates/fozi/images/degrade.png);
+	  background-repeat: repeat-x;
+}
+
+/* Conf Filter	*/
+.filter {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 8px;
+	background-color : #FFFFFF;
+}
+.filter img {
+	border: 0px;
+	vertical-align: middle;
+}
+.filter a {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	color: #000000;
+	white-space: nowrap;
+}
+.message_options_trash {
+        background-image: url(/phpgwapi/templates/fozi/images/foldertree_trash.png);
+        background-repeat: no-repeat;
+        background-position:left center;
+        padding:0pt 6pt 1pt 14pt;
+}
+.message_options_move {
+        background-image: url(../../templates/fozi/images/move.png);
+        background-repeat: no-repeat;
+        background-position:left center;
+        padding:0pt 6pt 1pt 14pt;
+}
+.message_options_print {
+        background-image: url(../../templates/fozi/images/print.png);
+        background-repeat: no-repeat;
+        background-position:left center;
+        padding:0pt 6pt 1pt 14pt;
+}
+
+.message_options_export {
+        background-image: url(../../templates/fozi/images/export.png);
+        background-repeat: no-repeat;
+        background-position:left center;
+        padding:0pt 6pt 1pt 14pt;
+}
+
+.message_options_import {
+        background-image: url(../../templates/fozi/images/import.png);
+        background-repeat: no-repeat;
+        background-position:left center;
+        padding:0pt 6pt 1pt 14pt;
+}
+.message_options_active {
+	 cursor: pointer;
+         white-space: nowrap;
+	 color: #D00;
+	/*text-decoration: underline;*/
+         font-weight: bold;
+}
+
+.message_options_inactive {
+         white-space: nowrap;
+	 color: #999;
+}
+.message_options {
+	cursor: pointer;
+        color: blue;
+	white-space: nowrap;
+	font-weight: bold;
+}
+
+.message_options_over {
+	 cursor: pointer;
+         white-space: nowrap;
+	 color: #D00;
+	/*text-decoration: underline;*/
+         font-weight: bold;
+}
+
+.em_sidebox_menu {
+	position: relative;
+	left: 2px;
+	padding: 0px 13px 0px 0px;
+	font-weight: bold;
+	font-size: 10px;
+	color: #666666;
+	text-decoration: none;
+	white-space: nowrap;
+	font-family: sans-serif;
+}
+
+.em_div_sidebox_menu {
+	position: relative;
+	left: 5px;
+	cursor: pointer;
+}
+.catalog{
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 14px;
+	font-weight: bold;
+}
+
+div.quicksearchcontacts {
+	border-width: 1px;
+	border-style: solid;
+	broder-color: grey;
+	overflow: auto;
+	position: relative;
+	left: 10px;
+	height: 302px;
+	width: 577px;
+}
+
+table.quicksearchcontacts {
+	border-width: 0px 0px 0px 0px;
+	border-spacing: 0px;
+	background-color: white;
+	cursor: default;
+}
+
+tr.quicksearchcontacts_unselected {
+	background-color: white;
+}
+
+tr.quicksearchcontacts_selected {
+	background-color: #5598d7;
+	color: white;
+}
+
+td.quicksearchcontacts_cc {
+	border-style: none;
+}
+
+input.em_button_like_span {
+	border:0px none !important;
+	margin: 0px !important;
+	padding:0px !important;
+	color:#114fa4 !important;
+	background:transparent none repeat scroll 0% !important;
+	font-family:Verdana,Arial,Helvetica,sans-serif !important;
+	font-size:11px !important;
+	height:15px !important;
+	font-weight: bold;
+}
Index: tags/expressoMail1_2/1.234/templates/fozi/error.html
===================================================================
--- tags/expressoMail1_2/1.234/templates/fozi/error.html	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/fozi/error.html	(revision 791)
@@ -0,0 +1,1 @@
+link ../default/error.html
Index: tags/expressoMail1_2/1.234/templates/azul/preferences.tpl
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/preferences.tpl	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/preferences.tpl	(revision 791)
@@ -0,0 +1,1 @@
+link ../default/preferences.tpl
Index: tags/expressoMail1_2/1.234/templates/azul/config.tpl
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/config.tpl	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/config.tpl	(revision 791)
@@ -0,0 +1,1 @@
+link ../default/config.tpl
Index: tags/expressoMail1_2/1.234/templates/azul/images/users.jpg
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/users.jpg	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/users.jpg	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/users.jpg
Index: tags/expressoMail1_2/1.234/templates/azul/images/arrow_up.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/arrow_up.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/arrow_up.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/arrow_up.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/image.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/image.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/image.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/image.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/move.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/move.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/move.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/move.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/notification.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/notification.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/notification.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/notification.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/forecolor.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/forecolor.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/forecolor.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/forecolor.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/dsunused.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/dsunused.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/dsunused.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/dsunused.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/filtro
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/filtro	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/filtro	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/filtro
Index: tags/expressoMail1_2/1.234/templates/azul/images/personal_catalog.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/personal_catalog.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/personal_catalog.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/personal_catalog.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/menu
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/menu	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/menu	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/menu/
Index: tags/expressoMail1_2/1.234/templates/azul/images/italic.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/italic.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/italic.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/italic.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/search.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/search.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/search.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/search.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/undo.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/undo.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/undo.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/undo.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/answered.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/answered.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/answered.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/answered.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/signed.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/signed.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/signed.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/signed.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/phone.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/phone.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/phone.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/phone.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/minus.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/minus.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/minus.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/minus.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/forbidden.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/forbidden.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/forbidden.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/forbidden.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/forwarded.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/forwarded.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/forwarded.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/forwarded.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/important.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/important.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/important.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/important.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/bold.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/bold.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/bold.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/bold.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/indent.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/indent.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/indent.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/indent.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/arrow_descendant.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/arrow_descendant.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/arrow_descendant.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/arrow_descendant.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/left.button.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/left.button.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/left.button.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/left.button.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/arrow_left.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/arrow_left.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/arrow_left.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/arrow_left.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/underline.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/underline.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/underline.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/underline.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/redo.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/redo.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/redo.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/redo.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/import.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/import.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/import.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/import.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/justifyright.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/justifyright.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/justifyright.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/justifyright.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/envelope.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/envelope.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/envelope.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/envelope.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/link.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/link.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/link.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/link.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/dswarn.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/dswarn.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/dswarn.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/dswarn.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/ajuda.jpg
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/ajuda.jpg	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/ajuda.jpg	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/ajuda.jpg
Index: tags/expressoMail1_2/1.234/templates/azul/images/deny.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/deny.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/deny.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/deny.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/export.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/export.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/export.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/export.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/down.button.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/down.button.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/down.button.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/down.button.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/signature.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/signature.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/signature.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/signature.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/card.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/card.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/card.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/card.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/up.button.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/up.button.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/up.button.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/up.button.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/users.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/users.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/users.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/users.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/dsalert.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/dsalert.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/dsalert.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/dsalert.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/arrow_down.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/arrow_down.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/arrow_down.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/arrow_down.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/close_button.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/close_button.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/close_button.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/close_button.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/draft.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/draft.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/draft.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/draft.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/plus.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/plus.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/plus.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/plus.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/right.button.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/right.button.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/right.button.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/right.button.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/insertunorderedlist.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/insertunorderedlist.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/insertunorderedlist.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/insertunorderedlist.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/justifyleft.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/justifyleft.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/justifyleft.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/justifyleft.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/new.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/new.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/new.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/new.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/photo.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/photo.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/photo.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/photo.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/manutencao.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/manutencao.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/manutencao.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/manutencao.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/sent.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/sent.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/sent.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/sent.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/print.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/print.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/print.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/print.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/justifyfull.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/justifyfull.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/justifyfull.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/justifyfull.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/outdent.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/outdent.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/outdent.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/outdent.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/invalid.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/invalid.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/invalid.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/invalid.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/user_card.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/user_card.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/user_card.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/user_card.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/clip.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/clip.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/clip.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/clip.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/table.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/table.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/table.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/table.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/justifycenter.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/justifycenter.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/justifycenter.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/justifycenter.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/insertorderedlist.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/insertorderedlist.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/insertorderedlist.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/insertorderedlist.gif
Index: tags/expressoMail1_2/1.234/templates/azul/images/arrow_right.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/arrow_right.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/arrow_right.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/arrow_right.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/global_catalog.png
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/global_catalog.png	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/global_catalog.png	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/global_catalog.png
Index: tags/expressoMail1_2/1.234/templates/azul/images/arrow_ascendant.gif
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/images/arrow_ascendant.gif	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/images/arrow_ascendant.gif	(revision 791)
@@ -0,0 +1,1 @@
+link ../../default/images/arrow_ascendant.gif
Index: tags/expressoMail1_2/1.234/templates/azul/index.tpl
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/index.tpl	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/index.tpl	(revision 791)
@@ -0,0 +1,91 @@
+<!-- BEGIN list -->
+<input type="hidden" value="{txt_loading}" id="txt_loading">
+<input type="hidden" value="{txt_clear_trash}" id="txt_clear_trash">
+<input type="hidden" value="{upload_max_filesize}" id="upload_max_filesize">
+<input type="hidden" value="{msg_folder}" id="msg_folder">
+<input type="hidden" value="{msg_number}" id="msg_number">
+<input type="hidden" value="{user_email}" id="user_email">
+<input type="hidden" value="{user_organization}" id="user_organization">
+<input type="hidden" value="{cyrus_delimiter}" id="cyrus_delimiter">
+<table id="main_table" width="100%" cellspacing="0" cellpadding="0" border="0" style="display:none">
+	<tbody>
+		<tr> <td id="folderscol" width="162px" height="100%" valign="top">
+			<table id="folders_tbl" width="162px" border="0" cellspacing="0" cellpadding="0" border="0">
+					<tbody>
+						<tr><td class='content-menu'><div class='folders_degrade'>
+							<table border="0" cellspacing="0" cellpadding="0" border="0"><tbody>
+								<tr><td><div align="center" style="white-space:nowrap">
+					<input type="text" id="em_message_search" size="16" maxlength="22" onfocus="javascript:onFocusQuickSearchEmail(this); return false;"/>
+					<a class='' onMouseOut="window.status='';return true;" title='{lang_Open_Search_Window}' onMouseOver="window.status='{lang_Open_Search_Window}';return true;" href="javascript:void(0);"  onClick="javascript:search_emails(Element('em_message_search').value)">
+						<img valign="center" align="center" src="templates/azul/images/search.gif">
+					</a>
+					<a class='' onMouseOut="window.status='';return true;" title='{lang_search_user}' onMouseOver="window.status='{lang_search_user}' ;return true;" href="javascript:void(0);"  onClick="javascript:emQuickSearch(Element('em_message_search').value, 'null', 'null')">
+						<img valign="center" align="center" src="templates/azul/images/users.jpg">
+					</a>
+							</div>
+						</td></tr>
+								<tr height="24"><td class='content-menu-td' onclick='javascript:new_message("new","null");' onmouseover='javascript:set_menu_bg(this);' onmouseout='javascript:unset_menu_bg(this);'><div class='em_div_sidebox_menu'><img src='./templates/azul/images/menu/createmail.gif'><span class="em_sidebox_menu">{new_message}</span></div></td></tr>
+								<tr height="24"><td class='content-menu-td' id='em_refresh_button' onclick='javascript:refresh();' onmouseover='javascript:set_menu_bg(this);' onmouseout='javascript:unset_menu_bg(this);'><div class='em_div_sidebox_menu'><img src='./templates/azul/images/menu/checkmail.gif'><span class="em_sidebox_menu">{refresh}</span></div></td></tr>
+								<tr height="24"><td id="link_tools" class='content-menu-td' onmouseover='javascript:set_menu_bg(Element("link_tools"));' onmouseout='javascript:unset_menu_bg(this);'><div class='em_div_sidebox_menu'><img height='16px' src='./templates/azul/images/menu/tools.gif'><span class="em_sidebox_menu">{tools} ...</span></div></td></tr>								
+							</tbody></table>
+						</div></td></tr>
+						<tr><td height="2px"></td></tr>						
+						<tr><td class="content-folders" valign="top" style="padding:0px">
+							<div id="content_folders" class="folders_degrade" style="height:100%;width:162px;overflow:auto"></div>
+						</td></tr>
+					</tbody>
+				</table>
+				<script type="text/javascript">
+					
+					var element_input = document.getElementById('em_message_search');
+				
+					function keyPressQuickSearchEmail(e)
+					{
+						if( e.keyCode == 13 )
+							emQuickSearch(Element('em_message_search').value, 'null', 'null');
+					}
+
+					if ( element_input.addEventListener )
+						element_input.addEventListener('keypress', keyPressQuickSearchEmail, false);
+					else if ( element_input.attachEvent )
+						element_input.attachEvent('onkeypress', keyPressQuickSearchEmail);
+
+					function onFocusQuickSearchEmail(pInput)
+					{
+						if ( pInput.createTextRange )
+						{
+							var FieldRange = pInput.createTextRange();
+								FieldRange.moveStart('character', pInput.value.length);
+								FieldRange.collapse();
+								FieldRange.select();
+						}
+					}
+				
+				</script>
+			</td>
+			<td width="2px">&nbsp;</td>			
+			<td width="*" valign="top" align="left">
+				<div id="exmail_main_body" class="messagescol">
+					<table id="border_table" width="auto" height="26" cellspacing="0" cellpadding="0" border="0">
+						<tbody id="border_tbody">
+							<tr id="border_tr">
+								<td nowrap class="menu" onClick="alternate_border(0);"  id="border_id_0">&nbsp;{lang_inbox}&nbsp;<font face="Verdana" size="1" color="#505050">[<span id="new_m">0</span> / <span id="tot_m">0</span>]</font>
+								</td>
+								<td nowrap id="border_blank" class="last_menu" width="100%">&nbsp;</td>								
+							</tr>
+						</tbody>
+					</table>
+					<div id="content_id_0" class="conteudo"></div>
+					<div id="footer_menu">
+						<table style="border-top:0px solid black" id="footer_box" cellpadding=0 cellspacing=0 border=0 width="100%" height="10px">
+							<tbody>
+								<tr id="table_message"></tr>
+							</tbody>
+						</table>
+					</div>
+				</div>
+			</td>
+		</tr>
+	</tbody>
+</table>
+<!-- END list -->
Index: tags/expressoMail1_2/1.234/templates/azul/signature-example.tpl
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/signature-example.tpl	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/signature-example.tpl	(revision 791)
@@ -0,0 +1,1 @@
+link ../default/signature-example.tpl
Index: tags/expressoMail1_2/1.234/templates/azul/main.css
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/main.css	(revision 831)
+++ tags/expressoMail1_2/1.234/templates/azul/main.css	(revision 831)
@@ -0,0 +1,495 @@
+* {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+}
+
+.checkbox {
+	border:none;
+}
+
+textarea{
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 13px;
+}
+
+.table_box{
+	width: 100%;
+	color: black;
+	border-style: solid;
+	border-width: 1px;
+	border-color: #bbbbbb;
+	font-family: Arial;
+	font-size: 13px;
+	cursor: pointer;
+}
+
+.em_div_write_msg{
+	height: 24px;
+	background: transparent;
+}
+
+/* begin class msgs */
+.tr_msg_unread {
+	color: black;
+	background-color: #e8eef7;
+	font-weight: bold;
+	border-bottom:1px solid #cfcfcf;
+    -moz-user-select: none;
+}
+.tr_msg_read {
+	color: black;
+	background-color: #ffffff;
+	border-bottom:1px solid #cfcfcf;
+    -moz-user-select: none;
+}
+.selected_msg{
+	background-color: #ffffcc;
+}
+.flagged_msg{
+	color: red;
+}
+.selected_shortcut_msg{
+	color: white;
+	background-color: #5194d2;
+}
+.show_img_link{
+	width : 100%;
+	color: black;
+        font-weight: bold;
+	background-color: #ffc;
+	border-bottom:1px solid #cfcfcf;
+	cursor: pointer;		 
+	-moz-user-select: none;
+}
+/* end class msgs */
+
+.show_img_link:hover {
+	color: #000 !important;
+}
+
+.action_info_table {
+	border-spacing: 0px 0px;
+}
+.action_info_th {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 11px;
+	border-width: 0px 0px 0px 0px;
+	padding: 1px 10px 0px 10px;	
+	border-style: inset inset inset inset;
+	border-color: gray gray gray gray;
+	background-color: rgb(250, 209, 99);
+	-moz-border-radius: 6px 6px 6px 6px;
+}
+
+.message_header{
+	background-color: #ABC6E1;
+}
+
+.table_message_header_box{
+	width: 100%;
+	color: black;
+	border-style: solid;
+	border-width: 0px;
+	border-collapse: collapse;
+	border-color: #bbbbbb;
+	font-family: Arial;
+	font-size: 13px;	
+	cursor: pointer;
+}
+.font-menu
+{
+    text-decoration: none;
+    text-align: center;
+/*    font: bold 13px Lucidatypewriter,monospace;*/
+    color: #000;
+}
+
+.font-menu-sel
+{
+    text-decoration: none;
+    text-align: center;
+    font: bold 13px Lucidatypewriter,monospace;
+   	color:#0000FF;
+}
+
+.menu-sel
+{
+    text-decoration: none;
+    text-align: center;
+    font: bold 13px Lucidatypewriter,monospace;
+    color:#0000FF;
+    height: 20px;
+    width:220px;
+    background-color:#F7F7F7;
+    margin-bottom: 0px;
+    border: 1px solid #4a79b1;
+    border-bottom: 0px;
+    padding:0px 5px 0px 0px;
+    -moz-border-radius: 9px 9px 0px 0px;
+    -moz-user-select: none;
+    cursor: pointer;	
+}
+.menu
+{
+    text-decoration: none;
+    text-align: center;
+/*    font: bold 13px Lucidatypewriter,monospace;*/
+    height: 20px;    
+    width:220px;
+        background-color:#c8d7ea;
+
+/*    background-color: #F7F7F7;*/
+    margin-bottom: 0px;
+    border: 1px solid #f4f7fc;
+    border-bottom: 1px solid #4a79b1;
+    padding:0px 5px 0px 0px;
+    -moz-border-radius: 9px 9px 0px 0px;
+    -moz-user-select: none;
+    cursor: pointer;
+}
+
+.last_menu
+{
+	border-bottom: 1px solid #4a79b1;
+	-moz-border-radius: 0px 0px 0px 0px;
+}
+
+.conteudo {
+    font-family: Verdana, Arial, Helvetica, sans-serif;
+    font-size: 10px;
+    font-weight: normal;
+    color: #000033;
+    padding: 1px;
+    border-left:1px solid #4A79B1;
+    width:99.5%;
+    overflow: none;
+    -moz-border-radius: 0px 0px 6px 6px;
+}
+
+.table_message{
+	background-image: url(../../../phpgwapi/templates/azul/images/fundo_topo.png);
+	padding: 1px;
+	cursor: default;
+	border-width: 1px 1px 1px 1px;
+	border-spacing: 0px 1px;
+	border-style: outset outset outset outset;
+	border-color: gray gray gray gray;
+	border-collapse: separate;
+	-moz-border-radius: 3px 3px 3px 3px;
+}
+.table_top{
+	background-color: #FFFFFF;
+	padding:1px 1px 1px 1px;
+	height:16px;
+	cursor: default;
+	margin: 0px 0px 0px 0px;
+	border-width: 0px 1px 1px 1px;
+	border-style: outset outset outset outset;
+	border-color: black black black black;	
+}
+
+.tr_message_header{
+	background-color: #EEEEEE;
+	cursor: default;
+	border-style: none none none none;
+	-moz-border-radius: 0px 0px 0px 0px;
+}
+
+.tr_message_body{
+	background-color: #FFFFFF;
+	cursor: default;
+	-moz-border-radius: 9px 9px 9px 9px;
+}
+
+.message_body{
+	background-color: #FFFFFF;
+	cursor: default;
+	-moz-border-radius: 9px 9px 9px 9px;
+}
+
+.header_message_field{
+	font-weight: bold;
+}
+
+.suggestion_list
+{
+background: white;
+border: 1px solid;
+padding: 4px;
+}
+        
+.suggestion_list ul
+{
+padding: 0;
+margin: 0;
+list-style-type: none;
+}
+
+.suggestion_list a
+{
+text-decoration: none;
+color: navy;
+}
+
+.suggestion_list .selected
+{
+background: navy;
+color: white;
+}
+        
+        
+.suggestion_list .selected a
+{
+color: white;
+}
+
+#autosuggest
+{
+display: none;
+} 
+
+div#tipDiv {
+  position:absolute; visibility:hidden; left:0; top:0; z-index:10000;
+  background-color:#EFEFEF; border:1px solid #337;
+  width:220px; padding:0px;
+  color:#000; font-size:11px; line-height:1.2;
+  cursor: pointer;
+}
+
+.richtext_toolbar {background-color: #C0C0C0;}
+.imagebutton {border: solid 2px #C0C0C0; background-color: #C0C0C0; float:left;}
+.select_richtext {float:left;}
+/*.image {position: relative; left: 1; top: 1; height:20; width:21; border:none;}*/
+/*.imagebutton_out: {border-style: solid 2px #C0C0C0;}*/
+/*.imagebutton_over: {border-style: outset 20px;}*/
+.sel_color{	border-width:1px;border-color:#FFFFFF;border-style:solid;cursor:pointer;}
+.unsel_color{border-width:1px;border-color:#BBBBBB;border-style:solid;}
+
+/* Conf tree	*/
+.dtree {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 8px;
+	color: #000000;
+	/*white-space: nowrap;*/
+	background-color: #FFFFFF;
+
+}
+.dtree img {
+	border: 0px;
+	vertical-align: middle;
+
+}
+.dtree a {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	color: #000000;
+	white-space: nowrap;	
+}
+.dtree table{
+	margin-top: 0%;
+	padding: 0px 0px 0px 0px;
+}
+.dtree td{
+	padding: 0px 0px 0px 0px;
+}
+
+.folderscol{
+	/*width: 18%;*/
+	width: 100%;
+	/*float: left;*/
+	/*padding: 0px 0px 0px 0px;*/
+}
+
+.messagescol{
+	/*padding-left: 18.5%;*/
+	/*width: 85%;*/
+	width: 100%;
+	/*float: left*/
+	/*margin-rigth: 0px;*/
+	padding: 0px 0px 0px 0px;
+}
+
+.menu-folders
+{
+	text-align: center;
+	text-decoration: none;
+	font: bold 12px Verdana, Arial, Helvetica, sans-serif;
+	color: rgb(0, 102, 51);
+	width: 100%;
+	height: 20px;
+
+	border-right: 1px solid #000000;
+	border-left: 1px solid #000000;
+	border-top: 1px solid #000000;	
+	cursor: default;
+	-moz-border-radius: 9px 9px 0px 0px;
+}
+
+.content-menu {
+	padding: 0px 0px 0px 0px;
+	background-image: url(../../../phpgwapi/templates/azul/images/folder_bg.png);
+}
+.content-menu-td {
+/*	border: 1px solid #f7f7f7;*/
+}
+
+.content-folders {
+	padding: 0px 0px 0px 0px;
+	background-image: url(../../../phpgwapi/templates/azul/images/folder_bg.png);
+	position: relative;
+	overflow: auto;
+}
+
+.folders_degrade {
+	  background-image: url(../../../phpgwapi/templates/azul/images/degrade.png);
+	  background-repeat: repeat-x;
+}
+
+/* Conf Filter	*/
+.filter {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 8px;
+	background-color : #FFFFFF;
+}
+.filter img {
+	border: 0px;
+	vertical-align: middle;
+}
+.filter a {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	color: #000000;
+	white-space: nowrap;
+}
+.message_options_trash {
+	background-image: url(../../../phpgwapi/templates/azul/images/foldertree_trash.png);
+	background-repeat: no-repeat;
+	background-position:left center;
+	padding:0pt 6pt 1pt 14pt;
+}
+.message_options_move {
+	background-image: url(images/move.png);
+	background-repeat: no-repeat;
+	background-position:left center;
+	padding:0pt 6pt 1pt 14pt;
+}
+.message_options_print {
+	background-image: url(images/print.png);
+	background-repeat: no-repeat;
+	background-position:left center;
+	padding:0pt 6pt 1pt 14pt;
+}
+
+.message_options_export {
+	background-image: url(images/export.png);
+	background-repeat: no-repeat;
+	background-position:left center;
+	padding:0pt 6pt 1pt 14pt;
+}
+
+.message_options_import {
+	background-image: url(images/import.png);
+	background-repeat: no-repeat;
+	background-position:left center;
+	padding:0pt 6pt 1pt 14pt;
+}
+
+.message_options_inactive {
+         white-space: nowrap;
+	 color: #999;
+}
+
+.message_options_active {
+	white-space: nowrap;
+	color: #990000;
+        font-weight: bold;
+	cursor: pointer;
+ }
+
+.message_options {
+	cursor: pointer;
+        color: #114fa4;
+/*	color: #2A64B0;*/
+	white-space: nowrap;
+	font-weight: bold;
+}
+
+.message_options_over {
+	 cursor: pointer;
+         white-space: nowrap;
+	 color: #FC6103;
+	/*text-decoration: underline;*/
+         font-weight: bold;
+}
+
+.em_sidebox_menu {
+	position: relative;
+	left: 2px;
+	padding: 0px 13px 0px 0px;
+	font-weight: bold;
+	font-size: 10px;
+	color: #666666;
+	text-decoration: none;
+	white-space: nowrap;
+	font-family: sans-serif;
+}
+
+.em_div_sidebox_menu {
+	position: relative;
+	left: 5px;
+	cursor: pointer;
+}
+.catalog{
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 14px;
+	font-weight: bold;
+}
+
+div.quicksearchcontacts {
+	border-width: 1px;
+	border-style: solid;
+	broder-color: grey;
+	overflow: auto;
+	position: relative;
+	left: 10px;
+	height: 302px;
+	width: 577px;
+}
+
+table.quicksearchcontacts {
+	border-width: 0px 0px 0px 0px;
+	border-spacing: 0px;
+	background-color: white;
+	cursor: default;
+}
+
+tr.quicksearchcontacts_unselected {
+	background-color: white;
+}
+
+tr.quicksearchcontacts_selected {
+	background-color: #5598d7;
+	color: white;
+}
+
+td.quicksearchcontacts_cc {
+	border-style: none;
+}
+
+input.em_button_like_span {
+	border:0px none !important;
+	margin: 0px !important;
+	padding:0px !important;
+	color:#114fa4 !important;
+	background:transparent none repeat scroll 0% !important;
+	font-family:Verdana,Arial,Helvetica,sans-serif !important;
+	font-size:11px !important;
+	height:15px !important;
+	font-weight: bold;
+}
+
+.l {
+	background-image: url(../../../phpgwapi/templates/azul/images/foldertree_folder.png);
+}
+
+.sl {
+	background-image: url(../../../phpgwapi/templates/azul/images/foldertree_folderopen.png);
+
+}
Index: tags/expressoMail1_2/1.234/templates/azul/error.html
===================================================================
--- tags/expressoMail1_2/1.234/templates/azul/error.html	(revision 791)
+++ tags/expressoMail1_2/1.234/templates/azul/error.html	(revision 791)
@@ -0,0 +1,1 @@
+link ../default/error.html
