Commit dd161fc1d741038c4ac6d5948b604cbebb9a86fe

Authored by Daniela Feitosa
Committed by Antonio Terceiro
1 parent d8630870

ActionItem925: upgraded TinyMCE

Showing 898 changed files with 39960 additions and 36943 deletions   Show diff stats

Too many changes.

To preserve performance only 100 of 898 files displayed.

public/javascripts/tiny_mce/blank.htm
@@ -1,9 +0,0 @@ @@ -1,9 +0,0 @@
1 -<html xmlns="http://www.w3.org/1999/xhtml">  
2 -<head>  
3 - <title>blank_page</title>  
4 - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
5 -</head>  
6 -<body class="mceContentBody">  
7 -  
8 -</body>  
9 -</html>  
public/javascripts/tiny_mce/langs/de.js
@@ -1,41 +0,0 @@ @@ -1,41 +0,0 @@
1 -// DE lang variables  
2 -  
3 -tinyMCE.addToLang('',{  
4 -bold_desc : 'Fett (Strg+B)',  
5 -italic_desc : 'Kursiv (Strg+I)',  
6 -underline_desc : 'Unterstrichen (Strg+U)',  
7 -striketrough_desc : 'Durchgestrichen',  
8 -justifyleft_desc : 'Linksb&uuml;ndig',  
9 -justifycenter_desc : 'Zentriert',  
10 -justifyright_desc : 'Rechtsb&uuml;ndig',  
11 -justifyfull_desc : 'Blocksatz',  
12 -bullist_desc : 'Aufz&auml;hlungszeichen',  
13 -numlist_desc : 'Nummerierung',  
14 -outdent_desc : 'Einzug verkleinern',  
15 -indent_desc : 'Einzug vergr&ouml;&szlig;ern',  
16 -undo_desc : 'R&uuml;ckg&auml;ngig (Strg+Z)',  
17 -redo_desc : 'Wiederholen (Strg+Y)',  
18 -link_desc : 'Link einf&uuml;gen/bearbeiten',  
19 -unlink_desc : 'Link entfernen',  
20 -image_desc : 'Bild einf&uuml;gen/bearbeiten',  
21 -cleanup_desc : 'Unsauberen Code aufr&auml;umen',  
22 -focus_alert : 'Klicken Sie bitte vor Benutzung dieses Befehls auf das Editorfenster.',  
23 -edit_confirm : 'Wollen Sie den WYSIWYG-Modus f&uuml;r dieses Textfeld benutzen?',  
24 -insert_link_title : 'Link einf&uuml;gen/bearbeiten',  
25 -insert : 'Einf&uuml;gen',  
26 -update : 'Aktualisieren',  
27 -cancel : 'Abbrechen',  
28 -insert_link_url : 'Link-URL',  
29 -insert_link_target : 'Ziel',  
30 -insert_link_target_same : 'Link im gleichen Fenster &ouml;ffnen',  
31 -insert_link_target_blank : 'Link in neuem Fenster &ouml;ffnen',  
32 -insert_image_title : 'Bild einf&uuml;gen/bearbeiten',  
33 -insert_image_src : 'Bild-URL',  
34 -insert_image_alt : 'Bild-Beschreibung',  
35 -help_desc : 'Hilfe',  
36 -bold_img : "bold.gif",  
37 -italic_img : "italic.gif",  
38 -underline_img : "underline.gif",  
39 -clipboard_msg : 'Kopieren/Ausschneiden/Einf&uuml;gen ist in Mozilla und Firefox nicht verf&uuml;gbar.\nWollen Sie mehr Informationen dar&uuml;ber erhalten?',  
40 -popup_blocked : 'Ihr Popup-Blocker hat verhindert, dass das Bearbeitungsfenster des Editors ge&ouml;ffnet werden konnte. Bitte deaktivieren Sie den Popup-Schutz f&uuml;r diese Seite.'  
41 -});  
public/javascripts/tiny_mce/langs/en.js
@@ -1,41 +0,0 @@ @@ -1,41 +0,0 @@
1 -// UK lang variables  
2 -  
3 -tinyMCE.addToLang('',{  
4 -bold_desc : 'Bold (Ctrl+B)',  
5 -italic_desc : 'Italic (Ctrl+I)',  
6 -underline_desc : 'Underline (Ctrl+U)',  
7 -striketrough_desc : 'Strikethrough',  
8 -justifyleft_desc : 'Align left',  
9 -justifycenter_desc : 'Align center',  
10 -justifyright_desc : 'Align right',  
11 -justifyfull_desc : 'Align full',  
12 -bullist_desc : 'Unordered list',  
13 -numlist_desc : 'Ordered list',  
14 -outdent_desc : 'Outdent',  
15 -indent_desc : 'Indent',  
16 -undo_desc : 'Undo (Ctrl+Z)',  
17 -redo_desc : 'Redo (Ctrl+Y)',  
18 -link_desc : 'Insert/edit link',  
19 -unlink_desc : 'Unlink',  
20 -image_desc : 'Insert/edit image',  
21 -cleanup_desc : 'Cleanup messy code',  
22 -focus_alert : 'A editor instance must be focused before using this command.',  
23 -edit_confirm : 'Do you want to use the WYSIWYG mode for this textarea?',  
24 -insert_link_title : 'Insert/edit link',  
25 -insert : 'Insert',  
26 -update : 'Update',  
27 -cancel : 'Cancel',  
28 -insert_link_url : 'Link URL',  
29 -insert_link_target : 'Target',  
30 -insert_link_target_same : 'Open link in the same window',  
31 -insert_link_target_blank : 'Open link in a new window',  
32 -insert_image_title : 'Insert/edit image',  
33 -insert_image_src : 'Image URL',  
34 -insert_image_alt : 'Image description',  
35 -help_desc : 'Help',  
36 -bold_img : "bold.gif",  
37 -italic_img : "italic.gif",  
38 -underline_img : "underline.gif",  
39 -clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',  
40 -popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'  
41 -});  
public/javascripts/tiny_mce/langs/fr.js
@@ -1,42 +0,0 @@ @@ -1,42 +0,0 @@
1 -// FR lang variables  
2 -// Modified by Motte, last updated 2006-03-23  
3 -  
4 -tinyMCE.addToLang('',{  
5 -bold_desc : 'Gras',  
6 -italic_desc : 'Italique',  
7 -underline_desc : 'Soulign&eacute;',  
8 -striketrough_desc : 'Barr&eacute;',  
9 -justifyleft_desc : 'Aligner &agrave; gauche',  
10 -justifycenter_desc : 'Centrer',  
11 -justifyright_desc : 'Aligner &agrave; droite',  
12 -justifyfull_desc : 'Justifier',  
13 -bullist_desc : 'Liste &agrave; puces',  
14 -numlist_desc : 'Liste num&eacute;rot&eacute;e',  
15 -outdent_desc : 'Diminuer le retrait',  
16 -indent_desc : 'Augmenter le retrait',  
17 -undo_desc : 'Annuler',  
18 -redo_desc : 'Restaurer',  
19 -link_desc : 'Ins&eacute;rer/Modifier un lien',  
20 -unlink_desc : 'Supprimer le lien',  
21 -image_desc : 'Ins&eacute;rer/Modifier une image',  
22 -cleanup_desc : 'Nettoyer le code',  
23 -focus_alert : 'Une instance de l\&eacute;diteur doit avoir le focus avant d\'utiliser cette commande.',  
24 -edit_confirm : 'Voulez-vous utiliser le mode WYSIWYG pour cette zone d\'&eacute;dition de texte ?',  
25 -insert_link_title : 'Gestionnaire d\'hyperlien',  
26 -insert : 'Ins&eacute;rer',  
27 -update : 'Appliquer',  
28 -cancel : 'Annuler',  
29 -insert_link_url : 'Lien URL',  
30 -insert_link_target : 'Cible',  
31 -insert_link_target_same : 'Ouvrir dans la m&ecirc;me fen&ecirc;tre',  
32 -insert_link_target_blank : 'Ouvrir dans une nouvelle fen&ecirc;tre',  
33 -insert_image_title : 'Gestionnaire d\'image',  
34 -insert_image_src : 'URL de l\'image',  
35 -insert_image_alt : 'Equivalent textuel',  
36 -help_desc : 'Aide',  
37 -bold_img : "bold_fr.gif",  
38 -italic_img : "italic.gif",  
39 -underline_img : "underline_fr.gif",  
40 -clipboard_msg : 'Pour des raisons de s&eacute;curit&eacute;, les fonctions « Copier », « Couper » et « Coller »\nne sont pas disponibles dans Mozilla et Firefox.\n\n\nVoulez-vous plus d\'information &agrave; ce sujet?\n',  
41 -popup_blocked : 'D&eacute;sol&eacute;, mais votre bloqueur de pop-up emp&ecirc;che le fonctionnement normal de l\'application.\n\n\nPour utiliser cet outil, veuillez r&eacute;gler votre navigateur pour qu\'il accepte les pop-up de ce site.'  
42 -});  
public/javascripts/tiny_mce/langs/nl.js
@@ -1,42 +0,0 @@ @@ -1,42 +0,0 @@
1 -// NL lang variables thanks to "Meint Post"  
2 -// Updates by (2.0) Mark van der Sanden  
3 -  
4 -tinyMCE.addToLang('',{  
5 -bold_desc : 'Vet (Ctrl+B)',  
6 -italic_desc : 'Cursief (Ctrl+I)',  
7 -underline_desc : 'Onderstrepen (Ctrl+U)',  
8 -striketrough_desc : 'Doorhalen',  
9 -justifyleft_desc : 'Links uitlijnen',  
10 -justifycenter_desc : 'Centreren',  
11 -justifyright_desc : 'Rechts uitlijnen',  
12 -justifyfull_desc : 'Volledig uitlijnen',  
13 -bullist_desc : 'Opsommingstekens',  
14 -numlist_desc : 'Genummerde lijst',  
15 -outdent_desc : 'Inspringen verkleinen',  
16 -indent_desc : 'Inspringen vergroten',  
17 -undo_desc : 'Ongedaan maken (Ctrl+Z)',  
18 -redo_desc : 'Opnieuw (Ctrl+Y)',  
19 -link_desc : 'Hyperlink invoegen/bewerken',  
20 -unlink_desc : 'Hyperlink verwijderen',  
21 -image_desc : 'Afbeelding invoegen',  
22 -cleanup_desc : 'Code opschonen',  
23 -focus_alert : 'Klik op de tekst in de editor voor het uitvoeren van dit commando.',  
24 -edit_confirm : 'Wilt u de WYSIWYG modus voor deze textarea gebruiken?',  
25 -insert_link_title : 'Hyperlink invoegen/bewerken',  
26 -insert : 'OK',  
27 -update : 'Toepassen',  
28 -cancel : 'Annuleren',  
29 -insert_link_url : 'URL link',  
30 -insert_link_target : 'Bestemming',  
31 -insert_link_target_same : 'Open link in hetzelfde venster',  
32 -insert_link_target_blank : 'Open link in een nieuw venster',  
33 -insert_image_title : 'Afbeelding invoegen/bewerken',  
34 -insert_image_src : 'Afbeelding',  
35 -insert_image_alt : 'Beschrijving',  
36 -help_desc : 'Help',  
37 -bold_img : "bold.gif",  
38 -italic_img : "italic.gif",  
39 -underline_img : "underline.gif",  
40 -clipboard_msg : 'Kopiëren/knippen/plakken is niet beschikbaar in Mozilla en Firefox.\nWilt u meer informatie over deze kwestie?',  
41 -popup_blocked : 'Uw browser heeft zojuist geweigerd een popup-venster te tonen. Waarschijnlijk gebruikt u een poup-blocker die voor deze editor te streng omgaat met popups. Om het venster toch te tonen, zult u uw popup-blocker zo in moeten stellen dat het popups van deze website toestaat.'  
42 -});  
public/javascripts/tiny_mce/langs/pt_br.js
@@ -1,50 +0,0 @@ @@ -1,50 +0,0 @@
1 -/**  
2 - * pt_br lang variables  
3 - * Brazilian Portuguese  
4 - *  
5 - * Author  
6 - * Revision and modifications:  
7 - * Marcio Barbosa (mpg) <mpg@mpg.com.br>  
8 - * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4  
9 - * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8  
10 - */  
11 -tinyMCE.addToLang('',{  
12 -bold_desc : 'Negrito (Ctrl+B)',  
13 -italic_desc : 'Itálico (Ctrl+I)',  
14 -underline_desc : 'Sublinhado (Ctrl+U)',  
15 -striketrough_desc : 'Riscado',  
16 -justifyleft_desc : 'Alinhar à esquerda',  
17 -justifycenter_desc : 'Centralizar',  
18 -justifyright_desc : 'Alinhar à direita',  
19 -justifyfull_desc : 'Justificar',  
20 -bullist_desc : 'Lista não ordenada',  
21 -numlist_desc : 'Lista ordenada',  
22 -outdent_desc : 'Retirar indentação',  
23 -indent_desc : 'Indentar',  
24 -undo_desc : 'Desfazer (Ctrl+Z)',  
25 -redo_desc : 'Refazer (Ctrl+Y)',  
26 -link_desc : 'Inserir link',  
27 -unlink_desc : 'Remover link',  
28 -image_desc : 'Inserir referência a imagem externa',  
29 -object_desc : 'Inserir objeto multimídia da Galeria',  
30 -cleanup_desc : 'Limpeza de código',  
31 -focus_alert : 'Uma instância do editor deverá estar selecionada antes de utilizar este comando.',  
32 -edit_confirm : 'Deseja utilizar o Modo Visual (WYSIWYG) de edição para esta área de texto?',  
33 -insert_link_title : 'Inserir/editar link',  
34 -insert : 'Inserir',  
35 -update : 'Atualizar',  
36 -cancel : 'Cancelar',  
37 -insert_link_url : 'URL do link',  
38 -insert_link_target : 'Destino',  
39 -insert_link_target_same : 'Abrir link na mesma janela',  
40 -insert_link_target_blank : 'Abrir link em uma nova janela',  
41 -insert_image_title : 'Inserir/editar imagem',  
42 -insert_image_src : 'Endereço (URL) da imagem',  
43 -insert_image_alt : 'Descrição da imagem',  
44 -help_desc : 'Ajuda',  
45 -bold_img : 'bold_es.gif',  
46 -italic_img : 'italic.gif',  
47 -underline_img : 'underline_es.gif',  
48 -clipboard_msg : 'Copiar/recortar/colar não está disponível no Mozilla e Firefox.\nPretende obter mais informação sobre esta questão?',  
49 -popup_blocked : 'Seu navegador bloqueou um popup necessário para o correto funcionamento desta ferramenta. Você precisa desativar seu bloqueador de popup neste site para que todos os recursos possam ser utilizados.'  
50 -});  
public/javascripts/tiny_mce/langs/readme.txt
@@ -1,9 +0,0 @@ @@ -1,9 +0,0 @@
1 -Beginning with version 2.0.5 the language packs are no  
2 -longer included with the core distribution.  
3 -Language packs can be downloaded from the TinyMCE website:  
4 -http://tinymce.moxiecode.com/download.php  
5 -  
6 -The language pack codes are based on ISO-639-1:  
7 -http://www.loc.gov/standards/iso639-2/englangn.html  
8 -  
9 -Plrease try using entities if possible. Like &aring; etc for non a-z characters.  
public/javascripts/tiny_mce/license.txt
@@ -1,504 +0,0 @@ @@ -1,504 +0,0 @@
1 - GNU LESSER GENERAL PUBLIC LICENSE  
2 - Version 2.1, February 1999  
3 -  
4 - Copyright (C) 1991, 1999 Free Software Foundation, Inc.  
5 - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA  
6 - Everyone is permitted to copy and distribute verbatim copies  
7 - of this license document, but changing it is not allowed.  
8 -  
9 -[This is the first released version of the Lesser GPL. It also counts  
10 - as the successor of the GNU Library Public License, version 2, hence  
11 - the version number 2.1.]  
12 -  
13 - Preamble  
14 -  
15 - The licenses for most software are designed to take away your  
16 -freedom to share and change it. By contrast, the GNU General Public  
17 -Licenses are intended to guarantee your freedom to share and change  
18 -free software--to make sure the software is free for all its users.  
19 -  
20 - This license, the Lesser General Public License, applies to some  
21 -specially designated software packages--typically libraries--of the  
22 -Free Software Foundation and other authors who decide to use it. You  
23 -can use it too, but we suggest you first think carefully about whether  
24 -this license or the ordinary General Public License is the better  
25 -strategy to use in any particular case, based on the explanations below.  
26 -  
27 - When we speak of free software, we are referring to freedom of use,  
28 -not price. Our General Public Licenses are designed to make sure that  
29 -you have the freedom to distribute copies of free software (and charge  
30 -for this service if you wish); that you receive source code or can get  
31 -it if you want it; that you can change the software and use pieces of  
32 -it in new free programs; and that you are informed that you can do  
33 -these things.  
34 -  
35 - To protect your rights, we need to make restrictions that forbid  
36 -distributors to deny you these rights or to ask you to surrender these  
37 -rights. These restrictions translate to certain responsibilities for  
38 -you if you distribute copies of the library or if you modify it.  
39 -  
40 - For example, if you distribute copies of the library, whether gratis  
41 -or for a fee, you must give the recipients all the rights that we gave  
42 -you. You must make sure that they, too, receive or can get the source  
43 -code. If you link other code with the library, you must provide  
44 -complete object files to the recipients, so that they can relink them  
45 -with the library after making changes to the library and recompiling  
46 -it. And you must show them these terms so they know their rights.  
47 -  
48 - We protect your rights with a two-step method: (1) we copyright the  
49 -library, and (2) we offer you this license, which gives you legal  
50 -permission to copy, distribute and/or modify the library.  
51 -  
52 - To protect each distributor, we want to make it very clear that  
53 -there is no warranty for the free library. Also, if the library is  
54 -modified by someone else and passed on, the recipients should know  
55 -that what they have is not the original version, so that the original  
56 -author's reputation will not be affected by problems that might be  
57 -introduced by others.  
58 -  
59 - Finally, software patents pose a constant threat to the existence of  
60 -any free program. We wish to make sure that a company cannot  
61 -effectively restrict the users of a free program by obtaining a  
62 -restrictive license from a patent holder. Therefore, we insist that  
63 -any patent license obtained for a version of the library must be  
64 -consistent with the full freedom of use specified in this license.  
65 -  
66 - Most GNU software, including some libraries, is covered by the  
67 -ordinary GNU General Public License. This license, the GNU Lesser  
68 -General Public License, applies to certain designated libraries, and  
69 -is quite different from the ordinary General Public License. We use  
70 -this license for certain libraries in order to permit linking those  
71 -libraries into non-free programs.  
72 -  
73 - When a program is linked with a library, whether statically or using  
74 -a shared library, the combination of the two is legally speaking a  
75 -combined work, a derivative of the original library. The ordinary  
76 -General Public License therefore permits such linking only if the  
77 -entire combination fits its criteria of freedom. The Lesser General  
78 -Public License permits more lax criteria for linking other code with  
79 -the library.  
80 -  
81 - We call this license the "Lesser" General Public License because it  
82 -does Less to protect the user's freedom than the ordinary General  
83 -Public License. It also provides other free software developers Less  
84 -of an advantage over competing non-free programs. These disadvantages  
85 -are the reason we use the ordinary General Public License for many  
86 -libraries. However, the Lesser license provides advantages in certain  
87 -special circumstances.  
88 -  
89 - For example, on rare occasions, there may be a special need to  
90 -encourage the widest possible use of a certain library, so that it becomes  
91 -a de-facto standard. To achieve this, non-free programs must be  
92 -allowed to use the library. A more frequent case is that a free  
93 -library does the same job as widely used non-free libraries. In this  
94 -case, there is little to gain by limiting the free library to free  
95 -software only, so we use the Lesser General Public License.  
96 -  
97 - In other cases, permission to use a particular library in non-free  
98 -programs enables a greater number of people to use a large body of  
99 -free software. For example, permission to use the GNU C Library in  
100 -non-free programs enables many more people to use the whole GNU  
101 -operating system, as well as its variant, the GNU/Linux operating  
102 -system.  
103 -  
104 - Although the Lesser General Public License is Less protective of the  
105 -users' freedom, it does ensure that the user of a program that is  
106 -linked with the Library has the freedom and the wherewithal to run  
107 -that program using a modified version of the Library.  
108 -  
109 - The precise terms and conditions for copying, distribution and  
110 -modification follow. Pay close attention to the difference between a  
111 -"work based on the library" and a "work that uses the library". The  
112 -former contains code derived from the library, whereas the latter must  
113 -be combined with the library in order to run.  
114 -  
115 - GNU LESSER GENERAL PUBLIC LICENSE  
116 - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION  
117 -  
118 - 0. This License Agreement applies to any software library or other  
119 -program which contains a notice placed by the copyright holder or  
120 -other authorized party saying it may be distributed under the terms of  
121 -this Lesser General Public License (also called "this License").  
122 -Each licensee is addressed as "you".  
123 -  
124 - A "library" means a collection of software functions and/or data  
125 -prepared so as to be conveniently linked with application programs  
126 -(which use some of those functions and data) to form executables.  
127 -  
128 - The "Library", below, refers to any such software library or work  
129 -which has been distributed under these terms. A "work based on the  
130 -Library" means either the Library or any derivative work under  
131 -copyright law: that is to say, a work containing the Library or a  
132 -portion of it, either verbatim or with modifications and/or translated  
133 -straightforwardly into another language. (Hereinafter, translation is  
134 -included without limitation in the term "modification".)  
135 -  
136 - "Source code" for a work means the preferred form of the work for  
137 -making modifications to it. For a library, complete source code means  
138 -all the source code for all modules it contains, plus any associated  
139 -interface definition files, plus the scripts used to control compilation  
140 -and installation of the library.  
141 -  
142 - Activities other than copying, distribution and modification are not  
143 -covered by this License; they are outside its scope. The act of  
144 -running a program using the Library is not restricted, and output from  
145 -such a program is covered only if its contents constitute a work based  
146 -on the Library (independent of the use of the Library in a tool for  
147 -writing it). Whether that is true depends on what the Library does  
148 -and what the program that uses the Library does.  
149 -  
150 - 1. You may copy and distribute verbatim copies of the Library's  
151 -complete source code as you receive it, in any medium, provided that  
152 -you conspicuously and appropriately publish on each copy an  
153 -appropriate copyright notice and disclaimer of warranty; keep intact  
154 -all the notices that refer to this License and to the absence of any  
155 -warranty; and distribute a copy of this License along with the  
156 -Library.  
157 -  
158 - You may charge a fee for the physical act of transferring a copy,  
159 -and you may at your option offer warranty protection in exchange for a  
160 -fee.  
161 -  
162 - 2. You may modify your copy or copies of the Library or any portion  
163 -of it, thus forming a work based on the Library, and copy and  
164 -distribute such modifications or work under the terms of Section 1  
165 -above, provided that you also meet all of these conditions:  
166 -  
167 - a) The modified work must itself be a software library.  
168 -  
169 - b) You must cause the files modified to carry prominent notices  
170 - stating that you changed the files and the date of any change.  
171 -  
172 - c) You must cause the whole of the work to be licensed at no  
173 - charge to all third parties under the terms of this License.  
174 -  
175 - d) If a facility in the modified Library refers to a function or a  
176 - table of data to be supplied by an application program that uses  
177 - the facility, other than as an argument passed when the facility  
178 - is invoked, then you must make a good faith effort to ensure that,  
179 - in the event an application does not supply such function or  
180 - table, the facility still operates, and performs whatever part of  
181 - its purpose remains meaningful.  
182 -  
183 - (For example, a function in a library to compute square roots has  
184 - a purpose that is entirely well-defined independent of the  
185 - application. Therefore, Subsection 2d requires that any  
186 - application-supplied function or table used by this function must  
187 - be optional: if the application does not supply it, the square  
188 - root function must still compute square roots.)  
189 -  
190 -These requirements apply to the modified work as a whole. If  
191 -identifiable sections of that work are not derived from the Library,  
192 -and can be reasonably considered independent and separate works in  
193 -themselves, then this License, and its terms, do not apply to those  
194 -sections when you distribute them as separate works. But when you  
195 -distribute the same sections as part of a whole which is a work based  
196 -on the Library, the distribution of the whole must be on the terms of  
197 -this License, whose permissions for other licensees extend to the  
198 -entire whole, and thus to each and every part regardless of who wrote  
199 -it.  
200 -  
201 -Thus, it is not the intent of this section to claim rights or contest  
202 -your rights to work written entirely by you; rather, the intent is to  
203 -exercise the right to control the distribution of derivative or  
204 -collective works based on the Library.  
205 -  
206 -In addition, mere aggregation of another work not based on the Library  
207 -with the Library (or with a work based on the Library) on a volume of  
208 -a storage or distribution medium does not bring the other work under  
209 -the scope of this License.  
210 -  
211 - 3. You may opt to apply the terms of the ordinary GNU General Public  
212 -License instead of this License to a given copy of the Library. To do  
213 -this, you must alter all the notices that refer to this License, so  
214 -that they refer to the ordinary GNU General Public License, version 2,  
215 -instead of to this License. (If a newer version than version 2 of the  
216 -ordinary GNU General Public License has appeared, then you can specify  
217 -that version instead if you wish.) Do not make any other change in  
218 -these notices.  
219 -  
220 - Once this change is made in a given copy, it is irreversible for  
221 -that copy, so the ordinary GNU General Public License applies to all  
222 -subsequent copies and derivative works made from that copy.  
223 -  
224 - This option is useful when you wish to copy part of the code of  
225 -the Library into a program that is not a library.  
226 -  
227 - 4. You may copy and distribute the Library (or a portion or  
228 -derivative of it, under Section 2) in object code or executable form  
229 -under the terms of Sections 1 and 2 above provided that you accompany  
230 -it with the complete corresponding machine-readable source code, which  
231 -must be distributed under the terms of Sections 1 and 2 above on a  
232 -medium customarily used for software interchange.  
233 -  
234 - If distribution of object code is made by offering access to copy  
235 -from a designated place, then offering equivalent access to copy the  
236 -source code from the same place satisfies the requirement to  
237 -distribute the source code, even though third parties are not  
238 -compelled to copy the source along with the object code.  
239 -  
240 - 5. A program that contains no derivative of any portion of the  
241 -Library, but is designed to work with the Library by being compiled or  
242 -linked with it, is called a "work that uses the Library". Such a  
243 -work, in isolation, is not a derivative work of the Library, and  
244 -therefore falls outside the scope of this License.  
245 -  
246 - However, linking a "work that uses the Library" with the Library  
247 -creates an executable that is a derivative of the Library (because it  
248 -contains portions of the Library), rather than a "work that uses the  
249 -library". The executable is therefore covered by this License.  
250 -Section 6 states terms for distribution of such executables.  
251 -  
252 - When a "work that uses the Library" uses material from a header file  
253 -that is part of the Library, the object code for the work may be a  
254 -derivative work of the Library even though the source code is not.  
255 -Whether this is true is especially significant if the work can be  
256 -linked without the Library, or if the work is itself a library. The  
257 -threshold for this to be true is not precisely defined by law.  
258 -  
259 - If such an object file uses only numerical parameters, data  
260 -structure layouts and accessors, and small macros and small inline  
261 -functions (ten lines or less in length), then the use of the object  
262 -file is unrestricted, regardless of whether it is legally a derivative  
263 -work. (Executables containing this object code plus portions of the  
264 -Library will still fall under Section 6.)  
265 -  
266 - Otherwise, if the work is a derivative of the Library, you may  
267 -distribute the object code for the work under the terms of Section 6.  
268 -Any executables containing that work also fall under Section 6,  
269 -whether or not they are linked directly with the Library itself.  
270 -  
271 - 6. As an exception to the Sections above, you may also combine or  
272 -link a "work that uses the Library" with the Library to produce a  
273 -work containing portions of the Library, and distribute that work  
274 -under terms of your choice, provided that the terms permit  
275 -modification of the work for the customer's own use and reverse  
276 -engineering for debugging such modifications.  
277 -  
278 - You must give prominent notice with each copy of the work that the  
279 -Library is used in it and that the Library and its use are covered by  
280 -this License. You must supply a copy of this License. If the work  
281 -during execution displays copyright notices, you must include the  
282 -copyright notice for the Library among them, as well as a reference  
283 -directing the user to the copy of this License. Also, you must do one  
284 -of these things:  
285 -  
286 - a) Accompany the work with the complete corresponding  
287 - machine-readable source code for the Library including whatever  
288 - changes were used in the work (which must be distributed under  
289 - Sections 1 and 2 above); and, if the work is an executable linked  
290 - with the Library, with the complete machine-readable "work that  
291 - uses the Library", as object code and/or source code, so that the  
292 - user can modify the Library and then relink to produce a modified  
293 - executable containing the modified Library. (It is understood  
294 - that the user who changes the contents of definitions files in the  
295 - Library will not necessarily be able to recompile the application  
296 - to use the modified definitions.)  
297 -  
298 - b) Use a suitable shared library mechanism for linking with the  
299 - Library. A suitable mechanism is one that (1) uses at run time a  
300 - copy of the library already present on the user's computer system,  
301 - rather than copying library functions into the executable, and (2)  
302 - will operate properly with a modified version of the library, if  
303 - the user installs one, as long as the modified version is  
304 - interface-compatible with the version that the work was made with.  
305 -  
306 - c) Accompany the work with a written offer, valid for at  
307 - least three years, to give the same user the materials  
308 - specified in Subsection 6a, above, for a charge no more  
309 - than the cost of performing this distribution.  
310 -  
311 - d) If distribution of the work is made by offering access to copy  
312 - from a designated place, offer equivalent access to copy the above  
313 - specified materials from the same place.  
314 -  
315 - e) Verify that the user has already received a copy of these  
316 - materials or that you have already sent this user a copy.  
317 -  
318 - For an executable, the required form of the "work that uses the  
319 -Library" must include any data and utility programs needed for  
320 -reproducing the executable from it. However, as a special exception,  
321 -the materials to be distributed need not include anything that is  
322 -normally distributed (in either source or binary form) with the major  
323 -components (compiler, kernel, and so on) of the operating system on  
324 -which the executable runs, unless that component itself accompanies  
325 -the executable.  
326 -  
327 - It may happen that this requirement contradicts the license  
328 -restrictions of other proprietary libraries that do not normally  
329 -accompany the operating system. Such a contradiction means you cannot  
330 -use both them and the Library together in an executable that you  
331 -distribute.  
332 -  
333 - 7. You may place library facilities that are a work based on the  
334 -Library side-by-side in a single library together with other library  
335 -facilities not covered by this License, and distribute such a combined  
336 -library, provided that the separate distribution of the work based on  
337 -the Library and of the other library facilities is otherwise  
338 -permitted, and provided that you do these two things:  
339 -  
340 - a) Accompany the combined library with a copy of the same work  
341 - based on the Library, uncombined with any other library  
342 - facilities. This must be distributed under the terms of the  
343 - Sections above.  
344 -  
345 - b) Give prominent notice with the combined library of the fact  
346 - that part of it is a work based on the Library, and explaining  
347 - where to find the accompanying uncombined form of the same work.  
348 -  
349 - 8. You may not copy, modify, sublicense, link with, or distribute  
350 -the Library except as expressly provided under this License. Any  
351 -attempt otherwise to copy, modify, sublicense, link with, or  
352 -distribute the Library is void, and will automatically terminate your  
353 -rights under this License. However, parties who have received copies,  
354 -or rights, from you under this License will not have their licenses  
355 -terminated so long as such parties remain in full compliance.  
356 -  
357 - 9. You are not required to accept this License, since you have not  
358 -signed it. However, nothing else grants you permission to modify or  
359 -distribute the Library or its derivative works. These actions are  
360 -prohibited by law if you do not accept this License. Therefore, by  
361 -modifying or distributing the Library (or any work based on the  
362 -Library), you indicate your acceptance of this License to do so, and  
363 -all its terms and conditions for copying, distributing or modifying  
364 -the Library or works based on it.  
365 -  
366 - 10. Each time you redistribute the Library (or any work based on the  
367 -Library), the recipient automatically receives a license from the  
368 -original licensor to copy, distribute, link with or modify the Library  
369 -subject to these terms and conditions. You may not impose any further  
370 -restrictions on the recipients' exercise of the rights granted herein.  
371 -You are not responsible for enforcing compliance by third parties with  
372 -this License.  
373 -  
374 - 11. If, as a consequence of a court judgment or allegation of patent  
375 -infringement or for any other reason (not limited to patent issues),  
376 -conditions are imposed on you (whether by court order, agreement or  
377 -otherwise) that contradict the conditions of this License, they do not  
378 -excuse you from the conditions of this License. If you cannot  
379 -distribute so as to satisfy simultaneously your obligations under this  
380 -License and any other pertinent obligations, then as a consequence you  
381 -may not distribute the Library at all. For example, if a patent  
382 -license would not permit royalty-free redistribution of the Library by  
383 -all those who receive copies directly or indirectly through you, then  
384 -the only way you could satisfy both it and this License would be to  
385 -refrain entirely from distribution of the Library.  
386 -  
387 -If any portion of this section is held invalid or unenforceable under any  
388 -particular circumstance, the balance of the section is intended to apply,  
389 -and the section as a whole is intended to apply in other circumstances.  
390 -  
391 -It is not the purpose of this section to induce you to infringe any  
392 -patents or other property right claims or to contest validity of any  
393 -such claims; this section has the sole purpose of protecting the  
394 -integrity of the free software distribution system which is  
395 -implemented by public license practices. Many people have made  
396 -generous contributions to the wide range of software distributed  
397 -through that system in reliance on consistent application of that  
398 -system; it is up to the author/donor to decide if he or she is willing  
399 -to distribute software through any other system and a licensee cannot  
400 -impose that choice.  
401 -  
402 -This section is intended to make thoroughly clear what is believed to  
403 -be a consequence of the rest of this License.  
404 -  
405 - 12. If the distribution and/or use of the Library is restricted in  
406 -certain countries either by patents or by copyrighted interfaces, the  
407 -original copyright holder who places the Library under this License may add  
408 -an explicit geographical distribution limitation excluding those countries,  
409 -so that distribution is permitted only in or among countries not thus  
410 -excluded. In such case, this License incorporates the limitation as if  
411 -written in the body of this License.  
412 -  
413 - 13. The Free Software Foundation may publish revised and/or new  
414 -versions of the Lesser General Public License from time to time.  
415 -Such new versions will be similar in spirit to the present version,  
416 -but may differ in detail to address new problems or concerns.  
417 -  
418 -Each version is given a distinguishing version number. If the Library  
419 -specifies a version number of this License which applies to it and  
420 -"any later version", you have the option of following the terms and  
421 -conditions either of that version or of any later version published by  
422 -the Free Software Foundation. If the Library does not specify a  
423 -license version number, you may choose any version ever published by  
424 -the Free Software Foundation.  
425 -  
426 - 14. If you wish to incorporate parts of the Library into other free  
427 -programs whose distribution conditions are incompatible with these,  
428 -write to the author to ask for permission. For software which is  
429 -copyrighted by the Free Software Foundation, write to the Free  
430 -Software Foundation; we sometimes make exceptions for this. Our  
431 -decision will be guided by the two goals of preserving the free status  
432 -of all derivatives of our free software and of promoting the sharing  
433 -and reuse of software generally.  
434 -  
435 - NO WARRANTY  
436 -  
437 - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO  
438 -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  
439 -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR  
440 -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY  
441 -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE  
442 -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR  
443 -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE  
444 -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME  
445 -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.  
446 -  
447 - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN  
448 -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY  
449 -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU  
450 -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR  
451 -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE  
452 -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING  
453 -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A  
454 -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF  
455 -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH  
456 -DAMAGES.  
457 -  
458 - END OF TERMS AND CONDITIONS  
459 -  
460 - How to Apply These Terms to Your New Libraries  
461 -  
462 - If you develop a new library, and you want it to be of the greatest  
463 -possible use to the public, we recommend making it free software that  
464 -everyone can redistribute and change. You can do so by permitting  
465 -redistribution under these terms (or, alternatively, under the terms of the  
466 -ordinary General Public License).  
467 -  
468 - To apply these terms, attach the following notices to the library. It is  
469 -safest to attach them to the start of each source file to most effectively  
470 -convey the exclusion of warranty; and each file should have at least the  
471 -"copyright" line and a pointer to where the full notice is found.  
472 -  
473 - <one line to give the library's name and a brief idea of what it does.>  
474 - Copyright (C) <year> <name of author>  
475 -  
476 - This library is free software; you can redistribute it and/or  
477 - modify it under the terms of the GNU Lesser General Public  
478 - License as published by the Free Software Foundation; either  
479 - version 2.1 of the License, or (at your option) any later version.  
480 -  
481 - This library is distributed in the hope that it will be useful,  
482 - but WITHOUT ANY WARRANTY; without even the implied warranty of  
483 - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU  
484 - Lesser General Public License for more details.  
485 -  
486 - You should have received a copy of the GNU Lesser General Public  
487 - License along with this library; if not, write to the Free Software  
488 - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA  
489 -  
490 -Also add information on how to contact you by electronic and paper mail.  
491 -  
492 -You should also get your employer (if you work as a programmer) or your  
493 -school, if any, to sign a "copyright disclaimer" for the library, if  
494 -necessary. Here is a sample; alter the names:  
495 -  
496 - Yoyodyne, Inc., hereby disclaims all copyright interest in the  
497 - library `Frob' (a library for tweaking knobs) written by James Random Hacker.  
498 -  
499 - <signature of Ty Coon>, 1 April 1990  
500 - Ty Coon, President of Vice  
501 -  
502 -That's all there is to it!  
503 -  
504 -  
public/javascripts/tiny_mce/plugins/_template/langs/de.js
@@ -1,9 +0,0 @@ @@ -1,9 +0,0 @@
1 -// DE lang variables  
2 -  
3 -/* Remember to namespace the language parameters lang_<your plugin>_<some name> */  
4 -/* Sprachparameter müssen als lang_<Eigenes Plugin>_<Eigener Name> definiert werden */  
5 -  
6 -tinyMCE.addToLang('',{  
7 -template_title : 'Dies ist nur ein Beispiel-Popup',  
8 -template_desc : 'Dies ist nur ein Beispiel-Button'  
9 -});  
public/javascripts/tiny_mce/plugins/_template/langs/fr.js
@@ -1,9 +0,0 @@ @@ -1,9 +0,0 @@
1 -// FR lang variables  
2 -// Modified by Motte, last updated 2006-03-23  
3 -  
4 -/* N'oubliez pas d'identifer les parametres de langue ainsi: <votre plugin>_<un nom> */  
5 -  
6 -tinyMCE.addToLang('',{  
7 -template_title : 'Texte qui appara&icirc;tra sous forme de titre dans la fen&ecirc;tre pop-up de votre plugin',  
8 -template_desc : 'Texte qui appara&icirc;tra sous forme d\'info-bulle au survol du bouton de votre plugin'  
9 -});  
public/javascripts/tiny_mce/plugins/_template/langs/nl.js
@@ -1,8 +0,0 @@ @@ -1,8 +0,0 @@
1 -// NL lang variables  
2 -  
3 -/* Remember to namespace the language parameters lang_<your plugin>_<some name> */  
4 -  
5 -tinyMCE.addToLang('',{  
6 -template_title : 'Dit is slechts een voorbeeldpopup',  
7 -template_desc : 'Dit is slechts een voorbeeldknop'  
8 -});  
public/javascripts/tiny_mce/plugins/_template/langs/pt_br.js
@@ -1,14 +0,0 @@ @@ -1,14 +0,0 @@
1 -/**  
2 - * pt_br lang variables  
3 - * Brazilian Portuguese  
4 - *  
5 - * Author  
6 - * Revision and modifications:  
7 - * Marcio Barbosa (mpg) <mpg@mpg.com.br>  
8 - * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4  
9 - * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8  
10 - */  
11 -tinyMCE.addToLang('',{  
12 -template_title : 'Este é só um modelo de popup',  
13 -template_desc : 'Este é só um modelo de botão'  
14 -});  
public/javascripts/tiny_mce/plugins/advhr/css/advhr.css
@@ -1,23 +0,0 @@ @@ -1,23 +0,0 @@
1 -input.radio {  
2 - border: 1px none #000000;  
3 - background-color: transparent;  
4 - vertical-align: middle;  
5 -}  
6 -  
7 -.panel_wrapper div.current {  
8 - height: 80px;  
9 -}  
10 -  
11 -#width {  
12 - width: 50px;  
13 - vertical-align: middle;  
14 -}  
15 -  
16 -#width2 {  
17 - width: 50px;  
18 - vertical-align: middle;  
19 -}  
20 -  
21 -#size {  
22 - width: 100px;  
23 -}  
public/javascripts/tiny_mce/plugins/advhr/editor_plugin.js
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -tinyMCE.importPluginLanguagePack('advhr');var TinyMCE_AdvancedHRPlugin={getInfo:function(){return{longname:'Advanced HR',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"advhr":return tinyMCE.getButtonHTML(cn,'lang_insert_advhr_desc','{$pluginurl}/images/advhr.gif','mceAdvancedHr')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceAdvancedHr":var template=new Array();template['file']='../../plugins/advhr/rule.htm';template['width']=250;template['height']=160;template['width']+=tinyMCE.getLang('lang_advhr_delta_width',0);template['height']+=tinyMCE.getLang('lang_advhr_delta_height',0);var size="",width="",noshade="";if(tinyMCE.selectedElement!=null&&tinyMCE.selectedElement.nodeName.toLowerCase()=="hr"){tinyMCE.hrElement=tinyMCE.selectedElement;if(tinyMCE.hrElement){size=tinyMCE.hrElement.getAttribute('size')?tinyMCE.hrElement.getAttribute('size'):"";width=tinyMCE.hrElement.getAttribute('width')?tinyMCE.hrElement.getAttribute('width'):"";noshade=tinyMCE.hrElement.getAttribute('noshade')?tinyMCE.hrElement.getAttribute('noshade'):""}tinyMCE.openWindow(template,{editor_id:editor_id,size:size,width:width,noshade:noshade,mceDo:'update'})}else{if(tinyMCE.isMSIE){tinyMCE.execInstanceCommand(editor_id,'mceInsertContent',false,'<hr />')}else{tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes",size:size,width:width,noshade:noshade,mceDo:'insert'})}}return true}return false},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){if(node==null)return;do{if(node.nodeName=="HR"){tinyMCE.switchClass(editor_id+'_advhr','mceButtonSelected');return true}}while((node=node.parentNode));tinyMCE.switchClass(editor_id+'_advhr','mceButtonNormal');return true}};tinyMCE.addPlugin("advhr",TinyMCE_AdvancedHRPlugin);  
2 \ No newline at end of file 0 \ No newline at end of file
public/javascripts/tiny_mce/plugins/advhr/editor_plugin_src.js
@@ -1,90 +0,0 @@ @@ -1,90 +0,0 @@
1 -/**  
2 - * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $  
3 - *  
4 - * @author Moxiecode  
5 - * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.  
6 - */  
7 -  
8 -/* Import plugin specific language pack */  
9 -tinyMCE.importPluginLanguagePack('advhr');  
10 -  
11 -var TinyMCE_AdvancedHRPlugin = {  
12 - getInfo : function() {  
13 - return {  
14 - longname : 'Advanced HR',  
15 - author : 'Moxiecode Systems AB',  
16 - authorurl : 'http://tinymce.moxiecode.com',  
17 - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr',  
18 - version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion  
19 - }  
20 - },  
21 -  
22 - getControlHTML : function(cn) {  
23 - switch (cn) {  
24 - case "advhr":  
25 - return tinyMCE.getButtonHTML(cn, 'lang_insert_advhr_desc', '{$pluginurl}/images/advhr.gif', 'mceAdvancedHr');  
26 - }  
27 -  
28 - return "";  
29 - },  
30 -  
31 - /**  
32 - * Executes the mceAdvanceHr command.  
33 - */  
34 - execCommand : function(editor_id, element, command, user_interface, value) {  
35 - // Handle commands  
36 - switch (command) {  
37 - case "mceAdvancedHr":  
38 - var template = new Array();  
39 -  
40 - template['file'] = '../../plugins/advhr/rule.htm'; // Relative to theme  
41 - template['width'] = 250;  
42 - template['height'] = 160;  
43 -  
44 - template['width'] += tinyMCE.getLang('lang_advhr_delta_width', 0);  
45 - template['height'] += tinyMCE.getLang('lang_advhr_delta_height', 0);  
46 -  
47 - var size = "", width = "", noshade = "";  
48 - if (tinyMCE.selectedElement != null && tinyMCE.selectedElement.nodeName.toLowerCase() == "hr") {  
49 - tinyMCE.hrElement = tinyMCE.selectedElement;  
50 -  
51 - if (tinyMCE.hrElement) {  
52 - size = tinyMCE.hrElement.getAttribute('size') ? tinyMCE.hrElement.getAttribute('size') : "";  
53 - width = tinyMCE.hrElement.getAttribute('width') ? tinyMCE.hrElement.getAttribute('width') : "";  
54 - noshade = tinyMCE.hrElement.getAttribute('noshade') ? tinyMCE.hrElement.getAttribute('noshade') : "";  
55 - }  
56 -  
57 - tinyMCE.openWindow(template, {editor_id : editor_id, size : size, width : width, noshade : noshade, mceDo : 'update'});  
58 - } else {  
59 - if (tinyMCE.isMSIE) {  
60 - tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false,'<hr />');  
61 - } else {  
62 - tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes", size : size, width : width, noshade : noshade, mceDo : 'insert'});  
63 - }  
64 - }  
65 -  
66 - return true;  
67 - }  
68 -  
69 - // Pass to next handler in chain  
70 - return false;  
71 - },  
72 -  
73 - handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {  
74 - if (node == null)  
75 - return;  
76 -  
77 - do {  
78 - if (node.nodeName == "HR") {  
79 - tinyMCE.switchClass(editor_id + '_advhr', 'mceButtonSelected');  
80 - return true;  
81 - }  
82 - } while ((node = node.parentNode));  
83 -  
84 - tinyMCE.switchClass(editor_id + '_advhr', 'mceButtonNormal');  
85 -  
86 - return true;  
87 - }  
88 -};  
89 -  
90 -tinyMCE.addPlugin("advhr", TinyMCE_AdvancedHRPlugin);  
public/javascripts/tiny_mce/plugins/advhr/images/advhr.gif

153 Bytes

public/javascripts/tiny_mce/plugins/advhr/jscripts/rule.js
@@ -1,43 +0,0 @@ @@ -1,43 +0,0 @@
1 -function init() {  
2 - tinyMCEPopup.resizeToInnerSize();  
3 -  
4 - var formObj = document.forms[0];  
5 - formObj.width.value = tinyMCE.getWindowArg('width');  
6 - formObj.size.value = tinyMCE.getWindowArg('size');  
7 - formObj.insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('mceDo'),'Insert',true);  
8 - if (tinyMCE.getWindowArg('noshade')) {  
9 - formObj.noshade.checked = true;  
10 - }  
11 - if (tinyMCE.getWindowArg('width').lastIndexOf('%')!=-1) {  
12 - formObj.width2.value = "%";  
13 - formObj.width.value = formObj.width.value.substring(0,formObj.width.value.length-1);  
14 - }  
15 -}  
16 -  
17 -function insertHR() {  
18 - var formObj = document.forms[0];  
19 - var width = formObj.width.value;  
20 - var size = formObj.size.value;  
21 - var html = '<hr';  
22 - if (size!='' && size!=0) {  
23 - html += ' size="' + size + '"';  
24 - }  
25 - if (width!='' && width!=0) {  
26 - html += ' width="' + width;  
27 - if (formObj.width2.value=='%') {  
28 - html += '%';  
29 - }  
30 - html += '"';  
31 - }  
32 - if (formObj.noshade.checked==true) {  
33 - html += ' noshade="noshade"';  
34 - }  
35 - html += ' />';  
36 -  
37 - tinyMCEPopup.execCommand("mceInsertContent", true, html);  
38 - tinyMCEPopup.close();  
39 -}  
40 -  
41 -function cancelAction() {  
42 - tinyMCEPopup.close();  
43 -}  
public/javascripts/tiny_mce/plugins/advhr/langs/de.js
@@ -1,8 +0,0 @@ @@ -1,8 +0,0 @@
1 -// DE lang variables  
2 -  
3 -tinyMCE.addToLang('',{  
4 -insert_advhr_desc : 'Horizontale Linie einf&uuml;gen/bearbeiten',  
5 -insert_advhr_width : 'Breite',  
6 -insert_advhr_size : 'H&ouml;he',  
7 -insert_advhr_noshade : 'Kein Schatten'  
8 -});  
public/javascripts/tiny_mce/plugins/advhr/langs/en.js
@@ -1,8 +0,0 @@ @@ -1,8 +0,0 @@
1 -// UK lang variables  
2 -  
3 -tinyMCE.addToLang('',{  
4 -insert_advhr_desc : 'Horizontale rule',  
5 -insert_advhr_width : 'Width',  
6 -insert_advhr_size : 'Height',  
7 -insert_advhr_noshade : 'No shadow'  
8 -});  
public/javascripts/tiny_mce/plugins/advhr/langs/fr.js
@@ -1,9 +0,0 @@ @@ -1,9 +0,0 @@
1 -// FR lang variables  
2 -// Modified by Motte, last updated 2006-03-23  
3 -  
4 -tinyMCE.addToLang('',{  
5 -insert_advhr_desc : 'Ins&eacute;rer une r&egrave;gle horizontale styl&eacute;e',  
6 -insert_advhr_width : 'Largeur',  
7 -insert_advhr_size : 'Hauteur',  
8 -insert_advhr_noshade : 'Sans ombre'  
9 -});  
public/javascripts/tiny_mce/plugins/advhr/langs/nl.js
@@ -1,8 +0,0 @@ @@ -1,8 +0,0 @@
1 -// NL lang variables  
2 -  
3 -tinyMCE.addToLang('',{  
4 -insert_advhr_desc : 'Horizontale lijn invoegen/bewerken',  
5 -insert_advhr_width : 'Breedte',  
6 -insert_advhr_size : 'Hoogte',  
7 -insert_advhr_noshade : 'Geen schaduw'  
8 -});  
public/javascripts/tiny_mce/plugins/advhr/langs/pt_br.js
@@ -1,16 +0,0 @@ @@ -1,16 +0,0 @@
1 -/**  
2 - * pt_br lang variables  
3 - * Brazilian Portuguese  
4 - *  
5 - * Author  
6 - * Revision and modifications:  
7 - * Marcio Barbosa (mpg) <mpg@mpg.com.br>  
8 - * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4  
9 - * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8  
10 - */  
11 -tinyMCE.addToLang('',{  
12 -insert_advhr_desc : 'Inserir/editar linha horizontal',  
13 -insert_advhr_width : 'Largura',  
14 -insert_advhr_size : 'Altura',  
15 -insert_advhr_noshade : 'Sem sombra'  
16 -});  
public/javascripts/tiny_mce/plugins/advhr/readme.txt
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -Check the TinyMCE documentation for details on this plugin.  
public/javascripts/tiny_mce/plugins/advhr/rule.htm
@@ -1,61 +0,0 @@ @@ -1,61 +0,0 @@
1 -<html xmlns="http://www.w3.org/1999/xhtml">  
2 -<head>  
3 - <title>{$lang_insert_advhr_desc}</title>  
4 - <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>  
5 - <script language="javascript" type="text/javascript" src="jscripts/rule.js"></script>  
6 - <script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>  
7 - <link href="css/advhr.css" rel="stylesheet" type="text/css" />  
8 - <base target="_self" />  
9 -</head>  
10 -<body onload="tinyMCEPopup.executeOnLoad('init();');">  
11 -<form onsubmit="insertHR();return false;" action="#">  
12 - <div class="tabs">  
13 - <ul>  
14 - <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_insert_advhr_desc}</a></span></li>  
15 - </ul>  
16 - </div>  
17 -  
18 - <div class="panel_wrapper">  
19 - <div id="general_panel" class="panel current">  
20 - <table border="0" cellpadding="4" cellspacing="0">  
21 - <tr>  
22 - <td><label for="width">{$lang_insert_advhr_width}</label></td>  
23 - <td nowrap="nowrap">  
24 - <input id="width" name="width" type="text" value="" />  
25 - <select name="width2" id="width2">  
26 - <option value="">px</option>  
27 - <option value="%">%</option>  
28 - </select>  
29 - </td>  
30 - </tr>  
31 - <tr>  
32 - <td><label for="size">{$lang_insert_advhr_size}</label></td>  
33 - <td><select id="size" name="size">  
34 - <option value="">Normal</option>  
35 - <option value="1">1</option>  
36 - <option value="2">2</option>  
37 - <option value="3">3</option>  
38 - <option value="4">4</option>  
39 - <option value="5">5</option>  
40 - </select></td>  
41 - </tr>  
42 - <tr>  
43 - <td><label for="noshade">{$lang_insert_advhr_noshade}</label></td>  
44 - <td><input type="checkbox" name="noshade" id="noshade" class="radio" /></td>  
45 - </tr>  
46 - </table>  
47 - </div>  
48 - </div>  
49 -  
50 - <div class="mceActionPanel">  
51 - <div style="float: left">  
52 - <input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertHR();" />  
53 - </div>  
54 -  
55 - <div style="float: right">  
56 - <input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />  
57 - </div>  
58 - </div>  
59 -</form>  
60 -</body>  
61 -</html>  
public/javascripts/tiny_mce/plugins/advimage/css/advimage.css
@@ -1,66 +0,0 @@ @@ -1,66 +0,0 @@
1 -/* CSS file for advimage plugin popup */  
2 -  
3 -.mceImageList {  
4 - width: 280px;  
5 -}  
6 -  
7 -.mceActionPanel {  
8 - margin-top: 7px;  
9 -}  
10 -  
11 -.alignPreview {  
12 - border: 1px solid black;  
13 - width: 140px;  
14 - height: 140px;  
15 - overflow: hidden;  
16 - padding: 5px;  
17 -}  
18 -  
19 -.checkbox {  
20 - border: 0;  
21 -}  
22 -  
23 -.panel_wrapper div.current {  
24 - height: 305px;  
25 -}  
26 -  
27 -#prev {  
28 - margin: 0;  
29 - border: 1px  
30 - solid black;  
31 - width: 99%;  
32 - height: 150px;  
33 - overflow: auto;  
34 -}  
35 -  
36 -#align, #classlist {  
37 - width: 150px;  
38 -}  
39 -  
40 -#width, #height {  
41 - vertical-align: middle;  
42 - width: 50px;  
43 - text-align: center;  
44 -}  
45 -  
46 -#vspace, #hspace, #border {  
47 - vertical-align: middle;  
48 - width: 30px;  
49 - text-align: center;  
50 -}  
51 -  
52 -#classlist {  
53 - width: 180px;  
54 -}  
55 -  
56 -input {  
57 - width: 280px;  
58 -}  
59 -  
60 -#constrain, #onmousemovecheck {  
61 - width: auto;  
62 -}  
63 -  
64 -#id, #dir, #lang, #usemap, #longdesc {  
65 - width: 200px;  
66 -}  
public/javascripts/tiny_mce/plugins/advimage/editor_plugin.js
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -tinyMCE.importPluginLanguagePack('advimage');var TinyMCE_AdvancedImagePlugin={getInfo:function(){return{longname:'Advanced image',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"image":return tinyMCE.getButtonHTML(cn,'lang_image_desc','{$themeurl}/images/image.gif','mceAdvImage')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceAdvImage":var template=new Array();template['file']='../../plugins/advimage/image.htm';template['width']=480;template['height']=380;template['width']+=tinyMCE.getLang('lang_advimage_delta_width',0);template['height']+=tinyMCE.getLang('lang_advimage_delta_height',0);var inst=tinyMCE.getInstanceById(editor_id);var elm=inst.getFocusElement();if(elm!=null&&tinyMCE.getAttrib(elm,'class').indexOf('mceItem')!=-1)return true;tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes"});return true}return false},cleanup:function(type,content){switch(type){case"insert_to_editor_dom":var imgs=content.getElementsByTagName("img"),src,i;for(i=0;i<imgs.length;i++){var onmouseover=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseover'));var onmouseout=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseout'));if((src=this._getImageSrc(onmouseover))!=""){if(tinyMCE.getParam('convert_urls'))src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],src);imgs[i].setAttribute('onmouseover',"this.src='"+src+"';")}if((src=this._getImageSrc(onmouseout))!=""){if(tinyMCE.getParam('convert_urls'))src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],src);imgs[i].setAttribute('onmouseout',"this.src='"+src+"';")}}break;case"get_from_editor_dom":var imgs=content.getElementsByTagName("img");for(var i=0;i<imgs.length;i++){var onmouseover=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseover'));var onmouseout=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseout'));if((src=this._getImageSrc(onmouseover))!=""){if(tinyMCE.getParam('convert_urls'))src=eval(tinyMCE.settings['urlconverter_callback']+"(src, null, true);");imgs[i].setAttribute('onmouseover',"this.src='"+src+"';")}if((src=this._getImageSrc(onmouseout))!=""){if(tinyMCE.getParam('convert_urls'))src=eval(tinyMCE.settings['urlconverter_callback']+"(src, null, true);");imgs[i].setAttribute('onmouseout',"this.src='"+src+"';")}}break}return content},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){if(node==null)return;do{if(node.nodeName=="IMG"&&tinyMCE.getAttrib(node,'class').indexOf('mceItem')==-1){tinyMCE.switchClass(editor_id+'_advimage','mceButtonSelected');return true}}while((node=node.parentNode));tinyMCE.switchClass(editor_id+'_advimage','mceButtonNormal');return true},_getImageSrc:function(s){var sr,p=-1;if(!s)return"";if((p=s.indexOf('this.src='))!=-1){sr=s.substring(p+10);sr=sr.substring(0,sr.indexOf('\''));return sr}return""}};tinyMCE.addPlugin("advimage",TinyMCE_AdvancedImagePlugin);  
2 \ No newline at end of file 0 \ No newline at end of file
public/javascripts/tiny_mce/plugins/advimage/editor_plugin_src.js
@@ -1,148 +0,0 @@ @@ -1,148 +0,0 @@
1 -/**  
2 - * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $  
3 - *  
4 - * @author Moxiecode  
5 - * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.  
6 - */  
7 -  
8 -/* Import plugin specific language pack */  
9 -tinyMCE.importPluginLanguagePack('advimage');  
10 -  
11 -var TinyMCE_AdvancedImagePlugin = {  
12 - getInfo : function() {  
13 - return {  
14 - longname : 'Advanced image',  
15 - author : 'Moxiecode Systems AB',  
16 - authorurl : 'http://tinymce.moxiecode.com',  
17 - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',  
18 - version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion  
19 - };  
20 - },  
21 -  
22 - getControlHTML : function(cn) {  
23 - switch (cn) {  
24 - case "image":  
25 - return tinyMCE.getButtonHTML(cn, 'lang_image_desc', '{$themeurl}/images/image.gif', 'mceAdvImage');  
26 - }  
27 -  
28 - return "";  
29 - },  
30 -  
31 - execCommand : function(editor_id, element, command, user_interface, value) {  
32 - switch (command) {  
33 - case "mceAdvImage":  
34 - var template = new Array();  
35 -  
36 - template['file'] = '../../plugins/advimage/image.htm';  
37 - template['width'] = 480;  
38 - template['height'] = 380;  
39 -  
40 - // Language specific width and height addons  
41 - template['width'] += tinyMCE.getLang('lang_advimage_delta_width', 0);  
42 - template['height'] += tinyMCE.getLang('lang_advimage_delta_height', 0);  
43 -  
44 - var inst = tinyMCE.getInstanceById(editor_id);  
45 - var elm = inst.getFocusElement();  
46 -  
47 - if (elm != null && tinyMCE.getAttrib(elm, 'class').indexOf('mceItem') != -1)  
48 - return true;  
49 -  
50 - tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"});  
51 -  
52 - return true;  
53 - }  
54 -  
55 - return false;  
56 - },  
57 -  
58 - cleanup : function(type, content) {  
59 - switch (type) {  
60 - case "insert_to_editor_dom":  
61 - var imgs = content.getElementsByTagName("img"), src, i;  
62 - for (i=0; i<imgs.length; i++) {  
63 - var onmouseover = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseover'));  
64 - var onmouseout = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseout'));  
65 -  
66 - if ((src = this._getImageSrc(onmouseover)) != "") {  
67 - if (tinyMCE.getParam('convert_urls'))  
68 - src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);  
69 -  
70 - imgs[i].setAttribute('onmouseover', "this.src='" + src + "';");  
71 - }  
72 -  
73 - if ((src = this._getImageSrc(onmouseout)) != "") {  
74 - if (tinyMCE.getParam('convert_urls'))  
75 - src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);  
76 -  
77 - imgs[i].setAttribute('onmouseout', "this.src='" + src + "';");  
78 - }  
79 - }  
80 - break;  
81 -  
82 - case "get_from_editor_dom":  
83 - var imgs = content.getElementsByTagName("img");  
84 - for (var i=0; i<imgs.length; i++) {  
85 - var onmouseover = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseover'));  
86 - var onmouseout = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseout'));  
87 -  
88 - if ((src = this._getImageSrc(onmouseover)) != "") {  
89 - if (tinyMCE.getParam('convert_urls'))  
90 - src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");  
91 -  
92 - imgs[i].setAttribute('onmouseover', "this.src='" + src + "';");  
93 - }  
94 -  
95 - if ((src = this._getImageSrc(onmouseout)) != "") {  
96 - if (tinyMCE.getParam('convert_urls'))  
97 - src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");  
98 -  
99 - imgs[i].setAttribute('onmouseout', "this.src='" + src + "';");  
100 - }  
101 - }  
102 - break;  
103 - }  
104 -  
105 - return content;  
106 - },  
107 -  
108 - handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {  
109 - if (node == null)  
110 - return;  
111 -  
112 - do {  
113 - if (node.nodeName == "IMG" && tinyMCE.getAttrib(node, 'class').indexOf('mceItem') == -1) {  
114 - tinyMCE.switchClass(editor_id + '_advimage', 'mceButtonSelected');  
115 - return true;  
116 - }  
117 - } while ((node = node.parentNode));  
118 -  
119 - tinyMCE.switchClass(editor_id + '_advimage', 'mceButtonNormal');  
120 -  
121 - return true;  
122 - },  
123 -  
124 - /**  
125 - * Returns the image src from a scripted mouse over image str.  
126 - *  
127 - * @param {string} s String to get real src from.  
128 - * @return Image src from a scripted mouse over image str.  
129 - * @type string  
130 - */  
131 - _getImageSrc : function(s) {  
132 - var sr, p = -1;  
133 -  
134 - if (!s)  
135 - return "";  
136 -  
137 - if ((p = s.indexOf('this.src=')) != -1) {  
138 - sr = s.substring(p + 10);  
139 - sr = sr.substring(0, sr.indexOf('\''));  
140 -  
141 - return sr;  
142 - }  
143 -  
144 - return "";  
145 - }  
146 -};  
147 -  
148 -tinyMCE.addPlugin("advimage", TinyMCE_AdvancedImagePlugin);  
public/javascripts/tiny_mce/plugins/advimage/image.htm
@@ -1,241 +0,0 @@ @@ -1,241 +0,0 @@
1 -<html xmlns="http://www.w3.org/1999/xhtml">  
2 -<head>  
3 - <title>{$lang_insert_image_title}</title>  
4 - <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>  
5 - <script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>  
6 - <script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>  
7 - <script language="javascript" type="text/javascript" src="../../utils/validate.js"></script>  
8 - <script language="javascript" type="text/javascript" src="jscripts/functions.js"></script>  
9 - <link href="css/advimage.css" rel="stylesheet" type="text/css" />  
10 - <base target="_self" />  
11 -</head>  
12 -<body id="advimage" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">  
13 - <form onsubmit="insertAction();return false;" action="#">  
14 - <div class="tabs">  
15 - <ul>  
16 - <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_advimage_tab_general}</a></span></li>  
17 - <li id="appearance_tab"><span><a href="javascript:mcTabs.displayTab('appearance_tab','appearance_panel');" onmousedown="return false;">{$lang_advimage_tab_appearance}</a></span></li>  
18 - <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{$lang_advimage_tab_advanced}</a></span></li>  
19 - </ul>  
20 - </div>  
21 -  
22 - <div class="panel_wrapper">  
23 - <div id="general_panel" class="panel current">  
24 - <fieldset>  
25 - <legend>{$lang_advimage_general}</legend>  
26 -  
27 - <table class="properties">  
28 - <tr>  
29 - <td class="column1"><label id="srclabel" for="src">{$lang_insert_image_src}</label></td>  
30 - <td colspan="2"><table border="0" cellspacing="0" cellpadding="0">  
31 - <tr>  
32 - <td><input name="src" type="text" id="src" value="" onchange="showPreviewImage(this.value);" /></td>  
33 - <td id="srcbrowsercontainer">&nbsp;</td>  
34 - </tr>  
35 - </table></td>  
36 - </tr>  
37 - <tr id="imagelistsrcrow">  
38 - <td class="column1"><label for="imagelistsrc">{$lang_image_list}</label></td>  
39 - <td colspan="2" id="imagelistsrccontainer">&nbsp;</td>  
40 - </tr>  
41 - <tr>  
42 - <td class="column1"><label id="altlabel" for="alt">{$lang_insert_image_alt}</label></td>  
43 - <td colspan="2"><input id="alt" name="alt" type="text" value="" /></td>  
44 - </tr>  
45 - <tr>  
46 - <td class="column1"><label id="titlelabel" for="title">{$lang_advimage_title}</label></td>  
47 - <td colspan="2"><input id="title" name="title" type="text" value="" /></td>  
48 - </tr>  
49 - </table>  
50 - </fieldset>  
51 -  
52 - <fieldset>  
53 - <legend>{$lang_advimage_preview}</legend>  
54 - <div id="prev"></div>  
55 - </fieldset>  
56 - </div>  
57 -  
58 - <div id="appearance_panel" class="panel">  
59 - <fieldset>  
60 - <legend>{$lang_advimage_tab_appearance}</legend>  
61 -  
62 - <table border="0" cellpadding="4" cellspacing="0">  
63 - <tr>  
64 - <td class="column1"><label id="alignlabel" for="align">{$lang_insert_image_align}</label></td>  
65 - <td><select id="align" name="align" onchange="changeAppearance();">  
66 - <option value="">{$lang_insert_image_align_default}</option>  
67 - <option value="baseline">{$lang_insert_image_align_baseline}</option>  
68 - <option value="top">{$lang_insert_image_align_top}</option>  
69 - <option value="middle">{$lang_insert_image_align_middle}</option>  
70 - <option value="bottom">{$lang_insert_image_align_bottom}</option>  
71 - <option value="texttop">{$lang_insert_image_align_texttop}</option>  
72 - <option value="absmiddle">{$lang_insert_image_align_absmiddle}</option>  
73 - <option value="absbottom">{$lang_insert_image_align_absbottom}</option>  
74 - <option value="left">{$lang_insert_image_align_left}</option>  
75 - <option value="right">{$lang_insert_image_align_right}</option>  
76 - </select>  
77 - </td>  
78 - <td rowspan="6" valign="top">  
79 - <div class="alignPreview">  
80 - <img id="alignSampleImg" src="images/sample.gif" alt="{$lang_advimage_example_img}" />  
81 - Lorem ipsum, Dolor sit amet, consectetuer adipiscing loreum ipsum edipiscing elit, sed diam  
82 - nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Loreum ipsum  
83 - edipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam  
84 - erat volutpat.  
85 - </div>  
86 - </td>  
87 - </tr>  
88 -  
89 - <tr>  
90 - <td class="column1"><label id="widthlabel" for="width">{$lang_insert_image_dimensions}</label></td>  
91 - <td nowrap="nowrap">  
92 - <input name="width" type="text" id="width" value="" size="5" maxlength="5" class="size" onchange="changeHeight();" /> x  
93 - <input name="height" type="text" id="height" value="" size="5" maxlength="5" class="size" onchange="changeWidth();" /> px  
94 - </td>  
95 - </tr>  
96 -  
97 - <tr>  
98 - <td>&nbsp;</td>  
99 - <td><table border="0" cellpadding="0" cellspacing="0">  
100 - <tr>  
101 - <td><input id="constrain" type="checkbox" name="constrain" class="checkbox" /></td>  
102 - <td><label id="constrainlabel" for="constrain">{$lang_advimage_constrain_proportions}</label></td>  
103 - </tr>  
104 - </table></td>  
105 - </tr>  
106 -  
107 - <tr>  
108 - <td class="column1"><label id="vspacelabel" for="vspace">{$lang_insert_image_vspace}</label></td>  
109 - <td><input name="vspace" type="text" id="vspace" value="" size="3" maxlength="3" class="number" onchange="changeAppearance();updateStyle();" />  
110 - </td>  
111 - </tr>  
112 -  
113 - <tr>  
114 - <td class="column1"><label id="hspacelabel" for="hspace">{$lang_insert_image_hspace}</label></td>  
115 - <td><input name="hspace" type="text" id="hspace" value="" size="3" maxlength="3" class="number" onchange="changeAppearance();updateStyle();" /></td>  
116 - </tr>  
117 -  
118 - <tr>  
119 - <td class="column1"><label id="borderlabel" for="border">{$lang_insert_image_border}</label></td>  
120 - <td><input id="border" name="border" type="text" value="" size="3" maxlength="3" class="number" onchange="changeAppearance();updateStyle();" /></td>  
121 - </tr>  
122 -  
123 - <tr>  
124 - <td><label id="classlabel" for="classlist">{$lang_class_name}</label></td>  
125 - <td colspan="2">  
126 - <select id="classlist" name="classlist">  
127 - <option value="" selected>{$lang_not_set}</option>  
128 - </select>  
129 - </td>  
130 - </tr>  
131 -  
132 - <tr>  
133 - <td class="column1"><label id="stylelabel" for="style">{$lang_advimage_style}</label></td>  
134 - <td colspan="2"><input id="style" name="style" type="text" value="" onchange="styleUpdated();" /></td>  
135 - </tr>  
136 -  
137 - <!-- <tr>  
138 - <td class="column1"><label id="classeslabel" for="classes">{$lang_advimage_classes}</label></td>  
139 - <td colspan="2"><input id="classes" name="classes" type="text" value="" onchange="selectByValue(this.form,'classlist',this.value,true);" /></td>  
140 - </tr> -->  
141 - </table>  
142 - </fieldset>  
143 - </div>  
144 -  
145 - <div id="advanced_panel" class="panel">  
146 - <fieldset>  
147 - <legend>{$lang_advimage_swap_image}</legend>  
148 -  
149 - <input type="checkbox" id="onmousemovecheck" name="onmousemovecheck" class="checkbox" onclick="changeMouseMove();" />  
150 - <label id="onmousemovechecklabel" for="onmousemovecheck">{$lang_advimage_alt_image}</label>  
151 -  
152 - <table border="0" cellpadding="4" cellspacing="0" width="100%">  
153 - <tr>  
154 - <td class="column1"><label id="onmouseoversrclabel" for="onmouseoversrc">{$lang_advimage_mouseover}</label></td>  
155 - <td><table border="0" cellspacing="0" cellpadding="0">  
156 - <tr>  
157 - <td><input id="onmouseoversrc" name="onmouseoversrc" type="text" value="" /></td>  
158 - <td id="onmouseoversrccontainer">&nbsp;</td>  
159 - </tr>  
160 - </table></td>  
161 - </tr>  
162 - <tr id="imagelistoverrow">  
163 - <td class="column1"><label for="imagelistover">{$lang_image_list}</label></td>  
164 - <td id="imagelistovercontainer">&nbsp;</td>  
165 - </tr>  
166 - <tr>  
167 - <td class="column1"><label id="onmouseoutsrclabel" for="onmouseoutsrc">{$lang_advimage_mouseout}</label></td>  
168 - <td class="column2"><table border="0" cellspacing="0" cellpadding="0">  
169 - <tr>  
170 - <td><input id="onmouseoutsrc" name="onmouseoutsrc" type="text" value="" /></td>  
171 - <td id="onmouseoutsrccontainer">&nbsp;</td>  
172 - </tr>  
173 - </table></td>  
174 - </tr>  
175 - <tr id="imagelistoutrow">  
176 - <td class="column1"><label for="imagelistout">{$lang_image_list}</label></td>  
177 - <td id="imagelistoutcontainer">&nbsp;</td>  
178 - </tr>  
179 - </table>  
180 - </fieldset>  
181 -  
182 - <fieldset>  
183 - <legend>{$lang_advimage_misc}</legend>  
184 -  
185 - <table border="0" cellpadding="4" cellspacing="0">  
186 - <tr>  
187 - <td class="column1"><label id="idlabel" for="id">{$lang_advimage_id}</label></td>  
188 - <td><input id="id" name="id" type="text" value="" /></td>  
189 - </tr>  
190 -  
191 - <tr>  
192 - <td class="column1"><label id="dirlabel" for="dir">{$lang_advimage_langdir}</label></td>  
193 - <td>  
194 - <select id="dir" name="dir" onchange="changeAppearance();">  
195 - <option value="">{$lang_not_set}</option>  
196 - <option value="ltr">{$lang_advimage_ltr}</option>  
197 - <option value="rtl">{$lang_advimage_rtl}</option>  
198 - </select>  
199 - </td>  
200 - </tr>  
201 -  
202 - <tr>  
203 - <td class="column1"><label id="langlabel" for="lang">{$lang_advimage_langcode}</label></td>  
204 - <td>  
205 - <input id="lang" name="lang" type="text" value="" />  
206 - </td>  
207 - </tr>  
208 -  
209 - <tr>  
210 - <td class="column1"><label id="usemaplabel" for="usemap">{$lang_advimage_image_map}</label></td>  
211 - <td>  
212 - <input id="usemap" name="usemap" type="text" value="" />  
213 - </td>  
214 - </tr>  
215 -  
216 - <tr>  
217 - <td class="column1"><label id="longdesclabel" for="longdesc">{$lang_advimage_long_desc}</label></td>  
218 - <td><table border="0" cellspacing="0" cellpadding="0">  
219 - <tr>  
220 - <td><input id="longdesc" name="longdesc" type="text" value="" /></td>  
221 - <td id="longdesccontainer">&nbsp;</td>  
222 - </tr>  
223 - </table></td>  
224 - </tr>  
225 - </table>  
226 - </fieldset>  
227 - </div>  
228 - </div>  
229 -  
230 - <div class="mceActionPanel">  
231 - <div style="float: left">  
232 - <input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertAction();" />  
233 - </div>  
234 -  
235 - <div style="float: right">  
236 - <input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="cancelAction();" />  
237 - </div>  
238 - </div>  
239 - </form>  
240 -</body>  
241 -</html>  
public/javascripts/tiny_mce/plugins/advimage/images/sample.gif

1.59 KB

public/javascripts/tiny_mce/plugins/advimage/jscripts/functions.js
@@ -1,538 +0,0 @@ @@ -1,538 +0,0 @@
1 -/* Functions for the advimage plugin popup */  
2 -  
3 -var preloadImg = null;  
4 -var orgImageWidth, orgImageHeight;  
5 -  
6 -function preinit() {  
7 - // Initialize  
8 - tinyMCE.setWindowArg('mce_windowresize', false);  
9 -  
10 - // Import external list url javascript  
11 - var url = tinyMCE.getParam("external_image_list_url");  
12 - if (url != null) {  
13 - // Fix relative  
14 - if (url.charAt(0) != '/' && url.indexOf('://') == -1)  
15 - url = tinyMCE.documentBasePath + "/" + url;  
16 -  
17 - document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');  
18 - }  
19 -}  
20 -  
21 -function convertURL(url, node, on_save) {  
22 - return eval("tinyMCEPopup.windowOpener." + tinyMCE.settings['urlconverter_callback'] + "(url, node, on_save);");  
23 -}  
24 -  
25 -function getImageSrc(str) {  
26 - var pos = -1;  
27 -  
28 - if (!str)  
29 - return "";  
30 -  
31 - if ((pos = str.indexOf('this.src=')) != -1) {  
32 - var src = str.substring(pos + 10);  
33 -  
34 - src = src.substring(0, src.indexOf('\''));  
35 -  
36 - if (tinyMCE.getParam('convert_urls'))  
37 - src = convertURL(src, null, true);  
38 -  
39 - return src;  
40 - }  
41 -  
42 - return "";  
43 -}  
44 -  
45 -function init() {  
46 - tinyMCEPopup.resizeToInnerSize();  
47 -  
48 - var formObj = document.forms[0];  
49 - var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));  
50 - var elm = inst.getFocusElement();  
51 - var action = "insert";  
52 - var html = "";  
53 -  
54 - // Image list src  
55 - html = getImageListHTML('imagelistsrc','src','onSelectMainImage');  
56 - if (html == "")  
57 - document.getElementById("imagelistsrcrow").style.display = 'none';  
58 - else  
59 - document.getElementById("imagelistsrccontainer").innerHTML = html;  
60 -  
61 - // Image list oversrc  
62 - html = getImageListHTML('imagelistover','onmouseoversrc');  
63 - if (html == "")  
64 - document.getElementById("imagelistoverrow").style.display = 'none';  
65 - else  
66 - document.getElementById("imagelistovercontainer").innerHTML = html;  
67 -  
68 - // Image list outsrc  
69 - html = getImageListHTML('imagelistout','onmouseoutsrc');  
70 - if (html == "")  
71 - document.getElementById("imagelistoutrow").style.display = 'none';  
72 - else  
73 - document.getElementById("imagelistoutcontainer").innerHTML = html;  
74 -  
75 - // Src browser  
76 - html = getBrowserHTML('srcbrowser','src','image','advimage');  
77 - document.getElementById("srcbrowsercontainer").innerHTML = html;  
78 -  
79 - // Over browser  
80 - html = getBrowserHTML('oversrcbrowser','onmouseoversrc','image','advimage');  
81 - document.getElementById("onmouseoversrccontainer").innerHTML = html;  
82 -  
83 - // Out browser  
84 - html = getBrowserHTML('outsrcbrowser','onmouseoutsrc','image','advimage');  
85 - document.getElementById("onmouseoutsrccontainer").innerHTML = html;  
86 -  
87 - // Longdesc browser  
88 - html = getBrowserHTML('longdescbrowser','longdesc','file','advimage');  
89 - document.getElementById("longdesccontainer").innerHTML = html;  
90 -  
91 - // Resize some elements  
92 - if (isVisible('srcbrowser'))  
93 - document.getElementById('src').style.width = '260px';  
94 -  
95 - if (isVisible('oversrcbrowser'))  
96 - document.getElementById('onmouseoversrc').style.width = '260px';  
97 -  
98 - if (isVisible('outsrcbrowser'))  
99 - document.getElementById('onmouseoutsrc').style.width = '260px';  
100 -  
101 - if (isVisible('longdescbrowser'))  
102 - document.getElementById('longdesc').style.width = '180px';  
103 -  
104 - // Check action  
105 - if (elm != null && elm.nodeName == "IMG")  
106 - action = "update";  
107 -  
108 - formObj.insert.value = tinyMCE.getLang('lang_' + action, 'Insert', true);  
109 -  
110 - if (action == "update") {  
111 - var src = tinyMCE.getAttrib(elm, 'src');  
112 - var onmouseoversrc = getImageSrc(tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseover')));  
113 - var onmouseoutsrc = getImageSrc(tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseout')));  
114 -  
115 - src = convertURL(src, elm, true);  
116 -  
117 - // Use mce_src if found  
118 - var mceRealSrc = tinyMCE.getAttrib(elm, 'mce_src');  
119 - if (mceRealSrc != "") {  
120 - src = mceRealSrc;  
121 -  
122 - if (tinyMCE.getParam('convert_urls'))  
123 - src = convertURL(src, elm, true);  
124 - }  
125 -  
126 - if (onmouseoversrc != "" && tinyMCE.getParam('convert_urls'))  
127 - onmouseoversrc = convertURL(onmouseoversrc, elm, true);  
128 -  
129 - if (onmouseoutsrc != "" && tinyMCE.getParam('convert_urls'))  
130 - onmouseoutsrc = convertURL(onmouseoutsrc, elm, true);  
131 -  
132 - // Setup form data  
133 - var style = tinyMCE.parseStyle(tinyMCE.getAttrib(elm, "style"));  
134 -  
135 - // Store away old size  
136 - orgImageWidth = trimSize(getStyle(elm, 'width'))  
137 - orgImageHeight = trimSize(getStyle(elm, 'height'));  
138 -  
139 - formObj.src.value = src;  
140 - formObj.alt.value = tinyMCE.getAttrib(elm, 'alt');  
141 - formObj.title.value = tinyMCE.getAttrib(elm, 'title');  
142 - formObj.border.value = trimSize(getStyle(elm, 'border', 'borderWidth'));  
143 - formObj.vspace.value = tinyMCE.getAttrib(elm, 'vspace');  
144 - formObj.hspace.value = tinyMCE.getAttrib(elm, 'hspace');  
145 - formObj.width.value = orgImageWidth;  
146 - formObj.height.value = orgImageHeight;  
147 - formObj.onmouseoversrc.value = onmouseoversrc;  
148 - formObj.onmouseoutsrc.value = onmouseoutsrc;  
149 - formObj.id.value = tinyMCE.getAttrib(elm, 'id');  
150 - formObj.dir.value = tinyMCE.getAttrib(elm, 'dir');  
151 - formObj.lang.value = tinyMCE.getAttrib(elm, 'lang');  
152 - formObj.longdesc.value = tinyMCE.getAttrib(elm, 'longdesc');  
153 - formObj.usemap.value = tinyMCE.getAttrib(elm, 'usemap');  
154 - formObj.style.value = tinyMCE.serializeStyle(style);  
155 -  
156 - // Select by the values  
157 - if (tinyMCE.isMSIE)  
158 - selectByValue(formObj, 'align', getStyle(elm, 'align', 'styleFloat'));  
159 - else  
160 - selectByValue(formObj, 'align', getStyle(elm, 'align', 'cssFloat'));  
161 -  
162 - addClassesToList('classlist', 'advimage_styles');  
163 -  
164 - selectByValue(formObj, 'classlist', tinyMCE.getAttrib(elm, 'class'));  
165 - selectByValue(formObj, 'imagelistsrc', src);  
166 - selectByValue(formObj, 'imagelistover', onmouseoversrc);  
167 - selectByValue(formObj, 'imagelistout', onmouseoutsrc);  
168 -  
169 - updateStyle();  
170 - showPreviewImage(src, true);  
171 - changeAppearance();  
172 -  
173 - window.focus();  
174 - } else  
175 - addClassesToList('classlist', 'advimage_styles');  
176 -  
177 - // If option enabled default contrain proportions to checked  
178 - if (tinyMCE.getParam("advimage_constrain_proportions", true))  
179 - formObj.constrain.checked = true;  
180 -  
181 - // Check swap image if valid data  
182 - if (formObj.onmouseoversrc.value != "" || formObj.onmouseoutsrc.value != "")  
183 - setSwapImageDisabled(false);  
184 - else  
185 - setSwapImageDisabled(true);  
186 -}  
187 -  
188 -function setSwapImageDisabled(state) {  
189 - var formObj = document.forms[0];  
190 -  
191 - formObj.onmousemovecheck.checked = !state;  
192 -  
193 - setBrowserDisabled('overbrowser', state);  
194 - setBrowserDisabled('outbrowser', state);  
195 -  
196 - if (formObj.imagelistover)  
197 - formObj.imagelistover.disabled = state;  
198 -  
199 - if (formObj.imagelistout)  
200 - formObj.imagelistout.disabled = state;  
201 -  
202 - formObj.onmouseoversrc.disabled = state;  
203 - formObj.onmouseoutsrc.disabled = state;  
204 -}  
205 -  
206 -function setAttrib(elm, attrib, value) {  
207 - var formObj = document.forms[0];  
208 - var valueElm = formObj.elements[attrib];  
209 -  
210 - if (typeof(value) == "undefined" || value == null) {  
211 - value = "";  
212 -  
213 - if (valueElm)  
214 - value = valueElm.value;  
215 - }  
216 -  
217 - if (value != "") {  
218 - elm.setAttribute(attrib, value);  
219 -  
220 - if (attrib == "style")  
221 - attrib = "style.cssText";  
222 -  
223 - if (attrib == "longdesc")  
224 - attrib = "longDesc";  
225 -  
226 - if (attrib == "width") {  
227 - attrib = "style.width";  
228 - value = value + "px";  
229 - value = value.replace(/%px/g, 'px');  
230 - }  
231 -  
232 - if (attrib == "height") {  
233 - attrib = "style.height";  
234 - value = value + "px";  
235 - value = value.replace(/%px/g, 'px');  
236 - }  
237 -  
238 - if (attrib == "class")  
239 - attrib = "className";  
240 -  
241 - eval('elm.' + attrib + "=value;");  
242 - } else {  
243 - if (attrib == 'class')  
244 - elm.className = '';  
245 -  
246 - elm.removeAttribute(attrib);  
247 - }  
248 -}  
249 -  
250 -function makeAttrib(attrib, value) {  
251 - var formObj = document.forms[0];  
252 - var valueElm = formObj.elements[attrib];  
253 -  
254 - if (typeof(value) == "undefined" || value == null) {  
255 - value = "";  
256 -  
257 - if (valueElm)  
258 - value = valueElm.value;  
259 - }  
260 -  
261 - if (value == "")  
262 - return "";  
263 -  
264 - // XML encode it  
265 - value = value.replace(/&/g, '&amp;');  
266 - value = value.replace(/\"/g, '&quot;');  
267 - value = value.replace(/</g, '&lt;');  
268 - value = value.replace(/>/g, '&gt;');  
269 -  
270 - return ' ' + attrib + '="' + value + '"';  
271 -}  
272 -  
273 -function insertAction() {  
274 - var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));  
275 - var elm = inst.getFocusElement();  
276 - var formObj = document.forms[0];  
277 - var src = formObj.src.value;  
278 - var onmouseoversrc = formObj.onmouseoversrc.value;  
279 - var onmouseoutsrc = formObj.onmouseoutsrc.value;  
280 -  
281 - if (!AutoValidator.validate(formObj)) {  
282 - alert(tinyMCE.getLang('lang_invalid_data'));  
283 - return false;  
284 - }  
285 -  
286 - if (tinyMCE.getParam("accessibility_warnings")) {  
287 - if (formObj.alt.value == "" && !confirm(tinyMCE.getLang('lang_advimage_missing_alt', '', true)))  
288 - return;  
289 - }  
290 -  
291 - if (onmouseoversrc && onmouseoversrc != "")  
292 - onmouseoversrc = "this.src='" + convertURL(onmouseoversrc, tinyMCE.imgElement) + "';";  
293 -  
294 - if (onmouseoutsrc && onmouseoutsrc != "")  
295 - onmouseoutsrc = "this.src='" + convertURL(onmouseoutsrc, tinyMCE.imgElement) + "';";  
296 -  
297 - if (elm != null && elm.nodeName == "IMG") {  
298 - setAttrib(elm, 'src', convertURL(src, tinyMCE.imgElement));  
299 - setAttrib(elm, 'mce_src', src);  
300 - setAttrib(elm, 'alt');  
301 - setAttrib(elm, 'title');  
302 - setAttrib(elm, 'border');  
303 - setAttrib(elm, 'vspace');  
304 - setAttrib(elm, 'hspace');  
305 - setAttrib(elm, 'width');  
306 - setAttrib(elm, 'height');  
307 - setAttrib(elm, 'onmouseover', onmouseoversrc);  
308 - setAttrib(elm, 'onmouseout', onmouseoutsrc);  
309 - setAttrib(elm, 'id');  
310 - setAttrib(elm, 'dir');  
311 - setAttrib(elm, 'lang');  
312 - setAttrib(elm, 'longdesc');  
313 - setAttrib(elm, 'usemap');  
314 - setAttrib(elm, 'style');  
315 - setAttrib(elm, 'class', getSelectValue(formObj, 'classlist'));  
316 - setAttrib(elm, 'align', getSelectValue(formObj, 'align'));  
317 -  
318 - //tinyMCEPopup.execCommand("mceRepaint");  
319 -  
320 - // Repaint if dimensions changed  
321 - if (formObj.width.value != orgImageWidth || formObj.height.value != orgImageHeight)  
322 - inst.repaint();  
323 -  
324 - // Refresh in old MSIE  
325 - if (tinyMCE.isMSIE5)  
326 - elm.outerHTML = elm.outerHTML;  
327 - } else {  
328 - var html = "<img";  
329 -  
330 - html += makeAttrib('src', convertURL(src, tinyMCE.imgElement));  
331 - html += makeAttrib('mce_src', src);  
332 - html += makeAttrib('alt');  
333 - html += makeAttrib('title');  
334 - html += makeAttrib('border');  
335 - html += makeAttrib('vspace');  
336 - html += makeAttrib('hspace');  
337 - html += makeAttrib('width');  
338 - html += makeAttrib('height');  
339 - html += makeAttrib('onmouseover', onmouseoversrc);  
340 - html += makeAttrib('onmouseout', onmouseoutsrc);  
341 - html += makeAttrib('id');  
342 - html += makeAttrib('dir');  
343 - html += makeAttrib('lang');  
344 - html += makeAttrib('longdesc');  
345 - html += makeAttrib('usemap');  
346 - html += makeAttrib('style');  
347 - html += makeAttrib('class', getSelectValue(formObj, 'classlist'));  
348 - html += makeAttrib('align', getSelectValue(formObj, 'align'));  
349 - html += " />";  
350 -  
351 - tinyMCEPopup.execCommand("mceInsertContent", false, html);  
352 - }  
353 -  
354 - tinyMCE._setEventsEnabled(inst.getBody(), false);  
355 - tinyMCEPopup.close();  
356 -}  
357 -  
358 -function cancelAction() {  
359 - tinyMCEPopup.close();  
360 -}  
361 -  
362 -function changeAppearance() {  
363 - var formObj = document.forms[0];  
364 - var img = document.getElementById('alignSampleImg');  
365 -  
366 - if (img) {  
367 - img.align = formObj.align.value;  
368 - img.border = formObj.border.value;  
369 - img.hspace = formObj.hspace.value;  
370 - img.vspace = formObj.vspace.value;  
371 - }  
372 -}  
373 -  
374 -function changeMouseMove() {  
375 - var formObj = document.forms[0];  
376 -  
377 - setSwapImageDisabled(!formObj.onmousemovecheck.checked);  
378 -}  
379 -  
380 -function updateStyle() {  
381 - var formObj = document.forms[0];  
382 - var st = tinyMCE.parseStyle(formObj.style.value);  
383 -  
384 - if (tinyMCE.getParam('inline_styles', false)) {  
385 - st['width'] = formObj.width.value == '' ? '' : formObj.width.value + "px";  
386 - st['height'] = formObj.height.value == '' ? '' : formObj.height.value + "px";  
387 - st['border-width'] = formObj.border.value == '' ? '' : formObj.border.value + "px";  
388 - st['margin-top'] = formObj.vspace.value == '' ? '' : formObj.vspace.value + "px";  
389 - st['margin-bottom'] = formObj.vspace.value == '' ? '' : formObj.vspace.value + "px";  
390 - st['margin-left'] = formObj.hspace.value == '' ? '' : formObj.hspace.value + "px";  
391 - st['margin-right'] = formObj.hspace.value == '' ? '' : formObj.hspace.value + "px";  
392 - } else {  
393 - st['width'] = st['height'] = st['border-width'] = null;  
394 -  
395 - if (st['margin-top'] == st['margin-bottom'])  
396 - st['margin-top'] = st['margin-bottom'] = null;  
397 -  
398 - if (st['margin-left'] == st['margin-right'])  
399 - st['margin-left'] = st['margin-right'] = null;  
400 - }  
401 -  
402 - formObj.style.value = tinyMCE.serializeStyle(st);  
403 -}  
404 -  
405 -function styleUpdated() {  
406 - var formObj = document.forms[0];  
407 - var st = tinyMCE.parseStyle(formObj.style.value);  
408 -  
409 - if (st['width'])  
410 - formObj.width.value = st['width'].replace('px', '');  
411 -  
412 - if (st['height'])  
413 - formObj.height.value = st['height'].replace('px', '');  
414 -  
415 - if (st['margin-top'] && st['margin-top'] == st['margin-bottom'])  
416 - formObj.vspace.value = st['margin-top'].replace('px', '');  
417 -  
418 - if (st['margin-left'] && st['margin-left'] == st['margin-right'])  
419 - formObj.hspace.value = st['margin-left'].replace('px', '');  
420 -  
421 - if (st['border-width'])  
422 - formObj.border.value = st['border-width'].replace('px', '');  
423 -}  
424 -  
425 -function changeHeight() {  
426 - var formObj = document.forms[0];  
427 -  
428 - if (!formObj.constrain.checked || !preloadImg) {  
429 - updateStyle();  
430 - return;  
431 - }  
432 -  
433 - if (formObj.width.value == "" || formObj.height.value == "")  
434 - return;  
435 -  
436 - var temp = (parseInt(formObj.width.value) / parseInt(preloadImg.width)) * preloadImg.height;  
437 - formObj.height.value = temp.toFixed(0);  
438 - updateStyle();  
439 -}  
440 -  
441 -function changeWidth() {  
442 - var formObj = document.forms[0];  
443 -  
444 - if (!formObj.constrain.checked || !preloadImg) {  
445 - updateStyle();  
446 - return;  
447 - }  
448 -  
449 - if (formObj.width.value == "" || formObj.height.value == "")  
450 - return;  
451 -  
452 - var temp = (parseInt(formObj.height.value) / parseInt(preloadImg.height)) * preloadImg.width;  
453 - formObj.width.value = temp.toFixed(0);  
454 - updateStyle();  
455 -}  
456 -  
457 -function onSelectMainImage(target_form_element, name, value) {  
458 - var formObj = document.forms[0];  
459 -  
460 - formObj.alt.value = name;  
461 - formObj.title.value = name;  
462 -  
463 - resetImageData();  
464 - showPreviewImage(formObj.elements[target_form_element].value, false);  
465 -}  
466 -  
467 -function showPreviewImage(src, start) {  
468 - var formObj = document.forms[0];  
469 -  
470 - selectByValue(document.forms[0], 'imagelistsrc', src);  
471 -  
472 - var elm = document.getElementById('prev');  
473 - var src = src == "" ? src : tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);  
474 -  
475 - if (!start && tinyMCE.getParam("advimage_update_dimensions_onchange", true))  
476 - resetImageData();  
477 -  
478 - if (src == "")  
479 - elm.innerHTML = "";  
480 - else  
481 - elm.innerHTML = '<img id="previewImg" src="' + src + '" border="0" onload="updateImageData(' + start + ');" onerror="resetImageData();" />'  
482 -}  
483 -  
484 -function updateImageData(start) {  
485 - var formObj = document.forms[0];  
486 -  
487 - preloadImg = document.getElementById('previewImg');  
488 -  
489 - if (!start && formObj.width.value == "")  
490 - formObj.width.value = preloadImg.width;  
491 -  
492 - if (!start && formObj.height.value == "")  
493 - formObj.height.value = preloadImg.height;  
494 -  
495 - updateStyle();  
496 -}  
497 -  
498 -function resetImageData() {  
499 - var formObj = document.forms[0];  
500 - formObj.width.value = formObj.height.value = "";  
501 -}  
502 -  
503 -function getSelectValue(form_obj, field_name) {  
504 - var elm = form_obj.elements[field_name];  
505 -  
506 - if (elm == null || elm.options == null)  
507 - return "";  
508 -  
509 - return elm.options[elm.selectedIndex].value;  
510 -}  
511 -  
512 -function getImageListHTML(elm_id, target_form_element, onchange_func) {  
513 - if (typeof(tinyMCEImageList) == "undefined" || tinyMCEImageList.length == 0)  
514 - return "";  
515 -  
516 - var html = "";  
517 -  
518 - html += '<select id="' + elm_id + '" name="' + elm_id + '"';  
519 - html += ' class="mceImageList" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';  
520 - html += 'this.options[this.selectedIndex].value;';  
521 -  
522 - if (typeof(onchange_func) != "undefined")  
523 - html += onchange_func + '(\'' + target_form_element + '\',this.options[this.selectedIndex].text,this.options[this.selectedIndex].value);';  
524 -  
525 - html += '"><option value="">---</option>';  
526 -  
527 - for (var i=0; i<tinyMCEImageList.length; i++)  
528 - html += '<option value="' + tinyMCEImageList[i][1] + '">' + tinyMCEImageList[i][0] + '</option>';  
529 -  
530 - html += '</select>';  
531 -  
532 - return html;  
533 -  
534 - // tinyMCE.debug('-- image list start --', html, '-- image list end --');  
535 -}  
536 -  
537 -// While loading  
538 -preinit();  
public/javascripts/tiny_mce/plugins/advimage/langs/de.js
@@ -1,27 +0,0 @@ @@ -1,27 +0,0 @@
1 -// DE lang variables  
2 -  
3 -tinyMCE.addToLang('advimage',{  
4 -tab_general : 'Allgemein',  
5 -tab_appearance : 'Erscheinungsbild',  
6 -tab_advanced : 'Erweitert',  
7 -general : 'Allgemein',  
8 -title : 'Titel',  
9 -preview : 'Vorschau',  
10 -constrain_proportions : 'Verh&auml;ltnis beibehalten',  
11 -langdir : 'Textfluss',  
12 -langcode : 'Sprach-Code',  
13 -long_desc : 'Link zur ausf&uuml;hrlichen Beschreibung',  
14 -style : 'CSS-Stil',  
15 -classes : 'CSS-Klassen',  
16 -ltr : 'Von links nach rechts',  
17 -rtl : 'Von rechts nach links',  
18 -id : 'ID',  
19 -image_map : 'Image Map (Bild mit sensitiven Bereichen)',  
20 -swap_image : 'Bild austauschen',  
21 -alt_image : 'Alternatives Bild',  
22 -mouseover : 'f&uuml;r Mouse-Over',  
23 -mouseout : 'f&uuml;r Mouse-Out',  
24 -misc : 'Verschiedenes',  
25 -example_img : 'Erscheinungsbild&nbsp;Vorschau&nbsp;Bild',  
26 -missing_alt : 'Sind Sie sicher fortzufahren, ohne eine Bild-Beschreibung einzugeben? Ohne die Bild-Beschreibung k&ouml;nnen einige Besucher mit einer Behinderung, Besucher die nur einen Text-Browser benutzen oder die das Anzeigen von Bilder im Internet deaktiviert haben, Ihre Bilder nicht richtig sehen.'  
27 -});  
public/javascripts/tiny_mce/plugins/advimage/langs/en.js
@@ -1,27 +0,0 @@ @@ -1,27 +0,0 @@
1 -// UK lang variables  
2 -  
3 -tinyMCE.addToLang('advimage',{  
4 -tab_general : 'General',  
5 -tab_appearance : 'Appearance',  
6 -tab_advanced : 'Advanced',  
7 -general : 'General',  
8 -title : 'Title',  
9 -preview : 'Preview',  
10 -constrain_proportions : 'Constrain proportions',  
11 -langdir : 'Language direction',  
12 -langcode : 'Language code',  
13 -long_desc : 'Long description link',  
14 -style : 'Style',  
15 -classes : 'Classes',  
16 -ltr : 'Left to right',  
17 -rtl : 'Right to left',  
18 -id : 'Id',  
19 -image_map : 'Image map',  
20 -swap_image : 'Swap image',  
21 -alt_image : 'Alternative image',  
22 -mouseover : 'for mouse over',  
23 -mouseout : 'for mouse out',  
24 -misc : 'Miscellaneous',  
25 -example_img : 'Appearance&nbsp;preview&nbsp;image',  
26 -missing_alt : 'Are you sure you want to continue without including an Image Description? Without it the image may not be accessible to some users with disabilities, or to those using a text browser, or browsing the Web with images turned off.'  
27 -});  
public/javascripts/tiny_mce/plugins/advimage/langs/fr.js
@@ -1,28 +0,0 @@ @@ -1,28 +0,0 @@
1 -// FR lang variables  
2 -// Modified by Motte, last updated 2006-03-23  
3 -  
4 -tinyMCE.addToLang('advimage',{  
5 -tab_general : 'G&eacute;n&eacute;rale',  
6 -tab_appearance : 'Apparence',  
7 -tab_advanced : 'Avanc&eacute;',  
8 -general : 'G&eacute;n&eacute;rale',  
9 -title : 'Titre',  
10 -preview : 'Pr&eacute;visualisation',  
11 -constrain_proportions : 'Conserver les proportions',  
12 -langdir : 'Sens d\'&eacute;criture',  
13 -langcode : 'Code de langue du libell&eacute;',  
14 -long_desc : 'Description du lien',  
15 -style : 'Style',  
16 -classes : 'Classes',  
17 -ltr : 'De gauche &agrave; droite',  
18 -rtl : 'De droite &agrave; gauche',  
19 -id : 'Id',  
20 -image_map : 'Image map',  
21 -swap_image : 'Image d\'&eacute;change',  
22 -alt_image : 'Image alternative',  
23 -mouseover : 'Quand le pointeur est au dessus',  
24 -mouseout : 'Quand le pointeur est en dehors',  
25 -misc : 'Divers',  
26 -example_img : 'Apparence&nbsp;pr&eacute;visualisation&nbsp;image',  
27 -missing_alt : 'Etes vous sur de vouloir continuer sans inclure une description de l\'image. Cette description est utile pour les utilisateurs ne pouvant pas afficher les images ou les ayant d&eacute;sactiv&eacute;es.'  
28 -});  
29 \ No newline at end of file 0 \ No newline at end of file
public/javascripts/tiny_mce/plugins/advimage/langs/nl.js
@@ -1,27 +0,0 @@ @@ -1,27 +0,0 @@
1 -// NL lang variables  
2 -  
3 -tinyMCE.addToLang('advimage',{  
4 -tab_general : 'Algemeen',  
5 -tab_appearance : 'Beeld',  
6 -tab_advanced : 'Geavanceerd',  
7 -general : 'Algemeen',  
8 -title : 'Titel',  
9 -preview : 'Voorbeeld',  
10 -constrain_proportions : 'Verhoudingen behouden',  
11 -langdir : 'Taalrichting',  
12 -langcode : 'Taalcode',  
13 -long_desc : 'Link naar lange omschrijving',  
14 -style : 'Stijl',  
15 -classes : 'Stijlen',  
16 -ltr : 'Links naar rechts',  
17 -rtl : 'Rechts naar links',  
18 -id : 'Id',  
19 -image_map : 'Afbeelding opdelen',  
20 -swap_image : 'Afbeelding wisselen',  
21 -alt_image : 'Alternatieve afbeelding',  
22 -mouseover : 'voor muis-over',  
23 -mouseout : 'voor muis-uit',  
24 -misc : 'Diversen',  
25 -example_img : 'Voorbeeld&nbsp;afbeelding',  
26 -missing_alt : 'Zonder een beschrijving van de afbeelding, zal de pagina voor mensen met een visuele handicap of met afbeeldingen uitgeschakeld niet toegankelijk zijn. Weet u zeker dat u wilt doorgaan zonder beschrijving?'  
27 -});  
public/javascripts/tiny_mce/plugins/advimage/langs/pt_br.js
@@ -1,36 +0,0 @@ @@ -1,36 +0,0 @@
1 -/**  
2 - * pt_br lang variables  
3 - * Brazilian Portuguese  
4 - *  
5 - * Author  
6 - * Revision and modifications:  
7 - * Marcio Barbosa (mpg) <mpg@mpg.com.br>  
8 - * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4  
9 - * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8  
10 - */  
11 -tinyMCE.addToLang('advimage',{  
12 -tab_general : 'Geral',  
13 -tab_appearance : 'Aparência',  
14 -tab_advanced : 'Avançado',  
15 -general : 'Geral',  
16 -title : 'Título',  
17 -preview : 'Visualizar (Preview)',  
18 -constrain_proportions : 'Bloquear proporções',  
19 -langdir : 'Direção da linguagem',  
20 -langcode : 'Código da linguagem',  
21 -long_desc : 'Descrição completa do link',  
22 -style : 'Estilo',  
23 -classes : 'Classes',  
24 -ltr : 'Esquerda para direita',  
25 -rtl : 'Direita para esquerda',  
26 -id : 'Id',  
27 -image_map : 'Mapa da imagem',  
28 -swap_image : 'Trocar imagem',  
29 -alt_image : 'Imagem alternativa',  
30 -mouseover : 'para o mouse sobre o link',  
31 -mouseout : 'para o mouse fora do link',  
32 -misc : 'Miscelânia',  
33 -example_img : 'Exemplo&nbsp;da&nbsp;aparência',  
34 -missing_alt : 'Não foi definida uma descrição para a imagem. Deseja continuar?\r\nSem a descrição, a imagem pode não estar acessível para alguns usuários com necessidades especiais, ou para aqueles que utilizam um navegador em modo texto ou com imagens desativadas.',  
35 -delta_width : 40  
36 -});  
public/javascripts/tiny_mce/plugins/advimage/readme.txt
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -Check the TinyMCE documentation for details on this plugin.  
public/javascripts/tiny_mce/plugins/advlink/css/advlink.css
@@ -1,35 +0,0 @@ @@ -1,35 +0,0 @@
1 -/* CSS file for advimage plugin popup */  
2 -  
3 -.mceLinkList, .mceAnchorList, #targetlist {  
4 - width: 280px;  
5 -}  
6 -  
7 -.mceActionPanel {  
8 - margin-top: 7px;  
9 -}  
10 -  
11 -.panel_wrapper div.current {  
12 - height: 320px;  
13 -}  
14 -  
15 -#classlist, #title, #href {  
16 - width: 280px;  
17 -}  
18 -  
19 -#popupurl, #popupname {  
20 - width: 200px;  
21 -}  
22 -  
23 -#popupwidth, #popupheight, #popupleft, #popuptop {  
24 - width: 30px;  
25 - vertical-align: middle;  
26 - text-align: center;  
27 -}  
28 -  
29 -#id, #style, #classes, #target, #dir, #hreflang, #lang, #charset, #type, #rel, #rev, #tabindex, #accesskey {  
30 - width: 200px;  
31 -}  
32 -  
33 -#events_panel input {  
34 - width: 200px;  
35 -}  
public/javascripts/tiny_mce/plugins/advlink/editor_plugin.js
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -tinyMCE.importPluginLanguagePack('advlink');var TinyMCE_AdvancedLinkPlugin={getInfo:function(){return{longname:'Advanced link',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){inst.addShortcut('ctrl','k','lang_advlink_desc','mceAdvLink')},getControlHTML:function(cn){switch(cn){case"link":return tinyMCE.getButtonHTML(cn,'lang_link_desc','{$themeurl}/images/link.gif','mceAdvLink')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceAdvLink":var inst=tinyMCE.getInstanceById(editor_id),anySelection=false;var focusElm=inst.getFocusElement(),selectedText=inst.selection.getSelectedText();if(tinyMCE.selectedElement)anySelection=(tinyMCE.selectedElement.nodeName.toLowerCase()=="img")||(selectedText&&selectedText.length>0);if(anySelection||(focusElm!=null&&focusElm.nodeName=="A")){tinyMCE.openWindow({file:'../../plugins/advlink/link.htm',width:480+tinyMCE.getLang('lang_advlink_delta_width',0),height:400+tinyMCE.getLang('lang_advlink_delta_height',0)},{editor_id:editor_id,inline:"yes"})}return true}return false},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){if(node==null)return;do{if(node.nodeName=="A"&&tinyMCE.getAttrib(node,'href')!=""){tinyMCE.switchClass(editor_id+'_advlink','mceButtonSelected');return true}}while((node=node.parentNode));if(any_selection){tinyMCE.switchClass(editor_id+'_advlink','mceButtonNormal');return true}tinyMCE.switchClass(editor_id+'_advlink','mceButtonDisabled');return true}};tinyMCE.addPlugin("advlink",TinyMCE_AdvancedLinkPlugin);  
2 \ No newline at end of file 0 \ No newline at end of file
public/javascripts/tiny_mce/plugins/advlink/editor_plugin_src.js
@@ -1,83 +0,0 @@ @@ -1,83 +0,0 @@
1 -/**  
2 - * $Id: editor_plugin_src.js 268 2007-04-28 15:52:59Z spocke $  
3 - *  
4 - * @author Moxiecode  
5 - * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.  
6 - */  
7 -  
8 -/* Import plugin specific language pack */  
9 -tinyMCE.importPluginLanguagePack('advlink');  
10 -  
11 -var TinyMCE_AdvancedLinkPlugin = {  
12 - getInfo : function() {  
13 - return {  
14 - longname : 'Advanced link',  
15 - author : 'Moxiecode Systems AB',  
16 - authorurl : 'http://tinymce.moxiecode.com',  
17 - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink',  
18 - version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion  
19 - };  
20 - },  
21 -  
22 - initInstance : function(inst) {  
23 - inst.addShortcut('ctrl', 'k', 'lang_advlink_desc', 'mceAdvLink');  
24 - },  
25 -  
26 - getControlHTML : function(cn) {  
27 - switch (cn) {  
28 - case "link":  
29 - return tinyMCE.getButtonHTML(cn, 'lang_link_desc', '{$themeurl}/images/link.gif', 'mceAdvLink');  
30 - }  
31 -  
32 - return "";  
33 - },  
34 -  
35 - execCommand : function(editor_id, element, command, user_interface, value) {  
36 - switch (command) {  
37 - case "mceAdvLink":  
38 - var inst = tinyMCE.getInstanceById(editor_id), anySelection = false;  
39 - var focusElm = inst.getFocusElement(), selectedText = inst.selection.getSelectedText();  
40 -  
41 - if (tinyMCE.selectedElement)  
42 - anySelection = (tinyMCE.selectedElement.nodeName.toLowerCase() == "img") || (selectedText && selectedText.length > 0);  
43 -  
44 - if (anySelection || (focusElm != null && focusElm.nodeName == "A")) {  
45 - tinyMCE.openWindow({  
46 - file : '../../plugins/advlink/link.htm',  
47 - width : 480 + tinyMCE.getLang('lang_advlink_delta_width', 0),  
48 - height : 400 + tinyMCE.getLang('lang_advlink_delta_height', 0)  
49 - }, {  
50 - editor_id : editor_id,  
51 - inline : "yes"  
52 - });  
53 - }  
54 -  
55 - return true;  
56 - }  
57 -  
58 - return false;  
59 - },  
60 -  
61 - handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {  
62 - if (node == null)  
63 - return;  
64 -  
65 - do {  
66 - if (node.nodeName == "A" && tinyMCE.getAttrib(node, 'href') != "") {  
67 - tinyMCE.switchClass(editor_id + '_advlink', 'mceButtonSelected');  
68 - return true;  
69 - }  
70 - } while ((node = node.parentNode));  
71 -  
72 - if (any_selection) {  
73 - tinyMCE.switchClass(editor_id + '_advlink', 'mceButtonNormal');  
74 - return true;  
75 - }  
76 -  
77 - tinyMCE.switchClass(editor_id + '_advlink', 'mceButtonDisabled');  
78 -  
79 - return true;  
80 - }  
81 -};  
82 -  
83 -tinyMCE.addPlugin("advlink", TinyMCE_AdvancedLinkPlugin);  
public/javascripts/tiny_mce/plugins/advlink/jscripts/functions.js
@@ -1,587 +0,0 @@ @@ -1,587 +0,0 @@
1 -/* Functions for the advlink plugin popup */  
2 -  
3 -var templates = {  
4 - "window.open" : "window.open('${url}','${target}','${options}')"  
5 -};  
6 -  
7 -function preinit() {  
8 - // Initialize  
9 - tinyMCE.setWindowArg('mce_windowresize', false);  
10 -  
11 - // Import external list url javascript  
12 - var url = tinyMCE.getParam("external_link_list_url");  
13 - if (url != null) {  
14 - // Fix relative  
15 - if (url.charAt(0) != '/' && url.indexOf('://') == -1)  
16 - url = tinyMCE.documentBasePath + "/" + url;  
17 -  
18 - document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');  
19 - }  
20 -}  
21 -  
22 -function changeClass() {  
23 - var formObj = document.forms[0];  
24 - formObj.classes.value = getSelectValue(formObj, 'classlist');  
25 -}  
26 -  
27 -function init() {  
28 - tinyMCEPopup.resizeToInnerSize();  
29 -  
30 - var formObj = document.forms[0];  
31 - var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));  
32 - var elm = inst.getFocusElement();  
33 - var action = "insert";  
34 - var html;  
35 -  
36 - document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser','href','file','advlink');  
37 - document.getElementById('popupurlbrowsercontainer').innerHTML = getBrowserHTML('popupurlbrowser','popupurl','file','advlink');  
38 - document.getElementById('linklisthrefcontainer').innerHTML = getLinkListHTML('linklisthref','href');  
39 - document.getElementById('anchorlistcontainer').innerHTML = getAnchorListHTML('anchorlist','href');  
40 - document.getElementById('targetlistcontainer').innerHTML = getTargetListHTML('targetlist','target');  
41 -  
42 - // Link list  
43 - html = getLinkListHTML('linklisthref','href');  
44 - if (html == "")  
45 - document.getElementById("linklisthrefrow").style.display = 'none';  
46 - else  
47 - document.getElementById("linklisthrefcontainer").innerHTML = html;  
48 -  
49 - // Resize some elements  
50 - if (isVisible('hrefbrowser'))  
51 - document.getElementById('href').style.width = '260px';  
52 -  
53 - if (isVisible('popupurlbrowser'))  
54 - document.getElementById('popupurl').style.width = '180px';  
55 -  
56 - elm = tinyMCE.getParentElement(elm, "a");  
57 - if (elm != null && elm.nodeName == "A")  
58 - action = "update";  
59 -  
60 - formObj.insert.value = tinyMCE.getLang('lang_' + action, 'Insert', true);  
61 -  
62 - setPopupControlsDisabled(true);  
63 -  
64 - if (action == "update") {  
65 - var href = tinyMCE.getAttrib(elm, 'href');  
66 -  
67 - href = convertURL(href, elm, true);  
68 -  
69 - // Use mce_href if found  
70 - var mceRealHref = tinyMCE.getAttrib(elm, 'mce_href');  
71 - if (mceRealHref != "") {  
72 - href = mceRealHref;  
73 -  
74 - if (tinyMCE.getParam('convert_urls'))  
75 - href = convertURL(href, elm, true);  
76 - }  
77 -  
78 - var onclick = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onclick'));  
79 -  
80 - // Setup form data  
81 - setFormValue('href', href);  
82 - setFormValue('title', tinyMCE.getAttrib(elm, 'title'));  
83 - setFormValue('id', tinyMCE.getAttrib(elm, 'id'));  
84 - setFormValue('style', tinyMCE.serializeStyle(tinyMCE.parseStyle(tinyMCE.getAttrib(elm, "style"))));  
85 - setFormValue('rel', tinyMCE.getAttrib(elm, 'rel'));  
86 - setFormValue('rev', tinyMCE.getAttrib(elm, 'rev'));  
87 - setFormValue('charset', tinyMCE.getAttrib(elm, 'charset'));  
88 - setFormValue('hreflang', tinyMCE.getAttrib(elm, 'hreflang'));  
89 - setFormValue('dir', tinyMCE.getAttrib(elm, 'dir'));  
90 - setFormValue('lang', tinyMCE.getAttrib(elm, 'lang'));  
91 - setFormValue('tabindex', tinyMCE.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : ""));  
92 - setFormValue('accesskey', tinyMCE.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : ""));  
93 - setFormValue('type', tinyMCE.getAttrib(elm, 'type'));  
94 - setFormValue('onfocus', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onfocus')));  
95 - setFormValue('onblur', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onblur')));  
96 - setFormValue('onclick', onclick);  
97 - setFormValue('ondblclick', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'ondblclick')));  
98 - setFormValue('onmousedown', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmousedown')));  
99 - setFormValue('onmouseup', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseup')));  
100 - setFormValue('onmouseover', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseover')));  
101 - setFormValue('onmousemove', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmousemove')));  
102 - setFormValue('onmouseout', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseout')));  
103 - setFormValue('onkeypress', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onkeypress')));  
104 - setFormValue('onkeydown', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onkeydown')));  
105 - setFormValue('onkeyup', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onkeyup')));  
106 - setFormValue('target', tinyMCE.getAttrib(elm, 'target'));  
107 - setFormValue('classes', tinyMCE.getAttrib(elm, 'class'));  
108 -  
109 - // Parse onclick data  
110 - if (onclick != null && onclick.indexOf('window.open') != -1)  
111 - parseWindowOpen(onclick);  
112 - else  
113 - parseFunction(onclick);  
114 -  
115 - // Select by the values  
116 - selectByValue(formObj, 'dir', tinyMCE.getAttrib(elm, 'dir'));  
117 - selectByValue(formObj, 'rel', tinyMCE.getAttrib(elm, 'rel'));  
118 - selectByValue(formObj, 'rev', tinyMCE.getAttrib(elm, 'rev'));  
119 - selectByValue(formObj, 'linklisthref', href);  
120 -  
121 - if (href.charAt(0) == '#')  
122 - selectByValue(formObj, 'anchorlist', href);  
123 -  
124 - addClassesToList('classlist', 'advlink_styles');  
125 -  
126 - selectByValue(formObj, 'classlist', tinyMCE.getAttrib(elm, 'class'), true);  
127 - selectByValue(formObj, 'targetlist', tinyMCE.getAttrib(elm, 'target'), true);  
128 - } else  
129 - addClassesToList('classlist', 'advlink_styles');  
130 -  
131 - window.focus();  
132 -}  
133 -  
134 -function checkPrefix(n) {  
135 - if (!Validator.isEmpty(n) && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCE.getLang('lang_is_email')))  
136 - n.value = 'mailto:' + n.value;  
137 -  
138 - if (/^\s*www./i.test(n.value) && confirm(tinyMCE.getLang('lang_is_external')))  
139 - n.value = 'http://' + n.value;  
140 -}  
141 -  
142 -function setFormValue(name, value) {  
143 - document.forms[0].elements[name].value = value;  
144 -}  
145 -  
146 -function convertURL(url, node, on_save) {  
147 - return eval("tinyMCEPopup.windowOpener." + tinyMCE.settings['urlconverter_callback'] + "(url, node, on_save);");  
148 -}  
149 -  
150 -function parseWindowOpen(onclick) {  
151 - var formObj = document.forms[0];  
152 -  
153 - // Preprocess center code  
154 - if (onclick.indexOf('return false;') != -1) {  
155 - formObj.popupreturn.checked = true;  
156 - onclick = onclick.replace('return false;', '');  
157 - } else  
158 - formObj.popupreturn.checked = false;  
159 -  
160 - var onClickData = parseLink(onclick);  
161 -  
162 - if (onClickData != null) {  
163 - formObj.ispopup.checked = true;  
164 - setPopupControlsDisabled(false);  
165 -  
166 - var onClickWindowOptions = parseOptions(onClickData['options']);  
167 - var url = onClickData['url'];  
168 -  
169 - if (tinyMCE.getParam('convert_urls'))  
170 - url = convertURL(url, null, true);  
171 -  
172 - formObj.popupname.value = onClickData['target'];  
173 - formObj.popupurl.value = url;  
174 - formObj.popupwidth.value = getOption(onClickWindowOptions, 'width');  
175 - formObj.popupheight.value = getOption(onClickWindowOptions, 'height');  
176 -  
177 - formObj.popupleft.value = getOption(onClickWindowOptions, 'left');  
178 - formObj.popuptop.value = getOption(onClickWindowOptions, 'top');  
179 -  
180 - if (formObj.popupleft.value.indexOf('screen') != -1)  
181 - formObj.popupleft.value = "c";  
182 -  
183 - if (formObj.popuptop.value.indexOf('screen') != -1)  
184 - formObj.popuptop.value = "c";  
185 -  
186 - formObj.popuplocation.checked = getOption(onClickWindowOptions, 'location') == "yes";  
187 - formObj.popupscrollbars.checked = getOption(onClickWindowOptions, 'scrollbars') == "yes";  
188 - formObj.popupmenubar.checked = getOption(onClickWindowOptions, 'menubar') == "yes";  
189 - formObj.popupresizable.checked = getOption(onClickWindowOptions, 'resizable') == "yes";  
190 - formObj.popuptoolbar.checked = getOption(onClickWindowOptions, 'toolbar') == "yes";  
191 - formObj.popupstatus.checked = getOption(onClickWindowOptions, 'status') == "yes";  
192 - formObj.popupdependent.checked = getOption(onClickWindowOptions, 'dependent') == "yes";  
193 -  
194 - buildOnClick();  
195 - }  
196 -}  
197 -  
198 -function parseFunction(onclick) {  
199 - var formObj = document.forms[0];  
200 - var onClickData = parseLink(onclick);  
201 -  
202 - // TODO: Add stuff here  
203 -}  
204 -  
205 -function getOption(opts, name) {  
206 - return typeof(opts[name]) == "undefined" ? "" : opts[name];  
207 -}  
208 -  
209 -function setPopupControlsDisabled(state) {  
210 - var formObj = document.forms[0];  
211 -  
212 - formObj.popupname.disabled = state;  
213 - formObj.popupurl.disabled = state;  
214 - formObj.popupwidth.disabled = state;  
215 - formObj.popupheight.disabled = state;  
216 - formObj.popupleft.disabled = state;  
217 - formObj.popuptop.disabled = state;  
218 - formObj.popuplocation.disabled = state;  
219 - formObj.popupscrollbars.disabled = state;  
220 - formObj.popupmenubar.disabled = state;  
221 - formObj.popupresizable.disabled = state;  
222 - formObj.popuptoolbar.disabled = state;  
223 - formObj.popupstatus.disabled = state;  
224 - formObj.popupreturn.disabled = state;  
225 - formObj.popupdependent.disabled = state;  
226 -  
227 - setBrowserDisabled('popupurlbrowser', state);  
228 -}  
229 -  
230 -function parseLink(link) {  
231 - link = link.replace(new RegExp('&#39;', 'g'), "'");  
232 -  
233 - var fnName = link.replace(new RegExp("\\s*([A-Za-z0-9\.]*)\\s*\\(.*", "gi"), "$1");  
234 -  
235 - // Is function name a template function  
236 - var template = templates[fnName];  
237 - if (template) {  
238 - // Build regexp  
239 - var variableNames = template.match(new RegExp("'?\\$\\{[A-Za-z0-9\.]*\\}'?", "gi"));  
240 - var regExp = "\\s*[A-Za-z0-9\.]*\\s*\\(";  
241 - var replaceStr = "";  
242 - for (var i=0; i<variableNames.length; i++) {  
243 - // Is string value  
244 - if (variableNames[i].indexOf("'${") != -1)  
245 - regExp += "'(.*)'";  
246 - else // Number value  
247 - regExp += "([0-9]*)";  
248 -  
249 - replaceStr += "$" + (i+1);  
250 -  
251 - // Cleanup variable name  
252 - variableNames[i] = variableNames[i].replace(new RegExp("[^A-Za-z0-9]", "gi"), "");  
253 -  
254 - if (i != variableNames.length-1) {  
255 - regExp += "\\s*,\\s*";  
256 - replaceStr += "<delim>";  
257 - } else  
258 - regExp += ".*";  
259 - }  
260 -  
261 - regExp += "\\);?";  
262 -  
263 - // Build variable array  
264 - var variables = new Array();  
265 - variables["_function"] = fnName;  
266 - var variableValues = link.replace(new RegExp(regExp, "gi"), replaceStr).split('<delim>');  
267 - for (var i=0; i<variableNames.length; i++)  
268 - variables[variableNames[i]] = variableValues[i];  
269 -  
270 - return variables;  
271 - }  
272 -  
273 - return null;  
274 -}  
275 -  
276 -function parseOptions(opts) {  
277 - if (opts == null || opts == "")  
278 - return new Array();  
279 -  
280 - // Cleanup the options  
281 - opts = opts.toLowerCase();  
282 - opts = opts.replace(/;/g, ",");  
283 - opts = opts.replace(/[^0-9a-z=,]/g, "");  
284 -  
285 - var optionChunks = opts.split(',');  
286 - var options = new Array();  
287 -  
288 - for (var i=0; i<optionChunks.length; i++) {  
289 - var parts = optionChunks[i].split('=');  
290 -  
291 - if (parts.length == 2)  
292 - options[parts[0]] = parts[1];  
293 - }  
294 -  
295 - return options;  
296 -}  
297 -  
298 -function buildOnClick() {  
299 - var formObj = document.forms[0];  
300 -  
301 - if (!formObj.ispopup.checked) {  
302 - formObj.onclick.value = "";  
303 - return;  
304 - }  
305 -  
306 - var onclick = "window.open('";  
307 - var url = formObj.popupurl.value;  
308 -  
309 - if (tinyMCE.getParam('convert_urls'))  
310 - url = convertURL(url, null, true);  
311 -  
312 - onclick += url + "','";  
313 - onclick += formObj.popupname.value + "','";  
314 -  
315 - if (formObj.popuplocation.checked)  
316 - onclick += "location=yes,";  
317 -  
318 - if (formObj.popupscrollbars.checked)  
319 - onclick += "scrollbars=yes,";  
320 -  
321 - if (formObj.popupmenubar.checked)  
322 - onclick += "menubar=yes,";  
323 -  
324 - if (formObj.popupresizable.checked)  
325 - onclick += "resizable=yes,";  
326 -  
327 - if (formObj.popuptoolbar.checked)  
328 - onclick += "toolbar=yes,";  
329 -  
330 - if (formObj.popupstatus.checked)  
331 - onclick += "status=yes,";  
332 -  
333 - if (formObj.popupdependent.checked)  
334 - onclick += "dependent=yes,";  
335 -  
336 - if (formObj.popupwidth.value != "")  
337 - onclick += "width=" + formObj.popupwidth.value + ",";  
338 -  
339 - if (formObj.popupheight.value != "")  
340 - onclick += "height=" + formObj.popupheight.value + ",";  
341 -  
342 - if (formObj.popupleft.value != "") {  
343 - if (formObj.popupleft.value != "c")  
344 - onclick += "left=" + formObj.popupleft.value + ",";  
345 - else  
346 - onclick += "left='+(screen.availWidth/2-" + (formObj.popupwidth.value/2) + ")+',";  
347 - }  
348 -  
349 - if (formObj.popuptop.value != "") {  
350 - if (formObj.popuptop.value != "c")  
351 - onclick += "top=" + formObj.popuptop.value + ",";  
352 - else  
353 - onclick += "top='+(screen.availHeight/2-" + (formObj.popupheight.value/2) + ")+',";  
354 - }  
355 -  
356 - if (onclick.charAt(onclick.length-1) == ',')  
357 - onclick = onclick.substring(0, onclick.length-1);  
358 -  
359 - onclick += "');";  
360 -  
361 - if (formObj.popupreturn.checked)  
362 - onclick += "return false;";  
363 -  
364 - // tinyMCE.debug(onclick);  
365 -  
366 - formObj.onclick.value = onclick;  
367 -  
368 - if (formObj.href.value == "")  
369 - formObj.href.value = url;  
370 -}  
371 -  
372 -function setAttrib(elm, attrib, value) {  
373 - var formObj = document.forms[0];  
374 - var valueElm = formObj.elements[attrib.toLowerCase()];  
375 -  
376 - if (typeof(value) == "undefined" || value == null) {  
377 - value = "";  
378 -  
379 - if (valueElm)  
380 - value = valueElm.value;  
381 - }  
382 -  
383 - if (value != "") {  
384 - elm.setAttribute(attrib.toLowerCase(), value);  
385 -  
386 - if (attrib == "style")  
387 - attrib = "style.cssText";  
388 -  
389 - if (attrib.substring(0, 2) == 'on')  
390 - value = 'return true;' + value;  
391 -  
392 - if (attrib == "class")  
393 - attrib = "className";  
394 -  
395 - eval('elm.' + attrib + "=value;");  
396 - } else  
397 - elm.removeAttribute(attrib);  
398 -}  
399 -  
400 -function getAnchorListHTML(id, target) {  
401 - var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));  
402 - var nodes = inst.getBody().getElementsByTagName("a"), name, i;  
403 - var html = "";  
404 -  
405 - html += '<select id="' + id + '" name="' + id + '" class="mceAnchorList" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target + '.value=';  
406 - html += 'this.options[this.selectedIndex].value;">';  
407 - html += '<option value="">---</option>';  
408 -  
409 - for (i=0; i<nodes.length; i++) {  
410 - if ((name = tinyMCE.getAttrib(nodes[i], "name")) != "")  
411 - html += '<option value="#' + name + '">' + name + '</option>';  
412 - }  
413 -  
414 - html += '</select>';  
415 -  
416 - return html;  
417 -}  
418 -  
419 -function insertAction() {  
420 - var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));  
421 - var elm = inst.getFocusElement();  
422 -  
423 - checkPrefix(document.forms[0].href);  
424 -  
425 - elm = tinyMCE.getParentElement(elm, "a");  
426 -  
427 - tinyMCEPopup.execCommand("mceBeginUndoLevel");  
428 -  
429 - // Create new anchor elements  
430 - if (elm == null) {  
431 - if (tinyMCE.isSafari)  
432 - tinyMCEPopup.execCommand("mceInsertContent", false, '<a href="#mce_temp_url#">' + inst.selection.getSelectedHTML() + '</a>');  
433 - else  
434 - tinyMCEPopup.execCommand("createlink", false, "#mce_temp_url#");  
435 -  
436 - var elementArray = tinyMCE.getElementsByAttributeValue(inst.getBody(), "a", "href", "#mce_temp_url#");  
437 - for (var i=0; i<elementArray.length; i++) {  
438 - var elm = elementArray[i];  
439 -  
440 - // Move cursor to end  
441 - try {  
442 - tinyMCE.selectedInstance.selection.collapse(false);  
443 - } catch (ex) {  
444 - // Ignore  
445 - }  
446 -  
447 - // Move cursor behind the new anchor  
448 - // Don't remember why this was needed so it's now removed  
449 - /*  
450 - if (tinyMCE.isGecko) {  
451 - var sp = inst.getDoc().createTextNode(" ");  
452 -  
453 - if (elm.nextSibling)  
454 - elm.parentNode.insertBefore(sp, elm.nextSibling);  
455 - else  
456 - elm.parentNode.appendChild(sp);  
457 -  
458 - // Set range after link  
459 - var rng = inst.getDoc().createRange();  
460 - rng.setStartAfter(elm);  
461 - rng.setEndAfter(elm);  
462 -  
463 - // Update selection  
464 - var sel = inst.getSel();  
465 - sel.removeAllRanges();  
466 - sel.addRange(rng);  
467 - }  
468 - */  
469 -  
470 - setAllAttribs(elm);  
471 - }  
472 - } else  
473 - setAllAttribs(elm);  
474 -  
475 - tinyMCE._setEventsEnabled(inst.getBody(), false);  
476 - tinyMCEPopup.execCommand("mceEndUndoLevel");  
477 - tinyMCEPopup.close();  
478 -}  
479 -  
480 -function setAllAttribs(elm) {  
481 - var formObj = document.forms[0];  
482 - var href = formObj.href.value;  
483 - var target = getSelectValue(formObj, 'targetlist');  
484 -  
485 - // Make anchors absolute  
486 - if (href.charAt(0) != '#' && tinyMCE.getParam('convert_urls'))  
487 - href = convertURL(href, elm);  
488 -  
489 - setAttrib(elm, 'href', href);  
490 - setAttrib(elm, 'mce_href', href);  
491 - setAttrib(elm, 'title');  
492 - setAttrib(elm, 'target', target == '_self' ? '' : target);  
493 - setAttrib(elm, 'id');  
494 - setAttrib(elm, 'style');  
495 - setAttrib(elm, 'class', getSelectValue(formObj, 'classlist'));  
496 - setAttrib(elm, 'rel');  
497 - setAttrib(elm, 'rev');  
498 - setAttrib(elm, 'charset');  
499 - setAttrib(elm, 'hreflang');  
500 - setAttrib(elm, 'dir');  
501 - setAttrib(elm, 'lang');  
502 - setAttrib(elm, 'tabindex');  
503 - setAttrib(elm, 'accesskey');  
504 - setAttrib(elm, 'type');  
505 - setAttrib(elm, 'onfocus');  
506 - setAttrib(elm, 'onblur');  
507 - setAttrib(elm, 'onclick');  
508 - setAttrib(elm, 'ondblclick');  
509 - setAttrib(elm, 'onmousedown');  
510 - setAttrib(elm, 'onmouseup');  
511 - setAttrib(elm, 'onmouseover');  
512 - setAttrib(elm, 'onmousemove');  
513 - setAttrib(elm, 'onmouseout');  
514 - setAttrib(elm, 'onkeypress');  
515 - setAttrib(elm, 'onkeydown');  
516 - setAttrib(elm, 'onkeyup');  
517 -  
518 - // Refresh in old MSIE  
519 - if (tinyMCE.isMSIE5)  
520 - elm.outerHTML = elm.outerHTML;  
521 -}  
522 -  
523 -function getSelectValue(form_obj, field_name) {  
524 - var elm = form_obj.elements[field_name];  
525 -  
526 - if (elm == null || elm.options == null)  
527 - return "";  
528 -  
529 - return elm.options[elm.selectedIndex].value;  
530 -}  
531 -  
532 -function getLinkListHTML(elm_id, target_form_element, onchange_func) {  
533 - if (typeof(tinyMCELinkList) == "undefined" || tinyMCELinkList.length == 0)  
534 - return "";  
535 -  
536 - var html = "";  
537 -  
538 - html += '<select id="' + elm_id + '" name="' + elm_id + '"';  
539 - html += ' class="mceLinkList" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';  
540 - html += 'this.options[this.selectedIndex].value;';  
541 -  
542 - if (typeof(onchange_func) != "undefined")  
543 - html += onchange_func + '(\'' + target_form_element + '\',this.options[this.selectedIndex].text,this.options[this.selectedIndex].value);';  
544 -  
545 - html += '"><option value="">---</option>';  
546 -  
547 - for (var i=0; i<tinyMCELinkList.length; i++)  
548 - html += '<option value="' + tinyMCELinkList[i][1] + '">' + tinyMCELinkList[i][0] + '</option>';  
549 -  
550 - html += '</select>';  
551 -  
552 - return html;  
553 -  
554 - // tinyMCE.debug('-- image list start --', html, '-- image list end --');  
555 -}  
556 -  
557 -function getTargetListHTML(elm_id, target_form_element) {  
558 - var targets = tinyMCE.getParam('theme_advanced_link_targets', '').split(';');  
559 - var html = '';  
560 -  
561 - html += '<select id="' + elm_id + '" name="' + elm_id + '" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';  
562 - html += 'this.options[this.selectedIndex].value;">';  
563 -  
564 - html += '<option value="_self">' + tinyMCE.getLang('lang_advlink_target_same') + '</option>';  
565 - html += '<option value="_blank">' + tinyMCE.getLang('lang_advlink_target_blank') + ' (_blank)</option>';  
566 - html += '<option value="_parent">' + tinyMCE.getLang('lang_advlink_target_parent') + ' (_parent)</option>';  
567 - html += '<option value="_top">' + tinyMCE.getLang('lang_advlink_target_top') + ' (_top)</option>';  
568 -  
569 - for (var i=0; i<targets.length; i++) {  
570 - var key, value;  
571 -  
572 - if (targets[i] == "")  
573 - continue;  
574 -  
575 - key = targets[i].split('=')[0];  
576 - value = targets[i].split('=')[1];  
577 -  
578 - html += '<option value="' + key + '">' + value + ' (' + key + ')</option>';  
579 - }  
580 -  
581 - html += '</select>';  
582 -  
583 - return html;  
584 -}  
585 -  
586 -// While loading  
587 -preinit();  
public/javascripts/tiny_mce/plugins/advlink/langs/de.js
@@ -1,46 +0,0 @@ @@ -1,46 +0,0 @@
1 -// DE lang variables  
2 -  
3 -tinyMCE.addToLang('advlink',{  
4 -general_tab : 'Allgemein',  
5 -popup_tab : 'Popup',  
6 -events_tab : 'Events',  
7 -advanced_tab : 'Erweitert',  
8 -general_props : 'Allgemeine Eigenschaften',  
9 -popup_props : 'Popup-Eigenschaften',  
10 -event_props : 'Javascript-Events',  
11 -advanced_props : 'Erweiterte Eigenschaften',  
12 -popup_opts : 'Optionen',  
13 -anchor_names : 'Anker',  
14 -target_same : 'In diesem Fenster/Frame &ouml;ffnen (_self)',  
15 -target_parent : 'Im &uuml;bergeordneten Fenster/Frame &ouml;ffnen (_parent)',  
16 -target_top : 'Im Fenster &ouml;ffnen (ersetzt alle Frames) (_top)',  
17 -target_blank : '_blank - In neuem Fenster &ouml;ffnen',  
18 -popup : 'Javascript-Popup',  
19 -popup_url : 'Popup-URL',  
20 -popup_name : 'Popup-Name',  
21 -popup_return : 'Mit \'return false\' einf&uuml;gen',  
22 -popup_scrollbars : 'Scrollleisten anzeigen',  
23 -popup_statusbar : 'Statuszeilen anzeigen',  
24 -popup_toolbar : 'Werkzeugleisten anzeigen',  
25 -popup_menubar : 'Men&uuml;leiste anzeigen',  
26 -popup_location : 'Adresszeile anzeigen',  
27 -popup_resizable : 'Fenstergr&ouml;&szlig;e ver&auml;nderbar',  
28 -popup_dependent : 'Abh&auml;ngiges Fenster (Nur Mozilla/Firefox)',  
29 -popup_size : 'Gr&ouml;&szlig;e',  
30 -popup_position : 'Position (X/Y)',  
31 -id : 'ID',  
32 -style: 'CSS-Stil',  
33 -classes : 'CSS-Klassen',  
34 -target_name : 'Zielname',  
35 -langdir : 'Textfluss',  
36 -target_langcode : 'Zielsprache',  
37 -langcode : 'Sprach-Code',  
38 -encoding : 'Zeichenkodierung',  
39 -mime : 'MIME-Typ',  
40 -rel : 'Verh&auml;ltnis Seite zu Ziel',  
41 -rev : 'Verh&auml;ltnis Ziel zu Seite',  
42 -tabindex : 'Tabulator-Index',  
43 -accesskey : 'Tastaturk&uuml;rzel',  
44 -ltr : 'Von links nach rechts',  
45 -rtl : 'Von rechts nach links'  
46 -});  
public/javascripts/tiny_mce/plugins/advlink/langs/en.js
@@ -1,46 +0,0 @@ @@ -1,46 +0,0 @@
1 -// UK lang variables  
2 -  
3 -tinyMCE.addToLang('advlink',{  
4 -general_tab : 'General',  
5 -popup_tab : 'Popup',  
6 -events_tab : 'Events',  
7 -advanced_tab : 'Advanced',  
8 -general_props : 'General properties',  
9 -popup_props : 'Popup properties',  
10 -event_props : 'Events',  
11 -advanced_props : 'Advanced properties',  
12 -popup_opts : 'Options',  
13 -anchor_names : 'Anchors',  
14 -target_same : 'Open in this window / frame',  
15 -target_parent : 'Open in parent window / frame',  
16 -target_top : 'Open in top frame (replaces all frames)',  
17 -target_blank : 'Open in new window',  
18 -popup : 'Javascript popup',  
19 -popup_url : 'Popup URL',  
20 -popup_name : 'Window name',  
21 -popup_return : 'Insert \'return false\'',  
22 -popup_scrollbars : 'Show scrollbars',  
23 -popup_statusbar : 'Show status bar',  
24 -popup_toolbar : 'Show toolbars',  
25 -popup_menubar : 'Show menu bar',  
26 -popup_location : 'Show location bar',  
27 -popup_resizable : 'Make window resizable',  
28 -popup_dependent : 'Dependent (Mozilla/Firefox only)',  
29 -popup_size : 'Size',  
30 -popup_position : 'Position (X/Y)',  
31 -id : 'Id',  
32 -style: 'Style',  
33 -classes : 'Classes',  
34 -target_name : 'Target name',  
35 -langdir : 'Language direction',  
36 -target_langcode : 'Target language',  
37 -langcode : 'Language code',  
38 -encoding : 'Target character encoding',  
39 -mime : 'Target MIME type',  
40 -rel : 'Relationship page to target',  
41 -rev : 'Relationship target to page',  
42 -tabindex : 'Tabindex',  
43 -accesskey : 'Accesskey',  
44 -ltr : 'Left to right',  
45 -rtl : 'Right to left'  
46 -});  
47 \ No newline at end of file 0 \ No newline at end of file
public/javascripts/tiny_mce/plugins/advlink/langs/fr.js
@@ -1,48 +0,0 @@ @@ -1,48 +0,0 @@
1 -// FR lang variables  
2 -// Modified by Motte, last updated 2006-03-23  
3 -  
4 -tinyMCE.addToLang('advlink',{  
5 -popup_missingtarget : 'Veuillez ins&eacute;rer un nom pour la cible ou choisissez une autre option.',  
6 -general_tab : 'G&eacute;n&eacute;ral',  
7 -popup_tab : 'Popup',  
8 -events_tab : 'Ev&ecirc;nements',  
9 -advanced_tab : 'Avanc&eacute;',  
10 -general_props : 'Propri&eacute;t&eacute;s g&eacute;n&eacute;rales',  
11 -popup_props : 'Propri&eacute;t&eacute;s Popup',  
12 -event_props : 'Ev&ecirc;nements',  
13 -advanced_props : 'Propri&eacute;t&eacute;s Avanc&eacute;es',  
14 -popup_opts : 'Options',  
15 -anchor_names : 'Ancres',  
16 -target_same : 'Ouvre dans la m&ecirc;me fen&ecirc;tre / Cadre',  
17 -target_parent : 'Ouvre dans la fen&ecirc;tre / cadre parente',  
18 -target_top : 'Ouvre dans le Top frame (remplace toutes les cadres)',  
19 -target_blank : 'Ouvre dans une nouvelle fen&ecirc;tre',  
20 -popup : 'JS-Popup',  
21 -popup_url : 'URL de la Popup',  
22 -popup_name : 'Nom de la fen&ecirc;tre',  
23 -popup_return : 'Insert \'return false\'',  
24 -popup_scrollbars : 'Montrer la barre de d&eacute;filement ',  
25 -popup_statusbar : 'Montrer la barre d\'&eacute;tat',  
26 -popup_toolbar : 'Montrer la barre d\'outils',  
27 -popup_menubar : 'Montrer la barre du menu',  
28 -popup_location : 'Montre la barre d\'adresse',  
29 -popup_resizable : 'Fabriquer une fen&ecirc;tre redimensionnable',  
30 -popup_dependent : 'Dependent (Mozilla/Firefox only)',  
31 -popup_size : 'Taille',  
32 -popup_position : 'Position (X/Y)',  
33 -id : 'Id',  
34 -style: 'Style',  
35 -classes : 'Classes',  
36 -target_name : 'Nom de la cible',  
37 -langdir : 'Sens d\'&eacute;criture',  
38 -target_langcode : 'Langage cible',  
39 -langcode : 'Code langue',  
40 -encoding : 'Codage caract&egrave;res de la cible',  
41 -mime : 'Type MIME de la cible',  
42 -rel : 'Page relative &agrave; la cible',  
43 -rev : 'Cible relative &agrave; la page',  
44 -tabindex : 'Tabindex',  
45 -accesskey : 'Touche d\'acc&egrave;s',  
46 -ltr : 'De gauche &agrave; droite',  
47 -rtl : 'De droite &agrave; gauche'  
48 -});  
public/javascripts/tiny_mce/plugins/advlink/langs/nl.js
@@ -1,46 +0,0 @@ @@ -1,46 +0,0 @@
1 -// NL lang variables  
2 -  
3 -tinyMCE.addToLang('advlink',{  
4 -general_tab : 'Algemeen',  
5 -popup_tab : 'Popup',  
6 -events_tab : 'Gebeurtenissen',  
7 -advanced_tab : 'Geavanceerd',  
8 -general_props : 'Algemene eigenschappen',  
9 -popup_props : 'Popup eigenschappen',  
10 -event_props : 'Gebeurtenissen',  
11 -advanced_props : 'Geavanceerde eigenschappen',  
12 -popup_opts : 'Opties',  
13 -anchor_names : 'Bladwijzers',  
14 -target_same : 'Openen in dit venster/frame',  
15 -target_parent : 'Openen in hgerliggend frame',  
16 -target_top : 'Openen in bovenste frame (vervangt alle frames)',  
17 -target_blank : 'Openen in nieuw venster',  
18 -popup : 'Javascript popup',  
19 -popup_url : 'Popup URL',  
20 -popup_name : 'Vensternaam',  
21 -popup_return : 'Voeg \'return false\' toe',  
22 -popup_scrollbars : 'Toon scrollbalken',  
23 -popup_statusbar : 'Toon statusbalk',  
24 -popup_toolbar : 'Toon werkbalk',  
25 -popup_menubar : 'Toon menubalk',  
26 -popup_location : 'Toon adresbalk',  
27 -popup_resizable : 'Maak venster schaalbaar',  
28 -popup_dependent : 'Afhankelijk (Mozilla/Firefox only)',  
29 -popup_size : 'Afmetingen',  
30 -popup_position : 'Positie (x/y)',  
31 -id : 'Id',  
32 -style: 'Stijl',  
33 -classes : 'Stijlen',  
34 -target_name : 'Naam doelframe',  
35 -langdir : 'Taalrichting',  
36 -target_langcode : 'Taal van doel',  
37 -langcode : 'Taalcode',  
38 -encoding : 'Doel character encoding',  
39 -mime : 'Doel MIME type',  
40 -rel : 'Relatie van pagina tot doel',  
41 -rev : 'Relatie van doel tot pagina',  
42 -tabindex : 'Tabindex',  
43 -accesskey : 'Toegangstoets',  
44 -ltr : 'Links naar rechts',  
45 -rtl : 'Rechts naar links'  
46 -});  
public/javascripts/tiny_mce/plugins/advlink/langs/pt_br.js
@@ -1,54 +0,0 @@ @@ -1,54 +0,0 @@
1 -/**  
2 - * pt_br lang variables  
3 - * Brazilian Portuguese  
4 - *  
5 - * Author  
6 - * Revision and modifications:  
7 - * Marcio Barbosa (mpg) <mpg@mpg.com.br>  
8 - * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4  
9 - * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8  
10 - */  
11 -tinyMCE.addToLang('advlink',{  
12 -general_tab : 'Geral',  
13 -popup_tab : 'Popup',  
14 -events_tab : 'Eventos',  
15 -advanced_tab : 'Avançado',  
16 -general_props : 'Propriedades gerais',  
17 -popup_props : 'Propriedades do popup',  
18 -event_props : 'Eventos',  
19 -advanced_props : 'Propriedades avançadas',  
20 -popup_opts : 'Opções',  
21 -anchor_names : 'âncoras',  
22 -target_same : 'Abrir nesta janela/frame',  
23 -target_parent : 'Abrir na janela/frame',  
24 -target_top : 'Abrir na janela superior (repondo todas as frames)',  
25 -target_blank : 'Abrir em uma nova janela',  
26 -popup : 'Javascript popup',  
27 -popup_url : 'Popup de uma URL',  
28 -popup_name : 'Nome da janela',  
29 -popup_return : 'Inserir \'retorna falso\'',  
30 -popup_scrollbars : 'Mostrar barra de rolagem',  
31 -popup_statusbar : 'Mostrar barra de status',  
32 -popup_toolbar : 'Mostrar barra de ferramentas',  
33 -popup_menubar : 'Mostrar barra do menu',  
34 -popup_location : 'Mostrar barra de endereço',  
35 -popup_resizable : 'Permite redimensionamento da janela',  
36 -popup_dependent : 'Dependente (somente para Mozilla/Firefox)',  
37 -popup_size : 'Tamanho',  
38 -popup_position : 'Posição (X/Y)',  
39 -id : 'Id',  
40 -style: 'Estilo',  
41 -classes : 'Classes',  
42 -target_name : 'Nome do destino',  
43 -langdir : 'Direção do texto',  
44 -target_langcode : 'Idioma do destino',  
45 -langcode : 'Código do idioma',  
46 -encoding : 'Tipo de codifição de caractere de destino',  
47 -mime : 'Tipo de MIME do destino',  
48 -rel : 'Relacionamento da página com o destino',  
49 -rev : 'Relacionamento do destino com a página',  
50 -tabindex : 'Tabindex',  
51 -accesskey : 'Accesskey',  
52 -ltr : 'Esquerda para direita',  
53 -rtl : 'Direita para esquerda'  
54 -});  
public/javascripts/tiny_mce/plugins/advlink/link.htm
@@ -1,338 +0,0 @@ @@ -1,338 +0,0 @@
1 -<html xmlns="http://www.w3.org/1999/xhtml">  
2 -<head>  
3 - <title>{$lang_insert_link_title}</title>  
4 - <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>  
5 - <script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>  
6 - <script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>  
7 - <script language="javascript" type="text/javascript" src="../../utils/validate.js"></script>  
8 - <script language="javascript" type="text/javascript" src="jscripts/functions.js"></script>  
9 - <link href="css/advlink.css" rel="stylesheet" type="text/css" />  
10 - <base target="_self" />  
11 -</head>  
12 -<body id="advlink" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">  
13 - <form onsubmit="insertAction();return false;" action="#">  
14 - <div class="tabs">  
15 - <ul>  
16 - <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_advlink_general_tab}</a></span></li>  
17 - <li id="popup_tab"><span><a href="javascript:mcTabs.displayTab('popup_tab','popup_panel');" onmousedown="return false;">{$lang_advlink_popup_tab}</a></span></li>  
18 - <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{$lang_advlink_events_tab}</a></span></li>  
19 - <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{$lang_advlink_advanced_tab}</a></span></li>  
20 - </ul>  
21 - </div>  
22 -  
23 - <div class="panel_wrapper">  
24 - <div id="general_panel" class="panel current">  
25 - <fieldset>  
26 - <legend>{$lang_advlink_general_props}</legend>  
27 -  
28 - <table border="0" cellpadding="4" cellspacing="0">  
29 - <tr>  
30 - <td nowrap="nowrap"><label id="hreflabel" for="href">{$lang_insert_link_url}</label></td>  
31 - <td><table border="0" cellspacing="0" cellpadding="0">  
32 - <tr>  
33 - <td><input id="href" name="href" type="text" value="" onchange="selectByValue(this.form,'linklisthref',this.value);" /></td>  
34 - <td id="hrefbrowsercontainer">&nbsp;</td>  
35 - </tr>  
36 - </table></td>  
37 - </tr>  
38 - <tr id="linklisthrefrow">  
39 - <td class="column1"><label for="linklisthref">{$lang_link_list}</label></td>  
40 - <td colspan="2" id="linklisthrefcontainer">&nbsp;</td>  
41 - </tr>  
42 - <tr>  
43 - <td class="column1"><label for="anchorlist">{$lang_advlink_anchor_names}</label></td>  
44 - <td colspan="2" id="anchorlistcontainer">&nbsp;</td>  
45 - </tr>  
46 - <tr>  
47 - <td><label id="targetlistlabel" for="targetlist">{$lang_insert_link_target}</label></td>  
48 - <td id="targetlistcontainer">&nbsp;</td>  
49 - </tr>  
50 - <tr>  
51 - <td nowrap="nowrap"><label id="titlelabel" for="title">{$lang_theme_insert_link_titlefield}</label></td>  
52 - <td><input id="title" name="title" type="text" value="" /></td>  
53 - </tr>  
54 - <tr>  
55 - <td><label id="classlabel" for="classlist">{$lang_class_name}</label></td>  
56 - <td>  
57 - <select id="classlist" name="classlist" onchange="changeClass();">  
58 - <option value="" selected>{$lang_not_set}</option>  
59 - </select>  
60 - </td>  
61 - </tr>  
62 - </table>  
63 - </fieldset>  
64 - </div>  
65 -  
66 - <div id="popup_panel" class="panel">  
67 - <fieldset>  
68 - <legend>{$lang_advlink_popup_props}</legend>  
69 -  
70 - <input type="checkbox" id="ispopup" name="ispopup" class="radio" onclick="setPopupControlsDisabled(!this.checked);buildOnClick();" />  
71 - <label id="ispopuplabel" for="ispopup">{$lang_advlink_popup}</label>  
72 -  
73 - <table border="0" cellpadding="0" cellspacing="4">  
74 - <tr>  
75 - <td nowrap="nowrap"><label for="popupurl">{$lang_advlink_popup_url}</label>&nbsp;</td>  
76 - <td>  
77 - <table border="0" cellspacing="0" cellpadding="0">  
78 - <tr>  
79 - <td><input type="text" name="popupurl" id="popupurl" value="" onchange="buildOnClick();" /></td>  
80 - <td id="popupurlbrowsercontainer">&nbsp;</td>  
81 - </tr>  
82 - </table>  
83 - </td>  
84 - </tr>  
85 - <tr>  
86 - <td nowrap="nowrap"><label for="popupname">{$lang_advlink_popup_name}</label>&nbsp;</td>  
87 - <td><input type="text" name="popupname" id="popupname" value="" onchange="buildOnClick();" /></td>  
88 - </tr>  
89 - <tr>  
90 - <td nowrap="nowrap"><label>{$lang_advlink_popup_size}</label>&nbsp;</td>  
91 - <td nowrap="nowrap">  
92 - <input type="text" id="popupwidth" name="popupwidth" value="" onchange="buildOnClick();" /> x  
93 - <input type="text" id="popupheight" name="popupheight" value="" onchange="buildOnClick();" /> px  
94 - </td>  
95 - </tr>  
96 - <tr>  
97 - <td nowrap="nowrap" id="labelleft"><label>{$lang_advlink_popup_position}</label>&nbsp;</td>  
98 - <td nowrap="nowrap">  
99 - <input type="text" id="popupleft" name="popupleft" value="" onchange="buildOnClick();" /> /  
100 - <input type="text" id="popuptop" name="popuptop" value="" onchange="buildOnClick();" /> (c /c = center)  
101 - </td>  
102 - </tr>  
103 - </table>  
104 -  
105 - <fieldset>  
106 - <legend>{$lang_advlink_popup_opts}</legend>  
107 -  
108 - <table border="0" cellpadding="0" cellspacing="4">  
109 - <tr>  
110 - <td><input type="checkbox" id="popuplocation" name="popuplocation" class="checkbox" onchange="buildOnClick();" /></td>  
111 - <td nowrap="nowrap"><label id="popuplocationlabel" for="popuplocation">{$lang_advlink_popup_location}</label></td>  
112 - <td><input type="checkbox" id="popupscrollbars" name="popupscrollbars" class="checkbox" onchange="buildOnClick();" /></td>  
113 - <td nowrap="nowrap"><label id="popupscrollbarslabel" for="popupscrollbars">{$lang_advlink_popup_scrollbars}</label></td>  
114 - </tr>  
115 - <tr>  
116 - <td><input type="checkbox" id="popupmenubar" name="popupmenubar" class="checkbox" onchange="buildOnClick();" /></td>  
117 - <td nowrap="nowrap"><label id="popupmenubarlabel" for="popupmenubar">{$lang_advlink_popup_menubar}</label></td>  
118 - <td><input type="checkbox" id="popupresizable" name="popupresizable" class="checkbox" onchange="buildOnClick();" /></td>  
119 - <td nowrap="nowrap"><label id="popupresizablelabel" for="popupresizable">{$lang_advlink_popup_resizable}</label></td>  
120 - </tr>  
121 - <tr>  
122 - <td><input type="checkbox" id="popuptoolbar" name="popuptoolbar" class="checkbox" onchange="buildOnClick();" /></td>  
123 - <td nowrap="nowrap"><label id="popuptoolbarlabel" for="popuptoolbar">{$lang_advlink_popup_toolbar}</label></td>  
124 - <td><input type="checkbox" id="popupdependent" name="popupdependent" class="checkbox" onchange="buildOnClick();" /></td>  
125 - <td nowrap="nowrap"><label id="popupdependentlabel" for="popupdependent">{$lang_advlink_popup_dependent}</label></td>  
126 - </tr>  
127 - <tr>  
128 - <td><input type="checkbox" id="popupstatus" name="popupstatus" class="checkbox" onchange="buildOnClick();" /></td>  
129 - <td nowrap="nowrap"><label id="popupstatuslabel" for="popupstatus">{$lang_advlink_popup_statusbar}</label></td>  
130 - <td><input type="checkbox" id="popupreturn" name="popupreturn" class="checkbox" onchange="buildOnClick();" checked="checked" /></td>  
131 - <td nowrap="nowrap"><label id="popupreturnlabel" for="popupreturn">{$lang_advlink_popup_return}</label></td>  
132 - </tr>  
133 - </table>  
134 - </fieldset>  
135 - </fieldset>  
136 - </div>  
137 -  
138 - <div id="advanced_panel" class="panel">  
139 - <fieldset>  
140 - <legend>{$lang_advlink_advanced_props}</legend>  
141 -  
142 - <table border="0" cellpadding="0" cellspacing="4">  
143 - <tr>  
144 - <td class="column1"><label id="idlabel" for="id">{$lang_advlink_id}</label></td>  
145 - <td><input id="id" name="id" type="text" value="" /></td>  
146 - </tr>  
147 -  
148 - <tr>  
149 - <td><label id="stylelabel" for="style">{$lang_advlink_style}</label></td>  
150 - <td><input type="text" id="style" name="style" value="" /></td>  
151 - </tr>  
152 -  
153 - <tr>  
154 - <td><label id="classeslabel" for="classes">{$lang_advlink_classes}</label></td>  
155 - <td><input type="text" id="classes" name="classes" value="" onchange="selectByValue(this.form,'classlist',this.value,true);" /></td>  
156 - </tr>  
157 -  
158 - <tr>  
159 - <td><label id="targetlabel" for="target">{$lang_advlink_target_name}</label></td>  
160 - <td><input type="text" id="target" name="target" value="" onchange="selectByValue(this.form,'targetlist',this.value,true);" /></td>  
161 - </tr>  
162 -  
163 - <tr>  
164 - <td class="column1"><label id="dirlabel" for="dir">{$lang_advlink_langdir}</label></td>  
165 - <td>  
166 - <select id="dir" name="dir">  
167 - <option value="">{$lang_not_set}</option>  
168 - <option value="ltr">{$lang_advlink_ltr}</option>  
169 - <option value="rtl">{$lang_advlink_rtl}</option>  
170 - </select>  
171 - </td>  
172 - </tr>  
173 -  
174 - <tr>  
175 - <td><label id="hreflanglabel" for="hreflang">{$lang_advlink_target_langcode}</label></td>  
176 - <td><input type="text" id="hreflang" name="hreflang" value="" /></td>  
177 - </tr>  
178 -  
179 - <tr>  
180 - <td class="column1"><label id="langlabel" for="lang">{$lang_advlink_langcode}</label></td>  
181 - <td>  
182 - <input id="lang" name="lang" type="text" value="" />  
183 - </td>  
184 - </tr>  
185 -  
186 - <tr>  
187 - <td><label id="charsetlabel" for="charset">{$lang_advlink_encoding}</label></td>  
188 - <td><input type="text" id="charset" name="charset" value="" /></td>  
189 - </tr>  
190 -  
191 - <tr>  
192 - <td><label id="typelabel" for="type">{$lang_advlink_mime}</label></td>  
193 - <td><input type="text" id="type" name="type" value="" /></td>  
194 - </tr>  
195 -  
196 - <tr>  
197 - <td><label id="rellabel" for="rel">{$lang_advlink_rel}</label></td>  
198 - <td><select id="rel" name="rel">  
199 - <option value="">{$lang_not_set}</option>  
200 - <option value="lightbox">Lightbox</option>  
201 - <option value="alternate">Alternate</option>  
202 - <option value="designates">Designates</option>  
203 - <option value="stylesheet">Stylesheet</option>  
204 - <option value="start">Start</option>  
205 - <option value="next">Next</option>  
206 - <option value="prev">Prev</option>  
207 - <option value="contents">Contents</option>  
208 - <option value="index">Index</option>  
209 - <option value="glossary">Glossary</option>  
210 - <option value="copyright">Copyright</option>  
211 - <option value="chapter">Chapter</option>  
212 - <option value="subsection">Subsection</option>  
213 - <option value="appendix">Appendix</option>  
214 - <option value="help">Help</option>  
215 - <option value="bookmark">Bookmark</option>  
216 - <option value="nofollow">No Follow</option>  
217 - <option value="tag">Tag</option>  
218 - </select>  
219 - </td>  
220 - </tr>  
221 -  
222 - <tr>  
223 - <td><label id="revlabel" for="rev">{$lang_advlink_rev}</label></td>  
224 - <td><select id="rev" name="rev">  
225 - <option value="">{$lang_not_set}</option>  
226 - <option value="alternate">Alternate</option>  
227 - <option value="designates">Designates</option>  
228 - <option value="stylesheet">Stylesheet</option>  
229 - <option value="start">Start</option>  
230 - <option value="next">Next</option>  
231 - <option value="prev">Prev</option>  
232 - <option value="contents">Contents</option>  
233 - <option value="index">Index</option>  
234 - <option value="glossary">Glossary</option>  
235 - <option value="copyright">Copyright</option>  
236 - <option value="chapter">Chapter</option>  
237 - <option value="subsection">Subsection</option>  
238 - <option value="appendix">Appendix</option>  
239 - <option value="help">Help</option>  
240 - <option value="bookmark">Bookmark</option>  
241 - </select>  
242 - </td>  
243 - </tr>  
244 -  
245 - <tr>  
246 - <td><label id="tabindexlabel" for="tabindex">{$lang_advlink_tabindex}</label></td>  
247 - <td><input type="text" id="tabindex" name="tabindex" value="" /></td>  
248 - </tr>  
249 -  
250 - <tr>  
251 - <td><label id="accesskeylabel" for="accesskey">{$lang_advlink_accesskey}</label></td>  
252 - <td><input type="text" id="accesskey" name="accesskey" value="" /></td>  
253 - </tr>  
254 - </table>  
255 - </fieldset>  
256 - </div>  
257 -  
258 - <div id="events_panel" class="panel">  
259 - <fieldset>  
260 - <legend>{$lang_advlink_event_props}</legend>  
261 -  
262 - <table border="0" cellpadding="0" cellspacing="4">  
263 - <tr>  
264 - <td class="column1"><label for="onfocus">onfocus</label></td>  
265 - <td><input id="onfocus" name="onfocus" type="text" value="" /></td>  
266 - </tr>  
267 -  
268 - <tr>  
269 - <td class="column1"><label for="onblur">onblur</label></td>  
270 - <td><input id="onblur" name="onblur" type="text" value="" /></td>  
271 - </tr>  
272 -  
273 - <tr>  
274 - <td class="column1"><label for="onclick">onclick</label></td>  
275 - <td><input id="onclick" name="onclick" type="text" value="" /></td>  
276 - </tr>  
277 -  
278 - <tr>  
279 - <td class="column1"><label for="ondblclick">ondblclick</label></td>  
280 - <td><input id="ondblclick" name="ondblclick" type="text" value="" /></td>  
281 - </tr>  
282 -  
283 - <tr>  
284 - <td class="column1"><label for="onmousedown">onmousedown</label></td>  
285 - <td><input id="onmousedown" name="onmousedown" type="text" value="" /></td>  
286 - </tr>  
287 -  
288 - <tr>  
289 - <td class="column1"><label for="onmouseup">onmouseup</label></td>  
290 - <td><input id="onmouseup" name="onmouseup" type="text" value="" /></td>  
291 - </tr>  
292 -  
293 - <tr>  
294 - <td class="column1"><label for="onmouseover">onmouseover</label></td>  
295 - <td><input id="onmouseover" name="onmouseover" type="text" value="" /></td>  
296 - </tr>  
297 -  
298 - <tr>  
299 - <td class="column1"><label for="onmousemove">onmousemove</label></td>  
300 - <td><input id="onmousemove" name="onmousemove" type="text" value="" /></td>  
301 - </tr>  
302 -  
303 - <tr>  
304 - <td class="column1"><label for="onmouseout">onmouseout</label></td>  
305 - <td><input id="onmouseout" name="onmouseout" type="text" value="" /></td>  
306 - </tr>  
307 -  
308 - <tr>  
309 - <td class="column1"><label for="onkeypress">onkeypress</label></td>  
310 - <td><input id="onkeypress" name="onkeypress" type="text" value="" /></td>  
311 - </tr>  
312 -  
313 - <tr>  
314 - <td class="column1"><label for="onkeydown">onkeydown</label></td>  
315 - <td><input id="onkeydown" name="onkeydown" type="text" value="" /></td>  
316 - </tr>  
317 -  
318 - <tr>  
319 - <td class="column1"><label for="onkeyup">onkeyup</label></td>  
320 - <td><input id="onkeyup" name="onkeyup" type="text" value="" /></td>  
321 - </tr>  
322 - </table>  
323 - </fieldset>  
324 - </div>  
325 - </div>  
326 -  
327 - <div class="mceActionPanel">  
328 - <div style="float: left">  
329 - <input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertAction();" />  
330 - </div>  
331 -  
332 - <div style="float: right">  
333 - <input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />  
334 - </div>  
335 - </div>  
336 - </form>  
337 -</body>  
338 -</html>  
public/javascripts/tiny_mce/plugins/advlink/readme.txt
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -Check the TinyMCE documentation for details on this plugin.  
public/javascripts/tiny_mce/plugins/autosave/editor_plugin.js
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -tinyMCE.importPluginLanguagePack('autosave');var TinyMCE_AutoSavePlugin={getInfo:function(){return{longname:'Auto save',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},_beforeUnloadHandler:function(){var n,inst,anyDirty=false,msg=tinyMCE.getLang("lang_autosave_unload_msg");if(tinyMCE.getParam("fullscreen_is_enabled"))return;for(n in tinyMCE.instances){inst=tinyMCE.instances[n];if(!tinyMCE.isInstance(inst))continue;if(inst.isDirty())return msg}return}};window.onbeforeunload=TinyMCE_AutoSavePlugin._beforeUnloadHandler;tinyMCE.addPlugin("autosave",TinyMCE_AutoSavePlugin);  
2 \ No newline at end of file 0 \ No newline at end of file
public/javascripts/tiny_mce/plugins/autosave/editor_plugin_src.js
@@ -1,46 +0,0 @@ @@ -1,46 +0,0 @@
1 -/**  
2 - * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $  
3 - *  
4 - * @author Moxiecode  
5 - * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.  
6 - */  
7 -  
8 -/* Import plugin specific language pack */  
9 -tinyMCE.importPluginLanguagePack('autosave');  
10 -  
11 -var TinyMCE_AutoSavePlugin = {  
12 - getInfo : function() {  
13 - return {  
14 - longname : 'Auto save',  
15 - author : 'Moxiecode Systems AB',  
16 - authorurl : 'http://tinymce.moxiecode.com',  
17 - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave',  
18 - version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion  
19 - };  
20 - },  
21 -  
22 - // Private plugin internal methods  
23 -  
24 - _beforeUnloadHandler : function() {  
25 - var n, inst, anyDirty = false, msg = tinyMCE.getLang("lang_autosave_unload_msg");  
26 -  
27 - if (tinyMCE.getParam("fullscreen_is_enabled"))  
28 - return;  
29 -  
30 - for (n in tinyMCE.instances) {  
31 - inst = tinyMCE.instances[n];  
32 -  
33 - if (!tinyMCE.isInstance(inst))  
34 - continue;  
35 -  
36 - if (inst.isDirty())  
37 - return msg;  
38 - }  
39 -  
40 - return;  
41 - }  
42 -};  
43 -  
44 -window.onbeforeunload = TinyMCE_AutoSavePlugin._beforeUnloadHandler;  
45 -  
46 -tinyMCE.addPlugin("autosave", TinyMCE_AutoSavePlugin);  
public/javascripts/tiny_mce/plugins/autosave/langs/de.js
@@ -1,5 +0,0 @@ @@ -1,5 +0,0 @@
1 -// DE lang variables  
2 -  
3 -tinyMCE.addToLang('',{  
4 -autosave_unload_msg : 'Alle Ver&auml;nderungen an dieser Seite werden verloren gehen, wenn Sie diese Seite jetzt verlassen!'  
5 -});  
public/javascripts/tiny_mce/plugins/autosave/langs/en.js
@@ -1,5 +0,0 @@ @@ -1,5 +0,0 @@
1 -// EN lang variables  
2 -  
3 -tinyMCE.addToLang('',{  
4 -autosave_unload_msg : 'The changes you made will be lost if you navigate away from this page.'  
5 -});  
public/javascripts/tiny_mce/plugins/autosave/langs/fr.js
@@ -1,6 +0,0 @@ @@ -1,6 +0,0 @@
1 -// FR lang variables  
2 -// Modified by Motte, last updated 2006-03-23  
3 -  
4 -tinyMCE.addToLang('',{  
5 -autosave_unload_msg : 'Vos modifications seront perdues si vous quittez cette page.'  
6 -});  
public/javascripts/tiny_mce/plugins/autosave/langs/nl.js
@@ -1,5 +0,0 @@ @@ -1,5 +0,0 @@
1 -// NL lang variables  
2 -  
3 -tinyMCE.addToLang('',{  
4 -autosave_unload_msg : 'De gemaakte veranderingen zullen verloren gaan als u naar een andere pagina navigeert.'  
5 -});  
public/javascripts/tiny_mce/plugins/autosave/langs/pt_br.js
@@ -1,13 +0,0 @@ @@ -1,13 +0,0 @@
1 -/**  
2 - * pt_br lang variables  
3 - * Brazilian Portuguese  
4 - *  
5 - * Author  
6 - * Revision and modifications:  
7 - * Marcio Barbosa (mpg) <mpg@mpg.com.br>  
8 - * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4  
9 - * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8  
10 - */  
11 -tinyMCE.addToLang('',{  
12 -autosave_unload_msg : 'As modificações feitas serão perdidas caso você navegue fora desta página.'  
13 -});  
public/javascripts/tiny_mce/plugins/autosave/readme.txt
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -Check the TinyMCE documentation for details on this plugin.  
public/javascripts/tiny_mce/plugins/bbcode/editor_plugin.js
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -var TinyMCE_BBCodePlugin={getInfo:function(){return{longname:'BBCode Plugin',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},cleanup:function(type,content){var dialect=tinyMCE.getParam('bbcode_dialect','punbb').toLowerCase();switch(type){case"insert_to_editor":content=this['_'+dialect+'_bbcode2html'](content);break;case"get_from_editor":content=this['_'+dialect+'_html2bbcode'](content);break}return content},_punbb_html2bbcode:function(s){s=tinyMCE.trim(s);function rep(re,str){s=s.replace(re,str)};rep(/<a href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url]$1[/url]");rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");rep(/<font>(.*?)<\/font>/gi,"$1");rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]");rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");rep(/<\/(strong|b)>/gi,"[/b]");rep(/<(strong|b)>/gi,"[b]");rep(/<\/(em|i)>/gi,"[/i]");rep(/<(em|i)>/gi,"[i]");rep(/<\/u>/gi,"[/u]");rep(/<u>/gi,"[u]");rep(/<br \/>/gi,"\n");rep(/<br\/>/gi,"\n");rep(/<br>/gi,"\n");rep(/<p>/gi,"");rep(/<\/p>/gi,"\n");rep(/&nbsp;/gi," ");rep(/&quot;/gi,"\"");rep(/&lt;/gi,"<");rep(/&gt;/gi,">");rep(/&amp;/gi,"&");rep(/&undefined;/gi,"'");return s},_punbb_bbcode2html:function(s){s=tinyMCE.trim(s);function rep(re,str){s=s.replace(re,str)};rep(/\n/gi,"<br />");rep(/\[b\]/gi,"<strong>");rep(/\[\/b\]/gi,"</strong>");rep(/\[i\]/gi,"<em>");rep(/\[\/i\]/gi,"</em>");rep(/\[u\]/gi,"<u>");rep(/\[\/u\]/gi,"</u>");rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>");rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span>&nbsp;");rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span>&nbsp;");return s}};tinyMCE.addPlugin("bbcode",TinyMCE_BBCodePlugin);  
2 \ No newline at end of file 0 \ No newline at end of file
public/javascripts/tiny_mce/plugins/bbcode/editor_plugin_src.js
@@ -1,102 +0,0 @@ @@ -1,102 +0,0 @@
1 -var TinyMCE_BBCodePlugin = {  
2 - getInfo : function() {  
3 - return {  
4 - longname : 'BBCode Plugin',  
5 - author : 'Moxiecode Systems AB',  
6 - authorurl : 'http://tinymce.moxiecode.com',  
7 - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode',  
8 - version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion  
9 - };  
10 - },  
11 -  
12 - cleanup : function(type, content) {  
13 - var dialect = tinyMCE.getParam('bbcode_dialect', 'punbb').toLowerCase();  
14 -  
15 - switch (type) {  
16 - case "insert_to_editor":  
17 - content = this['_' + dialect + '_bbcode2html'](content);  
18 - break;  
19 -  
20 - case "get_from_editor":  
21 - content = this['_' + dialect + '_html2bbcode'](content);  
22 - break;  
23 - }  
24 -  
25 - return content;  
26 - },  
27 -  
28 - // Private methods  
29 -  
30 - // HTML -> BBCode in PunBB dialect  
31 - _punbb_html2bbcode : function(s) {  
32 - s = tinyMCE.trim(s);  
33 -  
34 - function rep(re, str) {  
35 - s = s.replace(re, str);  
36 - };  
37 -  
38 - // example: <strong> to [b]  
39 - rep(/<a href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url]$1[/url]");  
40 - rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");  
41 - rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");  
42 - rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");  
43 - rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");  
44 - rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");  
45 - rep(/<font>(.*?)<\/font>/gi,"$1");  
46 - rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");  
47 - rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");  
48 - rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]");  
49 - rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");  
50 - rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");  
51 - rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");  
52 - rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");  
53 - rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");  
54 - rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");  
55 - rep(/<\/(strong|b)>/gi,"[/b]");  
56 - rep(/<(strong|b)>/gi,"[b]");  
57 - rep(/<\/(em|i)>/gi,"[/i]");  
58 - rep(/<(em|i)>/gi,"[i]");  
59 - rep(/<\/u>/gi,"[/u]");  
60 - rep(/<u>/gi,"[u]");  
61 - rep(/<br \/>/gi,"\n");  
62 - rep(/<br\/>/gi,"\n");  
63 - rep(/<br>/gi,"\n");  
64 - rep(/<p>/gi,"");  
65 - rep(/<\/p>/gi,"\n");  
66 - rep(/&nbsp;/gi," ");  
67 - rep(/&quot;/gi,"\"");  
68 - rep(/&lt;/gi,"<");  
69 - rep(/&gt;/gi,">");  
70 - rep(/&amp;/gi,"&");  
71 - rep(/&undefined;/gi,"'"); // quickfix  
72 -  
73 - return s;  
74 - },  
75 -  
76 - // BBCode -> HTML from PunBB dialect  
77 - _punbb_bbcode2html : function(s) {  
78 - s = tinyMCE.trim(s);  
79 -  
80 - function rep(re, str) {  
81 - s = s.replace(re, str);  
82 - };  
83 -  
84 - // example: [b] to <strong>  
85 - rep(/\n/gi,"<br />");  
86 - rep(/\[b\]/gi,"<strong>");  
87 - rep(/\[\/b\]/gi,"</strong>");  
88 - rep(/\[i\]/gi,"<em>");  
89 - rep(/\[\/i\]/gi,"</em>");  
90 - rep(/\[u\]/gi,"<u>");  
91 - rep(/\[\/u\]/gi,"</u>");  
92 - rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");  
93 - rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");  
94 - rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>");  
95 - rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span>&nbsp;");  
96 - rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span>&nbsp;");  
97 -  
98 - return s;  
99 - }  
100 -};  
101 -  
102 -tinyMCE.addPlugin("bbcode", TinyMCE_BBCodePlugin);  
public/javascripts/tiny_mce/plugins/cleanup/editor_plugin.js
public/javascripts/tiny_mce/plugins/cleanup/editor_plugin_src.js
@@ -1,10 +0,0 @@ @@ -1,10 +0,0 @@
1 -/**  
2 - * $Id: editor_plugin_src.js 162 2007-01-03 16:16:52Z spocke $  
3 - *  
4 - * Experimental plugin for new Cleanup routine, this logic will be moved into the core ones it's stable enougth.  
5 - *  
6 - * @author Moxiecode  
7 - * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.  
8 - */  
9 -  
10 -/* Dummy file since cleanup is now moved to core */  
public/javascripts/tiny_mce/plugins/cleanup/readme.txt
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -Dummy plugin since cleanup is now moved into core.  
public/javascripts/tiny_mce/plugins/contextmenu/css/contextmenu.css
@@ -1,74 +0,0 @@ @@ -1,74 +0,0 @@
1 -.contextMenuIEPopup {  
2 - padding: 0;  
3 - margin: 0;  
4 - border: 0;  
5 - overflow: hidden;  
6 -}  
7 -  
8 -.contextMenu {  
9 - position: absolute;  
10 - cursor: default;  
11 - z-index: 1000;  
12 - border: 1px solid #D4D0C8;  
13 - background-color: #FFFFFF;  
14 -}  
15 -  
16 -.contextMenuItem, .contextMenuItemOver {  
17 -}  
18 -  
19 -.contextMenuSeparator {  
20 - width: 100%;  
21 - background-color: #D4D0C8;  
22 - border: 0;  
23 -}  
24 -  
25 -.contextMenuImage, .contextMenuItemDisabled {  
26 - border: 0;  
27 -}  
28 -  
29 -.contextMenuIcon {  
30 - background-color: #F0F0EE;  
31 -}  
32 -  
33 -.contextMenuItemOver .contextMenuIcon {  
34 - background-color: #B6BDD2;  
35 -}  
36 -  
37 -.contextMenuIcon {  
38 - background-color: #F0F0EE;  
39 -}  
40 -  
41 -.contextMenuItemDisabled img {  
42 - filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);  
43 - -moz-opacity:0.3;  
44 - opacity: 0.3;  
45 -}  
46 -  
47 -.contextMenuText {  
48 - font-family: Tahoma, Verdana, Arial, Helvetica;  
49 - font-size: 11px;  
50 - line-height: 20px;  
51 -}  
52 -  
53 -.contextMenuItemDisabled {  
54 - color: #AAAAAA;  
55 -}  
56 -  
57 -.contextMenuText a {  
58 - display: block;  
59 - line-height: 20px;  
60 - width: 100%;  
61 - text-decoration: none;  
62 - color: black;  
63 - font-weight: normal;  
64 - margin: 0;  
65 - padding: 0;  
66 -}  
67 -  
68 -.contextMenuText a:hover {  
69 - background-color: #B6BDD2;  
70 - text-decoration: none !important;  
71 - font-weight: normal;  
72 - margin: 0;  
73 - padding: 0;  
74 -}  
public/javascripts/tiny_mce/plugins/contextmenu/editor_plugin.js
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -if(!tinyMCE.settings['contextmenu_skip_plugin_css']){tinyMCE.loadCSS(tinyMCE.baseURL+"/plugins/contextmenu/css/contextmenu.css")}var TinyMCE_ContextMenuPlugin={_contextMenu:null,getInfo:function(){return{longname:'Context menus',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){if(tinyMCE.isMSIE5_0&&tinyMCE.isOpera)return;TinyMCE_ContextMenuPlugin._contextMenu=new TinyMCE_ContextMenu({commandhandler:"TinyMCE_ContextMenuPlugin._commandHandler",spacer_image:tinyMCE.baseURL+"/plugins/contextmenu/images/spacer.gif"});tinyMCE.addEvent(inst.getDoc(),"click",TinyMCE_ContextMenuPlugin._hideContextMenu);tinyMCE.addEvent(inst.getDoc(),"keypress",TinyMCE_ContextMenuPlugin._hideContextMenu);tinyMCE.addEvent(inst.getDoc(),"keydown",TinyMCE_ContextMenuPlugin._hideContextMenu);tinyMCE.addEvent(document,"click",TinyMCE_ContextMenuPlugin._hideContextMenu);tinyMCE.addEvent(document,"keypress",TinyMCE_ContextMenuPlugin._hideContextMenu);tinyMCE.addEvent(document,"keydown",TinyMCE_ContextMenuPlugin._hideContextMenu);if(tinyMCE.isGecko){tinyMCE.addEvent(inst.getDoc(),"contextmenu",function(e){TinyMCE_ContextMenuPlugin._showContextMenu(tinyMCE.isMSIE?inst.contentWindow.event:e,inst)})}else tinyMCE.addEvent(inst.getDoc(),"contextmenu",TinyMCE_ContextMenuPlugin._onContextMenu)},_onContextMenu:function(e){var elm=tinyMCE.isMSIE?e.srcElement:e.target;var targetInst,body;if((body=tinyMCE.getParentElement(elm,"body"))!=null){for(var n in tinyMCE.instances){var inst=tinyMCE.instances[n];if(!tinyMCE.isInstance(inst))continue;if(body==inst.getBody()){targetInst=inst;break}}return TinyMCE_ContextMenuPlugin._showContextMenu(tinyMCE.isMSIE?targetInst.contentWindow.event:e,targetInst)}},_showContextMenu:function(e,inst){if(e.ctrlKey)return true;function getAttrib(elm,name){return elm.getAttribute(name)?elm.getAttribute(name):""}var x,y,elm,contextMenu;var pos=tinyMCE.getAbsPosition(inst.iframeElement);x=tinyMCE.isMSIE?e.screenX:pos.absLeft+(e.pageX-inst.getBody().scrollLeft);y=tinyMCE.isMSIE?e.screenY:pos.absTop+(e.pageY-inst.getBody().scrollTop);elm=tinyMCE.isMSIE?e.srcElement:e.target;contextMenu=this._contextMenu;contextMenu.inst=inst;window.setTimeout(function(){var theme=tinyMCE.getParam("theme");contextMenu.clearAll();var sel=inst.selection.getSelectedText().length!=0||elm.nodeName=="IMG";contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/cut.gif","$lang_cut_desc","Cut","",!sel);contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/copy.gif","$lang_copy_desc","Copy","",!sel);contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/paste.gif","$lang_paste_desc","Paste","",false);if(sel||(elm?(elm.nodeName=='A'&&tinyMCE.getAttrib(elm,'name')=='')||(elm.nodeName=='IMG'):false)){contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/themes/advanced/images/link.gif","$lang_link_desc",inst.hasPlugin("advlink")?"mceAdvLink":"mceLink");contextMenu.addItem(tinyMCE.baseURL+"/themes/advanced/images/unlink.gif","$lang_unlink_desc","unlink","",(elm?(elm.nodeName!='A')&&(elm.nodeName!='IMG'):true))}elm=tinyMCE.getParentElement(elm,"img,table,td"+(inst.hasPlugin("advhr")?',hr':''));if(elm){switch(elm.nodeName){case"IMG":contextMenu.addSeparator();if(tinyMCE.hasPlugin('flash')&&tinyMCE.getAttrib(elm,'class').indexOf('mceItemFlash')!=-1)contextMenu.addItem(tinyMCE.baseURL+"/plugins/flash/images/flash.gif","$lang_flash_props","mceFlash");else if(tinyMCE.hasPlugin('media')&&/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(tinyMCE.getAttrib(elm,'class')))contextMenu.addItem(tinyMCE.baseURL+"/plugins/flash/images/flash.gif","$lang_media_title","mceMedia");else contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/image.gif","$lang_image_props_desc",inst.hasPlugin("advimage")?"mceAdvImage":"mceImage");break;case"HR":contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/advhr/images/advhr.gif","$lang_insert_advhr_desc","mceAdvancedHr");break;case"TABLE":case"TD":if(inst.hasPlugin("table")){var colspan=(elm.nodeName=="TABLE")?"":getAttrib(elm,"colspan");var rowspan=(elm.nodeName=="TABLE")?"":getAttrib(elm,"rowspan");colspan=colspan==""?"1":colspan;rowspan=rowspan==""?"1":rowspan;contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/cut.gif","$lang_table_cut_row_desc","mceTableCutRow");contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/copy.gif","$lang_table_copy_row_desc","mceTableCopyRow");contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/paste.gif","$lang_table_paste_row_before_desc","mceTablePasteRowBefore","",inst.tableRowClipboard==null);contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/paste.gif","$lang_table_paste_row_after_desc","mceTablePasteRowAfter","",inst.tableRowClipboard==null);contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table.gif","$lang_table_desc","mceInsertTable","insert");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table.gif","$lang_table_props_desc","mceInsertTable");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_cell_props.gif","$lang_table_cell_desc","mceTableCellProps");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_delete.gif","$lang_table_del","mceTableDelete");contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_row_props.gif","$lang_table_row_desc","mceTableRowProps");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_insert_row_before.gif","$lang_table_row_before_desc","mceTableInsertRowBefore");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_insert_row_after.gif","$lang_table_row_after_desc","mceTableInsertRowAfter");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_delete_row.gif","$lang_table_delete_row_desc","mceTableDeleteRow");contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_insert_col_before.gif","$lang_table_col_before_desc","mceTableInsertColBefore");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_insert_col_after.gif","$lang_table_col_after_desc","mceTableInsertColAfter");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_delete_col.gif","$lang_table_delete_col_desc","mceTableDeleteCol");contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_split_cells.gif","$lang_table_split_cells_desc","mceTableSplitCells","",(colspan=="1"&&rowspan=="1"));contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_merge_cells.gif","$lang_table_merge_cells_desc","mceTableMergeCells","",false)}break}}else{if(inst.hasPlugin("table")){contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table.gif","$lang_table_desc","mceInsertTable","insert")}}contextMenu.show(x,y)},10);tinyMCE.cancelEvent(e);return false},_hideContextMenu:function(){if(TinyMCE_ContextMenuPlugin._contextMenu)TinyMCE_ContextMenuPlugin._contextMenu.hide()},_commandHandler:function(command,value){var cm=TinyMCE_ContextMenuPlugin._contextMenu;cm.hide();var ui=false;if(command=="mceInsertTable"||command=="mceTableCellProps"||command=="mceTableRowProps"||command=="mceTableMergeCells")ui=true;if(command=="Paste")value=null;if(tinyMCE.getParam("dialog_type")=="modal"&&tinyMCE.isMSIE){window.setTimeout(function(){cm.inst.execCommand(command,ui,value)},100)}else cm.inst.execCommand(command,ui,value)}};tinyMCE.addPlugin("contextmenu",TinyMCE_ContextMenuPlugin);function TinyMCE_ContextMenu(settings){var doc,self=this;function defParam(key,def_val){settings[key]=typeof(settings[key])!="undefined"?settings[key]:def_val}this.isMSIE=(navigator.appName=="Microsoft Internet Explorer");this.contextMenuDiv=document.createElement("div");this.contextMenuDiv.className="contextMenu";this.contextMenuDiv.setAttribute("class","contextMenu");this.contextMenuDiv.style.display="none";this.contextMenuDiv.style.position='absolute';this.contextMenuDiv.style.zindex=1000;this.contextMenuDiv.style.left='0';this.contextMenuDiv.style.top='0';this.contextMenuDiv.unselectable="on";document.body.appendChild(this.contextMenuDiv);defParam("commandhandler","");defParam("spacer_image","images/spacer.gif");this.items=new Array();this.settings=settings;this.html="";if(tinyMCE.isMSIE&&!tinyMCE.isMSIE5_0&&!tinyMCE.isOpera){this.pop=window.createPopup();doc=this.pop.document;doc.open();doc.write('<html><head><link href="'+tinyMCE.baseURL+'/plugins/contextmenu/css/contextmenu.css" rel="stylesheet" type="text/css" /></head><body unselectable="yes" class="contextMenuIEPopup"></body></html>');doc.close()}};TinyMCE_ContextMenu.prototype={clearAll:function(){this.html="";this.contextMenuDiv.innerHTML=""},addSeparator:function(){this.html+='<tr class="contextMenuItem"><td class="contextMenuIcon"><img src="'+this.settings['spacer_image']+'" width="20" height="1" class="contextMenuImage" /></td><td><img class="contextMenuSeparator" width="1" height="1" src="'+this.settings['spacer_image']+'" /></td></tr>'},addItem:function(icon,title,command,value,disabled){if(title.charAt(0)=='$')title=tinyMCE.getLang(title.substring(1));var onMouseDown='';var html='';if(tinyMCE.isMSIE&&!tinyMCE.isMSIE5_0)onMouseDown='contextMenu.execCommand(\''+command+'\', \''+value+'\');return false;';else onMouseDown=this.settings['commandhandler']+'(\''+command+'\', \''+value+'\');return false;';if(icon=="")icon=this.settings['spacer_image'];if(!disabled)html+='<tr class="contextMenuItem">';else html+='<tr class="contextMenuItemDisabled">';html+='<td class="contextMenuIcon"><img src="'+icon+'" width="20" height="20" class="contextMenuImage" /></td>';html+='<td><div class="contextMenuText">';html+='<a href="javascript:void(0);" onclick="'+onMouseDown+'" onmousedown="return false;">&#160;';html+=title;html+='&#160;</a>';html+='</div></td>';html+='</tr>';this.html+=html},show:function(x,y){var vp,width,height,yo;if(this.html=="")return;var html='';html+='<a href="#"></a><table border="0" cellpadding="0" cellspacing="0">';html+=this.html;html+='</table>';this.contextMenuDiv.innerHTML=html;this.contextMenuDiv.style.display="block";width=this.contextMenuDiv.offsetWidth;height=this.contextMenuDiv.offsetHeight;this.contextMenuDiv.style.display="none";if(tinyMCE.isMSIE&&!tinyMCE.isMSIE5_0&&!tinyMCE.isOpera){this.pop.document.body.innerHTML='<div class="contextMenu">'+html+"</div>";this.pop.document.tinyMCE=tinyMCE;this.pop.document.contextMenu=this;this.pop.show(x,y,width,height)}else{vp=this.getViewPort();yo=tinyMCE.isMSIE5_0?document.body.scrollTop:self.pageYOffset;this.contextMenuDiv.style.left=(x>vp.left+vp.width-width?vp.left+vp.width-width:x)+'px';this.contextMenuDiv.style.top=(y>vp.top+vp.height-height?vp.top+vp.height-height:y)+'px';this.contextMenuDiv.style.display="block"}},getViewPort:function(){return{left:self.pageXOffset||self.document.documentElement.scrollLeft||self.document.body.scrollLeft,top:self.pageYOffset||self.document.documentElement.scrollTop||self.document.body.scrollTop,width:document.documentElement.offsetWidth||document.body.offsetWidth,height:self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight}},hide:function(){if(tinyMCE.isMSIE&&!tinyMCE.isMSIE5_0&&!tinyMCE.isOpera)this.pop.hide();else this.contextMenuDiv.style.display="none"},execCommand:function(command,value){eval(this.settings['commandhandler']+"(command, value);")}};  
2 \ No newline at end of file 0 \ No newline at end of file
public/javascripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js
@@ -1,360 +0,0 @@ @@ -1,360 +0,0 @@
1 -/**  
2 - * $Id: editor_plugin_src.js 264 2007-04-26 20:53:09Z spocke $  
3 - *  
4 - * @author Moxiecode  
5 - * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.  
6 - */  
7 -  
8 -/* Import plugin specific language pack */  
9 -if (!tinyMCE.settings['contextmenu_skip_plugin_css']) {  
10 - tinyMCE.loadCSS(tinyMCE.baseURL + "/plugins/contextmenu/css/contextmenu.css");  
11 -}  
12 -  
13 -var TinyMCE_ContextMenuPlugin = {  
14 - // Private fields  
15 - _contextMenu : null,  
16 -  
17 - getInfo : function() {  
18 - return {  
19 - longname : 'Context menus',  
20 - author : 'Moxiecode Systems AB',  
21 - authorurl : 'http://tinymce.moxiecode.com',  
22 - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',  
23 - version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion  
24 - };  
25 - },  
26 -  
27 - initInstance : function(inst) {  
28 - // Is not working on MSIE 5.0 or Opera no contextmenu event  
29 - if (tinyMCE.isMSIE5_0 && tinyMCE.isOpera)  
30 - return;  
31 -  
32 - TinyMCE_ContextMenuPlugin._contextMenu = new TinyMCE_ContextMenu({  
33 - commandhandler : "TinyMCE_ContextMenuPlugin._commandHandler",  
34 - spacer_image : tinyMCE.baseURL + "/plugins/contextmenu/images/spacer.gif"  
35 - });  
36 -  
37 - // Add hide event handles  
38 - tinyMCE.addEvent(inst.getDoc(), "click", TinyMCE_ContextMenuPlugin._hideContextMenu);  
39 - tinyMCE.addEvent(inst.getDoc(), "keypress", TinyMCE_ContextMenuPlugin._hideContextMenu);  
40 - tinyMCE.addEvent(inst.getDoc(), "keydown", TinyMCE_ContextMenuPlugin._hideContextMenu);  
41 - tinyMCE.addEvent(document, "click", TinyMCE_ContextMenuPlugin._hideContextMenu);  
42 - tinyMCE.addEvent(document, "keypress", TinyMCE_ContextMenuPlugin._hideContextMenu);  
43 - tinyMCE.addEvent(document, "keydown", TinyMCE_ContextMenuPlugin._hideContextMenu);  
44 -  
45 - // Attach contextmenu event  
46 - if (tinyMCE.isGecko) {  
47 - tinyMCE.addEvent(inst.getDoc(), "contextmenu", function(e) {TinyMCE_ContextMenuPlugin._showContextMenu(tinyMCE.isMSIE ? inst.contentWindow.event : e, inst);});  
48 - } else  
49 - tinyMCE.addEvent(inst.getDoc(), "contextmenu", TinyMCE_ContextMenuPlugin._onContextMenu);  
50 - },  
51 -  
52 - // Private plugin internal methods  
53 -  
54 - _onContextMenu : function(e) {  
55 - var elm = tinyMCE.isMSIE ? e.srcElement : e.target;  
56 - var targetInst, body;  
57 -  
58 - // Find instance  
59 - if ((body = tinyMCE.getParentElement(elm, "body")) != null) {  
60 - for (var n in tinyMCE.instances) {  
61 - var inst = tinyMCE.instances[n];  
62 - if (!tinyMCE.isInstance(inst))  
63 - continue;  
64 -  
65 - if (body == inst.getBody()) {  
66 - targetInst = inst;  
67 - break;  
68 - }  
69 - }  
70 -  
71 - return TinyMCE_ContextMenuPlugin._showContextMenu(tinyMCE.isMSIE ? targetInst.contentWindow.event : e, targetInst);  
72 - }  
73 - },  
74 -  
75 - _showContextMenu : function(e, inst) {  
76 - if (e.ctrlKey)  
77 - return true;  
78 -  
79 - function getAttrib(elm, name) {  
80 - return elm.getAttribute(name) ? elm.getAttribute(name) : "";  
81 - }  
82 -  
83 - var x, y, elm, contextMenu;  
84 - var pos = tinyMCE.getAbsPosition(inst.iframeElement);  
85 -  
86 - x = tinyMCE.isMSIE ? e.screenX : pos.absLeft + (e.pageX - inst.getBody().scrollLeft);  
87 - y = tinyMCE.isMSIE ? e.screenY : pos.absTop + (e.pageY - inst.getBody().scrollTop);  
88 - elm = tinyMCE.isMSIE ? e.srcElement : e.target;  
89 -  
90 - contextMenu = this._contextMenu;  
91 - contextMenu.inst = inst;  
92 -  
93 - // Mozilla needs some time  
94 - window.setTimeout(function () {  
95 - var theme = tinyMCE.getParam("theme");  
96 -  
97 - contextMenu.clearAll();  
98 - var sel = inst.selection.getSelectedText().length != 0 || elm.nodeName == "IMG";  
99 -  
100 - // Default items  
101 - contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/cut.gif", "$lang_cut_desc", "Cut", "", !sel);  
102 - contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/copy.gif", "$lang_copy_desc", "Copy", "", !sel);  
103 - contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_paste_desc", "Paste", "", false);  
104 -  
105 - if (sel || (elm ? (elm.nodeName == 'A' && tinyMCE.getAttrib(elm, 'name') == '') || (elm.nodeName == 'IMG') : false)) {  
106 - contextMenu.addSeparator();  
107 - contextMenu.addItem(tinyMCE.baseURL + "/themes/advanced/images/link.gif", "$lang_link_desc", inst.hasPlugin("advlink") ? "mceAdvLink" : "mceLink");  
108 - contextMenu.addItem(tinyMCE.baseURL + "/themes/advanced/images/unlink.gif", "$lang_unlink_desc", "unlink", "", (elm ? (elm.nodeName != 'A') && (elm.nodeName != 'IMG') : true));  
109 - }  
110 -  
111 - // Get element  
112 - elm = tinyMCE.getParentElement(elm, "img,table,td" + (inst.hasPlugin("advhr") ? ',hr' : ''));  
113 - if (elm) {  
114 - switch (elm.nodeName) {  
115 - case "IMG":  
116 - contextMenu.addSeparator();  
117 -  
118 - // If flash  
119 - if (tinyMCE.hasPlugin('flash') && tinyMCE.getAttrib(elm, 'class').indexOf('mceItemFlash') != -1)  
120 - contextMenu.addItem(tinyMCE.baseURL + "/plugins/flash/images/flash.gif", "$lang_flash_props", "mceFlash");  
121 - else if (tinyMCE.hasPlugin('media') && /mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(tinyMCE.getAttrib(elm, 'class')))  
122 - contextMenu.addItem(tinyMCE.baseURL + "/plugins/flash/images/flash.gif", "$lang_media_title", "mceMedia");  
123 - else  
124 - contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/image.gif", "$lang_image_props_desc", inst.hasPlugin("advimage") ? "mceAdvImage" : "mceImage");  
125 - break;  
126 -  
127 - case "HR":  
128 - contextMenu.addSeparator();  
129 - contextMenu.addItem(tinyMCE.baseURL + "/plugins/advhr/images/advhr.gif", "$lang_insert_advhr_desc", "mceAdvancedHr");  
130 - break;  
131 -  
132 - case "TABLE":  
133 - case "TD":  
134 - // Is table plugin loaded  
135 - if (inst.hasPlugin("table")) {  
136 - var colspan = (elm.nodeName == "TABLE") ? "" : getAttrib(elm, "colspan");  
137 - var rowspan = (elm.nodeName == "TABLE") ? "" : getAttrib(elm, "rowspan");  
138 -  
139 - colspan = colspan == "" ? "1" : colspan;  
140 - rowspan = rowspan == "" ? "1" : rowspan;  
141 -  
142 - contextMenu.addSeparator();  
143 - contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/cut.gif", "$lang_table_cut_row_desc", "mceTableCutRow");  
144 - contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/copy.gif", "$lang_table_copy_row_desc", "mceTableCopyRow");  
145 - contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_table_paste_row_before_desc", "mceTablePasteRowBefore", "", inst.tableRowClipboard == null);  
146 - contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_table_paste_row_after_desc", "mceTablePasteRowAfter", "", inst.tableRowClipboard == null);  
147 -  
148 - /* contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/justifyleft.gif", "$lang_justifyleft_desc", "JustifyLeft", "", false);  
149 - contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/justifycenter.gif", "$lang_justifycenter_desc", "JustifyCenter", "", false);  
150 - contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/justifyright.gif", "$lang_justifyright_desc", "JustifyRight", "", false);  
151 - contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/justifyfull.gif", "$lang_justifyfull_desc", "JustifyFull", "", false);*/  
152 - contextMenu.addSeparator();  
153 - contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table.gif", "$lang_table_desc", "mceInsertTable", "insert");  
154 - contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table.gif", "$lang_table_props_desc", "mceInsertTable");  
155 - contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_cell_props.gif", "$lang_table_cell_desc", "mceTableCellProps");  
156 - contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_delete.gif", "$lang_table_del", "mceTableDelete");  
157 - contextMenu.addSeparator();  
158 - contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_row_props.gif", "$lang_table_row_desc", "mceTableRowProps");  
159 - contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_row_before.gif", "$lang_table_row_before_desc", "mceTableInsertRowBefore");  
160 - contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_row_after.gif", "$lang_table_row_after_desc", "mceTableInsertRowAfter");  
161 - contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_delete_row.gif", "$lang_table_delete_row_desc", "mceTableDeleteRow");  
162 - contextMenu.addSeparator();  
163 - contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_col_before.gif", "$lang_table_col_before_desc", "mceTableInsertColBefore");  
164 - contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_col_after.gif", "$lang_table_col_after_desc", "mceTableInsertColAfter");  
165 - contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_delete_col.gif", "$lang_table_delete_col_desc", "mceTableDeleteCol");  
166 - contextMenu.addSeparator();  
167 - contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_split_cells.gif", "$lang_table_split_cells_desc", "mceTableSplitCells", "", (colspan == "1" && rowspan == "1"));  
168 - contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_merge_cells.gif", "$lang_table_merge_cells_desc", "mceTableMergeCells", "", false);  
169 - }  
170 - break;  
171 - }  
172 - } else {  
173 - // Add table specific  
174 - if (inst.hasPlugin("table")) {  
175 - contextMenu.addSeparator();  
176 - contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table.gif", "$lang_table_desc", "mceInsertTable", "insert");  
177 - }  
178 - }  
179 -  
180 - contextMenu.show(x, y);  
181 - }, 10);  
182 -  
183 - // Cancel default handeling  
184 - tinyMCE.cancelEvent(e);  
185 - return false;  
186 - },  
187 -  
188 - _hideContextMenu : function() {  
189 - if (TinyMCE_ContextMenuPlugin._contextMenu)  
190 - TinyMCE_ContextMenuPlugin._contextMenu.hide();  
191 - },  
192 -  
193 - _commandHandler : function(command, value) {  
194 - var cm = TinyMCE_ContextMenuPlugin._contextMenu;  
195 -  
196 - cm.hide();  
197 -  
198 - // UI must be true on these  
199 - var ui = false;  
200 - if (command == "mceInsertTable" || command == "mceTableCellProps" || command == "mceTableRowProps" || command == "mceTableMergeCells")  
201 - ui = true;  
202 -  
203 - if (command == "Paste")  
204 - value = null;  
205 -  
206 - if (tinyMCE.getParam("dialog_type") == "modal" && tinyMCE.isMSIE) {  
207 - // Cell properties will generate access denied error is this isn't done?!  
208 - window.setTimeout(function() {  
209 - cm.inst.execCommand(command, ui, value);  
210 - }, 100);  
211 - } else  
212 - cm.inst.execCommand(command, ui, value);  
213 - }  
214 -};  
215 -  
216 -tinyMCE.addPlugin("contextmenu", TinyMCE_ContextMenuPlugin);  
217 -  
218 -// Context menu class  
219 -  
220 -function TinyMCE_ContextMenu(settings) {  
221 - var doc, self = this;  
222 -  
223 - // Default value function  
224 - function defParam(key, def_val) {  
225 - settings[key] = typeof(settings[key]) != "undefined" ? settings[key] : def_val;  
226 - }  
227 -  
228 - this.isMSIE = (navigator.appName == "Microsoft Internet Explorer");  
229 -  
230 - // Setup contextmenu div  
231 - this.contextMenuDiv = document.createElement("div");  
232 - this.contextMenuDiv.className = "contextMenu";  
233 - this.contextMenuDiv.setAttribute("class", "contextMenu");  
234 - this.contextMenuDiv.style.display = "none";  
235 - this.contextMenuDiv.style.position = 'absolute';  
236 - this.contextMenuDiv.style.zindex = 1000;  
237 - this.contextMenuDiv.style.left = '0';  
238 - this.contextMenuDiv.style.top = '0';  
239 - this.contextMenuDiv.unselectable = "on";  
240 -  
241 - document.body.appendChild(this.contextMenuDiv);  
242 -  
243 - // Setup default values  
244 - defParam("commandhandler", "");  
245 - defParam("spacer_image", "images/spacer.gif");  
246 -  
247 - this.items = new Array();  
248 - this.settings = settings;  
249 - this.html = "";  
250 -  
251 - // IE Popup  
252 - if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0 && !tinyMCE.isOpera) {  
253 - this.pop = window.createPopup();  
254 - doc = this.pop.document;  
255 - doc.open();  
256 - doc.write('<html><head><link href="' + tinyMCE.baseURL + '/plugins/contextmenu/css/contextmenu.css" rel="stylesheet" type="text/css" /></head><body unselectable="yes" class="contextMenuIEPopup"></body></html>');  
257 - doc.close();  
258 - }  
259 -};  
260 -  
261 -TinyMCE_ContextMenu.prototype = {  
262 - clearAll : function() {  
263 - this.html = "";  
264 - this.contextMenuDiv.innerHTML = "";  
265 - },  
266 -  
267 - addSeparator : function() {  
268 - this.html += '<tr class="contextMenuItem"><td class="contextMenuIcon"><img src="' + this.settings['spacer_image'] + '" width="20" height="1" class="contextMenuImage" /></td><td><img class="contextMenuSeparator" width="1" height="1" src="' + this.settings['spacer_image'] + '" /></td></tr>';  
269 - },  
270 -  
271 - addItem : function(icon, title, command, value, disabled) {  
272 - if (title.charAt(0) == '$')  
273 - title = tinyMCE.getLang(title.substring(1));  
274 -  
275 - var onMouseDown = '';  
276 - var html = '';  
277 -  
278 - if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0)  
279 - onMouseDown = 'contextMenu.execCommand(\'' + command + '\', \'' + value + '\');return false;';  
280 - else  
281 - onMouseDown = this.settings['commandhandler'] + '(\'' + command + '\', \'' + value + '\');return false;';  
282 -  
283 - if (icon == "")  
284 - icon = this.settings['spacer_image'];  
285 -  
286 - if (!disabled)  
287 - html += '<tr class="contextMenuItem">';  
288 - else  
289 - html += '<tr class="contextMenuItemDisabled">';  
290 -  
291 - html += '<td class="contextMenuIcon"><img src="' + icon + '" width="20" height="20" class="contextMenuImage" /></td>';  
292 - html += '<td><div class="contextMenuText">';  
293 - html += '<a href="javascript:void(0);" onclick="' + onMouseDown + '" onmousedown="return false;">&#160;';  
294 -  
295 - // Add text  
296 - html += title;  
297 -  
298 - html += '&#160;</a>';  
299 - html += '</div></td>';  
300 - html += '</tr>';  
301 -  
302 - // Add to main  
303 - this.html += html;  
304 - },  
305 -  
306 - show : function(x, y) {  
307 - var vp, width, height, yo;  
308 -  
309 - if (this.html == "")  
310 - return;  
311 -  
312 - var html = '';  
313 -  
314 - html += '<a href="#"></a><table border="0" cellpadding="0" cellspacing="0">';  
315 - html += this.html;  
316 - html += '</table>';  
317 -  
318 - this.contextMenuDiv.innerHTML = html;  
319 -  
320 - // Get dimensions  
321 - this.contextMenuDiv.style.display = "block";  
322 - width = this.contextMenuDiv.offsetWidth;  
323 - height = this.contextMenuDiv.offsetHeight;  
324 - this.contextMenuDiv.style.display = "none";  
325 -  
326 - if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0 && !tinyMCE.isOpera) {  
327 - // Setup popup and show  
328 - this.pop.document.body.innerHTML = '<div class="contextMenu">' + html + "</div>";  
329 - this.pop.document.tinyMCE = tinyMCE;  
330 - this.pop.document.contextMenu = this;  
331 - this.pop.show(x, y, width, height);  
332 - } else {  
333 - vp = this.getViewPort();  
334 - yo = tinyMCE.isMSIE5_0 ? document.body.scrollTop : self.pageYOffset;  
335 - this.contextMenuDiv.style.left = (x > vp.left + vp.width - width ? vp.left + vp.width - width : x) + 'px';  
336 - this.contextMenuDiv.style.top = (y > vp.top + vp.height - height ? vp.top + vp.height - height : y) + 'px';  
337 - this.contextMenuDiv.style.display = "block";  
338 - }  
339 - },  
340 -  
341 - getViewPort : function() {  
342 - return {  
343 - left : self.pageXOffset || self.document.documentElement.scrollLeft || self.document.body.scrollLeft,  
344 - top: self.pageYOffset || self.document.documentElement.scrollTop || self.document.body.scrollTop,  
345 - width : document.documentElement.offsetWidth || document.body.offsetWidth,  
346 - height : self.innerHeight || document.documentElement.clientHeight || document.body.clientHeight  
347 - };  
348 - },  
349 -  
350 - hide : function() {  
351 - if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0 && !tinyMCE.isOpera)  
352 - this.pop.hide();  
353 - else  
354 - this.contextMenuDiv.style.display = "none";  
355 - },  
356 -  
357 - execCommand : function(command, value) {  
358 - eval(this.settings['commandhandler'] + "(command, value);");  
359 - }  
360 -};  
public/javascripts/tiny_mce/plugins/contextmenu/images/spacer.gif

43 Bytes

public/javascripts/tiny_mce/plugins/contextmenu/readme.txt
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -Check the TinyMCE documentation for details on this plugin.  
public/javascripts/tiny_mce/plugins/devkit/css/devkit.css
@@ -1,117 +0,0 @@ @@ -1,117 +0,0 @@
1 -body {  
2 - overflow: hidden;  
3 -}  
4 -  
5 -h1 {  
6 - font-size: 14px;  
7 - margin: 0 0 10px 0;  
8 -}  
9 -  
10 -h2 {  
11 - font-size: 12px;  
12 - margin: 3px 0 3px 0;  
13 -}  
14 -  
15 -h3 {  
16 - font-size: 11px;  
17 - margin: 3px 0 3px 0;  
18 -}  
19 -  
20 -#log {  
21 - font-family: Verdana;  
22 - border: 1px solid gray;  
23 - width: 100%; height: 240px;  
24 - overflow: scroll;  
25 - white-space: nowrap;  
26 -}  
27 -  
28 -#log span {  
29 - display: block;  
30 -}  
31 -  
32 -#log span.msg {  
33 - float: left;  
34 -}  
35 -  
36 -#log span.time {  
37 - float: left;  
38 -}  
39 -  
40 -#log br {  
41 - clear: both;  
42 -}  
43 -  
44 -#logfilter {  
45 - width: 350px;  
46 -}  
47 -  
48 -#logenabled {  
49 - border: 0;  
50 -}  
51 -  
52 -#settings_panel span, #info_panel span, #content_panel span, #command_states_panel span, #undo_redo_panel span {  
53 - display: block;  
54 - margin: 5px 0 5px 0;  
55 -}  
56 -  
57 -div.data {  
58 - width: 100%; height: 240px;  
59 - overflow: scroll;  
60 - border: 1px solid gray;  
61 -}  
62 -  
63 -#misc_panel div.data {  
64 - height: 270px;  
65 -}  
66 -  
67 -.data input {  
68 - width: 265px;  
69 - border: 0;  
70 -}  
71 -  
72 -.data h2 {  
73 - margin-left: 5px;  
74 -}  
75 -  
76 -.data h3 {  
77 - margin-left: 7px;  
78 -}  
79 -  
80 -.data div {  
81 - margin-left: 7px;  
82 -}  
83 -  
84 -.data table {  
85 - margin: 0 0 15px 15px;  
86 -}  
87 -  
88 -.data p {  
89 - margin: 0; padding: 0;  
90 - margin-top: 5px;  
91 - margin-left: 5px;  
92 -}  
93 -  
94 -table, td {  
95 - border: 1px solid gray;  
96 - border-collapse: collapse;  
97 -}  
98 -  
99 -#flip {  
100 - position: absolute;  
101 - left: 295; top: 384px;  
102 -}  
103 -  
104 -.bspec {  
105 - color: gray;  
106 -}  
107 -  
108 -.dep {  
109 - color: #880000;  
110 -}  
111 -  
112 -.col1 {  
113 - width: 265px;  
114 -}  
115 -  
116 -div.undodata {  
117 -}  
public/javascripts/tiny_mce/plugins/devkit/css/devkit_ui.css
@@ -1,15 +0,0 @@ @@ -1,15 +0,0 @@
1 -#devkit {  
2 - position: absolute;  
3 - top: -385px; right: 0;  
4 - width: 640px; height: 390px;  
5 - border: 1px solid black;  
6 - z-index: 10000;  
7 -}  
8 -  
9 -.devkitup {  
10 - top: -385px !important;  
11 -}  
12 -  
13 -.devkitdown {  
14 - top: 0 !important;  
15 -}  
public/javascripts/tiny_mce/plugins/devkit/devkit.htm
@@ -1,140 +0,0 @@ @@ -1,140 +0,0 @@
1 -<html xmlns="http://www.w3.org/1999/xhtml">  
2 -<head>  
3 - <title>{$lang_devkit_title}</title>  
4 - <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>  
5 - <script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>  
6 - <script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>  
7 - <script language="javascript" type="text/javascript" src="jscripts/devkit.js"></script>  
8 - <script language="javascript" type="text/javascript" src="jscripts/diff.js"></script>  
9 - <link href="css/devkit.css" rel="stylesheet" type="text/css" />  
10 - <base target="_self" />  
11 -</head>  
12 -<body id="devkit" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">  
13 - <form action="#">  
14 - <h1>{$lang_devkit_title}</h1>  
15 -  
16 - <div class="tabs">  
17 - <ul>  
18 - <li id="log_tab" class="current"><span><a href="javascript:mcTabs.displayTab('log_tab','log_panel');" onmousedown="return false;">{$lang_devkit_log_tab}</a></span></li>  
19 - <li id="info_tab"><span><a href="javascript:mcTabs.displayTab('info_tab','info_panel');" onmousedown="return false;">{$lang_devkit_info_tab}</a></span></li>  
20 - <li id="settings_tab"><span><a href="javascript:mcTabs.displayTab('settings_tab','settings_panel');" onmousedown="return false;">{$lang_devkit_settings_tab}</a></span></li>  
21 - <li id="content_tab"><span><a href="javascript:mcTabs.displayTab('content_tab','content_panel');" onmousedown="return false;">{$lang_devkit_content_tab}</a></span></li>  
22 - <!-- <li id="command_states_tab"><span><a href="javascript:mcTabs.displayTab('command_states_tab','command_states_panel');" onmousedown="return false;">{$lang_devkit_command_states_tab}</a></span></li> -->  
23 - <li id="undo_redo_tab"><span><a href="javascript:mcTabs.displayTab('undo_redo_tab','undo_redo_panel');" onmousedown="return false;">{$lang_devkit_undo_redo_tab}</a></span></li>  
24 - <li id="misc_tab"><span><a href="javascript:mcTabs.displayTab('misc_tab','misc_panel');" onmousedown="return false;">{$lang_devkit_misc_tab}</a></span></li>  
25 - </ul>  
26 - </div>  
27 -  
28 - <div class="panel_wrapper">  
29 - <div id="log_panel" class="panel current">  
30 - <fieldset>  
31 - <legend>{$lang_devkit_log_tab}</legend>  
32 -  
33 - <div style="float: left">  
34 - <label>{$lang_devkit_filter} </label><input type="text" id="logfilter" name="logfilter" value="" onchange="changeFilter(this.value);" />  
35 - </div>  
36 -  
37 - <div style="float: left">  
38 - <input type="checkbox" id="logenabled" name="logenabled" value="true" checked="checked" onclick="toggleLog(this.checked);" />  
39 - </div>  
40 -  
41 - <div style="float: right">  
42 - <a href="javascript:clearLog();">[{$lang_devkit_clear_log}]</a>  
43 - </div>  
44 -  
45 - <br style="clear: both" />  
46 -  
47 - <div id="log">  
48 - </div>  
49 -  
50 - <input type="checkbox" id="debug_events" name="debug_events" class="checkbox" onclick="toggleDebugEvents(this.checked);" /><label for="debug_events" onclick="toggleDebugEvents(this.form.debug_events.checked);">{$lang_devkit_debug_events}</label>  
51 - </fieldset>  
52 - </div>  
53 -  
54 - <div id="info_panel" class="panel">  
55 - <fieldset>  
56 - <legend>{$lang_devkit_info_tab}</legend>  
57 -  
58 - <span><a href="javascript:renderInfo();">[{$lang_devkit_refresh}]</a></span>  
59 -  
60 - <div id="info" class="data">  
61 - <p>{$lang_devkit_info_help}</p>  
62 - </div>  
63 - </fieldset>  
64 - </div>  
65 -  
66 - <div id="settings_panel" class="panel">  
67 - <fieldset>  
68 - <legend>{$lang_devkit_settings_tab}</legend>  
69 -  
70 - <span><a href="javascript:renderSettings();">[{$lang_devkit_refresh}]</a></span>  
71 -  
72 - <div id="settings" class="data">  
73 - <p>{$lang_devkit_settings_help}</p>  
74 - </div>  
75 - </fieldset>  
76 - </div>  
77 -  
78 - <div id="content_panel" class="panel">  
79 - <fieldset>  
80 - <legend>{$lang_devkit_content_tab}</legend>  
81 -  
82 - <span><a href="javascript:renderContent();">[{$lang_devkit_refresh}]</a></span>  
83 -  
84 - <div id="content" class="data">  
85 - <p>{$lang_devkit_content_help}</p>  
86 - </div>  
87 - </fieldset>  
88 - </div>  
89 -  
90 - <div id="command_states_panel" class="panel">  
91 - <fieldset>  
92 - <legend>{$lang_devkit_command_states_tab}</legend>  
93 -  
94 - <span><a href="javascript:renderCommandStates();">[{$lang_devkit_refresh}]</a></span>  
95 -  
96 - <div id="command_states" class="data">  
97 - <p>{$lang_devkit_command_states_help}</p>  
98 - </div>  
99 - </fieldset>  
100 - </div>  
101 -  
102 - <div id="undo_redo_panel" class="panel">  
103 - <fieldset>  
104 - <legend>{$lang_devkit_undo_redo_tab}</legend>  
105 -  
106 - <span><a href="javascript:renderUndoRedo();">[{$lang_devkit_refresh}]</a></span>  
107 -  
108 - <div id="undo_redo" class="data">  
109 - <p>{$lang_devkit_undo_redo_help}</p>  
110 - </div>  
111 -  
112 - <input type="checkbox" id="undo_diff" name="undo_diff" class="checkbox" /><label for="undo_diff">{$lang_devkit_undo_diff}</label>  
113 - </fieldset>  
114 - </div>  
115 -  
116 - <div id="misc_panel" class="panel">  
117 - <fieldset>  
118 - <legend>{$lang_devkit_misc_tab}</legend>  
119 -  
120 - <div class="data">  
121 - <p>{$lang_devkit_misc_help}</p>  
122 - <hr />  
123 - <p>Selection: <a href="#" onmousedown="return storeSelection();">[Store selection]</a> <a href="#" onmousedown="return restoreSelection();">[Restore selection]</a></p>  
124 - <hr />  
125 - <div><strong>Insert custom HTML content</strong></div>  
126 - <div><textarea id="htmlcont" name="htmlcont" style="width: 90%" rows="5"></textarea></div>  
127 - <div><a href="#" onclick="return tinyMCE.execCommand('mceInsertContent',false,document.getElementById('htmlcont').value);">[Insert content]</a></div>  
128 - <hr />  
129 - <div><strong>Eval JS:</strong></div>  
130 - <div><textarea id="jscont" name="jscont" style="width: 90%" rows="5">tinyMCE.execCommand('Bold',false,null);</textarea></div>  
131 - <div><a href="#" onclick="return parent.window.eval(document.getElementById('jscont').value);">[Evaluate]</a></div>  
132 - </div>  
133 - </fieldset>  
134 - </div>  
135 - </div>  
136 - </form>  
137 -  
138 - <div id="flip"><a href="javascript:toggleFlip();" onmousedown="return false;"><img id="flipbtn" src="images/flip_down.gif" border="0" /></a></div>  
139 -</body>  
140 -</html>  
public/javascripts/tiny_mce/plugins/devkit/editor_plugin.js
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -tinyMCE.importPluginLanguagePack('devkit');var TinyMCE_DevKitPlugin={_logFilter:'\\[(importCSS|execCommand|execInstanceCommand|debug)\\]',_logPadding:'',_startTime:null,_benchMark:false,_winLoaded:false,_isDebugEvents:false,getInfo:function(){return{longname:'Development Kit',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/devkit',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},initInstance:function(inst){this._setup()},_setup:function(){if(this._loaded)return;this._loaded=true;document.___TinyMCE=tinyMCE;this._logFilter=tinyMCE.getParam('devkit_log_filter',this._logFilter);this._benchMark=tinyMCE.getParam('devkit_bench_mark',false);var ifr=document.createElement('iframe');ifr.setAttribute("id","devkit");ifr.setAttribute("frameBorder","0");ifr.setAttribute("src",tinyMCE.baseURL+'/plugins/devkit/devkit.htm');document.body.appendChild(ifr);tinyMCE.importCSS(document,tinyMCE.baseURL+'/plugins/devkit/css/devkit_ui.css')},_start:function(){this._logPadding+='\u00a0';return new Date().getTime()},_end:function(st){if(this._logPadding.length>0)this._logPadding=this._logPadding.substring(0,this._logPadding.length-1);if(this._benchMark)this._log("benchmark","Execution time: "+(new Date().getTime()-st))},_log:function(t){var m,a,i,e=document.getElementById('devkit'),now=new Date().getTime();if(!this._startTime)this._startTime=now;m=(this._logPadding.length>1?this._logPadding:'')+'['+(now-this._startTime)+'] ['+t+'] ';a=this._log.arguments;for(i=1;i<a.length;i++){if(typeof(a[i])=='undefined')continue;if(i>1)m+=', ';m+=a[i]}if(!new RegExp(this._logFilter,'gi').test(m)){if(this._logPadding.length>0)this._logPadding=this._logPadding.substring(0,this._logPadding.length-1);return}if(!this._winLoaded)tinyMCE.log[tinyMCE.log.length]=m;else e.contentWindow.debug(m)},_debugEvents:function(s){var i,ld,inst,n,ev=['CheckboxStateChange','DOMAttrModified','DOMMenuItemActive','DOMMenuItemInactive','DOMMouseScroll','DOMNodeInserted','DOMNodeRemoved','RadioStateChange','blur','broadcast','change','click','close','command','commandupdate','contextmenu','dblclick','dragdrop','dragenter','dragexit','draggesture','dragover','focus','input','keydown','keypress','keyup','load','mousedown','mouseout','mouseover','mouseup','overflow','overflowchanged','popuphidden','popuphiding','popupshowing','popupshown','select','syncfrompreference','synctopreference','underflow','unload','abort','activate','afterprint','afterupdate','beforeactivate','beforecopy','beforecut','beforedeactivate','beforeeditfocus','beforepaste','beforeprint','beforeunload','beforeupdate','bounce','cellchange','controlselect','copy','cut','dataavailable','datasetchanged','datasetcomplete','deactivate','dragend','dragleave','dragstart','drop','error','errorupdate','filterchange','finish','focusin','focusout','help','layoutcomplete','losecapture','mouseenter','mouseleave','mousewheel','move','moveend','movestart','paste','propertychange','readystatechange','reset','resize','resizeend','resizestart','rowenter','rowexit','rowsdelete','rowsinserted','scroll','selectionchange','selectstart','start','stop','submit'];if(TinyMCE_DevKitPlugin._isDebugEvents==s)return;TinyMCE_DevKitPlugin._isDebugEvents=s;for(n in tinyMCE.instances){inst=tinyMCE.instances[n];if(!tinyMCE.isInstance(inst)||inst.getDoc()==ld)continue;ld=inst.getDoc();for(i=0;i<ev.length;i++){if(s)tinyMCE.addEvent(ld,ev[i],TinyMCE_DevKitPlugin._debugEvent);else tinyMCE.removeEvent(ld,ev[i],TinyMCE_DevKitPlugin._debugEvent)}}},_debugEvent:function(e){var t;e=e?e:tinyMCE.selectedInstance.getWin().event;t=e.srcElement?e.srcElement:e.target;tinyMCE.debug(e.type,t?t.nodeName:'')},_serialize:function(o){var i,v,s=TinyMCE_DevKitPlugin._serialize;if(o==null)return'null';switch(typeof o){case'string':v='\bb\tt\nn\ff\rr\""\'\'\\\\';return'"'+o.replace(new RegExp('([\u0080-\uFFFF\\x00-\\x1f\\"])','g'),function(a,b){i=v.indexOf(b);if(i+1)return'\\'+v.charAt(i+1);a=b.charCodeAt().toString(16);return'\\u'+'0000'.substring(a.length)+a})+'"';case'object':if(o instanceof Array){for(i=0,v='[';i<o.length;i++)v+=(i>0?',':'')+s(o[i]);return v+']'}v='{';for(i in o)v+=typeof o[i]!='function'?(v.length>1?',"':'"')+i+'":'+s(o[i]):'';return v+'}'}return''+o}};tinyMCE.__debug=tinyMCE.debug;tinyMCE.debug=function(){var a,i,m='',now=new Date().getTime(),start=TinyMCE_DevKitPlugin._startTime;if(!start)TinyMCE_DevKitPlugin._startTime=start=now;a=this.debug.arguments;for(i=0;i<a.length;i++){if(typeof(a[i])=='undefined')continue;if(i>0)m+=', ';m+=a[i]}TinyMCE_DevKitPlugin._log('debug',m)};tinyMCE.dump=function(o){tinyMCE.debug(TinyMCE_DevKitPlugin._serialize(o))};tinyMCE.sleep=function(t){var s=new Date().getTime(),b;while(new Date().getTime()-s<t)b=1};tinyMCE.__execCommand=tinyMCE.execCommand;tinyMCE.execCommand=function(command,user_interface,value){var r,st,dk=TinyMCE_DevKitPlugin;st=dk._start();dk._log('execCommand',command,user_interface,value);r=tinyMCE.__execCommand(command,user_interface,value);dk._end(st);return r};tinyMCE.__execInstanceCommand=tinyMCE.execInstanceCommand;tinyMCE.execInstanceCommand=function(editor_id,command,user_interface,value,focus){var r,st,dk=TinyMCE_DevKitPlugin;st=dk._start();dk._log('execInstanceCommand',editor_id,command,user_interface,value);r=tinyMCE.__execInstanceCommand(editor_id,command,user_interface,value);dk._end(st);return r};TinyMCE_Engine.prototype.__handleEvent=TinyMCE_Engine.prototype.handleEvent;TinyMCE_Engine.prototype.handleEvent=function(e){var r,st,dk=TinyMCE_DevKitPlugin;st=dk._start();dk._log('handleEvent',e.type);r=tinyMCE.__handleEvent(e);dk._end(st);return r};tinyMCE.__importCSS=tinyMCE.importCSS;tinyMCE.importCSS=function(doc,css){var r,st,dk=TinyMCE_DevKitPlugin;st=dk._start();dk._log('importCSS',doc,css);r=tinyMCE.__importCSS(doc,css);dk._end(st);return r};tinyMCE.__triggerNodeChange=tinyMCE.triggerNodeChange;tinyMCE.triggerNodeChange=function(focus,setup_content){var r,st,dk=TinyMCE_DevKitPlugin;st=dk._start();dk._log('triggerNodeChange',focus,setup_content);r=tinyMCE.__triggerNodeChange(focus,setup_content);dk._end(st);return r};tinyMCE.__dispatchCallback=tinyMCE.dispatchCallback;tinyMCE.dispatchCallback=function(i,p,n){var r,st,dk=TinyMCE_DevKitPlugin;st=dk._start();dk._log('dispatchCallback',i,p,n);r=tinyMCE.__dispatchCallback(i,p,n);dk._end(st);return r};tinyMCE.__executeCallback=tinyMCE.executeCallback;tinyMCE.executeCallback=function(i,p,n){var r,st,dk=TinyMCE_DevKitPlugin;st=dk._start();dk._log('executeCallback',i,p,n);r=tinyMCE.__executeCallback(i,p,n);dk._end(st);return r};tinyMCE.__execCommandCallback=tinyMCE.execCommandCallback;tinyMCE.execCommandCallback=function(i,p,n){var r,st,dk=TinyMCE_DevKitPlugin;st=dk._start();dk._log('execCommandCallback',i,p,n);r=tinyMCE.__execCommandCallback(i,p,n);dk._end(st);return r};tinyMCE.addPlugin("devkit",TinyMCE_DevKitPlugin);  
2 \ No newline at end of file 0 \ No newline at end of file
public/javascripts/tiny_mce/plugins/devkit/editor_plugin_src.js
@@ -1,325 +0,0 @@ @@ -1,325 +0,0 @@
1 -/**  
2 - * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $  
3 - *  
4 - * @author Moxiecode  
5 - * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.  
6 - */  
7 -  
8 -tinyMCE.importPluginLanguagePack('devkit');  
9 -  
10 -var TinyMCE_DevKitPlugin = {  
11 - _logFilter : '\\[(importCSS|execCommand|execInstanceCommand|debug)\\]',  
12 - _logPadding : '',  
13 - _startTime : null,  
14 - _benchMark : false,  
15 - _winLoaded : false,  
16 - _isDebugEvents : false,  
17 -  
18 - getInfo : function() {  
19 - return {  
20 - longname : 'Development Kit',  
21 - author : 'Moxiecode Systems AB',  
22 - authorurl : 'http://tinymce.moxiecode.com',  
23 - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/devkit',  
24 - version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion  
25 - };  
26 - },  
27 -  
28 - initInstance : function(inst) {  
29 - this._setup();  
30 - },  
31 -  
32 - _setup : function() {  
33 - if (this._loaded)  
34 - return;  
35 -  
36 - this._loaded = true;  
37 -  
38 - // Register a document reference for more easy access in the FF DOM inspector  
39 - document.___TinyMCE = tinyMCE;  
40 -  
41 - // Setup devkit by settings  
42 - this._logFilter = tinyMCE.getParam('devkit_log_filter', this._logFilter);  
43 - this._benchMark = tinyMCE.getParam('devkit_bench_mark', false);  
44 -  
45 - var ifr = document.createElement('iframe');  
46 -  
47 - ifr.setAttribute("id", "devkit");  
48 - ifr.setAttribute("frameBorder", "0");  
49 - ifr.setAttribute("src", tinyMCE.baseURL + '/plugins/devkit/devkit.htm');  
50 -  
51 - document.body.appendChild(ifr);  
52 -  
53 - // Workaround for strange IE reload bug  
54 - //if (tinyMCE.isRealIE)  
55 - // document.getElementById('devkit').outerHTML = document.getElementById('devkit').outerHTML;  
56 -  
57 - tinyMCE.importCSS(document, tinyMCE.baseURL + '/plugins/devkit/css/devkit_ui.css');  
58 - },  
59 -  
60 - _start : function() {  
61 - this._logPadding += '\u00a0';  
62 -  
63 - return new Date().getTime();  
64 - },  
65 -  
66 - _end : function(st) {  
67 - if (this._logPadding.length > 0)  
68 - this._logPadding = this._logPadding.substring(0, this._logPadding.length - 1);  
69 -  
70 - if (this._benchMark)  
71 - this._log("benchmark", "Execution time: " + (new Date().getTime() - st));  
72 - },  
73 -  
74 - _log : function(t) {  
75 - var m, a, i, e = document.getElementById('devkit'), now = new Date().getTime();  
76 -  
77 - if (!this._startTime)  
78 - this._startTime = now;  
79 -  
80 - m = (this._logPadding.length > 1 ? this._logPadding : '') + '[' + (now - this._startTime) + '] [' + t + '] ';  
81 -  
82 - a = this._log.arguments;  
83 - for (i=1; i<a.length; i++) {  
84 - if (typeof(a[i]) == 'undefined')  
85 - continue;  
86 -  
87 - if (i > 1)  
88 - m += ', ';  
89 -  
90 - m += a[i];  
91 - }  
92 -  
93 - if (!new RegExp(this._logFilter, 'gi').test(m)) {  
94 - if (this._logPadding.length > 0)  
95 - this._logPadding = this._logPadding.substring(0, this._logPadding.length - 1);  
96 -  
97 - return;  
98 - }  
99 -  
100 - if (!this._winLoaded)  
101 - tinyMCE.log[tinyMCE.log.length] = m;  
102 - else  
103 - e.contentWindow.debug(m);  
104 - },  
105 -  
106 - _debugEvents : function(s) {  
107 - var i, ld, inst, n, ev = ['CheckboxStateChange','DOMAttrModified','DOMMenuItemActive',  
108 - 'DOMMenuItemInactive','DOMMouseScroll','DOMNodeInserted','DOMNodeRemoved',  
109 - 'RadioStateChange','blur','broadcast','change','click','close','command',  
110 - 'commandupdate','contextmenu','dblclick','dragdrop','dragenter','dragexit',  
111 - 'draggesture','dragover','focus','input','keydown','keypress','keyup','load',  
112 - 'mousedown','mouseout','mouseover','mouseup','overflow','overflowchanged','popuphidden',  
113 - 'popuphiding','popupshowing','popupshown','select','syncfrompreference','synctopreference',  
114 - 'underflow','unload','abort','activate','afterprint','afterupdate','beforeactivate',  
115 - 'beforecopy','beforecut','beforedeactivate','beforeeditfocus','beforepaste','beforeprint',  
116 - 'beforeunload','beforeupdate','bounce','cellchange','controlselect','copy','cut',  
117 - 'dataavailable','datasetchanged','datasetcomplete','deactivate','dragend','dragleave',  
118 - 'dragstart','drop','error','errorupdate','filterchange','finish','focusin','focusout',  
119 - 'help','layoutcomplete','losecapture','mouseenter','mouseleave','mousewheel',  
120 - 'move','moveend','movestart','paste','propertychange','readystatechange','reset','resize',  
121 - 'resizeend','resizestart','rowenter','rowexit','rowsdelete','rowsinserted','scroll',  
122 - 'selectionchange','selectstart','start','stop','submit'];  
123 - // mousemove  
124 -  
125 - if (TinyMCE_DevKitPlugin._isDebugEvents == s)  
126 - return;  
127 -  
128 - TinyMCE_DevKitPlugin._isDebugEvents = s;  
129 -  
130 - for (n in tinyMCE.instances) {  
131 - inst = tinyMCE.instances[n];  
132 -  
133 - if (!tinyMCE.isInstance(inst) || inst.getDoc() == ld)  
134 - continue;  
135 -  
136 - ld = inst.getDoc();  
137 -  
138 - for (i=0; i<ev.length; i++) {  
139 - if (s)  
140 - tinyMCE.addEvent(ld, ev[i], TinyMCE_DevKitPlugin._debugEvent);  
141 - else  
142 - tinyMCE.removeEvent(ld, ev[i], TinyMCE_DevKitPlugin._debugEvent);  
143 - }  
144 - }  
145 - },  
146 -  
147 - _debugEvent : function(e) {  
148 - var t;  
149 -  
150 - e = e ? e : tinyMCE.selectedInstance.getWin().event;  
151 - t = e.srcElement ? e.srcElement : e.target;  
152 -  
153 - tinyMCE.debug(e.type, t ? t.nodeName : '');  
154 - },  
155 -  
156 - _serialize : function(o) {  
157 - var i, v, s = TinyMCE_DevKitPlugin._serialize;  
158 -  
159 - if (o == null)  
160 - return 'null';  
161 -  
162 - switch (typeof o) {  
163 - case 'string':  
164 - v = '\bb\tt\nn\ff\rr\""\'\'\\\\';  
165 -  
166 - return '"' + o.replace(new RegExp('([\u0080-\uFFFF\\x00-\\x1f\\"])', 'g'), function(a, b) {  
167 - i = v.indexOf(b);  
168 -  
169 - if (i+1)  
170 - return '\\' + v.charAt(i + 1);  
171 -  
172 - a = b.charCodeAt().toString(16);  
173 -  
174 - return '\\u' + '0000'.substring(a.length) + a;  
175 - }) + '"';  
176 -  
177 - case 'object':  
178 - if (o instanceof Array) {  
179 - for (i=0, v = '['; i<o.length; i++)  
180 - v += (i > 0 ? ',' : '') + s(o[i]);  
181 -  
182 - return v + ']';  
183 - }  
184 -  
185 - v = '{';  
186 -  
187 - for (i in o)  
188 - v += typeof o[i] != 'function' ? (v.length > 1 ? ',"' : '"') + i + '":' + s(o[i]) : '';  
189 -  
190 - return v + '}';  
191 - }  
192 -  
193 - return '' + o;  
194 - }  
195 -};  
196 -  
197 -// Patch and piggy back functions  
198 -tinyMCE.__debug = tinyMCE.debug;  
199 -tinyMCE.debug = function() {  
200 - var a, i, m = '', now = new Date().getTime(), start = TinyMCE_DevKitPlugin._startTime;  
201 -  
202 - if (!start)  
203 - TinyMCE_DevKitPlugin._startTime = start = now;  
204 -  
205 - a = this.debug.arguments;  
206 - for (i=0; i<a.length; i++) {  
207 - if (typeof(a[i]) == 'undefined')  
208 - continue;  
209 -  
210 - if (i > 0)  
211 - m += ', ';  
212 -  
213 - m += a[i];  
214 - }  
215 -  
216 - TinyMCE_DevKitPlugin._log('debug', m);  
217 -};  
218 -  
219 -tinyMCE.dump = function(o) {  
220 - tinyMCE.debug(TinyMCE_DevKitPlugin._serialize(o));  
221 -};  
222 -  
223 -tinyMCE.sleep = function(t) {  
224 - var s = new Date().getTime(), b;  
225 -  
226 - while (new Date().getTime() - s < t) b=1;  
227 -};  
228 -  
229 -tinyMCE.__execCommand = tinyMCE.execCommand;  
230 -tinyMCE.execCommand = function(command, user_interface, value) {  
231 - var r, st, dk = TinyMCE_DevKitPlugin;  
232 -  
233 - st = dk._start();  
234 - dk._log('execCommand', command, user_interface, value);  
235 - r = tinyMCE.__execCommand(command, user_interface, value);  
236 - dk._end(st);  
237 -  
238 - return r;  
239 -};  
240 -  
241 -tinyMCE.__execInstanceCommand = tinyMCE.execInstanceCommand;  
242 -tinyMCE.execInstanceCommand = function(editor_id, command, user_interface, value, focus) {  
243 - var r, st, dk = TinyMCE_DevKitPlugin;  
244 -  
245 - st = dk._start();  
246 - dk._log('execInstanceCommand', editor_id, command, user_interface, value);  
247 - r = tinyMCE.__execInstanceCommand(editor_id, command, user_interface, value);  
248 - dk._end(st);  
249 -  
250 - return r;  
251 -};  
252 -  
253 -TinyMCE_Engine.prototype.__handleEvent = TinyMCE_Engine.prototype.handleEvent;  
254 -TinyMCE_Engine.prototype.handleEvent = function(e) {  
255 - var r, st, dk = TinyMCE_DevKitPlugin;  
256 -  
257 - st = dk._start();  
258 - dk._log('handleEvent', e.type);  
259 - r = tinyMCE.__handleEvent(e);  
260 - dk._end(st);  
261 -  
262 - return r;  
263 -};  
264 -  
265 -tinyMCE.__importCSS = tinyMCE.importCSS;  
266 -tinyMCE.importCSS = function(doc, css) {  
267 - var r, st, dk = TinyMCE_DevKitPlugin;  
268 -  
269 - st = dk._start();  
270 - dk._log('importCSS', doc, css);  
271 - r = tinyMCE.__importCSS(doc, css);  
272 - dk._end(st);  
273 -  
274 - return r;  
275 -};  
276 -  
277 -tinyMCE.__triggerNodeChange = tinyMCE.triggerNodeChange;  
278 -tinyMCE.triggerNodeChange = function(focus, setup_content) {  
279 - var r, st, dk = TinyMCE_DevKitPlugin;  
280 -  
281 - st = dk._start();  
282 - dk._log('triggerNodeChange', focus, setup_content);  
283 - r = tinyMCE.__triggerNodeChange(focus, setup_content);  
284 - dk._end(st);  
285 -  
286 - return r;  
287 -};  
288 -  
289 -tinyMCE.__dispatchCallback = tinyMCE.dispatchCallback;  
290 -tinyMCE.dispatchCallback = function(i, p, n) {  
291 - var r, st, dk = TinyMCE_DevKitPlugin;  
292 -  
293 - st = dk._start();  
294 - dk._log('dispatchCallback', i, p, n);  
295 - r = tinyMCE.__dispatchCallback(i, p, n);  
296 - dk._end(st);  
297 -  
298 - return r;  
299 -};  
300 -  
301 -tinyMCE.__executeCallback = tinyMCE.executeCallback;  
302 -tinyMCE.executeCallback = function(i, p, n) {  
303 - var r, st, dk = TinyMCE_DevKitPlugin;  
304 -  
305 - st = dk._start();  
306 - dk._log('executeCallback', i, p, n);  
307 - r = tinyMCE.__executeCallback(i, p, n);  
308 - dk._end(st);  
309 -  
310 - return r;  
311 -};  
312 -  
313 -tinyMCE.__execCommandCallback = tinyMCE.execCommandCallback;  
314 -tinyMCE.execCommandCallback = function(i, p, n) {  
315 - var r, st, dk = TinyMCE_DevKitPlugin;  
316 -  
317 - st = dk._start();  
318 - dk._log('execCommandCallback', i, p, n);  
319 - r = tinyMCE.__execCommandCallback(i, p, n);  
320 - dk._end(st);  
321 -  
322 - return r;  
323 -};  
324 -  
325 -tinyMCE.addPlugin("devkit", TinyMCE_DevKitPlugin);  
public/javascripts/tiny_mce/plugins/devkit/images/flip_down.gif

179 Bytes

public/javascripts/tiny_mce/plugins/devkit/images/flip_up.gif

193 Bytes

public/javascripts/tiny_mce/plugins/devkit/jscripts/devkit.js
@@ -1,331 +0,0 @@ @@ -1,331 +0,0 @@
1 -var devkit = parent.tinyMCE.plugins['devkit'], logEnabled = true, flip = false, book = null;  
2 -  
3 -function init() {  
4 - var log, i, f = document.forms[0];  
5 -  
6 - devkit._winLoaded = true;  
7 -  
8 - log = tinyMCE.log;  
9 -  
10 - for (i=0; i<log.length; i++)  
11 - debug(log[i]);  
12 -  
13 - f.logfilter.value = devkit._logFilter;  
14 -}  
15 -  
16 -function changeFilter(f) {  
17 - devkit._logFilter = f;  
18 -}  
19 -  
20 -function toggleLog(s) {  
21 - logEnabled = s;  
22 -}  
23 -  
24 -function toggleFlip() {  
25 - document.getElementById('flipbtn').src = flip ? 'images/flip_down.gif' : 'images/flip_up.gif';  
26 -  
27 - if (flip)  
28 - parent.document.getElementById('devkit').className = 'devkitup';  
29 - else  
30 - parent.document.getElementById('devkit').className = 'devkitdown';  
31 -  
32 - flip = !flip;  
33 -}  
34 -  
35 -function debug(s) {  
36 - var d, l, n;  
37 -  
38 - if (!logEnabled || !new RegExp(devkit._logFilter, 'gi').test(s))  
39 - return;  
40 -  
41 - d = document;  
42 - l = d.getElementById('log');  
43 - n = d.createElement('span');  
44 -  
45 - n.innerHTML = tinyMCE.xmlEncode(s);  
46 -  
47 - l.appendChild(n);  
48 - l.scrollTop = l.scrollHeight;  
49 -}  
50 -  
51 -function renderInfo() {  
52 - var se = document.getElementById('info'), n, sn, inst, h = '', sel, rng, instCount = 0, rc;  
53 -  
54 - h += '<h2>Browser info:</h2>';  
55 -  
56 - h += '<table border="0" cellpadding="0" cellspacing="0" class="data">';  
57 - h += addRenderInfo('navigator.userAgent', navigator.userAgent);  
58 - h += addRenderInfo('navigator.appName', navigator.appName);  
59 - h += addRenderInfo('navigator.platform', navigator.platform);  
60 - h += addRenderInfo('navigator.language', navigator.language, 'bspec');  
61 - h += addRenderInfo('navigator.browserLanguage', navigator.browserLanguage, 'bspec');  
62 - h += addRenderInfo('navigator.systemLanguage', navigator.systemLanguage, 'bspec');  
63 - h += addRenderInfo('navigator.userLanguage', navigator.userLanguage, 'bspec');  
64 - h += addRenderInfo('opera.buildNumber("inconspicuous")', typeof(opera) != 'undefined' && opera.buildNumber ? opera.buildNumber('inconspicuous') : null, 'bspec');  
65 - h += addRenderInfo('window.innerWidth', parent.window.innerWidth, 'bspec');  
66 - h += addRenderInfo('window.innerHeight', parent.window.innerHeight, 'bspec');  
67 - h += addRenderInfo('document.body.offsetWidth', parent.document.body.offsetWidth);  
68 - h += addRenderInfo('document.body.offsetHeight', parent.document.body.offsetHeight);  
69 - h += addRenderInfo('screen.width', screen.width);  
70 - h += addRenderInfo('screen.height', screen.height);  
71 - h += addRenderInfo('screen.availWidth', screen.availWidth);  
72 - h += addRenderInfo('screen.availHeight', screen.availHeight);  
73 - h += addRenderInfo('screen.colorDepth', screen.colorDepth);  
74 - h += addRenderInfo('screen.pixelDepth', screen.pixelDepth, 'bspec');  
75 - h += addRenderInfo('document.contentType', document.contentType, 'bspec');  
76 - h += '</table>';  
77 -  
78 - h += '<h2>TinyMCE_Engine info:</h2>';  
79 -  
80 - h += '<table border="0" cellpadding="0" cellspacing="0" class="data">';  
81 - h += addRenderInfo('baseURL', tinyMCE.baseURL);  
82 - h += addRenderInfo('selectedInstance.editorId', tinyMCE.selectedInstance ? tinyMCE.selectedInstance.editorId : null);  
83 - h += addRenderInfo('selectedElement.nodeName', tinyMCE.selectedElement ? tinyMCE.selectedElement.nodeName : null, 'dep');  
84 - h += addRenderInfo('loadedFiles',tinyMCE.loadedFiles.join(','));  
85 - h += addRenderInfo('isMSIE', tinyMCE.isMSIE);  
86 - h += addRenderInfo('isMSIE5', tinyMCE.isMSIE5);  
87 - h += addRenderInfo('isMSIE5_0', tinyMCE.isMSIE5_0);  
88 - h += addRenderInfo('isMSIE7', tinyMCE.isMSIE7);  
89 - h += addRenderInfo('isGecko', tinyMCE.isGecko);  
90 - h += addRenderInfo('isSafari', tinyMCE.isSafari);  
91 - h += addRenderInfo('isOpera', tinyMCE.isOpera);  
92 - h += addRenderInfo('isMac', tinyMCE.isMac);  
93 - h += addRenderInfo('isNS7', tinyMCE.isNS7);  
94 - h += addRenderInfo('isNS71', tinyMCE.isNS71);  
95 - h += addRenderInfo('idCounter', tinyMCE.idCounter);  
96 - h += addRenderInfo('currentConfig', tinyMCE.currentConfig);  
97 - h += addRenderInfo('majorVersion', tinyMCE.majorVersion);  
98 - h += addRenderInfo('minorVersion', tinyMCE.minorVersion);  
99 - h += addRenderInfo('releaseDate', tinyMCE.releaseDate);  
100 - h += addRenderInfo('documentBasePath', tinyMCE.documentBasePath);  
101 - h += addRenderInfo('documentURL', tinyMCE.documentURL);  
102 - h += '</table>';  
103 -  
104 - for (n in tinyMCE.instances) {  
105 - inst = tinyMCE.instances[n];  
106 -  
107 - if (!tinyMCE.isInstance(inst))  
108 - continue;  
109 -  
110 - sel = inst.selection.getSel();  
111 - rng = inst.selection.getRng();  
112 -  
113 - h += '<h2>TinyMCE_Control(' + (instCount++) + ') id: ' + inst.editorId + '</h2>';  
114 - h += '<table border="0" cellpadding="0" cellspacing="0" class="data">';  
115 -  
116 - h += addRenderInfo('editorId', inst.editorId);  
117 - h += addRenderInfo('visualAid', inst.visualAid);  
118 - h += addRenderInfo('foreColor', inst.foreColor);  
119 - h += addRenderInfo('backColor', inst.backColor);  
120 - h += addRenderInfo('formTargetElementId', inst.formTargetElementId);  
121 - h += addRenderInfo('formElement', inst.formElement ? inst.formElement.nodeName : null);  
122 - h += addRenderInfo('oldTargetElement', inst.oldTargetElement ? inst.oldTargetElement.nodeName : null);  
123 - h += addRenderInfo('linkElement', inst.linkElement ? inst.linkElement.nodeName : null, 'dep');  
124 - h += addRenderInfo('imgElement', inst.imgElement ? inst.imgElement.nodeName : null, 'dep');  
125 - h += addRenderInfo('selectedNode', inst.selectedNode ? inst.selectedNode.nodeName : null, 'dep');  
126 - h += addRenderInfo('targetElement', inst.targetElement ? inst.targetElement.nodeName : null);  
127 - h += addRenderInfo('getBody().nodeName', inst.getBody() ? inst.getBody().nodeName : null);  
128 - h += addRenderInfo('getBody().getAttribute("id")', inst.getBody() ? inst.getBody().getAttribute("id") : null);  
129 - h += addRenderInfo('getDoc().location', inst.getDoc() ? inst.getDoc().location : null);  
130 - h += addRenderInfo('startContent', inst.startContent);  
131 - h += addRenderInfo('isHidden()', inst.isHidden());  
132 - h += addRenderInfo('isDirty()', inst.isDirty());  
133 - h += addRenderInfo('undoRedo.undoLevels.length', inst.undoRedo.undoLevels.length);  
134 - h += addRenderInfo('undoRedo.undoIndex', inst.undoRedo.undoIndex);  
135 - h += addRenderInfo('selection.getSelectedHTML()', inst.selection.getSelectedHTML());  
136 - h += addRenderInfo('selection.isCollapsed()', inst.selection.isCollapsed() || 'false');  
137 - h += addRenderInfo('selection.getSelectedText()', inst.selection.getSelectedText());  
138 - h += addRenderInfo('selection.getFocusElement().nodeName', inst.selection.getFocusElement().nodeName);  
139 - h += addRenderInfo('selection.getFocusElement().outerHTML', tinyMCE.getOuterHTML(inst.selection.getFocusElement()));  
140 -  
141 - if ((tinyMCE.isGecko || tinyMCE.isOpera) && sel && rng) {  
142 - h += addRenderInfo('selection.getSel().anchorNode.nodeName', sel.anchorNode ? sel.anchorNode.nodeName : null, 'bspec');  
143 - h += addRenderInfo('selection.getSel().anchorOffset', sel.anchorOffset, 'bspec');  
144 - h += addRenderInfo('selection.getSel().focusNode.nodeName', sel.focusNode ? sel.focusNode.nodeName : null, 'bspec');  
145 - h += addRenderInfo('selection.getSel().focusOffset', sel.focusOffset, 'bspec');  
146 - h += addRenderInfo('selection.getRng().startContainer.nodeName', rng.startContainer ? rng.startContainer.nodeName : null, 'bspec');  
147 - h += addRenderInfo('selection.getRng().startOffset', rng.startOffset, 'bspec');  
148 - h += addRenderInfo('selection.getRng().endContainer.nodeName', rng.endContainer ? rng.endContainer.nodeName : null, 'bspec');  
149 - h += addRenderInfo('selection.getRng().endOffset', rng.endOffset, 'bspec');  
150 - }  
151 -  
152 - if (typeof(rng.item) != 'undefined' || typeof(rng.htmlText) != 'undefined') {  
153 - if (!rng.item) {  
154 - h += addRenderInfo('selection.getSel().type', sel.type, 'bspec');  
155 - h += addRenderInfo('selection.getRng().htmlText', rng.htmlText, 'bspec');  
156 - h += addRenderInfo('selection.getRng().text', rng.text, 'bspec');  
157 - } else  
158 - h += addRenderInfo('selection.getRng().item(0).nodeName', rng.item(0).nodeName, 'bspec');  
159 - }  
160 -  
161 - h += '</table>';  
162 - }  
163 -  
164 - h += '<p>Fields marked in <strong class="bspec">gray</strong> is not cross browser and should be used with care.</p>';  
165 - h += '<p>Fields marked <strong class="dep">red</strong> are marked deprecated and will be removed in the future.</p><br />';  
166 -  
167 - se.innerHTML = h;  
168 -}  
169 -  
170 -function addRenderInfo(n, v, c) {  
171 - return '<tr><td' + (c ? ' class="' + c + '"' : '')+ '>' + n + '</td><td><input type="text" value="' + tinyMCE.xmlEncode(v != null ? ('' + v).replace(/[\r\n]/g, '') : 'null') + '" /></td></tr>';  
172 -}  
173 -  
174 -function renderSettings() {  
175 - var se = document.getElementById('settings'), n, sn, inst, h = '', v;  
176 -  
177 - for (n in tinyMCE.instances) {  
178 - inst = tinyMCE.instances[n];  
179 -  
180 - if (!tinyMCE.isInstance(inst))  
181 - continue;  
182 -  
183 - h += '<h2>Instance id: ' + inst.editorId + '</h2>';  
184 - h += '<table border="0" cellpadding="0" cellspacing="0" class="data">';  
185 -  
186 - for (sn in inst.settings) {  
187 - v = inst.settings[sn];  
188 -  
189 - h += '<tr><td class="col1">' + tinyMCE.xmlEncode(sn) + '</td><td><input type="text" value="' + tinyMCE.xmlEncode(v) + '" /></td></tr>';  
190 - }  
191 -  
192 - h += '</table>';  
193 - }  
194 -  
195 - se.innerHTML = h;  
196 -}  
197 -  
198 -function renderContent() {  
199 - var se = document.getElementById('content'), n, inst, h = '';  
200 -  
201 - for (n in tinyMCE.instances) {  
202 - inst = tinyMCE.instances[n];  
203 -  
204 - if (!tinyMCE.isInstance(inst))  
205 - continue;  
206 -  
207 - h += '<h2>Instance id: ' + inst.editorId + '</h2>';  
208 -  
209 - h += '<h3>Start content - inst.startContent:</h3>';  
210 - h += '<div>' + tinyMCE.xmlEncode(inst.startContent) + '</div>';  
211 -  
212 - h += '<h3>Raw content - inst.getBody().innerHTML or inst.getHTML(true):</h3>';  
213 - h += '<div>' + tinyMCE.xmlEncode(inst.getHTML(true)) + '</div>';  
214 -  
215 - h += '<h3>Cleaned content - inst.getHTML():</h3>';  
216 - h += '<div>' + tinyMCE.xmlEncode(inst.getHTML()) + '</div>';  
217 -  
218 - if (inst.serializedHTML) {  
219 - h += '<h3>Serialized HTML content - inst.serializedHTML:</h3>';  
220 - h += '<div>' + tinyMCE.xmlEncode(inst.serializedHTML) + '</div>';  
221 - }  
222 - }  
223 -  
224 - se.innerHTML = h;  
225 -}  
226 -  
227 -function renderCommandStates() {  
228 - var se = document.getElementById('command_states'), n, inst, h = '', v, ex;  
229 - var cmds = new Array('2D-Position','AbsolutePosition','BackColor','BlockDirLTR','BlockDirRTL','Bold','BrowseMode','Copy','CreateBookmark','CreateLink','Cut','Delete','DirLTR','DirRTL','EditMode','enableInlineTableEditing','enableObjectResizing','FontName','FontSize','ForeColor','FormatBlock','Indent','InsertButton','InsertFieldset','InsertHorizontalRule','InsertIFrame','InsertImage','InsertInputButton','InsertInputCheckbox','InsertInputFileUpload','InsertInputHidden','InsertInputImage','InsertInputPassword','InsertInputRadio','InsertInputReset','InsertInputSubmit','InsertInputText','InsertMarquee','InsertOrderedList','InsertParagraph','InsertSelectDropdown','InsertSelectListbox','InsertTextArea','InsertUnorderedList','Italic','JustifyCenter','JustifyFull','JustifyLeft','JustifyNone','JustifyRight','LiveResize','MultipleSelection','Open','Outdent','OverWrite','Paste','PlayImage','Redo','Refresh','RemoveFormat','SaveAs','SelectAll','SizeToControl','SizeToControlHeight','SizeToControlWidth','Stop','StopImage','StrikeThrough','styleWithCSS','Subscript','Superscript','UnBookmark','Underline','Undo','Unlink','Unselect'), i;  
230 -  
231 - for (n in tinyMCE.instances) {  
232 - inst = tinyMCE.instances[n];  
233 -  
234 - if (!tinyMCE.isInstance(inst))  
235 - continue;  
236 -  
237 - h += '<h2>Instance id: ' + inst.editorId + '</h2>';  
238 - h += '<table border="0" cellpadding="0" cellspacing="0" class="data">';  
239 -  
240 - for (i=0; i<cmds.length; i++) {  
241 - v = null;  
242 -  
243 - try {  
244 - v = tinyMCE.isGecko || inst.getDoc().queryCommandSupported(cmds[i]);  
245 - v = v ? inst.queryCommandState(cmds[i]) : 'Not supported';  
246 - } catch (ex) {  
247 - v = 'Not supported';  
248 - }  
249 -  
250 - h += '<tr><td><input type="text" value="' + tinyMCE.xmlEncode(cmds[i]) + '" /></td><td><input type="text" value="' + tinyMCE.xmlEncode(v) + '" /></td></tr>';  
251 - }  
252 -  
253 - h += '</table>';  
254 - }  
255 -  
256 - se.innerHTML = h;  
257 -}  
258 -  
259 -function renderUndoRedo() {  
260 - var se = document.getElementById('undo_redo'), inst, n, h = '', i, le, id, d, ur;  
261 - var f = document.forms[0];  
262 -  
263 - if (tinyMCE.undoLevels) {  
264 - le = tinyMCE.undoLevels;  
265 -  
266 - h += '<h2>Global undo/redo</h2>';  
267 - h += '<table border="0" cellpadding="0" cellspacing="0" width="50%" class="data">';  
268 - h += '<tr><td>undoLevels.length</td><td>' + le.length + '</td></tr>';  
269 - h += '<tr><td>undoIndex</td><td>' + tinyMCE.undoIndex + '</td></tr>';  
270 - h += '</table>';  
271 -  
272 - for (i=0; i<le.length; i++)  
273 - h += '<h3>Level: ' + i + ', Instance: ' + (le[i] ? le[i].editorId : 'null') + '</h3>';  
274 - }  
275 -  
276 - for (n in tinyMCE.instances) {  
277 - inst = tinyMCE.instances[n];  
278 -  
279 - if (!tinyMCE.isInstance(inst))  
280 - continue;  
281 -  
282 - ur = inst.undoRedo;  
283 - le = ur.undoLevels;  
284 -  
285 - h += '<hr /><h2>Instance id: ' + inst.editorId + '</h2>';  
286 - h += '<table border="0" cellpadding="0" cellspacing="0" width="50%" class="data">';  
287 - h += '<tr><td>undoLevels.length</td><td>' + le.length + '</td></tr>';  
288 - h += '<tr><td>undoIndex</td><td>' + ur.undoIndex + '</td></tr>';  
289 - h += '<tr><td>typingUndoIndex</td><td>' + ur.typingUndoIndex + '</td></tr>';  
290 - h += '<tr><td>undoRedo</td><td>' + ur.undoRedo + '</td></tr>';  
291 - h += '</table>';  
292 -  
293 - for (i=0; i<le.length; i++) {  
294 - h += '<h3>Level: ' + i + (!le[i].bookmark ? "" : " [bookmark]") + '</h3>';  
295 - h += '<div class="undodata">' + tinyMCE.xmlEncode(le[i].content) + '</div>';  
296 -  
297 - if (i > 0 && f.undo_diff.checked) {  
298 - d = diff_main(i > 0 ? le[i-1].content.replace(/[\r\n]+/g, '') : null, le[i].content.replace(/[\r\n]+/g, ''), false);  
299 - diff_cleanup_semantic(d);  
300 - h += '<h3>Diff ' + (i-1) + ',' + i + '</h3><div class="undodata">' + diff_prettyhtml(d) + '</div>';  
301 - }  
302 - }  
303 - }  
304 -  
305 - se.innerHTML = h;  
306 -}  
307 -  
308 -function clearLog() {  
309 - document.getElementById('log').innerHTML = '';  
310 - devkit._startTime = null;  
311 -}  
312 -  
313 -function cancelAction() {  
314 - parent.document.getElementById('devkit').style.display = 'none';  
315 -}  
316 -  
317 -function toggleDebugEvents(s) {  
318 - devkit._debugEvents(s);  
319 -}  
320 -  
321 -function storeSelection() {  
322 - book = tinyMCE.selectedInstance.selection.getBookmark();  
323 -  
324 - return false;  
325 -}  
326 -  
327 -function restoreSelection() {  
328 - tinyMCE.selectedInstance.selection.moveToBookmark(book);  
329 -  
330 - return false;  
331 -}  
332 \ No newline at end of file 0 \ No newline at end of file
public/javascripts/tiny_mce/plugins/devkit/jscripts/diff.js
@@ -1,1192 +0,0 @@ @@ -1,1192 +0,0 @@
1 -// Diff_Match_Patch v1.3  
2 -// Computes the difference between two texts to create a patch.  
3 -// Applies the patch onto another text, allowing for errors.  
4 -// Copyright (C) 2006 Neil Fraser  
5 -// http://neil.fraser.name/software/diff_match_patch/  
6 -  
7 -// This program is free software; you can redistribute it and/or  
8 -// modify it under the terms of the GNU General Public License  
9 -// as published by the Free Software Foundation.  
10 -  
11 -// This program is distributed in the hope that it will be useful,  
12 -// but WITHOUT ANY WARRANTY; without even the implied warranty of  
13 -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the  
14 -// GNU General Public License (www.gnu.org) for more details.  
15 -  
16 -  
17 -// Constants.  
18 -// Redefine these in your program to override the defaults.  
19 -  
20 -// Number of seconds to map a diff before giving up. (0 for infinity)  
21 -var DIFF_TIMEOUT = 1.0;  
22 -// Cost of an empty edit operation in terms of edit characters.  
23 -var DIFF_EDIT_COST = 4;  
24 -// Tweak the relative importance (0.0 = accuracy, 1.0 = proximity)  
25 -var MATCH_BALANCE = 0.5;  
26 -// At what point is no match declared (0.0 = perfection, 1.0 = very loose)  
27 -var MATCH_THRESHOLD = 0.5;  
28 -// The min and max cutoffs used when computing text lengths.  
29 -var MATCH_MINLENGTH = 100;  
30 -var MATCH_MAXLENGTH = 1000;  
31 -// Chunk size for context length.  
32 -var PATCH_MARGIN = 4;  
33 -  
34 -  
35 - //////////////////////////////////////////////////////////////////////  
36 - // Diff //  
37 -//////////////////////////////////////////////////////////////////////  
38 -  
39 -// The data structure representing a diff is an array of tuples:  
40 -// [[-1, "Hello"], [1, "Goodbye"], [0, " world."]]  
41 -// which means: delete "Hello", add "Goodbye" and keep " world."  
42 -  
43 -  
44 -function diff_main(text1, text2, checklines) {  
45 - // Find the differences between two texts. Return an array of changes.  
46 - // If checklines is present and false, then don't run a line-level diff first to identify the changed areas.  
47 - // Check for equality (speedup)  
48 - if (text1 == text2)  
49 - return [[0, text1]];  
50 -  
51 - if (typeof checklines == 'undefined')  
52 - checklines = true;  
53 -  
54 - var a;  
55 - // Trim off common prefix (speedup)  
56 - a = diff_prefix(text1, text2);  
57 - text1 = a[0];  
58 - text2 = a[1];  
59 - var commonprefix = a[2];  
60 -  
61 - // Trim off common suffix (speedup)  
62 - a = diff_suffix(text1, text2);  
63 - text1 = a[0];  
64 - text2 = a[1];  
65 - var commonsuffix = a[2];  
66 -  
67 - var diff, i;  
68 - var longtext = text1.length > text2.length ? text1 : text2;  
69 - var shorttext = text1.length > text2.length ? text2 : text1;  
70 -  
71 - if (!text1) { // Just add some text (speedup)  
72 - diff = [[1, text2]];  
73 - } else if (!text2) { // Just delete some text (speedup)  
74 - diff = [[-1, text1]];  
75 - } else if ((i = longtext.indexOf(shorttext)) != -1) {  
76 - // Shorter text is inside the longer text (speedup)  
77 - diff = [[1, longtext.substring(0, i)], [0, shorttext], [1, longtext.substring(i+shorttext.length)]];  
78 - // Swap insertions for deletions if diff is reversed.  
79 - if (text1.length > text2.length)  
80 - diff[0][0] = diff[2][0] = -1;  
81 - } else {  
82 - longtext = shorttext = null; // Garbage collect  
83 - // Check to see if the problem can be split in two.  
84 - var hm = diff_halfmatch(text1, text2);  
85 - if (hm) {  
86 - // A half-match was found, sort out the return data.  
87 - var text1_a = hm[0];  
88 - var text1_b = hm[1];  
89 - var text2_a = hm[2];  
90 - var text2_b = hm[3];  
91 - var mid_common = hm[4];  
92 - // Send both pairs off for separate processing.  
93 - var diff_a = diff_main(text1_a, text2_a, checklines);  
94 - var diff_b = diff_main(text1_b, text2_b, checklines);  
95 - // Merge the results.  
96 - diff = diff_a.concat([[0, mid_common]], diff_b);  
97 - } else {  
98 - // Perform a real diff.  
99 - if (checklines && text1.length + text2.length < 250)  
100 - checklines = false; // Too trivial for the overhead.  
101 - if (checklines) {  
102 - // Scan the text on a line-by-line basis first.  
103 - a = diff_lines2chars(text1, text2);  
104 - text1 = a[0];  
105 - text2 = a[1];  
106 - var linearray = a[2];  
107 - }  
108 - diff = diff_map(text1, text2);  
109 - if (!diff) // No acceptable result.  
110 - diff = [[-1, text1], [1, text2]];  
111 - if (checklines) {  
112 - diff_chars2lines(diff, linearray); // Convert the diff back to original text.  
113 - diff_cleanup_semantic(diff); // Eliminate freak matches (e.g. blank lines)  
114 -  
115 - // Rediff any replacement blocks, this time on character-by-character basis.  
116 - diff.push([0, '']); // Add a dummy entry at the end.  
117 - var pointer = 0;  
118 - var count_delete = 0;  
119 - var count_insert = 0;  
120 - var text_delete = '';  
121 - var text_insert = '';  
122 - while(pointer < diff.length) {  
123 - if (diff[pointer][0] == 1) {  
124 - count_insert++;  
125 - text_insert += diff[pointer][1];  
126 - } else if (diff[pointer][0] == -1) {  
127 - count_delete++;  
128 - text_delete += diff[pointer][1];  
129 - } else { // Upon reaching an equality, check for prior redundancies.  
130 - if (count_delete >= 1 && count_insert >= 1) {  
131 - // Delete the offending records and add the merged ones.  
132 - a = diff_main(text_delete, text_insert, false);  
133 - diff.splice(pointer - count_delete - count_insert, count_delete + count_insert);  
134 - pointer = pointer - count_delete - count_insert;  
135 - for (i=a.length-1; i>=0; i--)  
136 - diff.splice(pointer, 0, a[i]);  
137 - pointer = pointer + a.length;  
138 - }  
139 - count_insert = 0;  
140 - count_delete = 0;  
141 - text_delete = '';  
142 - text_insert = '';  
143 - }  
144 - pointer++;  
145 - }  
146 - diff.pop(); // Remove the dummy entry at the end.  
147 -  
148 - }  
149 - }  
150 - }  
151 -  
152 - if (commonprefix)  
153 - diff.unshift([0, commonprefix]);  
154 - if (commonsuffix)  
155 - diff.push([0, commonsuffix]);  
156 - diff_cleanup_merge(diff);  
157 - return diff;  
158 -}  
159 -  
160 -  
161 -function diff_lines2chars(text1, text2) {  
162 - // Split text into an array of strings.  
163 - // Reduce the texts to a string of hashes where each character represents one line.  
164 - var linearray = new Array(); // linearray[4] == "Hello\n"  
165 - var linehash = new Object(); // linehash["Hello\n"] == 4  
166 -  
167 - // "\x00" is a valid JavaScript character, but the Venkman debugger doesn't like it (bug 335098)  
168 - // So we'll insert a junk entry to avoid generating a null character.  
169 - linearray.push('');  
170 -  
171 - function diff_lines2chars_munge(text) {  
172 - // My first ever closure!  
173 - var i, line;  
174 - var chars = '';  
175 - while (text) {  
176 - i = text.indexOf('\n');  
177 - if (i == -1)  
178 - i = text.length;  
179 - line = text.substring(0, i+1);  
180 - text = text.substring(i+1);  
181 - if (linehash.hasOwnProperty ? linehash.hasOwnProperty(line) : (linehash[line] !== undefined)) {  
182 - chars += String.fromCharCode(linehash[line]);  
183 - } else {  
184 - linearray.push(line);  
185 - linehash[line] = linearray.length - 1;  
186 - chars += String.fromCharCode(linearray.length - 1);  
187 - }  
188 - }  
189 - return chars;  
190 - }  
191 -  
192 - var chars1 = diff_lines2chars_munge(text1);  
193 - var chars2 = diff_lines2chars_munge(text2);  
194 - return [chars1, chars2, linearray];  
195 -}  
196 -  
197 -  
198 -function diff_chars2lines(diff, linearray) {  
199 - // Rehydrate the text in a diff from a string of line hashes to real lines of text.  
200 - var chars, text;  
201 - for (var x=0; x<diff.length; x++) {  
202 - chars = diff[x][1];  
203 - text = '';  
204 - for (var y=0; y<chars.length; y++)  
205 - text += linearray[chars.charCodeAt(y)];  
206 - diff[x][1] = text;  
207 - }  
208 -}  
209 -  
210 -  
211 -function diff_map(text1, text2) {  
212 - // Explore the intersection points between the two texts.  
213 - var now = new Date();  
214 - var ms_end = now.getTime() + DIFF_TIMEOUT * 1000; // Don't run for too long.  
215 - var max = (text1.length + text2.length) / 2;  
216 - var v_map1 = new Array();  
217 - var v_map2 = new Array();  
218 - var v1 = new Object();  
219 - var v2 = new Object();  
220 - v1[1] = 0;  
221 - v2[1] = 0;  
222 - var x, y;  
223 - var footstep; // Used to track overlapping paths.  
224 - var footsteps = new Object();  
225 - var done = false;  
226 - var hasOwnProperty = !!(footsteps.hasOwnProperty);  
227 - // If the total number of characters is odd, then the front path will collide with the reverse path.  
228 - var front = (text1.length + text2.length) % 2;  
229 - for (var d=0; d<max; d++) {  
230 - now = new Date();  
231 - if (DIFF_TIMEOUT > 0 && now.getTime() > ms_end) // Timeout reached  
232 - return null;  
233 -  
234 - // Walk the front path one step.  
235 - v_map1[d] = new Object();  
236 - for (var k=-d; k<=d; k+=2) {  
237 - if (k == -d || k != d && v1[k-1] < v1[k+1])  
238 - x = v1[k+1];  
239 - else  
240 - x = v1[k-1]+1;  
241 - y = x - k;  
242 - footstep = x+","+y;  
243 - if (front && (hasOwnProperty ? footsteps.hasOwnProperty(footstep) : (footsteps[footstep] !== undefined)))  
244 - done = true;  
245 - if (!front)  
246 - footsteps[footstep] = d;  
247 - while (!done && x < text1.length && y < text2.length && text1.charAt(x) == text2.charAt(y)) {  
248 - x++; y++;  
249 - footstep = x+","+y;  
250 - if (front && (hasOwnProperty ? footsteps.hasOwnProperty(footstep) : (footsteps[footstep] !== undefined)))  
251 - done = true;  
252 - if (!front)  
253 - footsteps[footstep] = d;  
254 - }  
255 - v1[k] = x;  
256 - v_map1[d][x+","+y] = true;  
257 - if (done) {  
258 - // Front path ran over reverse path.  
259 - v_map2 = v_map2.slice(0, footsteps[footstep]+1);  
260 - var a = diff_path1(v_map1, text1.substring(0, x), text2.substring(0, y));  
261 - return a.concat(diff_path2(v_map2, text1.substring(x), text2.substring(y)));  
262 - }  
263 - }  
264 -  
265 - // Walk the reverse path one step.  
266 - v_map2[d] = new Object();  
267 - for (var k=-d; k<=d; k+=2) {  
268 - if (k == -d || k != d && v2[k-1] < v2[k+1])  
269 - x = v2[k+1];  
270 - else  
271 - x = v2[k-1]+1;  
272 - y = x - k;  
273 - footstep = (text1.length-x)+","+(text2.length-y);  
274 - if (!front && (hasOwnProperty ? footsteps.hasOwnProperty(footstep) : (footsteps[footstep] !== undefined)))  
275 - done = true;  
276 - if (front)  
277 - footsteps[footstep] = d;  
278 - while (!done && x < text1.length && y < text2.length && text1.charAt(text1.length-x-1) == text2.charAt(text2.length-y-1)) {  
279 - x++; y++;  
280 - footstep = (text1.length-x)+","+(text2.length-y);  
281 - if (!front && (hasOwnProperty ? footsteps.hasOwnProperty(footstep) : (footsteps[footstep] !== undefined)))  
282 - done = true;  
283 - if (front)  
284 - footsteps[footstep] = d;  
285 - }  
286 - v2[k] = x;  
287 - v_map2[d][x+","+y] = true;  
288 - if (done) {  
289 - // Reverse path ran over front path.  
290 - v_map1 = v_map1.slice(0, footsteps[footstep]+1);  
291 - var a = diff_path1(v_map1, text1.substring(0, text1.length-x), text2.substring(0, text2.length-y));  
292 - return a.concat(diff_path2(v_map2, text1.substring(text1.length-x), text2.substring(text2.length-y)));  
293 - }  
294 - }  
295 - }  
296 - // Number of diffs equals number of characters, no commonality at all.  
297 - return null;  
298 -}  
299 -  
300 -  
301 -function diff_path1(v_map, text1, text2) {  
302 - // Work from the middle back to the start to determine the path.  
303 - var path = [];  
304 - var x = text1.length;  
305 - var y = text2.length;  
306 - var last_op = null;  
307 - for (var d=v_map.length-2; d>=0; d--) {  
308 - while(1) {  
309 - if (v_map[d].hasOwnProperty ? v_map[d].hasOwnProperty((x-1)+","+y) : (v_map[d][(x-1)+","+y] !== undefined)) {  
310 - x--;  
311 - if (last_op === -1)  
312 - path[0][1] = text1.charAt(x) + path[0][1];  
313 - else  
314 - path.unshift([-1, text1.charAt(x)]);  
315 - last_op = -1;  
316 - break;  
317 - } else if (v_map[d].hasOwnProperty ? v_map[d].hasOwnProperty(x+","+(y-1)) : (v_map[d][x+","+(y-1)] !== undefined)) {  
318 - y--;  
319 - if (last_op === 1)  
320 - path[0][1] = text2.charAt(y) + path[0][1];  
321 - else  
322 - path.unshift([1, text2.charAt(y)]);  
323 - last_op = 1;  
324 - break;  
325 - } else {  
326 - x--;  
327 - y--;  
328 - //if (text1.charAt(x) != text2.charAt(y))  
329 - // return alert("No diagonal. Can't happen. (diff_path1)");  
330 - if (last_op === 0)  
331 - path[0][1] = text1.charAt(x) + path[0][1];  
332 - else  
333 - path.unshift([0, text1.charAt(x)]);  
334 - last_op = 0;  
335 - }  
336 - }  
337 - }  
338 - return path;  
339 -}  
340 -  
341 -  
342 -function diff_path2(v_map, text1, text2) {  
343 - // Work from the middle back to the end to determine the path.  
344 - var path = [];  
345 - var x = text1.length;  
346 - var y = text2.length;  
347 - var last_op = null;  
348 - for (var d=v_map.length-2; d>=0; d--) {  
349 - while(1) {  
350 - if (v_map[d].hasOwnProperty ? v_map[d].hasOwnProperty((x-1)+","+y) : (v_map[d][(x-1)+","+y] !== undefined)) {  
351 - x--;  
352 - if (last_op === -1)  
353 - path[path.length-1][1] += text1.charAt(text1.length-x-1);  
354 - else  
355 - path.push([-1, text1.charAt(text1.length-x-1)]);  
356 - last_op = -1;  
357 - break;  
358 - } else if (v_map[d].hasOwnProperty ? v_map[d].hasOwnProperty(x+","+(y-1)) : (v_map[d][x+","+(y-1)] !== undefined)) {  
359 - y--;  
360 - if (last_op === 1)  
361 - path[path.length-1][1] += text2.charAt(text2.length-y-1);  
362 - else  
363 - path.push([1, text2.charAt(text2.length-y-1)]);  
364 - last_op = 1;  
365 - break;  
366 - } else {  
367 - x--;  
368 - y--;  
369 - //if (text1.charAt(text1.length-x-1) != text2.charAt(text2.length-y-1))  
370 - // return alert("No diagonal. Can't happen. (diff_path2)");  
371 - if (last_op === 0)  
372 - path[path.length-1][1] += text1.charAt(text1.length-x-1);  
373 - else  
374 - path.push([0, text1.charAt(text1.length-x-1)]);  
375 - last_op = 0;  
376 - }  
377 - }  
378 - }  
379 - return path;  
380 -}  
381 -  
382 -  
383 -function diff_prefix(text1, text2) {  
384 - // Trim off common prefix  
385 - var pointermin = 0;  
386 - var pointermax = Math.min(text1.length, text2.length);  
387 - var pointermid = pointermax;  
388 - while(pointermin < pointermid) {  
389 - if (text1.substring(0, pointermid) == text2.substring(0, pointermid))  
390 - pointermin = pointermid;  
391 - else  
392 - pointermax = pointermid;  
393 - pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);  
394 - }  
395 - var commonprefix = text1.substring(0, pointermid);  
396 - text1 = text1.substring(pointermid);  
397 - text2 = text2.substring(pointermid);  
398 - return [text1, text2, commonprefix];  
399 -}  
400 -  
401 -  
402 -function diff_suffix(text1, text2) {  
403 - // Trim off common suffix  
404 - var pointermin = 0;  
405 - var pointermax = Math.min(text1.length, text2.length);  
406 - var pointermid = pointermax;  
407 - while(pointermin < pointermid) {  
408 - if (text1.substring(text1.length-pointermid) == text2.substring(text2.length-pointermid))  
409 - pointermin = pointermid;  
410 - else  
411 - pointermax = pointermid;  
412 - pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);  
413 - }  
414 - var commonsuffix = text1.substring(text1.length-pointermid);  
415 - text1 = text1.substring(0, text1.length-pointermid);  
416 - text2 = text2.substring(0, text2.length-pointermid);  
417 - return [text1, text2, commonsuffix];  
418 -}  
419 -  
420 -  
421 -function diff_halfmatch(text1, text2) {  
422 - // Do the two texts share a substring which is at least half the length of the longer text?  
423 - var longtext = text1.length > text2.length ? text1 : text2;  
424 - var shorttext = text1.length > text2.length ? text2 : text1;  
425 - if (longtext.length < 10 || shorttext.length < 1)  
426 - return null; // Pointless.  
427 -  
428 - function diff_halfmatch_i(longtext, shorttext, i) {  
429 - // Start with a 1/4 length substring at position i as a seed.  
430 - var seed = longtext.substring(i, i+Math.floor(longtext.length/4));  
431 - var j = -1;  
432 - var best_common = '';  
433 - var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;  
434 - while ((j = shorttext.indexOf(seed, j+1)) != -1) {  
435 - var my_prefix = diff_prefix(longtext.substring(i), shorttext.substring(j));  
436 - var my_suffix = diff_suffix(longtext.substring(0, i), shorttext.substring(0, j));  
437 - if (best_common.length < (my_suffix[2] + my_prefix[2]).length) {  
438 - best_common = my_suffix[2] + my_prefix[2];  
439 - best_longtext_a = my_suffix[0];  
440 - best_longtext_b = my_prefix[0];  
441 - best_shorttext_a = my_suffix[1];  
442 - best_shorttext_b = my_prefix[1];  
443 - }  
444 - }  
445 - if (best_common.length >= longtext.length/2)  
446 - return [best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b, best_common];  
447 - else  
448 - return null;  
449 - }  
450 -  
451 - // First check if the second quarter is the seed for a half-match.  
452 - var hm1 = diff_halfmatch_i(longtext, shorttext, Math.ceil(longtext.length/4));  
453 - // Check again based on the third quarter.  
454 - var hm2 = diff_halfmatch_i(longtext, shorttext, Math.ceil(longtext.length/2));  
455 - var hm;  
456 - if (!hm1 && !hm2)  
457 - return null;  
458 - else if (!hm2)  
459 - hm = hm1;  
460 - else if (!hm1)  
461 - hm = hm2;  
462 - else // Both matched. Select the longest.  
463 - hm = hm1[4].length > hm2[4].length ? hm1 : hm2;  
464 -  
465 - // A half-match was found, sort out the return data.  
466 - if (text1.length > text2.length) {  
467 - var text1_a = hm[0];  
468 - var text1_b = hm[1];  
469 - var text2_a = hm[2];  
470 - var text2_b = hm[3];  
471 - } else {  
472 - var text2_a = hm[0];  
473 - var text2_b = hm[1];  
474 - var text1_a = hm[2];  
475 - var text1_b = hm[3];  
476 - }  
477 - var mid_common = hm[4];  
478 - return [text1_a, text1_b, text2_a, text2_b, mid_common];  
479 -}  
480 -  
481 -  
482 -function diff_cleanup_semantic(diff) {  
483 - // Reduce the number of edits by eliminating semantically trivial equalities.  
484 - var changes = false;  
485 - var equalities = []; // Stack of indices where equalities are found.  
486 - var lastequality = null; // Always equal to equalities[equalities.length-1][1]  
487 - var pointer = 0; // Index of current position.  
488 - var length_changes1 = 0; // Number of characters that changed prior to the equality.  
489 - var length_changes2 = 0; // Number of characters that changed after the equality.  
490 - while (pointer < diff.length) {  
491 - if (diff[pointer][0] == 0) { // equality found  
492 - equalities.push(pointer);  
493 - length_changes1 = length_changes2;  
494 - length_changes2 = 0;  
495 - lastequality = diff[pointer][1];  
496 - } else { // an insertion or deletion  
497 - length_changes2 += diff[pointer][1].length;  
498 - if (lastequality != null && (lastequality.length <= length_changes1) && (lastequality.length <= length_changes2)) {  
499 - //alert("Splitting: '"+lastequality+"'");  
500 - diff.splice(equalities[equalities.length-1], 0, [-1, lastequality]); // Duplicate record  
501 - diff[equalities[equalities.length-1]+1][0] = 1; // Change second copy to insert.  
502 - equalities.pop(); // Throw away the equality we just deleted;  
503 - equalities.pop(); // Throw away the previous equality;  
504 - pointer = equalities.length ? equalities[equalities.length-1] : -1;  
505 - length_changes1 = 0; // Reset the counters.  
506 - length_changes2 = 0;  
507 - lastequality = null;  
508 - changes = true;  
509 - }  
510 - }  
511 - pointer++;  
512 - }  
513 -  
514 - if (changes)  
515 - diff_cleanup_merge(diff);  
516 -}  
517 -  
518 -  
519 -function diff_cleanup_efficiency(diff) {  
520 - // Reduce the number of edits by eliminating operationally trivial equalities.  
521 - var changes = false;  
522 - var equalities = []; // Stack of indices where equalities are found.  
523 - var lastequality = ''; // Always equal to equalities[equalities.length-1][1]  
524 - var pointer = 0; // Index of current position.  
525 - var pre_ins = false; // Is there an insertion operation before the last equality.  
526 - var pre_del = false; // Is there an deletion operation before the last equality.  
527 - var post_ins = false; // Is there an insertion operation after the last equality.  
528 - var post_del = false; // Is there an deletion operation after the last equality.  
529 - while (pointer < diff.length) {  
530 - if (diff[pointer][0] == 0) { // equality found  
531 - if (diff[pointer][1].length < DIFF_EDIT_COST && (post_ins || post_del)) {  
532 - // Candidate found.  
533 - equalities.push(pointer);  
534 - pre_ins = post_ins;  
535 - pre_del = post_del;  
536 - lastequality = diff[pointer][1];  
537 - } else {  
538 - // Not a candidate, and can never become one.  
539 - equalities = [];  
540 - lastequality = '';  
541 - }  
542 - post_ins = post_del = false;  
543 - } else { // an insertion or deletion  
544 - if (diff[pointer][0] == -1)  
545 - post_del = true;  
546 - else  
547 - post_ins = true;  
548 - // Five types to be split:  
549 - // <ins>A</ins><del>B</del>XY<ins>C</ins><del>D</del>  
550 - // <ins>A</ins>X<ins>C</ins><del>D</del>  
551 - // <ins>A</ins><del>B</del>X<ins>C</ins>  
552 - // <ins>A</del>X<ins>C</ins><del>D</del>  
553 - // <ins>A</ins><del>B</del>X<del>C</del>  
554 - if (lastequality && ((pre_ins && pre_del && post_ins && post_del) || ((lastequality.length < DIFF_EDIT_COST/2) && (pre_ins + pre_del + post_ins + post_del) == 3))) {  
555 - //alert("Splitting: '"+lastequality+"'");  
556 - diff.splice(equalities[equalities.length-1], 0, [-1, lastequality]); // Duplicate record  
557 - diff[equalities[equalities.length-1]+1][0] = 1; // Change second copy to insert.  
558 - equalities.pop(); // Throw away the equality we just deleted;  
559 - lastequality = '';  
560 - if (pre_ins && pre_del) {  
561 - // No changes made which could affect previous entry, keep going.  
562 - post_ins = post_del = true;  
563 - equalities = [];  
564 - } else {  
565 - equalities.pop(); // Throw away the previous equality;  
566 - pointer = equalities.length ? equalities[equalities.length-1] : -1;  
567 - post_ins = post_del = false;  
568 - }  
569 - changes = true;  
570 - }  
571 - }  
572 - pointer++;  
573 - }  
574 -  
575 - if (changes)  
576 - diff_cleanup_merge(diff);  
577 -}  
578 -  
579 -  
580 -function diff_cleanup_merge(diff) {  
581 - // Reorder and merge like edit sections. Merge equalities.  
582 - // Any edit section can move as long as it doesn't cross an equality.  
583 - diff.push([0, '']); // Add a dummy entry at the end.  
584 - var pointer = 0;  
585 - var count_delete = 0;  
586 - var count_insert = 0;  
587 - var text_delete = '';  
588 - var text_insert = '';  
589 - var record_insert, record_delete;  
590 - var my_xfix;  
591 - while(pointer < diff.length) {  
592 - if (diff[pointer][0] == 1) {  
593 - count_insert++;  
594 - text_insert += diff[pointer][1];  
595 - pointer++;  
596 - } else if (diff[pointer][0] == -1) {  
597 - count_delete++;  
598 - text_delete += diff[pointer][1];  
599 - pointer++;  
600 - } else { // Upon reaching an equality, check for prior redundancies.  
601 - if (count_delete > 1 || count_insert > 1) {  
602 - if (count_delete > 1 && count_insert > 1) {  
603 - // Factor out any common prefixies.  
604 - my_xfix = diff_prefix(text_insert, text_delete);  
605 - if (my_xfix[2] != '') {  
606 - if ((pointer - count_delete - count_insert) > 0 && diff[pointer - count_delete - count_insert - 1][0] == 0) {  
607 - text_insert = my_xfix[0];  
608 - text_delete = my_xfix[1];  
609 - diff[pointer - count_delete - count_insert - 1][1] += my_xfix[2];  
610 - }  
611 - }  
612 - // Factor out any common suffixies.  
613 - my_xfix = diff_suffix(text_insert, text_delete);  
614 - if (my_xfix[2] != '') {  
615 - text_insert = my_xfix[0];  
616 - text_delete = my_xfix[1];  
617 - diff[pointer][1] = my_xfix[2] + diff[pointer][1];  
618 - }  
619 - }  
620 - // Delete the offending records and add the merged ones.  
621 - if (count_delete == 0)  
622 - diff.splice(pointer - count_delete - count_insert, count_delete + count_insert, [1, text_insert]);  
623 - else if (count_insert == 0)  
624 - diff.splice(pointer - count_delete - count_insert, count_delete + count_insert, [-1, text_delete]);  
625 - else  
626 - diff.splice(pointer - count_delete - count_insert, count_delete + count_insert, [-1, text_delete], [1, text_insert]);  
627 - pointer = pointer - count_delete - count_insert + (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;  
628 - } else if (pointer != 0 && diff[pointer-1][0] == 0) {  
629 - // Merge this equality with the previous one.  
630 - diff[pointer-1][1] += diff[pointer][1];  
631 - diff.splice(pointer, 1);  
632 - } else {  
633 - pointer++;  
634 - }  
635 - count_insert = 0;  
636 - count_delete = 0;  
637 - text_delete = '';  
638 - text_insert = '';  
639 - }  
640 - }  
641 - if (diff[diff.length-1][1] == '')  
642 - diff.pop(); // Remove the dummy entry at the end.  
643 -}  
644 -  
645 -  
646 -function diff_addindex(diff) {  
647 - // Add an index to each tuple, represents where the tuple is located in text2.  
648 - // e.g. [[-1, 'h', 0], [1, 'c', 0], [0, 'at', 1]]  
649 - var i = 0;  
650 - for (var x=0; x<diff.length; x++) {  
651 - diff[x].push(i);  
652 - if (diff[x][0] != -1)  
653 - i += diff[x][1].length;  
654 - }  
655 -}  
656 -  
657 -  
658 -function diff_xindex(diff, loc) {  
659 - // loc is a location in text1, compute and return the equivalent location in text2.  
660 - // e.g. "The cat" vs "The big cat", 1->1, 5->8  
661 - var chars1 = 0;  
662 - var chars2 = 0;  
663 - var last_chars1 = 0;  
664 - var last_chars2 = 0;  
665 - for (var x=0; x<diff.length; x++) {  
666 - if (diff[x][0] != 1) // Equality or deletion.  
667 - chars1 += diff[x][1].length;  
668 - if (diff[x][0] != -1) // Equality or insertion.  
669 - chars2 += diff[x][1].length;  
670 - if (chars1 > loc) // Overshot the location.  
671 - break;  
672 - last_chars1 = chars1;  
673 - last_chars2 = chars2;  
674 - }  
675 - if (diff.length != x && diff[x][0] == -1) // The location was deleted.  
676 - return last_chars2;  
677 - // Add the remaining character length.  
678 - return last_chars2 + (loc - last_chars1);  
679 -}  
680 -  
681 -  
682 -function diff_prettyhtml(diff) {  
683 - // Convert a diff array into a pretty HTML report.  
684 - diff_addindex(diff);  
685 - var html = '';  
686 - for (var x=0; x<diff.length; x++) {  
687 - var m = diff[x][0]; // Mode (-1=delete, 0=copy, 1=add)  
688 - var t = diff[x][1]; // Text of change.  
689 - var i = diff[x][2]; // Index of change.  
690 - t = t.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");  
691 - t = t.replace(/\n/g, "&para;<BR>");  
692 - if (m == -1)  
693 - html += "<DEL STYLE='background:#FFE6E6;' TITLE='i="+i+"'>"+t+"</DEL>";  
694 - else if (m == 1)  
695 - html += "<INS STYLE='background:#E6FFE6;' TITLE='i="+i+"'>"+t+"</INS>";  
696 - else  
697 - html += "<SPAN TITLE='i="+i+"'>"+t+"</SPAN>";  
698 - }  
699 - return html;  
700 -}  
701 -  
702 -  
703 - //////////////////////////////////////////////////////////////////////  
704 - // Match //  
705 -//////////////////////////////////////////////////////////////////////  
706 -  
707 -  
708 -function match_getmaxbits() {  
709 - // Compute the number of bits in an int.  
710 - // The normal answer for JavaScript is 32.  
711 - var maxbits = 0;  
712 - var oldi = 1;  
713 - var newi = 2;  
714 - while (oldi != newi) {  
715 - maxbits++;  
716 - oldi = newi;  
717 - newi = newi << 1;  
718 - }  
719 - return maxbits;  
720 -}  
721 -var MATCH_MAXBITS = match_getmaxbits();  
722 -  
723 -  
724 -function match_main(text, pattern, loc) {  
725 - // Locate the best instance of 'pattern' in 'text' near 'loc'.  
726 - loc = Math.max(0, Math.min(loc, text.length-pattern.length));  
727 - if (text == pattern) {  
728 - // Shortcut (potentially not guaranteed by the algorithm)  
729 - return 0;  
730 - } else if (text.length == 0) {  
731 - // Nothing to match.  
732 - return null;  
733 - } else if (text.substring(loc, loc + pattern.length) == pattern) {  
734 - // Perfect match at the perfect spot! (Includes case of null pattern)  
735 - return loc;  
736 - } else {  
737 - // Do a fuzzy compare.  
738 - var match = match_bitap(text, pattern, loc);  
739 - return match;  
740 - }  
741 -}  
742 -  
743 -  
744 -function match_bitap(text, pattern, loc) {  
745 - // Locate the best instance of 'pattern' in 'text' near 'loc' using the Bitap algorithm.  
746 - if (pattern.length > MATCH_MAXBITS)  
747 - return alert("Pattern too long for this browser.");  
748 -  
749 - // Initialise the alphabet.  
750 - var s = match_alphabet(pattern);  
751 -  
752 - var score_text_length = text.length;  
753 - // Coerce the text length between reasonable maximums and minimums.  
754 - score_text_length = Math.max(score_text_length, MATCH_MINLENGTH);  
755 - score_text_length = Math.min(score_text_length, MATCH_MAXLENGTH);  
756 -  
757 - function match_bitap_score (e, x) {  
758 - // Compute and return the score for a match with e errors and x location.  
759 - var d = Math.abs(loc-x);  
760 - return (e / pattern.length / MATCH_BALANCE) + (d / score_text_length / (1.0 - MATCH_BALANCE));  
761 - }  
762 -  
763 - // Highest score beyond which we give up.  
764 - var score_threshold = MATCH_THRESHOLD;  
765 - // Is there a nearby exact match? (speedup)  
766 - var best_loc = text.indexOf(pattern, loc);  
767 - if (best_loc != -1)  
768 - score_threshold = Math.min(match_bitap_score(0, best_loc), score_threshold);  
769 - // What about in the other direction? (speedup)  
770 - best_loc = text.lastIndexOf(pattern, loc+pattern.length);  
771 - if (best_loc != -1)  
772 - score_threshold = Math.min(match_bitap_score(0, best_loc), score_threshold);  
773 -  
774 - // Initialise the bit arrays.  
775 - var r = Array();  
776 - var d = -1;  
777 - var matchmask = Math.pow(2, pattern.length-1);  
778 - best_loc = null;  
779 -  
780 - var bin_min, bin_mid;  
781 - var bin_max = Math.max(loc+loc, text.length);  
782 - var last_rd;  
783 - for (var d=0; d<pattern.length; d++) {  
784 - // Scan for the best match; each iteration allows for one more error.  
785 - var rd = Array(text.length);  
786 -  
787 - // Run a binary search to determine how far from 'loc' we can stray at this error level.  
788 - bin_min = loc;  
789 - bin_mid = bin_max;  
790 - while(bin_min < bin_mid) {  
791 - if (match_bitap_score(d, bin_mid) < score_threshold)  
792 - bin_min = bin_mid;  
793 - else  
794 - bin_max = bin_mid;  
795 - bin_mid = Math.floor((bin_max - bin_min) / 2 + bin_min);  
796 - }  
797 - bin_max = bin_mid; // Use the result from this iteration as the maximum for the next.  
798 - var start = Math.max(0, loc - (bin_mid - loc) - 1);  
799 - var finish = Math.min(text.length-1, pattern.length + bin_mid);  
800 -  
801 - if (text.charAt(finish) == pattern.charAt(pattern.length-1))  
802 - rd[finish] = Math.pow(2, d+1)-1;  
803 - else  
804 - rd[finish] = Math.pow(2, d)-1;  
805 - for (var j=finish-1; j>=start; j--) {  
806 - // The alphabet (s) is a sparse hash, so the following lines generate warnings.  
807 - if (d == 0) // First pass: exact match.  
808 - rd[j] = ((rd[j+1] << 1) | 1) & s[text.charAt(j)];  
809 - else // Subsequent passes: fuzzy match.  
810 - rd[j] = ((rd[j+1] << 1) | 1) & s[text.charAt(j)] | ((last_rd[j+1] << 1) | 1) | ((last_rd[j] << 1) | 1) | last_rd[j+1];  
811 - if (rd[j] & matchmask) {  
812 - var score = match_bitap_score(d, j);  
813 - // This match will almost certainly be better than any existing match. But check anyway.  
814 - if (score <= score_threshold) {  
815 - // Told you so.  
816 - score_threshold = score;  
817 - best_loc = j;  
818 - if (j > loc) {  
819 - // When passing loc, don't exceed our current distance from loc.  
820 - start = Math.max(0, loc - (j - loc));  
821 - } else {  
822 - // Already passed loc, downhill from here on in.  
823 - break;  
824 - }  
825 - }  
826 - }  
827 - }  
828 - if (match_bitap_score(d+1, loc) > score_threshold) // No hope for a (better) match at greater error levels.  
829 - break;  
830 - last_rd = rd;  
831 - }  
832 - return best_loc;  
833 -}  
834 -  
835 -  
836 -function match_alphabet(pattern) {  
837 - // Initialise the alphabet for the Bitap algorithm.  
838 - var s = Object();  
839 - for (var i=0; i<pattern.length; i++)  
840 - s[pattern.charAt(i)] = 0;  
841 - for (var i=0; i<pattern.length; i++)  
842 - s[pattern.charAt(i)] |= Math.pow(2, pattern.length-i-1);  
843 - return s;  
844 -}  
845 -  
846 -  
847 - //////////////////////////////////////////////////////////////////////  
848 - // Patch //  
849 -//////////////////////////////////////////////////////////////////////  
850 -  
851 -  
852 -function patch_obj() {  
853 - // Constructor for a patch object.  
854 - this.diffs = [];  
855 - this.start1 = null;  
856 - this.start2 = null;  
857 - this.length1 = 0;  
858 - this.length2 = 0;  
859 -  
860 - this.toString = function() {  
861 - // Emmulate GNU diff's format.  
862 - // Header: @@ -382,8 +481,9 @@  
863 - // Indicies are printed as 1-based, not 0-based.  
864 - var coords1, coords2;  
865 - if (this.length1 == 0)  
866 - coords1 = this.start1+",0";  
867 - else if (this.length1 == 1)  
868 - coords1 = this.start1+1;  
869 - else  
870 - coords1 = (this.start1+1)+","+this.length1;  
871 - if (this.length2 == 0)  
872 - coords2 = this.start2+",0";  
873 - else if (this.length2 == 1)  
874 - coords2 = this.start2+1;  
875 - else  
876 - coords2 = (this.start2+1)+","+this.length2;  
877 - var txt = "@@ -"+coords1+" +"+coords2+" @@\n";  
878 - // Escape the body of the patch with %xx notation.  
879 - for (var x=0; x<this.diffs.length; x++)  
880 - txt += ("- +".charAt(this.diffs[x][0]+1)) + encodeURI(this.diffs[x][1]) + "\n";  
881 - return txt.replace(/%20/g, ' ');  
882 - }  
883 -  
884 - this.text1 = function() {  
885 - // Compute and return the source text (all equalities and deletions).  
886 - var txt = '';  
887 - for (var x=0; x<this.diffs.length; x++)  
888 - if (this.diffs[x][0] == 0 || this.diffs[x][0] == -1)  
889 - txt += this.diffs[x][1];  
890 - return txt;  
891 - }  
892 -  
893 - this.text2 = function() {  
894 - // Compute and return the destination text (all equalities and insertions).  
895 - var txt = '';  
896 - for (var x=0; x<this.diffs.length; x++)  
897 - if (this.diffs[x][0] == 0 || this.diffs[x][0] == 1)  
898 - txt += this.diffs[x][1];  
899 - return txt;  
900 - }  
901 -}  
902 -  
903 -  
904 -function patch_addcontext(patch, text) {  
905 - var pattern = text.substring(patch.start2, patch.start2+patch.length1);  
906 - var padding = 0;  
907 - // Increase the context until we're unique (but don't let the pattern expand beyond MATCH_MAXBITS).  
908 - while (text.indexOf(pattern) != text.lastIndexOf(pattern) && pattern.length < MATCH_MAXBITS-PATCH_MARGIN-PATCH_MARGIN) {  
909 - padding += PATCH_MARGIN;  
910 - pattern = text.substring(patch.start2 - padding, patch.start2+patch.length1 + padding);  
911 - }  
912 - // Add one chunk for good luck.  
913 - padding += PATCH_MARGIN;  
914 - // Add the prefix.  
915 - var prefix = text.substring(patch.start2 - padding, patch.start2);  
916 - if (prefix != '')  
917 - patch.diffs.unshift([0, prefix]);  
918 - // Add the suffix  
919 - var suffix = text.substring(patch.start2+patch.length1, patch.start2+patch.length1 + padding);  
920 - if (suffix != '')  
921 - patch.diffs.push([0, suffix]);  
922 -  
923 - // Roll back the start points.  
924 - patch.start1 -= prefix.length;  
925 - patch.start2 -= prefix.length;  
926 - // Extend the lengths.  
927 - patch.length1 += prefix.length + suffix.length;  
928 - patch.length2 += prefix.length + suffix.length;  
929 -}  
930 -  
931 -  
932 -function patch_make(text1, text2, diff) {  
933 - // Compute a list of patches to turn text1 into text2.  
934 - // Use diff if provided, otherwise compute it ourselves.  
935 - if (typeof diff == 'undefined') {  
936 - diff = diff_main(text1, text2, true);  
937 - if (diff.length > 2) {  
938 - diff_cleanup_semantic(diff);  
939 - diff_cleanup_efficiency(diff);  
940 - }  
941 - }  
942 - if (diff.length == 0)  
943 - return []; // Get rid of the null case.  
944 - var patches = [];  
945 - var patch = new patch_obj();  
946 - var char_count1 = 0; // Number of characters into the text1 string.  
947 - var char_count2 = 0; // Number of characters into the text2 string.  
948 - var last_type = null;  
949 - var prepatch_text = text1; // Recreate the patches to determine context info.  
950 - var postpatch_text = text1;  
951 - for (var x=0; x<diff.length; x++) {  
952 - var diff_type = diff[x][0];  
953 - var diff_text = diff[x][1];  
954 -  
955 - if (patch.diffs.length == 0 && diff_type != 0) {  
956 - // A new patch starts here.  
957 - patch.start1 = char_count1;  
958 - patch.start2 = char_count2;  
959 - }  
960 -  
961 - if (diff_type == 1) {  
962 - // Insertion  
963 - patch.diffs.push(diff[x]);  
964 - patch.length2 += diff_text.length;  
965 - postpatch_text = postpatch_text.substring(0, char_count2) + diff_text + postpatch_text.substring(char_count2);  
966 - } else if (diff_type == -1) {  
967 - // Deletion.  
968 - patch.length1 += diff_text.length;  
969 - patch.diffs.push(diff[x]);  
970 - postpatch_text = postpatch_text.substring(0, char_count2) + postpatch_text.substring(char_count2 + diff_text.length);  
971 - } else if (diff_type == 0 && diff_text.length <= 2*PATCH_MARGIN && patch.diffs.length != 0 && diff.length != x+1) {  
972 - // Small equality inside a patch.  
973 - patch.diffs.push(diff[x]);  
974 - patch.length1 += diff_text.length;  
975 - patch.length2 += diff_text.length;  
976 - }  
977 -  
978 - last_type = diff_type;  
979 - if (diff_type == 0 && diff_text.length >= 2*PATCH_MARGIN) {  
980 - // Time for a new patch.  
981 - if (patch.diffs.length != 0) {  
982 - patch_addcontext(patch, prepatch_text);  
983 - patches.push(patch);  
984 - var patch = new patch_obj();  
985 - last_type = null;  
986 - prepatch_text = postpatch_text;  
987 - }  
988 - }  
989 -  
990 - // Update the current character count.  
991 - if (diff_type != 1)  
992 - char_count1 += diff_text.length;  
993 - if (diff_type != -1)  
994 - char_count2 += diff_text.length;  
995 - }  
996 - // Pick up the leftover patch if not empty.  
997 - if (patch.diffs.length != 0) {  
998 - patch_addcontext(patch, prepatch_text);  
999 - patches.push(patch);  
1000 - }  
1001 -  
1002 - return patches;  
1003 -}  
1004 -  
1005 -  
1006 -function patch_apply(patches, text) {  
1007 - // Merge a set of patches onto the text.  
1008 - // Return a patched text, as well as a list of true/false values indicating which patches were applied.  
1009 - patch_splitmax(patches);  
1010 - var results = [];  
1011 - var delta = 0;  
1012 - var expected_loc, start_loc;  
1013 - var text1, text2;  
1014 - var diff, mod, index1, index2;  
1015 - for (var x=0; x<patches.length; x++) {  
1016 - expected_loc = patches[x].start2 + delta;  
1017 - text1 = patches[x].text1();  
1018 - start_loc = match_main(text, text1, expected_loc);  
1019 - if (start_loc == null) {  
1020 - // No match found. :(  
1021 - results.push(false);  
1022 - } else {  
1023 - // Found a match. :)  
1024 - results.push(true);  
1025 - delta = start_loc - expected_loc;  
1026 - text2 = text.substring(start_loc, start_loc + text1.length);  
1027 - if (text1 == text2) {  
1028 - // Perfect match, just shove the replacement text in.  
1029 - text = text.substring(0, start_loc) + patches[x].text2() + text.substring(start_loc + text1.length);  
1030 - } else {  
1031 - // Imperfect match. Run a diff to get a framework of equivalent indicies.  
1032 - diff = diff_main(text1, text2, false);  
1033 - index1 = 0;  
1034 - for (var y=0; y<patches[x].diffs.length; y++) {  
1035 - mod = patches[x].diffs[y];  
1036 - if (mod[0] != 0)  
1037 - index2 = diff_xindex(diff, index1);  
1038 - if (mod[0] == 1) // Insertion  
1039 - text = text.substring(0, start_loc + index2) + mod[1] + text.substring(start_loc + index2);  
1040 - else if (mod[0] == -1) // Deletion  
1041 - text = text.substring(0, start_loc + index2) + text.substring(start_loc + diff_xindex(diff, index1 + mod[1].length));  
1042 - if (mod[0] != -1)  
1043 - index1 += mod[1].length;  
1044 - }  
1045 - }  
1046 - }  
1047 - }  
1048 - return [text, results];  
1049 -}  
1050 -  
1051 -  
1052 -function patch_splitmax(patches) {  
1053 - // Look through the patches and break up any which are longer than the maximum limit of the match algorithm.  
1054 - var bigpatch, patch, patch_size, start1, start2, diff_type, diff_text, precontext, postcontext, empty;  
1055 - for (var x=0; x<patches.length; x++) {  
1056 - if (patches[x].length1 > MATCH_MAXBITS) {  
1057 - bigpatch = patches[x];  
1058 - // Remove the big old patch.  
1059 - patches.splice(x, 1);  
1060 - patch_size = MATCH_MAXBITS;  
1061 - start1 = bigpatch.start1;  
1062 - start2 = bigpatch.start2;  
1063 - precontext = '';  
1064 - while (bigpatch.diffs.length != 0) {  
1065 - // Create one of several smaller patches.  
1066 - patch = new patch_obj();  
1067 - empty = true;  
1068 - patch.start1 = start1 - precontext.length;  
1069 - patch.start2 = start2 - precontext.length;  
1070 - if (precontext != '') {  
1071 - patch.length1 = patch.length2 = precontext.length;  
1072 - patch.diffs.push([0, precontext]);  
1073 - }  
1074 - while (bigpatch.diffs.length != 0 && patch.length1 < patch_size - PATCH_MARGIN) {  
1075 - diff_type = bigpatch.diffs[0][0];  
1076 - diff_text = bigpatch.diffs[0][1];  
1077 - if (diff_type == 1) {  
1078 - // Insertions are harmless.  
1079 - patch.length2 += diff_text.length;  
1080 - start2 += diff_text.length;  
1081 - patch.diffs.push(bigpatch.diffs.shift());  
1082 - empty = false;  
1083 - } else {  
1084 - // Deletion or equality. Only take as much as we can stomach.  
1085 - diff_text = diff_text.substring(0, patch_size - patch.length1 - PATCH_MARGIN);  
1086 - patch.length1 += diff_text.length;  
1087 - start1 += diff_text.length;  
1088 - if (diff_type == 0) {  
1089 - patch.length2 += diff_text.length;  
1090 - start2 += diff_text.length;  
1091 - } else {  
1092 - empty = false;  
1093 - }  
1094 - patch.diffs.push([diff_type, diff_text]);  
1095 - if (diff_text == bigpatch.diffs[0][1])  
1096 - bigpatch.diffs.shift();  
1097 - else  
1098 - bigpatch.diffs[0][1] = bigpatch.diffs[0][1].substring(diff_text.length);  
1099 - }  
1100 - }  
1101 - // Compute the head context for the next patch.  
1102 - precontext = patch.text2();  
1103 - precontext = precontext.substring(precontext.length - PATCH_MARGIN);  
1104 - // Append the end context for this patch.  
1105 - postcontext = bigpatch.text1().substring(0, PATCH_MARGIN);  
1106 - if (postcontext != '') {  
1107 - patch.length1 += postcontext.length;  
1108 - patch.length2 += postcontext.length;  
1109 - if (patch.diffs.length > 0 && patch.diffs[patch.diffs.length-1][0] == 0)  
1110 - patch.diffs[patch.diffs.length-1][1] += postcontext;  
1111 - else  
1112 - patch.diffs.push([0, postcontext]);  
1113 - }  
1114 - if (!empty)  
1115 - patches.splice(x++, 0, patch);  
1116 - }  
1117 - }  
1118 - }  
1119 -}  
1120 -  
1121 -  
1122 -function patch_totext(patches) {  
1123 - // Take a list of patches and return a textual representation.  
1124 - var text = '';  
1125 - for (var x=0; x<patches.length; x++)  
1126 - text += patches[x];  
1127 - return text;  
1128 -}  
1129 -  
1130 -  
1131 -function patch_fromtext(text) {  
1132 - // Take a textual representation of patches and return a list of patch objects.  
1133 - var patches = [];  
1134 - text = text.split('\n');  
1135 - var patch, m, chars1, chars2, sign, line;  
1136 - while (text.length != 0) {  
1137 - m = text[0].match(/^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/);  
1138 - if (!m)  
1139 - return alert("Invalid patch string:\n"+text[0]);  
1140 - patch = new patch_obj();  
1141 - patches.push(patch);  
1142 - patch.start1 = parseInt(m[1]);  
1143 - if (m[2] == '') {  
1144 - patch.start1--;  
1145 - patch.length1 = 1;  
1146 - } else if (m[2] == '0') {  
1147 - patch.length1 = 0;  
1148 - } else {  
1149 - patch.start1--;  
1150 - patch.length1 = parseInt(m[2]);  
1151 - }  
1152 -  
1153 - patch.start2 = parseInt(m[3]);  
1154 - if (m[4] == '') {  
1155 - patch.start2--;  
1156 - patch.length2 = 1;  
1157 - } else if (m[4] == '0') {  
1158 - patch.length2 = 0;  
1159 - } else {  
1160 - patch.start2--;  
1161 - patch.length2 = parseInt(m[4]);  
1162 - }  
1163 - text.shift();  
1164 -  
1165 - while (text.length != 0) {  
1166 - sign = text[0].charAt(0);  
1167 - line = decodeURIComponent(text[0].substring(1));  
1168 - if (sign == '-') {  
1169 - // Deletion.  
1170 - patch.diffs.push([-1, line]);  
1171 - } else if (sign == '+') {  
1172 - // Insertion.  
1173 - patch.diffs.push([1, line]);  
1174 - } else if (sign == ' ') {  
1175 - // Minor equality.  
1176 - patch.diffs.push([0, line]);  
1177 - } else if (sign == '@') {  
1178 - // Start of next patch.  
1179 - break;  
1180 - } else if (sign == '') {  
1181 - // Blank line? Whatever.  
1182 - } else {  
1183 - // WTF?  
1184 - return alert("Invalid patch mode: '"+sign+"'\n"+line);  
1185 - }  
1186 - text.shift();  
1187 - }  
1188 - }  
1189 - return patches;  
1190 -}  
1191 -  
1192 -// EOF  
public/javascripts/tiny_mce/plugins/devkit/langs/en.js
@@ -1,23 +0,0 @@ @@ -1,23 +0,0 @@
1 -// UK lang variables  
2 -  
3 -tinyMCE.addToLang('devkit',{  
4 -title : 'TinyMCE Development Kit',  
5 -info_tab : 'Info',  
6 -settings_tab : 'Settings',  
7 -log_tab : 'Log',  
8 -content_tab : 'Content',  
9 -command_states_tab : 'Commands',  
10 -undo_redo_tab : 'Undo/Redo',  
11 -misc_tab : 'Misc',  
12 -filter : 'Filter:',  
13 -clear_log : 'Clear log',  
14 -refresh : 'Refresh',  
15 -info_help : 'Press Refresh to view info.',  
16 -settings_help : 'Press Refresh to display the settings array for each TinyMCE_Control instance.',  
17 -content_help : 'Press Refresh to display the raw and cleaned HTML content for each TinyMCE_Control instance.',  
18 -command_states_help : 'Press Refresh to display the current command states from inst.queryCommandState. This list will also mark unsupported commands.',  
19 -undo_redo_help : 'Press Refresh to display the global and instance undo/redo levels.',  
20 -misc_help : 'Here are various tools for debugging and development purposes.',  
21 -debug_events : 'Debug events',  
22 -undo_diff : 'Diff undo levels'  
23 -});  
public/javascripts/tiny_mce/plugins/directionality/editor_plugin.js
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -tinyMCE.importPluginLanguagePack('directionality');var TinyMCE_DirectionalityPlugin={getInfo:function(){return{longname:'Directionality',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"ltr":return tinyMCE.getButtonHTML(cn,'lang_directionality_ltr_desc','{$pluginurl}/images/ltr.gif','mceDirectionLTR');case"rtl":return tinyMCE.getButtonHTML(cn,'lang_directionality_rtl_desc','{$pluginurl}/images/rtl.gif','mceDirectionRTL')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceDirectionLTR":var inst=tinyMCE.getInstanceById(editor_id);var elm=tinyMCE.getParentElement(inst.getFocusElement(),"p,div,td,h1,h2,h3,h4,h5,h6,pre,address");if(elm)elm.setAttribute("dir","ltr");tinyMCE.triggerNodeChange(false);return true;case"mceDirectionRTL":var inst=tinyMCE.getInstanceById(editor_id);var elm=tinyMCE.getParentElement(inst.getFocusElement(),"p,div,td,h1,h2,h3,h4,h5,h6,pre,address");if(elm)elm.setAttribute("dir","rtl");tinyMCE.triggerNodeChange(false);return true}return false},handleNodeChange:function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){function getAttrib(elm,name){return elm.getAttribute(name)?elm.getAttribute(name):""}if(node==null)return;var elm=tinyMCE.getParentElement(node,"p,div,td,h1,h2,h3,h4,h5,h6,pre,address");if(!elm){tinyMCE.switchClass(editor_id+'_ltr','mceButtonDisabled');tinyMCE.switchClass(editor_id+'_rtl','mceButtonDisabled');return true}tinyMCE.switchClass(editor_id+'_ltr','mceButtonNormal');tinyMCE.switchClass(editor_id+'_rtl','mceButtonNormal');var dir=getAttrib(elm,"dir");if(dir=="ltr"||dir=="")tinyMCE.switchClass(editor_id+'_ltr','mceButtonSelected');else tinyMCE.switchClass(editor_id+'_rtl','mceButtonSelected');return true}};tinyMCE.addPlugin("directionality",TinyMCE_DirectionalityPlugin);  
2 \ No newline at end of file 0 \ No newline at end of file
public/javascripts/tiny_mce/plugins/directionality/editor_plugin_src.js
@@ -1,90 +0,0 @@ @@ -1,90 +0,0 @@
1 -/**  
2 - * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $  
3 - *  
4 - * @author Moxiecode  
5 - * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.  
6 - */  
7 -  
8 -/* Import plugin specific language pack */  
9 -tinyMCE.importPluginLanguagePack('directionality');  
10 -  
11 -var TinyMCE_DirectionalityPlugin = {  
12 - getInfo : function() {  
13 - return {  
14 - longname : 'Directionality',  
15 - author : 'Moxiecode Systems AB',  
16 - authorurl : 'http://tinymce.moxiecode.com',  
17 - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',  
18 - version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion  
19 - };  
20 - },  
21 -  
22 - getControlHTML : function(cn) {  
23 - switch (cn) {  
24 - case "ltr":  
25 - return tinyMCE.getButtonHTML(cn, 'lang_directionality_ltr_desc', '{$pluginurl}/images/ltr.gif', 'mceDirectionLTR');  
26 -  
27 - case "rtl":  
28 - return tinyMCE.getButtonHTML(cn, 'lang_directionality_rtl_desc', '{$pluginurl}/images/rtl.gif', 'mceDirectionRTL');  
29 - }  
30 -  
31 - return "";  
32 - },  
33 -  
34 - execCommand : function(editor_id, element, command, user_interface, value) {  
35 - // Handle commands  
36 - switch (command) {  
37 - case "mceDirectionLTR":  
38 - var inst = tinyMCE.getInstanceById(editor_id);  
39 - var elm = tinyMCE.getParentElement(inst.getFocusElement(), "p,div,td,h1,h2,h3,h4,h5,h6,pre,address");  
40 -  
41 - if (elm)  
42 - elm.setAttribute("dir", "ltr");  
43 -  
44 - tinyMCE.triggerNodeChange(false);  
45 - return true;  
46 -  
47 - case "mceDirectionRTL":  
48 - var inst = tinyMCE.getInstanceById(editor_id);  
49 - var elm = tinyMCE.getParentElement(inst.getFocusElement(), "p,div,td,h1,h2,h3,h4,h5,h6,pre,address");  
50 -  
51 - if (elm)  
52 - elm.setAttribute("dir", "rtl");  
53 -  
54 - tinyMCE.triggerNodeChange(false);  
55 - return true;  
56 - }  
57 -  
58 - // Pass to next handler in chain  
59 - return false;  
60 - },  
61 -  
62 - handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {  
63 - function getAttrib(elm, name) {  
64 - return elm.getAttribute(name) ? elm.getAttribute(name) : "";  
65 - }  
66 -  
67 - if (node == null)  
68 - return;  
69 -  
70 - var elm = tinyMCE.getParentElement(node, "p,div,td,h1,h2,h3,h4,h5,h6,pre,address");  
71 - if (!elm) {  
72 - tinyMCE.switchClass(editor_id + '_ltr', 'mceButtonDisabled');  
73 - tinyMCE.switchClass(editor_id + '_rtl', 'mceButtonDisabled');  
74 - return true;  
75 - }  
76 -  
77 - tinyMCE.switchClass(editor_id + '_ltr', 'mceButtonNormal');  
78 - tinyMCE.switchClass(editor_id + '_rtl', 'mceButtonNormal');  
79 -  
80 - var dir = getAttrib(elm, "dir");  
81 - if (dir == "ltr" || dir == "")  
82 - tinyMCE.switchClass(editor_id + '_ltr', 'mceButtonSelected');  
83 - else  
84 - tinyMCE.switchClass(editor_id + '_rtl', 'mceButtonSelected');  
85 -  
86 - return true;  
87 - }  
88 -};  
89 -  
90 -tinyMCE.addPlugin("directionality", TinyMCE_DirectionalityPlugin);  
public/javascripts/tiny_mce/plugins/directionality/images/ltr.gif

155 Bytes

public/javascripts/tiny_mce/plugins/directionality/images/rtl.gif

153 Bytes

public/javascripts/tiny_mce/plugins/directionality/langs/de.js
@@ -1,6 +0,0 @@ @@ -1,6 +0,0 @@
1 -// DE lang variables  
2 -  
3 -tinyMCE.addToLang('',{  
4 -directionality_ltr_desc : 'Von links nach rechts',  
5 -directionality_rtl_desc : 'Von rechts nach links'  
6 -});  
public/javascripts/tiny_mce/plugins/directionality/langs/en.js
@@ -1,6 +0,0 @@ @@ -1,6 +0,0 @@
1 -// UK lang variables  
2 -  
3 -tinyMCE.addToLang('',{  
4 -directionality_ltr_desc : 'Direction left to right',  
5 -directionality_rtl_desc : 'Direction right to left'  
6 -});  
public/javascripts/tiny_mce/plugins/directionality/langs/fr.js
@@ -1,7 +0,0 @@ @@ -1,7 +0,0 @@
1 -// FR lang variables  
2 -// Modified by Motte, last updated 2006-03-23  
3 -  
4 -tinyMCE.addToLang('',{  
5 -directionality_ltr_desc : 'Vers la droite',  
6 -directionality_rtl_desc : 'Vers la gauche'  
7 -});  
public/javascripts/tiny_mce/plugins/directionality/langs/nl.js
@@ -1,6 +0,0 @@ @@ -1,6 +0,0 @@
1 -// NL lang variables  
2 -  
3 -tinyMCE.addToLang('',{  
4 -directionality_ltr_desc : 'Richting links naar rechts',  
5 -directionality_rtl_desc : 'Richting rechts naar links'  
6 -});  
public/javascripts/tiny_mce/plugins/directionality/langs/pt_br.js
@@ -1,14 +0,0 @@ @@ -1,14 +0,0 @@
1 -/**  
2 - * pt_br lang variables  
3 - * Brazilian Portuguese  
4 - *  
5 - * Author  
6 - * Revision and modifications:  
7 - * Marcio Barbosa (mpg) <mpg@mpg.com.br>  
8 - * First Release : November 26, 2005 - TinyMCE Version : 2.0RC4  
9 - * Last Updated : November 20, 2006 - TinyMCE Version : 2.0.8  
10 - */  
11 -tinyMCE.addToLang('',{  
12 -directionality_ltr_desc : 'Direcionamento da esquerda para direita',  
13 -directionality_rtl_desc : 'Direcionamento da direita para esquerda'  
14 -});  
public/javascripts/tiny_mce/plugins/directionality/readme.txt
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -Check the TinyMCE documentation for details on this plugin.  
public/javascripts/tiny_mce/plugins/emotions/editor_plugin.js
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -tinyMCE.importPluginLanguagePack('emotions');var TinyMCE_EmotionsPlugin={getInfo:function(){return{longname:'Emotions',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn){switch(cn){case"emotions":return tinyMCE.getButtonHTML(cn,'lang_emotions_desc','{$pluginurl}/images/emotions.gif','mceEmotion')}return""},execCommand:function(editor_id,element,command,user_interface,value){switch(command){case"mceEmotion":var template=new Array();template['file']='../../plugins/emotions/emotions.htm';template['width']=250;template['height']=160;template['width']+=tinyMCE.getLang('lang_emotions_delta_width',0);template['height']+=tinyMCE.getLang('lang_emotions_delta_height',0);tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes"});return true}return false}};tinyMCE.addPlugin('emotions',TinyMCE_EmotionsPlugin);  
2 \ No newline at end of file 0 \ No newline at end of file
public/javascripts/tiny_mce/plugins/emotions/editor_plugin_src.js
@@ -1,63 +0,0 @@ @@ -1,63 +0,0 @@
1 -/**  
2 - * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $  
3 - *  
4 - * @author Moxiecode  
5 - * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.  
6 - */  
7 -  
8 -/* Import plugin specific language pack */  
9 -tinyMCE.importPluginLanguagePack('emotions');  
10 -  
11 -// Plucin static class  
12 -var TinyMCE_EmotionsPlugin = {  
13 - getInfo : function() {  
14 - return {  
15 - longname : 'Emotions',  
16 - author : 'Moxiecode Systems AB',  
17 - authorurl : 'http://tinymce.moxiecode.com',  
18 - infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',  
19 - version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion  
20 - };  
21 - },  
22 -  
23 - /**  
24 - * Returns the HTML contents of the emotions control.  
25 - */  
26 - getControlHTML : function(cn) {  
27 - switch (cn) {  
28 - case "emotions":  
29 - return tinyMCE.getButtonHTML(cn, 'lang_emotions_desc', '{$pluginurl}/images/emotions.gif', 'mceEmotion');  
30 - }  
31 -  
32 - return "";  
33 - },  
34 -  
35 - /**  
36 - * Executes the mceEmotion command.  
37 - */  
38 - execCommand : function(editor_id, element, command, user_interface, value) {  
39 - // Handle commands  
40 - switch (command) {  
41 - case "mceEmotion":  
42 - var template = new Array();  
43 -  
44 - template['file'] = '../../plugins/emotions/emotions.htm'; // Relative to theme  
45 - template['width'] = 250;  
46 - template['height'] = 160;  
47 -  
48 - // Language specific width and height addons  
49 - template['width'] += tinyMCE.getLang('lang_emotions_delta_width', 0);  
50 - template['height'] += tinyMCE.getLang('lang_emotions_delta_height', 0);  
51 -  
52 - tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"});  
53 -  
54 - return true;  
55 - }  
56 -  
57 - // Pass to next handler in chain  
58 - return false;  
59 - }  
60 -};  
61 -  
62 -// Register plugin  
63 -tinyMCE.addPlugin('emotions', TinyMCE_EmotionsPlugin);  
public/javascripts/tiny_mce/plugins/emotions/emotions.htm
@@ -1,40 +0,0 @@ @@ -1,40 +0,0 @@
1 -<html xmlns="http://www.w3.org/1999/xhtml">  
2 -<head>  
3 - <title>{$lang_emotions_title}</title>  
4 - <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>  
5 - <script language="javascript" type="text/javascript" src="jscripts/functions.js"></script>  
6 - <base target="_self" />  
7 -</head>  
8 -<body onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">  
9 - <div align="center">  
10 - <div class="title">{$lang_emotions_title}:<br /><br /></div>  
11 -  
12 - <table border="0" cellspacing="0" cellpadding="4">  
13 - <tr>  
14 - <td><a href="javascript:insertEmotion('smiley-cool.gif','lang_emotions_cool');"><img src="images/smiley-cool.gif" width="18" height="18" border="0" alt="{$lang_emotions_cool}" title="{$lang_emotions_cool}" /></a></td>  
15 - <td><a href="javascript:insertEmotion('smiley-cry.gif','lang_emotions_cry');"><img src="images/smiley-cry.gif" width="18" height="18" border="0" alt="{$lang_emotions_cry}" title="{$lang_emotions_cry}" /></a></td>  
16 - <td><a href="javascript:insertEmotion('smiley-embarassed.gif','lang_emotions_embarassed');"><img src="images/smiley-embarassed.gif" width="18" height="18" border="0" alt="{$lang_emotions_embarassed}" title="{$lang_emotions_embarassed}" /></a></td>  
17 - <td><a href="javascript:insertEmotion('smiley-foot-in-mouth.gif','lang_emotions_foot_in_mouth');"><img src="images/smiley-foot-in-mouth.gif" width="18" height="18" border="0" alt="{$lang_emotions_foot_in_mouth}" title="{$lang_emotions_foot_in_mouth}" /></a></td>  
18 - </tr>  
19 - <tr>  
20 - <td><a href="javascript:insertEmotion('smiley-frown.gif','lang_emotions_frown');"><img src="images/smiley-frown.gif" width="18" height="18" border="0" alt="{$lang_emotions_frown}" title="{$lang_emotions_frown}" /></a></td>  
21 - <td><a href="javascript:insertEmotion('smiley-innocent.gif','lang_emotions_innocent');"><img src="images/smiley-innocent.gif" width="18" height="18" border="0" alt="{$lang_emotions_innocent}" title="{$lang_emotions_innocent}" /></a></td>  
22 - <td><a href="javascript:insertEmotion('smiley-kiss.gif','lang_emotions_kiss');"><img src="images/smiley-kiss.gif" width="18" height="18" border="0" alt="{$lang_emotions_kiss}" title="{$lang_emotions_kiss}" /></a></td>  
23 - <td><a href="javascript:insertEmotion('smiley-laughing.gif','lang_emotions_laughing');"><img src="images/smiley-laughing.gif" width="18" height="18" border="0" alt="{$lang_emotions_laughing}" title="{$lang_emotions_laughing}" /></a></td>  
24 - </tr>  
25 - <tr>  
26 - <td><a href="javascript:insertEmotion('smiley-money-mouth.gif','lang_emotions_money_mouth');"><img src="images/smiley-money-mouth.gif" width="18" height="18" border="0" alt="{$lang_emotions_money_mouth}" title="{$lang_emotions_money_mouth}" /></a></td>  
27 - <td><a href="javascript:insertEmotion('smiley-sealed.gif','lang_emotions_sealed');"><img src="images/smiley-sealed.gif" width="18" height="18" border="0" alt="{$lang_emotions_sealed}" title="{$lang_emotions_sealed}" /></a></td>  
28 - <td><a href="javascript:insertEmotion('smiley-smile.gif','lang_emotions_smile');"><img src="images/smiley-smile.gif" width="18" height="18" border="0" alt="{$lang_emotions_smile}" title="{$lang_emotions_smile}" /></a></td>  
29 - <td><a href="javascript:insertEmotion('smiley-surprised.gif','lang_emotions_surprised');"><img src="images/smiley-surprised.gif" width="18" height="18" border="0" alt="{$lang_emotions_surprised}" title="{$lang_emotions_surprised}" /></a></td>  
30 - </tr>  
31 - <tr>  
32 - <td><a href="javascript:insertEmotion('smiley-tongue-out.gif','lang_emotions_tongue_out');"><img src="images/smiley-tongue-out.gif" width="18" height="18" border="0" alt="{$lang_emotions_tongue-out}" title="{$lang_emotions_tongue_out}" /></a></td>  
33 - <td><a href="javascript:insertEmotion('smiley-undecided.gif','lang_emotions_undecided');"><img src="images/smiley-undecided.gif" width="18" height="18" border="0" alt="{$lang_emotions_undecided}" title="{$lang_emotions_undecided}" /></a></td>  
34 - <td><a href="javascript:insertEmotion('smiley-wink.gif','lang_emotions_wink');"><img src="images/smiley-wink.gif" width="18" height="18" border="0" alt="{$lang_emotions_wink}" title="{$lang_emotions_wink}" /></a></td>  
35 - <td><a href="javascript:insertEmotion('smiley-yell.gif','lang_emotions_yell');"><img src="images/smiley-yell.gif" width="18" height="18" border="0" alt="{$lang_emotions_yell}" title="{$lang_emotions_yell}" /></a></td>  
36 - </tr>  
37 - </table>  
38 - </div>  
39 -</body>  
40 -</html>  
public/javascripts/tiny_mce/plugins/emotions/images/emotions.gif

319 Bytes

public/javascripts/tiny_mce/plugins/emotions/images/readme.txt
@@ -1,2 +0,0 @@ @@ -1,2 +0,0 @@
1 -These emotions where taken from Mozilla Thunderbird.  
2 -I hope they don't get angry if I use them here after all this is a open source project aswell.  
public/javascripts/tiny_mce/plugins/emotions/images/smiley-cool.gif

354 Bytes

public/javascripts/tiny_mce/plugins/emotions/images/smiley-cry.gif

329 Bytes

public/javascripts/tiny_mce/plugins/emotions/images/smiley-embarassed.gif

331 Bytes

public/javascripts/tiny_mce/plugins/emotions/images/smiley-foot-in-mouth.gif

344 Bytes

public/javascripts/tiny_mce/plugins/emotions/images/smiley-frown.gif

340 Bytes

public/javascripts/tiny_mce/plugins/emotions/images/smiley-innocent.gif

336 Bytes

public/javascripts/tiny_mce/plugins/emotions/images/smiley-kiss.gif

338 Bytes

public/javascripts/tiny_mce/plugins/emotions/images/smiley-laughing.gif

344 Bytes

public/javascripts/tiny_mce/plugins/emotions/images/smiley-money-mouth.gif

321 Bytes

public/javascripts/tiny_mce/plugins/emotions/images/smiley-sealed.gif

325 Bytes