http://git-wip-us.apache.org/repos/asf/stratos/blob/ee5e9639/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/edit_area_functions.js
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/edit_area_functions.js
 
b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/edit_area_functions.js
deleted file mode 100644
index 984d4c6..0000000
--- 
a/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/edit_area_functions.js
+++ /dev/null
@@ -1,1203 +0,0 @@
-       //replace tabulation by the good number of white spaces
-       EditArea.prototype.replace_tab= function(text){
-               return text.replace(/((\n?)([^\t\n]*)\t)/gi, 
editArea.smartTab);                // slower than simple replace...        
-       };
-       
-       // call by the replace_tab function
-       EditArea.prototype.smartTab= function(){
-               val="                   ";
-               return EditArea.prototype.smartTab.arguments[2] + 
EditArea.prototype.smartTab.arguments[3] + val.substr(0, editArea.tab_nb_char - 
(EditArea.prototype.smartTab.arguments[3].length)%editArea.tab_nb_char);
-       };
-       
-       EditArea.prototype.show_waiting_screen= function(){
-               width   = this.editor_area.offsetWidth;
-               height  = this.editor_area.offsetHeight;
-               if( !(this.isIE && this.isIE<6) )
-               {
-                       width   -= 2;
-                       height  -= 2;
-               }
-               this.processing_screen.style.display= "block";
-               this.processing_screen.style.width      = width+"px";
-               this.processing_screen.style.height     = height+"px";
-               this.waiting_screen_displayed           = true;
-       };
-       
-       EditArea.prototype.hide_waiting_screen= function(){
-               this.processing_screen.style.display="none";
-               this.waiting_screen_displayed= false;
-       };
-       
-       EditArea.prototype.add_style= function(styles){
-               if(styles.length>0){
-                       newcss = document.createElement("style");
-                       newcss.type="text/css";
-                       newcss.media="all";
-                       if(newcss.styleSheet){ // IE
-                               newcss.styleSheet.cssText = styles;
-                       } else { // W3C
-                               
newcss.appendChild(document.createTextNode(styles));
-                       }
-                       
document.getElementsByTagName("head")[0].appendChild(newcss);
-               }
-       };
-       
-       EditArea.prototype.set_font= function(family, size){
-               var t=this, a=this.textarea, s=this.settings, elem_font, i, 
elem;
-               // list all elements concerned by font changes
-               var elems= ["textarea", "content_highlight", "cursor_pos", 
"end_bracket", "selection_field", "selection_field_text", "line_number"];
-               
-               if(family && family!="")
-                       s["font_family"]= family;
-               if(size && size>0)
-                       s["font_size"]  = size;
-               if( t.isOpera && t.isOpera < 9.6 )      // opera<9.6 can't 
manage non monospace font
-                       s['font_family']="monospace";
-                       
-               // update the select tag
-               if( elem_font = _$("area_font_size") )
-               {       
-                       for( i = 0; i < elem_font.length; i++ )
-                       {
-                               if( elem_font.options[i].value && 
elem_font.options[i].value == s["font_size"] )
-                                       elem_font.options[i].selected=true;
-                       }
-               }
-               
-               /*
-                * somethimes firefox has rendering mistake with non-monospace 
font for text width in textarea vs in div for changing font size (eg: verdana 
change between 11pt to 12pt)
-                * => looks like a browser internal random bug as text width 
can change while content_highlight is updated
-                * we'll check if the font-size produce the same text width 
inside textarea and div and if not, we'll increment the font-size
-                * 
-                * This is an ugly fix 
-                */ 
-               if( t.isFirefox )
-               {
-                       var nbTry = 3;
-                       do {
-                               var div1 = document.createElement( 'div' ), 
text1 = document.createElement( 'textarea' );
-                               var styles = {
-                                       width:          '40px',
-                                       overflow:       'scroll',
-                                       zIndex:         50,
-                                       visibility:     'hidden',
-                                       fontFamily:     s["font_family"],
-                                       fontSize:       s["font_size"]+"pt",
-                                       lineHeight:     t.lineHeight+"px",
-                                       padding:        '0',
-                                       margin:         '0',
-                                       border:         'none',
-                                       whiteSpace:     'nowrap'
-                               };
-                               var diff, changed = false;
-                               for( i in styles )
-                               {
-                                       div1.style[ i ]         = styles[i];
-                                       text1.style[ i ]        = styles[i];
-                               }
-                               // no wrap for this text
-                               text1.wrap = 'off';
-                               text1.setAttribute('wrap', 'off');
-                               t.container.appendChild( div1 );
-                               t.container.appendChild( text1 );
-                               // try to make FF to bug
-                               div1.innerHTML          = text1.value   = 
'azertyuiopqsdfghjklm';
-                               div1.innerHTML          = text1.value   = 
text1.value+'wxcvbn^p*ù$!:;,,';
-                               diff    =  text1.scrollWidth - div1.scrollWidth;
-                               
-                               // firefox return here a diff of 1 px between 
equals scrollWidth (can't explain)
-                               if( Math.abs( diff ) >= 2 )
-                               {
-                                       s["font_size"]++;
-                                       changed = true;
-                               }
-                               t.container.removeChild( div1 );
-                               t.container.removeChild( text1 );
-                               nbTry--;
-                       }while( changed && nbTry > 0 );
-               }
-               
-               
-               // calc line height
-               elem                                    = t.test_font_size;
-               elem.style.fontFamily   = ""+s["font_family"];
-               elem.style.fontSize             = s["font_size"]+"pt";          
                
-               elem.innerHTML                  = "0";          
-               t.lineHeight                    = elem.offsetHeight;
-
-               // update font for all concerned elements
-               for( i=0; i<elems.length; i++)
-               {
-                       elem    = _$(elems[i]); 
-                       elem.style.fontFamily   = s["font_family"];
-                       elem.style.fontSize             = s["font_size"]+"pt";
-                       elem.style.lineHeight   = t.lineHeight+"px";
-               }
-               // define a css for <pre> tags
-               t.add_style("pre{font-family:"+s["font_family"]+"}");
-               
-               // old opera and IE>=8 doesn't update font changes to the 
textarea
-               if( ( t.isOpera && t.isOpera < 9.6 ) || t.isIE >= 8 )
-               {
-                       var parNod = a.parentNode, nxtSib = a.nextSibling, 
start= a.selectionStart, end= a.selectionEnd;
-                       parNod.removeChild(a);
-                       parNod.insertBefore(a, nxtSib);
-                       t.area_select(start, end-start);
-               }
-               
-               // force update of selection field
-               this.focus();
-               this.update_size();
-               this.check_line_selection();
-       };
-       
-       EditArea.prototype.change_font_size= function(){
-               var size=_$("area_font_size").value;
-               if(size>0)
-                       this.set_font("", size);                        
-       };
-       
-       
-       EditArea.prototype.open_inline_popup= function(popup_id){
-               this.close_all_inline_popup();
-               var popup= _$(popup_id);                
-               var editor= _$("editor");
-               
-               // search matching icon
-               for(var i=0; i<this.inlinePopup.length; i++){
-                       if(this.inlinePopup[i]["popup_id"]==popup_id){
-                               var icon= _$(this.inlinePopup[i]["icon_id"]);
-                               if(icon){
-                                       this.switchClassSticky(icon, 
'editAreaButtonSelected', true);                   
-                                       break;
-                               }
-                       }
-               }
-               // check size
-               popup.style.height="auto";
-               popup.style.overflow= "visible";
-                       
-               if(document.body.offsetHeight< popup.offsetHeight){
-                       popup.style.height= 
(document.body.offsetHeight-10)+"px";
-                       popup.style.overflow= "auto";
-               }
-               
-               if(!popup.positionned){
-                       var new_left= editor.offsetWidth /2 - popup.offsetWidth 
/2;
-                       var new_top= editor.offsetHeight /2 - 
popup.offsetHeight /2;
-                       //var new_top= area.offsetHeight /2 - 
popup.offsetHeight /2;
-                       //var new_left= area.offsetWidth /2 - popup.offsetWidth 
/2;
-                       //alert("new_top: ("+new_top+") = 
calculeOffsetTop(area) ("+calculeOffsetTop(area)+") + area.offsetHeight /2("+ 
area.offsetHeight /2+") - popup.offsetHeight /2("+popup.offsetHeight /2+") - 
scrollTop: "+document.body.scrollTop);
-                       popup.style.left= new_left+"px";
-                       popup.style.top= new_top+"px";
-                       popup.positionned=true;
-               }
-               popup.style.visibility="visible";
-               
-               //popup.style.display="block";
-       };
-
-       EditArea.prototype.close_inline_popup= function(popup_id){
-               var popup= _$(popup_id);                
-               // search matching icon
-               for(var i=0; i<this.inlinePopup.length; i++){
-                       if(this.inlinePopup[i]["popup_id"]==popup_id){
-                               var icon= _$(this.inlinePopup[i]["icon_id"]);
-                               if(icon){
-                                       this.switchClassSticky(icon, 
'editAreaButtonNormal', false);                    
-                                       break;
-                               }
-                       }
-               }
-               
-               popup.style.visibility="hidden";        
-       };
-       
-       EditArea.prototype.close_all_inline_popup= function(e){
-               for(var i=0; i<this.inlinePopup.length; i++){
-                       
this.close_inline_popup(this.inlinePopup[i]["popup_id"]);               
-               }
-               this.textarea.focus();
-       };
-       
-       EditArea.prototype.show_help= function(){
-               
-               this.open_inline_popup("edit_area_help");
-               
-       };
-                       
-       EditArea.prototype.new_document= function(){
-               this.textarea.value="";
-               this.area_select(0,0);
-       };
-       
-       EditArea.prototype.get_all_toolbar_height= function(){
-               var area= _$("editor");
-               var results= parent.getChildren(area, "div", "class", 
"area_toolbar", "all", "0");      // search only direct children
-               //results= results.concat(getChildren(area, "table", "class", 
"area_toolbar", "all", "0"));
-               var height=0;
-               for(var i=0; i<results.length; i++){                    
-                       height+= results[i].offsetHeight;
-               }
-               //alert("toolbar height: "+height);
-               return height;
-       };
-       
-       EditArea.prototype.go_to_line= function(line){  
-               if(!line)
-               {       
-                       var icon= _$("go_to_line");
-                       if(icon != null){
-                               this.restoreClass(icon);
-                               this.switchClassSticky(icon, 
'editAreaButtonSelected', true);
-                       }
-                       
-                       line= prompt(this.get_translation("go_to_line_prompt"));
-                       if(icon != null)
-                               this.switchClassSticky(icon, 
'editAreaButtonNormal', false);
-               }
-               if(line && line!=null && line.search(/^[0-9]+$/)!=-1){
-                       var start=0;
-                       var lines= this.textarea.value.split("\n");
-                       if(line > lines.length)
-                               start= this.textarea.value.length;
-                       else{
-                               for(var i=0; i<Math.min(line-1, lines.length); 
i++)
-                                       start+= lines[i].length + 1;
-                       }
-                       this.area_select(start, 0);
-               }
-               
-               
-       };
-       
-       
-       EditArea.prototype.change_smooth_selection_mode= function(setTo){
-               //alert("setTo: "+setTo);
-               if(this.do_highlight)
-                       return;
-                       
-               if(setTo != null){
-                       if(setTo === false)
-                               this.smooth_selection=true;
-                       else
-                               this.smooth_selection=false;
-               }
-               var icon= _$("change_smooth_selection");
-               this.textarea.focus();
-               if(this.smooth_selection===true){
-                       //setAttribute(icon, "class", getAttribute(icon, 
"class").replace(/ selected/g, "") );
-                       /*setAttribute(icon, "oldClassName", 
"editAreaButtonNormal" );
-                       setAttribute(icon, "className", "editAreaButtonNormal" 
);*/
-                       //this.restoreClass(icon);
-                       
//this.restoreAndSwitchClass(icon,'editAreaButtonNormal');
-                       this.switchClassSticky(icon, 'editAreaButtonNormal', 
false);
-                       
-                       this.smooth_selection=false;
-                       this.selection_field.style.display= "none";
-                       _$("cursor_pos").style.display= "none";
-                       _$("end_bracket").style.display= "none";
-               }else{
-                       //setAttribute(icon, "class", getAttribute(icon, 
"class") + " selected");
-                       //this.switchClass(icon,'editAreaButtonSelected');
-                       this.switchClassSticky(icon, 'editAreaButtonSelected', 
false);
-                       this.smooth_selection=true;
-                       this.selection_field.style.display= "block";
-                       _$("cursor_pos").style.display= "block";
-                       _$("end_bracket").style.display= "block";
-               }       
-       };
-       
-       // the auto scroll of the textarea has some lacks when it have to show 
cursor in the visible area when the textarea size change
-       // show specifiy whereas it is the "top" or "bottom" of the selection 
that is showned
-       EditArea.prototype.scroll_to_view= function(show){
-               var zone, lineElem;
-               if(!this.smooth_selection)
-                       return;
-               zone= _$("result");
-               
-               // manage height scroll
-               var cursor_pos_top= _$("cursor_pos").cursor_top;
-               if(show=="bottom")
-               {
-                       //cursor_pos_top+=  (this.last_selection["line_nb"]-1)* 
this.lineHeight;
-                       cursor_pos_top+= this.getLinePosTop( 
this.last_selection['line_start'] + this.last_selection['line_nb'] - 1 );
-               }
-                       
-               var max_height_visible= zone.clientHeight + zone.scrollTop;
-               var miss_top    = cursor_pos_top + this.lineHeight - 
max_height_visible;
-               if(miss_top>0){
-                       //alert(miss_top);
-                       zone.scrollTop=  zone.scrollTop + miss_top;
-               }else if( zone.scrollTop > cursor_pos_top){
-                       // when erase all the content -> does'nt scroll back to 
the top
-                       //alert("else: "+cursor_pos_top);
-                       zone.scrollTop= cursor_pos_top;  
-               }
-               
-               // manage left scroll
-               //var cursor_pos_left= 
parseInt(_$("cursor_pos").style.left.replace("px",""));
-               var cursor_pos_left= _$("cursor_pos").cursor_left;
-               var max_width_visible= zone.clientWidth + zone.scrollLeft;
-               var miss_left= cursor_pos_left + 10 - max_width_visible;
-               if(miss_left>0){                        
-                       zone.scrollLeft= zone.scrollLeft + miss_left + 50;
-               }else if( zone.scrollLeft > cursor_pos_left){
-                       zone.scrollLeft= cursor_pos_left ;
-               }else if( zone.scrollLeft == 45){
-                       // show the line numbers if textarea align to it's left
-                       zone.scrollLeft=0;
-               }
-       };
-       
-       EditArea.prototype.check_undo= function(only_once){
-               if(!editAreas[this.id])
-                       return false;
-               if(this.textareaFocused && 
editAreas[this.id]["displayed"]==true){
-                       var text=this.textarea.value;
-                       if(this.previous.length<=1)
-                               this.switchClassSticky(_$("undo"), 
'editAreaButtonDisabled', true);
-               
-                       if(!this.previous[this.previous.length-1] || 
this.previous[this.previous.length-1]["text"] != text){
-                               this.previous.push({"text": text, "selStart": 
this.textarea.selectionStart, "selEnd": this.textarea.selectionEnd});
-                               if(this.previous.length > 
this.settings["max_undo"]+1)
-                                       this.previous.shift();
-                               
-                       }
-                       if(this.previous.length >= 2)
-                               this.switchClassSticky(_$("undo"), 
'editAreaButtonNormal', false);              
-               }
-
-               if(!only_once)
-                       setTimeout("editArea.check_undo()", 3000);
-       };
-       
-       EditArea.prototype.undo= function(){
-               //alert("undo"+this.previous.length);
-               if(this.previous.length > 0)
-               {
-                       this.getIESelection();
-               //      var pos_cursor=this.textarea.selectionStart;
-                       this.next.push( { "text": this.textarea.value, 
"selStart": this.textarea.selectionStart, "selEnd": this.textarea.selectionEnd 
} );
-                       var prev= this.previous.pop();
-                       if( prev["text"] == this.textarea.value && 
this.previous.length > 0 )
-                               prev    =this.previous.pop();                   
                        
-                       this.textarea.value     = prev["text"];
-                       this.last_undo          = prev["text"];
-                       this.area_select(prev["selStart"], 
prev["selEnd"]-prev["selStart"]);
-                       this.switchClassSticky(_$("redo"), 
'editAreaButtonNormal', false);
-                       this.resync_highlight(true);
-                       //alert("undo"+this.previous.length);
-                       this.check_file_changes();
-               }
-       };
-       
-       EditArea.prototype.redo= function(){
-               if(this.next.length > 0)
-               {
-                       /*this.getIESelection();*/
-                       //var pos_cursor=this.textarea.selectionStart;
-                       var next= this.next.pop();
-                       this.previous.push(next);
-                       this.textarea.value= next["text"];
-                       this.last_undo= next["text"];
-                       this.area_select(next["selStart"], 
next["selEnd"]-next["selStart"]);
-                       this.switchClassSticky(_$("undo"), 
'editAreaButtonNormal', false);
-                       this.resync_highlight(true);
-                       this.check_file_changes();
-               }
-               if(     this.next.length == 0)
-                       this.switchClassSticky(_$("redo"), 
'editAreaButtonDisabled', true);
-       };
-       
-       EditArea.prototype.check_redo= function(){
-               if(editArea.next.length == 0 || 
editArea.textarea.value!=editArea.last_undo){
-                       editArea.next= [];      // undo the ability to use 
"redo" button
-                       editArea.switchClassSticky(_$("redo"), 
'editAreaButtonDisabled', true);
-               }
-               else
-               {
-                       this.switchClassSticky(_$("redo"), 
'editAreaButtonNormal', false);
-               }
-       };
-       
-       
-       // functions that manage icons roll over, disabled, etc...
-       EditArea.prototype.switchClass = function(element, class_name, 
lock_state) {
-               var lockChanged = false;
-       
-               if (typeof(lock_state) != "undefined" && element != null) {
-                       element.classLock = lock_state;
-                       lockChanged = true;
-               }
-       
-               if (element != null && (lockChanged || !element.classLock)) {
-                       element.oldClassName = element.className;
-                       element.className = class_name;
-               }
-       };
-       
-       EditArea.prototype.restoreAndSwitchClass = function(element, 
class_name) {
-               if (element != null && !element.classLock) {
-                       this.restoreClass(element);
-                       this.switchClass(element, class_name);
-               }
-       };
-       
-       EditArea.prototype.restoreClass = function(element) {
-               if (element != null && element.oldClassName && 
!element.classLock) {
-                       element.className = element.oldClassName;
-                       element.oldClassName = null;
-               }
-       };
-       
-       EditArea.prototype.setClassLock = function(element, lock_state) {
-               if (element != null)
-                       element.classLock = lock_state;
-       };
-       
-       EditArea.prototype.switchClassSticky = function(element, class_name, 
lock_state) {
-               var lockChanged = false;
-               if (typeof(lock_state) != "undefined" && element != null) {
-                       element.classLock = lock_state;
-                       lockChanged = true;
-               }
-       
-               if (element != null && (lockChanged || !element.classLock)) {
-                       element.className = class_name;
-                       element.oldClassName = class_name;
-               }
-       };
-       
-       //make the "page up" and "page down" buttons works correctly
-       EditArea.prototype.scroll_page= function(params){
-               var dir= params["dir"], shift_pressed= params["shift"];
-               var lines= this.textarea.value.split("\n");             
-               var new_pos=0, length=0, char_left=0, line_nb=0, curLine=0;
-               var toScrollAmount      = _$("result").clientHeight -30;
-               var nbLineToScroll      = 0, diff= 0;
-               
-               if(dir=="up"){
-                       nbLineToScroll  = Math.ceil( toScrollAmount / 
this.lineHeight );
-                       
-                       // fix number of line to scroll
-                       for( i = this.last_selection["line_start"]; i - diff > 
this.last_selection["line_start"] - nbLineToScroll ; i-- )
-                       {
-                               if( elem = _$('line_'+ i) )
-                               {
-                                       diff +=  Math.floor( ( 
elem.offsetHeight - 1 ) / this.lineHeight );
-                               }
-                       }
-                       nbLineToScroll  -= diff;
-                       
-                       if(this.last_selection["selec_direction"]=="up"){
-                               for(line_nb=0; line_nb< 
Math.min(this.last_selection["line_start"]-nbLineToScroll, lines.length); 
line_nb++){
-                                       new_pos+= lines[line_nb].length + 1;
-                               }
-                               
char_left=Math.min(lines[Math.min(lines.length-1, line_nb)].length, 
this.last_selection["curr_pos"]-1);
-                               if(shift_pressed)
-                                       
length=this.last_selection["selectionEnd"]-new_pos-char_left;   
-                               this.area_select(new_pos+char_left, length);
-                               view="top";
-                       }else{                  
-                               view="bottom";
-                               for(line_nb=0; line_nb< 
Math.min(this.last_selection["line_start"]+this.last_selection["line_nb"]-1-nbLineToScroll,
 lines.length); line_nb++){
-                                       new_pos+= lines[line_nb].length + 1;
-                               }
-                               
char_left=Math.min(lines[Math.min(lines.length-1, line_nb)].length, 
this.last_selection["curr_pos"]-1);
-                               if(shift_pressed){
-                                       
//length=this.last_selection["selectionEnd"]-new_pos-char_left; 
-                                       start= 
Math.min(this.last_selection["selectionStart"], new_pos+char_left);
-                                       length= Math.max(new_pos+char_left, 
this.last_selection["selectionStart"] )- start ;
-                                       if(new_pos+char_left < 
this.last_selection["selectionStart"])
-                                               view="top";
-                               }else
-                                       start=new_pos+char_left;
-                               this.area_select(start, length);
-                               
-                       }
-               }
-               else
-               {
-                       var nbLineToScroll= Math.floor( toScrollAmount / 
this.lineHeight );
-                       // fix number of line to scroll
-                       for( i = this.last_selection["line_start"]; i + diff < 
this.last_selection["line_start"] + nbLineToScroll ; i++ )
-                       {
-                               if( elem = _$('line_'+ i) )
-                               {
-                                       diff +=  Math.floor( ( 
elem.offsetHeight - 1 ) / this.lineHeight );
-                               }
-                       }
-                       nbLineToScroll  -= diff;
-                               
-                       if(this.last_selection["selec_direction"]=="down"){
-                               view="bottom";
-                               for(line_nb=0; line_nb< 
Math.min(this.last_selection["line_start"]+this.last_selection["line_nb"]-2+nbLineToScroll,
 lines.length); line_nb++){
-                                       
if(line_nb==this.last_selection["line_start"]-1)
-                                               char_left= 
this.last_selection["selectionStart"] -new_pos;
-                                       new_pos+= lines[line_nb].length + 1;
-                                                                       
-                               }
-                               if(shift_pressed){
-                                       
length=Math.abs(this.last_selection["selectionStart"]-new_pos); 
-                                       
length+=Math.min(lines[Math.min(lines.length-1, line_nb)].length, 
this.last_selection["curr_pos"]);
-                                       
//length+=Math.min(lines[Math.min(lines.length-1, line_nb)].length, char_left);
-                                       
this.area_select(Math.min(this.last_selection["selectionStart"], new_pos), 
length);
-                               }else{
-                                       this.area_select(new_pos+char_left, 0);
-                               }
-                               
-                       }else{
-                               view="top";
-                               for(line_nb=0; line_nb< 
Math.min(this.last_selection["line_start"]+nbLineToScroll-1, lines.length, 
lines.length); line_nb++){
-                                       
if(line_nb==this.last_selection["line_start"]-1)
-                                               char_left= 
this.last_selection["selectionStart"] -new_pos;
-                                       new_pos+= lines[line_nb].length + 1;    
                                                                
-                               }
-                               if(shift_pressed){
-                                       
length=Math.abs(this.last_selection["selectionEnd"]-new_pos-char_left); 
-                                       
length+=Math.min(lines[Math.min(lines.length-1, line_nb)].length, 
this.last_selection["curr_pos"])- char_left-1;
-                                       
//length+=Math.min(lines[Math.min(lines.length-1, line_nb)].length, char_left);
-                                       
this.area_select(Math.min(this.last_selection["selectionEnd"], 
new_pos+char_left), length);
-                                       if(new_pos+char_left > 
this.last_selection["selectionEnd"])
-                                               view="bottom";
-                               }else{
-                                       this.area_select(new_pos+char_left, 0);
-                               }
-                               
-                       }
-               }
-               //console.log( new_pos, char_left, length, nbLineToScroll, 
toScrollAmount, _$("result").clientHeigh );
-               this.check_line_selection();
-               this.scroll_to_view(view);
-       };
-       
-       EditArea.prototype.start_resize= function(e){
-               parent.editAreaLoader.resize["id"]              = editArea.id;  
        
-               parent.editAreaLoader.resize["start_x"] = (e)? e.pageX : 
event.x + document.body.scrollLeft;            
-               parent.editAreaLoader.resize["start_y"] = (e)? e.pageY : 
event.y + document.body.scrollTop;
-               if(editArea.isIE)
-               {
-                       editArea.textarea.focus();
-                       editArea.getIESelection();
-               }
-               parent.editAreaLoader.resize["selectionStart"]  = 
editArea.textarea.selectionStart;
-               parent.editAreaLoader.resize["selectionEnd"]    = 
editArea.textarea.selectionEnd;
-               parent.editAreaLoader.start_resize_area();
-       };
-       
-       EditArea.prototype.toggle_full_screen= function(to){
-               var t=this, p=parent, a=t.textarea, html, frame, selStart, 
selEnd, old, icon;
-               if(typeof(to)=="undefined")
-                       to= !t.fullscreen['isFull'];
-               old                     = t.fullscreen['isFull'];
-               t.fullscreen['isFull']= to;
-               icon            = _$("fullscreen");
-               selStart        = t.textarea.selectionStart;
-               selEnd          = t.textarea.selectionEnd;
-               html            = p.document.getElementsByTagName("html")[0];
-               frame           = p.document.getElementById("frame_"+t.id);
-               
-               if(to && to!=old)
-               {       // toogle on fullscreen         
-                       
-                       t.fullscreen['old_overflow']    = 
p.get_css_property(html, "overflow");
-                       t.fullscreen['old_height']              = 
p.get_css_property(html, "height");
-                       t.fullscreen['old_width']               = 
p.get_css_property(html, "width");
-                       t.fullscreen['old_scrollTop']   = html.scrollTop;
-                       t.fullscreen['old_scrollLeft']  = html.scrollLeft;
-                       t.fullscreen['old_zIndex']              = 
p.get_css_property(frame, "z-index");
-                       if(t.isOpera){
-                               html.style.height       = "100%";
-                               html.style.width        = "100%";       
-                       }
-                       html.style.overflow     = "hidden";
-                       html.scrollTop          = 0;
-                       html.scrollLeft         = 0;
-                       
-                       frame.style.position    = "absolute";
-                       frame.style.width               = html.clientWidth+"px";
-                       frame.style.height              = 
html.clientHeight+"px";
-                       frame.style.display             = "block";
-                       frame.style.zIndex              = "999999";
-                       frame.style.top                 = "0px";
-                       frame.style.left                = "0px";
-                       
-                       // if the iframe was in a div with position absolute, 
the top and left are the one of the div, 
-                       // so I fix it by seeing at witch position the iframe 
start and correcting it
-                       frame.style.top                 = 
"-"+p.calculeOffsetTop(frame)+"px";
-                       frame.style.left                = 
"-"+p.calculeOffsetLeft(frame)+"px";
-                       
-               //      parent.editAreaLoader.execCommand(t.id, 
"update_size();");
-               //      var 
body=parent.document.getElementsByTagName("body")[0];
-               //      body.appendChild(frame);
-                       
-                       t.switchClassSticky(icon, 'editAreaButtonSelected', 
false);
-                       t.fullscreen['allow_resize']= t.resize_allowed;
-                       t.allow_resize(false);
-       
-                       //t.area_select(selStart, selEnd-selStart);
-                       
-               
-                       // opera can't manage to do a direct size update
-                       if(t.isFirefox){
-                               p.editAreaLoader.execCommand(t.id, 
"update_size();");
-                               t.area_select(selStart, selEnd-selStart);
-                               t.scroll_to_view();
-                               t.focus();
-                       }else{
-                               setTimeout("p.editAreaLoader.execCommand('"+ 
t.id +"', 'update_size();');editArea.focus();", 10);
-                       }       
-                       
-       
-               }
-               else if(to!=old)
-               {       // toogle off fullscreen
-                       frame.style.position="static";
-                       frame.style.zIndex= t.fullscreen['old_zIndex'];
-               
-                       if(t.isOpera)
-                       {
-                               html.style.height       = "auto"; 
-                               html.style.width        = "auto";
-                               html.style.overflow     = "auto";
-                       }
-                       else if(t.isIE && p!=top)
-                       {       // IE doesn't manage html overflow in frames 
like in normal page... 
-                               html.style.overflow     = "auto";
-                       }
-                       else
-                       {
-                               html.style.overflow     = 
t.fullscreen['old_overflow'];
-                       }
-                       html.scrollTop  = t.fullscreen['old_scrollTop'];
-                       html.scrollLeft = t.fullscreen['old_scrollLeft'];
-               
-                       p.editAreaLoader.hide(t.id);
-                       p.editAreaLoader.show(t.id);
-                       
-                       t.switchClassSticky(icon, 'editAreaButtonNormal', 
false);
-                       if(t.fullscreen['allow_resize'])
-                               t.allow_resize(t.fullscreen['allow_resize']);
-                       if(t.isFirefox){
-                               t.area_select(selStart, selEnd-selStart);
-                               setTimeout("editArea.scroll_to_view();", 10);
-                       }                       
-                       
-                       //p.editAreaLoader.remove_event(p.window, "resize", 
editArea.update_size);
-               }
-               
-       };
-       
-       EditArea.prototype.allow_resize= function(allow){
-               var resize= _$("resize_area");
-               if(allow){
-                       
-                       resize.style.visibility="visible";
-                       parent.editAreaLoader.add_event(resize, "mouseup", 
editArea.start_resize);
-               }else{
-                       resize.style.visibility="hidden";
-                       parent.editAreaLoader.remove_event(resize, "mouseup", 
editArea.start_resize);
-               }
-               this.resize_allowed= allow;
-       };
-       
-       
-       EditArea.prototype.change_syntax= function(new_syntax, is_waiting){
-       //      alert("cahnge to "+new_syntax);
-               // the syntax is the same
-               if(new_syntax==this.settings['syntax'])
-                       return true;
-               
-               // check that the syntax is one allowed
-               var founded= false;
-               for(var i=0; i<this.syntax_list.length; i++)
-               {
-                       if(this.syntax_list[i]==new_syntax)
-                               founded= true;
-               }
-               
-               if(founded==true)
-               {
-                       // the reg syntax file is not loaded
-                       if(!parent.editAreaLoader.load_syntax[new_syntax])
-                       {
-                               // load the syntax file and wait for file 
loading
-                               if(!is_waiting)
-                                       
parent.editAreaLoader.load_script(parent.editAreaLoader.baseURL + "reg_syntax/" 
+ new_syntax + ".js");
-                               setTimeout("editArea.change_syntax('"+ 
new_syntax +"', true);", 100);
-                               this.show_waiting_screen();
-                       }
-                       else
-                       {
-                               if(!this.allready_used_syntax[new_syntax])
-                               {       // the syntax has still not been used
-                                       // rebuild syntax definition for new 
languages
-                                       
parent.editAreaLoader.init_syntax_regexp();
-                                       // add style to the new list
-                                       
this.add_style(parent.editAreaLoader.syntax[new_syntax]["styles"]);
-                                       
this.allready_used_syntax[new_syntax]=true;
-                               }
-                               // be sure that the select option is correctly 
updated
-                               var sel= _$("syntax_selection");
-                               if(sel && sel.value!=new_syntax)
-                               {
-                                       for(var i=0; i<sel.length; i++){
-                                               if(sel.options[i].value && 
sel.options[i].value == new_syntax)
-                                                       
sel.options[i].selected=true;
-                                       }
-                               }
-                               
-                       /*      if(this.settings['syntax'].length==0)
-                               {
-                                       this.switchClassSticky(_$("highlight"), 
'editAreaButtonNormal', false);
-                                       
this.switchClassSticky(_$("reset_highlight"), 'editAreaButtonNormal', false);
-                                       this.change_highlight(true);
-                               }
-                               */
-                               this.settings['syntax']= new_syntax;
-                               this.resync_highlight(true);
-                               this.hide_waiting_screen();
-                               return true;
-                       }
-               }
-               return false;
-       };
-       
-       
-       // check if the file has changed
-       EditArea.prototype.set_editable= function(is_editable){
-               if(is_editable)
-               {
-                       document.body.className= "";
-                       this.textarea.readOnly= false;
-                       this.is_editable= true;
-               }
-               else
-               {
-                       document.body.className= "non_editable";
-                       this.textarea.readOnly= true;
-                       this.is_editable= false;
-               }
-               
-               if(editAreas[this.id]["displayed"]==true)
-                       this.update_size();
-       };
-       
-       /***** Wrap mode *****/
-       
-       // toggling function for set_wrap_mode
-       EditArea.prototype.toggle_word_wrap= function(){
-               this.set_word_wrap( !this.settings['word_wrap'] );
-       };
-       
-       
-       // open a new tab for the given file
-       EditArea.prototype.set_word_wrap= function(to){
-               var t=this, a= t.textarea;
-               
-               if( t.isOpera )
-               {
-                       this.settings['word_wrap']= false;
-                       t.switchClassSticky( _$("word_wrap"), 
'editAreaButtonDisabled', true );
-                       return false;
-               }
-               
-               if( to )
-               {
-                       wrap_mode = 'soft';
-                       this.container.className+= ' word_wrap';
-                       this.container.style.width="";
-                       this.content_highlight.style.width="";
-                       a.style.width="100%";
-                       if( t.isIE && t.isIE < 7 )      // IE 6 count 50 px too 
much
-                       {
-                               a.style.width   = ( a.offsetWidth-5 )+"px";
-                       }
-                       
-                       t.switchClassSticky( _$("word_wrap"), 
'editAreaButtonSelected', false );
-               }
-               else
-               {
-                       wrap_mode = 'off';
-                       this.container.className        = 
this.container.className.replace(/word_wrap/g, '');
-                       t.switchClassSticky( _$("word_wrap"), 
'editAreaButtonNormal', true );
-               }
-               this.textarea.previous_scrollWidth = '';
-               this.textarea.previous_scrollHeight = '';
-               
-               a.wrap= wrap_mode;
-               a.setAttribute('wrap', wrap_mode);
-               // only IE can change wrap mode on the fly without element 
reloading
-               if(!this.isIE)
-               {
-                       var start=a.selectionStart, end= a.selectionEnd;
-                       var parNod = a.parentNode, nxtSib = a.nextSibling;
-                       parNod.removeChild(a);
-                       parNod.insertBefore(a, nxtSib);
-                       this.area_select(start, end-start);
-               }
-               // reset some optimisation
-               this.settings['word_wrap']      = to;
-               this.focus();
-               this.update_size();
-               this.check_line_selection();
-       };      
-       /***** tabbed files managing functions *****/
-       
-       // open a new tab for the given file
-       EditArea.prototype.open_file= function(settings){
-               
-               if(settings['id']!="undefined")
-               {
-                       var id= settings['id'];
-                       // create a new file object with defautl values
-                       var new_file= {};
-                       new_file['id']                  = id;
-                       new_file['title']               = id;
-                       new_file['text']                = "";
-                       new_file['last_selection']      = "";           
-                       new_file['last_text_to_highlight']      = "";
-                       new_file['last_hightlighted_text']      = "";
-                       new_file['previous']    = [];
-                       new_file['next']                = [];
-                       new_file['last_undo']   = "";
-                       new_file['smooth_selection']    = 
this.settings['smooth_selection'];
-                       new_file['do_highlight']= 
this.settings['start_highlight'];
-                       new_file['syntax']              = 
this.settings['syntax'];
-                       new_file['scroll_top']  = 0;
-                       new_file['scroll_left'] = 0;
-                       new_file['selection_start']= 0;
-                       new_file['selection_end']= 0;
-                       new_file['edited']              = false;
-                       new_file['font_size']   = this.settings["font_size"];
-                       new_file['font_family'] = this.settings["font_family"];
-                       new_file['word_wrap']   = this.settings["word_wrap"];
-                       new_file['toolbar']             = {'links':{}, 
'selects': {}};
-                       new_file['compare_edited_text']= new_file['text'];
-                       
-                       
-                       this.files[id]= new_file;
-                       this.update_file(id, settings);
-                       this.files[id]['compare_edited_text']= 
this.files[id]['text'];
-                       
-                       
-                       var html_id= 'tab_file_'+encodeURIComponent(id);
-                       this.filesIdAssoc[html_id]= id;
-                       this.files[id]['html_id']= html_id;
-               
-                       if(!_$(this.files[id]['html_id']) && id!="")
-                       {
-                               // be sure the tab browsing area is displayed
-                               this.tab_browsing_area.style.display= "block";
-                               var elem= document.createElement('li');
-                               elem.id= this.files[id]['html_id'];
-                               var close= "<img src=\""+ 
parent.editAreaLoader.baseURL +"images/close.gif\" title=\""+ 
this.get_translation('close_tab', 'word') +"\" 
onclick=\"editArea.execCommand('close_file', editArea.filesIdAssoc['"+ html_id 
+"']);return false;\" class=\"hidden\" onmouseover=\"this.className=''\" 
onmouseout=\"this.className='hidden'\" />";
-                               elem.innerHTML= "<a 
onclick=\"javascript:editArea.execCommand('switch_to_file', 
editArea.filesIdAssoc['"+ html_id +"']);\" selec=\"none\"><b><span><strong 
class=\"edited\">*</strong>"+ this.files[id]['title'] + close 
+"</span></b></a>";
-                               _$('tab_browsing_list').appendChild(elem);
-                               var elem= document.createElement('text');
-                               this.update_size();
-                       }
-                       
-                       // open file callback (for plugin)
-                       if(id!="")
-                               this.execCommand('file_open', this.files[id]);
-                       
-                       this.switch_to_file(id, true);
-                       return true;
-               }
-               else
-                       return false;
-       };
-       
-       // close the given file
-       EditArea.prototype.close_file= function(id){
-               if(this.files[id])
-               {
-                       this.save_file(id);
-                       
-                       // close file callback
-                       if(this.execCommand('file_close', 
this.files[id])!==false)
-                       {
-                               // remove the tab in the toolbar
-                               var li= _$(this.files[id]['html_id']);
-                               li.parentNode.removeChild(li);
-                               // select a new file
-                               if(id== this.curr_file)
-                               {
-                                       var next_file= "";
-                                       var is_next= false;
-                                       for(var i in this.files)
-                                       {
-                                               if( is_next )
-                                               {
-                                                       next_file       = i;
-                                                       break;
-                                               }
-                                               else if( i == id )
-                                                       is_next         = true;
-                                               else
-                                                       next_file       = i;
-                                       }
-                                       // display the next file
-                                       this.switch_to_file(next_file);
-                               }
-                               // clear datas
-                               delete (this.files[id]);
-                               this.update_size();
-                       }       
-               }
-       };
-       
-       // backup current file datas
-       EditArea.prototype.save_file= function(id){
-               var t= this, save, a_links, a_selects, save_butt, img, i;
-               if(t.files[id])
-               {
-                       var save= t.files[id];
-                       save['last_selection']                  = 
t.last_selection;             
-                       save['last_text_to_highlight']  = 
t.last_text_to_highlight;
-                       save['last_hightlighted_text']  = 
t.last_hightlighted_text;
-                       save['previous']                                = 
t.previous;
-                       save['next']                                    = 
t.next;
-                       save['last_undo']                               = 
t.last_undo;
-                       save['smooth_selection']                = 
t.smooth_selection;
-                       save['do_highlight']                    = 
t.do_highlight;
-                       save['syntax']                                  = 
t.settings['syntax'];
-                       save['text']                                    = 
t.textarea.value;
-                       save['scroll_top']                              = 
t.result.scrollTop;
-                       save['scroll_left']                             = 
t.result.scrollLeft;
-                       save['selection_start']                 = 
t.last_selection["selectionStart"];
-                       save['selection_end']                   = 
t.last_selection["selectionEnd"];
-                       save['font_size']                               = 
t.settings["font_size"];
-                       save['font_family']                             = 
t.settings["font_family"];
-                       save['word_wrap']                               = 
t.settings["word_wrap"];
-                       save['toolbar']                                 = 
{'links':{}, 'selects': {}};
-                       
-                       // save toolbar buttons state for fileSpecific buttons
-                       a_links= _$("toolbar_1").getElementsByTagName("a");
-                       for( i=0; i<a_links.length; i++ )
-                       {
-                               if( a_links[i].getAttribute('fileSpecific') == 
'yes' )
-                               {
-                                       save_butt       = {};
-                                       img                     = 
a_links[i].getElementsByTagName('img')[0];
-                                       save_butt['classLock']          = 
img.classLock;
-                                       save_butt['className']          = 
img.className;
-                                       save_butt['oldClassName']       = 
img.oldClassName;
-                                       
-                                       
save['toolbar']['links'][a_links[i].id]= save_butt;
-                               }
-                       }
-                       
-                       // save toolbar select state for fileSpecific buttons
-                       a_selects= 
_$("toolbar_1").getElementsByTagName("select");
-                       for( i=0; i<a_selects.length; i++)
-                       {
-                               
if(a_selects[i].getAttribute('fileSpecific')=='yes')
-                               {
-                                       
save['toolbar']['selects'][a_selects[i].id]= a_selects[i].value;
-                               }
-                       }
-                               
-                       t.files[id]= save;
-                       
-                       return save;
-               }
-               
-               return false;
-       };
-       
-       // update file_datas
-       EditArea.prototype.update_file= function(id, new_values){
-               for(var i in new_values)
-               {
-                       this.files[id][i]= new_values[i];
-               }
-       };
-       
-       // display file datas
-       EditArea.prototype.display_file= function(id){
-               var t = this, a= t.textarea, new_file, a_lis, a_selects, 
a_links, a_options, i, j;
-               
-               // we're showing the empty file
-               if(id=='')
-               {
-                       a.readOnly= true;
-                       t.tab_browsing_area.style.display= "none";
-                       _$("no_file_selected").style.display= "block";
-                       t.result.className= "empty";
-                       // clear current datas
-                       if(!t.files[''])
-                       {
-                               t.open_file({id: ''});
-                       }
-               }
-               // we try to show a non existent file, so we left
-               else if( typeof( t.files[id] ) == 'undefined' )
-               {
-                       return false;
-               }
-               // display a normal file
-               else
-               {
-                       t.result.className= "";
-                       a.readOnly= !t.is_editable;
-                       _$("no_file_selected").style.display= "none";
-                       t.tab_browsing_area.style.display= "block";
-               }
-               
-               // ensure to have last state for undo/redo actions
-               t.check_redo(true);
-               t.check_undo(true);
-               t.curr_file= id;
-               
-               // replace selected tab file
-               a_lis= t.tab_browsing_area.getElementsByTagName('li');
-               for( i=0; i<a_lis.length; i++)
-               {
-                       if(a_lis[i].id == t.files[id]['html_id'])
-                               a_lis[i].className='selected';
-                       else
-                               a_lis[i].className='';
-               }
-               
-               // replace next files datas
-               new_file= t.files[id];
-       
-               // restore text content
-               a.value= new_file['text'];
-               
-               // restore font-size
-               t.set_font(new_file['font_family'], new_file['font_size']);
-               
-               // restore selection and scroll
-               t.area_select(new_file['last_selection']['selection_start'], 
new_file['last_selection']['selection_end'] - 
new_file['last_selection']['selection_start']);
-               t.manage_size(true);
-               t.result.scrollTop= new_file['scroll_top'];
-               t.result.scrollLeft= new_file['scroll_left'];
-               
-               // restore undo, redo
-               t.previous=     new_file['previous'];
-               t.next= new_file['next'];
-               t.last_undo=    new_file['last_undo'];
-               t.check_redo(true);
-               t.check_undo(true);
-               
-               // restore highlight
-               t.execCommand("change_highlight", new_file['do_highlight']);
-               t.execCommand("change_syntax", new_file['syntax']);
-               
-               // smooth mode
-               t.execCommand("change_smooth_selection_mode", 
new_file['smooth_selection']);
-               
-               // word_wrap
-               t.execCommand("set_word_wrap", new_file['word_wrap']);
-                       
-               // restore links state in toolbar
-               a_links= new_file['toolbar']['links'];
-               for( i in a_links)
-               {
-                       if( img =  _$(i).getElementsByTagName('img')[0] )
-                       {
-                               img.classLock   = a_links[i]['classLock'];
-                               img.className   = a_links[i]['className'];
-                               img.oldClassName= a_links[i]['oldClassName'];
-                       }
-               }
-               
-               // restore select state in toolbar
-               a_selects = new_file['toolbar']['selects'];
-               for( i in a_selects)
-               {
-                       a_options       = _$(i).options;
-                       for( j=0; j<a_options.length; j++)
-                       {
-                               if( a_options[j].value == a_selects[i] )
-                                       _$(i).options[j].selected=true;
-                       }
-               }
-       
-       };
-
-       // change tab for displaying a new one
-       EditArea.prototype.switch_to_file= function(file_to_show, 
force_refresh){
-               if(file_to_show!=this.curr_file || force_refresh)
-               {
-                       this.save_file(this.curr_file);
-                       if(this.curr_file!='')
-                               this.execCommand('file_switch_off', 
this.files[this.curr_file]);
-                       this.display_file(file_to_show);
-                       if(file_to_show!='')
-                               this.execCommand('file_switch_on', 
this.files[file_to_show]);
-               }
-       };
-
-       // get all infos for the given file
-       EditArea.prototype.get_file= function(id){
-               if(id==this.curr_file)
-                       this.save_file(id);
-               return this.files[id];
-       };
-       
-       // get all available files infos
-       EditArea.prototype.get_all_files= function(){
-               tmp_files= this.files;
-               this.save_file(this.curr_file);
-               if(tmp_files[''])
-                       delete(this.files['']);
-               return tmp_files;
-       };
-       
-       
-       // check if the file has changed
-       EditArea.prototype.check_file_changes= function(){
-       
-               var id= this.curr_file;
-               if(this.files[id] && 
this.files[id]['compare_edited_text']!=undefined)
-               {
-                       
if(this.files[id]['compare_edited_text'].length==this.textarea.value.length && 
this.files[id]['compare_edited_text']==this.textarea.value)
-                       {
-                               if(this.files[id]['edited']!= false)
-                                       this.set_file_edited_mode(id, false);
-                       }
-                       else
-                       {
-                               if(this.files[id]['edited']!= true)
-                                       this.set_file_edited_mode(id, true);
-                       }
-               }
-       };
-       
-       // set if the file is edited or not
-       EditArea.prototype.set_file_edited_mode= function(id, to){
-               // change CSS for edited tab
-               if(this.files[id] && _$(this.files[id]['html_id']))
-               {
-                       var link= 
_$(this.files[id]['html_id']).getElementsByTagName('a')[0];
-                       if(to==true)
-                       {
-                               link.className= 'edited';
-                       }
-                       else
-                       {
-                               link.className= '';
-                               if(id==this.curr_file)
-                                       text= this.textarea.value;
-                               else
-                                       text= this.files[id]['text'];
-                               this.files[id]['compare_edited_text']= text;
-                       }
-                               
-                       this.files[id]['edited']= to;
-               }
-       };
-
-       EditArea.prototype.set_show_line_colors = function(new_value){
-               this.show_line_colors = new_value;
-               
-               if( new_value )
-                       this.selection_field.className  += ' show_colors';
-               else
-                       this.selection_field.className  = 
this.selection_field.className.replace( / show_colors/g, '' );
-       };
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/ee5e9639/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/edit_area_loader.js
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/edit_area_loader.js
 
