Index: openacs-4/packages/acs-templating/www/resources/xinha-nightly/Xinha.css =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/xinha-nightly/Xinha.css,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-templating/www/resources/xinha-nightly/Xinha.css 13 May 2008 18:53:44 -0000 1.4 +++ openacs-4/packages/acs-templating/www/resources/xinha-nightly/Xinha.css 16 Jan 2009 08:36:12 -0000 1.5 @@ -1,273 +1,2 @@ -.htmlarea { background: #fff; } -.htmlarea td { margin:0;padding:0; } - -.htmlarea .toolbarRow { - width:1px; -} - -.htmlarea .toolbar { - cursor: default; - background: ButtonFace; - padding: 3px; - border: 1px solid; - border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight; -} -.htmlarea .toolbar table { margin: 0; font-family: tahoma,verdana,sans-serif; font-size: 11px; } -.htmlarea .toolbar img { border: none; vertical-align: top; } -.htmlarea .toolbar .label { padding: 0px 3px; } - -.htmlarea .toolbar .button { - background: ButtonFace; - color: ButtonText; - border: 1px solid ButtonFace; - padding: 1px; - margin: 0px; - width: 18px; - height: 18px; -} -.htmlarea .toolbar a.button:hover { - border: 1px solid; - border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight; -} -.htmlarea .toolbar a.buttonDisabled:hover { - border-color: ButtonFace; -} -.htmlarea .toolbar .buttonActive, -.htmlarea .toolbar .buttonPressed -{ - padding: 2px 0px 0px 2px; - border: 1px solid; - border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow; -} -.htmlarea .toolbar .buttonPressed { - background: ButtonHighlight; -} -.htmlarea .toolbar .indicator { - padding: 0px 3px; - overflow: hidden; - width: 20px; - text-align: center; - cursor: default; - border: 1px solid ButtonShadow; -} - -.htmlarea .toolbar .buttonDisabled img { - filter: gray() alpha(opacity = 25); - -moz-opacity: 0.25; - opacity: 0.25; -} - -.htmlarea .toolbar .separator { - /*position: relative;*/ - margin:0 3px; - border-left: 1px solid ButtonShadow; - border-right: 1px solid ButtonHighlight; - width: 0px; - height: 18px; - padding: 0px; -} - -.htmlarea .toolbar .space { width: 5px; } - -.htmlarea .toolbar select, .htmlarea .toolbar option { font: 11px Tahoma,Verdana,sans-serif;} - -.htmlarea .toolbar select, -.htmlarea .toolbar select:hover, -.htmlarea .toolbar select:active { - position:relative; - top:-2px; - margin-bottom:-2px; - color: ButtonText; -} - -.htmlarea iframe.xinha_iframe, .htmlarea textarea.xinha_textarea -{ - border: none; /*1px solid;*/ -} - -.htmlarea .statusBar { - border: 1px solid; - border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow; - padding: 2px 4px; - background-color: ButtonFace; - color: ButtonText; - font: 11px Tahoma,Verdana,sans-serif; - height:16px; -} - -.htmlarea .statusBar .statusBarTree a { - padding: 2px 5px; - color: #00f; -} - -.htmlarea .statusBar .statusBarTree a:visited { color: #00f; } -.htmlarea .statusBar .statusBarTree a:hover { - background-color: Highlight; - color: HighlightText; - padding: 1px 4px; - border: 1px solid HighlightText; -} - - -/* popup dialogs */ - -.dialog { - color: ButtonText; - background: ButtonFace; -} - -.dialog .content { padding: 2px; } - -.dialog, .dialog button, .dialog input, .dialog select, .dialog textarea, .dialog table { - font: 11px Tahoma,Verdana,sans-serif; -} - -.dialog table { border-collapse: collapse; } - -.dialog .title, .dialog h1 -{ - background: #008; - color: #ff8; - border-bottom: 1px solid #000; - padding: 1px 0px 2px 5px; - font-size: 12px; - font-weight: bold; - cursor: default; -} -.dialog h1 { margin:0px;} -.dialog .title .button { - float: right; - border: 1px solid #66a; - padding: 0px 1px 0px 2px; - margin-right: 1px; - color: #fff; - text-align: center; -} - -.dialog .title .button-hilite { border-color: #88f; background: #44c; } - -.dialog button { - width: 5em; - padding: 0px; -} - -.dialog .buttonColor { - width :1em; - padding: 1px; - cursor: default; - border: 1px solid; - border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight; -} - -.dialog .buttonColor .chooser, .dialog .buttonColor .nocolor { - height: 0.6em; - border: 1px solid; - padding: 0px 1em; - border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow; -} - -.dialog .buttonClick { - border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow; -} -.dialog .buttonColor-hilite { - border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow; -} - -.dialog .buttonColor .nocolor { padding: 0px; } -.dialog .buttonColor .nocolor-hilite { background-color: #fff; color: #f00; } - -.dialog .label { text-align: right; width: 6em; } -.dialog .value input { width: 100%; } -.dialog .buttons { text-align: right; padding: 2px 4px 0px 4px; } - -.dialog legend { font-weight: bold; } -.dialog fieldset table { margin: 2px 0px; } - -.popupwin { - padding: 0px; - margin: 0px; -} - -.popupwin .title { - background: #fff; - color: #000; - font-weight: bold; - font-size: 120%; - padding: 3px 10px; - margin-bottom: 10px; - border-bottom: 1px solid black; - letter-spacing: 2px; -} - -form { margin: 0px; border: none; } - - -/** Panels **/ -.htmlarea .panels.top -{ - border-bottom : 1px solid; - border-color: ButtonShadow; -} - -.htmlarea .panels.right -{ - border-left : 1px solid; - border-color: ButtonShadow; -} - -.htmlarea .panels.left -{ - border-right : 1px solid; - border-color: ButtonShadow; -} - -.htmlarea .panels.bottom -{ - border-top : 1px solid; - border-color: ButtonShadow; -} - -.htmlarea .panel h1 { - background: ButtonFace; - border: 1px solid; - border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight; - margin: 0px; - padding: 0px; - font-size:100%; - font-weight:bold; - padding: 2px; - clear:left; - -} - -.htmlarea .panel { overflow:hidden; } -.htmlarea .panels.left .panel { border-right:none; border-left:none; } -.htmlarea .panels.left h1 { border-right:none; } -.htmlarea .panels.right .panel { border-right:none; border-left:none; } -.htmlarea .panels.left h1 { border-left:none; } -.htmlarea { border: 1px solid black; } - -.loading -{ - font-family:sans-serif; - position:absolute; - z-index:998; - text-align:center; - width:212px; - padding: 55px 0 5px 0; - border:2px solid #ccc; - /* border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;*/ - background: url(images/xinha_logo.gif) no-repeat #fff center 5px; -} -.loading_main -{ - font-size:11px; - color:#000; - -} -.loading_sub -{ - font-size:9px; - color:#666; - text-align:center; -} +/* This compressed file is part of Xinha. For uncomressed sources, forum, and bug reports, go to xinha.org */ +.htmlarea{background:#fff;}.htmlarea td{margin:0;padding:0;}.htmlarea .toolbarRow{width:1px;}.htmlarea .toolbar{cursor:default;background:ButtonFace;padding:3px;border:1px solid;border-color:ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;}.htmlarea .toolbar table{margin:0;font-family:Tahoma,Verdana,sans-serif;font-size:11px;}.htmlarea .toolbar img{border:none;vertical-align:top;}.htmlarea .toolbar .label{padding:0 3px;}.htmlarea .toolbar .button{background:ButtonFace;color:ButtonText;border:1px solid ButtonFace;padding:1px;margin:0;width:18px;height:18px;}.htmlarea .toolbar a.button:hover{border:1px solid;border-color:ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;}.htmlarea .toolbar a.buttonDisabled:hover{border-color:ButtonFace;}.htmlarea .toolbar .buttonActive,.htmlarea .toolbar .buttonPressed{padding:2px 0 0 2px;border:1px solid;border-color:ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;}.htmlarea .toolbar .buttonPressed{background:ButtonHighlight;}.htmlarea .toolbar .indicator{padding:0 3px;overflow:hidden;width:20px;text-align:center;cursor:default;border:1px solid ButtonShadow;}.htmlarea .toolbar .buttonDisabled img{filter:gray() alpha(opacity = 25);-moz-opacity:.25;opacity:.25;}.htmlarea .toolbar .separator{margin:0 3px;border-left:1px solid ButtonShadow;border-right:1px solid ButtonHighlight;width:0;height:18px;padding:0;}.htmlarea .toolbar .space{width:5px;}.htmlarea .toolbar select,.htmlarea .toolbar option{font:11px Tahoma,Verdana,sans-serif;}.htmlarea .toolbar select,.htmlarea .toolbar select:hover,.htmlarea .toolbar select:active{position:relative;top:-2px;margin-bottom:-2px;color:ButtonText;}.htmlarea iframe.xinha_iframe,.htmlarea textarea.xinha_textarea{border:none;}.htmlarea .statusBar{border:1px solid;border-color:ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;padding:2px 4px;background-color:ButtonFace;color:ButtonText;font:11px Tahoma,Verdana,sans-serif;height:16px;overflow:hidden;}.htmlarea .statusBar .statusBarTree a{padding:2px 5px;color:#00f;}.htmlarea .statusBar .statusBarTree a:visited{color:#00f;}.htmlarea .statusBar .statusBarTree a:hover{background-color:Highlight;color:HighlightText;padding:1px 4px;border:1px solid HighlightText;}.statusBarWidgetContainer{background-color:ButtonFace;}.dialog{color:ButtonText;background:ButtonFace;border:1px outset;border-color:WindowFrame;}div.dialog{padding-bottom:10px;border-radius:8px 8px 0 0;-moz-border-radius:8px 8px 0 0;-webkit-border-top-left-radius:8px;-webkit-border-top-right-radius:8px;box-shadow:4px 4px 5px #888;-moz-box-shadow:4px 4px 5px #888;-webkit-box-shadow:4px 4px 5px #888;}div.dialog.modal{box-shadow:9px 9px 10px #444;-moz-box-shadow:9px 9px 10px #444;-webkit-box-shadow:9px 9px 10px #444;}div.dialog.chrome{-webkit-box-shadow:none!IMPORTANT;}.panels div.dialog.panel{border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;}.xinha_dialog_background{filter:alpha(opacity=0);-moz-opacity:0;opacity:0;border:none;}.xinha_dialog_background.modal.greyout{background-color:#666;filter:alpha(opacity=70)!IMPORTANT;-moz-opacity:.7;opacity:.7;}.xinha_dialog_background.modal{filter:alpha(opacity=0)!IMPORTANT;-moz-opacity:0;opacity:0;border:none;}body.xinha_dialog_background.modal.greyout{filter:alpha(opacity=100)!IMPORTANT;}body.xinha_dialog_background.modal{filter:alpha(opacity=0);}.dialog .content{padding:2px;}.dialog,.dialog button,.dialog input,.dialog select,.dialog textarea,.dialog table{font:11px Tahoma,Verdana,sans-serif;}.dialog table{border-collapse:collapse;}.dialog .title,.dialog h1{background:ActiveCaption;color:CaptionText;border-bottom:1px solid #000;padding:1px 0 2px 5px;font-size:12px;font-weight:bold;cursor:default;letter-spacing:.01em;}.dialog h1{margin:0;border-radius:8px 8px 0 0;-moz-border-radius:8px 8px 0 0;-webkit-border-top-left-radius:8px;-webkit-border-top-right-radius:8px;}.panels .dialog.panel h1{-moz-border-radius:0;-webkit-border-radius:0;}.dialog .title .button{float:right;border:1px solid #66a;padding:0 1px 0 2px;margin-right:1px;color:#fff;text-align:center;}.dialog .title .button-hilite{border-color:#88f;background:#44c;}.dialog button{width:5.5em;padding:0;}.dialog .closeButton{padding:0;cursor:default;border:1px solid;border-color:ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;height:11px;width:11px;vertical-align:top;position:absolute;top:3px;right:2px;background-color:ButtonFace;color:ButtonText;font-size:13px;font-family:Tahoma,Verdana,sans-serif;text-align:center;letter-spacing:0;overflow:hidden;}.dialog .buttonColor{width:1em;padding:1px;cursor:default;border:1px solid;border-color:ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;}.dialog .buttonColor .chooser,.dialog .buttonColor .nocolor{height:.6em;border:1px solid;padding:0 1em;border-color:ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;}.dialog .buttonClick{border-color:ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;}.dialog .buttonColor-hilite{border-color:ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;}.dialog .buttonColor .nocolor{padding:0;}.dialog .buttonColor .nocolor-hilite{background-color:#fff;color:#f00;}.dialog .label{text-align:right;width:6em;}.dialog .value input{width:100%;}.dialog legend{font-weight:bold;}.dialog fieldset table{margin:2px 0;}.dialog .buttons{padding:1em;text-align:center;}.dialog .resizeHandle{-moz-appearance:resizer;width:12px;height:12px;border-bottom:2px solid #000;border-right:2px solid #000;cursor:se-resize;}.popupwin{padding:0;margin:0;}.popupwin .title{background:#fff;color:#000;font-weight:bold;font-size:120%;padding:3px 10px;margin-bottom:10px;border-bottom:1px solid black;letter-spacing:2px;}form{margin:0;border:none;}.htmlarea .panels_top{border-bottom:1px solid;border-color:ButtonShadow;}.htmlarea .panels_right{border-left:1px solid;border-color:ButtonShadow;}.htmlarea .panels_left{border-right:1px solid;border-color:ButtonShadow;}.htmlarea .panels_bottom{border-top:1px solid;border-color:ButtonShadow;}.htmlarea .panel h1{clear:left;font-size:.9em;}.htmlarea .panel{overflow:hidden;background-color:white;padding-bottom:0!IMPORTANT;border:none!IMPORTANT;}.htmlarea .panels_left .panel{border-right:none;border-left:none;}.htmlarea .panels_left h1{border-right:none;}.htmlarea .panels_right .panel{border-right:none;border-left:none;}.htmlarea .panels_left h1{border-left:none;}.htmlarea{border:1px solid black;}.loading{font-family:sans-serif;position:absolute;z-index:998;text-align:center;width:212px;padding:55px 0 5px 0;border:2px solid #ccc;background:url(images/xinha_logo.gif) no-repeat #fff center 5px;}.loading_main{font-size:11px;color:#000;}.loading_sub{font-size:9px;color:#666;text-align:center;}.dialog a img{border:0 none transparent;}.dialog fieldset.collapsed{border:0 none transparent;}.dialog fieldset.collapsed form{display:none;}.hidden{display:none;}.placesmanager{width:95%;overflow:auto;}.filemanager{width:95%;height:200px;overflow:auto;background-color:#fff;}.filemanager div.file{min-width:80px;height:100px;position:relative;float:left;border:1px outset #666;margin:4px;}.placesmanager div.file{min-width:60px;height:70px;position:relative;float:left;border:1px outset #666;margin:4px;}.filemanager div.file:hover,.placesmanager div.file:hover{border:1px solid #333;background:#fffff3;}.filemanager div.selected,.filemanager div.selected:hover,.placesmanager div.selected,.placesmanager div.selected:hover{background:#ffffda;border:1px solid #000;}.filemanager .filename{margin:.5em;color:#222;}.filemanager div.selected .filename{color:#000;}.filemanager img.thumb{width:50px;height:50px;position:absolute;top:50%;left:50%;margin:-25px 0 0 -25px;border:1px solid black;}.filemanager img.icon{width:32px;height:32px;position:absolute;top:50%;left:50%;margin:-16px 0 0 -16px;}.filemanager img.action{width:15px;height:15px;position:absolute;}.filemanager img.delete{bottom:3px;left:20px;}.filemanager img.copy{bottom:3px;left:3px;} \ No newline at end of file Index: openacs-4/packages/acs-templating/www/resources/xinha-nightly/XinhaConfig.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/xinha-nightly/XinhaConfig.js,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-templating/www/resources/xinha-nightly/XinhaConfig.js 16 Jan 2009 08:36:13 -0000 1.1 @@ -0,0 +1,5992 @@ + + /*--------------------------------------:noTabs=true:tabSize=2:indentSize=2:-- + -- Xinha (is not htmlArea) - http://xinha.gogo.co.nz/ + -- + -- Use of Xinha is granted by the terms of the htmlArea License (based on + -- BSD license) please read license.txt in this package for details. + -- + -- Xinha was originally based on work by Mihai Bazon which is: + -- Copyright (c) 2003-2004 dynarch.com. + -- Copyright (c) 2002-2003 interactivetools.com, inc. + -- This copyright notice MUST stay intact for use. + -- + -- Developers - Coding Style: + -- For the sake of not committing needlessly conflicting changes, + -- + -- * New code to be indented with 2 spaces ("soft tab"). + -- * New code preferably uses BSD-Style Bracing + -- if ( foo ) + -- { + -- bar(); + -- } + -- * Don't change brace styles unless you're working on the non BSD-Style + -- area (so we don't get spurious changes in line numbering). + -- * Don't change indentation unless you're working on the badly indented + -- area (so we don't get spurious changes of large blocks of code). + -- * Jedit is the recommended editor, a comment of this format should be + -- included in the top 10 lines of the file (see the embedded edit mode) + -- + -- $HeadURL: http://svn.xinha.python-hosting.com/trunk/XinhaConfig.js $ + -- $LastChangedDate: 2007-04-12 09:23:45 +1200 (Thu, 12 Apr 2007) $ + -- $LastChangedRevision: 811 $ + -- $LastChangedBy: ray $ + --------------------------------------------------------------------------*/ + +Xinha.version = +{ + 'Release' : 'Trunk', + 'Head' : '$HeadURL: http://svn.xinha.python-hosting.com/trunk/XinhaConfig.js $'.replace(/^[^:]*: (.*) \$$/, '$1'), + 'Date' : '$LastChangedDate: 2007-04-12 09:23:45 +1200 (Thu, 12 Apr 2007) $'.replace(/^[^:]*: ([0-9-]*) ([0-9:]*) ([+0-9]*) \((.*)\) \$/, '$4 $2 $3'), + 'Revision' : '$LastChangedRevision: 811 $'.replace(/^[^:]*: (.*) \$$/, '$1'), + 'RevisionBy': '$LastChangedBy: ray $'.replace(/^[^:]*: (.*) \$$/, '$1') +}; + +//must be here. it is called while converting _editor_url to absolute +Xinha._resolveRelativeUrl = function( base, url ) +{ + if(url.match(/^([^:]+\:)?\//)) + { + return url; + } + else + { + var b = base.split("/"); + if(b[b.length - 1] == "") + { + b.pop(); + } + var p = url.split("/"); + if(p[0] == ".") + { + p.shift(); + } + while(p[0] == "..") + { + b.pop(); + p.shift(); + } + return b.join("/") + "/" + p.join("/"); + } +} + +if ( typeof _editor_url == "string" ) +{ + // Leave exactly one backslash at the end of _editor_url + _editor_url = _editor_url.replace(/\x2f*$/, '/'); + + // convert _editor_url to absolute + if(!_editor_url.match(/^([^:]+\:)?\//)){ + var path = window.location.toString().split("/"); + path.pop(); + _editor_url = Xinha._resolveRelativeUrl(path.join("/"), _editor_url); + } +} +else +{ + alert("WARNING: _editor_url is not set! You should set this variable to the editor files path; it should preferably be an absolute path, like in '/htmlarea/', but it can be relative if you prefer. Further we will try to load the editor files correctly but we'll probably fail."); + _editor_url = ''; +} + +// make sure we have a language +if ( typeof _editor_lang == "string" ) +{ + _editor_lang = _editor_lang.toLowerCase(); +} +else +{ + _editor_lang = "en"; +} + +// skin stylesheet to load +if ( typeof _editor_skin !== "string" ) +{ + _editor_skin = ""; +} + +var __xinhas = []; + +// browser identification +Xinha.agt = navigator.userAgent.toLowerCase(); +Xinha.is_ie = ((Xinha.agt.indexOf("msie") != -1) && (Xinha.agt.indexOf("opera") == -1)); +Xinha.ie_version= parseFloat(Xinha.agt.substring(Xinha.agt.indexOf("msie")+5)); +Xinha.is_opera = (Xinha.agt.indexOf("opera") != -1); +Xinha.is_khtml = (Xinha.agt.indexOf("khtml") != -1); +Xinha.is_safari = (Xinha.agt.indexOf("safari") != -1); +Xinha.opera_version = navigator.appVersion.substring(0, navigator.appVersion.indexOf(" "))*1; +Xinha.is_mac = (Xinha.agt.indexOf("mac") != -1); +Xinha.is_mac_ie = (Xinha.is_ie && Xinha.is_mac); +Xinha.is_win_ie = (Xinha.is_ie && !Xinha.is_mac); +Xinha.is_gecko = (navigator.product == "Gecko" && !Xinha.is_safari); // Safari lies! +Xinha.isRunLocally = document.URL.toLowerCase().search(/^file:/) != -1; +Xinha.is_designMode = (typeof document.designMode != 'undefined' && !Xinha.is_ie); // IE has designMode, but we're not using it +Xinha.checkSupportedBrowser = function() +{ + if ( Xinha.is_gecko ) + { + if ( navigator.productSub < 20021201 ) + { + alert("You need at least Mozilla-1.3 Alpha.\nSorry, your Gecko is not supported."); + return false; + } + if ( navigator.productSub < 20030210 ) + { + alert("Mozilla < 1.3 Beta is not supported!\nI'll try, though, but it might not work."); + } + } + if ( Xinha.is_opera ) + { + alert("Sorry, Opera is not yet supported by Xinha."); + } + return Xinha.is_gecko || (Xinha.is_opera && Xinha.opera_version >= 9.1) || Xinha.ie_version >= 5.5; +}; + +Xinha.isSupportedBrowser = Xinha.checkSupportedBrowser(); + +if ( Xinha.isRunLocally && Xinha.isSupportedBrowser) +{ + alert('Xinha *must* be installed on a web server. Locally opened files (those that use the "file://" protocol) cannot properly function. Xinha will try to initialize but may not be correctly loaded.'); +} + +// Creates a new Xinha object. Tries to replace the textarea with the given +// ID with it. +function Xinha(textarea, config) +{ + if ( !Xinha.isSupportedBrowser ) return; + + if ( !textarea ) + { + throw("Tried to create Xinha without textarea specified."); + } + + if ( typeof config == "undefined" ) + { + this.config = new Xinha.Config(); + } + else + { + this.config = config; + } + this._htmlArea = null; + + if ( typeof textarea != 'object' ) + { + textarea = Xinha.getElementById('textarea', textarea); + } + this._textArea = textarea; + this._textArea.spellcheck = false; + + // Before we modify anything, get the initial textarea size + this._initial_ta_size = + { + w: textarea.style.width ? textarea.style.width : ( textarea.offsetWidth ? ( textarea.offsetWidth + 'px' ) : ( textarea.cols + 'em') ), + h: textarea.style.height ? textarea.style.height : ( textarea.offsetHeight ? ( textarea.offsetHeight + 'px' ) : ( textarea.rows + 'em') ) + }; + + if ( document.getElementById("loading_" + textarea.id) || this.config.showLoading ) + { + if (!document.getElementById("loading_" + textarea.id)) + { + Xinha.createLoadingMessage(textarea); + } + this.setLoadingMessage(Xinha._lc("Constructing object")); + } + + this._editMode = "wysiwyg"; + this.plugins = {}; + this._timerToolbar = null; + this._timerUndo = null; + this._undoQueue = [this.config.undoSteps]; + this._undoPos = -1; + this._customUndo = true; + this._mdoc = document; // cache the document, we need it in plugins + this.doctype = ''; + this.__htmlarea_id_num = __xinhas.length; + __xinhas[this.__htmlarea_id_num] = this; + + this._notifyListeners = {}; + + // Panels + var panels = + { + right: + { + on: true, + container: document.createElement('td'), + panels: [] + }, + left: + { + on: true, + container: document.createElement('td'), + panels: [] + }, + top: + { + on: true, + container: document.createElement('td'), + panels: [] + }, + bottom: + { + on: true, + container: document.createElement('td'), + panels: [] + } + }; + + for ( var i in panels ) + { + if(!panels[i].container) { continue; } // prevent iterating over wrong type + panels[i].div = panels[i].container; // legacy + panels[i].container.className = 'panels ' + i; + Xinha.freeLater(panels[i], 'container'); + Xinha.freeLater(panels[i], 'div'); + } + // finally store the variable + this._panels = panels; + + Xinha.freeLater(this, '_textArea'); +} + +Xinha.onload = function() { }; +Xinha.init = function() { Xinha.onload(); }; + +// cache some regexps +Xinha.RE_tagName = /(<\/|<)\s*([^ \t\n>]+)/ig; +Xinha.RE_doctype = /()\n?/i; +Xinha.RE_head = /
((.|\n)*?)<\/head>/i; +Xinha.RE_body = /]*>((.|\n|\r|\t)*?)<\/body>/i; +Xinha.RE_Specials = /([\/\^$*+?.()|{}[\]])/g; +Xinha.RE_email = /[_a-z\d\-\.]{3,}@[_a-z\d\-]{2,}(\.[_a-z\d\-]{2,})+/i; +Xinha.RE_url = /(https?:\/\/)?(([a-z0-9_]+:[a-z0-9_]+@)?[a-z0-9_-]{2,}(\.[a-z0-9_-]{2,}){2,}(:[0-9]+)?(\/\S+)*)/i; + +Xinha.Config = function() +{ + var cfg = this; + this.version = Xinha.version.Revision; + + // Width and Height + // you may set these as follows + // width = 'auto' -- the width of the original textarea will be used + // width = 'toolbar' -- the width of the toolbar will be used + // width = 'blocks - - fixed Ticket #976 Loading message misplaced in IE7 - - fixed Ticket #977 TableOperations toolbar off-place in ext_example.html - - fixed Ticket #978 defining a padding fors in global css affects Xinha framework - - Ticket #979 improve checking for non-supported browsers - - fixed Ticket #934 SuperClean plugin returns just quotation when executed on localhost - - Ticket #929 Save changes on page unload fixed for Mozilla - - fixed Ticket #980 ImageManager color format bug - - fixed Ticket #981 No doctype in iframe content document/ editor always in quirks mode - - fixed Ticket #543 Stylist Panel overflow broken - - Ticket #983 added id for iframe - - fixed Ticket #984 !ExtendedFileManager produces php warning - - optimized icon file size - - fixed !JavaScript error in !ImageManager/!ExtendedFileManager image editor - - Ticket #908* Prompts broken in IE7: fixed for EFM, !ImageManager & !TableOperations - - Fixes for TableOperations, tickets #82, #908*, #912 and #947 - - fixed Ticket #998* whitespace added before and/or after content (in non-fullpage mode) - - fixed slow unloading in Mozilla - - Fix focus problem when switching from html to wysiwyg in Gecko. See ticket #900. - - fixed toolbar floating issue - - fixed #1003 HTML length limited to 1024 characters with plugin CharCounter - - Ticket #1000 new public methods for getting/setting editor content - - fixed #735 - IE eating scripts and comments at the beginning of pages. - - Added new config variables to set iframe width if less than editor width (ticket:322) and set alignment of toolbar buttons. - - added Basque translation for XinhaCore - - prevent an error if server is set to parse .js files as PHP - - Ticket #127 plugin HtmlEntities: Entities.js file corrupt - -Xinha 0.92beta - - fixed Ticket #831 stop empty anchors from being removed - - Make htmlarea.js just load XinhaCore.js instead of being a copy of it. - - fixed Ticket #445 Toggle TableBorder doesn't work if this.fullpage=true or using FullPage plugin - - fixed Ticket #551 shape and coord attributes of area element are ignored by IE - - fixed Ticket #650 SpellChecker is not compatible with FullPage plugin - - fixed Ticket #816 CharacterMap and ListType panel modes make editor jump to top in IE - - fixed Ticket #570 change behaviour of justify when an image is selected to make the image float left/right, - click the justify button again to undo it - - fixed Ticket #891 noscript content got escaped - - fixed Ticket #857 Firefox fails to load in fullpage mode when tag in wrong place. - - fixed Ticket #841 Spell Checker - Won't return to xinha. - - fixed Ticket #914 All buttons stay grey & this.getParentElement is not a function message when not calling - Xinha.loadPlugins() in xinha_init function - - fixed Ticket #911 Background color does not work in Firefox - - fixed Ticket #912 an error is thrown in Mozilla when clicking merge cells button and fewer than 2 cells are selected - - fixed Ticket #816 CharacterMap and ListType panel modes make editor jump to top in IE - - fixed Ticket #917 getHTMLWrapper in IE renders attributes like _stylist_usedtobe="[object Object]" - - fixed Ticket #556 stripBaseHref didn't work without baseHref defined explicitly. - - Update InsertPicture plugin Update - - fixed Ticket #921 EFM extended file manager - iframe height problem (IE) - - Ticket #923 colorPicker face lift & localisation - - fixed Ticket #924 EFM + ImageManager re-transforming of url to original image after automatic resize broken - - Ticket #900- retain editing position position between modes - - fixed Ticket #928 ImageManager fails if (another) Files.php exists in include path - - fixed Ticket #935 EFM demo_images php upload allowed: possible security risk - - Ticket #939 Japanese langage support - - fixed Ticket #3 Horizontal Rule Selection - - Plugin ExtendedFileManager: added doc to allowed upload extensions - - Plugin PasteText update - - Plugin HtmlEntities: default preset iso-8859-1 - - fixed Ticket #948 IE: inline styles are not rendered by DOMwalk getHTML() - - Plugin HorizontalRule update - - Plugin SaveSubmit update - - Plugin Linker update - - fixed Ticket #823 editor contents was not submitted when using JavaScript form.submit() without prior form.onsubmit() - - fixed Ticket #459 all body attributes removed in full page mode in FireFox - - _editor_url is now converted to absolute if it is relative. - - fixed Ticket #594 IE: insertHTML() inserts HTML outside editor when editor is not focussed - - Ticket #954 FullScreen mode can now be called programmatically or on startup with or without button - - fixed Ticket #321 FullScreen : select elements show through in IE6 - - fixed Ticket #953 Statusbar has ugly white gap at the bottom when switching back from full screen in IE - - fixed Ticket #952 FullScreen: scrollbars don't disappear in IE in QuirksMode - - fixed Ticket #603 Popop Dialog Height problems - - fixed Ticket #955 DOMwalk getHTML outputs empty attribute with value "true" instead of attribute name and some are skipped at all - -Xinha 0.91beta - - changed namespace from HTMLArea to Xinha - - the core file is now named XinhaCore.js instead of htmlarea.js, - please change your pages accordingly (the htmlarea.js will be removed!) - - the color picker script is now loaded on demand to reduce initial loading time - -Xinha 0.9beta -This equals Xinha revision 635 of Jan 11 2007 - - All JavaScript files over 2kb have been compressed using the dojo JavaScript compressor - - All gifs have been optimized using Trout's GIF Optimizer version 2.3 \ No newline at end of file +Xinha - The Community-Built Online HTML Editor + +For bug reports, forum, and updates go to +http://xinha.org + +Release History +Xinha 0.96beta +Bugs Fixed + * #314 Status bar should wrap + * #741 ContextMenu should not overflow window boundaries + * #961 baseHref not correctly treated when stripping + * #1160 Safari puts selected HTML near bottom if edited + * #1166 TableOperations dialogs do not resize properly in Safari 3 + * #1173 IE8 beta toolbars broken + * #1174 IE8 beta no text cursor in wysiwyg + * #1187 ExtendedFileManager "imgManager.changeDir is not a function" error + * #1193 Stylist bug when formatting selected text + * #1213 Would be nice to protect unsaved changes from accidental loss when navigating away + * #1221 Selecting heading normal on nothing throws exception alert + * #1224 sevenbitclean? / ghost cursor error with html mode toggle (Firefox) + * #1227 No CSS rules load when using @import in external stylesheet + * #1230 CSS width attribute breaks select display in IE + * #1240 Linker: trim spaces from URL + * #1247 CharCounter problems with Silva skin + * #1257 Error if url query string included '/' + * #1258 Event object is not handed over to event handlers installed on textarea + * #1261 Dutch translation for Fullscreen module + * #1280 restoreSelection doesn't always work in internet explorer + * #1281 selectNodeContents is borken in IE when the node is a text node + * #1284 _editor_url is still used in a couple of plugins. + * #1286 use callbacks as criteria for getFirstAncestor + * #1288 [DefinitionList] list items restricted to small width and one line by CSS + * #1290 Improved support for pasting from Microsoft Word + * #1291 Xinha.removeFromParent() does not return correct reference + * #1292 change naming scheme of plugin files + * #1293 [Gecko] Window scrolls to top of editing area when switching from text to WYSIWYG + * #1294 Editor higher in HTML mode + * #1295 Textarea not aligned under toolbar + * #1298 CSS styling gets inserted into table cell after viewing source (Safari only) + * #1300 create namespace for plugins within Xinha namespace + * #1301 loading should not fail if plugin omits _pluginInfo + * #1302 add Array.prototype.forEach for Browser that doesn't support it + * #1303 add getElementsByClassName() + * #1306 Toolbar actions need access to the click event + * #1309 Xinha chokes on anchors + * #1315 Xinha's _addEvent uses event capturing + * #1316 In InternetExplorer, the cursor is lost when switching into source mode + * #1317 Xinha's postback and getback should allow for failure handlers + * #1319 make event hooks like onKeyPress accesible from the config object + * #1320 make it possible to use png images as icons in IE6 + * #1321 [SaveSubmit] icon is in "changed" state initially + * #1322 [SaveSubmit] error when form action is empty + * #1332 Panel classes are very generic, and risk conflict with users embedding it in their site + * #1337 GetHTML truncates hyperlinks + * #1346 statusbar shows b, i, strike instead of strong, em, and del + * #1357 safari form submit has empty form field names in POST data, causes failure with perl CGI + + +Enhancements + * #1176 Completely revamped dialog system, which uses inline lightbox-style dialogs instead of separate popup windows + * #326 Added support for customizable icon sets + * #1318 Added icon set from the Tango Project + * #1287 New InsertNote plugin for handling footnotes, with automatic note numbering and ordering, linking, and support for repeated references + * #1289 New InsertSnippet2 plugin, with categorization of snippets, search by name, and an XML data format + * #58 Additional settings for Linker plugin (link types and targets can be configured) + * #1219 Configuration option to autofocus editor + * #1285 Configuration option to set document body class + * #1323 Allow skins to have meta information (author, etc.) + * #1338 _editor_url is now automatically detected + * #1345 Add a static function that saves the contents of all Xinhas to their respective textareas + + +Xinha 0.95 +Bugs Fixed + * fixed #1040 htmlRemoveTags doesn't work in IE + * fixed #645 IE Save as function only saves the original html + * fixed #1136 FF3 Linux select boxes in toolbar are too small + * fixed #1100 Extended File Manager - Error after opening window + * fixed #1103 [TransformInnerHTML] IE breaks singlet attributes starting with "no" + * fixed #1086 Repeated javascript insertion in onclick attributes + * fixed #1094 IE throws error in Xinha.loadStyle function + * fixed #1117 IE returns javascript error -1072896658 + * fixed #993 PageStyle to override styles in PageStylesheets + * #1112 switching between modes leaves strange characters in source + * fixed #1128 loading fails when Fullscreen tried to load as plugin + * fixed #1126 Percent (%) in URL prevent stripSelfNamedAnchors from working + * fixed #1120 HTML select overlaps color picker in IE6 + * #1115 + #1127 fixed compatibility issues with Firefox 3 + * #961 + #1130 changed behaviour of xinha_config.baseHref + * fixed #645 Save as function only saves the original html + * fixed #1040 htmlRemoveTags doesn't work in IE + * fixed #1015 Mozilla shows scrollbars on click in Stylist + * #918 removed mozParaHandler dirty as it had been broken for a long time + * fixed #1015 Mozilla shows scrollbars on click in Stylist + * fixed #1148 HTML entities break when cursor is inside when switching from HTML to WYSIWYG + * fixed #1151 form action always made absolute + * fixed #1155 InsertAnchor broken in IE 7 + * fixed #1158 [ImageManager] in Japanese environment, an error occurs by reading of lang/ja.js in IE6/7 + * fixed #1152 Plugins using surroundHTML (EditTag, LangMarks) no longer work in IE7 + * fixed #1161 permission error from ColorPicker.js + * fixed #1181 [TableOperations] Table Options dialog first entry for border style faulty + * fixed #1185 [TableOperations] IE: style float broken + * fixed #1197 [Linker] IE shows bug in line 262 + * fixed #1200 [Linker] Dialog does not show if scanned folder empty + +Enhancements + * #1143 add Safari support + * #938 add Opera support + * #1138 added API functions Xinha.getEditor(), Xinha.prototype.getPluginInstance(), Xinha.addOnloadHandler() + * #1137 [Equation] FF3 fixes & improved way of avoiding formula changes in editor + * #1150 synchronize "Remove Format" between browsers + * added plugin PreserveScripts for enhanced editing of pages containing PHP and/or JavaScript () + * Loading message facelift + * added XinhaLoader.js for enhanced user experience through early loading message + * made Xinha.makeEditors accept a DOM reference to the textarea instead of the id as part of xinha_editors array (#1105) + * #1123 Allow return of PHP array from xinha_pass_to_php_backend + * [Linker] scan.php: Allow specification of base url to use (so that a subdirectory can be used as $dir and return appropriate urls to the files (prefixing the url + * [ExtendedFileManager] new Version + * #961 + #1130 changed behaviour of xinha_config.baseHref + * #1137 [Equation] improved way of avoiding formula changes in editor + * #442 removed alert "Your Document is not well formed..." + * #1119 disabled Firefox 2 spell check when ContextMenu is enabled + * added a plugin "GenericPlugin" as a democase for plugin event handlers + * #1171 [SmartReplace] now also replaces three dots with an ellipsis + * #1119 [ContextMenu] optionally switch of Firefox Spell check + * #1172 [LangMarks] make available languages configurable + * enhanced behaviour when xinha_config.baseHref is set to another server + * #1195 Allow to specify an external url to load a plugin from + * #1201 Add inwardHtml/outwardHtml functions to Config object + +I18n + * #1109 Spanish language extended + * #1116 [ExtendedFileManager] added French translation + * #853 updated Translation for farsi + * fixed wrong encoding in Spanish language file + * fixed no bold/italic/underline button images in Spanish + * #1194 [ExtendedFileManager] updated French translation + + +Xinha 0.94 + * Ticket #1093 [InsertSmiley] remove smiley gifs from trunk + * fixed Ticket #1019 Cusor not jumping to editable part of window when clicked in IE + * [TableOperations] Add config option to not dispaly toolbar buttons + * fixed Ticket #1021 Prevent ExtendedFileManager from masking ImageManager + * fixed Ticket #1023 [ImageManager] Add config item to allow the advanced image options to be hidden from the user + * fixed Ticket #1026 fix problems with loading skins + * fixed Tickets #1030 & #1031: slow loading large pages in IE + * fixed Ticket #1034 [ExtendedFileManager] Color pickers shown when use_color_pickers is false + * fixed Ticket #1035 [TransformInnerHTML] tags corruptedunder certain circumstances + * fixed Ticket #1036 [ExtendedFileManager] window is only resized after all thumbnails have benn loaded, which can take quite some time + * fixed Ticket #1039 Firefox full page adds multiple paragraphs after view source + * fixed Ticket #1019 Cusor not jumping to editable part of window when clicked in IE7 + * fixed Ticket #1046 Error in IE 6 when switching from text to wysiwyg + * [DOMwalk] linebreaks inserted before
s + * catch error in IE when trying to restore selection on non-displayed area + * fixed Ticket #973 Error switching wysiwyg/html including javascript file on the code + * fixed Ticket #1028 - [Linker] automatically (attempt to) work around an issue with mod_security being triggered because of the charset on our POST requests + * fixed Ticket #1055 [Stylist] Inappropriate styles (for other tags) are shown + * added Dutch language files + * added new hook 'onBeforeSubmit' for firePluginEvent() + * added new hook 'onBeforeUnload' for firePluginEvent() + * fixed Ticket #1048 Full Screen plugin doesn't load if many editors on page + * fixed Ticket #1053 ListType plugin doesn't work in panel config with multiple editors + * fixed Ticket #1026 Skins referenced with -tags don't work anymore + * fixed Ticket #1059 [Equation] loosing formula onsubmit + * fixed Ticket #1060 [Equation] various updates + * [Equation] preserve formula on reload in Mozilla + * [Equation] updated ASCIIMathML.js + * [Skin:silva] padding and border on textarea make the textmode too wide + * fixed Ticket#1001 Editor loads a bunch of null urls in ie + * fixed Ticket #1068 [TranformInnerHTML] newlines added after + * fixed Ticket#1069 Editor document URL prefixed to any href that only consists of URL parameters + * added Thai translation for core + * added complete Portuguese Brazilian translation + * updated lc_parse script + * fixed Ticket #1071 [ExtendedFileManager] external image URL image inserted with width/height 0, amking it invisible + * fixed Ticket #1074 [SuperClean] throws warnings in PHP 5 + * fixed Ticket #1079 [DynamicCSS] lists Xinha internal CSS + * fixed Ticket #1080 Some plugins leave behind stylesheet links in fullpage mode + * fixed Ticket #1083 Convert URLs to links - Error + * fixed Ticket #1084 URL auto-linking (Gecko): URLs with user:password@domain.tld falsely recognized as email address + * fixed Ticket #1085 URL auto-linking (Gecko): IP numbers don't work + * fixed Ticket #1081 Control character is not being removed inside SCRIPT tags or HEAD when switching from textmode to htmlmode + * fixed Ticket #1078 [InsertImage] spacing attributes: inconsistent behaviour when editing image + * fixed Ticket #1089 [Color Picker] Localize OK Label + * fixed Ticket #1091 [SaveSubmit] does not correctly submit value of checkboxes and radio buttons + +Xinha 0.93 + - fixed Ticket #967 Font Color Picker stops working after using one of ImageManager, ExtendedFileManager, FullPage, or HorizontalRule + - fixed Ticket #965 When switching between Xinhas in the same page, in textmode toolbar stays disabled + - fixwd Ticket #963 DOMwalk IE: head tag attributes without quotes and closing slash + - Ticket #962 DOMwalk Mozilla: improved source indentation + - fixed Ticket #957 If item in in xinha_editors is not a textarea: skip gracefully + - fixed Ticket #900: catch an fatal error that occured sometimes when switching between modes in fullpage mode in Mozilla + - fixed Ticket #969 DOMwalk Gecko: line breaks rendered as
s insideblocks + - fixed Ticket #976 Loading message misplaced in IE7 + - fixed Ticket #977 TableOperations toolbar off-place in ext_example.html + - fixed Ticket #978 defining a padding fors in global css affects Xinha framework + - Ticket #979 improve checking for non-supported browsers + - fixed Ticket #934 SuperClean plugin returns just quotation when executed on localhost + - Ticket #929 Save changes on page unload fixed for Mozilla + - fixed Ticket #980 ImageManager color format bug + - fixed Ticket #981 No doctype in iframe content document/ editor always in quirks mode + - fixed Ticket #543 Stylist Panel overflow broken + - Ticket #983 added id for iframe + - fixed Ticket #984 !ExtendedFileManager produces php warning + - optimized icon file size + - fixed !JavaScript error in !ImageManager/!ExtendedFileManager image editor + - Ticket #908* Prompts broken in IE7: fixed for EFM, !ImageManager & !TableOperations + - Fixes for TableOperations, tickets #82, #908*, #912 and #947 + - fixed Ticket #998* whitespace added before and/or after content (in non-fullpage mode) + - fixed slow unloading in Mozilla + - Fix focus problem when switching from html to wysiwyg in Gecko. See ticket #900. + - fixed toolbar floating issue + - fixed #1003 HTML length limited to 1024 characters with plugin CharCounter + - Ticket #1000 new public methods for getting/setting editor content + - fixed #735 - IE eating scripts and comments at the beginning of pages. + - Added new config variables to set iframe width if less than editor width (ticket:322) and set alignment of toolbar buttons. + - added Basque translation for XinhaCore + - prevent an error if server is set to parse .js files as PHP + - Ticket #127 plugin HtmlEntities: Entities.js file corrupt + +Xinha 0.92beta + - fixed Ticket #831 stop empty anchors from being removed + - Make htmlarea.js just load XinhaCore.js instead of being a copy of it. + - fixed Ticket #445 Toggle TableBorder doesn't work if this.fullpage=true or using FullPage plugin + - fixed Ticket #551 shape and coord attributes of area element are ignored by IE + - fixed Ticket #650 SpellChecker is not compatible with FullPage plugin + - fixed Ticket #816 CharacterMap and ListType panel modes make editor jump to top in IE + - fixed Ticket #570 change behaviour of justify when an image is selected to make the image float left/right, + click the justify button again to undo it + - fixed Ticket #891 noscript content got escaped + - fixed Ticket #857 Firefox fails to load in fullpage mode when tag in wrong place. + - fixed Ticket #841 Spell Checker - Won't return to xinha. + - fixed Ticket #914 All buttons stay grey & this.getParentElement is not a function message when not calling + Xinha.loadPlugins() in xinha_init function + - fixed Ticket #911 Background color does not work in Firefox + - fixed Ticket #912 an error is thrown in Mozilla when clicking merge cells button and fewer than 2 cells are selected + - fixed Ticket #816 CharacterMap and ListType panel modes make editor jump to top in IE + - fixed Ticket #917 getHTMLWrapper in IE renders attributes like _stylist_usedtobe="[object Object]" + - fixed Ticket #556 stripBaseHref didn't work without baseHref defined explicitly. + - Update InsertPicture plugin Update + - fixed Ticket #921 EFM extended file manager - iframe height problem (IE) + - Ticket #923 colorPicker face lift & localisation + - fixed Ticket #924 EFM + ImageManager re-transforming of url to original image after automatic resize broken + - Ticket #900- retain editing position position between modes + - fixed Ticket #928 ImageManager fails if (another) Files.php exists in include path + - fixed Ticket #935 EFM demo_images php upload allowed: possible security risk + - Ticket #939 Japanese langage support + - fixed Ticket #3 Horizontal Rule Selection + - Plugin ExtendedFileManager: added doc to allowed upload extensions + - Plugin PasteText update + - Plugin HtmlEntities: default preset iso-8859-1 + - fixed Ticket #948 IE: inline styles are not rendered by DOMwalk getHTML() + - Plugin HorizontalRule update + - Plugin SaveSubmit update + - Plugin Linker update + - fixed Ticket #823 editor contents was not submitted when using JavaScript form.submit() without prior form.onsubmit() + - fixed Ticket #459 all body attributes removed in full page mode in FireFox + - _editor_url is now converted to absolute if it is relative. + - fixed Ticket #594 IE: insertHTML() inserts HTML outside editor when editor is not focussed + - Ticket #954 FullScreen mode can now be called programmatically or on startup with or without button + - fixed Ticket #321 FullScreen : select elements show through in IE6 + - fixed Ticket #953 Statusbar has ugly white gap at the bottom when switching back from full screen in IE + - fixed Ticket #952 FullScreen: scrollbars don't disappear in IE in QuirksMode + - fixed Ticket #603 Popop Dialog Height problems + - fixed Ticket #955 DOMwalk getHTML outputs empty attribute with value "true" instead of attribute name and some are skipped at all + +Xinha 0.91beta + - changed namespace from HTMLArea to Xinha + - the core file is now named XinhaCore.js instead of htmlarea.js, + please change your pages accordingly (the htmlarea.js will be removed!) + - the color picker script is now loaded on demand to reduce initial loading time + +Xinha 0.9beta +This equals Xinha revision 635 of Jan 11 2007 + - All JavaScript files over 2kb have been compressed using the dojo JavaScript compressor + - All gifs have been optimized using Trout's GIF Optimizer version 2.3 Index: openacs-4/packages/acs-templating/www/resources/xinha-nightly/contrib/dojo_js_compressor.jar =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/xinha-nightly/contrib/Attic/dojo_js_compressor.jar,v diff -u -r1.1 -r1.2 Binary files differ Index: openacs-4/packages/acs-templating/www/resources/xinha-nightly/examples/ExtendedDemo.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/xinha-nightly/examples/ExtendedDemo.html,v diff -u -r1.1 -r1.2 --- openacs-4/packages/acs-templating/www/resources/xinha-nightly/examples/ExtendedDemo.html 13 May 2008 18:53:45 -0000 1.1 +++ openacs-4/packages/acs-templating/www/resources/xinha-nightly/examples/ExtendedDemo.html 16 Jan 2009 08:36:13 -0000 1.2 @@ -3,10 +3,10 @@