(function(){var Dom=YAHOO.util.Dom,Event=YAHOO.util.Event,Lang=YAHOO.lang;if(YAHOO.widget.Button){YAHOO.widget.ToolbarButtonAdvanced=YAHOO.widget.Button;YAHOO.widget.ToolbarButtonAdvanced.prototype.buttonType='rich';YAHOO.widget.ToolbarButtonAdvanced.prototype.checkValue=function(value){var _menuItems=this.getMenu().getItems();if(_menuItems.length===0){this.getMenu()._onBeforeShow();_menuItems=this.getMenu().getItems();}
for(var i=0;i<_menuItems.length;i++){_menuItems[i].cfg.setProperty('checked',false);if(_menuItems[i].value==value){_menuItems[i].cfg.setProperty('checked',true);}}};}else{YAHOO.widget.ToolbarButtonAdvanced=function(){};}
YAHOO.widget.ToolbarButton=function(el,attrs){if(Lang.isObject(arguments[0])&&!Dom.get(el).nodeType){attrs=el;}
var local_attrs=(attrs||{});var oConfig={element:null,attributes:local_attrs};if(!oConfig.attributes.type){oConfig.attributes.type='push';}
oConfig.element=document.createElement('span');oConfig.element.setAttribute('unselectable','on');oConfig.element.className='yui-button yui-'+oConfig.attributes.type+'-button';oConfig.element.innerHTML='<span class="first-child"><a href="#">LABEL</a></span>';oConfig.element.firstChild.firstChild.tabIndex='-1';oConfig.attributes.id=(oConfig.attributes.id||Dom.generateId());oConfig.element.id=oConfig.attributes.id;YAHOO.widget.ToolbarButton.superclass.constructor.call(this,oConfig.element,oConfig.attributes);};YAHOO.extend(YAHOO.widget.ToolbarButton,YAHOO.util.Element,{buttonType:'normal',_handleMouseOver:function(){if(!this.get('disabled')){this.addClass('yui-button-hover');this.addClass('yui-'+this.get('type')+'-button-hover');}},_handleMouseOut:function(){this.removeClass('yui-button-hover');this.removeClass('yui-'+this.get('type')+'-button-hover');},checkValue:function(value){if(this.get('type')=='menu'){var opts=this._button.options;for(var i=0;i<opts.length;i++){if(opts[i].value==value){opts.selectedIndex=i;}}}},init:function(p_oElement,p_oAttributes){YAHOO.widget.ToolbarButton.superclass.init.call(this,p_oElement,p_oAttributes);this.on('mouseover',this._handleMouseOver,this,true);this.on('mouseout',this._handleMouseOut,this,true);this.on('click',function(ev){Event.stopEvent(ev);return false;},this,true);},initAttributes:function(attr){YAHOO.widget.ToolbarButton.superclass.initAttributes.call(this,attr);this.setAttributeConfig('value',{value:attr.value});this.setAttributeConfig('menu',{value:attr.menu||false});this.setAttributeConfig('type',{value:attr.type,writeOnce:true,method:function(type){var el,opt;if(!this._button){this._button=this.get('element').getElementsByTagName('a')[0];}
switch(type){case'select':case'menu':el=document.createElement('select');var menu=this.get('menu');for(var i=0;i<menu.length;i++){opt=document.createElement('option');opt.innerHTML=menu[i].text;opt.value=menu[i].value;if(menu[i].checked){opt.selected=true;}
el.appendChild(opt);}
this._button.parentNode.replaceChild(el,this._button);Event.on(el,'change',this._handleSelect,this,true);this._button=el;break;}}});this.setAttributeConfig('disabled',{value:attr.disabled||false,method:function(disabled){if(disabled){this.addClass('yui-button-disabled');this.addClass('yui-'+this.get('type')+'-button-disabled');}else{this.removeClass('yui-button-disabled');this.removeClass('yui-'+this.get('type')+'-button-disabled');}
if(this.get('type')=='menu'){this._button.disabled=disabled;}}});this.setAttributeConfig('label',{value:attr.label,method:function(label){if(!this._button){this._button=this.get('element').getElementsByTagName('a')[0];}
if(this.get('type')=='push'){this._button.innerHTML=label;}}});this.setAttributeConfig('title',{value:attr.title});this.setAttributeConfig('container',{value:null,writeOnce:true,method:function(cont){this.appendTo(cont);}});},_handleSelect:function(ev){var tar=Event.getTarget(ev);var value=tar.options[tar.selectedIndex].value;this.fireEvent('change',{type:'change',value:value});},getMenu:function(){return this.get('menu');},destroy:function(){Event.purgeElement(this.get('element'),true);this.get('element').parentNode.removeChild(this.get('element'));for(var i in this){if(Lang.hasOwnProperty(this,i)){this[i]=null;}}},fireEvent:function(p_sType,p_aArgs){if(this.DOM_EVENTS[p_sType]&&this.get('disabled')){Event.stopEvent(p_aArgs);return;}
YAHOO.widget.ToolbarButton.superclass.fireEvent.call(this,p_sType,p_aArgs);},toString:function(){return'ToolbarButton ('+this.get('id')+')';}});})();(function(){var Dom=YAHOO.util.Dom,Event=YAHOO.util.Event,Lang=YAHOO.lang;var getButton=function(id){var button=id;if(Lang.isString(id)){button=this.getButtonById(id);}
if(Lang.isNumber(id)){button=this.getButtonByIndex(id);}
if((!(button instanceof YAHOO.widget.ToolbarButton))&&(!(button instanceof YAHOO.widget.ToolbarButtonAdvanced))){button=this.getButtonByValue(id);}
if((button instanceof YAHOO.widget.ToolbarButton)||(button instanceof YAHOO.widget.ToolbarButtonAdvanced)){return button;}
return false;};YAHOO.widget.Toolbar=function(el,attrs){if(Lang.isObject(arguments[0])&&!Dom.get(el).nodeType){attrs=el;}
var local_attrs={};if(attrs){Lang.augmentObject(local_attrs,attrs);}
var oConfig={element:null,attributes:local_attrs};if(Lang.isString(el)&&Dom.get(el)){oConfig.element=Dom.get(el);}else if(Lang.isObject(el)&&Dom.get(el)&&Dom.get(el).nodeType){oConfig.element=Dom.get(el);}
if(!oConfig.element){oConfig.element=document.createElement('DIV');oConfig.element.id=Dom.generateId();if(local_attrs.container&&Dom.get(local_attrs.container)){Dom.get(local_attrs.container).appendChild(oConfig.element);}}
if(!oConfig.element.id){oConfig.element.id=((Lang.isString(el))?el:Dom.generateId());}
var fs=document.createElement('fieldset');var lg=document.createElement('legend');lg.innerHTML='Toolbar';fs.appendChild(lg);var cont=document.createElement('DIV');oConfig.attributes.cont=cont;Dom.addClass(cont,'yui-toolbar-subcont');fs.appendChild(cont);oConfig.element.appendChild(fs);oConfig.element.tabIndex=-1;oConfig.attributes.element=oConfig.element;oConfig.attributes.id=oConfig.element.id;YAHOO.widget.Toolbar.superclass.constructor.call(this,oConfig.element,oConfig.attributes);};YAHOO.extend(YAHOO.widget.Toolbar,YAHOO.util.Element,{_addMenuClasses:function(ev,na,o){Dom.addClass(this.element,'yui-toolbar-'+o.get('value')+'-menu');if(Dom.hasClass(o._button.parentNode.parentNode,'yui-toolbar-select')){Dom.addClass(this.element,'yui-toolbar-select-menu');}
var items=this.getItems();for(var i=0;i<items.length;i++){Dom.addClass(items[i].element,'yui-toolbar-'+o.get('value')+'-'+((items[i].value)?items[i].value.replace(/ /g,'-').toLowerCase():items[i]._oText.nodeValue.replace(/ /g,'-').toLowerCase()));Dom.addClass(items[i].element,'yui-toolbar-'+o.get('value')+'-'+((items[i].value)?items[i].value.replace(/ /g,'-'):items[i]._oText.nodeValue.replace(/ /g,'-')));}},buttonType:YAHOO.widget.ToolbarButton,dd:null,_colorData:{'#111111':'Obsidian','#2D2D2D':'Dark Gray','#434343':'Shale','#5B5B5B':'Flint','#737373':'Gray','#8B8B8B':'Concrete','#A2A2A2':'Gray','#B9B9B9':'Titanium','#000000':'Black','#D0D0D0':'Light Gray','#E6E6E6':'Silver','#FFFFFF':'White','#BFBF00':'Pumpkin','#FFFF00':'Yellow','#FFFF40':'Banana','#FFFF80':'Pale Yellow','#FFFFBF':'Butter','#525330':'Raw Siena','#898A49':'Mildew','#AEA945':'Olive','#7F7F00':'Paprika','#C3BE71':'Earth','#E0DCAA':'Khaki','#FCFAE1':'Cream','#60BF00':'Cactus','#80FF00':'Chartreuse','#A0FF40':'Green','#C0FF80':'Pale Lime','#DFFFBF':'Light Mint','#3B5738':'Green','#668F5A':'Lime Gray','#7F9757':'Yellow','#407F00':'Clover','#8A9B55':'Pistachio','#B7C296':'Light Jade','#E6EBD5':'Breakwater','#00BF00':'Spring Frost','#00FF80':'Pastel Green','#40FFA0':'Light Emerald','#80FFC0':'Sea Foam','#BFFFDF':'Sea Mist','#033D21':'Dark Forrest','#438059':'Moss','#7FA37C':'Medium Green','#007F40':'Pine','#8DAE94':'Yellow Gray Green','#ACC6B5':'Aqua Lung','#DDEBE2':'Sea Vapor','#00BFBF':'Fog','#00FFFF':'Cyan','#40FFFF':'Turquoise Blue','#80FFFF':'Light Aqua','#BFFFFF':'Pale Cyan','#033D3D':'Dark Teal','#347D7E':'Gray Turquoise','#609A9F':'Green Blue','#007F7F':'Seaweed','#96BDC4':'Green Gray','#B5D1D7':'Soapstone','#E2F1F4':'Light Turquoise','#0060BF':'Summer Sky','#0080FF':'Sky Blue','#40A0FF':'Electric Blue','#80C0FF':'Light Azure','#BFDFFF':'Ice Blue','#1B2C48':'Navy','#385376':'Biscay','#57708F':'Dusty Blue','#00407F':'Sea Blue','#7792AC':'Sky Blue Gray','#A8BED1':'Morning Sky','#DEEBF6':'Vapor','#0000BF':'Deep Blue','#0000FF':'Blue','#4040FF':'Cerulean Blue','#8080FF':'Evening Blue','#BFBFFF':'Light Blue','#212143':'Deep Indigo','#373E68':'Sea Blue','#444F75':'Night Blue','#00007F':'Indigo Blue','#585E82':'Dockside','#8687A4':'Blue Gray','#D2D1E1':'Light Blue Gray','#6000BF':'Neon Violet','#8000FF':'Blue Violet','#A040FF':'Violet Purple','#C080FF':'Violet Dusk','#DFBFFF':'Pale Lavender','#302449':'Cool Shale','#54466F':'Dark Indigo','#655A7F':'Dark Violet','#40007F':'Violet','#726284':'Smoky Violet','#9E8FA9':'Slate Gray','#DCD1DF':'Violet White','#BF00BF':'Royal Violet','#FF00FF':'Fuchsia','#FF40FF':'Magenta','#FF80FF':'Orchid','#FFBFFF':'Pale Magenta','#4A234A':'Dark Purple','#794A72':'Medium Purple','#936386':'Cool Granite','#7F007F':'Purple','#9D7292':'Purple Moon','#C0A0B6':'Pale Purple','#ECDAE5':'Pink Cloud','#BF005F':'Hot Pink','#FF007F':'Deep Pink','#FF409F':'Grape','#FF80BF':'Electric Pink','#FFBFDF':'Pink','#451528':'Purple Red','#823857':'Purple Dino','#A94A76':'Purple Gray','#7F003F':'Rose','#BC6F95':'Antique Mauve','#D8A5BB':'Cool Marble','#F7DDE9':'Pink Granite','#C00000':'Apple','#FF0000':'Fire Truck','#FF4040':'Pale Red','#FF8080':'Salmon','#FFC0C0':'Warm Pink','#441415':'Sepia','#82393C':'Rust','#AA4D4E':'Brick','#800000':'Brick Red','#BC6E6E':'Mauve','#D8A3A4':'Shrimp Pink','#F8DDDD':'Shell Pink','#BF5F00':'Dark Orange','#FF7F00':'Orange','#FF9F40':'Grapefruit','#FFBF80':'Canteloupe','#FFDFBF':'Wax','#482C1B':'Dark Brick','#855A40':'Dirt','#B27C51':'Tan','#7F3F00':'Nutmeg','#C49B71':'Mustard','#E1C4A8':'Pale Tan','#FDEEE0':'Marble'
},_colorPicker:null,STR_COLLAPSE:'Collapse Toolbar',STR_SPIN_LABEL:'Spin Button with value {VALUE}. Use Control Shift Up Arrow and Control Shift Down arrow keys to increase or decrease the value.',STR_SPIN_UP:'Click to increase the value of this input',STR_SPIN_DOWN:'Click to decrease the value of this input',_titlebar:null,browser:YAHOO.env.ua,_buttonList:null,_buttonGroupList:null,_sep:null,_sepCount:null,_dragHandle:null,_toolbarConfigs:{renderer:true},CLASS_CONTAINER:'yui-toolbar-container',CLASS_DRAGHANDLE:'yui-toolbar-draghandle',CLASS_SEPARATOR:'yui-toolbar-separator',CLASS_DISABLED:'yui-toolbar-disabled',CLASS_PREFIX:'yui-toolbar',init:function(p_oElement,p_oAttributes){YAHOO.widget.Toolbar.superclass.init.call(this,p_oElement,p_oAttributes);},initAttributes:function(attr){YAHOO.widget.Toolbar.superclass.initAttributes.call(this,attr);this.addClass(this.CLASS_CONTAINER);this.setAttributeConfig('buttonType',{value:attr.buttonType||'basic',writeOnce:true,validator:function(type){switch(type){case'advanced':case'basic':return true;}
return false;},method:function(type){if(type=='advanced'){if(YAHOO.widget.Button){this.buttonType=YAHOO.widget.ToolbarButtonAdvanced;}else{this.buttonType=YAHOO.widget.ToolbarButton;}}else{this.buttonType=YAHOO.widget.ToolbarButton;}}});this.setAttributeConfig('buttons',{value:[],writeOnce:true,method:function(data){for(var i in data){if(Lang.hasOwnProperty(data,i)){if(data[i].type=='separator'){this.addSeparator();}else if(data[i].group!==undefined){this.addButtonGroup(data[i]);}else{this.addButton(data[i]);}}}}});this.setAttributeConfig('disabled',{value:false,method:function(disabled){if(this.get('disabled')===disabled){return false;}
if(disabled){this.addClass(this.CLASS_DISABLED);this.set('draggable',false);this.disableAllButtons();}else{this.removeClass(this.CLASS_DISABLED);if(this._configs.draggable._initialConfig.value){this.set('draggable',true);}
this.resetAllButtons();}}});this.setAttributeConfig('cont',{value:attr.cont,readOnly:true});this.setAttributeConfig('grouplabels',{value:((attr.grouplabels===false)?false:true),method:function(grouplabels){if(grouplabels){Dom.removeClass(this.get('cont'),(this.CLASS_PREFIX+'-nogrouplabels'));}else{Dom.addClass(this.get('cont'),(this.CLASS_PREFIX+'-nogrouplabels'));}}});this.setAttributeConfig('titlebar',{value:false,method:function(titlebar){if(titlebar){if(this._titlebar&&this._titlebar.parentNode){this._titlebar.parentNode.removeChild(this._titlebar);}
this._titlebar=document.createElement('DIV');this._titlebar.tabIndex='-1';Event.on(this._titlebar,'focus',function(){this._handleFocus();},this,true);Dom.addClass(this._titlebar,this.CLASS_PREFIX+'-titlebar');if(Lang.isString(titlebar)){var h2=document.createElement('h2');h2.tabIndex='-1';h2.innerHTML='<a href="#" tabIndex="0">'+titlebar+'</a>';this._titlebar.appendChild(h2);Event.on(h2.firstChild,'click',function(ev){Event.stopEvent(ev);});Event.on([h2,h2.firstChild],'focus',function(){this._handleFocus();},this,true);}
if(this.get('firstChild')){this.insertBefore(this._titlebar,this.get('firstChild'));}else{this.appendChild(this._titlebar);}
if(this.get('collapse')){this.set('collapse',true);}}else if(this._titlebar){if(this._titlebar&&this._titlebar.parentNode){this._titlebar.parentNode.removeChild(this._titlebar);}}}});this.setAttributeConfig('collapse',{value:false,method:function(collapse){if(this._titlebar){var collapseEl=null;var el=Dom.getElementsByClassName('collapse','span',this._titlebar);if(collapse){if(el.length>0){return true;}
collapseEl=document.createElement('SPAN');collapseEl.innerHTML='X';collapseEl.title=this.STR_COLLAPSE;Dom.addClass(collapseEl,'collapse');this._titlebar.appendChild(collapseEl);Event.addListener(collapseEl,'click',function(){if(Dom.hasClass(this.get('cont').parentNode,'yui-toolbar-container-collapsed')){this.collapse(false);}else{this.collapse();}},this,true);}else{collapseEl=Dom.getElementsByClassName('collapse','span',this._titlebar);if(collapseEl[0]){if(Dom.hasClass(this.get('cont').parentNode,'yui-toolbar-container-collapsed')){this.collapse(false);}
collapseEl[0].parentNode.removeChild(collapseEl[0]);}}}}});this.setAttributeConfig('draggable',{value:(attr.draggable||false),method:function(draggable){if(draggable&&!this.get('titlebar')){if(!this._dragHandle){this._dragHandle=document.createElement('SPAN');this._dragHandle.innerHTML='|';this._dragHandle.setAttribute('title','Click to drag the toolbar');this._dragHandle.id=this.get('id')+'_draghandle';Dom.addClass(this._dragHandle,this.CLASS_DRAGHANDLE);if(this.get('cont').hasChildNodes()){this.get('cont').insertBefore(this._dragHandle,this.get('cont').firstChild);}else{this.get('cont').appendChild(this._dragHandle);}
this.dd=new YAHOO.util.DD(this.get('id'));this.dd.setHandleElId(this._dragHandle.id);}}else{if(this._dragHandle){this._dragHandle.parentNode.removeChild(this._dragHandle);this._dragHandle=null;this.dd=null;}}
if(this._titlebar){if(draggable){this.dd=new YAHOO.util.DD(this.get('id'));this.dd.setHandleElId(this._titlebar);Dom.addClass(this._titlebar,'draggable');}else{Dom.removeClass(this._titlebar,'draggable');if(this.dd){this.dd.unreg();this.dd=null;}}}},validator:function(value){var ret=true;if(!YAHOO.util.DD){ret=false;}
return ret;}});},addButtonGroup:function(oGroup){if(!this.get('element')){this._queue[this._queue.length]=['addButtonGroup',arguments];return false;}
if(!this.hasClass(this.CLASS_PREFIX+'-grouped')){this.addClass(this.CLASS_PREFIX+'-grouped');}
var div=document.createElement('DIV');Dom.addClass(div,this.CLASS_PREFIX+'-group');Dom.addClass(div,this.CLASS_PREFIX+'-group-'+oGroup.group);if(oGroup.label){var label=document.createElement('h3');label.innerHTML=oGroup.label;div.appendChild(label);}
if(!this.get('grouplabels')){Dom.addClass(this.get('cont'),this.CLASS_PREFIX,'-nogrouplabels');}
this.get('cont').appendChild(div);var ul=document.createElement('ul');div.appendChild(ul);if(!this._buttonGroupList){this._buttonGroupList={};}
this._buttonGroupList[oGroup.group]=ul;for(var i=0;i<oGroup.buttons.length;i++){var li=document.createElement('li');li.className=this.CLASS_PREFIX+'-groupitem';ul.appendChild(li);if((oGroup.buttons[i].type!==undefined)&&oGroup.buttons[i].type=='separator'){this.addSeparator(li);}else{oGroup.buttons[i].container=li;this.addButton(oGroup.buttons[i]);}}},addButtonToGroup:function(oButton,group,after){var groupCont=this._buttonGroupList[group];var li=document.createElement('li');li.className=this.CLASS_PREFIX+'-groupitem';oButton.container=li;this.addButton(oButton,after);groupCont.appendChild(li);},addButton:function(oButton,after){if(!this.get('element')){this._queue[this._queue.length]=['addButton',arguments];return false;}
if(!this._buttonList){this._buttonList=[];}
if(!oButton.container){oButton.container=this.get('cont');}
if((oButton.type=='menu')||(oButton.type=='split')||(oButton.type=='select')){if(Lang.isArray(oButton.menu)){for(var i in oButton.menu){if(Lang.hasOwnProperty(oButton.menu,i)){var funcObject={fn:function(ev,x,oMenu){if(!oButton.menucmd){oButton.menucmd=oButton.value;}
oButton.value=((oMenu.value)?oMenu.value:oMenu._oText.nodeValue);},scope:this};oButton.menu[i].onclick=funcObject;}}}}
var _oButton={},skip=false;for(var o in oButton){if(Lang.hasOwnProperty(oButton,o)){if(!this._toolbarConfigs[o]){_oButton[o]=oButton[o];}}}
if(oButton.type=='select'){_oButton.type='menu';}
if(oButton.type=='spin'){_oButton.type='push';}
if(_oButton.type=='color'){if(YAHOO.widget.Overlay){_oButton=this._makeColorButton(_oButton);}else{skip=true;}}
if(_oButton.menu){if((YAHOO.widget.Overlay)&&(oButton.menu instanceof YAHOO.widget.Overlay)){oButton.menu.showEvent.subscribe(function(){this._button=_oButton;});}else{for(var m=0;m<_oButton.menu.length;m++){if(!_oButton.menu[m].value){_oButton.menu[m].value=_oButton.menu[m].text;}}
if(this.browser.webkit){_oButton.focusmenu=false;}}}
if(skip){oButton=false;}else{this._configs.buttons.value[this._configs.buttons.value.length]=oButton;var tmp=new this.buttonType(_oButton);tmp.get('element').tabIndex='-1';tmp.get('element').setAttribute('role','button');tmp._selected=true;if(this.get('disabled')){tmp.set('disabled',true);}
if(!oButton.id){oButton.id=tmp.get('id');}
if(after){var el=tmp.get('element');var nextSib=null;if(after.get){nextSib=after.get('element').nextSibling;}else if(after.nextSibling){nextSib=after.nextSibling;}
if(nextSib){nextSib.parentNode.insertBefore(el,nextSib);}}
tmp.addClass(this.CLASS_PREFIX+'-'+tmp.get('value'));var icon=document.createElement('span');icon.className=this.CLASS_PREFIX+'-icon';tmp.get('element').insertBefore(icon,tmp.get('firstChild'));if(tmp._button.tagName.toLowerCase()=='button'){tmp.get('element').setAttribute('unselectable','on');var a=document.createElement('a');a.innerHTML=tmp._button.innerHTML;a.href='#';a.tabIndex='-1';Event.on(a,'click',function(ev){Event.stopEvent(ev);});tmp._button.parentNode.replaceChild(a,tmp._button);tmp._button=a;}
if(oButton.type=='select'){if(tmp._button.tagName.toLowerCase()=='select'){icon.parentNode.removeChild(icon);var iel=tmp._button;var parEl=tmp.get('element');parEl.parentNode.replaceChild(iel,parEl);}else{tmp.addClass(this.CLASS_PREFIX+'-select');}}
if(oButton.type=='spin'){if(!Lang.isArray(oButton.range)){oButton.range=[10,100];}
this._makeSpinButton(tmp,oButton);}
tmp.get('element').setAttribute('title',tmp.get('label'));if(oButton.type!='spin'){if((YAHOO.widget.Overlay)&&(_oButton.menu instanceof YAHOO.widget.Overlay)){var showPicker=function(ev){var exec=true;if(ev.keyCode&&(ev.keyCode==9)){exec=false;}
if(exec){if(this._colorPicker){this._colorPicker._button=oButton.value;}
var menuEL=tmp.getMenu().element;if(Dom.getStyle(menuEL,'visibility')=='hidden'){tmp.getMenu().show();}else{tmp.getMenu().hide();}}
YAHOO.util.Event.stopEvent(ev);};tmp.on('mousedown',showPicker,oButton,this);tmp.on('keydown',showPicker,oButton,this);}else if((oButton.type!='menu')&&(oButton.type!='select')){tmp.on('keypress',this._buttonClick,oButton,this);tmp.on('mousedown',function(ev){YAHOO.util.Event.stopEvent(ev);this._buttonClick(ev,oButton);},oButton,this);tmp.on('click',function(ev){YAHOO.util.Event.stopEvent(ev);});}else{tmp.on('mousedown',function(ev){YAHOO.util.Event.stopEvent(ev);});tmp.on('click',function(ev){YAHOO.util.Event.stopEvent(ev);});tmp.on('change',function(ev){if(!oButton.menucmd){oButton.menucmd=oButton.value;}
oButton.value=ev.value;this._buttonClick(ev,oButton);},this,true);var self=this;tmp.on('appendTo',function(){var tmp=this;if(tmp.getMenu()&&tmp.getMenu().mouseDownEvent){tmp.getMenu().mouseDownEvent.subscribe(function(ev,args){var oMenu=args[1];YAHOO.util.Event.stopEvent(args[0]);tmp._onMenuClick(args[0],tmp);if(!oButton.menucmd){oButton.menucmd=oButton.value;}
oButton.value=((oMenu.value)?oMenu.value:oMenu._oText.nodeValue);self._buttonClick.call(self,args[1],oButton);tmp._hideMenu();return false;});tmp.getMenu().clickEvent.subscribe(function(ev,args){YAHOO.util.Event.stopEvent(args[0]);});tmp.getMenu().mouseUpEvent.subscribe(function(ev,args){YAHOO.util.Event.stopEvent(args[0]);});}});}}else{tmp.on('mousedown',function(ev){YAHOO.util.Event.stopEvent(ev);});tmp.on('click',function(ev){YAHOO.util.Event.stopEvent(ev);});}
if(this.browser.ie){}
if(this.browser.webkit){tmp.hasFocus=function(){return true;};}
this._buttonList[this._buttonList.length]=tmp;if((oButton.type=='menu')||(oButton.type=='split')||(oButton.type=='select')){if(Lang.isArray(oButton.menu)){var menu=tmp.getMenu();if(menu&&menu.renderEvent){menu.renderEvent.subscribe(this._addMenuClasses,tmp);if(oButton.renderer){menu.renderEvent.subscribe(oButton.renderer,tmp);}}}}}
return oButton;},addSeparator:function(cont,after){if(!this.get('element')){this._queue[this._queue.length]=['addSeparator',arguments];return false;}
var sepCont=((cont)?cont:this.get('cont'));if(!this.get('element')){this._queue[this._queue.length]=['addSeparator',arguments];return false;}
if(this._sepCount===null){this._sepCount=0;}
if(!this._sep){this._sep=document.createElement('SPAN');Dom.addClass(this._sep,this.CLASS_SEPARATOR);this._sep.innerHTML='|';}
var _sep=this._sep.cloneNode(true);this._sepCount++;Dom.addClass(_sep,this.CLASS_SEPARATOR+'-'+this._sepCount);if(after){var nextSib=null;if(after.get){nextSib=after.get('element').nextSibling;}else if(after.nextSibling){nextSib=after.nextSibling;}else{nextSib=after;}
if(nextSib){if(nextSib==after){nextSib.parentNode.appendChild(_sep);}else{nextSib.parentNode.insertBefore(_sep,nextSib);}}}else{sepCont.appendChild(_sep);}
return _sep;},_createColorPicker:function(id){if(Dom.get(id+'_colors')){Dom.get(id+'_colors').parentNode.removeChild(Dom.get(id+'_colors'));}
var picker=document.createElement('div');picker.className='yui-toolbar-colors';picker.id=id+'_colors';picker.style.display='none';Event.on(window,'load',function(){document.body.appendChild(picker);},this,true);this._colorPicker=picker;var html='';for(var i in this._colorData){if(Lang.hasOwnProperty(this._colorData,i)){html+='<a style="background-color: '+i+'" href="#">'+i.replace('#','')+'</a>';}}
html+='<span><em>X</em><strong></strong></span>';window.setTimeout(function(){picker.innerHTML=html;},0);Event.on(picker,'mouseover',function(ev){var picker=this._colorPicker;var em=picker.getElementsByTagName('em')[0];var strong=picker.getElementsByTagName('strong')[0];var tar=Event.getTarget(ev);if(tar.tagName.toLowerCase()=='a'){em.style.backgroundColor=tar.style.backgroundColor;strong.innerHTML=this._colorData['#'+tar.innerHTML]+'<br>'+tar.innerHTML;}},this,true);Event.on(picker,'focus',function(ev){Event.stopEvent(ev);});Event.on(picker,'click',function(ev){Event.stopEvent(ev);});Event.on(picker,'mousedown',function(ev){Event.stopEvent(ev);var tar=Event.getTarget(ev);if(tar.tagName.toLowerCase()=='a'){var retVal=this.fireEvent('colorPickerClicked',{type:'colorPickerClicked',target:this,button:this._colorPicker._button,color:tar.innerHTML,colorName:this._colorData['#'+tar.innerHTML]});if(retVal!==false){var info={color:tar.innerHTML,colorName:this._colorData['#'+tar.innerHTML],value:this._colorPicker._button};this.fireEvent('buttonClick',{type:'buttonClick',target:this.get('element'),button:info});}
this.getButtonByValue(this._colorPicker._button).getMenu().hide();}},this,true);},_resetColorPicker:function(){var em=this._colorPicker.getElementsByTagName('em')[0];var strong=this._colorPicker.getElementsByTagName('strong')[0];em.style.backgroundColor='transparent';strong.innerHTML='';},_makeColorButton:function(_oButton){if(!this._colorPicker){this._createColorPicker(this.get('id'));}
_oButton.type='color';_oButton.menu=new YAHOO.widget.Overlay(this.get('id')+'_'+_oButton.value+'_menu',{visible:false,position:'absolute',iframe:true});_oButton.menu.setBody('');_oButton.menu.render(this.get('cont'));Dom.addClass(_oButton.menu.element,'yui-button-menu');Dom.addClass(_oButton.menu.element,'yui-color-button-menu');_oButton.menu.beforeShowEvent.subscribe(function(){_oButton.menu.cfg.setProperty('zindex',5);_oButton.menu.cfg.setProperty('context',[this.getButtonById(_oButton.id).get('element'),'tl','bl']);this._resetColorPicker();var _p=this._colorPicker;if(_p.parentNode){_p.parentNode.removeChild(_p);}
_oButton.menu.setBody('');_oButton.menu.appendToBody(_p);this._colorPicker.style.display='block';},this,true);return _oButton;},_makeSpinButton:function(_button,oButton){_button.addClass(this.CLASS_PREFIX+'-spinbutton');var self=this,_par=_button._button.parentNode.parentNode,range=oButton.range,_b1=document.createElement('a'),_b2=document.createElement('a');_b1.href='#';_b2.href='#';_b1.tabIndex='-1';_b2.tabIndex='-1';_b1.className='up';_b1.title=this.STR_SPIN_UP;_b1.innerHTML=this.STR_SPIN_UP;_b2.className='down';_b2.title=this.STR_SPIN_DOWN;_b2.innerHTML=this.STR_SPIN_DOWN;_par.appendChild(_b1);_par.appendChild(_b2);var label=YAHOO.lang.substitute(this.STR_SPIN_LABEL,{VALUE:_button.get('label')});_button.set('title',label);var cleanVal=function(value){value=((value<range[0])?range[0]:value);value=((value>range[1])?range[1]:value);return value;};var br=this.browser;var tbar=false;var strLabel=this.STR_SPIN_LABEL;if(this._titlebar&&this._titlebar.firstChild){tbar=this._titlebar.firstChild;}
var _intUp=function(ev){YAHOO.util.Event.stopEvent(ev);if(!_button.get('disabled')&&(ev.keyCode!=9)){var value=parseInt(_button.get('label'),10);value++;value=cleanVal(value);_button.set('label',''+value);var label=YAHOO.lang.substitute(strLabel,{VALUE:_button.get('label')});_button.set('title',label);if(!br.webkit&&tbar){}
self._buttonClick(ev,oButton);}};var _intDown=function(ev){YAHOO.util.Event.stopEvent(ev);if(!_button.get('disabled')&&(ev.keyCode!=9)){var value=parseInt(_button.get('label'),10);value--;value=cleanVal(value);_button.set('label',''+value);var label=YAHOO.lang.substitute(strLabel,{VALUE:_button.get('label')});_button.set('title',label);if(!br.webkit&&tbar){}
self._buttonClick(ev,oButton);}};var _intKeyUp=function(ev){if(ev.keyCode==38){_intUp(ev);}else if(ev.keyCode==40){_intDown(ev);}else if(ev.keyCode==107&&ev.shiftKey){_intUp(ev);}else if(ev.keyCode==109&&ev.shiftKey){_intDown(ev);}};_button.on('keydown',_intKeyUp,this,true);Event.on(_b1,'mousedown',function(ev){Event.stopEvent(ev);},this,true);Event.on(_b2,'mousedown',function(ev){Event.stopEvent(ev);},this,true);Event.on(_b1,'click',_intUp,this,true);Event.on(_b2,'click',_intDown,this,true);},_buttonClick:function(ev,info){var doEvent=true;if(ev&&ev.type=='keypress'){if(ev.keyCode==9){doEvent=false;}else if((ev.keyCode===13)||(ev.keyCode===0)||(ev.keyCode===32)){}else{doEvent=false;}}
if(doEvent){var fireNextEvent=true,retValue=false;info.isSelected=this.isSelected(info.id);if(info.value){retValue=this.fireEvent(info.value+'Click',{type:info.value+'Click',target:this.get('element'),button:info});if(retValue===false){fireNextEvent=false;}}
if(info.menucmd&&fireNextEvent){retValue=this.fireEvent(info.menucmd+'Click',{type:info.menucmd+'Click',target:this.get('element'),button:info});if(retValue===false){fireNextEvent=false;}}
if(fireNextEvent){this.fireEvent('buttonClick',{type:'buttonClick',target:this.get('element'),button:info});}
if(info.type=='select'){var button=this.getButtonById(info.id);if(button.buttonType=='rich'){var txt=info.value;for(var i=0;i<info.menu.length;i++){if(info.menu[i].value==info.value){txt=info.menu[i].text;break;}}
button.set('label','<span class="yui-toolbar-'+info.menucmd+'-'+(info.value).replace(/ /g,'-').toLowerCase()+'">'+txt+'</span>');var _items=button.getMenu().getItems();for(var m=0;m<_items.length;m++){if(_items[m].value.toLowerCase()==info.value.toLowerCase()){_items[m].cfg.setProperty('checked',true);}else{_items[m].cfg.setProperty('checked',false);}}}}
if(ev){Event.stopEvent(ev);}}},_keyNav:null,_navCounter:null,_navigateButtons:function(ev){switch(ev.keyCode){case 37:case 39:if(ev.keyCode==37){this._navCounter--;}else{this._navCounter++;}
if(this._navCounter>(this._buttonList.length-1)){this._navCounter=0;}
if(this._navCounter<0){this._navCounter=(this._buttonList.length-1);}
if(this._buttonList[this._navCounter]){var el=this._buttonList[this._navCounter].get('element');if(this.browser.ie){el=this._buttonList[this._navCounter].get('element').getElementsByTagName('a')[0];}
if(this._buttonList[this._navCounter].get('disabled')){this._navigateButtons(ev);}else{el.focus();}}
break;}},_handleFocus:function(){if(!this._keyNav){var ev='keypress';if(this.browser.ie){ev='keydown';}
Event.on(this.get('element'),ev,this._navigateButtons,this,true);this._keyNav=true;this._navCounter=-1;}},getButtonById:function(id){var len=this._buttonList.length;for(var i=0;i<len;i++){if(this._buttonList[i]&&this._buttonList[i].get('id')==id){return this._buttonList[i];}}
return false;},getButtonByValue:function(value){var _buttons=this.get('buttons');var len=_buttons.length;for(var i=0;i<len;i++){if(_buttons[i].group!==undefined){for(var m=0;m<_buttons[i].buttons.length;m++){if((_buttons[i].buttons[m].value==value)||(_buttons[i].buttons[m].menucmd==value)){return this.getButtonById(_buttons[i].buttons[m].id);}
if(_buttons[i].buttons[m].menu){for(var s=0;s<_buttons[i].buttons[m].menu.length;s++){if(_buttons[i].buttons[m].menu[s].value==value){return this.getButtonById(_buttons[i].buttons[m].id);}}}}}else{if((_buttons[i].value==value)||(_buttons[i].menucmd==value)){return this.getButtonById(_buttons[i].id);}
if(_buttons[i].menu){for(var j=0;j<_buttons[i].menu.length;j++){if(_buttons[i].menu[j].value==value){return this.getButtonById(_buttons[i].id);}}}}}
return false;},getButtonByIndex:function(index){if(this._buttonList[index]){return this._buttonList[index];}else{return false;}},getButtons:function(){return this._buttonList;},disableButton:function(id){var button=getButton.call(this,id);if(button){button.set('disabled',true);}else{return false;}},enableButton:function(id){if(this.get('disabled')){return false;}
var button=getButton.call(this,id);if(button){if(button.get('disabled')){button.set('disabled',false);}}else{return false;}},isSelected:function(id){var button=getButton.call(this,id);if(button){return button._selected;}
return false;},selectButton:function(id,value){var button=getButton.call(this,id);if(button){button.addClass('yui-button-selected');button.addClass('yui-button-'+button.get('value')+'-selected');button._selected=true;if(value){if(button.buttonType=='rich'){var _items=button.getMenu().getItems();for(var m=0;m<_items.length;m++){if(_items[m].value==value){_items[m].cfg.setProperty('checked',true);button.set('label','<span class="yui-toolbar-'+button.get('value')+'-'+(value).replace(/ /g,'-').toLowerCase()+'">'+_items[m]._oText.nodeValue+'</span>');}else{_items[m].cfg.setProperty('checked',false);}}}}}else{return false;}},deselectButton:function(id){var button=getButton.call(this,id);if(button){button.removeClass('yui-button-selected');button.removeClass('yui-button-'+button.get('value')+'-selected');button.removeClass('yui-button-hover');button._selected=false;}else{return false;}},deselectAllButtons:function(){var len=this._buttonList.length;for(var i=0;i<len;i++){this.deselectButton(this._buttonList[i]);}},disableAllButtons:function(){if(this.get('disabled')){return false;}
var len=this._buttonList.length;for(var i=0;i<len;i++){this.disableButton(this._buttonList[i]);}},enableAllButtons:function(){if(this.get('disabled')){return false;}
var len=this._buttonList.length;for(var i=0;i<len;i++){this.enableButton(this._buttonList[i]);}},resetAllButtons:function(_ex){if(!Lang.isObject(_ex)){_ex={};}
if(this.get('disabled')){return false;}
var len=this._buttonList.length;for(var i=0;i<len;i++){var _button=this._buttonList[i];if(_button){var disabled=_button._configs.disabled._initialConfig.value;if(_ex[_button.get('id')]){this.enableButton(_button);this.selectButton(_button);}else{if(disabled){this.disableButton(_button);}else{this.enableButton(_button);}
this.deselectButton(_button);}}}},destroyButton:function(id){var button=getButton.call(this,id);if(button){var thisID=button.get('id');button.destroy();var len=this._buttonList.length;for(var i=0;i<len;i++){if(this._buttonList[i]&&this._buttonList[i].get('id')==thisID){this._buttonList[i]=null;}}}else{return false;}},destroy:function(){this.get('element').innerHTML='';this.get('element').className='';for(var i in this){if(Lang.hasOwnProperty(this,i)){this[i]=null;}}
return true;},collapse:function(collapse){var el=Dom.getElementsByClassName('collapse','span',this._titlebar);if(collapse===false){Dom.removeClass(this.get('cont').parentNode,'yui-toolbar-container-collapsed');if(el[0]){Dom.removeClass(el[0],'collapsed');}
this.fireEvent('toolbarExpanded',{type:'toolbarExpanded',target:this});}else{if(el[0]){Dom.addClass(el[0],'collapsed');}
Dom.addClass(this.get('cont').parentNode,'yui-toolbar-container-collapsed');this.fireEvent('toolbarCollapsed',{type:'toolbarCollapsed',target:this});}},toString:function(){return'Toolbar (#'+this.get('element').id+') with '+this._buttonList.length+' buttons.';}});})();(function(){var Dom=YAHOO.util.Dom,Event=YAHOO.util.Event,Lang=YAHOO.lang,Toolbar=YAHOO.widget.Toolbar;YAHOO.widget.SimpleEditor=function(el,attrs){var o={};if(Lang.isObject(el)&&(!el.tagName)&&!attrs){Lang.augmentObject(o,el);el=document.createElement('textarea');this.DOMReady=true;if(o.container){var c=Dom.get(o.container);c.appendChild(el);}else{document.body.appendChild(el);}}else{if(attrs){Lang.augmentObject(o,attrs);}}
var oConfig={element:null,attributes:o},id=null;if(Lang.isString(el)){id=el;}else{if(oConfig.attributes.id){id=oConfig.attributes.id;}else{this.DOMReady=true;id=Dom.generateId(el);}}
oConfig.element=el;var element_cont=document.createElement('DIV');oConfig.attributes.element_cont=new YAHOO.util.Element(element_cont,{id:id+'_container'});var div=document.createElement('div');Dom.addClass(div,'first-child');oConfig.attributes.element_cont.appendChild(div);if(!oConfig.attributes.toolbar_cont){oConfig.attributes.toolbar_cont=document.createElement('DIV');oConfig.attributes.toolbar_cont.id=id+'_toolbar';div.appendChild(oConfig.attributes.toolbar_cont);}
var editorWrapper=document.createElement('DIV');div.appendChild(editorWrapper);oConfig.attributes.editor_wrapper=editorWrapper;YAHOO.widget.SimpleEditor.superclass.constructor.call(this,oConfig.element,oConfig.attributes);};YAHOO.extend(YAHOO.widget.SimpleEditor,YAHOO.util.Element,{_resizeConfig:{handles:['br'],autoRatio:true,status:true,proxy:true,useShim:true,setSize:false},_setupResize:function(){if(!YAHOO.util.DD||!YAHOO.util.Resize){return false;}
if(this.get('resize')){var config={};Lang.augmentObject(config,this._resizeConfig);this.resize=new YAHOO.util.Resize(this.get('element_cont').get('element'),config);this.resize.on('resize',function(args){var anim=this.get('animate');this.set('animate',false);this.set('width',args.width+'px');var h=args.height,th=(this.toolbar.get('element').clientHeight+2),dh=0;if(this.dompath){dh=(this.dompath.clientHeight+1);}
var newH=(h-th-dh);this.set('height',newH+'px');this.get('element_cont').setStyle('height','');this.set('animate',anim);},this,true);}},resize:null,_setupDD:function(){if(!YAHOO.util.DD){return false;}
if(this.get('drag')){var d=this.get('drag'),dd=YAHOO.util.DD;if(d==='proxy'){dd=YAHOO.util.DDProxy;}
this.dd=new dd(this.get('element_cont').get('element'));this.toolbar.addClass('draggable');this.dd.setHandleElId(this.toolbar._titlebar);}},dd:null,_lastCommand:null,_undoNodeChange:function(){},_storeUndo:function(){},_checkKey:function(k,e){var ret=false;if((e.keyCode===k.key)){if(k.mods&&(k.mods.length>0)){var val=0;for(var i=0;i<k.mods.length;i++){if(this.browser.mac){if(k.mods[i]=='ctrl'){k.mods[i]='meta';}}
if(e[k.mods[i]+'Key']===true){val++;}}
if(val===k.mods.length){ret=true;}}else{ret=true;}}
return ret;},_keyMap:{SELECT_ALL:{key:65,mods:['ctrl']},CLOSE_WINDOW:{key:87,mods:['shift','ctrl']},FOCUS_TOOLBAR:{key:27,mods:['shift']},FOCUS_AFTER:{key:27},FONT_SIZE_UP:{key:38,mods:['shift','ctrl']},FONT_SIZE_DOWN:{key:40,mods:['shift','ctrl']},CREATE_LINK:{key:76,mods:['shift','ctrl']},BOLD:{key:66,mods:['shift','ctrl']},ITALIC:{key:73,mods:['shift','ctrl']},UNDERLINE:{key:85,mods:['shift','ctrl']},UNDO:{key:90,mods:['ctrl']},REDO:{key:90,mods:['shift','ctrl']},JUSTIFY_LEFT:{key:219,mods:['shift','ctrl']},JUSTIFY_CENTER:{key:220,mods:['shift','ctrl']},JUSTIFY_RIGHT:{key:221,mods:['shift','ctrl']}},_cleanClassName:function(str){return str.replace(/ /g,'-').toLowerCase();},_textarea:null,_docType:'<!DOCTYPE HTML PUBLIC "-/'+'/W3C/'+'/DTD HTML 4.01/'+'/EN" "http:/'+'/www.w3.org/TR/html4/strict.dtd">',editorDirty:null,_defaultCSS:'html { height: 95%; } body { padding: 7px; background-color: #fff; font: 13px/1.22 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small; } a, a:visited, a:hover { color: blue !important; text-decoration: underline !important; cursor: text !important; } .warning-localfile { border-bottom: 1px dashed red !important; } .yui-busy { cursor: wait !important; } img.selected { border: 2px dotted #808080; } img { cursor: pointer !important; border: none; } body.ptags.webkit div.yui-wk-p { margin: 11px 0; } body.ptags.webkit div.yui-wk-div { margin: 0; }',_defaultToolbar:null,_lastButton:null,_baseHREF:function(){var href=document.location.href;if(href.indexOf('?')!==-1){href=href.substring(0,href.indexOf('?'));}
href=href.substring(0,href.lastIndexOf('/'))+'/';return href;}(),_lastImage:null,_blankImageLoaded:null,_fixNodesTimer:null,_nodeChangeTimer:null,_lastNodeChangeEvent:null,_lastNodeChange:0,_rendered:null,DOMReady:null,_selection:null,_mask:null,_showingHiddenElements:null,currentWindow:null,currentEvent:null,operaEvent:null,currentFont:null,currentElement:null,dompath:null,beforeElement:null,afterElement:null,invalidHTML:{form:true,input:true,button:true,select:true,link:true,html:true,body:true,iframe:true,script:true,style:true,textarea:true},toolbar:null,_contentTimer:null,_contentTimerCounter:0,_disabled:['createlink','fontname','fontsize','forecolor','backcolor'],_alwaysDisabled:{undo:true,redo:true},_alwaysEnabled:{},_semantic:{'bold':true,'italic':true,'underline':true},_tag2cmd:{'b':'bold','strong':'bold','i':'italic','em':'italic','u':'underline','sup':'superscript','sub':'subscript','img':'insertimage','a':'createlink','ul':'insertunorderedlist','ol':'insertorderedlist'},_createIframe:function(){var ifrmDom=document.createElement('iframe');ifrmDom.id=this.get('id')+'_editor';var config={border:'0',frameBorder:'0',marginWidth:'0',marginHeight:'0',leftMargin:'0',topMargin:'0',allowTransparency:'true',width:'100%'};if(this.get('autoHeight')){config.scrolling='no';}
for(var i in config){if(Lang.hasOwnProperty(config,i)){ifrmDom.setAttribute(i,config[i]);}}
var isrc='javascript:;';if(this.browser.ie){isrc='javascript:false;';}
ifrmDom.setAttribute('src',isrc);var ifrm=new YAHOO.util.Element(ifrmDom);ifrm.setStyle('visibility','hidden');return ifrm;},_isElement:function(el,tag){if(el&&el.tagName&&(el.tagName.toLowerCase()==tag)){return true;}
if(el&&el.getAttribute&&(el.getAttribute('tag')==tag)){return true;}
return false;},_hasParent:function(el,tag){if(!el||!el.parentNode){return false;}
while(el.parentNode){if(this._isElement(el,tag)){return el;}
if(el.parentNode){el=el.parentNode;}else{return false;}}
return false;},_getDoc:function(){var value=false;if(this.get){if(this.get('iframe')){if(this.get('iframe').get){if(this.get('iframe').get('element')){try{if(this.get('iframe').get('element').contentWindow){if(this.get('iframe').get('element').contentWindow.document){value=this.get('iframe').get('element').contentWindow.document;return value;}}}catch(e){}}}}}
return false;},_getWindow:function(){return this.get('iframe').get('element').contentWindow;},focus:function(){this._getWindow().focus();},_focusWindow:function(){this.focus();},_hasSelection:function(){var sel=this._getSelection();var range=this._getRange();var hasSel=false;if(!sel||!range){return hasSel;}
if(this.browser.ie||this.browser.opera){if(range.text){hasSel=true;}
if(range.html){hasSel=true;}}else{if(this.browser.webkit){if(sel+''!==''){hasSel=true;}}else{if(sel&&(sel.toString()!=='')&&(sel!==undefined)){hasSel=true;}}}
return hasSel;},_getSelection:function(){var _sel=null;if(this._getDoc()&&this._getWindow()){if(this._getDoc().selection){_sel=this._getDoc().selection;}else{_sel=this._getWindow().getSelection();}
if(this.browser.webkit){if(_sel.baseNode){this._selection={};this._selection.baseNode=_sel.baseNode;this._selection.baseOffset=_sel.baseOffset;this._selection.extentNode=_sel.extentNode;this._selection.extentOffset=_sel.extentOffset;}else if(this._selection!==null){_sel=this._getWindow().getSelection();_sel.setBaseAndExtent(this._selection.baseNode,this._selection.baseOffset,this._selection.extentNode,this._selection.extentOffset);this._selection=null;}}}
return _sel;},_selectNode:function(node,collapse){if(!node){return false;}
var sel=this._getSelection(),range=null;if(this.browser.ie){try{range=this._getDoc().body.createTextRange();range.moveToElementText(node);range.select();}catch(e){}}else if(this.browser.webkit){if(collapse){sel.setBaseAndExtent(node,1,node,node.innerText.length);}else{sel.setBaseAndExtent(node,0,node,node.innerText.length);}}else if(this.browser.opera){sel=this._getWindow().getSelection();range=this._getDoc().createRange();range.selectNode(node);sel.removeAllRanges();sel.addRange(range);}else{range=this._getDoc().createRange();range.selectNodeContents(node);sel.removeAllRanges();sel.addRange(range);}
this.nodeChange();},_getRange:function(){var sel=this._getSelection();if(sel===null){return null;}
if(this.browser.webkit&&!sel.getRangeAt){var _range=this._getDoc().createRange();try{_range.setStart(sel.anchorNode,sel.anchorOffset);_range.setEnd(sel.focusNode,sel.focusOffset);}catch(e){_range=this._getWindow().getSelection()+'';}
return _range;}
if(this.browser.ie||this.browser.opera){try{return sel.createRange();}catch(e2){return null;}}
if(sel.rangeCount>0){return sel.getRangeAt(0);}
return null;},_setDesignMode:function(state){try{var set=true;if(this.browser.ie&&(state.toLowerCase()=='off')){set=false;}
if(set){this._getDoc().designMode=state;}}catch(e){}},_toggleDesignMode:function(){var _dMode=this._getDoc().designMode.toLowerCase(),_state='on';if(_dMode=='on'){_state='off';}
this._setDesignMode(_state);return _state;},_focused:null,_handleFocus:function(e){if(!this._focused){this._focused=true;this.fireEvent('editorWindowFocus',{type:'editorWindowFocus',target:this});}},_handleBlur:function(e){if(this._focused){this._focused=false;this.fireEvent('editorWindowBlur',{type:'editorWindowBlur',target:this});}},_initEditorEvents:function(){var doc=this._getDoc(),win=this._getWindow();Event.on(doc,'mouseup',this._handleMouseUp,this,true);Event.on(doc,'mousedown',this._handleMouseDown,this,true);Event.on(doc,'click',this._handleClick,this,true);Event.on(doc,'dblclick',this._handleDoubleClick,this,true);Event.on(doc,'keypress',this._handleKeyPress,this,true);Event.on(doc,'keyup',this._handleKeyUp,this,true);Event.on(doc,'keydown',this._handleKeyDown,this,true);Event.on(win,'focus',this._handleFocus,this,true);Event.on(win,'blur',this._handleBlur,this,true);},_removeEditorEvents:function(){var doc=this._getDoc(),win=this._getWindow();Event.removeListener(doc,'mouseup',this._handleMouseUp,this,true);Event.removeListener(doc,'mousedown',this._handleMouseDown,this,true);Event.removeListener(doc,'click',this._handleClick,this,true);Event.removeListener(doc,'dblclick',this._handleDoubleClick,this,true);Event.removeListener(doc,'keypress',this._handleKeyPress,this,true);Event.removeListener(doc,'keyup',this._handleKeyUp,this,true);Event.removeListener(doc,'keydown',this._handleKeyDown,this,true);Event.removeListener(win,'focus',this._handleFocus,this,true);Event.removeListener(win,'blur',this._handleBlur,this,true);},_fixWebkitDivs:function(){if(this.browser.webkit){var divs=this._getDoc().body.getElementsByTagName('div');Dom.addClass(divs,'yui-wk-div');}},_initEditor:function(){if(this.browser.ie){this._getDoc().body.style.margin='0';}
if(!this.get('disabled')){if(this._getDoc().designMode.toLowerCase()!='on'){this._setDesignMode('on');this._contentTimerCounter=0;}}
if(!this._getDoc().body){this._contentTimerCounter=0;this._checkLoaded();return false;}
this.toolbar.on('buttonClick',this._handleToolbarClick,this,true);if(!this.get('disabled')){this._initEditorEvents();this.toolbar.set('disabled',false);}
this.fireEvent('editorContentLoaded',{type:'editorLoaded',target:this});this._fixWebkitDivs();if(this.get('dompath')){var self=this;setTimeout(function(){self._writeDomPath.call(self);self._setupResize.call(self);},150);}
var br=[];for(var i in this.browser){if(this.browser[i]){br.push(i);}}
if(this.get('ptags')){br.push('ptags');}
Dom.addClass(this._getDoc().body,br.join(' '));this.nodeChange(true);},_checkLoaded:function(){this._contentTimerCounter++;if(this._contentTimer){clearTimeout(this._contentTimer);}
if(this._contentTimerCounter>500){return false;}
var init=false;try{if(this._getDoc()&&this._getDoc().body){if(this.browser.ie){if(this._getDoc().body.readyState=='complete'){init=true;}}else{if(this._getDoc().body._rteLoaded===true){init=true;}}}}catch(e){init=false;}
if(init===true){this._initEditor();}else{var self=this;this._contentTimer=setTimeout(function(){self._checkLoaded.call(self);},20);}},_setInitialContent:function(){var value=((this._textarea)?this.get('element').value:this.get('element').innerHTML),doc=null;if((value==='')&&this.browser.gecko){value='<br>';}
var html=Lang.substitute(this.get('html'),{TITLE:this.STR_TITLE,CONTENT:this._cleanIncomingHTML(value),CSS:this.get('css'),HIDDEN_CSS:((this.get('hiddencss'))?this.get('hiddencss'):'/* No Hidden CSS */'),EXTRA_CSS:((this.get('extracss'))?this.get('extracss'):'/* No Extra CSS */')}),check=true;if(document.compatMode!='BackCompat'){html=this._docType+"\n"+html;}else{}
if(this.browser.ie||this.browser.webkit||this.browser.opera||(navigator.userAgent.indexOf('Firefox/1.5')!=-1)){try{if(this.browser.air){doc=this._getDoc().implementation.createHTMLDocument();var origDoc=this._getDoc();origDoc.open();origDoc.close();doc.open();doc.write(html);doc.close();var node=origDoc.importNode(doc.getElementsByTagName("html")[0],true);origDoc.replaceChild(node,origDoc.getElementsByTagName("html")[0]);origDoc.body._rteLoaded=true;}else{doc=this._getDoc();doc.open();doc.write(html);doc.close();}}catch(e){check=false;}}else{this.get('iframe').get('element').src='data:text/html;charset=utf-8,'+encodeURIComponent(html);}
this.get('iframe').setStyle('visibility','');if(check){this._checkLoaded();}},_setMarkupType:function(action){switch(this.get('markup')){case'css':this._setEditorStyle(true);break;case'default':this._setEditorStyle(false);break;case'semantic':case'xhtml':if(this._semantic[action]){this._setEditorStyle(false);}else{this._setEditorStyle(true);}
break;}},_setEditorStyle:function(stat){try{this._getDoc().execCommand('useCSS',false,!stat);}catch(ex){}},_getSelectedElement:function(){var doc=this._getDoc(),range=null,sel=null,elm=null,check=true;if(this.browser.ie){this.currentEvent=this._getWindow().event;range=this._getRange();if(range){elm=range.item?range.item(0):range.parentElement();if(this._hasSelection()){}
if(elm===doc.body){elm=null;}}
if((this.currentEvent!==null)&&(this.currentEvent.keyCode===0)){elm=Event.getTarget(this.currentEvent);}}else{sel=this._getSelection();range=this._getRange();if(!sel||!range){return null;}
if(!this._hasSelection()&&this.browser.webkit3){}
if(this.browser.gecko){if(range.startContainer){if(range.startContainer.nodeType===3){elm=range.startContainer.parentNode;}else if(range.startContainer.nodeType===1){elm=range.startContainer;}
if(this.currentEvent){var tar=Event.getTarget(this.currentEvent);if(!this._isElement(tar,'html')){if(elm!==tar){elm=tar;}}}}}
if(check){if(sel.anchorNode&&(sel.anchorNode.nodeType==3)){if(sel.anchorNode.parentNode){elm=sel.anchorNode.parentNode;}
if(sel.anchorNode.nextSibling!=sel.focusNode.nextSibling){elm=sel.anchorNode.nextSibling;}}
if(this._isElement(elm,'br')){elm=null;}
if(!elm){elm=range.commonAncestorContainer;if(!range.collapsed){if(range.startContainer==range.endContainer){if(range.startOffset-range.endOffset<2){if(range.startContainer.hasChildNodes()){elm=range.startContainer.childNodes[range.startOffset];}}}}}}}
if(this.currentEvent!==null){try{switch(this.currentEvent.type){case'click':case'mousedown':case'mouseup':if(this.browser.webkit){elm=Event.getTarget(this.currentEvent);}
break;default:break;}}catch(e){}}else if((this.currentElement&&this.currentElement[0])&&(!this.browser.ie)){}
if(this.browser.opera||this.browser.webkit){if(this.currentEvent&&!elm){elm=YAHOO.util.Event.getTarget(this.currentEvent);}}
if(!elm||!elm.tagName){elm=doc.body;}
if(this._isElement(elm,'html')){elm=doc.body;}
if(this._isElement(elm,'body')){elm=doc.body;}
if(elm&&!elm.parentNode){elm=doc.body;}
if(elm===undefined){elm=null;}
return elm;},_getDomPath:function(el){if(!el){el=this._getSelectedElement();}
var domPath=[];while(el!==null){if(el.ownerDocument!=this._getDoc()){el=null;break;}
if(el.nodeName&&el.nodeType&&(el.nodeType==1)){domPath[domPath.length]=el;}
if(this._isElement(el,'body')){break;}
el=el.parentNode;}
if(domPath.length===0){if(this._getDoc()&&this._getDoc().body){domPath[0]=this._getDoc().body;}}
return domPath.reverse();},_writeDomPath:function(){var path=this._getDomPath(),pathArr=[],classPath='',pathStr='';for(var i=0;i<path.length;i++){var tag=path[i].tagName.toLowerCase();if((tag=='ol')&&(path[i].type)){tag+=':'+path[i].type;}
if(Dom.hasClass(path[i],'yui-tag')){tag=path[i].getAttribute('tag');}
if((this.get('markup')=='semantic')||(this.get('markup')=='xhtml')){switch(tag){case'b':tag='strong';break;case'i':tag='em';break;}}
if(!Dom.hasClass(path[i],'yui-non')){if(Dom.hasClass(path[i],'yui-tag')){pathStr=tag;}else{classPath=((path[i].className!=='')?'.'+path[i].className.replace(/ /g,'.'):'');if((classPath.indexOf('yui')!=-1)||(classPath.toLowerCase().indexOf('apple-style-span')!=-1)){classPath='';}
pathStr=tag+((path[i].id)?'#'+path[i].id:'')+classPath;}
switch(tag){case'body':pathStr='body';break;case'a':if(path[i].getAttribute('href',2)){pathStr+=':'+path[i].getAttribute('href',2).replace('mailto:','').replace('http:/'+'/','').replace('https:/'+'/','');}
break;case'img':var h=path[i].height;var w=path[i].width;if(path[i].style.height){h=parseInt(path[i].style.height,10);}
if(path[i].style.width){w=parseInt(path[i].style.width,10);}
pathStr+='('+w+'x'+h+')';break;}
if(pathStr.length>10){pathStr='<span title="'+pathStr+'">'+pathStr.substring(0,10)+'...'+'</span>';}else{pathStr='<span title="'+pathStr+'">'+pathStr+'</span>';}
pathArr[pathArr.length]=pathStr;}}
var str=pathArr.join(' '+this.SEP_DOMPATH+' ');if(this.dompath.innerHTML!=str){this.dompath.innerHTML=str;}},_fixNodes:function(){var doc=this._getDoc(),els=[];for(var v in this.invalidHTML){if(YAHOO.lang.hasOwnProperty(this.invalidHTML,v)){if(v.toLowerCase()!='span'){var tags=doc.body.getElementsByTagName(v);if(tags.length){for(var i=0;i<tags.length;i++){els.push(tags[i]);}}}}}
for(var h=0;h<els.length;h++){if(els[h].parentNode){if(Lang.isObject(this.invalidHTML[els[h].tagName.toLowerCase()])&&this.invalidHTML[els[h].tagName.toLowerCase()].keepContents){this._swapEl(els[h],'span',function(el){el.className='yui-non';});}else{els[h].parentNode.removeChild(els[h]);}}}
var imgs=this._getDoc().getElementsByTagName('img');Dom.addClass(imgs,'yui-img');},_isNonEditable:function(ev){if(this.get('allowNoEdit')){var el=Event.getTarget(ev);if(this._isElement(el,'html')){el=null;}
var path=this._getDomPath(el);for(var i=(path.length-1);i>-1;i--){if(Dom.hasClass(path[i],this.CLASS_NOEDIT)){try{this._getDoc().execCommand('enableObjectResizing',false,'false');}catch(e){}
this.nodeChange();Event.stopEvent(ev);return true;}}
try{this._getDoc().execCommand('enableObjectResizing',false,'true');}catch(e2){}
}
return false;},_setCurrentEvent:function(ev){this.currentEvent=ev;},_handleClick:function(ev){var ret=this.fireEvent('beforeEditorClick',{type:'beforeEditorClick',target:this,ev:ev});if(ret===false){return false;}
if(this._isNonEditable(ev)){return false;}
this._setCurrentEvent(ev);if(this.currentWindow){this.closeWindow();}
if(this.currentWindow){this.closeWindow();}
if(this.browser.webkit){var tar=Event.getTarget(ev);if(this._isElement(tar,'a')||this._isElement(tar.parentNode,'a')){Event.stopEvent(ev);this.nodeChange();}}else{this.nodeChange();}
this.fireEvent('editorClick',{type:'editorClick',target:this,ev:ev});},_handleMouseUp:function(ev){var ret=this.fireEvent('beforeEditorMouseUp',{type:'beforeEditorMouseUp',target:this,ev:ev});if(ret===false){return false;}
if(this._isNonEditable(ev)){return false;}
var self=this;if(this.browser.opera){var sel=Event.getTarget(ev);if(this._isElement(sel,'img')){this.nodeChange();if(this.operaEvent){clearTimeout(this.operaEvent);this.operaEvent=null;this._handleDoubleClick(ev);}else{this.operaEvent=window.setTimeout(function(){self.operaEvent=false;},700);}}}
if(this.browser.webkit||this.browser.opera){if(this.browser.webkit){Event.stopEvent(ev);}}
this.nodeChange();this.fireEvent('editorMouseUp',{type:'editorMouseUp',target:this,ev:ev});},_handleMouseDown:function(ev){var ret=this.fireEvent('beforeEditorMouseDown',{type:'beforeEditorMouseDown',target:this,ev:ev});if(ret===false){return false;}
if(this._isNonEditable(ev)){return false;}
this._setCurrentEvent(ev);var sel=Event.getTarget(ev);if(this.browser.webkit&&this._hasSelection()){var _sel=this._getSelection();if(!this.browser.webkit3){_sel.collapse(true);}else{_sel.collapseToStart();}}
if(this.browser.webkit&&this._lastImage){Dom.removeClass(this._lastImage,'selected');this._lastImage=null;}
if(this._isElement(sel,'img')||this._isElement(sel,'a')){if(this.browser.webkit){Event.stopEvent(ev);if(this._isElement(sel,'img')){Dom.addClass(sel,'selected');this._lastImage=sel;}}
if(this.currentWindow){this.closeWindow();}
this.nodeChange();}
this.fireEvent('editorMouseDown',{type:'editorMouseDown',target:this,ev:ev});},_handleDoubleClick:function(ev){var ret=this.fireEvent('beforeEditorDoubleClick',{type:'beforeEditorDoubleClick',target:this,ev:ev});if(ret===false){return false;}
if(this._isNonEditable(ev)){return false;}
this._setCurrentEvent(ev);var sel=Event.getTarget(ev);if(this._isElement(sel,'img')){this.currentElement[0]=sel;this.toolbar.fireEvent('insertimageClick',{type:'insertimageClick',target:this.toolbar});this.fireEvent('afterExecCommand',{type:'afterExecCommand',target:this});}else if(this._hasParent(sel,'a')){this.currentElement[0]=this._hasParent(sel,'a');this.toolbar.fireEvent('createlinkClick',{type:'createlinkClick',target:this.toolbar});this.fireEvent('afterExecCommand',{type:'afterExecCommand',target:this});}
this.nodeChange();this.fireEvent('editorDoubleClick',{type:'editorDoubleClick',target:this,ev:ev});},_handleKeyUp:function(ev){var ret=this.fireEvent('beforeEditorKeyUp',{type:'beforeEditorKeyUp',target:this,ev:ev});if(ret===false){return false;}
if(this._isNonEditable(ev)){return false;}
this._setCurrentEvent(ev);switch(ev.keyCode){case this._keyMap.SELECT_ALL.key:if(this._checkKey(this._keyMap.SELECT_ALL,ev)){this.nodeChange();}
break;case 32:case 35:case 36:case 37:case 38:case 39:case 40:case 46:case 8:case this._keyMap.CLOSE_WINDOW.key:if((ev.keyCode==this._keyMap.CLOSE_WINDOW.key)&&this.currentWindow){if(this._checkKey(this._keyMap.CLOSE_WINDOW,ev)){this.closeWindow();}}else{if(!this.browser.ie){if(this._nodeChangeTimer){clearTimeout(this._nodeChangeTimer);}
var self=this;this._nodeChangeTimer=setTimeout(function(){self._nodeChangeTimer=null;self.nodeChange.call(self);},100);}else{this.nodeChange();}
this.editorDirty=true;}
break;}
this.fireEvent('editorKeyUp',{type:'editorKeyUp',target:this,ev:ev});this._storeUndo();},_handleKeyPress:function(ev){var ret=this.fireEvent('beforeEditorKeyPress',{type:'beforeEditorKeyPress',target:this,ev:ev});if(ret===false){return false;}
if(this.get('allowNoEdit')){if(ev&&ev.keyCode&&(ev.keyCode==63272)){Event.stopEvent(ev);}}
if(this._isNonEditable(ev)){return false;}
this._setCurrentEvent(ev);if(this.browser.opera){if(ev.keyCode===13){var tar=this._getSelectedElement();if(!this._isElement(tar,'li')){this.execCommand('inserthtml','<br>');Event.stopEvent(ev);}}}
if(this.browser.webkit){if(!this.browser.webkit3){if(ev.keyCode&&(ev.keyCode==122)&&(ev.metaKey)){if(this._hasParent(this._getSelectedElement(),'li')){Event.stopEvent(ev);}}}
this._listFix(ev);}
this.fireEvent('editorKeyPress',{type:'editorKeyPress',target:this,ev:ev});},_handleKeyDown:function(ev){var ret=this.fireEvent('beforeEditorKeyDown',{type:'beforeEditorKeyDown',target:this,ev:ev});if(ret===false){return false;}
var tar=null,_range=null;if(this._isNonEditable(ev)){return false;}
this._setCurrentEvent(ev);if(this.currentWindow){this.closeWindow();}
if(this.currentWindow){this.closeWindow();}
var doExec=false,action=null,value=null,exec=false;switch(ev.keyCode){case this._keyMap.FOCUS_TOOLBAR.key:if(this._checkKey(this._keyMap.FOCUS_TOOLBAR,ev)){var h=this.toolbar.getElementsByTagName('h2')[0];if(h&&h.firstChild){h.firstChild.focus();}}else if(this._checkKey(this._keyMap.FOCUS_AFTER,ev)){this.afterElement.focus();}
Event.stopEvent(ev);doExec=false;break;case this._keyMap.CREATE_LINK.key:if(this._hasSelection()){if(this._checkKey(this._keyMap.CREATE_LINK,ev)){var makeLink=true;if(this.get('limitCommands')){if(!this.toolbar.getButtonByValue('createlink')){makeLink=false;}}
if(makeLink){this.execCommand('createlink','');this.toolbar.fireEvent('createlinkClick',{type:'createlinkClick',target:this.toolbar});this.fireEvent('afterExecCommand',{type:'afterExecCommand',target:this});doExec=false;}}}
break;case this._keyMap.UNDO.key:case this._keyMap.REDO.key:if(this._checkKey(this._keyMap.REDO,ev)){action='redo';doExec=true;}else if(this._checkKey(this._keyMap.UNDO,ev)){action='undo';doExec=true;}
break;case this._keyMap.BOLD.key:if(this._checkKey(this._keyMap.BOLD,ev)){action='bold';doExec=true;}
break;case this._keyMap.FONT_SIZE_UP.key:case this._keyMap.FONT_SIZE_DOWN.key:var uk=false,dk=false;if(this._checkKey(this._keyMap.FONT_SIZE_UP,ev)){uk=true;}
if(this._checkKey(this._keyMap.FONT_SIZE_DOWN,ev)){dk=true;}
if(uk||dk){var fs_button=this.toolbar.getButtonByValue('fontsize'),label=parseInt(fs_button.get('label'),10),newValue=(label+1);if(dk){newValue=(label-1);}
action='fontsize';value=newValue+'px';doExec=true;}
break;case this._keyMap.ITALIC.key:if(this._checkKey(this._keyMap.ITALIC,ev)){action='italic';doExec=true;}
break;case this._keyMap.UNDERLINE.key:if(this._checkKey(this._keyMap.UNDERLINE,ev)){action='underline';doExec=true;}
break;case 9:if(this.browser.ie){_range=this._getRange();tar=this._getSelectedElement();if(!this._isElement(tar,'li')){if(_range){_range.pasteHTML('&nbsp;&nbsp;&nbsp;&nbsp;');_range.collapse(false);_range.select();}
Event.stopEvent(ev);}}
if(this.browser.gecko>1.8){tar=this._getSelectedElement();if(this._isElement(tar,'li')){if(ev.shiftKey){this._getDoc().execCommand('outdent',null,'');}else{this._getDoc().execCommand('indent',null,'');}}else if(!this._hasSelection()){this.execCommand('inserthtml','&nbsp;&nbsp;&nbsp;&nbsp;');}
Event.stopEvent(ev);}
break;case 13:var p=null,i=0;if(this.get('ptags')&&!ev.shiftKey){if(this.browser.gecko){tar=this._getSelectedElement();if(!this._hasParent(tar,'li')){if(this._hasParent(tar,'p')){p=this._getDoc().createElement('p');p.innerHTML='&nbsp;';Dom.insertAfter(p,tar);this._selectNode(p.firstChild);}else if(this._isElement(tar,'body')){this.execCommand('insertparagraph',null);var ps=this._getDoc().body.getElementsByTagName('p');for(i=0;i<ps.length;i++){if(ps[i].getAttribute('_moz_dirty')!==null){p=this._getDoc().createElement('p');p.innerHTML='&nbsp;';Dom.insertAfter(p,ps[i]);this._selectNode(p.firstChild);ps[i].removeAttribute('_moz_dirty');}}}else{doExec=true;action='insertparagraph';}
Event.stopEvent(ev);}}
if(this.browser.webkit){tar=this._getSelectedElement();if(!this._hasParent(tar,'li')){this.execCommand('insertparagraph',null);var divs=this._getDoc().body.getElementsByTagName('div');for(i=0;i<divs.length;i++){if(!Dom.hasClass(divs[i],'yui-wk-div')){Dom.addClass(divs[i],'yui-wk-p');}}
Event.stopEvent(ev);}}}else{if(this.browser.webkit){tar=this._getSelectedElement();if(!this._hasParent(tar,'li')){this.execCommand('inserthtml','<var id="yui-br"></var>');var holder=this._getDoc().getElementById('yui-br'),br=this._getDoc().createElement('br'),caret=this._getDoc().createElement('span');holder.parentNode.replaceChild(br,holder);caret.className='yui-non';caret.innerHTML='&nbsp;';Dom.insertAfter(caret,br);this._selectNode(caret);Event.stopEvent(ev);}}
if(this.browser.ie){_range=this._getRange();tar=this._getSelectedElement();if(!this._isElement(tar,'li')){if(_range){_range.pasteHTML('<br>');_range.collapse(false);_range.select();}
Event.stopEvent(ev);}}}
break;}
if(this.browser.ie){this._listFix(ev);}
if(doExec&&action){this.execCommand(action,value);Event.stopEvent(ev);this.nodeChange();}
this.fireEvent('editorKeyDown',{type:'editorKeyDown',target:this,ev:ev});},_listFix:function(ev){var testLi=null,par=null,preContent=false,range=null;if(this.browser.webkit){if(ev.keyCode&&(ev.keyCode==13)){if(this._hasParent(this._getSelectedElement(),'li')){var tar=this._hasParent(this._getSelectedElement(),'li');if(tar.previousSibling){if(tar.firstChild&&(tar.firstChild.length==1)){this._selectNode(tar);}}}}}
if(ev.keyCode&&((!this.browser.webkit3&&(ev.keyCode==25))||((this.browser.webkit3||!this.browser.webkit)&&((ev.keyCode==9)&&ev.shiftKey)))){testLi=this._getSelectedElement();if(this._hasParent(testLi,'li')){testLi=this._hasParent(testLi,'li');if(this._hasParent(testLi,'ul')||this._hasParent(testLi,'ol')){par=this._hasParent(testLi,'ul');if(!par){par=this._hasParent(testLi,'ol');}
if(this._isElement(par.previousSibling,'li')){par.removeChild(testLi);par.parentNode.insertBefore(testLi,par.nextSibling);if(this.browser.ie){range=this._getDoc().body.createTextRange();range.moveToElementText(testLi);range.collapse(false);range.select();}
if(this.browser.webkit){this._selectNode(testLi.firstChild);}
Event.stopEvent(ev);}}}}
if(ev.keyCode&&((ev.keyCode==9)&&(!ev.shiftKey))){var preLi=this._getSelectedElement();if(this._hasParent(preLi,'li')){preContent=this._hasParent(preLi,'li').innerHTML;}
if(this.browser.webkit){this._getDoc().execCommand('inserttext',false,'\t');}
testLi=this._getSelectedElement();if(this._hasParent(testLi,'li')){par=this._hasParent(testLi,'li');var newUl=this._getDoc().createElement(par.parentNode.tagName.toLowerCase());if(this.browser.webkit){var span=Dom.getElementsByClassName('Apple-tab-span','span',par);if(span[0]){par.removeChild(span[0]);par.innerHTML=Lang.trim(par.innerHTML);if(preContent){par.innerHTML='<span class="yui-non">'+preContent+'</span>&nbsp;';}else{par.innerHTML='<span class="yui-non">&nbsp;</span>&nbsp;';}}}else{if(preContent){par.innerHTML=preContent+'&nbsp;';}else{par.innerHTML='&nbsp;';}}
par.parentNode.replaceChild(newUl,par);newUl.appendChild(par);if(this.browser.webkit){this._getSelection().setBaseAndExtent(par.firstChild,1,par.firstChild,par.firstChild.innerText.length);if(!this.browser.webkit3){par.parentNode.parentNode.style.display='list-item';setTimeout(function(){par.parentNode.parentNode.style.display='block';},1);}}else if(this.browser.ie){range=this._getDoc().body.createTextRange();range.moveToElementText(par);range.collapse(false);range.select();}else{this._selectNode(par);}
Event.stopEvent(ev);}
if(this.browser.webkit){Event.stopEvent(ev);}
this.nodeChange();}},nodeChange:function(force){var NCself=this;this._storeUndo();if(this.get('nodeChangeDelay')){window.setTimeout(function(){NCself._nodeChange.apply(NCself,arguments);},0);}else{this._nodeChange();}},_nodeChange:function(force){var threshold=parseInt(this.get('nodeChangeThreshold'),10),thisNodeChange=Math.round(new Date().getTime()/1000),self=this;if(force===true){this._lastNodeChange=0;}
if((this._lastNodeChange+threshold)<thisNodeChange){if(this._fixNodesTimer===null){this._fixNodesTimer=window.setTimeout(function(){self._fixNodes.call(self);self._fixNodesTimer=null;},0);}}
this._lastNodeChange=thisNodeChange;if(this.currentEvent){try{this._lastNodeChangeEvent=this.currentEvent.type;}catch(e){}}
var beforeNodeChange=this.fireEvent('beforeNodeChange',{type:'beforeNodeChange',target:this});if(beforeNodeChange===false){return false;}
if(this.get('dompath')){window.setTimeout(function(){self._writeDomPath.call(self);},0);}
if(!this.get('disabled')){if(this.STOP_NODE_CHANGE){this.STOP_NODE_CHANGE=false;return false;}else{var sel=this._getSelection(),range=this._getRange(),el=this._getSelectedElement(),fn_button=this.toolbar.getButtonByValue('fontname'),fs_button=this.toolbar.getButtonByValue('fontsize'),undo_button=this.toolbar.getButtonByValue('undo'),redo_button=this.toolbar.getButtonByValue('redo');var _ex={};if(this._lastButton){_ex[this._lastButton.id]=true;}
if(!this._isElement(el,'body')){if(fn_button){_ex[fn_button.get('id')]=true;}
if(fs_button){_ex[fs_button.get('id')]=true;}}
if(redo_button){delete _ex[redo_button.get('id')];}
this.toolbar.resetAllButtons(_ex);for(var d=0;d<this._disabled.length;d++){var _button=this.toolbar.getButtonByValue(this._disabled[d]);if(_button&&_button.get){if(this._lastButton&&(_button.get('id')===this._lastButton.id)){}else{if(!this._hasSelection()&&!this.get('insert')){switch(this._disabled[d]){case'fontname':case'fontsize':break;default:this.toolbar.disableButton(_button);}}else{if(!this._alwaysDisabled[this._disabled[d]]){this.toolbar.enableButton(_button);}}
if(!this._alwaysEnabled[this._disabled[d]]){this.toolbar.deselectButton(_button);}}}}
var path=this._getDomPath();var tag=null,cmd=null;for(var i=0;i<path.length;i++){tag=path[i].tagName.toLowerCase();if(path[i].getAttribute('tag')){tag=path[i].getAttribute('tag').toLowerCase();}
cmd=this._tag2cmd[tag];if(cmd===undefined){cmd=[];}
if(!Lang.isArray(cmd)){cmd=[cmd];}
if(path[i].style.fontWeight.toLowerCase()=='bold'){cmd[cmd.length]='bold';}
if(path[i].style.fontStyle.toLowerCase()=='italic'){cmd[cmd.length]='italic';}
if(path[i].style.textDecoration.toLowerCase()=='underline'){cmd[cmd.length]='underline';}
if(path[i].style.textDecoration.toLowerCase()=='line-through'){cmd[cmd.length]='strikethrough';}
if(cmd.length>0){for(var j=0;j<cmd.length;j++){this.toolbar.selectButton(cmd[j]);this.toolbar.enableButton(cmd[j]);}}
switch(path[i].style.textAlign.toLowerCase()){case'left':case'right':case'center':case'justify':var alignType=path[i].style.textAlign.toLowerCase();if(path[i].style.textAlign.toLowerCase()=='justify'){alignType='full';}
this.toolbar.selectButton('justify'+alignType);this.toolbar.enableButton('justify'+alignType);break;}}
if(fn_button){var family=fn_button._configs.label._initialConfig.value;fn_button.set('label','<span class="yui-toolbar-fontname-'+this._cleanClassName(family)+'">'+family+'</span>');this._updateMenuChecked('fontname',family);}
if(fs_button){fs_button.set('label',fs_button._configs.label._initialConfig.value);}
var hd_button=this.toolbar.getButtonByValue('heading');if(hd_button){hd_button.set('label',hd_button._configs.label._initialConfig.value);this._updateMenuChecked('heading','none');}
var img_button=this.toolbar.getButtonByValue('insertimage');if(img_button&&this.currentWindow&&(this.currentWindow.name=='insertimage')){this.toolbar.disableButton(img_button);}
if(this._lastButton&&this._lastButton.isSelected){this.toolbar.deselectButton(this._lastButton.id);}
this._undoNodeChange();}}
this.fireEvent('afterNodeChange',{type:'afterNodeChange',target:this});},_updateMenuChecked:function(button,value,tbar){if(!tbar){tbar=this.toolbar;}
var _button=tbar.getButtonByValue(button);_button.checkValue(value);},_handleToolbarClick:function(ev){var value='';var str='';var cmd=ev.button.value;if(ev.button.menucmd){value=cmd;cmd=ev.button.menucmd;}
this._lastButton=ev.button;if(this.STOP_EXEC_COMMAND){this.STOP_EXEC_COMMAND=false;return false;}else{this.execCommand(cmd,value);if(!this.browser.webkit){var Fself=this;setTimeout(function(){Fself.focus.call(Fself);},5);}}
Event.stopEvent(ev);},_setupAfterElement:function(){if(!this.beforeElement){this.beforeElement=document.createElement('h2');this.beforeElement.className='yui-editor-skipheader';this.beforeElement.tabIndex='-1';this.beforeElement.innerHTML=this.STR_BEFORE_EDITOR;this.get('element_cont').get('firstChild').insertBefore(this.beforeElement,this.toolbar.get('nextSibling'));}
if(!this.afterElement){this.afterElement=document.createElement('h2');this.afterElement.className='yui-editor-skipheader';this.afterElement.tabIndex='-1';this.afterElement.innerHTML=this.STR_LEAVE_EDITOR;this.get('element_cont').get('firstChild').appendChild(this.afterElement);}},_disableEditor:function(disabled){if(disabled){this._removeEditorEvents();if(!this._mask){if(!!this.browser.ie){this._setDesignMode('off');}
if(this.toolbar){this.toolbar.set('disabled',true);}
this._mask=document.createElement('DIV');Dom.addClass(this._mask,'yui-editor-masked');this.get('iframe').get('parentNode').appendChild(this._mask);}}else{this._initEditorEvents();if(this._mask){this._mask.parentNode.removeChild(this._mask);this._mask=null;if(this.toolbar){this.toolbar.set('disabled',false);}
this._setDesignMode('on');this.focus();var self=this;window.setTimeout(function(){self.nodeChange.call(self);},100);}}},SEP_DOMPATH:'<',STR_LEAVE_EDITOR:'You have left the Rich Text Editor.',STR_BEFORE_EDITOR:'This text field can contain stylized text and graphics. To cycle through all formatting options, use the keyboard shortcut Shift + Escape to place focus on the toolbar and navigate between options with your arrow keys. To exit this text editor use the Escape key and continue tabbing. <h4>Common formatting keyboard shortcuts:</h4><ul><li>Control Shift B sets text to bold</li> <li>Control Shift I sets text to italic</li> <li>Control Shift U underlines text</li> <li>Control Shift L adds an HTML link</li></ul>',STR_TITLE:'Rich Text Area.',STR_IMAGE_HERE:'Image URL Here',STR_IMAGE_URL:'Image URL',STR_LINK_URL:'Link URL',STOP_EXEC_COMMAND:false,STOP_NODE_CHANGE:false,CLASS_NOEDIT:'yui-noedit',CLASS_CONTAINER:'yui-editor-container',CLASS_EDITABLE:'yui-editor-editable',CLASS_EDITABLE_CONT:'yui-editor-editable-container',CLASS_PREFIX:'yui-editor',browser:function(){var br=YAHOO.env.ua;if(br.webkit>=420){br.webkit3=br.webkit;}else{br.webkit3=0;}
br.mac=false;if(navigator.userAgent.indexOf('Macintosh')!==-1){br.mac=true;}
return br;}(),init:function(p_oElement,p_oAttributes){if(!this._defaultToolbar){this._defaultToolbar={collapse:true,titlebar:'Text Editing Tools',draggable:false,buttons:[{group:'fontstyle',label:'Font Name and Size',buttons:[{type:'select',label:'Arial',value:'fontname',disabled:true,menu:[{text:'Arial',checked:true},{text:'Arial Black'},{text:'Comic Sans MS'},{text:'Courier New'},{text:'Lucida Console'},{text:'Tahoma'},{text:'Times New Roman'},{text:'Trebuchet MS'},{text:'Verdana'}]},{type:'spin',label:'13',value:'fontsize',range:[9,75],disabled:true}]},{type:'separator'},{group:'textstyle',label:'Font Style',buttons:[{type:'push',label:'Bold CTRL + SHIFT + B',value:'bold'},{type:'push',label:'Italic CTRL + SHIFT + I',value:'italic'},{type:'push',label:'Underline CTRL + SHIFT + U',value:'underline'},{type:'push',label:'Strike Through',value:'strikethrough'},{type:'separator'},{type:'color',label:'Font Color',value:'forecolor',disabled:true},{type:'color',label:'Background Color',value:'backcolor',disabled:true}]},{type:'separator'},{group:'indentlist',label:'Lists',buttons:[{type:'push',label:'Create an Unordered List',value:'insertunorderedlist'},{type:'push',label:'Create an Ordered List',value:'insertorderedlist'}]},{type:'separator'},{group:'insertitem',label:'Insert Item',buttons:[{type:'push',label:'HTML Link CTRL + SHIFT + L',value:'createlink',disabled:true},{type:'push',label:'Insert Image',value:'insertimage'}]}]};}
YAHOO.widget.SimpleEditor.superclass.init.call(this,p_oElement,p_oAttributes);YAHOO.widget.EditorInfo._instances[this.get('id')]=this;this.currentElement=[];this.on('contentReady',function(){this.DOMReady=true;this.fireQueue();},this,true);},initAttributes:function(attr){YAHOO.widget.SimpleEditor.superclass.initAttributes.call(this,attr);var self=this;this.setAttributeConfig('nodeChangeDelay',{value:((attr.nodeChangeDelay===false)?false:true)});this.setAttributeConfig('maxUndo',{writeOnce:true,value:attr.maxUndo||30});this.setAttributeConfig('ptags',{writeOnce:true,value:attr.ptags||false});this.setAttributeConfig('insert',{writeOnce:true,value:attr.insert||false,method:function(insert){if(insert){var buttons={fontname:true,fontsize:true,forecolor:true,backcolor:true};var tmp=this._defaultToolbar.buttons;for(var i=0;i<tmp.length;i++){if(tmp[i].buttons){for(var a=0;a<tmp[i].buttons.length;a++){if(tmp[i].buttons[a].value){if(buttons[tmp[i].buttons[a].value]){delete tmp[i].buttons[a].disabled;}}}}}}}});this.setAttributeConfig('container',{writeOnce:true,value:attr.container||false});this.setAttributeConfig('plainText',{writeOnce:true,value:attr.plainText||false});this.setAttributeConfig('iframe',{value:null});this.setAttributeConfig('textarea',{value:null,writeOnce:true});this.setAttributeConfig('nodeChangeThreshold',{value:attr.nodeChangeThreshold||3,validator:YAHOO.lang.isNumber});this.setAttributeConfig('allowNoEdit',{value:attr.allowNoEdit||false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig('limitCommands',{value:attr.limitCommands||false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig('element_cont',{value:attr.element_cont});this.setAttributeConfig('editor_wrapper',{value:attr.editor_wrapper||null,writeOnce:true});this.setAttributeConfig('height',{value:attr.height||Dom.getStyle(self.get('element'),'height'),method:function(height){if(this._rendered){if(this.get('animate')){var anim=new YAHOO.util.Anim(this.get('iframe').get('parentNode'),{height:{to:parseInt(height,10)}},0.5);anim.animate();}else{Dom.setStyle(this.get('iframe').get('parentNode'),'height',height);}}}});this.setAttributeConfig('autoHeight',{value:attr.autoHeight||false,method:function(a){if(a){if(this.get('iframe')){this.get('iframe').get('element').setAttribute('scrolling','no');}
this.on('afterNodeChange',this._handleAutoHeight,this,true);this.on('editorKeyDown',this._handleAutoHeight,this,true);this.on('editorKeyPress',this._handleAutoHeight,this,true);}else{if(this.get('iframe')){this.get('iframe').get('element').setAttribute('scrolling','auto');}
this.unsubscribe('afterNodeChange',this._handleAutoHeight);this.unsubscribe('editorKeyDown',this._handleAutoHeight);this.unsubscribe('editorKeyPress',this._handleAutoHeight);}}});this.setAttributeConfig('width',{value:attr.width||Dom.getStyle(this.get('element'),'width'),method:function(width){if(this._rendered){if(this.get('animate')){var anim=new YAHOO.util.Anim(this.get('element_cont').get('element'),{width:{to:parseInt(width,10)}},0.5);anim.animate();}else{this.get('element_cont').setStyle('width',width);}}}});this.setAttributeConfig('blankimage',{value:attr.blankimage||this._getBlankImage()});this.setAttributeConfig('css',{value:attr.css||this._defaultCSS,writeOnce:true});this.setAttributeConfig('html',{value:attr.html||'<html><head><title>{TITLE}</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><base href="'+this._baseHREF+'"><style>{CSS}</style><style>{HIDDEN_CSS}</style><style>{EXTRA_CSS}</style></head><body onload="document.body._rteLoaded = true;">{CONTENT}</body></html>',writeOnce:true});this.setAttributeConfig('extracss',{value:attr.extracss||'',writeOnce:true});this.setAttributeConfig('handleSubmit',{value:attr.handleSubmit||false,method:function(exec){if(this.get('element').form){if(!this._formButtons){this._formButtons=[];}
if(exec){Event.on(this.get('element').form,'submit',this._handleFormSubmit,this,true);var i=this.get('element').form.getElementsByTagName('input');for(var s=0;s<i.length;s++){var type=i[s].getAttribute('type');if(type&&(type.toLowerCase()=='submit')){Event.on(i[s],'click',this._handleFormButtonClick,this,true);this._formButtons[this._formButtons.length]=i[s];}}}else{Event.removeListener(this.get('element').form,'submit',this._handleFormSubmit);if(this._formButtons){Event.removeListener(this._formButtons,'click',this._handleFormButtonClick);}}}}});this.setAttributeConfig('disabled',{value:false,method:function(disabled){if(this._rendered){this._disableEditor(disabled);}}});this.setAttributeConfig('saveEl',{value:this.get('element')});this.setAttributeConfig('toolbar_cont',{value:null,writeOnce:true});this.setAttributeConfig('toolbar',{value:attr.toolbar||this._defaultToolbar,writeOnce:true,method:function(toolbar){if(!toolbar.buttonType){toolbar.buttonType=this._defaultToolbar.buttonType;}
this._defaultToolbar=toolbar;}});this.setAttributeConfig('animate',{value:((attr.animate)?((YAHOO.util.Anim)?true:false):false),validator:function(value){var ret=true;if(!YAHOO.util.Anim){ret=false;}
return ret;}});this.setAttributeConfig('panel',{value:null,writeOnce:true,validator:function(value){var ret=true;if(!YAHOO.widget.Overlay){ret=false;}
return ret;}});this.setAttributeConfig('focusAtStart',{value:attr.focusAtStart||false,writeOnce:true,method:function(fs){if(fs){this.on('editorContentLoaded',function(){var self=this;setTimeout(function(){self.focus.call(self);self.editorDirty=false;},400);},this,true);}}});this.setAttributeConfig('dompath',{value:attr.dompath||false,method:function(dompath){if(dompath&&!this.dompath){this.dompath=document.createElement('DIV');this.dompath.id=this.get('id')+'_dompath';Dom.addClass(this.dompath,'dompath');this.get('element_cont').get('firstChild').appendChild(this.dompath);if(this.get('iframe')){this._writeDomPath();}}else if(!dompath&&this.dompath){this.dompath.parentNode.removeChild(this.dompath);this.dompath=null;}}});this.setAttributeConfig('markup',{value:attr.markup||'semantic',validator:function(markup){switch(markup.toLowerCase()){case'semantic':case'css':case'default':case'xhtml':return true;}
return false;}});this.setAttributeConfig('removeLineBreaks',{value:attr.removeLineBreaks||false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig('drag',{writeOnce:true,value:attr.drag||false});this.setAttributeConfig('resize',{writeOnce:true,value:attr.resize||false});this.setAttributeConfig('filterWord',{value:attr.filterWord||false,validator:YAHOO.lang.isBoolean});},_getBlankImage:function(){if(!this.DOMReady){this._queue[this._queue.length]=['_getBlankImage',arguments];return'';}
var img='';if(!this._blankImageLoaded){if(YAHOO.widget.EditorInfo.blankImage){this.set('blankimage',YAHOO.widget.EditorInfo.blankImage);this._blankImageLoaded=true;}else{var div=document.createElement('div');div.style.position='absolute';div.style.top='-9999px';div.style.left='-9999px';div.className=this.CLASS_PREFIX+'-blankimage';document.body.appendChild(div);img=YAHOO.util.Dom.getStyle(div,'background-image');img=img.replace('url(','').replace(')','').replace(/"/g,'');img=img.replace('app:/','');this.set('blankimage',img);this._blankImageLoaded=true;div.parentNode.removeChild(div);YAHOO.widget.EditorInfo.blankImage=img;}}else{img=this.get('blankimage');}
return img;},_handleAutoHeight:function(){var doc=this._getDoc(),body=doc.body,docEl=doc.documentElement;var height=parseInt(Dom.getStyle(this.get('editor_wrapper'),'height'),10);var newHeight=body.scrollHeight;if(this.browser.webkit){newHeight=docEl.scrollHeight;}
if(newHeight<parseInt(this.get('height'),10)){newHeight=parseInt(this.get('height'),10);}
if((height!=newHeight)&&(newHeight>=parseInt(this.get('height'),10))){var anim=this.get('animate');this.set('animate',false);this.set('height',newHeight+'px');this.set('animate',anim);if(this.browser.ie){this.get('iframe').setStyle('height','99%');this.get('iframe').setStyle('zoom','1');var self=this;window.setTimeout(function(){self.get('iframe').setStyle('height','100%');},1);}}},_formButtons:null,_formButtonClicked:null,_handleFormButtonClick:function(ev){var tar=Event.getTarget(ev);this._formButtonClicked=tar;},_handleFormSubmit:function(ev){this.saveHTML();var form=this.get('element').form,tar=this._formButtonClicked||false;Event.removeListener(form,'submit',this._handleFormSubmit);if(YAHOO.env.ua.ie){if(tar&&!tar.disabled){tar.click();}}else{if(tar&&!tar.disabled){tar.click();}
var oEvent=document.createEvent("HTMLEvents");oEvent.initEvent("submit",true,true);form.dispatchEvent(oEvent);if(YAHOO.env.ua.webkit){if(YAHOO.lang.isFunction(form.submit)){form.submit();}}}
},_handleFontSize:function(o){var button=this.toolbar.getButtonById(o.button.id);var value=button.get('label')+'px';this.execCommand('fontsize',value);return false;},_handleColorPicker:function(o){var cmd=o.button;var value='#'+o.color;if((cmd=='forecolor')||(cmd=='backcolor')){this.execCommand(cmd,value);}},_handleAlign:function(o){var cmd=null;for(var i=0;i<o.button.menu.length;i++){if(o.button.menu[i].value==o.button.value){cmd=o.button.menu[i].value;}}
var value=this._getSelection();this.execCommand(cmd,value);return false;},_handleAfterNodeChange:function(){var path=this._getDomPath(),elm=null,family=null,fontsize=null,validFont=false,fn_button=this.toolbar.getButtonByValue('fontname'),fs_button=this.toolbar.getButtonByValue('fontsize'),hd_button=this.toolbar.getButtonByValue('heading');for(var i=0;i<path.length;i++){elm=path[i];var tag=elm.tagName.toLowerCase();if(elm.getAttribute('tag')){tag=elm.getAttribute('tag');}
family=elm.getAttribute('face');if(Dom.getStyle(elm,'font-family')){family=Dom.getStyle(elm,'font-family');family=family.replace(/'/g,'');}
if(tag.substring(0,1)=='h'){if(hd_button){for(var h=0;h<hd_button._configs.menu.value.length;h++){if(hd_button._configs.menu.value[h].value.toLowerCase()==tag){hd_button.set('label',hd_button._configs.menu.value[h].text);}}
this._updateMenuChecked('heading',tag);}}}
if(fn_button){for(var b=0;b<fn_button._configs.menu.value.length;b++){if(family&&fn_button._configs.menu.value[b].text.toLowerCase()==family.toLowerCase()){validFont=true;family=fn_button._configs.menu.value[b].text;}}
if(!validFont){family=fn_button._configs.label._initialConfig.value;}
var familyLabel='<span class="yui-toolbar-fontname-'+this._cleanClassName(family)+'">'+family+'</span>';if(fn_button.get('label')!=familyLabel){fn_button.set('label',familyLabel);this._updateMenuChecked('fontname',family);}}
if(fs_button){fontsize=parseInt(Dom.getStyle(elm,'fontSize'),10);if((fontsize===null)||isNaN(fontsize)){fontsize=fs_button._configs.label._initialConfig.value;}
fs_button.set('label',''+fontsize);}
if(!this._isElement(elm,'body')&&!this._isElement(elm,'img')){this.toolbar.enableButton(fn_button);this.toolbar.enableButton(fs_button);this.toolbar.enableButton('forecolor');this.toolbar.enableButton('backcolor');}
if(this._isElement(elm,'img')){if(YAHOO.widget.Overlay){this.toolbar.enableButton('createlink');}}
if(this._hasParent(elm,'blockquote')){this.toolbar.selectButton('indent');this.toolbar.disableButton('indent');this.toolbar.enableButton('outdent');}
if(this._hasParent(elm,'ol')||this._hasParent(elm,'ul')){this.toolbar.disableButton('indent');}
this._lastButton=null;},_handleInsertImageClick:function(){if(this.get('limitCommands')){if(!this.toolbar.getButtonByValue('insertimage')){return false;}}
this.toolbar.set('disabled',true);var _handleAEC=function(){var el=this.currentElement[0],src='http://';if(!el){el=this._getSelectedElement();}
if(el){if(el.getAttribute('src')){src=el.getAttribute('src',2);if(src.indexOf(this.get('blankimage'))!=-1){src=this.STR_IMAGE_HERE;}}}
var str=prompt(this.STR_IMAGE_URL+': ',src);if((str!=='')&&(str!==null)){el.setAttribute('src',str);}else if(str===''){el.parentNode.removeChild(el);this.currentElement=[];this.nodeChange();}else if((str===null)){src=el.getAttribute('src',2);if(src.indexOf(this.get('blankimage'))!=-1){el.parentNode.removeChild(el);this.currentElement=[];this.nodeChange();}}
this.closeWindow();this.toolbar.set('disabled',false);this.unsubscribe('afterExecCommand',_handleAEC,this,true);};this.on('afterExecCommand',_handleAEC,this,true);},_handleInsertImageWindowClose:function(){this.nodeChange();},_isLocalFile:function(url){if((url)&&(url!=='')&&((url.indexOf('file:/')!=-1)||(url.indexOf(':\\')!=-1))){return true;}
return false;},_handleCreateLinkClick:function(){if(this.get('limitCommands')){if(!this.toolbar.getButtonByValue('createlink')){return false;}}
this.toolbar.set('disabled',true);var _handleAEC=function(){var el=this.currentElement[0],url='';if(el){if(el.getAttribute('href',2)!==null){url=el.getAttribute('href',2);}}
var str=prompt(this.STR_LINK_URL+': ',url);if((str!=='')&&(str!==null)){var urlValue=str;if((urlValue.indexOf(':/'+'/')==-1)&&(urlValue.substring(0,1)!='/')&&(urlValue.substring(0,6).toLowerCase()!='mailto')){if((urlValue.indexOf('@')!=-1)&&(urlValue.substring(0,6).toLowerCase()!='mailto')){urlValue='mailto:'+urlValue;}else{if(urlValue.substring(0,1)!='#'){}}}
el.setAttribute('href',urlValue);}else if(str!==null){var _span=this._getDoc().createElement('span');_span.innerHTML=el.innerHTML;Dom.addClass(_span,'yui-non');el.parentNode.replaceChild(_span,el);}
this.closeWindow();this.toolbar.set('disabled',false);this.unsubscribe('afterExecCommand',_handleAEC,this,true);};this.on('afterExecCommand',_handleAEC,this);},_handleCreateLinkWindowClose:function(){this.nodeChange();this.currentElement=[];},render:function(){if(this._rendered){return false;}
if(!this.DOMReady){this._queue[this._queue.length]=['render',arguments];return false;}
if(this.get('element')){if(this.get('element').tagName){this._textarea=true;if(this.get('element').tagName.toLowerCase()!=='textarea'){this._textarea=false;}}else{return false;}}else{return false;}
this._rendered=true;var self=this;window.setTimeout(function(){self._render.call(self);},4);},_render:function(){var self=this;this.set('textarea',this.get('element'));this.get('element_cont').setStyle('display','none');this.get('element_cont').addClass(this.CLASS_CONTAINER);this.set('iframe',this._createIframe());window.setTimeout(function(){self._setInitialContent.call(self);},10);this.get('editor_wrapper').appendChild(this.get('iframe').get('element'));if(this.get('disabled')){this._disableEditor(true);}
var tbarConf=this.get('toolbar');if(tbarConf instanceof Toolbar){this.toolbar=tbarConf;this.toolbar.set('disabled',true);}else{tbarConf.disabled=true;this.toolbar=new Toolbar(this.get('toolbar_cont'),tbarConf);}
this.fireEvent('toolbarLoaded',{type:'toolbarLoaded',target:this.toolbar});this.toolbar.on('toolbarCollapsed',function(){if(this.currentWindow){this.moveWindow();}},this,true);this.toolbar.on('toolbarExpanded',function(){if(this.currentWindow){this.moveWindow();}},this,true);this.toolbar.on('fontsizeClick',this._handleFontSize,this,true);this.toolbar.on('colorPickerClicked',function(o){this._handleColorPicker(o);return false;},this,true);this.toolbar.on('alignClick',this._handleAlign,this,true);this.on('afterNodeChange',this._handleAfterNodeChange,this,true);this.toolbar.on('insertimageClick',this._handleInsertImageClick,this,true);this.on('windowinsertimageClose',this._handleInsertImageWindowClose,this,true);this.toolbar.on('createlinkClick',this._handleCreateLinkClick,this,true);this.on('windowcreatelinkClose',this._handleCreateLinkWindowClose,this,true);this.get('parentNode').replaceChild(this.get('element_cont').get('element'),this.get('element'));this.setStyle('visibility','hidden');this.setStyle('position','absolute');this.setStyle('top','-9999px');this.setStyle('left','-9999px');this.get('element_cont').appendChild(this.get('element'));this.get('element_cont').setStyle('display','block');Dom.addClass(this.get('iframe').get('parentNode'),this.CLASS_EDITABLE_CONT);this.get('iframe').addClass(this.CLASS_EDITABLE);this.get('element_cont').setStyle('width',this.get('width'));Dom.setStyle(this.get('iframe').get('parentNode'),'height',this.get('height'));this.get('iframe').setStyle('width','100%');this.get('iframe').setStyle('height','100%');this._setupDD();window.setTimeout(function(){self._setupAfterElement.call(self);},0);this.fireEvent('afterRender',{type:'afterRender',target:this});},execCommand:function(action,value){var beforeExec=this.fireEvent('beforeExecCommand',{type:'beforeExecCommand',target:this,args:arguments});if((beforeExec===false)||(this.STOP_EXEC_COMMAND)){this.STOP_EXEC_COMMAND=false;return false;}
this._lastCommand=action;this._setMarkupType(action);if(this.browser.ie){this._getWindow().focus();}
var exec=true;if(this.get('limitCommands')){if(!this.toolbar.getButtonByValue(action)){exec=false;}}
this.editorDirty=true;if((typeof this['cmd_'+action.toLowerCase()]=='function')&&exec){var retValue=this['cmd_'+action.toLowerCase()](value);exec=retValue[0];if(retValue[1]){action=retValue[1];}
if(retValue[2]){value=retValue[2];}}
if(exec){try{this._getDoc().execCommand(action,false,value);}catch(e){}}else{}
this.on('afterExecCommand',function(){this.unsubscribeAll('afterExecCommand');this.nodeChange();},this,true);this.fireEvent('afterExecCommand',{type:'afterExecCommand',target:this});},cmd_bold:function(value){if(!this.browser.webkit){var el=this._getSelectedElement();if(el&&this._isElement(el,'span')&&this._hasSelection()){if(el.style.fontWeight=='bold'){el.style.fontWeight='';var b=this._getDoc().createElement('b'),par=el.parentNode;par.replaceChild(b,el);b.appendChild(el);}}}
return[true];},cmd_italic:function(value){if(!this.browser.webkit){var el=this._getSelectedElement();if(el&&this._isElement(el,'span')&&this._hasSelection()){if(el.style.fontStyle=='italic'){el.style.fontStyle='';var i=this._getDoc().createElement('i'),par=el.parentNode;par.replaceChild(i,el);i.appendChild(el);}}}
return[true];},cmd_underline:function(value){if(!this.browser.webkit){var el=this._getSelectedElement();if(el&&this._isElement(el,'span')&&this._hasSelection()){if(el.style.fontStyle=='underline'){el.style.fontStyle='';var u=this._getDoc().createElement('u'),par=el.parentNode;par.replaceChild(u,el);u.appendChild(el);}}}
return[true];},cmd_backcolor:function(value){var exec=true,el=this._getSelectedElement(),action='backcolor';if(this.browser.gecko||this.browser.opera){this._setEditorStyle(true);action='hilitecolor';}
if(!this._isElement(el,'body')&&!this._hasSelection()){el.style.backgroundColor=value;this._selectNode(el);exec=false;}else{if(this.get('insert')){el=this._createInsertElement({backgroundColor:value});}else{this._createCurrentElement('span',{backgroundColor:value,color:el.style.color,fontSize:el.style.fontSize,fontFamily:el.style.fontFamily});this._selectNode(this.currentElement[0]);}
exec=false;}
return[exec,action];},cmd_forecolor:function(value){var exec=true,el=this._getSelectedElement();if(!this._isElement(el,'body')&&!this._hasSelection()){Dom.setStyle(el,'color',value);this._selectNode(el);exec=false;}else{if(this.get('insert')){el=this._createInsertElement({color:value});}else{this._createCurrentElement('span',{color:value,fontSize:el.style.fontSize,fontFamily:el.style.fontFamily,backgroundColor:el.style.backgroundColor});this._selectNode(this.currentElement[0]);}
exec=false;}
return[exec];},cmd_unlink:function(value){this._swapEl(this.currentElement[0],'span',function(el){el.className='yui-non';});return[false];},cmd_createlink:function(value){var el=this._getSelectedElement(),_a=null;if(this._hasParent(el,'a')){this.currentElement[0]=this._hasParent(el,'a');}else if(this._isElement(el,'li')){_a=this._getDoc().createElement('a');_a.innerHTML=el.innerHTML;el.innerHTML='';el.appendChild(_a);this.currentElement[0]=_a;}else if(!this._isElement(el,'a')){this._createCurrentElement('a');_a=this._swapEl(this.currentElement[0],'a');this.currentElement[0]=_a;}else{this.currentElement[0]=el;}
return[false];},cmd_insertimage:function(value){var exec=true,_img=null,action='insertimage',el=this._getSelectedElement();if(value===''){value=this.get('blankimage');}
if(this._isElement(el,'img')){this.currentElement[0]=el;exec=false;}else{if(this._getDoc().queryCommandEnabled(action)){this._getDoc().execCommand('insertimage',false,value);var imgs=this._getDoc().getElementsByTagName('img');for(var i=0;i<imgs.length;i++){if(!YAHOO.util.Dom.hasClass(imgs[i],'yui-img')){YAHOO.util.Dom.addClass(imgs[i],'yui-img');this.currentElement[0]=imgs[i];}}
exec=false;}else{if(el==this._getDoc().body){_img=this._getDoc().createElement('img');_img.setAttribute('src',value);YAHOO.util.Dom.addClass(_img,'yui-img');this._getDoc().body.appendChild(_img);}else{this._createCurrentElement('img');_img=this._getDoc().createElement('img');_img.setAttribute('src',value);YAHOO.util.Dom.addClass(_img,'yui-img');this.currentElement[0].parentNode.replaceChild(_img,this.currentElement[0]);}
this.currentElement[0]=_img;exec=false;}}
return[exec];},cmd_inserthtml:function(value){var exec=true,action='inserthtml',_span=null,_range=null;if(this.browser.webkit&&!this._getDoc().queryCommandEnabled(action)){this._createCurrentElement('img');_span=this._getDoc().createElement('span');_span.innerHTML=value;this.currentElement[0].parentNode.replaceChild(_span,this.currentElement[0]);exec=false;}else if(this.browser.ie){_range=this._getRange();if(_range.item){_range.item(0).outerHTML=value;}else{_range.pasteHTML(value);}
exec=false;}
return[exec];},cmd_list:function(tag){var exec=true,list=null,li=0,el=null,str='',selEl=this._getSelectedElement(),action='insertorderedlist';if(tag=='ul'){action='insertunorderedlist';}
if(this.browser.webkit){if(this._isElement(selEl,'li')&&this._isElement(selEl.parentNode,tag)){el=selEl.parentNode;list=this._getDoc().createElement('span');YAHOO.util.Dom.addClass(list,'yui-non');str='';var lis=el.getElementsByTagName('li');for(li=0;li<lis.length;li++){str+='<div>'+lis[li].innerHTML+'</div>';}
list.innerHTML=str;this.currentElement[0]=el;this.currentElement[0].parentNode.replaceChild(list,this.currentElement[0]);}else{this._createCurrentElement(tag.toLowerCase());list=this._getDoc().createElement(tag);for(li=0;li<this.currentElement.length;li++){var newli=this._getDoc().createElement('li');newli.innerHTML=this.currentElement[li].innerHTML+'<span class="yui-non">&nbsp;</span>&nbsp;';list.appendChild(newli);if(li>0){this.currentElement[li].parentNode.removeChild(this.currentElement[li]);}}
var items=list.firstChild.innerHTML.split('<br>');if(items.length>0){list.innerHTML='';for(var i=0;i<items.length;i++){var item=this._getDoc().createElement('li');item.innerHTML=items[i];list.appendChild(item);}}
this.currentElement[0].parentNode.replaceChild(list,this.currentElement[0]);this.currentElement[0]=list;var _h=this.currentElement[0].firstChild;_h=Dom.getElementsByClassName('yui-non','span',_h)[0];this._getSelection().setBaseAndExtent(_h,1,_h,_h.innerText.length);}
exec=false;}else{el=this._getSelectedElement();if(this._isElement(el,'li')&&this._isElement(el.parentNode,tag)||(this.browser.ie&&this._isElement(this._getRange().parentElement,'li'))||(this.browser.ie&&this._isElement(el,'ul'))||(this.browser.ie&&this._isElement(el,'ol'))){if(this.browser.ie){if((this.browser.ie&&this._isElement(el,'ul'))||(this.browser.ie&&this._isElement(el,'ol'))){el=el.getElementsByTagName('li')[0];}
str='';var lis2=el.parentNode.getElementsByTagName('li');for(var j=0;j<lis2.length;j++){str+=lis2[j].innerHTML+'<br>';}
var newEl=this._getDoc().createElement('span');newEl.innerHTML=str;el.parentNode.parentNode.replaceChild(newEl,el.parentNode);}else{this.nodeChange();this._getDoc().execCommand(action,'',el.parentNode);this.nodeChange();}
exec=false;}
if(this.browser.opera){var self=this;window.setTimeout(function(){var liso=self._getDoc().getElementsByTagName('li');for(var i=0;i<liso.length;i++){if(liso[i].innerHTML.toLowerCase()=='<br>'){liso[i].parentNode.parentNode.removeChild(liso[i].parentNode);}}},30);}
if(this.browser.ie&&exec){var html='';if(this._getRange().html){html='<li>'+this._getRange().html+'</li>';}else{var t=this._getRange().text.split('\n');if(t.length>1){html='';for(var ie=0;ie<t.length;ie++){html+='<li>'+t[ie]+'</li>';}}else{var txt=this._getRange().text;if(txt===''){html='<li id="new_list_item">'+txt+'</li>';}else{html='<li>'+txt+'</li>';}}}
this._getRange().pasteHTML('<'+tag+'>'+html+'</'+tag+'>');var new_item=this._getDoc().getElementById('new_list_item');if(new_item){var range=this._getDoc().body.createTextRange();range.moveToElementText(new_item);range.collapse(false);range.select();new_item.id='';}
exec=false;}}
return exec;},cmd_insertorderedlist:function(value){return[this.cmd_list('ol')];},cmd_insertunorderedlist:function(value){return[this.cmd_list('ul')];},cmd_fontname:function(value){var exec=true,selEl=this._getSelectedElement();this.currentFont=value;if(selEl&&selEl.tagName&&!this._hasSelection()&&!this._isElement(selEl,'body')&&!this.get('insert')){YAHOO.util.Dom.setStyle(selEl,'font-family',value);exec=false;}else if(this.get('insert')&&!this._hasSelection()){var el=this._createInsertElement({fontFamily:value});exec=false;}
return[exec];},cmd_fontsize:function(value){var el=null,go=true;el=this._getSelectedElement();if(this.browser.webkit){if(this.currentElement[0]){if(el==this.currentElement[0]){go=false;YAHOO.util.Dom.setStyle(el,'fontSize',value);this._selectNode(el);this.currentElement[0]=el;}}}
if(go){if(!this._isElement(this._getSelectedElement(),'body')&&(!this._hasSelection())){el=this._getSelectedElement();YAHOO.util.Dom.setStyle(el,'fontSize',value);if(this.get('insert')&&this.browser.ie){var r=this._getRange();r.collapse(false);r.select();}else{this._selectNode(el);}}else if(this.currentElement&&(this.currentElement.length>0)&&(!this._hasSelection())&&(!this.get('insert'))){YAHOO.util.Dom.setStyle(this.currentElement,'fontSize',value);}else{if(this.get('insert')&&!this._hasSelection()){el=this._createInsertElement({fontSize:value});this.currentElement[0]=el;this._selectNode(this.currentElement[0]);}else{this._createCurrentElement('span',{'fontSize':value,fontFamily:el.style.fontFamily,color:el.style.color,backgroundColor:el.style.backgroundColor});this._selectNode(this.currentElement[0]);}}}
return[false];},_swapEl:function(el,tagName,callback){var _el=this._getDoc().createElement(tagName);if(el){_el.innerHTML=el.innerHTML;}
if(typeof callback=='function'){callback.call(this,_el);}
if(el){el.parentNode.replaceChild(_el,el);}
return _el;},_createInsertElement:function(css){this._createCurrentElement('span',css);var el=this.currentElement[0];if(this.browser.webkit){el.innerHTML='<span class="yui-non">&nbsp;</span>';el=el.firstChild;this._getSelection().setBaseAndExtent(el,1,el,el.innerText.length);}else if(this.browser.ie||this.browser.opera){el.innerHTML='&nbsp;';}
this.focus();this._selectNode(el,true);return el;},_createCurrentElement:function(tagName,tagStyle){tagName=((tagName)?tagName:'a');var tar=null,el=[],_doc=this._getDoc();if(this.currentFont){if(!tagStyle){tagStyle={};}
tagStyle.fontFamily=this.currentFont;this.currentFont=null;}
this.currentElement=[];var _elCreate=function(tagName,tagStyle){var el=null;tagName=((tagName)?tagName:'span');tagName=tagName.toLowerCase();switch(tagName){case'h1':case'h2':case'h3':case'h4':case'h5':case'h6':el=_doc.createElement(tagName);break;default:el=_doc.createElement(tagName);if(tagName==='span'){YAHOO.util.Dom.addClass(el,'yui-tag-'+tagName);YAHOO.util.Dom.addClass(el,'yui-tag');el.setAttribute('tag',tagName);}
for(var k in tagStyle){if(YAHOO.lang.hasOwnProperty(tagStyle,k)){el.style[k]=tagStyle[k];}}
break;}
return el;};if(!this._hasSelection()){if(this._getDoc().queryCommandEnabled('insertimage')){this._getDoc().execCommand('insertimage',false,'yui-tmp-img');var imgs=this._getDoc().getElementsByTagName('img');for(var j=0;j<imgs.length;j++){if(imgs[j].getAttribute('src',2)=='yui-tmp-img'){el=_elCreate(tagName,tagStyle);imgs[j].parentNode.replaceChild(el,imgs[j]);this.currentElement[this.currentElement.length]=el;}}}else{if(this.currentEvent){tar=YAHOO.util.Event.getTarget(this.currentEvent);}else{tar=this._getDoc().body;}}
if(tar){el=_elCreate(tagName,tagStyle);if(this._isElement(tar,'body')||this._isElement(tar,'html')){if(this._isElement(tar,'html')){tar=this._getDoc().body;}
tar.appendChild(el);}else if(tar.nextSibling){tar.parentNode.insertBefore(el,tar.nextSibling);}else{tar.parentNode.appendChild(el);}
this.currentElement[this.currentElement.length]=el;this.currentEvent=null;if(this.browser.webkit){this._getSelection().setBaseAndExtent(el,0,el,0);if(this.browser.webkit3){this._getSelection().collapseToStart();}else{this._getSelection().collapse(true);}}}}else{this._setEditorStyle(true);this._getDoc().execCommand('fontname',false,'yui-tmp');var _tmp=[],__tmp,__els=['font','span','i','b','u'];if(!this._isElement(this._getSelectedElement(),'body')){__els[__els.length]=this._getDoc().getElementsByTagName(this._getSelectedElement().tagName);__els[__els.length]=this._getDoc().getElementsByTagName(this._getSelectedElement().parentNode.tagName);}
for(var _els=0;_els<__els.length;_els++){var _tmp1=this._getDoc().getElementsByTagName(__els[_els]);for(var e=0;e<_tmp1.length;e++){_tmp[_tmp.length]=_tmp1[e];}}
for(var i=0;i<_tmp.length;i++){if((YAHOO.util.Dom.getStyle(_tmp[i],'font-family')=='yui-tmp')||(_tmp[i].face&&(_tmp[i].face=='yui-tmp'))){if(tagName!=='span'){el=_elCreate(tagName,tagStyle);}else{el=_elCreate(_tmp[i].tagName,tagStyle);}
el.innerHTML=_tmp[i].innerHTML;if(this._isElement(_tmp[i],'ol')||(this._isElement(_tmp[i],'ul'))){var fc=_tmp[i].getElementsByTagName('li')[0];_tmp[i].style.fontFamily='inherit';fc.style.fontFamily='inherit';el.innerHTML=fc.innerHTML;fc.innerHTML='';fc.appendChild(el);this.currentElement[this.currentElement.length]=el;}else if(this._isElement(_tmp[i],'li')){_tmp[i].innerHTML='';_tmp[i].appendChild(el);_tmp[i].style.fontFamily='inherit';this.currentElement[this.currentElement.length]=el;}else{if(_tmp[i].parentNode){_tmp[i].parentNode.replaceChild(el,_tmp[i]);this.currentElement[this.currentElement.length]=el;this.currentEvent=null;if(this.browser.webkit){this._getSelection().setBaseAndExtent(el,0,el,0);if(this.browser.webkit3){this._getSelection().collapseToStart();}else{this._getSelection().collapse(true);}}
if(this.browser.ie&&tagStyle&&tagStyle.fontSize){this._getSelection().empty();}
if(this.browser.gecko){this._getSelection().collapseToStart();}}}}}
var len=this.currentElement.length;for(var o=0;o<len;o++){if((o+1)!=len){if(this.currentElement[o]&&this.currentElement[o].nextSibling){if(this._isElement(this.currentElement[o],'br')){this.currentElement[this.currentElement.length]=this.currentElement[o].nextSibling;}}}}}},saveHTML:function(){var html=this.cleanHTML();if(this._textarea){this.get('element').value=html;}else{this.get('element').innerHTML=html;}
if(this.get('saveEl')!==this.get('element')){var out=this.get('saveEl');if(Lang.isString(out)){out=Dom.get(out);}
if(out){if(out.tagName.toLowerCase()==='textarea'){out.value=html;}else{out.innerHTML=html;}}}
return html;},setEditorHTML:function(incomingHTML){var html=this._cleanIncomingHTML(incomingHTML);this._getDoc().body.innerHTML=html;this.nodeChange();},getEditorHTML:function(){var b=this._getDoc().body;if(b===null){return null;}
return this._getDoc().body.innerHTML;},show:function(){if(this.browser.gecko){this._setDesignMode('on');this.focus();}
if(this.browser.webkit){var self=this;window.setTimeout(function(){self._setInitialContent.call(self);},10);}
if(this.currentWindow){this.closeWindow();}
this.get('iframe').setStyle('position','static');this.get('iframe').setStyle('left','');},hide:function(){if(this.currentWindow){this.closeWindow();}
if(this._fixNodesTimer){clearTimeout(this._fixNodesTimer);this._fixNodesTimer=null;}
if(this._nodeChangeTimer){clearTimeout(this._nodeChangeTimer);this._nodeChangeTimer=null;}
this._lastNodeChange=0;this.get('iframe').setStyle('position','absolute');this.get('iframe').setStyle('left','-9999px');},_cleanIncomingHTML:function(html){html=html.replace(/<strong([^>]*)>/gi,'<b$1>');html=html.replace(/<\/strong>/gi,'</b>');html=html.replace(/<embed([^>]*)>/gi,'<YUI_EMBED$1>');html=html.replace(/<\/embed>/gi,'</YUI_EMBED>');html=html.replace(/<em([^>]*)>/gi,'<i$1>');html=html.replace(/<\/em>/gi,'</i>');html=html.replace(/_moz_dirty=""/gi,'');html=html.replace(/<YUI_EMBED([^>]*)>/gi,'<embed$1>');html=html.replace(/<\/YUI_EMBED>/gi,'</embed>');if(this.get('plainText')){html=html.replace(/\n/g,'<br>').replace(/\r/g,'<br>');html=html.replace(/  /gi,'&nbsp;&nbsp;');html=html.replace(/\t/gi,'&nbsp;&nbsp;&nbsp;&nbsp;');}
html=html.replace(/<script([^>]*)>/gi,'<bad>');html=html.replace(/<\/script([^>]*)>/gi,'</bad>');html=html.replace(/&lt;script([^>]*)&gt;/gi,'<bad>');html=html.replace(/&lt;\/script([^>]*)&gt;/gi,'</bad>');html=html.replace(/\r\n/g,'<YUI_LF>').replace(/\n/g,'<YUI_LF>').replace(/\r/g,'<YUI_LF>');html=html.replace(new RegExp('<bad([^>]*)>(.*?)<\/bad>','gi'),'');html=html.replace(/<YUI_LF>/g,'\n');return html;},cleanHTML:function(html){if(!html){html=this.getEditorHTML();}
var markup=this.get('markup');html=this.pre_filter_linebreaks(html,markup);html=this.filter_msword(html);html=html.replace(/<img([^>]*)\/>/gi,'<YUI_IMG$1>');html=html.replace(/<img([^>]*)>/gi,'<YUI_IMG$1>');html=html.replace(/<input([^>]*)\/>/gi,'<YUI_INPUT$1>');html=html.replace(/<input([^>]*)>/gi,'<YUI_INPUT$1>');html=html.replace(/<ul([^>]*)>/gi,'<YUI_UL$1>');html=html.replace(/<\/ul>/gi,'<\/YUI_UL>');html=html.replace(/<blockquote([^>]*)>/gi,'<YUI_BQ$1>');html=html.replace(/<\/blockquote>/gi,'<\/YUI_BQ>');html=html.replace(/<embed([^>]*)>/gi,'<YUI_EMBED$1>');html=html.replace(/<\/embed>/gi,'<\/YUI_EMBED>');if((markup=='semantic')||(markup=='xhtml')){html=html.replace(/<i(\s+[^>]*)?>/gi,'<em$1>');html=html.replace(/<\/i>/gi,'</em>');html=html.replace(/<b(\s+[^>]*)?>/gi,'<strong$1>');html=html.replace(/<\/b>/gi,'</strong>');}
html=html.replace(/_moz_dirty=""/gi,'');html=html.replace(/<strike/gi,'<span style="text-decoration: line-through;"');html=html.replace(/\/strike>/gi,'/span>');if(this.browser.ie){html=html.replace(/text-decoration/gi,'text-decoration');html=html.replace(/font-weight/gi,'font-weight');html=html.replace(/_width="([^>]*)"/gi,'');html=html.replace(/_height="([^>]*)"/gi,'');var url=this._baseHREF.replace(/\//gi,'\\/'),re=new RegExp('src="'+url,'gi');html=html.replace(re,'src="');}
html=html.replace(/<font/gi,'<font');html=html.replace(/<\/font>/gi,'</font>');html=html.replace(/<span/gi,'<span');html=html.replace(/<\/span>/gi,'</span>');if((markup=='xhtml')||(markup=='css')){html=html.replace(new RegExp('<font([^>]*)face="([^>]*)">(.*?)<\/font>','gi'),'<span $1 style="font-family: $2;">$3</span>');html=html.replace(/<u/gi,'<span style="text-decoration: underline;"');if(this.browser.webkit){html=html.replace(new RegExp('<span class="Apple-style-span" style="font-weight: bold;">([^>]*)<\/span>','gi'),'<strong>$1</strong>');html=html.replace(new RegExp('<span class="Apple-style-span" style="font-style: italic;">([^>]*)<\/span>','gi'),'<em>$1</em>');}
html=html.replace(/\/u>/gi,'/span>');if(markup=='css'){html=html.replace(/<em([^>]*)>/gi,'<i$1>');html=html.replace(/<\/em>/gi,'</i>');html=html.replace(/<strong([^>]*)>/gi,'<b$1>');html=html.replace(/<\/strong>/gi,'</b>');html=html.replace(/<b/gi,'<span style="font-weight: bold;"');html=html.replace(/\/b>/gi,'/span>');html=html.replace(/<i/gi,'<span style="font-style: italic;"');html=html.replace(/\/i>/gi,'/span>');}
html=html.replace(/  /gi,' ');}else{html=html.replace(/<u/gi,'<u');html=html.replace(/\/u>/gi,'/u>');}
html=html.replace(/<ol([^>]*)>/gi,'<ol$1>');html=html.replace(/\/ol>/gi,'/ol>');html=html.replace(/<li/gi,'<li');html=html.replace(/\/li>/gi,'/li>');html=this.filter_safari(html);html=this.filter_internals(html);html=this.filter_all_rgb(html);html=this.post_filter_linebreaks(html,markup);if(markup=='xhtml'){html=html.replace(/<YUI_IMG([^>]*)>/g,'<img $1 />');html=html.replace(/<YUI_INPUT([^>]*)>/g,'<input $1 />');}else{html=html.replace(/<YUI_IMG([^>]*)>/g,'<img $1>');html=html.replace(/<YUI_INPUT([^>]*)>/g,'<input $1>');}
html=html.replace(/<YUI_UL([^>]*)>/g,'<ul$1>');html=html.replace(/<\/YUI_UL>/g,'<\/ul>');html=this.filter_invalid_lists(html);html=html.replace(/<YUI_BQ([^>]*)>/g,'<blockquote$1>');html=html.replace(/<\/YUI_BQ>/g,'<\/blockquote>');html=html.replace(/<YUI_EMBED([^>]*)>/g,'<embed$1>');html=html.replace(/<\/YUI_EMBED>/g,'<\/embed>');html=html.replace(/ &amp; /gi,'YUI_AMP');html=html.replace(/&amp;/gi,'&');html=html.replace(/YUI_AMP/gi,' &amp; ');html=YAHOO.lang.trim(html);if(this.get('removeLineBreaks')){html=html.replace(/\n/g,'').replace(/\r/g,'');html=html.replace(/  /gi,' ');}
if(html.substring(0,6).toLowerCase()=='<span>'){html=html.substring(6);if(html.substring(html.length-7,html.length).toLowerCase()=='</span>'){html=html.substring(0,html.length-7);}}
for(var v in this.invalidHTML){if(YAHOO.lang.hasOwnProperty(this.invalidHTML,v)){if(Lang.isObject(v)&&v.keepContents){html=html.replace(new RegExp('<'+v+'([^>]*)>(.*?)<\/'+v+'>','gi'),'$1');}else{html=html.replace(new RegExp('<'+v+'([^>]*)>(.*?)<\/'+v+'>','gi'),'');}}}
this.fireEvent('cleanHTML',{type:'cleanHTML',target:this,html:html});return html;},filter_msword:function(html){if(!this.get('filterWord')){return html;}
html=html.replace(/<o:p>\s*<\/o:p>/g,'');html=html.replace(/<o:p>[\s\S]*?<\/o:p>/g,'&nbsp;');html=html.replace(/<w:[^>]*>[\s\S]*?<\/w:[^>]*>/gi,'');html=html.replace(/\s*mso-[^:]+:[^;"]+;?/gi,'');html=html.replace(/\s*MARGIN: 0cm 0cm 0pt\s*;/gi,'');html=html.replace(/\s*MARGIN: 0cm 0cm 0pt\s*"/gi,"\"");html=html.replace(/\s*TEXT-INDENT: 0cm\s*;/gi,'');html=html.replace(/\s*TEXT-INDENT: 0cm\s*"/gi,"\"");html=html.replace(/\s*PAGE-BREAK-BEFORE: [^\s;]+;?"/gi,"\"");html=html.replace(/\s*FONT-VARIANT: [^\s;]+;?"/gi,"\"");html=html.replace(/\s*tab-stops:[^;"]*;?/gi,'');html=html.replace(/\s*tab-stops:[^"]*/gi,'');html=html.replace(/<\\?\?xml[^>]*>/gi,'');html=html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi,"<$1$3");html=html.replace(/<(\w[^>]*) language=([^ |>]*)([^>]*)/gi,"<$1$3");html=html.replace(/<(\w[^>]*) onmouseover="([^\"]*)"([^>]*)/gi,"<$1$3");html=html.replace(/<(\w[^>]*) onmouseout="([^\"]*)"([^>]*)/gi,"<$1$3");return html;},filter_invalid_lists:function(html){html=html.replace(/<\/li>\n/gi,'</li>');html=html.replace(/<\/li><ol>/gi,'</li><li><ol>');html=html.replace(/<\/ol>/gi,'</ol></li>');html=html.replace(/<\/ol><\/li>\n/gi,"</ol>");html=html.replace(/<\/li><ul>/gi,'</li><li><ul>');html=html.replace(/<\/ul>/gi,'</ul></li>');html=html.replace(/<\/ul><\/li>\n?/gi,"</ul>");html=html.replace(/<\/li>/gi,"</li>");html=html.replace(/<\/ol>/gi,"</ol>");html=html.replace(/<ol>/gi,"<ol>");html=html.replace(/<ul>/gi,"<ul>");return html;},filter_safari:function(html){if(this.browser.webkit){html=html.replace(/<span class="Apple-tab-span" style="white-space:pre">([^>])<\/span>/gi,'&nbsp;&nbsp;&nbsp;&nbsp;');html=html.replace(/Apple-style-span/gi,'');html=html.replace(/style="line-height: normal;"/gi,'');html=html.replace(/yui-wk-div/gi,'');html=html.replace(/yui-wk-p/gi,'');html=html.replace(/<li><\/li>/gi,'');html=html.replace(/<li> <\/li>/gi,'');html=html.replace(/<li>  <\/li>/gi,'');if(this.get('ptags')){html=html.replace(/<div([^>]*)>/g,'<p$1>');html=html.replace(/<\/div>/gi,'</p>');}else{html=html.replace(/<div>/gi,'<br>');html=html.replace(/<\/div>/gi,'');}}
return html;},filter_internals:function(html){html=html.replace(/\r/g,'');html=html.replace(/<\/?(body|head|html)[^>]*>/gi,'');html=html.replace(/<YUI_BR><\/li>/gi,'</li>');html=html.replace(/yui-tag-span/gi,'');html=html.replace(/yui-tag/gi,'');html=html.replace(/yui-non/gi,'');html=html.replace(/yui-img/gi,'');html=html.replace(/ tag="span"/gi,'');html=html.replace(/ class=""/gi,'');html=html.replace(/ style=""/gi,'');html=html.replace(/ class=" "/gi,'');html=html.replace(/ class="  "/gi,'');html=html.replace(/ target=""/gi,'');html=html.replace(/ title=""/gi,'');if(this.browser.ie){html=html.replace(/ class= /gi,'');html=html.replace(/ class= >/gi,'');}
return html;},filter_all_rgb:function(str){var exp=new RegExp("rgb\\s*?\\(\\s*?([0-9]+).*?,\\s*?([0-9]+).*?,\\s*?([0-9]+).*?\\)","gi");var arr=str.match(exp);if(Lang.isArray(arr)){for(var i=0;i<arr.length;i++){var color=this.filter_rgb(arr[i]);str=str.replace(arr[i].toString(),color);}}
return str;},filter_rgb:function(css){if(css.toLowerCase().indexOf('rgb')!=-1){var exp=new RegExp("(.*?)rgb\\s*?\\(\\s*?([0-9]+).*?,\\s*?([0-9]+).*?,\\s*?([0-9]+).*?\\)(.*?)","gi");var rgb=css.replace(exp,"$1,$2,$3,$4,$5").split(',');if(rgb.length==5){var r=parseInt(rgb[1],10).toString(16);var g=parseInt(rgb[2],10).toString(16);var b=parseInt(rgb[3],10).toString(16);r=r.length==1?'0'+r:r;g=g.length==1?'0'+g:g;b=b.length==1?'0'+b:b;css="#"+r+g+b;}}
return css;},pre_filter_linebreaks:function(html,markup){if(this.browser.webkit){html=html.replace(/<br class="khtml-block-placeholder">/gi,'<YUI_BR>');html=html.replace(/<br class="webkit-block-placeholder">/gi,'<YUI_BR>');}
html=html.replace(/<br>/gi,'<YUI_BR>');html=html.replace(/<br (.*?)>/gi,'<YUI_BR>');html=html.replace(/<br\/>/gi,'<YUI_BR>');html=html.replace(/<br \/>/gi,'<YUI_BR>');html=html.replace(/<div><YUI_BR><\/div>/gi,'<YUI_BR>');html=html.replace(/<p>(&nbsp;|&#160;)<\/p>/g,'<YUI_BR>');html=html.replace(/<p><br>&nbsp;<\/p>/gi,'<YUI_BR>');html=html.replace(/<p>&nbsp;<\/p>/gi,'<YUI_BR>');html=html.replace(/<YUI_BR>$/,'');html=html.replace(/<YUI_BR><\/p>/g,'</p>');if(this.browser.ie){html=html.replace(/&nbsp;&nbsp;&nbsp;&nbsp;/g,'\t');}
return html;},post_filter_linebreaks:function(html,markup){if(markup=='xhtml'){html=html.replace(/<YUI_BR>/g,'<br />');}else{html=html.replace(/<YUI_BR>/g,'<br>');}
return html;},clearEditorDoc:function(){this._getDoc().body.innerHTML='&nbsp;';},openWindow:function(win){},moveWindow:function(){},_closeWindow:function(){},closeWindow:function(){this.toolbar.resetAllButtons();this.focus();},destroy:function(){if(this.resize){this.resize.destroy();}
if(this.dd){this.dd.unreg();}
if(this.get('panel')){this.get('panel').destroy();}
this.saveHTML();this.toolbar.destroy();this.setStyle('visibility','visible');this.setStyle('position','static');this.setStyle('top','');this.setStyle('left','');var textArea=this.get('element');this.get('element_cont').get('parentNode').replaceChild(textArea,this.get('element_cont').get('element'));this.get('element_cont').get('element').innerHTML='';this.set('handleSubmit',false);return true;},toString:function(){var str='SimpleEditor';if(this.get&&this.get('element_cont')){str='SimpleEditor (#'+this.get('element_cont').get('id')+')'+((this.get('disabled')?' Disabled':''));}
return str;}});YAHOO.widget.EditorInfo={_instances:{},blankImage:'',window:{},panel:null,getEditorById:function(id){if(!YAHOO.lang.isString(id)){id=id.id;}
if(this._instances[id]){return this._instances[id];}
return false;},toString:function(){var len=0;for(var i in this._instances){if(Lang.hasOwnProperty(this._instances,i)){len++;}}
return'Editor Info ('+len+' registered intance'+((len>1)?'s':'')+')';}};})();(function(){var Dom=YAHOO.util.Dom,Event=YAHOO.util.Event,Lang=YAHOO.lang,Toolbar=YAHOO.widget.Toolbar;YAHOO.widget.Editor=function(el,attrs){YAHOO.widget.Editor.superclass.constructor.call(this,el,attrs);};YAHOO.extend(YAHOO.widget.Editor,YAHOO.widget.SimpleEditor,{_undoCache:null,_undoLevel:null,_hasUndoLevel:function(){return((this._undoCache.length>1)&&this._undoLevel);},_undoNodeChange:function(){var undo_button=this.toolbar.getButtonByValue('undo'),redo_button=this.toolbar.getButtonByValue('redo');if(undo_button&&redo_button){if(this._hasUndoLevel()){this.toolbar.enableButton(undo_button);}
if(this._undoLevel<this._undoCache.length){this.toolbar.enableButton(redo_button);}}
this._lastCommand=null;},_checkUndo:function(){var len=this._undoCache.length,tmp=[];if(len>=this.get('maxUndo')){for(var i=(len-this.get('maxUndo'));i<len;i++){tmp.push(this._undoCache[i]);}
this._undoCache=tmp;}},_putUndo:function(str){this._undoCache.push(str);},_getUndo:function(index){return this._undoCache[index];},_storeUndo:function(){if(this._lastCommand==='undo'||this._lastCommand==='redo'){return false;}
if(!this._undoCache){this._undoCache=[];}
this._checkUndo();var str=this.getEditorHTML();var last=this._undoCache[this._undoCache.length-1];if(last){if(str!==last){this._putUndo(str);}}else{this._putUndo(str);}
this._undoLevel=this._undoCache.length;this._undoNodeChange();},STR_BEFORE_EDITOR:'This text field can contain stylized text and graphics. To cycle through all formatting options, use the keyboard shortcut Control + Shift + T to place focus on the toolbar and navigate between option heading names. <h4>Common formatting keyboard shortcuts:</h4><ul><li>Control Shift B sets text to bold</li> <li>Control Shift I sets text to italic</li> <li>Control Shift U underlines text</li> <li>Control Shift [ aligns text left</li> <li>Control Shift | centers text</li> <li>Control Shift ] aligns text right</li> <li>Control Shift L adds an HTML link</li> <li>To exit this text editor use the keyboard shortcut Control + Shift + ESC.</li></ul>',STR_CLOSE_WINDOW:'Close Window',STR_CLOSE_WINDOW_NOTE:'To close this window use the Control + Shift + W key',STR_IMAGE_PROP_TITLE:'Image Options',STR_IMAGE_TITLE:'Description',STR_IMAGE_SIZE:'Size',STR_IMAGE_ORIG_SIZE:'Original Size',STR_IMAGE_COPY:'<span class="tip"><span class="icon icon-info"></span><strong>Note:</strong>To move this image just highlight it, cut, and paste where ever you\'d like.</span>',STR_IMAGE_PADDING:'Padding',STR_IMAGE_BORDER:'Border',STR_IMAGE_BORDER_SIZE:'Border Size',STR_IMAGE_BORDER_TYPE:'Border Type',STR_IMAGE_TEXTFLOW:'Text Flow',STR_LOCAL_FILE_WARNING:'<span class="tip"><span class="icon icon-warn"></span><strong>Note:</strong>This image/link points to a file on your computer and will not be accessible to others on the internet.</span>',STR_LINK_PROP_TITLE:'Link Options',STR_LINK_PROP_REMOVE:'Remove link from text',STR_LINK_NEW_WINDOW:'Open in a new window.',STR_LINK_TITLE:'Description',STR_NONE:'none',CLASS_LOCAL_FILE:'warning-localfile',CLASS_HIDDEN:'yui-hidden',init:function(p_oElement,p_oAttributes){this._windows={};this._defaultToolbar={collapse:true,titlebar:'Text Editing Tools',draggable:false,buttonType:'advanced',buttons:[{group:'fontstyle',label:'Font Name and Size',buttons:[{type:'select',label:'Arial',value:'fontname',disabled:true,menu:[{text:'Arial',checked:true},{text:'Arial Black'},{text:'Comic Sans MS'},{text:'Courier New'},{text:'Lucida Console'},{text:'Tahoma'},{text:'Times New Roman'},{text:'Trebuchet MS'},{text:'Verdana'}]},{type:'spin',label:'13',value:'fontsize',range:[9,75],disabled:true}]},{type:'separator'},{group:'textstyle',label:'Font Style',buttons:[{type:'push',label:'Bold CTRL + SHIFT + B',value:'bold'},{type:'push',label:'Italic CTRL + SHIFT + I',value:'italic'},{type:'push',label:'Underline CTRL + SHIFT + U',value:'underline'},{type:'separator'},{type:'push',label:'Subscript',value:'subscript',disabled:true},{type:'push',label:'Superscript',value:'superscript',disabled:true}]},{type:'separator'},{group:'textstyle2',label:'&nbsp;',buttons:[{type:'color',label:'Font Color',value:'forecolor',disabled:true},{type:'color',label:'Background Color',value:'backcolor',disabled:true},{type:'separator'},{type:'push',label:'Remove Formatting',value:'removeformat',disabled:true},{type:'push',label:'Show/Hide Hidden Elements',value:'hiddenelements'}]},{type:'separator'},{group:'undoredo',label:'Undo/Redo',buttons:[{type:'push',label:'Undo',value:'undo',disabled:true},{type:'push',label:'Redo',value:'redo',disabled:true}]},{type:'separator'},{group:'alignment',label:'Alignment',buttons:[{type:'push',label:'Align Left CTRL + SHIFT + [',value:'justifyleft'},{type:'push',label:'Align Center CTRL + SHIFT + |',value:'justifycenter'},{type:'push',label:'Align Right CTRL + SHIFT + ]',value:'justifyright'},{type:'push',label:'Justify',value:'justifyfull'}]},{type:'separator'},{group:'parastyle',label:'Paragraph Style',buttons:[{type:'select',label:'Normal',value:'heading',disabled:true,menu:[{text:'Normal',value:'none',checked:true},{text:'Header 1',value:'h1'},{text:'Header 2',value:'h2'},{text:'Header 3',value:'h3'},{text:'Header 4',value:'h4'},{text:'Header 5',value:'h5'},{text:'Header 6',value:'h6'}]}]},{type:'separator'},{group:'indentlist2',label:'Indenting and Lists',buttons:[{type:'push',label:'Indent',value:'indent',disabled:true},{type:'push',label:'Outdent',value:'outdent',disabled:true},{type:'push',label:'Create an Unordered List',value:'insertunorderedlist'},{type:'push',label:'Create an Ordered List',value:'insertorderedlist'}]},{type:'separator'},{group:'insertitem',label:'Insert Item',buttons:[{type:'push',label:'HTML Link CTRL + SHIFT + L',value:'createlink',disabled:true},{type:'push',label:'Insert Image',value:'insertimage'}]}]};this._defaultImageToolbarConfig={buttonType:this._defaultToolbar.buttonType,buttons:[{group:'textflow',label:this.STR_IMAGE_TEXTFLOW+':',buttons:[{type:'push',label:'Left',value:'left'},{type:'push',label:'Inline',value:'inline'},{type:'push',label:'Block',value:'block'},{type:'push',label:'Right',value:'right'}]},{type:'separator'},{group:'padding',label:this.STR_IMAGE_PADDING+':',buttons:[{type:'spin',label:'0',value:'padding',range:[0,50]}]},{type:'separator'},{group:'border',label:this.STR_IMAGE_BORDER+':',buttons:[{type:'select',label:this.STR_IMAGE_BORDER_SIZE,value:'bordersize',menu:[{text:'none',value:'0',checked:true},{text:'1px',value:'1'},{text:'2px',value:'2'},{text:'3px',value:'3'},{text:'4px',value:'4'},{text:'5px',value:'5'}]},{type:'select',label:this.STR_IMAGE_BORDER_TYPE,value:'bordertype',disabled:true,menu:[{text:'Solid',value:'solid',checked:true},{text:'Dashed',value:'dashed'},{text:'Dotted',value:'dotted'}]},{type:'color',label:'Border Color',value:'bordercolor',disabled:true}]}]};YAHOO.widget.Editor.superclass.init.call(this,p_oElement,p_oAttributes);},_render:function(){YAHOO.widget.Editor.superclass._render.apply(this,arguments);var self=this;window.setTimeout(function(){self._renderPanel.call(self);},800);},initAttributes:function(attr){YAHOO.widget.Editor.superclass.initAttributes.call(this,attr);this.setAttributeConfig('localFileWarning',{value:attr.locaFileWarning||true});this.setAttributeConfig('hiddencss',{value:attr.hiddencss||'.yui-hidden font, .yui-hidden strong, .yui-hidden b, .yui-hidden em, .yui-hidden i, .yui-hidden u, .yui-hidden div,.yui-hidden p,.yui-hidden span,.yui-hidden img, .yui-hidden ul, .yui-hidden ol, .yui-hidden li, .yui-hidden table { border: 1px dotted #ccc; } .yui-hidden .yui-non { border: none; } .yui-hidden img { padding: 2px; }',writeOnce:true});},_windows:null,_defaultImageToolbar:null,_defaultImageToolbarConfig:null,_fixNodes:function(){YAHOO.widget.Editor.superclass._fixNodes.call(this);var url='';var imgs=this._getDoc().getElementsByTagName('img');for(var im=0;im<imgs.length;im++){if(imgs[im].getAttribute('href',2)){url=imgs[im].getAttribute('src',2);if(this._isLocalFile(url)){Dom.addClass(imgs[im],this.CLASS_LOCAL_FILE);}else{Dom.removeClass(imgs[im],this.CLASS_LOCAL_FILE);}}}
var fakeAs=this._getDoc().body.getElementsByTagName('a');for(var a=0;a<fakeAs.length;a++){if(fakeAs[a].getAttribute('href',2)){url=fakeAs[a].getAttribute('href',2);if(this._isLocalFile(url)){Dom.addClass(fakeAs[a],this.CLASS_LOCAL_FILE);}else{Dom.removeClass(fakeAs[a],this.CLASS_LOCAL_FILE);}}}},_disabled:['createlink','forecolor','backcolor','fontname','fontsize','superscript','subscript','removeformat','heading','indent'],_alwaysDisabled:{'outdent':true},_alwaysEnabled:{hiddenelements:true},_handleKeyDown:function(ev){YAHOO.widget.Editor.superclass._handleKeyDown.call(this,ev);var doExec=false,action=null,exec=false;switch(ev.keyCode){case this._keyMap.JUSTIFY_LEFT.key:if(this._checkKey(this._keyMap.JUSTIFY_LEFT,ev)){action='justifyleft';doExec=true;}
break;case this._keyMap.JUSTIFY_CENTER.key:if(this._checkKey(this._keyMap.JUSTIFY_CENTER,ev)){action='justifycenter';doExec=true;}
break;case 221:case this._keyMap.JUSTIFY_RIGHT.key:if(this._checkKey(this._keyMap.JUSTIFY_RIGHT,ev)){action='justifyright';doExec=true;}
break;}
if(doExec&&action){this.execCommand(action,null);Event.stopEvent(ev);this.nodeChange();}},_renderCreateLinkWindow:function(){var str='<label for="'+this.get('id')+'_createlink_url"><strong>'+this.STR_LINK_URL+':</strong> <input type="text" name="'+this.get('id')+'_createlink_url" id="'+this.get('id')+'_createlink_url" value=""></label>';str+='<label for="'+this.get('id')+'_createlink_target"><strong>&nbsp;</strong><input type="checkbox" name="'+this.get('id')+'_createlink_target" id="'+this.get('id')+'_createlink_target" value="_blank" class="createlink_target"> '+this.STR_LINK_NEW_WINDOW+'</label>';str+='<label for="'+this.get('id')+'_createlink_title"><strong>'+this.STR_LINK_TITLE+':</strong> <input type="text" name="'+this.get('id')+'_createlink_title" id="'+this.get('id')+'_createlink_title" value=""></label>';var body=document.createElement('div');body.innerHTML=str;var unlinkCont=document.createElement('div');unlinkCont.className='removeLink';var unlink=document.createElement('a');unlink.href='#';unlink.innerHTML=this.STR_LINK_PROP_REMOVE;unlink.title=this.STR_LINK_PROP_REMOVE;Event.on(unlink,'click',function(ev){Event.stopEvent(ev);this.unsubscribeAll('afterExecCommand');this.execCommand('unlink');this.closeWindow();},this,true);unlinkCont.appendChild(unlink);body.appendChild(unlinkCont);this._windows.createlink={};this._windows.createlink.body=body;Event.on(body,'keyup',function(e){Event.stopPropagation(e);});this.get('panel').editor_form.appendChild(body);this.fireEvent('windowCreateLinkRender',{type:'windowCreateLinkRender',panel:this.get('panel'),body:body});return body;},_handleCreateLinkClick:function(){var el=this._getSelectedElement();if(this._isElement(el,'img')){this.STOP_EXEC_COMMAND=true;this.currentElement[0]=el;this.toolbar.fireEvent('insertimageClick',{type:'insertimageClick',target:this.toolbar});this.fireEvent('afterExecCommand',{type:'afterExecCommand',target:this});return false;}
if(this.get('limitCommands')){if(!this.toolbar.getButtonByValue('createlink')){return false;}}
this.on('afterExecCommand',function(){var win=new YAHOO.widget.EditorWindow('createlink',{width:'350px'});var el=this.currentElement[0],url='',title='',target='',localFile=false;if(el){win.el=el;if(el.getAttribute('href',2)!==null){url=el.getAttribute('href',2);if(this._isLocalFile(url)){win.setFooter(this.STR_LOCAL_FILE_WARNING);localFile=true;}else{win.setFooter(' ');}}
if(el.getAttribute('title')!==null){title=el.getAttribute('title');}
if(el.getAttribute('target')!==null){target=el.getAttribute('target');}}
var body=null;if(this._windows.createlink&&this._windows.createlink.body){body=this._windows.createlink.body;}else{body=this._renderCreateLinkWindow();}
win.setHeader(this.STR_LINK_PROP_TITLE);win.setBody(body);Event.purgeElement(this.get('id')+'_createlink_url');Dom.get(this.get('id')+'_createlink_url').value=url;Dom.get(this.get('id')+'_createlink_title').value=title;Dom.get(this.get('id')+'_createlink_target').checked=((target)?true:false);Event.onAvailable(this.get('id')+'_createlink_url',function(){var id=this.get('id');window.setTimeout(function(){try{YAHOO.util.Dom.get(id+'_createlink_url').focus();}catch(e){}},50);if(this._isLocalFile(url)){Dom.addClass(this.get('id')+'_createlink_url','warning');this.get('panel').setFooter(this.STR_LOCAL_FILE_WARNING);}else{Dom.removeClass(this.get('id')+'_createlink_url','warning');this.get('panel').setFooter(' ');}
Event.on(this.get('id')+'_createlink_url','blur',function(){var url=Dom.get(this.get('id')+'_createlink_url');if(this._isLocalFile(url.value)){Dom.addClass(url,'warning');this.get('panel').setFooter(this.STR_LOCAL_FILE_WARNING);}else{Dom.removeClass(url,'warning');this.get('panel').setFooter(' ');}},this,true);},this,true);this.openWindow(win);});},_handleCreateLinkWindowClose:function(){var url=Dom.get(this.get('id')+'_createlink_url'),target=Dom.get(this.get('id')+'_createlink_target'),title=Dom.get(this.get('id')+'_createlink_title'),el=arguments[0].win.el,a=el;if(url&&url.value){var urlValue=url.value;if((urlValue.indexOf(':/'+'/')==-1)&&(urlValue.substring(0,1)!='/')&&(urlValue.substring(0,6).toLowerCase()!='mailto')){if((urlValue.indexOf('@')!=-1)&&(urlValue.substring(0,6).toLowerCase()!='mailto')){urlValue='mailto:'+urlValue;}else{if(urlValue.substring(0,1)!='#'){urlValue='http:/'+'/'+urlValue;}}}
el.setAttribute('href',urlValue);if(target.checked){el.setAttribute('target',target.value);}else{el.setAttribute('target','');}
el.setAttribute('title',((title.value)?title.value:''));}else{var _span=this._getDoc().createElement('span');_span.innerHTML=el.innerHTML;Dom.addClass(_span,'yui-non');el.parentNode.replaceChild(_span,el);}
Dom.removeClass(url,'warning');Dom.get(this.get('id')+'_createlink_url').value='';Dom.get(this.get('id')+'_createlink_title').value='';Dom.get(this.get('id')+'_createlink_target').checked=false;this.nodeChange();this.currentElement=[];},_renderInsertImageWindow:function(){var el=this.currentElement[0];var str='<label for="'+this.get('id')+'_insertimage_url"><strong>'+this.STR_IMAGE_URL+':</strong> <input type="text" id="'+this.get('id')+'_insertimage_url" value="" size="40"></label>';var body=document.createElement('div');body.innerHTML=str;var tbarCont=document.createElement('div');tbarCont.id=this.get('id')+'_img_toolbar';body.appendChild(tbarCont);var str2='<label for="'+this.get('id')+'_insertimage_title"><strong>'+this.STR_IMAGE_TITLE+':</strong> <input type="text" id="'+this.get('id')+'_insertimage_title" value="" size="40"></label>';str2+='<label for="'+this.get('id')+'_insertimage_link"><strong>'+this.STR_LINK_URL+':</strong> <input type="text" name="'+this.get('id')+'_insertimage_link" id="'+this.get('id')+'_insertimage_link" value=""></label>';str2+='<label for="'+this.get('id')+'_insertimage_target"><strong>&nbsp;</strong><input type="checkbox" name="'+this.get('id')+'_insertimage_target_" id="'+this.get('id')+'_insertimage_target" value="_blank" class="insertimage_target"> '+this.STR_LINK_NEW_WINDOW+'</label>';var div=document.createElement('div');div.innerHTML=str2;body.appendChild(div);var o={};Lang.augmentObject(o,this._defaultImageToolbarConfig);var tbar=new YAHOO.widget.Toolbar(tbarCont,o);tbar.editor_el=el;this._defaultImageToolbar=tbar;var cont=tbar.get('cont');var hw=document.createElement('div');hw.className='yui-toolbar-group yui-toolbar-group-height-width height-width';hw.innerHTML='<h3>'+this.STR_IMAGE_SIZE+':</h3>';hw.innerHTML+='<span tabIndex="-1"><input type="text" size="3" value="" id="'+this.get('id')+'_insertimage_width"> x <input type="text" size="3" value="" id="'+this.get('id')+'_insertimage_height"></span>';cont.insertBefore(hw,cont.firstChild);Event.onAvailable(this.get('id')+'_insertimage_width',function(){Event.on(this.get('id')+'_insertimage_width','blur',function(){var value=parseInt(Dom.get(this.get('id')+'_insertimage_width').value,10);if(value>5){this._defaultImageToolbar.editor_el.style.width=value+'px';}},this,true);},this,true);Event.onAvailable(this.get('id')+'_insertimage_height',function(){Event.on(this.get('id')+'_insertimage_height','blur',function(){var value=parseInt(Dom.get(this.get('id')+'_insertimage_height').value,10);if(value>5){this._defaultImageToolbar.editor_el.style.height=value+'px';}},this,true);},this,true);tbar.on('colorPickerClicked',function(o){var size='1',type='solid',color='black',el=this._defaultImageToolbar.editor_el;if(el.style.borderLeftWidth){size=parseInt(el.style.borderLeftWidth,10);}
if(el.style.borderLeftStyle){type=el.style.borderLeftStyle;}
if(el.style.borderLeftColor){color=el.style.borderLeftColor;}
var borderString=size+'px '+type+' #'+o.color;el.style.border=borderString;},this,true);tbar.on('buttonClick',function(o){var value=o.button.value,el=this._defaultImageToolbar.editor_el,borderString='';if(o.button.menucmd){value=o.button.menucmd;}
var size='1',type='solid',color='black';if(el.style.borderLeftWidth){size=parseInt(el.style.borderLeftWidth,10);}
if(el.style.borderLeftStyle){type=el.style.borderLeftStyle;}
if(el.style.borderLeftColor){color=el.style.borderLeftColor;}
switch(value){case'bordersize':if(this.browser.webkit&&this._lastImage){Dom.removeClass(this._lastImage,'selected');this._lastImage=null;}
borderString=parseInt(o.button.value,10)+'px '+type+' '+color;el.style.border=borderString;if(parseInt(o.button.value,10)>0){tbar.enableButton('bordertype');tbar.enableButton('bordercolor');}else{tbar.disableButton('bordertype');tbar.disableButton('bordercolor');}
break;case'bordertype':if(this.browser.webkit&&this._lastImage){Dom.removeClass(this._lastImage,'selected');this._lastImage=null;}
borderString=size+'px '+o.button.value+' '+color;el.style.border=borderString;break;case'right':case'left':tbar.deselectAllButtons();el.style.display='';el.align=o.button.value;break;case'inline':tbar.deselectAllButtons();el.style.display='';el.align='';break;case'block':tbar.deselectAllButtons();el.style.display='block';el.align='center';break;case'padding':var _button=tbar.getButtonById(o.button.id);el.style.margin=_button.get('label')+'px';break;}
tbar.selectButton(o.button.value);if(value!=='padding'){this.moveWindow();}},this,true);if(this.get('localFileWarning')){Event.on(this.get('id')+'_insertimage_link','blur',function(){var url=Dom.get(this.get('id')+'_insertimage_link');if(this._isLocalFile(url.value)){Dom.addClass(url,'warning');this.get('panel').setFooter(this.STR_LOCAL_FILE_WARNING);}else{Dom.removeClass(url,'warning');this.get('panel').setFooter(' ');if((this.browser.webkit&&!this.browser.webkit3||this.browser.air)||this.browser.opera){this.get('panel').setFooter(this.STR_IMAGE_COPY);}}},this,true);}
Event.on(this.get('id')+'_insertimage_url','blur',function(){var url=Dom.get(this.get('id')+'_insertimage_url');if(url.value&&el){if(url.value==el.getAttribute('src',2)){return false;}}
if(this._isLocalFile(url.value)){Dom.addClass(url,'warning');this.get('panel').setFooter(this.STR_LOCAL_FILE_WARNING);}else if(this.currentElement[0]){Dom.removeClass(url,'warning');this.get('panel').setFooter(' ');if((this.browser.webkit&&!this.browser.webkit3||this.browser.air)||this.browser.opera){this.get('panel').setFooter(this.STR_IMAGE_COPY);}
if(url&&url.value&&(url.value!=this.STR_IMAGE_HERE)){this.currentElement[0].setAttribute('src',url.value);var self=this,img=new Image();img.onerror=function(){url.value=self.STR_IMAGE_HERE;img.setAttribute('src',self.get('blankimage'));self.currentElement[0].setAttribute('src',self.get('blankimage'));YAHOO.util.Dom.get(self.get('id')+'_insertimage_height').value=img.height;YAHOO.util.Dom.get(self.get('id')+'_insertimage_width').value=img.width;};var id=this.get('id');window.setTimeout(function(){YAHOO.util.Dom.get(id+'_insertimage_height').value=img.height;YAHOO.util.Dom.get(id+'_insertimage_width').value=img.width;if(self.currentElement&&self.currentElement[0]){if(!self.currentElement[0]._height){self.currentElement[0]._height=img.height;}
if(!self.currentElement[0]._width){self.currentElement[0]._width=img.width;}}
},800);if(url.value!=this.STR_IMAGE_HERE){img.src=url.value;}}}},this,true);this._windows.insertimage={};this._windows.insertimage.body=body;this.get('panel').editor_form.appendChild(body);this.fireEvent('windowInsertImageRender',{type:'windowInsertImageRender',panel:this.get('panel'),body:body,toolbar:tbar});return body;},_handleInsertImageClick:function(){if(this.get('limitCommands')){if(!this.toolbar.getButtonByValue('insertimage')){return false;}}
this.on('afterExecCommand',function(){var el=this.currentElement[0],body=null,link='',target='',tbar=null,title='',src='',align='',height=75,width=75,padding=0,oheight=0,owidth=0,blankimage=false,win=new YAHOO.widget.EditorWindow('insertimage',{width:'415px'});if(!el){el=this._getSelectedElement();}
if(el){win.el=el;if(el.getAttribute('src')){src=el.getAttribute('src',2);if(src.indexOf(this.get('blankimage'))!=-1){src=this.STR_IMAGE_HERE;blankimage=true;}}
if(el.getAttribute('alt',2)){title=el.getAttribute('alt',2);}
if(el.getAttribute('title',2)){title=el.getAttribute('title',2);}
if(el.parentNode&&this._isElement(el.parentNode,'a')){link=el.parentNode.getAttribute('href',2);if(el.parentNode.getAttribute('target')!==null){target=el.parentNode.getAttribute('target');}}
height=parseInt(el.height,10);width=parseInt(el.width,10);if(el.style.height){height=parseInt(el.style.height,10);}
if(el.style.width){width=parseInt(el.style.width,10);}
if(el.style.margin){padding=parseInt(el.style.margin,10);}
if(!el._height){el._height=height;}
if(!el._width){el._width=width;}
oheight=el._height;owidth=el._width;}
if(this._windows.insertimage&&this._windows.insertimage.body){body=this._windows.insertimage.body;this._defaultImageToolbar.resetAllButtons();}else{body=this._renderInsertImageWindow();}
tbar=this._defaultImageToolbar;tbar.editor_el=el;var bsize='0',btype='solid';if(el.style.borderLeftWidth){bsize=parseInt(el.style.borderLeftWidth,10);}
if(el.style.borderLeftStyle){btype=el.style.borderLeftStyle;}
var bs_button=tbar.getButtonByValue('bordersize'),bSizeStr=((parseInt(bsize,10)>0)?'':this.STR_NONE);bs_button.set('label','<span class="yui-toolbar-bordersize-'+bsize+'">'+bSizeStr+'</span>');this._updateMenuChecked('bordersize',bsize,tbar);var bt_button=tbar.getButtonByValue('bordertype');bt_button.set('label','<span class="yui-toolbar-bordertype-'+btype+'">asdfa</span>');this._updateMenuChecked('bordertype',btype,tbar);if(parseInt(bsize,10)>0){tbar.enableButton(bt_button);tbar.enableButton(bs_button);tbar.enableButton('bordercolor');}
if((el.align=='right')||(el.align=='left')){tbar.selectButton(el.align);}else if(el.style.display=='block'){tbar.selectButton('block');}else{tbar.selectButton('inline');}
if(parseInt(el.style.marginLeft,10)>0){tbar.getButtonByValue('padding').set('label',''+parseInt(el.style.marginLeft,10));}
if(el.style.borderSize){tbar.selectButton('bordersize');tbar.selectButton(parseInt(el.style.borderSize,10));}
tbar.getButtonByValue('padding').set('label',''+padding);win.setHeader(this.STR_IMAGE_PROP_TITLE);win.setBody(body);if((this.browser.webkit&&!this.browser.webkit3||this.browser.air)||this.browser.opera){win.setFooter(this.STR_IMAGE_COPY);}
this.openWindow(win);Dom.get(this.get('id')+'_insertimage_url').value=src;Dom.get(this.get('id')+'_insertimage_title').value=title;Dom.get(this.get('id')+'_insertimage_link').value=link;Dom.get(this.get('id')+'_insertimage_target').checked=((target)?true:false);Dom.get(this.get('id')+'_insertimage_width').value=width;Dom.get(this.get('id')+'_insertimage_height').value=height;var orgSize='';if((height!=oheight)||(width!=owidth)){var s=document.createElement('span');s.className='info';s.innerHTML=this.STR_IMAGE_ORIG_SIZE+': ('+owidth+' x '+oheight+')';if(Dom.get(this.get('id')+'_insertimage_height').nextSibling){var old=Dom.get(this.get('id')+'_insertimage_height').nextSibling;old.parentNode.removeChild(old);}
Dom.get(this.get('id')+'_insertimage_height').parentNode.appendChild(s);}
this.toolbar.selectButton('insertimage');var id=this.get('id');window.setTimeout(function(){try{YAHOO.util.Dom.get(id+'_insertimage_url').focus();if(blankimage){YAHOO.util.Dom.get(id+'_insertimage_url').select();}}catch(e){}},50);});},_handleInsertImageWindowClose:function(){var url=Dom.get(this.get('id')+'_insertimage_url'),title=Dom.get(this.get('id')+'_insertimage_title'),link=Dom.get(this.get('id')+'_insertimage_link'),target=Dom.get(this.get('id')+'_insertimage_target'),el=arguments[0].win.el;if(url&&url.value&&(url.value!=this.STR_IMAGE_HERE)){el.setAttribute('src',url.value);el.setAttribute('title',title.value);el.setAttribute('alt',title.value);var par=el.parentNode;if(link.value){var urlValue=link.value;if((urlValue.indexOf(':/'+'/')==-1)&&(urlValue.substring(0,1)!='/')&&(urlValue.substring(0,6).toLowerCase()!='mailto')){if((urlValue.indexOf('@')!=-1)&&(urlValue.substring(0,6).toLowerCase()!='mailto')){urlValue='mailto:'+urlValue;}else{urlValue='http:/'+'/'+urlValue;}}
if(par&&this._isElement(par,'a')){par.setAttribute('href',urlValue);if(target.checked){par.setAttribute('target',target.value);}else{par.setAttribute('target','');}}else{var _a=this._getDoc().createElement('a');_a.setAttribute('href',urlValue);if(target.checked){_a.setAttribute('target',target.value);}else{_a.setAttribute('target','');}
el.parentNode.replaceChild(_a,el);_a.appendChild(el);}}else{if(par&&this._isElement(par,'a')){par.parentNode.replaceChild(el,par);}}}else{el.parentNode.removeChild(el);}
Dom.get(this.get('id')+'_insertimage_url').value='';Dom.get(this.get('id')+'_insertimage_title').value='';Dom.get(this.get('id')+'_insertimage_link').value='';Dom.get(this.get('id')+'_insertimage_target').checked=false;Dom.get(this.get('id')+'_insertimage_width').value=0;Dom.get(this.get('id')+'_insertimage_height').value=0;this._defaultImageToolbar.resetAllButtons();this.currentElement=[];this.nodeChange();},EDITOR_PANEL_ID:'-panel',_renderPanel:function(){var panelEl=document.createElement('div');Dom.addClass(panelEl,'yui-editor-panel');panelEl.id=this.get('id')+this.EDITOR_PANEL_ID;panelEl.style.position='absolute';panelEl.style.top='-9999px';panelEl.style.left='-9999px';document.body.appendChild(panelEl);this.get('element_cont').insertBefore(panelEl,this.get('element_cont').get('firstChild'));var panel=new YAHOO.widget.Overlay(this.get('id')+this.EDITOR_PANEL_ID,{width:'300px',iframe:true,visible:false,underlay:'none',draggable:false,close:false});this.set('panel',panel);panel.setBody('---');panel.setHeader(' ');panel.setFooter(' ');var body=document.createElement('div');body.className=this.CLASS_PREFIX+'-body-cont';for(var b in this.browser){if(this.browser[b]){Dom.addClass(body,b);break;}}
Dom.addClass(body,((YAHOO.widget.Button&&(this._defaultToolbar.buttonType=='advanced'))?'good-button':'no-button'));var _note=document.createElement('h3');_note.className='yui-editor-skipheader';_note.innerHTML=this.STR_CLOSE_WINDOW_NOTE;body.appendChild(_note);var form=document.createElement('fieldset');panel.editor_form=form;body.appendChild(form);var _close=document.createElement('span');_close.innerHTML='X';_close.title=this.STR_CLOSE_WINDOW;_close.className='close';Event.on(_close,'click',this.closeWindow,this,true);var _knob=document.createElement('span');_knob.innerHTML='^';_knob.className='knob';panel.editor_knob=_knob;var _header=document.createElement('h3');panel.editor_header=_header;_header.innerHTML='<span></span>';panel.setHeader(' ');panel.appendToHeader(_header);_header.appendChild(_close);_header.appendChild(_knob);panel.setBody(' ');panel.setFooter(' ');panel.appendToBody(body);Event.on(panel.element,'click',function(ev){Event.stopPropagation(ev);});var fireShowEvent=function(){panel.bringToTop();YAHOO.util.Dom.setStyle(this.element,'display','block');this._handleWindowInputs(false);};panel.showEvent.subscribe(fireShowEvent,this,true);panel.hideEvent.subscribe(function(){this._handleWindowInputs(true);},this,true);panel.renderEvent.subscribe(function(){this._renderInsertImageWindow();this._renderCreateLinkWindow();this.fireEvent('windowRender',{type:'windowRender',panel:panel});this._handleWindowInputs(true);},this,true);if(this.DOMReady){this.get('panel').render();}else{Event.onDOMReady(function(){this.get('panel').render();},this,true);}
return this.get('panel');},_handleWindowInputs:function(disable){if(!Lang.isBoolean(disable)){disable=false;}
var inputs=this.get('panel').element.getElementsByTagName('input');for(var i=0;i<inputs.length;i++){try{inputs[i].disabled=disable;}catch(e){}}},openWindow:function(win){var self=this;window.setTimeout(function(){self.toolbar.set('disabled',true);},10);Event.on(document,'keydown',this._closeWindow,this,true);if(this.currentWindow){this.closeWindow();}
var xy=Dom.getXY(this.currentElement[0]),elXY=Dom.getXY(this.get('iframe').get('element')),panel=this.get('panel'),newXY=[(xy[0]+elXY[0]-20),(xy[1]+elXY[1]+10)],wWidth=(parseInt(win.attrs.width,10)/2),align='center',body=null;this.fireEvent('beforeOpenWindow',{type:'beforeOpenWindow',win:win,panel:panel});var form=panel.editor_form;var wins=this._windows;for(var b in wins){if(Lang.hasOwnProperty(wins,b)){if(wins[b]&&wins[b].body){if(b==win.name){Dom.setStyle(wins[b].body,'display','block');}else{Dom.setStyle(wins[b].body,'display','none');}}}}
if(this._windows[win.name].body){Dom.setStyle(this._windows[win.name].body,'display','block');form.appendChild(this._windows[win.name].body);}else{if(Lang.isObject(win.body)){form.appendChild(win.body);}else{var _tmp=document.createElement('div');_tmp.innerHTML=win.body;form.appendChild(_tmp);}}
panel.editor_header.firstChild.innerHTML=win.header;if(win.footer!==null){panel.setFooter(win.footer);Dom.addClass(panel.footer,'open');}else{Dom.removeClass(panel.footer,'open');}
panel.cfg.setProperty('width',win.attrs.width);this.currentWindow=win;this.moveWindow(true);panel.show();this.fireEvent('afterOpenWindow',{type:'afterOpenWindow',win:win,panel:panel});},moveWindow:function(force){if(!this.currentWindow){return false;}
var win=this.currentWindow,xy=Dom.getXY(this.currentElement[0]),elXY=Dom.getXY(this.get('iframe').get('element')),panel=this.get('panel'),newXY=[(xy[0]+elXY[0]),(xy[1]+elXY[1])],wWidth=(parseInt(win.attrs.width,10)/2),align='center',orgXY=panel.cfg.getProperty('xy')||[0,0],_knob=panel.editor_knob,xDiff=0,yDiff=0,anim=false;newXY[0]=((newXY[0]-wWidth)+20);newXY[0]=newXY[0]-Dom.getDocumentScrollLeft(this._getDoc());newXY[1]=newXY[1]-Dom.getDocumentScrollTop(this._getDoc());if(this._isElement(this.currentElement[0],'img')){if(this.currentElement[0].src.indexOf(this.get('blankimage'))!=-1){newXY[0]=(newXY[0]+(75/2));newXY[1]=(newXY[1]+75);}else{var w=parseInt(this.currentElement[0].width,10);var h=parseInt(this.currentElement[0].height,10);newXY[0]=(newXY[0]+(w/2));newXY[1]=(newXY[1]+h);}
newXY[1]=newXY[1]+15;}else{var fs=Dom.getStyle(this.currentElement[0],'fontSize');if(fs&&fs.indexOf&&fs.indexOf('px')!=-1){newXY[1]=newXY[1]+parseInt(Dom.getStyle(this.currentElement[0],'fontSize'),10)+5;}else{newXY[1]=newXY[1]+20;}}
if(newXY[0]<elXY[0]){newXY[0]=elXY[0]+5;align='left';}
if((newXY[0]+(wWidth*2))>(elXY[0]+parseInt(this.get('iframe').get('element').clientWidth,10))){newXY[0]=((elXY[0]+parseInt(this.get('iframe').get('element').clientWidth,10))-(wWidth*2)-5);align='right';}
try{xDiff=(newXY[0]-orgXY[0]);yDiff=(newXY[1]-orgXY[1]);}catch(e){}
var iTop=elXY[1]+parseInt(this.get('height'),10);var iLeft=elXY[0]+parseInt(this.get('width'),10);if(newXY[1]>iTop){newXY[1]=iTop;}
if(newXY[0]>iLeft){newXY[0]=(iLeft/2);}
xDiff=((xDiff<0)?(xDiff*-1):xDiff);yDiff=((yDiff<0)?(yDiff*-1):yDiff);if(((xDiff>10)||(yDiff>10))||force){var _knobLeft=0,elW=0;if(this.currentElement[0].width){elW=(parseInt(this.currentElement[0].width,10)/2);}
var leftOffset=xy[0]+elXY[0]+elW;_knobLeft=leftOffset-newXY[0];if(_knobLeft>(parseInt(win.attrs.width,10)-1)){_knobLeft=((parseInt(win.attrs.width,10)-30)-1);}else if(_knobLeft<40){_knobLeft=1;}
if(isNaN(_knobLeft)){_knobLeft=1;}
if(force){if(_knob){_knob.style.left=_knobLeft+'px';}
panel.cfg.setProperty('xy',newXY);}else{if(this.get('animate')){anim=new YAHOO.util.Anim(panel.element,{},0.5,YAHOO.util.Easing.easeOut);anim.attributes={top:{to:newXY[1]},left:{to:newXY[0]}};anim.onComplete.subscribe(function(){panel.cfg.setProperty('xy',newXY);});var iframeAnim=new YAHOO.util.Anim(panel.iframe,anim.attributes,0.5,YAHOO.util.Easing.easeOut);var _knobAnim=new YAHOO.util.Anim(_knob,{left:{to:_knobLeft}},0.6,YAHOO.util.Easing.easeOut);anim.animate();iframeAnim.animate();_knobAnim.animate();}else{_knob.style.left=_knobLeft+'px';panel.cfg.setProperty('xy',newXY);}}}},_closeWindow:function(ev){if(this._checkKey(this._keyMap.CLOSE_WINDOW,ev)){if(this.currentWindow){this.closeWindow();}}},closeWindow:function(keepOpen){this.fireEvent('window'+this.currentWindow.name+'Close',{type:'window'+this.currentWindow.name+'Close',win:this.currentWindow,el:this.currentElement[0]});this.fireEvent('closeWindow',{type:'closeWindow',win:this.currentWindow});this.currentWindow=null;this.get('panel').hide();this.get('panel').cfg.setProperty('xy',[-900,-900]);this.get('panel').syncIframe();this.unsubscribeAll('afterExecCommand');this.toolbar.set('disabled',false);this.toolbar.resetAllButtons();this.focus();Event.removeListener(document,'keydown',this._closeWindow);},cmd_undo:function(value){if(this._hasUndoLevel()){if(!this._undoLevel){this._undoLevel=this._undoCache.length;}
this._undoLevel=(this._undoLevel-1);if(this._undoCache[this._undoLevel]){var html=this._getUndo(this._undoLevel);this.setEditorHTML(html);}else{this._undoLevel=null;this.toolbar.disableButton('undo');}}
return[false];},cmd_redo:function(value){this._undoLevel=this._undoLevel+1;if(this._undoLevel>=this._undoCache.length){this._undoLevel=this._undoCache.length;}
if(this._undoCache[this._undoLevel]){var html=this._getUndo(this._undoLevel);this.setEditorHTML(html);}else{this.toolbar.disableButton('redo');}
return[false];},cmd_heading:function(value){var exec=true,el=null,action='heading',_sel=this._getSelection(),_selEl=this._getSelectedElement();if(_selEl){_sel=_selEl;}
if(this.browser.ie){action='formatblock';}
if(value==this.STR_NONE){if((_sel&&_sel.tagName&&(_sel.tagName.toLowerCase().substring(0,1)=='h'))||(_sel&&_sel.parentNode&&_sel.parentNode.tagName&&(_sel.parentNode.tagName.toLowerCase().substring(0,1)=='h'))){if(_sel.parentNode.tagName.toLowerCase().substring(0,1)=='h'){_sel=_sel.parentNode;}
if(this._isElement(_sel,'html')){return[false];}
el=this._swapEl(_selEl,'span',function(el){el.className='yui-non';});this._selectNode(el);this.currentElement[0]=el;}
exec=false;}else{if(this._isElement(_selEl,'h1')||this._isElement(_selEl,'h2')||this._isElement(_selEl,'h3')||this._isElement(_selEl,'h4')||this._isElement(_selEl,'h5')||this._isElement(_selEl,'h6')){el=this._swapEl(_selEl,value);this._selectNode(el);this.currentElement[0]=el;}else{this._createCurrentElement(value);this._selectNode(this.currentElement[0]);}
exec=false;}
return[exec,action];},cmd_hiddenelements:function(value){if(this._showingHiddenElements){this._lastButton=null;this._showingHiddenElements=false;this.toolbar.deselectButton('hiddenelements');Dom.removeClass(this._getDoc().body,this.CLASS_HIDDEN);}else{this._showingHiddenElements=true;Dom.addClass(this._getDoc().body,this.CLASS_HIDDEN);this.toolbar.selectButton('hiddenelements');}
return[false];},cmd_removeformat:function(value){var exec=true;if(this.browser.webkit&&!this._getDoc().queryCommandEnabled('removeformat')){var _txt=this._getSelection()+'';this._createCurrentElement('span');this.currentElement[0].className='yui-non';this.currentElement[0].innerHTML=_txt;for(var i=1;i<this.currentElement.length;i++){this.currentElement[i].parentNode.removeChild(this.currentElement[i]);}
exec=false;}
return[exec];},cmd_script:function(action,value){var exec=true,tag=action.toLowerCase().substring(0,3),_span=null,_selEl=this._getSelectedElement();if(this.browser.webkit){if(this._isElement(_selEl,tag)){_span=this._swapEl(this.currentElement[0],'span',function(el){el.className='yui-non';});this._selectNode(_span);}else{this._createCurrentElement(tag);var _sub=this._swapEl(this.currentElement[0],tag);this._selectNode(_sub);this.currentElement[0]=_sub;}
exec=false;}
return exec;},cmd_superscript:function(value){return[this.cmd_script('superscript',value)];},cmd_subscript:function(value){return[this.cmd_script('subscript',value)];},cmd_indent:function(value){var exec=true,selEl=this._getSelectedElement(),_bq=null;if(this.browser.ie){if(this._isElement(selEl,'blockquote')){_bq=this._getDoc().createElement('blockquote');_bq.innerHTML=selEl.innerHTML;selEl.innerHTML='';selEl.appendChild(_bq);this._selectNode(_bq);}else{_bq=this._getDoc().createElement('blockquote');var html=this._getRange().htmlText;_bq.innerHTML=html;this._createCurrentElement('blockquote');this.currentElement[0].parentNode.replaceChild(_bq,this.currentElement[0]);this.currentElement[0]=_bq;this._selectNode(this.currentElement[0]);}
exec=false;}else{value='blockquote';}
return[exec,'formatblock',value];},cmd_outdent:function(value){var exec=true,selEl=this._getSelectedElement(),_bq=null,_span=null;if(this.browser.webkit||this.browser.ie){selEl=this._getSelectedElement();if(this._isElement(selEl,'blockquote')){var par=selEl.parentNode;if(this._isElement(selEl.parentNode,'blockquote')){par.innerHTML=selEl.innerHTML;this._selectNode(par);}else{_span=this._getDoc().createElement('span');_span.innerHTML=selEl.innerHTML;YAHOO.util.Dom.addClass(_span,'yui-non');par.replaceChild(_span,selEl);this._selectNode(_span);}}else{}
exec=false;}else{value=false;}
return[exec,'outdent',value];},cmd_justify:function(dir){if(this.browser.ie){if(this._hasSelection()){this._createCurrentElement('span');this._swapEl(this.currentElement[0],'div',function(el){el.style.textAlign=dir;});return[false];}}
return[true,'justify'+dir,''];},cmd_justifycenter:function(){return[this.cmd_justify('center')];},cmd_justifyleft:function(){return[this.cmd_justify('left')];},cmd_justifyright:function(){return[this.cmd_justify('right')];},toString:function(){var str='Editor';if(this.get&&this.get('element_cont')){str='Editor (#'+this.get('element_cont').get('id')+')'+((this.get('disabled')?' Disabled':''));}
return str;}});YAHOO.widget.EditorWindow=function(name,attrs){this.name=name.replace(' ','_');this.attrs=attrs;};YAHOO.widget.EditorWindow.prototype={header:null,body:null,footer:null,setHeader:function(str){this.header=str;},setBody:function(str){this.body=str;},setFooter:function(str){this.footer=str;},toString:function(){return'Editor Window ('+this.name+')';}};})();YAHOO.register("editor",YAHOO.widget.Editor,{version:"2.7.0",build:"1799"});