b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/edit_area_loader.js
deleted file mode 100644
index 34a17dd..0000000
--- 
a/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/edit_area_loader.js
+++ /dev/null
@@ -1,1080 +0,0 @@
-/******
- *
- *     EditArea 
- *     Developped by Christophe Dolivet
- *     Released under LGPL, Apache and BSD licenses (use the one you want)
- *
-******/
-
-function EditAreaLoader(){
-       var t=this;
-       t.version= "0.8.1.1";
-       date= new Date();
-       t.start_time=date.getTime();
-       t.win= "loading";       // window loading state
-       t.error= false; // to know if load is interrrupt
-       t.baseURL="";
-       //t.suffix="";
-       t.template="";
-       t.lang= {};     // array of loaded speech language
-       t.load_syntax= {};      // array of loaded syntax language for 
highlight mode
-       t.syntax= {};   // array of initilized syntax language for highlight 
mode
-       t.loadedFiles= [];
-       t.waiting_loading= {};  // files that must be loaded in order to allow 
the script to really start
-       // scripts that must be loaded in the iframe
-       t.scripts_to_load= ["elements_functions", "resize_area", "reg_syntax"];
-       t.sub_scripts_to_load= ["edit_area", "manage_area" 
,"edit_area_functions", "keyboard", "search_replace", "highlight", "regexp"];
-       
-       t.resize= []; // contain resizing datas
-       t.hidden= {};   // store datas of the hidden textareas
-       
-       t.default_settings= {
-               //id: "src"     // id of the textarea to transform
-               debug: false
-               ,smooth_selection: true
-               ,font_size: "10"                // not for IE
-               ,font_family: "monospace"       // can be "verdana,monospace". 
Allow non monospace font but Firefox get smaller tabulation with non monospace 
fonts. IE doesn't change the tabulation width and Opera doesn't take this 
option into account... 
-               ,start_highlight: false // if start with highlight
-               ,toolbar: "search, go_to_line, fullscreen, |, undo, redo, |, 
select_font,|, change_smooth_selection, highlight, reset_highlight, word_wrap, 
|, help"
-               ,begin_toolbar: ""              //  "new_document, save, load, 
|"
-               ,end_toolbar: ""                // or end_toolbar
-               ,is_multi_files: false          // enable the multi file mode 
(the textarea content is ignored)
-               ,allow_resize: "both"   // possible values: "no", "both", "x", 
"y"
-               ,show_line_colors: false        // if the highlight is disabled 
for the line currently beeing edited (if enabled => heavy CPU use)
-               ,min_width: 400
-               ,min_height: 125
-               ,replace_tab_by_spaces: false
-               ,allow_toggle: true             // true or false
-               ,language: "en"
-               ,syntax: ""
-               ,syntax_selection_allow: 
"basic,brainfuck,c,coldfusion,cpp,css,html,java,js,pas,perl,php,python,ruby,robotstxt,sql,tsql,vb,xml"
-               ,display: "onload"              // onload or later
-               ,max_undo: 30
-               ,browsers: "known"      // all or known
-               ,plugins: "" // comma separated plugin list
-               ,gecko_spellcheck: false        // enable/disable by default 
the gecko_spellcheck
-               ,fullscreen: false
-               ,is_editable: true
-               ,cursor_position: "begin"
-               ,word_wrap: false               // define if the text is 
wrapped of not in the textarea
-               ,autocompletion: false  // NOT IMPLEMENTED                      
-               ,load_callback: ""              // click on load button 
(function name)
-               ,save_callback: ""              // click on save button 
(function name)
-               ,change_callback: ""    // textarea onchange trigger (function 
name)
-               ,submit_callback: ""    // form submited (function name)
-               ,EA_init_callback: ""   // EditArea initiliazed (function name)
-               ,EA_delete_callback: "" // EditArea deleted (function name)
-               ,EA_load_callback: ""   // EditArea fully loaded and displayed 
(function name)
-               ,EA_unload_callback: "" // EditArea delete while being 
displayed (function name)
-               ,EA_toggle_on_callback: ""      // EditArea toggled on 
(function name)
-               ,EA_toggle_off_callback: ""     // EditArea toggled off 
(function name)
-               ,EA_file_switch_on_callback: "" // a new tab is selected 
(called for the newly selected file)
-               ,EA_file_switch_off_callback: ""        // a new tab is 
selected (called for the previously selected file)
-               ,EA_file_close_callback: ""             // close a tab
-       };
-       
-       t.advanced_buttons = [
-                       // id, button img, command (it will try to find the 
translation of "id"), is_file_specific
-                       ['new_document', 'newdocument.gif', 'new_document', 
false],
-                       ['search', 'search.gif', 'show_search', false],
-                       ['go_to_line', 'go_to_line.gif', 'go_to_line', false],
-                       ['undo', 'undo.gif', 'undo', true],
-                       ['redo', 'redo.gif', 'redo', true],
-                       ['change_smooth_selection', 'smooth_selection.gif', 
'change_smooth_selection_mode', true],
-                       ['reset_highlight', 'reset_highlight.gif', 
'resync_highlight', true],
-                       ['highlight', 'highlight.gif','change_highlight', true],
-                       ['help', 'help.gif', 'show_help', false],
-                       ['save', 'save.gif', 'save', false],
-                       ['load', 'load.gif', 'load', false],
-                       ['fullscreen', 'fullscreen.gif', 'toggle_full_screen', 
false],
-                       ['word_wrap', 'word_wrap.gif', 'toggle_word_wrap', 
true],
-                       ['autocompletion', 'autocompletion.gif', 
'toggle_autocompletion', true]
-               ];
-                       
-       // navigator identification
-       t.set_browser_infos(t);
-
-       if(t.isIE>=6 || t.isGecko || ( t.isWebKit && !t.isSafari<3 ) || 
t.isOpera>=9  || t.isCamino )
-               t.isValidBrowser=true;
-       else
-               t.isValidBrowser=false;
-
-       t.set_base_url();               
-       
-       for(var i=0; i<t.scripts_to_load.length; i++){
-               setTimeout("editAreaLoader.load_script('"+t.baseURL + 
t.scripts_to_load[i]+ ".js');", 1);       // let the time to Object 
editAreaLoader to be created before loading additionnal scripts
-               t.waiting_loading[t.scripts_to_load[i]+ ".js"]= false;
-       }
-       t.add_event(window, "load", EditAreaLoader.prototype.window_loaded);
-};
-       
-EditAreaLoader.prototype ={
-       has_error : function(){
-               this.error= true;
-               // set to empty all EditAreaLoader functions
-               for(var i in EditAreaLoader.prototype){
-                       EditAreaLoader.prototype[i]=function(){};               
-               }
-       },
-       
-       // add browser informations to the object passed in parameter
-       set_browser_infos : function(o){
-               ua= navigator.userAgent;
-               
-               // general detection
-               o.isWebKit      = /WebKit/.test(ua);
-               o.isGecko       = !o.isWebKit && /Gecko/.test(ua);
-               o.isMac         = /Mac/.test(ua);
-               
-               o.isIE  = (navigator.appName == "Microsoft Internet Explorer");
-               if(o.isIE){
-                       o.isIE = ua.replace(/^.*?MSIE\s+([0-9\.]+).*$/, "$1");
-                       if(o.isIE<6)
-                               o.has_error();
-               }
-
-               if(o.isOpera = (ua.indexOf('Opera') != -1)){    
-                       o.isOpera= ua.replace(/^.*?Opera.*?([0-9\.]+).*$/i, 
"$1");
-                       if(o.isOpera<9)
-                               o.has_error();
-                       o.isIE=false;                   
-               }
-
-               if(o.isFirefox =(ua.indexOf('Firefox') != -1))
-                       o.isFirefox = 
ua.replace(/^.*?Firefox.*?([0-9\.]+).*$/i, "$1");
-               // Firefox clones       
-               if( ua.indexOf('Iceweasel') != -1 )
-                       o.isFirefox     = 
ua.replace(/^.*?Iceweasel.*?([0-9\.]+).*$/i, "$1");
-               if( ua.indexOf('GranParadiso') != -1 )
-                       o.isFirefox     = 
ua.replace(/^.*?GranParadiso.*?([0-9\.]+).*$/i, "$1");
-               if( ua.indexOf('BonEcho') != -1 )
-                       o.isFirefox     = 
ua.replace(/^.*?BonEcho.*?([0-9\.]+).*$/i, "$1");
-               if( ua.indexOf('SeaMonkey') != -1)
-                       o.isFirefox = 
(ua.replace(/^.*?SeaMonkey.*?([0-9\.]+).*$/i, "$1") ) + 1;
-                       
-               if(o.isCamino =(ua.indexOf('Camino') != -1))
-                       o.isCamino = ua.replace(/^.*?Camino.*?([0-9\.]+).*$/i, 
"$1");
-                       
-               if(o.isSafari =(ua.indexOf('Safari') != -1))
-                       o.isSafari= 
ua.replace(/^.*?Version\/([0-9]+\.[0-9]+).*$/i, "$1");
-       
-               if(o.isChrome =(ua.indexOf('Chrome') != -1)) {
-                       o.isChrome = ua.replace(/^.*?Chrome.*?([0-9\.]+).*$/i, 
"$1");
-                       o.isSafari      = false;
-               }
-               
-       },
-       
-       window_loaded : function(){
-               editAreaLoader.win="loaded";
-               
-               // add events on forms
-               if (document.forms) {
-                       for (var i=0; i<document.forms.length; i++) {
-                               var form = document.forms[i];
-                               form.edit_area_replaced_submit=null;
-                               try {
-                                       
-                                       form.edit_area_replaced_submit = 
form.onsubmit;
-                                       form.onsubmit="";
-                               } catch (e) {// Do nothing
-                               }
-                               editAreaLoader.add_event(form, "submit", 
EditAreaLoader.prototype.submit);
-                               editAreaLoader.add_event(form, "reset", 
EditAreaLoader.prototype.reset);
-                       }
-               }
-               editAreaLoader.add_event(window, "unload", function(){for(var i 
in editAreas){editAreaLoader.delete_instance(i);}});    // ini callback
-       },
-       
-       // init the checkup of the selection of the IE textarea
-       init_ie_textarea : function(id){
-               var a=document.getElementById(id);
-               try{
-                       if(a && typeof(a.focused)=="undefined"){
-                               a.focus();
-                               a.focused=true;
-                               a.selectionStart= a.selectionEnd= 0;            
        
-                               get_IE_selection(a);
-                               editAreaLoader.add_event(a, "focus", 
IE_textarea_focus);
-                               editAreaLoader.add_event(a, "blur", 
IE_textarea_blur);
-                               
-                       }
-               }catch(ex){}
-       },
-               
-       init : function(settings){
-               var t=this,s=settings,i;
-               
-               if(!s["id"])
-                       t.has_error();
-               if(t.error)
-                       return;
-               // if an instance of the editor already exists for this 
textarea => delete the previous one
-               if(editAreas[s["id"]])
-                       t.delete_instance(s["id"]);
-       
-               // init settings
-               for(i in t.default_settings){
-                       if(typeof(s[i])=="undefined")
-                               s[i]=t.default_settings[i];
-               }
-               
-               if(s["browsers"]=="known" && t.isValidBrowser==false){
-                       return;
-               }
-               
-               if(s["begin_toolbar"].length>0)
-                       s["toolbar"]= s["begin_toolbar"] +","+ s["toolbar"];
-               if(s["end_toolbar"].length>0)
-                       s["toolbar"]= s["toolbar"] +","+ s["end_toolbar"];
-               s["tab_toolbar"]= s["toolbar"].replace(/ /g,"").split(",");
-               
-               s["plugins"]= s["plugins"].replace(/ /g,"").split(",");
-               for(i=0; i<s["plugins"].length; i++){
-                       if(s["plugins"][i].length==0)
-                               s["plugins"].splice(i,1);
-               }
-       //      alert(settings["plugins"].length+": "+ 
settings["plugins"].join(","));
-               t.get_template();
-               t.load_script(t.baseURL + "langs/"+ s["language"] + ".js");
-               
-               if(s["syntax"].length>0){
-                       s["syntax"]=s["syntax"].toLowerCase();
-                       t.load_script(t.baseURL + "reg_syntax/"+ s["syntax"] + 
".js");
-               }
-               //alert(this.template);
-               
-               editAreas[s["id"]]= {"settings": s};
-               editAreas[s["id"]]["displayed"]=false;
-               editAreas[s["id"]]["hidden"]=false;
-               
-               //if(settings["display"]=="onload")
-               t.start(s["id"]);
-       },
-       
-       // delete an instance of an EditArea
-       delete_instance : function(id){
-               var d=document,fs=window.frames,span,iframe;
-               editAreaLoader.execCommand(id, "EA_delete");
-               if(fs["frame_"+id] && fs["frame_"+id].editArea)
-               {
-                       if(editAreas[id]["displayed"])
-                               editAreaLoader.toggle(id, "off");
-                       fs["frame_"+id].editArea.execCommand("EA_unload");
-               }
-
-               // remove toggle infos and debug textarea
-               span= d.getElementById("EditAreaArroundInfos_"+id);
-               if(span)
-                       span.parentNode.removeChild(span);
-
-               // remove the iframe
-               iframe= d.getElementById("frame_"+id);
-               if(iframe){
-                       iframe.parentNode.removeChild(iframe);
-                       //delete iframe;
-                       try {
-                               delete fs["frame_"+id];
-                       } catch (e) {// Do nothing
-                       }
-               }       
-
-               delete editAreas[id];
-       },
-
-       
-       start : function(id){
-               var 
t=this,d=document,f,span,father,next,html='',html_toolbar_content='',template,content,i;
-               
-               // check that the window is loaded
-               if(t.win!="loaded"){
-                       setTimeout("editAreaLoader.start('"+id+"');", 50);
-                       return;
-               }
-               
-               // check that all needed scripts are loaded
-               for( i in t.waiting_loading){
-                       if(t.waiting_loading[i]!="loaded" && 
typeof(t.waiting_loading[i])!="function"){
-                               setTimeout("editAreaLoader.start('"+id+"');", 
50);
-                               return;
-                       }
-               }
-               
-               // wait until language and syntax files are loaded
-               if(!t.lang[editAreas[id]["settings"]["language"]] || 
(editAreas[id]["settings"]["syntax"].length>0 && 
!t.load_syntax[editAreas[id]["settings"]["syntax"]]) ){
-                       setTimeout("editAreaLoader.start('"+id+"');", 50);
-                       return;
-               }
-               // init the regexp for syntax highlight
-               if(editAreas[id]["settings"]["syntax"].length>0)
-                       t.init_syntax_regexp();
-               
-                       
-               // display toggle option and debug area
-               if(!d.getElementById("EditAreaArroundInfos_"+id) && 
(editAreas[id]["settings"]["debug"] || 
editAreas[id]["settings"]["allow_toggle"]))
-               {
-                       span= d.createElement("span");
-                       span.id= "EditAreaArroundInfos_"+id;
-                       if(editAreas[id]["settings"]["allow_toggle"]){
-                               
checked=(editAreas[id]["settings"]["display"]=="onload")?"checked='checked'":"";
-                               html+="<div id='edit_area_toggle_"+i+"'>";
-                               html+="<input id='edit_area_toggle_checkbox_"+ 
id +"' class='toggle_"+ id +"' type='checkbox' 
onclick='editAreaLoader.toggle(\""+ id +"\");' accesskey='e' "+checked+" />";
-                               html+="<label for='edit_area_toggle_checkbox_"+ 
id +"'>{$toggle}</label></div>";        
-                       }
-                       if(editAreas[id]["settings"]["debug"])
-                               html+="<textarea id='edit_area_debug_"+ id +"' 
spellcheck='off' style='z-index: 20; width: 100%; height: 120px;overflow: auto; 
border: solid black 1px;'></textarea><br />";                            
-                       html= t.translate(html, 
editAreas[id]["settings"]["language"]);                         
-                       span.innerHTML= html;                           
-                       father= d.getElementById(id).parentNode;
-                       next= d.getElementById(id).nextSibling;
-                       if(next==null)
-                               father.appendChild(span);
-                       else
-                               father.insertBefore(span, next);
-               }
-               
-               if(!editAreas[id]["initialized"])
-               {
-                       t.execCommand(id, "EA_init");   // ini callback
-                       if(editAreas[id]["settings"]["display"]=="later"){
-                               editAreas[id]["initialized"]= true;
-                               return;
-                       }
-               }
-               
-               if(t.isIE){     // launch IE selection checkup
-                       t.init_ie_textarea(id);
-               }
-                               
-               // get toolbar content
-               area=editAreas[id];
-               
-               for(i=0; i<area["settings"]["tab_toolbar"].length; i++){
-               //      alert(this.tab_toolbar[i]+"\n"+ 
this.get_control_html(this.tab_toolbar[i]));
-                       html_toolbar_content+= 
t.get_control_html(area["settings"]["tab_toolbar"][i], 
area["settings"]["language"]);
-               }
-               // translate toolbar text here for chrome 2
-               html_toolbar_content = t.translate(html_toolbar_content, 
area["settings"]["language"], "template"); 
-               
-               
-               // create javascript import rules for the iframe if the 
javascript has not been already loaded by the compressor
-               if(!t.iframe_script){
-                       t.iframe_script="";
-                       for(i=0; i<t.sub_scripts_to_load.length; i++)
-                               t.iframe_script+='<script language="javascript" 
type="text/javascript" src="'+ t.baseURL + t.sub_scripts_to_load[i] 
+'.js"></script>';
-               }
-               
-               // add plugins scripts if not already loaded by the compressor 
(but need to load language in all the case)
-               for(i=0; i<area["settings"]["plugins"].length; i++){
-                       
//if(typeof(area["settings"]["plugins"][i])=="function") continue;
-                       if(!t.all_plugins_loaded)
-                               t.iframe_script+='<script language="javascript" 
type="text/javascript" src="'+ t.baseURL + 'plugins/' + 
area["settings"]["plugins"][i] + '/' + area["settings"]["plugins"][i] 
+'.js"></script>';
-                       t.iframe_script+='<script language="javascript" 
type="text/javascript" src="'+ t.baseURL + 'plugins/' + 
area["settings"]["plugins"][i] + '/langs/' + area["settings"]["language"] 
+'.js"></script>';
-               }
-       
-               
-               // create css link for the iframe if the whole css text has not 
been already loaded by the compressor
-               if(!t.iframe_css){
-                       t.iframe_css="<link href='"+ t.baseURL +"edit_area.css' 
rel='stylesheet' type='text/css' />";
-               }
-               
-               
-               // create template
-               template= t.template.replace(/\[__BASEURL__\]/g, t.baseURL);
-               template= 
template.replace("[__TOOLBAR__]",html_toolbar_content);
-                       
-               
-               // fill template with good language sentences
-               template= t.translate(template, area["settings"]["language"], 
"template");
-               
-               // add css_code
-               template= template.replace("[__CSSRULES__]", t.iframe_css);     
                        
