2019-07-17 20:08:50 +00:00
/ *
2019-07-17 20:16:19 +00:00
Copyright ( c ) 2009 , Yahoo ! Inc . All rights reserved .
2019-07-17 20:08:50 +00:00
Code licensed under the BSD License :
http : //developer.yahoo.net/yui/license.txt
2019-07-17 20:16:19 +00:00
version : 2.7 . 0
2019-07-17 20:08:50 +00:00
* /
2019-07-17 20:16:19 +00:00
( function ( ) { var B = YAHOO . util . Dom , A = YAHOO . util . Event , C = YAHOO . lang ; if ( YAHOO . widget . Button ) { YAHOO . widget . ToolbarButtonAdvanced = YAHOO . widget . Button ; YAHOO . widget . ToolbarButtonAdvanced . prototype . buttonType = "rich" ; YAHOO . widget . ToolbarButtonAdvanced . prototype . checkValue = function ( F ) { var E = this . getMenu ( ) . getItems ( ) ; if ( E . length === 0 ) { this . getMenu ( ) . _onBeforeShow ( ) ; E = this . getMenu ( ) . getItems ( ) ; } for ( var D = 0 ; D < E . length ; D ++ ) { E [ D ] . cfg . setProperty ( "checked" , false ) ; if ( E [ D ] . value == F ) { E [ D ] . cfg . setProperty ( "checked" , true ) ; } } } ; } else { YAHOO . widget . ToolbarButtonAdvanced = function ( ) { } ; } YAHOO . widget . ToolbarButton = function ( E , D ) { if ( C . isObject ( arguments [ 0 ] ) && ! B . get ( E ) . nodeType ) { D = E ; } var G = ( D || { } ) ; var F = { element : null , attributes : G } ; if ( ! F . attributes . type ) { F . attributes . type = "push" ; } F . element = document . createElement ( "span" ) ; F . element . setAttribute ( "unselectable" , "on" ) ; F . element . className = "yui-button yui-" + F . attributes . type + "-button" ; F . element . innerHTML = '<span class="first-child"><a href="#">LABEL</a></span>' ; F . element . firstChild . firstChild . tabIndex = "-1" ; F . attributes . id = ( F . attributes . id || B . generateId ( ) ) ; F . element . id = F . attributes . id ; YAHOO . widget . ToolbarButton . superclass . constructor . call ( this , F . element , F . 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 ( F ) { if ( this . get ( "type" ) == "menu" ) { var E = this . _button . options ; for ( var D = 0 ; D < E . length ; D ++ ) { if ( E [ D ] . value == F ) { E . selectedIndex = D ; } } } } , init : function ( E , D ) { YAHOO . widget . ToolbarButton . superclass . init . call ( this , E , D ) ; this . on ( "mouseover" , this . _handleMouseOver , this , true ) ; this . on ( "mouseout" , this . _handleMouseOut , this , true ) ; this . on ( "click" , function ( F ) { A . stopEvent ( F ) ; return false ; } , this , true ) ; } , initAttributes : function ( D ) { YAHOO . widget . ToolbarButton . superclass . initAttributes . call ( this , D ) ; this . setAttributeConfig ( "value" , { value : D . value } ) ; this . setAttributeConfig ( "menu" , { value : D . menu || false } ) ; this . setAttributeConfig ( "type" , { value : D . type , writeOnce : true , method : function ( H ) { var G , F ; if ( ! this . _button ) { this . _button = this . get ( "element" ) . getElementsByTagName ( "a" ) [ 0 ] ; } switch ( H ) { case "select" : case "menu" : G = document . createElement ( "select" ) ; var I = this . get ( "menu" ) ; for ( var E = 0 ; E < I . length ; E ++ ) { F = document . createElement ( "option" ) ; F . innerHTML = I [ E ] . text ; F . value = I [ E ] . value ; if ( I [ E ] . checked ) { F . selected = true ; } G . appendChild ( F ) ; } this . _button . parentNode . replaceChild ( G , this . _button ) ; A . on ( G , "change" , this . _handleSelect , this , true ) ; this . _button = G ; break ; } } } ) ; this . setAttributeConfig ( "disabled" , { value : D . disabled || false , method : function ( E ) { if ( E ) { 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 = E ; } } } ) ; this . setAttributeConfig ( "label" , { value : D . label , method : function ( E ) { if ( ! this . _button ) { this . _button = this . get ( "element" ) . getElementsByTagName ( "a" ) [ 0 ] ; } if ( this . get ( "type" ) == "push" ) { this . _button . innerHTML = E ; } } } ) ; this . setAttributeConfig ( "title" , { value : D . title } ) ; this . setAttributeConfig ( "container" , { value : null , writeOnce : true , method : function ( E ) { this . appendTo ( E ) ; } } ) ; } , _handleSelect : function ( E ) { var D = A . getTarget ( E ) ; var F = D . options [ D . selectedIndex ] . value ; this . fireEvent ( "change" , { type : "change" , value : F } ) ; } , getMenu : function ( ) { return this . get ( "menu" ) ; } , destroy : function ( ) { A . purgeElement ( this . get ( "element" ) , true ) ; this . get ( "element" ) . parentNode . removeChild ( this . get ( "element" ) ) ; for ( var D in this ) { if ( C . hasOwnProperty ( this , D ) ) { this [ D ] = null ; } } } , fireEvent : function ( E , D ) { if ( this . DOM _EVENTS [ E ] && this . get ( "disabled" ) ) { A . stopEvent ( D ) ; return ; } YAHOO . widget . ToolbarButton . superclass . fireEvent . call ( this , E , D ) ; } , toString : function ( ) { return "ToolbarButton (" + this . get ( "id" ) + ")" ; } } ) ; } ) ( ) ; ( function ( ) { var C = YAHOO . util . Dom , A = YAHOO . util . Event , D = YAHOO . lang ; var B = function ( F ) { var E = F ; if ( D . isString ( F )
2019-07-17 20:08:50 +00:00
} , initAttributes : function ( E ) { YAHOO . widget . Toolbar . superclass . initAttributes . call ( this , E ) ; this . addClass ( this . CLASS _CONTAINER ) ; this . setAttributeConfig ( "buttonType" , { value : E . buttonType || "basic" , writeOnce : true , validator : function ( F ) { switch ( F ) { case "advanced" : case "basic" : return true ; } return false ; } , method : function ( F ) { if ( F == "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 ( G ) { for ( var F in G ) { if ( D . hasOwnProperty ( G , F ) ) { if ( G [ F ] . type == "separator" ) { this . addSeparator ( ) ; } else { if ( G [ F ] . group !== undefined ) { this . addButtonGroup ( G [ F ] ) ; } else { this . addButton ( G [ F ] ) ; } } } } } } ) ; this . setAttributeConfig ( "disabled" , { value : false , method : function ( F ) { if ( this . get ( "disabled" ) === F ) { return false ; } if ( F ) { 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 : E . cont , readOnly : true } ) ; this . setAttributeConfig ( "grouplabels" , { value : ( ( E . grouplabels === false ) ? false : true ) , method : function ( F ) { if ( F ) { C . removeClass ( this . get ( "cont" ) , ( this . CLASS _PREFIX + "-nogrouplabels" ) ) ; } else { C . addClass ( this . get ( "cont" ) , ( this . CLASS _PREFIX + "-nogrouplabels" ) ) ; } } } ) ; this . setAttributeConfig ( "titlebar" , { value : false , method : function ( G ) { if ( G ) { if ( this . _titlebar && this . _titlebar . parentNode ) { this . _titlebar . parentNode . removeChild ( this . _titlebar ) ; } this . _titlebar = document . createElement ( "DIV" ) ; this . _titlebar . tabIndex = "-1" ; A . on ( this . _titlebar , "focus" , function ( ) { this . _handleFocus ( ) ; } , this , true ) ; C . addClass ( this . _titlebar , this . CLASS _PREFIX + "-titlebar" ) ; if ( D . isString ( G ) ) { var F = document . createElement ( "h2" ) ; F . tabIndex = "-1" ; F . innerHTML = '<a href="#" tabIndex="0">' + G + "</a>" ; this . _titlebar . appendChild ( F ) ; A . on ( F . firstChild , "click" , function ( H ) { A . stopEvent ( H ) ; } ) ; A . on ( [ F , F . 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 ( H ) { if ( this . _titlebar ) { var G = null ; var F = C . getElementsByClassName ( "collapse" , "span" , this . _titlebar ) ; if ( H ) { if ( F . length > 0 ) { return true ; } G = document . createElement ( "SPAN" ) ; G . innerHTML = "X" ; G . title = this . STR _COLLAPSE ; C . addClass ( G , "collapse" ) ; this . _titlebar . appendChild ( G ) ; A . addListener ( G , "click" , function ( ) { if ( C . hasClass ( this . get ( "cont" ) . parentNode , "yui-toolbar-container-collapsed" ) ) { this . collapse ( false ) ; } else { this . collapse ( ) ; } } , this , true ) ; } else { G = C . getElementsByClassName ( "collapse" , "span" , this . _titlebar ) ; if ( G [ 0 ] ) { if ( C . hasClass ( this . get ( "cont" ) . parentNode , "yui-toolbar-container-collapsed" ) ) { this . collapse ( false ) ; } G [ 0 ] . parentNode . removeChild ( G [ 0 ] ) ; } } } } } ) ; this . setAttributeConfig ( "draggable" , { value : ( E . draggable || false ) , method : function ( F ) { if ( F && ! 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" ; C . 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 ( F ) { this . dd = new YAHOO . util . DD ( this . get ( "id" ) ) ; this . dd . setHandleElId ( this . _titlebar ) ; C . addClass ( this . _titlebar , "draggable" ) ; } else { C . removeClass ( this . _titlebar , "draggable" ) ; if ( this . dd ) { this . dd . unreg ( ) ; this . d
} if ( Q . type == "color" ) { if ( YAHOO . widget . Overlay ) { Q = this . _makeColorButton ( Q ) ; } else { N = true ; } } if ( Q . menu ) { if ( ( YAHOO . widget . Overlay ) && ( J . menu instanceof YAHOO . widget . Overlay ) ) { J . menu . showEvent . subscribe ( function ( ) { this . _button = Q ; } ) ; } else { for ( var O = 0 ; O < Q . menu . length ; O ++ ) { if ( ! Q . menu [ O ] . value ) { Q . menu [ O ] . value = Q . menu [ O ] . text ; } } if ( this . browser . webkit ) { Q . focusmenu = false ; } } } if ( N ) { J = false ; } else { this . _configs . buttons . value [ this . _configs . buttons . value . length ] = J ; var T = new this . buttonType ( Q ) ; T . get ( "element" ) . tabIndex = "-1" ; T . get ( "element" ) . setAttribute ( "role" , "button" ) ; T . _selected = true ; if ( this . get ( "disabled" ) ) { T . set ( "disabled" , true ) ; } if ( ! J . id ) { J . id = T . get ( "id" ) ; } if ( I ) { var F = T . get ( "element" ) ; var M = null ; if ( I . get ) { M = I . get ( "element" ) . nextSibling ; } else { if ( I . nextSibling ) { M = I . nextSibling ; } } if ( M ) { M . parentNode . insertBefore ( F , M ) ; } } T . addClass ( this . CLASS _PREFIX + "-" + T . get ( "value" ) ) ; var S = document . createElement ( "span" ) ; S . className = this . CLASS _PREFIX + "-icon" ; T . get ( "element" ) . insertBefore ( S , T . get ( "firstChild" ) ) ; if ( T . _button . tagName . toLowerCase ( ) == "button" ) { T . get ( "element" ) . setAttribute ( "unselectable" , "on" ) ; var U = document . createElement ( "a" ) ; U . innerHTML = T . _button . innerHTML ; U . href = "#" ; U . tabIndex = "-1" ; A . on ( U , "click" , function ( W ) { A . stopEvent ( W ) ; } ) ; T . _button . parentNode . replaceChild ( U , T . _button ) ; T . _button = U ; } if ( J . type == "select" ) { if ( T . _button . tagName . toLowerCase ( ) == "select" ) { S . parentNode . removeChild ( S ) ; var G = T . _button ; var R = T . get ( "element" ) ; R . parentNode . replaceChild ( G , R ) ; } else { T . addClass ( this . CLASS _PREFIX + "-select" ) ; } } if ( J . type == "spin" ) { if ( ! D . isArray ( J . range ) ) { J . range = [ 10 , 100 ] ; } this . _makeSpinButton ( T , J ) ; } T . get ( "element" ) . setAttribute ( "title" , T . get ( "label" ) ) ; if ( J . type != "spin" ) { if ( ( YAHOO . widget . Overlay ) && ( Q . menu instanceof YAHOO . widget . Overlay ) ) { var H = function ( Y ) { var W = true ; if ( Y . keyCode && ( Y . keyCode == 9 ) ) { W = false ; } if ( W ) { if ( this . _colorPicker ) { this . _colorPicker . _button = J . value ; } var X = T . getMenu ( ) . element ; if ( C . getStyle ( X , "visibility" ) == "hidden" ) { T . getMenu ( ) . show ( ) ; } else { T . getMenu ( ) . hide ( ) ; } } YAHOO . util . Event . stopEvent ( Y ) ; } ; T . on ( "mousedown" , H , J , this ) ; T . on ( "keydown" , H , J , this ) ; } else { if ( ( J . type != "menu" ) && ( J . type != "select" ) ) { T . on ( "keypress" , this . _buttonClick , J , this ) ; T . on ( "mousedown" , function ( W ) { YAHOO . util . Event . stopEvent ( W ) ; this . _buttonClick ( W , J ) ; } , J , this ) ; T . on ( "click" , function ( W ) { YAHOO . util . Event . stopEvent ( W ) ; } ) ; } else { T . on ( "mousedown" , function ( W ) { YAHOO . util . Event . stopEvent ( W ) ; } ) ; T . on ( "click" , function ( W ) { YAHOO . util . Event . stopEvent ( W ) ; } ) ; T . on ( "change" , function ( W ) { if ( ! J . menucmd ) { J . menucmd = J . value ; } J . value = W . value ; this . _buttonClick ( W , J ) ; } , this , true ) ; var K = this ; T . on ( "appendTo" , function ( ) { var W = this ; if ( W . getMenu ( ) && W . getMenu ( ) . mouseDownEvent ) { W . getMenu ( ) . mouseDownEvent . subscribe ( function ( Z , Y ) { var X = Y [ 1 ] ; YAHOO . util . Event . stopEvent ( Y [ 0 ] ) ; W . _onMenuClick ( Y [ 0 ] , W ) ; if ( ! J . menucmd ) { J . menucmd = J . value ; } J . value = ( ( X . value ) ? X . value : X . _oText . nodeValue ) ; K . _buttonClick . call ( K , Y [ 1 ] , J ) ; W . _hideMenu ( ) ; return false ; } ) ; W . getMenu ( ) . clickEvent . subscribe ( function ( Y , X ) { YAHOO . util . Event . stopEvent ( X [ 0 ] ) ; } ) ; W . getMenu ( ) . mouseUpEvent . subscribe ( function ( Y , X ) { YAHOO . util . Event . stopEvent ( X [ 0 ] ) ; } ) ; } } ) ; } } } else { T . on ( "mousedown" , function ( W ) { YAHOO . util . Event . stopEvent ( W ) ; } ) ; T . on ( "click" , function ( W ) { YAHOO . util . Event . stopEvent ( W ) ; } ) ; } if ( this . browser . ie ) { } if ( this . browser . webkit ) { T . hasFocus = function ( ) { return true ; } ; } this . _buttonList [ this . _buttonList . length ] = T ; if ( ( J . type == "menu" ) || ( J . type == "split" ) || ( J . type == "select" ) ) { if ( D . isArray ( J . menu ) ) { var E = T . getMenu ( ) ; if ( E && E . renderEvent ) { E . renderEvent . subscribe ( this . _addMenuClasses , T ) ; if ( J . renderer ) { E . renderEvent . subscribe ( J . renderer , T ) ; } } } } } return J ; } , addSeparator : function ( E , H ) { if ( ! this . get ( "element" ) ) { this . _queue [ this . _queue . length ] = [ "addSeparator" , arguments ] ; return false ; } var F = ( ( E ) ? E : 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" ) ; C . addClass ( this . _sep , this . CLASS _SEPARATOR ) ; this . _sep . innerHTML = "|" ; } var G = this . _sep . cloneNode ( true ) ; this . _sepCount ++ ; C . addClass ( G , this . CLASS _SEPARATOR + "-" + this . _sepCount ) ; if ( H ) { var I = null ; if ( H .
E . innerHTML = "" ; } , _makeColorButton : function ( E ) { if ( ! this . _colorPicker ) { this . _createColorPicker ( this . get ( "id" ) ) ; } E . type = "color" ; E . menu = new YAHOO . widget . Overlay ( this . get ( "id" ) + "_" + E . value + "_menu" , { visible : false , position : "absolute" , iframe : true } ) ; E . menu . setBody ( "" ) ; E . menu . render ( this . get ( "cont" ) ) ; C . addClass ( E . menu . element , "yui-button-menu" ) ; C . addClass ( E . menu . element , "yui-color-button-menu" ) ; E . menu . beforeShowEvent . subscribe ( function ( ) { E . menu . cfg . setProperty ( "zindex" , 5 ) ; E . menu . cfg . setProperty ( "context" , [ this . getButtonById ( E . id ) . get ( "element" ) , "tl" , "bl" ] ) ; this . _resetColorPicker ( ) ; var F = this . _colorPicker ; if ( F . parentNode ) { F . parentNode . removeChild ( F ) ; } E . menu . setBody ( "" ) ; E . menu . appendToBody ( F ) ; this . _colorPicker . style . display = "block" ; } , this , true ) ; return E ; } , _makeSpinButton : function ( R , L ) { R . addClass ( this . CLASS _PREFIX + "-spinbutton" ) ; var S = this , N = R . _button . parentNode . parentNode , I = L . range , H = document . createElement ( "a" ) , G = document . createElement ( "a" ) ; H . href = "#" ; G . href = "#" ; H . tabIndex = "-1" ; G . tabIndex = "-1" ; H . className = "up" ; H . title = this . STR _SPIN _UP ; H . innerHTML = this . STR _SPIN _UP ; G . className = "down" ; G . title = this . STR _SPIN _DOWN ; G . innerHTML = this . STR _SPIN _DOWN ; N . appendChild ( H ) ; N . appendChild ( G ) ; var M = YAHOO . lang . substitute ( this . STR _SPIN _LABEL , { VALUE : R . get ( "label" ) } ) ; R . set ( "title" , M ) ; var Q = function ( T ) { T = ( ( T < I [ 0 ] ) ? I [ 0 ] : T ) ; T = ( ( T > I [ 1 ] ) ? I [ 1 ] : T ) ; return T ; } ; var P = this . browser ; var F = false ; var K = this . STR _SPIN _LABEL ; if ( this . _titlebar && this . _titlebar . firstChild ) { F = this . _titlebar . firstChild ; } var E = function ( U ) { YAHOO . util . Event . stopEvent ( U ) ; if ( ! R . get ( "disabled" ) && ( U . keyCode != 9 ) ) { var V = parseInt ( R . get ( "label" ) , 10 ) ; V ++ ; V = Q ( V ) ; R . set ( "label" , "" + V ) ; var T = YAHOO . lang . substitute ( K , { VALUE : R . get ( "label" ) } ) ; R . set ( "title" , T ) ; if ( ! P . webkit && F ) { } S . _buttonClick ( U , L ) ; } } ; var O = function ( U ) { YAHOO . util . Event . stopEvent ( U ) ; if ( ! R . get ( "disabled" ) && ( U . keyCode != 9 ) ) { var V = parseInt ( R . get ( "label" ) , 10 ) ; V -- ; V = Q ( V ) ; R . set ( "label" , "" + V ) ; var T = YAHOO . lang . substitute ( K , { VALUE : R . get ( "label" ) } ) ; R . set ( "title" , T ) ; if ( ! P . webkit && F ) { } S . _buttonClick ( U , L ) ; } } ; var J = function ( T ) { if ( T . keyCode == 38 ) { E ( T ) ; } else { if ( T . keyCode == 40 ) { O ( T ) ; } else { if ( T . keyCode == 107 && T . shiftKey ) { E ( T ) ; } else { if ( T . keyCode == 109 && T . shiftKey ) { O ( T ) ; } } } } } ; R . on ( "keydown" , J , this , true ) ; A . on ( H , "mousedown" , function ( T ) { A . stopEvent ( T ) ; } , this , true ) ; A . on ( G , "mousedown" , function ( T ) { A . stopEvent ( T ) ; } , this , true ) ; A . on ( H , "click" , E , this , true ) ; A . on ( G , "click" , O , this , true ) ; } , _buttonClick : function ( L , F ) { var E = true ; if ( L && L . type == "keypress" ) { if ( L . keyCode == 9 ) { E = false ; } else { if ( ( L . keyCode === 13 ) || ( L . keyCode === 0 ) || ( L . keyCode === 32 ) ) { } else { E = false ; } } } if ( E ) { var N = true , H = false ; F . isSelected = this . isSelected ( F . id ) ; if ( F . value ) { H = this . fireEvent ( F . value + "Click" , { type : F . value + "Click" , target : this . get ( "element" ) , button : F } ) ; if ( H === false ) { N = false ; } } if ( F . menucmd && N ) { H = this . fireEvent ( F . menucmd + "Click" , { type : F . menucmd + "Click" , target : this . get ( "element" ) , button : F } ) ; if ( H === false ) { N = false ; } } if ( N ) { this . fireEvent ( "buttonClick" , { type : "buttonClick" , target : this . get ( "element" ) , button : F } ) ; } if ( F . type == "select" ) { var K = this . getButtonById ( F . id ) ; if ( K . buttonType == "rich" ) { var J = F . value ; for ( var I = 0 ; I < F . menu . length ; I ++ ) { if ( F . menu [ I ] . value == F . value ) { J = F . menu [ I ] . text ; break ; } } K . set ( "label" , '<span class="yui-toolbar-' + F . menucmd + "-" + ( F . value ) . replace ( / /g , "-" ) . toLowerCase ( ) + '">' + J + "</span>" ) ; var M = K . getMenu ( ) . getItems ( ) ; for ( var G = 0 ; G < M . length ; G ++ ) { if ( M [ G ] . value . toLowerCase ( ) == F . value . toLowerCase ( ) ) { M [ G ] . cfg . setProperty ( "checked" , true ) ; } else { M [ G ] . cfg . setProperty ( "checked" , false ) ; } } } } if ( L ) { A . stopEvent ( L ) ; } } } , _keyNav : null , _navCounter : null , _navigateButtons : function ( F ) { switch ( F . keyCode ) { case 37 : case 39 : if ( F . 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 E = this . _buttonList [ this . _navCounter ] . get ( "element" ) ; if ( this . browser . ie ) { E = this . _buttonList [ this . _navCounter ] . get ( "element" ) . getElementsByTagName ( "a" ) [ 0 ] ; } if ( this . _buttonList [ this . _navCounter ] . get ( "disabled" ) ) { this . _navigateButtons ( F ) ; } else { E . focus ( ) ; } } break ; } } , _handleFocus : function ( ) { if ( ! this . _
2019-07-17 20:16:19 +00:00
} } } } } else { return false ; } } , deselectButton : function ( F ) { var E = B . call ( this , F ) ; if ( E ) { E . removeClass ( "yui-button-selected" ) ; E . removeClass ( "yui-button-" + E . get ( "value" ) + "-selected" ) ; E . removeClass ( "yui-button-hover" ) ; E . _selected = false ; } else { return false ; } } , deselectAllButtons : function ( ) { var E = this . _buttonList . length ; for ( var F = 0 ; F < E ; F ++ ) { this . deselectButton ( this . _buttonList [ F ] ) ; } } , disableAllButtons : function ( ) { if ( this . get ( "disabled" ) ) { return false ; } var E = this . _buttonList . length ; for ( var F = 0 ; F < E ; F ++ ) { this . disableButton ( this . _buttonList [ F ] ) ; } } , enableAllButtons : function ( ) { if ( this . get ( "disabled" ) ) { return false ; } var E = this . _buttonList . length ; for ( var F = 0 ; F < E ; F ++ ) { this . enableButton ( this . _buttonList [ F ] ) ; } } , resetAllButtons : function ( I ) { if ( ! D . isObject ( I ) ) { I = { } ; } if ( this . get ( "disabled" ) ) { return false ; } var E = this . _buttonList . length ; for ( var F = 0 ; F < E ; F ++ ) { var H = this . _buttonList [ F ] ; if ( H ) { var G = H . _configs . disabled . _initialConfig . value ; if ( I [ H . get ( "id" ) ] ) { this . enableButton ( H ) ; this . selectButton ( H ) ; } else { if ( G ) { this . disableButton ( H ) ; } else { this . enableButton ( H ) ; } this . deselectButton ( H ) ; } } } } , destroyButton : function ( I ) { var G = B . call ( this , I ) ; if ( G ) { var H = G . get ( "id" ) ; G . destroy ( ) ; var E = this . _buttonList . length ; for ( var F = 0 ; F < E ; F ++ ) { if ( this . _buttonList [ F ] && this . _buttonList [ F ] . get ( "id" ) == H ) { this . _buttonList [ F ] = null ; } } } else { return false ; } } , destroy : function ( ) { this . get ( "element" ) . innerHTML = "" ; this . get ( "element" ) . className = "" ; for ( var E in this ) { if ( D . hasOwnProperty ( this , E ) ) { this [ E ] = null ; } } return true ; } , collapse : function ( F ) { var E = C . getElementsByClassName ( "collapse" , "span" , this . _titlebar ) ; if ( F === false ) { C . removeClass ( this . get ( "cont" ) . parentNode , "yui-toolbar-container-collapsed" ) ; if ( E [ 0 ] ) { C . removeClass ( E [ 0 ] , "collapsed" ) ; } this . fireEvent ( "toolbarExpanded" , { type : "toolbarExpanded" , target : this } ) ; } else { if ( E [ 0 ] ) { C . addClass ( E [ 0 ] , "collapsed" ) ; } C . 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 C = YAHOO . util . Dom , A = YAHOO . util . Event , D = YAHOO . lang , B = YAHOO . widget . Toolbar ; YAHOO . widget . SimpleEditor = function ( H , M ) { var G = { } ; if ( D . isObject ( H ) && ( ! H . tagName ) && ! M ) { D . augmentObject ( G , H ) ; H = document . createElement ( "textarea" ) ; this . DOMReady = true ; if ( G . container ) { var K = C . get ( G . container ) ; K . appendChild ( H ) ; } else { document . body . appendChild ( H ) ; } } else { if ( M ) { D . augmentObject ( G , M ) ; } } var I = { element : null , attributes : G } , F = null ; if ( D . isString ( H ) ) { F = H ; } else { if ( I . attributes . id ) { F = I . attributes . id ; } else { this . DOMReady = true ; F = C . generateId ( H ) ; } } I . element = H ; var J = document . createElement ( "DIV" ) ; I . attributes . element _cont = new YAHOO . util . Element ( J , { id : F + "_container" } ) ; var E = document . createElement ( "div" ) ; C . addClass ( E , "first-child" ) ; I . attributes . element _cont . appendChild ( E ) ; if ( ! I . attributes . toolbar _cont ) { I . attributes . toolbar _cont = document . createElement ( "DIV" ) ; I . attributes . toolbar _cont . id = F + "_toolbar" ; E . appendChild ( I . attributes . toolbar _cont ) ; } var L = document . createElement ( "DIV" ) ; E . appendChild ( L ) ; I . attributes . editor _wrapper = L ; YAHOO . widget . SimpleEditor . superclass . constructor . call ( this , I . element , I . 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 E = { } ; D . augmentObject ( E , this . _resizeConfig ) ; this . resize = new YAHOO . util . Resize ( this . get ( "element_cont" ) . get ( "element" ) , E ) ; this . resize . on ( "resize" , function ( G ) { var K = this . get ( "animate" ) ; this . set ( "animate" , false ) ; this . set ( "width" , G . width + "px" ) ; var H = G . height , I = ( this . toolbar . get ( "element" ) . clientHeight + 2 ) , J = 0 ; if ( this . dompath ) { J = ( this . dompath . clientHeight + 1 ) ; } var F = ( H - I - J ) ; this . set ( "height" , F + "px" ) ; this . get ( "element_cont" ) . setStyle ( "height" , "" ) ; this . set ( "animate" , K ) ; } , this , true ) ; } } , resize : null , _setupDD : function ( ) { if ( ! YAHOO . util . DD ) { return false ; } if ( this . get ( "drag" ) ) { var F = this . get ( "drag" ) , E = YAHOO . util . DD ; if ( F === "proxy" ) { E = YAHOO . util . DDProxy ; } this . dd = new E ( this . get ( " el
if ( E . indexOf ( "?" ) !== - 1 ) { E = E . substring ( 0 , E . indexOf ( "?" ) ) ; } E = E . substring ( 0 , E . lastIndexOf ( "/" ) ) + "/" ; return E ; } ( ) , _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 I = document . createElement ( "iframe" ) ; I . id = this . get ( "id" ) + "_editor" ; var G = { border : "0" , frameBorder : "0" , marginWidth : "0" , marginHeight : "0" , leftMargin : "0" , topMargin : "0" , allowTransparency : "true" , width : "100%" } ; if ( this . get ( "autoHeight" ) ) { G . scrolling = "no" ; } for ( var H in G ) { if ( D . hasOwnProperty ( G , H ) ) { I . setAttribute ( H , G [ H ] ) ; } } var F = "javascript:;" ; if ( this . browser . ie ) { F = "javascript:false;" ; } I . setAttribute ( "src" , F ) ; var E = new YAHOO . util . Element ( I ) ; E . setStyle ( "visibility" , "hidden" ) ; return E ; } , _isElement : function ( F , E ) { if ( F && F . tagName && ( F . tagName . toLowerCase ( ) == E ) ) { return true ; } if ( F && F . getAttribute && ( F . getAttribute ( "tag" ) == E ) ) { return true ; } return false ; } , _hasParent : function ( F , E ) { if ( ! F || ! F . parentNode ) { return false ; } while ( F . parentNode ) { if ( this . _isElement ( F , E ) ) { return F ; } if ( F . parentNode ) { F = F . parentNode ; } else { return false ; } } return false ; } , _getDoc : function ( ) { var E = 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 ) { E = this . get ( "iframe" ) . get ( "element" ) . contentWindow . document ; return E ; } } } catch ( F ) { } } } } } return false ; } , _getWindow : function ( ) { return this . get ( "iframe" ) . get ( "element" ) . contentWindow ; } , focus : function ( ) { this . _getWindow ( ) . focus ( ) ; } , _focusWindow : function ( ) { this . focus ( ) ; } , _hasSelection : function ( ) { var G = this . _getSelection ( ) ; var E = this . _getRange ( ) ; var F = false ; if ( ! G || ! E ) { return F ; } if ( this . browser . ie || this . browser . opera ) { if ( E . text ) { F = true ; } if ( E . html ) { F = true ; } } else { if ( this . browser . webkit ) { if ( G + "" !== "" ) { F = true ; } } else { if ( G && ( G . toString ( ) !== "" ) && ( G !== undefined ) ) { F = true ; } } } return F ; } , _getSelection : function ( ) { var E = null ; if ( this . _getDoc ( ) && this . _getWindow ( ) ) { if ( this . _getDoc ( ) . selection ) { E = this . _getDoc ( ) . selection ; } else { E = this . _getWindow ( ) . getSelection ( ) ; } if ( this . browser . webkit ) { if ( E . baseNode ) { this . _selection = { } ; this . _selection . baseNode = E . baseNode ; this . _selection . baseOffset = E . baseOffset ; this . _selection . extentNode = E . extentNode ; this . _selection . extentOffset = E . extentOffset ; } else { if ( this . _selection !== null ) { E = this . _getWindow ( ) . getSelection ( ) ; E . setBaseAndExtent ( this . _selection . baseNode , this . _selection . baseOffset , this . _selection . extentNode , this . _selection . extentOffset ) ; this . _selection = null ; } } } } return E ; } , _selectNode : function ( F , I ) { if ( ! F ) { return false ; } var G = this . _getSelection ( ) , E = null ; if ( this . browser . ie ) { try { E = this . _getDoc ( ) . body . createTextRange ( ) ; E . moveToElementText ( F ) ; E . select ( ) ; } catch ( H ) { } } else { if ( this . browser . webkit ) { if ( I ) { G . setBaseAndExtent ( F , 1 , F , F . innerText . length ) ; } else { G . setBaseAndExtent ( F , 0 , F , F . innerText . length ) ; } } else { if ( this . browser . opera ) { G = this . _getWindow ( ) . getSelection ( ) ; E = this . _getDoc ( ) . createRange ( ) ; E . selectNode ( F ) ; G . removeAllRanges ( ) ; G . addRange ( E ) ; } else { E = this . _getDoc ( ) . createRange ( ) ; E . selectNodeContents ( F ) ; G . removeAllRanges ( ) ; G . addRange ( E ) ; } } } this . nodeChange ( ) ; } , _getRange : function ( ) { var E = this . _getSelection ( ) ; if ( E === null ) { return null ; } if ( this . browser . webkit && ! E . getRangeAt ) { var H = this . _getDoc ( ) . createRange ( ) ; try { H . setStart ( E . anchor
} , _fixWebkitDivs : function ( ) { if ( this . browser . webkit ) { var E = this . _getDoc ( ) . body . getElementsByTagName ( "div" ) ; C . addClass ( E , "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 E = this ; setTimeout ( function ( ) { E . _writeDomPath . call ( E ) ; E . _setupResize . call ( E ) ; } , 150 ) ; } var G = [ ] ; for ( var F in this . browser ) { if ( this . browser [ F ] ) { G . push ( F ) ; } } if ( this . get ( "ptags" ) ) { G . push ( "ptags" ) ; } C . addClass ( this . _getDoc ( ) . body , G . join ( " " ) ) ; this . nodeChange ( true ) ; } , _checkLoaded : function ( ) { this . _contentTimerCounter ++ ; if ( this . _contentTimer ) { clearTimeout ( this . _contentTimer ) ; } if ( this . _contentTimerCounter > 500 ) { return false ; } var G = false ; try { if ( this . _getDoc ( ) && this . _getDoc ( ) . body ) { if ( this . browser . ie ) { if ( this . _getDoc ( ) . body . readyState == "complete" ) { G = true ; } } else { if ( this . _getDoc ( ) . body . _rteLoaded === true ) { G = true ; } } } } catch ( F ) { G = false ; } if ( G === true ) { this . _initEditor ( ) ; } else { var E = this ; this . _contentTimer = setTimeout ( function ( ) { E . _checkLoaded . call ( E ) ; } , 20 ) ; } } , _setInitialContent : function ( ) { var H = ( ( this . _textarea ) ? this . get ( "element" ) . value : this . get ( "element" ) . innerHTML ) , J = null ; if ( ( H === "" ) && this . browser . gecko ) { H = "<br>" ; } var F = D . substitute ( this . get ( "html" ) , { TITLE : this . STR _TITLE , CONTENT : this . _cleanIncomingHTML ( H ) , 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 */" ) } ) , E = true ; if ( document . compatMode != "BackCompat" ) { F = this . _docType + "\n" + F ; } else { } if ( this . browser . ie || this . browser . webkit || this . browser . opera || ( navigator . userAgent . indexOf ( "Firefox/1.5" ) != - 1 ) ) { try { if ( this . browser . air ) { J = this . _getDoc ( ) . implementation . createHTMLDocument ( ) ; var K = this . _getDoc ( ) ; K . open ( ) ; K . close ( ) ; J . open ( ) ; J . write ( F ) ; J . close ( ) ; var G = K . importNode ( J . getElementsByTagName ( "html" ) [ 0 ] , true ) ; K . replaceChild ( G , K . getElementsByTagName ( "html" ) [ 0 ] ) ; K . body . _rteLoaded = true ; } else { J = this . _getDoc ( ) ; J . open ( ) ; J . write ( F ) ; J . close ( ) ; } } catch ( I ) { E = false ; } } else { this . get ( "iframe" ) . get ( "element" ) . src = "data:text/html;charset=utf-8," + encodeURIComponent ( F ) ; } this . get ( "iframe" ) . setStyle ( "visibility" , "" ) ; if ( E ) { this . _checkLoaded ( ) ; } } , _setMarkupType : function ( E ) { switch ( this . get ( "markup" ) ) { case "css" : this . _setEditorStyle ( true ) ; break ; case "default" : this . _setEditorStyle ( false ) ; break ; case "semantic" : case "xhtml" : if ( this . _semantic [ E ] ) { this . _setEditorStyle ( false ) ; } else { this . _setEditorStyle ( true ) ; } break ; } } , _setEditorStyle : function ( F ) { try { this . _getDoc ( ) . execCommand ( "useCSS" , false , ! F ) ; } catch ( E ) { } } , _getSelectedElement : function ( ) { var J = this . _getDoc ( ) , G = null , H = null , K = null , F = true ; if ( this . browser . ie ) { this . currentEvent = this . _getWindow ( ) . event ; G = this . _getRange ( ) ; if ( G ) { K = G . item ? G . item ( 0 ) : G . parentElement ( ) ; if ( this . _hasSelection ( ) ) { } if ( K === J . body ) { K = null ; } } if ( ( this . currentEvent !== null ) && ( this . currentEvent . keyCode === 0 ) ) { K = A . getTarget ( this . currentEvent ) ; } } else { H = this . _getSelection ( ) ; G = this . _getRange ( ) ; if ( ! H || ! G ) { return null ; } if ( ! this . _hasSelection ( ) && this . browser . webkit3 ) { } if ( this . browser . gecko ) { if ( G . startContainer ) { if ( G . startContainer . nodeType === 3 ) { K = G . startContainer . parentNode ; } else { if ( G . startContainer . nodeType === 1 ) { K = G . startContainer ; } } if ( this . currentEvent ) { var E = A . getTarget ( this . currentEvent ) ; if ( ! this . _isElement ( E , "html" ) ) { if ( K !== E ) { K = E ; } } } } } if ( F ) { if ( H . anchorNode && ( H . anchorNode . nodeType == 3 ) ) { if ( H . anchorNode . parentNode ) { K = H . anchorNode . parentNode ; } if ( H . anchorNode . nextSibling != H . focusNode . nextSibling ) { K = H . anchorNode . nextSibling ; } } if ( this . _isElement ( K , "br" ) ) { K = null ; } if ( ! K ) { K = G . commonAncestorContainer ; if ( ! G . collapsed ) { if ( G . startContainer == G . endContainer ) { if ( G . startOffset - G . endOffset < 2 ) { if ( G . startContainer . hasChildNodes ( ) ) {
} L += "(" + J + "x" + F + ")" ; break ; } if ( L . length > 10 ) { L = '<span title="' + L + '">' + L . substring ( 0 , 10 ) + "..." + "</span>" ; } else { L = '<span title="' + L + '">' + L + "</span>" ; } I [ I . length ] = L ; } } var H = I . join ( " " + this . SEP _DOMPATH + " " ) ; if ( this . dompath . innerHTML != H ) { this . dompath . innerHTML = H ; } } , _fixNodes : function ( ) { var J = this . _getDoc ( ) , H = [ ] ; for ( var E in this . invalidHTML ) { if ( YAHOO . lang . hasOwnProperty ( this . invalidHTML , E ) ) { if ( E . toLowerCase ( ) != "span" ) { var F = J . body . getElementsByTagName ( E ) ; if ( F . length ) { for ( var G = 0 ; G < F . length ; G ++ ) { H . push ( F [ G ] ) ; } } } } } for ( var I = 0 ; I < H . length ; I ++ ) { if ( H [ I ] . parentNode ) { if ( D . isObject ( this . invalidHTML [ H [ I ] . tagName . toLowerCase ( ) ] ) && this . invalidHTML [ H [ I ] . tagName . toLowerCase ( ) ] . keepContents ) { this . _swapEl ( H [ I ] , "span" , function ( L ) { L . className = "yui-non" ; } ) ; } else { H [ I ] . parentNode . removeChild ( H [ I ] ) ; } } } var K = this . _getDoc ( ) . getElementsByTagName ( "img" ) ; C . addClass ( K , "yui-img" ) ; } , _isNonEditable : function ( G ) { if ( this . get ( "allowNoEdit" ) ) { var F = A . getTarget ( G ) ; if ( this . _isElement ( F , "html" ) ) { F = null ; } var J = this . _getDomPath ( F ) ; for ( var E = ( J . length - 1 ) ; E > - 1 ; E -- ) { if ( C . hasClass ( J [ E ] , this . CLASS _NOEDIT ) ) { try { this . _getDoc ( ) . execCommand ( "enableObjectResizing" , false , "false" ) ; } catch ( I ) { } this . nodeChange ( ) ; A . stopEvent ( G ) ; return true ; } } try { this . _getDoc ( ) . execCommand ( "enableObjectResizing" , false , "true" ) ; } catch ( H ) { } } return false ; } , _setCurrentEvent : function ( E ) { this . currentEvent = E ; } , _handleClick : function ( G ) { var F = this . fireEvent ( "beforeEditorClick" , { type : "beforeEditorClick" , target : this , ev : G } ) ; if ( F === false ) { return false ; } if ( this . _isNonEditable ( G ) ) { return false ; } this . _setCurrentEvent ( G ) ; if ( this . currentWindow ) { this . closeWindow ( ) ; } if ( this . currentWindow ) { this . closeWindow ( ) ; } if ( this . browser . webkit ) { var E = A . getTarget ( G ) ; if ( this . _isElement ( E , "a" ) || this . _isElement ( E . parentNode , "a" ) ) { A . stopEvent ( G ) ; this . nodeChange ( ) ; } } else { this . nodeChange ( ) ; } this . fireEvent ( "editorClick" , { type : "editorClick" , target : this , ev : G } ) ; } , _handleMouseUp : function ( G ) { var F = this . fireEvent ( "beforeEditorMouseUp" , { type : "beforeEditorMouseUp" , target : this , ev : G } ) ; if ( F === false ) { return false ; } if ( this . _isNonEditable ( G ) ) { return false ; } var E = this ; if ( this . browser . opera ) { var H = A . getTarget ( G ) ; if ( this . _isElement ( H , "img" ) ) { this . nodeChange ( ) ; if ( this . operaEvent ) { clearTimeout ( this . operaEvent ) ; this . operaEvent = null ; this . _handleDoubleClick ( G ) ; } else { this . operaEvent = window . setTimeout ( function ( ) { E . operaEvent = false ; } , 700 ) ; } } } if ( this . browser . webkit || this . browser . opera ) { if ( this . browser . webkit ) { A . stopEvent ( G ) ; } } this . nodeChange ( ) ; this . fireEvent ( "editorMouseUp" , { type : "editorMouseUp" , target : this , ev : G } ) ; } , _handleMouseDown : function ( F ) { var E = this . fireEvent ( "beforeEditorMouseDown" , { type : "beforeEditorMouseDown" , target : this , ev : F } ) ; if ( E === false ) { return false ; } if ( this . _isNonEditable ( F ) ) { return false ; } this . _setCurrentEvent ( F ) ; var G = A . getTarget ( F ) ; if ( this . browser . webkit && this . _hasSelection ( ) ) { var H = this . _getSelection ( ) ; if ( ! this . browser . webkit3 ) { H . collapse ( true ) ; } else { H . collapseToStart ( ) ; } } if ( this . browser . webkit && this . _lastImage ) { C . removeClass ( this . _lastImage , "selected" ) ; this . _lastImage = null ; } if ( this . _isElement ( G , "img" ) || this . _isElement ( G , "a" ) ) { if ( this . browser . webkit ) { A . stopEvent ( F ) ; if ( this . _isElement ( G , "img" ) ) { C . addClass ( G , "selected" ) ; this . _lastImage = G ; } } if ( this . currentWindow ) { this . closeWindow ( ) ; } this . nodeChange ( ) ; } this . fireEvent ( "editorMouseDown" , { type : "editorMouseDown" , target : this , ev : F } ) ; } , _handleDoubleClick : function ( F ) { var E = this . fireEvent ( "beforeEditorDoubleClick" , { type : "beforeEditorDoubleClick" , target : this , ev : F } ) ; if ( E === false ) { return false ; } if ( this . _isNonEditable ( F ) ) { return false ; } this . _setCurrentEvent ( F ) ; var G = A . getTarget ( F ) ; if ( this . _isElement ( G , "img" ) ) { this . currentElement [ 0 ] = G ; this . toolbar . fireEvent ( "insertimageClick" , { type : "insertimageClick" , target : this . toolbar } ) ; this . fireEvent ( "afterExecCommand" , { type : "afterExecCommand" , target : this } ) ; } else { if ( this . _hasParent ( G , "a" ) ) { this . currentElement [ 0 ] = this . _hasParent ( G , "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 : t
} if ( this . currentWindow ) { this . closeWindow ( ) ; } var N = false , S = null , P = null , R = false ; switch ( X . keyCode ) { case this . _keyMap . FOCUS _TOOLBAR . key : if ( this . _checkKey ( this . _keyMap . FOCUS _TOOLBAR , X ) ) { var W = this . toolbar . getElementsByTagName ( "h2" ) [ 0 ] ; if ( W && W . firstChild ) { W . firstChild . focus ( ) ; } } else { if ( this . _checkKey ( this . _keyMap . FOCUS _AFTER , X ) ) { this . afterElement . focus ( ) ; } } A . stopEvent ( X ) ; N = false ; break ; case this . _keyMap . CREATE _LINK . key : if ( this . _hasSelection ( ) ) { if ( this . _checkKey ( this . _keyMap . CREATE _LINK , X ) ) { var F = true ; if ( this . get ( "limitCommands" ) ) { if ( ! this . toolbar . getButtonByValue ( "createlink" ) ) { F = false ; } } if ( F ) { this . execCommand ( "createlink" , "" ) ; this . toolbar . fireEvent ( "createlinkClick" , { type : "createlinkClick" , target : this . toolbar } ) ; this . fireEvent ( "afterExecCommand" , { type : "afterExecCommand" , target : this } ) ; N = false ; } } } break ; case this . _keyMap . UNDO . key : case this . _keyMap . REDO . key : if ( this . _checkKey ( this . _keyMap . REDO , X ) ) { S = "redo" ; N = true ; } else { if ( this . _checkKey ( this . _keyMap . UNDO , X ) ) { S = "undo" ; N = true ; } } break ; case this . _keyMap . BOLD . key : if ( this . _checkKey ( this . _keyMap . BOLD , X ) ) { S = "bold" ; N = true ; } break ; case this . _keyMap . FONT _SIZE _UP . key : case this . _keyMap . FONT _SIZE _DOWN . key : var K = false , T = false ; if ( this . _checkKey ( this . _keyMap . FONT _SIZE _UP , X ) ) { K = true ; } if ( this . _checkKey ( this . _keyMap . FONT _SIZE _DOWN , X ) ) { T = true ; } if ( K || T ) { var H = this . toolbar . getButtonByValue ( "fontsize" ) , G = parseInt ( H . get ( "label" ) , 10 ) , I = ( G + 1 ) ; if ( T ) { I = ( G - 1 ) ; } S = "fontsize" ; P = I + "px" ; N = true ; } break ; case this . _keyMap . ITALIC . key : if ( this . _checkKey ( this . _keyMap . ITALIC , X ) ) { S = "italic" ; N = true ; } break ; case this . _keyMap . UNDERLINE . key : if ( this . _checkKey ( this . _keyMap . UNDERLINE , X ) ) { S = "underline" ; N = true ; } break ; case 9 : if ( this . browser . ie ) { E = this . _getRange ( ) ; U = this . _getSelectedElement ( ) ; if ( ! this . _isElement ( U , "li" ) ) { if ( E ) { E . pasteHTML ( " " ) ; E . collapse ( false ) ; E . select ( ) ; } A . stopEvent ( X ) ; } } if ( this . browser . gecko > 1.8 ) { U = this . _getSelectedElement ( ) ; if ( this . _isElement ( U , "li" ) ) { if ( X . shiftKey ) { this . _getDoc ( ) . execCommand ( "outdent" , null , "" ) ; } else { this . _getDoc ( ) . execCommand ( "indent" , null , "" ) ; } } else { if ( ! this . _hasSelection ( ) ) { this . execCommand ( "inserthtml" , " " ) ; } } A . stopEvent ( X ) ; } break ; case 13 : var M = null , V = 0 ; if ( this . get ( "ptags" ) && ! X . shiftKey ) { if ( this . browser . gecko ) { U = this . _getSelectedElement ( ) ; if ( ! this . _hasParent ( U , "li" ) ) { if ( this . _hasParent ( U , "p" ) ) { M = this . _getDoc ( ) . createElement ( "p" ) ; M . innerHTML = " " ; C . insertAfter ( M , U ) ; this . _selectNode ( M . firstChild ) ; } else { if ( this . _isElement ( U , "body" ) ) { this . execCommand ( "insertparagraph" , null ) ; var O = this . _getDoc ( ) . body . getElementsByTagName ( "p" ) ; for ( V = 0 ; V < O . length ; V ++ ) { if ( O [ V ] . getAttribute ( "_moz_dirty" ) !== null ) { M = this . _getDoc ( ) . createElement ( "p" ) ; M . innerHTML = " " ; C . insertAfter ( M , O [ V ] ) ; this . _selectNode ( M . firstChild ) ; O [ V ] . removeAttribute ( "_moz_dirty" ) ; } } } else { N = true ; S = "insertparagraph" ; } } A . stopEvent ( X ) ; } } if ( this . browser . webkit ) { U = this . _getSelectedElement ( ) ; if ( ! this . _hasParent ( U , "li" ) ) { this . execCommand ( "insertparagraph" , null ) ; var Q = this . _getDoc ( ) . body . getElementsByTagName ( "div" ) ; for ( V = 0 ; V < Q . length ; V ++ ) { if ( ! C . hasClass ( Q [ V ] , "yui-wk-div" ) ) { C . addClass ( Q [ V ] , "yui-wk-p" ) ; } } A . stopEvent ( X ) ; } } } else { if ( this . browser . webkit ) { U = this . _getSelectedElement ( ) ; if ( ! this . _hasParent ( U , "li" ) ) { this . execCommand ( "inserthtml" , '<var id="yui-br"></var>' ) ; var L = this . _getDoc ( ) . getElementById ( "yui-br" ) , Y = this . _getDoc ( ) . createElement ( "br" ) , J = this . _getDoc ( ) . createElement ( "span" ) ; L . parentNode . replaceChild ( Y , L ) ; J . className = "yui-non" ; J . innerHTML = " " ; C . insertAfter ( J , Y ) ; this . _selectNode ( J ) ; A . stopEvent ( X ) ; } } if ( this . browser . ie ) { E = this . _getRange ( ) ; U = this . _getSelectedElement ( ) ; if ( ! this . _isElement ( U , "li" ) ) { if ( E ) { E . pasteHTML ( "<br>" ) ; E . collapse ( false ) ; E . select ( ) ; } A . stopEvent ( X ) ; } } } break ; } if ( this . browser . ie ) { this . _listFix ( X ) ; } if ( N && S ) { this . execCommand ( S , P ) ; A . stopEvent ( X ) ; this . nodeChange ( ) ; } this . fireEvent ( "editorKeyDown" , { type : "editorKeyDown" , target : this , ev : X } ) ; } , _listFix : function ( K ) { var M = null , I = null , E = false , G = null ; if ( this . browser . webkit ) { if ( K . keyCode && ( K . keyCode == 13 ) ) { if ( this . _hasParent ( this . _getSelectedElement ( ) , "li" ) ) { var H = this . _hasParent ( this . _getSelectedElement ( ) , "li" ) ; if ( H . previousSibling ) { if ( H . firstChild &&
} } , nodeChange : function ( E ) { var F = this ; this . _storeUndo ( ) ; if ( this . get ( "nodeChangeDelay" ) ) { window . setTimeout ( function ( ) { F . _nodeChange . apply ( F , arguments ) ; } , 0 ) ; } else { this . _nodeChange ( ) ; } } , _nodeChange : function ( F ) { var H = parseInt ( this . get ( "nodeChangeThreshold" ) , 10 ) , O = Math . round ( new Date ( ) . getTime ( ) / 1000 ) , R = this ; if ( F === true ) { this . _lastNodeChange = 0 ; } if ( ( this . _lastNodeChange + H ) < O ) { if ( this . _fixNodesTimer === null ) { this . _fixNodesTimer = window . setTimeout ( function ( ) { R . _fixNodes . call ( R ) ; R . _fixNodesTimer = null ; } , 0 ) ; } } this . _lastNodeChange = O ; if ( this . currentEvent ) { try { this . _lastNodeChangeEvent = this . currentEvent . type ; } catch ( a ) { } } var Z = this . fireEvent ( "beforeNodeChange" , { type : "beforeNodeChange" , target : this } ) ; if ( Z === false ) { return false ; } if ( this . get ( "dompath" ) ) { window . setTimeout ( function ( ) { R . _writeDomPath . call ( R ) ; } , 0 ) ; } if ( ! this . get ( "disabled" ) ) { if ( this . STOP _NODE _CHANGE ) { this . STOP _NODE _CHANGE = false ; return false ; } else { var T = this . _getSelection ( ) , Q = this . _getRange ( ) , E = this . _getSelectedElement ( ) , M = this . toolbar . getButtonByValue ( "fontname" ) , L = this . toolbar . getButtonByValue ( "fontsize" ) , J = this . toolbar . getButtonByValue ( "undo" ) , G = this . toolbar . getButtonByValue ( "redo" ) ; var N = { } ; if ( this . _lastButton ) { N [ this . _lastButton . id ] = true ; } if ( ! this . _isElement ( E , "body" ) ) { if ( M ) { N [ M . get ( "id" ) ] = true ; } if ( L ) { N [ L . get ( "id" ) ] = true ; } } if ( G ) { delete N [ G . get ( "id" ) ] ; } this . toolbar . resetAllButtons ( N ) ; for ( var b = 0 ; b < this . _disabled . length ; b ++ ) { var P = this . toolbar . getButtonByValue ( this . _disabled [ b ] ) ; if ( P && P . get ) { if ( this . _lastButton && ( P . get ( "id" ) === this . _lastButton . id ) ) { } else { if ( ! this . _hasSelection ( ) && ! this . get ( "insert" ) ) { switch ( this . _disabled [ b ] ) { case "fontname" : case "fontsize" : break ; default : this . toolbar . disableButton ( P ) ; } } else { if ( ! this . _alwaysDisabled [ this . _disabled [ b ] ] ) { this . toolbar . enableButton ( P ) ; } } if ( ! this . _alwaysEnabled [ this . _disabled [ b ] ] ) { this . toolbar . deselectButton ( P ) ; } } } } var S = this . _getDomPath ( ) ; var c = null , W = null ; for ( var X = 0 ; X < S . length ; X ++ ) { c = S [ X ] . tagName . toLowerCase ( ) ; if ( S [ X ] . getAttribute ( "tag" ) ) { c = S [ X ] . getAttribute ( "tag" ) . toLowerCase ( ) ; } W = this . _tag2cmd [ c ] ; if ( W === undefined ) { W = [ ] ; } if ( ! D . isArray ( W ) ) { W = [ W ] ; } if ( S [ X ] . style . fontWeight . toLowerCase ( ) == "bold" ) { W [ W . length ] = "bold" ; } if ( S [ X ] . style . fontStyle . toLowerCase ( ) == "italic" ) { W [ W . length ] = "italic" ; } if ( S [ X ] . style . textDecoration . toLowerCase ( ) == "underline" ) { W [ W . length ] = "underline" ; } if ( S [ X ] . style . textDecoration . toLowerCase ( ) == "line-through" ) { W [ W . length ] = "strikethrough" ; } if ( W . length > 0 ) { for ( var V = 0 ; V < W . length ; V ++ ) { this . toolbar . selectButton ( W [ V ] ) ; this . toolbar . enableButton ( W [ V ] ) ; } } switch ( S [ X ] . style . textAlign . toLowerCase ( ) ) { case "left" : case "right" : case "center" : case "justify" : var U = S [ X ] . style . textAlign . toLowerCase ( ) ; if ( S [ X ] . style . textAlign . toLowerCase ( ) == "justify" ) { U = "full" ; } this . toolbar . selectButton ( "justify" + U ) ; this . toolbar . enableButton ( "justify" + U ) ; break ; } } if ( M ) { var Y = M . _configs . label . _initialConfig . value ; M . set ( "label" , '<span class="yui-toolbar-fontname-' + this . _cleanClassName ( Y ) + '">' + Y + "</span>" ) ; this . _updateMenuChecked ( "fontname" , Y ) ; } if ( L ) { L . set ( "label" , L . _configs . label . _initialConfig . value ) ; } var K = this . toolbar . getButtonByValue ( "heading" ) ; if ( K ) { K . set ( "label" , K . _configs . label . _initialConfig . value ) ; this . _updateMenuChecked ( "heading" , "none" ) ; } var I = this . toolbar . getButtonByValue ( "insertimage" ) ; if ( I && this . currentWindow && ( this . currentWindow . name == "insertimage" ) ) { this . toolbar . disableButton ( I ) ; } if ( this . _lastButton && this . _lastButton . isSelected ) { this . toolbar . deselectButton ( this . _lastButton . id ) ; } this . _undoNodeChange ( ) ; } } this . fireEvent ( "afterNodeChange" , { type : "afterNodeChange" , target : this } ) ; } , _updateMenuChecked : function ( E , F , H ) { if ( ! H ) { H = this . toolbar ; } var G = H . getButtonByValue ( E ) ; G . checkValue ( F ) ; } , _handleToolbarClick : function ( F ) { var H = "" ; var I = "" ; var G = F . button . value ; if ( F . button . menucmd ) { H = G ; G = F . button . menucmd ; } this . _lastButton = F . button ; if ( this . STOP _EXEC _COMMAND ) { this . STOP _EXEC _COMMAND = false ; return false ; } else { this . execCommand ( G , H ) ; if ( ! this . browser . webkit ) { var E = this ; setTimeout ( function ( ) { E . focus . call ( E ) ; } , 5 ) ; } } A . stopEvent ( F ) ; } , _setupAfterElement : function ( ) { if ( ! this . beforeElement ) { this . beforeElement = document . createElement ( "h2" ) ; this . beforeElement . className = " yui - editor - ski
if ( E . webkit >= 420 ) { E . webkit3 = E . webkit ; } else { E . webkit3 = 0 ; } E . mac = false ; if ( navigator . userAgent . indexOf ( "Macintosh" ) !== - 1 ) { E . mac = true ; } return E ; } ( ) , init : function ( F , E ) { 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 , F , E ) ; YAHOO . widget . EditorInfo . _instances [ this . get ( "id" ) ] = this ; this . currentElement = [ ] ; this . on ( "contentReady" , function ( ) { this . DOMReady = true ; this . fireQueue ( ) ; } , this , true ) ; } , initAttributes : function ( E ) { YAHOO . widget . SimpleEditor . superclass . initAttributes . call ( this , E ) ; var F = this ; this . setAttributeConfig ( "nodeChangeDelay" , { value : ( ( E . nodeChangeDelay === false ) ? false : true ) } ) ; this . setAttributeConfig ( "maxUndo" , { writeOnce : true , value : E . maxUndo || 30 } ) ; this . setAttributeConfig ( "ptags" , { writeOnce : true , value : E . ptags || false } ) ; this . setAttributeConfig ( "insert" , { writeOnce : true , value : E . insert || false , method : function ( K ) { if ( K ) { var J = { fontname : true , fontsize : true , forecolor : true , backcolor : true } ; var I = this . _defaultToolbar . buttons ; for ( var H = 0 ; H < I . length ; H ++ ) { if ( I [ H ] . buttons ) { for ( var G = 0 ; G < I [ H ] . buttons . length ; G ++ ) { if ( I [ H ] . buttons [ G ] . value ) { if ( J [ I [ H ] . buttons [ G ] . value ] ) { delete I [ H ] . buttons [ G ] . disabled ; } } } } } } } } ) ; this . setAttributeConfig ( "container" , { writeOnce : true , value : E . container || false } ) ; this . setAttributeConfig ( "plainText" , { writeOnce : true , value : E . plainText || false } ) ; this . setAttributeConfig ( "iframe" , { value : null } ) ; this . setAttributeConfig ( "textarea" , { value : null , writeOnce : true } ) ; this . setAttributeConfig ( "nodeChangeThreshold" , { value : E . nodeChangeThreshold || 3 , validator : YAHOO . lang . isNumber } ) ; this . setAttributeConfig ( "allowNoEdit" , { value : E . allowNoEdit || false , validator : YAHOO . lang . isBoolean } ) ; this . setAttributeConfig ( "limitCommands" , { value : E . limitCommands || false , validator : YAHOO . lang . isBoolean } ) ; this . setAttributeConfig ( "element_cont" , { value : E . element _cont } ) ; this . setAttributeConfig ( "editor_wrapper" , { value : E . editor _wrapper || null , writeOnce : true } ) ; this . setAttributeConfig ( "height" , { value : E . height || C . getStyle ( F . get ( "element" ) , "height" ) , method : function ( G ) { if ( this . _rendered ) { if ( this . get ( "animate" ) ) { var H = new YAHOO . util . Anim ( this . get ( "iframe" ) . get ( "parentNode" ) , { height : { to : parseInt ( G , 10 ) } } , 0.5 ) ; H . animate ( ) ; } else { C . setStyle ( this . get ( "iframe" ) . get ( "parentNode" ) , "height" , G ) ; } } } } ) ; this . setAttributeConfig ( "autoHeight" , { value : E . autoHeight || false , method : function ( G ) { if ( G ) { 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 ( " editorK
this . setAttributeConfig ( "toolbar" , { value : E . toolbar || this . _defaultToolbar , writeOnce : true , method : function ( G ) { if ( ! G . buttonType ) { G . buttonType = this . _defaultToolbar . buttonType ; } this . _defaultToolbar = G ; } } ) ; this . setAttributeConfig ( "animate" , { value : ( ( E . animate ) ? ( ( YAHOO . util . Anim ) ? true : false ) : false ) , validator : function ( H ) { var G = true ; if ( ! YAHOO . util . Anim ) { G = false ; } return G ; } } ) ; this . setAttributeConfig ( "panel" , { value : null , writeOnce : true , validator : function ( H ) { var G = true ; if ( ! YAHOO . widget . Overlay ) { G = false ; } return G ; } } ) ; this . setAttributeConfig ( "focusAtStart" , { value : E . focusAtStart || false , writeOnce : true , method : function ( G ) { if ( G ) { this . on ( "editorContentLoaded" , function ( ) { var H = this ; setTimeout ( function ( ) { H . focus . call ( H ) ; H . editorDirty = false ; } , 400 ) ; } , this , true ) ; } } } ) ; this . setAttributeConfig ( "dompath" , { value : E . dompath || false , method : function ( G ) { if ( G && ! this . dompath ) { this . dompath = document . createElement ( "DIV" ) ; this . dompath . id = this . get ( "id" ) + "_dompath" ; C . addClass ( this . dompath , "dompath" ) ; this . get ( "element_cont" ) . get ( "firstChild" ) . appendChild ( this . dompath ) ; if ( this . get ( "iframe" ) ) { this . _writeDomPath ( ) ; } } else { if ( ! G && this . dompath ) { this . dompath . parentNode . removeChild ( this . dompath ) ; this . dompath = null ; } } } } ) ; this . setAttributeConfig ( "markup" , { value : E . markup || "semantic" , validator : function ( G ) { switch ( G . toLowerCase ( ) ) { case "semantic" : case "css" : case "default" : case "xhtml" : return true ; } return false ; } } ) ; this . setAttributeConfig ( "removeLineBreaks" , { value : E . removeLineBreaks || false , validator : YAHOO . lang . isBoolean } ) ; this . setAttributeConfig ( "drag" , { writeOnce : true , value : E . drag || false } ) ; this . setAttributeConfig ( "resize" , { writeOnce : true , value : E . resize || false } ) ; this . setAttributeConfig ( "filterWord" , { value : E . filterWord || false , validator : YAHOO . lang . isBoolean } ) ; } , _getBlankImage : function ( ) { if ( ! this . DOMReady ) { this . _queue [ this . _queue . length ] = [ "_getBlankImage" , arguments ] ; return "" ; } var E = "" ; if ( ! this . _blankImageLoaded ) { if ( YAHOO . widget . EditorInfo . blankImage ) { this . set ( "blankimage" , YAHOO . widget . EditorInfo . blankImage ) ; this . _blankImageLoaded = true ; } else { var F = document . createElement ( "div" ) ; F . style . position = "absolute" ; F . style . top = "-9999px" ; F . style . left = "-9999px" ; F . className = this . CLASS _PREFIX + "-blankimage" ; document . body . appendChild ( F ) ; E = YAHOO . util . Dom . getStyle ( F , "background-image" ) ; E = E . replace ( "url(" , "" ) . replace ( ")" , "" ) . replace ( /"/g , "" ) ; E = E . replace ( "app:/" , "" ) ; this . set ( "blankimage" , E ) ; this . _blankImageLoaded = true ; F . parentNode . removeChild ( F ) ; YAHOO . widget . EditorInfo . blankImage = E ; } } else { E = this . get ( "blankimage" ) ; } return E ; } , _handleAutoHeight : function ( ) { var J = this . _getDoc ( ) , F = J . body , K = J . documentElement ; var E = parseInt ( C . getStyle ( this . get ( "editor_wrapper" ) , "height" ) , 10 ) ; var G = F . scrollHeight ; if ( this . browser . webkit ) { G = K . scrollHeight ; } if ( G < parseInt ( this . get ( "height" ) , 10 ) ) { G = parseInt ( this . get ( "height" ) , 10 ) ; } if ( ( E != G ) && ( G >= parseInt ( this . get ( "height" ) , 10 ) ) ) { var I = this . get ( "animate" ) ; this . set ( "animate" , false ) ; this . set ( "height" , G + "px" ) ; this . set ( "animate" , I ) ; if ( this . browser . ie ) { this . get ( "iframe" ) . setStyle ( "height" , "99%" ) ; this . get ( "iframe" ) . setStyle ( "zoom" , "1" ) ; var H = this ; window . setTimeout ( function ( ) { H . get ( "iframe" ) . setStyle ( "height" , "100%" ) ; } , 1 ) ; } } } , _formButtons : null , _formButtonClicked : null , _handleFormButtonClick : function ( F ) { var E = A . getTarget ( F ) ; this . _formButtonClicked = E ; } , _handleFormSubmit : function ( H ) { this . saveHTML ( ) ; var G = this . get ( "element" ) . form , E = this . _formButtonClicked || false ; A . removeListener ( G , "submit" , this . _handleFormSubmit ) ; if ( YAHOO . env . ua . ie ) { if ( E && ! E . disabled ) { E . click ( ) ; } } else { if ( E && ! E . disabled ) { E . click ( ) ; } var F = document . createEvent ( "HTMLEvents" ) ; F . initEvent ( "submit" , true , true ) ; G . dispatchEvent ( F ) ; if ( YAHOO . env . ua . webkit ) { if ( YAHOO . lang . isFunction ( G . submit ) ) { G . submit ( ) ; } } } } , _handleFontSize : function ( G ) { var E = this . toolbar . getButtonById ( G . button . id ) ; var F = E . get ( "label" ) + "px" ; this . execCommand ( "fontsize" , F ) ; return false ; } , _handleColorPicker : function ( G ) { var F = G . button ; var E = "#" + G . color ; if ( ( F == "forecolor" ) || ( F == "backcolor" ) ) { this . execCommand ( F , E ) ; } } , _handleAlign : function ( H ) { var G = null ; for ( var E = 0 ; E < H . button . menu . length ; E ++ ) { if ( H . button . menu [ E ] . value == H . button . value ) { G = H . button . menu [ E ] . value ; } } var F = this . _getSelection ( ) ; this
var E = function ( ) { var F = this . currentElement [ 0 ] , H = "http://" ; if ( ! F ) { F = this . _getSelectedElement ( ) ; } if ( F ) { if ( F . getAttribute ( "src" ) ) { H = F . getAttribute ( "src" , 2 ) ; if ( H . indexOf ( this . get ( "blankimage" ) ) != - 1 ) { H = this . STR _IMAGE _HERE ; } } } var G = prompt ( this . STR _IMAGE _URL + ": " , H ) ; if ( ( G !== "" ) && ( G !== null ) ) { F . setAttribute ( "src" , G ) ; } else { if ( G === "" ) { F . parentNode . removeChild ( F ) ; this . currentElement = [ ] ; this . nodeChange ( ) ; } else { if ( ( G === null ) ) { H = F . getAttribute ( "src" , 2 ) ; if ( H . indexOf ( this . get ( "blankimage" ) ) != - 1 ) { F . parentNode . removeChild ( F ) ; this . currentElement = [ ] ; this . nodeChange ( ) ; } } } } this . closeWindow ( ) ; this . toolbar . set ( "disabled" , false ) ; this . unsubscribe ( "afterExecCommand" , E , this , true ) ; } ; this . on ( "afterExecCommand" , E , this , true ) ; } , _handleInsertImageWindowClose : function ( ) { this . nodeChange ( ) ; } , _isLocalFile : function ( E ) { if ( ( E ) && ( E !== "" ) && ( ( E . indexOf ( "file:/" ) != - 1 ) || ( E . 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 E = function ( ) { var H = this . currentElement [ 0 ] , G = "" ; if ( H ) { if ( H . getAttribute ( "href" , 2 ) !== null ) { G = H . getAttribute ( "href" , 2 ) ; } } var J = prompt ( this . STR _LINK _URL + ": " , G ) ; if ( ( J !== "" ) && ( J !== null ) ) { var I = J ; if ( ( I . indexOf ( ":/" + "/" ) == - 1 ) && ( I . substring ( 0 , 1 ) != "/" ) && ( I . substring ( 0 , 6 ) . toLowerCase ( ) != "mailto" ) ) { if ( ( I . indexOf ( "@" ) != - 1 ) && ( I . substring ( 0 , 6 ) . toLowerCase ( ) != "mailto" ) ) { I = "mailto:" + I ; } else { if ( I . substring ( 0 , 1 ) != "#" ) { } } } H . setAttribute ( "href" , I ) ; } else { if ( J !== null ) { var F = this . _getDoc ( ) . createElement ( "span" ) ; F . innerHTML = H . innerHTML ; C . addClass ( F , "yui-non" ) ; H . parentNode . replaceChild ( F , H ) ; } } this . closeWindow ( ) ; this . toolbar . set ( "disabled" , false ) ; this . unsubscribe ( "afterExecCommand" , E , this , true ) ; } ; this . on ( "afterExecCommand" , E , 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 E = this ; window . setTimeout ( function ( ) { E . _render . call ( E ) ; } , 4 ) ; } , _render : function ( ) { var E = 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 ( ) { E . _setInitialContent . call ( E ) ; } , 10 ) ; this . get ( "editor_wrapper" ) . appendChild ( this . get ( "iframe" ) . get ( "element" ) ) ; if ( this . get ( "disabled" ) ) { this . _disableEditor ( true ) ; } var F = this . get ( "toolbar" ) ; if ( F instanceof B ) { this . toolbar = F ; this . toolbar . set ( "disabled" , true ) ; } else { F . disabled = true ; this . toolbar = new B ( this . get ( "toolbar_cont" ) , F ) ; } 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 ( G ) { this . _handleColorPicker ( G ) ; 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" ) ; C . addClass ( this . get ( "iframe" ) . get (
if ( E && this . _isElement ( E , "span" ) ) { if ( E . style . textDecoration == "underline" ) { E . style . textDecoration = "none" ; } else { E . style . textDecoration = "underline" ; } return [ false ] ; } } return [ true ] ; } , cmd _backcolor : function ( H ) { var E = true , F = this . _getSelectedElement ( ) , G = "backcolor" ; if ( this . browser . gecko || this . browser . opera ) { this . _setEditorStyle ( true ) ; G = "hilitecolor" ; } if ( ! this . _isElement ( F , "body" ) && ! this . _hasSelection ( ) ) { F . style . backgroundColor = H ; this . _selectNode ( F ) ; E = false ; } else { if ( this . get ( "insert" ) ) { F = this . _createInsertElement ( { backgroundColor : H } ) ; } else { this . _createCurrentElement ( "span" , { backgroundColor : H , color : F . style . color , fontSize : F . style . fontSize , fontFamily : F . style . fontFamily } ) ; this . _selectNode ( this . currentElement [ 0 ] ) ; } E = false ; } return [ E , G ] ; } , cmd _forecolor : function ( G ) { var E = true , F = this . _getSelectedElement ( ) ; if ( ! this . _isElement ( F , "body" ) && ! this . _hasSelection ( ) ) { C . setStyle ( F , "color" , G ) ; this . _selectNode ( F ) ; E = false ; } else { if ( this . get ( "insert" ) ) { F = this . _createInsertElement ( { color : G } ) ; } else { this . _createCurrentElement ( "span" , { color : G , fontSize : F . style . fontSize , fontFamily : F . style . fontFamily , backgroundColor : F . style . backgroundColor } ) ; this . _selectNode ( this . currentElement [ 0 ] ) ; } E = false ; } return [ E ] ; } , cmd _unlink : function ( E ) { this . _swapEl ( this . currentElement [ 0 ] , "span" , function ( F ) { F . className = "yui-non" ; } ) ; return [ false ] ; } , cmd _createlink : function ( G ) { var F = this . _getSelectedElement ( ) , E = null ; if ( this . _hasParent ( F , "a" ) ) { this . currentElement [ 0 ] = this . _hasParent ( F , "a" ) ; } else { if ( this . _isElement ( F , "li" ) ) { E = this . _getDoc ( ) . createElement ( "a" ) ; E . innerHTML = F . innerHTML ; F . innerHTML = "" ; F . appendChild ( E ) ; this . currentElement [ 0 ] = E ; } else { if ( ! this . _isElement ( F , "a" ) ) { this . _createCurrentElement ( "a" ) ; E = this . _swapEl ( this . currentElement [ 0 ] , "a" ) ; this . currentElement [ 0 ] = E ; } else { this . currentElement [ 0 ] = F ; } } } return [ false ] ; } , cmd _insertimage : function ( J ) { var E = true , F = null , I = "insertimage" , H = this . _getSelectedElement ( ) ; if ( J === "" ) { J = this . get ( "blankimage" ) ; } if ( this . _isElement ( H , "img" ) ) { this . currentElement [ 0 ] = H ; E = false ; } else { if ( this . _getDoc ( ) . queryCommandEnabled ( I ) ) { this . _getDoc ( ) . execCommand ( "insertimage" , false , J ) ; var K = this . _getDoc ( ) . getElementsByTagName ( "img" ) ; for ( var G = 0 ; G < K . length ; G ++ ) { if ( ! YAHOO . util . Dom . hasClass ( K [ G ] , "yui-img" ) ) { YAHOO . util . Dom . addClass ( K [ G ] , "yui-img" ) ; this . currentElement [ 0 ] = K [ G ] ; } } E = false ; } else { if ( H == this . _getDoc ( ) . body ) { F = this . _getDoc ( ) . createElement ( "img" ) ; F . setAttribute ( "src" , J ) ; YAHOO . util . Dom . addClass ( F , "yui-img" ) ; this . _getDoc ( ) . body . appendChild ( F ) ; } else { this . _createCurrentElement ( "img" ) ; F = this . _getDoc ( ) . createElement ( "img" ) ; F . setAttribute ( "src" , J ) ; YAHOO . util . Dom . addClass ( F , "yui-img" ) ; this . currentElement [ 0 ] . parentNode . replaceChild ( F , this . currentElement [ 0 ] ) ; } this . currentElement [ 0 ] = F ; E = false ; } } return [ E ] ; } , cmd _inserthtml : function ( H ) { var E = true , G = "inserthtml" , F = null , I = null ; if ( this . browser . webkit && ! this . _getDoc ( ) . queryCommandEnabled ( G ) ) { this . _createCurrentElement ( "img" ) ; F = this . _getDoc ( ) . createElement ( "span" ) ; F . innerHTML = H ; this . currentElement [ 0 ] . parentNode . replaceChild ( F , this . currentElement [ 0 ] ) ; E = false ; } else { if ( this . browser . ie ) { I = this . _getRange ( ) ; if ( I . item ) { I . item ( 0 ) . outerHTML = H ; } else { I . pasteHTML ( H ) ; } E = false ; } } return [ E ] ; } , cmd _list : function ( b ) { var T = true , X = null , M = 0 , G = null , S = "" , Z = this . _getSelectedElement ( ) , U = "insertorderedlist" ; if ( b == "ul" ) { U = "insertunorderedlist" ; } if ( this . browser . webkit ) { if ( this . _isElement ( Z , "li" ) && this . _isElement ( Z . parentNode , b ) ) { G = Z . parentNode ; X = this . _getDoc ( ) . createElement ( "span" ) ; YAHOO . util . Dom . addClass ( X , "yui-non" ) ; S = "" ; var F = G . getElementsByTagName ( "li" ) ; for ( M = 0 ; M < F . length ; M ++ ) { S += "<div>" + F [ M ] . innerHTML + "</div>" ; } X . innerHTML = S ; this . currentElement [ 0 ] = G ; this . currentElement [ 0 ] . parentNode . replaceChild ( X , this . currentElement [ 0 ] ) ; } else { this . _createCurrentElement ( b . toLowerCase ( ) ) ; X = this . _getDoc ( ) . createElement ( b ) ; for ( M = 0 ; M < this . currentElement . length ; M ++ ) { var J = this . _getDoc ( ) . createElement ( "li" ) ; J . innerHTML = this . currentElement [ M ] . innerHTML + '<span class="yui-non"> </span> ' ; X . appendChild ( J ) ; if ( M > 0 ) { this . currentElement [ M ] . parentNode . removeChild ( this . currentElement [ M ] ) ; } } var R = X . firstChild . innerHTML . split ( "<br>" ) ; if ( R . length > 0 ) { X . innerHTML = "" ; for ( var W = 0 ; W < R . length ; W ++ )
} , cmd _insertunorderedlist : function ( E ) { return [ this . cmd _list ( "ul" ) ] ; } , cmd _fontname : function ( H ) { var E = true , G = this . _getSelectedElement ( ) ; this . currentFont = H ; if ( G && G . tagName && ! this . _hasSelection ( ) && ! this . _isElement ( G , "body" ) && ! this . get ( "insert" ) ) { YAHOO . util . Dom . setStyle ( G , "font-family" , H ) ; E = false ; } else { if ( this . get ( "insert" ) && ! this . _hasSelection ( ) ) { var F = this . _createInsertElement ( { fontFamily : H } ) ; E = false ; } } return [ E ] ; } , cmd _fontsize : function ( H ) { var E = null , G = true ; E = this . _getSelectedElement ( ) ; if ( this . browser . webkit ) { if ( this . currentElement [ 0 ] ) { if ( E == this . currentElement [ 0 ] ) { G = false ; YAHOO . util . Dom . setStyle ( E , "fontSize" , H ) ; this . _selectNode ( E ) ; this . currentElement [ 0 ] = E ; } } } if ( G ) { if ( ! this . _isElement ( this . _getSelectedElement ( ) , "body" ) && ( ! this . _hasSelection ( ) ) ) { E = this . _getSelectedElement ( ) ; YAHOO . util . Dom . setStyle ( E , "fontSize" , H ) ; if ( this . get ( "insert" ) && this . browser . ie ) { var F = this . _getRange ( ) ; F . collapse ( false ) ; F . select ( ) ; } else { this . _selectNode ( E ) ; } } else { if ( this . currentElement && ( this . currentElement . length > 0 ) && ( ! this . _hasSelection ( ) ) && ( ! this . get ( "insert" ) ) ) { YAHOO . util . Dom . setStyle ( this . currentElement , "fontSize" , H ) ; } else { if ( this . get ( "insert" ) && ! this . _hasSelection ( ) ) { E = this . _createInsertElement ( { fontSize : H } ) ; this . currentElement [ 0 ] = E ; this . _selectNode ( this . currentElement [ 0 ] ) ; } else { this . _createCurrentElement ( "span" , { "fontSize" : H , fontFamily : E . style . fontFamily , color : E . style . color , backgroundColor : E . style . backgroundColor } ) ; this . _selectNode ( this . currentElement [ 0 ] ) ; } } } } return [ false ] ; } , _swapEl : function ( F , E , H ) { var G = this . _getDoc ( ) . createElement ( E ) ; if ( F ) { G . innerHTML = F . innerHTML ; } if ( typeof H == "function" ) { H . call ( this , G ) ; } if ( F ) { F . parentNode . replaceChild ( G , F ) ; } return G ; } , _createInsertElement : function ( E ) { this . _createCurrentElement ( "span" , E ) ; var F = this . currentElement [ 0 ] ; if ( this . browser . webkit ) { F . innerHTML = '<span class="yui-non"> </span>' ; F = F . firstChild ; this . _getSelection ( ) . setBaseAndExtent ( F , 1 , F , F . innerText . length ) ; } else { if ( this . browser . ie || this . browser . opera ) { F . innerHTML = " " ; } } this . focus ( ) ; this . _selectNode ( F , true ) ; return F ; } , _createCurrentElement : function ( G , J ) { G = ( ( G ) ? G : "a" ) ; var R = null , F = [ ] , H = this . _getDoc ( ) ; if ( this . currentFont ) { if ( ! J ) { J = { } ; } J . fontFamily = this . currentFont ; this . currentFont = null ; } this . currentElement = [ ] ; var M = function ( X , Z ) { var Y = null ; X = ( ( X ) ? X : "span" ) ; X = X . toLowerCase ( ) ; switch ( X ) { case "h1" : case "h2" : case "h3" : case "h4" : case "h5" : case "h6" : Y = H . createElement ( X ) ; break ; default : Y = H . createElement ( X ) ; if ( X === "span" ) { YAHOO . util . Dom . addClass ( Y , "yui-tag-" + X ) ; YAHOO . util . Dom . addClass ( Y , "yui-tag" ) ; Y . setAttribute ( "tag" , X ) ; } for ( var W in Z ) { if ( YAHOO . lang . hasOwnProperty ( Z , W ) ) { Y . style [ W ] = Z [ W ] ; } } break ; } return Y ; } ; if ( ! this . _hasSelection ( ) ) { if ( this . _getDoc ( ) . queryCommandEnabled ( "insertimage" ) ) { this . _getDoc ( ) . execCommand ( "insertimage" , false , "yui-tmp-img" ) ; var L = this . _getDoc ( ) . getElementsByTagName ( "img" ) ; for ( var Q = 0 ; Q < L . length ; Q ++ ) { if ( L [ Q ] . getAttribute ( "src" , 2 ) == "yui-tmp-img" ) { F = M ( G , J ) ; L [ Q ] . parentNode . replaceChild ( F , L [ Q ] ) ; this . currentElement [ this . currentElement . length ] = F ; } } } else { if ( this . currentEvent ) { R = YAHOO . util . Event . getTarget ( this . currentEvent ) ; } else { R = this . _getDoc ( ) . body ; } } if ( R ) { F = M ( G , J ) ; if ( this . _isElement ( R , "body" ) || this . _isElement ( R , "html" ) ) { if ( this . _isElement ( R , "html" ) ) { R = this . _getDoc ( ) . body ; } R . appendChild ( F ) ; } else { if ( R . nextSibling ) { R . parentNode . insertBefore ( F , R . nextSibling ) ; } else { R . parentNode . appendChild ( F ) ; } } this . currentElement [ this . currentElement . length ] = F ; this . currentEvent = null ; if ( this . browser . webkit ) { this . _getSelection ( ) . setBaseAndExtent ( F , 0 , F , 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 E = [ ] , P , V = [ "font" , "span" , "i" , "b" , "u" ] ; if ( ! this . _isElement ( this . _getSelectedElement ( ) , "body" ) ) { V [ V . length ] = this . _getDoc ( ) . getElementsByTagName ( this . _getSelectedElement ( ) . tagName ) ; V [ V . length ] = this . _getDoc ( ) . getElementsByTagName ( this . _getSelectedElement ( ) . parentNode . tagName ) ; } for ( var K = 0 ; K < V . length ; K ++ ) { var I = this . _getDoc ( ) . getElementsByTagName ( V [ K ] ) ; for ( var U = 0 ; U < I . length ; U ++ ) { E [ E . length ] = I [ U ] ; } } for ( var S = 0 ; S < E . length ; S ++ ) { if (
this . focus ( ) ; } if ( this . browser . webkit ) { var E = this ; window . setTimeout ( function ( ) { E . _setInitialContent . call ( E ) ; } , 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 ( E ) { E = E . replace ( /<strong([^>]*)>/gi , "<b$1>" ) ; E = E . replace ( /<\/strong>/gi , "</b>" ) ; E = E . replace ( /<embed([^>]*)>/gi , "<YUI_EMBED$1>" ) ; E = E . replace ( /<\/embed>/gi , "</YUI_EMBED>" ) ; E = E . replace ( /<em([^>]*)>/gi , "<i$1>" ) ; E = E . replace ( /<\/em>/gi , "</i>" ) ; E = E . replace ( /_moz_dirty=""/gi , "" ) ; E = E . replace ( /<YUI_EMBED([^>]*)>/gi , "<embed$1>" ) ; E = E . replace ( /<\/YUI_EMBED>/gi , "</embed>" ) ; if ( this . get ( "plainText" ) ) { E = E . replace ( /\n/g , "<br>" ) . replace ( /\r/g , "<br>" ) ; E = E . replace ( / /gi , " " ) ; E = E . replace ( /\t/gi , " " ) ; } E = E . replace ( /<script([^>]*)>/gi , "<bad>" ) ; E = E . replace ( /<\/script([^>]*)>/gi , "</bad>" ) ; E = E . replace ( /<script([^>]*)>/gi , "<bad>" ) ; E = E . replace ( /<\/script([^>]*)>/gi , "</bad>" ) ; E = E . replace ( /\r\n/g , "<YUI_LF>" ) . replace ( /\n/g , "<YUI_LF>" ) . replace ( /\r/g , "<YUI_LF>" ) ; E = E . replace ( new RegExp ( "<bad([^>]*)>(.*?)</bad>" , "gi" ) , "" ) ; E = E . replace ( /<YUI_LF>/g , "\n" ) ; return E ; } , cleanHTML : function ( H ) { if ( ! H ) { H = this . getEditorHTML ( ) ; } var F = this . get ( "markup" ) ; H = this . pre _filter _linebreaks ( H , F ) ; H = this . filter _msword ( H ) ; H = H . replace ( /<img([^>]*)\/>/gi , "<YUI_IMG$1>" ) ; H = H . replace ( /<img([^>]*)>/gi , "<YUI_IMG$1>" ) ; H = H . replace ( /<input([^>]*)\/>/gi , "<YUI_INPUT$1>" ) ; H = H . replace ( /<input([^>]*)>/gi , "<YUI_INPUT$1>" ) ; H = H . replace ( /<ul([^>]*)>/gi , "<YUI_UL$1>" ) ; H = H . replace ( /<\/ul>/gi , "</YUI_UL>" ) ; H = H . replace ( /<blockquote([^>]*)>/gi , "<YUI_BQ$1>" ) ; H = H . replace ( /<\/blockquote>/gi , "</YUI_BQ>" ) ; H = H . replace ( /<embed([^>]*)>/gi , "<YUI_EMBED$1>" ) ; H = H . replace ( /<\/embed>/gi , "</YUI_EMBED>" ) ; if ( ( F == "semantic" ) || ( F == "xhtml" ) ) { H = H . replace ( /<i(\s+[^>]*)?>/gi , "<em$1>" ) ; H = H . replace ( /<\/i>/gi , "</em>" ) ; H = H . replace ( /<b(\s+[^>]*)?>/gi , "<strong$1>" ) ; H = H . replace ( /<\/b>/gi , "</strong>" ) ; } H = H . replace ( /_moz_dirty=""/gi , "" ) ; H = H . replace ( /<strike/gi , '<span style="text-decoration: line-through;"' ) ; H = H . replace ( /\/strike>/gi , "/span>" ) ; if ( this . browser . ie ) { H = H . replace ( /text-decoration/gi , "text-decoration" ) ; H = H . replace ( /font-weight/gi , "font-weight" ) ; H = H . replace ( /_width="([^>]*)"/gi , "" ) ; H = H . replace ( /_height="([^>]*)"/gi , "" ) ; var G = this . _baseHREF . replace ( /\//gi , "\\/" ) , I = new RegExp ( 'src="' + G , "gi" ) ; H = H . replace ( I , 'src="' ) ; } H = H . replace ( /<font/gi , "<font" ) ; H = H . replace ( /<\/font>/gi , "</font>" ) ; H = H . replace ( /<span/gi , "<span" ) ; H = H . replace ( /<\/span>/gi , "</span>" ) ; if ( ( F == "semantic" ) || ( F == "xhtml" ) || ( F == "css" ) ) { H = H . replace ( new RegExp ( '<font([^>]*)face="([^>]*)">(.*?)</font>' , "gi" ) , '<span $1 style="font-family: $2;">$3</span>' ) ; H = H . replace ( /<u/gi , '<span style="text-decoration: underline;"' ) ; if ( this . browser . webkit ) { H = H . replace ( new RegExp ( '<span class="Apple-style-span" style="font-weight: bold;">([^>]*)</span>' , "gi" ) , "<strong>$1</strong>" ) ; H = H . replace ( new RegExp ( '<span class="Apple-style-span" style="font-style: italic;">([^>]*)</span>' , "gi" ) , "<em>$1</em>" ) ; } H = H . replace ( /\/u>/gi , "/span>" ) ; if ( F == "css" ) { H = H . replace ( /<em([^>]*)>/gi , "<i$1>" ) ; H = H . replace ( /<\/em>/gi , "</i>" ) ; H = H . replace ( /<strong([^>]*)>/gi , "<b$1>" ) ; H = H . replace ( /<\/strong>/gi , "</b>" ) ; H = H . replace ( /<b/gi , '<span style="font-weight: bold;"' ) ; H = H . replace ( /\/b>/gi , "/span>" ) ; H = H . replace ( /<i/gi , '<span style="font-style: italic;"' ) ; H = H . replace ( /\/i>/gi , "/span>" ) ; } H = H . replace ( / /gi , " " ) ; } else { H = H . replace ( /<u/gi , "<u" ) ; H = H . replace ( /\/u>/gi , "/u>" ) ; } H = H . replace ( /<ol([^>]*)>/gi , "<ol$1>" ) ; H = H . replace ( /\/ol>/gi , "/ol>" ) ; H = H . replace ( /<li/gi , "<li" ) ; H = H . replace ( /\/li>/gi , "/li>" ) ; H = this . filter _safari ( H ) ; H = this . filter _internals ( H ) ; H = this . filter _all _rgb ( H ) ; H = this . post _filter _linebreaks ( H , F ) ; if ( F == "xhtml" ) { H = H . replace ( /<YUI_IMG([^>]*)>/g , "<img $1 />" ) ; H = H .
E = E . replace ( /<(\w[^>]*) onmouseout="([^\"]*)"([^>]*)/gi , "<$1$3" ) ; return E ; } , filter _invalid _lists : function ( E ) { E = E . replace ( /<\/li>\n/gi , "</li>" ) ; E = E . replace ( /<\/li><ol>/gi , "</li><li><ol>" ) ; E = E . replace ( /<\/ol>/gi , "</ol></li>" ) ; E = E . replace ( /<\/ol><\/li>\n/gi , "</ol>" ) ; E = E . replace ( /<\/li><ul>/gi , "</li><li><ul>" ) ; E = E . replace ( /<\/ul>/gi , "</ul></li>" ) ; E = E . replace ( /<\/ul><\/li>\n?/gi , "</ul>" ) ; E = E . replace ( /<\/li>/gi , "</li>" ) ; E = E . replace ( /<\/ol>/gi , "</ol>" ) ; E = E . replace ( /<ol>/gi , "<ol>" ) ; E = E . replace ( /<ul>/gi , "<ul>" ) ; return E ; } , filter _safari : function ( E ) { if ( this . browser . webkit ) { E = E . replace ( /<span class="Apple-tab-span" style="white-space:pre">([^>])<\/span>/gi , " " ) ; E = E . replace ( /Apple-style-span/gi , "" ) ; E = E . replace ( /style="line-height: normal;"/gi , "" ) ; E = E . replace ( /yui-wk-div/gi , "" ) ; E = E . replace ( /yui-wk-p/gi , "" ) ; E = E . replace ( /<li><\/li>/gi , "" ) ; E = E . replace ( /<li> <\/li>/gi , "" ) ; E = E . replace ( /<li> <\/li>/gi , "" ) ; if ( this . get ( "ptags" ) ) { E = E . replace ( /<div([^>]*)>/g , "<p$1>" ) ; E = E . replace ( /<\/div>/gi , "</p>" ) ; } else { E = E . replace ( /<div>/gi , "<br>" ) ; E = E . replace ( /<\/div>/gi , "" ) ; } } return E ; } , filter _internals : function ( E ) { E = E . replace ( /\r/g , "" ) ; E = E . replace ( /<\/?(body|head|html)[^>]*>/gi , "" ) ; E = E . replace ( /<YUI_BR><\/li>/gi , "</li>" ) ; E = E . replace ( /yui-tag-span/gi , "" ) ; E = E . replace ( /yui-tag/gi , "" ) ; E = E . replace ( /yui-non/gi , "" ) ; E = E . replace ( /yui-img/gi , "" ) ; E = E . replace ( / tag="span"/gi , "" ) ; E = E . replace ( / class=""/gi , "" ) ; E = E . replace ( / style=""/gi , "" ) ; E = E . replace ( / class=" "/gi , "" ) ; E = E . replace ( / class=" "/gi , "" ) ; E = E . replace ( / target=""/gi , "" ) ; E = E . replace ( / title=""/gi , "" ) ; if ( this . browser . ie ) { E = E . replace ( / class= /gi , "" ) ; E = E . replace ( / class= >/gi , "" ) ; } return E ; } , filter _all _rgb : function ( I ) { var H = new RegExp ( "rgb\\s*?\\(\\s*?([0-9]+).*?,\\s*?([0-9]+).*?,\\s*?([0-9]+).*?\\)" , "gi" ) ; var E = I . match ( H ) ; if ( D . isArray ( E ) ) { for ( var G = 0 ; G < E . length ; G ++ ) { var F = this . filter _rgb ( E [ G ] ) ; I = I . replace ( E [ G ] . toString ( ) , F ) ; } } return I ; } , filter _rgb : function ( G ) { if ( G . toLowerCase ( ) . indexOf ( "rgb" ) != - 1 ) { var J = new RegExp ( "(.*?)rgb\\s*?\\(\\s*?([0-9]+).*?,\\s*?([0-9]+).*?,\\s*?([0-9]+).*?\\)(.*?)" , "gi" ) ; var F = G . replace ( J , "$1,$2,$3,$4,$5" ) . split ( "," ) ; if ( F . length == 5 ) { var I = parseInt ( F [ 1 ] , 10 ) . toString ( 16 ) ; var H = parseInt ( F [ 2 ] , 10 ) . toString ( 16 ) ; var E = parseInt ( F [ 3 ] , 10 ) . toString ( 16 ) ; I = I . length == 1 ? "0" + I : I ; H = H . length == 1 ? "0" + H : H ; E = E . length == 1 ? "0" + E : E ; G = "#" + I + H + E ; } } return G ; } , pre _filter _linebreaks : function ( F , E ) { if ( this . browser . webkit ) { F = F . replace ( /<br class="khtml-block-placeholder">/gi , "<YUI_BR>" ) ; F = F . replace ( /<br class="webkit-block-placeholder">/gi , "<YUI_BR>" ) ; } F = F . replace ( /<br>/gi , "<YUI_BR>" ) ; F = F . replace ( /<br (.*?)>/gi , "<YUI_BR>" ) ; F = F . replace ( /<br\/>/gi , "<YUI_BR>" ) ; F = F . replace ( /<br \/>/gi , "<YUI_BR>" ) ; F = F . replace ( /<div><YUI_BR><\/div>/gi , "<YUI_BR>" ) ; F = F . replace ( /<p>( | )<\/p>/g , "<YUI_BR>" ) ; F = F . replace ( /<p><br> <\/p>/gi , "<YUI_BR>" ) ; F = F . replace ( /<p> <\/p>/gi , "<YUI_BR>" ) ; F = F . replace ( /<YUI_BR>$/ , "" ) ; F = F . replace ( /<YUI_BR><\/p>/g , "</p>" ) ; if ( this . browser . ie ) { F = F . replace ( / /g , "\t" ) ; } return F ; } , post _filter _linebreaks : function ( F , E ) { if ( E == "xhtml" ) { F = F . replace ( /<YUI_BR>/g , "<br />" ) ; } else { F = F . replace ( /<YUI_BR>/g , "<br>" ) ; } return F ; } , clearEditorDoc : function ( ) { this . _getDoc ( ) . body . innerHTML = " " ; } , openWindow : function ( E ) { } , 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 E = this . get ( "element" ) ; this . get ( "element_cont" ) . get ( "parentNode" ) . replaceChild ( E , this . get ( "element_cont" ) . get ( "element" ) ) ; this . get ( "element_cont" ) . get ( "element" ) . innerHTML = "" ; this . set ( "handleSubmit" , false ) ; return true ; } , toString : function ( ) { var E = "SimpleEditor" ; if ( this . get && this . get ( "element_cont" ) ) { E = "SimpleEditor (#" + this . get ( "element_cont" ) . get ( "id" ) + ")" + ( ( this . get ( "disabled" ) ? " Disabled" : "" ) ) ; } return E ; } } ) ; YAHOO . widget . EditorInfo = { _instance