// 4.0.28 (2014-05-27)
! function ( e , t ) { "use strict" ; function n ( e , t ) { for ( var n , r = [ ] , i = 0 ; i < e . length ; ++ i ) { if ( n = s [ e [ i ] ] || o ( e [ i ] ) , ! n ) throw "module definition dependecy not found: " + e [ i ] ; r . push ( n ) } t . apply ( null , r ) } function r ( e , r , i ) { if ( "string" != typeof e ) throw "invalid module definition, module id must be defined and be a string" ; if ( r === t ) throw "invalid module definition, dependencies must be specified" ; if ( i === t ) throw "invalid module definition, definition function must be specified" ; n ( r , function ( ) { s [ e ] = i . apply ( null , arguments ) } ) } function i ( e ) { return ! ! s [ e ] } function o ( t ) { for ( var n = e , r = t . split ( /[.\/]/ ) , i = 0 ; i < r . length ; ++ i ) { if ( ! n [ r [ i ] ] ) return ; n = n [ r [ i ] ] } return n } function a ( n ) { for ( var r = 0 ; r < n . length ; r ++ ) { for ( var i = e , o = n [ r ] , a = o . split ( /[.\/]/ ) , l = 0 ; l < a . length - 1 ; ++ l ) i [ a [ l ] ] === t && ( i [ a [ l ] ] = { } ) , i = i [ a [ l ] ] ; i [ a [ a . length - 1 ] ] = s [ o ] } } var s = { } , l = "tinymce/dom/EventUtils" , c = "tinymce/dom/Sizzle" , u = "tinymce/dom/DomQuery" , d = "tinymce/html/Styles" , f = "tinymce/dom/TreeWalker" , p = "tinymce/util/Tools" , m = "tinymce/dom/Range" , h = "tinymce/html/Entities" , g = "tinymce/Env" , v = "tinymce/dom/StyleSheetLoader" , y = "tinymce/dom/DOMUtils" , b = "tinymce/dom/ScriptLoader" , C = "tinymce/AddOnManager" , x = "tinymce/html/Node" , w = "tinymce/html/Schema" , _ = "tinymce/html/SaxParser" , N = "tinymce/html/DomParser" , E = "tinymce/html/Writer" , k = "tinymce/html/Serializer" , S = "tinymce/dom/Serializer" , T = "tinymce/dom/TridentSelection" , R = "tinymce/util/VK" , A = "tinymce/dom/ControlSelection" , B = "tinymce/dom/RangeUtils" , D = "tinymce/dom/BookmarkManager" , L = "tinymce/dom/Selection" , M = "tinymce/dom/ElementUtils" , H = "tinymce/fmt/Preview" , P = "tinymce/Formatter" , O = "tinymce/UndoManager" , I = "tinymce/EnterKey" , F = "tinymce/ForceBlocks" , z = "tinymce/EditorCommands" , W = "tinymce/util/URI" , V = "tinymce/util/Class" , U = "tinymce/util/EventDispatcher" , q = "tinymce/ui/Selector" , $ = "tinymce/ui/Collection" , j = "tinymce/ui/DomUtils" , K = "tinymce/ui/Control" , G = "tinymce/ui/Factory" , Y = "tinymce/ui/KeyboardNavigation" , X = "tinymce/ui/Container" , J = "tinymce/ui/DragHelper" , Q = "tinymce/ui/Scrollable" , Z = "tinymce/ui/Panel" , et = "tinymce/ui/Movable" , tt = "tinymce/ui/Resizable" , nt = "tinymce/ui/FloatPanel" , rt = "tinymce/ui/Window" , it = "tinymce/ui/MessageBox" , ot = "tinymce/WindowManager" , at = "tinymce/util/Quirks" , st = "tinymce/util/Observable" , lt = "tinymce/EditorObservable" , ct = "tinymce/Shortcuts" , ut = "tinymce/Editor" , dt = "tinymce/util/I18n" , ft = "tinymce/FocusManager" , pt = "tinymce/EditorManager" , mt = "tinymce/LegacyInput" , ht = "tinymce/util/XHR" , gt = "tinymce/util/JSON" , vt = "tinymce/util/JSONRequest" , yt = "tinymce/util/JSONP" , bt = "tinymce/util/LocalStorage" , Ct = "tinymce/Compat" , xt = "tinymce/ui/Layout" , wt = "tinymce/ui/AbsoluteLayout" , _t = "tinymce/ui/Tooltip" , Nt = "tinymce/ui/Widget" , Et = "tinymce/ui/Button" , kt = "tinymce/ui/ButtonGroup" , St = "tinymce/ui/Checkbox" , Tt = "tinymce/ui/PanelButton" , Rt = "tinymce/ui/ColorButton" , At = "tinymce/ui/ComboBox" , Bt = "tinymce/ui/Path" , Dt = "tinymce/ui/ElementPath" , Lt = "tinymce/ui/FormItem" , Mt = "tinymce/ui/Form" , Ht = "tinymce/ui/FieldSet" , Pt = "tinymce/ui/FilePicker" , Ot = "tinymce/ui/FitLayout" , It = "tinymce/ui/FlexLayout" , Ft = "tinymce/ui/FlowLayout" , zt = "tinymce/ui/FormatControls" , Wt = "tinymce/ui/GridLayout" , Vt = "tinymce/ui/Iframe" , Ut = "tinymce/ui/Label" , qt = "tinymce/ui/Toolbar" , $t = "tinymce/ui/MenuBar" , jt = "tinymce/ui/MenuButton" , Kt = "tinymce/ui/ListBox" , Gt = "tinymce/ui/MenuItem" , Yt = "tinymce/ui/Menu" , Xt = "tinymce/ui/Radio" , Jt = "tinymce/ui/ResizeHandle" , Qt = "tinymce/ui/Spacer" , Zt = "tinymce/ui/SplitButton" , en = "tinymce/ui/StackLayout" , tn = "tinymce/ui/TabPanel" , nn = "tinymce/ui/TextBox" , rn = "tinymce/ui/Throbber" ; r ( l , [ ] , function ( ) { function e ( e , t , n , r ) { e . addEventListener ? e . addEventListener ( t , n , r || ! 1 ) : e . attachEvent && e . attachEvent ( "on" + t , n ) } function t ( e , t , n , r ) { e . removeEventListener ? e . removeEventListener ( t , n , r || ! 1 ) : e . detachEvent && e . detachEvent ( "on" + t , n ) } function n ( e , t ) { function n ( ) { return ! 1 } function r ( ) { return ! 0 } var i , o = t || { } , l ; for ( i in e ) s [ i ] || ( o [ i ] = e [ i ] ) ; if ( o . target || ( o . target = o . srcElement || document ) , e && a . test ( e . type ) && e . pageX === l && e . clientX !== l ) { var c = o . target . ownerDocument || document , u = c . documentElement , d = c . body ; o . pageX = e . clientX + ( u && u . scrollLeft || d && d . scrollLeft || 0 ) - ( u && u . clientLeft || d && d . clientLeft || 0 ) , o . pageY = e . clientY + ( u && u . scrollTop || d && d . scrollTop || 0
} return "#" + i ( t ) + i ( n ) + i ( r ) } var r = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi , i = /(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi , o = /\s*([^:]+):\s*([^;]+);?/g , a = /\s+$/ , s , l , c = { } , u , d , f , p = "\ufeff" ; for ( e = e || { } , t && ( d = t . getValidStyles ( ) , f = t . getInvalidStyles ( ) ) , u = ( "\\\" \\' \\; \\: ; : " + p ) . split ( " " ) , l = 0 ; l < u . length ; l ++ ) c [ u [ l ] ] = p + l , c [ p + l ] = u [ l ] ; return { toHex : function ( e ) { return e . replace ( r , n ) } , parse : function ( t ) { function s ( e , t , n ) { var r , i , o , a ; if ( r = h [ e + "-top" + t ] , r && ( i = h [ e + "-right" + t ] , i && ( o = h [ e + "-bottom" + t ] , o && ( a = h [ e + "-left" + t ] ) ) ) ) { var s = [ r , i , o , a ] ; for ( l = s . length - 1 ; l -- && s [ l ] === s [ l + 1 ] ; ) ; l > - 1 && n || ( h [ e + t ] = - 1 == l ? s [ 0 ] : s . join ( " " ) , delete h [ e + "-top" + t ] , delete h [ e + "-right" + t ] , delete h [ e + "-bottom" + t ] , delete h [ e + "-left" + t ] ) } } function u ( e ) { var t = h [ e ] , n ; if ( t ) { for ( t = t . split ( " " ) , n = t . length ; n -- ; ) if ( t [ n ] !== t [ 0 ] ) return ! 1 ; return h [ e ] = t [ 0 ] , ! 0 } } function d ( e , t , n , r ) { u ( t ) && u ( n ) && u ( r ) && ( h [ e ] = h [ t ] + " " + h [ n ] + " " + h [ r ] , delete h [ t ] , delete h [ n ] , delete h [ r ] ) } function f ( e ) { return b = ! 0 , c [ e ] } function p ( e , t ) { return b && ( e = e . replace ( /\uFEFF[0-9]/g , function ( e ) { return c [ e ] } ) ) , t || ( e = e . replace ( /\\([\'\";:])/g , "$1" ) ) , e } function m ( t , n , r , i , o , a ) { if ( o = o || a ) return o = p ( o ) , "'" + o . replace ( /\'/g , "\\'" ) + "'" ; if ( n = p ( n || r || i ) , ! e . allow _script _urls ) { var s = n . replace ( /[\s\r\n]+/ , "" ) ; if ( /(java|vb)script:/i . test ( s ) ) return "" ; if ( ! e . allow _svg _data _urls && /^data:image\/svg/i . test ( s ) ) return "" } return C && ( n = C . call ( x , n , "style" ) ) , "url('" + n . replace ( /\'/g , "\\'" ) + "')" } var h = { } , g , v , y , b , C = e . url _converter , x = e . url _converter _scope || this ; if ( t ) { for ( t = t . replace ( /[\u0000-\u001F]/g , "" ) , t = t . replace ( /\\[\"\';:\uFEFF]/g , f ) . replace ( /\"[^\"]+\"|\'[^\']+\'/g , function ( e ) { return e . replace ( /[;:]/g , f ) } ) ; g = o . exec ( t ) ; ) { if ( v = g [ 1 ] . replace ( a , "" ) . toLowerCase ( ) , y = g [ 2 ] . replace ( a , "" ) , y = y . replace ( /\\[0-9a-f]+/g , function ( e ) { return String . fromCharCode ( parseInt ( e . substr ( 1 ) , 16 ) ) } ) , v && y . length > 0 ) { if ( ! e . allow _script _urls && ( "behavior" == v || /expression\s*\(|\/\*|\*\// . test ( y ) ) ) continue ; "font-weight" === v && "700" === y ? y = "bold" : ( "color" === v || "background-color" === v ) && ( y = y . toLowerCase ( ) ) , y = y . replace ( r , n ) , y = y . replace ( i , m ) , h [ v ] = b ? p ( y , ! 0 ) : y } o . lastIndex = g . index + g [ 0 ] . length } s ( "border" , "" , ! 0 ) , s ( "border" , "-width" ) , s ( "border" , "-color" ) , s ( "border" , "-style" ) , s ( "padding" , "" ) , s ( "margin" , "" ) , d ( "border" , "border-width" , "border-style" , "border-color" ) , "medium none" === h . border && delete h . border , "none" === h [ "border-image" ] && delete h [ "border-image" ] } return h } , serialize : function ( e , t ) { function n ( t ) { var n , r , o , a ; if ( n = d [ t ] ) for ( r = 0 , o = n . length ; o > r ; r ++ ) t = n [ r ] , a = e [ t ] , a !== s && a . length > 0 && ( i += ( i . length > 0 ? " " : "" ) + t + ": " + a + ";" ) } function r ( e , t ) { var n ; return n = f [ "*" ] , n && n [ e ] ? ! 1 : ( n = f [ t ] , n && n [ e ] ? ! 1 : ! 0 ) } var i = "" , o , a ; if ( t && d ) n ( "*" ) , n ( t ) ; else for ( o in e ) a = e [ o ] , a !== s && a . length > 0 && ( ! f || r ( o , t ) ) && ( i += ( i . length > 0 ? " " : "" ) + o + ": " + a + ";" ) ; return i } } } } ) , r ( f , [ ] , function ( ) { return function ( e , t ) { function n ( e , n , r , i ) { var o , a ; if ( e ) { if ( ! i && e [ n ] ) return e [ n ] ; if ( e != t ) { if ( o = e [ r ] ) return o ; for ( a = e . parentNode ; a && a != t ; a = a . parentNode ) if ( o = a [ r ] ) return o } } } var r = e ; this . current = function ( ) { return r } , this . next = function ( e ) { return r = n ( r , "firstChild" , "nextSibling" , e ) } , this . prev = function ( e ) { return r = n ( r , "lastChild" , "previousSibling" , e ) } } } ) , r ( p , [ ] , function ( ) { function e ( e ) { return null === e || e === t ? "" : ( "" + e ) . replace ( h , "" ) } function n ( e , n ) { return n ? "array" == n && g ( e ) ? ! 0 : typeof e == n : e !== t } function r ( e ) { var t = [ ] , n , r ; for ( n = 0 , r = e . length ; r > n ; n ++ ) t [ n ] = e [ n ] ; return t } function i ( e , t , n ) { var r ; for ( e = e || [ ] , t = t || "," , "string" == typeof e && ( e = e . split ( t ) ) , n = n || { } , r = e . length ; r -- ; ) n [ e [ r ] ] = { } ; return n } function o ( e , n , r ) { var i , o ; if ( ! e ) return 0 ; if ( r = r || e , e . length !== t ) { for ( i = 0 , o = e . length ; o > i ; i ++ ) if ( n . call ( r , e [ i ] , i , e ) === ! 1 ) return 0 } else for ( i in e ) if ( e . hasOwnProperty ( i ) && n . call ( r , e [ i ] , i , e ) === ! 1 ) return 0 ; return 1 } function a ( e , t ) { var n = [ ] ; return o ( e , function ( e ) { n . push ( t ( e ) ) } ) , n } function s ( e , t ) { var n = [ ] ; return o ( e , function ( e ) { ( ! t || t ( e ) ) && n . push ( e ) } ) , n } function l ( e , t , n ) { var r = this , i , o , a , s , l , c = 0 ; if ( e = /^((static) )?([\w.]+)(:([\w.]+))?/ . exec ( e ) , a = e [ 3 ] . match ( /(^|\.)(\w+)$/i ) [ 2 ] , o = r . createNS ( e [ 3 ] . replace ( /\.\w+$/ , "" ) , n ) , ! o [ a ] ) { if ( "static" == e [ 2 ] ) return o [ a ] = t , void ( this . onCreate && this . o
} , destroy : function ( ) { var t = this ; if ( t . boundEvents ) { for ( var n = t . boundEvents . length ; n -- ; ) { var r = t . boundEvents [ n ] ; this . events . unbind ( r [ 0 ] , r [ 1 ] , r [ 2 ] ) } t . boundEvents = null } e . setDocument && e . setDocument ( ) , t . win = t . doc = t . root = t . events = t . frag = null } , isChildOf : function ( e , t ) { for ( ; e ; ) { if ( t === e ) return ! 0 ; e = e . parentNode } return ! 1 } , dumpRng : function ( e ) { return "startContainer: " + e . startContainer . nodeName + ", startOffset: " + e . startOffset + ", endContainer: " + e . endContainer . nodeName + ", endOffset: " + e . endOffset } , _findSib : function ( e , t , n ) { var r = this , i = t ; if ( e ) for ( "string" == typeof i && ( i = function ( e ) { return r . is ( e , t ) } ) , e = e [ n ] ; e ; e = e [ n ] ) if ( i ( e ) ) return e ; return null } } , u . DOM = new u ( document ) , u } ) , r ( b , [ y , p ] , function ( e , t ) { function n ( ) { function e ( e , t ) { function n ( ) { o . remove ( s ) , a && ( a . onreadystatechange = a . onload = a = null ) , t ( ) } function i ( ) { "undefined" != typeof console && console . log && console . log ( "Failed to load: " + e ) } var o = r , a , s ; s = o . uniqueId ( ) , a = document . createElement ( "script" ) , a . id = s , a . type = "text/javascript" , a . src = e , "onreadystatechange" in a ? a . onreadystatechange = function ( ) { /loaded|complete/ . test ( a . readyState ) && n ( ) } : a . onload = n , a . onerror = i , ( document . getElementsByTagName ( "head" ) [ 0 ] || document . body ) . appendChild ( a ) } var t = 0 , n = 1 , a = 2 , s = { } , l = [ ] , c = { } , u = [ ] , d = 0 , f ; this . isDone = function ( e ) { return s [ e ] == a } , this . markDone = function ( e ) { s [ e ] = a } , this . add = this . load = function ( e , n , r ) { var i = s [ e ] ; i == f && ( l . push ( e ) , s [ e ] = t ) , n && ( c [ e ] || ( c [ e ] = [ ] ) , c [ e ] . push ( { func : n , scope : r || this } ) ) } , this . loadQueue = function ( e , t ) { this . loadScripts ( l , e , t ) } , this . loadScripts = function ( t , r , l ) { function p ( e ) { i ( c [ e ] , function ( e ) { e . func . call ( e . scope ) } ) , c [ e ] = f } var m ; u . push ( { func : r , scope : l || this } ) , ( m = function ( ) { var r = o ( t ) ; t . length = 0 , i ( r , function ( t ) { return s [ t ] == a ? void p ( t ) : void ( s [ t ] != n && ( s [ t ] = n , d ++ , e ( t , function ( ) { s [ t ] = a , d -- , p ( t ) , m ( ) } ) ) ) } ) , d || ( i ( u , function ( e ) { e . func . call ( e . scope ) } ) , u . length = 0 ) } ) ( ) } } var r = e . DOM , i = t . each , o = t . grep ; return n . ScriptLoader = new n , n } ) , r ( C , [ b , p ] , function ( e , n ) { function r ( ) { var e = this ; e . items = [ ] , e . urls = { } , e . lookup = { } } var i = n . each ; return r . prototype = { get : function ( e ) { return this . lookup [ e ] ? this . lookup [ e ] . instance : t } , dependencies : function ( e ) { var t ; return this . lookup [ e ] && ( t = this . lookup [ e ] . dependencies ) , t || [ ] } , requireLangPack : function ( t , n ) { var i = r . language ; if ( i && r . languageLoad !== ! 1 ) { if ( n ) if ( n = "," + n + "," , - 1 != n . indexOf ( "," + i . substr ( 0 , 2 ) + "," ) ) i = i . substr ( 0 , 2 ) ; else if ( - 1 == n . indexOf ( "," + i + "," ) ) return ; e . ScriptLoader . add ( this . urls [ t ] + "/langs/" + i + ".js" ) } } , add : function ( e , t , n ) { return this . items . push ( t ) , this . lookup [ e ] = { instance : t , dependencies : n } , t } , createUrl : function ( e , t ) { return "object" == typeof t ? t : { prefix : e . prefix , resource : t , suffix : e . suffix } } , addComponents : function ( t , n ) { var r = this . urls [ t ] ; i ( n , function ( t ) { e . ScriptLoader . add ( r + "/" + t ) } ) } , load : function ( n , o , a , s ) { function l ( ) { var r = c . dependencies ( n ) ; i ( r , function ( e ) { var n = c . createUrl ( o , e ) ; c . load ( n . resource , n , t , t ) } ) , a && a . call ( s ? s : e ) } var c = this , u = o ; c . urls [ n ] || ( "object" == typeof o && ( u = o . prefix + o . resource + o . suffix ) , 0 !== u . indexOf ( "/" ) && - 1 == u . indexOf ( "://" ) && ( u = r . baseURL + "/" + u ) , c . urls [ n ] = u . substring ( 0 , u . lastIndexOf ( "/" ) ) , c . lookup [ n ] ? l ( ) : e . ScriptLoader . add ( u , l , s ) ) } } , r . PluginManager = new r , r . ThemeManager = new r , r } ) , r ( x , [ ] , function ( ) { function e ( e , t , n ) { var r , i , o = n ? "lastChild" : "firstChild" , a = n ? "prev" : "next" ; if ( e [ o ] ) return e [ o ] ; if ( e !== t ) { if ( r = e [ a ] ) return r ; for ( i = e . parent ; i && i !== t ; i = i . parent ) if ( r = i [ a ] ) return r } } function t ( e , t ) { this . name = e , this . type = t , 1 === t && ( this . attributes = [ ] , this . attributes . map = { } ) } var n = /^[ \t\r\n]*$/ , r = { "#text" : 3 , "#comment" : 8 , "#cdata" : 4 , "#pi" : 7 , "#doctype" : 10 , "#document-fragment" : 11 } ; return t . prototype = { replace : function ( e ) { var t = this ; return e . parent && e . remove ( ) , t . insert ( e , t ) , t . remove ( ) , t } , attr : function ( e , t ) { var n = this , r , i , o ; if ( "string" != typeof e ) { for ( i in e ) n . attr ( i , e [ i ] ) ; return n } if ( r = n . attributes ) { if ( t !== o ) { if ( null === t ) { if ( e in r . map ) for ( delete r . map [ e ] , i = r . length ; i -- ; ) if ( r [ i ] . name === e ) return r = r . splice ( i , 1 ) , n ; return n } if ( e in r . map ) { for ( i = r . length ; i -- ; ) if ( r [ i ] . name === e ) { r [ i ] . value = t ; break } } else r . push ( { name : e , value : t } ) ; return r . map [ e ] = t , n } return r . map [ e ] } } , clone : function ( ) { var e = this , n = new t ( e . name , e . type ) , r , i , o , a , s ; if ( o = e . attributes ) { for ( s = [ ] , s . map = { } , r = 0 , i = o . length ; i > r ; r ++ ) a = o [ r ] , "id" !
return a . ie && s . select ( "script,style,select,map" ) . length > 0 ? ( h = t . innerHTML , t = t . cloneNode ( ! 1 ) , s . setHTML ( t , h ) ) : t = t . cloneNode ( ! 0 ) , o = t . ownerDocument . implementation , o . createHTMLDocument && ( u = o . createHTMLDocument ( "" ) , l ( "BODY" == t . nodeName ? t . childNodes : [ t ] , function ( e ) { u . body . appendChild ( u . importNode ( e , ! 0 ) ) } ) , t = "BODY" != t . nodeName ? u . body . firstChild : u . body , p = s . doc , s . doc = u ) , n = n || { } , n . format = n . format || "html" , n . selection && ( n . forced _root _block = "" ) , n . no _events || ( n . node = t , i . onPreProcess ( n ) ) , m = new r ( e , d ) , n . content = m . serialize ( f . parse ( c ( n . getInner ? t . innerHTML : s . getOuterHTML ( t ) ) , n ) ) , n . cleanup || ( n . content = n . content . replace ( /\uFEFF/g , "" ) ) , n . no _events || i . onPostProcess ( n ) , p && ( s . doc = p ) , n . node = null , n . content } , addRules : function ( e ) { d . addValidElements ( e ) } , setRules : function ( e ) { d . setValidElements ( e ) } , onPreProcess : function ( e ) { i && i . fire ( "PreProcess" , e ) } , onPostProcess : function ( e ) { i && i . fire ( "PostProcess" , e ) } } } } ) , r ( T , [ ] , function ( ) { function e ( e ) { function t ( t , n ) { var r , i = 0 , o , a , s , l , c , u , d = - 1 , f ; if ( r = t . duplicate ( ) , r . collapse ( n ) , f = r . parentElement ( ) , f . ownerDocument === e . dom . doc ) { for ( ; "false" === f . contentEditable ; ) f = f . parentNode ; if ( ! f . hasChildNodes ( ) ) return { node : f , inside : 1 } ; for ( s = f . children , o = s . length - 1 ; o >= i ; ) if ( u = Math . floor ( ( i + o ) / 2 ) , l = s [ u ] , r . moveToElementText ( l ) , d = r . compareEndPoints ( n ? "StartToStart" : "EndToEnd" , t ) , d > 0 ) o = u - 1 ; else { if ( ! ( 0 > d ) ) return { node : l } ; i = u + 1 } if ( 0 > d ) for ( l ? r . collapse ( ! 1 ) : ( r . moveToElementText ( f ) , r . collapse ( ! 0 ) , l = f , a = ! 0 ) , c = 0 ; 0 !== r . compareEndPoints ( n ? "StartToStart" : "StartToEnd" , t ) && 0 !== r . move ( "character" , 1 ) && f == r . parentElement ( ) ; ) c ++ ; else for ( r . collapse ( ! 0 ) , c = 0 ; 0 !== r . compareEndPoints ( n ? "StartToStart" : "StartToEnd" , t ) && 0 !== r . move ( "character" , - 1 ) && f == r . parentElement ( ) ; ) c ++ ; return { node : l , position : d , offset : c , inside : a } } } function n ( ) { function n ( e ) { var n = t ( o , e ) , r , i , s = 0 , l , c , u ; if ( r = n . node , i = n . offset , n . inside && ! r . hasChildNodes ( ) ) return void a [ e ? "setStart" : "setEnd" ] ( r , 0 ) ; if ( i === c ) return void a [ e ? "setStartBefore" : "setEndAfter" ] ( r ) ; if ( n . position < 0 ) { if ( l = n . inside ? r . firstChild : r . nextSibling , ! l ) return void a [ e ? "setStartAfter" : "setEndAfter" ] ( r ) ; if ( ! i ) return void ( 3 == l . nodeType ? a [ e ? "setStart" : "setEnd" ] ( l , 0 ) : a [ e ? "setStartBefore" : "setEndBefore" ] ( l ) ) ; for ( ; l ; ) { if ( 3 == l . nodeType && ( u = l . nodeValue , s += u . length , s >= i ) ) { r = l , s -= i , s = u . length - s ; break } l = l . nextSibling } } else { if ( l = r . previousSibling , ! l ) return a [ e ? "setStartBefore" : "setEndBefore" ] ( r ) ; if ( ! i ) return void ( 3 == r . nodeType ? a [ e ? "setStart" : "setEnd" ] ( l , r . nodeValue . length ) : a [ e ? "setStartAfter" : "setEndAfter" ] ( l ) ) ; for ( ; l ; ) { if ( 3 == l . nodeType && ( s += l . nodeValue . length , s >= i ) ) { r = l , s -= i ; break } l = l . previousSibling } } a [ e ? "setStart" : "setEnd" ] ( r , s ) } var o = e . getRng ( ) , a = i . createRng ( ) , s , l , c , u , d ; if ( s = o . item ? o . item ( 0 ) : o . parentElement ( ) , s . ownerDocument != i . doc ) return a ; if ( l = e . isCollapsed ( ) , o . item ) return a . setStart ( s . parentNode , i . nodeIndex ( s ) ) , a . setEnd ( a . startContainer , a . startOffset + 1 ) , a ; try { n ( ! 0 ) , l || n ( ) } catch ( f ) { if ( - 2147024809 != f . number ) throw f ; d = r . getBookmark ( 2 ) , c = o . duplicate ( ) , c . collapse ( ! 0 ) , s = c . parentElement ( ) , l || ( c = o . duplicate ( ) , c . collapse ( ! 1 ) , u = c . parentElement ( ) , u . innerHTML = u . innerHTML ) , s . innerHTML = s . innerHTML , r . moveToBookmark ( d ) , o = e . getRng ( ) , n ( ! 0 ) , l || n ( ) } return a } var r = this , i = e . dom , o = ! 1 ; this . getBookmark = function ( n ) { function r ( e ) { var t , n , r , o , a = [ ] ; for ( t = e . parentNode , n = i . getRoot ( ) . parentNode ; t != n && 9 !== t . nodeType ; ) { for ( r = t . children , o = r . length ; o -- ; ) if ( e === r [ o ] ) { a . push ( o ) ; break } e = t , t = t . parentNode } return a } function o ( e ) { var n ; return n = t ( a , e ) , n ? { position : n . position , offset : n . offset , indexes : r ( n . node ) , inside : n . inside } : void 0 } var a = e . getRng ( ) , s = { } ; return 2 === n && ( a . item ? s . start = { ctrl : ! 0 , indexes : r ( a . item ( 0 ) ) } : ( s . start = o ( ! 0 ) , e . isCollapsed ( ) || ( s . end = o ( ) ) ) ) , s } , this . moveToBookmark = function ( e ) { function t ( e ) { var t , n , r , o ; for ( t = i . getRoot ( ) , n = e . length - 1 ; n >= 0 ; n -- ) o = t . children , r = e [ n ] , r <= o . length - 1 && ( t = o [ r ] ) ; return t } function n ( n ) { var i = e [ n ? "start" : "end" ] , a , s , l , c ; i && ( a = i . position > 0 , s = o . createTextRange ( ) , s . moveToElementText ( t ( i . indexes ) ) , c = i . offset , c !== l ? ( s . collapse ( i . inside || a ) , s . moveStart ( "character" , a ? - c : c ) ) : s . collapse ( n ) , r . setEndPoint ( n ? "StartToStart" : "EndToStart" , s ) , n && r . collapse ( ! 0 ) ) } var r , o = i . doc . body ; e . start && ( e . start . ctrl ? ( r = o . createControlRange ( ) , r . addElement ( t ( e . start . indexes ) ) ,
} ) } } function o ( ) { function t ( t , n ) { var i = new e ( n ) ; for ( r = i . current ( ) ; r ; r = i . prev ( ) ) if ( r . childNodes . length > 1 || r == t || "BR" == r . tagName ) return r } var n = a . selection . getRng ( ) , i = n . startContainer , o = n . endContainer ; if ( i != o && 0 === n . endOffset ) { var s = t ( i , o ) , l = 3 == s . nodeType ? s . length : s . childNodes . length ; n . setEnd ( s , l ) } return n } function l ( e , t , n , r , i ) { var o = [ ] , a = - 1 , s , l = - 1 , c = - 1 , u ; return it ( e . childNodes , function ( e , t ) { return "UL" === e . nodeName || "OL" === e . nodeName ? ( a = t , s = e , ! 1 ) : void 0 } ) , it ( e . childNodes , function ( e , n ) { rt ( e ) && ( e . id == t . id + "_start" ? l = n : e . id == t . id + "_end" && ( c = n ) ) } ) , 0 >= a || a > l && c > a ? ( it ( ot ( e . childNodes ) , i ) , 0 ) : ( u = W . clone ( n , X ) , it ( ot ( e . childNodes ) , function ( e , t ) { ( a > l && a > t || l > a && t > a ) && ( o . push ( e ) , e . parentNode . removeChild ( e ) ) } ) , a > l ? e . insertBefore ( u , s ) : l > a && e . insertBefore ( u , s . nextSibling ) , r . push ( u ) , it ( o , function ( e ) { u . appendChild ( e ) } ) , u ) } function u ( e , r , o ) { var a = [ ] , u , f , m = ! 0 ; u = p . inline || p . block , f = W . create ( u ) , i ( f ) , U . walk ( e , function ( e ) { function h ( e ) { var v , C , x , w , _ ; return _ = m , v = e . nodeName . toLowerCase ( ) , C = e . parentNode . nodeName . toLowerCase ( ) , 1 === e . nodeType && et ( e ) && ( _ = m , m = "true" === et ( e ) , w = ! 0 ) , k ( v , "br" ) ? ( g = 0 , void ( p . block && W . remove ( e ) ) ) : p . wrapper && b ( e , t , n ) ? void ( g = 0 ) : m && ! w && p . block && ! p . wrapper && s ( v ) && q ( C , u ) ? ( e = W . rename ( e , u ) , i ( e ) , a . push ( e ) , void ( g = 0 ) ) : p . selector && ( it ( d , function ( t ) { "collapsed" in t && t . collapsed !== y || W . is ( e , t . selector ) && ! c ( e ) && ( i ( e , t ) , x = ! 0 ) } ) , ! p . inline || x ) ? void ( g = 0 ) : void ( ! m || w || ! q ( u , v ) || ! q ( C , u ) || ! o && 3 === e . nodeType && 1 === e . nodeValue . length && 65279 === e . nodeValue . charCodeAt ( 0 ) || c ( e ) || p . inline && $ ( e ) ? "li" == v && r ? g = l ( e , r , f , a , h ) : ( g = 0 , it ( ot ( e . childNodes ) , h ) , w && ( m = _ ) , g = 0 ) : ( g || ( g = W . clone ( f , X ) , e . parentNode . insertBefore ( g , e ) , a . push ( g ) ) , g . appendChild ( e ) ) ) } var g ; it ( e , h ) } ) , p . wrap _links === ! 1 && it ( a , function ( e ) { function t ( e ) { var n , r , i ; if ( "A" === e . nodeName ) { for ( r = W . clone ( f , X ) , a . push ( r ) , i = ot ( e . childNodes ) , n = 0 ; n < i . length ; n ++ ) r . appendChild ( i [ n ] ) ; e . appendChild ( r ) } it ( ot ( e . childNodes ) , t ) } t ( e ) } ) , it ( a , function ( e ) { function r ( e ) { var t = 0 ; return it ( e . childNodes , function ( e ) { A ( e ) || rt ( e ) || t ++ } ) , t } function o ( e ) { var t , n ; return it ( e . childNodes , function ( e ) { return 1 != e . nodeType || rt ( e ) || c ( e ) ? void 0 : ( t = e , X ) } ) , t && ! rt ( t ) && E ( t , p ) && ( n = W . clone ( t , X ) , i ( n ) , W . replace ( n , e , J ) , W . remove ( t , 1 ) ) , n || e } var s ; if ( s = r ( e ) , ( a . length > 1 || ! $ ( e ) ) && 0 === s ) return void W . remove ( e , 1 ) ; if ( p . inline || p . wrapper ) { if ( p . exact || 1 !== s || ( e = o ( e ) ) , it ( d , function ( t ) { it ( W . select ( t . inline , e ) , function ( e ) { var r ; if ( ! rt ( e ) ) { if ( t . wrap _links === ! 1 ) { r = e . parentNode ; do if ( "A" === r . nodeName ) return ; while ( r = r . parentNode ) } L ( t , n , e , t . exact ? e : null ) } } ) } ) , b ( e . parentNode , t , n ) ) return W . remove ( e , 1 ) , e = 0 , J ; p . merge _with _parents && W . getParent ( e . parentNode , function ( r ) { return b ( r , t , n ) ? ( W . remove ( e , 1 ) , e = 0 , J ) : void 0 } ) , e && p . merge _siblings !== ! 1 && ( e = P ( H ( e ) , e ) , e = P ( e , H ( e , J ) ) ) } } ) } var d = f ( t ) , p = d [ 0 ] , m , v , y = ! r && V . isCollapsed ( ) ; if ( p ) if ( r ) r . nodeType ? ( v = W . createRng ( ) , v . setStartBefore ( r ) , v . setEndAfter ( r ) , u ( D ( v , d ) , null , ! 0 ) ) : u ( r , null , ! 0 ) ; else if ( y && p . inline && ! W . select ( "td.mce-item-selected,th.mce-item-selected" ) . length ) I ( "apply" , t , n ) ; else { var C = a . selection . getNode ( ) ; j || ! d [ 0 ] . defaultBlock || W . getParent ( C , W . isBlock ) || g ( d [ 0 ] . defaultBlock ) , a . selection . setRng ( o ( ) ) , m = V . getBookmark ( ) , u ( D ( V . getRng ( J ) , d ) , m ) , p . styles && ( p . styles . color || p . styles . textDecoration ) && ( at ( C , h , "childNodes" ) , h ( C ) ) , V . moveToBookmark ( m ) , F ( V . getRng ( J ) ) , a . nodeChanged ( ) } } function v ( e , t , n ) { function r ( e ) { var n , i , o , a , s ; if ( 1 === e . nodeType && et ( e ) && ( a = v , v = "true" === et ( e ) , s = ! 0 ) , n = ot ( e . childNodes ) , v && ! s ) for ( i = 0 , o = d . length ; o > i && ! L ( d [ i ] , t , e , e ) ; i ++ ) ; if ( p . deep && n . length ) { for ( i = 0 , o = n . length ; o > i ; i ++ ) r ( n [ i ] ) ; s && ( v = a ) } } function i ( n ) { var r ; return it ( l ( n . parentNode ) . reverse ( ) , function ( n ) { var i ; r || "_start" == n . id || "_end" == n . id || ( i = b ( n , e , t ) , i && i . split !== ! 1 && ( r = n ) ) } ) , r } function o ( e , n , r , i ) { var o , a , s , l , c , u ; if ( e ) { for ( u = e . parentNode , o = n . parentNode ; o && o != u ; o = o . parentNode ) { for ( a = W . clone ( o , X ) , c = 0 ; c < d . length ; c ++ ) if ( L ( d [ c ] , t , a , a ) ) { a = 0 ; break } a && ( s && a . appendChild ( s ) , l || ( l = a ) , s = a ) } ! i || p . mixed && $ ( e ) || ( n = W . split ( e , n ) ) , s && ( r . parentNode . insertBefore ( s , r ) , l . appendChild ( r ) ) } return n } function s ( e ) { return o ( i ( e ) , e , e , ! 0 ) } function c ( e ) { var t = W . get ( e ? "_start" : "_end" ) , n = t [ e ? "firstChild" : "lastChild" ] ; return rt ( n ) && ( n = n [ e ? "firstChild" : "lastChild" ] ) , W . remove ( t , ! 0 ) , n } function u ( e ) { var t , n ,
a += "rtl" == _ . getStyle ( o , "direction" , ! 0 ) ? "Right" : "Left" , "outdent" == e ? ( i = Math . max ( 0 , parseInt ( o . style [ a ] || 0 , 10 ) - t ) , _ . setStyle ( o , a , i ? i + n : "" ) ) : ( i = parseInt ( o . style [ a ] || 0 , 10 ) + t + n , _ . setStyle ( o , a , i ) ) } } ) ) } , mceRepaint : function ( ) { if ( u ) try { x ( f ) , N . getSel ( ) && N . getSel ( ) . selectAllChildren ( r . getBody ( ) ) , N . collapse ( f ) , w ( ) } catch ( e ) { } } , InsertHorizontalRule : function ( ) { r . execCommand ( "mceInsertContent" , ! 1 , "<hr />" ) } , mceToggleVisualAid : function ( ) { r . hasVisual = ! r . hasVisual , r . addVisual ( ) } , mceReplaceContent : function ( e , t , n ) { r . execCommand ( "mceInsertContent" , ! 1 , n . replace ( /\{\$selection\}/g , N . getContent ( { format : "text" } ) ) ) } , mceInsertLink : function ( e , t , n ) { var r ; "string" == typeof n && ( n = { href : n } ) , r = _ . getParent ( N . getNode ( ) , "a" ) , n . href = n . href . replace ( " " , "%20" ) , r && n . href || S . remove ( "link" ) , n . href && S . apply ( "link" , n , r ) } , selectAll : function ( ) { var e = _ . getRoot ( ) , t ; N . getRng ( ) . setStart ? ( t = _ . createRng ( ) , t . setStart ( e , 0 ) , t . setEnd ( e , e . childNodes . length ) , N . setRng ( t ) ) : ( t = N . getRng ( ) , t . item || ( t . moveToElementText ( e ) , t . select ( ) ) ) } , "delete" : function ( ) { y ( "Delete" ) ; var e = r . getBody ( ) ; _ . isEmpty ( e ) && ( r . setContent ( "" ) , e . firstChild && _ . isBlock ( e . firstChild ) ? r . selection . setCursorLocation ( e . firstChild , 0 ) : r . selection . setCursorLocation ( e , 0 ) ) } , mceNewDocument : function ( ) { r . setContent ( "" ) } } ) , v ( { "JustifyLeft,JustifyCenter,JustifyRight,JustifyFull" : function ( e ) { var t = "align" + e . substring ( 7 ) , n = N . isCollapsed ( ) ? [ _ . getParent ( N . getNode ( ) , _ . isBlock ) ] : N . getSelectedBlocks ( ) , r = s ( n , function ( e ) { return ! ! S . matchNode ( e , t ) } ) ; return - 1 !== l ( r , f ) } , "Bold,Italic,Underline,Strikethrough,Superscript,Subscript" : function ( e ) { return b ( e ) } , mceBlockQuote : function ( ) { return b ( "blockquote" ) } , Outdent : function ( ) { var e ; if ( k . inline _styles ) { if ( ( e = _ . getParent ( N . getStart ( ) , _ . isBlock ) ) && parseInt ( e . style . paddingLeft , 10 ) > 0 ) return f ; if ( ( e = _ . getParent ( N . getEnd ( ) , _ . isBlock ) ) && parseInt ( e . style . paddingLeft , 10 ) > 0 ) return f } return h ( "InsertUnorderedList" ) || h ( "InsertOrderedList" ) || ! k . inline _styles && ! ! _ . getParent ( N . getNode ( ) , "BLOCKQUOTE" ) } , "InsertUnorderedList,InsertOrderedList" : function ( e ) { var t = _ . getParent ( N . getNode ( ) , "ul,ol" ) ; return t && ( "insertunorderedlist" === e && "UL" === t . tagName || "insertorderedlist" === e && "OL" === t . tagName ) } } , "state" ) , v ( { "FontSize,FontName" : function ( e ) { var t = 0 , n ; return ( n = _ . getParent ( N . getNode ( ) , "span" ) ) && ( t = "fontsize" == e ? n . style . fontSize : n . style . fontFamily . replace ( /, /g , "," ) . replace ( /[\'\"]/g , "" ) . toLowerCase ( ) ) , t } } , "value" ) , v ( { Undo : function ( ) { r . undoManager . undo ( ) } , Redo : function ( ) { r . undoManager . redo ( ) } } ) } } ) , r ( W , [ p ] , function ( e ) { function t ( e , i ) { var o = this , a , s ; if ( e = r ( e ) , i = o . settings = i || { } , a = i . base _uri , /^([\w\-]+):([^\/]{2})/i . test ( e ) || /^\s*#/ . test ( e ) ) return void ( o . source = e ) ; var l = 0 === e . indexOf ( "//" ) ; 0 !== e . indexOf ( "/" ) || l || ( e = ( a ? a . protocol || "http" : "http" ) + "://mce_host" + e ) , /^[\w\-]*:?\/\// . test ( e ) || ( s = i . base _uri ? i . base _uri . path : new t ( location . href ) . directory , "" === i . base _uri . protocol ? e = "//mce_host" + o . toAbsPath ( s , e ) : ( e = /([^#?]*)([#?]?.*)/ . exec ( e ) , e = ( a && a . protocol || "http" ) + "://mce_host" + o . toAbsPath ( s , e [ 1 ] ) + e [ 2 ] ) ) , e = e . replace ( /@@/g , "(mce_at)" ) , e = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ . exec ( e ) , n ( [ "source" , "protocol" , "authority" , "userInfo" , "user" , "password" , "host" , "port" , "relative" , "path" , "directory" , "file" , "query" , "anchor" ] , function ( t , n ) { var r = e [ n ] ; r && ( r = r . replace ( /\(mce_at\)/g , "@@" ) ) , o [ t ] = r } ) , a && ( o . protocol || ( o . protocol = a . protocol ) , o . userInfo || ( o . userInfo = a . userInfo ) , o . port || "mce_host" !== o . host || ( o . port = a . port ) , o . host && "mce_host" !== o . host || ( o . host = a . host ) , o . source = "" ) , l && ( o . protocol = "" ) } var n = e . each , r = e . trim , i = { ftp : 21 , http : 80 , https : 443 , mailto : 25 } ; return t . prototype = { setPath : function ( e ) { var t = this ; e = /^(.*?)\/?(\w+)?$/ . exec ( e ) , t . path = e [ 0 ] , t . directory = e [ 1 ] , t . file = e [ 2 ] , t . source = "" , t . getURI ( ) } , toRelative : function ( e ) { var n = this , r ; if ( "./" === e ) return e ; if ( e = new t ( e , { base _uri : n } ) , "mce_host" != e . host && n . host != e . host && e . host || n . port != e . port || n . protocol != e . protocol && "" !== e . protocol ) return e . getURI ( ) ; var i = n . getURI ( ) , o = e . getURI ( ) ; return i == o || "/" == i . charAt ( i . length - 1 ) && i . substr ( 0 , i . length - 1 ) == o ? i : ( r = n . toR
} , drag : function ( e ) { var t , u , d , f , p = i . layoutRect ( ) ; u = p . contentW > p . innerW , d = p . contentH > p . innerH , f = i . getEl ( "body" ) [ "client" + a ] - 2 * o , f -= u && d ? i . getEl ( "scroll" + n ) [ "client" + l ] : 0 , t = f / i . getEl ( "body" ) [ "scroll" + a ] , i . getEl ( "body" ) [ "scroll" + r ] = c + e [ "delta" + s ] / t } , stop : function ( ) { e . removeClass ( e . get ( u ) , d + "active" ) } } ) } i . addClass ( "scroll" ) , n ( "v" , "Top" , "Height" , "Y" , "Width" ) , n ( "h" , "Left" , "Width" , "X" , "Height" ) } var i = this , o = 2 ; i . settings . autoScroll && ( i . _hasScroll || ( i . _hasScroll = ! 0 , r ( ) , i . on ( "wheel" , function ( e ) { var t = i . getEl ( "body" ) ; t . scrollLeft += 10 * ( e . deltaX || 0 ) , t . scrollTop += 10 * e . deltaY , n ( ) } ) , e . on ( i . getEl ( "body" ) , "scroll" , n ) ) , n ( ) ) } } } ) , r ( Z , [ X , Q ] , function ( e , t ) { return e . extend ( { Defaults : { layout : "fit" , containerCls : "panel" } , Mixins : [ t ] , renderHtml : function ( ) { var e = this , t = e . _layout , n = e . settings . html ; return e . preRender ( ) , t . preRender ( e ) , "undefined" == typeof n ? n = '<div id="' + e . _id + '-body" class="' + e . classes ( "body" ) + '">' + t . renderHtml ( e ) + "</div>" : ( "function" == typeof n && ( n = n . call ( e ) ) , e . _hasBody = ! 1 ) , '<div id="' + e . _id + '" class="' + e . classes ( ) + '" hidefocus="1" tabindex="-1" role="group">' + ( e . _preBodyHtml || "" ) + n + "</div>" } } ) } ) , r ( et , [ j ] , function ( e ) { function t ( t , n , r ) { var i , o , a , s , l , c , u , d , f , p ; return f = e . getViewPort ( ) , o = e . getPos ( n ) , a = o . x , s = o . y , t . _fixed && ( a -= f . x , s -= f . y ) , i = t . getEl ( ) , p = e . getSize ( i ) , l = p . width , c = p . height , p = e . getSize ( n ) , u = p . width , d = p . height , r = ( r || "" ) . split ( "" ) , "b" === r [ 0 ] && ( s += d ) , "r" === r [ 1 ] && ( a += u ) , "c" === r [ 0 ] && ( s += Math . round ( d / 2 ) ) , "c" === r [ 1 ] && ( a += Math . round ( u / 2 ) ) , "b" === r [ 3 ] && ( s -= c ) , "r" === r [ 4 ] && ( a -= l ) , "c" === r [ 3 ] && ( s -= Math . round ( c / 2 ) ) , "c" === r [ 4 ] && ( a -= Math . round ( l / 2 ) ) , { x : a , y : s , w : l , h : c } } return { testMoveRel : function ( n , r ) { for ( var i = e . getViewPort ( ) , o = 0 ; o < r . length ; o ++ ) { var a = t ( this , n , r [ o ] ) ; if ( this . _fixed ) { if ( a . x > 0 && a . x + a . w < i . w && a . y > 0 && a . y + a . h < i . h ) return r [ o ] } else if ( a . x > i . x && a . x + a . w < i . w + i . x && a . y > i . y && a . y + a . h < i . h + i . y ) return r [ o ] } return r [ 0 ] } , moveRel : function ( e , n ) { "string" != typeof n && ( n = this . testMoveRel ( e , n ) ) ; var r = t ( this , e , n ) ; return this . moveTo ( r . x , r . y ) } , moveBy : function ( e , t ) { var n = this , r = n . layoutRect ( ) ; return n . moveTo ( r . x + e , r . y + t ) , n } , moveTo : function ( t , n ) { function r ( e , t , n ) { return 0 > e ? 0 : e + n > t ? ( e = t - n , 0 > e ? 0 : e ) : e } var i = this ; if ( i . settings . constrainToViewport ) { var o = e . getViewPort ( window ) , a = i . layoutRect ( ) ; t = r ( t , o . w + o . x , a . w ) , n = r ( n , o . h + o . y , a . h ) } return i . _rendered ? i . layoutRect ( { x : t , y : n } ) . repaint ( ) : ( i . settings . x = t , i . settings . y = n ) , i . fire ( "move" , { x : t , y : n } ) , i } } } ) , r ( tt , [ j ] , function ( e ) { return { resizeToContent : function ( ) { this . _layoutRect . autoResize = ! 0 , this . _lastRect = null , this . reflow ( ) } , resizeTo : function ( t , n ) { if ( 1 >= t || 1 >= n ) { var r = e . getWindowSize ( ) ; t = 1 >= t ? t * r . w : t , n = 1 >= n ? n * r . h : n } return this . _layoutRect . autoResize = ! 1 , this . layoutRect ( { minW : t , minH : n , w : t , h : n } ) . reflow ( ) } , resizeBy : function ( e , t ) { var n = this , r = n . layoutRect ( ) ; return n . resizeTo ( r . w + e , r . h + t ) } } } ) , r ( nt , [ Z , et , tt , j ] , function ( e , t , n , r ) { function i ( ) { function e ( e , t ) { for ( ; e ; ) { if ( e == t ) return ! 0 ; e = e . parent ( ) } } c || ( c = function ( t ) { if ( 2 != t . button ) for ( var n = f . length ; n -- ; ) { var r = f [ n ] , i = r . getParentCtrl ( t . target ) ; if ( r . settings . autohide ) { if ( i && ( e ( i , r ) || r . parent ( ) === i ) ) continue ; t = r . fire ( "autohide" , { target : t . target } ) , t . isDefaultPrevented ( ) || r . hide ( ) } } } , r . on ( document , "click" , c ) ) } function o ( ) { u || ( u = function ( ) { var e ; for ( e = f . length ; e -- ; ) s ( f [ e ] ) } , r . on ( window , "scroll" , u ) ) } function a ( ) { d || ( d = function ( ) { h . hideAll ( ) } , r . on ( window , "resize" , d ) ) } function s ( e ) { function t ( t , n ) { for ( var r , i = 0 ; i < f . length ; i ++ ) if ( f [ i ] != e ) for ( r = f [ i ] . parent ( ) ; r && ( r = r . parent ( ) ) ; ) r == e && f [ i ] . fixed ( t ) . moveBy ( 0 , n ) . repaint ( ) } var n = r . getViewPort ( ) . y ; e . settings . autofix && ( e . _fixed ? e . _autoFixY > n && ( e . fixed ( ! 1 ) . layoutRect ( { y : e . _autoFixY } ) . repaint ( ) , t ( ! 1 , e . _autoFixY - n ) ) : ( e . _autoFixY = e . layoutRect ( ) . y , e . _autoFixY < n && ( e . fixed ( ! 0 ) . layoutRect ( { y : 0 } ) . repaint ( ) , t ( ! 0 , n - e . _autoFixY ) ) ) ) } function l ( e ) { var t ; for ( t = f . length ; t -- ; ) f [ t ] === e && f . splice ( t , 1 ) ; for ( t = p . length ; t -- ; ) p [ t ] === e && p . splice ( t , 1 ) } var c , u , d , f = [ ] , p = [ ] , m , h = e . extend ( { Mixins : [ t , n ] , init : function ( e ) { function t ( ) { var e , t = h . zIndex || 65535 , i ; if ( p . length ) for ( e = 0 ; e < p . length ; e ++ ) p [ e ] . modal && ( t ++ , i = p [ e ] ) , p [ e ] . getEl ( ) . style . zIndex = t , p [ e ] . zIndex = t , t ++ ; var o = document . getElementById ( n . classPrefix + "modal-block" ) ; i ? r . css ( o , "z-index" , i . zIndex - 1 ) : o && ( o . parentNode . removeChild ( o ) , m = ! 1 )
for ( t . iframeHTML = n . doctype + "<html><head>" , n . document _base _url != t . documentBaseUrl && ( t . iframeHTML += '<base href="' + t . documentBaseURI . getURI ( ) + '" />' ) , ! b . caretAfter && n . ie7 _compat && ( t . iframeHTML += '<meta http-equiv="X-UA-Compatible" content="IE=7" />' ) , t . iframeHTML += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />' , m = 0 ; m < t . contentCSS . length ; m ++ ) { var g = t . contentCSS [ m ] ; t . iframeHTML += '<link type="text/css" rel="stylesheet" href="' + g + '" />' , t . loadedCSS [ g ] = ! 0 } d = n . body _id || "tinymce" , - 1 != d . indexOf ( "=" ) && ( d = t . getParam ( "body_id" , "" , "hash" ) , d = d [ t . id ] || d ) , f = n . body _class || "" , - 1 != f . indexOf ( "=" ) && ( f = t . getParam ( "body_class" , "" , "hash" ) , f = f [ t . id ] || "" ) , t . iframeHTML += '</head><body id="' + d + '" class="mce-content-body ' + f + '" onload="window.parent.tinymce.get(\'' + t . id + "').fire('load');\"><br></body></html>" ; var v = 'javascript:(function(){document.open();document.domain="' + document . domain + '";var ed = window.parent.tinymce.get("' + t . id + '");document.write(ed.iframeHTML);document.close();ed.initContentBody(true);})()' ; if ( document . domain != location . hostname && ( u = v ) , s = N . add ( l . iframeContainer , "iframe" , { id : t . id + "_ifr" , src : u || 'javascript:""' , frameBorder : "0" , allowTransparency : "true" , title : t . editorManager . translate ( "Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help" ) , style : { width : "100%" , height : o , display : "block" } } ) , H ) try { t . getDoc ( ) } catch ( y ) { s . src = u = v } t . contentAreaContainer = l . iframeContainer , l . editorContainer && ( N . get ( l . editorContainer ) . style . display = t . orgDisplay ) , N . get ( t . id ) . style . display = "none" , N . setAttrib ( t . id , "aria-hidden" , ! 0 ) , u || t . initContentBody ( ) , r = s = l = null } , initContentBody : function ( t ) { var n = this , o = n . settings , f = N . get ( n . id ) , p = n . getDoc ( ) , m , h ; o . inline || ( n . getElement ( ) . style . visibility = n . orgVisibility ) , t || o . content _editable || ( p . open ( ) , p . write ( n . iframeHTML ) , p . close ( ) ) , o . content _editable && ( n . on ( "remove" , function ( ) { var e = this . getBody ( ) ; N . removeClass ( e , "mce-content-body" ) , N . removeClass ( e , "mce-edit-focus" ) , N . setAttrib ( e , "contentEditable" , null ) } ) , N . addClass ( f , "mce-content-body" ) , n . contentDocument = p = o . content _document || document , n . contentWindow = o . content _window || window , n . bodyElement = f , o . content _document = o . content _window = null , o . root _name = f . nodeName . toLowerCase ( ) ) , m = n . getBody ( ) , m . disabled = ! 0 , o . readonly || ( n . inline && "static" == N . getStyle ( m , "position" , ! 0 ) && ( m . style . position = "relative" ) , m . contentEditable = n . getParam ( "content_editable_state" , ! 0 ) ) , m . disabled = ! 1 , n . schema = new g ( o ) , n . dom = new e ( p , { keep _values : ! 0 , url _converter : n . convertURL , url _converter _scope : n , hex _colors : o . force _hex _style _colors , class _filter : o . class _filter , update _styles : ! 0 , root _element : o . content _editable ? n . id : null , collect : o . content _editable , schema : n . schema , onSetAttrib : function ( e ) { n . fire ( "SetAttrib" , e ) } } ) , n . parser = new v ( o , n . schema ) , n . parser . addAttributeFilter ( "src,href,style,tabindex" , function ( e , t ) { for ( var r = e . length , i , o = n . dom , a , s ; r -- ; ) i = e [ r ] , a = i . attr ( t ) , s = "data-mce-" + t , i . attributes . map [ s ] || ( "style" === t ? ( a = o . serializeStyle ( o . parseStyle ( a ) , i . name ) , a . length || ( a = null ) , i . attr ( s , a ) , i . attr ( t , a ) ) : "tabindex" === t ? ( i . attr ( s , a ) , i . attr ( t , null ) ) : i . attr ( s , n . convertURL ( a , t , i . name ) ) ) } ) , n . parser . addNodeFilter ( "script" , function ( e ) { for ( var t = e . length , n ; t -- ; ) n = e [ t ] , n . attr ( "type" , "mce-" + ( n . attr ( "type" ) || "no/type" ) ) } ) , n . parser . addNodeFilter ( "#cdata" , function ( e ) { for ( var t = e . length , n ; t -- ; ) n = e [ t ] , n . type = 8 , n . name = "#comment" , n . value = "[CDATA[" + n . value + "]]" } ) , n . parser . addNodeFilter ( "p,h1,h2,h3,h4,h5,h6,div" , function ( e ) { for ( var t = e . length , i , o = n . schema . getNonEmptyElements ( ) ; t -- ; ) i = e [ t ] , i . isEmpty ( o ) && ( i . empty ( ) . append ( new r ( "br" , 1 ) ) . shortEnded = ! 0 ) } ) , n . serializer = new i ( o , n ) , n . selection = new a ( n . dom , n . getWin ( ) , n . serializer , n ) , n . formatter = new s ( n ) , n . undoManager = new l ( n ) , n . forceBlocks = new u ( n ) , n . enterKey = new c ( n ) , n . editorCommands = new d ( n ) , n . fire ( "PreInit" ) , o . browser _spellcheck || o . gecko _spellcheck || ( p . body . spellcheck = ! 1 , N . setAttrib ( m , "spellcheck" , "false" ) ) , n . fire ( "PostRender" ) , n . quirks = y ( n ) , o . directionality && ( m . dir = o . directionality ) , o . nowrap && ( m . style . whiteSpace = "nowrap" ) , o . protect && n . on ( "BeforeSetContent" , function ( e ) { T ( o . protect , function ( t ) { e . content = e . content . replace ( t , function ( e ) { return " <!-- mce :
} ) , t . on ( "keydown" , function ( e ) { "INPUT" == e . target . nodeName && 13 == e . keyCode && t . parents ( ) . reverse ( ) . each ( function ( n ) { return e . preventDefault ( ) , t . fire ( "change" ) , n . hasEventListeners ( "submit" ) && n . toJSON ? ( n . fire ( "submit" , { data : n . toJSON ( ) } ) , ! 1 ) : void 0 } ) } ) , e . placeholder && ( t . addClass ( "placeholder" ) , t . on ( "focusin" , function ( ) { t . _hasOnChange || ( n . on ( t . getEl ( "inp" ) , "change" , function ( ) { t . fire ( "change" ) } ) , t . _hasOnChange = ! 0 ) , t . hasClass ( "placeholder" ) && ( t . getEl ( "inp" ) . value = "" , t . removeClass ( "placeholder" ) ) } ) , t . on ( "focusout" , function ( ) { 0 === t . value ( ) . length && ( t . getEl ( "inp" ) . value = e . placeholder , t . addClass ( "placeholder" ) ) } ) ) } , showMenu : function ( ) { var e = this , n = e . settings , r ; e . menu || ( r = n . menu || [ ] , r . length ? r = { type : "menu" , items : r } : r . type = r . type || "menu" , e . menu = t . create ( r ) . parent ( e ) . renderTo ( e . getContainerElm ( ) ) , e . fire ( "createmenu" ) , e . menu . reflow ( ) , e . menu . on ( "cancel" , function ( t ) { t . control === e . menu && e . focus ( ) } ) , e . menu . on ( "show hide" , function ( t ) { t . control . items ( ) . each ( function ( t ) { t . active ( t . value ( ) == e . value ( ) ) } ) } ) . fire ( "show" ) , e . menu . on ( "select" , function ( t ) { e . value ( t . control . value ( ) ) } ) , e . on ( "focusin" , function ( t ) { "INPUT" == t . target . tagName . toUpperCase ( ) && e . menu . hide ( ) } ) , e . aria ( "expanded" , ! 0 ) ) , e . menu . show ( ) , e . menu . layoutRect ( { w : e . layoutRect ( ) . w } ) , e . menu . moveRel ( e . getEl ( ) , e . isRtl ( ) ? [ "br-tr" , "tr-br" ] : [ "bl-tl" , "tl-bl" ] ) } , value : function ( e ) { var t = this ; return "undefined" != typeof e ? ( t . _value = e , t . removeClass ( "placeholder" ) , t . _rendered && ( t . getEl ( "inp" ) . value = e ) , t ) : t . _rendered ? ( e = t . getEl ( "inp" ) . value , e != t . settings . placeholder ? e : "" ) : t . _value } , disabled : function ( e ) { var t = this ; return t . _rendered && "undefined" != typeof e && ( t . getEl ( "inp" ) . disabled = e ) , t . _super ( e ) } , focus : function ( ) { this . getEl ( "inp" ) . focus ( ) } , repaint : function ( ) { var e = this , t = e . getEl ( ) , r = e . getEl ( "open" ) , i = e . layoutRect ( ) , o , a ; o = r ? i . w - n . getSize ( r ) . width - 10 : i . w - 10 ; var s = document ; return s . all && ( ! s . documentMode || s . documentMode <= 8 ) && ( a = e . layoutRect ( ) . h - 2 + "px" ) , n . css ( t . firstChild , { width : o , lineHeight : a } ) , e . _super ( ) , e } , postRender : function ( ) { var e = this ; return n . on ( this . getEl ( "inp" ) , "change" , function ( ) { e . fire ( "change" ) } ) , e . _super ( ) } , remove : function ( ) { n . off ( this . getEl ( "inp" ) ) , this . _super ( ) } , renderHtml : function ( ) { var e = this , t = e . _id , n = e . settings , r = e . classPrefix , i = n . value || n . placeholder || "" , o , a , s = "" , l = "" ; return "spellcheck" in n && ( l += ' spellcheck="' + n . spellcheck + '"' ) , n . maxLength && ( l += ' maxlength="' + n . maxLength + '"' ) , n . size && ( l += ' size="' + n . size + '"' ) , n . subtype && ( l += ' type="' + n . subtype + '"' ) , e . disabled ( ) && ( l += ' disabled="disabled"' ) , o = n . icon , o && "caret" != o && ( o = r + "ico " + r + "i-" + n . icon ) , a = e . _text , ( o || a ) && ( s = '<div id="' + t + '-open" class="' + r + "btn " + r + 'open" tabIndex="-1" role="button"><button id="' + t + '-action" type="button" hidefocus="1" tabindex="-1">' + ( "caret" != o ? '<i class="' + o + '"></i>' : '<i class="' + r + 'caret"></i>' ) + ( a ? ( o ? " " : "" ) + a : "" ) + "</button></div>" , e . addClass ( "has-open" ) ) , '<div id="' + t + '" class="' + e . classes ( ) + '"><input id="' + t + '-inp" class="' + r + "textbox " + r + 'placeholder" value="' + i + '" hidefocus="1"' + l + " />" + s + "</div>" } } ) } ) , r ( Bt , [ Nt ] , function ( e ) { return e . extend ( { init : function ( e ) { var t = this ; e . delimiter || ( e . delimiter = "\xbb" ) , t . _super ( e ) , t . addClass ( "path" ) , t . canFocus = ! 0 , t . on ( "click" , function ( e ) { var n , r = e . target ; ( n = r . getAttribute ( "data-index" ) ) && t . fire ( "select" , { value : t . data ( ) [ n ] , index : n } ) } ) } , focus : function ( ) { var e = this ; return e . getEl ( ) . firstChild . focus ( ) , e } , data : function ( e ) { var t = this ; return "undefined" != typeof e ? ( t . _data = e , t . update ( ) , t ) : t . _data } , update : function ( ) { this . innerHtml ( this . _getPathHtml ( ) ) } , postRender : function ( ) { var e = this ; e . _super ( ) , e . data ( e . settings . data ) } , renderHtml : function ( ) { var e = this ; return '<div id="' + e . _id + '" class="' + e . classes ( ) + '">' + e . _getPathHtml ( ) + "</div>" } , _getPathHtml : function ( ) { var e = this , t = e . _data || [ ] , n , r , i = "" , o = e . classPrefix ; for ( n = 0 , r = t . length ; r > n ; n ++ ) i += ( n > 0 ? '<div class="' + o + 'divider" aria-hidden="true"> ' + e . settings . delimiter + " </div>" : "" ) + '<div role="button" class="' + o + "path-item" + ( n == r - 1 ? " " + o + "last" : "" ) + '" data-index="' + n + '" tabindex="-1" id="' + e . _id + "-" + n + '" aria-level="' + n + '">' + t [ n ] . name + "</div>" ; return i || ( i = '<div class="' + o + 'path-item">\xa0</div>' ) , i } } ) } ) , r ( Dt , [ Bt , pt ] , function ( e , t ) { return e . extend ( { postR
} ) } ) } , disabled : function ( e ) { var t = this ; return t . _rendered && "undefined" != typeof e && ( t . getEl ( ) . disabled = e ) , t . _super ( e ) } , value : function ( e ) { var t = this ; return "undefined" != typeof e ? ( t . _value = e , t . _rendered && ( t . getEl ( ) . value = e ) , t ) : t . _rendered ? t . getEl ( ) . value : t . _value } , repaint : function ( ) { var e = this , t , n , r , i = 0 , o = 0 , a ; t = e . getEl ( ) . style , n = e . _layoutRect , a = e . _lastRepaintRect || { } ; var s = document ; return ! e . settings . multiline && s . all && ( ! s . documentMode || s . documentMode <= 8 ) && ( t . lineHeight = n . h - o + "px" ) , r = e . _borderBox , i = r . left + r . right + 8 , o = r . top + r . bottom + ( e . settings . multiline ? 8 : 0 ) , n . x !== a . x && ( t . left = n . x + "px" , a . x = n . x ) , n . y !== a . y && ( t . top = n . y + "px" , a . y = n . y ) , n . w !== a . w && ( t . width = n . w - i + "px" , a . w = n . w ) , n . h !== a . h && ( t . height = n . h - o + "px" , a . h = n . h ) , e . _lastRepaintRect = a , e . fire ( "repaint" , { } , ! 1 ) , e } , renderHtml : function ( ) { var e = this , t = e . _id , n = e . settings , r = e . encode ( e . _value , ! 1 ) , i = "" ; return "spellcheck" in n && ( i += ' spellcheck="' + n . spellcheck + '"' ) , n . maxLength && ( i += ' maxlength="' + n . maxLength + '"' ) , n . size && ( i += ' size="' + n . size + '"' ) , n . subtype && ( i += ' type="' + n . subtype + '"' ) , e . disabled ( ) && ( i += ' disabled="disabled"' ) , n . multiline ? '<textarea id="' + t + '" class="' + e . classes ( ) + '" ' + ( n . rows ? ' rows="' + n . rows + '"' : "" ) + ' hidefocus="1"' + i + ">" + r + "</textarea>" : '<input id="' + t + '" class="' + e . classes ( ) + '" value="' + r + '" hidefocus="1"' + i + " />" } , postRender : function ( ) { var e = this ; return t . on ( e . getEl ( ) , "change" , function ( t ) { e . fire ( "change" , t ) } ) , e . _super ( ) } , remove : function ( ) { t . off ( this . getEl ( ) ) , this . _super ( ) } } ) } ) , r ( rn , [ j , K ] , function ( e , t ) { return function ( n , r ) { var i = this , o , a = t . classPrefix ; i . show = function ( t ) { return i . hide ( ) , o = ! 0 , window . setTimeout ( function ( ) { o && n . appendChild ( e . createFragment ( '<div class="' + a + "throbber" + ( r ? " " + a + "throbber-inline" : "" ) + '"></div>' ) ) } , t || 0 ) , i } , i . hide = function ( ) { var e = n . lastChild ; return e && - 1 != e . className . indexOf ( "throbber" ) && e . parentNode . removeChild ( e ) , o = ! 1 , i } } } ) , a ( [ l , c , u , d , f , p , m , h , g , y , b , C , x , w , _ , N , E , k , S , T , R , A , D , L , M , P , O , I , F , z , W , V , U , q , $ , j , K , G , Y , X , J , Q , Z , et , tt , nt , rt , it , ot , at , st , lt , ct , ut , dt , ft , pt , mt , ht , gt , vt , yt , bt , Ct , xt , wt , _t , Nt , Et , kt , St , Tt , Rt , At , Bt , Dt , Lt , Mt , Ht , Pt , Ot , It , Ft , zt , Wt , Vt , Ut , qt , $t , jt , Kt , Gt , Yt , Xt , Jt , Qt , Zt , en , tn , nn , rn ] ) } ( this ) ;