-               // add js_code
-               template= template.replace("[__JSCODE__]", t.iframe_script);
-               
-               // add version_code
-               template= template.replace("[__EA_VERSION__]", t.version);
-               //template=template.replace(/\{\$([^\}]+)\}/gm, 
this.traduc_template);
-               
-               //editAreas[area["settings"]["id"]]["template"]= template;
-               
-               area.textarea=d.getElementById(area["settings"]["id"]);
-               editAreas[area["settings"]["id"]]["textarea"]=area.textarea;
-       
-               // if removing previous instances from DOM before (fix from 
Marcin)
-               
if(typeof(window.frames["frame_"+area["settings"]["id"]])!='undefined') 
-                       delete window.frames["frame_"+area["settings"]["id"]];
-               
-               // insert template in the document after the textarea
-               father= area.textarea.parentNode;
-       /*      var container= document.createElement("div");
-               container.id= 
"EditArea_frame_container_"+area["settings"]["id"];
-       */      
-               content= d.createElement("iframe");
-               content.name= "frame_"+area["settings"]["id"];
-               content.id= "frame_"+area["settings"]["id"];
-               content.style.borderWidth= "0px";
-               setAttribute(content, "frameBorder", "0"); // IE
-               content.style.overflow="hidden";
-               content.style.display="none";
-
-               
-               next= area.textarea.nextSibling;
-               if(next==null)
-                       father.appendChild(content);
-               else
-                       father.insertBefore(content, next) ;            
-               f=window.frames["frame_"+area["settings"]["id"]];
-               f.document.open();
-               f.editAreas=editAreas;
-               f.area_id= area["settings"]["id"];      
-               f.document.area_id= area["settings"]["id"];     
-               f.document.write(template);
-               f.document.close();
-
-       //      frame.editAreaLoader=this;
-               //editAreas[area["settings"]["id"]]["displayed"]=true;
-               
-       },
-       
-       toggle : function(id, toggle_to){
-
-       /*      if((editAreas[id]["displayed"]==true  && toggle_to!="on") || 
toggle_to=="off"){
-                       this.toggle_off(id);
-               }else if((editAreas[id]["displayed"]==false  && 
toggle_to!="off") || toggle_to=="on"){
-                       this.toggle_on(id);
-               }*/
-               if(!toggle_to)
-                       toggle_to= 
(editAreas[id]["displayed"]==true)?"off":"on";
-               if(editAreas[id]["displayed"]==true  && toggle_to=="off"){
-                       this.toggle_off(id);
-               }else if(editAreas[id]["displayed"]==false  && toggle_to=="on"){
-                       this.toggle_on(id);
-               }
-       
-               return false;
-       },
-       
-       // static function
-       toggle_off : function(id){
-               var 
fs=window.frames,f,t,parNod,nxtSib,selStart,selEnd,scrollTop,scrollLeft;
-               if(fs["frame_"+id])
-               {       
-                       f       = fs["frame_"+id];
-                       t       = editAreas[id]["textarea"];
-                       if(f.editArea.fullscreen['isFull'])
-                               f.editArea.toggle_full_screen(false);
-                       editAreas[id]["displayed"]=false;
-                       
-                       // set wrap to off to keep same display mode (some 
browser get problem with this, so it need more complex operation             
-                       t.wrap = "off"; // for IE
-                       setAttribute(t, "wrap", "off"); // for Firefox  
-                       parNod = t.parentNode;
-                       nxtSib = t.nextSibling;
-                       parNod.removeChild(t); 
-                       parNod.insertBefore(t, nxtSib);
-                       
-                       // restore values
-                       t.value= f.editArea.textarea.value;
-                       selStart        = 
f.editArea.last_selection["selectionStart"];
-                       selEnd          = 
f.editArea.last_selection["selectionEnd"];
-                       scrollTop       = 
f.document.getElementById("result").scrollTop;
-                       scrollLeft      = 
f.document.getElementById("result").scrollLeft;
-                       
-                       
-                       
document.getElementById("frame_"+id).style.display='none';
-               
-                       t.style.display="inline";
-
-                       try{    // IE will give an error when trying to focus 
an invisible or disabled textarea
-                               t.focus();
-                       } catch(e){};
-                       if(this.isIE){
-                               t.selectionStart= selStart;
-                               t.selectionEnd  = selEnd;
-                               t.focused               = true;
-                               set_IE_selection(t);
-                       }else{
-                               if(this.isOpera && this.isOpera < 9.6 ){        
// Opera bug when moving selection start and selection end
-                                       t.setSelectionRange(0, 0);
-                               }
-                               try{
-                                       t.setSelectionRange(selStart, selEnd);
-                               } catch(e) {};
-                       }
-                       t.scrollTop= scrollTop;
-                       t.scrollLeft= scrollLeft;
-                       f.editArea.execCommand("toggle_off");
-
-               }
-       },      
-       
-       // static function
-       toggle_on : function(id){
-               var 
fs=window.frames,f,t,selStart=0,selEnd=0,scrollTop=0,scrollLeft=0,curPos,elem;
-                       
-               if(fs["frame_"+id])
-               {
-                       f       = fs["frame_"+id];
-                       t       = editAreas[id]["textarea"];
-                       area= f.editArea;
-                       area.textarea.value= t.value;
-                       
-                       // store display values;
-                       curPos  = editAreas[id]["settings"]["cursor_position"];
-
-                       if(t.use_last==true)
-                       {
-                               selStart        = t.last_selectionStart;
-                               selEnd          = t.last_selectionEnd;
-                               scrollTop       = t.last_scrollTop;
-                               scrollLeft      = t.last_scrollLeft;
-                               t.use_last=false;
-                       }
-                       else if( curPos == "auto" )
-                       {
-                               try{
-                                       selStart        = t.selectionStart;
-                                       selEnd          = t.selectionEnd;
-                                       scrollTop       = t.scrollTop;
-                                       scrollLeft      = t.scrollLeft;
-                                       //alert(scrollTop);
-                               }catch(ex){}
-                       }
-                       
-                       // set to good size
-                       this.set_editarea_size_from_textarea(id, 
document.getElementById("frame_"+id));
-                       t.style.display="none";                 
-                       
document.getElementById("frame_"+id).style.display="inline";
-                       area.execCommand("focus"); // without this focus opera 
doesn't manage well the iframe body height
-                       
-                       
-                       // restore display values
-                       editAreas[id]["displayed"]=true;
-                       area.execCommand("update_size");
-                       
-                       f.document.getElementById("result").scrollTop= 
scrollTop;
-                       f.document.getElementById("result").scrollLeft= 
scrollLeft;
-                       area.area_select(selStart, selEnd-selStart);
-                       area.execCommand("toggle_on");
-
-                       
-               }
-               else
-               {
-               /*      if(this.isIE)
-                               get_IE_selection(document.getElementById(id));  
*/      
-                       elem= document.getElementById(id);      
-                       elem.last_selectionStart= elem.selectionStart;
-                       elem.last_selectionEnd= elem.selectionEnd;
-                       elem.last_scrollTop= elem.scrollTop;
-                       elem.last_scrollLeft= elem.scrollLeft;
-                       elem.use_last=true;
-                       editAreaLoader.start(id);
-               }
-       },      
-       
-       set_editarea_size_from_textarea : function(id, frame){  
-               var elem,width,height;
-               elem    = document.getElementById(id);
-               
-               width   = Math.max(editAreas[id]["settings"]["min_width"], 
elem.offsetWidth)+"px";
-               height  = Math.max(editAreas[id]["settings"]["min_height"], 
elem.offsetHeight)+"px";
-               if(elem.style.width.indexOf("%")!=-1)
-                       width   = elem.style.width;
-               if(elem.style.height.indexOf("%")!=-1)
-                       height  = elem.style.height;
-               //alert("h: "+height+" w: "+width);
-       
-               frame.style.width= width;
-               frame.style.height= height;
-       },
-               
-       set_base_url : function(){
-               var t=this,elems,i,docBasePath;
-
-               if( !this.baseURL ){
-                       elems = document.getElementsByTagName('script');
-       
-                       for( i=0; i<elems.length; i++ ){
-                               if (elems[i].src && 
elems[i].src.match(/edit_area_[^\\\/]*$/i) ) {
-                                       var src = elems[i].src;
-                                       src = src.substring(0, 
src.lastIndexOf('/'));
-                                       this.baseURL = src;
-                                       this.file_name= 
elems[i].src.substr(elems[i].src.lastIndexOf("/")+1);
-                                       break;
-                               }
-                       }
-               }
-               
-               docBasePath     = document.location.href;
-               if (docBasePath.indexOf('?') != -1)
-                       docBasePath     = docBasePath.substring(0, 
docBasePath.indexOf('?'));
-               docBasePath     = docBasePath.substring(0, 
docBasePath.lastIndexOf('/'));
-       
-               // If not HTTP absolute
-               if (t.baseURL.indexOf('://') == -1 && t.baseURL.charAt(0) != 
'/') {
-                       // If site absolute
-                       t.baseURL = docBasePath + "/" + t.baseURL;
-               }
-               t.baseURL       +="/";  
-       },
-       
-       get_button_html : function(id, img, exec, isFileSpecific, baseURL) {
-               var cmd,html;
-               if(!baseURL)
-                       baseURL= this.baseURL;
-               cmd     = 'editArea.execCommand(\'' + exec + '\')';
-               html    = '<a id="a_'+ id +'" href="javascript:' + cmd + '" 
onclick="' + cmd + ';return false;" onmousedown="return false;" target="_self" 
fileSpecific="'+ (isFileSpecific?'yes':'no') +'">';
-               html    += '<img id="' + id + '" src="'+ baseURL +'images/' + 
img + '" title="{$' + id + '}" width="20" height="20" 
class="editAreaButtonNormal" 
onmouseover="editArea.switchClass(this,\'editAreaButtonOver\');" 
onmouseout="editArea.restoreClass(this);" 
onmousedown="editArea.restoreAndSwitchClass(this,\'editAreaButtonDown\');" 
/></a>';
-               return html;
-       },
-
-       get_control_html : function(button_name, lang) {                
-               var t=this,i,but,html,si;
-               for (i=0; i<t.advanced_buttons.length; i++)
-               {
-                       but = t.advanced_buttons[i];                    
-                       if (but[0] == button_name)
-                       {
-                               return t.get_button_html(but[0], but[1], 
but[2], but[3]);
-                       }       
-               }               
-                               
-               switch (button_name){
-                       case "*":
-                       case "return":
-                               return "<br />";
-                       case "|":
-                       case "separator":
-                               return '<img src="'+ t.baseURL 
+'images/spacer.gif" width="1" height="15" class="editAreaSeparatorLine">';
-                       case "select_font":
-                               html= "<select id='area_font_size' 
onchange='javascript:editArea.execCommand(\"change_font_size\")' 
fileSpecific='yes'>";
-                               html+="<option 
value='-1'>{$font_size}</option>";
-                               si=[8,9,10,11,12,14];
-                               for( i=0;i<si.length;i++){
-                                       html+="<option 
value='"+si[i]+"'>"+si[i]+" pt</option>";
-                               }
-                               html+="</select>";
-                               return html;
-                       case "syntax_selection":
-                               html= "<select id='syntax_selection' 
onchange='javascript:editArea.execCommand(\"change_syntax\", this.value)' 
fileSpecific='yes'>";
-                               html+="<option 
value='-1'>{$syntax_selection}</option>";
-                               html+="</select>";
-                               return html;
-               }
-               
-               return "<span 
id='tmp_tool_"+button_name+"'>["+button_name+"]</span>";          
-       },
-       
-       
-       get_template : function(){
-               if(this.template=="")
-               {
-                       var xhr_object = null; 
-                       if(window.XMLHttpRequest) // Firefox 
-                               xhr_object = new XMLHttpRequest(); 
-                       else if(window.ActiveXObject) // Internet Explorer 
-                               xhr_object = new 
ActiveXObject("Microsoft.XMLHTTP"); 
-                       else { // XMLHttpRequest not supported
-                               alert("XMLHTTPRequest not supported. EditArea 
not loaded"); 
-                               return; 
-                       } 
-                        
-                       xhr_object.open("GET", this.baseURL+"template.html", 
false); 
-                       xhr_object.send(null); 
-                       if(xhr_object.readyState == 4) 
-                               this.template=xhr_object.responseText;
-                       else
-                               this.has_error();
-               }
-       },
-       
-       // translate text
-       translate : function(text, lang, mode){
-               if(mode=="word")
-                       text=editAreaLoader.get_word_translation(text, lang);
-               else if(mode="template"){
-                       editAreaLoader.current_language= lang;
-                       text=text.replace(/\{\$([^\}]+)\}/gm, 
editAreaLoader.translate_template);
-               }
-               return text;
-       },
-       
-       translate_template : function(){
-               return 
editAreaLoader.get_word_translation(EditAreaLoader.prototype.translate_template.arguments[1],
 editAreaLoader.current_language);
-       },
-       
-       get_word_translation : function(val, lang){
-               var i;
-               
-               for( i in editAreaLoader.lang[lang]){
-                       if(i == val)
-                               return editAreaLoader.lang[lang][i];
-               }
-               return "_"+val;
-       },
-       
-       load_script : function(url){
-               var t=this,d=document,script,head;
-               
-               if( t.loadedFiles[url] )
-                       return; 
-               //alert("load: "+url);
-               try{
-                       script= d.createElement("script");
-                       script.type= "text/javascript";
-                       script.src= url;
-                       script.charset= "UTF-8";
-                       d.getElementsByTagName("head")[0].appendChild(script);
-               }catch(e){
-                       d.write('<sc'+'ript language="javascript" 
type="text/javascript" src="' + url + '" charset="UTF-8"></sc'+'ript>');
-               }
-               
-               t.loadedFiles[url] = true;
-       },
-       
-       add_event : function(obj, name, handler) {
-               try{
-                       if (obj.attachEvent) {
-                               obj.attachEvent("on" + name, handler);
-                       } else{
-                               obj.addEventListener(name, handler, false);
-                       }
-               }catch(e){}
-       },
-       
-       remove_event : function(obj, name, handler){
-               try{
-                       if (obj.detachEvent)
-                               obj.detachEvent("on" + name, handler);
-                       else
-                               obj.removeEventListener(name, handler, false);
-               }catch(e){}
-       },
-
-
-       // reset all the editareas in the form that have been reseted
-       reset : function(e){
-               var formObj,is_child,i,x;
-               
-               formObj = editAreaLoader.isIE ? window.event.srcElement : 
e.target;
-               if(formObj.tagName!='FORM')
-                       formObj= formObj.form;
-               
-               for( i in editAreas ){                  
-                       is_child= false;
-                       for( x=0;x<formObj.elements.length;x++ ) {
-                               if(formObj.elements[x].id == i)
-                                       is_child=true;
-                       }
-                       
-                       if(window.frames["frame_"+i] && is_child && 
editAreas[i]["displayed"]==true){
-                       
-                               var exec= 'window.frames["frame_'+ i 
+'"].editArea.textarea.value= document.getElementById("'+ i +'").value;';
-                               exec+= 'window.frames["frame_'+ i 
+'"].editArea.execCommand("focus");';
-                               exec+= 'window.frames["frame_'+ i 
+'"].editArea.check_line_selection();';
-                               exec+= 'window.frames["frame_'+ i 
+'"].editArea.execCommand("reset");';
-                               window.setTimeout(exec, 10);
-                       }
-               }               
-               return;
-       },
-       
-       
-       // prepare all the textarea replaced by an editarea to be submited
-       submit : function(e){           
-               var formObj,is_child,fs=window.frames,i,x;
-               formObj = editAreaLoader.isIE ? window.event.srcElement : 
e.target;
-               if(formObj.tagName!='FORM')
-                       formObj= formObj.form;
-               
-               for( i in editAreas){
-                       is_child= false;
-                       for( x=0;x<formObj.elements.length;x++ ) {
-                               if(formObj.elements[x].id == i)
-                                       is_child=true;
-                       }
-               
-                       if(is_child)
-                       {
-                               if(fs["frame_"+i] && 
editAreas[i]["displayed"]==true)
-                                       document.getElementById(i).value= 
fs["frame_"+ i].editArea.textarea.value;
-                               editAreaLoader.execCommand(i,"EA_submit");
-                       }
-               }                               
-               if( typeof(formObj.edit_area_replaced_submit) == "function" ){
-                       res= formObj.edit_area_replaced_submit();
-                       if(res==false){
-                               if(editAreaLoader.isIE)
-                                       return false;
-                               else
-                                       e.preventDefault();
-                       }
-               }
-               return;
-       },
-       
-       // allow to get the value of the editarea
-       getValue : function(id){
-        if(window.frames["frame_"+id] && editAreas[id]["displayed"]==true){
-            return window.frames["frame_"+ id].editArea.textarea.value;       
-        }else if(elem=document.getElementById(id)){
-               return elem.value;
-        }
-        return false;
-    },
-    
-    // allow to set the value of the editarea
-    setValue : function(id, new_val){
-       var fs=window.frames;
-       
-        if( ( f=fs["frame_"+id] ) && editAreas[id]["displayed"]==true){
-                       f.editArea.textarea.value= new_val;     
-                       f.editArea.execCommand("focus"); 
-                       f.editArea.check_line_selection(false);  
-                       f.editArea.execCommand("onchange");
-        }else if(elem=document.getElementById(id)){
-               elem.value= new_val;
-        }
-    },
-           
-    // allow to get infos on the selection: array(start, end)
-    getSelectionRange : function(id){
-       var sel,eA,fs=window.frames;
-       
-       sel= {"start": 0, "end": 0};
-        if(fs["frame_"+id] && editAreas[id]["displayed"]==true){
-               eA= fs["frame_"+ id].editArea;
-
-                       sel["start"]    = eA.textarea.selectionStart;
-                       sel["end"]              = eA.textarea.selectionEnd;
-               
-        }else if( elem=document.getElementById(id) ){
-               sel= getSelectionRange(elem);
-        }
-        return sel;
-    },
-    
-    // allow to set the selection with the given start and end positions
-    setSelectionRange : function(id, new_start, new_end){
-       var fs=window.frames;
-       
-        if(fs["frame_"+id] && editAreas[id]["displayed"]==true){
-            fs["frame_"+ id].editArea.area_select(new_start, 
new_end-new_start);  
-                       // make an auto-scroll to the selection
-                       if(!this.isIE){
-                               fs["frame_"+ 
id].editArea.check_line_selection(false); 
-                               fs["frame_"+ id].editArea.scroll_to_view();
-                       }   
-        }else if(elem=document.getElementById(id)){
-               setSelectionRange(elem, new_start, new_end);
-        }
-    },
-    
-    getSelectedText : function(id){
-       var sel= this.getSelectionRange(id);
-       
-        return this.getValue(id).substring(sel["start"], sel["end"]);
-    },
-       
-       setSelectedText : function(id, new_val){
-               var 
fs=window.frames,d=document,sel,text,scrollTop,scrollLeft,new_sel_end;
-               
-               new_val = new_val.replace(/\r/g, ""); 
-               sel             = this.getSelectionRange(id);
-               text    = this.getValue(id);
-               if(fs["frame_"+id] && editAreas[id]["displayed"]==true){
-                       scrollTop       = fs["frame_"+ 
id].document.getElementById("result").scrollTop;
-                       scrollLeft      = fs["frame_"+ 
id].document.getElementById("result").scrollLeft;
-               }else{
-                       scrollTop       = d.getElementById(id).scrollTop;
-                       scrollLeft      = d.getElementById(id).scrollLeft;
-               }
-               
-               text    = text.substring(0, sel["start"])+ new_val 
+text.substring(sel["end"]);
-               this.setValue(id, text);
-               new_sel_end     = sel["start"]+ new_val.length;
-               this.setSelectionRange(id, sel["start"], new_sel_end);
-               
-               
-               // fix \r problem for selection length count on IE & Opera
-               if(new_val != this.getSelectedText(id).replace(/\r/g, "")){
-                       this.setSelectionRange(id, sel["start"], new_sel_end+ 
new_val.split("\n").length -1);
-               }
-               // restore scrolling position
-               if(fs["frame_"+id] && editAreas[id]["displayed"]==true){
-                       fs["frame_"+ 
id].document.getElementById("result").scrollTop= scrollTop;
-                       fs["frame_"+ 
id].document.getElementById("result").scrollLeft= scrollLeft;
-                       fs["frame_"+ id].editArea.execCommand("onchange");
-               }else{
-                       d.getElementById(id).scrollTop= scrollTop;
-                       d.getElementById(id).scrollLeft= scrollLeft;
-               }
-    },
-    
-    insertTags : function(id, open_tag, close_tag){
-       var old_sel,new_sel;
-       
-       old_sel = this.getSelectionRange(id);
-       text    = open_tag + this.getSelectedText(id) + close_tag;
-        
-               editAreaLoader.setSelectedText(id, text);
-               
-       new_sel = this.getSelectionRange(id);
-       if(old_sel["end"] > old_sel["start"])   // if text was selected, cursor 
at the end
-               this.setSelectionRange(id, new_sel["end"], new_sel["end"]);
-       else // cursor in the middle
-               this.setSelectionRange(id, old_sel["start"]+open_tag.length, 
old_sel["start"]+open_tag.length);
-    },
-    
-    // hide both EditArea and normal textarea
-       hide : function(id){
-               var fs= 
window.frames,d=document,t=this,scrollTop,scrollLeft,span;
-               if(d.getElementById(id) && !t.hidden[id])
-               {
-                       t.hidden[id]= {};
-                       t.hidden[id]["selectionRange"]= t.getSelectionRange(id);
-                       if(d.getElementById(id).style.display!="none")
-                       {
-                               t.hidden[id]["scrollTop"]= 
d.getElementById(id).scrollTop;
-                               t.hidden[id]["scrollLeft"]= 
d.getElementById(id).scrollLeft;
-                       }
-                                       
-                       if(fs["frame_"+id])
-                       {
-                               t.hidden[id]["toggle"]= 
editAreas[id]["displayed"];
-                               
-                               if(fs["frame_"+id] && 
editAreas[id]["displayed"]==true){
-                                       scrollTop       = fs["frame_"+ 
id].document.getElementById("result").scrollTop;
-                                       scrollLeft      = fs["frame_"+ 
id].document.getElementById("result").scrollLeft;
-                               }else{
-                                       scrollTop       = 
d.getElementById(id).scrollTop;
-                                       scrollLeft      = 
d.getElementById(id).scrollLeft;
-                               }
-                               t.hidden[id]["scrollTop"]= scrollTop;
-                               t.hidden[id]["scrollLeft"]= scrollLeft;
-                               
-                               if(editAreas[id]["displayed"]==true)
-                                       editAreaLoader.toggle_off(id);
-                       }
-                       
-                       // hide toggle button and debug box
-                       span= d.getElementById("EditAreaArroundInfos_"+id);
-                       if(span){
-                               span.style.display='none';
-                       }
-                       
-                       // hide textarea
-                       d.getElementById(id).style.display= "none";
-               }
-       },
-       
-       // restore hidden EditArea and normal textarea
-       show : function(id){
-               var fs= window.frames,d=document,t=this,span;
-               if((elem=d.getElementById(id)) && t.hidden[id])
-               {
-                       elem.style.display= "inline";
-                       elem.scrollTop= t.hidden[id]["scrollTop"];
-                       elem.scrollLeft= t.hidden[id]["scrollLeft"];
-                       span= d.getElementById("EditAreaArroundInfos_"+id);
-                       if(span){
-                               span.style.display='inline';
-                       }
-                       
-                       if(fs["frame_"+id])
-                       {
-                                                               
-                               // restore toggle button and debug box
-                       
-                               
-                               // restore textarea
-                               elem.style.display= "inline";
-                               
-                               // restore EditArea
-                               if(t.hidden[id]["toggle"]==true)
-                                       editAreaLoader.toggle_on(id);
-                               
-                               scrollTop       = t.hidden[id]["scrollTop"];
-                               scrollLeft      = t.hidden[id]["scrollLeft"];
-                               
-                               if(fs["frame_"+id] && 
editAreas[id]["displayed"]==true){
-                                       fs["frame_"+ 
id].document.getElementById("result").scrollTop    = scrollTop;
-                                       fs["frame_"+ 
id].document.getElementById("result").scrollLeft   = scrollLeft;
-                               }else{
-                                       elem.scrollTop  = scrollTop;
-                                       elem.scrollLeft = scrollLeft;
-                               }
-                       
-                       }
-                       // restore selection
-                       sel     = t.hidden[id]["selectionRange"];
-                       t.setSelectionRange(id, sel["start"], sel["end"]);
-                       delete t.hidden[id];    
-               }
-       },
-       
-       // get the current file datas (for multi file editing mode)
-       getCurrentFile : function(id){
-               return this.execCommand(id, 'get_file', this.execCommand(id, 
'curr_file'));
-       },
-       
-       // get the given file datas (for multi file editing mode)
-       getFile : function(id, file_id){
-               return this.execCommand(id, 'get_file', file_id);
-       },
-       
-       // get all the openned files datas (for multi file editing mode)
-       getAllFiles : function(id){
-               return this.execCommand(id, 'get_all_files()');
-       },
-       
-       // open a file (for multi file editing mode)
-       openFile : function(id, file_infos){
-               return this.execCommand(id, 'open_file', file_infos);
-       },
-       
-       // close the given file (for multi file editing mode)
-       closeFile : function(id, file_id){
-               return this.execCommand(id, 'close_file', file_id);
-       },
-       
-       // close the given file (for multi file editing mode)
-       setFileEditedMode : function(id, file_id, to){
-               var reg1,reg2;
-               reg1    = new RegExp('\\\\', 'g');
-               reg2    = new RegExp('"', 'g');
-               return this.execCommand(id, 'set_file_edited_mode("'+ 
file_id.replace(reg1, '\\\\').replace(reg2, '\\"') +'", '+ to +')');
-       },
-       
-       
-       // allow to access to editarea functions and datas (for advanced users 
only)
-       execCommand : function(id, cmd, fct_param){
-               switch(cmd){
-                       case "EA_init":
-                               
if(editAreas[id]['settings']["EA_init_callback"].length>0)
-                                       
eval(editAreas[id]['settings']["EA_init_callback"]+"('"+ id +"');");
-                               break;
-                       case "EA_delete":
-                               
if(editAreas[id]['settings']["EA_delete_callback"].length>0)
-                                       
eval(editAreas[id]['settings']["EA_delete_callback"]+"('"+ id +"');");
-                               break;
-                       case "EA_submit":
-                               
if(editAreas[id]['settings']["submit_callback"].length>0)
-                                       
eval(editAreas[id]['settings']["submit_callback"]+"('"+ id +"');");
-                               break;
-               }
-        if(window.frames["frame_"+id] && window.frames["frame_"+ id].editArea){
-                       if(fct_param!=undefined)
-                               return eval('window.frames["frame_'+ id 
+'"].editArea.'+ cmd +'(fct_param);');
-                       else
-                               return eval('window.frames["frame_'+ id 
+'"].editArea.'+ cmd +';');       
-        }
-        return false;
-    }
-};
-       
-       var editAreaLoader= new EditAreaLoader();
-       var editAreas= {};
-

Reply via email to