svn commit: r1178141 [12/19] - in /ofbiz/trunk: applications/content/webapp/content/website/ framework/images/webapp/images/jquery/ framework/images/webapp/images/jquery/plugins/elrte-1.3/ framework/images/webapp/images/jquery/plugins/elrte-1.3/css/ fr...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1178141 [12/19] - in /ofbiz/trunk: applications/content/webapp/content/website/ framework/images/webapp/images/jquery/ framework/images/webapp/images/jquery/plugins/elrte-1.3/ framework/images/webapp/images/jquery/plugins/elrte-1.3/css/ fr...

jleroux@apache.org
Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/css/elrte.css
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/css/elrte.css?rev=1178141&view=auto
==============================================================================
--- ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/css/elrte.css (added)
+++ ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/css/elrte.css Sun Oct  2 08:06:49 2011
@@ -0,0 +1,301 @@
+/*  ÐºÐ¾Ð½Ñ‚ейнер */
+.el-rte {
+ font-family: Trebuchet MS, Verdana, Geneva,sans-serif;
+ overflow:hidden;
+/* border:1px solid #aaa;*/
+}
+.el-rte.el-fullscreen {
+ position:absolute;
+ width:99%;
+/* height:100%;*/
+ top:0;
+ left:0;
+ margin:0;
+ z-index:10;
+}
+
+.elrte-swf-placeholder {
+ width:1px;
+ background: url('../images/swf.png') 0 0 no-repeat;
+}
+
+/* style to detect images url */
+/*.el-rte */
+.elrtetesturl { color:red; background-image:url(../images/pixel.gif);}
+
+/* панель инструментов */
+.el-rte .toolbar {  background-color:#eee; padding:3px 7px 2px 7px; border:1px solid #ccc; white-space:normal; }
+
+.el-rte-rtl .toolbar { direction: rtl; }
+
+/* панель кнопок */
+.el-rte .toolbar ul {
+ position:relative;
+ display:inline-block;
+ display: -moz-inline-stack;
+    display: inline-block;
+    vertical-align: top;
+    zoom: 1;
+    *display: inline;
+ margin:0;
+ list-style:none;
+ padding:0 2px 0 5px;
+ background: url('../images/elrte-toolbar.png') -934px -2px no-repeat;
+}
+/* первая панель кнопок */
+.el-rte .toolbar ul.first {
+ background:transparent;
+ padding-left:0;
+}
+/* кнопка */
+.el-rte .toolbar ul li {
+ display:inline-block;
+ display: -moz-inline-stack;
+    display: inline-block;
+ height:22px;
+ width:22px;
+    vertical-align: top;
+    zoom: 1;
+    *display: inline;
+ margin:1px 1px;
+ padding:0; /* Joomla 1.6 compat */
+ background:url('../images/elrte-toolbar.png') no-repeat;
+ border:1px solid #ccc;
+ z-index:100;
+
+}
+/* активная и подсвеченная и неактивная кнопка */
+.el-rte .toolbar ul li.hover    { border:1px solid #54b9bf; }
+.el-rte .toolbar ul li.active   { background-color:#c3dbef; border:1px solid #fff; }
+.el-rte .toolbar ul li.disabled { opacity:alpha(0.3); opacity: 0.3; filter:Alpha(Opacity=30);}
+/*  ÐºÐ½Ð¾Ð¿ÐºÐ¸  */
+.el-rte .toolbar ul li.about               {background-position:-829px -5px;}
+.el-rte .toolbar ul li.save                {background-position:-30px -2px;}
+.el-rte .toolbar ul li.new                 {background-position:-55px -2px}
+.el-rte .toolbar ul li.copy                {background-position:-78px -2px}
+.el-rte .toolbar ul li.css                 {background-position:-801px -5px}
+.el-rte .toolbar ul li.cut                 {background-position:-104px -2px}
+.el-rte .toolbar ul li.paste               {background-position:-128px -2px}
+.el-rte .toolbar ul li.pastetext           {background-position:-534px -2px}
+.el-rte .toolbar ul li.pasteformattext     {background-position:-154px -2px}
+.el-rte .toolbar ul li.removeformat        {background-position:-180px -2px}
+.el-rte .toolbar ul li.docstructure        {background-position:-712px -4px}  
+.el-rte .toolbar ul li.undo                {background-position:-205px -2px}
+.el-rte .toolbar ul li.redo                {background-position:-230px -2px}
+.el-rte .toolbar ul li.bold                {background-position:-252px -2px; }
+.el-rte .toolbar ul li.italic              {background-position:-270px -2px;}
+.el-rte .toolbar ul li.underline           {background-position:-290px -2px; }
+.el-rte .toolbar ul li.strikethrough       {background-position:-149px -29px}
+.el-rte .toolbar ul li.subscript           {background-position:-54px -29px}
+.el-rte .toolbar ul li.superscript         {background-position:-76px -29px}
+.el-rte .toolbar ul li.justifyleft         {background-position:-311px -2px}
+.el-rte .toolbar ul li.justifycenter       {background-position:-335px -2px}
+.el-rte .toolbar ul li.justifyright        {background-position:-360px -2px}
+.el-rte .toolbar ul li.justifyfull         {background-position:-174px -29px}
+.el-rte .toolbar ul li.insertunorderedlist {background-position:-100px -29px}
+.el-rte .toolbar ul li.insertorderedlist   {background-position:-124px -29px}
+.el-rte .toolbar ul li.outdent             {background-position:-6px   -29px}
+.el-rte .toolbar ul li.indent              {background-position:-32px  -29px}
+.el-rte .toolbar ul li.blockquote          {background-position:-220px -30px}
+.el-rte .toolbar ul li.div                 {background-position:-655px -29px}
+.el-rte .toolbar ul li.stopfloat           {background-position:-771px -5px}  
+.el-rte .toolbar ul li.nbsp                {background-position:-580px -2px}
+.el-rte .toolbar ul li.forecolor           {background-position:-372px -30px}
+.el-rte .toolbar ul li.hilitecolor         {background-position:-395px -30px}
+.el-rte .toolbar ul li.link                {background-position:-244px -29px}
+.el-rte .toolbar ul li.unlink              {background-position:-270px -29px}
+.el-rte .toolbar ul li.anchor              {background-position:-296px -30px}
+.el-rte .toolbar ul li.image               {background-position:-384px -2px}
+.el-rte .toolbar ul li.flash               {background-position:-410px -2px}
+.el-rte .toolbar ul li.file                {background-position:-436px -3px}
+.el-rte .toolbar ul li.table               {background-position:-421px -30px}
+.el-rte .toolbar ul li.tableprops          {background-position:-602px -29px}
+.el-rte .toolbar ul li.tbcellprops         {background-position:-806px -27px}
+.el-rte .toolbar ul li.tablerm             {background-position:-461px -2px}
+.el-rte .toolbar ul li.tbrowbefore         {background-position:-683px -4px}
+.el-rte .toolbar ul li.tbrowafter          {background-position:-654px -4px}
+.el-rte .toolbar ul li.tbrowrm             {background-position:-500px -30px}
+.el-rte .toolbar ul li.tbcolbefore         {background-position:-741px -27px}
+.el-rte .toolbar ul li.tbcolafter          {background-position:-772px -27px}
+.el-rte .toolbar ul li.tbcolrm             {background-position:-526px -30px}
+.el-rte .toolbar ul li.tbcellsmerge        {background-position:-552px -30px}
+.el-rte .toolbar ul li.tbcellsplit         {background-position:-629px -29px}
+.el-rte .toolbar ul li.smiley              {background-position:-322px -29px}
+.el-rte .toolbar ul li.spec-text           {background-position:-487px -2px}
+.el-rte .toolbar ul li.print               {background-position:-509px -2px}
+.el-rte .toolbar ul li.horizontalrule      {background-position:-199px -29px}
+.el-rte .toolbar ul li.fullscreen          {background-position:-348px -30px}  
+.el-rte .toolbar ul li.elfinder            {background-position:-436px -2px}
+.el-rte .toolbar ul li.ltr                 {background-position:-855px -27px}  
+.el-rte .toolbar ul li.rtl                 {background-position:-855px -3px}
+.el-rte .toolbar ul li.pagebreak           {background-position:-711px -28px}  
+
+
+/* рабочая зона (обертка над iframe) */
+.el-rte .workzone { border:1px solid #eee; border-top:none; height:400px; overflow:hidden; }
+.el-rte.small .workzone { min-height:250px; }
+
+/* source code */
+.el-rte textarea  { width:100%; height:100%; border:none; zoom:1; padding:0; outline:none; }
+.el-rte.small textarea  { min-height:250px;}
+/* редактор */
+.el-rte iframe    {
+ width: 100%;
+ height:400px;
+ display:block;
+ outline:none;
+ border:0 solid;
+ padding:0;
+ margin:0;
+ background:#fff;
+
+}
+.el-rte.small iframe  { min-height:250px;}
+
+/* панель статуса (путь) */
+.el-rte .statusbar {
+ height: 21px;
+ padding: 0 9px;
+ font: 11px/21px 'monaco', 'andale mono', 'lucida console', monospace;
+ background-color:#eee;
+ border-top:1px solid #ccc;
+ border-top:none;
+}
+
+.el-rte-rtl .statusbar {
+ direction:rtl;
+/* text-align:right;*/
+}
+
+/* табы */
+.el-rte .tabsbar { display: block;  }
+.el-rte .tabsbar .tab {
+ float:left;  
+ margin-right:2px;
+ padding: 6px 17px;
+ font-size: .82em;
+ font-weight:bold;
+ color:#777;
+ text-align:center;  
+ border:1px solid #eee;
+ border-top:none;
+ background: #fff;
+ cursor: default;
+}
+.el-rte .tabsbar div.active { background: #eee; color:#444; }
+.el-rte-rtl .tabsbar .tab  { float:right; }
+
+/* выпадающие меню */
+/* container for elselect */
+.el-rte .toolbar ul li.el-select {
+ height:22px;
+ width : 120px;
+ border:1px solid #ccc;
+ font-size:.82em;
+ cursor: default;
+ background-position:-475px -30px;
+}
+
+.el-rte .toolbar ul li.el-select.hover {
+ background-color:#fefefe;
+}
+
+.el-rte .toolbar ul li.el-select label {
+ height:19px;
+ padding: 3px 5px 0 5px;
+ float:none; /* Joomla 1.6 compat */
+ width:96px; /* Joomla 1.6 compat */
+}
+
+/* textarea & iframe в диплогах вставки текста */
+.el-rte-paste-input {
+ width : 99%;
+ height: 250px;
+ border: 1px solid #ccc;
+ padding:0;
+ margin:0;
+ outline:none;
+}
+/* индикатор выбраного цвета на кнопке */
+.el-rte .toolbar ul li div.color-indicator {
+ width:18px;
+ height:4px;
+ margin:16px 0 2px 2px;
+ background-color: #000;
+}
+.el-rte-rtl .toolbar ul li div.color-indicator {
+ margin:16px 2px 2px 0;
+}
+.el-rte .toolbar .panel-format { z-index: 10; }
+
+/* colors palette */
+.el-palette { top:20px; }
+
+.el-dialogform, .el-dialogform td       { font-size:.9em; }
+.el-dialogform select                   { font-size:.9em;}
+.ui-dialog .ui-dialog-buttonpane        { padding: .4em, 1em;}
+.ui-dialog .ui-dialog-buttonpane button { margin: .3em .4em .1em 0; font-size:.9em;}
+.ui-dialog .ui-dialog-titlebar          { padding: .3em 1em .3em;   }
+/*.ui-dialog-buttonset { padding:0; background-color:#333;}*/
+/* диалоговые окна */
+.el-dialogform label       { display:block; }
+.el-dialogform label input { margin-right:2px; }
+.el-dialogform iframe.el-rte-preview {
+ width : 100%;
+ height : 235px;
+ margin:0;
+ padding:0;
+ outline:none;
+ border:none;
+}
+.el-dialogform fieldset {
+ border:1px solid #ccc;
+ padding : 0;
+}
+.el-dialogform fieldset legend {
+ font-size:.9em;
+ padding: .1em .5em;
+ margin: 0 0 5px 1em;
+ border:1px solid #ccc;
+ background-color: #eee;
+}
+.el-dialogform p  { padding:.2em .3em;}
+.el-dialogform h3 { color:#555; padding:1.2em 0 0 0; margin:0; font-size:1.2em; }
+.el-dialogform h4 { color:#555;font-size:1em; padding:0; margin: 3px 9px; }
+
+.elrte-logo {
+ width:48px;
+ height:46px;
+ float:left;
+ margin:.5em 1em;
+ background:url('../images/elrte-toolbar.png') -880px -7px no-repeat;
+}
+.elrte-ver  { font-size:.9em; padding-left:.7em; }
+.elrte-copy { font-size:.9em; padding-left:.3em; }
+table.elrte-authors    { margin-bottom:1em; }
+table.elrte-authors td { border-bottom:1px solid #eee; }
+
+/* widgets */
+.el-borderselect {}
+.el-borderselect table      {  margin:0; }
+.el-borderselect table td   { padding : 0 2px 0 0; vertical-align:middle; }
+.el-borderselect input      { margin:0;  border:1px solid #ccc; }
+
+.el-paddinginput        { display: block; white-space: nowrap; }
+.el-paddinginput input  { margin :0 1px 0 0; border:1px solid #ccc; }
+.el-paddinginput select { padding:0; }
+
+.el-rte-smiley { margin:5px; }
+
+.elrte-image-src-fm .ui-state-default {
+ float:right;
+}
+.el-dialogform-rtl .elrte-image-src-fm .ui-state-default { float:left;}
+
+.elrte-image-preview {
+ font-size:.7em;
+ overflow:auto;
+ height:240px;
+ width:480px;
+}
+

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/css/elrte.css
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/css/elrte.css
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/css/elrte.css
------------------------------------------------------------------------------
    svn:mime-type = text/css

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/css/inner-example.css
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/css/inner-example.css?rev=1178141&view=auto
==============================================================================
--- ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/css/inner-example.css (added)
+++ ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/css/inner-example.css Sun Oct  2 08:06:49 2011
@@ -0,0 +1 @@
+.elrte-MYTAG { width: 200px; height: 20px; background: pink; border: 1px solid red; }

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/css/inner-example.css
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/css/inner-example.css
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/css/inner-example.css
------------------------------------------------------------------------------
    svn:mime-type = text/css

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/elrte-toolbar.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/elrte-toolbar.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/elrte-toolbar.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/google-maps.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/google-maps.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/google-maps.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/iframe.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/iframe.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/iframe.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-director.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-director.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-director.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-flash.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-flash.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-flash.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-quicktime.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-quicktime.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-quicktime.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-realaudio.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-realaudio.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-realaudio.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-rutube.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-rutube.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-rutube.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-vimeo.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-vimeo.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-vimeo.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-winmedia.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-winmedia.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-winmedia.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-youtube.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-youtube.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/media-youtube.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/outline-div.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/outline-div.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/outline-div.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/outline-p.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/outline-p.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/outline-p.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/pagebreak.gif
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/pagebreak.gif?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/pagebreak.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/pixel.gif
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/pixel.gif?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/pixel.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/evilgrin.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/evilgrin.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/evilgrin.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/grin.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/grin.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/grin.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/happy.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/happy.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/happy.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/smile.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/smile.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/smile.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/surprised.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/surprised.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/surprised.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/tongue.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/tongue.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/tongue.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/unhappy.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/unhappy.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/unhappy.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/waii.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/waii.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/waii.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/wink.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/wink.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/smileys/wink.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/yandex-maps.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/yandex-maps.png?rev=1178141&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/images/yandex-maps.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.DOM.js
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.DOM.js?rev=1178141&view=auto
==============================================================================
--- ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.DOM.js (added)
+++ ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.DOM.js Sun Oct  2 08:06:49 2011
@@ -0,0 +1,675 @@
+/*
+ * DOM utilites for elRTE
+ *
+ * @author:    Dmitry Levashov (dio) [hidden email]
+ */
+(function($) {
+elRTE.prototype.dom = function(rte) {
+ this.rte = rte;
+ var self = this;
+ this.regExp = {
+ textNodes         : /^(A|ABBR|ACRONYM|ADDRESS|B|BDO|BIG|BLOCKQUOTE|CAPTION|CENTER|CITE|CODE|DD|DEL|DFN|DIV|DT|EM|FIELDSET|FONT|H[1-6]|I|INS|KBD|LABEL|LEGEND|LI|MARQUEE|NOBR|NOEMBED|P|PRE|Q|SAMP|SMALL|SPAN|STRIKE|STRONG|SUB|SUP|TD|TH|TT|VAR)$/,
+ textContainsNodes : /^(A|ABBR|ACRONYM|ADDRESS|B|BDO|BIG|BLOCKQUOTE|CAPTION|CENTER|CITE|CODE|DD|DEL|DFN|DIV|DL|DT|EM|FIELDSET|FONT|H[1-6]|I|INS|KBD|LABEL|LEGEND|LI|MARQUEE|NOBR|NOEMBED|OL|P|PRE|Q|SAMP|SMALL|SPAN|STRIKE|STRONG|SUB|SUP|TABLE|THEAD|TBODY|TFOOT|TD|TH|TR|TT|UL|VAR)$/,
+ block             : /^(APPLET|BLOCKQUOTE|BR|CAPTION|CENTER|COL|COLGROUP|DD|DIV|DL|DT|H[1-6]|EMBED|FIELDSET|LI|MARQUEE|NOBR|OBJECT|OL|P|PRE|TABLE|THEAD|TBODY|TFOOT|TD|TH|TR|UL)$/,
+ selectionBlock    : /^(APPLET|BLOCKQUOTE|BR|CAPTION|CENTER|COL|COLGROUP|DD|DIV|DL|DT|H[1-6]|EMBED|FIELDSET|LI|MARQUEE|NOBR|OBJECT|OL|P|PRE|TD|TH|TR|UL)$/,
+ header            : /^H[1-6]$/,
+ formElement       : /^(FORM|INPUT|HIDDEN|TEXTAREA|SELECT|BUTTON)$/
+ };
+
+ /********************************************************/
+ /*                      Ð£Ñ‚илиты                         */
+ /********************************************************/
+
+ /**
+ * Возвращает body редактируемого документа
+ *
+ * @return Element
+ **/
+ this.root = function() {
+ return this.rte.body;
+ }
+
+ this.create = function(t) {
+ return this.rte.doc.createElement(t);
+ }
+
+ /**
+ * Return node for bookmark with unique ID
+ *
+ * @return DOMElement
+ **/
+ this.createBookmark = function() {
+ var b = this.rte.doc.createElement('span');
+ b.id = 'elrte-bm-'+Math.random().toString().substr(2);
+ $(b).addClass('elrtebm elrte-protected');
+ return b;
+ }
+
+ /**
+ * Вовращает индекс элемента внутри родителя
+ *
+ * @param  Element n  Ð½Ð¾Ð´Ð°
+ * @return integer
+ **/
+ this.indexOf = function(n) {
+ var ndx = 0;
+ n = $(n);
+ while ((n = n.prev()) && n.length) {
+ ndx++;
+ }
+ return ndx;
+ }
+
+ /**
+ * Вовращает значение аттрибута в нижнем регистре (ох уж этот IE)
+ *
+ * @param  Element n  Ð½Ð¾Ð´Ð°
+ * @param  String  attr имя аттрибута
+ * @return string
+ **/
+ this.attr = function(n, attr) {
+ var v = '';
+ if (n.nodeType == 1) {
+ v = $(n).attr(attr);
+ if (v && attr != 'src' && attr != 'href' && attr != 'title' && attr != 'alt') {
+ v = v.toString().toLowerCase();
+ }
+ }
+ return v||'';
+ }
+
+ /**
+ * Вовращает ближайший общий контейнер для 2-х эл-тов
+ *
+ * @param  Element n  Ð½Ð¾Ð´Ð°1
+ * @param  Element n  Ð½Ð¾Ð´Ð°2
+ * @return Element
+ **/
+ this.findCommonAncestor = function(n1, n2) {
+ if (!n1 || !n2) {
+ return this.rte.log('dom.findCommonAncestor invalid arguments');
+ }
+ if (n1 == n2) {
+ return n1;
+ } else if (n1.nodeName == 'BODY' || n2.nodeName == 'BODY') {
+ return this.rte.doc.body;
+ }
+ var p1 = $(n1).parents(), p2 = $(n2).parents(), l  = p2.length-1, c  = p2[l];
+ for (var i = p1.length - 1; i >= 0; i--, l--){
+ if (p1[i] == p2[l]) {
+ c = p1[i];
+ } else {
+ break;
+ }
+ };
+ return c;
+ }
+ /**
+ * Вовращает TRUE, если нода пустая
+ * пустой считаем ноды:
+ *  - текстовые эл-ты, содержащие пустую строку или тег br
+ *  - текстовые ноды с пустой строкой
+ *
+ * @param  DOMElement n  Ð½Ð¾Ð´Ð°
+ * @return bool
+ **/
+ this.isEmpty = function(n) {
+ if (n.nodeType == 1) {
+ return this.regExp.textNodes.test(n.nodeName) ? $.trim($(n).text()).length == 0 : false;
+ } else if (n.nodeType == 3) {
+ return /^(TABLE|THEAD|TFOOT|TBODY|TR|UL|OL|DL)$/.test(n.parentNode.nodeName)
+ || n.nodeValue == ''
+ || ($.trim(n.nodeValue).length== 0 && !(n.nextSibling && n.previousSibling && n.nextSibling.nodeType==1 && n.previousSibling.nodeType==1 && !this.regExp.block.test(n.nextSibling.nodeName) && !this.regExp.block.test(n.previousSibling.nodeName) ));
+ }
+ return true;
+ }
+
+ /********************************************************/
+ /*                  ÐŸÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ðµ по DOM                  */
+ /********************************************************/
+
+ /**
+ * Вовращает следующую соседнюю ноду (не включаются текстовые ноды не создающие значимые пробелы между инлайн элементами)
+ *
+ * @param  DOMElement n  Ð½Ð¾Ð´Ð°
+ * @return DOMElement
+ **/
+ this.next = function(n) {
+ while (n.nextSibling && (n = n.nextSibling)) {
+ if (n.nodeType == 1 || (n.nodeType == 3 && !this.isEmpty(n))) {
+ return n;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Вовращает предыдующую соседнюю ноду (не включаются текстовые ноды не создающие значимые пробелы между инлайн элементами)
+ *
+ * @param  DOMElement n  Ð½Ð¾Ð´Ð°
+ * @return DOMElement
+ **/
+ this.prev = function(n) {
+ while (n.previousSibling && (n = n.previousSibling)) {
+ if (n.nodeType == 1 || (n.nodeType ==3 && !this.isEmpty(n))) {
+ return n;
+ }
+ }
+ return null;
+ }
+
+ this.isPrev = function(n, prev) {
+ while ((n = this.prev(n))) {
+ if (n == prev) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Вовращает все следующие соседнии ноды (не включаются текстовые ноды не создающие значимые пробелы между инлайн элементами)
+ *
+ * @param  DOMElement n  Ð½Ð¾Ð´Ð°
+ * @return Array
+ **/
+ this.nextAll = function(n) {
+ var ret = [];
+ while ((n = this.next(n))) {
+ ret.push(n);
+ }
+ return ret;
+ }
+
+ /**
+ * Вовращает все предыдующие соседнии ноды (не включаются текстовые ноды не создающие значимые пробелы между инлайн элементами)
+ *
+ * @param  DOMElement n  Ð½Ð¾Ð´Ð°
+ * @return Array
+ **/
+ this.prevAll = function(n) {
+ var ret = [];
+ while ((n = this.prev(n))) {
+ ret.push(n);
+ }
+ return ret;
+ }
+
+ /**
+ * Вовращает все следующие соседнии inline ноды (не включаются текстовые ноды не создающие значимые пробелы между инлайн элементами)
+ *
+ * @param  DOMElement n  Ð½Ð¾Ð´Ð°
+ * @return Array
+ **/
+ this.toLineEnd = function(n) {
+ var ret = [];
+ while ((n = this.next(n)) && n.nodeName != 'BR' && n.nodeName != 'HR' && this.isInline(n)) {
+ ret.push(n);
+ }
+ return ret;
+ }
+
+ /**
+ * Вовращает все предыдующие соседнии inline ноды (не включаются текстовые ноды не создающие значимые пробелы между инлайн элементами)
+ *
+ * @param  DOMElement n  Ð½Ð¾Ð´Ð°
+ * @return Array
+ **/
+ this.toLineStart = function(n) {
+ var ret = [];
+ while ((n = this.prev(n)) && n.nodeName != 'BR' && n.nodeName != 'HR' && this.isInline(n) ) {
+ ret.unshift(n);
+ }
+ return ret;
+ }
+
+ /**
+ * Вовращает TRUE, если нода - первый непустой эл-т внутри родителя
+ *
+ * @param  Element n  Ð½Ð¾Ð´Ð°
+ * @return bool
+ **/
+ this.isFirstNotEmpty = function(n) {
+ while ((n = this.prev(n))) {
+ if (n.nodeType == 1 || (n.nodeType == 3 && $.trim(n.nodeValue)!='' ) ) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Вовращает TRUE, если нода - последний непустой эл-т внутри родителя
+ *
+ * @param  Element n  Ð½Ð¾Ð´Ð°
+ * @return bool
+ **/
+ this.isLastNotEmpty = function(n) {
+ while ((n = this.next(n))) {
+ if (!this.isEmpty(n)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Вовращает TRUE, если нода - единственный непустой эл-т внутри родителя
+ *
+ * @param  DOMElement n  Ð½Ð¾Ð´Ð°
+ * @return bool
+ **/
+ this.isOnlyNotEmpty = function(n) {
+ return this.isFirstNotEmpty(n) && this.isLastNotEmpty(n);
+ }
+
+ /**
+ * Вовращает последний непустой дочерний эл-т ноды или FALSE
+ *
+ * @param  Element n  Ð½Ð¾Ð´Ð°
+ * @return Element
+ **/
+ this.findLastNotEmpty = function(n) {
+ this.rte.log('findLastNotEmpty Who is here 0_o');
+ if (n.nodeType == 1 && (l = n.lastChild)) {
+ if (!this.isEmpty(l)) {
+ return l;
+ }
+ while (l.previousSibling && (l = l.previousSibling)) {
+ if (!this.isEmpty(l)) {
+ return l;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Возвращает TRUE, если нода "inline"
+ *
+ * @param  DOMElement n  Ð½Ð¾Ð´Ð°
+ * @return bool
+ **/
+ this.isInline = function(n) {
+ if (n.nodeType == 3) {
+ return true;
+ } else if (n.nodeType == 1) {
+ n = $(n);
+ var d = n.css('display');
+ var f = n.css('float');
+ return d == 'inline' || d == 'inline-block' || f == 'left' || f == 'right';
+ }
+ return true;
+ }
+
+
+ /********************************************************/
+ /*                  ÐŸÐ¾Ð¸ÑÐº элементов                     */
+ /********************************************************/
+
+ this.is = function(n, f) {
+ if (n && n.nodeName) {
+
+ if (typeof(f) == 'string') {
+ f = this.regExp[f]||/.?/;
+ }
+
+ if (f instanceof RegExp && n.nodeName) {
+ return f.test(n.nodeName);
+ } else if (typeof(f) == 'function') {
+ return f(n);
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Вовращает элемент(ы) отвечающие условиям поиска
+ *
+ * @param  DOMElement||Array  n       нода
+ * @param  RegExp||String     filter  Ñ„ильтр условия поиска (RegExp или имя ключа this.regExp или *)
+ * @return DOMElement||Array
+ **/
+ this.filter = function(n, filter) {
+ var ret = [], i;
+ if (!n.push) {
+ return this.is(n, filter) ? n : null;
+ }
+ for (i=0; i < n.length; i++) {
+ if (this.is(n[i], filter)) {
+ ret.push(n[i]);
+ }
+ };
+ return ret;
+ }
+
+
+ /**
+ * Вовращает массив родительских элементов, отвечающих условиям поиска
+ *
+ * @param  DOMElement      n  Ð½Ð¾Ð´Ð°, родителей, которой ищем
+ * @param  RegExp||String  filter   фильтр условия поиска (RegExp или имя ключа this.regExp или *)
+ * @return Array
+ **/
+ this.parents = function(n, filter) {
+ var ret = [];
+
+ while (n && (n = n.parentNode) && n.nodeName != 'BODY' && n.nodeName != 'HTML') {
+ if (this.is(n, filter)) {
+ ret.push(n);
+ }
+ }
+ return ret;
+ }
+
+ /**
+ * Вовращает ближайший родительский эл-т, отвечающий условиям поиска
+ *
+ * @param  DOMElement     n  Ð½Ð¾Ð´Ð°, родителя, которой ищем
+ * @param  RegExp||String f   фильтр условия поиска (RegExp или имя ключа this.regExp или *)
+ * @return DOMElement
+ **/
+ this.parent = function(n, f) {
+ return this.parents(n, f)[0] || null;
+ }
+
+ /**
+ * Вовращает или саму ноду или ее ближайшего родителя, если выполняются условия sf для самой ноды или pf для родителя
+ *
+ * @param  DOMElement     n  Ð½Ð¾Ð´Ð°, родителя, которой ищем
+ * @param  RegExp||String sf   фильтр условия для самой ноды
+ * @param  RegExp||String  pf   фильтр условия для родителя
+ * @return DOMElement
+ **/
+ this.selfOrParent = function(n, sf, pf) {
+ return this.is(n, sf) ? n : this.parent(n, pf||sf);
+ }
+
+ /**
+ * Вовращает родительскую ноду - ссылку
+ *
+ * @param  Element n  Ð½Ð¾Ð´Ð°
+ * @return Element
+ **/
+ this.selfOrParentLink = function(n) {
+ n = this.selfOrParent(n, /^A$/);
+ return n && n.href ? n : null;
+ }
+
+ /**
+ * Вовращает TRUE, если нода -  anchor
+ *
+ * @param  Element n  Ð½Ð¾Ð´Ð°
+ * @return bool
+ **/
+ this.selfOrParentAnchor = function(n) {
+ n = this.selfOrParent(n, /^A$/);
+ return n && !n.href && n.name ? n : null;
+ }
+
+ /**
+ * Вовращает массив дочерних ссылок
+ *
+ * @param  DOMElement n  Ð½Ð¾Ð´Ð°
+ * @return Array
+ **/
+ this.childLinks = function(n) {
+ var res = [];
+ $('a[href]', n).each(function() { res.push(this); });
+ return res;
+ }
+
+ this.selectionHas = function(f) {
+ var n = this.rte.selection.cloneContents(), i;
+ if (n && n.childNodes && n.childNodes.length) {
+ for (i=0; i < n.childNodes.length; i++) {
+ if (typeof(f) == 'function') {
+ if (f(n.childNodes[i])) {
+ return true;
+ }
+ } else if (n instanceof RegExp) {
+ if (f.test(n.childNodes[i].nodeName)) {
+ return true;
+ }
+ }
+ };
+ }
+
+ return false;
+ }
+ /********************************************************/
+ /*                    Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ DOM                     */
+ /********************************************************/
+
+ /**
+ * Оборачивает одну ноду другой
+ *
+ * @param  DOMElement n  Ð¾Ð±Ð¾Ñ€Ð°Ñ‡Ð¸Ð²Ð°ÐµÐ¼Ð°Ñ нода
+ * @param  DOMElement w  Ð½Ð¾Ð´Ð° обертка или имя тега
+ * @return DOMElement
+ **/
+ this.wrap = function(n, w) {
+ n = $.isArray(n) ? n : [n];
+ w = w.nodeName ? w : this.create(w);
+
+ if (n[0] && n[0].nodeType && n[0].parentNode) {
+ w = n[0].parentNode.insertBefore(w, n[0]);
+ $(n).each(function() {
+ if (this!=w) {
+ w.appendChild(this);
+ }
+ });
+ }
+
+ return w;
+ }
+
+ /**
+ * Replace node with its contents
+ *
+ * @param  DOMElement n node
+ * @return void
+ **/
+ this.unwrap = function(n) {
+ if (n && n.parentNode) {
+ while (n.firstChild) {
+ n.parentNode.insertBefore(n.firstChild, n);
+ }
+ n.parentNode.removeChild(n);
+
+ }
+ }
+
+ /**
+ * Оборачивает все содержимое ноды
+ *
+ * @param  DOMElement n  Ð¾Ð±Ð¾Ñ€Ð°Ñ‡Ð¸Ð²Ð°ÐµÐ¼Ð°Ñ нода
+ * @param  DOMElement w  Ð½Ð¾Ð´Ð° обертка или имя тега
+ * @return DOMElement
+ **/
+ this.wrapContents = function(n, w) {
+ w = w.nodeName ? w : this.create(w);
+ for (var i=0; i < n.childNodes.length; i++) {
+ w.appendChild(n.childNodes[i]);
+ };
+ n.appendChild(w);
+ return w;
+ }
+
+ this.cleanNode = function(n) {
+
+ if (n.nodeType != 1) {
+ return;
+ }
+ if (/^(P|LI)$/.test(n.nodeName) && (l = this.findLastNotEmpty(n)) && l.nodeName == 'BR') {
+ $(l).remove();
+ }
+ $n = $(n);
+ $n.children().each(function() {
+ this.cleanNode(this);
+ });
+ if (n.nodeName != 'BODY' && !/^(TABLE|TR|TD)$/.test(n) && this.isEmpty(n)) {
+ return $n.remove();
+ }
+ if ($n.attr('style') === '') {
+ $n.removeAttr('style');
+ }
+ if (this.rte.browser.safari && $n.hasClass('Apple-span')) {
+ $n.removeClass('Apple-span');
+ }
+ if (n.nodeName == 'SPAN' && !$n.attr('style') && !$n.attr('class') && !$n.attr('id')) {
+ $n.replaceWith($n.html());
+ }
+ }
+
+ this.cleanChildNodes = function(n) {
+ var cmd = this.cleanNode;
+ $(n).children().each(function() { cmd(this); });
+ }
+
+ /********************************************************/
+ /*                       Таблицы                        */
+ /********************************************************/
+
+ this.tableMatrix = function(n) {
+ var mx = [];
+ if (n && n.nodeName == 'TABLE') {
+ var max = 0;
+ function _pos(r) {
+ for (var i=0; i<=max; i++) {
+ if (!mx[r][i]) {
+ return i;
+ }
+ };
+ }
+
+ $(n).find('tr').each(function(r) {
+ if (!$.isArray(mx[r])) {
+ mx[r] = [];
+ }
+
+ $(this).children('td,th').each(function() {
+ var w = parseInt($(this).attr('colspan')||1);
+ var h = parseInt($(this).attr('rowspan')||1);
+ var i = _pos(r);
+ for (var y=0; y<h; y++) {
+ for (var x=0; x<w; x++) {
+ var _y = r+y;
+ if (!$.isArray(mx[_y])) {
+ mx[_y] = [];
+ }
+ var d = x==0 && y==0 ? this : (y==0 ? x : "-");
+ mx[_y][i+x] = d;
+ }
+ };
+ max= Math.max(max, mx[r].length);
+ });
+ });
+ }
+ return mx;
+ }
+
+ this.indexesOfCell = function(n, tbm) {
+ for (var rnum=0; rnum < tbm.length; rnum++) {
+ for (var cnum=0; cnum < tbm[rnum].length; cnum++) {
+ if (tbm[rnum][cnum] == n) {
+ return [rnum, cnum];
+ }
+
+ };
+ };
+ }
+
+ this.fixTable = function(n) {
+ if (n && n.nodeName == 'TABLE') {
+ var tb = $(n);
+ //tb.find('tr:empty').remove();
+ var mx = this.tableMatrix(n);
+ var x  = 0;
+ $.each(mx, function() {
+ x = Math.max(x, this.length);
+ });
+ if (x==0) {
+ return tb.remove();
+ }
+ // for (var i=0; i<mx.length; i++) {
+ // this.rte.log(mx[i]);
+ // }
+
+ for (var r=0; r<mx.length; r++) {
+ var l = mx[r].length;
+ //this.rte.log(r+' : '+l)
+
+ if (l==0) {
+ //this.rte.log('remove: '+tb.find('tr').eq(r))
+ tb.find('tr').eq(r).remove();
+// tb.find('tr').eq(r).append('<td>remove</td>')
+ } else if (l<x) {
+ var cnt = x-l;
+ var row = tb.find('tr').eq(r);
+ for (i=0; i<cnt; i++) {
+ row.append('<td>&nbsp;</td>');
+ }
+ }
+ }
+
+ }
+ }
+
+ this.tableColumn = function(n, ext, fix) {
+ n      = this.selfOrParent(n, /^TD|TH$/);
+ var tb = this.selfOrParent(n, /^TABLE$/);
+ ret    = [];
+ info   = {offset : [], delta : []};
+ if (n && tb) {
+ fix && this.fixTable(tb);
+ var mx = this.tableMatrix(tb);
+ var _s = false;
+ var x;
+ for (var r=0; r<mx.length; r++) {
+ for (var _x=0; _x<mx[r].length; _x++) {
+ if (mx[r][_x] == n) {
+ x = _x;
+ _s = true;
+ break;
+ }
+ }
+ if (_s) {
+ break;
+ }
+ }
+
+ // this.rte.log('matrix');
+ // for (var i=0; i<mx.length; i++) {
+ // this.rte.log(mx[i]);
+ // }
+ if (x>=0) {
+ for(var r=0; r<mx.length; r++) {
+ var tmp = mx[r][x]||null;
+ if (tmp) {
+ if (tmp.nodeName) {
+ ret.push(tmp);
+ if (ext) {
+ info.delta.push(0);
+ info.offset.push(x);
+ }
+ } else {
+ var d = parseInt(tmp);
+ if (!isNaN(d) && mx[r][x-d] && mx[r][x-d].nodeName) {
+ ret.push(mx[r][x-d]);
+ if (ext) {
+ info.delta.push(d);
+ info.offset.push(x);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return !ext ? ret : {column : ret, info : info};
+ }
+}
+
+})(jQuery);

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.DOM.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.DOM.js
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.DOM.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.filter.js
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.filter.js?rev=1178141&view=auto
==============================================================================
--- ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.filter.js (added)
+++ ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.filter.js Sun Oct  2 08:06:49 2011
@@ -0,0 +1,873 @@
+(function($) {
+ /**
+ * @class Filter - clean editor content
+ * @param elRTE editor instance
+ * @author Dmitry (dio) Levashov, [hidden email]
+ */
+ elRTE.prototype.filter = function(rte) {
+ var self = this,
+ n = $('<span/>').addClass('elrtetesturl').appendTo(document.body)[0];
+ // media replacement image base url
+ this.url = (typeof(n.currentStyle )!= "undefined" ? n.currentStyle['backgroundImage'] : document.defaultView.getComputedStyle(n, null)['backgroundImage']).replace(/^url\((['"]?)([\s\S]+\/)[\s\S]+\1\)$/i, "$2");
+ $(n).remove();
+
+ this.rte = rte;
+ // flag - return xhtml tags?
+ this.xhtml = /xhtml/i.test(rte.options.doctype);
+ // boolean attributes
+ this.boolAttrs = rte.utils.makeObject('checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected'.split(','));
+ // tag regexp
+ this.tagRegExp = /<(\/?)([\w:]+)((?:\s+[a-z\-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*\/?>/g;
+ // this.tagRegExp = /<(\/?)([\w:]+)((?:\s+\w+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*\/?>/g;
+ // opened tag regexp
+ this.openTagRegExp = /<([\w:]+)((?:\s+\w+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*\/?>/g;
+ // attributes regexp
+ this.attrRegExp = /(\w+)(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^\s]+))?/g;
+ // script tag regexp
+ this.scriptRegExp = /<script([^>]*)>([\s\S]*?)<\/script>/gi;
+ // style tag regexp
+ this.styleRegExp = /(<style([^>]*)>[\s\S]*?<\/style>)/gi;
+ // link tag regexp
+ this.linkRegExp = /(<link([^>]+)>)/gi;
+ // cdata regexp
+ this.cdataRegExp = /<!\[CDATA\[([\s\S]+)\]\]>/g;
+ // object tag regexp
+ this.objRegExp = /<object([^>]*)>([\s\S]*?)<\/object>/gi;
+ // embed tag regexp
+ this.embRegExp = /<(embed)((?:\s+\w+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*>/gi;
+ // param tag regexp
+ this.paramRegExp = /<(param)((?:\s+\w+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*>/gi;
+ // iframe tag regexp
+ this.iframeRegExp = /<iframe([^>]*)>([\s\S]*?)<\/iframe>/gi;
+
+ // yandex maps regexp
+ this.yMapsRegExp = /<div\s+([^>]*id\s*=\s*('|")?YMapsID[^>]*)>/gi;
+ // google maps regexp
+ this.gMapsRegExp = /<iframe\s+([^>]*src\s*=\s*"http:\/\/maps\.google\.\w+[^>]*)>([\s\S]*?)<\/iframe>/gi;
+ // video hostings url regexp
+ this.videoHostRegExp = /^(http:\/\/[\w\.]*)?(youtube|vimeo|rutube).*/i;
+ // elrte services classes regexp
+ this.serviceClassRegExp = /<(\w+)([^>]*class\s*=\s*"[^>]*elrte-[^>]*)>\s*(<\/\1>)?/gi;
+ this.pagebreakRegExp = /<(\w+)([^>]*style\s*=\s*"[^>]*page-break[^>]*)>\s*(<\/\1>)?/gi;
+
+ this.pbRegExp = new RegExp('<!-- pagebreak -->', 'gi');
+ // allowed tags
+ this.allowTags = rte.options.allowTags.length ? rte.utils.makeObject(rte.options.allowTags) : null;
+ // denied tags
+ this.denyTags = rte.options.denyTags.length ? rte.utils.makeObject(rte.options.denyTags) : null;
+ // deny attributes
+ this.denyAttr = rte.options.denyAttr ? rte.utils.makeObject(rte.options.denyAttr) : null;
+ // deny attributes for pasted html
+ this.pasteDenyAttr = rte.options.pasteDenyAttr ? rte.utils.makeObject(rte.options.pasteDenyAttr) : null;
+ // font sizes to convert size attr into css property
+ this.fontSize = ['medium', 'xx-small', 'small', 'medium','large','x-large','xx-large' ];
+ // font families regexp to detect family by font name
+ this.fontFamily = {
+ 'sans-serif' : /^(arial|tahoma|verdana)$/i,
+ 'serif'      : /^(times|times new roman)$/i,
+ 'monospace'  : /^courier$/i
+ }
+ // scripts storage
+ this.scripts = {};
+ // cached chains of rules
+ this._chains = {};
+
+ // cache chains
+ $.each(this.chains, function(n) {
+ self._chains[n] = [];
+ $.each(this, function(i, r) {
+ typeof(self.rules[r]) == 'function' && self._chains[n].push(self.rules[r]);
+ });
+ });
+
+ /**
+ * filtering through required chain
+ *
+ * @param  String  chain name
+ * @param  String  html-code
+ * @return String
+ **/
+ this.proccess = function(chain, html) {
+ // remove whitespace at the begin and end
+ html = $.trim(html).replace(/^\s*(&nbsp;)+/gi, '').replace(/(&nbsp;|<br[^>]*>)+\s*$/gi, '');
+ // pass html through chain
+ $.each(this._chains[chain]||[], function() {
+ html = this.call(self, html);
+ });
+ html = html.replace(/\t/g, '  ').replace(/\r/g, '').replace(/\s*\n\s*\n+/g, "\n")+'  ';
+ return $.trim(html) ? html : ' ';
+ }
+
+ /**
+ * wrapper for "wysiwyg" chain filtering
+ *
+ * @param  String  
+ * @return String
+ **/
+ this.wysiwyg = function(html) {
+ return this.proccess('wysiwyg', html);
+ }
+
+ /**
+ * wrapper for "source" chain filtering
+ *
+ * @param  String  
+ * @return String
+ **/
+ this.source = function(html) {
+ return this.proccess('source', html);
+ }
+
+ /**
+ * wrapper for "source2source" chain filtering
+ *
+ * @param  String  
+ * @return String
+ **/
+ this.source2source = function(html) {
+ return this.proccess('source2source', html);
+ }
+
+ /**
+ * wrapper for "wysiwyg2wysiwyg" chain filtering
+ *
+ * @param  String  
+ * @return String
+ **/
+ this.wysiwyg2wysiwyg = function(html) {
+ return this.proccess('wysiwyg2wysiwyg', html);
+ }
+
+ /**
+ * Parse attributes from string into object
+ *
+ * @param  String  string of attributes  
+ * @return Object
+ **/
+ this.parseAttrs = function(s) {
+ var a = {},
+ b = this.boolAttrs,
+ m = s.match(this.attrRegExp),
+ t, n, v;
+ // this.rte.log(s)
+ // this.rte.log(m)
+ m && $.each(m, function(i, s) {
+ t = s.split('=');
+ n = $.trim(t[0]).toLowerCase();
+
+ if (t.length>2) {
+ t.shift();
+ v = t.join('=');
+ } else {
+ v = b[n] ||t[1]||'';
+ }
+ a[n] = $.trim(v).replace(/^('|")(.*)(\1)$/, "$2");
+ });
+
+ a.style = this.rte.utils.parseStyle(a.style);
+ // rte.log(a.style)
+ a['class'] = this.rte.utils.parseClass(a['class']||'')
+ return a;
+ }
+
+ /**
+ * Restore attributes string from hash
+ *
+ * @param  Object  attributes hash
+ * @return String
+ **/
+ this.serializeAttrs = function(a, c) {
+ var s = [], self = this;
+
+ $.each(a, function(n, v) {
+ if (n=='style') {
+ v = self.rte.utils.serializeStyle(v, c);
+ } else if (n=='class') {
+ // self.rte.log(v)
+ // self.rte.log(self.rte.utils.serializeClass(v))
+ v = self.rte.utils.serializeClass(v);
+ }
+ v && s.push(n+'="'+v+'"');
+ });
+ return s.join(' ');
+ }
+
+ /**
+ * Remove/replace denied attributes/style properties
+ *
+ * @param  Object  attributes hash
+ * @param  String  tag name to wich attrs belongs
+ * @return Object
+ **/
+ this.cleanAttrs = function(a, t) {
+ var self = this, ra = this.replaceAttrs;
+
+ // remove safari and mso classes
+ $.each(a['class'], function(n) {
+ /^(Apple-style-span|mso\w+)$/i.test(n) && delete a['class'][n];
+ });
+
+ function value(v) {
+ return v+(/\d$/.test(v) ? 'px' : '');
+ }
+
+ $.each(a, function(n, v) {
+ // replace required attrs with css
+ ra[n] && ra[n].call(self, a, t);
+ // remove/fix mso styles
+ if (n == 'style') {
+ $.each(v, function(sn, sv) {
+ switch (sn) {
+ case "mso-padding-alt":
+ case "mso-padding-top-alt":
+ case "mso-padding-right-alt":
+ case "mso-padding-bottom-alt":
+ case "mso-padding-left-alt":
+ case "mso-margin-alt":
+ case "mso-margin-top-alt":
+ case "mso-margin-right-alt":
+ case "mso-margin-bottom-alt":
+ case "mso-margin-left-alt":
+ case "mso-table-layout-alt":
+ case "mso-height":
+ case "mso-width":
+ case "mso-vertical-align-alt":
+ a.style[sn.replace(/^mso-|-alt$/g, '')] = value(sv);
+ delete a.style[sn];
+ break;
+
+ case "horiz-align":
+ a.style['text-align'] = sv;
+ delete a.style[sn];
+ break;
+
+ case "vert-align":
+ a.style['vertical-align'] = sv;
+ delete a.style[sn];
+ break;
+
+ case "font-color":
+ case "mso-foreground":
+ a.style.color = sv;
+ delete a.style[sn];
+ break;
+
+ case "mso-background":
+ case "mso-highlight":
+ a.style.background = sv;
+ delete a.style[sn];
+ break;
+
+ case "mso-default-height":
+ a.style['min-height'] = value(sv);
+ delete a.style[sn];
+ break;
+
+ case "mso-default-width":
+ a.style['min-width'] = value(sv);
+ delete a.style[sn];
+ break;
+
+ case "mso-padding-between-alt":
+ a.style['border-collapse'] = 'separate';
+ a.style['border-spacing'] = value(sv);
+ delete a.style[sn];
+ break;
+
+ case "text-line-through":
+ if (sv.match(/(single|double)/i)) {
+ a.style['text-decoration'] = 'line-through';
+ }
+ delete a.style[sn];
+ break;
+
+ case "mso-zero-height":
+ if (sv == 'yes') {
+ a.style.display = 'none';
+ }
+ delete a.style[sn];
+ break;
+
+ case 'font-weight':
+ if (sv == 700) {
+ a.style['font-weight'] = 'bold';
+ }
+ break;
+
+ default:
+ if (sn.match(/^(mso|column|font-emph|lang|layout|line-break|list-image|nav|panose|punct|row|ruby|sep|size|src|tab-|table-border|text-(?!align|decor|indent|trans)|top-bar|version|vnd|word-break)/)) {
+ delete a.style[sn]
+ }
+ }
+ });
+ }
+ });
+ return a;
+ }
+
+ }
+
+ // rules to replace tags
+ elRTE.prototype.filter.prototype.replaceTags = {
+ b         : { tag : 'strong' },
+ big       : { tag : 'span', style : {'font-size' : 'large'} },
+ center    : { tag : 'div',  style : {'text-align' : 'center'} },
+ i         : { tag : 'em' },
+ font      : { tag : 'span' },
+ nobr      : { tag : 'span', style : {'white-space' : 'nowrap'} },
+ menu      : { tag : 'ul' },
+ plaintext : { tag : 'pre' },
+ s         : { tag : 'strike' },
+ small     : { tag : 'span', style : {'font-size' : 'small'}},
+ u         : { tag : 'span', style : {'text-decoration' : 'underline'} },
+ xmp       : { tag : 'pre' }
+ }
+
+ // rules to replace attributes
+ elRTE.prototype.filter.prototype.replaceAttrs = {
+ align : function(a, n) {
+ switch (n) {
+ case 'img':
+ a.style[a.align.match(/(left|right)/) ? 'float' : 'vertical-align'] = a.align;
+ break;
+
+ case 'table':
+ if (a.align == 'center') {
+ a.style['margin-left'] = a.style['margin-right'] = 'auto';
+ } else {
+ a.style['float'] = a.align;
+ }
+ break;
+
+ default:
+ a.style['text-align'] = a.align;
+ }
+ delete a.align;
+ },
+ border : function(a) {
+ !a.style['border-width'] && (a.style['border-width'] = (parseInt(a.border)||1)+'px');
+ !a.style['border-style'] && (a.style['border-style'] = 'solid');
+ delete a.border;
+ },
+ bordercolor : function(a) {
+ !a.style['border-color'] && (a.style['border-color'] = a.bordercolor);
+ delete a.bordercolor;
+ },
+ background : function(a) {
+ !a.style['background-image'] && (a.style['background-image'] = 'url('+a.background+')');
+ delete a.background;
+ },
+ bgcolor : function(a) {
+ !a.style['background-color'] && (a.style['background-color'] = a.bgcolor);
+ delete a.bgcolor;
+ },
+ clear : function(a) {
+ a.style.clear = a.clear == 'all' ? 'both' : a.clear;
+ delete a.clear;
+ },
+ color : function(a) {
+ !a.style.color && (a.style.color = a.color);
+ delete a.color;
+ },
+ face : function(a) {
+ var f = a.face.toLowerCase();
+ $.each(this.fontFamily, function(n, r) {
+ if (f.match(r)) {
+ a.style['font-family'] = f+','+n;
+ }
+ });
+ delete a.face;
+ },
+ hspace : function(a, n) {
+ if (n == 'img') {
+ var v = parseInt(a.hspace)||0;
+ !a.style['margin-left'] && (a.style['margin-left'] = v+'px');
+ !a.style['margin-right'] && (a.style['margin-right'] = v+'px')
+ delete a.hspace;
+ }
+ },
+ size : function(a, n) {
+ if (n != 'input') {
+ a.style['font-size'] = this.fontSize[parseInt(a.size)||0]||'medium';
+ delete a.size;
+ }
+ },
+ valign : function(a) {
+ if (!a.style['vertical-align']) {
+ a.style['vertical-align'] = a.valign;
+ }
+ delete a.valign;
+ },
+ vspace : function(a, n) {
+ if (n == 'img') {
+ var v = parseInt(a.vspace)||0;
+ !a.style['margin-top'] && (a.style['margin-top'] = v+'px');
+ !a.style['margin-bottom'] && (a.style['margin-bottom'] = v+'px')
+ delete a.hspace;
+ }
+ }
+ }
+
+ // rules collection
+ elRTE.prototype.filter.prototype.rules = {
+ /**
+ * If this.rte.options.allowTags is set - remove all except this ones
+ *
+ * @param String  html code
+ * @return String
+ **/
+ allowedTags : function(html) {
+ var a = this.allowTags;
+
+ return a ? html.replace(this.tagRegExp, function(t, c, n) { return a[n.toLowerCase()] ? t : ''; }) : html;
+ },
+ /**
+ * If this.rte.options.denyTags is set - remove all deny tags
+ *
+ * @param String  html code
+ * @return String
+ **/
+ deniedTags : function(html) {
+ var d = this.denyTags;
+
+ return d ? html.replace(this.tagRegExp, function(t, c, n) { return d[n.toLowerCase()] ? '' : t }) : html;
+ },
+
+ /**
+ * Replace not allowed tags/attributes
+ *
+ * @param String  html code
+ * @return String
+ **/
+ clean : function(html) {
+ var self = this,
+ rt   = this.replaceTags,
+ ra   = this.replaceAttrs,
+ da   = this.denyAttr,
+ n;
+
+
+ html = html.replace(/<!DOCTYPE([\s\S]*)>/gi, '')
+ .replace(/<p [^>]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi, "<p><strong>$1</strong></p>")
+ .replace(/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s&nbsp;]*)<\/span>/gi, "$1")
+ .replace(/(<p[^>]*>\s*<\/p>|<p[^>]*\/>)/gi, '<br>')
+ .replace(/(<\/p>)(?:\s*<br\s*\/?>\s*|\s*&nbsp;\s*)+\s*(<p[^>]*>)/gi, function(t, b, e) {
+ return b+"\n"+e;
+ })
+ .replace(this.tagRegExp, function(t, c, n, a) {
+ n = n.toLowerCase();
+
+ if (c) {
+ return '</'+(rt[n] ? rt[n].tag : n)+'>';
+ }
+ // self.rte.log(t)
+ // create attributes hash and clean it
+ a = self.cleanAttrs(self.parseAttrs(a||''), n);
+ // self.rte.log(a)
+ if (rt[n]) {
+ rt[n].style && $.extend(a.style, rt[n].style);
+ n = rt[n].tag;
+ }
+
+ da && $.each(a, function(na) {
+ if (da[na]) {
+ delete a[na];
+ }
+ });
+ a = self.serializeAttrs(a);
+ // self.rte.log(a)
+ return '<'+n+(a?' ':'')+a+'>';
+ });
+
+
+ n = $('<div>'+html+'</div>');
+
+ // remove empty spans and merge nested spans
+ n.find('span:not([id]):not([class])').each(function() {
+ var t = $(this);
+
+ if (!t.attr('style')) {
+
+ $.trim(t.html()).length ? self.rte.dom.unwrap(this) : t.remove();
+ // t.children().length ? self.rte.dom.unwrap(this) : t.remove();
+ }
+ }).end().find('span span:only-child').each(function() {
+ var t   = $(this),
+ p   = t.parent().eq(0),
+ tid = t.attr('id'),
+ pid = p.attr('id'), id, s, c;
+
+ if (self.rte.dom.isOnlyNotEmpty(this) && (!tid || !pid)) {
+ c = $.trim(p.attr('class')+' '+t.attr('class'))
+ c && p.attr('class', c);
+ s = self.rte.utils.serializeStyle($.extend(self.rte.utils.parseStyle($(this).attr('style')||''), self.rte.utils.parseStyle($(p).attr('style')||'')));
+ s && p.attr('style', s);
+ id = tid||pid;
+ id && p.attr('id', id);
+ this.firstChild ? $(this.firstChild).unwrap() : t.remove();
+ }
+ })
+ .end().find('a[name]').each(function() {
+ $(this).addClass('elrte-protected elrte-anchor');
+ });
+
+ return n.html()
+ },
+
+ /**
+ * Clean pasted html
+ *
+ * @param String  html code
+ * @return String
+ **/
+ cleanPaste : function(html) {
+ var self = this, d = this.pasteDenyAttr;
+
+ html = html
+ .replace(this.scriptRegExp, '')
+ .replace(this.styleRegExp, '')
+ .replace(this.linkRegExp, '')
+ .replace(this.cdataRegExp, '')
+ .replace(/\<\!--[\s\S]*?--\>/g, '');
+
+ if (this.rte.options.pasteOnlyText) {
+ html = html.replace(this.tagRegExp, function(t, c, n) {
+ return /br/i.test(n) || (c && /h[1-6]|p|ol|ul|li|div|blockquote|tr/i) ? '<br>' : '';
+ }).replace(/(&nbsp;|<br[^>]*>)+\s*$/gi, '');
+ } else if (d) {
+ html = html.replace(this.openTagRegExp, function(t, n, a) {
+ a = self.parseAttrs(a);
+ $.each(a, function(an) {
+ if (d[an]) {
+ delete a[an];
+ }
+ });
+ a = self.serializeAttrs(a, true);
+ return '<'+n+(a?' ':'')+a+'>';
+ });
+ }
+ return html;
+ },
+
+ /**
+ * Replace script/style/media etc with placeholders
+ *
+ * @param String  html code
+ * @return String
+ **/
+ replace : function(html) {
+ var self = this, r = this.rte.options.replace||[], n;
+
+ // custom replaces if set
+ if (r.length) {
+ $.each(r, function(i, f) {
+ if (typeof(f) == 'function') {
+ html = f.call(self, html);
+ }
+ });
+ }
+
+ /**
+ * Return media replacement - img html code
+ *
+ * @param Object  object to store in rel attr
+ * @param String  media mime-type
+ * @return String
+ **/
+ function img(o, t) {
+ var s = src(),
+ c = s && self.videoHostRegExp.test(s) ? s.replace(self.videoHostRegExp, "$2") : t.replace(/^\w+\/(.+)/, "$1"),
+ w = parseInt((o.obj ? o.obj.width || o.obj.style.width : 0)||(o.embed ? o.embed.width || o.embed.style.width : 0))||150,
+ h = parseInt((o.obj ? o.obj.height || o.obj.style.height : 0)||(o.embed ? o.embed.height || o.embed.style.height : 0))||100,
+ id = 'media'+Math.random().toString().substring(2),
+ style ='',
+ l;
+
+ // find media src
+ function src() {
+ if (o.embed && o.embed.src) {
+ return o.embed.src;
+ }
+ if (o.params && o.params.length) {
+ l = o.params.length;
+ while (l--) {
+ if (o.params[l].name == 'src' || o.params[l].name == 'movie') {
+ return o.params[l].value;
+ }
+ }
+ }
+ }
+ if (o.obj && o.obj.style && o.obj.style['float']) {
+ style = ' style="float:'+o.obj.style['float']+'"';
+ }
+ self.scripts[id] = o;
+ return '<img src="'+self.url+'pixel.gif" class="elrte-media elrte-media-'+c+' elrte-protected" title="'+(s ? self.rte.utils.encode(s) : '')+'" rel="'+id+'" width="'+w+'" height="'+h+'"'+style+'>';
+ }
+
+ html = html
+ .replace(this.styleRegExp, "<!-- ELRTE_COMMENT$1 -->")
+ .replace(this.linkRegExp,  "<!-- ELRTE_COMMENT$1-->")
+ .replace(this.cdataRegExp, "<!--[CDATA[$1]]-->")
+ .replace(this.scriptRegExp, function(t, a, s) {
+ var id;
+ if (self.denyTags.script) {
+ return '';
+ }
+ id = 'script'+Math.random().toString().substring(2);
+ a = self.parseAttrs(a);
+ !a.type && (a.type = 'text/javascript');
+ self.scripts[id] = '<script '+self.serializeAttrs(a)+">"+s+"</script>";
+ return '<!-- ELRTE_SCRIPT:'+(id)+' -->';
+ })
+ .replace(this.yMapsRegExp, function(t, a) {
+ a = self.parseAttrs(a);
+ a['class']['elrte-yandex-maps'] = 'elrte-yandex-maps';
+ a['class']['elrte-protected'] = 'elrte-protected';
+ return '<div '+self.serializeAttrs(a)+'>';
+ })
+ .replace(this.gMapsRegExp, function(t, a) {
+ var id = 'gmaps'+Math.random().toString().substring(2), w, h;
+ a = self.parseAttrs(a);
+ w = parseInt(a.width||a.style.width||100);
+ h = parseInt(a.height||a.style.height||100);
+ self.scripts[id] = t;
+ return '<img src="'+self.url+'pixel.gif" class="elrte-google-maps elrte-protected" id="'+id+'" style="width:'+w+'px;height:'+h+'px">';
+ })
+ .replace(this.objRegExp, function(t, a, c) {
+ var m = c.match(self.embRegExp),
+ o = { obj : self.parseAttrs(a), embed : m && m.length ? self.parseAttrs(m[0].substring(7)) : null, params : [] },
+ i = self.rte.utils.mediaInfo(o.embed ? o.embed.type||'' : '', o.obj.classid||'');
+
+ if (i) {
+ if ((m = c.match(self.paramRegExp))) {
+ $.each(m, function(i, p) {
+ o.params.push(self.parseAttrs(p.substring(6)));
+ });
+ }
+ !o.obj.classid  && (o.obj.classid  = i.classid[0]);
+ !o.obj.codebase && (o.obj.codebase = i.codebase);
+ o.embed && !o.embed.type && (o.embed.type = i.type);
+ // ie bug with empty attrs
+ o.obj.width == '1' && delete o.obj.width;
+ o.obj.height == '1' && delete o.obj.height;
+ if (o.embed) {
+ o.embed.width == '1' && delete o.embed.width;
+ o.embed.height == '1' && delete o.embed.height;
+ }
+ return img(o, i.type);
+ }
+ return t;
+ })
+ .replace(this.embRegExp, function(t, n, a) {
+ var a = self.parseAttrs(a),
+ i = self.rte.utils.mediaInfo(a.type||'');
+ // ie bug with empty attrs
+ a.width == '1' && delete a.width;
+ a.height == '1' && delete a.height;
+ return i ? img({ embed : a }, i.type) : t;
+ })
+ .replace(this.iframeRegExp, function(t, a) {
+ var a = self.parseAttrs(a);
+ var w = a.style.width || (parseInt(a.width) > 1 ? parseInt(a.width)+'px' : '100px');
+ var h = a.style.height || (parseInt(a.height) > 1 ? parseInt(a.height)+'px' : '100px');
+ var id = 'iframe'+Math.random().toString().substring(2);
+ self.scripts[id] = t;
+ var img = '<img id="'+id+'" src="'+self.url+'pixel.gif" class="elrte-protected elrte-iframe" style="width:'+w+'; height:'+h+'">';
+ return img;
+ })
+ .replace(this.vimeoRegExp, function(t, n, a) {
+ a = self.parseAttrs(a);
+ delete a.frameborder;
+ a.width == '1' && delete a.width;
+ a.height == '1' && delete a.height;
+ a.type = 'application/x-shockwave-flash';
+ return img({ embed : a }, 'application/x-shockwave-flash');
+ })
+ .replace(/<\/(embed|param)>/gi, '')
+ .replace(this.pbRegExp, function() {
+ return '<img src="'+self.url+'pixel.gif" class="elrte-protected elrte-pagebreak">';
+ });
+
+
+ n = $('<div>'+html+'</div>');
+
+ // remove empty spans and merge nested spans
+ // n.find('span:not([id]):not([class])').each(function() {
+ // var t = $(this);
+ //
+ // if (!t.attr('style')) {
+ // $.trim(t.html()).length ? self.rte.dom.unwrap(this) : t.remove();
+ // // t.children().length ? self.rte.dom.unwrap(this) : t.remove();
+ // }
+ // }).end().find('span span:only-child').each(function() {
+ // var t   = $(this),
+ // p   = t.parent().eq(0),
+ // tid = t.attr('id'),
+ // pid = p.attr('id'), id, s, c;
+ //
+ // if (self.rte.dom.is(this, 'onlyChild') && (!tid || !pid)) {
+ // c = $.trim(p.attr('class')+' '+t.attr('class'))
+ // c && p.attr('class', c);
+ // s = self.rte.utils.serializeStyle($.extend(self.rte.utils.parseStyle($(this).attr('style')||''), self.rte.utils.parseStyle($(p).attr('style')||'')));
+ // s && p.attr('style', s);
+ // id = tid||pid;
+ // id && p.attr('id', id);
+ // this.firstChild ? $(this.firstChild).unwrap() : t.remove();
+ // }
+ // })
+ // .end().find('a[name]').each(function() {
+ // $(this).addClass('elrte-anchor');
+ // });
+
+
+ if (!this.rte.options.allowTextNodes) {
+ // wrap inline nodes with p
+ var dom = this.rte.dom,
+ nodes = [],
+ w = [];
+
+ if ($.browser.msie) {
+ for (var i = 0; i<n[0].childNodes.length; i++) {
+ nodes.push(n[0].childNodes[i])
+ }
+ } else {
+ nodes = Array.prototype.slice.call(n[0].childNodes);
+ }
+
+
+ function wrap() {
+ if (w.length && dom.filter(w, 'notEmpty').length) {
+ dom.wrap(w, document.createElement('p'));
+ }
+ w = [];
+ }
+ $.each(nodes, function(i, n) {
+ if (dom.is(n, 'block')) {
+ wrap();
+ } else {
+ if (w.length && n.previousSibling != w[w.length-1]) {
+ wrap();
+ }
+ w.push(n);
+ }
+ });
+ wrap();
+ }
+
+ return n.html();
+ },
+ /**
+ * Restore script/style/media etc from placeholders
+ *
+ * @param String  html code
+ * @return String
+ **/
+ restore : function(html) {
+ var self =this, r = this.rte.options.restore||[];
+
+ // custom restore if set
+ if (r.length) {
+ $.each(r, function(i, f) {
+ if (typeof(f) == 'function') {
+ html = f.call(self, html);
+ }
+ });
+ }
+
+ html = html
+ .replace(/\<\!--\[CDATA\[([\s\S]*?)\]\]--\>/gi, "<![CDATA[$1]]>")
+ .replace(/\<\!--\s*ELRTE_SCRIPT\:\s*(script\d+)\s*--\>/gi, function(t, n) {
+ if (self.scripts[n]) {
+ t = self.scripts[n];
+ delete self.scripts[n];
+ }
+ return t||'';
+ })
+ .replace(/\<\!-- ELRTE_COMMENT([\s\S]*?) --\>/gi, "$1")
+ .replace(this.serviceClassRegExp, function(t, n, a, e) {
+
+ var a = self.parseAttrs(a), j, o = '';
+ // alert(t)
+ if (a['class']['elrte-google-maps']) {
+ var t = '';
+ if (self.scripts[a.id]) {
+ t = self.scripts[a.id];
+ delete self.scripts[a.id]
+ }
+ return t;
+ } else if (a['class']['elrte-iframe']) {
+ return self.scripts[a.id] || '';
+ } else if (a['class']['elrtebm']) {
+ return '';
+ } else if (a['class']['elrte-media']) {
+ // alert(a.rel)
+ // return ''
+ // j = a.rel ? JSON.parse(self.rte.utils.decode(a.rel)) : {};
+ j = self.scripts[a.rel]||{};
+ j.params && $.each(j.params, function(i, p) {
+ o += '<param '+self.serializeAttrs(p)+">\n";
+ });
+ j.embed && (o+='<embed '+self.serializeAttrs(j.embed)+">");
+ j.obj && (o = '<object '+self.serializeAttrs(j.obj)+">\n"+o+"\n</object>\n");
+ return o||t;
+ } else if (a['class']['elrte-pagebreak']) {
+ return '<!-- pagebreak -->';
+ }
+ $.each(a['class'], function(n) {
+ if (/^elrte-\w+/i.test(n)) {
+ delete(a['class'][n]);
+ }
+ // /^elrte\w+/i.test(n) && delete(a['class'][n]);
+ });
+ return '<'+n+' '+self.serializeAttrs(a)+'>'+(e||'');
+
+ });
+
+ return html;
+ },
+ /**
+ * compact styles and move tags and attributes names in lower case(for ie&opera)
+ *
+ * @param String  html code
+ * return String
+ **/
+ compactStyles : function(html) {
+ var self = this;
+
+ return html.replace(this.tagRegExp, function(t, c, n, a) {
+ a = !c && a ? self.serializeAttrs(self.parseAttrs(a), true) : '';
+ return '<'+c+n.toLowerCase()+(a?' ':'')+a+'>';
+ });
+ },
+ /**
+ * return xhtml tags
+ *
+ * @param String  html code
+ * return String
+ **/
+ xhtmlTags : function(html) {
+ return this.xhtml ? html.replace(/<(img|hr|br|embed|param|link|area)([^>]*\/*)>/gi, "<$1$2 />") : html;
+ }
+ }
+
+ /**
+ * Chains configuration
+ * Default chains
+ * wysiwyg - proccess html from source for wysiwyg editor mode
+ * source  - proccess html from wysiwyg for source editor mode
+ * paste   - clean pasted html
+ * wysiwyg2wysiwyg - ciclyc rule to clean html from wysiwyg for wysiwyg paste
+ * source2source - ciclyc rule to clean html from source for source paste
+ * deniedTags is in the end of chain to protect google maps iframe from removed
+ **/
+ elRTE.prototype.filter.prototype.chains = {
+ wysiwyg         : ['replace', 'clean', 'allowedTags', 'deniedTags', 'compactStyles'],
+ source          : ['clean', 'allowedTags', 'restore', 'compactStyles', 'xhtmlTags'],
+ paste           : ['clean', 'allowedTags', 'cleanPaste', 'replace', 'deniedTags', 'compactStyles'],
+ wysiwyg2wysiwyg : ['clean', 'allowedTags', 'restore', 'replace', 'deniedTags', 'compactStyles'],
+ source2source   : ['clean', 'allowedTags', 'replace', 'deniedTags', 'restore', 'compactStyles', 'xhtmlTags']
+ }
+
+
+
+})(jQuery);

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.filter.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.filter.js
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.filter.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.history.js
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.history.js?rev=1178141&view=auto
==============================================================================
--- ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.history.js (added)
+++ ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.history.js Sun Oct  2 08:06:49 2011
@@ -0,0 +1,51 @@
+(function($) {
+elRTE.prototype.history = function(rte) {
+ this.rte = rte;
+ this._prev = []
+ this._next = [];
+
+
+ this.add = function() {
+ if (this.rte.options.historyLength>0 && this._prev.length>= this.rte.options.historyLength) {
+ this._prev.slice(this.rte.options.historyLength);
+ }
+ var b = this.rte.selection.getBookmark();
+ this._prev.push([$(this.rte.doc.body).html(), b]);
+ this.rte.selection.moveToBookmark(b);
+ // this._prev.push($(this.rte.doc.body).html());
+ this._next = [];
+ }
+
+ this.back = function() {
+
+ if (this._prev.length) {
+ var b = this.rte.selection.getBookmark(),
+ data = this._prev.pop();
+ this._next.push([$(this.rte.doc.body).html(), b]);
+
+ $(this.rte.doc.body).html(data[0]);
+ this.rte.selection.moveToBookmark(data[1]);
+ }
+ }
+
+ this.fwd = function() {
+ if (this._next.length) {
+ var b = this.rte.selection.getBookmark(),
+ data = this._next.pop();
+ this._prev.push([$(this.rte.doc.body).html(), b]);
+
+ $(this.rte.doc.body).html(data[0]);
+ this.rte.selection.moveToBookmark(data[1]);
+ }
+ }
+
+ this.canBack = function() {
+ return this._prev.length;
+ }
+
+ this.canFwd = function() {
+ return this._next.length;
+ }
+
+}
+})(jQuery);
\ No newline at end of file

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.history.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.history.js
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/trunk/framework/images/webapp/images/jquery/plugins/elrte-1.3/src/elrte/js/elRTE.history.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain