Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

ROZWIĄZANY: Webd.pl Problem z wgraniem plików na serwer.


Rekomendowane odpowiedzi

Opublikowano

Niedawno chciałem zaktualizować sobie IP Boards z 3.2x do 3.3x zabezpieczyłem sobie wszystko, bazę danych i pliki. zostawiłem tylko /uploads i conf_global.php, ściągnąłem sobie IP Boards 3.3 no i kolejny krok wgrywanie na serwer FTP. Robiłem to już kilka razy i przez cPanel (co oferuje webd.pl) i przez FilleZilla i cały czas wyskakuje ten sam błąd.

" Stan przesyłania

Virus Detected; File not Uploaded! (MBL_318724.UNOFFICIAL FOUND)"

Nie wiem co mam robić już, siedzę nad tym kilka dobrych godzin i nic z tego. Próbowałem jeszcze przez Net2Ftp i po tamtym razie zamiast błędu wgrywa mi się plik, a później po odświeżeniu nie ma go. Plik wgrywam zapisany w .zip

Napisałem już do supportu webd.pl ale nie odpowiedzieli jeszcze.

Poszukałem jak można usunąć ten wirus lub to obejść no i znalazłem jakąś stronkę, ale ja nie mam takiej opcji w swoim cPanelu. (link do stronki z podpowiedzią: http://www.dotcomunderground.com/blogs/2009/08/27/cpanel-file-manager-virus-detected-file-not-uploaded-error-fix/)

Plik jeszcze sprawdzałem przez ESET czy nie ma żadnych wirusów.

Już nie mam pomysłów, wie ktoś o co chodzi?

Opublikowano

tak, jak oddzielnie wysyłam to działa udało mi się przesłać takie pliki jak: dav.php, favicon.ico, index.php, initidata.php, robotstxt, lecz jak już przeszedłem do katalogów znowu pojawił mi się ten problem.

Opublikowano (edytowane)

ips.editor.js (ips.editor.js): Virus Detected; File not Uploaded! (MBL_318724.UNOFFICIAL FOUND)

Tu np. masz jeden plik którego nie mogę wrzucić. Kodu takiego jak tamten koleś nie mam, ale cały czas jest ten błąd.

tutaj struktura:

/************************************************//* IPB3 Javascript	    *//* -------------------------------------------- *//* ips.editor.js - Editor class	 *//* (c) IPS, Inc 2008	   *//* -------------------------------------------- *//* Author: Rikki Tissier (based on Matt's code) *//************************************************/var _editor = window.IPBoard;var isRTL = ( isRTL ) ? isRTL : false;/* ===================================================================================================== *//* Values for the IPB text editor */IPBoard.prototype.editor_values = $H({'templates':   $A(),'colors_perrow':  8,'colors': [   '000000' , 'A0522D' , '556B2F' , '006400' , '483D8B' , '000080' , '4B0082' , '2F4F4F' ,	  '8B0000' , 'FF8C00' , '808000' , '008000' , '008080' , '0000FF' , '708090' , '696969' ,	  'FF0000' , 'F4A460' , '9ACD32' , '2E8B57' , '48D1CC' , '4169E1' , '800080' , '808080' ,	  'FF00FF' , 'FFA500' , 'FFFF00' , '00FF00' , '00FFFF' , '00BFFF' , '9932CC' , 'C0C0C0' ,	  'FFC0CB' , 'F5DEB3' , 'FFFACD' , '98FB98' , 'AFEEEE' , 'ADD8E6' , 'DDA0DD' , 'FFFFFF'	 ],// You can add new fonts here if you wish, HOWEVER, if you use// non-standard fonts, users without those fonts on their computer// will not see them. The default list below has the generally accepted// safe fonts; add others at your own risk!'primary_fonts': $H({  arial:	 "Arial",	   arialblack:    "Arial Black",	   arialnarrow:   "Arial Narrow",	   bookantiqua:   "Book Antiqua",	   centurygothic:   "Century Gothic",	   comicsansms:   "Comic Sans MS",	   couriernew:    "Courier New",	   franklingothicmedium: "Franklin Gothic Medium",	   garamond:    "Garamond",	   georgia:    "Georgia",	   impact:	 "Impact",	   lucidaconsole:   "Lucida Console",	   lucidasansunicode:  "Lucida Sans Unicode",	   microsoftsansserif:  "Microsoft Sans Serif",	   palatinolinotype:  "Palatino Linotype",	   tahoma:	 "Tahoma",	   timesnewroman:   "Times New Roman",	   trebuchetms:   "Trebuchet MS",	   verdana:    "Verdana"	 }),'font_sizes': $A([ 1, 2, 3, 4, 5, 6, 7 ])   });// =============================================================================================================//// Class for RTE EDITOR which is inherited by main Editor class_editor_rte = Class.create({_identifyType: function(){  Debug.write( "(Editor " + this.id + ") This is the RTE class" );},togglesource_pre_show_html: function(){},togglesource_post_show_html: function(){},editor_write_contents: function( text, do_init ){   if ( ( Object.isUndefined(text) || text === false || text.blank() ) && Prototype.Browser.Gecko )  {   text = '<br />';  }  else if ( Object.isUndefined(text) || text === false )  {   text = '';  }   if ( this.editor_document && this.editor_document.initialized )  {   this.editor_document.body.innerHTML = text;  }  else  {   if ( do_init )   {    this.editor_document.designMode = 'on';   }   this.editor_document = this.editor_window.document;   this.editor_document.open( 'text/html', 'replace' );   this.editor_document.write( this.ips_frame_html.replace( '{:content:}', text ) );   this.editor_document.close();     if ( do_init )   {    this.editor_document.body.contentEditable = true;    this.editor_document.initialized		  = true;   }  }},removeformat: function(e){  this.apply_formatting( 'unlink'	  , false, false );  this.apply_formatting( 'removeformat', false, false );  /*this.apply_formatting( 'killword', false, false );*/   var text = this.get_selection();  if ( text )  {   text = this.strip_html( text );   text = this.strip_empty_html( text );   text = text.replace( /\r/g, "" );   text = text.replace( /\n/g, "<br />" );   text = text.replace( /<!--(.*?)-->/g, "" );   text = text.replace( /<!--(.*?)-->/g, "" );   this.insert_text( text );  }},editor_get_contents: function(){  return this.editor_document.body.innerHTML;},editor_set_content: function( init_text ){  if( $( this.id + '_iframe' ) )  {   this.editor_box = $( this.id + '_iframe' );  }  else  {   // Create iframe   var iframe = new Element('iframe', { 'id': this.id + '_iframe', 'tabindex': 0 } );     if( Prototype.Browser.IE && window.location.protocol == 'https:' )   {    iframe.writeAttribute( 'src', this.options.file_path + '/index.html' );   }     // Insert into DOM   this.items['text_obj'].up().insert( iframe );   this.editor_box = iframe;  }   if( !Prototype.Browser.IE )  {   this.editor_box.setStyle( 'border: 1px inset' );  }  else  {   // Bug #17772   if( !Object.isUndefined( init_text ) && init_text != false )   {    init_text = init_text.replace( /§/g, "&sect");   }  }   //-----------------------------------------  // Is there a height in the cookies?  //-----------------------------------------   var test_height = ipb.Cookie.get( 'ips_rte_height' );   /*Debug.write( "Height is " + test_height );*/   if ( Object.isNumber( test_height ) && test_height > 50 )  {   this.items['text_obj'].setStyle( { height: test_height + 'px' } );   Debug.write( "Set text_obj height to " + test_height );  }   // Set up  var tobj_dims = this.items['text_obj'].getDimensions();   if( Object.isUndefined( tobj_dims ) || tobj_dims['height'] == 0 )  {   tobj_dims['height'] = 250;  }   //Debug.write( tobj_dims );   /*Debug.write( this.items['text_obj'].getDimensions()['height'] );*/   this.editor_box.setStyle( { width:   '100%',		 height:  tobj_dims.height + 'px',		 className:  this.items['text_obj'].className		 });	     this.items['text_obj'].hide();   //---------   this.editor_window   = this.editor_box.contentWindow;  this.editor_document = this.editor_window.document;   if ( ! this.items['text_obj'].value && ( init_text === false || Object.isUndefined( init_text ) ) )  {   /* Wipe editor */   this.editor_write_contents(false, true);  }  else  {   this.editor_write_contents( (Object.isUndefined( init_text ) || ! init_text ?  this.items['text_obj'].value : init_text), true );  }  this.editor_document.editor_id = this.editor_id;  this.editor_window.editor_id   = this.editor_id;  this.editor_window.has_focus   = false;   // Go on.. cursor, flash you bastard   try  {   Debug.write( "Attempt to get focus" );   this.editor_check_focus();     // Sometimes moves the focus to the RTE   this.editor_document.execCommand("InsertHorizontalRule", false, null);   this.editor_document.execCommand("undo"	  , false, null);  }  catch(error)  {   Debug.write( "#011 " + error );  }   //-----------------------------------------  // Kill tags  //-----------------------------------------   //document.getElementById( this.editor_id + '_cmd_justifyfull' ).style.display  = 'none';},apply_formatting: function(cmd, dialog, argument){  dialog   = ( Object.isUndefined( dialog ) ? false : dialog);  argument = ( Object.isUndefined( argument ) ? true  : argument);   if ( Prototype.Browser.IE && this.forum_fix_ie_newlines )  {   if ( cmd == 'justifyleft' || cmd == 'justifycenter' || cmd == 'justifyright' )   {    var _a  = cmd.replace( "justify", "" );    this.wrap_tags_lite( "[" + _a + "]", "[/" + _a + "]" );    return true;   }   else if ( cmd == 'outdent' || cmd == 'indent' || cmd == 'insertorderedlist' || cmd == 'insertunorderedlist' )   {    this.editor_check_focus();    var sel = this.editor_document.selection;    var ts  = this.editor_document.selection.createRange();    var t   = ts.htmlText.replace(/<p([^>]*)>(.*)<\/p>/i, '$2');    if ( (sel.type == "Text" || sel.type == "None") )    {	 ts.pasteHTML( t + "<p />\n" );    }    else    {	 this.editor_document.body.innerHTML += "<p />";    }   }  }  //alert( "Here" );  /*Debug.write( "Apply formatting selection is: " + this.get_selection() + ", cmd is " + cmd );*/   if( Prototype.Browser.IE && this._ie_cache != null )  {   this.editor_check_focus();   this._ie_cache.select();  }   this.editor_document.execCommand( cmd, dialog, argument );   this._ie_cache = null;  return false;},/* ! get_selection */get_selection: function(){  var rng = this._ie_cache ? this._ie_cache : this.editor_document.selection.createRange();   //Debug.write( 'get selection: ie_cache:' + this._ie_cache.htmlText + '.' );   if ( rng.htmlText )  {   Debug.write( 'htmlTest:' + rng.htmlText + '.' );   return rng.htmlText;  }  else  {   var rtn = '';     for (var i = 0; i < rng.length; i++)   {    rtn += rng.item(i).outerHTML;   }  }   return rtn;},editor_set_functions: function(){  //Debug.write( this.editor_document );  Event.observe( this.editor_document, 'mouseup', this.events.editor_document_onmouseup.bindAsEventListener( this ) );  Event.observe( this.editor_document, 'keyup', this.events.editor_document_onkeyup.bindAsEventListener( this ) );  Event.observe( this.editor_document, 'keydown', this.events.editor_document_onkeydown.bindAsEventListener( this ) );    Event.observe( this.editor_window, 'blur', this.events.editor_window_onblur.bindAsEventListener( this ) );  Event.observe( this.editor_window, 'focus', this.events.editor_window_onfocus.bindAsEventListener( this ) );},set_context: function( cmd ){  // Showing HTML?  if ( this._showing_html )  {   return false;  }   this.button_update.each( function(item)  {   //Debug.write( this.id + '_cmd_' + item );   var obj = $( this.id + '_cmd_' + item );     if( obj != null )   {    try {	 var state = new String( this.editor_document.queryCommandState( item ) );		 if( obj.readAttribute('state') != state )	 {	  obj.writeAttribute( 'state', new String( state ) );	  this.set_button_context( obj, ( obj.readAttribute('cmd') == cmd ? 'mouseover' : 'mouseout' ) );	 }    }    catch( error )    {	 Debug.write( "#1 " + error );    }   }  }.bind(this) );   //-----------------------------------------  // Check and set font context  //-----------------------------------------   this.button_set_font_context();   //-----------------------------------------  // Check and set size context  //-----------------------------------------   this.button_set_size_context();},button_set_font_context: function( font_state ){  changeto = '';   // Showing HTML?  if ( this._showing_html )  {   return false;  }   if( this.items['buttons']['fontname'] )  {   if( Object.isUndefined( font_state ) ){    font_state = this.editor_document.queryCommandValue('fontname') || '';   }     if( font_state.blank() ){    if ( !Prototype.Browser.IE && window.getComputedStyle )    {	 font_state = this.editor_document.body.style.fontFamily;    }   } else if( font_state == null ){    font_state = '';   }     if( font_state != this.font_state )   {    this.font_state = font_state;    var fontword = font_state;    var commapos  = fontword.indexOf(",");    if( commapos != -1 ){	 fontword = fontword.substr(0, commapos);    }       fontword = fontword.toLowerCase();    changeto = '';       ipb.editor_values.get('primary_fonts').any( function(font){	 if( font.value.toLowerCase() == fontword ){	  changeto = font.value;	  return true;	 } else {	  return false;	 }	    });       changeto = ( changeto == '' ) ? this.fontoptions['_default'] : changeto;       this.items['buttons']['fontname'].update( changeto );   }  }}, button_set_size_context: function( size_state ){   if( this.items['buttons']['fontsize'] )  {   if( Object.isUndefined( size_state ) ){    size_state = this.editor_document.queryCommandValue('fontsize');   }     if( size_state == null || size_state == ''  )   {    if ( Prototype.Browser.Gecko )    {	 size_state = this.convert_size( this.editor_document.body.style.fontSize, 0 );		 if ( ! size_state )	 {	  size_state = '2';	 }    }   }     changeto = '';   if ( size_state != this.size_state )   {    this.size_state = size_state;       ipb.editor_values.get('font_sizes').any( function(size){	 if( parseInt( size ) == parseInt( this.size_state ) ){	  changeto = size;	  return true;	 } else {	  return false;	 }    }.bind(this));       changeto = ( changeto == '' ) ? this.sizeoptions['_default'] : changeto;       this.items['buttons']['fontsize'].update( changeto );   }  }},/* ! insert_text */insert_text: function(text){  Debug.write( "Inserting " + text + "." );  this.editor_check_focus();  if ( typeof( this.editor_document.selection )    != 'undefined'	  && this.editor_document.selection.type != 'Text'		 && this.editor_document.selection.type != 'None' )  {   this.editor_document.selection.clear();  }   var sel = this._ie_cache ? this._ie_cache : this.editor_document.selection.createRange();  sel.pasteHTML(text);  sel.select();   this._ie_cache = null;},/* ! insert_emoticon */insert_emoticon: function( emo_id, emo_image, emo_code, event ){  Debug.write( "Adding emoticon " + emo_code );   try  {   //this._ie_cache = null;   // INIT   var _emo_url  = ipb.vars['emoticon_url'] + "/" + emo_image;   var _emo_html = ' <img src="' + _emo_url + '" class="bbc_emoticon" alt="' + this.unhtmlspecialchars( emo_code ) + '" />';     this.wrap_tags_lite( " " + _emo_html, " ", false);  }  catch( error )  {   Debug.write( "#2 " + error );   //alert( error );  }   /*if ( this.emoticon_window_id != '' && typeof( this.emoticon_window_id ) != 'undefined' )  {   this.emoticon_window_id.focus();  }*/},togglesource: function( e, update ){  Event.stop(e);   // Already showing?  if( this._showing_html )  {   if( update )   {    this.editor_document.initialized = false;    this.editor_write_contents( $( this.id + '_htmlsource' ).value, true );    //this.editor_document.body.innerHTML = $( this.id + '_htmlsource' ).value;   }     $( this.editor_box ).show();   $( this.items['controls'] ).show();     // Remove source editor   $( this.id + '_htmlsource' ).remove();   $( this.id + '_ts_controls' ).remove();     // Post process   //this.togglesource_post_show_html();   this._showing_html = false;   // Set context   this.editor_check_focus();   //this.set_context();  }  else  {   this._showing_html = true;   this.togglesource_pre_show_html();     // Create a new textarea   var textarea = new Element( 'textarea', { id: this.id + '_htmlsource', tabindex: 3 } );   textarea.className = this.items['text_obj'].className;   var dims = this.items['text_obj'].getDimensions();     /*textarea.setStyle('width: ' + dims.width + 'px; height: ' + dims.height + 'px;');*/     textarea.value = this.clean_html( this.editor_get_contents() );     // Build controls   var controlbar = ipb.editor_values.get('templates')['togglesource'].evaluate( { id: this.id } );     // Insert into page   $( this.items['text_obj'] ).insert( { after: textarea } );   $( textarea ).insert( { after: controlbar } );     // Hook up events   $( this.id + '_ts_update' ).writeAttribute('cmd', 'togglesource').writeAttribute('editor_id', this.id).observe('click', this.togglesource.bindAsEventListener( this, 1 ) );   $( this.id + '_ts_cancel' ).writeAttribute('cmd', 'togglesource').writeAttribute('editor_id', this.id).observe('click', this.togglesource.bindAsEventListener( this, 0 ) );     // Hide editor   $( this.items['controls'] ).hide();   $( this.editor_box ).hide();     // Set context   this.editor_check_focus();   //this.set_context();  } },update_for_form_submit: function(){  Debug.write("Updating for submit");  this.items['text_obj'].value = this.editor_get_contents();  Debug.write( "Before: " + this.items['text_obj'].value );  // IE does crappy things. </3  if ( Prototype.Browser.IE )  {   this.items['text_obj'].value = this.items['text_obj'].value.replace( / /g, ' ' );   this.items['text_obj'].value = this.items['text_obj'].value.replace( /\s+?$/, '' );  }   // http://trac.webkit.org/changeset/47640  // Safari bug with execcommand and underline + strikethrough  if( Prototype.Browser.WebKit )  {   this.items['text_obj'].value = this.items['text_obj'].value.replace( /<span class="Apple-style-span" style="text-decoration: underline;">([^>]*)<\/span>/gi, "<u>$1</u>" );   this.items['text_obj'].value = this.items['text_obj'].value.replace( /<span class="Apple-style-span" style="text-decoration: line-through;">([^>]*)<\/span>/gi, "<strike>$1</strike>" );  }  Debug.write( "After: " + this.items['text_obj'].value );  return true;}});// =============================================================================================================//// Class for STANDARD EDITOR which is inherited by main Editor class_editor_std = Class.create({_identifyType: function(){  Debug.write( "(Editor " + this.id + ") This is the STD class" );},editor_set_content: function( init_text ){  var iframe = this.items['text_obj'].up().down('iframe', 0);   if ( !Object.isUndefined( iframe ) )  {   var iframeDims = iframe.getDimensions();   $( this.items['text_obj'] ).setStyle( { 'width': iframeDims.width, 'height': iframeDims.height } ).show();   $( iframe ).setStyle( 'width: 0px; height: 0px; border: none;' );  }  this.editor_window   = this.items['text_obj'];  this.editor_document = this.items['text_obj'];  this.editor_box	  = this.items['text_obj'];   if( !Object.isUndefined( init_text ) && init_text !== false )  {   this.editor_write_contents( init_text );  }  this.editor_document.editor_id = this.id;  this.editor_window.editor_id   = this.id;   // Hide those pesky buttons we dont need  if( !Prototype.Browser.IE && $( this.id + '_cmd_spellcheck' ) ){   $( this.id + '_cmd_spellcheck').hide();  }   if( $(this.id + '_cmd_removeformat') ){   $( this.id + '_cmd_removeformat' ).hide();  }   if( $(this.id + '_cmd_togglesource' ) ){   $( this.id + '_cmd_togglesource' ).hide();  }   if( $(this.id + '_cmd_justifyfull' ) ){   $( this.id + '_cmd_justifyfull' ).hide();  }   if( $(this.id + '_cmd_outdent' ) ){   $( this.id + '_cmd_outdent' ).hide();  }   if( $(this.id + '_cmd_switcheditor' ) ){   $( this.id + '_cmd_switcheditor' ).hide();  }},editor_write_contents: function(text){  if ( text !== false )  {   this.items['text_obj'].value = text;  }},editor_get_contents: function(){  return this.editor_document.value;},apply_formatting: function(cmd, dialog, argument){  /*Debug.write("Click");*/  switch (cmd)  {   case 'bold':   case 'italic':   case 'underline':   {    this.wrap_tags(cmd.substr(0, 1), false);    return;   }   case 'justifyleft':   case 'justifycenter':   case 'justifyright':   {    this.wrap_tags(cmd.substr(7), false);    return;   }   case 'indent':   {    this.wrap_tags(cmd, false);    return;   }   case 'createlink':   {    var sel = this.get_selection();       if (sel)    {	 this.wrap_tags('url', argument);    }    else    {	 this.wrap_tags('url', argument, argument);    }    return;   }   case 'fontname':   {    this.wrap_tags('font', argument);    return;   }   case 'fontsize':   {    this.wrap_tags('size', argument);    return;   }   case 'forecolor':   {    this.wrap_tags('color', argument);    return;   }     case 'backcolor':   {    this.wrap_tags('background', argument);    return;   }   case 'insertimage':   {    this.wrap_tags('img', false, argument);    return;   }     case 'strikethrough':   {    this.wrap_tags('s', false);    return;   }     case 'superscript':   {    this.wrap_tags('sup', false);    return;   }     case 'subscript':   {    this.wrap_tags('sub', false);    return;   }   case 'removeformat':   return;  }},editor_set_functions: function(){  Event.observe( this.editor_document, 'keypress', this.events.editor_document_onkeypress.bindAsEventListener(this) );  Event.observe( this.editor_window, 'focus', this.events.editor_window_onfocus.bindAsEventListener( this ) );  Event.observe( this.editor_window, 'blur', this.events.editor_window_onblur.bindAsEventListener( this ) );},set_context: function(){  //Debug.write('Set context');},get_selection: function(){   if ( !Object.isUndefined( this.editor_document.selectionstart ) )  {   return this.editor_document.value.substr(this.editor_document.selectionstart, this.editor_document.selectionend - this.editor_document.selectionstart);  }  else if ( ( document.selection && document.selection.createRange ) || this._ie_cache )  {   return ( ! document.selection.createRange().text && this._ie_cache ) ? this._ie_cache.text : document.selection.createRange().text;  }  else if ( window.getSelection )  {   return window.getSelection() + '';  }  else  {   return false;  }},insert_text: function(text){  this.editor_check_focus();  if ( !Object.isUndefined( this.editor_document.selectionstart ) )  {   var open = this.editor_document.selectionstart + 0;   var st   = this.editor_document.scrollTop;   var end  = open + text.length;     /* Opera doesn't count the linebreaks properly for some reason */   if( Prototype.Browser.Opera )   {    var opera_len = text.match( /\n/g );    try    {	 end += parseInt(opera_len.length);    }    catch(e)    {	 Debug.write( "#3 " + e );    }   }     this.editor_document.value = this.editor_document.value.substr(0, this.editor_document.selectionstart) + text + this.editor_document.value.substr(this.editor_document.selectionend);   // Don't adjust selection if we're simply adding , etc   if ( ! text.match( new RegExp( "\\" + this.open_brace + "(\\S+?)" + "\\" + this.close_brace + "\\" + this.open_brace + "/(\\S+?)" + "\\" + this.close_brace ) ) )   {    this.editor_document.selectionstart = open;    this.editor_document.selectionend   = end;    this.editor_document.scrollTop	  = st;    Debug.write("Insert 0");   }   else   {    // Only firefox seems to need this...    if( Prototype.Browser.Gecko ){	 this.editor_document.scrollTop	  = st;    }   }     this.editor_document.setSelectionRange( open, end );   Debug.write("Insert 1");  }  else if ( ( document.selection && document.selection.createRange ) || this._ie_cache )  {   var sel  = this._ie_cache ? this._ie_cache : document.selection.createRange();   sel.text = text.replace(/\r?\n/g, '\r\n');   sel.select();   Debug.write("Insert 2");  }  else  {   this.editor_document.value += text;   Debug.write("Insert 3");  }   this._ie_cache = null;},insert_emoticon: function( emo_id, emo_image, emo_code, event ){  this.editor_check_focus();   emo_code = this.unhtmlspecialchars( emo_code );   this.wrap_tags_lite( " " + emo_code, " ");    /*if ( Prototype.Browser.IE )  {   if ( this.emoticon_window_id != '' && !Object.isUndefined( this.emoticon_window_id ) )   {    this.emoticon_window_id.focus();   }  }*/},insertorderedlist: function(e){  this.insertlist( 'ol');},insertunorderedlist: function(e){  this.insertlist( 'ul');},insertlist: function( list_type ){  var open_tag;  var close_tag;  var item_open_tag  = '<li>';  var item_close_tag = '</li>';  var regex		  = '';  var all_add	    = '';   if ( this.use_bbcode )  {   regex		  = new RegExp('([\r\n]+|^[\r\n]*)(?!\\[\\*\\]|\\[\\/?list)(?=[^\r\n])', 'gi');   open_tag	   = list_type == 'ol' ? '[list=1]\n' : '[list]\n';   close_tag	  = '[/list]';   item_open_tag  = '[*]';   item_close_tag = '';  }  else  {   regex	 = new RegExp('([\r\n]+|^[\r\n]*)(?!<li>|<\\/?ol|ul)(?=[^\r\n])', 'gi');   open_tag  = list_type == 'ol'  ? '<ol>\n'  : '<ul>\n';   close_tag = list_type == 'ol'  ? '</ol>\n' : '</ul>\n';  }   if ( text = this.get_selection() )  {   text = open_tag + text.replace( regex, "\n" + item_open_tag + '$1' + item_close_tag ) + '\n' + close_tag;     if ( this.use_bbcode )   {    text = text.replace( new RegExp( '\\[\\*\\][\r\n]+', 'gi' ), item_open_tag );   }     this.insert_text( text );  }  else  {   // http://community.invisionpower.com/tracker/issue-19347-insert-list/   // Commenting this out fixes the above bug report     //if ( Prototype.Browser.Gecko )   //{   // //this.insert_text( open_tag + close_tag );   // this.insert_text( open_tag  );   //   // /* SKINNOTE: use proper lang for these */   // while ( val = prompt( ipb.lang['editor_enter_list'], '') )   // {   //  this.insert_text( item_open_tag + val + item_close_tag + '\n' );   //  //all_add += item_open_tag + val + item_close_tag + '\n';   // }   // this.insert_text( close_tag );   //}   //else   //{    var to_insert = open_tag;    var listitems = '';    while ( val = prompt( ipb.lang['editor_enter_list'], '') )    {	 listitems += item_open_tag + val + item_close_tag + '\n';    }    //this.insert_text( close_tag );       if( listitems )    {	 to_insert += listitems;	 to_insert += close_tag;	 this.insert_text( to_insert );    }   //}  }},removeformat: function(){  var text = this.get_selection();   if ( text )  {   text = this.strip_html( text );   this.insert_text( text );  }},unlink: function(){  var text	   = this.get_selection();  var link_regex = '';  var link_text  = '';   if ( text !== false )  {   if ( text.match( link_regex ) )   {    text = ( this.use_bbcode ) ? text.replace( /\[url=([^\]]+?)\]([^\[]+?)\[\/url\]/ig, "$2" )			 : text.replace( /<a href=['\"]([^\"']+?)['\"]([^>]+?)?>(.+?)<\/a>/ig, "$3" );   }   this.insert_text( text );  }},undo: function(){  this.history_record_state( this.editor_get_contents() );   this.history_time_shift( -1 );   if ( ( text = this.history_fetch_recording() ) !== false )  {   this.editor_document.value = text;  }},redo: function(){  this.history_time_shift( 1 );   if ( ( text = this.history_fetch_recording() ) !== false )  {   this.editor_document.value = text;  }},update_for_form_submit: function(subjecttext, minchars){  return true;}});//==============================================================================================================//// MAIN EDITOR CODEif( USE_RTE ){//&& !Prototype.Browser.WebKit ){ // Dont support safariDebug.write("Extending with RTE");_type = _editor_rte;} else {Debug.write("Extending with STD");_type = _editor_std;}_editor.prototype.editor = Class.create(_type, {initialize: function( editor_id, mode, initial_content, options ){  this.id	 = editor_id;  this.is_rte    = mode;	   this.use_bbcode   = !mode;  this.events    = null;  this.options	  = [];	     this.items    = [];	     this.settings   = {};	     this.open_brace   = '';	     this.close_brace  = '';	     this.allow_advanced  = 0;  this.initialized   = 0;  this.ips_frame_html  = '';  this.forum_fix_ie_newlines = 1;  this.has_focus   = null;  this.history_recordings = [];  this.history_pointer = -1;  this._ie_cache   = null;  this._showing_html  = false;  this._loading   = false;  this.original   = $H();  this.hidden_objects  = [];  this.fontoptions  = $A();  this.sizeoptions  = $A();  this.font_state   = null;  this.size_state   = null;  this.palettes   = {};  this.defaults   = {};  this.key_handlers  = [];  this.showing_sidebar = false;  this.emoticons_loaded = false;  this.emoClick   = false;   this.options = Object.extend({   file_path:	  '',   forum_fix_ie_newlines:   1,   char_set:	  'UTF-8',   ignore_controls:    [],   button_update:	 []  }, arguments[3] || {});   this.button_update = $A( [ "bold", "italic", "underline", "justifyleft", "justifycenter",	    "justifyright", "insertorderedlist", "insertunorderedlist", "superscript", "subscript", "strikethrough" ].concat( this.options.button_update ) );   this.values = ipb.editor_values; // The values for things like font list, colors etc.   this.items['text_obj'] = $( this.id + "_textarea" );  this.items['buttons'] = $A();  this.items['controls'] = $( this.id + '_controls' );   //Other configuration  this.open_brace		    = this.use_bbcode ? '[' : '<';  this.close_brace		   = this.use_bbcode ? ']' : '>';  this.allow_advanced	    = this.use_bbcode ?  0  :  1;  this.doc_body	  = $$('body')[0];   //Object.extend( this._history, _editor_history );  this.events = new _editor_events();     this._identifyType();   // Any custom BBCodes to build?  if( this.values.get('bbcodes') && $( this.id + '_cmd_otherstyles' ) ) // check for existence of other styles menu  {   this.buildCustomStyles();  }   // Lets try and find the form this belongs to, and add a submit  // event to convert the text properly  if( this.items['text_obj'].up('form') ){   this.items['text_obj'].up('form').observe( 'submit', function(e){    this.update_for_form_submit();   }.bindAsEventListener(this) );  }   this.init( initial_content );   Debug.write("All editor initialization complete");},/* ------------------------------ *//**  * Initialization*/init: function( initial_text ){  try {   if ( this.initialized ){    return;   }    // Set WYSIWYG flag   if( $( this.id + '_wysiwyg_used' ) ){    $( this.id + '_wysiwyg_used' ).value = parseInt( this.is_rte );   }   if( ipb.Cookie.get('emoticon_sidebar') == '1' && $( this.id + '_sidebar' ) )   {    this.buildEmoticons();    $( this.id + '_sidebar' ).show();    $( 'editor_' + this.id ).addClassName('with_sidebar');    ipb.Cookie.set( 'emoticon_sidebar', 1, 1 );    this.showing_sidebar = true;   }     // Get default frame HTML   this.ips_frame_html = this.get_frame_html();     // Set editor up   this.editor_set_content( initial_text );	   // Set mouse events   this.editor_set_functions();   // Set controls up   this.editor_set_controls();       // Having this here forces the page to jump down to the editor when it loads   // which is highly undesirable.  Tested STD and RTE in FF and IE8, and Safari with STd   // with this commented out and seems fine... Bug 15476   //this.editor_check_focus();    this.initialized = true;  }  catch(err){ Debug.error( "#4 " + err ); }},/* ------------------------------ *//**  * Builds custom styles menu & toolbars  */buildCustomStyles: function(){  var buttons = false;  var other_styles = false;   // Create the toolbar to start with  var toolbar = ipb.editor_values.get('templates')['toolbar'].evaluate( { 'id': this.id, 'toolbarid': '3' } );  $( this.id + '_toolbar_2' ).insert( { after: toolbar } );   // And init the other styles menu  this.init_editor_menu( $( this.id + '_cmd_otherstyles' ) );   this.values.get('bbcodes').each( function( bbcode ){     if( !bbcode.value['image'].blank() )   {    $( this.id + '_toolbar_3' ).insert( ipb.editor_values.get('templates')['button'].evaluate( { 'id': this.id, 'cmd': bbcode.key, 'title': bbcode.value['title'], 'img': bbcode.value['image'] } ) );    buttons = true;   }   else   {    $( this.id + '_popup_otherstyles_menu' ).insert( ipb.editor_values.get('templates')['menu_item'].evaluate( { 'id': this.id, 'cmd': bbcode.key, 'title': bbcode.value['title'] } ) );    other_styles = true;   }     if( !( bbcode.value['useoption'] == '0' && bbcode.value['single_tag'] == '1' ) )   {    var item_wrap = new Element('div', { id: this.id + '_palette_otherstyles_' + bbcode.key } );    item_wrap.addClassName('ipb_palette').addClassName('extended');    item_wrap.writeAttribute("styleid", bbcode.key);    var _content = this.values.get('templates')['generic'].evaluate( {	 id: this.id + '_' + bbcode.key,	 title: bbcode.value['title'],	 example: bbcode.value['example'],	 option_text: bbcode.value['menu_option_text'] || '',	 value_text: bbcode.value['menu_content_text'] || ''    } );    item_wrap.update( _content );    this.doc_body.insert( { top: item_wrap } );    // Figure out what needs to be shown    if( bbcode.value['useoption'] == '0' ){	 item_wrap.select('.optional').invoke('remove');    }       if( bbcode.value['single_tag'] == '1' ){	 item_wrap.select('.tagcontent').invoke('remove');    }       this.palettes[ 'otherstyles_' + bbcode.key ] = new ipb.Menu( $( this.id + '_cmd_custom_' + bbcode.key ), item_wrap, { stopClose: true, offsetX: 0, offsetY: 42, positionSource: $( this.id + '_cmd_otherstyles' ) } );    item_wrap.down('input[type="submit"]').observe('click', this.events.handle_custom_onclick.bindAsEventListener( this ) );   }     // Set up events   $( this.id + '_cmd_custom_' + bbcode.key ).observe('click', this.events.handle_custom_command.bindAsEventListener( this, bbcode.key ));   }.bind(this));   if( buttons ){   $( this.id + '_toolbar_3' ).show();  }   if( other_styles ){   $( this.id + '_cmd_otherstyles' ).show();  } },/* ------------------------------ *//**  * Resizes the content area*/resize_to: function( size ){  var afterFinish = function(){};   // Bug #17799  // Opera 10 wouldn't resize the emoticon pane when the editor resize buttons were used  // Have to manually recalculate height, resize editor, then remove height  if( Prototype.Browser.Opera && $( this.id + '_emoticon_holder' ) )  {   var height = $( this.id + '_emoticon_holder' ).getHeight();   var currentSize = ( this.is_rte ) ? $( this.editor_box ).getHeight() : $( this.items['text_obj'] ).getHeight();   var diff = currentSize - size;   var newSize = height - diff;     $( this.id + '_emoticon_holder' ).setStyle('height: ' + newSize + 'px');     var afterFinish = function(e){    $( this.id + '_emoticon_holder' ).setStyle('height: auto;');   }.bind( this );	    //window.opera.postError("Height: " + height + "; diff: " + diff + "; newSize: " + newSize);  }    try {   if( this.is_rte )   {    new Effect.Morph( $( this.editor_box ), { style: 'height: ' + size + 'px', duration: 0.3, afterFinish: afterFinish } );    $( this.items['text_obj'] ).setStyle( 'height: ' + size + 'px' );   }   else   {    new Effect.Morph( $( this.items['text_obj'] ), { style: 'height: ' + size + 'px', duration: 0.3, afterFinish: afterFinish } );    if( $( this.editor_box ) ){ $( this.editor_box ).setStyle( 'height: ' + size + 'px' ); }   }    } catch(err) { Debug.write( "#5 " + err ); } },/* ------------------------------ *//**  * Returns HTML for the RTE frame*/get_frame_html: function(){  var ips_frame_html = "";  ips_frame_html += "<html id=\""+this.id+"_html\">\n";  ips_frame_html += "<head>\n";  ips_frame_html += "<meta http-equiv=\"content-type\" content=\"text/html; charset=" + this.options.char_set + "\" />";  ips_frame_html += "<style type='text/css' media='all'>\n";  ips_frame_html += "body {\n";  ips_frame_html += " background: #FFFFFF;\n";  ips_frame_html += " margin: 0px;\n";  ips_frame_html += " padding: 4px;\n";  ips_frame_html += " font-family: arial, verdana, tahoma, sans-serif;\n";  ips_frame_html += " font-size: 9pt;\n";  ips_frame_html += "}\n";  ips_frame_html += "font[size=\"1\"] {\n";  ips_frame_html += " font-size: 9px;\n";  ips_frame_html += "}\n";  ips_frame_html += "font[size=\"2\"] {\n";  ips_frame_html += " font-size: 13px;\n";  ips_frame_html += "}\n";  ips_frame_html += "font[size=\"3\"] {\n";  ips_frame_html += " font-size: 15px;\n";  ips_frame_html += "}\n";  ips_frame_html += "font[size=\"4\"] {\n";  ips_frame_html += " font-size: 17px;\n";  ips_frame_html += "}\n";  ips_frame_html += "font[size=\"5\"] {\n";  ips_frame_html += " font-size: 21px;\n";  ips_frame_html += "}\n";  ips_frame_html += "font[size=\"6\"] {\n";  ips_frame_html += " font-size: 26px;\n";  ips_frame_html += "}\n";  ips_frame_html += "font[size=\"7\"] {\n";  ips_frame_html += " font-size: 36px;\n";  ips_frame_html += "}\n";  ips_frame_html += "</style>\n";   if( isRTL && rtlFull )  {   ips_frame_html += "<link rel='stylesheet' type='text/css' media='screen' href='" + rtlFull + "' />\n";     if( rtlIe && Prototype.Browser.IE )   {    ips_frame_html += "<!--[if lte IE 7]>\n";    ips_frame_html += "<link rel='stylesheet' type='text/css' media='screen' href='" + rtlIe + "' />\n";    ips_frame_html += "<![endif]-->\n";   }  }  ips_frame_html += "</head>\n";  ips_frame_html += "<body class='withRTL'>\n";  ips_frame_html += "{:content:}\n";  ips_frame_html += "</body>\n";  ips_frame_html += "</html>";  return ips_frame_html;},editor_check_focus: function(){  if( this.is_rte )  {   Debug.write( "Focussing RTE" );     try {    this.editor_window.focus();   } catch(err) { Debug.write( "Could not focus editor window" ); }  }  else  {   Debug.write( "Focussing STD Textarea" );     if( !this._ie_cache )   {    this.items['text_obj'].focus();   }  }  /*if ( ! this.editor_window.has_focus ){   this.editor_window.focus();  }*/},editor_set_controls: function(){  //Debug.write( $( this.id + '_controls' ).select('span') );  controls = $( this.id + '_controls' ).select('.rte_control').each( function(elem)  {   if( !elem.id ){ return; }   if( this.options.ignore_controls.include( elem.id.toLowerCase() ) ){ return; }     if( elem.hasClassName('rte_button') ){    this.init_editor_button( elem );   } else if ( elem.hasClassName( 'rte_menu' ) && !elem.hasClassName( 'rte_special') ){    this.init_editor_menu( elem ); // SKINNOTE: IE error on this line   } else if ( elem.hasClassName( 'rte_palette' ) ){    this.init_editor_palette( elem );   } else {    return;   }   this.set_control_unselectable( elem );  }.bind(this));   if( $( this.id + '_resizer' ) ){   this.init_editor_button( $( this.id + '_cmd_r_small' ) );   this.set_control_unselectable( $( this.id + '_cmd_r_small' ) );   this.init_editor_button( $( this.id + '_cmd_r_big' ) );   this.set_control_unselectable( $( this.id + '_cmd_r_big' ) );  }  },set_button_context: function(obj, state, type){  //-----------------------------------------  // Showing HTML?  //-----------------------------------------  if ( this._showing_html ){   return false;  }   if ( Object.isUndefined( type ) ){   type = 'button';  }   if ( state == 'mousedown' && ( obj.readAttribute('cmd') == 'undo' || obj.readAttribute('cmd') == 'redo' ) ){   return false;  }   switch ( obj.readAttribute('state') )  {   case 'true':   {    switch (state)    {	 case 'mouseout':	  this.editor_set_ctl_style(obj, 'button', 'selected');	  break;	 case 'mouseover':	 case 'mousedown':	 case 'mouseup':	  this.editor_set_ctl_style(obj, type, 'down');	  break;    }    break;   }   default:   {    switch (state)    {	 case 'mouseout':	  this.editor_set_ctl_style(obj, type, 'normal');	  break;	 case 'mousedown':	  this.editor_set_ctl_style(obj, type, 'down');	  break;	 case 'mouseover':	 case 'mouseup':	  this.editor_set_ctl_style(obj, type, 'hover');	  break;    }    break;   }  }},editor_set_ctl_style: function( obj, type, mode ){  if ( obj.readAttribute('mode') == mode ){ return; }  // Add in -menu class  var extra = '';   if ( type == 'menu' ){   extra = '_menu';  } else if ( type == 'menubutton' ) {   extra = '_menubutton';  }   // Add in -color if it's a color box  extra	 += obj.readAttribute('colorname') ? '_color' : '';   // Add in -emo if it's an emo   extra	 += obj.readAttribute('emo_id') ? '_emo' : '';   // Set mode...  obj.writeAttribute('mode', mode);   try  {   switch ( mode )   {    case "normal":	 obj.addClassName('rte_normal' + extra).removeClassName('rte_hover').removeClassName('rte_selected');	 break;    case "hover":	 obj.addClassName('rte_hover' + extra ).removeClassName('rte_normal').removeClassName('rte_selected');	 break;    case "selected":    case "down":	 obj.addClassName('rte_selected' + extra ).removeClassName('rte_normal').removeClassName('rte_hover');	 break;   }  }  catch (err)  {   Debug.write( "#6 " + err );  }},set_control_unselectable: function(elem){  if( !$(elem) ){ return; }  $( elem ).descendants().each( function(dec){   dec.writeAttribute( 'unselectable', 'on' );  });   $(elem).writeAttribute( 'unselectable', 'on' );},init_editor_button: function( elem ){  // What command are we running?  elem.writeAttribute( 'cmd',   elem.id.replace( this.id + '_cmd_', '' ) );  elem.writeAttribute( 'editor_id', this.id );  // Add to buttons array  this.items['buttons'][ elem.readAttribute('cmd') ] = elem;  // Set up defaults  elem.writeAttribute('state',  false);  elem.writeAttribute('mode',   'normal');  elem.writeAttribute('real_type', 'button');   elem.observe( 'click',   this.events.button_onmouse_event.bindAsEventListener( this ) );  elem.observe( 'mousedown',  this.events.button_onmouse_event.bindAsEventListener( this ) );  elem.observe( 'mouseover',  this.events.button_onmouse_event.bindAsEventListener( this ) );  elem.observe( 'mouseout',  this.events.button_onmouse_event.bindAsEventListener( this ) );},/* ------------------------------ *//**  * Builds a simple menu  *  * @var  {element} elem The relevant element*/init_editor_menu: function( elem ){   // Build the details  elem.writeAttribute( 'cmd',   elem.id.replace( this.id + '_cmd_', '' ) );  elem.writeAttribute( 'editor_id',  this.id );   this.items['buttons'][ elem.readAttribute('cmd') ] = elem;   // Build wrapper  var wrap = new Element('ul', { id: this.id + '_popup_' + elem.readAttribute('cmd') + '_menu' } );  wrap.writeAttribute( 'cmd', elem.readAttribute('cmd' ) ).addClassName('ipbmenu_content');  wrap.hide();   if( elem.hasClassName('rte_font') )  {   this.fontoptions[ '_default' ] = elem.innerHTML;     ipb.editor_values.get('primary_fonts').each( function(font){    var item = new Element( 'li', { 'id': this.id + '_fontoption_' + font.key } );    item.setStyle( 'font-family: "' + font.value + '"; cursor: pointer' ).addClassName('fontitem');    item.update( font.value );    $( item ).observe( 'click', this.events.font_format_option_onclick.bindAsEventListener( this ) );    wrap.insert( item );       this.fontoptions[ font.key ] = item;   }.bind(this));     elem.insert( { after: wrap } );  }  else if( elem.hasClassName('rte_fontsize') )  {   this.sizeoptions[ '_default' ] = elem.innerHTML;     ipb.editor_values.get('font_sizes').each( function( size ){    var item = new Element( 'li', { id: this.id + '_sizeoption_' + size } );    item.setStyle( 'font-size: ' + this.convert_size( size, 1 ) + 'px; cursor: pointer' ).addClassName('fontitem');    item.update( size );    $( item ).observe( 'click', this.events.font_format_option_onclick.bindAsEventListener( this ) );    wrap.insert( item );    wrap.addClassName("fontsizes");       this.sizeoptions.push( size );   }.bind(this));     elem.insert( { after: wrap } );  }  else if( elem.hasClassName('rte_special') )  {   /*ipb.editor_values.get('other_styles').each( function(style){    var item = new Element( 'li', { id: this.id + '_otherstyle_' + style.key } ).setStyle('cursor: pointer;').addClassName('specialitem');    item.update( style.value[0] );    //$( item ).observe( 'click', this.events.other_styles_onclick.bindAsEventListener( this ) );    wrap.insert( item );       // Set up palette    var item_wrap = new Element('div', {id: this.id + '_palette_other_' + style.key } );    item_wrap.hide().addClassName('ipb_palette').addClassName('extended');    item_wrap.writeAttribute("styleid", style.key);       var _content = ipb.editor_values.get('templates')['generic'].evaluate( {	 id: this.id + '_' + style.key,	 title: style.value[0],	 example: style.value[3],	 option_text: style.value[5] || '',	 value_text: style.value[4] || ''    } );       item_wrap.update( _content );    item_wrap.down('input[type="submit"]').observe('click', this.events.other_styles_onclick.bindAsEventListener( this ) );       $( this.id + '_controls').insert( { bottom: item_wrap } );       if( !style.value[2] )    {	 item_wrap.select('.optional').invoke('remove');    }       this.palettes[ 'otherstyles_' + style.key ] = new ipb.Menu( $( item ), item_wrap, { stopClose: true, offsetX: 50, offsetY: 50 } );    $( item ).observe('click', this.events.other_styles_preshow_onclick.bindAsEventListener( this, style.key ) );   }.bind(this));   */     elem.insert( { after: wrap } );  }  // Init function for IE  var beforeOpen = function( menu ){   this.editor_check_focus();   this.preserve_ie_range();   Debug.write("Preserved IE Range");  }.bind(this);   // Create new menu  new ipb.Menu( $( elem ), wrap, {}, { beforeOpen: beforeOpen } );	},/* ------------------------------ *//**  * Builds a palette  *  * @var  {element} elem The relevant element*/init_editor_palette: function( elem ){  elem.writeAttribute( 'cmd',   elem.id.replace( this.id + '_cmd_', '' ) );  elem.writeAttribute( 'editor_id',  this.id );   this.items['buttons'][ elem.readAttribute('cmd') ] = elem;   wrap = new Element('div', { id: this.id + '_palette_' + elem.readAttribute('cmd') } );  wrap.writeAttribute( 'cmd', elem.readAttribute('cmd') ).addClassName('ipb_palette');  wrap.hide();  opt = {};  var handleReturn = false;   switch( elem.readAttribute('cmd') )  {   case 'forecolor':   case 'backcolor':    var table = new Element('table', { id: this.id + '_' + elem.readAttribute('cmd') + '_palette' }).addClassName('rte_colors');       // At this point IE would quite like you to have a tbody too    var tbody = new Element('tbody');    table.insert( tbody );       var tr = null;    var td = null;    var color = '';       for( i=0; i < ipb.editor_values.get('colors').length; i++ )    {	 color = ipb.editor_values.get('colors')[i];		 if( i % ipb.editor_values.get('colors_perrow') == 0 ){	  tr = new Element('tr');	  tbody.insert( tr );	 }		 td = new Element('td', { id: this.id + '_' + elem.readAttribute('cmd') + '_color_' + color } );	 td.setStyle('background-color: #' + color).setStyle('background-image: none').writeAttribute('colorname', color);		 tr.insert( td );		 // Events	 $( td ).observe('click', this.events.color_cell_onclick.bindAsEventListener( this ) );    }       wrap.insert( table ).addClassName('color_palette');    elem.insert( { after: wrap } );   break;   /*case 'emoticons':    if( Object.isUndefined( ipb.editor_values.get('emoticons') ) )    {	 elem.hide();	 return;    }       /*var table = new Element( 'ul', { id: this.id + '_emoticons_palette' } ).addClassName('rte_emoticons');    var perrow = 10;    var row = null;    var i = 0;       ipb.editor_values.get('emoticons').each( function(emote){	 	 var _tmp = emote.value.split(',');	 var img = new Element('img', { id: 'smid_' + _tmp[0], src: ipb.vars['emoticon_url'] + '/' + _tmp[1] } );	 var li = new Element('li', { id: this.id + '_emoticons_emote_' + _tmp[0] } ).setStyle('').addClassName('emote');		 li.writeAttribute('emo_id', _tmp[0] );	 li.writeAttribute('emo_img', _tmp[1] );	 li.writeAttribute('emo_code', emote.key);		 table.insert( li.insert( img ) );	 $( li ).observe('click', this.events.emoticon_onclick.bindAsEventListener( this ) );	       }.bind(this));       //-------------    var table = new Element( 'table', { id: this.id + '_emoticons_palette' } ).addClassName('rte_emoticons');       // Same as before, tbody please, says IE    var tbody = new Element('tbody');    table.insert( tbody );       var tr = null;    var td = null;       var perrow = 10;    var i = 0;       //Debug.write( ipb.editor_values.get('emoticons') );    ipb.editor_values.get('emoticons').each( function(emote){		 if( i % perrow == 0 )	 {	  tr = new Element( 'tr' );	  tbody.insert( tr );	 }		 i++;		 var _tmp = emote.value.split(',');	 var img = new Element('img', { id: 'smid_' + _tmp[0], src: ipb.vars['emoticon_url'] + '/' + _tmp[1] } );		 td = new Element('td', { id: this.id + '_emoticons_emote_' + _tmp[0] } ).setStyle('cursor: pointer; text-align: center').addClassName('emote');	 td.writeAttribute('emo_id', _tmp[0] );	 td.writeAttribute('emo_img', _tmp[1] );	 td.writeAttribute('emo_code', emote.key);		 td.insert( img );	 tr.insert( td );	 $( td ).observe('click', this.events.emoticon_onclick.bindAsEventListener( this ) );    }.bind(this));	        // IE sucks    if( Prototype.Browser.IE )    {	 var tmpdiv = new Element( 'div' ).setStyle('overflow-x: scroll');	 wrap.insert( tmpdiv.insert( table ) ).addClassName('emoticons_palette');	 elem.insert( { after: wrap } );    }    else    {	 wrap.insert( table ).addClassName('emoticons_palette');	 elem.insert( { after: wrap } );    }       if( this.values.get('show_emoticon_link') )    {	 var emote_link = this.values.get('templates')['emoticons_showall'].evaluate( { id: this.id } );	 wrap.insert( { bottom: emote_link } );		 $( this.id + '_all_emoticons' ).observe( 'click', this.events.show_emoticon_sidebar.bindAsEventListener( this ) );    }        break;*/   case 'link':   case 'image':   case 'email':   case 'media':    if( Object.isUndefined( ipb.editor_values.get('templates')[ elem.readAttribute('cmd') ] ) )    {	 elem.hide();	 return;    }    try {	 wrap.update( ipb.editor_values.get('templates')[ elem.readAttribute('cmd') ].evaluate( { id: this.id } ) );	 wrap.down('input[type="submit"]').observe('click', this.events.palette_submit.bindAsEventListener( this ) );    } catch( err ) { Debug.write("#7 " + err); }	    this.doc_body.insert( { top: wrap } );       if( elem.readAttribute('cmd') == 'link' )    {	 try {	  this.defaults['link_text'] = $F( this.id + '_urltext' );	  this.defaults['link_url'] = $F( this.id + '_url' );	 } catch( err ){ Debug.write( "#8 " + err ); }	 $( elem ).observe('click', this.events.link_onclick.bindAsEventListener( this ) );    }       if( elem.readAttribute('cmd') == 'image' )    {	 try {	  this.defaults['img'] = $F( this.id + '_img' );	 } catch( err ){ Debug.write( "#15 " + err ); }	 $( elem ).observe('click', this.events.image_onclick.bindAsEventListener( this ) );    }       if( elem.readAttribute('cmd') == 'email' )    {	 try {	  this.defaults['email_text'] = $F( this.id + '_emailtext' );	  this.defaults['email'] = $F( this.id + '_email' );	 } catch( err ){ Debug.write( "#8 " + err ); }	 $( elem ).observe('click', this.events.email_onclick.bindAsEventListener( this ) );    }       if( elem.readAttribute('cmd') == 'media' )    {	 try {	  this.defaults['media'] = $F( this.id + '_media' );	 } catch( err ){ Debug.write( "#17 " + err ); }	 $( elem ).observe('click', this.events.media_onclick.bindAsEventListener( this ) );    }       this.key_handlers[ elem.readAttribute('cmd') ] = false;   break;   default:    this.items['buttons'][ elem.readAttribute( 'cmd' ) ] = null;    elem.hide(); // Hide since we dont know what to do with it    wrap.remove();   break;  }   // Insert title  if( elem.readAttribute('title' ) )  {   title = new Element( 'div' );   title.update( elem.readAttribute('title') ).addClassName('rte_title');   wrap.insert( { top: title } );  }   if( !elem.readAttribute('cmd').endsWith('color') ){   opt = { stopClose: true };  }    $( elem ).observe('mouseover', this.events.palette_button_onmouseover.bindAsEventListener( this ) );  $( elem ).observe('mouseover', this.events.palette_onmouse_event.bindAsEventListener( this ) );  $( elem ).observe('mouseout',  this.events.palette_onmouse_event.bindAsEventListener( this ) );  // Init function for IE  var beforeOpen = function( menu ){   this.editor_check_focus();   this.preserve_ie_range();   Debug.write("Preserved IE Range");  }.bind(this);   //this.doc_body.insert( wrap.setStyle('position: absolute; top:0px; left:0px;') );  this.palettes[ elem.readAttribute('cmd') ] = new ipb.Menu( $( elem ), wrap, opt, { beforeOpen: beforeOpen } );},convert_size: function( size, type ){    if( type == 1 )  {   switch( size )   {    case 1:	 return 9;	 break;    case 2:	 return 13;	 break;    case 3:	 return 15;	 break;    case 4:	 return 17;	 break;    case 5:	 return 21;	 break;    case 6:	 return 26;	 break;    case 7:	 return 36;	 break;    default:	 return 13;   }  } else {   switch( size )   {    case '7.5pt':    case '9px': return 1;    case '13px': return 2;    case '15px': return 3;    case '17px': return 4;    case '21px': return 5;    case '26px': return 6;    case '36px': return 7;    default:	 return '';   }  }},format_text: function( e, command, arg ){    // Check for special commands  if( command.startsWith( 'resize_' ) ){   //  }   if( command == 'switcheditor' ){   try {    ipb.switchEditor( this.id );   } catch(err) {    Debug.error( "#9 " + err );   }  }   // Recording state?  if ( ! this.is_rte && command != 'redo' ){   this.history_record_state( this.editor_get_contents() );  }   this.editor_check_focus();   // Execute command  if ( this[ command ] )  {   var return_val = this[ command ](e);  }  else  {   try   {    /*Debug.write( "In format text, selection is: " + this.get_selection() );*/    var return_val = this.apply_formatting( command, false, (typeof arg == 'undefined' ? true : arg) );   }   catch(e)   {    Debug.warn( "#10 " + e );    var return_val = false;   }  }   // Recording state  if ( ! this.is_rte && command != 'undo' ){   this.history_record_state( this.editor_get_contents() );  }   // Set context  this.set_context(command);   // Check focus   this.editor_check_focus();  return return_val;},spellcheck: function(){  // Only IE can use this  if( !Prototype.Browser.IE ){ return; }   try {   if ( this.rte_mode ){    var tmpis = new ActiveXObject("ieSpell.ieSpellExtension").CheckDocumentNode( this.editor_document );   } else {    var tmpis = new ActiveXObject("ieSpell.ieSpellExtension").CheckAllLinkedDocuments( this.editor_document );   }  } catch( exception ) {   if ( exception.number == -2146827859 ) {    if ( confirm( ipb.lang['js_rte_erroriespell'] ? ipb.lang['js_rte_erroriespell'] : "ieSpell not detected.  Click Ok to go to download page." ) )    {	 window.open("http://www.iespell.com/download.php", "Download");    }   }   else   {    alert( ipb.lang['js_rte_errorloadingiespell'] ? ipb.lang['js_rte_errorloadingiespell'] : "Error Loading ieSpell: Exception " + exception.number);   }  } },wrap_tags: function(tag_name, has_option, selected_text){  //-----------------------------------------  // Fix up for HTML use  //-----------------------------------------   var tag_close = tag_name;   if ( ! this.use_bbcode )  {   switch( tag_name )   {    case 'url':	 tag_name  = 'a href';	 tag_close = 'a';	 break;	 case'email':	 tag_name   = 'a href';	 tag_close  = 'a';	 has_option = 'mailto:' + has_option;	 break;    case 'img':	 tag_name  = 'img src';	 tag_close = '';	 break;    case 'font':	 tag_name  = 'font face';	 tag_close = 'font';	 break;    case 'size':	 tag_name  = 'font size';	 tag_close = 'font';	 break;    case 'color':	 tag_name  = 'font color';	 tag_close = 'font';	 break;    case 'background':	 tag_name  = 'font bgcolor';	 tag_close = 'font';	 break;    case 'indent':	 tag_name = tag_close = 'blockquote';	 break;    case 'left':    case 'right':    case 'center':	 has_option = tag_name;	 tag_name   = 'div align';	 tag_close  = 'div';	 break;   }  }   //-----------------------------------------  // Got selected text?  //-----------------------------------------   if ( Object.isUndefined( selected_text ) )  {   selected_text = this.get_selection();   selected_text = (selected_text === false) ? '' : new String(selected_text);  }   //-----------------------------------------  // Using option?  //-----------------------------------------   if ( has_option === true )  {   var option = prompt( ips_language_arrayp['js_rte_optionals'] ? ips_language_arrayp['js_rte_optionals'] : "Enter the optional arguments for this tag", '');     if ( option )   {    var opentag = this.open_brace + tag_name + '="' + option + '"' + this.close_brace;   }   else   {    return false;   }  }  else if ( has_option !== false )  {   var opentag = this.open_brace + tag_name + '="' + has_option + '"' + this.close_brace;  }  else  {   var opentag = this.open_brace + tag_name + this.close_brace;  }  var closetag = ( tag_close != '' ) ? this.open_brace + '/' + tag_close + this.close_brace : '';  var text	 = opentag + selected_text + closetag;  //Debug.write( text );   /*Debug.write("Wrap tags selection is: " + this.get_selection() );*/  this.insert_text( text );   return false;},/* ! wrap_tags_lite */wrap_tags_lite: function( start_text, close_text, replace_selection ){  selected_text = '';   if( Object.isUndefined( replace_selection ) || replace_selection == 0 )  {   // Got selected text?   selected_text = this.get_selection();   selected_text = (selected_text === false) ? '' : new String(selected_text);  }   this.insert_text( start_text + selected_text + close_text );   return false;},/* ! preserve_ie_range */preserve_ie_range: function(){  if ( Prototype.Browser.IE && document.selection && ! this.emoClick )  {   /* Don't preserve range for emoticon click. It buggers things up epically */   this._ie_cache = this.is_rte ? ( this.editor_document.selection.createRange ) ? this.editor_document.selection.createRange() : null : document.selection.createRange();   Debug.write( "Preserved IE Range: ");   this.emoClick = false;  }},clean_html: function( t ){  if ( t.blank() || Object.isUndefined(t) )  {   return t;  }   // Sort out BR tags  t = t.replace( /<br>/ig, "<br />");  // Remove empty <p> tags  t = t.replace( /<p>(\s+?)?<\/p>/ig, "");  // HR issues  t = t.replace( /<p><hr \/><\/p>/ig				    , "<hr />");  t = t.replace( /<p> <\/p><hr \/><p> <\/p>/ig, "<hr />");  // Attempt to fix some formatting issues...  t = t.replace( /<(p|div)([^&]*)>/ig	 , "\n<$1$2>\n" );  t = t.replace( /<\/(p|div)([^&]*)>/ig   , "\n</$1$2>\n");  t = t.replace( /<br \/>(?!<\/td)/ig	 , "<br />\n"   );  // And some table issues...  t = t.replace( /<\/(td|tr|tbody|table)>/ig  , "</$1>\n");  t = t.replace( /<(tr|tbody|table(.+?)?)>/ig , "<$1>\n" );  t = t.replace( /<(td(.+?)?)>/ig			 , "\t<$1>" );   // Newlines  t = t.replace( /<p> <\/p>/ig	 , "<br />");  t = t.replace( /<br \/>/ig		    , "<br />\n");  t = t.replace( /<br>/ig			   , "<br />\n");   t = t.replace( /<td><br \/>\n<\/td>/ig  , "<td><br /></td>" );   // Script tags  t = t.replace( /<script/g , "<script" );  t = t.replace( /<\/script>/g , "</script>" );   t = t.replace( /^[\s\n\t]+/g, '' );  t = t.replace( /[\s\n\t]+$/g, '' );  t = t.replace( /<br \/>$/g, '' );   return t;},strip_empty_html: function( html ){  html = html.replace( '<([^>]+?)></([^>]+?)>', "");  return html;},strip_html: function( html ){  html = html.replace( /<\/?([^>]+?)>/ig, "");  return html;},history_record_state: function( content ){  // Make sure we're not recording twice   if ( this.history_recordings[ this.history_pointer ] != content )  {   this.history_pointer++;   this.history_recordings[ this.history_pointer ] = content;     // Make sure we've not gone back in time     if ( !Object.isUndefined( this.history_recordings[this.history_pointer + 1] ) )   {    this.history_recordings[this.history_pointer + 1] = null;   }  }},unhtmlspecialchars: function( html ){  html = html.replace( /"/g, '"' );  html = html.replace( /</g  , '<' );  html = html.replace( />/g  , '>' );  html = html.replace( /&/g , '&' );   return html;},htmlspecialchars: function( html ){  html = html.replace(/&/g, "&");  html = html.replace(/"/g, """);  html = html.replace(/</g, "<");  html = html.replace(/>/g, ">");   return html;},history_time_shift: function( inc ){  var i = this.history_pointer + inc;   if ( i >= 0 && this.history_recordings[ i ] != null && typeof this.history_recordings[ i ] != 'undefined' )  {   this.history_pointer += inc;  }},history_fetch_recording: function(){  if (  !Object.isUndefined( this.history_recordings[ this.history_pointer ]  ) &&	 this.history_recordings[ this.history_pointer ] != null   )  {   return this.history_recordings[ this.history_pointer ];  }  else  {   return false;  }},ipb_quote: function(){  this.wrap_tags_lite(  '[quote]', '[/quote]', 0);},ipb_code: function(){  this.wrap_tags_lite( '[code]', '[/code]
', 0);},toggleEmoticons: function( e ){  if( this.showing_sidebar )  {   $( this.id + '_sidebar').hide();   $( 'editor_' + this.id ).removeClassName('with_sidebar');   ipb.Cookie.set( 'emoticon_sidebar', 0, 0 );   this.showing_sidebar = false;  }  else  {   if( this.emoticons_loaded )   {    $( this.id + '_emoticon_holder' ).show();   }   else   {       this.buildEmoticons();   }       $( this.id + '_sidebar' ).show();   $( 'editor_' + this.id ).addClassName('with_sidebar');   ipb.Cookie.set( 'emoticon_sidebar', 1, 1 );   this.showing_sidebar = true;  } },buildEmoticons: function(){  var table = new Element( 'table', { id: this.id + '_emoticons_palette' } ).addClassName('rte_emoticons');  var tbody = new Element('tbody'); // IE needs a tbody  table.insert( tbody );  var perrow = 2;  var classname = '1';  var i = 0;   //Cycle through emoticons list to build  ipb.editor_values.get('emoticons').each( function(emote){     if( i % perrow == 0 )   {    tr = new Element( 'tr' ).addClassName('row' + classname);    tbody.insert( tr );    classname = ( classname == '1' ) ? '2' : '1';   }     i++;     var _tmp = emote.value.split(',');   var img = new Element('img', { id: 'smid_' + _tmp[0], src: ipb.vars['emoticon_url'] + '/' + _tmp[1] } );     td = new Element('td', { id: this.id + '_emoticons_emote_' + _tmp[0] } ).setStyle('cursor: pointer; text-align: center').addClassName('emote');   td.writeAttribute('emo_id', _tmp[0] );   td.writeAttribute('emo_img', _tmp[1] );   td.writeAttribute('emo_code', emote.key);     td.insert( img );   tr.insert( td );   $( td ).observe('click', this.events.emoticon_onclick.bindAsEventListener( this ) );  }.bind(this));   $( this.id + '_emoticon_holder' ).update( table ).show();  this.emoticons_loaded = true;   if( $( this.id + '_showall_emoticons' ) ){   $( this.id + '_showall_emoticons' ).observe('click', this.showAllEmoticons.bindAsEventListener( this ));  }   if( $( this.id + '_close_sidebar' ) ){   $( this.id + '_close_sidebar' ).observe('click', this.toggleEmoticons.bindAsEventListener( this ) );  }},showAllEmoticons: function( e ){  // Get the emoticons  if( Object.isUndefined( inACP ) || inACP == false ){   var url = ipb.vars['base_url'];  } else {   var url = ipb.vars['front_url'];  }  url += "app=forums&module=ajax&section=emoticons&editor_id=" + this.id + "&secure_key=" + ipb.vars['secure_hash'];  new Ajax.Request( url.replace(/&/g, '&'),	  {	   method: 'get',	   onSuccess: function(t)	   {	    $( this.id + '_emoticon_holder').update( t.responseText );	    if( $( this.id + '_showall_bar' ) ){		 $( this.id + '_showall_bar' ).hide();		 $( this.id + '_emoticon_holder').addClassName('no_bar');	    }	   }.bind(this)	  }); }});//==============================================================================================================//// MOZ SPECIFIC CODEif( ( Prototype.Browser.Gecko || Prototype.Browser.WebKit ) && USE_RTE ){_editor.prototype.editor.prototype.ORIGINAL_editor_set_content = _editor.prototype.editor.prototype.editor_set_content;_editor.prototype.editor.prototype.ORIGINAL_apply_formatting = _editor.prototype.editor.prototype.apply_formatting;Debug.write( "Adding mozilla-specific methods" );_editor.prototype.editor.addMethods({  _moz_test: function()  {   return "Test: " + this.id;  },  togglesource_pre_show_html: function()  {   this.editor_document.designMode = 'off';  },  togglesource_post_show_html: function()  {   this.editor_document.designMode = 'on';  },  editor_set_content: function( initial_text )  {   this.ORIGINAL_editor_set_content( initial_text );     Event.observe( this.editor_document, 'keypress', this.events.editor_document_onkeypress.bindAsEventListener(this) );   // Remove spellcheck button   if( $( this.id + '_cmd_spellcheck' ) ){    $( this.id + '_cmd_spellcheck' ).hide();    this.hidden_objects[ this.id + '_cmd_spellcheck' ] = 1;   }   // Kill tags   if ( this.use_bbcode && $( this.id + '_cmd_justifyfull' ) )   {    $( this.id + '_cmd_justifyfull' ).hide();    this.hidden_objects[ this.id + '_cmd_justifyfull' ] = 1;   }   // Go on.. cursor, flash you bastard    try   {    var _y = parseInt( window.pageYOffset );    // Sometimes moves the focus to the RTE    this.editor_document.execCommand("inserthtml", false, " ");    this.editor_document.execCommand("undo"	  , false, null);    // Restore Y    scroll( 0, _y );   }   catch(error)   {    Debug.write( "#11 " + error );   }  },   editor_set_functions: function()  {   Event.observe( this.editor_document,  'mouseup',  this.events.editor_document_onmouseup.bindAsEventListener(this) );   Event.observe( this.editor_document,  'keyup',  this.events.editor_document_onkeyup.bindAsEventListener(this) );   Event.observe( this.editor_document,  'keydown',  this.events.editor_document_onkeydown.bindAsEventListener(this) );    Event.observe( this.editor_window,   'focus',  this.events.editor_window_onfocus.bindAsEventListener( this ) );   Event.observe( this.editor_window,   'blur',  this.events.editor_window_onblur.bindAsEventListener( this ) );    },  apply_formatting: function(cmd, dialog, arg)  {   // Moz fix to allow list button click before clicking in RTE   if ( cmd != 'redo' )   {    this.editor_document.execCommand("inserthtml", false, " ");    this.editor_document.execCommand("undo"	  , false, null);   }    this.editor_document.execCommand( 'useCSS', false, true );   this.editor_document.execCommand( 'styleWithCSS', false, false );     return this.ORIGINAL_apply_formatting(cmd, dialog, arg);  },  get_selection: function()  {   var selection = this.editor_window.getSelection();    this.editor_check_focus();   var range	 = selection ? selection.getRangeAt(0) : this.editor_document.createRange();    return this.moz_read_nodes( range.cloneContents(), false );  },  moz_add_range: function(node, text_length)  {   /*Debug.write( "In moz_add_range" );*/   this.editor_check_focus();   var sel   = this.editor_window.getSelection();   var range = this.editor_document.createRange();    range.selectNodeContents(node);    if ( text_length )   {    range.setEnd(  node, text_length);    range.setStart(node, text_length);   }    sel.removeAllRanges();   sel.addRange(range);  },  moz_read_nodes: function(root, toptag)  {   var html	  = "";   var moz_check = /_moz/i;   switch (root.nodeType)   {    case Node.ELEMENT_NODE:    case Node.DOCUMENT_FRAGMENT_NODE:    {	 var closed;	 if (toptag)	 {	  closed   = ! root.hasChildNodes();	  html	 = '<' + root.tagName.toLowerCase();	  var attr = root.attributes;	  for (var i = 0; i < attr.length; ++i)	  {	   var a = attr.item(i);	   if (!a.specified || a.name.match(moz_check) || a.value.match(moz_check))	   {	    continue;	   }	   html += " " + a.name.toLowerCase() + '="' + a.value + '"';	  }	  html += closed ? " />" : ">";	 }	 for (var i = root.firstChild; i; i = i.nextSibling)	 {	  html += this.moz_read_nodes(i, true);	 }	 if (toptag && !closed)	 {	  html += "</" + root.tagName.toLowerCase() + ">";	 }    }    break;    case Node.TEXT_NODE:    {	 html = this.htmlspecialchars(root.data);      }    break;   }   return html;  },  moz_goto_parent_then_body: function( n )  {   var o = n;   while (n.parentNode != null && n.parentNode.nodeName == 'HTML')   {    n = n.parentNode;   }   if (n)   {    for ( var c = 0; c < n.childNodes.length; c++ )    {	 if ( n.childNodes[c].nodeName == 'BODY' )	 {	  return n.childNodes[c];	 }    }   }   return o;  },  moz_insert_node_at_selection: function(text, text_length)  {   this.editor_check_focus();   var sel   = this.editor_window.getSelection();   var range = sel ? sel.getRangeAt(0) : this.editor_document.createRange();    sel.removeAllRanges();   range.deleteContents();   var node = range.startContainer;   var pos  = range.startOffset;    text_length = text_length ? text_length : 0;    if ( node.nodeName == 'HTML' )   {    node = this.moz_goto_parent_then_body( node );   }    switch (node.nodeType)   {    case Node.ELEMENT_NODE:    {	 if (text.nodeType == Node.DOCUMENT_FRAGMENT_NODE)	 {	  selNode = text.firstChild;	 }	 else	 {	  selNode = text;	 }	 node.insertBefore(text, node.childNodes[pos]);	 this.moz_add_range(selNode, text_length);    }    break;    case Node.TEXT_NODE:    {	 if (text.nodeType == Node.TEXT_NODE)	 {	  var text_length = pos + text.length;	  node.insertData(pos, text.data);	  range = this.editor_document.createRange();	  range.setEnd(node, text_length);	  range.setStart(node, text_length);	  sel.addRange(range);	 }	 else	 {	  node = node.splitText(pos);	  var selNode;	  if (text.nodeType == Node.DOCUMENT_FRAGMENT_NODE)	  {	   selNode = text.firstChild;	  }	  else	  {	   selNode = text;	  }	  node.parentNode.insertBefore(text, node);	  this.moz_add_range(selNode, text_length);	 }    }    break;   }     sel.removeAllRanges();  },  insert_text: function(str, len)  {   fragment = this.editor_document.createDocumentFragment();   holder   = this.editor_document.createElement('span');    holder.innerHTML = str;   while (holder.firstChild){    fragment.appendChild( holder.firstChild );   }    var my_length = parseInt( len ) > 0 ? len : 0;   this.moz_insert_node_at_selection( fragment, my_length );    },  insert_emoticon: function( emo_id, emo_image, emo_code, event )  {   this.editor_check_focus();   try   {    // INIT    var _emo_url  = ipb.vars['emoticon_url'] + "/" + emo_image;      this.editor_document.execCommand('InsertImage', false, _emo_url);      var images = this.editor_document.getElementsByTagName('img');    //----------------------------------    // Sort through and fix emo    //----------------------------------      if ( images.length > 0 )    {	 for ( var i = 0 ; i <= images.length ; i++ )	 {	  if ( !Object.isUndefined( images[i] ) && images[i].src.match( new RegExp( _emo_url + "$" ) ) )	  {	   if ( ! images[i].getAttribute('alt') )	   {	    images[i].setAttribute( 'alt', this.unhtmlspecialchars( emo_code ) );	    images[i].setAttribute( 'class', 'bbc_emoticon' );	   }	  }	 }    }   }   catch(error)   {    Debug.write( "#12 " + error );    //alert( error );   }    if ( this.emoticon_window_id != '' && typeof( this.emoticon_window_id ) != 'undefined' )   {    this.emoticon_window_id.focus();   }  }});};//==============================================================================================================//// OPERA SPECIFIC CODEif( Prototype.Browser.Opera && USE_RTE ){_editor.prototype.editor.prototype.ORIGINAL_editor_set_content = _editor.prototype.editor.prototype.editor_set_content;_editor.prototype.editor.addMethods({  editor_set_content: function(initial_text)  {   this.ORIGINAL_editor_set_content(initial_text);     // Opera doesn't auto 100% the height, so   // lets force the body to be 100% high    this.editor_document.body.style.height = '95%';    Event.observe( this.editor_document, 'keypress', this.events.editor_document_onkeypress.bindAsEventListener( this ) );    // Remove spellcheck button   if ( $( this.id + '_cmd_spellcheck' ) )   {    $( this.id + '_cmd_spellcheck' ).hide();    this.hidden_objects[ this.id + '_cmd_spellcheck' ] = 1;   }     // Kill tags   if ( this.use_bbcode )   {    $( this.id + '_cmd_justifyfull' ).hide();      this.hidden_objects[ this.id + '_cmd_justifyfull' ] = 1;   }    // Go on.. cursor, flash you bastard   try   {    var _y = parseInt( window.pageYOffset );      // Sometimes moves the focus to the RTE    this.editor_document.execCommand("inserthtml", false, "-");    this.editor_document.execCommand("undo"	  , false, null);      // Restore Y    scroll( 0, _y );   }   catch(error)   {    Debug.write( "#13 " + error );   }  },  insert_text: function(str)  {   this.editor_document.execCommand('insertHTML', false, str);  },  get_selection: function()  {   var selection = this.editor_window.getSelection();    this.editor_check_focus();    var range = selection ? selection.getRangeAt(0) : this.editor_document.createRange();   var lsserializer = document.implementation.createLSSerializer();    return lsserializer.writeToString(range.cloneContents());  },  editor_set_functions: function()  {   Event.observe( this.editor_document,  'mouseup',  this.events.editor_document_onmouseup.bindAsEventListener( this ) );   Event.observe( this.editor_document,  'keyup',  this.events.editor_document_onkeyup.bindAsEventListener( this ) );   Event.observe( this.editor_window,   'focus',  this.events.editor_window_onfocus.bindAsEventListener( this ) );   Event.observe( this.editor_window,   'blur',  this.events.editor_window_onblur.bindAsEventListener( this ) );  }});}//==============================================================================================================//// EVENTS_editor_events = Class.create({handle_custom_command: function( e, cmd ){  Event.stop(e);   //Debug.write( Event.element(e) );   var elem = ( $( Event.element(e) ).hasClassName('specialitem') ) ? $( Event.element(e) ) : $( Event.element( e ) ).up('.specialitem');  if( !$( elem ) ){ return; }   var cmd = $( elem ).id.replace( this.id + '_cmd_custom_', '' );  var info = this.values.get('bbcodes').get( cmd );   Debug.write( cmd );   if( info['single_tag'] == '1' && info['useoption'] == '0' )  {   this.wrap_tags_lite( '[' + info['tag'] + ']', '', 1);   ipb.menus.registered.get( this.id + '_cmd_otherstyles' ).doClose();   return;  }  else  {   var selection = this.get_selection();   try {      window.setTimeout( function()	 {	  if( info['useoption'] == '1' && info['single_tag'] == '1' )	  {	   if( $( this.id + '_' + cmd + '_option') ){	    $( this.id + '_' + cmd + '_option' ).focus();	   }	  }	  else	  { 	   if( selection )	   {	    $( this.id + '_' + cmd + '_text' ).value = selection;	   }	   if( $( this.id + '_' + cmd + '_option') ){	    $( this.id + '_' + cmd + '_option' ).focus();	   } else {	    $( this.id + '_' + cmd + '_text' ).activate();	   }	  }	 }.bind(this), 200    );   } catch( err ){    Debug.write( err );   }  }},handle_custom_onclick: function(e){  Debug.write("Here 5");  var elem = Event.element(e);  if( !elem.hasClassName('ipb_palette') ){   elem = Event.findElement(e, '.ipb_palette');  }   var styleid = elem.readAttribute("styleid");  if( !styleid || Object.isUndefined( this.values.get('bbcodes').get( styleid ) ) ) { return; }  var info = this.values.get('bbcodes').get( styleid );  Debug.write("Here 4");  // Check for required option  if( info['useoption'] == '1' && info['optional_option'] == '0' && $F( this.id + '_' + styleid + '_option' ).blank() )  {   alert( ipb.lang['option_is_empty'] );   try {    $( this.id + '_' + styleid + '_option' ).focus();   } catch( err ){ }     return;  }  Debug.write("Here 3");  // Now work out what kind of tag to build...  if( info['useoption'] == '1' && info['single_tag'] == '1' )  {   var option = $F( this.id + '_' + styleid + '_option' );     if( info['optional_option'] == '1' && option.blank() ){    this.wrap_tags_lite( '[' + info['tag'] + ']', '', 1 );   } else {    this.wrap_tags_lite( '[' + info['tag'] + "='" + option + "']", '', 1 );   }  }  else  {   Debug.write("Here 1");   var value = $F( this.id + '_' + styleid + '_text' );   Debug.write("Here 2");   var option = ( $(this.id + '_' + styleid + '_option') ) ? $F( this.id + '_' + styleid + '_option' ) : '';     // If this is RTE, change newlines to br tags.   // @link http://community.invisionpower.com/tracker/issue-21173-line-breaks-arent-converted-to-%26lt%3Bbr%26gt%3B-in-code-popup-in-rte/   if( USE_RTE )   {    value = value.replace( /\n/g, '<br />' );   }     if( ( info['optional_option'] == '1' && option.blank() ) || info['useoption'] == '0' ){    this.wrap_tags_lite( '[' + info['tag'] + ']' + value, '[/' + info['tag'] + ']', 1 );   } else {    this.wrap_tags_lite( '[' + info['tag'] + "='" + option + "']" + value, '[/' + info['tag'] + ']', 1 );   }  }  /*var value = $F( this.id + '_' + styleid + '_text' );   if( style[2] ){   var option = $F( this.id + '_' + styleid + '_option' );   this.wrap_tags_lite( '[' + style[1] + "='" + option + "']" + value, '[/' + style[1] + ']' );  }  else  {   this.wrap_tags_lite( '[' + style[1] + ']' + value, '[/' + style[1] + ']' );  }*/   this.palettes[ 'otherstyles_' + styleid ].doClose();},/* ! editor_document_onmouseup */editor_document_onmouseup: function(e){  Debug.write("Mouse up");  ipb.menus.closeAll(); // Close menus  this.set_context();  if ( Prototype.Browser.IE )  {   //this.preserve_ie_range();  }},editor_document_onkeyup: function(e){  this.set_context();},editor_document_onkeydown: function(e){  //alert( this.forum_fix_ie_newlines + "   " + Prototype.Browser.IE + "    " + e.keyCode );   if ( this.forum_fix_ie_newlines &&	 Prototype.Browser.IE &&	 e.keyCode == Event.KEY_RETURN ) // Enter key  {   var _test = ['Indent', 'Outdent', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'InsertOrderedList', 'InsertUnorderedList'];		   for ( i=0; i< _test.length; i++ )   {    if ( this.editor_document.queryCommandState( _test[ i ] ) )    {	 return true;    }   }     var sel   = this.editor_document.selection;		 var ts    = this.editor_document.selection.createRange();   var t	 = ts.htmlText.replace(/<p([^>]*)>(.*)<\/p>/i, '$2');  		 if ( (sel.type == "Text" || sel.type == "None") )		 {			  ts.pasteHTML( "<br />" + t + "\n" );		 }		 else		 {			  this.editor_document.innerHTML += "<br />\n";		 }		 this.editor_window.event.returnValue = false;		 ts.select();		 this.editor_check_focus();	 }},editor_document_onkeypress: function(e){  if ( e.ctrlKey )  {   switch (String.fromCharCode(e.charCode).toLowerCase())   {    case 'b': cmd = 'bold';	  break;    case 'i': cmd = 'italic';    break;    case 'u': cmd = 'underline'; break;    default: return;   }   //e.preventDefault();   Event.stop(e);   this.apply_formatting(cmd, false, null);   return false;  }},editor_window_onfocus: function(e){  this.has_focus = true;},editor_window_onblur: function(e){  this.has_focus = false;},button_onmouse_event: function(e){  if( !Event.element(e).hasClassName( 'rte_control' ) ){   elem = $( Event.element(e) ).up('.rte_control');  } else {   elem = Event.element(e);  }   Debug.write( elem.readAttribute('cmd') );   if ( e.type == 'click' )  {   if( elem.readAttribute('cmd').startsWith('custom_') )   {    // Return so that the custom styles code can run interruptedb    return;   }   else if( elem.readAttribute('cmd') == 'help' )   {    //Event.stop(e);    if( inACP )    {	 window.open( ipb.vars['front_url'] + "&app=forums&module=extras&section=legends&do=bbcode", "bbcode", "status=0,toolbar=0,width=1024,height=800,scrollbars=1");    }    else    {	 window.open( ipb.vars['base_url'] + "&app=forums&module=extras&section=legends&do=bbcode", "bbcode", "status=0,toolbar=0,width=1024,height=800,scrollbars=1");    }    Event.stop(e);    return false;   }   else if( elem.readAttribute('cmd').startsWith('r_') )   {    // Resize commands    var editorSize = $( this.id + '_textarea' ).getHeight();       if( elem.readAttribute('cmd') == 'r_small' ){	 this.resize_to( editorSize - 100 );    } else {	 this.resize_to( editorSize + 100 );    }   }   else if( elem.readAttribute('cmd') == 'emoticons' )   {    this.toggleEmoticons( e );   }   else   {    this.format_text( e, elem.readAttribute('cmd'), false, true);   }  }   Event.stop(e); // Removed if(IE) check  this.set_button_context(elem, e.type);},font_format_option_onclick: function(e){   if( !Event.element(e).hasClassName('fontitem') ){   elem = Event.element(e).up('.fontitem');  } else {   elem = Event.element(e);  }   cmd = $( elem ).up('.ipbmenu_content').readAttribute('cmd');   //this.editor_check_focus();  //this.preserve_ie_range();  /*Debug.write( "Selection: " + this.get_selection() );  Debug.write( "Format text option: " + elem.innerHTML );*/   this.format_text(e, cmd, elem.innerHTML);},color_cell_onclick: function(e){  elem = Event.element(e);  cmd = $( elem ).up('.ipb_palette').readAttribute('cmd');   this.format_text(e, cmd, '#' + elem.readAttribute('colorname'));  this.palettes[ cmd ].doClose();},palette_button_onmouseover: function(e){  if( !Event.element(e).hasClassName( 'rte_palette' ) ){   elem = $( Event.element(e) ).up('.rte_palette');  } else {   elem = Event.element(e);  }   elem.setStyle('cursor: pointer;');},palette_onmouse_event: function(e){  if( !Event.element(e).hasClassName( 'rte_control' ) ){   elem = $( Event.element(e) ).up('.rte_control');  } else {   elem = Event.element(e);  }   if( e.type == 'mouseover' ){   $( elem ).addClassName('rte_hover');  } else {   $( elem ).removeClassName('rte_hover');  }},palette_return_key: function(e){  /*elem = Event.element(e);  palette = elem.up('.ipb_palette');  if( !palette ){ return; }  cmd = palette.readAttribute('cmd');    if( e.keyCode == Event.KEY_RETURN )  {   Debug.write( cmd );     var test = this.events.palette_submit.bind( this, e );   test();   test = null;   Event.stop(e);  }*/},palette_submit: function(e){  elem = Event.element(e);  palette = elem.up('.ipb_palette');  if( !palette ){ return; }  cmd = palette.readAttribute('cmd');   Debug.write( $( elem ).id + " " + $( palette ).id + " " + cmd  );  // What are we doing?  switch( cmd )  {   case 'link':    var url = $F( this.id + '_url' );    var text = $F( this.id + '_urltext' );       if( url == 'http://' || url.blank() ){ return; };    if( text.blank() ){	 text = url;    }       this.wrap_tags( 'url', url, text );   break;   case 'image':    var img = $F( this.id + '_img' );       if( img == 'http://' || img.blank() ){ return; };       if ( ! this.is_rte ){	 this.wrap_tags( 'img', false, img );    } else {	 this.wrap_tags( 'img', img, '' );    }   break;   case 'email':    var email = $F( this.id + '_email' );    var text = $F( this.id + '_emailtext' );       if( email.blank() || email.indexOf('@') == -1 ){ return; }    if( text.blank() ){	 text = email;    }       this.wrap_tags( 'email', email, text );   break;   case 'media':    var url = $F( this.id + '_media' );       if( url.blank() ){ return; }    if( ! this.is_rte ){	 this.wrap_tags( 'media', false, url );    } else {	 this.wrap_tags_lite( '
' + url, '' );    }   break;  }   this.palettes[ cmd ].doClose();},emoticon_onclick: function(e){  Event.stop(e);  var elem = Event.element(e);  var emo = elem.up('.emote');   if( !emo )  {   return false;  }    this.insert_emoticon( emo.readAttribute('emo_id'), emo.readAttribute('emo_img'), emo.readAttribute('emo_code'), e );},link_onclick: function(e){  // Any selected text?  var selection = this.get_selection();  var _active = null;   try {   if( selection )   {    Debug.write( "**selection: " + selection );       /* Got an image? */    if( selection.match( /<img/ ) || selection.match( /\[img\]/ ) )    {	 /* Make sure it's valid BBcode */	 if ( ! this.is_rte )	 {	  selection = selection.gsub( /<img src=['"]([^'"]+?)['"]\s+?\/>/, function( match ) { return ""; } );	 }		 $( this.id + '_url' ).value	 = this.defaults['link_url'];	 $( this.id + '_urltext' ).value = selection;    }    else if( selection.match(/<a/) )    {	 if ( res = selection.match( /href="([^"]+?)"([^>]+?)?>([^<]+?)<\/a>/i ) )	 {	  Debug.write( res );	  if ( res.length )	  {	   $( this.id + '_url' ).value = res[1];	   $( this.id + '_urltext' ).value = res[3];	  }	  else	  {	   $( this.id + '_url' ).value = selection.strip();	   $( this.id + '_urltext' ).value = this.defaults['link_text'];	  }	  _active = $( this.id + '_urltext' );	 }    }    else if( selection.match(/[A-Za-z]+:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{3}/) ){	 $( this.id + '_url' ).value = selection.strip();	 $( this.id + '_urltext' ).value = this.defaults['link_text'];	 _active = $( this.id + '_urltext' );    } else {	 $( this.id + '_urltext' ).value = selection.strip();	 $( this.id + '_url' ).value = this.defaults['link_url'];	 _active = $( this.id + '_url' );    }   }   else   {    $( this.id + '_urltext' ).value = this.defaults['link_text'];    $( this.id + '_url' ).value = this.defaults['link_url'];    _active = $( this.id + '_url' );   }    if( !this.key_handlers[ 'url' ] )   {    $( this.id + '_url' ).observe('keypress', this.events.palette_return_key.bindAsEventListener( this ));    $( this.id + '_urltext' ).observe('keypress', this.events.palette_return_key.bindAsEventListener( this ));    this.key_handlers[ 'url' ] = true;   }     window.setTimeout( function()    {	 $( _active ).activate();    }.bind(this), 200   );     } catch(err){ Debug.write( "#13 " + err ); }},image_onclick: function(e){   var selection = this.get_selection();  var msg = ( selection && !selection.startsWith('<IMG') ) ? selection : this.defaults['img'];   try {   $( this.id + '_img' ).value = msg;     if( !this.key_handlers[ 'image' ] )   {    $( this.id + '_img' ).observe('keypress', this.events.palette_return_key.bindAsEventListener( this ));    this.key_handlers[ 'image' ] = true;   }     window.setTimeout( function()    {	 $( this.id + '_img' ).activate();    }.bind(this), 200   );  } catch(err){ Debug.write( "#14 " + err ); }},media_onclick: function(e){   var selection = this.get_selection();  var msg = ( selection ) ? selection : this.defaults['media'];   try {   $( this.id + '_media' ).value = msg;     if( !this.key_handlers[ 'media' ] )   {    $( this.id + '_media' ).observe('keypress', this.events.palette_return_key.bindAsEventListener( this ));    this.key_handlers[ 'media' ] = true;   }     window.setTimeout( function()    {	 $( this.id + '_media' ).activate();    }.bind(this), 200   );  } catch(err){ Debug.write( "#18 " + err ); }},email_onclick: function(e){  var selection = this.get_selection();  var _active = $( this.id + '_email' );   try {   if( selection )   {    if( selection.match(/([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+/) )    {	 $( this.id + '_email' ).value = selection.strip();	 $( this.id + '_emailtext' ).value = this.defaults['email_text'];	 _active = $( this.id + '_emailtext' );    }    else    {	 $( this.id + '_emailtext' ).value = selection.strip();	 $( this.id + '_email' ).value = this.defaults['email'];    }   }   else   {    $( this.id + '_emailtext' ).value = this.defaults['email_text'];    $( this.id + '_email' ).value = this.defaults['email'];   }     if( !this.key_handlers[ 'email' ] )   {    $( this.id + '_email' ).observe('keypress', this.events.palette_return_key.bindAsEventListener( this ));    $( this.id + '_emailtext' ).observe('keypress', this.events.palette_return_key.bindAsEventListener( this ));    this.key_handlers[ 'email' ] = true;   }     window.setTimeout( function()    {	 $( _active ).activate();    }.bind(this), 200   );  } catch( err ){ Debug.write( "#16 " + err ); }},show_emoticon_sidebar: function( e ){  // Get the emoticons  if( Object.isUndefined( inACP ) || inACP == false ){   var url = ipb.vars['base_url'];  } else {   var url = ipb.vars['front_url'];  }   url += "app=forums&module=ajax&section=emoticons&editor_id=" + this.id;   new Ajax.Request( url.replace(/&/g, '&'),	  {	   method: 'get',	   onSuccess: function(t)	   {	    // Add the sidebar	    $('editor_' + this.id).addClassName('with_sidebar');	    var div = $('editor_' + this.id).down('.sidebar');	   	    div.update( this.values.get('templates')['emoticon_wrapper'].evaluate( { id: this.id } ) );	    $( this.id + '_emoticon_holder').update( t.responseText );	    div.show();	   	    this.palettes[ 'emoticons' ].doClose();	   }.bind(this)	  });},//called staticallyaddEmoticon: function( code, id, img, editorid ){  try {   this.insert_emoticon( '', img, code, '' );  }  catch(err)  {   Debug.error( err );  }}});var x_expanded = new Array();function editorMinimize( key ){Debug.write( 'shrinking: ' + key );x_expanded[key] = 0;$(key + '_textarea').setStyle( { height: '70px' } );$('editor_' + key).removeClassName('ips_editor');$(key + '_controls').hide();/* is there value? */if ( $(key + '_textarea').value ){  editorExpand( key );}$(key + '_textarea').observe( 'focus', function(e) {  editorExpand( key );} );}function editorExpand( key ){$H(x_expanded).each( function(i){  /* Shrink set up editors */  if ( i.key != key )  {   editorCollapse( i.key );  }} );if ( !x_expanded[key] || x_expanded[key] == 0 ){  Debug.write(" expanding: " + key);  $(key + '_controls').appear();  $('editor_' + key).addClassName('ips_editor');   ipb.editors[key] = new ipb.editor( key, USE_RTE );  $( ipb.editors[key ] ).resize_to( 250 );  x_expanded[ key ] = 1;   try  {   ipb.editors[key].editor_window.focus();  } catch(err) { Debug.write( err ); }}}function editorCollapse(key){}/*_editor.prototype.switchEditor = function( editorID ){if( !ipb.editors[ editorID ] ){ Debug.error( "No editor found for ID " + editorID ); }var editor = ipb.editors[ editorID ];var url = ipb.vars['base_url'] + "app=";var newmode = !ipb.editors[ editorID ].is_rte;if( editor._loading ){  Debug.info("Editor is already loading")  return false;} else {  editor._loading = true;}}*/

Edytowane przez DawPi
Dodano code i spoiler
Opublikowano

Tak dla przyszłych ludzi z tym samym problemem, wirus był na moim komputerze, miałem 10 usunąłem przez ESETA. następnie usunąłem wszystkie pliki związane z forum. W przeglądarce wyczyściłem wszystkie dane (historie,coockie,pobieranie,pamięć podręczna, ZAPISANE HASŁA itd.), a no i usunąłem wszystkie pliki które zawierały moje hasło do FTP (czyli m.in. FilleZilla),a potem zalogowałem się do mojego cPanelu i zmieniłem hasło. Nastpnie mogłem już wrzucać wszystkie pliki. Dziękuje za wszelką pomoc temat do zamknięcia.

  • Manager
Opublikowano

Problem ROZWIĄZANY. Jeśli są jakiekolwiek wątpliwości, pytania proszę o wysłanie wiadomości do jednego z członków ekipy zarządzającej.

Wszelkie uzasadnione reklamacje/pretensje/sugestie/rady przyjmuje ekipa forum.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.