/*======================================================================*\
|| #################################################################### ||
|| # vBulletin 3.8.2
|| # ---------------------------------------------------------------- # ||
|| # Copyright ©2000-2009 Jelsoft Enterprises Ltd. All Rights Reserved. ||
|| # This file may not be redistributed in whole or significant part. # ||
|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # ||
|| # http://www.vbulletin.com | http://www.vbulletin.com/license.html # ||
|| #################################################################### ||
\*======================================================================*/
function vB_Text_Editor(editorid,mode,parsetype,parsesmilies,initial_text,ajax_extra){this.editorid=editorid;this.wysiwyg_mode=parseInt(mode,10)?1:0;this.initialized=false;this.parsetype=(typeof parsetype=="undefined"?"nonforum":parsetype);this.ajax_extra=(typeof parsetype=="undefined"?"":ajax_extra);this.parsesmilies=(typeof parsesmilies=="undefined"?1:parsesmilies);this.popupmode=(typeof vBmenu=="undefined"?false:true);this.controlbar=fetch_object(this.editorid+"_controls");this.textobj=fetch_object(this.editorid+"_textarea");this.buttons=new Array();this.popups=new Array();this.prompt_popup=null;this.fontstate=null;this.sizestate=null;this.colorstate=null;this.clipboard="";this.disabled=false;this.history=new vB_History();this.influx=0;this.allowbasicbbcode=((typeof allowbasicbbcode!="undefined"&&allowbasicbbcode)?true:false);this.ltr=((typeof ltr!="undefined"&&ltr=="right")?"right":"left");this.init=function(){if(this.initialized){return }this.textobj.disabled=false;if(this.tempiframe){this.tempiframe.parentNode.removeChild(this.tempiframe)}this.set_editor_contents(initial_text);this.set_editor_functions();this.init_controls();this.init_smilies(fetch_object(this.editorid+"_smiliebox"));if(typeof smilie_window!="undefined"&&!smilie_window.closed){this.init_smilies(smilie_window.document.getElementById("smilietable"))}this.captcha=document.getElementById("imagestamp");if(this.captcha!=null){this.captcha.setAttribute("tabIndex",1)}this.initialized=true};this.check_focus=function(){if(!this.editwin.hasfocus||(is_moz&&is_mac)){this.editwin.focus();if(is_opera){this.editwin.focus()}}};this.init_controls=function(){var controls=new Array();var i,j,buttons,imgs,control;if(this.controlbar==null){return }buttons=fetch_tags(this.controlbar,"div");for(i=0;i<buttons.length;i++){if(buttons[i].className=="imagebutton"&&buttons[i].id){controls[controls.length]=buttons[i].id;if(is_ie){imgs=buttons[i].getElementsByTagName("img");for(j=0;j<imgs.length;j++){if(imgs[j].alt==""){imgs[j].title=buttons[i].title}}}}}for(i=0;i<controls.length;i++){control=fetch_object(controls[i]);if(control.id.indexOf(this.editorid+"_cmd_")!=-1){this.init_command_button(control)}else{if(control.id.indexOf(this.editorid+"_popup_")!=-1){this.init_popup_button(control)}}}set_unselectable(this.controlbar)};this.init_smilies=function(smilie_container){if(smilie_container!=null){var smilies=fetch_tags(smilie_container,"img");for(var i=0;i<smilies.length;i++){if(smilies[i].id&&smilies[i].id.indexOf("_smilie_")!=false){smilies[i].style.cursor=pointer_cursor;smilies[i].editorid=this.editorid;smilies[i].onclick=vB_Text_Editor_Events.prototype.smilie_onclick;smilies[i].unselectable="on"}}}};this.init_command_button=function(obj){obj.cmd=obj.id.substr(obj.id.indexOf("_cmd_")+5);obj.editorid=this.editorid;this.buttons[obj.cmd]=obj;if(obj.cmd=="switchmode"){if(AJAX_Compatible){obj.state=this.wysiwyg_mode?true:false;this.set_control_style(obj,"button",this.wysiwyg_mode?"selected":"normal")}else{obj.parentNode.removeChild(obj)}}else{obj.state=false;obj.mode="normal";if(obj.cmd=="bold"||obj.cmd=="italic"||obj.cmd=="underline"){this.allowbasicbbcode=true}}obj.onclick=obj.onmousedown=obj.onmouseover=obj.onmouseout=vB_Text_Editor_Events.prototype.command_button_onmouseevent};this.init_popup_button=function(obj){obj.cmd=obj.id.substr(obj.id.indexOf("_popup_")+7);if(this.popupmode){vBmenu.register(obj.id,true);vBmenu.menus[obj.id].open_steps=5;obj.editorid=this.editorid;obj.state=false;this.buttons[obj.cmd]=obj;var option,div;if(obj.cmd=="fontname"){this.fontout=fetch_object(this.editorid+"_font_out");this.fontout.innerHTML=obj.title;this.fontoptions={"":this.fontout};for(option in fontoptions){if(YAHOO.lang.hasOwnProperty(fontoptions,option)){div=document.createElement("div");div.id=this.editorid+"_fontoption_"+fontoptions[option];div.style.width=this.fontout.style.width;div.style.display="none";div.innerHTML=fontoptions[option];this.fontoptions[fontoptions[option]]=this.fontout.parentNode.appendChild(div)}}}else{if(obj.cmd=="fontsize"){this.sizeout=fetch_object(this.editorid+"_size_out");this.sizeout.innerHTML=obj.title;this.sizeoptions={"":this.sizeout};for(option in sizeoptions){if(YAHOO.lang.hasOwnProperty(sizeoptions,option)){div=document.createElement("div");div.id=this.editorid+"_sizeoption_"+sizeoptions[option];div.style.width=this.sizeout.style.width;div.style.display="none";div.innerHTML=sizeoptions[option];this.sizeoptions[sizeoptions[option]]=this.sizeout.parentNode.appendChild(div)}}}}obj._onmouseover=obj.onmouseover;obj._onclick=obj.onclick;obj.onmouseover=obj.onmouseout=obj.onclick=vB_Text_Editor_Events.prototype.popup_button_onmouseevent;vBmenu.menus[obj.id]._show=vBmenu.menus[obj.id].show;vBmenu.menus[obj.id].show=vB_Text_Editor_Events.prototype.popup_button_show}else{this.build_select(obj)}};this.build_select=function(obj){var sel=document.createElement("select");sel.id=this.editorid+"_select_"+obj.cmd;sel.editorid=this.editorid;sel.cmd=obj.cmd;var opt=document.createElement("option");opt.value="";opt.text=obj.title;sel.add(opt,is_ie?sel.options.length:null);opt=document.createElement("option");opt.value="";opt.text=" ";sel.add(opt,is_ie?sel.options.length:null);var i;switch(obj.cmd){case"fontname":for(i=0;i<fontoptions.length;i++){opt=document.createElement("option");opt.value=fontoptions[i];opt.text=(fontoptions[i].length>10?(fontoptions[i].substr(0,10)+"..."):fontoptions[i]);sel.add(opt,is_ie?sel.options.length:null)}sel.onchange=vB_Text_Editor_Events.prototype.formatting_select_onchange;break;case"fontsize":for(i=0;i<sizeoptions.length;i++){opt=document.createElement("option");opt.value=sizeoptions[i];opt.text=sizeoptions[i];sel.add(opt,is_ie?sel.options.length:null)}sel.onchange=vB_Text_Editor_Events.prototype.formatting_select_onchange;break;case"forecolor":for(i in coloroptions){if(YAHOO.lang.hasOwnProperty(coloroptions,i)){opt=document.createElement("option");opt.value=coloroptions[i];opt.text=PHP.trim((coloroptions[i].length>5?(coloroptions[i].substr(0,5)+"..."):coloroptions[i]).replace(new RegExp("([A-Z])","g")," $1"));opt.style.backgroundColor=i;sel.add(opt,is_ie?sel.options.length:null)}}sel.onchange=vB_Text_Editor_Events.prototype.formatting_select_onchange;break;case"smilie":for(var cat in smilieoptions){if(!YAHOO.lang.hasOwnProperty(smilieoptions,cat)){continue}for(var smilieid in smilieoptions[cat]){if(!YAHOO.lang.hasOwnProperty(smilieoptions[cat],smilieid)){continue}if(smilieid!="more"){opt=document.createElement("option");opt.value=smilieoptions[cat][smilieid][1];opt.text=smilieoptions[cat][smilieid][1];opt.smilieid=smilieid;opt.smiliepath=smilieoptions[cat][smilieid][0];opt.smilietitle=smilieoptions[cat][smilieid][2];sel.add(opt,is_ie?sel.options.length:null)}}}sel.onchange=vB_Text_Editor_Events.prototype.smilieselect_onchange;break;case"attach":sel.onmouseover=vB_Text_Editor_Events.prototype.attachselect_onmouseover;sel.onchange=vB_Text_Editor_Events.prototype.attachselect_onchange;break}while(obj.hasChildNodes()){obj.removeChild(obj.firstChild)}this.buttons[obj.cmd]=obj.appendChild(sel)};this.init_popup_menu=function(obj){if(this.disabled){return false}var menu;switch(obj.cmd){case"fontname":menu=this.init_menu_container("fontname","200px","250px","auto");this.build_fontname_popup(obj,menu);break;case"fontsize":menu=this.init_menu_container("fontsize","auto","auto","visible");this.build_fontsize_popup(obj,menu);break;case"forecolor":menu=this.init_menu_container("forecolor","auto","auto","visible");this.build_forecolor_popup(obj,menu);break;case"smilie":menu=this.init_menu_container("smilie","175px","250px","auto");this.build_smilie_popup(obj,menu);break;case"attach":if(typeof vB_Attachments!="undefined"&&vB_Attachments.has_attachments()){menu=this.init_menu_container("attach","auto","auto","visible");this.build_attachments_popup(menu,obj)}else{fetch_object("manage_attachments_button").onclick();return false}}this.popups[obj.cmd]=this.controlbar.appendChild(menu);set_unselectable(menu);return true};this.init_menu_container=function(cmd,width,height,overflow){var menu=document.createElement("div");menu.id=this.editorid+"_popup_"+cmd+"_menu";menu.className="vbmenu_popup";menu.style.display="none";menu.style.cursor="default";menu.style.padding="3px";menu.style.width=width;menu.style.height=height;menu.style.overflow=overflow;return menu};this.build_fontname_popup=function(obj,menu){for(var n in fontoptions){if(YAHOO.lang.hasOwnProperty(fontoptions,n)){var option=document.createElement("div");option.innerHTML='<font face="'+fontoptions[n]+'">'+fontoptions[n]+"</font>";option.className="ofont";option.style.textAlign="left";option.title=fontoptions[n];option.cmd=obj.cmd;option.controlkey=obj.id;option.editorid=this.editorid;option.onmouseover=option.onmouseout=option.onmouseup=option.onmousedown=vB_Text_Editor_Events.prototype.menuoption_onmouseevent;option.onclick=vB_Text_Editor_Events.prototype.formatting_option_onclick;menu.appendChild(option)}}};this.build_fontsize_popup=function(obj,menu){for(var n in sizeoptions){if(YAHOO.lang.hasOwnProperty(sizeoptions,n)){var option=document.createElement("div");option.innerHTML='<font size="'+sizeoptions[n]+'">'+sizeoptions[n]+"</font>";option.className="osize";option.style.textAlign="center";option.title=sizeoptions[n];option.cmd=obj.cmd;option.controlkey=obj.id;option.editorid=this.editorid;option.onmouseover=option.onmouseout=option.onmouseup=option.onmousedown=vB_Text_Editor_Events.prototype.menuoption_onmouseevent;option.onclick=vB_Text_Editor_Events.prototype.formatting_option_onclick;menu.appendChild(option)}}};this.build_forecolor_popup=function(obj,menu){var colorout=fetch_object(this.editorid+"_color_out");colorout.editorid=this.editorid;colorout.onclick=vB_Text_Editor_Events.prototype.colorout_onclick;var table=document.createElement("table");table.cellPadding=0;table.cellSpacing=0;table.border=0;var i=0;for(var hex in coloroptions){if(!YAHOO.lang.hasOwnProperty(coloroptions,hex)){continue}if(i%8==0){var tr=table.insertRow(-1)}i++;var div=document.createElement("div");div.style.backgroundColor=coloroptions[hex];var option=tr.insertCell(-1);option.style.textAlign="center";option.className="ocolor";option.appendChild(div);option.cmd=obj.cmd;option.editorid=this.editorid;option.controlkey=obj.id;option.colorname=coloroptions[hex];option.id=this.editorid+"_color_"+coloroptions[hex];option.onmouseover=option.onmouseout=option.onmouseup=option.onmousedown=vB_Text_Editor_Events.prototype.menuoption_onmouseevent;option.onclick=vB_Text_Editor_Events.prototype.coloroption_onclick}menu.appendChild(table)};this.build_smilie_popup=function(obj,menu){for(var cat in smilieoptions){if(!YAHOO.lang.hasOwnProperty(smilieoptions,cat)){continue}var option;var category=document.createElement("div");category.className="thead";category.innerHTML=cat;menu.appendChild(category);for(var smilieid in smilieoptions[cat]){if(!YAHOO.lang.hasOwnProperty(smilieoptions[cat],smilieid)){continue}if(smilieid=="more"){option=document.createElement("div");option.className="thead";option.innerHTML=smilieoptions[cat][smilieid];option.style.cursor=pointer_cursor;option.editorid=this.editorid;option.controlkey=obj.id;option.onclick=vB_Text_Editor_Events.prototype.smiliemore_onclick}else{option=document.createElement("div");option.editorid=this.editorid;option.controlkey=obj.id;option.smilieid=smilieid;option.smilietext=smilieoptions[cat][smilieid][1];option.smilietitle=smilieoptions[cat][smilieid][2];option.className="osmilie";option.innerHTML='<img src="'+smilieoptions[cat][smilieid][0]+'" alt="'+PHP.htmlspecialchars(smilieoptions[cat][smilieid][2])+'" /> '+PHP.htmlspecialchars(smilieoptions[cat][smilieid][2]);option.onmouseover=option.onmouseout=option.onmousedown=option.onmouseup=vB_Text_Editor_Events.prototype.menuoption_onmouseevent;option.onclick=vB_Text_Editor_Events.prototype.smilieoption_onclick}menu.appendChild(option)}}};this.build_attachments_popup=function(menu,obj){var id,div;if(this.popupmode){while(menu.hasChildNodes()){menu.removeChild(menu.firstChild)}div=document.createElement("div");div.editorid=this.editorid;div.controlkey=obj.id;div.className="thead";div.style.cursor=pointer_cursor;div.style.whiteSpace="nowrap";div.innerHTML=fetch_object("manage_attachments_button").value;div.title=fetch_object("manage_attachments_button").title;div.onclick=vB_Text_Editor_Events.prototype.attachmanage_onclick;menu.appendChild(div);var attach_count=0;for(id in vB_Attachments.attachments){if(!YAHOO.lang.hasOwnProperty(vB_Attachments.attachments,id)){continue}div=document.createElement("div");div.editorid=this.editorid;div.controlkey=obj.id;div.className="osmilie";div.attachmentid=id;div.style.whiteSpace="nowrap";div.innerHTML='<img src="'+vB_Attachments.attachments[id]["imgpath"]+'" alt="" /> '+vB_Attachments.attachments[id]["filename"];div.onmouseover=div.onmouseout=div.onmousedown=div.onmouseup=vB_Text_Editor_Events.prototype.menuoption_onmouseevent;div.onclick=vB_Text_Editor_Events.prototype.attachoption_onclick;menu.appendChild(div);attach_count++}if(attach_count>1){div=document.createElement("div");div.editorid=this.editorid;div.controlkey=obj.id;div.className="osmilie";div.style.fontWeight="bold";div.style.paddingLeft="25px";div.style.whiteSpace="nowrap";div.innerHTML=vbphrase.insert_all;div.onmouseover=div.onmouseout=div.onmousedown=div.onmouseup=vB_Text_Editor_Events.prototype.menuoption_onmouseevent;div.onclick=vB_Text_Editor_Events.prototype.attachinsertall_onclick;menu.appendChild(div)}}else{while(menu.options.length>2){menu.remove(menu.options.length-1)}for(id in vB_Attachments.attachments){if(!YAHOO.lang.hasOwnProperty(vB_Attachments.attachments,id)){continue}var opt=document.createElement("option");opt.value=id;opt.text=vB_Attachments.attachments[id]["filename"];menu.add(opt,is_ie?menu.options.length:null)}}set_unselectable(menu)};this.menu_context=function(obj,state){if(this.disabled){return }switch(obj.state){case true:this.set_control_style(obj,"button","down");break;default:switch(state){case"mouseout":this.set_control_style(obj,"button","normal");break;case"mousedown":this.set_control_style(obj,"popup","down");break;case"mouseup":case"mouseover":this.set_control_style(obj,"button","hover");break}}};this.button_context=function(obj,state,controltype){if(this.disabled){return }if(typeof controltype=="undefined"){controltype="button"}switch(obj.state){case true:switch(state){case"mouseover":case"mousedown":case"mouseup":this.set_control_style(obj,controltype,"down");break;case"mouseout":this.set_control_style(obj,controltype,"selected");break}break;default:switch(state){case"mouseover":case"mouseup":this.set_control_style(obj,controltype,"hover");break;case"mousedown":this.set_control_style(obj,controltype,"down");break;case"mouseout":this.set_control_style(obj,controltype,"normal");break}break}};this.set_control_style=function(obj,controltype,mode){if(obj.mode!=mode){obj.mode=mode;istyle="pi_"+controltype+"_"+obj.mode;if(typeof istyles!="undefined"&&typeof istyles[istyle]!="undefined"){obj.style.background=istyles[istyle][0];obj.style.color=istyles[istyle][1];if(controltype!="menu"){obj.style.padding=istyles[istyle][2]}obj.style.border=istyles[istyle][3];var tds=fetch_tags(obj,"td");for(var i=0;i<tds.length;i++){switch(tds[i].className){case"popup_feedback":if("left"==this.ltr){tds[i].style.borderRight=(mode=="normal"?istyles.pi_menu_normal[3]:istyles[istyle][3])}else{tds[i].style.borderLeft=(mode=="normal"?istyles.pi_menu_normal[3]:istyles[istyle][3])}break;case"popup_pickbutton":tds[i].style.borderColor=(mode=="normal"?istyles.pi_menu_normal[0]:istyles[istyle][0]);break;case"alt_pickbutton":if(obj.state){if("left"==this.ltr){tds[i].style.paddingLeft=istyles.pi_button_normal[2];tds[i].style.borderLeft=istyles.pi_button_normal[3]}else{tds[i].style.paddingRight=istyles.pi_button_normal[2];tds[i].style.borderRight=istyles.pi_button_normal[3]}}else{if("left"==this.ltr){tds[i].style.paddingLeft=istyles[istyle][2];tds[i].style.borderLeft=istyles[istyle][3]}else{tds[i].style.paddingRight=istyles[istyle][2];tds[i].style.borderRight=istyles[istyle][3]}}}}}}};this.format=function(e,cmd,arg){e=do_an_e(e);if(this.disabled){return false}if(cmd!="redo"){this.history.add_snapshot(this.get_editor_contents())}if(cmd=="switchmode"){switch_editor_mode(this.editorid);return }else{if(cmd.substr(0,6)=="resize"){var size_change=parseInt(cmd.substr(9),10);var change_direction=parseInt(cmd.substr(7,1),10)=="1"?1:-1;this.resize_editor(size_change*change_direction);return }}this.check_focus();var ret;if(cmd.substr(0,4)=="wrap"){ret=this.wrap_tags(cmd.substr(6),(cmd.substr(4,1)=="1"?true:false))}else{if(this[cmd]){ret=this[cmd](e)}else{try{ret=this.apply_format(cmd,false,(typeof arg=="undefined"?true:arg))}catch(e){this.handle_error(cmd,e);ret=false}}}if(cmd!="undo"){this.history.add_snapshot(this.get_editor_contents())}this.set_context(cmd);this.check_focus();return ret};this.insertimage=function(e,img){if(typeof img=="undefined"){img=this.show_prompt(vbphrase.enter_image_url,"http://",true)}if(img=this.verify_prompt(img)){return this.apply_format("insertimage",false,img)}else{return false}};this.wrap_tags=function(tagname,useoption,selection){tagname=tagname.toUpperCase();switch(tagname){case"CODE":case"HTML":case"PHP":this.apply_format("removeformat");break}if(typeof selection=="undefined"){selection=this.get_selection();if(selection===false){selection=""}else{selection=new String(selection)}}var opentag;if(useoption===true){var option=this.show_prompt(construct_phrase(vbphrase.enter_tag_option,("["+tagname+"]")),"",false);if(option=this.verify_prompt(option)){opentag="["+tagname+'="'+option+'"]'}else{return false}}else{if(useoption!==false){opentag="["+tagname+'="'+useoption+'"]'}else{opentag="["+tagname+"]"}}var closetag="[/"+tagname+"]";var text=opentag+selection+closetag;this.insert_text(text,opentag.vBlength(),closetag.vBlength());return false};this.spelling=function(){if(is_ie){try{eval("new ActiveXObject('ieSpell.ieSpellExtension').CheckDocumentNode(this.spellobj);")}catch(e){if(e.number==-2146827859&&confirm(vbphrase.iespell_not_installed)){window.open("http://www.iespell.com/download.php")}}}else{if(is_moz){}}};this.handle_error=function(cmd,e){};this.show_prompt=function(dialogtxt,defaultval,forceltr){var returnvalue;if(YAHOO.env.ua.ie>=7){var base_tag=fetch_tags(document,"base");var modal_prefix;if(base_tag&&base_tag[0]&&base_tag[0].href){modal_prefix=base_tag[0].href}else{modal_prefix=""}returnvalue=window.showModalDialog(modal_prefix+"clientscript/ieprompt.html?",{value:defaultval,label:dialogtxt,dir:document.dir,title:document.title,forceltr:(typeof (forceltr)!="undefined"?forceltr:false)},"dialogWidth:320px; dialogHeight:150px; dialogTop:"+(parseInt(window.screenTop)+parseInt(window.event.clientY)+parseInt(document.body.scrollTop)-100)+"px; dialogLeft:"+(parseInt(window.screenLeft)+parseInt(window.event.clientX)+parseInt(document.body.scrollLeft)-160)+"px; resizable: No;")}else{returnvalue=prompt(dialogtxt,defaultval)}if(typeof (returnvalue)=="undefined"){return false}else{if(returnvalue==false||returnvalue==null){return returnvalue}else{return PHP.trim(new String(returnvalue))}}};this.verify_prompt=function(str){switch(str){case"http://":case"null":case"undefined":case"false":case"":case null:case false:return false;default:return str}};this.open_smilie_window=function(width,height){smilie_window=openWindow("misc.php?"+SESSIONURL+"do=getsmilies&editorid="+this.editorid,width,height,"smilie_window");window.onunload=vB_Text_Editor_Events.prototype.smiliewindow_onunload};this.resize_editor=function(change){var newheight=parseInt(this.editbox.style.height,10)+change;if(newheight>=60){this.editbox.style.height=newheight+"px";if(change%99!=0){set_cookie("editor_height",newheight)}}};this.destroy_popup=function(popupname){this.popups[popupname].parentNode.removeChild(this.popups[popupname]);this.popups[popupname]=null};this.destroy=function(){var i;for(i in this.buttons){if(YAHOO.lang.hasOwnProperty(this.buttons,i)){this.set_control_style(this.buttons[i],"button","normal")}}for(var menu in this.popups){if(YAHOO.lang.hasOwnProperty(this.popups,menu)){this.destroy_popup(menu)}}if(this.fontoptions){for(i in this.fontoptions){if(YAHOO.lang.hasOwnProperty(this.fontoptions,i)&&i!=""){this.fontoptions[i].parentNode.removeChild(this.fontoptions[i])}}this.fontoptions[""].style.display=""}if(this.sizeoptions){for(i in this.sizeoptions){if(YAHOO.lang.hasOwnProperty(this.sizeoptions,i)&&i!=""){this.sizeoptions[i].parentNode.removeChild(this.sizeoptions[i])}}this.sizeoptions[""].style.display=""}};this.collapse_selection_end=function(){var range;if(this.editdoc.selection){range=this.editdoc.selection.createRange();eval("range.move('character', -1);");range.collapse(false);range.select()}else{if(document.selection&&document.selection.createRange){range=document.selection.createRange();range.collapse(false);range.select()}else{if(typeof (this.editdoc.selectionStart)!="undefined"){var sel_text=this.editdoc.value.substr(this.editdoc.selectionStart,this.editdoc.selectionEnd-this.editdoc.selectionStart);this.editdoc.selectionStart=this.editdoc.selectionStart+sel_text.vBlength()}else{if(window.getSelection){}}}}};if(this.wysiwyg_mode){this.disable_editor=function(text){if(!this.disabled){this.disabled=true;var hider=fetch_object(this.editorid+"_hider");if(hider){hider.parentNode.removeChild(hider)}var div=document.createElement("div");div.id=this.editorid+"_hider";div.className="wysiwyg";div.style.border="2px inset";div.style.margin="0px";div.style.padding="0px";div.style.width=this.editbox.style.width;div.style.height=this.editbox.style.height;var childdiv=document.createElement("div");childdiv.style.margin="8px";childdiv.innerHTML=text;div.appendChild(childdiv);this.editbox.parentNode.appendChild(div);this.editbox.style.width="0px";this.editbox.style.height="0px";this.editbox.style.border="none"}};this.enable_editor=function(text){if(typeof text!="undefined"){this.set_editor_contents(text)}var hider=fetch_object(this.editorid+"_hider");if(hider){hider.parentNode.removeChild(hider)}this.disabled=false};this.write_editor_contents=function(text,doinit){if(text==""){if(is_ie){text="<p></p>"}else{if(is_moz){text="<br />"}}}if(this.editdoc&&this.editdoc.initialized){this.editdoc.body.innerHTML=text}else{this.editdoc=this.editwin.document;this.editdoc.open("text/html","replace");this.editdoc.write(text);this.editdoc.close();if(doinit){if(is_moz){this.editdoc.designMode="on"}else{this.editdoc.body.contentEditable=true}}this.editdoc.body.spellcheck=true;this.editdoc.initialized=true;this.set_editor_style()}this.set_direction()};this.set_editor_contents=function(initial_text){if(fetch_object(this.editorid+"_iframe")){this.editbox=fetch_object(this.editorid+"_iframe")}else{var iframe=document.createElement("iframe");if(is_ie&&window.location.protocol=="https:"){iframe.src="clientscript/index.html"}this.editbox=this.textobj.parentNode.appendChild(iframe);this.editbox.id=this.editorid+"_iframe";this.editbox.tabIndex=1}if(!is_ie){this.editbox.style.border="2px inset"}this.set_editor_width(typeof (this.textobj.style.oWidth)!="undefined"?this.textobj.style.oWidth:this.textobj.style.width);this.editbox.style.height=this.textobj.style.height;this.textobj.style.display="none";this.editwin=this.editbox.contentWindow;this.editdoc=this.editwin.document;this.write_editor_contents((typeof initial_text=="undefined"?this.textobj.value:initial_text),true);if(this.editdoc.dir=="rtl"){}this.spellobj=this.editdoc.body;this.editdoc.editorid=this.editorid;this.editwin.editorid=this.editorid};this.set_editor_width=function(width,overwrite_original){this.editbox.style.width=width};this.set_direction=function(){this.editdoc.dir=this.textobj.dir};this.set_editor_style=function(){var wysiwyg_csstext="";var have_usercss=false;var all_stylesheets=fetch_all_stylesheets(document.styleSheets);for(var ss=0;ss<all_stylesheets.length;ss++){try{var rules=(all_stylesheets[ss].cssRules?all_stylesheets[ss].cssRules:all_stylesheets[ss].rules);if(rules.length<=0){continue}}catch(e){continue}for(var i=0;i<rules.length;i++){if(!rules[i].selectorText){continue}var process=false;var selectors=new Array();if(rules[i].selectorText.indexOf(".wysiwyg")>=0){var split_selectors=rules[i].selectorText.split(",");for(var selid=0;selid<split_selectors.length;selid++){if(split_selectors[selid].indexOf(".wysiwyg")>=0){selectors.push(split_selectors[selid])}if(split_selectors[selid].indexOf("#usercss")>=0){have_usercss=true}}process=true}if(process){var css_rules="{ "+rules[i].style.cssText+" }";if(is_moz){css_rules=css_rules.replace(/; /g," !important; ")}wysiwyg_csstext+=selectors.join(", ")+" "+css_rules+"\n"}}}wysiwyg_csstext+=" p { margin: 0px; } .inlineimg { vertical-align: middle; }";if(is_ie){this.editdoc.createStyleSheet().cssText=wysiwyg_csstext}else{var newss=this.editdoc.createElement("style");newss.type="text/css";newss.innerHTML=wysiwyg_csstext;this.editdoc.documentElement.childNodes[0].appendChild(newss)}if(have_usercss){this.editdoc.body.parentNode.id="usercss"}this.editdoc.body.className="wysiwyg"};this.set_editor_functions=function(){this.editdoc.onmouseup=vB_Text_Editor_Events.prototype.editdoc_onmouseup;this.editdoc.onkeyup=vB_Text_Editor_Events.prototype.editdoc_onkeyup;if(this.editdoc.attachEvent){this.editdoc.body.attachEvent("onresizestart",vB_Text_Editor_Events.prototype.editdoc_onresizestart)}this.editwin.onfocus=vB_Text_Editor_Events.prototype.editwin_onfocus;this.editwin.onblur=vB_Text_Editor_Events.prototype.editwin_onblur};this.set_context=function(cmd){for(var i in contextcontrols){if(!YAHOO.lang.hasOwnProperty(contextcontrols,i)){continue}var obj=fetch_object(this.editorid+"_cmd_"+contextcontrols[i]);if(obj!=null){var state=this.editdoc.queryCommandState(contextcontrols[i]);if(obj.state!=state){obj.state=state;this.button_context(obj,(obj.cmd==cmd?"mouseover":"mouseout"))}}}this.set_font_context();this.set_size_context();this.set_color_context()};this.set_font_context=function(fontstate){if(this.buttons.fontname){if(typeof fontstate=="undefined"){fontstate=this.editdoc.queryCommandValue("fontname")}switch(fontstate){case"":if(!is_ie&&window.getComputedStyle){fontstate=this.editdoc.body.style.fontFamily}break;case null:fontstate="";break}if(fontstate!=this.fontstate){this.fontstate=fontstate;var thingy=PHP.ucfirst(this.fontstate,",");var i;if(this.popupmode){for(i in this.fontoptions){if(YAHOO.lang.hasOwnProperty(this.fontoptions,i)){this.fontoptions[i].style.display=(i==thingy?"":"none")}}}else{for(i=0;i<this.buttons.fontname.options.length;i++){if(this.buttons.fontname.options[i].value==thingy){this.buttons.fontname.selectedIndex=i;break}}}}}};this.set_size_context=function(sizestate){if(this.buttons.fontsize){if(typeof sizestate=="undefined"){sizestate=this.editdoc.queryCommandValue("fontsize")}switch(size

