{"version":3,"file":"bower-libs.v1.0.min.js","sources":["../../temp/scripts/bower-libs.v1.0.js"],"names":["window","undefined","isArraylike","obj","length","type","jQuery","isWindow","nodeType","createOptions","options","object","optionsCache","each","match","core_rnotwhite","_","flag","internalData","elem","name","data","pvt","acceptData","ret","thisCache","internalKey","expando","isNode","cache","id","core_deletedIds","pop","guid","toJSON","noop","extend","camelCase","internalRemoveData","i","isArray","concat","map","split","isEmptyDataObject","isEmptyObject","cleanData","support","deleteExpando","dataAttr","key","replace","rmultiDash","toLowerCase","getAttribute","rbrace","test","parseJSON","e","returnTrue","returnFalse","safeActiveElement","document","activeElement","err","sibling","cur","dir","winnow","elements","qualifier","not","isFunction","grep","call","isSimple","filter","inArray","createSafeFragment","list","nodeNames","safeFrag","createDocumentFragment","createElement","manipulationTarget","content","nodeName","firstChild","getElementsByTagName","appendChild","ownerDocument","disableScript","find","attr","restoreScript","rscriptTypeMasked","exec","removeAttribute","setGlobalEval","elems","refElements","_data","cloneCopyEvent","src","dest","hasData","l","oldData","curData","events","handle","event","add","fixCloneNodeIssues","noCloneEvent","removeEvent","text","parentNode","outerHTML","html5Clone","innerHTML","trim","manipulation_rcheckableType","defaultChecked","checked","value","defaultSelected","selected","defaultValue","getAll","context","tag","found","core_strundefined","querySelectorAll","childNodes","push","merge","fixDefaultChecked","vendorPropName","style","capName","charAt","toUpperCase","slice","origName","cssPrefixes","isHidden","el","css","contains","showHide","show","display","hidden","values","index","css_defaultDisplay","setPositiveNumber","subtract","matches","rnumsplit","Math","max","augmentWidthOrHeight","extra","isBorderBox","styles","val","cssExpand","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","getStyles","boxSizing","curCSS","rnumnonpx","boxSizingReliable","parseFloat","doc","elemdisplay","actualDisplay","iframe","appendTo","documentElement","contentWindow","contentDocument","write","close","detach","body","remove","buildParams","prefix","traditional","v","rbracket","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","originalOptions","jqXHR","inspect","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","target","deep","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","firstDataType","ct","finalDataType","contents","shift","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","tmp","prev","responseFields","dataFilter","state","error","createStandardXHR","XMLHttpRequest","createActiveXHR","ActiveXObject","createFxNow","setTimeout","fxNow","now","createTween","prop","animation","tween","collection","tweeners","Animation","properties","result","stopped","animationPrefilters","deferred","Deferred","always","tick","currentTime","remaining","startTime","duration","temp","percent","tweens","run","notifyWith","resolveWith","promise","props","opts","specialEasing","originalProperties","end","Tween","easing","stop","gotoEnd","this","rejectWith","propFilter","start","fx","timer","anim","queue","progress","done","complete","fail","hooks","cssHooks","expand","defaultPrefilter","toggle","oldfire","orig","dataShow","_queueHooks","unqueued","empty","fire","overflow","overflowX","overflowY","inlineBlockNeedsLayout","zoom","shrinkWrapBlocks","rfxtypes","hide","_removeData","prototype","init","genFx","includeWidth","which","attrs","height","opacity","width","getWindow","defaultView","parentWindow","readyList","rootjQuery","location","docElem","_jQuery","_$","$","class2type","core_version","core_concat","core_push","core_slice","core_indexOf","indexOf","core_toString","toString","core_hasOwn","hasOwnProperty","core_trim","selector","fn","core_pnum","source","rtrim","rquickExpr","rsingleTag","rvalidchars","rvalidbraces","rvalidescape","rvalidtokens","rmsPrefix","rdashAlpha","fcamelCase","all","letter","completed","addEventListener","readyState","ready","removeEventListener","detachEvent","jquery","constructor","parseHTML","isPlainObject","getElementById","makeArray","toArray","get","num","pushStack","prevObject","callback","args","apply","arguments","first","eq","last","len","j","sort","splice","copyIsArray","copy","clone","random","noConflict","isReady","readyWait","holdReady","hold","wait","trigger","off","Array","isNumeric","isNaN","isFinite","String","ownLast","msg","Error","keepScripts","parsed","scripts","buildFragment","JSON","parse","Function","parseXML","xml","DOMParser","parseFromString","async","loadXML","globalEval","execScript","string","arr","results","Object","second","inv","retVal","arg","proxy","access","chainable","emptyGet","raw","bulk","Date","getTime","swap","old","attachEvent","top","frameElement","doScroll","doScrollCheck","Sizzle","seed","m","groups","nid","newContext","newSelector","preferredDoc","setDocument","documentIsHTML","getElementsByClassName","qsa","rbuggyQSA","tokenize","rescape","setAttribute","toSelector","rsibling","join","qsaError","select","createCache","keys","Expr","cacheLength","markFunction","assert","div","removeChild","addHandle","handler","attrHandle","siblingCheck","a","b","diff","sourceIndex","MAX_NEGATIVE","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","setFilters","parseOnly","matched","tokens","soFar","preFilters","cached","tokenCache","preFilter","rcomma","rcombinators","matchExpr","addCombinator","matcher","combinator","base","checkNonElements","doneName","outerCache","dirkey","dirruns","cachedruns","elementMatcher","matchers","condense","unmatched","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","preMap","postMap","preexisting","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","matcherCachedRuns","bySet","byElement","superMatcher","expandContext","setMatched","matchedCount","outermost","contextBackup","dirrunsUnique","uniqueSort","contexts","token","getById","runescape","funescape","compile","getText","isXML","sortInput","rbuggyMatches","classCache","compilerCache","hasDuplicate","sortOrder","strundefined","hasOwn","push_native","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","RegExp","rattributeQuotes","rpseudo","ridentifier","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rnative","rinputs","rheader","escaped","escapedWhitespace","high","fromCharCode","els","node","parent","className","createComment","getElementsByName","attrId","getAttributeNode","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","specified","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo",">"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","nodeIndex","useCache","lastChild","pseudo","idx","has","innerText","lang","elemLang","hash","root","focus","hasFocus","href","tabIndex","enabled","disabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","group","div1","unique","isXMLDoc","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","stack","once","stopOnFalse","self","disable","lock","locked","fireWith","tuples","then","fns","newDefer","tuple","action","returned","resolve","reject","notify","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","fragment","opt","eventName","isSupported","cssText","getSetAttribute","leadingWhitespace","tbody","htmlSerialize","hrefNormalized","cssFloat","checkOn","optSelected","enctype","cloneNode","pixelPosition","reliableMarginRight","noCloneChecked","optDisabled","radioValue","appendChecked","checkClone","click","change","focusin","backgroundClip","clearCloneStyle","container","marginDiv","tds","divReset","reliableHiddenOffsets","getComputedStyle","marginRight","noData","applet","embed","removeData","dequeue","startLength","next","setter","delay","time","speeds","timeout","clearTimeout","clearQueue","count","defer","nodeHook","boolHook","rclass","rreturn","rfocusable","rclickable","ruseDefault","getSetInput","removeAttr","removeProp","propFix","addClass","classes","clazz","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","valHooks","set","option","one","optionSet","nType","attrHooks","propName","attrNames","for","class","notxml","propHooks","tabindex","parseInt","getter","setAttributeNode","createAttribute","coords","contenteditable","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","global","types","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","srcElement","metaKey","original","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","getPreventDefault","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","origFn","triggerHandler","rparentsprev","rneedsContext","guaranteedUnique","children","targets","is","closest","pos","prevAll","addBack","parents","parentsUntil","until","nextAll","nextUntil","prevUntil","siblings","reverse","n","r","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","rchecked","rscriptType","rcleanScript","wrapMap","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","append","createTextNode","domManip","prepend","insertBefore","before","after","keepData","dataAndEvents","deepDataAndEvents","html","replaceWith","allowIntersection","hasScripts","iNoClone","_evalUrl","prependTo","insertAfter","replaceAll","insert","destElements","srcElements","inPage","selection","wrap","safe","nodes","url","ajax","throws","wrapAll","wrapInner","unwrap","ralpha","ropacity","rposition","rdisplayswap","rmargin","rrelNum","BODY","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","computed","cssNumber","columnCount","fillOpacity","lineHeight","order","orphans","widows","zIndex","cssProps","float","_computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","$1","visible","margin","padding","border","suffix","expanded","parts","r20","rCRLF","rsubmitterTypes","rsubmittable","serialize","serializeArray","encodeURIComponent","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","ajaxLocParts","ajaxLocation","ajax_nonce","ajax_rquery","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","_load","prefilters","allTypes","params","responseText","status","active","lastModified","etag","isLocal","processData","contentType","accepts","*","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","code","abort","finalText","method","crossDomain","hasContent","beforeSend","send","getJSON","getScript","script","text script","head","scriptCharset","charset","onload","onreadystatechange","isAbort","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","xhrCallbacks","xhrSupported","xhrId","xhrOnUnloadAbort","xhr","cors","username","open","xhrFields","firefoxAccessException","unload","timerId","rfxnum","rrun","unit","scale","maxIterations","tweener","prefilter","eased","step","cssFn","speed","animate","fadeTo","to","optall","doAnimation","finish","stopQueue","timers","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","linear","p","swing","cos","PI","interval","setInterval","clearInterval","slow","fast","animated","offset","setOffset","win","box","getBoundingClientRect","pageYOffset","pageXOffset","curTop","curLeft","curElem","curOffset","curCSSTop","curCSSLeft","calculatePosition","curPosition","using","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","size","andSelf","module","exports","define","amd","factory","focusable","element","isTabIndexNotNaN","mapName","img","datepicker_getZindex","Datepicker","_curInst","_keyEvent","_disabledInputs","_datepickerShowing","_inDialog","_mainDivId","_inlineClass","_appendClass","_triggerClass","_dialogClass","_disableClass","_unselectableClass","_currentClass","_dayOverClass","regional","closeText","prevText","nextText","currentText","monthNames","monthNamesShort","dayNames","dayNamesShort","dayNamesMin","weekHeader","dateFormat","firstDay","isRTL","showMonthAfterYear","yearSuffix","_defaults","showOn","showAnim","showOptions","defaultDate","appendText","buttonText","buttonImage","buttonImageOnly","hideIfNoPrevNext","navigationAsDateFormat","gotoCurrent","changeMonth","changeYear","yearRange","showOtherMonths","selectOtherMonths","showWeek","calculateWeek","iso8601Week","shortYearCutoff","minDate","maxDate","beforeShowDay","beforeShow","onSelect","onChangeMonthYear","onClose","numberOfMonths","showCurrentAtPos","stepMonths","stepBigMonths","altField","altFormat","constrainInput","showButtonPanel","autoSize","en","dpDiv","datepicker_bindHover","datepicker_handleMouseover","datepicker","_isDisabledDatepicker","datepicker_instActive","inline","datepicker_extendRemove","spinner_modifier","previous","_refresh","_trigger","ui","version","BACKSPACE","COMMA","DELETE","DOWN","END","ENTER","ESCAPE","HOME","LEFT","PAGE_DOWN","PAGE_UP","PERIOD","RIGHT","SPACE","TAB","UP","scrollParent","includeHidden","excludeStaticParent","overflowRegex","uniqueId","uuid","removeUniqueId","dataName","tabbable","isTabIndexNaN","outerWidth","reduce","side","innerWidth","innerHeight","outerHeight","ie","navigator","userAgent","disableSelection","eventType","enableSelection","plugin","proto","plugins","instance","allowDisconnected","widget_uuid","widget_slice","widget","fullName","existingConstructor","basePrototype","proxiedPrototype","Widget","_createWidget","_proto","_childConstructors","_super","_superApply","__super","__superApply","widgetEventPrefix","widgetName","widgetFullName","child","childPrototype","bridge","inputIndex","inputLength","isMethodCall","methodValue","_init","defaultElement","create","eventNamespace","bindings","hoverable","_on","destroy","_getCreateOptions","_create","_getCreateEventData","_destroy","curOption","_setOptions","_setOption","enable","suppressDisabledCheck","delegateElement","handlerProxy","_off","_delay","_hoverable","_focusable","focusout","defaultEffect","effect","hasOptions","effectName","effects","mouseHandled","mouseup","cancel","distance","_mouseInit","that","_mouseDown","started","_mouseDestroy","_mouseMoveDelegate","_mouseUpDelegate","_mouseMoved","_mouseStarted","_mouseUp","_mouseDownEvent","btnIsLeft","elIsCancel","_mouseCapture","mouseDelayMet","_mouseDelayTimer","_mouseDistanceMet","_mouseDelayMet","_mouseStart","_mouseMove","documentMode","_mouseDrag","_mouseStop","abs","getOffsets","offsets","rpercent","parseCss","property","getDimensions","cachedScrollbarWidth","supportsOffsetFractions","round","rhorizontal","rvertical","roffset","_position","scrollbarWidth","w1","w2","innerDiv","clientWidth","getScrollInfo","within","isDocument","hasOverflowX","scrollWidth","hasOverflowY","scrollHeight","getWithinInfo","withinElement","of","atOffset","targetWidth","targetHeight","targetOffset","basePosition","dimensions","scrollInfo","collision","at","horizontalOffset","verticalOffset","collisionPosition","elemWidth","elemHeight","marginLeft","marginTop","collisionWidth","collisionHeight","myOffset","my","right","bottom","feedback","horizontal","vertical","important","fit","newOverRight","withinOffset","collisionPosLeft","overLeft","overRight","newOverBottom","collisionPosTop","overTop","overBottom","flip","newOverLeft","offsetLeft","newOverTop","offsetTop","flipfit","testElement","testElementParent","testElementStyle","background","collapsible","heightStyle","icons","activeHeader","activate","beforeActivate","hideProps","borderTopWidth","borderBottomWidth","paddingTop","paddingBottom","showProps","prevShow","prevHide","_processPanels","panel","_createIcons","_destroyIcons","_activate","_setupEvents","_keydown","altKey","ctrlKey","currentIndex","toFocus","_eventHandler","_panelKeyDown","refresh","prevHeaders","prevPanels","panels","maxHeight","_findActive","headerId","panelId","aria-selected","aria-expanded","aria-hidden","keydown","clicked","clickedIsActive","collapsing","toShow","toHide","eventData","oldHeader","oldPanel","newHeader","newPanel","_toggle","_animate","_toggleComplete","total","adjust","down","submenu","items","menus","role","activeMenu","mousedown .ui-menu-item","click .ui-menu-item","mouseenter .ui-menu-item","previousFilter","mouseleave .ui-menu","keepActiveItem","item","collapseAll","_closeOnDocumentClick","character","skip","previousPage","nextPage","_move","collapse","filterTimer","_filterMenuItems","icon","submenus","menu","submenuCarat","_isDivider","_itemRole","listbox","nested","focused","_scrollIntoView","_close","_startOpening","borderTop","scroll","elementHeight","itemHeight","_hasScroll","fromFocus","_open","currentMenu","startMenu","newItem","isFirstItem","isLastItem","direction","escapedCharacter","regex","autoFocus","minLength","search","requestIndex","pending","suppressKeyPress","suppressKeyPressRepeat","suppressInput","isTextarea","isInput","isMultiLine","valueMethod","isNewMenu","_value","term","_searchTimeout","keypress","selectedItem","cancelBlur","searching","_change","_initSource","_appendTo","mousedown","menuElement","menufocus","label","liveRegion","menuselect","aria-live","aria-relevant","array","request","autocomplete","equalValues","menuVisible","modifierKey","shiftKey","_search","cancelSearch","_response","__response","_normalize","_suggest","ul","_renderMenu","_resizeMenu","_renderItemData","_renderItem","keyEvent","escapeRegex","messages","noResults","amount","message","lastActive","baseClasses","typeClasses","formResetHandler","radioGroup","radios","primary","secondary","_determineButtonType","hasTitle","buttonElement","toggleButton","activeClass","keyup","_resetButton","ancestor","labelSelector","isDisabled","multipleIcons","buttonClasses","buttons","rtl","allButtons","existingButtons","markerClassName","maxRows","_widgetDatepicker","setDefaults","_attachDatepicker","inst","_newInst","_connectDatepicker","_inlineDatepicker","selectedDay","selectedMonth","selectedYear","drawMonth","drawYear","_attachments","_doKeyDown","_doKeyPress","_doKeyUp","_autoSize","_disableDatepicker","_get","_showDatepicker","alt","title","_lastInput","_hideDatepicker","findMax","maxI","date","names","setMonth","setDate","getDay","_formatDate","divSpan","_setDate","_getDefaultDate","_updateDatepicker","_updateAlternate","_dialogDatepicker","browserWidth","browserHeight","scrollX","scrollY","_dialogInst","_dialogInput","_pos","clientHeight","blockUI","_destroyDatepicker","$target","_enableDatepicker","cursor","_getInst","_optionDatepicker","_getDateDatepicker","_getMinMaxDate","_changeDatepicker","_refreshDatepicker","_setDateDatepicker","noDefault","_setDateFromField","_getDate","dateStr","handled","_selectDay","_adjustDate","_clearDate","_gotoToday","chars","chr","_possibleChars","lastVal","parseDate","_getFormatConfig","beforeShowSettings","isFixed","_findPos","_checkOffset","_shouldFocusInput","_generateHTML","_attachHandlers","origyearshtml","numMonths","_getNumberOfMonths","cols","activeCell","yearshtml","dpWidth","dpHeight","inputWidth","inputHeight","viewWidth","viewHeight","min","postProcess","_tidyDialog","unblockUI","_checkExternalClick","period","_adjustInstDate","currentDay","currentMonth","currentYear","getDate","getMonth","getFullYear","_notifyChange","_selectMonthYear","month","year","_selectDate","formatDate","noWeekends","day","checkDate","floor","format","iFormat","dim","iValue","shortYearCutoffTemp","doy","literal","lookAhead","getNumber","isDoubled","minSize","digits","substring","getName","shortNames","longNames","k","pair","substr","checkLiteral","_ticksTo1970","_getDaysInMonth","_daylightSavingAdjust","ATOM","COOKIE","ISO_8601","RFC_822","RFC_850","RFC_1036","RFC_1123","RFC_2822","RSS","TICKS","TIMESTAMP","W3C","formatNumber","formatName","output","getYear","dates","_restrictMinMax","_determineDate","offsetNumeric","offsetString","newDate","setHours","setMinutes","setSeconds","setMilliseconds","getHours","noChange","clear","origMonth","origYear","startDate","today","selectDay","selectMonth","selectYear","maxDraw","gotoDate","controls","buttonPanel","dow","row","selectedDate","cornerClass","calender","daysInMonth","leadDays","curRows","numRows","printDate","dRow","daySettings","otherMonth","unselectable","tempDate","isMultiMonth","currentDate","_canAdjustMonth","_isInRange","_generateMonthYearHeader","_getFirstDayOfMonth","ceil","inMinYear","inMaxYear","years","thisYear","determineYear","endYear","monthHtml","onChange","minMax","curYear","curMonth","yearSplit","minYear","maxYear","initialized","otherArgs","mouse","addClasses","axis","connectToSortable","containment","cursorAt","grid","helper","iframeFix","refreshPositions","revert","revertDuration","scope","scrollSensitivity","scrollSpeed","snap","snapMode","snapTolerance","drag","_setPositionRelative","_setHandleClassName","_removeHandleClassName","destroyOnClear","o","_blurActiveElement","_getHandle","_blockFrames","iframeBlocks","_unblockFrames","handleElement","_createHelper","_cacheHelperProportions","ddmanager","_cacheMargins","cssPosition","hasFixedAncestor","positionAbs","_refreshOffsets","originalPosition","_generatePosition","originalPageX","originalPageY","_adjustOffsetFromHelper","_setContainment","_clear","dropBehaviour","prepareOffsets","_normalizeRightBottom","dragStart","margins","_getParentOffset","_getRelativeOffset","noPropagation","_convertPositionTo","_uiHash","dropped","drop","dragStop","helperIsFunction","helperProportions","_isRootNode","tagName","po","scrollIsRootNode","isUserScrollable","c","ce","relativeContainer","d","mod","constrainPosition","co","cancelHelperRemoval","draggable","uiSortable","sortables","sortable","isOver","_storedCSS","placeholder","_helper","innermostIntersecting","_intersectsWith","containerCache","_parent","currentItem","fromOutside","_revert","_cursor","_opacity","scrollParentNotHidden","overflowOffset","scrolled","snapElements","$t","$o","ts","bs","ls","x1","x2","y1","y2","snapping","release","snapItem","_zIndex","alsoResize","animateDuration","animateEasing","aspectRatio","autoHide","ghost","handles","minHeight","resize","_num","_isNumber","hname","_aspectRatio","originalElement","_proportionallyResizeElements","resizable","elementIsWrapper","marginBottom","originalResizeStyle","_proportionallyResize","w","se","sw","ne","nw","_handles","_renderAxis","padPos","padWrapper","mouseover","resizing","wrapper","exp","capture","curleft","curtop","_renderProxy","originalSize","sizeDiff","originalMousePosition","_propagate","smp","dx","dy","_updatePrevProperties","_updateVirtualBoundaries","_updateRatio","_respectSize","_updateCache","_applyChanges","pr","ista","soffseth","soffsetw","prevPosition","prevSize","forceAspectRatio","pMinWidth","pMaxWidth","pMinHeight","pMaxHeight","Infinity","_vBoundaries","cpos","csize","ismaxw","ismaxh","isminw","isminh","dw","dh","cw","ch","_getPaddingPlusBorderDimensions","widths","borders","paddings","prel","outerDimensions","elementOffset","cs","sp","oc","containerElement","containerOffset","containerPosition","parentData","containerSize","woset","hoset","isParent","isOffsetRelative","cp","pRatio","cop","continueResize","ho","h","os","op","delta","sum","gridX","gridY","ox","oy","newWidth","newHeight","isMaxWidth","isMaxHeight","isMinWidth","isMinHeight","autoOpen","closeOnEscape","dialogClass","modal","topOffset","beforeClose","resizeStart","resizeStop","sizeRelatedOptions","resizableRelatedOptions","originalCss","originalTitle","_createWrapper","uiDialog","_createTitlebar","_createButtonPane","_makeDraggable","_makeResizable","_isOpen","_trackFocus","_untrackInstance","_destroyOverlay","_focusedElement","opener","_hide","isOpen","moveToTop","_moveToTop","silent","moved","zIndices","zIndexMax","_focusTabbable","_size","_createOverlay","overlay","_show","_makeFocusTarget","uiDialogButtonPane","uiDialogTitlebarClose","_keepFocus","checkFocus","isActive","tabbables","aria-describedby","uiDialogTitle","uiDialogTitlebar","_title","aria-labelledby","uiButtonSet","_createButtons","buttonOptions","showText","filteredUi","resizeHandles","_minHeight","_trackingInstances","instances","exists","isVisible","resizableOptions","isDraggable","isResizable","nonContentHeight","minContentHeight","maxContentHeight","_allowInteraction","isOpening","overlays","accept","greedy","hoverClass","tolerance","deactivate","out","over","proportions","isover","isout","_addToManager","droppables","_splice","_deactivate","_over","_out","_drop","custom","childrenIntersection","droppable","intersect","isOverAxis","x","reference","toleranceMode","absolute","default","droppablesLoop","greedyChild","parentInstance","intersects","dataSpace","clamp","allowEmpty","propTypes","def","stringParse","color","rgba","_rgba","stringParsers","parser","re","spaceName","space","spaces","colors","transparent","hue2rgb","q","stepHooks","rplusequals","execResult","Color","green","blue","alpha","red","hsla","hue","saturation","lightness","byte","degrees","supportElem","backgroundColor","from","same","localCache","isCache","_space","used","transition","other","startColor","startValue","endValue","blend","opaque","rgb","toRgbaString","toHslaString","toHexString","includeAlpha","g","local","vtype","_hsla","hook","colorInit","borderColor","part","aqua","black","fuchsia","gray","lime","maroon","navy","olive","purple","silver","teal","white","yellow","getElementStyles","styleDifference","oldStyle","newStyle","shorthandStyles","classAnimationActions","borderBottom","borderLeft","borderRight","borderWidth","setAttr","animateClass","applyClassChange","baseClass","allAnimations","styleInfo","dfd","force","switchClass","_normalizeArguments","standardAnimationOption","save","restore","setMode","mode","getBaseline","origin","y","createWrapper","fontSize","removeWrapper","setTransition","factor","cssUnit","effectMethod","baseEasings","pow","Sine","Circ","sqrt","Elastic","sin","Back","Bounce","pow2","bounce","easeIn","blind","rpositivemotion","ref","ref2","motion","upAnim","downAnim","times","anims","queuelen","clip","vert","explode","childComplete","pieces","rows","cells","animComplete","mx","fade","fold","horizFirst","widthFirst","animation1","animation2","highlight","backgroundImage","baseline","props0","props1","props2","cProps","vProps","hProps","zero","c_original","str","toRef","puff","pulsate","showhide","animateTo","shake","positiveMotion","slide","transfer","targetFixed","fixTop","fixLeft","endPosition","startPosition","oldValue","_constrainedValue","aria-valuemin","valueDiv","_refreshValue","newValue","indeterminate","_percentage","percentage","toFixed","overlayDiv","aria-valuemax","aria-valuenow","autoRefresh","selecting","unselected","unselecting","selectees","dragged","$this","$element","startselected","opos","selectee","doSelect","hit","selectmenuId","ids","_drawButton","_drawMenu","aria-autocomplete","aria-owns","aria-haspopup","_setText","_resizeButton","_buttonEvents","menuItems","_refreshMenu","menuWrap","menuInstance","_setSelection","_select","focusIndex","_getSelectedItem","_parseOptions","_setAria","_toggleAttr","_documentClick","range","menuWidget","currentOptgroup","li","getSelection","removeAllRanges","addRange","rangeCount","getRangeAt","createRange","_selectFocusedItem","oldIndex","aria-activedescendant","orientation","numPages","_keySliding","_mouseSliding","_animateOff","_handleIndex","_detectOrientation","_calculateNewMax","_createRange","_createHandles","handleCount","existingHandles","_valueMin","_handleEvents","normValue","closestHandle","allowed","mouseOverHandle","elementSize","_normValueFromMouse","_valueMax","thisDistance","_lastChangedValue","_start","_clickOffset","_slide","_stop","pixelTotal","pixelMouse","percentMouse","valueTotal","valueMouse","_trimAlignValue","uiHash","newVal","otherVal","newValues","vals","_values","valsLength","valModStep","alignValue","aboveMin","_precision","precision","_precisionOf","decimal","lastValPercent","valPercent","valueMin","valueMax","oRange","_set","curVal","connectWith","dropOnEmpty","forcePlaceholderSize","forceHelperSize","beforeStop","receive","update","_isOverAxis","_isFloating","overrideHandle","validHandle","reverting","_refreshItems","_removeCurrentsFromItems","noActivation","currentContainer","domPosition","_createPlaceholder","storedCursor","storedStylesheet","_storedOpacity","_storedZIndex","_preserveHelperProportions","containers","dragging","itemElement","intersection","lastPositionAbs","_intersectsWithPointer","_intersectsWithSides","_rearrange","_contactContainers","_noFinalSort","_getItemsAsjQuery","connected","res","attribute","expression","dyClick","dxClick","isOverElementHeight","isOverElementWidth","isOverElement","forcePointerForContainers","floating","verticalDirection","_getDragVerticalDirection","horizontalDirection","_getDragHorizontalDirection","isOverBottomHalf","isOverRightHalf","_connectWith","addItems","queries","targetData","_queries","queriesLength","toleranceElement","refreshContainers","_createTrPlaceholder","sourceTr","targetTr","dist","itemWithLeastDistance","posProperty","sizeProperty","nearBottom","innermostContainer","innermostIndex","hardRefresh","counter","delayEvent","delayedTriggers","_inst","sender","culture","up","incremental","numberFormat","page","spin","_draw","_events","mousewheel","spinning","_spin","mousewheelTimer","mousedown .ui-spinner-button","_repeat","mouseup .ui-spinner-button","mouseenter .ui-spinner-button","mouseleave .ui-spinner-button","uiSpinner","_uiSpinnerHtml","_buttonHtml","steps","_adjustValue","_increment","prevValue","_parse","_format","Globalize","isValid","allowAny","stepUp","_stepUp","stepDown","_stepDown","pageUp","pages","pageDown","beforeLoad","_isLocal","anchor","anchorUrl","locationUrl","decodeURIComponent","running","_processTabs","_initialActive","tabs","anchors","locationHash","tab","_getPanelForTab","_tabKeydown","focusedTab","goingForward","_handlePageNav","activating","_focusNextTab","_panelKeydown","_findNextTab","constrain","lastTabIndex","_setupDisabled","_setupHeightStyle","_sanitizeSelector","lis","tablist","prevTabs","prevAnchors","_getList","anchorId","originalAriaControls","_createPanel","aria-controls","oldTab","newTab","_getIndex","_ajaxSettings","tooltipClass","track","_addDescribedBy","describedby","_removeDescribedBy","tooltips","_disable","tooltipData","_updateContent","_enable","blurEvent","_registerCloseHandlers","contentOption","positionOption","tooltip","delayedShow","a11yContent","_find","_tooltip","mousemove","fakeEvent","_removeTooltip","closing","hiding","minErr","ErrorConstructor","template","templateArgs","toDebugString","isArrayLike","NODE_TYPE_ELEMENT","isString","forEach","iterator","isPrimitive","sortedKeys","forEachSorted","reverseParams","iteratorFn","nextUid","uid","setHashKey","$$hashKey","dst","ii","jj","int","inherit","identity","valueFn","isUndefined","isDefined","isObject","isNumber","isDate","isRegExp","isScope","$evalAsync","$watch","isFile","isBlob","isBoolean","isPromiseLike","isElement","makeMap","nodeName_","lowercase","arrayRemove","destination","stackSource","stackDest","ngMinErr","lastIndex","emptyObject","getPrototypeOf","shallowCopy","equals","o1","o2","keySet","t1","t2","array1","array2","sliceArgs","startIndex","curryArgs","toJsonReplacer","toJson","pretty","stringify","fromJson","startingTag","jqLite","elemHtml","NODE_TYPE_TEXT","tryDecodeURIComponent","parseKeyValue","keyValue","key_value","toKeyValue","arrayValue","encodeUriQuery","encodeUriSegment","pctEncodeSpaces","getNgAttribute","ngAttr","ngAttrPrefixes","angularInit","bootstrap","appElement","config","hasAttribute","candidate","querySelector","strictDi","modules","defaultConfig","doBootstrap","injector","$provide","debugInfoEnabled","$compileProvider","createInjector","invoke","$apply","NG_ENABLE_DEBUG_INFO","NG_DEFER_BOOTSTRAP","angular","resumeBootstrap","extraModules","reloadWithDebugInfo","reload","getTestability","rootElement","snake_case","separator","SNAKE_CASE_REGEXP","bindJQuery","originalCleanData","bindJQueryFired","JQLitePrototype","isolateScope","controller","inheritedData","skipDestroyOnNextJQueryCleanData","$destroy","JQLite","assertArg","reason","assertArgFn","acceptArrayAnnotation","assertNotHasOwnProperty","path","bindFnToScope","lastInstance","getBlockNodes","endNode","blockNodes","createMap","setupModuleLoader","ensure","$injectorMinErr","$$minErr","requires","configFn","invokeLater","provider","insertMethod","invokeQueue","moduleInstance","configBlocks","runBlocks","_invokeQueue","_configBlocks","_runBlocks","service","constant","directive","block","serializeObject","seen","publishExternalAPI","uppercase","callbacks","$$csp","csp","angularModule","$LocaleProvider","$$sanitizeUri","$$SanitizeUriProvider","$CompileProvider","htmlAnchorDirective","inputDirective","textarea","formDirective","scriptDirective","selectDirective","styleDirective","optionDirective","ngBind","ngBindDirective","ngBindHtml","ngBindHtmlDirective","ngBindTemplate","ngBindTemplateDirective","ngClass","ngClassDirective","ngClassEven","ngClassEvenDirective","ngClassOdd","ngClassOddDirective","ngCloak","ngCloakDirective","ngController","ngControllerDirective","ngForm","ngFormDirective","ngHide","ngHideDirective","ngIf","ngIfDirective","ngInclude","ngIncludeDirective","ngInit","ngInitDirective","ngNonBindable","ngNonBindableDirective","ngPluralize","ngPluralizeDirective","ngRepeat","ngRepeatDirective","ngShow","ngShowDirective","ngStyle","ngStyleDirective","ngSwitch","ngSwitchDirective","ngSwitchWhen","ngSwitchWhenDirective","ngSwitchDefault","ngSwitchDefaultDirective","ngOptions","ngOptionsDirective","ngTransclude","ngTranscludeDirective","ngModel","ngModelDirective","ngList","ngListDirective","ngChange","ngChangeDirective","patternDirective","ngPattern","required","requiredDirective","ngRequired","minlength","minlengthDirective","ngMinlength","maxlength","maxlengthDirective","ngMaxlength","ngValue","ngValueDirective","ngModelOptions","ngModelOptionsDirective","ngIncludeFillContentDirective","ngAttributeAliasDirectives","ngEventDirectives","$anchorScroll","$AnchorScrollProvider","$animate","$AnimateProvider","$browser","$BrowserProvider","$cacheFactory","$CacheFactoryProvider","$controller","$ControllerProvider","$document","$DocumentProvider","$exceptionHandler","$ExceptionHandlerProvider","$filter","$FilterProvider","$interpolate","$InterpolateProvider","$interval","$IntervalProvider","$http","$HttpProvider","$httpBackend","$HttpBackendProvider","$location","$LocationProvider","$log","$LogProvider","$parse","$ParseProvider","$rootScope","$RootScopeProvider","$q","$QProvider","$$q","$$QProvider","$sce","$SceProvider","$sceDelegate","$SceDelegateProvider","$sniffer","$SnifferProvider","$templateCache","$TemplateCacheProvider","$templateRequest","$TemplateRequestProvider","$$testability","$$TestabilityProvider","$timeout","$TimeoutProvider","$window","$WindowProvider","$$rAF","$$RAFProvider","$$asyncCallback","$$AsyncCallbackProvider","jqNextId","jqId","SPECIAL_CHARS_REGEXP","MOZ_HACK_REGEXP","jqLiteIsTextNode","HTML_REGEXP","jqLiteAcceptsData","NODE_TYPE_DOCUMENT","jqLiteBuildFragment","TAG_NAME_REGEXP","XHTML_TAG_REGEXP","jqLiteParseHTML","SINGLE_TAG_REGEXP","argIsString","jqLiteMinErr","jqLiteAddNodes","jqLiteClone","jqLiteDealoc","onlyDescendants","jqLiteRemoveData","descendants","jqLiteOff","unsupported","expandoStore","jqLiteExpandoStore","listenerFns","removeEventListenerFn","expandoId","ng339","jqCache","createIfNecessary","jqLiteData","isSimpleSetter","isSimpleGetter","massGetter","jqLiteHasClass","jqLiteRemoveClass","cssClasses","cssClass","jqLiteAddClass","existingClasses","jqLiteController","jqLiteInheritedData","NODE_TYPE_DOCUMENT_FRAGMENT","host","jqLiteEmpty","jqLiteRemove","jqLiteDocumentLoaded","getBooleanAttrName","booleanAttr","BOOLEAN_ATTR","BOOLEAN_ELEMENTS","getAliasedAttrName","ALIASED_ATTR","createEventHandler","eventHandler","eventFns","eventFnsLength","immediatePropagationStopped","originalStopImmediatePropagation","hashKey","nextUidFn","objType","HashMap","isolatedUid","put","anonFn","fnText","STRIP_COMMENTS","FN_ARGS","annotate","$inject","argDecl","FN_ARG_SPLIT","FN_ARG","underscore","modulesToLoad","supportObject","provider_","providerInjector","instantiate","$get","providerCache","providerSuffix","enforceReturnValue","instanceInjector","factoryFn","enforce","$injector","instanceCache","decorator","serviceName","decorFn","origProvider","orig$get","origInstance","$delegate","loadModules","moduleFn","runInvokeQueue","invokeArgs","loadedModules","createInternalInjector","getService","INSTANTIATING","locals","Type","returnedValue","Constructor","servicename","autoScrollingEnabled","disableAutoScrolling","getFirstAnchor","some","getYOffset","yOffset","scrollIntoView","elemTop","scrollBy","elm","oldVal","supported","Browser","completeOutstandingRequest","outstandingRequestCount","outstandingRequestCallbacks","startPoller","pollFns","pollFn","pollTimeout","cacheStateAndFireUrlChange","cacheState","fireUrlChange","cachedState","history","lastCachedState","lastBrowserUrl","lastHistoryState","urlChangeListeners","listener","safeDecodeURIComponent","rawDocument","pendingDeferIds","isMock","$$completeOutstandingRequest","$$incOutstandingRequestCount","notifyWhenNoOutstandingRequests","addPollFn","baseElement","reloadLocation","sameState","sameBase","stripHash","urlChangeInit","onUrlChange","$$checkUrlChange","baseHref","lastCookies","lastCookieString","cookiePath","cookies","cookieLength","cookieArray","cookie","warn","timeoutId","deferId","cacheFactory","cacheId","entry","freshEnd","staleEnd","link","nextEntry","prevEntry","caches","stats","capacity","Number","MAX_VALUE","lruHash","lruEntry","removeAll","info","$$sanitizeUriProvider","parseIsolateBindings","directiveName","LOCAL_REGEXP","definition","scopeName","$compileMinErr","optional","attrName","hasDirectives","Suffix","COMMENT_DIRECTIVE_REGEXP","CLASS_DIRECTIVE_REGEXP","ALL_OR_NOTHING_ATTRS","REQUIRE_PREFIX_REGEXP","EVENT_HANDLER_ATTR_REGEXP","registerDirective","directiveFactory","directives","priority","require","restrict","$$isolateBindings","aHrefSanitizationWhitelist","regexp","imgSrcSanitizationWhitelist","safeAddClass","$compileNodes","transcludeFn","maxPriority","ignoreDirective","previousCompileContext","compositeLinkFn","compileNodes","$$addScopeClass","cloneConnectFn","parentBoundTranscludeFn","transcludeControllers","futureParentElement","$$boundTransclude","detectNamespaceForChildElements","$linkNode","wrapTemplate","controllerName","$$addScopeInfo","parentElement","nodeList","$rootElement","nodeLinkFn","childLinkFn","childScope","childBoundTranscludeFn","stableNodeList","nodeLinkFnFound","nodeListLength","linkFns","$new","transcludeOnThisElement","createBoundTranscludeFn","transclude","elementTranscludeOnThisElement","templateOnThisElement","linkFnFound","Attributes","collectDirectives","applyDirectivesToNode","$$element","terminal","previousBoundTranscludeFn","elementTransclusion","boundTranscludeFn","transcludedScope","cloneFn","controllers","containingScope","$$transcluded","attrsMap","$attr","addDirective","directiveNormalize","nName","ngAttrName","isNgAttr","nAttrs","attrStartName","attrEndName","NG_ATTR_BINDING","directiveNName","directiveIsMultiElement","addAttrInterpolateDirective","addTextInterpolateDirective","NODE_TYPE_COMMENT","byPriority","groupScan","attrStart","attrEnd","depth","groupElementsLinkFnWrapper","linkFn","compileNode","templateAttrs","jqCollection","originalReplaceDirective","preLinkFns","postLinkFns","addLinkFns","pre","post","newIsolateScopeDirective","$$isolateScope","cloneAndAnnotateFn","getControllers","elementControllers","retrievalMethod","$searchElement","linkNode","controllersBoundTransclude","cloneAttachFn","hasElementTranscludeDirective","scopeToChild","controllerDirectives","controllerInstance","$scope","$attrs","$transclude","controllerAs","templateDirective","$$originalDirective","isolateScopeController","isolateBindingContext","bindToController","lastValue","parentGet","parentSet","$observe","$$observers","$$scope","assign","parentValueWatch","parentValue","$stateful","unwatch","$watchCollection","$on","invokeLinkFn","templateUrl","newScopeDirective","$template","directiveValue","terminalPriority","nonTlbTranscludeDirective","hasTranscludeDirective","hasTemplate","$compileNode","replaceDirective","childTranscludeFn","$$start","$$end","assertNoDuplicate","$$tlb","denormalizeTemplate","removeComments","templateNamespace","newTemplateAttrs","templateDirectives","unprocessedDirectives","markDirectivesAsIsolate","mergeTemplateAttributes","compileTemplateUrl","tDirectives","startAttrName","endAttrName","multiElement","srcAttr","dstAttr","$set","tAttrs","afterTemplateNodeLinkFn","afterTemplateChildLinkFn","linkQueue","beforeTemplateCompileNode","origAsyncDirective","derivedSyncDirective","getTrustedResourceUrl","tempTemplateAttrs","beforeTemplateLinkNode","linkRootElement","$$destroyed","oldClasses","ignoreChildLinkFn","previousDirective","interpolateFn","templateNode","templateNodeParent","hasCompileParent","$$addBindingClass","$$addBindingInfo","expressions","getTrustedContext","attrNormalizedName","HTML","RESOURCE_URL","allOrNothing","$$inter","$updateClass","elementsToRemove","newNode","firstElementToRemove","removeCount","j2","replaceChild","kk","annotation","attributesToCopy","$normalize","$addClass","classVal","$removeClass","newClasses","toAdd","tokenDifference","toRemove","writeAttr","booleanKey","aliasedKey","observer","trimmedSrcset","srcPattern","rawUris","nbrUrisWith2parts","innerIdx","lastTuple","listeners","startSymbol","endSymbol","binding","isolated","noTemplate","PREFIX_REGEXP","str1","str2","tokens1","tokens2","outer","jqNodes","globals","CNTRL_REG","register","allowGlobals","addIdentifier","later","ident","exception","cause","defaultHttpResponseTransform","JSON_PROTECTION_PREFIX","APPLICATION_JSON","JSON_START","JSON_END","parseHeaders","line","headersGetter","headersObj","transformData","defaults","transformResponse","transformRequest","common","Accept","CONTENT_TYPE_APPLICATION_JSON","patch","xsrfCookieName","xsrfHeaderName","useApplyAsync","interceptorFactories","interceptors","requestConfig","resp","mergeHeaders","execHeaders","headerContent","headerFn","defHeaderName","lowercaseDefHeaderName","reqHeaderName","defHeaders","reqHeaders","defaultHeadersIteration","serverRequest","reqData","withCredentials","sendReq","chain","reversedInterceptors","interceptor","requestError","responseError","thenFn","rejectFn","createShortMethods","createShortMethodsWithData","headersString","resolveHttpPromise","resolvePromise","$applyAsync","$$phase","removePendingReq","pendingRequests","cachedResp","buildUrl","defaultCache","xsrfValue","urlIsSameOrigin","responseType","toISOString","interceptorFactory","createXhr","createHttpBackend","$browserDefer","jsonpReq","callbackId","called","addEventListenerFn","timeoutRequest","jsonpDone","completeRequest","urlResolve","protocol","onerror","onabort","escape","mustHaveExpression","trustedContext","unescapeText","escapedStartRegexp","escapedEndRegexp","parseStringifyInterceptor","getValue","newErr","$interpolateMinErr","endIndex","parseFns","textLength","expressionPositions","startSymbolLength","endSymbolLength","compute","getTrusted","valueOf","$$watchDelegate","objectEquality","$watchGroup","oldValues","currValue","invokeApply","iteration","skipApply","$$intervalId","intervals","NUMBER_FORMATS","DECIMAL_SEP","GROUP_SEP","PATTERNS","minInt","minFrac","maxFrac","posPre","posSuf","negPre","negSuf","gSize","lgSize","CURRENCY_SYM","DATETIME_FORMATS","MONTH","SHORTMONTH","DAY","SHORTDAY","AMPMS","medium","short","fullDate","longDate","mediumDate","shortDate","mediumTime","shortTime","pluralCat","encodePath","segments","parseAbsoluteUrl","absoluteUrl","locationObj","parsedUrl","$$protocol","$$host","hostname","$$port","port","DEFAULT_PORTS","parseAppUrl","relativeUrl","prefixed","$$path","pathname","$$search","$$hash","beginsWith","begin","whole","stripFile","lastIndexOf","serverBase","LocationHtml5Url","appBase","basePrefix","$$html5","appBaseNoFile","$$parse","pathUrl","$locationMinErr","$$compose","$$url","$$absUrl","$$parseLinkUrl","relHref","appUrl","prevAppUrl","rewrittenUrl","LocationHashbangUrl","hashPrefix","removeWindowsDriveName","firstPathSegmentMatch","windowsFilePathExp","withoutBaseUrl","withoutHashUrl","LocationHashbangInHtml5Url","locationGetter","locationGetterSetter","preprocess","html5Mode","requireBase","rewriteLinks","setBrowserUrlWithFallback","oldUrl","oldState","$$state","afterLocationChange","$broadcast","absUrl","LocationMode","initialUrl","IGNORE_URI_REGEXP","absHref","animVal","initializing","newUrl","newState","$digest","currentReplace","$$replace","urlOrStateChanged","debug","debugEnabled","formatError","sourceURL","consoleLog","console","logFn","log","hasApply","arg1","arg2","ensureSafeMemberName","fullExpression","$parseMinErr","ensureSafeObject","ensureSafeFunction","CALL","APPLY","BIND","isConstant","setValue","fullExp","propertyObj","isPossiblyDangerousMemberName","cspSafeGetterFn","key0","key1","key2","key3","key4","expensiveChecks","eso","eso0","eso1","eso2","eso3","eso4","pathVal","getterFnWithEnsureSafeObject","getterFn","getterFnCache","getterFnCacheExpensive","getterFnCacheDefault","pathKeys","pathKeysLength","needsEnsureSafeObject","lookupJs","evaledFnGetter","sharedGetter","getValueOf","objectValueOf","cacheDefault","cacheExpensive","wrapSharedExpression","wrapped","collectExpressionInputs","inputs","expressionInputDirtyCheck","oldValueOfValue","inputsWatchDelegate","parsedExpression","lastResult","inputExpressions","$$inputs","oldInputValue","newInputValue","oldInputValueOfValues","changed","oneTimeWatchDelegate","$$postDigest","oneTimeLiteralWatchDelegate","isAllDefined","allDefined","constantWatchDelegate","addInterceptor","interceptorFn","watchDelegate","regularWatch","$parseOptions","$parseOptionsExpensive","oneTime","cacheKey","parseOptions","lexer","Lexer","Parser","qFactory","nextTick","exceptionHandler","callOnce","resolveFn","Promise","simpleBind","processQueue","processScheduled","scheduleProcessQueue","promises","$qMinErr","TypeError","onFulfilled","onRejected","progressBack","catch","finally","handleCallback","$$reject","$$resolve","makePromise","resolved","isResolved","callbackOutput","errback","$Q","Q","resolver","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","webkitCancelRequestAnimationFrame","rafSupported","raf","TTL","$rootScopeMinErr","lastDirtyWatch","applyAsyncId","digestTtl","Scope","$id","$parent","$$watchers","$$nextSibling","$$prevSibling","$$childHead","$$childTail","$root","$$listeners","$$listenerCount","beginPhase","phase","clearPhase","decrementListenerCount","initWatchVal","flushApplyAsync","applyAsyncQueue","scheduleApplyAsync","isolate","destroyChild","$$ChildScope","watchExp","watcher","watchExpressions","watchGroupAction","changeReactionScheduled","firstRun","deregisterFns","shouldCall","unwatchFn","$watchCollectionInterceptor","newLength","bothNaN","oldItem","internalArray","oldLength","changeDetected","internalObject","$watchCollectionAction","initRun","veryOldValue","trackVeryOldValue","changeDetector","watch","watchers","dirty","logIdx","asyncTask","ttl","watchLog","asyncQueue","$eval","traverseScopesLoop","postDigestQueue","$applyAsyncExpression","namedListeners","indexOfListener","$emit","targetScope","listenerArgs","currentScope","$$asyncQueue","$$postDigestQueue","$$applyAsyncQueue","uri","isImage","normalizedVal","adjustMatcher","$sceMinErr","escapeForRegexp","adjustMatchers","adjustedMatchers","SCE_CONTEXTS","resourceUrlWhitelist","resourceUrlBlacklist","matchUrl","isResourceUrlAllowedByPolicy","generateHolderType","Base","holderType","trustedValue","$$unwrapTrustedValue","trustAs","byType","maybeTrusted","trustedValueHolderBase","htmlSanitizer","CSS","URL","JS","msie","sce","isEnabled","parseAs","enumValue","lName","vendorPrefix","eventSupport","android","boxee","vendorRegex","bodyStyle","transitions","animations","webkitTransition","webkitAnimation","pushState","hasEvent","divElm","handleRequestFn","tpl","ignoreRequestError","handleError","totalPendingRequests","transformer","httpOptions","testability","findBindings","opt_exactMatch","dataBinding","bindingName","findModels","prefixes","attributeEquals","getLocation","setLocation","whenStable","deferreds","$$timeoutId","urlParsingNode","requestUrl","originUrl","currencyFilter","dateFilter","filterFilter","jsonFilter","limitToFilter","lowercaseFilter","numberFilter","orderByFilter","uppercaseFilter","comparator","comparatorType","predicates","objKey","filtered","$locale","formats","currencySymbol","fractionSize","number","groupSep","decimalSep","isNegative","numStr","formatedText","hasExponent","fractionLen","fraction","lgroup","padNumber","neg","dateGetter","dateStrGetter","shortForm","timeZoneGetter","zone","getTimezoneOffset","paddedZone","getFirstThursdayOfYear","dayOfWeekOnFirst","getThursdayThisWeek","datetime","weekGetter","firstThurs","thisThurs","ampmGetter","jsonStringToDate","R_ISO8601_STR","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","ms","timezone","NUMBER_STRING","DATE_FORMATS_SPLIT","getMinutes","DATE_FORMATS","limit","sortPredicate","reverseOrder","comp","reverseComparator","descending","v1","v2","predicate","ngDirective","nullFormRenameControl","control","$name","FormController","parentForm","$$parentForm","nullFormCtrl","$error","$$success","$pending","$dirty","$pristine","$valid","$invalid","$submitted","$addControl","$rollbackViewValue","$commitViewValue","$$renameControl","newName","oldName","$removeControl","$setValidity","addSetValidityMethod","ctrl","unset","$setDirty","PRISTINE_CLASS","DIRTY_CLASS","$setPristine","setClass","SUBMITTED_CLASS","$setUntouched","$setSubmitted","stringBasedInputType","$formatters","$isEmpty","textInputType","baseInputType","noevent","composing","ev","ngTrim","$viewValue","$$hasNativeValidators","$setViewValue","deferListener","$render","$modelValue","weekParser","isoWeek","existingDate","WEEK_REGEXP","week","hours","minutes","seconds","milliseconds","addDays","getSeconds","getMilliseconds","NaN","createDateParser","mapping","iso","ISO_DATE_REGEXP","yyyy","MM","dd","HH","mm","ss","sss","createDateInputType","parseObservedDateValue","badInputChecker","previousDate","$options","$$parserName","$parsers","parsedDate","$ngModelMinErr","timezoneOffset","ngMin","minVal","$validators","$validate","ngMax","maxVal","nativeValidation","validity","VALIDITY_STATE_PROPERTY","badInput","typeMismatch","numberInputType","NUMBER_REGEXP","urlInputType","URL_REGEXP","emailInputType","email","EMAIL_REGEXP","radioInputType","parseConstantExpr","fallback","parseFn","checkboxInputType","trueValue","ngTrueValue","falseValue","ngFalseValue","setValidity","validationErrorKey","createAndSet","unsetAndCleanup","cachedToggleClass","PENDING_CLASS","toggleValidationCss","isObjectEmpty","combinedState","switchValue","VALID_CLASS","INVALID_CLASS","classDirective","arrayDifference","arrayClasses","digestClassCounts","removeClasses","classCounts","classesToUpdate","updateClasses","ngClassWatchAction","$index","old$index","REGEX_STRING_REGEXP","manualLowercase","charCodeAt","manualUppercase","isActive_","full","major","minor","dot","codeName","MOUSE_EVENT_MAP","lowercasedName","getNamedItem","$dv","multiple","nodeCount","jqLiteOn","onFn","replaceNode","wrapNode","newElement","condition","classCondition","nextElementSibling","extraParameters","dummyEvent","eventFnsCopy","handlerArgs","arg3","$$annotate","$animateMinErr","$$selectors","classNameFilter","$$classNameFilter","runAnimationPostDigest","cancelFn","$$cancelFn","resolveElementClasses","hasClasses","cachedClassManipulation","asyncPromise","currentDefer","applyStyles","enter","leave","move","$$addClassImmediately","$$removeClassImmediately","STORAGE_KEY","createdCache","$$setClassImmediately","Content-Type","PATH_MATCH","http","https","ftp","locationPrototype","paramValue","Location","CONSTANTS","null","true","false","constantGetter","OPERATORS","-","/","%","===","!==","==","!=","<","<=",">=","&&","||","!","=","|","f","'","\"","lex","readString","peek","readNumber","isIdent","readIdent","isWhitespace","ch2","ch3","op1","op2","op3","throwError","isExpOperator","colStr","peekCh","quote","rawString","hex","rep","ZERO","statements","expect","filterChain","consume","arrayDeclaration","functionCall","objectIndex","fieldAccess","peekToken","e1","e2","e3","e4","peekAhead","unaryFn","binaryFn","isBranching","inputFn","argsFn","every","assignment","ternary","middle","logicalOR","logicalAND","equality","relational","additive","multiplicative","unary","field","indexFn","fnGetter","contextGetter","expressionText","elementFns","valueFns","yy","MMMM","MMM","M","H","hh","EEEE","EEE","Z","ww","xlinkHref","normalized","htmlAttr","formDirectiveFactory","isNgForm","formElement","handleFormSubmission","parentFormCtrl","alias","DATE_REGEXP","DATETIMELOCAL_REGEXP","MONTH_REGEXP","TIME_REGEXP","DEFAULT_REGEXP","inputType","datetime-local","ctrls","UNTOUCHED_CLASS","TOUCHED_CLASS","NgModelController","$asyncValidators","$viewChangeListeners","$untouched","$touched","parsedNgModel","pendingDebounce","ngModelGet","modelValue","getterSetter","ngModelSet","$$setOptions","currentValidationRunId","$setTouched","$$lastCommittedViewValue","$$parseAndValidate","$$runValidators","parseValid","viewValue","doneCallback","processParseErrors","errorKey","processSyncValidators","syncValidatorsValid","validator","processAsyncValidators","validatorPromises","allValid","validationDone","localValidationRunId","writeToModelIfNeeded","prevModelValue","$$writeModelToScope","parserValid","allowInvalid","updateOnDefault","$$debounceViewValueCommit","debounce","debounceDelay","formatters","modelCtrl","formCtrl","updateOn","patternExp","trimValues","CONSTANT_VALUE_REGEXP","tplAttr","$compile","templateElement","tElement","ngBindHtmlGetter","ngBindHtmlWatch","getTrustedHtml","forceAsyncEvents","$event","previousElements","newScope","srcExp","onloadExp","autoScrollExp","autoscroll","previousElement","currentElement","changeCounter","cleanupLastIncludeContent","parseAsResourceUrl","afterAnimation","thisChangeId","BRACE","numberExp","whenExp","whens","whensExpFns","isWhen","attributeName","NG_REMOVED","ngRepeatMinErr","updateScope","valueIdentifier","keyIdentifier","arrayLength","$first","$last","$middle","$odd","$even","getBlockStart","getBlockEnd","ngRepeatEndComment","lhs","rhs","aliasAs","trackByExp","trackByExpGetter","trackByIdExpFn","trackByIdArrayFn","trackByIdObjFn","hashFnLocals","lastBlockMap","nextNode","collectionLength","trackById","trackByIdFn","collectionKeys","nextBlockOrder","previousNode","nextBlockMap","itemKey","blockKey","NG_HIDE_CLASS","NG_HIDE_IN_PROGRESS_CLASS","tempClasses","newStyles","oldStyles","cases","ngSwitchController","watchExpr","selectedTranscludes","selectedElements","previousLeaveAnimations","selectedScopes","spliceFactory","selectedTransclude","caseElement","selectedScope","ngOptionsMinErr","NG_OPTIONS_REGEXP","nullModelCtrl","nullOption","unknownOption","optionsMap","ngModelCtrl","databound","ngModelCtrl_","nullOption_","unknownOption_","addOption","removeOption","hasOption","renderUnknownOption","unknownVal","setupAsSingle","selectElement","selectCtrl","emptyOption","setupAsMultiple","lastView","setupAsOptions","callExpression","exprFn","valueName","keyName","selectionChanged","valuesFn","selectedKey","trackFn","trackKeysCache","getViewValue","render","viewValueFn","selectAsFn","getLabels","toDisplay","displayFn","createIsSelectedFn","selectedSet","trackIndex","compareValueFn","scheduleRendering","renderScheduled","updateLabelMap","labelMap","added","optionGroupName","optionGroup","existingParent","existingOptions","existingOption","groupLength","groupIndex","lastElement","optionId","optionGroups","optionGroupNames","isSelected","anySelected","groupByFn","optionGroupsCache","optGroupTemplate","optionTemplate","optionsExp","selectAs","nullSelectCtrl","selectCtrlName","expandDone","collapseDone","shouldCollapse","closeOthers","accordionConfig","openGroup","addGroup","groupScope","removeGroup","heading","setHeading","accordionCtrl","openClass","panelClass","toggleOpen","accordionGroupCtrl","accordionTransclude","closeable","alertCtrl","dismissOnTimeout","$bindHtmlUnsafeSuppressDeprecated","bindHtmlUnsafe","toggleEvent","buttonConfig","buttonsCtrl","btnRadio","uncheckable","getTrueValue","getCheckboxValue","btnCheckboxTrue","getFalseValue","btnCheckboxFalse","attributeValue","goNext","destroyed","currentSlide","noTransition","$currentTransition","slides","SLIDE_DIRECTION","NEW_ANIMATE","restartTimer","getSlideByIndex","resetTimer","currentInterval","timerFn","isPlaying","pause","NO_TRANSITION","nextSlide","nextIndex","indexOfSlide","getCurrentIndex","newIndex","noWrap","play","noPause","addSlide","removeSlide","actual","carouselCtrl","$animateCss","beforeAddClass","directionClass","removeClassFn","beforeRemoveClass","createParser","formatCodeToRegex","SPECIAL_CHARACTERS_REGEXP","parsers","baseDate","fields","dt","mapper","getStyle","cssprop","isStaticPositioned","parentOffsetEl","docDomEl","elBCR","offsetParentBCR","offsetParentEl","boundingClientRect","positionElements","hostEl","targetEl","positionStr","appendToBody","hostElPos","targetElWidth","targetElHeight","targetElPos","positionStrParts","pos0","pos1","shiftWidth","center","shiftHeight","formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","datepickerMode","minMode","maxMode","showWeeks","startingDay","shortcutPropagation","datepickerConfig","$datepickerSuppressError","modes","refreshView","initDate","activeDate","dateObject","activeDateId","_refreshView","createDateObject","model","customClass","dateDisabled","arrays","fixTimeZone","months","toggleMode",13,32,33,34,35,36,37,38,39,40,"focusElement","evt","handleKeyDown","datepickerCtrl","getDaysInMonth","DAYS_IN_MONTH","getDates","getISO8601WeekNumber","firstDayOfMonth","difference","numDisplayedFromPreviousMonth","firstDate","days","labels","abbr","weekNumbers","thursdayIndex","numWeeks","curWeek","date1","date2","getStartingYear","datepickerPopup","datepickerPopupTemplateUrl","datepickerTemplateUrl","html5Types","clearText","closeOnDateSelection","showButtonBar","onOpenFocus","$position","dateParser","datepickerPopupConfig","cameltoDash","datepickerAppendToBody","watchData","isHtml5DateInput","newDateFormat","popupEl","ng-model","ng-change","template-url","datepickerEl","datepickerOptions","oldvalue","dateSelection","documentClickBind","inputKeydownBind","$popup","openScope","dropdownScope","closeDropdown","keybindFilter","getAutoClose","toggleElement","getToggleElement","dropdownElement","getDropdownElement","focusToggleElement","isKeynavEnabled","focusDropdownEntry","dropdownConfig","dropdownService","templateScope","getIsOpen","setIsOpen","toggleInvoker","onToggle","keynavEnabled","dropdownAppendToBody","keyboardNav","dropdownMenu","autoClose","getElement","selectedOption","wasOpen","rightalign","openContainer","dropdownMenuTemplateUrl","tplContent","newEl","offDestroy","dropdownCtrl","tplUrl","toggleDropdown","createNew","removeTop","entries","hasKey","$modalStack","modalInClass","NOW_CLOSING_EVENT","setIsAsync","backdropClass","windowClass","getTop","backdrop","dismiss","$isRendered","modalRenderDeferObj","animationPromise","inputsWithAutofocus","modalRendered","modalAnimation","modalAnimationClass","$$multiMap","$$stackedMap","backdropIndex","topBackdropIndex","opened","openedWindows","removeModalWindow","modalInstance","elementToReceiveFocus","modalWindow","removeAfterAnimate","modalDomEl","modalScope","modalBodyClass","openedClass","OPENED_MODAL_CLASS","openedClasses","checkRemoveBackdrop","backdropDomEl","backdropScopeRef","backdropScope","domEl","afterAnimating","asyncDeferred","broadcastClosing","resultOrReason","focusableElementList","tababbleSelector","newBackdropIndex","keyboard","loadFocusElementList","focusChanged","isFocusInFirstItem","focusLastFocusableElement","isFocusInLastItem","focusFirstFocusableElement","modalOpener","renderDeferred","currBackdropIndex","angularBackgroundDomEl","angularDomEl","windowTemplateUrl","window-class","clearFocusListCache","$$uibDestructionScheduled","dismissAll","topModal","length0","modalDomE1","$modalProvider","getTemplatePromise","getResolvePromises","resolves","promisesArr","$modal","promiseChain","getPromiseChain","modalOptions","modalResultDeferred","modalOpenedDeferred","modalRenderDeferred","rendered","samePromise","templateAndResolvePromise","tplAndVars","$close","$dismiss","ctrlInstance","ctrlLocals","resolveIter","$modalInstance","setNumPages","itemsPerPage","totalPages","calculateTotalPages","selectPage","totalItems","clickAllowed","ngDisabled","noPrevious","noNext","boundaryLinks","directionLinks","firstText","previousText","lastText","rotate","paginationConfig","makePage","getPages","currentPage","startPage","endPage","isMaxSized","maxSize","previousPageSet","nextPageSet","paginationCtrl","originalRender","align","pagerConfig","defaultOptions","placement","popupDelay","useContentExp","triggerMap","none","globalOptions","setTriggers","triggers","defaultTriggerShow","getTriggers","startSym","endSym","tElem","tooltipLinker","tooltipCtrl","toggleTooltipBind","ttScope","hideTooltipBind","showTooltipBind","hasEnableExp","prepareTooltip","popupTimeout","transitionTimeout","contentExp","createTooltip","isOpenExp","origScope","positionTooltip","positionTimeout","removeTooltip","tooltipLinkedScope","repositionScheduled","prepPopupClass","prepPlacement","prepPopupDelay","popupClass","prepTriggers","unregisterTriggers","ttBox","ttCss","appendToBodyVal","tooltipTemplateTranscludeScope","tooltipTemplateTransclude","tooltipAnimationClass","$tooltip","originScope","tooltipHtmlUnsafeSuppressDeprecated","progressConfig","bars","addBar","bar","recalculatePercentage","totalPercentage","removeBar","$progressSuppressWarning","progressCtrl","stateOn","stateOff","titles","ratingConfig","tmpTitles","ratingStates","buildTemplateObjects","states","getTitle","rate","readonly","onHover","onLeave","onKeydown","ratingCtrl","selectedTab","onDeselect","selectCalled","addTab","removeTab","newActiveIndex","justified","tabsetCtrl","$transcludeFn","tabCtrl","isTabHeading","tabContentTransclude","headingElement","hourStep","minuteStep","showMeridian","meridians","readonlyInput","arrowkeys","showSpinners","timepickerConfig","getHoursFromTemplate","valid","meridian","getMinutesFromTemplate","pad","keyboardChange","makeValid","updateTemplate","invalidHours","invalidMinutes","addMinutes","addMinutesToSelected","hoursInputEl","minutesInputEl","setupMousewheelEvents","setupArrowkeyEvents","setupInputEvents","noIncrementHours","incrementedSelected","noDecrementHours","decrementedSelected","noIncrementMinutes","noDecrementMinutes","noToggleMeridian","isScrollingUp","wheelDelta","deltaY","detail","incrementHours","decrementHours","incrementMinutes","decrementMinutes","updateHours","updateMinutes","invalidate","toggleMeridian","timepickerCtrl","$transitionSuppressDeprecated","findEndEventName","endEventNames","transElement","$transition","endEventName","transitionEndHandler","transitionEndEventNames","WebkitTransition","MozTransition","OTransition","animationEndEventNames","transitionEndEventName","animationEndEventName","TYPEAHEAD_REGEXP","itemName","viewMapper","modelMapper","typeaheadParser","HOT_KEYS","eventDebounceTime","originalScope","fireRecalculating","moveInProgress","timeoutEventPromise","recalculatePosition","typeaheadMinLength","waitTime","typeaheadWaitMs","isEditable","typeaheadEditable","isLoadingSetter","typeaheadLoading","onSelectCallback","typeaheadOnSelect","isSelectOnBlur","typeaheadSelectOnBlur","isNoResultsSetter","typeaheadNoResults","inputFormatter","typeaheadInputFormatter","typeaheadAppendToBody","focusFirst","typeaheadFocusFirst","selectOnExact","typeaheadSelectOnExact","parsedModel","invokeModelSetter","$setModelValue","$$$p","parserResult","typeahead","popupId","popUpEl","move-in-progress","query","typeaheadTemplateUrl","typeaheadPopupTemplateUrl","resetMatches","activeIdx","getMatchId","inputIsExactMatch","inputValue","getMatchesAsync","onCurrentRequest","timeoutPromise","scheduleSearchWithTimeout","cancelPreviousTimeout","candidateViewValue","emptyViewValue","$model","$item","$label","typeaheadFocusOnSelect","dismissClickHandler","popupTemplateUrl","matchIdx","selectActive","selectMatch","clonedElement","escapeRegexp","queryToEscape","containsHtml","matchItem","isSanitizePresent","trustAsHtml","angularCacheModuleName","BinaryHeap","weightFunc","compareFunc","heap","_keys","utils","_isPromiseLike","_stringifyNumber","_keySet","$$data","$$promises","$$storage","$$expiresHeap","expires","$$lruHeap","accessed","$$id","$$cacheFlushIntervalId","$$recycleFreqId","removeItem","$$prefix","$$disabled","_this2","_ret","babelHelpers","onExpire","itemJson","getItem","$$deleteOnExpire","$$onExpire","setItem","created","isExpired","maxAge","$$maxAge","$$capacity","deleteOnExpire","cacheFlushInterval","$$cacheFlushInterval","recycleFreq","$$recycleFreq","storageMode","$$storageMode","storageImpl","keysJson","kSet","_this3","storeOnResolve","$$storeOnResolve","storeOnReject","$$storeOnReject","getHandler","store","isError","removeExpired","expired","expiredItem","setCacheFlushInterval","_this","setCapacity","removed","setDeleteOnExpire","setRecycleFreq","setMaxAge","setOnExpire","setOptions","cacheOptions","strict","$$storagePrefix","storagePrefix","setStorageMode","prevStorage","prevData","_key","prevDataIsObject","shouldReInsert","$$initializing","localStorage","sessionStorage","touch","_this4","CacheFactory","BinaryHeapProvider","CacheFactoryProvider","Symbol","bubbleUp","weight","parentN","bubbleDown","nodeWeight","child2N","child1N","child1","child1Weight","child2","child2Weight","BHProto","front","_Promise","destroyAll","clearAll","removeExpiredFromAll","enableAll","disableAll","touchAll","$httpProvider","cfpLoadingBar","setComplete","startTimeout","reqsCompleted","reqsTotal","isCached","latencyThreshold","ignoreLoadingBar","rejection","includeSpinner","includeBar","startSize","parentSelector","spinnerTemplate","loadingBarTemplate","$parentSelector","completeTimeout","loadingBarContainer","spinner","pct","loadingBar","incTimeout","_inc","_status","rnd","stat","_completeAnimation","_complete","inc","NG_ANIMATE_CHILDREN","ngAnimateChildren","bod","$animateProvider","extractElementNode","ELEMENT_NODE","prepareElement","stripCommentsFromElement","isMatchingElement","elm1","elm2","NG_ANIMATE_STATE","NG_ANIMATE_CLASS_NAME","rootAnimateState","blockElementAnimations","lookup","flagMap","klass","selectorFactoryName","animationRunner","animationEvent","registerAnimation","animationFactory","afterFn","beforeFn","cancellations","allCompleteFn","afterAnimationComplete","classNameAdd","classNameRemove","isSetClassOperation","isClassBased","currentClassName","isAnimatableClassName","beforeComplete","beforeCancel","afterComplete","afterCancel","animationLookup","performAnimation","afterElement","domOperation","fireDOMCallback","animationPhase","elementEvents","fireBeforeCallbackAsync","fireAfterCallbackAsync","fireDoneCallbackAsync","fireDOMOperation","hasBeenRun","closeAnimation","runner","cleanup","localAnimationCount","skipAnimations","ngAnimateState","runningAnimations","totalActiveAnimations","totalActive","lastAnimation","animationsDisabled","skipAnimation","animationsToCancel","operation","activeLeaveAnimation","globalAnimationCounter","cancelled","cancelChildAnimations","structural","removeAnimations","allowChildAnimations","parentRunningAnimation","hasParent","isRoot","animateChildrenFlag","$$animateReflow","clearCacheAfterReflow","cancelAnimationReflow","animationReflowQueue","lookupCache","afterReflow","animationCloseHandler","totalTime","animationElementQueue","futureTimestamp","closingTimestamp","closingTimer","closeAllAnimations","elementData","NG_ANIMATE_CSS_DATA_KEY","closeAnimationFn","getElementAnimationDetails","transitionDelayStyle","animationDelayStyle","transitionDurationStyle","transitionPropertyStyle","transitionDuration","transitionDelay","animationDuration","animationDelay","elementStyles","TRANSITION_PROP","DURATION_KEY","parseMaxTime","PROPERTY_KEY","DELAY_KEY","ANIMATION_PROP","aDuration","ANIMATION_ITERATION_COUNT_KEY","maxValue","getCacheKey","parentID","NG_ANIMATE_PARENT_KEY","parentCounter","animateSetup","calculationDecorator","eventCacheKey","itemIndex","stagger","staggerClassName","staggerCacheKey","applyClasses","formerData","timings","isCurrentlyAnimating","blockTransitions","blockKeyframeAnimations","isStructuralAnimation","isAnimating","NG_ANIMATE_BLOCK_CLASS_NAME","unblockTransitions","unblockKeyframeAnimations","animateRun","activeAnimationComplete","onEnd","css3AnimationEvents","onAnimationProgress","activeClassName","animateClose","appliedStyles","removeProperty","$manualTimeStamp","elapsedTime","ELAPSED_TIME_MAX_DECIMAL_PLACES","maxDelayTime","maxDuration","maxDelay","ONE_SECOND","ANIMATIONEND_EVENT","TRANSITIONEND_EVENT","propertyStyle","CSS_PREFIX","delayStyle","prepareStaggerDelay","staggerTime","animationTime","CLOSING_TIME_BUFFER","staggerDelay","animateBefore","animateAfter","animationComplete","preReflowCancellation","suffixClasses","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","animationCompleted","beforeSetClass","cancellationMethod","$SanitizeProvider","buf","htmlParser","htmlSanitizeWriter","sanitizeText","writer","parseStartTag","rest","blockElements","inlineElements","parseEndTag","optionalEndTagElements","voidElements","ATTR_REGEXP","doubleQuotedValue","singleQuotedValue","unquotedValue","decodeEntities","specialElements","COMMENT_REGEXP","CDATA_REGEXP","comment","DOCTYPE_REGEXP","BEGING_END_TAGE_REGEXP","END_TAG_REGEXP","BEGIN_TAG_REGEXP","START_TAG_REGEXP","$sanitizeMinErr","spaceRe","spaceBefore","spaceAfter","hiddenPre","encodeEntities","SURROGATE_PAIR_REGEXP","hi","low","NON_ALPHANUMERIC_REGEXP","uriValidator","ignore","validElements","lkey","validAttrs","uriAttrs","optionalEndTagBlockElements","optionalEndTagInlineElements","$sanitize","LINKY_URL_REGEXP","MAILTO_REGEXP","addText","addLink","makeSwipeDirective","ngTouch","$swipe","MAX_VERTICAL_DISTANCE","MAX_VERTICAL_RATIO","MIN_HORIZONTAL_DISTANCE","validSwipe","startCoords","deltaX","swipeHandler","getCoordinates","touches","changedTouches","MOVE_BUFFER_RADIUS","eventHandlers","totalX","totalY","lastPos","CLICKBUSTER_THRESHOLD","checkAllowableRegions","touchCoordinates","onClick","lastPreventedTime","PREVENT_DURATION","lastLabelClickCoordinates","onTouchStart","preventGhostClick","TAP_DURATION","MOVE_TOLERANCE","ACTIVE_CLASS_NAME","resetState","tapping","tapElement","touchStartX","touchStartY","clickHandler","ngClick","onclick","touchend","jrgMultiselectData","libArray","selectOpts","loadMore","defaultsAttrs","minLengthCreate","xx","initNgModel","selectedOpts","preLoadMore","trigs","loadMoreDtv","config1","loadMoreDelay","modelInput","lastLoadSearchVal","loadMoreMinSearchLength","searchText","ret1","itemsMore","optsList","formOpts","filterOpts","optsArray","index1","findArrayIndex","selectOpt","removeOpts","displayOnly","valsToRemove","removeDisplayOpt","bulkRemove","removeOpt","createNewCheck","displayBox","dropdown","selectedOpt","blurCoords","skipBlur","lastSearchVal","maxWrite","loadingOpt","createNewAllowed","keycodes","evtTimings","selectOptBlurReset","clickInputBlurReset","onBlurDelay","copyArray","filteredOpts","getFocusCoords","blurInput","keydownInput","focusInput","clickInput","createNewOpt","valChanged","oneD","onChangeEvt","newOpt","searchOpts","trig","inited","thisObj","instId","mouseInDiv","id1","ele","eles","top1","left1","right1","bottom1","ee","ele1","newArray","aa","skipKeys","goTrig","$RouteProvider","pathRegExp","insensitive","caseInsensitiveMatch","originalPath","slash","star","routes","route","routeCopy","reloadOnSearch","redirectPath","redirectTo","otherwise","$routeParams","switchRouteMatcher","prepareRoute","$locationEvent","lastRoute","$route","preparedRoute","parseRoute","preparedRouteIsUpdateOnly","$$route","pathParams","forceReload","commitRoute","nextRoute","interpolate","loadedTemplateUrl","segment","segmentMatch","updateParams","newParams","$routeMinErr","searchParams","$RouteParamsProvider","ngViewFactory","cleanupLastView","previousLeaveAnimation","ngViewFillContentFactory","ngRouteModule","ObjectPath","normalize","registerModule","tv4","recursiveCompare","A","B","parseURI","authority","resolveUrl","removeDotSegments","getDocumentUri","normSchema","schema","baseUri","ValidationError","dataPath","schemaPath","subErrors","stacktrace","isTrustedUrl","baseUrl","testUrl","remainder","createApi","language","globalContext","ValidatorContext","currentLanguage","api","addFormat","languages","addLanguage","messageMap","ErrorCodes","rootCode","freshApi","validate","checkRecursive","banUnknownProperties","$ref","addSchema","validateAll","missing","validateResult","validateMultiple","errors","getSchema","getSchemaMap","getSchemaUris","getMissingUris","dropSchemas","defineKeyword","defineError","codeNumber","defaultMessage","ErrorCodeLookup","ErrorMessagesDefault","langCode","errorCodes","hasDontEnumBug","propertyIsEnumerable","dontEnums","dontEnumsLength","F","vArg","searchElement","isFrozen","collectMultiple","errorMessages","trackUnknownProperties","missingMap","formatValidators","schemas","collectError","returnError","scanned","scannedFrozen","scannedFrozenSchemas","scannedFrozenValidationErrors","validatedSchemasKey","validationErrorsKey","knownPropertyPaths","unknownPropertyPaths","definedKeywords","keyword","keywordFunction","createError","messageParams","messageTemplate","varName","subValue","prefixErrors","prefixWith","unknownPath","UNKNOWN_PROPERTY","resolveRefs","urlHistory","CIRCULAR_REFERENCE","urls","pointerPath","component","searchSchemas","filterRegExp","dataPathParts","schemaPathParts","dataPointerPath","topLevel","frozenIndex","startErrorCount","scannedFrozenSchemaIndex","scannedSchemasIndex","schemaIndex","frozenSchemaIndex","defineProperty","configurable","errorCount","validateBasic","validateNumeric","validateString","validateArray","validateObject","validateCombinations","validateFormat","validateDefinedKeywords","dataPart","schemaPart","errorMessage","FORMAT_CUSTOM","validationFunctions","KEYWORD_CUSTOM","validateType","validateEnum","allowedTypes","INVALID_TYPE","expected","enumVal","ENUM_MISMATCH","validateMultipleOf","validateMinMax","multipleOf","divisibleBy","NUMBER_MULTIPLE_OF","minimum","NUMBER_MINIMUM","exclusiveMinimum","NUMBER_MINIMUM_EXCLUSIVE","maximum","NUMBER_MAXIMUM","exclusiveMaximum","NUMBER_MAXIMUM_EXCLUSIVE","validateStringLength","validateStringPattern","STRING_LENGTH_SHORT","maxLength","STRING_LENGTH_LONG","STRING_PATTERN","validateArrayLength","validateArrayUniqueItems","validateArrayItems","minItems","ARRAY_LENGTH_SHORT","maxItems","ARRAY_LENGTH_LONG","uniqueItems","ARRAY_UNIQUE","match1","match2","additionalItems","ARRAY_ADDITIONAL_ITEMS","validateObjectMinMaxProperties","validateObjectRequiredProperties","validateObjectProperties","validateObjectDependencies","minProperties","OBJECT_PROPERTIES_MINIMUM","propertyCount","maxProperties","OBJECT_PROPERTIES_MAXIMUM","OBJECT_REQUIRED","keyPointerPath","foundMatch","patternProperties","patternKey","additionalProperties","OBJECT_ADDITIONAL_PROPERTIES","dependencies","depKey","dep","OBJECT_DEPENDENCY_KEY","requiredKey","validateAllOf","validateAnyOf","validateOneOf","validateNot","allOf","subSchema","anyOf","oldUnknownPropertyPaths","oldKnownPropertyPaths","errorAtEnd","knownKey","unknownKey","ANY_OF_MISSING","oneOf","validIndex","ONE_OF_MULTIPLE","index2","ONE_OF_MISSING","oldErrorCount","notErrors","NOT_PASSED","dataPrefix","schemaPrefix","schemaForm","objectpath","deps","sfPath","sfPathProvider","snakeCase","formId","builders","sfField","fieldFrag","keyRedaction","strKey","modelName","conf","simpleTransclusion","build","transclusion","transclusions","sub","childFrag","evalExpr","arrayCompatFlag","stdBuilders","schemaFormDecorators","checkForSlot","slots","slot","templateFn","frag","tmpl","builderFn","builder","__name","internalBuild","defaultDecorator","decorators","createDirective","sfErrorMessage","sfSelect","sfSchema","showTitle","notitle","listToCheckboxValues","checkboxValuesToList","lst","buttonClick","evalInParentScope","evalInScope","interp","hasSuccess","hasError","schemaError","validationMessage","templatePromise","externalDestructionInProgress","destroyStrategy","createManualDirective","watchThis","titleMap","updateForm","createDecorator","templates","defineDecorator","createDirectives","addMapping","defineAddOn","defaultMessages",1,10,11,12,100,101,102,103,104,105,200,201,202,300,301,302,303,304,400,401,402,403,500,501,600,1000,"setDefaultMessages","getDefaultMessages","setDefaultMessage","stripNullType","enumToTitleMap","enm","canonicalTitleMap","originalEnum","canonical","defaultFormDefinition","rules","stdFormObj","formDefaults","supressPropertyTitles","description","readOnly","enumNames","integer","checkboxes","fieldset","arrPath","boolean","postProcessFn","appendRule","rule","prependRule","createStandardForm","asyncTemplates","stdForm","itemForm","strid","schemaDefaults","traverseSchema","ignoreArrays","traverse","currentPath","traverseForm","numRe","projection","valueToSet","valueWrap","sfValidator","setIndex","formDefCache","sfArray","modelArray","subForm","copyWithIndex","arrayIndex","appendToArray","dflt","deleteFromArray","startEmpty","titleMapValues","updateTitleMapValues","pristine","sfChanged","sfMessage","currentMessage","setMessage","checkForErrors","sfNewArray","watchFn","firstDigest","validateOnRender","validateField","onChangeFn","getOrCreateModel","setSchemaDefaults","sfBuilder","initialForm","models","lastDigest","merged","internalRender","slotsFound","sfUseDecorator","defaultForm","schemaValidate","copyValueTo","paths","tv4Validation","formName","bootstrapDecorator","decoratorsProvider","tabarray","section","conditional","actions","radios-inline","radiobuttons","help","defs","fragments","fi","expose","privateModules","AMDLC_TESTS","relativePosition","rect","targetRect","rel","targetW","targetH","findBestRelativePosition","constrainRect","rels","inflate","cropRect","clampRect","fixedSize","underflowX1","underflowY1","overflowX2","overflowY2","cx2","cy2","fromClientRect","clientRect","thisArg","_state","_deferreds","doResolve","me","asap","cb","finale","Handler","ex","immediateFn","setImmediate","race","featurefill","requestAnimationFrameFunc","vendors","wrappedSetTimeout","wrappedSetInterval","wrappedClearTimeout","wrappedClearInterval","requestAnimationFramePromise","setEditorTimeout","editor","setEditorInterval","throttle","matchMediaQuery","matchMedia","opera","webkit","ie11","ie12","gecko","mac","iDevice","fileApi","phone","tablet","windowsPhone","nav","buildNumber","appName","createObjectURL","contentEditable","iOS","transparentSrc","caretAfter","ceFalse","canHaveCSP","desktop","Delay","Env","addEvent","getTargetFromShadowDom","defaultTarget","deepPath","undef","deprecated","experimentalShadowDom","mouseEventRe","bindOnReady","eventUtils","readyHandler","domLoaded","waitForDomLoaded","tryScroll","EventUtils","executeHandlers","callbackList","hasFocusIn","hasMouseEnterLeave","mouseEnterLeave","eventExpandoPrefix","defaultNativeHandler","fakeName","nativeHandler","ci","eventMap","clean","keyLocation","layerX","layerY","webkitMovementX","webkitMovementY","testContext","oldCache","newCache","hasCompare","compiled","iteratee","accumulator","findIndex","Arr","whiteSpaceRegExp","delim","ns","cn","scn","de","createNS","onCreate","ext","walk","_addCacheSuffix","cacheSuffix","Tools","createFragment","fragDoc","domManipulate","targetNodes","sourceItem","getElementDocument","DomQuery","lastParent","newWrapper","siblingName","firstSibling","appendHooks","targetHooks","skipUniques","numericCssMap","booleanMap","cssFix","camel","dashed","existingClassName","classState","docElm","overrideDefaults","toHex","encodingItems","validStyles","invalidStyles","rgbRegExp","urlOrStrRegExp","styleRegExp","trimRightRegExp","encodingLookup","invisibleChar","getValidStyles","getInvalidStyles","compress","noJoin","canCompress","compress2","encode","isEncoded","decode","keep_slashes","decodeSingleHexSequence","escSeq","decodeHexSequences","processUrl","url2","url3","allow_script_urls","scriptUrl","allow_svg_data_urls","urlConverter","urlConverterScope","url_converter","url_converter_scope","elementName","serializeStyles","styleList","styleMap","startNode","rootNode","findSibling","startName","shallow","findPreviousNode","prev2","Range","dom","setStart","_setEndPoint","TRUE","setEnd","FALSE","setStartBefore","setStartAfter","setEndBefore","setEndAfter","END_CONTAINER","START_CONTAINER","END_OFFSET","START_OFFSET","collapsed","selectNode","selectNodeContents","compareBoundaryPoints","sc","so","ec","eo","rsc","startContainer","rso","startOffset","rec","endContainer","reo","endOffset","_compareBoundaryPoints","deleteContents","_traverse","extractContents","EXTRACT","cloneContents","CLONE","insertNode","nn","splitText","surroundContents","cloneRange","commonAncestorContainer","_getSelectedNode","_isCollapsed","containerA","offsetA","containerB","offsetB","offsetC","cmnRoot","childA","childB","findCommonAncestor","st","how","depthDiff","ep","endContainerDepth","startContainerDepth","_traverseSameContainer","_traverseCommonStartContainer","_traverseCommonEndContainer","_traverseCommonAncestors","cnt","xferNode","deleteData","_traverseFullySelected","endAncestor","endIdx","_traverseRightBoundary","previousSibling","startAncestor","startIdx","_traverseLeftBoundary","clonedParent","prevSibling","clonedChild","clonedGrandParent","isFullySelected","_traverseNode","isLeft","txtValue","newNodeValue","oldNodeValue","toStringIE","outerText","START_TO_START","START_TO_END","END_TO_END","END_TO_START","nativeDecode","buildEntitiesLookup","radix","entity","baseEntities","namedEntities","reverseEntities","attrsCharsRegExp","textCharsRegExp","rawCharsRegExp","entityRegExp","asciiMap",128,130,131,132,133,134,135,136,137,138,139,140,142,145,146,147,148,149,150,151,152,153,154,155,156,158,159,"&","`","<",">","&",""","'","Entities","encodeRaw","encodeAllRaw","encodeNumeric","encodeNamed","entities","getEncodeFunc","encodeNamedAndNumeric","encodeCustomNamed","named","numeric","appendToHead","loadedCallback","errorCallback","passed","failed","isOldWebKit","webKitChunks","testCallback","waitCallback","maxLoadTime","waitForWebKitLinkLoaded","styleSheet","owner","styleSheets","ownerNode","owningElement","waitForGeckoLinkLoaded","cssRules","sheet","loadedStates","idCount","Styles","TreeWalker","StyleSheetLoader","setupAttrHooks","domUtils","keepUrlHook","keepValues","keep_values","$elm","serializeStyle","parseStyle","updateInternalStyleAttr","lastNodeType","DOMUtils","blockElementsMap","files","stdMode","isIE","boxModel","compatMode","styleSheetLoader","boundEvents","fixDoc","ownEvents","getBlockElements","getRoot","isBlock","simpleSelectorRe","$$","getCustomElements","getAttribs","setAttrib","getAttrib","root_element","getViewPort","rootElm","getRect","getPos","getSize","getParent","getParents","collect","selectorVal","getNext","_findSib","getPrev","elms","parentElm","newElm","setAttribs","setHTML","createHTML","outHtml","keepChildren","setStyle","update_styles","setStyles","removeAllAttribs","removeAttributeNode","originalValue","onSetAttrib","attrElm","attrValue","defaultVal","addStyle","styleElm","DOM","addedStyles","loadCSS","recalc","cls","canHaveHTML","getOuterHTML","setOuterHTML","referenceNode","oldElm","rename","attrNode","pe","ps","rgbVal","attrRegExp","isEmpty","walker","brCount","getNonEmptyElements","getWhiteSpaceElements","bogusVal","createRng","splitElm","replacementElm","trimNode","surroundedBySpans","previousIsSpan","nextIsSpan","trimmedLength","bef","aft","pa","getContentEditable","getContentEditableParent","isChildOf","dumpRng","ScriptLoader","loadScript","failure","QUEUED","LOADING","LOADED","FAILED","scriptLoadedCallbacks","queueLoadedCallbacks","loading","isDone","markDone","loadQueue","loadScripts","execCallbacks","failures","loadingScripts","AddOnManager","requireLangPack","languageLoad","addOn","createUrl","resource","addComponents","pluginName","pluginUrl","addOnUrl","loadDependencies","baseURL","PluginManager","ThemeManager","isNodeType","matchNodeNames","matchStyleValues","cssValue","hasPropValue","propValue","hasAttributeValue","isBogus","hasContentEditableState","isText","isComment","isBr","isContentEditableTrue","isContentEditableFalse","isZwsp","ZWSP","NodeType","Zwsp","isCaretContainerBlock","isCaretContainerInline","isCaretContainer","removeNode","getNodeValue","setNodeValue","insertInline","textNode","endsWithCaretContainer","startsWithCaretContainer","createBogusBr","br","insertBlock","blockName","blockNode","caretContainerNode","trimBogusBr","brs","lastBr","showCaretContainerBlock","caretContainer","CaretContainer","hasCeProperty","getEndChild","findParent","isFormatterCaret","isCeFalseCaretContainer","RangeUtils","rng","exclude","collectSiblings","end_node","findEndPoint","walkBoundary","start_node","startPoint","endPoint","hasChildNodes","normalizeEndPoint","isTableCell","hasBrBeforeAfter","hasContentEditableFalseParent","isPrevNode","findTextNodeRelative","lastInlineElement","parentBlockContainer","isAfterNode","nonEmptyElementsMap","directionLeft","findClosestIeRange","rects","elementFromPoint","createTextRange","moveToElementText","getClientRects","moveToPoint","moveOutOfContentEditableFalse","compareRanges","rng1","rng2","duplicate","isEqual","getCaretRangeFromPoint","point","caretPositionFromPoint","offsetNode","caretRangeFromPoint","getSelectedNode","getNode","isSameElementPath","startElm","getBody","lastPath","lastRng","getDoc","nativeRng","fakeRng","getRng","getStart","isCollapsed","nodeChanged","selectionChange","disable_nodechange","root_node","Node","typeLookup","#text","#comment","#cdata","#pi","#doctype","#document-fragment","selfAttrs","selfAttr","cloneAttrs","shortEnded","ref_node","compileSchema","arrayToMap","ni","attributesOrder","globalAttributes","dummyObj","addAttrs","schemaItem","blockContent","phrasingContent","flowContent","html4BlockContent","html4PhrasingContent","mapCache","table","compileElementMap","createLookupTable","default_value","extendWith","patternToRegExp","addValidElements","ei","ai","al","attrData","attrType","outputName","globalAttributesOrder","elementRuleRegExp","attrRuleRegExp","hasPatternsRegExp","paddEmpty","removeEmpty","removeEmptyAttrs","attributesRequired","attributesDefault","attributesForced","forcedValue","validValues","attributePatterns","patternElements","setValidElements","schemaItems","addCustomElements","customElements","customElementRegExp","text_block_elements","block_elements","cloneName","customElementsMap","customRule","elmName","addValidChildren","validChildren","childRuleRegExp","getElementRule","whiteSpaceElementsMap","selfClosingElementsMap","shortEndedElementsMap","boolAttrMap","validClasses","moveCaretBeforeOnEnterElementsMap","textBlockElementsMap","textInlineElementsMap","verify_html","valid_elements","valid_styles","invalid_styles","valid_classes","custom_elements","valid_children","extended_valid_elements","parentsRequired","invalid_elements","getValidClasses","getBoolAttrs","getTextBlockElements","getTextInlineElements","getShortEndedElements","getSelfClosingElements","getMoveCaretBeforeOnEnterElements","getSpecialElements","isValidChild","attrPatterns","Schema","trimComments","sanitizedText","findEndTag","tokenRegExp","shortEndedElements","SaxParser","fix_self_closing","processEndTag","parseAttribute","val2","val3","attrRule","trimRegExp","fillAttrsMap","isInternalElement","validAttributesMap","validAttributePatterns","filteredUrlAttrs","unescape","scriptUriRegExp","allow_html_data_urls","dataUriRegExp","attrList","endRegExp","removeInternalElements","isShortEnded","elementRule","isValidElement","attribsValue","anyAttributesRequired","selfClosing","fixSelfClosing","self_closing_elements","remove_internals","allow_conditional_comments","cdata","doctype","pi","paddEmptyNode","padd_empty_with_br","hasOnlyChild","fixInvalidChildren","newParent","currentNode","tempNode","childNode","nonEmptyElements","whitespaceElements","nonSplitableElements","textBlockElements","fixed","filterNode","nodeFilters","attributeFilters","matchedNodes","matchedAttributes","root_name","addNodeFilter","addAttributeFilter","addRootBlocks","rootBlockNode","startWhiteSpaceRegExp","endWhiteSpaceRegExp","rootBlockName","createNode","forced_root_block_attrs","removeWhitespaceBefore","textNodeNext","textVal","cloneAndExcludeBlocks","fl","isInWhiteSpacePreservedElement","allWhiteSpaceRegExp","isAllWhiteSpaceRegExp","whiteSpaceElements","invalidChildren","forced_root_block","attrFiltersLen","invalid","isRootContent","remove_trailing_brs","prevName","allow_unsafe_link_target","addTargetRules","removeTargetRules","regExp","toggleTargetRules","isUnsafe","allow_html_in_named_anchor","fix_list_elements","classList","classValue","validClassesMap","indent","indentBefore","indentAfter","htmlOutput","indent_before","indent_after","entity_encoding","element_format","getContent","Writer","sortedAttrs",3,8,7,4,"inner","DomParser","Serializer","trimTrailingBr","brNode1","brNode2","trimHtml","trimContentRegExp","tempAttrs","trimContent","endTagIndex","matchLength","bogusAllRegExp","getTrimmedContent","addTempAttr","internalName","impl","oldDoc","htmlSerializer","implementation","createHTMLDocument","importNode","no_events","onPreProcess","getInner","onPostProcess","addRules","setRules","Selection","getPosition","checkRng","inside","compareEndPoints","getRange","ieRange","textNodeOffset","domRange","tmpRange","element2","bookmark","getBookmark","moveToBookmark","getIndexes","indexes","getBookmarkEndPoint","resolveIndexes","setBookmarkEndPoint","moveLeft","moveRng","moveStart","setEndPoint","createControlRange","addElement","marker","tmpRng","ieRng","ctrlRng","ctrlElm","SPACEBAR","modifierPressed","metaKeyPressed","VK","getContentEditableRoot","object_resizing","resizeGhostElement","proportional","resizeHelperX","resizeHelperY","screenX","startX","screenY","startY","selectedHandle","startW","startH","selectedElm","resize_img_proportional","ratio","selectedElmGhost","startPos","resizeHelper","selectedElmX","selectedElmY","startScrollWidth","startScrollHeight","resizeStarted","endGhostResize","setSizeProp","editableDoc","rootDocument","showResizeRect","targetElm","mouseDownHandleName","mouseDownEvent","hideResizeRect","unbindResizeHandleEvents","detachResizeStartListener","startDrag","unSelectabe","data-mce-bogus","handleElm","updateResizeRect","isChildOrEqual","controlElm","disableGeckoResize","getEnd","resizeNativeStart","corner","cornerX","cornerY","relativeX","relativeY","lastMouseDownEvent","isWithinContentEditableFalse","nativeControlSelect","execCommand","controlSelect","rootClass","contentStyles","delayedSelect","throttledUpdateResizeRect","negate","compose","or","and","curry","tempArgs","isCaretCandidate","isInvalidTextElement","isAtomicInline","isTable","isInEditable","isAtomicContentEditableFalse","isAtomic","isEditableCaretCandidate","toStart","rect1","rect2","isValidOverflow","clientRect1","clientRect2","isAbove","isBelow","isRight","containsXY","isExtendingChar","extendingChars","Fun","CaretCandidate","ClientRect","ExtendingChar","isWhiteSpace","isHiddenWhiteSpaceRange","isNotPre","getCaretPositionClientRects","caretPosition","getBrClientRect","brNode","nbsp","clientRects","collapseAndInflateWidth","addUniqueAndValidRect","addCharacterOffset","beforeNode","isAtEnd","resolveIndex","isValidElementCaretCandidate","CaretPosition","isAtStart","toRange","isFloated","fromRangeStart","fromRangeEnd","DomUtils","normalizedParent","getChildNodes","normalizedTextOffset","equal","targetValue","normalizedNodeIndex","numTextFragments","createPathItem","outputOffset","resolvePathItem","findTextPosition","dataLen","CaretBookmark","BookmarkManager","normalizeTableCellSelection","moveEndPoint","getPoint","findAdjacentContentEditableFalseElm","tridentSel","pasteHTML","data-mce-type","keep","restoreEndPoint","appendData","addBogus","resolveCaretPositionBookmark","setRng","isBookmarkNode","TridentSelection","ControlSelection","serializer","bookmarkManager","controlSelection","setCursorLocation","_moveEndPoint","whiteSpaceBefore","whiteSpaceAfter","tmpElm","getSel","htmlText","setContent","caretNode","createContextualFragment","real","startElement","endElement","lastFocusBookmark","w3c","tryCompareBoundaryPoints","sourceRange","destinationRange","selectedRange","explicitRange","setBaseAndExtent","anchorNode","focusNode","setNode","skipEmptyTextNodes","forwards","getSelectedBlocks","endElm","selectedBlocks","isForward","anchorRange","focusRange","anchorOffset","focusOffset","selectorChanged","currentSelectors","selectorChangedData","matchedSelectors","getScrollContainer","scrollContainer","alignToTop","viewPort","viewPortY","viewPortH","offsetY","getWin","placeCaretAt","ElementUtils","node1","node2","attribs","compareObjects","obj1","obj2","parsedSelectorToHtml","ancestry","decorate","sItem","getRequiredParent","elmRule","wrapInHtml","parentCandidate","parentRequired","ancestorName","siblingElm","selectorToHtml","parseSelector","parseSelectorItem","$0","$2","$3","$4","getCssText","removeVars","previewFrag","previewElm","parentFontSize","previewStyles","previewCss","preview_styles","formatter","preview","addPostProcessHook","postProcessHooks","hasPreSibling","isPre","blocks","joinPre","pre1","pre2","Preview","Hooks","ed","isTextBlock","isInlineBlock","isCaretNode","defaultFormats","valigntop","verticalAlign","valignmiddle","valignbottom","alignleft","ceFalseOverride","textAlign","defaultBlock","aligncenter","alignright","alignjustify","bold","italic","fontStyle","underline","textDecoration","exact","strikethrough","forecolor","links","remove_similar","hilitecolor","fontname","fontFamily","fontsize","fontsize_class","blockquote","subscript","superscript","onmatch","onformat","fmt","vars","removeformat","block_expand","addKeyboardShortcuts","addShortcut","mixed","unregister","matchesUnInheritedFormatSelector","formatList","getTextDecoration","decoration","processUnderlineAndColor","setElementFormat","replaceVars","styleVal","applyNodeStyle","adjustSelectionToVisibleSelection","findSelectionEnd","newEnd","applyRngStyle","node_specific","wrapName","wrapElm","newWrappers","rangeUtils","process","parentName","lastContentEditable","isEq","currentWrapElm","matchNode","getChildCount","isWhiteSpaceNode","getChildElementNode","isElementNode","matchNestedWrapper","mergeStyles","matchName","childCount","removeFormat","merge_with_parents","styleNode","hasStyle","merge_siblings","mergeSiblings","getNonWhiteSpaceSibling","expandRng","performCaretAction","curSelNode","forcedRootBlock","processChildElements","applyStyle","similar","findFormatRoot","formatRoot","wrapAndSplit","lastClone","firstClone","formatRootParent","splitToFormatRoot","removeRngStyle","getContainer","matchItems","item_name","normalizeStyleValue","matchParents","matchAll","matchedFormatNames","checkedMap","canApply","formatChanged","currentFormats","formatChangeData","matchedFormats","findParentContainer","isBogusBr","findLeaf","findParentContentEditable","findWordEndPoint","findSpace","pos2","lastTextNode","findSelectorEndPoint","sibling_name","curFormat","findBlockEndPoint","lastIdx","leaf","isColorFormatAndAnchor","compare_node","stylesModified","valueOut","MCE_ATTR_RE","rootBlockElm","list_block","findElementSibling","tmpSibling","elementUtils","createCaretContainer","fill","caretContainerId","INVISIBLE_CHAR","isCaretContainerEmpty","getParentCaretContainer","findFirstTextNode","removeCaretContainer","move_caret","applyCaretFormat","wordcharRegex","removeCaretFormat","hasContentAfter","formatNode","unmarkBogusCaretParents","caret_debug","_hasCaretEvents","markCaretContainersBogus","disableCaretContainer","isAtEndOfText","tmpNode","KEEP","INSERT","vDown","vUp","snake","diag","buildScript","start1","end1","start2","end2","getMiddleSnake","i2","buildSnake","Diff","getOuterHtml","insertAt","removeAt","applyDiff","read","currentFragments","Fragments","hasIframes","createFragmentedLevel","beforeBookmark","createCompleteLevel","createFromEditor","trimmedFragments","applyToEditor","level","getLevelContent","level1","level2","Levels","setDirty","addNonTypingUndoLevel","typing","endTyping","isFirstTypedCharacter","locks","cmd","command","beforeChange","isDirty","lastLevel","modKey","currentLevel","custom_undo_redo_levels","undo","redo","hasUndo","hasRedo","transact","callback1","callback2","handleEnterKey","canSplitBlock","renderBlockOnIE","oldRng","trimInlineElementsOnLeftSideOfBlock","firstChilds","moveToCaretPosition","firstNonWhiteSpaceNodeSibling","tempElm","lastNode","parentBlock","setForcedBlockAttrs","forcedRootBlockName","emptyBlock","createNewBlock","clonedNode","textInlineElements","parentBlockName","newBlockName","keep_styles","editableRoot","isCaretAtStartOrEndOfBlock","isAfterLastNodeInContainer","wrapSelfAndSiblingsInDefaultBlock","newBlock","handleEmptyListItem","isFirstOrLastLi","containerBlock","getContainerBlock","containerBlockParent","containerBlockParentName","undoManager","insertBr","trimLeadingLineBreaks","getEditableRoot","addBrToBlockIfNeeded","insertNewBlockAfter","containerBlockName","end_container_on_empty_block","force_p_newlines","br_in_pre","restoreSelection","rootNodeName","moveEnd","isForwards","isBackwards","skipCaretContainers","findNode","predicateFn","getEditingHost","getParentBlock","isBlockLike","isInSameBlock","caretPosition1","caretPosition2","isInSameEditingHost","getChildNodeAtRelativeOffset","relativeOffset","beforeAfter","isNodesInSameBlock","lean","normalizeRange","leanLeft","leanRight","isNextToContentEditableFalse","isBeforeContentEditableFalse","isAfterContentEditableFalse","CaretUtils","nodeAtIndex","getCaretCandidatePosition","isBrBeforeBlock","findCaretPosition","startCaretPosition","innerNode","rootContentEditableFalseElm","CaretWalker","isListFragment","cleanupDomFragment","domFragment","toDomFragment","listItems","trimListItems","getParentLi","isParentBlockLi","getSplit","beforeRng","afterRng","findFirstIn","caretPos","caretWalker","newCaretPos","findLastOf","insertMiddle","insertAtCaret","liTarget","liElms","BEGINNING","isAt","newPos","InsertList","validInsertion","insertHtmlAtCaret","details","trimOrPaddLeftRight","hasSiblingText","trimNbspAfterDeleteAndPaddValue","reduceInlineTextElements","testNode","markFragmentElements","umarkFragmentElements","isPartOfFragment","canHaveChildren","moveSelectionToMarker","getContentEditableFalseParent","findNextCaretRng","parentEditableFalseElm","nextRng","bookmarkHtml","caretElement","parserArgs","paste","_selectionOverrides","showBlockCaretContainer","addVisual","processValue","InsertContent","isOldIE","customCommand","skip_focus","commands","theme","queryCommandState","quirks","queryCommandValue","addCommands","command_list","addCommand","queryCommandSupported","addQueryStateHandler","addQueryValueHandler","hasCustomCommand","execNativeCommand","isFormatMatch","toggleFormat","storeSelection","mceResetDesignMode,mceBeginUndoLevel","mceEndUndoLevel,mceAddUndoLevel","Cut,Copy,Paste","queryCommandEnabled","translate","notificationManager","unlink","JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone","InsertUnorderedList,InsertOrderedList","listElm","listParent","Bold,Italic,Underline,Strikethrough,Superscript,Subscript","ForeColor,HiliteColor,FontName","FontSize","fontClasses","fontSizes","font_size_style_values","font_size_classes","RemoveFormat","mceBlockQuote","FormatBlock","mceCleanup","mceRemoveNode","mceSelectNodeDepth","mceSelectNode","mceInsertContent","mceInsertRawHTML","mceToggleFormat","mceSetContent","Indent,Outdent","intentValue","indentUnit","indentation","indentStyleName","getParam","mceRepaint","InsertHorizontalRule","mceToggleVisualAid","hasVisual","mceReplaceContent","mceInsertLink","selectAll","editingHost","delete","mceNewDocument","InsertLineBreak","hasRightSideContent","brElm","extraBr","isControlKey","JustifyLeft,JustifyCenter,JustifyRight,JustifyFull","Outdent","inline_styles","paddingLeft","FontSize,FontName","Undo","Redo","URI","base_url","base_uri","isProtocolRelative","directory","toAbsPath","queryParts","userInfo","mailto","setPath","getURI","toRelative","tu","uu","toRelPath","toAbsolute","noHost","isSameOrigin","defaultPort","breakPoint","outPath","nb","noProtoHost","parseDataUri","getDocumentBaseUrl","loc","Class","extendClass","mixins","mixin","Mixins","dummy","createMethod","member","Methods","Properties","fieldName","Statics","Defaults","Dispatcher","beforeFire","nativeEvents","isNative","Binding","otherModel","otherName","fromSelfToOther","fromOtherToSelf","_bindings","EventDispatcher","getEventDispatcher","_eventDispatcher","toggleNativeEvent","hasEventListeners","Observable","__checked","Collection","chunker","whiteSpace","Selector","compileNameFilter","compileIdFilter","_name","compileClassesFilter","compileAttrFilter","cmp","compilePsuedoFilter","notSelectors","parseChunks","direct","_selectors","si","sl","funcs","getWindowSize","getRuntimeStyle","innerHtml","parseBox","measureBox","getSide","ClassList","onchange","_map","curState","clsValue","animationFrameRequested","dirtyCtrls","_layout","_id","reflow","ObservableObject","BoxUtils","ReflowQueue","_nativeEvents","bindPendingEvents","eventCtrl","getParentCtrl","mouseLeaveHandler","eventRootCtrl","_lastHoverCtrl","getEl","mouseEnterHandler","lastParents","lastCtrl","fixWheelEvent","wheelDeltaX","_eventsRoot","eventRootDelegates","_delegates","hasWheelEventSupport","_hasMouseEnter","hasMouseWheelEventSupport","Control","classPrefix","idCounter","isRtl","defaultClasses","_aria","_elmCache","borderBox","paddingBox","marginBox","getContainerElm","controlIdLookup","initLayoutRect","layoutRect","autoResize","startMinWidth","startMinHeight","initialSize","deltaW","deltaH","maxW","maxH","_layoutRect","contentW","contentH","innerW","innerH","minW","minH","scrollW","_lastLayoutRect","newRect","lastLayoutRect","deltaWidth","deltaHeight","repaintControls","curRect","repaint","bodyElm","borderW","borderH","lastRepaintRect","_lastRepaintRect","_hasBody","updateLayoutRect","_lastRect","resolveCallbackName","parentsAndSelf","parentControls","$el","aria","ariaTarget","newItems","renderBefore","renderHtml","postRender","renderTo","preRender","parentEventsRoot","border-top-width","border-right-width","border-bottom-width","border-left-width","bindStates","parentCtrl","getOffset","parentWidth","parentHeight","rootControl","namespaceInit","typeClass","ControlType","tinymce","getRole","focusedElement","getParentRole","getAriaProp","isTextInputElement","canFocus","getFocusElements","getNavigationRoot","targetControl","navigationRoot","focusedControl","ariaRoot","focusElements","ariaRemember","moveFocusToIndex","lastAriaIndex","moveFocus","parentRole","handleNonTabOrEscEvent","Factory","KeyboardNavigation","selectorCache","_items","bodyClasses","containerCls","layout","focusCtrl","statusbar","autofocus","ctrlItems","defaultType","renderNew","containerElm","curItems","beforeItems","afterItems","fromJSON","lastRect","getDocumentSize","updateWithTouchData","getHandleElm","$eventOverlay","downButton","docSize","DragHelper","renderScroll","repaintScroll","repaintAxis","axisName","posName","sizeName","contentSizeName","hasScroll","ax","scrollBarElm","scrollThumbElm","scrollSize","posNameLower","sizeNameLower","hasScrollH","hasScrollV","addScroll","addScrollAxis","deltaPosName","scrollStart","axisId","draghelper","autoScroll","bodyEl","Container","Scrollable","_preBodyHtml","calculateRelativePosition","selfW","selfH","viewport","testMoveRel","viewPortRect","moveRel","moveTo","moveBy","constrainToViewport","resizeToContent","resizeTo","resizeBy","Panel","Movable","Resizable","skipOrHidePanels","visiblePanels","clickCtrl","autohide","bindDocumentClickHandler","documentClickHandler","bindDocumentScrollHandler","documentScrollHandler","repositionPanel","bindWindowResizeHandler","windowResizeHandler","FloatPanel","hideAll","toggleFixedChildPanels","autofix","_autoFixY","addRemove","zOrder","modalBlockEl","hasModal","currentZIndex","removeVisiblePanel","$modalBlockEl","popover","ariaLabel","describedBy","bodyRole","toggleFullScreenState","contentValue","noScaleMetaValue","overrideViewPort","oldMetaValue","toggleBodyFullScreenClasses","checkFullscreenWindows","windows","_fullscreen","handleWindowResize","reposition","lastSize","Window","spacing","pack","closeClass","needsRecalc","headerW","headEl","headerH","headerHtml","footerHtml","fullscreen","slowRendering","_timer","_initial","dragHelper","getContentWindow","ifr","MessageBox","multiline","OK","OK_CANCEL","YES_NO","YES_NO_CANCEL","msgBox","createButton","subtype","onPostRender","onCancel","alert","confirm","getTopMostWindow","fireOpenEvent","fireCloseEvent","editorManager","setActive","bodyType","features","getParams","setParams","getWindows","Tooltip","Progress","closeButton","progressBar","notificationStyle","Notification","getLastNotification","notifications","resizeWindowEvent","prePositionNotifications","positionNotifications","firstItem","getContentAreaContainer","findDuplicateMessage","notificationArray","newNotification","isPlainTextNotification","filteredNotifications","notification","isSameNotification","notif","getNotifications","serviceMessage","service_message","targetNode","NodePath","setEditorCommandState","getDocumentMode","setMceInternalContent","selectionHtml","internalContent","dataTransfer","mceInternalUrlPrefix","setData","mceInternalDataType","getMceInternalContent","getData","insertClipboardContents","cleanupStylesWhenDeleting","isTrailingBr","isSiblingsIgnoreWhiteSpace","findCaretNode","deleteRangeBetweenTextBlocks","startBlock","endBlock","caretNodeBefore","caretNodeAfter","expandBetweenBlocks","targetCaretNode","textBlock","targetTextBlock","isAfter","handleTextBlockMergeDelete","handleLastBlockCharacterDelete","cloneTextBlockWithFormats","blockElm","currentFormatNodes","newBlockElm","clonedBlockElm","customDelete","mutationObserver","MutationObserver","observe","childList","subtree","attributeFilter","takeRecords","record","addedNodes","disconnect","span","transactCustomDelete","olderWebKit","dragStartRng","nodeInsert","relatedNode","records","attrModified","isMetaOrCtrl","modify","fragmentNode","blockParent","charText","pointRng","clipboardData","clearData","emptyEditorWhenDeleting","serializeRng","allContentsSelected","bodyRng","allRng","allSelection","shortcuts","inputMethodFocus","content_editable","removeHrOnBackspace","focusBody","selectControlElements","removeStylesWhenDeletingAcrossBlockElements","getAttributeApplyFunction","isSelectionAcrossElements","applyAttributes","ensureBodyHasRoleApplication","disableBackspaceIntoATable","addNewLinesBeforeBrInPre","brNodes","removePreSerializedStylesWhenSelectingControls","removeBlockQuoteOnBackSpace","setGeckoEditingOptions","setOpts","refreshContentEditable","addBrAfterLastLinks","fixLinks","setDefaultBlockType","deleteControlItemOnBackSpace","renderEmptyBlocksFix","emptyBlocksCSS","keepNoScriptContents","fixCaretSelectionOfDocumentElementOnIe","rngFromPoint","startRng","endSelection","htmlElm","normalizeSelection","showBrokenImageIcon","restoreFocusOnKeyDown","bodyHeight","blockCmdArrowNavigation","disableAutoUrlDetect","tapLinksAndImages","blockFormSubmitInsideEditor","removeAppleInterchangeBrs","ieInternalDragAndDrop","isGecko","emptyEditorOnDeleteEverything","isEverythingSelected","startCaretPos","endCaretPos","isWebKit","getEventTarget","event_root","eventRoot","bindEventDelegate","isListening","eventRootElm","delegates","customEventRootDelegates","activeEditor","editors","EditorObservable","bindPendingEventDelegates","_pendingNativeEvents","unbindAllNativeEvents","clickBlocker","toggleReadOnly","_clickBlocker","currentMode","keyCodeLookup","f9","f10","f11","modifierNames","parseShortcut","shortcut","meta","createShortcut","desc","cmdFunc","subpatterns","hasModifier","isFunctionKey","matchShortcut","executeShortcutAction","pendingPatterns","uploadStatus","filename","blobInfo","extensions","image/jpeg","image/jpg","image/gif","image/png","blob","pathJoin","path1","path2","blobInfoToData","base64","defaultHandler","formData","credentials","upload","onprogress","loaded","basePath","FormData","noUpload","handlerSuccess","handlerFailure","resolvePending","blobUri","pendingPromises","uploadBlobInfo","openNotification","markPending","closeNotification","markUploaded","removeFailed","isDefaultHandler","pendingUploadBlobInfo","uploadBlobs","blobInfos","isUploaded","isPending","blobUriToBlob","rejectWithError","dataUriToBlob","atob","Blob","Uint8Array","uriToBlob","blobToDataUri","reader","FileReader","onloadend","readAsDataURL","Conversions","blobCache","findAll","imageToBlobInfo","getByUri","dataUri","findFirst","cachedBlobInfo","images","newPromise","cachedPromises","imageInfo","removeByUri","revokeObjectURL","createStatus","resultUri","hasBlobUri","blobUriStatuses","getResultUri","PENDING","UPLOADED","resolvePluginName","targetUrl","pluginUrlToMessage","displayNotification","displayError","_skinLoaded","uploadError","pluginLoadError","Uploader","ImageScanner","BlobCache","UploadStatus","ErrorReporter","aliveGuard","cacheInvalidator","replaceString","replaceImageUrl","replacementUrl","replaceUrlInUndoStack","replaceImageUri","images_reuse_filename","data-mce-src","convertURL","uploadImages","uploader","images_upload_url","images_upload_base_path","images_upload_credentials","images_upload_handler","scanForImages","imageInfos","uploadInfo","images_replace_blob_uris","uploadImagesAuto","automatic_uploads","isValidDataUriImage","imgElm","images_dataimg_filter","imageScanner","resultItem","replaceBlobUris","editorUpload","source_view","getAbsoluteClientRect","rootRect","trimInlineCaretContainers","contentEditableFalseNodes","$lastVisualCaret","startBlink","cursorInterval","getCss","toArrayWithNode","Dimensions","findUntil","walkUntil","isAboveFn","isBeflowFn","targetClientRect","aboveLineNumber","lineNumber","isLine","positionsUntil","getClientRect","walkFn","isBelowFn","upUntil","downUntil","isAboveLine","distanceToRectLeft","distanceToRectRight","findClosestClientRect","isInside","oldClientRect","oldDistance","newDistance","findLineNodeRects","targetNodeRect","checkPosFn","lineRects","getContentEditableFalseChildren","caretInfo","closestCaret","contentEditableFalseNodeRects","closestNodeRect","getAbsolutePosition","getBodyPosition","getScrollPosition","getBodyScroll","inlineScroll","iframeScroll","getMousePosition","iframePosition","scrollPosition","bodyPosition","mousePosition","calc","MousePosition","isValidDropTarget","targetElement","dragElement","cloneElement","cloneElm","createGhost","clonedElm","ghostElm","appendGhostToBody","moveGhost","maxX","maxY","removeElement","isLeftMouseButtonPressed","hasDraggableElement","applyRelPos","relX","ceElm","elmPos","relY","throttledPlaceCaretAt","hideFakeCaret","movement","targetPos","getRawTarget","targetClone","insertContent","removeDragState","bindFakeDragEvents","pageDom","dragStartHandler","dragHandler","dropHandler","dragEndHandler","blockIeDrop","realTarget","FakeCaret","LineWalker","LineUtils","DragDropOverrides","getVisualCaretPosition","SelectionOverrides","isFakeSelectionElement","getRealSelectionElement","realSelectionId","setRange","showCaret","fakeCaret","getNodeRange","isMoveInsideSameBlock","fromCaretPosition","toCaretPosition","inSameBlock","getNormalizedRangeEndPoint","isRangeInCaretContainerBlock","moveToCeFalseHorizontally","getNextPosFn","isBeforeContentEditableFalseFn","peekCaretPosition","rangeIsInContainerBlock","renderRangeCaret","moveToCeFalseVertically","walkerFn","linePositions","nextLinePositions","closestNextLineRect","caretClientRect","dist1","dist2","contentEditableFalseNode","caretPositions","exitPreBlock","createTextBlock","getNextVisualCaretPosition","getPrevVisualCaretPosition","moveH","newRange","moveV","getBlockCaretContainer","blockCaretContainer","renderCaretAtRange","ceRoot","caretRange","deleteContentEditableNode","nextCaretPosition","prevCaretPosition","prevCeFalseElm","nextElement","textBlocks","mergeTextBlocks","fromBlock","toBlock","ceTarget","backspaceDelete","newCaretPosition","registerEvents","override","moveFn","isXYWithinRange","handleTouchSelect","contentEditableRoot","setContentEditableSelection","paddEmptyContentEditableArea","handleBlockContainer","handleEmptyBackspaceDelete","prevent","deleteForward","backspace","removeContentEditableSelection","hasNormalCaretPosition","block1","block2","isContentKey","hasBetterMouseTarget","targetBlock","caretBlock","selectedContentEditableNode","isRangeInCaretContainer","realSelectionElement","addCss","isWithinCaretContainer","$realSelectionContainer","origTargetClone","sidebars","NodeChange","DomSerializer","Formatter","UndoManager","EnterKey","ForceBlocks","EditorCommands","WindowManager","NotificationManager","Quirks","Mode","Shortcuts","EditorUpload","Uuid","Sidebar","Editor","documentBaseUrl","defaultSettings","documentBaseURL","baseURI","delta_width","delta_height","popup_css","document_base_url","add_form_submit_trigger","submit_patch","add_unload_trigger","convert_urls","relative_urls","remove_script_host","visual","font_size_legacy_values","hidden_input","padd_empty_editor","render_ui","convert_fonts_to_spans","ie7_compat","external_plugins","language_load","documentBaseURI","contentCSS","loadedCSS","editorCommands","cache_suffix","override_viewport","execCallback","scriptLoader","language_url","themeUrl","theme_url","orgVisibility","hasHiddenInput","formEventDelegate","startContent","_mceOldSubmit","triggerSave","windowManager","encoding","_beforeUnload","set_dirty","initPlugin","pluginInstance","Plugin","initializedPlugins","Theme","bodyId","bodyClass","rtl_ui","i18n","setCode","aria_label","getLang","orgDisplay","min_height","renderUI","iframeHeight","editorContainer","iframeContainer","content_css","u","content_style","initContentBody","iframeHTML","cssUrl","body_id","body_class","content_security_policy","domainRelaxUrl","domain","frameBorder","allowTransparency","contentAreaContainer","iframeElement","skipWrite","contentCssText","content_document","content_window","bodyElement","hex_colors","force_hex_style_colors","class_filter","forceBlocks","enterKey","_nodeChangeDispatcher","browser_spellcheck","gecko_spellcheck","spellcheck","directionality","nowrap","protect","initial","auto_focus","skipFocus","getContentEditableHost","contentEditableHost","callbackLookup","addButton","addSidebar","addMenuItem","addContextToolbar","contextToolbars","focusedEditor","setProgressState","padd","isNotDirty","urlconverter_callback","visual_table_class","visual_anchor_class","automatic","_scanForImages","newCode","_dir","getCode","langData","getLangData","FocusManager","getActiveElement","createBookmark","bookmarkToRng","selectionChangeHandler","blurredEditor","isUIElement","documentFocusInHandler","documentMouseUpHandler","unregisterDocumentEvents","customSelector","custom_ui_selector","isEditorUIElement","_isUIElement","I18n","globalEventDelegate","EditorManager","toggleGlobalEvents","boundGlobalEvents","removeEditorFromList","removedFromList","purgeDestroyedEditor","beforeUnloadDelegate","instanceCounter","majorVersion","minorVersion","releaseDate","preInit","tinyMCEPreInit","srcScript","currentScript","focusManager","pluginBaseUrls","plugin_base_urls","isInvalidInlineTarget","invalidInlineTargets","report","createId","findTargets","forms","editor_deselector","editor_selector","initEditors","createEditor","initCount","provideResults","addI18n","tinyMCE","replaceWithSpan","convert","font","face","strike","XHR","success_scope","error_scope","content_type","requestheaders","JSONRequest","sendRPC","ecb","scb","ty","updateKeys","LocalStorage","nextPos","hasOldIEDataSupport","storageElm","userDataKey","addBehavior","firstControlClass","lastControlClass","containerClass","firstClass","lastClass","lastItem","controlClass","Layout","btnStyle","btnElm","textHtml","setButtonText","$span","textCls","iconElm","subinput","showMenu","statusLevel","statusMessage","openElm","innerPadding","inputElm","openBtnHtml","extraAttrs","statusHtml","showAutoComplete","hideMenu","previewUrl","statusIconElm","focusIdx","ComboBox","onaction","repaintColor","Button","showPanel","panelSettings","hidePanel","popoverAlign","PanelButton","_color","resetColor","onClickHandler","rgb2hsv","minRGB","maxRGB","hsvToRgb","brightness","chroma","toRgb","toHsv","updateColor","hsv","hueUpdate","huePointElm","svPointElm","svRootElm","updateSaturationAndValue","updateHue","hueRootElm","_repaint","_svdraghelper","_hdraghelper","_rendered","getOldIeFallbackHtml","gradientPrefix","stopsList","stops","hueHtml","gradientCssText","delimiter","_getDataPathHtml","Path","elementpath","outParents","flex","FormItem","labelGap","formItemDefaults","formItem","forId","recalcLabels","maxLabelWidth","labelGapCalc","labelCtrl","labelWidth","Form","attach","isChildOfContentEditableTrue","getElementText","getOrGenerateId","isAnchor","isValidAnchor","isHeader","isValidHeader","getLevel","headerTarget","anchorTarget","anchorText","getHeaderTargets","getAnchorTargets","getTargetElements","LinkTargets","HISTORY_LENGTH","toMenuItem","toMenuItems","staticMenuItem","isUniqueUrl","foundTarget","getSetting","editorSettings","createMenuItems","fileType","fromHistoryMenuItems","uniqueHistory","fromMenuItems","filteredTargets","anchorMenuItems","topAnchor","bottomAchor","bothEmpty","typeahead_urls","filterByQuery","addToHistory","lowerCaseTerm","linkDetails","setupAutoCompleteHandler","linkTargets","statusToUiState","setupLinkValidatorHandler","validatorHandler","filepicker_validator_handler","validateUrl","uiState","actionCallback","fileBrowserCallback","fileBrowserCallbackTypes","filetype","file_picker_types","file_browser_callback_types","file_picker_callback","file_browser_callback","AbsoluteLayout","contLayoutRect","contPaddingBox","contSettings","totalFlex","availableSpace","ctrlLayoutRect","ctrlSettings","maxAlignEndPos","minSizeName","maxSizeName","beforeName","innerSizeName","deltaSizeName","alignAxisName","alignInnerSizeName","alignSizeName","alignMinSizeName","alignBeforeName","alignAfterName","alignDeltaSizeName","alignContentSizeName","maxSizeItems","maxFlexSize","endClass","getSpecifiedFontProp","toPt","normalizeFontFamily","getComputedFontProp","getFontSize","specifiedFontSize","getFontFamily","fontValue","FontInfo","setupContainer","ui_container","setupRtlMode","registerControls","createListBoxChangeHandler","createFontNameListBoxChangeHandler","getFirstFont","createFontSizeListBoxChangeHandler","px","pt","createFormats","createFormatMenu","createMenu","menuItem","newFormats","createStylesMenu","style_formats_merge","style_formats","defaultStyleFormats","itemDefaults","textStyle","initOnPostRender","toggleUndoRedoState","checkState","typeFn","toggleVisualAidState","hideMenuObjects","hideFormatMenuItems","formatMenu","outdent","cut","selectall","visualaid","newdocument","alignnone","trimMenuItems","outputMenuItems","createCustomMenuItems","nameList","flatten","createContextMenuItems","prependToContext","createInsertMenu","insert_button_items","selectable","oncreatemenu","onShowMenu","style_formats_autohide","block_formats","fixedWidth","onselect","defaultFontsFormats","fonts","font_formats","defaultFontsizeFormats","fontsize_formats","ar","posX","posY","spacingH","spacingV","alignH","alignV","ctrlMinWidth","ctrlMinHeight","availableWidth","availableHeight","reverseRows","colWidths","rowHeights","columns","flexV","packV","flexWidths","severity","strong","startMinH","targetCtrl","forName","Toolbar","MenuBar","MenuButton","_renderOpen","hasVisibleSiblingMenu","overCtrl","ariaHideMenu","hasMenus","_parentMenu","_lastRel","convertShortcut","escapeRegExp","markMatches","boldMatches","iconHtml","textElm","MenuItem","Throbber","itemsFactory","hideThrobber","throbber","requestTime","_hasIcons","Menu","setSelected","menuValues","selectedText","lastItemCtrl","lastControl","activateMenuItemsByValue","getSelectedItem","Checkbox","resizeDragHelper","strOptions","_options","setAriaProp","updateSliderHandle","maxHandlePos","shortSizeName","stylePosName","styleValue","handleEl","_minValue","_maxValue","previewFilter","minValue","_initValue","toFraction","fromFraction","handleKeyboard","alter","handleDrag","startHandlePos","handlePos","_dragHelper","screenCordName","mainButtonElm","menuButtonElm","_menuBtnText","FlowLayout","activateTab","activeTabElm","activeTabId","tabsHtml","activeTab","targetParent","headH","hidefocus","isLink","hasLinks","util","getLink","getSelectedLink","getHref","isContextMenuVisible","contextmenu","leftClickedOnAHref","link_context_toolbar","appendClickRemove","dispatchEvent","openDetachedWindow","createEvent","initMouseEvent","gotoLink","gotoSelectedLink","toggleViewLinkState","toggleVisibility","createLinkList","linkList","link_list","buildListItems","inputList","itemCallback","startItems","appendItems","showDialog","linkListChangeHandler","textCtrl","buildAnchorListControl","anchorList","updateText","initialText","onlyText","urlChange","linkListCtrl","inp","attachState","isOnlyTextSelected","anchorElm","onBeforeCall","textListCtrl","relListCtrl","targetListCtrl","classListCtrl","linkTitleCtrl","default_link_target","target_list","rel_list","link_class_list","link_title","onkeyup","onbeforecall","onSubmit","delayedConfirm","createLink","linkAttrs","insertLink","link_assume_external_targets","hasOnlyAltModifier","stateSelector","getImageSize","createImageList","imageList","image_list","recalcSize","widthCtrl","heightCtrl","onSubmitForm","waitLoad","selectImage","imageDimensions","figureElm","oldImg","updateStyle","removePixelSuffix","srcChange","srcURL","prependURL","absoluteURLPattern","imageListCtrl","image_prepend_url","mergeMargins","splitMargin","addPixelSuffix","image_advtab","vspace","hspace","updateVSpaceHSpaceBorder","image_dimensions","altCtrl","image_class_list","generalFormItems","image_description","image_title","image_caption","hasImageClass","toggleContentEditableState","toggleContentEditable","print","sandbox","previewHtml","headHtml","preventClicksOnLinksScript","dirAttr","paddCell","cell","setSpanVal","getSpanVal","setColSpan","setRowSpan","getColSpan","getRowSpan","Utils","getCellAt","getCellElmAt","countHoles","findRealElm","getRowSplitInfo","above","below","createCell","rowSpan","newCell","insertOrAppendCell","realCellElm","splitAbove","splitBelow","splitAt","rowInfos","rowElm","SplitCols","selectedCell","removeCellSelection","isEditorBody","getChildrenByName","buildGrid","gridWidth","partElm","rowspan","colspan","fireNewRow","fireNewCell","getCell","getRow","getColumn","isCellSelected","getSelectedRows","countSelectedCols","deleteTable","cloneCell","cloneFormats","table_clone_elements","curNode","fillLeftDown","colSpan","findItemsOutsideOfRange","getFakeCells","getUniqueElms","reduceRowSpans","endX","endY","allCells","fakeCells","reduceColSpans","startCell","endCell","reducedRows","reducedCols","endPos","insertRow","lastCell","newRow","otherCell","spanValue","insertRows","insertCol","insertCols","getSelectedCells","getAllCells","deleteCols","deleteRows","deleteRow","cutRows","copyRows","pasteRows","splitResult","targetRow","newRows","cellCount","setStartCell","findEndPos","setEndCell","moveRelIdx","cellElm","splitCols","moveWebKitSelection","upBool","sourceNode","siblingDirection","currentRow","siblingRow","moveCursorToRow","tableNode","middleNode","parentNodeName","getTargetParent","moveToRowInTarget","escapeTable","topNode","secondNode","tbodies","getFirstHeadOrFoot","topOrBottom","headOrFoot","getChildForDirection","tableSibling","moveCursorToStartOfElement","parentCell","backUpSibling","isVerticalMovement","isInTable","columnIndex","column","colIndex","findColumn","rowElement","srcColumnIndex","tgtColumnIndex","tgtNode","rowCellTarget","shouldFixCaret","preBrowserNode","oldParent","checkSameParentTable","nodeOne","NodeTwo","fixBeforeTableCaretBug","par","fixTableCaretPos","fixTableCellSelection","tableCellSelected","currentCell","tableParent","allOfCellSelected","tableCellSelection","TEXT_NODE","fixSelection","placeCaretInCell","clearCell","tableCells","selectedTableCells","handleDeleteInCaption","isTableCaptionNode","restoreCaretPlaceholder","insertCaret","deleteBtnPressed","getSingleChildNode","isTextNode","getSingleChr","hasNoCaretPlaceholder","isNBSP","isEmptyNode","TableGrid","webkitUserSelect","hasCellSelection","isCellInTable","cellSelectionHandler","lastMouseOverTarget","startTable","tableGrid","setPoint","selectedCells","createColorPickAction","colorPickerCallback","color_picker_callback","createStyleForm","removePxSuffix","addSizeSuffix","unApplyAlign","unApplyVAlign","isStyleCtrl","appendStylesToData","tableProps","isProps","onSubmitTableForm","styleTDTH","captionElm","tableElm","insertTable","table_style_by_css","stylesToMerge","cellspacing","data-mce-border-color","data-mce-cell-padding","cellpadding","data-mce-border","getTDTHOverallStyle","checkChildren","firstChildStyle","colsCtrl","rowsCtrl","generalTableForm","table_class_list","table_appearance_options","table_advtab","onsubmit","onSubmitCellForm","valign","table_cell_class_list","generalCellForm","table_cell_advtab","onSubmitRowForm","oldParentElm","toType","generalRowForm","table_row_class_list","table_row_advtab","hoverTable","getTopEdge","getBottomEdge","getLeftEdge","getRightEdge","isInline","getInnerEdge","getOuterEdge","getPercentageWidthFallback","getComputedStyleSize","widthString","getCurrentTablePercentWidth","tableWidth","tableParentWidth","getCellPercentDelta","getTablePercentDelta","findPositions","getOuter","thingsToMeasure","tablePositions","lastTableLineToMake","clearBars","RESIZE_BAR_CLASS","refreshBars","tableElement","drawBars","generateBar","classToAdd","indexAttr","data-mce-resize","drawRows","rowPositions","tablePosition","rowPosition","RESIZE_BAR_THICKNESS","RESIZE_BAR_ROW_CLASS","RESIZE_BAR_ROW_CURSOR_STYLE","RESIZE_BAR_ROW_DATA_ATTRIBUTE","drawCols","cellPositions","tableHeight","cellPosition","RESIZE_BAR_COL_CLASS","RESIZE_BAR_COL_CURSOR_STYLE","RESIZE_BAR_COL_DATA_ATTRIBUTE","getTableDetails","getTableGrid","tableDetails","rowIndex","getAt","getAllRows","maxCols","cr","cc","decide","getBlock","isSingle","getFallback","singleInBlock","inBlock","getColumnBlocks","getRowBlocks","colPositions","deduceSize","deducables","isPercentageBased","reversedUpToIndex","extras","pixelWidth","getStyleOrAttrib","sizeString","getWidth","widthNumber","getWidthFallback","isPercentageBasedSize","isPixelBasedSize","getWidths","backups","RESIZE_MINIMUM_WIDTH","getPixelHeight","heightString","heightNumber","getPixelHeights","heights","RESIZE_MINIMUM_HEIGHT","determineDeltas","sizes","generateZeros","onOneColumn","deltas","newNext","onLeftOrMiddle","startZeros","endZeros","newThis","diffx","onRight","measures","recalculateWidths","recalculateCellHeights","recalculateRowHeights","allRows","percentageBasedSizeRegex","pixelBasedSizeRegex","adjustWidth","setSizes","newSizes","styleExtension","getNewTablePercentWidth","getNewTablePixelWidth","setTableSize","newTableWidth","isPercentBased","percentageBased","newWidths","adjustHeight","newHeights","newTotalHeight","newCellSizes","newRowSizes","scheduleDelayedDropEvent","delayDrop","cancelDelayedDropEvent","getBlockerElement","blocker","bindBlockerEvents","blockerElement","dragBar","RESIZE_BAR_DRAGGING_CLASS","isCol","initialLeft","RESIZE_BAR_COL_DATA_INITIAL_LEFT_ATTRIBUTE","newLeft","isRow","initialTop","RESIZE_BAR_ROW_DATA_INITIAL_TOP_ATTRIBUTE","newTop","setupBaseDrag","colDragHandler","lastX","oldLeft","rowDragHandler","lastY","oldTop","setupColDrag","setupRowDrag","mouseDownHandler","newCellSize","CellSelection","Dialogs","ResizeBars","table_default_attributes","table_default_styles","handleDisabledState","sameParts","bindStateListener","postRenderCell","postRenderMergeCell","generateTableGrid","selectGrid","tx","focusCell","addButtons","dialogs","selectorMatched","addToolbars","toolbarItems","table_toolbar","getClipboardRows","clipboardRows","setClipboardRows","resizeBars","table_resize_bars","table_grid","onshow","onhide","onmousemove","cellSelection","mceTableSplitCells","mceTableMergeCells","mceTableInsertRowBefore","mceTableInsertRowAfter","mceTableInsertColBefore","mceTableInsertColAfter","mceTableDeleteCol","mceTableDeleteRow","mceTableCutRow","mceTableCopyRow","mceTablePasteRowBefore","mceTablePasteRowAfter","mceSplitColsBefore","mceSplitColsAfter","mceTableDelete","mceInsertTable","mceTableProps","mceTableRowProps","mceTableCellProps","table_tab_navigation","ignoreElements","domParser","trimSpaces","s1","s2","getInnerFragment","createIdGenerator","startFragment","endFragment","fragmentHtml","isMsEdge","isAbsoluteUrl","isImageUrl","createImage","pasteHtml","linkSelection","insertImage","paste_merge_formats","smartInsertContent","smart_paste","SmartPaste","tempBody","pasteText","forcedRootBlockStartHtml","createPasteBin","getCaretRect","pasteBinElm","pasteBinDefaultContent","removePasteBin","pasteBinClone","getPasteBinHtml","pasteBinClones","cloneHtml","getDataTransferItems","legacyText","getClipboardContent","clipboardEvent","text/html","hasHtmlOrText","hasContentType","getBase64FromUri","pasteImage","Image","existingBlobInfo","pasteImageData","processItems","hadImage","getAsFile","paste_data_images","isBrokenAndroidClipboardEvent","getCaretRangeFromEvent","clipboardContent","isKeyboardPasteEvent","registerEventHandlers","insertClipboardContent","isKeyBoardPaste","plainTextMode","isPlainTextFileUrl","plainTextContent","removePasteBinOnKeyUp","keyboardPastePlainTextState","keyboardPasteTimeStamp","ieFake","getLastRng","clipboardTimer","clipboardDelay","pasteFormat","draggingInternally","dropContent","paste_filter_drop","isPasteInsert","isWebKitFakeUrl","isDataUri","isWordContent","isNumericList","patterns","isBulletList","WordFilter","convertFakeListsToProperLists","txt","trimListStart","removeIgnoredNodes","_listIgnore","convertParagraphToLi","paragraphNode","listName","_listLevel","currentListNode","prevListNode","nodeText","filterStyles","outputStyles","retainStyleProperties","paste_retain_style_properties","paste_enable_default_filters","wordContent","paste_word_valid_elements","paste_convert_word_fake_lists","addPreProcessFilter","filterFunc","addPostProcessFilter","removeExplorerBrElementsAfterBlocks","explorerBlocksRegExp","removeWebKitStyles","webKitStyles","paste_webkit_styles","paste_remove_styles_if_webkit","inputStyles","currentValue","removeUnderlineAndFontInAnchor","Clipboard","userIsInformed","isUserInformedAboutPlainText","paste_plaintext_inform","togglePlainTextPaste","clipboard","stateChange","wordFilter","paste_as_text","paste_preprocess","paste_postprocess","paste_block_drop","createTemplateList","templateList","onSelectTemplate","insertIframeHtml","contentCssLinks","replaceTemplateValues","templateHtml","insertTemplate","getDateTime","addZeros","daysShort","daysLong","monthsShort","monthsLong","replaceVals","vl","templateValuesOptionName","defn","dem","defResult","req","ephox","bolt","demand","defineGlobal","defaultToolbar","createToolbar","buttonGroup","bindSelectorChanged","disabledStateSelector","createToolbars","toolbars","addToolbar","toolbar","defaultMenus","edit","view","tools","createMenuItem","editorMenuItems","menuButton","isUserDefined","removedMenuItems","removed_menuitems","createMenuButtons","menuButtons","defaultMenuBar","enabledMenuNames","menubar","geom","Rect","toClientRect","geomRect","hideAllFloatingPanels","movePanelTo","togglePositionClass","relPos","userConstrain","elementRect","contentAreaRect","panelRect","addContextualToolbars","getContextToolbars","getElementRect","shouldShow","relRect","testPositions","smallElementWidthThreshold","inline_toolbar_position_handler","repositionHandler","execute","findFrontMostMatch","bindScrollEvent","showContextToolbar","oncancel","hideAllContextToolbars","addKeys","sidebar","hidePanels","deactivateButtons","findSidebar","btnCtrl","isModernBrowser","hasSidebar","createSidebar","fireSkinLoaded","iframeElm","iframeSize","min_width","max_width","max_height","Menubar","ContextToolbars","A11y","SkinLoaded","Resize","switchMode","editArea","editAreaContainer","resizeHandleCtrl","skinUiCss","toolbar_items_size","onResizeStart","onResize","inlineToolbarContainer","fixed_toolbar_container","_fixed","bodyPos","scrollContainerPos","Iframe","Inline","ProgressState","skin","skinUrl","skin_url","uiTinymceConfig","uiTinymceService","toggleDisable","ensureInstance","tinyInstance","updateView","getUniqueId","uiTinymce","debouncedUpdate","debouncedUpdateDelay","debouncedUpdateTimer","setupOptions","maybeInitPromise","unbindEventListener","eid","UITinymceService","ID_ATTR","transitionEnd","transEndEventNames","emulateTransitionEnd","bsTransitionEnd","Alert","VERSION","TRANSITION_DURATION","setState","DEFAULTS","isLoading","loadingText","resetText","$input","$btn","Carousel","cycle","$indicators","paused","sliding","$active","$items","getItemIndex","getItemForDirection","activeIndex","willWrap","$next","isCycling","slideEvent","$nextIndicator","slidEvent","carousel","slideIndex","$carousel","getTargetFromTrigger","$trigger","Collapse","transitioning","addAriaAndCollapsedClass","dimension","hasWidth","activesData","actives","startEvent","clearMenus","Dropdown","_relatedTarget","Modal","$body","$dialog","$backdrop","isShown","originalBodyPad","ignoreBackdropClick","remote","BACKDROP_TRANSITION_DURATION","checkScrollbar","setScrollbar","adjustDialog","enforceFocus","hideModal","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","doAnimate","callbackRemove","modalIsOverflowing","bodyIsOverflowing","paddingRight","fullWindowWidth","documentElementRect","measureScrollbar","bodyPad","scrollDiv","showEvent","hoverState","inState","getOptions","$viewport","eventIn","eventOut","fixTitle","getDefaults","getDelegateOptions","tip","isInStateTrue","inDom","$tip","tipId","getUID","autoToken","autoPlace","actualWidth","actualHeight","orgPlacement","viewportDim","calculatedOffset","getCalculatedOffset","applyPlacement","prevHoverState","getViewportAdjustedDelta","isVertical","arrowDelta","arrowOffsetPosition","replaceArrow","arrow","$e","isBody","elRect","isSvg","SVGElement","elOffset","outerDims","viewportPadding","viewportDimensions","topEdgeOffset","bottomEdgeOffset","leftEdgeOffset","rightEdgeOffset","$arrow","toggleEnabled","Popover","ScrollSpy","$scrollElement","activeTarget","getScrollHeight","offsetMethod","offsetBase","$href","maxScroll","scrollspy","$spy","Tab","$ul","$previous","hideEvent","Affix","checkPosition","checkPositionWithEventLoop","affixed","unpin","pinnedOffset","RESET","getState","offsetBottom","colliderTop","colliderHeight","getPinnedOffset","affix","affixType","suggestionsArr","modelArr","apiUrl","apiUrlOption","beforeSelectItem","afterSelectItem","beforeRemoveItem","afterRemoveItem","objectProperty","selectedItemIndex","isRequired","errMsgRequired","isHover","isFocused","getSuggestionsList","responseInterceptor","onFocus","onMouseEnter","onMouseLeave","onBlur","keyParser",9,27,"removeAddedValues","filteredSuggestionArr","alreadyAddedValues","onSuggestedItemsClick","selectedValue","isDuplicate","isAdded","mouseEnterOnItem","getPasteEvent","caretTimeoutId","pasteEventName","ua","iPhone","mask","definitions","caret","setSelectionRange","selectionStart","selectionEnd","unmask","tests","partialPosition","firstNonMaskPos","seekNext","seekPrev","shiftL","buffer","writeBuffer","shiftR","keydownEvent","clearBuffer","focusText","checkVal","keypressEvent","allow","lastMatch","moment","hookCallback","setHookCallback","getOwnPropertyNames","hasOwnProp","createUTC","locale","createLocalOrUTC","utc","defaultParsingFlags","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","parsedDateParts","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","_isValid","flags","parsedParts","isNowValid","_d","invalidWeekday","_strict","bigHour","createInvalid","copyConfig","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","momentProperties","Moment","updateInProgress","updateOffset","isMoment","absFloor","toInt","argumentForCoercion","coercedNumber","compareArrays","dontConvert","lengthDiff","diffs","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","deprecateSimple","deprecations","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","calendar","mom","_calendar","longDateFormat","_longDateFormat","formatUpper","invalidDate","_invalidDate","ordinal","_ordinal","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","addUnitAlias","shorthand","lowerCase","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","addUnitPriority","priorities","getPrioritizedUnits","unitsObj","zeroFill","targetLength","forceSign","absNumber","zerosToFill","sign","addFormatToken","padded","formatTokenFunctions","localeData","removeFormattingTokens","makeFormatFunction","formattingTokens","formatMoment","expandFormat","formatFunctions","replaceLongDateFormatTokens","localFormattingTokens","addRegexToken","strictRegex","regexes","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","p1","p2","p3","p4","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInYear","isLeapYear","getIsLeapYear","makeGetSet","keepTime","set$1","stringGet","stringSet","prioritized","modMonth","localeMonths","_months","isFormat","MONTHS_IN_FORMAT","localeMonthsShort","_monthsShort","handleStrictParse","monthName","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","dayOfMonth","monthsParse","getSetMonth","monthsShortRegex","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","defaultMonthsShortRegex","monthsRegex","_monthsStrictRegex","_monthsRegex","defaultMonthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","createDate","createUTCDate","UTC","getUTCFullYear","firstWeekOffset","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","weekday","resYear","resDayOfYear","localWeekday","weekOffset","dayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","localeWeekdays","weekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","weekdaysMin","weekdaysShort","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","defaultWeekdaysRegex","weekdaysShortRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","defaultWeekdaysShortRegex","weekdaysMinRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","defaultWeekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","matchMeridiem","_meridiemParse","localeIsPM","localeMeridiem","isLower","normalizeLocale","chooseLocale","loadLocale","globalLocale","oldLocale","locales","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","defineLocale","baseConfig","parentLocale","localeFamilies","updateLocale","tmpLocale","listLocales","checkOverflow","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","_overflowWeeks","WEEK","_overflowWeekday","WEEKDAY","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","configFromArray","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","weekYear","weekdayOverflow","GG","W","E","createLocal","gg","configFromISO","allowTime","timeFormat","tzFormat","extendedIsoRegex","basicIsoRegex","isoDates","isoTimes","tzRegex","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","defaultLocaleMonthsShort","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","defaultLocaleWeekdaysShort","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","obsOffsets","hm","configFromRFC2822","parsedArray","configFromString","aspNetJsonRegex","createFromInputFallback","skipped","stringLength","totalParsedInputLength","_meridiem","meridiemFixWrap","hour","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","minute","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","pickBy","moments","isDurationValid","ordering","unitHasDecimal","isValid$1","createInvalid$1","createDuration","Duration","quarters","quarter","weeks","_milliseconds","_days","_bubble","isDuration","absRound","utcOffset","offsetFromString","chunk","chunkOffset","cloneWithOffset","setTime","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","matchShortOffset","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","matchOffset","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isUtcOffset","isUtc","diffRes","aspNetRegex","isoRegex","parseIso","momentsDifference","positiveMomentsDifference","isBefore","createAdder","dur","isAdding","getCalendarFormat","myMoment","calendar$1","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","anchor2","wholeMonthDiff","keepOffset","toDate","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","mod$1","dividend","divisor","localStartOfDate","MS_PER_400_YEARS","utcStartOfDate","startOfDate","isoWeekday","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_SECOND","unix","toObject","isValid$2","parsingFlags","invalidAt","creationData","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getWeeksInYear","weekInfo","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfYear","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","get$1","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","clone$1","get$2","makeGetter","substituteTimeAgo","relativeTime$1","posNegDuration","thresholds","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","withSuffix","toISOString$1","abs$1","Y","D","asSeconds","totalSign","ymSign","daysSign","hmsSign","fun","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","defaultInvalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","defaultRelativeTime","future","past","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchTimestamp","matchWord","parseTwoDigitYear","getSetYear","defaultLocaleMonths","defaultLocaleWeek","defaultLocaleWeekdays","defaultLocaleWeekdaysMin","kInput","_isPm","defaultLocaleMeridiemParse","getSetHour","dayOfMonthOrdinalParse","meridiemParse","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","prototypeMin","prototypeMax","isoWeekYear","getSetDayOfMonth","getSetMinute","getSetSecond","getSetMillisecond","isoWeeks","isoWeeksInYear","isDST","zoneAbbr","zoneName","isDSTShifted","proto$1","firstDayOfYear","firstDayOfWeek","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","__webpack_require__","moduleId","installedModules","enumerable","__esModule","KEYS","isValidMoment","toValue","momentDate","toMoment","momentToValue","momentObject","valueToMoment","formattedValue","momentValue","views","detectedMinView","precisions","$ctrl","updateMoment","detectedMaxView","provider_1","Provider","directive_1","Directive","momentPicker","helpers_1","views_1","utility_1","minView","maxView","startView","autoclose","setOnSelect","showHeader","additions","$transElement","limits","isAfterOrEqualMin","isBeforeOrEqualMax","isSelectable","checkValue","checkView","decade","detectMinMax","DecadeView","YearView","MonthView","DayView","HourView","MinuteView","picker","hasClassTop","hasClassRight","winWidth","winHeight","shouldHaveClassTop","shouldHaveClassRight","pickerTop","pickerLeft","pickerWidth","singleUnit","unitMultiplier","perLine","nextDate","leftArrow","rightArrow","setParentView","momentPrevious","momentNext","nextView","tempalteUrl","newViewValue","oldViewValue","newModelValue","oldModelValue_1","viewMoment","yearsFormat","monthsFormat","daysFormat","hoursFormat","hoursStart","hoursEnd","minutesStep","minutesStart","minutesEnd","secondsFormat","secondsStep","secondsStart","secondsEnd","firstYear","minutesFormat","highlightClosest","value1","value2","decadeView_1","yearView_1","monthView_1","dayView_1","hourView_1","minuteView_1","firstWeek","THROTTLE_MILLISECONDS","infiniteScroll","infiniteScrollContainer","infiniteScrollDistance","infiniteScrollDisabled","infiniteScrollUseDocumentBottom","infiniteScrollListenForEvent","changeContainer","checkInterval","checkWhenEnabled","handleInfiniteScrollContainer","handleInfiniteScrollDisabled","handleInfiniteScrollDistance","handleInfiniteScrollUseDocumentBottom","immediateCheck","scrollDistance","scrollEnabled","unregisterEventListener","useDocumentBottom","windowElement","containerBottom","containerTopOffset","elementBottom","shouldScroll","newContainer","infiniteScrollParent","infiniteScrollImmediateCheck","DOCUMENT_NODE_TYPE","Element",2,"useCapture","listenerFn","./closest","HTMLElement","listen","listenNode","listenNodeList","listenSelector","./is",5,6,"ctx","emit","evtArr","evts","liveEvents","clipboardAction","_interopRequireDefault","_classCallCheck","_select2","_typeof","_createClass","defineProperties","descriptor","writable","protoProps","staticProps","ClipboardAction","resolveOptions","initSelection","emitter","selectFake","selectTarget","removeFake","fakeHandlerCallback","fakeHandler","fakeElem","yPosition","copyText","succeeded","handleResult","clearSelection","_action","_target","tinyEmitter","goodListener","_clipboardAction","_tinyEmitter","_goodListener","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","getAttributeValue","_clipboardAction2","_tinyEmitter2","_goodListener2","_Emitter","listenClick","defaultAction","defaultText","./clipboard-action","good-listener","tiny-emitter","MODULE_NAME","ngclipboardSuccess","ngclipboardError"],"mappings":"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","sourcesContent":["/*!\n * jQuery JavaScript Library v1.10.2\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2013-07-03T13:48Z\n */\n(function( window, undefined ) {\n\n// Can't do this because several apps including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through \"use strict\" call chains. (#13335)\n// Support: Firefox 18+\n//\"use strict\";\nvar\n\t// The deferred used on DOM ready\n\treadyList,\n\n\t// A central reference to the root jQuery(document)\n\trootjQuery,\n\n\t// Support: IE<10\n\t// For `typeof xmlNode.method` instead of `xmlNode.method !== undefined`\n\tcore_strundefined = typeof undefined,\n\n\t// Use the correct document accordingly with window argument (sandbox)\n\tlocation = window.location,\n\tdocument = window.document,\n\tdocElem = document.documentElement,\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$,\n\n\t// [[Class]] -> type pairs\n\tclass2type = {},\n\n\t// List of deleted data cache ids, so we can reuse them\n\tcore_deletedIds = [],\n\n\tcore_version = \"1.10.2\",\n\n\t// Save a reference to some core methods\n\tcore_concat = core_deletedIds.concat,\n\tcore_push = core_deletedIds.push,\n\tcore_slice = core_deletedIds.slice,\n\tcore_indexOf = core_deletedIds.indexOf,\n\tcore_toString = class2type.toString,\n\tcore_hasOwn = class2type.hasOwnProperty,\n\tcore_trim = core_version.trim,\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\treturn new jQuery.fn.init( selector, context, rootjQuery );\n\t},\n\n\t// Used for matching numbers\n\tcore_pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,\n\n\t// Used for splitting on whitespace\n\tcore_rnotwhite = /\\S+/g,\n\n\t// Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE)\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\t// Match a standalone tag\n\trsingleTag = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n\n\t// JSON RegExp\n\trvalidchars = /^[\\],:{}\\s]*$/,\n\trvalidbraces = /(?:^|:|,)(?:\\s*\\[)+/g,\n\trvalidescape = /\\\\(?:[\"\\\\\\/bfnrt]|u[\\da-fA-F]{4})/g,\n\trvalidtokens = /\"[^\"\\\\\\r\\n]*\"|true|false|null|-?(?:\\d+\\.|)\\d+(?:[eE][+-]?\\d+|)/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t},\n\n\t// The ready event handler\n\tcompleted = function( event ) {\n\n\t\t// readyState === \"complete\" is good enough for us to call the dom ready in oldIE\n\t\tif ( document.addEventListener || event.type === \"load\" || document.readyState === \"complete\" ) {\n\t\t\tdetach();\n\t\t\tjQuery.ready();\n\t\t}\n\t},\n\t// Clean-up method for dom ready events\n\tdetach = function() {\n\t\tif ( document.addEventListener ) {\n\t\t\tdocument.removeEventListener( \"DOMContentLoaded\", completed, false );\n\t\t\twindow.removeEventListener( \"load\", completed, false );\n\n\t\t} else {\n\t\t\tdocument.detachEvent( \"onreadystatechange\", completed );\n\t\t\twindow.detachEvent( \"onload\", completed );\n\t\t}\n\t};\n\njQuery.fn = jQuery.prototype = {\n\t// The current version of jQuery being used\n\tjquery: core_version,\n\n\tconstructor: jQuery,\n\tinit: function( selector, context, rootjQuery ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector.charAt(0) === \"<\" && selector.charAt( selector.length - 1 ) === \">\" && selector.length >= 3 ) {\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && (match[1] || !context) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[1] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[0] : context;\n\n\t\t\t\t\t// scripts is true for back-compat\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[1],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[2] );\n\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE and Opera return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id !== match[2] ) {\n\t\t\t\t\t\t\treturn rootjQuery.find( selector );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Otherwise, we inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[0] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || rootjQuery ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[0] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn rootjQuery.ready( selector );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t},\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn core_slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num == null ?\n\n\t\t\t// Return a 'clean' array\n\t\t\tthis.toArray() :\n\n\t\t\t// Return just the object\n\t\t\t( num < 0 ? this[ this.length + num ] : this[ num ] );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\t// (You can seed the arguments with an array of args, but this is\n\t// only used internally.)\n\teach: function( callback, args ) {\n\t\treturn jQuery.each( this, callback, args );\n\t},\n\n\tready: function( fn ) {\n\t\t// Add the callback\n\t\tjQuery.ready.promise().done( fn );\n\n\t\treturn this;\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( core_slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map(this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t}));\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor(null);\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: core_push,\n\tsort: [].sort,\n\tsplice: [].splice\n};\n\n// Give the init function the jQuery prototype for later instantiation\njQuery.fn.init.prototype = jQuery.fn;\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar src, copyIsArray, copy, name, options, clone,\n\t\ttarget = arguments[0] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction(target) ) {\n\t\ttarget = {};\n\t}\n\n\t// extend jQuery itself if only one argument is passed\n\tif ( length === i ) {\n\t\ttarget = this;\n\t\t--i;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\t\t// Only deal with non-null/undefined values\n\t\tif ( (options = arguments[ i ]) != null ) {\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray(src) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject(src) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend({\n\t// Unique for each copy of jQuery on the page\n\t// Non-digits removed to match rinlinejQuery\n\texpando: \"jQuery\" + ( core_version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\tnoConflict: function( deep ) {\n\t\tif ( window.$ === jQuery ) {\n\t\t\twindow.$ = _$;\n\t\t}\n\n\t\tif ( deep && window.jQuery === jQuery ) {\n\t\t\twindow.jQuery = _jQuery;\n\t\t}\n\n\t\treturn jQuery;\n\t},\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).\n\t\tif ( !document.body ) {\n\t\t\treturn setTimeout( jQuery.ready );\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.trigger ) {\n\t\t\tjQuery( document ).trigger(\"ready\").off(\"ready\");\n\t\t}\n\t},\n\n\t// See test/unit/core.js for details concerning isFunction.\n\t// Since version 1.3, DOM methods and functions like alert\n\t// aren't supported. They return false on IE (#2968).\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type(obj) === \"function\";\n\t},\n\n\tisArray: Array.isArray || function( obj ) {\n\t\treturn jQuery.type(obj) === \"array\";\n\t},\n\n\tisWindow: function( obj ) {\n\t\t/* jshint eqeqeq: false */\n\t\treturn obj != null && obj == obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\t\treturn !isNaN( parseFloat(obj) ) && isFinite( obj );\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn String( obj );\n\t\t}\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ core_toString.call(obj) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\tvar key;\n\n\t\t// Must be an Object.\n\t\t// Because of IE, we also have to check the presence of the constructor property.\n\t\t// Make sure that DOM nodes and window objects don't pass through, as well\n\t\tif ( !obj || jQuery.type(obj) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// Not own constructor property must be Object\n\t\t\tif ( obj.constructor &&\n\t\t\t\t!core_hasOwn.call(obj, \"constructor\") &&\n\t\t\t\t!core_hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\") ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\t// IE8,9 Will throw exceptions on certain host objects #9897\n\t\t\treturn false;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Handle iteration over inherited properties before own properties.\n\t\tif ( jQuery.support.ownLast ) {\n\t\t\tfor ( key in obj ) {\n\t\t\t\treturn core_hasOwn.call( obj, key );\n\t\t\t}\n\t\t}\n\n\t\t// Own properties are enumerated firstly, so to speed up,\n\t\t// if last one is own, then all properties are own.\n\t\tfor ( key in obj ) {}\n\n\t\treturn key === undefined || core_hasOwn.call( obj, key );\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\t// data: string of html\n\t// context (optional): If specified, the fragment will be created in this context, defaults to document\n\t// keepScripts (optional): If true, will include scripts passed in the html string\n\tparseHTML: function( data, context, keepScripts ) {\n\t\tif ( !data || typeof data !== \"string\" ) {\n\t\t\treturn null;\n\t\t}\n\t\tif ( typeof context === \"boolean\" ) {\n\t\t\tkeepScripts = context;\n\t\t\tcontext = false;\n\t\t}\n\t\tcontext = context || document;\n\n\t\tvar parsed = rsingleTag.exec( data ),\n\t\t\tscripts = !keepScripts && [];\n\n\t\t// Single tag\n\t\tif ( parsed ) {\n\t\t\treturn [ context.createElement( parsed[1] ) ];\n\t\t}\n\n\t\tparsed = jQuery.buildFragment( [ data ], context, scripts );\n\t\tif ( scripts ) {\n\t\t\tjQuery( scripts ).remove();\n\t\t}\n\t\treturn jQuery.merge( [], parsed.childNodes );\n\t},\n\n\tparseJSON: function( data ) {\n\t\t// Attempt to parse using the native JSON parser first\n\t\tif ( window.JSON && window.JSON.parse ) {\n\t\t\treturn window.JSON.parse( data );\n\t\t}\n\n\t\tif ( data === null ) {\n\t\t\treturn data;\n\t\t}\n\n\t\tif ( typeof data === \"string\" ) {\n\n\t\t\t// Make sure leading/trailing whitespace is removed (IE can't handle it)\n\t\t\tdata = jQuery.trim( data );\n\n\t\t\tif ( data ) {\n\t\t\t\t// Make sure the incoming data is actual JSON\n\t\t\t\t// Logic borrowed from http://json.org/json2.js\n\t\t\t\tif ( rvalidchars.test( data.replace( rvalidescape, \"@\" )\n\t\t\t\t\t.replace( rvalidtokens, \"]\" )\n\t\t\t\t\t.replace( rvalidbraces, \"\")) ) {\n\n\t\t\t\t\treturn ( new Function( \"return \" + data ) )();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tjQuery.error( \"Invalid JSON: \" + data );\n\t},\n\n\t// Cross-browser xml parsing\n\tparseXML: function( data ) {\n\t\tvar xml, tmp;\n\t\tif ( !data || typeof data !== \"string\" ) {\n\t\t\treturn null;\n\t\t}\n\t\ttry {\n\t\t\tif ( window.DOMParser ) { // Standard\n\t\t\t\ttmp = new DOMParser();\n\t\t\t\txml = tmp.parseFromString( data , \"text/xml\" );\n\t\t\t} else { // IE\n\t\t\t\txml = new ActiveXObject( \"Microsoft.XMLDOM\" );\n\t\t\t\txml.async = \"false\";\n\t\t\t\txml.loadXML( data );\n\t\t\t}\n\t\t} catch( e ) {\n\t\t\txml = undefined;\n\t\t}\n\t\tif ( !xml || !xml.documentElement || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\t\tjQuery.error( \"Invalid XML: \" + data );\n\t\t}\n\t\treturn xml;\n\t},\n\n\tnoop: function() {},\n\n\t// Evaluates a script in a global context\n\t// Workarounds based on findings by Jim Driscoll\n\t// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context\n\tglobalEval: function( data ) {\n\t\tif ( data && jQuery.trim( data ) ) {\n\t\t\t// We use execScript on Internet Explorer\n\t\t\t// We use an anonymous function so that context is window\n\t\t\t// rather than jQuery in Firefox\n\t\t\t( window.execScript || function( data ) {\n\t\t\t\twindow[ \"eval\" ].call( window, data );\n\t\t\t} )( data );\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\t// args is for internal usage only\n\teach: function( obj, callback, args ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = obj.length,\n\t\t\tisArray = isArraylike( obj );\n\n\t\tif ( args ) {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// A special, fast, case for the most common use of each\n\t\t} else {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Use native String.trim function wherever possible\n\ttrim: core_trim && !core_trim.call(\"\\uFEFF\\xA0\") ?\n\t\tfunction( text ) {\n\t\t\treturn text == null ?\n\t\t\t\t\"\" :\n\t\t\t\tcore_trim.call( text );\n\t\t} :\n\n\t\t// Otherwise use our own trimming functionality\n\t\tfunction( text ) {\n\t\t\treturn text == null ?\n\t\t\t\t\"\" :\n\t\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArraylike( Object(arr) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcore_push.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\tvar len;\n\n\t\tif ( arr ) {\n\t\t\tif ( core_indexOf ) {\n\t\t\t\treturn core_indexOf.call( arr, elem, i );\n\t\t\t}\n\n\t\t\tlen = arr.length;\n\t\t\ti = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t// Skip accessing in sparse arrays\n\t\t\t\tif ( i in arr && arr[ i ] === elem ) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar l = second.length,\n\t\t\ti = first.length,\n\t\t\tj = 0;\n\n\t\tif ( typeof l === \"number\" ) {\n\t\t\tfor ( ; j < l; j++ ) {\n\t\t\t\tfirst[ i++ ] = second[ j ];\n\t\t\t}\n\t\t} else {\n\t\t\twhile ( second[j] !== undefined ) {\n\t\t\t\tfirst[ i++ ] = second[ j++ ];\n\t\t\t}\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, inv ) {\n\t\tvar retVal,\n\t\t\tret = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length;\n\t\tinv = !!inv;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tretVal = !!callback( elems[ i ], i );\n\t\t\tif ( inv !== retVal ) {\n\t\t\t\tret.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tisArray = isArraylike( elems ),\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their\n\t\tif ( isArray ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret[ ret.length ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret[ ret.length ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn core_concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar args, proxy, tmp;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = core_slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( core_slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\t// Multifunctional method to get and set values of a collection\n\t// The value/s can optionally be executed if it's a function\n\taccess: function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\t\tvar i = 0,\n\t\t\tlength = elems.length,\n\t\t\tbulk = key == null;\n\n\t\t// Sets many values\n\t\tif ( jQuery.type( key ) === \"object\" ) {\n\t\t\tchainable = true;\n\t\t\tfor ( i in key ) {\n\t\t\t\tjQuery.access( elems, fn, i, key[i], true, emptyGet, raw );\n\t\t\t}\n\n\t\t// Sets one value\n\t\t} else if ( value !== undefined ) {\n\t\t\tchainable = true;\n\n\t\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\t\traw = true;\n\t\t\t}\n\n\t\t\tif ( bulk ) {\n\t\t\t\t// Bulk operations run against the entire set\n\t\t\t\tif ( raw ) {\n\t\t\t\t\tfn.call( elems, value );\n\t\t\t\t\tfn = null;\n\n\t\t\t\t// ...except when executing function values\n\t\t\t\t} else {\n\t\t\t\t\tbulk = fn;\n\t\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( fn ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tfn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn chainable ?\n\t\t\telems :\n\n\t\t\t// Gets\n\t\t\tbulk ?\n\t\t\t\tfn.call( elems ) :\n\t\t\t\tlength ? fn( elems[0], key ) : emptyGet;\n\t},\n\n\tnow: function() {\n\t\treturn ( new Date() ).getTime();\n\t},\n\n\t// A method for quickly swapping in/out CSS properties to get correct calculations.\n\t// Note: this method belongs to the css module but it's needed here for the support module.\n\t// If support gets modularized, this method should be moved back to the css module.\n\tswap: function( elem, options, callback, args ) {\n\t\tvar ret, name,\n\t\t\told = {};\n\n\t\t// Remember the old values, and insert the new ones\n\t\tfor ( name in options ) {\n\t\t\told[ name ] = elem.style[ name ];\n\t\t\telem.style[ name ] = options[ name ];\n\t\t}\n\n\t\tret = callback.apply( elem, args || [] );\n\n\t\t// Revert the old values\n\t\tfor ( name in options ) {\n\t\t\telem.style[ name ] = old[ name ];\n\t\t}\n\n\t\treturn ret;\n\t}\n});\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called after the browser event has already occurred.\n\t\t// we once tried to use readyState \"interactive\" here, but it caused issues like the one\n\t\t// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15\n\t\tif ( document.readyState === \"complete\" ) {\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\tsetTimeout( jQuery.ready );\n\n\t\t// Standards-based browsers support DOMContentLoaded\n\t\t} else if ( document.addEventListener ) {\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed, false );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", completed, false );\n\n\t\t// If IE event model is used\n\t\t} else {\n\t\t\t// Ensure firing before onload, maybe late but safe also for iframes\n\t\t\tdocument.attachEvent( \"onreadystatechange\", completed );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.attachEvent( \"onload\", completed );\n\n\t\t\t// If IE and not a frame\n\t\t\t// continually check to see if the document is ready\n\t\t\tvar top = false;\n\n\t\t\ttry {\n\t\t\t\ttop = window.frameElement == null && document.documentElement;\n\t\t\t} catch(e) {}\n\n\t\t\tif ( top && top.doScroll ) {\n\t\t\t\t(function doScrollCheck() {\n\t\t\t\t\tif ( !jQuery.isReady ) {\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// Use the trick by Diego Perini\n\t\t\t\t\t\t\t// http://javascript.nwbox.com/IEContentLoaded/\n\t\t\t\t\t\t\ttop.doScroll(\"left\");\n\t\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t\treturn setTimeout( doScrollCheck, 50 );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// detach all dom ready events\n\t\t\t\t\t\tdetach();\n\n\t\t\t\t\t\t// and execute any waiting functions\n\t\t\t\t\t\tjQuery.ready();\n\t\t\t\t\t}\n\t\t\t\t})();\n\t\t\t}\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n// Populate the class2type map\njQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n});\n\nfunction isArraylike( obj ) {\n\tvar length = obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\tif ( obj.nodeType === 1 && length ) {\n\t\treturn true;\n\t}\n\n\treturn type === \"array\" || type !== \"function\" &&\n\t\t( length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj );\n}\n\n// All jQuery objects should point back to these\nrootjQuery = jQuery(document);\n/*!\n * Sizzle CSS Selector Engine v1.10.2\n * http://sizzlejs.com/\n *\n * Copyright 2013 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2013-07-03\n */\n(function( window, undefined ) {\n\nvar i,\n\tsupport,\n\tcachedruns,\n\tExpr,\n\tgetText,\n\tisXML,\n\tcompile,\n\toutermostContext,\n\tsortInput,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + -(new Date()),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\thasDuplicate = false,\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// General-purpose constants\n\tstrundefined = typeof undefined,\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf if we can't use a native one\n\tindexOf = arr.indexOf || function( elem ) {\n\t\tvar i = 0,\n\t\t\tlen = this.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( this[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\t// http://www.w3.org/TR/css3-syntax/#characters\n\tcharacterEncoding = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Loosely modeled on CSS identifier characters\n\t// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\t// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = characterEncoding.replace( \"w\", \"w#\" ),\n\n\t// Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + characterEncoding + \")\" + whitespace +\n\t\t\"*(?:([*^$|!~]?=)\" + whitespace + \"*(?:(['\\\"])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\3|(\" + identifier + \")|)|)\" + whitespace + \"*\\\\]\",\n\n\t// Prefer arguments quoted,\n\t// then not containing pseudos/brackets,\n\t// then attribute selectors/non-parenthetical expressions,\n\t// then anything else\n\t// These preferences are here to reduce the number of selectors\n\t// needing tokenize in the PSEUDO preFilter\n\tpseudos = \":(\" + characterEncoding + \")(?:\\\\(((['\\\"])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\3|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes.replace( 3, 8 ) + \")*)|.*)\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trsibling = new RegExp( whitespace + \"*[+~]\" ),\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + characterEncoding + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + characterEncoding + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + characterEncoding.replace( \"w\", \"w*\" ) + \")\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trescape = /'|\\\\/g,\n\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\t// BMP codepoint\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t};\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar match, elem, m, nodeType,\n\t\t// QSA vars\n\t\ti, groups, old, nid, newContext, newSelector;\n\n\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\n\tcontext = context || document;\n\tresults = results || [];\n\n\tif ( !selector || typeof selector !== \"string\" ) {\n\t\treturn results;\n\t}\n\n\tif ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {\n\t\treturn [];\n\t}\n\n\tif ( documentIsHTML && !seed ) {\n\n\t\t// Shortcuts\n\t\tif ( (match = rquickExpr.exec( selector )) ) {\n\t\t\t// Speed-up: Sizzle(\"#ID\")\n\t\t\tif ( (m = match[1]) ) {\n\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\telem = context.getElementById( m );\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE, Opera, and Webkit return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Context is not a document\n\t\t\t\t\tif ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&\n\t\t\t\t\t\tcontains( context, elem ) && elem.id === m ) {\n\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Speed-up: Sizzle(\"TAG\")\n\t\t\t} else if ( match[2] ) {\n\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\treturn results;\n\n\t\t\t// Speed-up: Sizzle(\".CLASS\")\n\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) {\n\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\treturn results;\n\t\t\t}\n\t\t}\n\n\t\t// QSA path\n\t\tif ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\t\t\tnid = old = expando;\n\t\t\tnewContext = context;\n\t\t\tnewSelector = nodeType === 9 && selector;\n\n\t\t\t// qSA works strangely on Element-rooted queries\n\t\t\t// We can work around this by specifying an extra ID on the root\n\t\t\t// and working up from there (Thanks to Andrew Dupont for the technique)\n\t\t\t// IE 8 doesn't work on object elements\n\t\t\tif ( nodeType === 1 && context.nodeName.toLowerCase() !== \"object\" ) {\n\t\t\t\tgroups = tokenize( selector );\n\n\t\t\t\tif ( (old = context.getAttribute(\"id\")) ) {\n\t\t\t\t\tnid = old.replace( rescape, \"\\\\$&\" );\n\t\t\t\t} else {\n\t\t\t\t\tcontext.setAttribute( \"id\", nid );\n\t\t\t\t}\n\t\t\t\tnid = \"[id='\" + nid + \"'] \";\n\n\t\t\t\ti = groups.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tgroups[i] = nid + toSelector( groups[i] );\n\t\t\t\t}\n\t\t\t\tnewContext = rsibling.test( selector ) && context.parentNode || context;\n\t\t\t\tnewSelector = groups.join(\",\");\n\t\t\t}\n\n\t\t\tif ( newSelector ) {\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch(qsaError) {\n\t\t\t\t} finally {\n\t\t\t\t\tif ( !old ) {\n\t\t\t\t\t\tcontext.removeAttribute(\"id\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {Function(string, Object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key += \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn !!fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( div.parentNode ) {\n\t\t\tdiv.parentNode.removeChild( div );\n\t\t}\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = attrs.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect xml\n * @param {Element|Object} elem An element or a document\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar doc = node ? node.ownerDocument || node : preferredDoc,\n\t\tparent = doc.defaultView;\n\n\t// If no document and documentElement is available, return\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Set our document\n\tdocument = doc;\n\tdocElem = doc.documentElement;\n\n\t// Support tests\n\tdocumentIsHTML = !isXML( doc );\n\n\t// Support: IE>8\n\t// If iframe document is assigned to \"document\" variable and if iframe has been reloaded,\n\t// IE will throw \"permission denied\" error when accessing \"document\" variable, see jQuery #13936\n\t// IE6-8 do not support the defaultView property so parent will be undefined\n\tif ( parent && parent.attachEvent && parent !== parent.top ) {\n\t\tparent.attachEvent( \"onbeforeunload\", function() {\n\t\t\tsetDocument();\n\t\t});\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans)\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.className = \"i\";\n\t\treturn !div.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( div ) {\n\t\tdiv.appendChild( doc.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Check if getElementsByClassName can be trusted\n\tsupport.getElementsByClassName = assert(function( div ) {\n\t\tdiv.innerHTML = \"
\";\n\n\t\t// Support: Safari<4\n\t\t// Catch class over-caching\n\t\tdiv.firstChild.className = \"i\";\n\t\t// Support: Opera<10\n\t\t// Catch gEBCN failure to find non-leading classes\n\t\treturn div.getElementsByClassName(\"i\").length === 2;\n\t});\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( div ) {\n\t\tdocElem.appendChild( div ).id = expando;\n\t\treturn !doc.getElementsByName || !doc.getElementsByName( expando ).length;\n\t});\n\n\t// ID find and filter\n\tif ( support.getById ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== strundefined && documentIsHTML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\treturn m && m.parentNode ? [m] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\t// Support: IE6/7\n\t\t// getElementById is not reliable as a find shortcut\n\t\tdelete Expr.find[\"ID\"];\n\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== strundefined ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\t\t\t}\n\t\t} :\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See http://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// http://bugs.jquery.com/ticket/12359\n\t\t\tdiv.innerHTML = \"\";\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\n\t\t\t// Support: Opera 10-12/IE8\n\t\t\t// ^= $= *= and empty values\n\t\t\t// Should not select anything\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type attribute is restricted during .innerHTML assignment\n\t\t\tvar input = doc.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tdiv.appendChild( input ).setAttribute( \"t\", \"\" );\n\n\t\t\tif ( div.querySelectorAll(\"[t^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\n\t// Element contains another\n\t// Purposefully does not implement inclusive descendent\n\t// As in, an element does not contain itself\n\tcontains = rnative.test( docElem.contains ) || docElem.compareDocumentPosition ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = docElem.compareDocumentPosition ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b );\n\n\t\tif ( compare ) {\n\t\t\t// Disconnected nodes\n\t\t\tif ( compare & 1 ||\n\t\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t\tif ( a === doc || contains(preferredDoc, a) ) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\tif ( b === doc || contains(preferredDoc, b) ) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\n\t\t\t\t// Maintain original order\n\t\t\t\treturn sortInput ?\n\t\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t\t0;\n\t\t\t}\n\n\t\t\treturn compare & 4 ? -1 : 1;\n\t\t}\n\n\t\t// Not directly comparable, sort on existence of method\n\t\treturn a.compareDocumentPosition ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\t} else if ( !aup || !bup ) {\n\t\t\treturn a === doc ? -1 :\n\t\t\t\tb === doc ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn doc;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch(e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [elem] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val === undefined ?\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull :\n\t\tval;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\tfor ( ; (node = elem[i]); i++ ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (see #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[5] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] && match[4] !== undefined ) {\n\t\t\t\tmatch[2] = match[4];\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, diff, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || (parent[ expando ] = {});\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\n\t\t\t\t\t\t\tdiff = cache[0] === dirruns && cache[2];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {\n\t\t\t\t\t\t\tdiff = cache[1];\n\n\t\t\t\t\t\t// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\tif ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {\n\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf.call( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is only affected by element nodes and content nodes(including text(3), cdata(4)),\n\t\t\t// not comment, processing instructions, or others\n\t\t\t// Thanks to Diego Perini for the nodeName shortcut\n\t\t\t// Greater than \"@\" means alpha characters (specifically not starting with \"#\" or \"?\")\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeName > \"@\" || elem.nodeType === 3 || elem.nodeType === 4 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\t// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)\n\t\t\t// use getAttribute instead to test this case\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === elem.type );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\nfunction tokenize( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( tokens = [] );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n}\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar data, cache, outerCache,\n\t\t\t\tdirkey = dirruns + \" \" + doneName;\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\t\t\t\t\t\tif ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) {\n\t\t\t\t\t\t\tif ( (data = cache[1]) === true || data === cachedruns ) {\n\t\t\t\t\t\t\t\treturn data === true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcache = outerCache[ dir ] = [ dirkey ];\n\t\t\t\t\t\t\tcache[1] = matcher( elem, context, xml ) || cachedruns;\n\t\t\t\t\t\t\tif ( cache[1] === true ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\treturn ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\t// A counter to specify which element is currently being matched\n\tvar matcherCachedRuns = 0,\n\t\tbySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, expandContext ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tsetMatched = [],\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\toutermost = expandContext != null,\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", expandContext && context.parentNode || context ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1);\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context !== document && context;\n\t\t\t\tcachedruns = matcherCachedRuns;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Keep `i` a string if there are no elements so `matchedCount` will be \"00\" below\n\t\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t\tcachedruns = ++matcherCachedRuns;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\tmatchedCount += i;\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !group ) {\n\t\t\tgroup = tokenize( selector );\n\t\t}\n\t\ti = group.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( group[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\t}\n\treturn cached;\n};\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction select( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tmatch = tokenize( selector );\n\n\tif ( !seed ) {\n\t\t// Try to minimize operations if there is only one group\n\t\tif ( match.length === 1 ) {\n\n\t\t\t// Take a shortcut and set the context if the root selector is an ID\n\t\t\ttokens = match[0] = match[0].slice( 0 );\n\t\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\n\t\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\t\tif ( !context ) {\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t\t}\n\n\t\t\t// Fetch a seed set for right-to-left matching\n\t\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\ttoken = tokens[i];\n\n\t\t\t\t// Abort if we hit a combinator\n\t\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\t\tif ( (seed = find(\n\t\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\t\trsibling.test( tokens[0].type ) && context.parentNode || context\n\t\t\t\t\t)) ) {\n\n\t\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\tcompile( selector, match )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\trsibling.test( selector )\n\t);\n\treturn results;\n}\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome<14\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( div1 ) {\n\t// Should return 1, but returns 4 (following)\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( div ) {\n\treturn div.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn (val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\telem[ name ] === true ? name.toLowerCase() : null;\n\t\t}\n\t});\n}\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[\":\"] = jQuery.expr.pseudos;\njQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n})( window );\n// String to Object options format cache\nvar optionsCache = {};\n\n// Convert String-formatted options into Object-formatted ones and store in cache\nfunction createOptions( options ) {\n\tvar object = optionsCache[ options ] = {};\n\tjQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t});\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\t( optionsCache[ options ] || createOptions( options ) ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\t\t// Last fire value (for non-forgettable lists)\n\t\tmemory,\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\t\t// End of the loop when firing\n\t\tfiringLength,\n\t\t// Index of currently firing callback (modified by remove if needed)\n\t\tfiringIndex,\n\t\t// First callback to fire (used internally by add and fireWith)\n\t\tfiringStart,\n\t\t// Actual callback list\n\t\tlist = [],\n\t\t// Stack of fire calls for repeatable lists\n\t\tstack = !options.once && [],\n\t\t// Fire callbacks\n\t\tfire = function( data ) {\n\t\t\tmemory = options.memory && data;\n\t\t\tfired = true;\n\t\t\tfiringIndex = firingStart || 0;\n\t\t\tfiringStart = 0;\n\t\t\tfiringLength = list.length;\n\t\t\tfiring = true;\n\t\t\tfor ( ; list && firingIndex < firingLength; firingIndex++ ) {\n\t\t\t\tif ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {\n\t\t\t\t\tmemory = false; // To prevent further calls using add\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiring = false;\n\t\t\tif ( list ) {\n\t\t\t\tif ( stack ) {\n\t\t\t\t\tif ( stack.length ) {\n\t\t\t\t\t\tfire( stack.shift() );\n\t\t\t\t\t}\n\t\t\t\t} else if ( memory ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t} else {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Actual Callbacks object\n\t\tself = {\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\t// First, we save the current length\n\t\t\t\t\tvar start = list.length;\n\t\t\t\t\t(function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tvar type = jQuery.type( arg );\n\t\t\t\t\t\t\tif ( type === \"function\" ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && type !== \"string\" ) {\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t})( arguments );\n\t\t\t\t\t// Do we need to add the callbacks to the\n\t\t\t\t\t// current firing batch?\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tfiringLength = list.length;\n\t\t\t\t\t// With memory, if we're not firing then\n\t\t\t\t\t// we should call right away\n\t\t\t\t\t} else if ( memory ) {\n\t\t\t\t\t\tfiringStart = start;\n\t\t\t\t\t\tfire( memory );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\t\tvar index;\n\t\t\t\t\t\twhile( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\t\tlist.splice( index, 1 );\n\t\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\t\t\tif ( index <= firingLength ) {\n\t\t\t\t\t\t\t\t\tfiringLength--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );\n\t\t\t},\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tlist = [];\n\t\t\t\tfiringLength = 0;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Have the list do nothing anymore\n\t\t\tdisable: function() {\n\t\t\t\tlist = stack = memory = undefined;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it disabled?\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\t\t\t// Lock the list in its current state\n\t\t\tlock: function() {\n\t\t\t\tstack = undefined;\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it locked?\n\t\t\tlocked: function() {\n\t\t\t\treturn !stack;\n\t\t\t},\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( list && ( !fired || stack ) ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tstack.push( args );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfire( args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\njQuery.extend({\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks(\"memory\") ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred(function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar action = tuple[ 0 ],\n\t\t\t\t\t\t\t\tfn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[1] ](function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject )\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ action + \"With\" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t}).promise();\n\t\t\t\t},\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[1] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(function() {\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[0] ] = function() {\n\t\t\t\tdeferred[ tuple[0] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[0] + \"With\" ] = list.fireWith;\n\t\t});\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = core_slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred. If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value;\n\t\t\t\t\tif( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\t\t\t\t\t} else if ( !( --remaining ) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject )\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// if we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n});\njQuery.support = (function( support ) {\n\n\tvar all, a, input, select, fragment, opt, eventName, isSupported, i,\n\t\tdiv = document.createElement(\"div\");\n\n\t// Setup\n\tdiv.setAttribute( \"className\", \"t\" );\n\tdiv.innerHTML = \"
a\";\n\n\t// Finish early in limited (non-browser) environments\n\tall = div.getElementsByTagName(\"*\") || [];\n\ta = div.getElementsByTagName(\"a\")[ 0 ];\n\tif ( !a || !a.style || !all.length ) {\n\t\treturn support;\n\t}\n\n\t// First batch of tests\n\tselect = document.createElement(\"select\");\n\topt = select.appendChild( document.createElement(\"option\") );\n\tinput = div.getElementsByTagName(\"input\")[ 0 ];\n\n\ta.style.cssText = \"top:1px;float:left;opacity:.5\";\n\n\t// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)\n\tsupport.getSetAttribute = div.className !== \"t\";\n\n\t// IE strips leading whitespace when .innerHTML is used\n\tsupport.leadingWhitespace = div.firstChild.nodeType === 3;\n\n\t// Make sure that tbody elements aren't automatically inserted\n\t// IE will insert them into empty tables\n\tsupport.tbody = !div.getElementsByTagName(\"tbody\").length;\n\n\t// Make sure that link elements get serialized correctly by innerHTML\n\t// This requires a wrapper element in IE\n\tsupport.htmlSerialize = !!div.getElementsByTagName(\"link\").length;\n\n\t// Get the style information from getAttribute\n\t// (IE uses .cssText instead)\n\tsupport.style = /top/.test( a.getAttribute(\"style\") );\n\n\t// Make sure that URLs aren't manipulated\n\t// (IE normalizes it by default)\n\tsupport.hrefNormalized = a.getAttribute(\"href\") === \"/a\";\n\n\t// Make sure that element opacity exists\n\t// (IE uses filter instead)\n\t// Use a regex to work around a WebKit issue. See #5145\n\tsupport.opacity = /^0.5/.test( a.style.opacity );\n\n\t// Verify style float existence\n\t// (IE uses styleFloat instead of cssFloat)\n\tsupport.cssFloat = !!a.style.cssFloat;\n\n\t// Check the default checkbox/radio value (\"\" on WebKit; \"on\" elsewhere)\n\tsupport.checkOn = !!input.value;\n\n\t// Make sure that a selected-by-default option has a working selected property.\n\t// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)\n\tsupport.optSelected = opt.selected;\n\n\t// Tests for enctype support on a form (#6743)\n\tsupport.enctype = !!document.createElement(\"form\").enctype;\n\n\t// Makes sure cloning an html5 element does not cause problems\n\t// Where outerHTML is undefined, this still works\n\tsupport.html5Clone = document.createElement(\"nav\").cloneNode( true ).outerHTML !== \"<:nav>\";\n\n\t// Will be defined later\n\tsupport.inlineBlockNeedsLayout = false;\n\tsupport.shrinkWrapBlocks = false;\n\tsupport.pixelPosition = false;\n\tsupport.deleteExpando = true;\n\tsupport.noCloneEvent = true;\n\tsupport.reliableMarginRight = true;\n\tsupport.boxSizingReliable = true;\n\n\t// Make sure checked status is properly cloned\n\tinput.checked = true;\n\tsupport.noCloneChecked = input.cloneNode( true ).checked;\n\n\t// Make sure that the options inside disabled selects aren't marked as disabled\n\t// (WebKit marks them as disabled)\n\tselect.disabled = true;\n\tsupport.optDisabled = !opt.disabled;\n\n\t// Support: IE<9\n\ttry {\n\t\tdelete div.test;\n\t} catch( e ) {\n\t\tsupport.deleteExpando = false;\n\t}\n\n\t// Check if we can trust getAttribute(\"value\")\n\tinput = document.createElement(\"input\");\n\tinput.setAttribute( \"value\", \"\" );\n\tsupport.input = input.getAttribute( \"value\" ) === \"\";\n\n\t// Check if an input maintains its value after becoming a radio\n\tinput.value = \"t\";\n\tinput.setAttribute( \"type\", \"radio\" );\n\tsupport.radioValue = input.value === \"t\";\n\n\t// #11217 - WebKit loses check when the name is after the checked attribute\n\tinput.setAttribute( \"checked\", \"t\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tfragment = document.createDocumentFragment();\n\tfragment.appendChild( input );\n\n\t// Check if a disconnected checkbox will retain its checked\n\t// value of true after appended to the DOM (IE6/7)\n\tsupport.appendChecked = input.checked;\n\n\t// WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<9\n\t// Opera does not clone events (and typeof div.attachEvent === undefined).\n\t// IE9-10 clones events bound via attachEvent, but they don't trigger with .click()\n\tif ( div.attachEvent ) {\n\t\tdiv.attachEvent( \"onclick\", function() {\n\t\t\tsupport.noCloneEvent = false;\n\t\t});\n\n\t\tdiv.cloneNode( true ).click();\n\t}\n\n\t// Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event)\n\t// Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)\n\tfor ( i in { submit: true, change: true, focusin: true }) {\n\t\tdiv.setAttribute( eventName = \"on\" + i, \"t\" );\n\n\t\tsupport[ i + \"Bubbles\" ] = eventName in window || div.attributes[ eventName ].expando === false;\n\t}\n\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\t// Support: IE<9\n\t// Iteration over object's inherited properties before its own.\n\tfor ( i in jQuery( support ) ) {\n\t\tbreak;\n\t}\n\tsupport.ownLast = i !== \"0\";\n\n\t// Run tests that need a body at doc ready\n\tjQuery(function() {\n\t\tvar container, marginDiv, tds,\n\t\t\tdivReset = \"padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;\",\n\t\t\tbody = document.getElementsByTagName(\"body\")[0];\n\n\t\tif ( !body ) {\n\t\t\t// Return for frameset docs that don't have a body\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer = document.createElement(\"div\");\n\t\tcontainer.style.cssText = \"border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px\";\n\n\t\tbody.appendChild( container ).appendChild( div );\n\n\t\t// Support: IE8\n\t\t// Check if table cells still have offsetWidth/Height when they are set\n\t\t// to display:none and there are still other visible table cells in a\n\t\t// table row; if so, offsetWidth/Height are not reliable for use when\n\t\t// determining if an element has been hidden directly using\n\t\t// display:none (it is still safe to use offsets if a parent element is\n\t\t// hidden; don safety goggles and see bug #4512 for more information).\n\t\tdiv.innerHTML = \"
t
\";\n\t\ttds = div.getElementsByTagName(\"td\");\n\t\ttds[ 0 ].style.cssText = \"padding:0;margin:0;border:0;display:none\";\n\t\tisSupported = ( tds[ 0 ].offsetHeight === 0 );\n\n\t\ttds[ 0 ].style.display = \"\";\n\t\ttds[ 1 ].style.display = \"none\";\n\n\t\t// Support: IE8\n\t\t// Check if empty table cells still have offsetWidth/Height\n\t\tsupport.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );\n\n\t\t// Check box-sizing and margin behavior.\n\t\tdiv.innerHTML = \"\";\n\t\tdiv.style.cssText = \"box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;\";\n\n\t\t// Workaround failing boxSizing test due to offsetWidth returning wrong value\n\t\t// with some non-1 values of body zoom, ticket #13543\n\t\tjQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() {\n\t\t\tsupport.boxSizing = div.offsetWidth === 4;\n\t\t});\n\n\t\t// Use window.getComputedStyle because jsdom on node.js will break without it.\n\t\tif ( window.getComputedStyle ) {\n\t\t\tsupport.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== \"1%\";\n\t\t\tsupport.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: \"4px\" } ).width === \"4px\";\n\n\t\t\t// Check if div with explicit width and no margin-right incorrectly\n\t\t\t// gets computed margin-right based on width of container. (#3333)\n\t\t\t// Fails in WebKit before Feb 2011 nightlies\n\t\t\t// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right\n\t\t\tmarginDiv = div.appendChild( document.createElement(\"div\") );\n\t\t\tmarginDiv.style.cssText = div.style.cssText = divReset;\n\t\t\tmarginDiv.style.marginRight = marginDiv.style.width = \"0\";\n\t\t\tdiv.style.width = \"1px\";\n\n\t\t\tsupport.reliableMarginRight =\n\t\t\t\t!parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight );\n\t\t}\n\n\t\tif ( typeof div.style.zoom !== core_strundefined ) {\n\t\t\t// Support: IE<8\n\t\t\t// Check if natively block-level elements act like inline-block\n\t\t\t// elements when setting their display to 'inline' and giving\n\t\t\t// them layout\n\t\t\tdiv.innerHTML = \"\";\n\t\t\tdiv.style.cssText = divReset + \"width:1px;padding:1px;display:inline;zoom:1\";\n\t\t\tsupport.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );\n\n\t\t\t// Support: IE6\n\t\t\t// Check if elements with layout shrink-wrap their children\n\t\t\tdiv.style.display = \"block\";\n\t\t\tdiv.innerHTML = \"
\";\n\t\t\tdiv.firstChild.style.width = \"5px\";\n\t\t\tsupport.shrinkWrapBlocks = ( div.offsetWidth !== 3 );\n\n\t\t\tif ( support.inlineBlockNeedsLayout ) {\n\t\t\t\t// Prevent IE 6 from affecting layout for positioned elements #11048\n\t\t\t\t// Prevent IE from shrinking the body in IE 7 mode #12869\n\t\t\t\t// Support: IE<8\n\t\t\t\tbody.style.zoom = 1;\n\t\t\t}\n\t\t}\n\n\t\tbody.removeChild( container );\n\n\t\t// Null elements to avoid leaks in IE\n\t\tcontainer = div = tds = marginDiv = null;\n\t});\n\n\t// Null elements to avoid leaks in IE\n\tall = select = fragment = opt = a = input = null;\n\n\treturn support;\n})({});\n\nvar rbrace = /(?:\\{[\\s\\S]*\\}|\\[[\\s\\S]*\\])$/,\n\trmultiDash = /([A-Z])/g;\n\nfunction internalData( elem, name, data, pvt /* Internal Use Only */ ){\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar ret, thisCache,\n\t\tinternalKey = jQuery.expando,\n\n\t\t// We have to handle DOM nodes and JS objects differently because IE6-7\n\t\t// can't GC object references properly across the DOM-JS boundary\n\t\tisNode = elem.nodeType,\n\n\t\t// Only DOM nodes need the global jQuery cache; JS object data is\n\t\t// attached directly to the object so GC can occur automatically\n\t\tcache = isNode ? jQuery.cache : elem,\n\n\t\t// Only defining an ID for JS objects if its cache already exists allows\n\t\t// the code to shortcut on the same path as a DOM node with no cache\n\t\tid = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;\n\n\t// Avoid doing any more work than we need to when trying to get data on an\n\t// object that has no data at all\n\tif ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === \"string\" ) {\n\t\treturn;\n\t}\n\n\tif ( !id ) {\n\t\t// Only DOM nodes need a new unique ID for each element since their data\n\t\t// ends up in the global cache\n\t\tif ( isNode ) {\n\t\t\tid = elem[ internalKey ] = core_deletedIds.pop() || jQuery.guid++;\n\t\t} else {\n\t\t\tid = internalKey;\n\t\t}\n\t}\n\n\tif ( !cache[ id ] ) {\n\t\t// Avoid exposing jQuery metadata on plain JS objects when the object\n\t\t// is serialized using JSON.stringify\n\t\tcache[ id ] = isNode ? {} : { toJSON: jQuery.noop };\n\t}\n\n\t// An object can be passed to jQuery.data instead of a key/value pair; this gets\n\t// shallow copied over onto the existing cache\n\tif ( typeof name === \"object\" || typeof name === \"function\" ) {\n\t\tif ( pvt ) {\n\t\t\tcache[ id ] = jQuery.extend( cache[ id ], name );\n\t\t} else {\n\t\t\tcache[ id ].data = jQuery.extend( cache[ id ].data, name );\n\t\t}\n\t}\n\n\tthisCache = cache[ id ];\n\n\t// jQuery data() is stored in a separate object inside the object's internal data\n\t// cache in order to avoid key collisions between internal data and user-defined\n\t// data.\n\tif ( !pvt ) {\n\t\tif ( !thisCache.data ) {\n\t\t\tthisCache.data = {};\n\t\t}\n\n\t\tthisCache = thisCache.data;\n\t}\n\n\tif ( data !== undefined ) {\n\t\tthisCache[ jQuery.camelCase( name ) ] = data;\n\t}\n\n\t// Check for both converted-to-camel and non-converted data property names\n\t// If a data property was specified\n\tif ( typeof name === \"string\" ) {\n\n\t\t// First Try to find as-is property data\n\t\tret = thisCache[ name ];\n\n\t\t// Test for null|undefined property data\n\t\tif ( ret == null ) {\n\n\t\t\t// Try to find the camelCased property\n\t\t\tret = thisCache[ jQuery.camelCase( name ) ];\n\t\t}\n\t} else {\n\t\tret = thisCache;\n\t}\n\n\treturn ret;\n}\n\nfunction internalRemoveData( elem, name, pvt ) {\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar thisCache, i,\n\t\tisNode = elem.nodeType,\n\n\t\t// See jQuery.data for more information\n\t\tcache = isNode ? jQuery.cache : elem,\n\t\tid = isNode ? elem[ jQuery.expando ] : jQuery.expando;\n\n\t// If there is already no cache entry for this object, there is no\n\t// purpose in continuing\n\tif ( !cache[ id ] ) {\n\t\treturn;\n\t}\n\n\tif ( name ) {\n\n\t\tthisCache = pvt ? cache[ id ] : cache[ id ].data;\n\n\t\tif ( thisCache ) {\n\n\t\t\t// Support array or space separated string names for data keys\n\t\t\tif ( !jQuery.isArray( name ) ) {\n\n\t\t\t\t// try the string as a key before any manipulation\n\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\tname = [ name ];\n\t\t\t\t} else {\n\n\t\t\t\t\t// split the camel cased version by spaces unless a key with the spaces exists\n\t\t\t\t\tname = jQuery.camelCase( name );\n\t\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\t\tname = [ name ];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tname = name.split(\" \");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = name.concat( jQuery.map( name, jQuery.camelCase ) );\n\t\t\t}\n\n\t\t\ti = name.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete thisCache[ name[i] ];\n\t\t\t}\n\n\t\t\t// If there is no data left in the cache, we want to continue\n\t\t\t// and let the cache object itself get destroyed\n\t\t\tif ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\t// See jQuery.data for more information\n\tif ( !pvt ) {\n\t\tdelete cache[ id ].data;\n\n\t\t// Don't destroy the parent cache unless the internal data object\n\t\t// had been the only thing left in it\n\t\tif ( !isEmptyDataObject( cache[ id ] ) ) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// Destroy the cache\n\tif ( isNode ) {\n\t\tjQuery.cleanData( [ elem ], true );\n\n\t// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)\n\t/* jshint eqeqeq: false */\n\t} else if ( jQuery.support.deleteExpando || cache != cache.window ) {\n\t\t/* jshint eqeqeq: true */\n\t\tdelete cache[ id ];\n\n\t// When all else fails, null\n\t} else {\n\t\tcache[ id ] = null;\n\t}\n}\n\njQuery.extend({\n\tcache: {},\n\n\t// The following elements throw uncatchable exceptions if you\n\t// attempt to add expando properties to them.\n\tnoData: {\n\t\t\"applet\": true,\n\t\t\"embed\": true,\n\t\t// Ban all objects except for Flash (which handle expandos)\n\t\t\"object\": \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"\n\t},\n\n\thasData: function( elem ) {\n\t\telem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];\n\t\treturn !!elem && !isEmptyDataObject( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name );\n\t},\n\n\t// For internal use only.\n\t_data: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data, true );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name, true );\n\t},\n\n\t// A method for determining if a DOM node can handle the data expando\n\tacceptData: function( elem ) {\n\t\t// Do not set data on non-element because it will not be cleared (#8335).\n\t\tif ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ];\n\n\t\t// nodes accept data unless otherwise specified; rejection can be conditional\n\t\treturn !noData || noData !== true && elem.getAttribute(\"classid\") === noData;\n\t}\n});\n\njQuery.fn.extend({\n\tdata: function( key, value ) {\n\t\tvar attrs, name,\n\t\t\tdata = null,\n\t\t\ti = 0,\n\t\t\telem = this[0];\n\n\t\t// Special expections of .data basically thwart jQuery.access,\n\t\t// so implement the relevant behavior ourselves\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = jQuery.data( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !jQuery._data( elem, \"parsedAttrs\" ) ) {\n\t\t\t\t\tattrs = elem.attributes;\n\t\t\t\t\tfor ( ; i < attrs.length; i++ ) {\n\t\t\t\t\t\tname = attrs[i].name;\n\n\t\t\t\t\t\tif ( name.indexOf(\"data-\") === 0 ) {\n\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice(5) );\n\n\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tjQuery._data( elem, \"parsedAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each(function() {\n\t\t\t\tjQuery.data( this, key );\n\t\t\t});\n\t\t}\n\n\t\treturn arguments.length > 1 ?\n\n\t\t\t// Sets one value\n\t\t\tthis.each(function() {\n\t\t\t\tjQuery.data( this, key, value );\n\t\t\t}) :\n\n\t\t\t// Gets one value\n\t\t\t// Try to fetch any internally stored data first\n\t\t\telem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null;\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeData( this, key );\n\t\t});\n\t}\n});\n\nfunction dataAttr( elem, key, data ) {\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\n\t\tvar name = \"data-\" + key.replace( rmultiDash, \"-$1\" ).toLowerCase();\n\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\t\tdata === \"false\" ? false :\n\t\t\t\t\tdata === \"null\" ? null :\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\t\tdata;\n\t\t\t} catch( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tjQuery.data( elem, key, data );\n\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\n\treturn data;\n}\n\n// checks a cache object for emptiness\nfunction isEmptyDataObject( obj ) {\n\tvar name;\n\tfor ( name in obj ) {\n\n\t\t// if the public data object is empty, the private is still empty\n\t\tif ( name === \"data\" && jQuery.isEmptyObject( obj[name] ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( name !== \"toJSON\" ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\njQuery.extend({\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = jQuery._data( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray(data) ) {\n\t\t\t\t\tqueue = jQuery._data( elem, type, jQuery.makeArray(data) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// not intended for public consumption - generates a queueHooks object, or returns the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn jQuery._data( elem, key ) || jQuery._data( elem, key, {\n\t\t\tempty: jQuery.Callbacks(\"once memory\").add(function() {\n\t\t\t\tjQuery._removeData( elem, type + \"queue\" );\n\t\t\t\tjQuery._removeData( elem, key );\n\t\t\t})\n\t\t});\n\t}\n});\n\njQuery.fn.extend({\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[0], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each(function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[0] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t});\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t});\n\t},\n\t// Based off of the plugin by Clint Helfers, with permission.\n\t// http://blindsignals.com/index.php/2009/07/jquery-delay/\n\tdelay: function( time, type ) {\n\t\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\t\ttype = type || \"fx\";\n\n\t\treturn this.queue( type, function( next, hooks ) {\n\t\t\tvar timeout = setTimeout( next, time );\n\t\t\thooks.stop = function() {\n\t\t\t\tclearTimeout( timeout );\n\t\t\t};\n\t\t});\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile( i-- ) {\n\t\t\ttmp = jQuery._data( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n});\nvar nodeHook, boolHook,\n\trclass = /[\\t\\r\\n\\f]/g,\n\trreturn = /\\r/g,\n\trfocusable = /^(?:input|select|textarea|button|object)$/i,\n\trclickable = /^(?:a|area)$/i,\n\truseDefault = /^(?:checked|selected)$/i,\n\tgetSetAttribute = jQuery.support.getSetAttribute,\n\tgetSetInput = jQuery.support.input;\n\njQuery.fn.extend({\n\tattr: function( name, value ) {\n\t\treturn jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t});\n\t},\n\n\tprop: function( name, value ) {\n\t\treturn jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\tname = jQuery.propFix[ name ] || name;\n\t\treturn this.each(function() {\n\t\t\t// try/catch handles cases where IE balks (such as removing a property on window)\n\t\t\ttry {\n\t\t\t\tthis[ name ] = undefined;\n\t\t\t\tdelete this[ name ];\n\t\t\t} catch( e ) {}\n\t\t});\n\t},\n\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, clazz, j,\n\t\t\ti = 0,\n\t\t\tlen = this.length,\n\t\t\tproceed = typeof value === \"string\" && value;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, this.className ) );\n\t\t\t});\n\t\t}\n\n\t\tif ( proceed ) {\n\t\t\t// The disjunction here is for better compressibility (see removeClass)\n\t\t\tclasses = ( value || \"\" ).match( core_rnotwhite ) || [];\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\telem = this[ i ];\n\t\t\t\tcur = elem.nodeType === 1 && ( elem.className ?\n\t\t\t\t\t( \" \" + elem.className + \" \" ).replace( rclass, \" \" ) :\n\t\t\t\t\t\" \"\n\t\t\t\t);\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (clazz = classes[j++]) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telem.className = jQuery.trim( cur );\n\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, clazz, j,\n\t\t\ti = 0,\n\t\t\tlen = this.length,\n\t\t\tproceed = arguments.length === 0 || typeof value === \"string\" && value;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, this.className ) );\n\t\t\t});\n\t\t}\n\t\tif ( proceed ) {\n\t\t\tclasses = ( value || \"\" ).match( core_rnotwhite ) || [];\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\telem = this[ i ];\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( elem.className ?\n\t\t\t\t\t( \" \" + elem.className + \" \" ).replace( rclass, \" \" ) :\n\t\t\t\t\t\"\"\n\t\t\t\t);\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (clazz = classes[j++]) ) {\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) >= 0 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telem.className = value ? jQuery.trim( cur ) : \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value;\n\n\t\tif ( typeof stateVal === \"boolean\" && type === \"string\" ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( i ) {\n\t\t\t\tjQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );\n\t\t\t});\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tif ( type === \"string\" ) {\n\t\t\t\t// toggle individual class names\n\t\t\t\tvar className,\n\t\t\t\t\ti = 0,\n\t\t\t\t\tself = jQuery( this ),\n\t\t\t\t\tclassNames = value.match( core_rnotwhite ) || [];\n\n\t\t\t\twhile ( (className = classNames[ i++ ]) ) {\n\t\t\t\t\t// check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( type === core_strundefined || type === \"boolean\" ) {\n\t\t\t\tif ( this.className ) {\n\t\t\t\t\t// store className if set\n\t\t\t\t\tjQuery._data( this, \"__className__\", this.className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed \"false\",\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tthis.className = this.className || value === false ? \"\" : jQuery._data( this, \"__className__\" ) || \"\";\n\t\t\t}\n\t\t});\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className = \" \" + selector + \" \",\n\t\t\ti = 0,\n\t\t\tl = this.length;\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tif ( this[i].nodeType === 1 && (\" \" + this[i].className + \" \").replace(rclass, \" \").indexOf( className ) >= 0 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t},\n\n\tval: function( value ) {\n\t\tvar ret, hooks, isFunction,\n\t\t\telem = this[0];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks && \"get\" in hooks && (ret = hooks.get( elem, \"value\" )) !== undefined ) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\treturn typeof ret === \"string\" ?\n\t\t\t\t\t// handle most common string cases\n\t\t\t\t\tret.replace(rreturn, \"\") :\n\t\t\t\t\t// handle cases where value is null/undef or number\n\t\t\t\t\tret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tisFunction = jQuery.isFunction( value );\n\n\t\treturn this.each(function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\t\t\t} else if ( jQuery.isArray( val ) ) {\n\t\t\t\tval = jQuery.map(val, function ( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t});\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !(\"set\" in hooks) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t});\n\t}\n});\n\njQuery.extend({\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\t\t\t\t// Use proper attribute retrieval(#6932, #12072)\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\t\t\t\t\telem.text;\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\" || index < 0,\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length,\n\t\t\t\t\ti = index < 0 ?\n\t\t\t\t\t\tmax :\n\t\t\t\t\t\tone ? index : 0;\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// oldIE doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t( jQuery.support.optDisabled ? !option.disabled : option.getAttribute(\"disabled\") === null ) &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\t\t\t\t\tif ( (option.selected = jQuery.inArray( jQuery(option).val(), values ) >= 0) ) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t},\n\n\tattr: function( elem, name, value ) {\n\t\tvar hooks, ret,\n\t\t\tnType = elem.nodeType;\n\n\t\t// don't get/set attributes on text, comment and attribute nodes\n\t\tif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === core_strundefined ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// All attributes are lowercase\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\tname = name.toLowerCase();\n\t\t\thooks = jQuery.attrHooks[ name ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\n\t\t\t} else if ( hooks && \"set\" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {\n\t\t\t\treturn ret;\n\n\t\t\t} else {\n\t\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t} else if ( hooks && \"get\" in hooks && (ret = hooks.get( elem, name )) !== null ) {\n\t\t\treturn ret;\n\n\t\t} else {\n\t\t\tret = jQuery.find.attr( elem, name );\n\n\t\t\t// Non-existent attributes return null, we normalize to undefined\n\t\t\treturn ret == null ?\n\t\t\t\tundefined :\n\t\t\t\tret;\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name, propName,\n\t\t\ti = 0,\n\t\t\tattrNames = value && value.match( core_rnotwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( (name = attrNames[i++]) ) {\n\t\t\t\tpropName = jQuery.propFix[ name ] || name;\n\n\t\t\t\t// Boolean attributes get special treatment (#10870)\n\t\t\t\tif ( jQuery.expr.match.bool.test( name ) ) {\n\t\t\t\t\t// Set corresponding property to false\n\t\t\t\t\tif ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {\n\t\t\t\t\t\telem[ propName ] = false;\n\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t// Also clear defaultChecked/defaultSelected (if appropriate)\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem[ jQuery.camelCase( \"default-\" + name ) ] =\n\t\t\t\t\t\t\telem[ propName ] = false;\n\t\t\t\t\t}\n\n\t\t\t\t// See #9699 for explanation of this approach (setting first, then removal)\n\t\t\t\t} else {\n\t\t\t\t\tjQuery.attr( elem, name, \"\" );\n\t\t\t\t}\n\n\t\t\t\telem.removeAttribute( getSetAttribute ? name : propName );\n\t\t\t}\n\t\t}\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !jQuery.support.radioValue && value === \"radio\" && jQuery.nodeName(elem, \"input\") ) {\n\t\t\t\t\t// Setting the type on a radio button after the value resets the value in IE6-9\n\t\t\t\t\t// Reset value to default in case type is set after value during creation\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t},\n\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks, notxml,\n\t\t\tnType = elem.nodeType;\n\n\t\t// don't get/set properties on text, comment and attribute nodes\n\t\tif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tnotxml = nType !== 1 || !jQuery.isXMLDoc( elem );\n\n\t\tif ( notxml ) {\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\treturn hooks && \"set\" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ?\n\t\t\t\tret :\n\t\t\t\t( elem[ name ] = value );\n\n\t\t} else {\n\t\t\treturn hooks && \"get\" in hooks && (ret = hooks.get( elem, name )) !== null ?\n\t\t\t\tret :\n\t\t\t\telem[ name ];\n\t\t}\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\t\t\t\t// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set\n\t\t\t\t// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\treturn tabindex ?\n\t\t\t\t\tparseInt( tabindex, 10 ) :\n\t\t\t\t\trfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?\n\t\t\t\t\t\t0 :\n\t\t\t\t\t\t-1;\n\t\t\t}\n\t\t}\n\t}\n});\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {\n\t\t\t// IE<8 needs the *property* name\n\t\t\telem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name );\n\n\t\t// Use defaultChecked and defaultSelected for oldIE\n\t\t} else {\n\t\t\telem[ jQuery.camelCase( \"default-\" + name ) ] = elem[ name ] = true;\n\t\t}\n\n\t\treturn name;\n\t}\n};\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\tvar getter = jQuery.expr.attrHandle[ name ] || jQuery.find.attr;\n\n\tjQuery.expr.attrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ?\n\t\tfunction( elem, name, isXML ) {\n\t\t\tvar fn = jQuery.expr.attrHandle[ name ],\n\t\t\t\tret = isXML ?\n\t\t\t\t\tundefined :\n\t\t\t\t\t/* jshint eqeqeq: false */\n\t\t\t\t\t(jQuery.expr.attrHandle[ name ] = undefined) !=\n\t\t\t\t\t\tgetter( elem, name, isXML ) ?\n\n\t\t\t\t\t\tname.toLowerCase() :\n\t\t\t\t\t\tnull;\n\t\t\tjQuery.expr.attrHandle[ name ] = fn;\n\t\t\treturn ret;\n\t\t} :\n\t\tfunction( elem, name, isXML ) {\n\t\t\treturn isXML ?\n\t\t\t\tundefined :\n\t\t\t\telem[ jQuery.camelCase( \"default-\" + name ) ] ?\n\t\t\t\t\tname.toLowerCase() :\n\t\t\t\t\tnull;\n\t\t};\n});\n\n// fix oldIE attroperties\nif ( !getSetInput || !getSetAttribute ) {\n\tjQuery.attrHooks.value = {\n\t\tset: function( elem, value, name ) {\n\t\t\tif ( jQuery.nodeName( elem, \"input\" ) ) {\n\t\t\t\t// Does not return so that setAttribute is also used\n\t\t\t\telem.defaultValue = value;\n\t\t\t} else {\n\t\t\t\t// Use nodeHook if defined (#1954); otherwise setAttribute is fine\n\t\t\t\treturn nodeHook && nodeHook.set( elem, value, name );\n\t\t\t}\n\t\t}\n\t};\n}\n\n// IE6/7 do not support getting/setting some attributes with get/setAttribute\nif ( !getSetAttribute ) {\n\n\t// Use this for any attribute in IE6/7\n\t// This fixes almost every IE6/7 issue\n\tnodeHook = {\n\t\tset: function( elem, value, name ) {\n\t\t\t// Set the existing or create a new attribute node\n\t\t\tvar ret = elem.getAttributeNode( name );\n\t\t\tif ( !ret ) {\n\t\t\t\telem.setAttributeNode(\n\t\t\t\t\t(ret = elem.ownerDocument.createAttribute( name ))\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tret.value = value += \"\";\n\n\t\t\t// Break association with cloned elements by also using setAttribute (#9646)\n\t\t\treturn name === \"value\" || value === elem.getAttribute( name ) ?\n\t\t\t\tvalue :\n\t\t\t\tundefined;\n\t\t}\n\t};\n\tjQuery.expr.attrHandle.id = jQuery.expr.attrHandle.name = jQuery.expr.attrHandle.coords =\n\t\t// Some attributes are constructed with empty-string values when not defined\n\t\tfunction( elem, name, isXML ) {\n\t\t\tvar ret;\n\t\t\treturn isXML ?\n\t\t\t\tundefined :\n\t\t\t\t(ret = elem.getAttributeNode( name )) && ret.value !== \"\" ?\n\t\t\t\t\tret.value :\n\t\t\t\t\tnull;\n\t\t};\n\tjQuery.valHooks.button = {\n\t\tget: function( elem, name ) {\n\t\t\tvar ret = elem.getAttributeNode( name );\n\t\t\treturn ret && ret.specified ?\n\t\t\t\tret.value :\n\t\t\t\tundefined;\n\t\t},\n\t\tset: nodeHook.set\n\t};\n\n\t// Set contenteditable to false on removals(#10429)\n\t// Setting to empty string throws an error as an invalid value\n\tjQuery.attrHooks.contenteditable = {\n\t\tset: function( elem, value, name ) {\n\t\t\tnodeHook.set( elem, value === \"\" ? false : value, name );\n\t\t}\n\t};\n\n\t// Set width and height to auto instead of 0 on empty string( Bug #8150 )\n\t// This is for removals\n\tjQuery.each([ \"width\", \"height\" ], function( i, name ) {\n\t\tjQuery.attrHooks[ name ] = {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( value === \"\" ) {\n\t\t\t\t\telem.setAttribute( name, \"auto\" );\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\n\n// Some attributes require a special call on IE\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !jQuery.support.hrefNormalized ) {\n\t// href/src property should get the full normalized URL (#10299/#12915)\n\tjQuery.each([ \"href\", \"src\" ], function( i, name ) {\n\t\tjQuery.propHooks[ name ] = {\n\t\t\tget: function( elem ) {\n\t\t\t\treturn elem.getAttribute( name, 4 );\n\t\t\t}\n\t\t};\n\t});\n}\n\nif ( !jQuery.support.style ) {\n\tjQuery.attrHooks.style = {\n\t\tget: function( elem ) {\n\t\t\t// Return undefined in the case of empty string\n\t\t\t// Note: IE uppercases css property names, but if we were to .toLowerCase()\n\t\t\t// .cssText, that would destroy case senstitivity in URL's, like in \"background\"\n\t\t\treturn elem.style.cssText || undefined;\n\t\t},\n\t\tset: function( elem, value ) {\n\t\t\treturn ( elem.style.cssText = value + \"\" );\n\t\t}\n\t};\n}\n\n// Safari mis-reports the default selected property of an option\n// Accessing the parent's selectedIndex property fixes it\nif ( !jQuery.support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\t// Make sure that it also works with optgroups, see #5701\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t};\n}\n\njQuery.each([\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n});\n\n// IE6/7 call enctype encoding\nif ( !jQuery.support.enctype ) {\n\tjQuery.propFix.enctype = \"encoding\";\n}\n\n// Radios and checkboxes getter/setter\njQuery.each([ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( jQuery.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !jQuery.support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\t// Support: Webkit\n\t\t\t// \"\" is returned instead of \"on\" if a value isn't specified\n\t\t\treturn elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n\t\t};\n\t}\n});\nvar rformElems = /^(?:input|select|textarea)$/i,\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|contextmenu)|click/,\n\trfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\t\tvar tmp, events, t, handleObjIn,\n\t\t\tspecial, eventHandle, handleObj,\n\t\t\thandlers, type, namespaces, origType,\n\t\t\telemData = jQuery._data( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !(events = elemData.events) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !(eventHandle = elemData.handle) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ?\n\t\t\t\t\tjQuery.event.dispatch.apply( eventHandle.elem, arguments ) :\n\t\t\t\t\tundefined;\n\t\t\t};\n\t\t\t// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events\n\t\t\teventHandle.elem = elem;\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( core_rnotwhite ) || [\"\"];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend({\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join(\".\")\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !(handlers = events[ type ]) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener/attachEvent if the special events handler returns false\n\t\t\t\tif ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\t\t\t\t\t// Bind the global event handler to the element\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle, false );\n\n\t\t\t\t\t} else if ( elem.attachEvent ) {\n\t\t\t\t\t\telem.attachEvent( \"on\" + type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t\t// Nullify elem to prevent memory leaks in IE\n\t\telem = null;\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\t\tvar j, handleObj, tmp,\n\t\t\torigCount, t, events,\n\t\t\tspecial, handlers, type,\n\t\t\tnamespaces, origType,\n\t\t\telemData = jQuery.hasData( elem ) && jQuery._data( elem );\n\n\t\tif ( !elemData || !(events = elemData.events) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( core_rnotwhite ) || [\"\"];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[2] && new RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdelete elemData.handle;\n\n\t\t\t// removeData also checks for emptiness and clears the expando if empty\n\t\t\t// so use it instead of delete\n\t\t\tjQuery._removeData( elem, \"events\" );\n\t\t}\n\t},\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\t\tvar handle, ontype, cur,\n\t\t\tbubbleType, special, tmp, i,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = core_hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = core_hasOwn.call( event, \"namespace\" ) ? event.namespace.split(\".\") : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf(\".\") >= 0 ) {\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split(\".\");\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join(\".\");\n\t\tevent.namespace_re = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === (elem.ownerDocument || document) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( jQuery._data( cur, \"events\" ) || {} )[ event.type ] && jQuery._data( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&\n\t\t\t\tjQuery.acceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Can't use an .isFunction() check here because IE6/7 fails that test.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\ttry {\n\t\t\t\t\t\telem[ type ]();\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// IE<9 dies on focus/blur to hidden element (#1486,#12518)\n\t\t\t\t\t\t// only reproducible on winXP IE8 native, not IE9 in IE8 mode\n\t\t\t\t\t}\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, ret, handleObj, matched, j,\n\t\t\thandlerQueue = [],\n\t\t\targs = core_slice.call( arguments ),\n\t\t\thandlers = ( jQuery._data( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[0] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or\n\t\t\t\t// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )\n\t\t\t\t\t\t\t.apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( (event.result = ret) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar sel, handleObj, matches, i,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG instance trees (#13180)\n\t\t// Avoid non-left-click bubbling in Firefox (#3861)\n\t\tif ( delegateCount && cur.nodeType && (!event.button || event.type !== \"click\") ) {\n\n\t\t\t/* jshint eqeqeq: false */\n\t\t\tfor ( ; cur != this; cur = cur.parentNode || this ) {\n\t\t\t\t/* jshint eqeqeq: true */\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== \"click\") ) {\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) >= 0 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matches[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push({ elem: cur, handlers: matches });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop, copy,\n\t\t\ttype = event.type,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = this.fixHooks[ type ];\n\n\t\tif ( !fixHook ) {\n\t\t\tthis.fixHooks[ type ] = fixHook =\n\t\t\t\trmouseEvent.test( type ) ? this.mouseHooks :\n\t\t\t\trkeyEvent.test( type ) ? this.keyHooks :\n\t\t\t\t{};\n\t\t}\n\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = new jQuery.Event( originalEvent );\n\n\t\ti = copy.length;\n\t\twhile ( i-- ) {\n\t\t\tprop = copy[ i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Fix target property (#1925)\n\t\tif ( !event.target ) {\n\t\t\tevent.target = originalEvent.srcElement || document;\n\t\t}\n\n\t\t// Support: Chrome 23+, Safari?\n\t\t// Target should not be a text node (#504, #13143)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// For mouse/key events, metaKey==false if it's undefined (#3368, #11328)\n\t\tevent.metaKey = !!event.metaKey;\n\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\tprops: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: \"char charCode key keyCode\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: \"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\t\t\tvar body, eventDoc, doc,\n\t\t\t\tbutton = original.button,\n\t\t\t\tfromElement = original.fromElement;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );\n\t\t\t}\n\n\t\t\t// Add relatedTarget, if necessary\n\t\t\tif ( !event.relatedTarget && fromElement ) {\n\t\t\t\tevent.relatedTarget = fromElement === event.target ? original.toElement : fromElement;\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don't use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tspecial: {\n\t\tload: {\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.focus();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t\t// If we error on focus to hidden element (#1486, #12518),\n\t\t\t\t\t\t// let .trigger() run the handlers\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( jQuery.nodeName( this, \"input\" ) && this.type === \"checkbox\" && this.click ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Even when returnValue equals to undefined Firefox will still show alert\n\t\t\t\tif ( event.result !== undefined ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tsimulate: function( type, elem, event, bubble ) {\n\t\t// Piggyback on a donor event to simulate a different one.\n\t\t// Fake originalEvent to avoid donor's stopPropagation, but if the\n\t\t// simulated event prevents default then we do the same on the donor.\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true,\n\t\t\t\toriginalEvent: {}\n\t\t\t}\n\t\t);\n\t\tif ( bubble ) {\n\t\t\tjQuery.event.trigger( e, null, elem );\n\t\t} else {\n\t\t\tjQuery.event.dispatch.call( elem, e );\n\t\t}\n\t\tif ( e.isDefaultPrevented() ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n};\n\njQuery.removeEvent = document.removeEventListener ?\n\tfunction( elem, type, handle ) {\n\t\tif ( elem.removeEventListener ) {\n\t\t\telem.removeEventListener( type, handle, false );\n\t\t}\n\t} :\n\tfunction( elem, type, handle ) {\n\t\tvar name = \"on\" + type;\n\n\t\tif ( elem.detachEvent ) {\n\n\t\t\t// #8545, #7054, preventing memory leaks for custom events in IE6-8\n\t\t\t// detachEvent needed property on element, by name of that event, to properly expose it to GC\n\t\t\tif ( typeof elem[ name ] === core_strundefined ) {\n\t\t\t\telem[ name ] = null;\n\t\t\t}\n\n\t\t\telem.detachEvent( name, handle );\n\t\t}\n\t};\n\njQuery.Event = function( src, props ) {\n\t// Allow instantiation without the 'new' keyword\n\tif ( !(this instanceof jQuery.Event) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||\n\t\t\tsrc.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If preventDefault exists, run it on the original event\n\t\tif ( e.preventDefault ) {\n\t\t\te.preventDefault();\n\n\t\t// Support: IE\n\t\t// Otherwise set the returnValue property of the original event to false\n\t\t} else {\n\t\t\te.returnValue = false;\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\t\t// If stopPropagation exists, run it on the original event\n\t\tif ( e.stopPropagation ) {\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\t// Support: IE\n\t\t// Set the cancelBubble property of the original event to true\n\t\te.cancelBubble = true;\n\t},\n\tstopImmediatePropagation: function() {\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\njQuery.each({\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mousenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || (related !== target && !jQuery.contains( target, related )) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n});\n\n// IE submit delegation\nif ( !jQuery.support.submitBubbles ) {\n\n\tjQuery.event.special.submit = {\n\t\tsetup: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Lazy-add a submit handler when a descendant form may potentially be submitted\n\t\t\tjQuery.event.add( this, \"click._submit keypress._submit\", function( e ) {\n\t\t\t\t// Node name check avoids a VML-related crash in IE (#9807)\n\t\t\t\tvar elem = e.target,\n\t\t\t\t\tform = jQuery.nodeName( elem, \"input\" ) || jQuery.nodeName( elem, \"button\" ) ? elem.form : undefined;\n\t\t\t\tif ( form && !jQuery._data( form, \"submitBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( form, \"submit._submit\", function( event ) {\n\t\t\t\t\t\tevent._submit_bubble = true;\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( form, \"submitBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t\t// return undefined since we don't need an event listener\n\t\t},\n\n\t\tpostDispatch: function( event ) {\n\t\t\t// If form was submitted by the user, bubble the event up the tree\n\t\t\tif ( event._submit_bubble ) {\n\t\t\t\tdelete event._submit_bubble;\n\t\t\t\tif ( this.parentNode && !event.isTrigger ) {\n\t\t\t\t\tjQuery.event.simulate( \"submit\", this.parentNode, event, true );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Remove delegated handlers; cleanData eventually reaps submit handlers attached above\n\t\t\tjQuery.event.remove( this, \"._submit\" );\n\t\t}\n\t};\n}\n\n// IE change delegation and checkbox/radio fix\nif ( !jQuery.support.changeBubbles ) {\n\n\tjQuery.event.special.change = {\n\n\t\tsetup: function() {\n\n\t\t\tif ( rformElems.test( this.nodeName ) ) {\n\t\t\t\t// IE doesn't fire change on a check/radio until blur; trigger it on click\n\t\t\t\t// after a propertychange. Eat the blur-change in special.change.handle.\n\t\t\t\t// This still fires onchange a second time for check/radio after blur.\n\t\t\t\tif ( this.type === \"checkbox\" || this.type === \"radio\" ) {\n\t\t\t\t\tjQuery.event.add( this, \"propertychange._change\", function( event ) {\n\t\t\t\t\t\tif ( event.originalEvent.propertyName === \"checked\" ) {\n\t\t\t\t\t\t\tthis._just_changed = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery.event.add( this, \"click._change\", function( event ) {\n\t\t\t\t\t\tif ( this._just_changed && !event.isTrigger ) {\n\t\t\t\t\t\t\tthis._just_changed = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Allow triggered, simulated change events (#11500)\n\t\t\t\t\t\tjQuery.event.simulate( \"change\", this, event, true );\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Delegated event; lazy-add a change handler on descendant inputs\n\t\t\tjQuery.event.add( this, \"beforeactivate._change\", function( e ) {\n\t\t\t\tvar elem = e.target;\n\n\t\t\t\tif ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, \"changeBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( elem, \"change._change\", function( event ) {\n\t\t\t\t\t\tif ( this.parentNode && !event.isSimulated && !event.isTrigger ) {\n\t\t\t\t\t\t\tjQuery.event.simulate( \"change\", this.parentNode, event, true );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( elem, \"changeBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\thandle: function( event ) {\n\t\t\tvar elem = event.target;\n\n\t\t\t// Swallow native change events from checkbox/radio, we already triggered them above\n\t\t\tif ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== \"radio\" && elem.type !== \"checkbox\") ) {\n\t\t\t\treturn event.handleObj.handler.apply( this, arguments );\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tjQuery.event.remove( this, \"._change\" );\n\n\t\t\treturn !rformElems.test( this.nodeName );\n\t\t}\n\t};\n}\n\n// Create \"bubbling\" focus and blur events\nif ( !jQuery.support.focusinBubbles ) {\n\tjQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler while someone wants focusin/focusout\n\t\tvar attaches = 0,\n\t\t\thandler = function( event ) {\n\t\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );\n\t\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tif ( attaches++ === 0 ) {\n\t\t\t\t\tdocument.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tif ( --attaches === 0 ) {\n\t\t\t\t\tdocument.removeEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\njQuery.fn.extend({\n\n\ton: function( types, selector, data, fn, /*INTERNAL*/ one ) {\n\t\tvar type, origFn;\n\n\t\t// Types can be a map of types/handlers\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-Object, selector, data )\n\t\t\tif ( typeof selector !== \"string\" ) {\n\t\t\t\t// ( types-Object, data )\n\t\t\t\tdata = data || selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.on( type, selector, data, types[ type ], one );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( data == null && fn == null ) {\n\t\t\t// ( types, fn )\n\t\t\tfn = selector;\n\t\t\tdata = selector = undefined;\n\t\t} else if ( fn == null ) {\n\t\t\tif ( typeof selector === \"string\" ) {\n\t\t\t\t// ( types, selector, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = undefined;\n\t\t\t} else {\n\t\t\t\t// ( types, data, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t} else if ( !fn ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( one === 1 ) {\n\t\t\torigFn = fn;\n\t\t\tfn = function( event ) {\n\t\t\t\t// Can use an empty set, since event contains the info\n\t\t\t\tjQuery().off( event );\n\t\t\t\treturn origFn.apply( this, arguments );\n\t\t\t};\n\t\t\t// Use same guid so caller can remove using origFn\n\t\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.add( this, types, fn, data, selector );\n\t\t});\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn this.on( types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t});\n\t},\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t});\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[0];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n});\nvar isSimple = /^.[^:#\\[\\.,]*$/,\n\trparentsprev = /^(?:parents|prev(?:Until|All))/,\n\trneedsContext = jQuery.expr.match.needsContext,\n\t// methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend({\n\tfind: function( selector ) {\n\t\tvar i,\n\t\t\tret = [],\n\t\t\tself = this,\n\t\t\tlen = self.length;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter(function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}) );\n\t\t}\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\t\treturn ret;\n\t},\n\n\thas: function( target ) {\n\t\tvar i,\n\t\t\ttargets = jQuery( target, this ),\n\t\t\tlen = targets.length;\n\n\t\treturn this.filter(function() {\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[i] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], true) );\n\t},\n\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], false) );\n\t},\n\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tret = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tfor ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {\n\t\t\t\t// Always skip document fragments\n\t\t\t\tif ( cur.nodeType < 11 && (pos ?\n\t\t\t\t\tpos.index(cur) > -1 :\n\n\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\tjQuery.find.matchesSelector(cur, selectors)) ) {\n\n\t\t\t\t\tcur = ret.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret );\n\t},\n\n\t// Determine the position of an element within\n\t// the matched set of elements\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn jQuery.inArray( this[0], jQuery( elem ) );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn jQuery.inArray(\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[0] : elem, this );\n\t},\n\n\tadd: function( selector, context ) {\n\t\tvar set = typeof selector === \"string\" ?\n\t\t\t\tjQuery( selector, context ) :\n\t\t\t\tjQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),\n\t\t\tall = jQuery.merge( this.get(), set );\n\n\t\treturn this.pushStack( jQuery.unique(all) );\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter(selector)\n\t\t);\n\t}\n});\n\nfunction sibling( cur, dir ) {\n\tdo {\n\t\tcur = cur[ dir ];\n\t} while ( cur && cur.nodeType !== 1 );\n\n\treturn cur;\n}\n\njQuery.each({\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn jQuery.dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn jQuery.sibling( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn jQuery.nodeName( elem, \"iframe\" ) ?\n\t\t\telem.contentDocument || elem.contentWindow.document :\n\t\t\tjQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar ret = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tret = jQuery.filter( selector, ret );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tret = jQuery.unique( ret );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tret = ret.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\n\njQuery.extend({\n\tfilter: function( expr, elems, not ) {\n\t\tvar elem = elems[ 0 ];\n\n\t\tif ( not ) {\n\t\t\texpr = \":not(\" + expr + \")\";\n\t\t}\n\n\t\treturn elems.length === 1 && elem.nodeType === 1 ?\n\t\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\n\t\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\t\treturn elem.nodeType === 1;\n\t\t\t}));\n\t},\n\n\tdir: function( elem, dir, until ) {\n\t\tvar matched = [],\n\t\t\tcur = elem[ dir ];\n\n\t\twhile ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {\n\t\t\tif ( cur.nodeType === 1 ) {\n\t\t\t\tmatched.push( cur );\n\t\t\t}\n\t\t\tcur = cur[dir];\n\t\t}\n\t\treturn matched;\n\t},\n\n\tsibling: function( n, elem ) {\n\t\tvar r = [];\n\n\t\tfor ( ; n; n = n.nextSibling ) {\n\t\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\t\tr.push( n );\n\t\t\t}\n\t\t}\n\n\t\treturn r;\n\t}\n});\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t/* jshint -W018 */\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t});\n\n\t}\n\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t});\n\n\t}\n\n\tif ( typeof qualifier === \"string\" ) {\n\t\tif ( isSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter( qualifier, elements, not );\n\t\t}\n\n\t\tqualifier = jQuery.filter( qualifier, elements );\n\t}\n\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not;\n\t});\n}\nfunction createSafeFragment( document ) {\n\tvar list = nodeNames.split( \"|\" ),\n\t\tsafeFrag = document.createDocumentFragment();\n\n\tif ( safeFrag.createElement ) {\n\t\twhile ( list.length ) {\n\t\t\tsafeFrag.createElement(\n\t\t\t\tlist.pop()\n\t\t\t);\n\t\t}\n\t}\n\treturn safeFrag;\n}\n\nvar nodeNames = \"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|\" +\n\t\t\"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video\",\n\trinlinejQuery = / jQuery\\d+=\"(?:null|\\d+)\"/g,\n\trnoshimcache = new RegExp(\"<(?:\" + nodeNames + \")[\\\\s/>]\", \"i\"),\n\trleadingWhitespace = /^\\s+/,\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,\n\trtagName = /<([\\w:]+)/,\n\trtbody = /\\s*$/g,\n\n\t// We have to close these tags to support XHTML (#13200)\n\twrapMap = {\n\t\toption: [ 1, \"\" ],\n\t\tlegend: [ 1, \"
\", \"
\" ],\n\t\tarea: [ 1, \"\", \"\" ],\n\t\tparam: [ 1, \"\", \"\" ],\n\t\tthead: [ 1, \"\", \"
\" ],\n\t\ttr: [ 2, \"\", \"
\" ],\n\t\tcol: [ 2, \"\", \"
\" ],\n\t\ttd: [ 3, \"\", \"
\" ],\n\n\t\t// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,\n\t\t// unless wrapped in a div with non-breaking characters in front of it.\n\t\t_default: jQuery.support.htmlSerialize ? [ 0, \"\", \"\" ] : [ 1, \"X
\", \"
\" ]\n\t},\n\tsafeFragment = createSafeFragment( document ),\n\tfragmentDiv = safeFragment.appendChild( document.createElement(\"div\") );\n\nwrapMap.optgroup = wrapMap.option;\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\njQuery.fn.extend({\n\ttext: function( value ) {\n\t\treturn jQuery.access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t});\n\t},\n\n\tprepend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t});\n\t},\n\n\tbefore: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t});\n\t},\n\n\tafter: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t});\n\t},\n\n\t// keepData is for internal use only--do not document\n\tremove: function( selector, keepData ) {\n\t\tvar elem,\n\t\t\telems = selector ? jQuery.filter( selector, this ) : this,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\n\t\t\tif ( !keepData && elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem ) );\n\t\t\t}\n\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\tif ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\t\tsetGlobalEval( getAll( elem, \"script\" ) );\n\t\t\t\t}\n\t\t\t\telem.parentNode.removeChild( elem );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = this[i]) != null; i++ ) {\n\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t}\n\n\t\t\t// Remove any remaining nodes\n\t\t\twhile ( elem.firstChild ) {\n\t\t\t\telem.removeChild( elem.firstChild );\n\t\t\t}\n\n\t\t\t// If this is a select, ensure that it displays empty (#12336)\n\t\t\t// Support: IE<9\n\t\t\tif ( elem.options && jQuery.nodeName( elem, \"select\" ) ) {\n\t\t\t\telem.options.length = 0;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function () {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t});\n\t},\n\n\thtml: function( value ) {\n\t\treturn jQuery.access( this, function( value ) {\n\t\t\tvar elem = this[0] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined ) {\n\t\t\t\treturn elem.nodeType === 1 ?\n\t\t\t\t\telem.innerHTML.replace( rinlinejQuery, \"\" ) :\n\t\t\t\t\tundefined;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) &&\n\t\t\t\t( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [\"\", \"\"] )[1].toLowerCase() ] ) {\n\n\t\t\t\tvalue = value.replace( rxhtmlTag, \"<$1>\" );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor (; i < l; i++ ) {\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\telem = this[i] || {};\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar\n\t\t\t// Snapshot the DOM in case .domManip sweeps something relevant into its fragment\n\t\t\targs = jQuery.map( this, function( elem ) {\n\t\t\t\treturn [ elem.nextSibling, elem.parentNode ];\n\t\t\t}),\n\t\t\ti = 0;\n\n\t\t// Make the changes, replacing each context element with the new content\n\t\tthis.domManip( arguments, function( elem ) {\n\t\t\tvar next = args[ i++ ],\n\t\t\t\tparent = args[ i++ ];\n\n\t\t\tif ( parent ) {\n\t\t\t\t// Don't use the snapshot next if it has moved (#13810)\n\t\t\t\tif ( next && next.parentNode !== parent ) {\n\t\t\t\t\tnext = this.nextSibling;\n\t\t\t\t}\n\t\t\t\tjQuery( this ).remove();\n\t\t\t\tparent.insertBefore( elem, next );\n\t\t\t}\n\t\t// Allow new content to include elements from the context set\n\t\t}, true );\n\n\t\t// Force removal if there was no new content (e.g., from empty arguments)\n\t\treturn i ? this : this.remove();\n\t},\n\n\tdetach: function( selector ) {\n\t\treturn this.remove( selector, true );\n\t},\n\n\tdomManip: function( args, callback, allowIntersection ) {\n\n\t\t// Flatten any nested arrays\n\t\targs = core_concat.apply( [], args );\n\n\t\tvar first, node, hasScripts,\n\t\t\tscripts, doc, fragment,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tset = this,\n\t\t\tiNoClone = l - 1,\n\t\t\tvalue = args[0],\n\t\t\tisFunction = jQuery.isFunction( value );\n\n\t\t// We can't cloneNode fragments that contain checked, in WebKit\n\t\tif ( isFunction || !( l <= 1 || typeof value !== \"string\" || jQuery.support.checkClone || !rchecked.test( value ) ) ) {\n\t\t\treturn this.each(function( index ) {\n\t\t\t\tvar self = set.eq( index );\n\t\t\t\tif ( isFunction ) {\n\t\t\t\t\targs[0] = value.call( this, index, self.html() );\n\t\t\t\t}\n\t\t\t\tself.domManip( args, callback, allowIntersection );\n\t\t\t});\n\t\t}\n\n\t\tif ( l ) {\n\t\t\tfragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, !allowIntersection && this );\n\t\t\tfirst = fragment.firstChild;\n\n\t\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\t\tfragment = first;\n\t\t\t}\n\n\t\t\tif ( first ) {\n\t\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\t\thasScripts = scripts.length;\n\n\t\t\t\t// Use the original fragment for the last item instead of the first because it can end up\n\t\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\tnode = fragment;\n\n\t\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback.call( this[i], node, i );\n\t\t\t\t}\n\n\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t\t// Reenable scripts\n\t\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t\t!jQuery._data( node, \"globalEval\" ) && jQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\t\tif ( node.src ) {\n\t\t\t\t\t\t\t\t// Hope ajax is available...\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.globalEval( ( node.text || node.textContent || node.innerHTML || \"\" ).replace( rcleanScript, \"\" ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fix #11809: Avoid leaking memory\n\t\t\t\tfragment = first = null;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n});\n\n// Support: IE<8\n// Manipulating tables requires a tbody\nfunction manipulationTarget( elem, content ) {\n\treturn jQuery.nodeName( elem, \"table\" ) &&\n\t\tjQuery.nodeName( content.nodeType === 1 ? content : content.firstChild, \"tr\" ) ?\n\n\t\telem.getElementsByTagName(\"tbody\")[0] ||\n\t\t\telem.appendChild( elem.ownerDocument.createElement(\"tbody\") ) :\n\t\telem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = (jQuery.find.attr( elem, \"type\" ) !== null) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\tif ( match ) {\n\t\telem.type = match[1];\n\t} else {\n\t\telem.removeAttribute(\"type\");\n\t}\n\treturn elem;\n}\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar elem,\n\t\ti = 0;\n\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\tjQuery._data( elem, \"globalEval\", !refElements || jQuery._data( refElements[i], \"globalEval\" ) );\n\t}\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\n\tif ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {\n\t\treturn;\n\t}\n\n\tvar type, i, l,\n\t\toldData = jQuery._data( src ),\n\t\tcurData = jQuery._data( dest, oldData ),\n\t\tevents = oldData.events;\n\n\tif ( events ) {\n\t\tdelete curData.handle;\n\t\tcurData.events = {};\n\n\t\tfor ( type in events ) {\n\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t}\n\t\t}\n\t}\n\n\t// make the cloned public data object a copy from the original\n\tif ( curData.data ) {\n\t\tcurData.data = jQuery.extend( {}, curData.data );\n\t}\n}\n\nfunction fixCloneNodeIssues( src, dest ) {\n\tvar nodeName, e, data;\n\n\t// We do not need to do anything for non-Elements\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\tnodeName = dest.nodeName.toLowerCase();\n\n\t// IE6-8 copies events bound via attachEvent when using cloneNode.\n\tif ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) {\n\t\tdata = jQuery._data( dest );\n\n\t\tfor ( e in data.events ) {\n\t\t\tjQuery.removeEvent( dest, e, data.handle );\n\t\t}\n\n\t\t// Event data gets referenced instead of copied if the expando gets copied too\n\t\tdest.removeAttribute( jQuery.expando );\n\t}\n\n\t// IE blanks contents when cloning scripts, and tries to evaluate newly-set text\n\tif ( nodeName === \"script\" && dest.text !== src.text ) {\n\t\tdisableScript( dest ).text = src.text;\n\t\trestoreScript( dest );\n\n\t// IE6-10 improperly clones children of object elements using classid.\n\t// IE10 throws NoModificationAllowedError if parent is null, #12132.\n\t} else if ( nodeName === \"object\" ) {\n\t\tif ( dest.parentNode ) {\n\t\t\tdest.outerHTML = src.outerHTML;\n\t\t}\n\n\t\t// This path appears unavoidable for IE9. When cloning an object\n\t\t// element in IE9, the outerHTML strategy above is not sufficient.\n\t\t// If the src has innerHTML and the destination does not,\n\t\t// copy the src.innerHTML into the dest.innerHTML. #10324\n\t\tif ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) {\n\t\t\tdest.innerHTML = src.innerHTML;\n\t\t}\n\n\t} else if ( nodeName === \"input\" && manipulation_rcheckableType.test( src.type ) ) {\n\t\t// IE6-8 fails to persist the checked state of a cloned checkbox\n\t\t// or radio button. Worse, IE6-7 fail to give the cloned element\n\t\t// a checked appearance if the defaultChecked value isn't also set\n\n\t\tdest.defaultChecked = dest.checked = src.checked;\n\n\t\t// IE6-7 get confused and end up setting the value of a cloned\n\t\t// checkbox/radio button to an empty string instead of \"on\"\n\t\tif ( dest.value !== src.value ) {\n\t\t\tdest.value = src.value;\n\t\t}\n\n\t// IE6-8 fails to return the selected option to the default selected\n\t// state when cloning options\n\t} else if ( nodeName === \"option\" ) {\n\t\tdest.defaultSelected = dest.selected = src.defaultSelected;\n\n\t// IE6-8 fails to set the defaultValue to the correct value when\n\t// cloning other types of input fields\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\njQuery.each({\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\ti = 0,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone(true);\n\t\t\tjQuery( insert[i] )[ original ]( elems );\n\n\t\t\t// Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()\n\t\t\tcore_push.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\n\nfunction getAll( context, tag ) {\n\tvar elems, elem,\n\t\ti = 0,\n\t\tfound = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || \"*\" ) :\n\t\t\ttypeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || \"*\" ) :\n\t\t\tundefined;\n\n\tif ( !found ) {\n\t\tfor ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( !tag || jQuery.nodeName( elem, tag ) ) {\n\t\t\t\tfound.push( elem );\n\t\t\t} else {\n\t\t\t\tjQuery.merge( found, getAll( elem, tag ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\n\t\tjQuery.merge( [ context ], found ) :\n\t\tfound;\n}\n\n// Used in buildFragment, fixes the defaultChecked property\nfunction fixDefaultChecked( elem ) {\n\tif ( manipulation_rcheckableType.test( elem.type ) ) {\n\t\telem.defaultChecked = elem.checked;\n\t}\n}\n\njQuery.extend({\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar destElements, node, clone, i, srcElements,\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\tif ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( \"<\" + elem.nodeName + \">\" ) ) {\n\t\t\tclone = elem.cloneNode( true );\n\n\t\t// IE<=8 does not properly clone detached, unknown element nodes\n\t\t} else {\n\t\t\tfragmentDiv.innerHTML = elem.outerHTML;\n\t\t\tfragmentDiv.removeChild( clone = fragmentDiv.firstChild );\n\t\t}\n\n\t\tif ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&\n\t\t\t\t(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\t// Fix all IE cloning issues\n\t\t\tfor ( i = 0; (node = srcElements[i]) != null; ++i ) {\n\t\t\t\t// Ensure that the destination node is not null; Fixes #9587\n\t\t\t\tif ( destElements[i] ) {\n\t\t\t\t\tfixCloneNodeIssues( node, destElements[i] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0; (node = srcElements[i]) != null; i++ ) {\n\t\t\t\t\tcloneCopyEvent( node, destElements[i] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\tdestElements = srcElements = node = null;\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tbuildFragment: function( elems, context, scripts, selection ) {\n\t\tvar j, elem, contains,\n\t\t\ttmp, tag, tbody, wrap,\n\t\t\tl = elems.length,\n\n\t\t\t// Ensure a safe fragment\n\t\t\tsafe = createSafeFragment( context ),\n\n\t\t\tnodes = [],\n\t\t\ti = 0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\telem = elems[ i ];\n\n\t\t\tif ( elem || elem === 0 ) {\n\n\t\t\t\t// Add nodes directly\n\t\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\t\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t\t// Convert non-html into a text node\n\t\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t\t// Convert html into DOM nodes\n\t\t\t\t} else {\n\t\t\t\t\ttmp = tmp || safe.appendChild( context.createElement(\"div\") );\n\n\t\t\t\t\t// Deserialize a standard representation\n\t\t\t\t\ttag = ( rtagName.exec( elem ) || [\"\", \"\"] )[1].toLowerCase();\n\t\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\n\t\t\t\t\ttmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, \"<$1>\" ) + wrap[2];\n\n\t\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\t\tj = wrap[0];\n\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Manually add leading whitespace removed by IE\n\t\t\t\t\tif ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {\n\t\t\t\t\t\tnodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove IE's autoinserted from table fragments\n\t\t\t\t\tif ( !jQuery.support.tbody ) {\n\n\t\t\t\t\t\t// String was a , *may* have spurious \n\t\t\t\t\t\telem = tag === \"table\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\ttmp.firstChild :\n\n\t\t\t\t\t\t\t// String was a bare or \n\t\t\t\t\t\t\twrap[1] === \"
\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\t\ttmp :\n\t\t\t\t\t\t\t\t0;\n\n\t\t\t\t\t\tj = elem && elem.childNodes.length;\n\t\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\t\tif ( jQuery.nodeName( (tbody = elem.childNodes[j]), \"tbody\" ) && !tbody.childNodes.length ) {\n\t\t\t\t\t\t\t\telem.removeChild( tbody );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t\t// Fix #12392 for WebKit and IE > 9\n\t\t\t\t\ttmp.textContent = \"\";\n\n\t\t\t\t\t// Fix #12392 for oldIE\n\t\t\t\t\twhile ( tmp.firstChild ) {\n\t\t\t\t\t\ttmp.removeChild( tmp.firstChild );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remember the top-level container for proper cleanup\n\t\t\t\t\ttmp = safe.lastChild;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Fix #11356: Clear elements from fragment\n\t\tif ( tmp ) {\n\t\t\tsafe.removeChild( tmp );\n\t\t}\n\n\t\t// Reset defaultChecked for any radios and checkboxes\n\t\t// about to be appended to the DOM in IE 6/7 (#8060)\n\t\tif ( !jQuery.support.appendChecked ) {\n\t\t\tjQuery.grep( getAll( nodes, \"input\" ), fixDefaultChecked );\n\t\t}\n\n\t\ti = 0;\n\t\twhile ( (elem = nodes[ i++ ]) ) {\n\n\t\t\t// #4087 - If origin and destination elements are the same, and this is\n\t\t\t// that element, do not do anything\n\t\t\tif ( selection && jQuery.inArray( elem, selection ) !== -1 ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t\t// Append to fragment\n\t\t\ttmp = getAll( safe.appendChild( elem ), \"script\" );\n\n\t\t\t// Preserve script evaluation history\n\t\t\tif ( contains ) {\n\t\t\t\tsetGlobalEval( tmp );\n\t\t\t}\n\n\t\t\t// Capture executables\n\t\t\tif ( scripts ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (elem = tmp[ j++ ]) ) {\n\t\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\t\tscripts.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttmp = null;\n\n\t\treturn safe;\n\t},\n\n\tcleanData: function( elems, /* internal */ acceptData ) {\n\t\tvar elem, type, id, data,\n\t\t\ti = 0,\n\t\t\tinternalKey = jQuery.expando,\n\t\t\tcache = jQuery.cache,\n\t\t\tdeleteExpando = jQuery.support.deleteExpando,\n\t\t\tspecial = jQuery.event.special;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\n\t\t\tif ( acceptData || jQuery.acceptData( elem ) ) {\n\n\t\t\t\tid = elem[ internalKey ];\n\t\t\t\tdata = id && cache[ id ];\n\n\t\t\t\tif ( data ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove cache only if it was not already removed by jQuery.event.remove\n\t\t\t\t\tif ( cache[ id ] ) {\n\n\t\t\t\t\t\tdelete cache[ id ];\n\n\t\t\t\t\t\t// IE does not allow us to delete expando properties from nodes,\n\t\t\t\t\t\t// nor does it have a removeAttribute function on Document nodes;\n\t\t\t\t\t\t// we must handle all of these cases\n\t\t\t\t\t\tif ( deleteExpando ) {\n\t\t\t\t\t\t\tdelete elem[ internalKey ];\n\n\t\t\t\t\t\t} else if ( typeof elem.removeAttribute !== core_strundefined ) {\n\t\t\t\t\t\t\telem.removeAttribute( internalKey );\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telem[ internalKey ] = null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcore_deletedIds.push( id );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t_evalUrl: function( url ) {\n\t\treturn jQuery.ajax({\n\t\t\turl: url,\n\t\t\ttype: \"GET\",\n\t\t\tdataType: \"script\",\n\t\t\tasync: false,\n\t\t\tglobal: false,\n\t\t\t\"throws\": true\n\t\t});\n\t}\n});\njQuery.fn.extend({\n\twrapAll: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each(function(i) {\n\t\t\t\tjQuery(this).wrapAll( html.call(this, i) );\n\t\t\t});\n\t\t}\n\n\t\tif ( this[0] ) {\n\t\t\t// The elements to wrap the target around\n\t\t\tvar wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);\n\n\t\t\tif ( this[0].parentNode ) {\n\t\t\t\twrap.insertBefore( this[0] );\n\t\t\t}\n\n\t\t\twrap.map(function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstChild && elem.firstChild.nodeType === 1 ) {\n\t\t\t\t\telem = elem.firstChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t}).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each(function(i) {\n\t\t\t\tjQuery(this).wrapInner( html.call(this, i) );\n\t\t\t});\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t});\n\t},\n\n\twrap: function( html ) {\n\t\tvar isFunction = jQuery.isFunction( html );\n\n\t\treturn this.each(function(i) {\n\t\t\tjQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );\n\t\t});\n\t},\n\n\tunwrap: function() {\n\t\treturn this.parent().each(function() {\n\t\t\tif ( !jQuery.nodeName( this, \"body\" ) ) {\n\t\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t\t}\n\t\t}).end();\n\t}\n});\nvar iframe, getStyles, curCSS,\n\tralpha = /alpha\\([^)]*\\)/i,\n\tropacity = /opacity\\s*=\\s*([^)]*)/,\n\trposition = /^(top|right|bottom|left)$/,\n\t// swappable if display is none or starts with table except \"table\", \"table-cell\", or \"table-caption\"\n\t// see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trmargin = /^margin/,\n\trnumsplit = new RegExp( \"^(\" + core_pnum + \")(.*)$\", \"i\" ),\n\trnumnonpx = new RegExp( \"^(\" + core_pnum + \")(?!px)[a-z%]+$\", \"i\" ),\n\trrelNum = new RegExp( \"^([+-])=(\" + core_pnum + \")\", \"i\" ),\n\telemdisplay = { BODY: \"block\" },\n\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: 0,\n\t\tfontWeight: 400\n\t},\n\n\tcssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ],\n\tcssPrefixes = [ \"Webkit\", \"O\", \"Moz\", \"ms\" ];\n\n// return a css property mapped to a potentially vendor prefixed property\nfunction vendorPropName( style, name ) {\n\n\t// shortcut for names that are not vendor prefixed\n\tif ( name in style ) {\n\t\treturn name;\n\t}\n\n\t// check for vendor prefixed names\n\tvar capName = name.charAt(0).toUpperCase() + name.slice(1),\n\t\torigName = name,\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in style ) {\n\t\t\treturn name;\n\t\t}\n\t}\n\n\treturn origName;\n}\n\nfunction isHidden( elem, el ) {\n\t// isHidden might be called from jQuery#filter function;\n\t// in that case, element will be second argument\n\telem = el || elem;\n\treturn jQuery.css( elem, \"display\" ) === \"none\" || !jQuery.contains( elem.ownerDocument, elem );\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem, hidden,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tvalues[ index ] = jQuery._data( elem, \"olddisplay\" );\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\t\t\t// Reset the inline display of this element to learn if it is\n\t\t\t// being hidden by cascaded rules or not\n\t\t\tif ( !values[ index ] && display === \"none\" ) {\n\t\t\t\telem.style.display = \"\";\n\t\t\t}\n\n\t\t\t// Set elements which have been overridden with display: none\n\t\t\t// in a stylesheet to whatever the default browser style is\n\t\t\t// for such an element\n\t\t\tif ( elem.style.display === \"\" && isHidden( elem ) ) {\n\t\t\t\tvalues[ index ] = jQuery._data( elem, \"olddisplay\", css_defaultDisplay(elem.nodeName) );\n\t\t\t}\n\t\t} else {\n\n\t\t\tif ( !values[ index ] ) {\n\t\t\t\thidden = isHidden( elem );\n\n\t\t\t\tif ( display && display !== \"none\" || !hidden ) {\n\t\t\t\t\tjQuery._data( elem, \"olddisplay\", hidden ? display : jQuery.css( elem, \"display\" ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of most of the elements in a second loop\n\t// to avoid the constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( !show || elem.style.display === \"none\" || elem.style.display === \"\" ) {\n\t\t\telem.style.display = show ? values[ index ] || \"\" : \"none\";\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend({\n\tcss: function( name, value ) {\n\t\treturn jQuery.access( this, function( elem, name, value ) {\n\t\t\tvar len, styles,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( jQuery.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t},\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tif ( isHidden( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t});\n\t}\n});\n\njQuery.extend({\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"fontWeight\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {\n\t\t// normalize float css property\n\t\t\"float\": jQuery.support.cssFloat ? \"cssFloat\" : \"styleFloat\"\n\t},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = jQuery.camelCase( name ),\n\t\t\tstyle = elem.style;\n\n\t\tname = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );\n\n\t\t// gets hook for the prefixed version\n\t\t// followed by the unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// convert relative number strings (+= or -=) to relative numbers. #7345\n\t\t\tif ( type === \"string\" && (ret = rrelNum.exec( value )) ) {\n\t\t\t\tvalue = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that NaN and null values aren't set. See: #7116\n\t\t\tif ( value == null || type === \"number\" && isNaN( value ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add 'px' to the (except for certain CSS properties)\n\t\t\tif ( type === \"number\" && !jQuery.cssNumber[ origName ] ) {\n\t\t\t\tvalue += \"px\";\n\t\t\t}\n\n\t\t\t// Fixes #8908, it can be done more correctly by specifing setters in cssHooks,\n\t\t\t// but it would mean to define eight (for every problematic property) identical functions\n\t\t\tif ( !jQuery.support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !(\"set\" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {\n\n\t\t\t\t// Wrapped to prevent IE from throwing errors when 'invalid' values are provided\n\t\t\t\t// Fixes bug #5509\n\t\t\t\ttry {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\n\t\t} else {\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar num, val, hooks,\n\t\t\torigName = jQuery.camelCase( name );\n\n\t\t// Make sure that we're working with the right name\n\t\tname = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );\n\n\t\t// gets hook for the prefixed version\n\t\t// followed by the unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t//convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Return, converting to number if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || jQuery.isNumeric( num ) ? num || 0 : val;\n\t\t}\n\t\treturn val;\n\t}\n});\n\n// NOTE: we've included the \"window\" in window.getComputedStyle\n// because jsdom on node.js will break without it.\nif ( window.getComputedStyle ) {\n\tgetStyles = function( elem ) {\n\t\treturn window.getComputedStyle( elem, null );\n\t};\n\n\tcurCSS = function( elem, name, _computed ) {\n\t\tvar width, minWidth, maxWidth,\n\t\t\tcomputed = _computed || getStyles( elem ),\n\n\t\t\t// getPropertyValue is only needed for .css('filter') in IE9, see #12537\n\t\t\tret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined,\n\t\t\tstyle = elem.style;\n\n\t\tif ( computed ) {\n\n\t\t\tif ( ret === \"\" && !jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\tret = jQuery.style( elem, name );\n\t\t\t}\n\n\t\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t\t// Chrome < 17 and Safari 5.0 uses \"computed value\" instead of \"used value\" for margin-right\n\t\t\t// Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels\n\t\t\t// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values\n\t\t\tif ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {\n\n\t\t\t\t// Remember the original values\n\t\t\t\twidth = style.width;\n\t\t\t\tminWidth = style.minWidth;\n\t\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t\t// Put in the new values to get a computed value out\n\t\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\t\tret = computed.width;\n\n\t\t\t\t// Revert the changed values\n\t\t\t\tstyle.width = width;\n\t\t\t\tstyle.minWidth = minWidth;\n\t\t\t\tstyle.maxWidth = maxWidth;\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t};\n} else if ( document.documentElement.currentStyle ) {\n\tgetStyles = function( elem ) {\n\t\treturn elem.currentStyle;\n\t};\n\n\tcurCSS = function( elem, name, _computed ) {\n\t\tvar left, rs, rsLeft,\n\t\t\tcomputed = _computed || getStyles( elem ),\n\t\t\tret = computed ? computed[ name ] : undefined,\n\t\t\tstyle = elem.style;\n\n\t\t// Avoid setting ret to empty string here\n\t\t// so we don't default to auto\n\t\tif ( ret == null && style && style[ name ] ) {\n\t\t\tret = style[ name ];\n\t\t}\n\n\t\t// From the awesome hack by Dean Edwards\n\t\t// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n\n\t\t// If we're not dealing with a regular pixel number\n\t\t// but a number that has a weird ending, we need to convert it to pixels\n\t\t// but not position css attributes, as those are proportional to the parent element instead\n\t\t// and we can't measure the parent instead because it might trigger a \"stacking dolls\" problem\n\t\tif ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\tleft = style.left;\n\t\t\trs = elem.runtimeStyle;\n\t\t\trsLeft = rs && rs.left;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tif ( rsLeft ) {\n\t\t\t\trs.left = elem.currentStyle.left;\n\t\t\t}\n\t\t\tstyle.left = name === \"fontSize\" ? \"1em\" : ret;\n\t\t\tret = style.pixelLeft + \"px\";\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.left = left;\n\t\t\tif ( rsLeft ) {\n\t\t\t\trs.left = rsLeft;\n\t\t\t}\n\t\t}\n\n\t\treturn ret === \"\" ? \"auto\" : ret;\n\t};\n}\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\tvar matches = rnumsplit.exec( value );\n\treturn matches ?\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {\n\tvar i = extra === ( isBorderBox ? \"border\" : \"content\" ) ?\n\t\t// If we already have the right measurement, avoid augmentation\n\t\t4 :\n\t\t// Otherwise initialize for horizontal or vertical properties\n\t\tname === \"width\" ? 1 : 0,\n\n\t\tval = 0;\n\n\tfor ( ; i < 4; i += 2 ) {\n\t\t// both box models exclude margin, so add it if we want it\n\t\tif ( extra === \"margin\" ) {\n\t\t\tval += jQuery.css( elem, extra + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\tif ( isBorderBox ) {\n\t\t\t// border-box includes padding, so remove it if we want content\n\t\t\tif ( extra === \"content\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// at this point, extra isn't border nor margin, so remove border\n\t\t\tif ( extra !== \"margin\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t} else {\n\t\t\t// at this point, extra isn't content, so add padding\n\t\t\tval += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// at this point, extra isn't content nor padding, so add border\n\t\t\tif ( extra !== \"padding\" ) {\n\t\t\t\tval += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn val;\n}\n\nfunction getWidthOrHeight( elem, name, extra ) {\n\n\t// Start with offset property, which is equivalent to the border-box value\n\tvar valueIsBorderBox = true,\n\t\tval = name === \"width\" ? elem.offsetWidth : elem.offsetHeight,\n\t\tstyles = getStyles( elem ),\n\t\tisBorderBox = jQuery.support.boxSizing && jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t// some non-html elements return undefined for offsetWidth, so check for null/undefined\n\t// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285\n\t// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668\n\tif ( val <= 0 || val == null ) {\n\t\t// Fall back to computed then uncomputed css if necessary\n\t\tval = curCSS( elem, name, styles );\n\t\tif ( val < 0 || val == null ) {\n\t\t\tval = elem.style[ name ];\n\t\t}\n\n\t\t// Computed unit is not pixels. Stop here and return.\n\t\tif ( rnumnonpx.test(val) ) {\n\t\t\treturn val;\n\t\t}\n\n\t\t// we need the check for style in case a browser which returns unreliable values\n\t\t// for getComputedStyle silently falls back to the reliable elem.style\n\t\tvalueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] );\n\n\t\t// Normalize \"\", auto, and prepare for extra\n\t\tval = parseFloat( val ) || 0;\n\t}\n\n\t// use the active box-sizing model to add/subtract irrelevant styles\n\treturn ( val +\n\t\taugmentWidthOrHeight(\n\t\t\telem,\n\t\t\tname,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles\n\t\t)\n\t) + \"px\";\n}\n\n// Try to determine the default display value of an element\nfunction css_defaultDisplay( nodeName ) {\n\tvar doc = document,\n\t\tdisplay = elemdisplay[ nodeName ];\n\n\tif ( !display ) {\n\t\tdisplay = actualDisplay( nodeName, doc );\n\n\t\t// If the simple way fails, read from inside an iframe\n\t\tif ( display === \"none\" || !display ) {\n\t\t\t// Use the already-created iframe if possible\n\t\t\tiframe = ( iframe ||\n\t\t\t\tjQuery(\"') !== -1;\n\t};\n\n\tvar createFragmentedLevel = function (fragments) {\n\t\treturn {\n\t\t\ttype: 'fragmented',\n\t\t\tfragments: fragments,\n\t\t\tcontent: '',\n\t\t\tbookmark: null,\n\t\t\tbeforeBookmark: null\n\t\t};\n\t};\n\n\tvar createCompleteLevel = function (content) {\n\t\treturn {\n\t\t\ttype: 'complete',\n\t\t\tfragments: null,\n\t\t\tcontent: content,\n\t\t\tbookmark: null,\n\t\t\tbeforeBookmark: null\n\t\t};\n\t};\n\n\tvar createFromEditor = function (editor) {\n\t\tvar fragments, content, trimmedFragments;\n\n\t\tfragments = Fragments.read(editor.getBody());\n\t\ttrimmedFragments = Arr.map(fragments, function (html) {\n\t\t\treturn editor.serializer.trimContent(html);\n\t\t});\n\t\tcontent = trimmedFragments.join('');\n\n\t\treturn hasIframes(content) ? createFragmentedLevel(trimmedFragments) : createCompleteLevel(content);\n\t};\n\n\tvar applyToEditor = function (editor, level, before) {\n\t\tif (level.type === 'fragmented') {\n\t\t\tFragments.write(level.fragments, editor.getBody());\n\t\t} else {\n\t\t\teditor.setContent(level.content, {format: 'raw'});\n\t\t}\n\n\t\teditor.selection.moveToBookmark(before ? level.beforeBookmark : level.bookmark);\n\t};\n\n\tvar getLevelContent = function (level) {\n\t\treturn level.type === 'fragmented' ? level.fragments.join('') : level.content;\n\t};\n\n\tvar isEq = function (level1, level2) {\n\t\treturn getLevelContent(level1) === getLevelContent(level2);\n\t};\n\n\treturn {\n\t\tcreateFragmentedLevel: createFragmentedLevel,\n\t\tcreateCompleteLevel: createCompleteLevel,\n\t\tcreateFromEditor: createFromEditor,\n\t\tapplyToEditor: applyToEditor,\n\t\tisEq: isEq\n\t};\n});\n\n// Included from: js/tinymce/classes/UndoManager.js\n\n/**\n * UndoManager.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class handles the undo/redo history levels for the editor. Since the built-in undo/redo has major drawbacks a custom one was needed.\n *\n * @class tinymce.UndoManager\n */\ndefine(\"tinymce/UndoManager\", [\n\t\"tinymce/util/VK\",\n\t\"tinymce/util/Tools\",\n\t\"tinymce/undo/Levels\"\n], function(VK, Tools, Levels) {\n\treturn function(editor) {\n\t\tvar self = this, index = 0, data = [], beforeBookmark, isFirstTypedCharacter, locks = 0;\n\n\t\tfunction setDirty(state) {\n\t\t\teditor.setDirty(state);\n\t\t}\n\n\t\tfunction addNonTypingUndoLevel(e) {\n\t\t\tself.typing = false;\n\t\t\tself.add({}, e);\n\t\t}\n\n\t\tfunction endTyping() {\n\t\t\tif (self.typing) {\n\t\t\t\tself.typing = false;\n\t\t\t\tself.add();\n\t\t\t}\n\t\t}\n\n\t\t// Add initial undo level when the editor is initialized\n\t\teditor.on('init', function() {\n\t\t\tself.add();\n\t\t});\n\n\t\t// Get position before an execCommand is processed\n\t\teditor.on('BeforeExecCommand', function(e) {\n\t\t\tvar cmd = e.command;\n\n\t\t\tif (cmd !== 'Undo' && cmd !== 'Redo' && cmd !== 'mceRepaint') {\n\t\t\t\tendTyping();\n\t\t\t\tself.beforeChange();\n\t\t\t}\n\t\t});\n\n\t\t// Add undo level after an execCommand call was made\n\t\teditor.on('ExecCommand', function(e) {\n\t\t\tvar cmd = e.command;\n\n\t\t\tif (cmd !== 'Undo' && cmd !== 'Redo' && cmd !== 'mceRepaint') {\n\t\t\t\taddNonTypingUndoLevel(e);\n\t\t\t}\n\t\t});\n\n\t\teditor.on('ObjectResizeStart Cut', function() {\n\t\t\tself.beforeChange();\n\t\t});\n\n\t\teditor.on('SaveContent ObjectResized blur', addNonTypingUndoLevel);\n\t\teditor.on('DragEnd', addNonTypingUndoLevel);\n\n\t\teditor.on('KeyUp', function(e) {\n\t\t\tvar keyCode = e.keyCode;\n\n\t\t\t// If key is prevented then don't add undo level\n\t\t\t// This would happen on keyboard shortcuts for example\n\t\t\tif (e.isDefaultPrevented()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ((keyCode >= 33 && keyCode <= 36) || (keyCode >= 37 && keyCode <= 40) || keyCode === 45 || e.ctrlKey) {\n\t\t\t\taddNonTypingUndoLevel();\n\t\t\t\teditor.nodeChanged();\n\t\t\t}\n\n\t\t\tif (keyCode === 46 || keyCode === 8) {\n\t\t\t\teditor.nodeChanged();\n\t\t\t}\n\n\t\t\t// Fire a TypingUndo event on the first character entered\n\t\t\tif (isFirstTypedCharacter && self.typing) {\n\t\t\t\t// Make it dirty if the content was changed after typing the first character\n\t\t\t\tif (!editor.isDirty()) {\n\t\t\t\t\tsetDirty(data[0] && !Levels.isEq(Levels.createFromEditor(editor), data[0]));\n\n\t\t\t\t\t// Fire initial change event\n\t\t\t\t\tif (editor.isDirty()) {\n\t\t\t\t\t\teditor.fire('change', {level: data[0], lastLevel: null});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\teditor.fire('TypingUndo');\n\t\t\t\tisFirstTypedCharacter = false;\n\t\t\t\teditor.nodeChanged();\n\t\t\t}\n\t\t});\n\n\t\teditor.on('KeyDown', function(e) {\n\t\t\tvar keyCode = e.keyCode;\n\n\t\t\t// If key is prevented then don't add undo level\n\t\t\t// This would happen on keyboard shortcuts for example\n\t\t\tif (e.isDefaultPrevented()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Is character position keys left,right,up,down,home,end,pgdown,pgup,enter\n\t\t\tif ((keyCode >= 33 && keyCode <= 36) || (keyCode >= 37 && keyCode <= 40) || keyCode === 45) {\n\t\t\t\tif (self.typing) {\n\t\t\t\t\taddNonTypingUndoLevel(e);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If key isn't Ctrl+Alt/AltGr\n\t\t\tvar modKey = (e.ctrlKey && !e.altKey) || e.metaKey;\n\t\t\tif ((keyCode < 16 || keyCode > 20) && keyCode !== 224 && keyCode !== 91 && !self.typing && !modKey) {\n\t\t\t\tself.beforeChange();\n\t\t\t\tself.typing = true;\n\t\t\t\tself.add({}, e);\n\t\t\t\tisFirstTypedCharacter = true;\n\t\t\t}\n\t\t});\n\n\t\teditor.on('MouseDown', function(e) {\n\t\t\tif (self.typing) {\n\t\t\t\taddNonTypingUndoLevel(e);\n\t\t\t}\n\t\t});\n\n\t\t// Add keyboard shortcuts for undo/redo keys\n\t\teditor.addShortcut('meta+z', '', 'Undo');\n\t\teditor.addShortcut('meta+y,meta+shift+z', '', 'Redo');\n\n\t\teditor.on('AddUndo Undo Redo ClearUndos', function(e) {\n\t\t\tif (!e.isDefaultPrevented()) {\n\t\t\t\teditor.nodeChanged();\n\t\t\t}\n\t\t});\n\n\t\t/*eslint consistent-this:0 */\n\t\tself = {\n\t\t\t// Explode for debugging reasons\n\t\t\tdata: data,\n\n\t\t\t/**\n\t\t\t * State if the user is currently typing or not. This will add a typing operation into one undo\n\t\t\t * level instead of one new level for each keystroke.\n\t\t\t *\n\t\t\t * @field {Boolean} typing\n\t\t\t */\n\t\t\ttyping: false,\n\n\t\t\t/**\n\t\t\t * Stores away a bookmark to be used when performing an undo action so that the selection is before\n\t\t\t * the change has been made.\n\t\t\t *\n\t\t\t * @method beforeChange\n\t\t\t */\n\t\t\tbeforeChange: function() {\n\t\t\t\tif (!locks) {\n\t\t\t\t\tbeforeBookmark = editor.selection.getBookmark(2, true);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Adds a new undo level/snapshot to the undo list.\n\t\t\t *\n\t\t\t * @method add\n\t\t\t * @param {Object} level Optional undo level object to add.\n\t\t\t * @param {DOMEvent} event Optional event responsible for the creation of the undo level.\n\t\t\t * @return {Object} Undo level that got added or null it a level wasn't needed.\n\t\t\t */\n\t\t\tadd: function(level, event) {\n\t\t\t\tvar i, settings = editor.settings, lastLevel, currentLevel;\n\n\t\t\t\tcurrentLevel = Levels.createFromEditor(editor);\n\t\t\t\tlevel = level || {};\n\t\t\t\tlevel = Tools.extend(level, currentLevel);\n\n\t\t\t\tif (locks || editor.removed) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tlastLevel = data[index];\n\t\t\t\tif (editor.fire('BeforeAddUndo', {level: level, lastLevel: lastLevel, originalEvent: event}).isDefaultPrevented()) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\t// Add undo level if needed\n\t\t\t\tif (lastLevel && Levels.isEq(lastLevel, level)) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\t// Set before bookmark on previous level\n\t\t\t\tif (data[index]) {\n\t\t\t\t\tdata[index].beforeBookmark = beforeBookmark;\n\t\t\t\t}\n\n\t\t\t\t// Time to compress\n\t\t\t\tif (settings.custom_undo_redo_levels) {\n\t\t\t\t\tif (data.length > settings.custom_undo_redo_levels) {\n\t\t\t\t\t\tfor (i = 0; i < data.length - 1; i++) {\n\t\t\t\t\t\t\tdata[i] = data[i + 1];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdata.length--;\n\t\t\t\t\t\tindex = data.length;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Get a non intrusive normalized bookmark\n\t\t\t\tlevel.bookmark = editor.selection.getBookmark(2, true);\n\n\t\t\t\t// Crop array if needed\n\t\t\t\tif (index < data.length - 1) {\n\t\t\t\t\tdata.length = index + 1;\n\t\t\t\t}\n\n\t\t\t\tdata.push(level);\n\t\t\t\tindex = data.length - 1;\n\n\t\t\t\tvar args = {level: level, lastLevel: lastLevel, originalEvent: event};\n\n\t\t\t\teditor.fire('AddUndo', args);\n\n\t\t\t\tif (index > 0) {\n\t\t\t\t\tsetDirty(true);\n\t\t\t\t\teditor.fire('change', args);\n\t\t\t\t}\n\n\t\t\t\treturn level;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Undoes the last action.\n\t\t\t *\n\t\t\t * @method undo\n\t\t\t * @return {Object} Undo level or null if no undo was performed.\n\t\t\t */\n\t\t\tundo: function() {\n\t\t\t\tvar level;\n\n\t\t\t\tif (self.typing) {\n\t\t\t\t\tself.add();\n\t\t\t\t\tself.typing = false;\n\t\t\t\t}\n\n\t\t\t\tif (index > 0) {\n\t\t\t\t\tlevel = data[--index];\n\t\t\t\t\tLevels.applyToEditor(editor, level, true);\n\t\t\t\t\tsetDirty(true);\n\t\t\t\t\teditor.fire('undo', {level: level});\n\t\t\t\t}\n\n\t\t\t\treturn level;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Redoes the last action.\n\t\t\t *\n\t\t\t * @method redo\n\t\t\t * @return {Object} Redo level or null if no redo was performed.\n\t\t\t */\n\t\t\tredo: function() {\n\t\t\t\tvar level;\n\n\t\t\t\tif (index < data.length - 1) {\n\t\t\t\t\tlevel = data[++index];\n\t\t\t\t\tLevels.applyToEditor(editor, level, false);\n\t\t\t\t\tsetDirty(true);\n\t\t\t\t\teditor.fire('redo', {level: level});\n\t\t\t\t}\n\n\t\t\t\treturn level;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Removes all undo levels.\n\t\t\t *\n\t\t\t * @method clear\n\t\t\t */\n\t\t\tclear: function() {\n\t\t\t\tdata = [];\n\t\t\t\tindex = 0;\n\t\t\t\tself.typing = false;\n\t\t\t\tself.data = data;\n\t\t\t\teditor.fire('ClearUndos');\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns true/false if the undo manager has any undo levels.\n\t\t\t *\n\t\t\t * @method hasUndo\n\t\t\t * @return {Boolean} true/false if the undo manager has any undo levels.\n\t\t\t */\n\t\t\thasUndo: function() {\n\t\t\t\t// Has undo levels or typing and content isn't the same as the initial level\n\t\t\t\treturn index > 0 || (self.typing && data[0] && !Levels.isEq(Levels.createFromEditor(editor), data[0]));\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns true/false if the undo manager has any redo levels.\n\t\t\t *\n\t\t\t * @method hasRedo\n\t\t\t * @return {Boolean} true/false if the undo manager has any redo levels.\n\t\t\t */\n\t\t\thasRedo: function() {\n\t\t\t\treturn index < data.length - 1 && !self.typing;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Executes the specified mutator function as an undo transaction. The selection\n\t\t\t * before the modification will be stored to the undo stack and if the DOM changes\n\t\t\t * it will add a new undo level. Any methods within the translation that adds undo levels will\n\t\t\t * be ignored. So a translation can include calls to execCommand or editor.insertContent.\n\t\t\t *\n\t\t\t * @method transact\n\t\t\t * @param {function} callback Function that gets executed and has dom manipulation logic in it.\n\t\t\t * @return {Object} Undo level that got added or null it a level wasn't needed.\n\t\t\t */\n\t\t\ttransact: function(callback) {\n\t\t\t\tendTyping();\n\t\t\t\tself.beforeChange();\n\n\t\t\t\ttry {\n\t\t\t\t\tlocks++;\n\t\t\t\t\tcallback();\n\t\t\t\t} finally {\n\t\t\t\t\tlocks--;\n\t\t\t\t}\n\n\t\t\t\treturn self.add();\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Adds an extra \"hidden\" undo level by first applying the first mutation and store that to the undo stack\n\t\t\t * then roll back that change and do the second mutation on top of the stack. This will produce an extra\n\t\t\t * undo level that the user doesn't see until they undo.\n\t\t\t *\n\t\t\t * @method extra\n\t\t\t * @param {function} callback1 Function that does mutation but gets stored as a \"hidden\" extra undo level.\n\t\t\t * @param {function} callback2 Function that does mutation but gets displayed to the user.\n\t\t\t */\n\t\t\textra: function (callback1, callback2) {\n\t\t\t\tvar lastLevel, bookmark;\n\n\t\t\t\tif (self.transact(callback1)) {\n\t\t\t\t\tbookmark = data[index].bookmark;\n\t\t\t\t\tlastLevel = data[index - 1];\n\t\t\t\t\tLevels.applyToEditor(editor, lastLevel, true);\n\n\t\t\t\t\tif (self.transact(callback2)) {\n\t\t\t\t\t\tdata[index - 1].beforeBookmark = bookmark;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\treturn self;\n\t};\n});\n\n// Included from: js/tinymce/classes/EnterKey.js\n\n/**\n * EnterKey.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Contains logic for handling the enter key to split/generate block elements.\n *\n * @private\n * @class tinymce.EnterKey\n */\ndefine(\"tinymce/EnterKey\", [\n\t\"tinymce/dom/TreeWalker\",\n\t\"tinymce/dom/RangeUtils\",\n\t\"tinymce/caret/CaretContainer\",\n\t\"tinymce/Env\"\n], function(TreeWalker, RangeUtils, CaretContainer, Env) {\n\tvar isIE = Env.ie && Env.ie < 11;\n\n\treturn function(editor) {\n\t\tvar dom = editor.dom, selection = editor.selection, settings = editor.settings;\n\t\tvar undoManager = editor.undoManager, schema = editor.schema, nonEmptyElementsMap = schema.getNonEmptyElements(),\n\t\t\tmoveCaretBeforeOnEnterElementsMap = schema.getMoveCaretBeforeOnEnterElements();\n\n\t\tfunction handleEnterKey(evt) {\n\t\t\tvar rng, tmpRng, editableRoot, container, offset, parentBlock, documentMode, shiftKey,\n\t\t\t\tnewBlock, fragment, containerBlock, parentBlockName, containerBlockName, newBlockName, isAfterLastNodeInContainer;\n\n\t\t\t// Returns true if the block can be split into two blocks or not\n\t\t\tfunction canSplitBlock(node) {\n\t\t\t\treturn node &&\n\t\t\t\t\tdom.isBlock(node) &&\n\t\t\t\t\t!/^(TD|TH|CAPTION|FORM)$/.test(node.nodeName) &&\n\t\t\t\t\t!/^(fixed|absolute)/i.test(node.style.position) &&\n\t\t\t\t\tdom.getContentEditable(node) !== \"true\";\n\t\t\t}\n\n\t\t\tfunction isTableCell(node) {\n\t\t\t\treturn node && /^(TD|TH|CAPTION)$/.test(node.nodeName);\n\t\t\t}\n\n\t\t\t// Renders empty block on IE\n\t\t\tfunction renderBlockOnIE(block) {\n\t\t\t\tvar oldRng;\n\n\t\t\t\tif (dom.isBlock(block)) {\n\t\t\t\t\toldRng = selection.getRng();\n\t\t\t\t\tblock.appendChild(dom.create('span', null, '\\u00a0'));\n\t\t\t\t\tselection.select(block);\n\t\t\t\t\tblock.lastChild.outerHTML = '';\n\t\t\t\t\tselection.setRng(oldRng);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove the first empty inline element of the block so this:

x

becomes this:

x

\n\t\t\tfunction trimInlineElementsOnLeftSideOfBlock(block) {\n\t\t\t\tvar node = block, firstChilds = [], i;\n\n\t\t\t\tif (!node) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Find inner most first child ex:

*

\n\t\t\t\twhile ((node = node.firstChild)) {\n\t\t\t\t\tif (dom.isBlock(node)) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (node.nodeType == 1 && !nonEmptyElementsMap[node.nodeName.toLowerCase()]) {\n\t\t\t\t\t\tfirstChilds.push(node);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ti = firstChilds.length;\n\t\t\t\twhile (i--) {\n\t\t\t\t\tnode = firstChilds[i];\n\t\t\t\t\tif (!node.hasChildNodes() || (node.firstChild == node.lastChild && node.firstChild.nodeValue === '')) {\n\t\t\t\t\t\tdom.remove(node);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Remove see #5381\n\t\t\t\t\t\tif (node.nodeName == \"A\" && (node.innerText || node.textContent) === ' ') {\n\t\t\t\t\t\t\tdom.remove(node);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Moves the caret to a suitable position within the root for example in the first non\n\t\t\t// pure whitespace text node or before an image\n\t\t\tfunction moveToCaretPosition(root) {\n\t\t\t\tvar walker, node, rng, lastNode = root, tempElm;\n\t\t\t\tfunction firstNonWhiteSpaceNodeSibling(node) {\n\t\t\t\t\twhile (node) {\n\t\t\t\t\t\tif (node.nodeType == 1 || (node.nodeType == 3 && node.data && /[\\r\\n\\s]/.test(node.data))) {\n\t\t\t\t\t\t\treturn node;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!root) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Old IE versions doesn't properly render blocks with br elements in them\n\t\t\t\t// For example


wont be rendered correctly in a contentEditable area\n\t\t\t\t// until you remove the br producing

\n\t\t\t\tif (Env.ie && Env.ie < 9 && parentBlock && parentBlock.firstChild) {\n\t\t\t\t\tif (parentBlock.firstChild == parentBlock.lastChild && parentBlock.firstChild.tagName == 'BR') {\n\t\t\t\t\t\tdom.remove(parentBlock.firstChild);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (/^(LI|DT|DD)$/.test(root.nodeName)) {\n\t\t\t\t\tvar firstChild = firstNonWhiteSpaceNodeSibling(root.firstChild);\n\n\t\t\t\t\tif (firstChild && /^(UL|OL|DL)$/.test(firstChild.nodeName)) {\n\t\t\t\t\t\troot.insertBefore(dom.doc.createTextNode('\\u00a0'), root.firstChild);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\trng = dom.createRng();\n\n\t\t\t\t// Normalize whitespace to remove empty text nodes. Fix for: #6904\n\t\t\t\t// Gecko will be able to place the caret in empty text nodes but it won't render propery\n\t\t\t\t// Older IE versions will sometimes crash so for now ignore all IE versions\n\t\t\t\tif (!Env.ie) {\n\t\t\t\t\troot.normalize();\n\t\t\t\t}\n\n\t\t\t\tif (root.hasChildNodes()) {\n\t\t\t\t\twalker = new TreeWalker(root, root);\n\n\t\t\t\t\twhile ((node = walker.current())) {\n\t\t\t\t\t\tif (node.nodeType == 3) {\n\t\t\t\t\t\t\trng.setStart(node, 0);\n\t\t\t\t\t\t\trng.setEnd(node, 0);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (moveCaretBeforeOnEnterElementsMap[node.nodeName.toLowerCase()]) {\n\t\t\t\t\t\t\trng.setStartBefore(node);\n\t\t\t\t\t\t\trng.setEndBefore(node);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlastNode = node;\n\t\t\t\t\t\tnode = walker.next();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!node) {\n\t\t\t\t\t\trng.setStart(lastNode, 0);\n\t\t\t\t\t\trng.setEnd(lastNode, 0);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (root.nodeName == 'BR') {\n\t\t\t\t\t\tif (root.nextSibling && dom.isBlock(root.nextSibling)) {\n\t\t\t\t\t\t\t// Trick on older IE versions to render the caret before the BR between two lists\n\t\t\t\t\t\t\tif (!documentMode || documentMode < 9) {\n\t\t\t\t\t\t\t\ttempElm = dom.create('br');\n\t\t\t\t\t\t\t\troot.parentNode.insertBefore(tempElm, root);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\trng.setStartBefore(root);\n\t\t\t\t\t\t\trng.setEndBefore(root);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trng.setStartAfter(root);\n\t\t\t\t\t\t\trng.setEndAfter(root);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\trng.setStart(root, 0);\n\t\t\t\t\t\trng.setEnd(root, 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tselection.setRng(rng);\n\n\t\t\t\t// Remove tempElm created for old IE:s\n\t\t\t\tdom.remove(tempElm);\n\t\t\t\tselection.scrollIntoView(root);\n\t\t\t}\n\n\t\t\tfunction setForcedBlockAttrs(node) {\n\t\t\t\tvar forcedRootBlockName = settings.forced_root_block;\n\n\t\t\t\tif (forcedRootBlockName && forcedRootBlockName.toLowerCase() === node.tagName.toLowerCase()) {\n\t\t\t\t\tdom.setAttribs(node, settings.forced_root_block_attrs);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction emptyBlock(elm) {\n\t\t\t\t// BR is needed in empty blocks on non IE browsers\n\t\t\t\telm.innerHTML = !isIE ? '
' : '';\n\t\t\t}\n\n\t\t\t// Creates a new block element by cloning the current one or creating a new one if the name is specified\n\t\t\t// This function will also copy any text formatting from the parent block and add it to the new one\n\t\t\tfunction createNewBlock(name) {\n\t\t\t\tvar node = container, block, clonedNode, caretNode, textInlineElements = schema.getTextInlineElements();\n\n\t\t\t\tif (name || parentBlockName == \"TABLE\") {\n\t\t\t\t\tblock = dom.create(name || newBlockName);\n\t\t\t\t\tsetForcedBlockAttrs(block);\n\t\t\t\t} else {\n\t\t\t\t\tblock = parentBlock.cloneNode(false);\n\t\t\t\t}\n\n\t\t\t\tcaretNode = block;\n\n\t\t\t\t// Clone any parent styles\n\t\t\t\tif (settings.keep_styles !== false) {\n\t\t\t\t\tdo {\n\t\t\t\t\t\tif (textInlineElements[node.nodeName]) {\n\t\t\t\t\t\t\t// Never clone a caret containers\n\t\t\t\t\t\t\tif (node.id == '_mce_caret') {\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tclonedNode = node.cloneNode(false);\n\t\t\t\t\t\t\tdom.setAttrib(clonedNode, 'id', ''); // Remove ID since it needs to be document unique\n\n\t\t\t\t\t\t\tif (block.hasChildNodes()) {\n\t\t\t\t\t\t\t\tclonedNode.appendChild(block.firstChild);\n\t\t\t\t\t\t\t\tblock.appendChild(clonedNode);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcaretNode = clonedNode;\n\t\t\t\t\t\t\t\tblock.appendChild(clonedNode);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} while ((node = node.parentNode) && node != editableRoot);\n\t\t\t\t}\n\n\t\t\t\t// BR is needed in empty blocks on non IE browsers\n\t\t\t\tif (!isIE) {\n\t\t\t\t\tcaretNode.innerHTML = '
';\n\t\t\t\t}\n\n\t\t\t\treturn block;\n\t\t\t}\n\n\t\t\t// Returns true/false if the caret is at the start/end of the parent block element\n\t\t\tfunction isCaretAtStartOrEndOfBlock(start) {\n\t\t\t\tvar walker, node, name;\n\n\t\t\t\t// Caret is in the middle of a text node like \"a|b\"\n\t\t\t\tif (container.nodeType == 3 && (start ? offset > 0 : offset < container.nodeValue.length)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// If after the last element in block node edge case for #5091\n\t\t\t\tif (container.parentNode == parentBlock && isAfterLastNodeInContainer && !start) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\t// If the caret if before the first element in parentBlock\n\t\t\t\tif (start && container.nodeType == 1 && container == parentBlock.firstChild) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\t// Caret can be before/after a table\n\t\t\t\tif (container.nodeName === \"TABLE\" || (container.previousSibling && container.previousSibling.nodeName == \"TABLE\")) {\n\t\t\t\t\treturn (isAfterLastNodeInContainer && !start) || (!isAfterLastNodeInContainer && start);\n\t\t\t\t}\n\n\t\t\t\t// Walk the DOM and look for text nodes or non empty elements\n\t\t\t\twalker = new TreeWalker(container, parentBlock);\n\n\t\t\t\t// If caret is in beginning or end of a text block then jump to the next/previous node\n\t\t\t\tif (container.nodeType == 3) {\n\t\t\t\t\tif (start && offset === 0) {\n\t\t\t\t\t\twalker.prev();\n\t\t\t\t\t} else if (!start && offset == container.nodeValue.length) {\n\t\t\t\t\t\twalker.next();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\twhile ((node = walker.current())) {\n\t\t\t\t\tif (node.nodeType === 1) {\n\t\t\t\t\t\t// Ignore bogus elements\n\t\t\t\t\t\tif (!node.getAttribute('data-mce-bogus')) {\n\t\t\t\t\t\t\t// Keep empty elements like but not trailing br:s like

text|

\n\t\t\t\t\t\t\tname = node.nodeName.toLowerCase();\n\t\t\t\t\t\t\tif (nonEmptyElementsMap[name] && name !== 'br') {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (node.nodeType === 3 && !/^[ \\t\\r\\n]*$/.test(node.nodeValue)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (start) {\n\t\t\t\t\t\twalker.prev();\n\t\t\t\t\t} else {\n\t\t\t\t\t\twalker.next();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Wraps any text nodes or inline elements in the specified forced root block name\n\t\t\tfunction wrapSelfAndSiblingsInDefaultBlock(container, offset) {\n\t\t\t\tvar newBlock, parentBlock, startNode, node, next, rootBlockName, blockName = newBlockName || 'P';\n\n\t\t\t\t// Not in a block element or in a table cell or caption\n\t\t\t\tparentBlock = dom.getParent(container, dom.isBlock);\n\t\t\t\tif (!parentBlock || !canSplitBlock(parentBlock)) {\n\t\t\t\t\tparentBlock = parentBlock || editableRoot;\n\n\t\t\t\t\tif (parentBlock == editor.getBody() || isTableCell(parentBlock)) {\n\t\t\t\t\t\trootBlockName = parentBlock.nodeName.toLowerCase();\n\t\t\t\t\t} else {\n\t\t\t\t\t\trootBlockName = parentBlock.parentNode.nodeName.toLowerCase();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!parentBlock.hasChildNodes()) {\n\t\t\t\t\t\tnewBlock = dom.create(blockName);\n\t\t\t\t\t\tsetForcedBlockAttrs(newBlock);\n\t\t\t\t\t\tparentBlock.appendChild(newBlock);\n\t\t\t\t\t\trng.setStart(newBlock, 0);\n\t\t\t\t\t\trng.setEnd(newBlock, 0);\n\t\t\t\t\t\treturn newBlock;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Find parent that is the first child of parentBlock\n\t\t\t\t\tnode = container;\n\t\t\t\t\twhile (node.parentNode != parentBlock) {\n\t\t\t\t\t\tnode = node.parentNode;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Loop left to find start node start wrapping at\n\t\t\t\t\twhile (node && !dom.isBlock(node)) {\n\t\t\t\t\t\tstartNode = node;\n\t\t\t\t\t\tnode = node.previousSibling;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (startNode && schema.isValidChild(rootBlockName, blockName.toLowerCase())) {\n\t\t\t\t\t\tnewBlock = dom.create(blockName);\n\t\t\t\t\t\tsetForcedBlockAttrs(newBlock);\n\t\t\t\t\t\tstartNode.parentNode.insertBefore(newBlock, startNode);\n\n\t\t\t\t\t\t// Start wrapping until we hit a block\n\t\t\t\t\t\tnode = startNode;\n\t\t\t\t\t\twhile (node && !dom.isBlock(node)) {\n\t\t\t\t\t\t\tnext = node.nextSibling;\n\t\t\t\t\t\t\tnewBlock.appendChild(node);\n\t\t\t\t\t\t\tnode = next;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Restore range to it's past location\n\t\t\t\t\t\trng.setStart(container, offset);\n\t\t\t\t\t\trng.setEnd(container, offset);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn container;\n\t\t\t}\n\n\t\t\t// Inserts a block or br before/after or in the middle of a split list of the LI is empty\n\t\t\tfunction handleEmptyListItem() {\n\t\t\t\tfunction isFirstOrLastLi(first) {\n\t\t\t\t\tvar node = containerBlock[first ? 'firstChild' : 'lastChild'];\n\n\t\t\t\t\t// Find first/last element since there might be whitespace there\n\t\t\t\t\twhile (node) {\n\t\t\t\t\t\tif (node.nodeType == 1) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tnode = node[first ? 'nextSibling' : 'previousSibling'];\n\t\t\t\t\t}\n\n\t\t\t\t\treturn node === parentBlock;\n\t\t\t\t}\n\n\t\t\t\tfunction getContainerBlock() {\n\t\t\t\t\tvar containerBlockParent = containerBlock.parentNode;\n\n\t\t\t\t\tif (/^(LI|DT|DD)$/.test(containerBlockParent.nodeName)) {\n\t\t\t\t\t\treturn containerBlockParent;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn containerBlock;\n\t\t\t\t}\n\n\t\t\t\tif (containerBlock == editor.getBody()) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Check if we are in an nested list\n\t\t\t\tvar containerBlockParentName = containerBlock.parentNode.nodeName;\n\t\t\t\tif (/^(OL|UL|LI)$/.test(containerBlockParentName)) {\n\t\t\t\t\tnewBlockName = 'LI';\n\t\t\t\t}\n\n\t\t\t\tnewBlock = newBlockName ? createNewBlock(newBlockName) : dom.create('BR');\n\n\t\t\t\tif (isFirstOrLastLi(true) && isFirstOrLastLi()) {\n\t\t\t\t\tif (containerBlockParentName == 'LI') {\n\t\t\t\t\t\t// Nested list is inside a LI\n\t\t\t\t\t\tdom.insertAfter(newBlock, getContainerBlock());\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Is first and last list item then replace the OL/UL with a text block\n\t\t\t\t\t\tdom.replace(newBlock, containerBlock);\n\t\t\t\t\t}\n\t\t\t\t} else if (isFirstOrLastLi(true)) {\n\t\t\t\t\tif (containerBlockParentName == 'LI') {\n\t\t\t\t\t\t// List nested in an LI then move the list to a new sibling LI\n\t\t\t\t\t\tdom.insertAfter(newBlock, getContainerBlock());\n\t\t\t\t\t\tnewBlock.appendChild(dom.doc.createTextNode(' ')); // Needed for IE so the caret can be placed\n\t\t\t\t\t\tnewBlock.appendChild(containerBlock);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// First LI in list then remove LI and add text block before list\n\t\t\t\t\t\tcontainerBlock.parentNode.insertBefore(newBlock, containerBlock);\n\t\t\t\t\t}\n\t\t\t\t} else if (isFirstOrLastLi()) {\n\t\t\t\t\t// Last LI in list then remove LI and add text block after list\n\t\t\t\t\tdom.insertAfter(newBlock, getContainerBlock());\n\t\t\t\t\trenderBlockOnIE(newBlock);\n\t\t\t\t} else {\n\t\t\t\t\t// Middle LI in list the split the list and insert a text block in the middle\n\t\t\t\t\t// Extract after fragment and insert it after the current block\n\t\t\t\t\tcontainerBlock = getContainerBlock();\n\t\t\t\t\ttmpRng = rng.cloneRange();\n\t\t\t\t\ttmpRng.setStartAfter(parentBlock);\n\t\t\t\t\ttmpRng.setEndAfter(containerBlock);\n\t\t\t\t\tfragment = tmpRng.extractContents();\n\n\t\t\t\t\tif (newBlockName == 'LI' && fragment.firstChild.nodeName == 'LI') {\n\t\t\t\t\t\tnewBlock = fragment.firstChild;\n\t\t\t\t\t\tdom.insertAfter(fragment, containerBlock);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdom.insertAfter(fragment, containerBlock);\n\t\t\t\t\t\tdom.insertAfter(newBlock, containerBlock);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tdom.remove(parentBlock);\n\t\t\t\tmoveToCaretPosition(newBlock);\n\t\t\t\tundoManager.add();\n\t\t\t}\n\n\t\t\t// Inserts a BR element if the forced_root_block option is set to false or empty string\n\t\t\tfunction insertBr() {\n\t\t\t\teditor.execCommand(\"InsertLineBreak\", false, evt);\n\t\t\t}\n\n\t\t\t// Trims any linebreaks at the beginning of node user for example when pressing enter in a PRE element\n\t\t\tfunction trimLeadingLineBreaks(node) {\n\t\t\t\tdo {\n\t\t\t\t\tif (node.nodeType === 3) {\n\t\t\t\t\t\tnode.nodeValue = node.nodeValue.replace(/^[\\r\\n]+/, '');\n\t\t\t\t\t}\n\n\t\t\t\t\tnode = node.firstChild;\n\t\t\t\t} while (node);\n\t\t\t}\n\n\t\t\tfunction getEditableRoot(node) {\n\t\t\t\tvar root = dom.getRoot(), parent, editableRoot;\n\n\t\t\t\t// Get all parents until we hit a non editable parent or the root\n\t\t\t\tparent = node;\n\t\t\t\twhile (parent !== root && dom.getContentEditable(parent) !== \"false\") {\n\t\t\t\t\tif (dom.getContentEditable(parent) === \"true\") {\n\t\t\t\t\t\teditableRoot = parent;\n\t\t\t\t\t}\n\n\t\t\t\t\tparent = parent.parentNode;\n\t\t\t\t}\n\n\t\t\t\treturn parent !== root ? editableRoot : root;\n\t\t\t}\n\n\t\t\t// Adds a BR at the end of blocks that only contains an IMG or INPUT since\n\t\t\t// these might be floated and then they won't expand the block\n\t\t\tfunction addBrToBlockIfNeeded(block) {\n\t\t\t\tvar lastChild;\n\n\t\t\t\t// IE will render the blocks correctly other browsers needs a BR\n\t\t\t\tif (!isIE) {\n\t\t\t\t\tblock.normalize(); // Remove empty text nodes that got left behind by the extract\n\n\t\t\t\t\t// Check if the block is empty or contains a floated last child\n\t\t\t\t\tlastChild = block.lastChild;\n\t\t\t\t\tif (!lastChild || (/^(left|right)$/gi.test(dom.getStyle(lastChild, 'float', true)))) {\n\t\t\t\t\t\tdom.add(block, 'br');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction insertNewBlockAfter() {\n\t\t\t\t// If the caret is at the end of a header we produce a P tag after it similar to Word unless we are in a hgroup\n\t\t\t\tif (/^(H[1-6]|PRE|FIGURE)$/.test(parentBlockName) && containerBlockName != 'HGROUP') {\n\t\t\t\t\tnewBlock = createNewBlock(newBlockName);\n\t\t\t\t} else {\n\t\t\t\t\tnewBlock = createNewBlock();\n\t\t\t\t}\n\n\t\t\t\t// Split the current container block element if enter is pressed inside an empty inner block element\n\t\t\t\tif (settings.end_container_on_empty_block && canSplitBlock(containerBlock) && dom.isEmpty(parentBlock)) {\n\t\t\t\t\t// Split container block for example a BLOCKQUOTE at the current blockParent location for example a P\n\t\t\t\t\tnewBlock = dom.split(containerBlock, parentBlock);\n\t\t\t\t} else {\n\t\t\t\t\tdom.insertAfter(newBlock, parentBlock);\n\t\t\t\t}\n\n\t\t\t\tmoveToCaretPosition(newBlock);\n\t\t\t}\n\n\t\t\trng = selection.getRng(true);\n\n\t\t\t// Event is blocked by some other handler for example the lists plugin\n\t\t\tif (evt.isDefaultPrevented()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Delete any selected contents\n\t\t\tif (!rng.collapsed) {\n\t\t\t\teditor.execCommand('Delete');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Setup range items and newBlockName\n\t\t\tnew RangeUtils(dom).normalize(rng);\n\t\t\tcontainer = rng.startContainer;\n\t\t\toffset = rng.startOffset;\n\t\t\tnewBlockName = (settings.force_p_newlines ? 'p' : '') || settings.forced_root_block;\n\t\t\tnewBlockName = newBlockName ? newBlockName.toUpperCase() : '';\n\t\t\tdocumentMode = dom.doc.documentMode;\n\t\t\tshiftKey = evt.shiftKey;\n\n\t\t\t// Resolve node index\n\t\t\tif (container.nodeType == 1 && container.hasChildNodes()) {\n\t\t\t\tisAfterLastNodeInContainer = offset > container.childNodes.length - 1;\n\n\t\t\t\tcontainer = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\n\t\t\t\tif (isAfterLastNodeInContainer && container.nodeType == 3) {\n\t\t\t\t\toffset = container.nodeValue.length;\n\t\t\t\t} else {\n\t\t\t\t\toffset = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Get editable root node, normally the body element but sometimes a div or span\n\t\t\teditableRoot = getEditableRoot(container);\n\n\t\t\t// If there is no editable root then enter is done inside a contentEditable false element\n\t\t\tif (!editableRoot) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tundoManager.beforeChange();\n\n\t\t\t// If editable root isn't block nor the root of the editor\n\t\t\tif (!dom.isBlock(editableRoot) && editableRoot != dom.getRoot()) {\n\t\t\t\tif (!newBlockName || shiftKey) {\n\t\t\t\t\tinsertBr();\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Wrap the current node and it's sibling in a default block if it's needed.\n\t\t\t// for example this will become this \n\t\t\t// This won't happen if root blocks are disabled or the shiftKey is pressed\n\t\t\tif ((newBlockName && !shiftKey) || (!newBlockName && shiftKey)) {\n\t\t\t\tcontainer = wrapSelfAndSiblingsInDefaultBlock(container, offset);\n\t\t\t}\n\n\t\t\t// Find parent block and setup empty block paddings\n\t\t\tparentBlock = dom.getParent(container, dom.isBlock);\n\t\t\tcontainerBlock = parentBlock ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null;\n\n\t\t\t// Setup block names\n\t\t\tparentBlockName = parentBlock ? parentBlock.nodeName.toUpperCase() : ''; // IE < 9 & HTML5\n\t\t\tcontainerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : ''; // IE < 9 & HTML5\n\n\t\t\t// Enter inside block contained within a LI then split or insert before/after LI\n\t\t\tif (containerBlockName == 'LI' && !evt.ctrlKey) {\n\t\t\t\tparentBlock = containerBlock;\n\t\t\t\tparentBlockName = containerBlockName;\n\t\t\t}\n\n\t\t\tif (editor.undoManager.typing) {\n\t\t\t\teditor.undoManager.typing = false;\n\t\t\t\teditor.undoManager.add();\n\t\t\t}\n\n\t\t\t// Handle enter in list item\n\t\t\tif (/^(LI|DT|DD)$/.test(parentBlockName)) {\n\t\t\t\tif (!newBlockName && shiftKey) {\n\t\t\t\t\tinsertBr();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Handle enter inside an empty list item\n\t\t\t\tif (dom.isEmpty(parentBlock)) {\n\t\t\t\t\thandleEmptyListItem();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Don't split PRE tags but insert a BR instead easier when writing code samples etc\n\t\t\tif (parentBlockName == 'PRE' && settings.br_in_pre !== false) {\n\t\t\t\tif (!shiftKey) {\n\t\t\t\t\tinsertBr();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If no root block is configured then insert a BR by default or if the shiftKey is pressed\n\t\t\t\tif ((!newBlockName && !shiftKey && parentBlockName != 'LI') || (newBlockName && shiftKey)) {\n\t\t\t\t\tinsertBr();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If parent block is root then never insert new blocks\n\t\t\tif (newBlockName && parentBlock === editor.getBody()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Default block name if it's not configured\n\t\t\tnewBlockName = newBlockName || 'P';\n\n\t\t\t// Insert new block before/after the parent block depending on caret location\n\t\t\tif (CaretContainer.isCaretContainerBlock(parentBlock)) {\n\t\t\t\tnewBlock = CaretContainer.showCaretContainerBlock(parentBlock);\n\t\t\t\tif (dom.isEmpty(parentBlock)) {\n\t\t\t\t\temptyBlock(parentBlock);\n\t\t\t\t}\n\t\t\t\tmoveToCaretPosition(newBlock);\n\t\t\t} else if (isCaretAtStartOrEndOfBlock()) {\n\t\t\t\tinsertNewBlockAfter();\n\t\t\t} else if (isCaretAtStartOrEndOfBlock(true)) {\n\t\t\t\t// Insert new block before\n\t\t\t\tnewBlock = parentBlock.parentNode.insertBefore(createNewBlock(), parentBlock);\n\t\t\t\trenderBlockOnIE(newBlock);\n\t\t\t\tmoveToCaretPosition(parentBlock);\n\t\t\t} else {\n\t\t\t\t// Extract after fragment and insert it after the current block\n\t\t\t\ttmpRng = rng.cloneRange();\n\t\t\t\ttmpRng.setEndAfter(parentBlock);\n\t\t\t\tfragment = tmpRng.extractContents();\n\t\t\t\ttrimLeadingLineBreaks(fragment);\n\t\t\t\tnewBlock = fragment.firstChild;\n\t\t\t\tdom.insertAfter(fragment, parentBlock);\n\t\t\t\ttrimInlineElementsOnLeftSideOfBlock(newBlock);\n\t\t\t\taddBrToBlockIfNeeded(parentBlock);\n\n\t\t\t\tif (dom.isEmpty(parentBlock)) {\n\t\t\t\t\temptyBlock(parentBlock);\n\t\t\t\t}\n\n\t\t\t\tnewBlock.normalize();\n\n\t\t\t\t// New block might become empty if it's

a |

\n\t\t\t\tif (dom.isEmpty(newBlock)) {\n\t\t\t\t\tdom.remove(newBlock);\n\t\t\t\t\tinsertNewBlockAfter();\n\t\t\t\t} else {\n\t\t\t\t\tmoveToCaretPosition(newBlock);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdom.setAttrib(newBlock, 'id', ''); // Remove ID since it needs to be document unique\n\n\t\t\t// Allow custom handling of new blocks\n\t\t\teditor.fire('NewBlock', {newBlock: newBlock});\n\n\t\t\tundoManager.typing = false;\n\t\t\tundoManager.add();\n\t\t}\n\n\t\teditor.on('keydown', function(evt) {\n\t\t\tif (evt.keyCode == 13) {\n\t\t\t\tif (handleEnterKey(evt) !== false) {\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n});\n\n// Included from: js/tinymce/classes/ForceBlocks.js\n\n/**\n * ForceBlocks.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Makes sure that everything gets wrapped in paragraphs.\n *\n * @private\n * @class tinymce.ForceBlocks\n */\ndefine(\"tinymce/ForceBlocks\", [], function() {\n\treturn function(editor) {\n\t\tvar settings = editor.settings, dom = editor.dom, selection = editor.selection;\n\t\tvar schema = editor.schema, blockElements = schema.getBlockElements();\n\n\t\tfunction addRootBlocks() {\n\t\t\tvar node = selection.getStart(), rootNode = editor.getBody(), rng;\n\t\t\tvar startContainer, startOffset, endContainer, endOffset, rootBlockNode;\n\t\t\tvar tempNode, offset = -0xFFFFFF, wrapped, restoreSelection;\n\t\t\tvar tmpRng, rootNodeName, forcedRootBlock;\n\n\t\t\tforcedRootBlock = settings.forced_root_block;\n\n\t\t\tif (!node || node.nodeType !== 1 || !forcedRootBlock) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Check if node is wrapped in block\n\t\t\twhile (node && node != rootNode) {\n\t\t\t\tif (blockElements[node.nodeName]) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tnode = node.parentNode;\n\t\t\t}\n\n\t\t\t// Get current selection\n\t\t\trng = selection.getRng();\n\t\t\tif (rng.setStart) {\n\t\t\t\tstartContainer = rng.startContainer;\n\t\t\t\tstartOffset = rng.startOffset;\n\t\t\t\tendContainer = rng.endContainer;\n\t\t\t\tendOffset = rng.endOffset;\n\n\t\t\t\ttry {\n\t\t\t\t\trestoreSelection = editor.getDoc().activeElement === rootNode;\n\t\t\t\t} catch (ex) {\n\t\t\t\t\t// IE throws unspecified error here sometimes\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Force control range into text range\n\t\t\t\tif (rng.item) {\n\t\t\t\t\tnode = rng.item(0);\n\t\t\t\t\trng = editor.getDoc().body.createTextRange();\n\t\t\t\t\trng.moveToElementText(node);\n\t\t\t\t}\n\n\t\t\t\trestoreSelection = rng.parentElement().ownerDocument === editor.getDoc();\n\t\t\t\ttmpRng = rng.duplicate();\n\t\t\t\ttmpRng.collapse(true);\n\t\t\t\tstartOffset = tmpRng.move('character', offset) * -1;\n\n\t\t\t\tif (!tmpRng.collapsed) {\n\t\t\t\t\ttmpRng = rng.duplicate();\n\t\t\t\t\ttmpRng.collapse(false);\n\t\t\t\t\tendOffset = (tmpRng.move('character', offset) * -1) - startOffset;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Wrap non block elements and text nodes\n\t\t\tnode = rootNode.firstChild;\n\t\t\trootNodeName = rootNode.nodeName.toLowerCase();\n\t\t\twhile (node) {\n\t\t\t\t// TODO: Break this up, too complex\n\t\t\t\tif (((node.nodeType === 3 || (node.nodeType == 1 && !blockElements[node.nodeName]))) &&\n\t\t\t\t\tschema.isValidChild(rootNodeName, forcedRootBlock.toLowerCase())) {\n\t\t\t\t\t// Remove empty text nodes\n\t\t\t\t\tif (node.nodeType === 3 && node.nodeValue.length === 0) {\n\t\t\t\t\t\ttempNode = node;\n\t\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t\t\tdom.remove(tempNode);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!rootBlockNode) {\n\t\t\t\t\t\trootBlockNode = dom.create(forcedRootBlock, editor.settings.forced_root_block_attrs);\n\t\t\t\t\t\tnode.parentNode.insertBefore(rootBlockNode, node);\n\t\t\t\t\t\twrapped = true;\n\t\t\t\t\t}\n\n\t\t\t\t\ttempNode = node;\n\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t\trootBlockNode.appendChild(tempNode);\n\t\t\t\t} else {\n\t\t\t\t\trootBlockNode = null;\n\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (wrapped && restoreSelection) {\n\t\t\t\tif (rng.setStart) {\n\t\t\t\t\trng.setStart(startContainer, startOffset);\n\t\t\t\t\trng.setEnd(endContainer, endOffset);\n\t\t\t\t\tselection.setRng(rng);\n\t\t\t\t} else {\n\t\t\t\t\t// Only select if the previous selection was inside the document to prevent auto focus in quirks mode\n\t\t\t\t\ttry {\n\t\t\t\t\t\trng = editor.getDoc().body.createTextRange();\n\t\t\t\t\t\trng.moveToElementText(rootNode);\n\t\t\t\t\t\trng.collapse(true);\n\t\t\t\t\t\trng.moveStart('character', startOffset);\n\n\t\t\t\t\t\tif (endOffset > 0) {\n\t\t\t\t\t\t\trng.moveEnd('character', endOffset);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\trng.select();\n\t\t\t\t\t} catch (ex) {\n\t\t\t\t\t\t// Ignore\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\teditor.nodeChanged();\n\t\t\t}\n\t\t}\n\n\t\t// Force root blocks\n\t\tif (settings.forced_root_block) {\n\t\t\teditor.on('NodeChange', addRootBlocks);\n\t\t}\n\t};\n});\n\n// Included from: js/tinymce/classes/caret/CaretUtils.js\n\n/**\n * CaretUtils.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Utility functions shared by the caret logic.\n *\n * @private\n * @class tinymce.caret.CaretUtils\n */\ndefine(\"tinymce/caret/CaretUtils\", [\n\t\"tinymce/util/Fun\",\n\t\"tinymce/dom/TreeWalker\",\n\t\"tinymce/dom/NodeType\",\n\t\"tinymce/caret/CaretPosition\",\n\t\"tinymce/caret/CaretContainer\",\n\t\"tinymce/caret/CaretCandidate\"\n], function(Fun, TreeWalker, NodeType, CaretPosition, CaretContainer, CaretCandidate) {\n\tvar isContentEditableTrue = NodeType.isContentEditableTrue,\n\t\tisContentEditableFalse = NodeType.isContentEditableFalse,\n\t\tisBlockLike = NodeType.matchStyleValues('display', 'block table table-cell table-caption'),\n\t\tisCaretContainer = CaretContainer.isCaretContainer,\n\t\tisCaretContainerBlock = CaretContainer.isCaretContainerBlock,\n\t\tcurry = Fun.curry,\n\t\tisElement = NodeType.isElement,\n\t\tisCaretCandidate = CaretCandidate.isCaretCandidate;\n\n\tfunction isForwards(direction) {\n\t\treturn direction > 0;\n\t}\n\n\tfunction isBackwards(direction) {\n\t\treturn direction < 0;\n\t}\n\n\tfunction skipCaretContainers(walk, shallow) {\n\t\tvar node;\n\n\t\twhile ((node = walk(shallow))) {\n\t\t\tif (!isCaretContainerBlock(node)) {\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction findNode(node, direction, predicateFn, rootNode, shallow) {\n\t\tvar walker = new TreeWalker(node, rootNode);\n\n\t\tif (isBackwards(direction)) {\n\t\t\tif (isContentEditableFalse(node) || isCaretContainerBlock(node)) {\n\t\t\t\tnode = skipCaretContainers(walker.prev, true);\n\t\t\t\tif (predicateFn(node)) {\n\t\t\t\t\treturn node;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\twhile ((node = skipCaretContainers(walker.prev, shallow))) {\n\t\t\t\tif (predicateFn(node)) {\n\t\t\t\t\treturn node;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (isForwards(direction)) {\n\t\t\tif (isContentEditableFalse(node) || isCaretContainerBlock(node)) {\n\t\t\t\tnode = skipCaretContainers(walker.next, true);\n\t\t\t\tif (predicateFn(node)) {\n\t\t\t\t\treturn node;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\twhile ((node = skipCaretContainers(walker.next, shallow))) {\n\t\t\t\tif (predicateFn(node)) {\n\t\t\t\t\treturn node;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getEditingHost(node, rootNode) {\n\t\tfor (node = node.parentNode; node && node != rootNode; node = node.parentNode) {\n\t\t\tif (isContentEditableTrue(node)) {\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\n\t\treturn rootNode;\n\t}\n\n\tfunction getParentBlock(node, rootNode) {\n\t\twhile (node && node != rootNode) {\n\t\t\tif (isBlockLike(node)) {\n\t\t\t\treturn node;\n\t\t\t}\n\n\t\t\tnode = node.parentNode;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction isInSameBlock(caretPosition1, caretPosition2, rootNode) {\n\t\treturn getParentBlock(caretPosition1.container(), rootNode) == getParentBlock(caretPosition2.container(), rootNode);\n\t}\n\n\tfunction isInSameEditingHost(caretPosition1, caretPosition2, rootNode) {\n\t\treturn getEditingHost(caretPosition1.container(), rootNode) == getEditingHost(caretPosition2.container(), rootNode);\n\t}\n\n\tfunction getChildNodeAtRelativeOffset(relativeOffset, caretPosition) {\n\t\tvar container, offset;\n\n\t\tif (!caretPosition) {\n\t\t\treturn null;\n\t\t}\n\n\t\tcontainer = caretPosition.container();\n\t\toffset = caretPosition.offset();\n\n\t\tif (!isElement(container)) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn container.childNodes[offset + relativeOffset];\n\t}\n\n\tfunction beforeAfter(before, node) {\n\t\tvar range = node.ownerDocument.createRange();\n\n\t\tif (before) {\n\t\t\trange.setStartBefore(node);\n\t\t\trange.setEndBefore(node);\n\t\t} else {\n\t\t\trange.setStartAfter(node);\n\t\t\trange.setEndAfter(node);\n\t\t}\n\n\t\treturn range;\n\t}\n\n\tfunction isNodesInSameBlock(rootNode, node1, node2) {\n\t\treturn getParentBlock(node1, rootNode) == getParentBlock(node2, rootNode);\n\t}\n\n\tfunction lean(left, rootNode, node) {\n\t\tvar sibling, siblingName;\n\n\t\tif (left) {\n\t\t\tsiblingName = 'previousSibling';\n\t\t} else {\n\t\t\tsiblingName = 'nextSibling';\n\t\t}\n\n\t\twhile (node && node != rootNode) {\n\t\t\tsibling = node[siblingName];\n\n\t\t\tif (isCaretContainer(sibling)) {\n\t\t\t\tsibling = sibling[siblingName];\n\t\t\t}\n\n\t\t\tif (isContentEditableFalse(sibling)) {\n\t\t\t\tif (isNodesInSameBlock(rootNode, sibling, node)) {\n\t\t\t\t\treturn sibling;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (isCaretCandidate(sibling)) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tnode = node.parentNode;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tvar before = curry(beforeAfter, true);\n\tvar after = curry(beforeAfter, false);\n\n\tfunction normalizeRange(direction, rootNode, range) {\n\t\tvar node, container, offset, location;\n\t\tvar leanLeft = curry(lean, true, rootNode);\n\t\tvar leanRight = curry(lean, false, rootNode);\n\n\t\tcontainer = range.startContainer;\n\t\toffset = range.startOffset;\n\n\t\tif (CaretContainer.isCaretContainerBlock(container)) {\n\t\t\tif (!isElement(container)) {\n\t\t\t\tcontainer = container.parentNode;\n\t\t\t}\n\n\t\t\tlocation = container.getAttribute('data-mce-caret');\n\n\t\t\tif (location == 'before') {\n\t\t\t\tnode = container.nextSibling;\n\t\t\t\tif (isContentEditableFalse(node)) {\n\t\t\t\t\treturn before(node);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (location == 'after') {\n\t\t\t\tnode = container.previousSibling;\n\t\t\t\tif (isContentEditableFalse(node)) {\n\t\t\t\t\treturn after(node);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!range.collapsed) {\n\t\t\treturn range;\n\t\t}\n\n\t\tif (NodeType.isText(container)) {\n\t\t\tif (isCaretContainer(container)) {\n\t\t\t\tif (direction === 1) {\n\t\t\t\t\tnode = leanRight(container);\n\t\t\t\t\tif (node) {\n\t\t\t\t\t\treturn before(node);\n\t\t\t\t\t}\n\n\t\t\t\t\tnode = leanLeft(container);\n\t\t\t\t\tif (node) {\n\t\t\t\t\t\treturn after(node);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (direction === -1) {\n\t\t\t\t\tnode = leanLeft(container);\n\t\t\t\t\tif (node) {\n\t\t\t\t\t\treturn after(node);\n\t\t\t\t\t}\n\n\t\t\t\t\tnode = leanRight(container);\n\t\t\t\t\tif (node) {\n\t\t\t\t\t\treturn before(node);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn range;\n\t\t\t}\n\n\t\t\tif (CaretContainer.endsWithCaretContainer(container) && offset >= container.data.length - 1) {\n\t\t\t\tif (direction === 1) {\n\t\t\t\t\tnode = leanRight(container);\n\t\t\t\t\tif (node) {\n\t\t\t\t\t\treturn before(node);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn range;\n\t\t\t}\n\n\t\t\tif (CaretContainer.startsWithCaretContainer(container) && offset <= 1) {\n\t\t\t\tif (direction === -1) {\n\t\t\t\t\tnode = leanLeft(container);\n\t\t\t\t\tif (node) {\n\t\t\t\t\t\treturn after(node);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn range;\n\t\t\t}\n\n\t\t\tif (offset === container.data.length) {\n\t\t\t\tnode = leanRight(container);\n\t\t\t\tif (node) {\n\t\t\t\t\treturn before(node);\n\t\t\t\t}\n\n\t\t\t\treturn range;\n\t\t\t}\n\n\t\t\tif (offset === 0) {\n\t\t\t\tnode = leanLeft(container);\n\t\t\t\tif (node) {\n\t\t\t\t\treturn after(node);\n\t\t\t\t}\n\n\t\t\t\treturn range;\n\t\t\t}\n\t\t}\n\n\t\treturn range;\n\t}\n\n\tfunction isNextToContentEditableFalse(relativeOffset, caretPosition) {\n\t\treturn isContentEditableFalse(getChildNodeAtRelativeOffset(relativeOffset, caretPosition));\n\t}\n\n\treturn {\n\t\tisForwards: isForwards,\n\t\tisBackwards: isBackwards,\n\t\tfindNode: findNode,\n\t\tgetEditingHost: getEditingHost,\n\t\tgetParentBlock: getParentBlock,\n\t\tisInSameBlock: isInSameBlock,\n\t\tisInSameEditingHost: isInSameEditingHost,\n\t\tisBeforeContentEditableFalse: curry(isNextToContentEditableFalse, 0),\n\t\tisAfterContentEditableFalse: curry(isNextToContentEditableFalse, -1),\n\t\tnormalizeRange: normalizeRange\n\t};\n});\n\n// Included from: js/tinymce/classes/caret/CaretWalker.js\n\n/**\n * CaretWalker.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This module contains logic for moving around a virtual caret in logical order within a DOM element.\n *\n * It ignores the most obvious invalid caret locations such as within a script element or within a\n * contentEditable=false element but it will return locations that isn't possible to render visually.\n *\n * @private\n * @class tinymce.caret.CaretWalker\n * @example\n * var caretWalker = new CaretWalker(rootElm);\n *\n * var prevLogicalCaretPosition = caretWalker.prev(CaretPosition.fromRangeStart(range));\n * var nextLogicalCaretPosition = caretWalker.next(CaretPosition.fromRangeEnd(range));\n */\ndefine(\"tinymce/caret/CaretWalker\", [\n\t\"tinymce/dom/NodeType\",\n\t\"tinymce/caret/CaretCandidate\",\n\t\"tinymce/caret/CaretPosition\",\n\t\"tinymce/caret/CaretUtils\",\n\t\"tinymce/util/Arr\",\n\t\"tinymce/util/Fun\"\n], function(NodeType, CaretCandidate, CaretPosition, CaretUtils, Arr, Fun) {\n\tvar isContentEditableFalse = NodeType.isContentEditableFalse,\n\t\tisText = NodeType.isText,\n\t\tisElement = NodeType.isElement,\n\t\tisBr = NodeType.isBr,\n\t\tisForwards = CaretUtils.isForwards,\n\t\tisBackwards = CaretUtils.isBackwards,\n\t\tisCaretCandidate = CaretCandidate.isCaretCandidate,\n\t\tisAtomic = CaretCandidate.isAtomic,\n\t\tisEditableCaretCandidate = CaretCandidate.isEditableCaretCandidate;\n\n\tfunction getParents(node, rootNode) {\n\t\tvar parents = [];\n\n\t\twhile (node && node != rootNode) {\n\t\t\tparents.push(node);\n\t\t\tnode = node.parentNode;\n\t\t}\n\n\t\treturn parents;\n\t}\n\n\tfunction nodeAtIndex(container, offset) {\n\t\tif (container.hasChildNodes() && offset < container.childNodes.length) {\n\t\t\treturn container.childNodes[offset];\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getCaretCandidatePosition(direction, node) {\n\t\tif (isForwards(direction)) {\n\t\t\tif (isCaretCandidate(node.previousSibling) && !isText(node.previousSibling)) {\n\t\t\t\treturn CaretPosition.before(node);\n\t\t\t}\n\n\t\t\tif (isText(node)) {\n\t\t\t\treturn CaretPosition(node, 0);\n\t\t\t}\n\t\t}\n\n\t\tif (isBackwards(direction)) {\n\t\t\tif (isCaretCandidate(node.nextSibling) && !isText(node.nextSibling)) {\n\t\t\t\treturn CaretPosition.after(node);\n\t\t\t}\n\n\t\t\tif (isText(node)) {\n\t\t\t\treturn CaretPosition(node, node.data.length);\n\t\t\t}\n\t\t}\n\n\t\tif (isBackwards(direction)) {\n\t\t\tif (isBr(node)) {\n\t\t\t\treturn CaretPosition.before(node);\n\t\t\t}\n\n\t\t\treturn CaretPosition.after(node);\n\t\t}\n\n\t\treturn CaretPosition.before(node);\n\t}\n\n\t// Jumps over BR elements

|

a

->


|a

\n\tfunction isBrBeforeBlock(node, rootNode) {\n\t\tvar next;\n\n\t\tif (!NodeType.isBr(node)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tnext = findCaretPosition(1, CaretPosition.after(node), rootNode);\n\t\tif (!next) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn !CaretUtils.isInSameBlock(CaretPosition.before(node), CaretPosition.before(next), rootNode);\n\t}\n\n\tfunction findCaretPosition(direction, startCaretPosition, rootNode) {\n\t\tvar container, offset, node, nextNode, innerNode,\n\t\t\trootContentEditableFalseElm, caretPosition;\n\n\t\tif (!isElement(rootNode) || !startCaretPosition) {\n\t\t\treturn null;\n\t\t}\n\n\t\tcaretPosition = startCaretPosition;\n\t\tcontainer = caretPosition.container();\n\t\toffset = caretPosition.offset();\n\n\t\tif (isText(container)) {\n\t\t\tif (isBackwards(direction) && offset > 0) {\n\t\t\t\treturn CaretPosition(container, --offset);\n\t\t\t}\n\n\t\t\tif (isForwards(direction) && offset < container.length) {\n\t\t\t\treturn CaretPosition(container, ++offset);\n\t\t\t}\n\n\t\t\tnode = container;\n\t\t} else {\n\t\t\tif (isBackwards(direction) && offset > 0) {\n\t\t\t\tnextNode = nodeAtIndex(container, offset - 1);\n\t\t\t\tif (isCaretCandidate(nextNode)) {\n\t\t\t\t\tif (!isAtomic(nextNode)) {\n\t\t\t\t\t\tinnerNode = CaretUtils.findNode(nextNode, direction, isEditableCaretCandidate, nextNode);\n\t\t\t\t\t\tif (innerNode) {\n\t\t\t\t\t\t\tif (isText(innerNode)) {\n\t\t\t\t\t\t\t\treturn CaretPosition(innerNode, innerNode.data.length);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn CaretPosition.after(innerNode);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (isText(nextNode)) {\n\t\t\t\t\t\treturn CaretPosition(nextNode, nextNode.data.length);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn CaretPosition.before(nextNode);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (isForwards(direction) && offset < container.childNodes.length) {\n\t\t\t\tnextNode = nodeAtIndex(container, offset);\n\t\t\t\tif (isCaretCandidate(nextNode)) {\n\t\t\t\t\tif (isBrBeforeBlock(nextNode, rootNode)) {\n\t\t\t\t\t\treturn findCaretPosition(direction, CaretPosition.after(nextNode), rootNode);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!isAtomic(nextNode)) {\n\t\t\t\t\t\tinnerNode = CaretUtils.findNode(nextNode, direction, isEditableCaretCandidate, nextNode);\n\t\t\t\t\t\tif (innerNode) {\n\t\t\t\t\t\t\tif (isText(innerNode)) {\n\t\t\t\t\t\t\t\treturn CaretPosition(innerNode, 0);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn CaretPosition.before(innerNode);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (isText(nextNode)) {\n\t\t\t\t\t\treturn CaretPosition(nextNode, 0);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn CaretPosition.after(nextNode);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnode = caretPosition.getNode();\n\t\t}\n\n\t\tif ((isForwards(direction) && caretPosition.isAtEnd()) || (isBackwards(direction) && caretPosition.isAtStart())) {\n\t\t\tnode = CaretUtils.findNode(node, direction, Fun.constant(true), rootNode, true);\n\t\t\tif (isEditableCaretCandidate(node)) {\n\t\t\t\treturn getCaretCandidatePosition(direction, node);\n\t\t\t}\n\t\t}\n\n\t\tnextNode = CaretUtils.findNode(node, direction, isEditableCaretCandidate, rootNode);\n\n\t\trootContentEditableFalseElm = Arr.last(Arr.filter(getParents(container, rootNode), isContentEditableFalse));\n\t\tif (rootContentEditableFalseElm && (!nextNode || !rootContentEditableFalseElm.contains(nextNode))) {\n\t\t\tif (isForwards(direction)) {\n\t\t\t\tcaretPosition = CaretPosition.after(rootContentEditableFalseElm);\n\t\t\t} else {\n\t\t\t\tcaretPosition = CaretPosition.before(rootContentEditableFalseElm);\n\t\t\t}\n\n\t\t\treturn caretPosition;\n\t\t}\n\n\t\tif (nextNode) {\n\t\t\treturn getCaretCandidatePosition(direction, nextNode);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\treturn function(rootNode) {\n\t\treturn {\n\t\t\t/**\n\t\t\t * Returns the next logical caret position from the specificed input\n\t\t\t * caretPoisiton or null if there isn't any more positions left for example\n\t\t\t * at the end specified root element.\n\t\t\t *\n\t\t\t * @method next\n\t\t\t * @param {tinymce.caret.CaretPosition} caretPosition Caret position to start from.\n\t\t\t * @return {tinymce.caret.CaretPosition} CaretPosition or null if no position was found.\n\t\t\t */\n\t\t\tnext: function(caretPosition) {\n\t\t\t\treturn findCaretPosition(1, caretPosition, rootNode);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the previous logical caret position from the specificed input\n\t\t\t * caretPoisiton or null if there isn't any more positions left for example\n\t\t\t * at the end specified root element.\n\t\t\t *\n\t\t\t * @method prev\n\t\t\t * @param {tinymce.caret.CaretPosition} caretPosition Caret position to start from.\n\t\t\t * @return {tinymce.caret.CaretPosition} CaretPosition or null if no position was found.\n\t\t\t */\n\t\t\tprev: function(caretPosition) {\n\t\t\t\treturn findCaretPosition(-1, caretPosition, rootNode);\n\t\t\t}\n\t\t};\n\t};\n});\n\n// Included from: js/tinymce/classes/InsertList.js\n\n/**\n * InsertList.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2016 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Handles inserts of lists into the editor instance.\n *\n * @class tinymce.InsertList\n * @private\n */\ndefine(\"tinymce/InsertList\", [\n\t\"tinymce/util/Tools\",\n\t\"tinymce/caret/CaretWalker\",\n\t\"tinymce/caret/CaretPosition\"\n], function(Tools, CaretWalker, CaretPosition) {\n\tvar isListFragment = function(fragment) {\n\t\tvar firstChild = fragment.firstChild;\n\t\tvar lastChild = fragment.lastChild;\n\n\t\t// Skip meta since it's likely \n\t\tif (firstChild && firstChild.name === 'meta') {\n\t\t\tfirstChild = firstChild.next;\n\t\t}\n\n\t\t// Skip mce_marker since it's likely \n\t\tif (lastChild && lastChild.attr('id') === 'mce_marker') {\n\t\t\tlastChild = lastChild.prev;\n\t\t}\n\n\t\tif (!firstChild || firstChild !== lastChild) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn firstChild.name === 'ul' || firstChild.name === 'ol';\n\t};\n\n\tvar cleanupDomFragment = function (domFragment) {\n\t\tvar firstChild = domFragment.firstChild;\n\t\tvar lastChild = domFragment.lastChild;\n\n\t\t// TODO: remove the meta tag from paste logic\n\t\tif (firstChild && firstChild.nodeName === 'META') {\n\t\t\tfirstChild.parentNode.removeChild(firstChild);\n\t\t}\n\n\t\tif (lastChild && lastChild.id === 'mce_marker') {\n\t\t\tlastChild.parentNode.removeChild(lastChild);\n\t\t}\n\n\t\treturn domFragment;\n\t};\n\n\tvar toDomFragment = function(dom, serializer, fragment) {\n\t\tvar html = serializer.serialize(fragment);\n\t\tvar domFragment = dom.createFragment(html);\n\n\t\treturn cleanupDomFragment(domFragment);\n\t};\n\n\tvar listItems = function(elm) {\n\t\treturn Tools.grep(elm.childNodes, function(child) {\n\t\t\treturn child.nodeName === 'LI';\n\t\t});\n\t};\n\n\tvar isEmpty = function (elm) {\n\t\treturn !elm.firstChild;\n\t};\n\n\tvar trimListItems = function(elms) {\n\t\treturn elms.length > 0 && isEmpty(elms[elms.length - 1]) ? elms.slice(0, -1) : elms;\n\t};\n\n\tvar getParentLi = function(dom, node) {\n\t\tvar parentBlock = dom.getParent(node, dom.isBlock);\n\t\treturn parentBlock && parentBlock.nodeName === 'LI' ? parentBlock : null;\n\t};\n\n\tvar isParentBlockLi = function(dom, node) {\n\t\treturn !!getParentLi(dom, node);\n\t};\n\n\tvar getSplit = function(parentNode, rng) {\n\t\tvar beforeRng = rng.cloneRange();\n\t\tvar afterRng = rng.cloneRange();\n\n\t\tbeforeRng.setStartBefore(parentNode);\n\t\tafterRng.setEndAfter(parentNode);\n\n\t\treturn [\n\t\t\tbeforeRng.cloneContents(),\n\t\t\tafterRng.cloneContents()\n\t\t];\n\t};\n\n\tvar findFirstIn = function(node, rootNode) {\n\t\tvar caretPos = CaretPosition.before(node);\n\t\tvar caretWalker = new CaretWalker(rootNode);\n\t\tvar newCaretPos = caretWalker.next(caretPos);\n\n\t\treturn newCaretPos ? newCaretPos.toRange() : null;\n\t};\n\n\tvar findLastOf = function(node, rootNode) {\n\t\tvar caretPos = CaretPosition.after(node);\n\t\tvar caretWalker = new CaretWalker(rootNode);\n\t\tvar newCaretPos = caretWalker.prev(caretPos);\n\n\t\treturn newCaretPos ? newCaretPos.toRange() : null;\n\t};\n\n\tvar insertMiddle = function(target, elms, rootNode, rng) {\n\t\tvar parts = getSplit(target, rng);\n\t\tvar parentElm = target.parentNode;\n\n\t\tparentElm.insertBefore(parts[0], target);\n\t\tTools.each(elms, function(li) {\n\t\t\tparentElm.insertBefore(li, target);\n\t\t});\n\t\tparentElm.insertBefore(parts[1], target);\n\t\tparentElm.removeChild(target);\n\n\t\treturn findLastOf(elms[elms.length - 1], rootNode);\n\t};\n\n\tvar insertBefore = function(target, elms, rootNode) {\n\t\tvar parentElm = target.parentNode;\n\n\t\tTools.each(elms, function(elm) {\n\t\t\tparentElm.insertBefore(elm, target);\n\t\t});\n\n\t\treturn findFirstIn(target, rootNode);\n\t};\n\n\tvar insertAfter = function(target, elms, rootNode, dom) {\n\t\tdom.insertAfter(elms.reverse(), target);\n\t\treturn findLastOf(elms[0], rootNode);\n\t};\n\n\tvar insertAtCaret = function(serializer, dom, rng, fragment) {\n\t\tvar domFragment = toDomFragment(dom, serializer, fragment);\n\t\tvar liTarget = getParentLi(dom, rng.startContainer);\n\t\tvar liElms = trimListItems(listItems(domFragment.firstChild));\n\t\tvar BEGINNING = 1, END = 2;\n\t\tvar rootNode = dom.getRoot();\n\n\t\tvar isAt = function(location) {\n\t\t\tvar caretPos = CaretPosition.fromRangeStart(rng);\n\t\t\tvar caretWalker = new CaretWalker(dom.getRoot());\n\t\t\tvar newPos = location === BEGINNING ? caretWalker.prev(caretPos) : caretWalker.next(caretPos);\n\n\t\t\treturn newPos ? getParentLi(dom, newPos.getNode()) !== liTarget : true;\n\t\t};\n\n\t\tif (isAt(BEGINNING)) {\n\t\t\treturn insertBefore(liTarget, liElms, rootNode);\n\t\t} else if (isAt(END)) {\n\t\t\treturn insertAfter(liTarget, liElms, rootNode, dom);\n\t\t}\n\n\t\treturn insertMiddle(liTarget, liElms, rootNode, rng);\n\t};\n\n\treturn {\n\t\tisListFragment: isListFragment,\n\t\tinsertAtCaret: insertAtCaret,\n\t\tisParentBlockLi: isParentBlockLi,\n\t\ttrimListItems: trimListItems,\n\t\tlistItems: listItems\n\t};\n});\n\n// Included from: js/tinymce/classes/InsertContent.js\n\n/**\n * InsertContent.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2016 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Handles inserts of contents into the editor instance.\n *\n * @class tinymce.InsertContent\n * @private\n */\ndefine(\"tinymce/InsertContent\", [\n\t\"tinymce/Env\",\n\t\"tinymce/util/Tools\",\n\t\"tinymce/html/Serializer\",\n\t\"tinymce/caret/CaretWalker\",\n\t\"tinymce/caret/CaretPosition\",\n\t\"tinymce/dom/ElementUtils\",\n\t\"tinymce/dom/NodeType\",\n\t\"tinymce/InsertList\"\n], function(Env, Tools, Serializer, CaretWalker, CaretPosition, ElementUtils, NodeType, InsertList) {\n\tvar isTableCell = NodeType.matchNodeNames('td th');\n\n\tvar validInsertion = function (editor, value, parentNode) {\n\t\t// Should never insert content into bogus elements, since these can\n\t\t// be resize handles or similar\n\t\tif (parentNode.getAttribute('data-mce-bogus') === 'all') {\n\t\t\tparentNode.parentNode.insertBefore(editor.dom.createFragment(value), parentNode);\n\t\t} else {\n\t\t\t// Check if parent is empty or only has one BR element then set the innerHTML of that parent\n\t\t\tvar node = parentNode.firstChild;\n\t\t\tvar node2 = parentNode.lastChild;\n\t\t\tif (!node || (node === node2 && node.nodeName === 'BR')) {///\n\t\t\t\teditor.dom.setHTML(parentNode, value);\n\t\t\t} else {\n\t\t\t\teditor.selection.setContent(value);\n\t\t\t}\n\t\t}\n\t};\n\n\tvar insertHtmlAtCaret = function(editor, value, details) {\n\t\tvar parser, serializer, parentNode, rootNode, fragment, args;\n\t\tvar marker, rng, node, node2, bookmarkHtml, merge;\n\t\tvar textInlineElements = editor.schema.getTextInlineElements();\n\t\tvar selection = editor.selection, dom = editor.dom;\n\n\t\tfunction trimOrPaddLeftRight(html) {\n\t\t\tvar rng, container, offset;\n\n\t\t\trng = selection.getRng(true);\n\t\t\tcontainer = rng.startContainer;\n\t\t\toffset = rng.startOffset;\n\n\t\t\tfunction hasSiblingText(siblingName) {\n\t\t\t\treturn container[siblingName] && container[siblingName].nodeType == 3;\n\t\t\t}\n\n\t\t\tif (container.nodeType == 3) {\n\t\t\t\tif (offset > 0) {\n\t\t\t\t\thtml = html.replace(/^ /, ' ');\n\t\t\t\t} else if (!hasSiblingText('previousSibling')) {\n\t\t\t\t\thtml = html.replace(/^ /, ' ');\n\t\t\t\t}\n\n\t\t\t\tif (offset < container.length) {\n\t\t\t\t\thtml = html.replace(/ (
|)$/, ' ');\n\t\t\t\t} else if (!hasSiblingText('nextSibling')) {\n\t\t\t\t\thtml = html.replace(/( | )(
|)$/, ' ');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn html;\n\t\t}\n\n\t\t// Removes   from a [b] c -> a  c -> a c\n\t\tfunction trimNbspAfterDeleteAndPaddValue() {\n\t\t\tvar rng, container, offset;\n\n\t\t\trng = selection.getRng(true);\n\t\t\tcontainer = rng.startContainer;\n\t\t\toffset = rng.startOffset;\n\n\t\t\tif (container.nodeType == 3 && rng.collapsed) {\n\t\t\t\tif (container.data[offset] === '\\u00a0') {\n\t\t\t\t\tcontainer.deleteData(offset, 1);\n\n\t\t\t\t\tif (!/[\\u00a0| ]$/.test(value)) {\n\t\t\t\t\t\tvalue += ' ';\n\t\t\t\t\t}\n\t\t\t\t} else if (container.data[offset - 1] === '\\u00a0') {\n\t\t\t\t\tcontainer.deleteData(offset - 1, 1);\n\n\t\t\t\t\tif (!/[\\u00a0| ]$/.test(value)) {\n\t\t\t\t\t\tvalue = ' ' + value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction reduceInlineTextElements() {\n\t\t\tif (merge) {\n\t\t\t\tvar root = editor.getBody(), elementUtils = new ElementUtils(dom);\n\n\t\t\t\tTools.each(dom.select('*[data-mce-fragment]'), function(node) {\n\t\t\t\t\tfor (var testNode = node.parentNode; testNode && testNode != root; testNode = testNode.parentNode) {\n\t\t\t\t\t\tif (textInlineElements[node.nodeName.toLowerCase()] && elementUtils.compare(testNode, node)) {\n\t\t\t\t\t\t\tdom.remove(node, true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction markFragmentElements(fragment) {\n\t\t\tvar node = fragment;\n\n\t\t\twhile ((node = node.walk())) {\n\t\t\t\tif (node.type === 1) {\n\t\t\t\t\tnode.attr('data-mce-fragment', '1');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction umarkFragmentElements(elm) {\n\t\t\tTools.each(elm.getElementsByTagName('*'), function(elm) {\n\t\t\t\telm.removeAttribute('data-mce-fragment');\n\t\t\t});\n\t\t}\n\n\t\tfunction isPartOfFragment(node) {\n\t\t\treturn !!node.getAttribute('data-mce-fragment');\n\t\t}\n\n\t\tfunction canHaveChildren(node) {\n\t\t\treturn node && !editor.schema.getShortEndedElements()[node.nodeName];\n\t\t}\n\n\t\tfunction moveSelectionToMarker(marker) {\n\t\t\tvar parentEditableFalseElm, parentBlock, nextRng;\n\n\t\t\tfunction getContentEditableFalseParent(node) {\n\t\t\t\tvar root = editor.getBody();\n\n\t\t\t\tfor (; node && node !== root; node = node.parentNode) {\n\t\t\t\t\tif (editor.dom.getContentEditable(node) === 'false') {\n\t\t\t\t\t\treturn node;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif (!marker) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tselection.scrollIntoView(marker);\n\n\t\t\t// If marker is in cE=false then move selection to that element instead\n\t\t\tparentEditableFalseElm = getContentEditableFalseParent(marker);\n\t\t\tif (parentEditableFalseElm) {\n\t\t\t\tdom.remove(marker);\n\t\t\t\tselection.select(parentEditableFalseElm);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Move selection before marker and remove it\n\t\t\trng = dom.createRng();\n\n\t\t\t// If previous sibling is a text node set the selection to the end of that node\n\t\t\tnode = marker.previousSibling;\n\t\t\tif (node && node.nodeType == 3) {\n\t\t\t\trng.setStart(node, node.nodeValue.length);\n\n\t\t\t\t// TODO: Why can't we normalize on IE\n\t\t\t\tif (!Env.ie) {\n\t\t\t\t\tnode2 = marker.nextSibling;\n\t\t\t\t\tif (node2 && node2.nodeType == 3) {\n\t\t\t\t\t\tnode.appendData(node2.data);\n\t\t\t\t\t\tnode2.parentNode.removeChild(node2);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If the previous sibling isn't a text node or doesn't exist set the selection before the marker node\n\t\t\t\trng.setStartBefore(marker);\n\t\t\t\trng.setEndBefore(marker);\n\t\t\t}\n\n\t\t\tfunction findNextCaretRng(rng) {\n\t\t\t\tvar caretPos = CaretPosition.fromRangeStart(rng);\n\t\t\t\tvar caretWalker = new CaretWalker(editor.getBody());\n\n\t\t\t\tcaretPos = caretWalker.next(caretPos);\n\t\t\t\tif (caretPos) {\n\t\t\t\t\treturn caretPos.toRange();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove the marker node and set the new range\n\t\t\tparentBlock = dom.getParent(marker, dom.isBlock);\n\t\t\tdom.remove(marker);\n\n\t\t\tif (parentBlock && dom.isEmpty(parentBlock)) {\n\t\t\t\teditor.$(parentBlock).empty();\n\n\t\t\t\trng.setStart(parentBlock, 0);\n\t\t\t\trng.setEnd(parentBlock, 0);\n\n\t\t\t\tif (!isTableCell(parentBlock) && !isPartOfFragment(parentBlock) && (nextRng = findNextCaretRng(rng))) {\n\t\t\t\t\trng = nextRng;\n\t\t\t\t\tdom.remove(parentBlock);\n\t\t\t\t} else {\n\t\t\t\t\tdom.add(parentBlock, dom.create('br', {'data-mce-bogus': '1'}));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tselection.setRng(rng);\n\t\t}\n\n\t\t// Check for whitespace before/after value\n\t\tif (/^ | $/.test(value)) {\n\t\t\tvalue = trimOrPaddLeftRight(value);\n\t\t}\n\n\t\t// Setup parser and serializer\n\t\tparser = editor.parser;\n\t\tmerge = details.merge;\n\n\t\tserializer = new Serializer({\n\t\t\tvalidate: editor.settings.validate\n\t\t}, editor.schema);\n\t\tbookmarkHtml = '​';\n\n\t\t// Run beforeSetContent handlers on the HTML to be inserted\n\t\targs = {content: value, format: 'html', selection: true};\n\t\teditor.fire('BeforeSetContent', args);\n\t\tvalue = args.content;\n\n\t\t// Add caret at end of contents if it's missing\n\t\tif (value.indexOf('{$caret}') == -1) {\n\t\t\tvalue += '{$caret}';\n\t\t}\n\n\t\t// Replace the caret marker with a span bookmark element\n\t\tvalue = value.replace(/\\{\\$caret\\}/, bookmarkHtml);\n\n\t\t// If selection is at |

then move it into

|

\n\t\trng = selection.getRng();\n\t\tvar caretElement = rng.startContainer || (rng.parentElement ? rng.parentElement() : null);\n\t\tvar body = editor.getBody();\n\t\tif (caretElement === body && selection.isCollapsed()) {\n\t\t\tif (dom.isBlock(body.firstChild) && canHaveChildren(body.firstChild) && dom.isEmpty(body.firstChild)) {\n\t\t\t\trng = dom.createRng();\n\t\t\t\trng.setStart(body.firstChild, 0);\n\t\t\t\trng.setEnd(body.firstChild, 0);\n\t\t\t\tselection.setRng(rng);\n\t\t\t}\n\t\t}\n\n\t\t// Insert node maker where we will insert the new HTML and get it's parent\n\t\tif (!selection.isCollapsed()) {\n\t\t\t// Fix for #2595 seems that delete removes one extra character on\n\t\t\t// WebKit for some odd reason if you double click select a word\n\t\t\teditor.selection.setRng(editor.selection.getRng());\n\t\t\teditor.getDoc().execCommand('Delete', false, null);\n\t\t\ttrimNbspAfterDeleteAndPaddValue();\n\t\t}\n\n\t\tparentNode = selection.getNode();\n\n\t\t// Parse the fragment within the context of the parent node\n\t\tvar parserArgs = {context: parentNode.nodeName.toLowerCase(), data: details.data};\n\t\tfragment = parser.parse(value, parserArgs);\n\n\t\t// Custom handling of lists\n\t\tif (details.paste === true && InsertList.isListFragment(fragment) && InsertList.isParentBlockLi(dom, parentNode)) {\n\t\t\trng = InsertList.insertAtCaret(serializer, dom, editor.selection.getRng(true), fragment);\n\t\t\teditor.selection.setRng(rng);\n\t\t\teditor.fire('SetContent', args);\n\t\t\treturn;\n\t\t}\n\n\t\tmarkFragmentElements(fragment);\n\n\t\t// Move the caret to a more suitable location\n\t\tnode = fragment.lastChild;\n\t\tif (node.attr('id') == 'mce_marker') {\n\t\t\tmarker = node;\n\n\t\t\tfor (node = node.prev; node; node = node.walk(true)) {\n\t\t\t\tif (node.type == 3 || !dom.isBlock(node.name)) {\n\t\t\t\t\tif (editor.schema.isValidChild(node.parent.name, 'span')) {\n\t\t\t\t\t\tnode.parent.insert(marker, node, node.name === 'br');\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\teditor._selectionOverrides.showBlockCaretContainer(parentNode);\n\n\t\t// If parser says valid we can insert the contents into that parent\n\t\tif (!parserArgs.invalid) {\n\t\t\tvalue = serializer.serialize(fragment);\n\t\t\tvalidInsertion(editor, value, parentNode);\n\t\t} else {\n\t\t\t// If the fragment was invalid within that context then we need\n\t\t\t// to parse and process the parent it's inserted into\n\n\t\t\t// Insert bookmark node and get the parent\n\t\t\tselection.setContent(bookmarkHtml);\n\t\t\tparentNode = selection.getNode();\n\t\t\trootNode = editor.getBody();\n\n\t\t\t// Opera will return the document node when selection is in root\n\t\t\tif (parentNode.nodeType == 9) {\n\t\t\t\tparentNode = node = rootNode;\n\t\t\t} else {\n\t\t\t\tnode = parentNode;\n\t\t\t}\n\n\t\t\t// Find the ancestor just before the root element\n\t\t\twhile (node !== rootNode) {\n\t\t\t\tparentNode = node;\n\t\t\t\tnode = node.parentNode;\n\t\t\t}\n\n\t\t\t// Get the outer/inner HTML depending on if we are in the root and parser and serialize that\n\t\t\tvalue = parentNode == rootNode ? rootNode.innerHTML : dom.getOuterHTML(parentNode);\n\t\t\tvalue = serializer.serialize(\n\t\t\t\tparser.parse(\n\t\t\t\t\t// Need to replace by using a function since $ in the contents would otherwise be a problem\n\t\t\t\t\tvalue.replace(//i, function() {\n\t\t\t\t\t\treturn serializer.serialize(fragment);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t);\n\n\t\t\t// Set the inner/outer HTML depending on if we are in the root or not\n\t\t\tif (parentNode == rootNode) {\n\t\t\t\tdom.setHTML(rootNode, value);\n\t\t\t} else {\n\t\t\t\tdom.setOuterHTML(parentNode, value);\n\t\t\t}\n\t\t}\n\n\t\treduceInlineTextElements();\n\t\tmoveSelectionToMarker(dom.get('mce_marker'));\n\t\tumarkFragmentElements(editor.getBody());\n\t\teditor.fire('SetContent', args);\n\t\teditor.addVisual();\n\t};\n\n\tvar processValue = function (value) {\n\t\tvar details;\n\n\t\tif (typeof value !== 'string') {\n\t\t\tdetails = Tools.extend({\n\t\t\t\tpaste: value.paste,\n\t\t\t\tdata: {\n\t\t\t\t\tpaste: value.paste\n\t\t\t\t}\n\t\t\t}, value);\n\n\t\t\treturn {\n\t\t\t\tcontent: value.content,\n\t\t\t\tdetails: details\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tcontent: value,\n\t\t\tdetails: {}\n\t\t};\n\t};\n\n\tvar insertAtCaret = function (editor, value) {\n\t\tvar result = processValue(value);\n\t\tinsertHtmlAtCaret(editor, result.content, result.details);\n\t};\n\n\treturn {\n\t\tinsertAtCaret: insertAtCaret\n\t};\n});\n\n// Included from: js/tinymce/classes/EditorCommands.js\n\n/**\n * EditorCommands.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class enables you to add custom editor commands and it contains\n * overrides for native browser commands to address various bugs and issues.\n *\n * @class tinymce.EditorCommands\n */\ndefine(\"tinymce/EditorCommands\", [\n\t\"tinymce/Env\",\n\t\"tinymce/util/Tools\",\n\t\"tinymce/dom/RangeUtils\",\n\t\"tinymce/dom/TreeWalker\",\n\t\"tinymce/InsertContent\",\n\t\"tinymce/dom/NodeType\"\n], function(Env, Tools, RangeUtils, TreeWalker, InsertContent, NodeType) {\n\t// Added for compression purposes\n\tvar each = Tools.each, extend = Tools.extend;\n\tvar map = Tools.map, inArray = Tools.inArray, explode = Tools.explode;\n\tvar isOldIE = Env.ie && Env.ie < 11;\n\tvar TRUE = true, FALSE = false;\n\n\treturn function(editor) {\n\t\tvar dom, selection, formatter,\n\t\t\tcommands = {state: {}, exec: {}, value: {}},\n\t\t\tsettings = editor.settings,\n\t\t\tbookmark;\n\n\t\teditor.on('PreInit', function() {\n\t\t\tdom = editor.dom;\n\t\t\tselection = editor.selection;\n\t\t\tsettings = editor.settings;\n\t\t\tformatter = editor.formatter;\n\t\t});\n\n\t\t/**\n\t\t * Executes the specified command.\n\t\t *\n\t\t * @method execCommand\n\t\t * @param {String} command Command to execute.\n\t\t * @param {Boolean} ui Optional user interface state.\n\t\t * @param {Object} value Optional value for command.\n\t\t * @param {Object} args Optional extra arguments to the execCommand.\n\t\t * @return {Boolean} true/false if the command was found or not.\n\t\t */\n\t\tfunction execCommand(command, ui, value, args) {\n\t\t\tvar func, customCommand, state = 0;\n\n\t\t\tif (!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(command) && (!args || !args.skip_focus)) {\n\t\t\t\teditor.focus();\n\t\t\t}\n\n\t\t\targs = editor.fire('BeforeExecCommand', {command: command, ui: ui, value: value});\n\t\t\tif (args.isDefaultPrevented()) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tcustomCommand = command.toLowerCase();\n\t\t\tif ((func = commands.exec[customCommand])) {\n\t\t\t\tfunc(customCommand, ui, value);\n\t\t\t\teditor.fire('ExecCommand', {command: command, ui: ui, value: value});\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Plugin commands\n\t\t\teach(editor.plugins, function(p) {\n\t\t\t\tif (p.execCommand && p.execCommand(command, ui, value)) {\n\t\t\t\t\teditor.fire('ExecCommand', {command: command, ui: ui, value: value});\n\t\t\t\t\tstate = true;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (state) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\t// Theme commands\n\t\t\tif (editor.theme && editor.theme.execCommand && editor.theme.execCommand(command, ui, value)) {\n\t\t\t\teditor.fire('ExecCommand', {command: command, ui: ui, value: value});\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Browser commands\n\t\t\ttry {\n\t\t\t\tstate = editor.getDoc().execCommand(command, ui, value);\n\t\t\t} catch (ex) {\n\t\t\t\t// Ignore old IE errors\n\t\t\t}\n\n\t\t\tif (state) {\n\t\t\t\teditor.fire('ExecCommand', {command: command, ui: ui, value: value});\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\t/**\n\t\t * Queries the current state for a command for example if the current selection is \"bold\".\n\t\t *\n\t\t * @method queryCommandState\n\t\t * @param {String} command Command to check the state of.\n\t\t * @return {Boolean/Number} true/false if the selected contents is bold or not, -1 if it's not found.\n\t\t */\n\t\tfunction queryCommandState(command) {\n\t\t\tvar func;\n\n\t\t\t// Is hidden then return undefined\n\t\t\tif (editor.quirks.isHidden()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcommand = command.toLowerCase();\n\t\t\tif ((func = commands.state[command])) {\n\t\t\t\treturn func(command);\n\t\t\t}\n\n\t\t\t// Browser commands\n\t\t\ttry {\n\t\t\t\treturn editor.getDoc().queryCommandState(command);\n\t\t\t} catch (ex) {\n\t\t\t\t// Fails sometimes see bug: 1896577\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\t/**\n\t\t * Queries the command value for example the current fontsize.\n\t\t *\n\t\t * @method queryCommandValue\n\t\t * @param {String} command Command to check the value of.\n\t\t * @return {Object} Command value of false if it's not found.\n\t\t */\n\t\tfunction queryCommandValue(command) {\n\t\t\tvar func;\n\n\t\t\t// Is hidden then return undefined\n\t\t\tif (editor.quirks.isHidden()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcommand = command.toLowerCase();\n\t\t\tif ((func = commands.value[command])) {\n\t\t\t\treturn func(command);\n\t\t\t}\n\n\t\t\t// Browser commands\n\t\t\ttry {\n\t\t\t\treturn editor.getDoc().queryCommandValue(command);\n\t\t\t} catch (ex) {\n\t\t\t\t// Fails sometimes see bug: 1896577\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Adds commands to the command collection.\n\t\t *\n\t\t * @method addCommands\n\t\t * @param {Object} command_list Name/value collection with commands to add, the names can also be comma separated.\n\t\t * @param {String} type Optional type to add, defaults to exec. Can be value or state as well.\n\t\t */\n\t\tfunction addCommands(command_list, type) {\n\t\t\ttype = type || 'exec';\n\n\t\t\teach(command_list, function(callback, command) {\n\t\t\t\teach(command.toLowerCase().split(','), function(command) {\n\t\t\t\t\tcommands[type][command] = callback;\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tfunction addCommand(command, callback, scope) {\n\t\t\tcommand = command.toLowerCase();\n\t\t\tcommands.exec[command] = function(command, ui, value, args) {\n\t\t\t\treturn callback.call(scope || editor, ui, value, args);\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Returns true/false if the command is supported or not.\n\t\t *\n\t\t * @method queryCommandSupported\n\t\t * @param {String} command Command that we check support for.\n\t\t * @return {Boolean} true/false if the command is supported or not.\n\t\t */\n\t\tfunction queryCommandSupported(command) {\n\t\t\tcommand = command.toLowerCase();\n\n\t\t\tif (commands.exec[command]) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Browser commands\n\t\t\ttry {\n\t\t\t\treturn editor.getDoc().queryCommandSupported(command);\n\t\t\t} catch (ex) {\n\t\t\t\t// Fails sometimes see bug: 1896577\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction addQueryStateHandler(command, callback, scope) {\n\t\t\tcommand = command.toLowerCase();\n\t\t\tcommands.state[command] = function() {\n\t\t\t\treturn callback.call(scope || editor);\n\t\t\t};\n\t\t}\n\n\t\tfunction addQueryValueHandler(command, callback, scope) {\n\t\t\tcommand = command.toLowerCase();\n\t\t\tcommands.value[command] = function() {\n\t\t\t\treturn callback.call(scope || editor);\n\t\t\t};\n\t\t}\n\n\t\tfunction hasCustomCommand(command) {\n\t\t\tcommand = command.toLowerCase();\n\t\t\treturn !!commands.exec[command];\n\t\t}\n\n\t\t// Expose public methods\n\t\textend(this, {\n\t\t\texecCommand: execCommand,\n\t\t\tqueryCommandState: queryCommandState,\n\t\t\tqueryCommandValue: queryCommandValue,\n\t\t\tqueryCommandSupported: queryCommandSupported,\n\t\t\taddCommands: addCommands,\n\t\t\taddCommand: addCommand,\n\t\t\taddQueryStateHandler: addQueryStateHandler,\n\t\t\taddQueryValueHandler: addQueryValueHandler,\n\t\t\thasCustomCommand: hasCustomCommand\n\t\t});\n\n\t\t// Private methods\n\n\t\tfunction execNativeCommand(command, ui, value) {\n\t\t\tif (ui === undefined) {\n\t\t\t\tui = FALSE;\n\t\t\t}\n\n\t\t\tif (value === undefined) {\n\t\t\t\tvalue = null;\n\t\t\t}\n\n\t\t\treturn editor.getDoc().execCommand(command, ui, value);\n\t\t}\n\n\t\tfunction isFormatMatch(name) {\n\t\t\treturn formatter.match(name);\n\t\t}\n\n\t\tfunction toggleFormat(name, value) {\n\t\t\tformatter.toggle(name, value ? {value: value} : undefined);\n\t\t\teditor.nodeChanged();\n\t\t}\n\n\t\tfunction storeSelection(type) {\n\t\t\tbookmark = selection.getBookmark(type);\n\t\t}\n\n\t\tfunction restoreSelection() {\n\t\t\tselection.moveToBookmark(bookmark);\n\t\t}\n\n\t\t// Add execCommand overrides\n\t\taddCommands({\n\t\t\t// Ignore these, added for compatibility\n\t\t\t'mceResetDesignMode,mceBeginUndoLevel': function() {},\n\n\t\t\t// Add undo manager logic\n\t\t\t'mceEndUndoLevel,mceAddUndoLevel': function() {\n\t\t\t\teditor.undoManager.add();\n\t\t\t},\n\n\t\t\t'Cut,Copy,Paste': function(command) {\n\t\t\t\tvar doc = editor.getDoc(), failed;\n\n\t\t\t\t// Try executing the native command\n\t\t\t\ttry {\n\t\t\t\t\texecNativeCommand(command);\n\t\t\t\t} catch (ex) {\n\t\t\t\t\t// Command failed\n\t\t\t\t\tfailed = TRUE;\n\t\t\t\t}\n\n\t\t\t\t// Chrome reports the paste command as supported however older IE:s will return false for cut/paste\n\t\t\t\tif (command === 'paste' && !doc.queryCommandEnabled(command)) {\n\t\t\t\t\tfailed = true;\n\t\t\t\t}\n\n\t\t\t\t// Present alert message about clipboard access not being available\n\t\t\t\tif (failed || !doc.queryCommandSupported(command)) {\n\t\t\t\t\tvar msg = editor.translate(\n\t\t\t\t\t\t\"Your browser doesn't support direct access to the clipboard. \" +\n\t\t\t\t\t\t\"Please use the Ctrl+X/C/V keyboard shortcuts instead.\"\n\t\t\t\t\t);\n\n\t\t\t\t\tif (Env.mac) {\n\t\t\t\t\t\tmsg = msg.replace(/Ctrl\\+/g, '\\u2318+');\n\t\t\t\t\t}\n\n\t\t\t\t\teditor.notificationManager.open({text: msg, type: 'error'});\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// Override unlink command\n\t\t\tunlink: function() {\n\t\t\t\tif (selection.isCollapsed()) {\n\t\t\t\t\tvar elm = editor.dom.getParent(editor.selection.getStart(), 'a');\n\t\t\t\t\tif (elm) {\n\t\t\t\t\t\teditor.dom.remove(elm, true);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tformatter.remove(\"link\");\n\t\t\t},\n\n\t\t\t// Override justify commands to use the text formatter engine\n\t\t\t'JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone': function(command) {\n\t\t\t\tvar align = command.substring(7);\n\n\t\t\t\tif (align == 'full') {\n\t\t\t\t\talign = 'justify';\n\t\t\t\t}\n\n\t\t\t\t// Remove all other alignments first\n\t\t\t\teach('left,center,right,justify'.split(','), function(name) {\n\t\t\t\t\tif (align != name) {\n\t\t\t\t\t\tformatter.remove('align' + name);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (align != 'none') {\n\t\t\t\t\ttoggleFormat('align' + align);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// Override list commands to fix WebKit bug\n\t\t\t'InsertUnorderedList,InsertOrderedList': function(command) {\n\t\t\t\tvar listElm, listParent;\n\n\t\t\t\texecNativeCommand(command);\n\n\t\t\t\t// WebKit produces lists within block elements so we need to split them\n\t\t\t\t// we will replace the native list creation logic to custom logic later on\n\t\t\t\t// TODO: Remove this when the list creation logic is removed\n\t\t\t\tlistElm = dom.getParent(selection.getNode(), 'ol,ul');\n\t\t\t\tif (listElm) {\n\t\t\t\t\tlistParent = listElm.parentNode;\n\n\t\t\t\t\t// If list is within a text block then split that block\n\t\t\t\t\tif (/^(H[1-6]|P|ADDRESS|PRE)$/.test(listParent.nodeName)) {\n\t\t\t\t\t\tstoreSelection();\n\t\t\t\t\t\tdom.split(listParent, listElm);\n\t\t\t\t\t\trestoreSelection();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// Override commands to use the text formatter engine\n\t\t\t'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': function(command) {\n\t\t\t\ttoggleFormat(command);\n\t\t\t},\n\n\t\t\t// Override commands to use the text formatter engine\n\t\t\t'ForeColor,HiliteColor,FontName': function(command, ui, value) {\n\t\t\t\ttoggleFormat(command, value);\n\t\t\t},\n\n\t\t\tFontSize: function(command, ui, value) {\n\t\t\t\tvar fontClasses, fontSizes;\n\n\t\t\t\t// Convert font size 1-7 to styles\n\t\t\t\tif (value >= 1 && value <= 7) {\n\t\t\t\t\tfontSizes = explode(settings.font_size_style_values);\n\t\t\t\t\tfontClasses = explode(settings.font_size_classes);\n\n\t\t\t\t\tif (fontClasses) {\n\t\t\t\t\t\tvalue = fontClasses[value - 1] || value;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = fontSizes[value - 1] || value;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ttoggleFormat(command, value);\n\t\t\t},\n\n\t\t\tRemoveFormat: function(command) {\n\t\t\t\tformatter.remove(command);\n\t\t\t},\n\n\t\t\tmceBlockQuote: function() {\n\t\t\t\ttoggleFormat('blockquote');\n\t\t\t},\n\n\t\t\tFormatBlock: function(command, ui, value) {\n\t\t\t\treturn toggleFormat(value || 'p');\n\t\t\t},\n\n\t\t\tmceCleanup: function() {\n\t\t\t\tvar bookmark = selection.getBookmark();\n\n\t\t\t\teditor.setContent(editor.getContent({cleanup: TRUE}), {cleanup: TRUE});\n\n\t\t\t\tselection.moveToBookmark(bookmark);\n\t\t\t},\n\n\t\t\tmceRemoveNode: function(command, ui, value) {\n\t\t\t\tvar node = value || selection.getNode();\n\n\t\t\t\t// Make sure that the body node isn't removed\n\t\t\t\tif (node != editor.getBody()) {\n\t\t\t\t\tstoreSelection();\n\t\t\t\t\teditor.dom.remove(node, TRUE);\n\t\t\t\t\trestoreSelection();\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tmceSelectNodeDepth: function(command, ui, value) {\n\t\t\t\tvar counter = 0;\n\n\t\t\t\tdom.getParent(selection.getNode(), function(node) {\n\t\t\t\t\tif (node.nodeType == 1 && counter++ == value) {\n\t\t\t\t\t\tselection.select(node);\n\t\t\t\t\t\treturn FALSE;\n\t\t\t\t\t}\n\t\t\t\t}, editor.getBody());\n\t\t\t},\n\n\t\t\tmceSelectNode: function(command, ui, value) {\n\t\t\t\tselection.select(value);\n\t\t\t},\n\n\t\t\tmceInsertContent: function(command, ui, value) {\n\t\t\t\tInsertContent.insertAtCaret(editor, value);\n\t\t\t},\n\n\t\t\tmceInsertRawHTML: function(command, ui, value) {\n\t\t\t\tselection.setContent('tiny_mce_marker');\n\t\t\t\teditor.setContent(\n\t\t\t\t\teditor.getContent().replace(/tiny_mce_marker/g, function() {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t},\n\n\t\t\tmceToggleFormat: function(command, ui, value) {\n\t\t\t\ttoggleFormat(value);\n\t\t\t},\n\n\t\t\tmceSetContent: function(command, ui, value) {\n\t\t\t\teditor.setContent(value);\n\t\t\t},\n\n\t\t\t'Indent,Outdent': function(command) {\n\t\t\t\tvar intentValue, indentUnit, value;\n\n\t\t\t\t// Setup indent level\n\t\t\t\tintentValue = settings.indentation;\n\t\t\t\tindentUnit = /[a-z%]+$/i.exec(intentValue);\n\t\t\t\tintentValue = parseInt(intentValue, 10);\n\n\t\t\t\tif (!queryCommandState('InsertUnorderedList') && !queryCommandState('InsertOrderedList')) {\n\t\t\t\t\t// If forced_root_blocks is set to false we don't have a block to indent so lets create a div\n\t\t\t\t\tif (!settings.forced_root_block && !dom.getParent(selection.getNode(), dom.isBlock)) {\n\t\t\t\t\t\tformatter.apply('div');\n\t\t\t\t\t}\n\n\t\t\t\t\teach(selection.getSelectedBlocks(), function(element) {\n\t\t\t\t\t\tif (dom.getContentEditable(element) === \"false\") {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (element.nodeName !== \"LI\") {\n\t\t\t\t\t\t\tvar indentStyleName = editor.getParam('indent_use_margin', false) ? 'margin' : 'padding';\n\t\t\t\t\t\t\tindentStyleName = element.nodeName === 'TABLE' ? 'margin' : indentStyleName;\n\t\t\t\t\t\t\tindentStyleName += dom.getStyle(element, 'direction', true) == 'rtl' ? 'Right' : 'Left';\n\n\t\t\t\t\t\t\tif (command == 'outdent') {\n\t\t\t\t\t\t\t\tvalue = Math.max(0, parseInt(element.style[indentStyleName] || 0, 10) - intentValue);\n\t\t\t\t\t\t\t\tdom.setStyle(element, indentStyleName, value ? value + indentUnit : '');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvalue = (parseInt(element.style[indentStyleName] || 0, 10) + intentValue) + indentUnit;\n\t\t\t\t\t\t\t\tdom.setStyle(element, indentStyleName, value);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\texecNativeCommand(command);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tmceRepaint: function() {\n\t\t\t},\n\n\t\t\tInsertHorizontalRule: function() {\n\t\t\t\teditor.execCommand('mceInsertContent', false, '
');\n\t\t\t},\n\n\t\t\tmceToggleVisualAid: function() {\n\t\t\t\teditor.hasVisual = !editor.hasVisual;\n\t\t\t\teditor.addVisual();\n\t\t\t},\n\n\t\t\tmceReplaceContent: function(command, ui, value) {\n\t\t\t\teditor.execCommand('mceInsertContent', false, value.replace(/\\{\\$selection\\}/g, selection.getContent({format: 'text'})));\n\t\t\t},\n\n\t\t\tmceInsertLink: function(command, ui, value) {\n\t\t\t\tvar anchor;\n\n\t\t\t\tif (typeof value == 'string') {\n\t\t\t\t\tvalue = {href: value};\n\t\t\t\t}\n\n\t\t\t\tanchor = dom.getParent(selection.getNode(), 'a');\n\n\t\t\t\t// Spaces are never valid in URLs and it's a very common mistake for people to make so we fix it here.\n\t\t\t\tvalue.href = value.href.replace(' ', '%20');\n\n\t\t\t\t// Remove existing links if there could be child links or that the href isn't specified\n\t\t\t\tif (!anchor || !value.href) {\n\t\t\t\t\tformatter.remove('link');\n\t\t\t\t}\n\n\t\t\t\t// Apply new link to selection\n\t\t\t\tif (value.href) {\n\t\t\t\t\tformatter.apply('link', value, anchor);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tselectAll: function() {\n\t\t\t\tvar root = dom.getRoot(), rng;\n\n\t\t\t\tif (selection.getRng().setStart) {\n\t\t\t\t\tvar editingHost = dom.getParent(selection.getStart(), NodeType.isContentEditableTrue);\n\t\t\t\t\tif (editingHost) {\n\t\t\t\t\t\trng = dom.createRng();\n\t\t\t\t\t\trng.selectNodeContents(editingHost);\n\t\t\t\t\t\tselection.setRng(rng);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// IE will render it's own root level block elements and sometimes\n\t\t\t\t\t// even put font elements in them when the user starts typing. So we need to\n\t\t\t\t\t// move the selection to a more suitable element from this:\n\t\t\t\t\t// |

to this:

|

\n\t\t\t\t\trng = selection.getRng();\n\t\t\t\t\tif (!rng.item) {\n\t\t\t\t\t\trng.moveToElementText(root);\n\t\t\t\t\t\trng.select();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t\"delete\": function() {\n\t\t\t\texecNativeCommand(\"Delete\");\n\n\t\t\t\t// Check if body is empty after the delete call if so then set the contents\n\t\t\t\t// to an empty string and move the caret to any block produced by that operation\n\t\t\t\t// this fixes the issue with root blocks not being properly produced after a delete call on IE\n\t\t\t\tvar body = editor.getBody();\n\n\t\t\t\tif (dom.isEmpty(body)) {\n\t\t\t\t\teditor.setContent('');\n\n\t\t\t\t\tif (body.firstChild && dom.isBlock(body.firstChild)) {\n\t\t\t\t\t\teditor.selection.setCursorLocation(body.firstChild, 0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\teditor.selection.setCursorLocation(body, 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tmceNewDocument: function() {\n\t\t\t\teditor.setContent('');\n\t\t\t},\n\n\t\t\tInsertLineBreak: function(command, ui, value) {\n\t\t\t\t// We load the current event in from EnterKey.js when appropriate to heed\n\t\t\t\t// certain event-specific variations such as ctrl-enter in a list\n\t\t\t\tvar evt = value;\n\t\t\t\tvar brElm, extraBr, marker;\n\t\t\t\tvar rng = selection.getRng(true);\n\t\t\t\tnew RangeUtils(dom).normalize(rng);\n\n\t\t\t\tvar offset = rng.startOffset;\n\t\t\t\tvar container = rng.startContainer;\n\n\t\t\t\t// Resolve node index\n\t\t\t\tif (container.nodeType == 1 && container.hasChildNodes()) {\n\t\t\t\t\tvar isAfterLastNodeInContainer = offset > container.childNodes.length - 1;\n\n\t\t\t\t\tcontainer = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\n\t\t\t\t\tif (isAfterLastNodeInContainer && container.nodeType == 3) {\n\t\t\t\t\t\toffset = container.nodeValue.length;\n\t\t\t\t\t} else {\n\t\t\t\t\t\toffset = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar parentBlock = dom.getParent(container, dom.isBlock);\n\t\t\t\tvar parentBlockName = parentBlock ? parentBlock.nodeName.toUpperCase() : ''; // IE < 9 & HTML5\n\t\t\t\tvar containerBlock = parentBlock ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null;\n\t\t\t\tvar containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : ''; // IE < 9 & HTML5\n\n\t\t\t\t// Enter inside block contained within a LI then split or insert before/after LI\n\t\t\t\tvar isControlKey = evt && evt.ctrlKey;\n\t\t\t\tif (containerBlockName == 'LI' && !isControlKey) {\n\t\t\t\t\tparentBlock = containerBlock;\n\t\t\t\t\tparentBlockName = containerBlockName;\n\t\t\t\t}\n\n\t\t\t\t// Walks the parent block to the right and look for BR elements\n\t\t\t\tfunction hasRightSideContent() {\n\t\t\t\t\tvar walker = new TreeWalker(container, parentBlock), node;\n\t\t\t\t\tvar nonEmptyElementsMap = editor.schema.getNonEmptyElements();\n\n\t\t\t\t\twhile ((node = walker.next())) {\n\t\t\t\t\t\tif (nonEmptyElementsMap[node.nodeName.toLowerCase()] || node.length > 0) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (container && container.nodeType == 3 && offset >= container.nodeValue.length) {\n\t\t\t\t\t// Insert extra BR element at the end block elements\n\t\t\t\t\tif (!isOldIE && !hasRightSideContent()) {\n\t\t\t\t\t\tbrElm = dom.create('br');\n\t\t\t\t\t\trng.insertNode(brElm);\n\t\t\t\t\t\trng.setStartAfter(brElm);\n\t\t\t\t\t\trng.setEndAfter(brElm);\n\t\t\t\t\t\textraBr = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbrElm = dom.create('br');\n\t\t\t\trng.insertNode(brElm);\n\n\t\t\t\t// Rendering modes below IE8 doesn't display BR elements in PRE unless we have a \\n before it\n\t\t\t\tvar documentMode = dom.doc.documentMode;\n\t\t\t\tif (isOldIE && parentBlockName == 'PRE' && (!documentMode || documentMode < 8)) {\n\t\t\t\t\tbrElm.parentNode.insertBefore(dom.doc.createTextNode('\\r'), brElm);\n\t\t\t\t}\n\n\t\t\t\t// Insert temp marker and scroll to that\n\t\t\t\tmarker = dom.create('span', {}, ' ');\n\t\t\t\tbrElm.parentNode.insertBefore(marker, brElm);\n\t\t\t\tselection.scrollIntoView(marker);\n\t\t\t\tdom.remove(marker);\n\n\t\t\t\tif (!extraBr) {\n\t\t\t\t\trng.setStartAfter(brElm);\n\t\t\t\t\trng.setEndAfter(brElm);\n\t\t\t\t} else {\n\t\t\t\t\trng.setStartBefore(brElm);\n\t\t\t\t\trng.setEndBefore(brElm);\n\t\t\t\t}\n\n\t\t\t\tselection.setRng(rng);\n\t\t\t\teditor.undoManager.add();\n\n\t\t\t\treturn TRUE;\n\t\t\t}\n\t\t});\n\n\t\t// Add queryCommandState overrides\n\t\taddCommands({\n\t\t\t// Override justify commands\n\t\t\t'JustifyLeft,JustifyCenter,JustifyRight,JustifyFull': function(command) {\n\t\t\t\tvar name = 'align' + command.substring(7);\n\t\t\t\tvar nodes = selection.isCollapsed() ? [dom.getParent(selection.getNode(), dom.isBlock)] : selection.getSelectedBlocks();\n\t\t\t\tvar matches = map(nodes, function(node) {\n\t\t\t\t\treturn !!formatter.matchNode(node, name);\n\t\t\t\t});\n\t\t\t\treturn inArray(matches, TRUE) !== -1;\n\t\t\t},\n\n\t\t\t'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': function(command) {\n\t\t\t\treturn isFormatMatch(command);\n\t\t\t},\n\n\t\t\tmceBlockQuote: function() {\n\t\t\t\treturn isFormatMatch('blockquote');\n\t\t\t},\n\n\t\t\tOutdent: function() {\n\t\t\t\tvar node;\n\n\t\t\t\tif (settings.inline_styles) {\n\t\t\t\t\tif ((node = dom.getParent(selection.getStart(), dom.isBlock)) && parseInt(node.style.paddingLeft, 10) > 0) {\n\t\t\t\t\t\treturn TRUE;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ((node = dom.getParent(selection.getEnd(), dom.isBlock)) && parseInt(node.style.paddingLeft, 10) > 0) {\n\t\t\t\t\t\treturn TRUE;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\tqueryCommandState('InsertUnorderedList') ||\n\t\t\t\t\tqueryCommandState('InsertOrderedList') ||\n\t\t\t\t\t(!settings.inline_styles && !!dom.getParent(selection.getNode(), 'BLOCKQUOTE'))\n\t\t\t\t);\n\t\t\t},\n\n\t\t\t'InsertUnorderedList,InsertOrderedList': function(command) {\n\t\t\t\tvar list = dom.getParent(selection.getNode(), 'ul,ol');\n\n\t\t\t\treturn list &&\n\t\t\t\t\t(\n\t\t\t\t\t\tcommand === 'insertunorderedlist' && list.tagName === 'UL' ||\n\t\t\t\t\t\tcommand === 'insertorderedlist' && list.tagName === 'OL'\n\t\t\t\t\t);\n\t\t\t}\n\t\t}, 'state');\n\n\t\t// Add queryCommandValue overrides\n\t\taddCommands({\n\t\t\t'FontSize,FontName': function(command) {\n\t\t\t\tvar value = 0, parent;\n\n\t\t\t\tif ((parent = dom.getParent(selection.getNode(), 'span'))) {\n\t\t\t\t\tif (command == 'fontsize') {\n\t\t\t\t\t\tvalue = parent.style.fontSize;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = parent.style.fontFamily.replace(/, /g, ',').replace(/[\\'\\\"]/g, '').toLowerCase();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}, 'value');\n\n\t\t// Add undo manager logic\n\t\taddCommands({\n\t\t\tUndo: function() {\n\t\t\t\teditor.undoManager.undo();\n\t\t\t},\n\n\t\t\tRedo: function() {\n\t\t\t\teditor.undoManager.redo();\n\t\t\t}\n\t\t});\n\t};\n});\n\n// Included from: js/tinymce/classes/util/URI.js\n\n/**\n * URI.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class handles parsing, modification and serialization of URI/URL strings.\n * @class tinymce.util.URI\n */\ndefine(\"tinymce/util/URI\", [\n\t\"tinymce/util/Tools\"\n], function(Tools) {\n\tvar each = Tools.each, trim = Tools.trim;\n\tvar queryParts = \"source protocol authority userInfo user password host port relative path directory file query anchor\".split(' ');\n\tvar DEFAULT_PORTS = {\n\t\t'ftp': 21,\n\t\t'http': 80,\n\t\t'https': 443,\n\t\t'mailto': 25\n\t};\n\n\t/**\n\t * Constructs a new URI instance.\n\t *\n\t * @constructor\n\t * @method URI\n\t * @param {String} url URI string to parse.\n\t * @param {Object} settings Optional settings object.\n\t */\n\tfunction URI(url, settings) {\n\t\tvar self = this, baseUri, base_url;\n\n\t\turl = trim(url);\n\t\tsettings = self.settings = settings || {};\n\t\tbaseUri = settings.base_uri;\n\n\t\t// Strange app protocol that isn't http/https or local anchor\n\t\t// For example: mailto,skype,tel etc.\n\t\tif (/^([\\w\\-]+):([^\\/]{2})/i.test(url) || /^\\s*#/.test(url)) {\n\t\t\tself.source = url;\n\t\t\treturn;\n\t\t}\n\n\t\tvar isProtocolRelative = url.indexOf('//') === 0;\n\n\t\t// Absolute path with no host, fake host and protocol\n\t\tif (url.indexOf('/') === 0 && !isProtocolRelative) {\n\t\t\turl = (baseUri ? baseUri.protocol || 'http' : 'http') + '://mce_host' + url;\n\t\t}\n\n\t\t// Relative path http:// or protocol relative //path\n\t\tif (!/^[\\w\\-]*:?\\/\\//.test(url)) {\n\t\t\tbase_url = settings.base_uri ? settings.base_uri.path : new URI(location.href).directory;\n\t\t\tif (settings.base_uri.protocol === \"\") {\n\t\t\t\turl = '//mce_host' + self.toAbsPath(base_url, url);\n\t\t\t} else {\n\t\t\t\turl = /([^#?]*)([#?]?.*)/.exec(url);\n\t\t\t\turl = ((baseUri && baseUri.protocol) || 'http') + '://mce_host' + self.toAbsPath(base_url, url[1]) + url[2];\n\t\t\t}\n\t\t}\n\n\t\t// Parse URL (Credits goes to Steave, http://blog.stevenlevithan.com/archives/parseuri)\n\t\turl = url.replace(/@@/g, '(mce_at)'); // Zope 3 workaround, they use @@something\n\n\t\t/*jshint maxlen: 255 */\n\t\t/*eslint max-len: 0 */\n\t\turl = /^(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?(?:\\/\\/)?((?:(([^:@\\/]*):?([^:@\\/]*))?@)?([^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/.exec(url);\n\n\t\teach(queryParts, function(v, i) {\n\t\t\tvar part = url[i];\n\n\t\t\t// Zope 3 workaround, they use @@something\n\t\t\tif (part) {\n\t\t\t\tpart = part.replace(/\\(mce_at\\)/g, '@@');\n\t\t\t}\n\n\t\t\tself[v] = part;\n\t\t});\n\n\t\tif (baseUri) {\n\t\t\tif (!self.protocol) {\n\t\t\t\tself.protocol = baseUri.protocol;\n\t\t\t}\n\n\t\t\tif (!self.userInfo) {\n\t\t\t\tself.userInfo = baseUri.userInfo;\n\t\t\t}\n\n\t\t\tif (!self.port && self.host === 'mce_host') {\n\t\t\t\tself.port = baseUri.port;\n\t\t\t}\n\n\t\t\tif (!self.host || self.host === 'mce_host') {\n\t\t\t\tself.host = baseUri.host;\n\t\t\t}\n\n\t\t\tself.source = '';\n\t\t}\n\n\t\tif (isProtocolRelative) {\n\t\t\tself.protocol = '';\n\t\t}\n\n\t\t//t.path = t.path || '/';\n\t}\n\n\tURI.prototype = {\n\t\t/**\n\t\t * Sets the internal path part of the URI.\n\t\t *\n\t\t * @method setPath\n\t\t * @param {string} path Path string to set.\n\t\t */\n\t\tsetPath: function(path) {\n\t\t\tvar self = this;\n\n\t\t\tpath = /^(.*?)\\/?(\\w+)?$/.exec(path);\n\n\t\t\t// Update path parts\n\t\t\tself.path = path[0];\n\t\t\tself.directory = path[1];\n\t\t\tself.file = path[2];\n\n\t\t\t// Rebuild source\n\t\t\tself.source = '';\n\t\t\tself.getURI();\n\t\t},\n\n\t\t/**\n\t\t * Converts the specified URI into a relative URI based on the current URI instance location.\n\t\t *\n\t\t * @method toRelative\n\t\t * @param {String} uri URI to convert into a relative path/URI.\n\t\t * @return {String} Relative URI from the point specified in the current URI instance.\n\t\t * @example\n\t\t * // Converts an absolute URL to an relative URL url will be somedir/somefile.htm\n\t\t * var url = new tinymce.util.URI('http://www.site.com/dir/').toRelative('http://www.site.com/dir/somedir/somefile.htm');\n\t\t */\n\t\ttoRelative: function(uri) {\n\t\t\tvar self = this, output;\n\n\t\t\tif (uri === \"./\") {\n\t\t\t\treturn uri;\n\t\t\t}\n\n\t\t\turi = new URI(uri, {base_uri: self});\n\n\t\t\t// Not on same domain/port or protocol\n\t\t\tif ((uri.host != 'mce_host' && self.host != uri.host && uri.host) || self.port != uri.port ||\n\t\t\t\t(self.protocol != uri.protocol && uri.protocol !== \"\")) {\n\t\t\t\treturn uri.getURI();\n\t\t\t}\n\n\t\t\tvar tu = self.getURI(), uu = uri.getURI();\n\n\t\t\t// Allow usage of the base_uri when relative_urls = true\n\t\t\tif (tu == uu || (tu.charAt(tu.length - 1) == \"/\" && tu.substr(0, tu.length - 1) == uu)) {\n\t\t\t\treturn tu;\n\t\t\t}\n\n\t\t\toutput = self.toRelPath(self.path, uri.path);\n\n\t\t\t// Add query\n\t\t\tif (uri.query) {\n\t\t\t\toutput += '?' + uri.query;\n\t\t\t}\n\n\t\t\t// Add anchor\n\t\t\tif (uri.anchor) {\n\t\t\t\toutput += '#' + uri.anchor;\n\t\t\t}\n\n\t\t\treturn output;\n\t\t},\n\n\t\t/**\n\t\t * Converts the specified URI into a absolute URI based on the current URI instance location.\n\t\t *\n\t\t * @method toAbsolute\n\t\t * @param {String} uri URI to convert into a relative path/URI.\n\t\t * @param {Boolean} noHost No host and protocol prefix.\n\t\t * @return {String} Absolute URI from the point specified in the current URI instance.\n\t\t * @example\n\t\t * // Converts an relative URL to an absolute URL url will be http://www.site.com/dir/somedir/somefile.htm\n\t\t * var url = new tinymce.util.URI('http://www.site.com/dir/').toAbsolute('somedir/somefile.htm');\n\t\t */\n\t\ttoAbsolute: function(uri, noHost) {\n\t\t\turi = new URI(uri, {base_uri: this});\n\n\t\t\treturn uri.getURI(noHost && this.isSameOrigin(uri));\n\t\t},\n\n\t\t/**\n\t\t * Determine whether the given URI has the same origin as this URI. Based on RFC-6454.\n\t\t * Supports default ports for protocols listed in DEFAULT_PORTS. Unsupported protocols will fail safe: they\n\t\t * won't match, if the port specifications differ.\n\t\t *\n\t\t * @method isSameOrigin\n\t\t * @param {tinymce.util.URI} uri Uri instance to compare.\n\t\t * @returns {Boolean} True if the origins are the same.\n\t\t */\n\t\tisSameOrigin: function(uri) {\n\t\t\tif (this.host == uri.host && this.protocol == uri.protocol) {\n\t\t\t\tif (this.port == uri.port) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tvar defaultPort = DEFAULT_PORTS[this.protocol];\n\t\t\t\tif (defaultPort && ((this.port || defaultPort) == (uri.port || defaultPort))) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\n\t\t/**\n\t\t * Converts a absolute path into a relative path.\n\t\t *\n\t\t * @method toRelPath\n\t\t * @param {String} base Base point to convert the path from.\n\t\t * @param {String} path Absolute path to convert into a relative path.\n\t\t */\n\t\ttoRelPath: function(base, path) {\n\t\t\tvar items, breakPoint = 0, out = '', i, l;\n\n\t\t\t// Split the paths\n\t\t\tbase = base.substring(0, base.lastIndexOf('/'));\n\t\t\tbase = base.split('/');\n\t\t\titems = path.split('/');\n\n\t\t\tif (base.length >= items.length) {\n\t\t\t\tfor (i = 0, l = base.length; i < l; i++) {\n\t\t\t\t\tif (i >= items.length || base[i] != items[i]) {\n\t\t\t\t\t\tbreakPoint = i + 1;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (base.length < items.length) {\n\t\t\t\tfor (i = 0, l = items.length; i < l; i++) {\n\t\t\t\t\tif (i >= base.length || base[i] != items[i]) {\n\t\t\t\t\t\tbreakPoint = i + 1;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (breakPoint === 1) {\n\t\t\t\treturn path;\n\t\t\t}\n\n\t\t\tfor (i = 0, l = base.length - (breakPoint - 1); i < l; i++) {\n\t\t\t\tout += \"../\";\n\t\t\t}\n\n\t\t\tfor (i = breakPoint - 1, l = items.length; i < l; i++) {\n\t\t\t\tif (i != breakPoint - 1) {\n\t\t\t\t\tout += \"/\" + items[i];\n\t\t\t\t} else {\n\t\t\t\t\tout += items[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn out;\n\t\t},\n\n\t\t/**\n\t\t * Converts a relative path into a absolute path.\n\t\t *\n\t\t * @method toAbsPath\n\t\t * @param {String} base Base point to convert the path from.\n\t\t * @param {String} path Relative path to convert into an absolute path.\n\t\t */\n\t\ttoAbsPath: function(base, path) {\n\t\t\tvar i, nb = 0, o = [], tr, outPath;\n\n\t\t\t// Split paths\n\t\t\ttr = /\\/$/.test(path) ? '/' : '';\n\t\t\tbase = base.split('/');\n\t\t\tpath = path.split('/');\n\n\t\t\t// Remove empty chunks\n\t\t\teach(base, function(k) {\n\t\t\t\tif (k) {\n\t\t\t\t\to.push(k);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tbase = o;\n\n\t\t\t// Merge relURLParts chunks\n\t\t\tfor (i = path.length - 1, o = []; i >= 0; i--) {\n\t\t\t\t// Ignore empty or .\n\t\t\t\tif (path[i].length === 0 || path[i] === \".\") {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Is parent\n\t\t\t\tif (path[i] === '..') {\n\t\t\t\t\tnb++;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Move up\n\t\t\t\tif (nb > 0) {\n\t\t\t\t\tnb--;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\to.push(path[i]);\n\t\t\t}\n\n\t\t\ti = base.length - nb;\n\n\t\t\t// If /a/b/c or /\n\t\t\tif (i <= 0) {\n\t\t\t\toutPath = o.reverse().join('/');\n\t\t\t} else {\n\t\t\t\toutPath = base.slice(0, i).join('/') + '/' + o.reverse().join('/');\n\t\t\t}\n\n\t\t\t// Add front / if it's needed\n\t\t\tif (outPath.indexOf('/') !== 0) {\n\t\t\t\toutPath = '/' + outPath;\n\t\t\t}\n\n\t\t\t// Add traling / if it's needed\n\t\t\tif (tr && outPath.lastIndexOf('/') !== outPath.length - 1) {\n\t\t\t\toutPath += tr;\n\t\t\t}\n\n\t\t\treturn outPath;\n\t\t},\n\n\t\t/**\n\t\t * Returns the full URI of the internal structure.\n\t\t *\n\t\t * @method getURI\n\t\t * @param {Boolean} noProtoHost Optional no host and protocol part. Defaults to false.\n\t\t */\n\t\tgetURI: function(noProtoHost) {\n\t\t\tvar s, self = this;\n\n\t\t\t// Rebuild source\n\t\t\tif (!self.source || noProtoHost) {\n\t\t\t\ts = '';\n\n\t\t\t\tif (!noProtoHost) {\n\t\t\t\t\tif (self.protocol) {\n\t\t\t\t\t\ts += self.protocol + '://';\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts += '//';\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.userInfo) {\n\t\t\t\t\t\ts += self.userInfo + '@';\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.host) {\n\t\t\t\t\t\ts += self.host;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.port) {\n\t\t\t\t\t\ts += ':' + self.port;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (self.path) {\n\t\t\t\t\ts += self.path;\n\t\t\t\t}\n\n\t\t\t\tif (self.query) {\n\t\t\t\t\ts += '?' + self.query;\n\t\t\t\t}\n\n\t\t\t\tif (self.anchor) {\n\t\t\t\t\ts += '#' + self.anchor;\n\t\t\t\t}\n\n\t\t\t\tself.source = s;\n\t\t\t}\n\n\t\t\treturn self.source;\n\t\t}\n\t};\n\n\tURI.parseDataUri = function(uri) {\n\t\tvar type, matches;\n\n\t\turi = decodeURIComponent(uri).split(',');\n\n\t\tmatches = /data:([^;]+)/.exec(uri[0]);\n\t\tif (matches) {\n\t\t\ttype = matches[1];\n\t\t}\n\n\t\treturn {\n\t\t\ttype: type,\n\t\t\tdata: uri[1]\n\t\t};\n\t};\n\n\tURI.getDocumentBaseUrl = function(loc) {\n\t\tvar baseUrl;\n\n\t\t// Pass applewebdata:// and other non web protocols though\n\t\tif (loc.protocol.indexOf('http') !== 0 && loc.protocol !== 'file:') {\n\t\t\tbaseUrl = loc.href;\n\t\t} else {\n\t\t\tbaseUrl = loc.protocol + '//' + loc.host + loc.pathname;\n\t\t}\n\n\t\tif (/^[^:]+:\\/\\/\\/?[^\\/]+\\//.test(baseUrl)) {\n\t\t\tbaseUrl = baseUrl.replace(/[\\?#].*$/, '').replace(/[\\/\\\\][^\\/]+$/, '');\n\n\t\t\tif (!/[\\/\\\\]$/.test(baseUrl)) {\n\t\t\t\tbaseUrl += '/';\n\t\t\t}\n\t\t}\n\n\t\treturn baseUrl;\n\t};\n\n\treturn URI;\n});\n\n// Included from: js/tinymce/classes/util/Class.js\n\n/**\n * Class.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This utilitiy class is used for easier inheritance.\n *\n * Features:\n * * Exposed super functions: this._super();\n * * Mixins\n * * Dummy functions\n * * Property functions: var value = object.value(); and object.value(newValue);\n * * Static functions\n * * Defaults settings\n */\ndefine(\"tinymce/util/Class\", [\n\t\"tinymce/util/Tools\"\n], function(Tools) {\n\tvar each = Tools.each, extend = Tools.extend;\n\n\tvar extendClass, initializing;\n\n\tfunction Class() {\n\t}\n\n\t// Provides classical inheritance, based on code made by John Resig\n\tClass.extend = extendClass = function(prop) {\n\t\tvar self = this, _super = self.prototype, prototype, name, member;\n\n\t\t// The dummy class constructor\n\t\tfunction Class() {\n\t\t\tvar i, mixins, mixin, self = this;\n\n\t\t\t// All construction is actually done in the init method\n\t\t\tif (!initializing) {\n\t\t\t\t// Run class constuctor\n\t\t\t\tif (self.init) {\n\t\t\t\t\tself.init.apply(self, arguments);\n\t\t\t\t}\n\n\t\t\t\t// Run mixin constructors\n\t\t\t\tmixins = self.Mixins;\n\t\t\t\tif (mixins) {\n\t\t\t\t\ti = mixins.length;\n\t\t\t\t\twhile (i--) {\n\t\t\t\t\t\tmixin = mixins[i];\n\t\t\t\t\t\tif (mixin.init) {\n\t\t\t\t\t\t\tmixin.init.apply(self, arguments);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Dummy function, needs to be extended in order to provide functionality\n\t\tfunction dummy() {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Creates a overloaded method for the class\n\t\t// this enables you to use this._super(); to call the super function\n\t\tfunction createMethod(name, fn) {\n\t\t\treturn function() {\n\t\t\t\tvar self = this, tmp = self._super, ret;\n\n\t\t\t\tself._super = _super[name];\n\t\t\t\tret = fn.apply(self, arguments);\n\t\t\t\tself._super = tmp;\n\n\t\t\t\treturn ret;\n\t\t\t};\n\t\t}\n\n\t\t// Instantiate a base class (but only create the instance,\n\t\t// don't run the init constructor)\n\t\tinitializing = true;\n\n\t\t/*eslint new-cap:0 */\n\t\tprototype = new self();\n\t\tinitializing = false;\n\n\t\t// Add mixins\n\t\tif (prop.Mixins) {\n\t\t\teach(prop.Mixins, function(mixin) {\n\t\t\t\tfor (var name in mixin) {\n\t\t\t\t\tif (name !== \"init\") {\n\t\t\t\t\t\tprop[name] = mixin[name];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (_super.Mixins) {\n\t\t\t\tprop.Mixins = _super.Mixins.concat(prop.Mixins);\n\t\t\t}\n\t\t}\n\n\t\t// Generate dummy methods\n\t\tif (prop.Methods) {\n\t\t\teach(prop.Methods.split(','), function(name) {\n\t\t\t\tprop[name] = dummy;\n\t\t\t});\n\t\t}\n\n\t\t// Generate property methods\n\t\tif (prop.Properties) {\n\t\t\teach(prop.Properties.split(','), function(name) {\n\t\t\t\tvar fieldName = '_' + name;\n\n\t\t\t\tprop[name] = function(value) {\n\t\t\t\t\tvar self = this, undef;\n\n\t\t\t\t\t// Set value\n\t\t\t\t\tif (value !== undef) {\n\t\t\t\t\t\tself[fieldName] = value;\n\n\t\t\t\t\t\treturn self;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Get value\n\t\t\t\t\treturn self[fieldName];\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\t// Static functions\n\t\tif (prop.Statics) {\n\t\t\teach(prop.Statics, function(func, name) {\n\t\t\t\tClass[name] = func;\n\t\t\t});\n\t\t}\n\n\t\t// Default settings\n\t\tif (prop.Defaults && _super.Defaults) {\n\t\t\tprop.Defaults = extend({}, _super.Defaults, prop.Defaults);\n\t\t}\n\n\t\t// Copy the properties over onto the new prototype\n\t\tfor (name in prop) {\n\t\t\tmember = prop[name];\n\n\t\t\tif (typeof member == \"function\" && _super[name]) {\n\t\t\t\tprototype[name] = createMethod(name, member);\n\t\t\t} else {\n\t\t\t\tprototype[name] = member;\n\t\t\t}\n\t\t}\n\n\t\t// Populate our constructed prototype object\n\t\tClass.prototype = prototype;\n\n\t\t// Enforce the constructor to be what we expect\n\t\tClass.constructor = Class;\n\n\t\t// And make this class extendible\n\t\tClass.extend = extendClass;\n\n\t\treturn Class;\n\t};\n\n\treturn Class;\n});\n\n// Included from: js/tinymce/classes/util/EventDispatcher.js\n\n/**\n * EventDispatcher.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class lets you add/remove and fire events by name on the specified scope. This makes\n * it easy to add event listener logic to any class.\n *\n * @class tinymce.util.EventDispatcher\n * @example\n * var eventDispatcher = new EventDispatcher();\n *\n * eventDispatcher.on('click', function() {console.log('data');});\n * eventDispatcher.fire('click', {data: 123});\n */\ndefine(\"tinymce/util/EventDispatcher\", [\n\t\"tinymce/util/Tools\"\n], function(Tools) {\n\tvar nativeEvents = Tools.makeMap(\n\t\t\"focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange \" +\n\t\t\"mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover \" +\n\t\t\"draggesture dragdrop drop drag submit \" +\n\t\t\"compositionstart compositionend compositionupdate touchstart touchmove touchend\",\n\t\t' '\n\t);\n\n\tfunction Dispatcher(settings) {\n\t\tvar self = this, scope, bindings = {}, toggleEvent;\n\n\t\tfunction returnFalse() {\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction returnTrue() {\n\t\t\treturn true;\n\t\t}\n\n\t\tsettings = settings || {};\n\t\tscope = settings.scope || self;\n\t\ttoggleEvent = settings.toggleEvent || returnFalse;\n\n\t\t/**\n\t\t * Fires the specified event by name.\n\t\t *\n\t\t * @method fire\n\t\t * @param {String} name Name of the event to fire.\n\t\t * @param {Object?} args Event arguments.\n\t\t * @return {Object} Event args instance passed in.\n\t\t * @example\n\t\t * instance.fire('event', {...});\n\t\t */\n\t\tfunction fire(name, args) {\n\t\t\tvar handlers, i, l, callback;\n\n\t\t\tname = name.toLowerCase();\n\t\t\targs = args || {};\n\t\t\targs.type = name;\n\n\t\t\t// Setup target is there isn't one\n\t\t\tif (!args.target) {\n\t\t\t\targs.target = scope;\n\t\t\t}\n\n\t\t\t// Add event delegation methods if they are missing\n\t\t\tif (!args.preventDefault) {\n\t\t\t\t// Add preventDefault method\n\t\t\t\targs.preventDefault = function() {\n\t\t\t\t\targs.isDefaultPrevented = returnTrue;\n\t\t\t\t};\n\n\t\t\t\t// Add stopPropagation\n\t\t\t\targs.stopPropagation = function() {\n\t\t\t\t\targs.isPropagationStopped = returnTrue;\n\t\t\t\t};\n\n\t\t\t\t// Add stopImmediatePropagation\n\t\t\t\targs.stopImmediatePropagation = function() {\n\t\t\t\t\targs.isImmediatePropagationStopped = returnTrue;\n\t\t\t\t};\n\n\t\t\t\t// Add event delegation states\n\t\t\t\targs.isDefaultPrevented = returnFalse;\n\t\t\t\targs.isPropagationStopped = returnFalse;\n\t\t\t\targs.isImmediatePropagationStopped = returnFalse;\n\t\t\t}\n\n\t\t\tif (settings.beforeFire) {\n\t\t\t\tsettings.beforeFire(args);\n\t\t\t}\n\n\t\t\thandlers = bindings[name];\n\t\t\tif (handlers) {\n\t\t\t\tfor (i = 0, l = handlers.length; i < l; i++) {\n\t\t\t\t\tcallback = handlers[i];\n\n\t\t\t\t\t// Unbind handlers marked with \"once\"\n\t\t\t\t\tif (callback.once) {\n\t\t\t\t\t\toff(name, callback.func);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Stop immediate propagation if needed\n\t\t\t\t\tif (args.isImmediatePropagationStopped()) {\n\t\t\t\t\t\targs.stopPropagation();\n\t\t\t\t\t\treturn args;\n\t\t\t\t\t}\n\n\t\t\t\t\t// If callback returns false then prevent default and stop all propagation\n\t\t\t\t\tif (callback.func.call(scope, args) === false) {\n\t\t\t\t\t\targs.preventDefault();\n\t\t\t\t\t\treturn args;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn args;\n\t\t}\n\n\t\t/**\n\t\t * Binds an event listener to a specific event by name.\n\t\t *\n\t\t * @method on\n\t\t * @param {String} name Event name or space separated list of events to bind.\n\t\t * @param {callback} callback Callback to be executed when the event occurs.\n\t\t * @param {Boolean} first Optional flag if the event should be prepended. Use this with care.\n\t\t * @return {Object} Current class instance.\n\t\t * @example\n\t\t * instance.on('event', function(e) {\n\t\t * // Callback logic\n\t\t * });\n\t\t */\n\t\tfunction on(name, callback, prepend, extra) {\n\t\t\tvar handlers, names, i;\n\n\t\t\tif (callback === false) {\n\t\t\t\tcallback = returnFalse;\n\t\t\t}\n\n\t\t\tif (callback) {\n\t\t\t\tcallback = {\n\t\t\t\t\tfunc: callback\n\t\t\t\t};\n\n\t\t\t\tif (extra) {\n\t\t\t\t\tTools.extend(callback, extra);\n\t\t\t\t}\n\n\t\t\t\tnames = name.toLowerCase().split(' ');\n\t\t\t\ti = names.length;\n\t\t\t\twhile (i--) {\n\t\t\t\t\tname = names[i];\n\t\t\t\t\thandlers = bindings[name];\n\t\t\t\t\tif (!handlers) {\n\t\t\t\t\t\thandlers = bindings[name] = [];\n\t\t\t\t\t\ttoggleEvent(name, true);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (prepend) {\n\t\t\t\t\t\thandlers.unshift(callback);\n\t\t\t\t\t} else {\n\t\t\t\t\t\thandlers.push(callback);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn self;\n\t\t}\n\n\t\t/**\n\t\t * Unbinds an event listener to a specific event by name.\n\t\t *\n\t\t * @method off\n\t\t * @param {String?} name Name of the event to unbind.\n\t\t * @param {callback?} callback Callback to unbind.\n\t\t * @return {Object} Current class instance.\n\t\t * @example\n\t\t * // Unbind specific callback\n\t\t * instance.off('event', handler);\n\t\t *\n\t\t * // Unbind all listeners by name\n\t\t * instance.off('event');\n\t\t *\n\t\t * // Unbind all events\n\t\t * instance.off();\n\t\t */\n\t\tfunction off(name, callback) {\n\t\t\tvar i, handlers, bindingName, names, hi;\n\n\t\t\tif (name) {\n\t\t\t\tnames = name.toLowerCase().split(' ');\n\t\t\t\ti = names.length;\n\t\t\t\twhile (i--) {\n\t\t\t\t\tname = names[i];\n\t\t\t\t\thandlers = bindings[name];\n\n\t\t\t\t\t// Unbind all handlers\n\t\t\t\t\tif (!name) {\n\t\t\t\t\t\tfor (bindingName in bindings) {\n\t\t\t\t\t\t\ttoggleEvent(bindingName, false);\n\t\t\t\t\t\t\tdelete bindings[bindingName];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn self;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (handlers) {\n\t\t\t\t\t\t// Unbind all by name\n\t\t\t\t\t\tif (!callback) {\n\t\t\t\t\t\t\thandlers.length = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Unbind specific ones\n\t\t\t\t\t\t\thi = handlers.length;\n\t\t\t\t\t\t\twhile (hi--) {\n\t\t\t\t\t\t\t\tif (handlers[hi].func === callback) {\n\t\t\t\t\t\t\t\t\thandlers = handlers.slice(0, hi).concat(handlers.slice(hi + 1));\n\t\t\t\t\t\t\t\t\tbindings[name] = handlers;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!handlers.length) {\n\t\t\t\t\t\t\ttoggleEvent(name, false);\n\t\t\t\t\t\t\tdelete bindings[name];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (name in bindings) {\n\t\t\t\t\ttoggleEvent(name, false);\n\t\t\t\t}\n\n\t\t\t\tbindings = {};\n\t\t\t}\n\n\t\t\treturn self;\n\t\t}\n\n\t\t/**\n\t\t * Binds an event listener to a specific event by name\n\t\t * and automatically unbind the event once the callback fires.\n\t\t *\n\t\t * @method once\n\t\t * @param {String} name Event name or space separated list of events to bind.\n\t\t * @param {callback} callback Callback to be executed when the event occurs.\n\t\t * @param {Boolean} first Optional flag if the event should be prepended. Use this with care.\n\t\t * @return {Object} Current class instance.\n\t\t * @example\n\t\t * instance.once('event', function(e) {\n\t\t * // Callback logic\n\t\t * });\n\t\t */\n\t\tfunction once(name, callback, prepend) {\n\t\t\treturn on(name, callback, prepend, {once: true});\n\t\t}\n\n\t\t/**\n\t\t * Returns true/false if the dispatcher has a event of the specified name.\n\t\t *\n\t\t * @method has\n\t\t * @param {String} name Name of the event to check for.\n\t\t * @return {Boolean} true/false if the event exists or not.\n\t\t */\n\t\tfunction has(name) {\n\t\t\tname = name.toLowerCase();\n\t\t\treturn !(!bindings[name] || bindings[name].length === 0);\n\t\t}\n\n\t\t// Expose\n\t\tself.fire = fire;\n\t\tself.on = on;\n\t\tself.off = off;\n\t\tself.once = once;\n\t\tself.has = has;\n\t}\n\n\t/**\n\t * Returns true/false if the specified event name is a native browser event or not.\n\t *\n\t * @method isNative\n\t * @param {String} name Name to check if it's native.\n\t * @return {Boolean} true/false if the event is native or not.\n\t * @static\n\t */\n\tDispatcher.isNative = function(name) {\n\t\treturn !!nativeEvents[name.toLowerCase()];\n\t};\n\n\treturn Dispatcher;\n});\n\n// Included from: js/tinymce/classes/data/Binding.js\n\n/**\n * Binding.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class gets dynamically extended to provide a binding between two models. This makes it possible to\n * sync the state of two properties in two models by a layer of abstraction.\n *\n * @private\n * @class tinymce.data.Binding\n */\ndefine(\"tinymce/data/Binding\", [], function() {\n\t/**\n\t * Constructs a new bidning.\n\t *\n\t * @constructor\n\t * @method Binding\n\t * @param {Object} settings Settings to the binding.\n\t */\n\tfunction Binding(settings) {\n\t\tthis.create = settings.create;\n\t}\n\n\t/**\n\t * Creates a binding for a property on a model.\n\t *\n\t * @method create\n\t * @param {tinymce.data.ObservableObject} model Model to create binding to.\n\t * @param {String} name Name of property to bind.\n\t * @return {tinymce.data.Binding} Binding instance.\n\t */\n\tBinding.create = function(model, name) {\n\t\treturn new Binding({\n\t\t\tcreate: function(otherModel, otherName) {\n\t\t\t\tvar bindings;\n\n\t\t\t\tfunction fromSelfToOther(e) {\n\t\t\t\t\totherModel.set(otherName, e.value);\n\t\t\t\t}\n\n\t\t\t\tfunction fromOtherToSelf(e) {\n\t\t\t\t\tmodel.set(name, e.value);\n\t\t\t\t}\n\n\t\t\t\totherModel.on('change:' + otherName, fromOtherToSelf);\n\t\t\t\tmodel.on('change:' + name, fromSelfToOther);\n\n\t\t\t\t// Keep track of the bindings\n\t\t\t\tbindings = otherModel._bindings;\n\n\t\t\t\tif (!bindings) {\n\t\t\t\t\tbindings = otherModel._bindings = [];\n\n\t\t\t\t\totherModel.on('destroy', function() {\n\t\t\t\t\t\tvar i = bindings.length;\n\n\t\t\t\t\t\twhile (i--) {\n\t\t\t\t\t\t\tbindings[i]();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tbindings.push(function() {\n\t\t\t\t\tmodel.off('change:' + name, fromSelfToOther);\n\t\t\t\t});\n\n\t\t\t\treturn model.get(name);\n\t\t\t}\n\t\t});\n\t};\n\n\treturn Binding;\n});\n\n// Included from: js/tinymce/classes/util/Observable.js\n\n/**\n * Observable.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This mixin will add event binding logic to classes.\n *\n * @mixin tinymce.util.Observable\n */\ndefine(\"tinymce/util/Observable\", [\n\t\"tinymce/util/EventDispatcher\"\n], function(EventDispatcher) {\n\tfunction getEventDispatcher(obj) {\n\t\tif (!obj._eventDispatcher) {\n\t\t\tobj._eventDispatcher = new EventDispatcher({\n\t\t\t\tscope: obj,\n\t\t\t\ttoggleEvent: function(name, state) {\n\t\t\t\t\tif (EventDispatcher.isNative(name) && obj.toggleNativeEvent) {\n\t\t\t\t\t\tobj.toggleNativeEvent(name, state);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn obj._eventDispatcher;\n\t}\n\n\treturn {\n\t\t/**\n\t\t * Fires the specified event by name. Consult the\n\t\t * event reference for more details on each event.\n\t\t *\n\t\t * @method fire\n\t\t * @param {String} name Name of the event to fire.\n\t\t * @param {Object?} args Event arguments.\n\t\t * @param {Boolean?} bubble True/false if the event is to be bubbled.\n\t\t * @return {Object} Event args instance passed in.\n\t\t * @example\n\t\t * instance.fire('event', {...});\n\t\t */\n\t\tfire: function(name, args, bubble) {\n\t\t\tvar self = this;\n\n\t\t\t// Prevent all events except the remove event after the instance has been removed\n\t\t\tif (self.removed && name !== \"remove\") {\n\t\t\t\treturn args;\n\t\t\t}\n\n\t\t\targs = getEventDispatcher(self).fire(name, args, bubble);\n\n\t\t\t// Bubble event up to parents\n\t\t\tif (bubble !== false && self.parent) {\n\t\t\t\tvar parent = self.parent();\n\t\t\t\twhile (parent && !args.isPropagationStopped()) {\n\t\t\t\t\tparent.fire(name, args, false);\n\t\t\t\t\tparent = parent.parent();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn args;\n\t\t},\n\n\t\t/**\n\t\t * Binds an event listener to a specific event by name. Consult the\n\t\t * event reference for more details on each event.\n\t\t *\n\t\t * @method on\n\t\t * @param {String} name Event name or space separated list of events to bind.\n\t\t * @param {callback} callback Callback to be executed when the event occurs.\n\t\t * @param {Boolean} first Optional flag if the event should be prepended. Use this with care.\n\t\t * @return {Object} Current class instance.\n\t\t * @example\n\t\t * instance.on('event', function(e) {\n\t\t * // Callback logic\n\t\t * });\n\t\t */\n\t\ton: function(name, callback, prepend) {\n\t\t\treturn getEventDispatcher(this).on(name, callback, prepend);\n\t\t},\n\n\t\t/**\n\t\t * Unbinds an event listener to a specific event by name. Consult the\n\t\t * event reference for more details on each event.\n\t\t *\n\t\t * @method off\n\t\t * @param {String?} name Name of the event to unbind.\n\t\t * @param {callback?} callback Callback to unbind.\n\t\t * @return {Object} Current class instance.\n\t\t * @example\n\t\t * // Unbind specific callback\n\t\t * instance.off('event', handler);\n\t\t *\n\t\t * // Unbind all listeners by name\n\t\t * instance.off('event');\n\t\t *\n\t\t * // Unbind all events\n\t\t * instance.off();\n\t\t */\n\t\toff: function(name, callback) {\n\t\t\treturn getEventDispatcher(this).off(name, callback);\n\t\t},\n\n\t\t/**\n\t\t * Bind the event callback and once it fires the callback is removed. Consult the\n\t\t * event reference for more details on each event.\n\t\t *\n\t\t * @method once\n\t\t * @param {String} name Name of the event to bind.\n\t\t * @param {callback} callback Callback to bind only once.\n\t\t * @return {Object} Current class instance.\n\t\t */\n\t\tonce: function(name, callback) {\n\t\t\treturn getEventDispatcher(this).once(name, callback);\n\t\t},\n\n\t\t/**\n\t\t * Returns true/false if the object has a event of the specified name.\n\t\t *\n\t\t * @method hasEventListeners\n\t\t * @param {String} name Name of the event to check for.\n\t\t * @return {Boolean} true/false if the event exists or not.\n\t\t */\n\t\thasEventListeners: function(name) {\n\t\t\treturn getEventDispatcher(this).has(name);\n\t\t}\n\t};\n});\n\n// Included from: js/tinymce/classes/data/ObservableObject.js\n\n/**\n * ObservableObject.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class is a object that is observable when properties changes a change event gets emitted.\n *\n * @private\n * @class tinymce.data.ObservableObject\n */\ndefine(\"tinymce/data/ObservableObject\", [\n\t\"tinymce/data/Binding\",\n\t\"tinymce/util/Observable\",\n\t\"tinymce/util/Class\",\n\t\"tinymce/util/Tools\"\n], function(Binding, Observable, Class, Tools) {\n\tfunction isNode(node) {\n\t\treturn node.nodeType > 0;\n\t}\n\n\t// Todo: Maybe this should be shallow compare since it might be huge object references\n\tfunction isEqual(a, b) {\n\t\tvar k, checked;\n\n\t\t// Strict equals\n\t\tif (a === b) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Compare null\n\t\tif (a === null || b === null) {\n\t\t\treturn a === b;\n\t\t}\n\n\t\t// Compare number, boolean, string, undefined\n\t\tif (typeof a !== \"object\" || typeof b !== \"object\") {\n\t\t\treturn a === b;\n\t\t}\n\n\t\t// Compare arrays\n\t\tif (Tools.isArray(b)) {\n\t\t\tif (a.length !== b.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tk = a.length;\n\t\t\twhile (k--) {\n\t\t\t\tif (!isEqual(a[k], b[k])) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Shallow compare nodes\n\t\tif (isNode(a) || isNode(b)) {\n\t\t\treturn a === b;\n\t\t}\n\n\t\t// Compare objects\n\t\tchecked = {};\n\t\tfor (k in b) {\n\t\t\tif (!isEqual(a[k], b[k])) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tchecked[k] = true;\n\t\t}\n\n\t\tfor (k in a) {\n\t\t\tif (!checked[k] && !isEqual(a[k], b[k])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\treturn Class.extend({\n\t\tMixins: [Observable],\n\n\t\t/**\n\t\t * Constructs a new observable object instance.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} data Initial data for the object.\n\t\t */\n\t\tinit: function(data) {\n\t\t\tvar name, value;\n\n\t\t\tdata = data || {};\n\n\t\t\tfor (name in data) {\n\t\t\t\tvalue = data[name];\n\n\t\t\t\tif (value instanceof Binding) {\n\t\t\t\t\tdata[name] = value.create(this, name);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.data = data;\n\t\t},\n\n\t\t/**\n\t\t * Sets a property on the value this will call\n\t\t * observers if the value is a change from the current value.\n\t\t *\n\t\t * @method set\n\t\t * @param {String/object} name Name of the property to set or a object of items to set.\n\t\t * @param {Object} value Value to set for the property.\n\t\t * @return {tinymce.data.ObservableObject} Observable object instance.\n\t\t */\n\t\tset: function(name, value) {\n\t\t\tvar key, args, oldValue = this.data[name];\n\n\t\t\tif (value instanceof Binding) {\n\t\t\t\tvalue = value.create(this, name);\n\t\t\t}\n\n\t\t\tif (typeof name === \"object\") {\n\t\t\t\tfor (key in name) {\n\t\t\t\t\tthis.set(key, name[key]);\n\t\t\t\t}\n\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tif (!isEqual(oldValue, value)) {\n\t\t\t\tthis.data[name] = value;\n\n\t\t\t\targs = {\n\t\t\t\t\ttarget: this,\n\t\t\t\t\tname: name,\n\t\t\t\t\tvalue: value,\n\t\t\t\t\toldValue: oldValue\n\t\t\t\t};\n\n\t\t\t\tthis.fire('change:' + name, args);\n\t\t\t\tthis.fire('change', args);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Gets a property by name.\n\t\t *\n\t\t * @method get\n\t\t * @param {String} name Name of the property to get.\n\t\t * @return {Object} Object value of propery.\n\t\t */\n\t\tget: function(name) {\n\t\t\treturn this.data[name];\n\t\t},\n\n\t\t/**\n\t\t * Returns true/false if the specified property exists.\n\t\t *\n\t\t * @method has\n\t\t * @param {String} name Name of the property to check for.\n\t\t * @return {Boolean} true/false if the item exists.\n\t\t */\n\t\thas: function(name) {\n\t\t\treturn name in this.data;\n\t\t},\n\n\t\t/**\n\t\t * Returns a dynamic property binding for the specified property name. This makes\n\t\t * it possible to sync the state of two properties in two ObservableObject instances.\n\t\t *\n\t\t * @method bind\n\t\t * @param {String} name Name of the property to sync with the property it's inserted to.\n\t\t * @return {tinymce.data.Binding} Data binding instance.\n\t\t */\n\t\tbind: function(name) {\n\t\t\treturn Binding.create(this, name);\n\t\t},\n\n\t\t/**\n\t\t * Destroys the observable object and fires the \"destroy\"\n\t\t * event and clean up any internal resources.\n\t\t *\n\t\t * @method destroy\n\t\t */\n\t\tdestroy: function() {\n\t\t\tthis.fire('destroy');\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/Selector.js\n\n/**\n * Selector.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/*eslint no-nested-ternary:0 */\n\n/**\n * Selector engine, enables you to select controls by using CSS like expressions.\n * We currently only support basic CSS expressions to reduce the size of the core\n * and the ones we support should be enough for most cases.\n *\n * @example\n * Supported expressions:\n * element\n * element#name\n * element.class\n * element[attr]\n * element[attr*=value]\n * element[attr~=value]\n * element[attr!=value]\n * element[attr^=value]\n * element[attr$=value]\n * element:\n * element:not()\n * element:first\n * element:last\n * element:odd\n * element:even\n * element element\n * element > element\n *\n * @class tinymce.ui.Selector\n */\ndefine(\"tinymce/ui/Selector\", [\n\t\"tinymce/util/Class\"\n], function(Class) {\n\t\"use strict\";\n\n\t/**\n\t * Produces an array with a unique set of objects. It will not compare the values\n\t * but the references of the objects.\n\t *\n\t * @private\n\t * @method unqiue\n\t * @param {Array} array Array to make into an array with unique items.\n\t * @return {Array} Array with unique items.\n\t */\n\tfunction unique(array) {\n\t\tvar uniqueItems = [], i = array.length, item;\n\n\t\twhile (i--) {\n\t\t\titem = array[i];\n\n\t\t\tif (!item.__checked) {\n\t\t\t\tuniqueItems.push(item);\n\t\t\t\titem.__checked = 1;\n\t\t\t}\n\t\t}\n\n\t\ti = uniqueItems.length;\n\t\twhile (i--) {\n\t\t\tdelete uniqueItems[i].__checked;\n\t\t}\n\n\t\treturn uniqueItems;\n\t}\n\n\tvar expression = /^([\\w\\\\*]+)?(?:#([\\w\\-\\\\]+))?(?:\\.([\\w\\\\\\.]+))?(?:\\[\\@?([\\w\\\\]+)([\\^\\$\\*!~]?=)([\\w\\\\]+)\\])?(?:\\:(.+))?/i;\n\n\t/*jshint maxlen:255 */\n\t/*eslint max-len:0 */\n\tvar chunker = /((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^\\[\\]]*\\]|['\"][^'\"]*['\"]|[^\\[\\]'\"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g,\n\t\twhiteSpace = /^\\s*|\\s*$/g,\n\t\tCollection;\n\n\tvar Selector = Class.extend({\n\t\t/**\n\t\t * Constructs a new Selector instance.\n\t\t *\n\t\t * @constructor\n\t\t * @method init\n\t\t * @param {String} selector CSS like selector expression.\n\t\t */\n\t\tinit: function(selector) {\n\t\t\tvar match = this.match;\n\n\t\t\tfunction compileNameFilter(name) {\n\t\t\t\tif (name) {\n\t\t\t\t\tname = name.toLowerCase();\n\n\t\t\t\t\treturn function(item) {\n\t\t\t\t\t\treturn name === '*' || item.type === name;\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction compileIdFilter(id) {\n\t\t\t\tif (id) {\n\t\t\t\t\treturn function(item) {\n\t\t\t\t\t\treturn item._name === id;\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction compileClassesFilter(classes) {\n\t\t\t\tif (classes) {\n\t\t\t\t\tclasses = classes.split('.');\n\n\t\t\t\t\treturn function(item) {\n\t\t\t\t\t\tvar i = classes.length;\n\n\t\t\t\t\t\twhile (i--) {\n\t\t\t\t\t\t\tif (!item.classes.contains(classes[i])) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction compileAttrFilter(name, cmp, check) {\n\t\t\t\tif (name) {\n\t\t\t\t\treturn function(item) {\n\t\t\t\t\t\tvar value = item[name] ? item[name]() : '';\n\n\t\t\t\t\t\treturn !cmp ? !!check :\n\t\t\t\t\t\t\tcmp === \"=\" ? value === check :\n\t\t\t\t\t\t\tcmp === \"*=\" ? value.indexOf(check) >= 0 :\n\t\t\t\t\t\t\tcmp === \"~=\" ? (\" \" + value + \" \").indexOf(\" \" + check + \" \") >= 0 :\n\t\t\t\t\t\t\tcmp === \"!=\" ? value != check :\n\t\t\t\t\t\t\tcmp === \"^=\" ? value.indexOf(check) === 0 :\n\t\t\t\t\t\t\tcmp === \"$=\" ? value.substr(value.length - check.length) === check :\n\t\t\t\t\t\t\tfalse;\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction compilePsuedoFilter(name) {\n\t\t\t\tvar notSelectors;\n\n\t\t\t\tif (name) {\n\t\t\t\t\tname = /(?:not\\((.+)\\))|(.+)/i.exec(name);\n\n\t\t\t\t\tif (!name[1]) {\n\t\t\t\t\t\tname = name[2];\n\n\t\t\t\t\t\treturn function(item, index, length) {\n\t\t\t\t\t\t\treturn name === 'first' ? index === 0 :\n\t\t\t\t\t\t\t\tname === 'last' ? index === length - 1 :\n\t\t\t\t\t\t\t\tname === 'even' ? index % 2 === 0 :\n\t\t\t\t\t\t\t\tname === 'odd' ? index % 2 === 1 :\n\t\t\t\t\t\t\t\titem[name] ? item[name]() :\n\t\t\t\t\t\t\t\tfalse;\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Compile not expression\n\t\t\t\t\tnotSelectors = parseChunks(name[1], []);\n\n\t\t\t\t\treturn function(item) {\n\t\t\t\t\t\treturn !match(item, notSelectors);\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction compile(selector, filters, direct) {\n\t\t\t\tvar parts;\n\n\t\t\t\tfunction add(filter) {\n\t\t\t\t\tif (filter) {\n\t\t\t\t\t\tfilters.push(filter);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Parse expression into parts\n\t\t\t\tparts = expression.exec(selector.replace(whiteSpace, ''));\n\n\t\t\t\tadd(compileNameFilter(parts[1]));\n\t\t\t\tadd(compileIdFilter(parts[2]));\n\t\t\t\tadd(compileClassesFilter(parts[3]));\n\t\t\t\tadd(compileAttrFilter(parts[4], parts[5], parts[6]));\n\t\t\t\tadd(compilePsuedoFilter(parts[7]));\n\n\t\t\t\t// Mark the filter with pseudo for performance\n\t\t\t\tfilters.pseudo = !!parts[7];\n\t\t\t\tfilters.direct = direct;\n\n\t\t\t\treturn filters;\n\t\t\t}\n\n\t\t\t// Parser logic based on Sizzle by John Resig\n\t\t\tfunction parseChunks(selector, selectors) {\n\t\t\t\tvar parts = [], extra, matches, i;\n\n\t\t\t\tdo {\n\t\t\t\t\tchunker.exec(\"\");\n\t\t\t\t\tmatches = chunker.exec(selector);\n\n\t\t\t\t\tif (matches) {\n\t\t\t\t\t\tselector = matches[3];\n\t\t\t\t\t\tparts.push(matches[1]);\n\n\t\t\t\t\t\tif (matches[2]) {\n\t\t\t\t\t\t\textra = matches[3];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} while (matches);\n\n\t\t\t\tif (extra) {\n\t\t\t\t\tparseChunks(extra, selectors);\n\t\t\t\t}\n\n\t\t\t\tselector = [];\n\t\t\t\tfor (i = 0; i < parts.length; i++) {\n\t\t\t\t\tif (parts[i] != '>') {\n\t\t\t\t\t\tselector.push(compile(parts[i], [], parts[i - 1] === '>'));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tselectors.push(selector);\n\n\t\t\t\treturn selectors;\n\t\t\t}\n\n\t\t\tthis._selectors = parseChunks(selector, []);\n\t\t},\n\n\t\t/**\n\t\t * Returns true/false if the selector matches the specified control.\n\t\t *\n\t\t * @method match\n\t\t * @param {tinymce.ui.Control} control Control to match against the selector.\n\t\t * @param {Array} selectors Optional array of selectors, mostly used internally.\n\t\t * @return {Boolean} true/false state if the control matches or not.\n\t\t */\n\t\tmatch: function(control, selectors) {\n\t\t\tvar i, l, si, sl, selector, fi, fl, filters, index, length, siblings, count, item;\n\n\t\t\tselectors = selectors || this._selectors;\n\t\t\tfor (i = 0, l = selectors.length; i < l; i++) {\n\t\t\t\tselector = selectors[i];\n\t\t\t\tsl = selector.length;\n\t\t\t\titem = control;\n\t\t\t\tcount = 0;\n\n\t\t\t\tfor (si = sl - 1; si >= 0; si--) {\n\t\t\t\t\tfilters = selector[si];\n\n\t\t\t\t\twhile (item) {\n\t\t\t\t\t\t// Find the index and length since a pseudo filter like :first needs it\n\t\t\t\t\t\tif (filters.pseudo) {\n\t\t\t\t\t\t\tsiblings = item.parent().items();\n\t\t\t\t\t\t\tindex = length = siblings.length;\n\t\t\t\t\t\t\twhile (index--) {\n\t\t\t\t\t\t\t\tif (siblings[index] === item) {\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (fi = 0, fl = filters.length; fi < fl; fi++) {\n\t\t\t\t\t\t\tif (!filters[fi](item, index, length)) {\n\t\t\t\t\t\t\t\tfi = fl + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (fi === fl) {\n\t\t\t\t\t\t\tcount++;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// If it didn't match the right most expression then\n\t\t\t\t\t\t\t// break since it's no point looking at the parents\n\t\t\t\t\t\t\tif (si === sl - 1) {\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\titem = item.parent();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If we found all selectors then return true otherwise continue looking\n\t\t\t\tif (count === sl) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\n\t\t/**\n\t\t * Returns a tinymce.ui.Collection with matches of the specified selector inside the specified container.\n\t\t *\n\t\t * @method find\n\t\t * @param {tinymce.ui.Control} container Container to look for items in.\n\t\t * @return {tinymce.ui.Collection} Collection with matched elements.\n\t\t */\n\t\tfind: function(container) {\n\t\t\tvar matches = [], i, l, selectors = this._selectors;\n\n\t\t\tfunction collect(items, selector, index) {\n\t\t\t\tvar i, l, fi, fl, item, filters = selector[index];\n\n\t\t\t\tfor (i = 0, l = items.length; i < l; i++) {\n\t\t\t\t\titem = items[i];\n\n\t\t\t\t\t// Run each filter against the item\n\t\t\t\t\tfor (fi = 0, fl = filters.length; fi < fl; fi++) {\n\t\t\t\t\t\tif (!filters[fi](item, i, l)) {\n\t\t\t\t\t\t\tfi = fl + 1;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// All filters matched the item\n\t\t\t\t\tif (fi === fl) {\n\t\t\t\t\t\t// Matched item is on the last expression like: panel toolbar [button]\n\t\t\t\t\t\tif (index == selector.length - 1) {\n\t\t\t\t\t\t\tmatches.push(item);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Collect next expression type\n\t\t\t\t\t\t\tif (item.items) {\n\t\t\t\t\t\t\t\tcollect(item.items(), selector, index + 1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (filters.direct) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Collect child items\n\t\t\t\t\tif (item.items) {\n\t\t\t\t\t\tcollect(item.items(), selector, index);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (container.items) {\n\t\t\t\tfor (i = 0, l = selectors.length; i < l; i++) {\n\t\t\t\t\tcollect(container.items(), selectors[i], 0);\n\t\t\t\t}\n\n\t\t\t\t// Unique the matches if needed\n\t\t\t\tif (l > 1) {\n\t\t\t\t\tmatches = unique(matches);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Fix for circular reference\n\t\t\tif (!Collection) {\n\t\t\t\t// TODO: Fix me!\n\t\t\t\tCollection = Selector.Collection;\n\t\t\t}\n\n\t\t\treturn new Collection(matches);\n\t\t}\n\t});\n\n\treturn Selector;\n});\n\n// Included from: js/tinymce/classes/ui/Collection.js\n\n/**\n * Collection.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Control collection, this class contains control instances and it enables you to\n * perform actions on all the contained items. This is very similar to how jQuery works.\n *\n * @example\n * someCollection.show().disabled(true);\n *\n * @class tinymce.ui.Collection\n */\ndefine(\"tinymce/ui/Collection\", [\n\t\"tinymce/util/Tools\",\n\t\"tinymce/ui/Selector\",\n\t\"tinymce/util/Class\"\n], function(Tools, Selector, Class) {\n\t\"use strict\";\n\n\tvar Collection, proto, push = Array.prototype.push, slice = Array.prototype.slice;\n\n\tproto = {\n\t\t/**\n\t\t * Current number of contained control instances.\n\t\t *\n\t\t * @field length\n\t\t * @type Number\n\t\t */\n\t\tlength: 0,\n\n\t\t/**\n\t\t * Constructor for the collection.\n\t\t *\n\t\t * @constructor\n\t\t * @method init\n\t\t * @param {Array} items Optional array with items to add.\n\t\t */\n\t\tinit: function(items) {\n\t\t\tif (items) {\n\t\t\t\tthis.add(items);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Adds new items to the control collection.\n\t\t *\n\t\t * @method add\n\t\t * @param {Array} items Array if items to add to collection.\n\t\t * @return {tinymce.ui.Collection} Current collection instance.\n\t\t */\n\t\tadd: function(items) {\n\t\t\tvar self = this;\n\n\t\t\t// Force single item into array\n\t\t\tif (!Tools.isArray(items)) {\n\t\t\t\tif (items instanceof Collection) {\n\t\t\t\t\tself.add(items.toArray());\n\t\t\t\t} else {\n\t\t\t\t\tpush.call(self, items);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tpush.apply(self, items);\n\t\t\t}\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Sets the contents of the collection. This will remove any existing items\n\t\t * and replace them with the ones specified in the input array.\n\t\t *\n\t\t * @method set\n\t\t * @param {Array} items Array with items to set into the Collection.\n\t\t * @return {tinymce.ui.Collection} Collection instance.\n\t\t */\n\t\tset: function(items) {\n\t\t\tvar self = this, len = self.length, i;\n\n\t\t\tself.length = 0;\n\t\t\tself.add(items);\n\n\t\t\t// Remove old entries\n\t\t\tfor (i = self.length; i < len; i++) {\n\t\t\t\tdelete self[i];\n\t\t\t}\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Filters the collection item based on the specified selector expression or selector function.\n\t\t *\n\t\t * @method filter\n\t\t * @param {String} selector Selector expression to filter items by.\n\t\t * @return {tinymce.ui.Collection} Collection containing the filtered items.\n\t\t */\n\t\tfilter: function(selector) {\n\t\t\tvar self = this, i, l, matches = [], item, match;\n\n\t\t\t// Compile string into selector expression\n\t\t\tif (typeof selector === \"string\") {\n\t\t\t\tselector = new Selector(selector);\n\n\t\t\t\tmatch = function(item) {\n\t\t\t\t\treturn selector.match(item);\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\t// Use selector as matching function\n\t\t\t\tmatch = selector;\n\t\t\t}\n\n\t\t\tfor (i = 0, l = self.length; i < l; i++) {\n\t\t\t\titem = self[i];\n\n\t\t\t\tif (match(item)) {\n\t\t\t\t\tmatches.push(item);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn new Collection(matches);\n\t\t},\n\n\t\t/**\n\t\t * Slices the items within the collection.\n\t\t *\n\t\t * @method slice\n\t\t * @param {Number} index Index to slice at.\n\t\t * @param {Number} len Optional length to slice.\n\t\t * @return {tinymce.ui.Collection} Current collection.\n\t\t */\n\t\tslice: function() {\n\t\t\treturn new Collection(slice.apply(this, arguments));\n\t\t},\n\n\t\t/**\n\t\t * Makes the current collection equal to the specified index.\n\t\t *\n\t\t * @method eq\n\t\t * @param {Number} index Index of the item to set the collection to.\n\t\t * @return {tinymce.ui.Collection} Current collection.\n\t\t */\n\t\teq: function(index) {\n\t\t\treturn index === -1 ? this.slice(index) : this.slice(index, +index + 1);\n\t\t},\n\n\t\t/**\n\t\t * Executes the specified callback on each item in collection.\n\t\t *\n\t\t * @method each\n\t\t * @param {function} callback Callback to execute for each item in collection.\n\t\t * @return {tinymce.ui.Collection} Current collection instance.\n\t\t */\n\t\teach: function(callback) {\n\t\t\tTools.each(this, callback);\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Returns an JavaScript array object of the contents inside the collection.\n\t\t *\n\t\t * @method toArray\n\t\t * @return {Array} Array with all items from collection.\n\t\t */\n\t\ttoArray: function() {\n\t\t\treturn Tools.toArray(this);\n\t\t},\n\n\t\t/**\n\t\t * Finds the index of the specified control or return -1 if it isn't in the collection.\n\t\t *\n\t\t * @method indexOf\n\t\t * @param {Control} ctrl Control instance to look for.\n\t\t * @return {Number} Index of the specified control or -1.\n\t\t */\n\t\tindexOf: function(ctrl) {\n\t\t\tvar self = this, i = self.length;\n\n\t\t\twhile (i--) {\n\t\t\t\tif (self[i] === ctrl) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn i;\n\t\t},\n\n\t\t/**\n\t\t * Returns a new collection of the contents in reverse order.\n\t\t *\n\t\t * @method reverse\n\t\t * @return {tinymce.ui.Collection} Collection instance with reversed items.\n\t\t */\n\t\treverse: function() {\n\t\t\treturn new Collection(Tools.toArray(this).reverse());\n\t\t},\n\n\t\t/**\n\t\t * Returns true/false if the class exists or not.\n\t\t *\n\t\t * @method hasClass\n\t\t * @param {String} cls Class to check for.\n\t\t * @return {Boolean} true/false state if the class exists or not.\n\t\t */\n\t\thasClass: function(cls) {\n\t\t\treturn this[0] ? this[0].classes.contains(cls) : false;\n\t\t},\n\n\t\t/**\n\t\t * Sets/gets the specific property on the items in the collection. The same as executing control.();\n\t\t *\n\t\t * @method prop\n\t\t * @param {String} name Property name to get/set.\n\t\t * @param {Object} value Optional object value to set.\n\t\t * @return {tinymce.ui.Collection} Current collection instance or value of the first item on a get operation.\n\t\t */\n\t\tprop: function(name, value) {\n\t\t\tvar self = this, undef, item;\n\n\t\t\tif (value !== undef) {\n\t\t\t\tself.each(function(item) {\n\t\t\t\t\tif (item[name]) {\n\t\t\t\t\t\titem[name](value);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn self;\n\t\t\t}\n\n\t\t\titem = self[0];\n\n\t\t\tif (item && item[name]) {\n\t\t\t\treturn item[name]();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Executes the specific function name with optional arguments an all items in collection if it exists.\n\t\t *\n\t\t * @example collection.exec(\"myMethod\", arg1, arg2, arg3);\n\t\t * @method exec\n\t\t * @param {String} name Name of the function to execute.\n\t\t * @param {Object} ... Multiple arguments to pass to each function.\n\t\t * @return {tinymce.ui.Collection} Current collection.\n\t\t */\n\t\texec: function(name) {\n\t\t\tvar self = this, args = Tools.toArray(arguments).slice(1);\n\n\t\t\tself.each(function(item) {\n\t\t\t\tif (item[name]) {\n\t\t\t\t\titem[name].apply(item, args);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Remove all items from collection and DOM.\n\t\t *\n\t\t * @method remove\n\t\t * @return {tinymce.ui.Collection} Current collection.\n\t\t */\n\t\tremove: function() {\n\t\t\tvar i = this.length;\n\n\t\t\twhile (i--) {\n\t\t\t\tthis[i].remove();\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Adds a class to all items in the collection.\n\t\t *\n\t\t * @method addClass\n\t\t * @param {String} cls Class to add to each item.\n\t\t * @return {tinymce.ui.Collection} Current collection instance.\n\t\t */\n\t\taddClass: function(cls) {\n\t\t\treturn this.each(function(item) {\n\t\t\t\titem.classes.add(cls);\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Removes the specified class from all items in collection.\n\t\t *\n\t\t * @method removeClass\n\t\t * @param {String} cls Class to remove from each item.\n\t\t * @return {tinymce.ui.Collection} Current collection instance.\n\t\t */\n\t\tremoveClass: function(cls) {\n\t\t\treturn this.each(function(item) {\n\t\t\t\titem.classes.remove(cls);\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Fires the specified event by name and arguments on the control. This will execute all\n\t\t * bound event handlers.\n\t\t *\n\t\t * @method fire\n\t\t * @param {String} name Name of the event to fire.\n\t\t * @param {Object} args Optional arguments to pass to the event.\n\t\t * @return {tinymce.ui.Collection} Current collection instance.\n\t\t */\n\t\t// fire: function(event, args) {}, -- Generated by code below\n\n\t\t/**\n\t\t * Binds a callback to the specified event. This event can both be\n\t\t * native browser events like \"click\" or custom ones like PostRender.\n\t\t *\n\t\t * The callback function will have two parameters the first one being the control that received the event\n\t\t * the second one will be the event object either the browsers native event object or a custom JS object.\n\t\t *\n\t\t * @method on\n\t\t * @param {String} name Name of the event to bind. For example \"click\".\n\t\t * @param {String/function} callback Callback function to execute ones the event occurs.\n\t\t * @return {tinymce.ui.Collection} Current collection instance.\n\t\t */\n\t\t// on: function(name, callback) {}, -- Generated by code below\n\n\t\t/**\n\t\t * Unbinds the specified event and optionally a specific callback. If you omit the name\n\t\t * parameter all event handlers will be removed. If you omit the callback all event handles\n\t\t * by the specified name will be removed.\n\t\t *\n\t\t * @method off\n\t\t * @param {String} name Optional name for the event to unbind.\n\t\t * @param {function} callback Optional callback function to unbind.\n\t\t * @return {tinymce.ui.Collection} Current collection instance.\n\t\t */\n\t\t// off: function(name, callback) {}, -- Generated by code below\n\n\t\t/**\n\t\t * Shows the items in the current collection.\n\t\t *\n\t\t * @method show\n\t\t * @return {tinymce.ui.Collection} Current collection instance.\n\t\t */\n\t\t// show: function() {}, -- Generated by code below\n\n\t\t/**\n\t\t * Hides the items in the current collection.\n\t\t *\n\t\t * @method hide\n\t\t * @return {tinymce.ui.Collection} Current collection instance.\n\t\t */\n\t\t// hide: function() {}, -- Generated by code below\n\n\t\t/**\n\t\t * Sets/gets the text contents of the items in the current collection.\n\t\t *\n\t\t * @method text\n\t\t * @return {tinymce.ui.Collection} Current collection instance or text value of the first item on a get operation.\n\t\t */\n\t\t// text: function(value) {}, -- Generated by code below\n\n\t\t/**\n\t\t * Sets/gets the name contents of the items in the current collection.\n\t\t *\n\t\t * @method name\n\t\t * @return {tinymce.ui.Collection} Current collection instance or name value of the first item on a get operation.\n\t\t */\n\t\t// name: function(value) {}, -- Generated by code below\n\n\t\t/**\n\t\t * Sets/gets the disabled state on the items in the current collection.\n\t\t *\n\t\t * @method disabled\n\t\t * @return {tinymce.ui.Collection} Current collection instance or disabled state of the first item on a get operation.\n\t\t */\n\t\t// disabled: function(state) {}, -- Generated by code below\n\n\t\t/**\n\t\t * Sets/gets the active state on the items in the current collection.\n\t\t *\n\t\t * @method active\n\t\t * @return {tinymce.ui.Collection} Current collection instance or active state of the first item on a get operation.\n\t\t */\n\t\t// active: function(state) {}, -- Generated by code below\n\n\t\t/**\n\t\t * Sets/gets the selected state on the items in the current collection.\n\t\t *\n\t\t * @method selected\n\t\t * @return {tinymce.ui.Collection} Current collection instance or selected state of the first item on a get operation.\n\t\t */\n\t\t// selected: function(state) {}, -- Generated by code below\n\n\t\t/**\n\t\t * Sets/gets the selected state on the items in the current collection.\n\t\t *\n\t\t * @method visible\n\t\t * @return {tinymce.ui.Collection} Current collection instance or visible state of the first item on a get operation.\n\t\t */\n\t\t// visible: function(state) {}, -- Generated by code below\n\t};\n\n\t// Extend tinymce.ui.Collection prototype with some generated control specific methods\n\tTools.each('fire on off show hide append prepend before after reflow'.split(' '), function(name) {\n\t\tproto[name] = function() {\n\t\t\tvar args = Tools.toArray(arguments);\n\n\t\t\tthis.each(function(ctrl) {\n\t\t\t\tif (name in ctrl) {\n\t\t\t\t\tctrl[name].apply(ctrl, args);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn this;\n\t\t};\n\t});\n\n\t// Extend tinymce.ui.Collection prototype with some property methods\n\tTools.each('text name disabled active selected checked visible parent value data'.split(' '), function(name) {\n\t\tproto[name] = function(value) {\n\t\t\treturn this.prop(name, value);\n\t\t};\n\t});\n\n\t// Create class based on the new prototype\n\tCollection = Class.extend(proto);\n\n\t// Stick Collection into Selector to prevent circual references\n\tSelector.Collection = Collection;\n\n\treturn Collection;\n});\n\n// Included from: js/tinymce/classes/ui/DomUtils.js\n\n/**\n * DomUtils.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Private UI DomUtils proxy.\n *\n * @private\n * @class tinymce.ui.DomUtils\n */\ndefine(\"tinymce/ui/DomUtils\", [\n\t\"tinymce/Env\",\n\t\"tinymce/util/Tools\",\n\t\"tinymce/dom/DOMUtils\"\n], function(Env, Tools, DOMUtils) {\n\t\"use strict\";\n\n\tvar count = 0;\n\n\tvar funcs = {\n\t\tid: function() {\n\t\t\treturn 'mceu_' + (count++);\n\t\t},\n\n\t\tcreate: function(name, attrs, children) {\n\t\t\tvar elm = document.createElement(name);\n\n\t\t\tDOMUtils.DOM.setAttribs(elm, attrs);\n\n\t\t\tif (typeof children === 'string') {\n\t\t\t\telm.innerHTML = children;\n\t\t\t} else {\n\t\t\t\tTools.each(children, function(child) {\n\t\t\t\t\tif (child.nodeType) {\n\t\t\t\t\t\telm.appendChild(child);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn elm;\n\t\t},\n\n\t\tcreateFragment: function(html) {\n\t\t\treturn DOMUtils.DOM.createFragment(html);\n\t\t},\n\n\t\tgetWindowSize: function() {\n\t\t\treturn DOMUtils.DOM.getViewPort();\n\t\t},\n\n\t\tgetSize: function(elm) {\n\t\t\tvar width, height;\n\n\t\t\tif (elm.getBoundingClientRect) {\n\t\t\t\tvar rect = elm.getBoundingClientRect();\n\n\t\t\t\twidth = Math.max(rect.width || (rect.right - rect.left), elm.offsetWidth);\n\t\t\t\theight = Math.max(rect.height || (rect.bottom - rect.bottom), elm.offsetHeight);\n\t\t\t} else {\n\t\t\t\twidth = elm.offsetWidth;\n\t\t\t\theight = elm.offsetHeight;\n\t\t\t}\n\n\t\t\treturn {width: width, height: height};\n\t\t},\n\n\t\tgetPos: function(elm, root) {\n\t\t\treturn DOMUtils.DOM.getPos(elm, root || funcs.getContainer());\n\t\t},\n\n\t\tgetContainer: function () {\n\t\t\treturn Env.container ? Env.container : document.body;\n\t\t},\n\n\t\tgetViewPort: function(win) {\n\t\t\treturn DOMUtils.DOM.getViewPort(win);\n\t\t},\n\n\t\tget: function(id) {\n\t\t\treturn document.getElementById(id);\n\t\t},\n\n\t\taddClass: function(elm, cls) {\n\t\t\treturn DOMUtils.DOM.addClass(elm, cls);\n\t\t},\n\n\t\tremoveClass: function(elm, cls) {\n\t\t\treturn DOMUtils.DOM.removeClass(elm, cls);\n\t\t},\n\n\t\thasClass: function(elm, cls) {\n\t\t\treturn DOMUtils.DOM.hasClass(elm, cls);\n\t\t},\n\n\t\ttoggleClass: function(elm, cls, state) {\n\t\t\treturn DOMUtils.DOM.toggleClass(elm, cls, state);\n\t\t},\n\n\t\tcss: function(elm, name, value) {\n\t\t\treturn DOMUtils.DOM.setStyle(elm, name, value);\n\t\t},\n\n\t\tgetRuntimeStyle: function(elm, name) {\n\t\t\treturn DOMUtils.DOM.getStyle(elm, name, true);\n\t\t},\n\n\t\ton: function(target, name, callback, scope) {\n\t\t\treturn DOMUtils.DOM.bind(target, name, callback, scope);\n\t\t},\n\n\t\toff: function(target, name, callback) {\n\t\t\treturn DOMUtils.DOM.unbind(target, name, callback);\n\t\t},\n\n\t\tfire: function(target, name, args) {\n\t\t\treturn DOMUtils.DOM.fire(target, name, args);\n\t\t},\n\n\t\tinnerHtml: function(elm, html) {\n\t\t\t// Workaround for
in

bug on IE 8 #6178\n\t\t\tDOMUtils.DOM.setHTML(elm, html);\n\t\t}\n\t};\n\n\treturn funcs;\n});\n\n// Included from: js/tinymce/classes/ui/BoxUtils.js\n\n/**\n * BoxUtils.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Utility class for box parsing and measuring.\n *\n * @private\n * @class tinymce.ui.BoxUtils\n */\ndefine(\"tinymce/ui/BoxUtils\", [\n], function() {\n\t\"use strict\";\n\n\treturn {\n\t\t/**\n\t\t * Parses the specified box value. A box value contains 1-4 properties in clockwise order.\n\t\t *\n\t\t * @method parseBox\n\t\t * @param {String/Number} value Box value \"0 1 2 3\" or \"0\" etc.\n\t\t * @return {Object} Object with top/right/bottom/left properties.\n\t\t * @private\n\t\t */\n\t\tparseBox: function(value) {\n\t\t\tvar len, radix = 10;\n\n\t\t\tif (!value) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof value === \"number\") {\n\t\t\t\tvalue = value || 0;\n\n\t\t\t\treturn {\n\t\t\t\t\ttop: value,\n\t\t\t\t\tleft: value,\n\t\t\t\t\tbottom: value,\n\t\t\t\t\tright: value\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tvalue = value.split(' ');\n\t\t\tlen = value.length;\n\n\t\t\tif (len === 1) {\n\t\t\t\tvalue[1] = value[2] = value[3] = value[0];\n\t\t\t} else if (len === 2) {\n\t\t\t\tvalue[2] = value[0];\n\t\t\t\tvalue[3] = value[1];\n\t\t\t} else if (len === 3) {\n\t\t\t\tvalue[3] = value[1];\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttop: parseInt(value[0], radix) || 0,\n\t\t\t\tright: parseInt(value[1], radix) || 0,\n\t\t\t\tbottom: parseInt(value[2], radix) || 0,\n\t\t\t\tleft: parseInt(value[3], radix) || 0\n\t\t\t};\n\t\t},\n\n\t\tmeasureBox: function(elm, prefix) {\n\t\t\tfunction getStyle(name) {\n\t\t\t\tvar defaultView = document.defaultView;\n\n\t\t\t\tif (defaultView) {\n\t\t\t\t\t// Remove camelcase\n\t\t\t\t\tname = name.replace(/[A-Z]/g, function(a) {\n\t\t\t\t\t\treturn '-' + a;\n\t\t\t\t\t});\n\n\t\t\t\t\treturn defaultView.getComputedStyle(elm, null).getPropertyValue(name);\n\t\t\t\t}\n\n\t\t\t\treturn elm.currentStyle[name];\n\t\t\t}\n\n\t\t\tfunction getSide(name) {\n\t\t\t\tvar val = parseFloat(getStyle(name), 10);\n\n\t\t\t\treturn isNaN(val) ? 0 : val;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttop: getSide(prefix + \"TopWidth\"),\n\t\t\t\tright: getSide(prefix + \"RightWidth\"),\n\t\t\t\tbottom: getSide(prefix + \"BottomWidth\"),\n\t\t\t\tleft: getSide(prefix + \"LeftWidth\")\n\t\t\t};\n\t\t}\n\t};\n});\n\n// Included from: js/tinymce/classes/ui/ClassList.js\n\n/**\n * ClassList.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Handles adding and removal of classes.\n *\n * @private\n * @class tinymce.ui.ClassList\n */\ndefine(\"tinymce/ui/ClassList\", [\n\t\"tinymce/util/Tools\"\n], function(Tools) {\n\t\"use strict\";\n\n\tfunction noop() {\n\t}\n\n\t/**\n\t * Constructs a new class list the specified onchange\n\t * callback will be executed when the class list gets modifed.\n\t *\n\t * @constructor ClassList\n\t * @param {function} onchange Onchange callback to be executed.\n\t */\n\tfunction ClassList(onchange) {\n\t\tthis.cls = [];\n\t\tthis.cls._map = {};\n\t\tthis.onchange = onchange || noop;\n\t\tthis.prefix = '';\n\t}\n\n\tTools.extend(ClassList.prototype, {\n\t\t/**\n\t\t * Adds a new class to the class list.\n\t\t *\n\t\t * @method add\n\t\t * @param {String} cls Class to be added.\n\t\t * @return {tinymce.ui.ClassList} Current class list instance.\n\t\t */\n\t\tadd: function(cls) {\n\t\t\tif (cls && !this.contains(cls)) {\n\t\t\t\tthis.cls._map[cls] = true;\n\t\t\t\tthis.cls.push(cls);\n\t\t\t\tthis._change();\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Removes the specified class from the class list.\n\t\t *\n\t\t * @method remove\n\t\t * @param {String} cls Class to be removed.\n\t\t * @return {tinymce.ui.ClassList} Current class list instance.\n\t\t */\n\t\tremove: function(cls) {\n\t\t\tif (this.contains(cls)) {\n\t\t\t\tfor (var i = 0; i < this.cls.length; i++) {\n\t\t\t\t\tif (this.cls[i] === cls) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.cls.splice(i, 1);\n\t\t\t\tdelete this.cls._map[cls];\n\t\t\t\tthis._change();\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Toggles a class in the class list.\n\t\t *\n\t\t * @method toggle\n\t\t * @param {String} cls Class to be added/removed.\n\t\t * @param {Boolean} state Optional state if it should be added/removed.\n\t\t * @return {tinymce.ui.ClassList} Current class list instance.\n\t\t */\n\t\ttoggle: function(cls, state) {\n\t\t\tvar curState = this.contains(cls);\n\n\t\t\tif (curState !== state) {\n\t\t\t\tif (curState) {\n\t\t\t\t\tthis.remove(cls);\n\t\t\t\t} else {\n\t\t\t\t\tthis.add(cls);\n\t\t\t\t}\n\n\t\t\t\tthis._change();\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Returns true if the class list has the specified class.\n\t\t *\n\t\t * @method contains\n\t\t * @param {String} cls Class to look for.\n\t\t * @return {Boolean} true/false if the class exists or not.\n\t\t */\n\t\tcontains: function(cls) {\n\t\t\treturn !!this.cls._map[cls];\n\t\t},\n\n\t\t/**\n\t\t * Returns a space separated list of classes.\n\t\t *\n\t\t * @method toString\n\t\t * @return {String} Space separated list of classes.\n\t\t */\n\n\t\t_change: function() {\n\t\t\tdelete this.clsValue;\n\t\t\tthis.onchange.call(this);\n\t\t}\n\t});\n\n\t// IE 8 compatibility\n\tClassList.prototype.toString = function() {\n\t\tvar value;\n\n\t\tif (this.clsValue) {\n\t\t\treturn this.clsValue;\n\t\t}\n\n\t\tvalue = '';\n\t\tfor (var i = 0; i < this.cls.length; i++) {\n\t\t\tif (i > 0) {\n\t\t\t\tvalue += ' ';\n\t\t\t}\n\n\t\t\tvalue += this.prefix + this.cls[i];\n\t\t}\n\n\t\treturn value;\n\t};\n\n\treturn ClassList;\n});\n\n// Included from: js/tinymce/classes/ui/ReflowQueue.js\n\n/**\n * ReflowQueue.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class will automatically reflow controls on the next animation frame within a few milliseconds on older browsers.\n * If the user manually reflows then the automatic reflow will be cancelled. This class is used internally when various control states\n * changes that triggers a reflow.\n *\n * @class tinymce.ui.ReflowQueue\n * @static\n */\ndefine(\"tinymce/ui/ReflowQueue\", [\n\t\"tinymce/util/Delay\"\n], function(Delay) {\n\tvar dirtyCtrls = {}, animationFrameRequested;\n\n\treturn {\n\t\t/**\n\t\t * Adds a control to the next automatic reflow call. This is the control that had a state\n\t\t * change for example if the control was hidden/shown.\n\t\t *\n\t\t * @method add\n\t\t * @param {tinymce.ui.Control} ctrl Control to add to queue.\n\t\t */\n\t\tadd: function(ctrl) {\n\t\t\tvar parent = ctrl.parent();\n\n\t\t\tif (parent) {\n\t\t\t\tif (!parent._layout || parent._layout.isNative()) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!dirtyCtrls[parent._id]) {\n\t\t\t\t\tdirtyCtrls[parent._id] = parent;\n\t\t\t\t}\n\n\t\t\t\tif (!animationFrameRequested) {\n\t\t\t\t\tanimationFrameRequested = true;\n\n\t\t\t\t\tDelay.requestAnimationFrame(function() {\n\t\t\t\t\t\tvar id, ctrl;\n\n\t\t\t\t\t\tanimationFrameRequested = false;\n\n\t\t\t\t\t\tfor (id in dirtyCtrls) {\n\t\t\t\t\t\t\tctrl = dirtyCtrls[id];\n\n\t\t\t\t\t\t\tif (ctrl.state.get('rendered')) {\n\t\t\t\t\t\t\t\tctrl.reflow();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdirtyCtrls = {};\n\t\t\t\t\t}, document.body);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Removes the specified control from the automatic reflow. This will happen when for example the user\n\t\t * manually triggers a reflow.\n\t\t *\n\t\t * @method remove\n\t\t * @param {tinymce.ui.Control} ctrl Control to remove from queue.\n\t\t */\n\t\tremove: function(ctrl) {\n\t\t\tif (dirtyCtrls[ctrl._id]) {\n\t\t\t\tdelete dirtyCtrls[ctrl._id];\n\t\t\t}\n\t\t}\n\t};\n});\n\n// Included from: js/tinymce/classes/ui/Control.js\n\n/**\n * Control.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/*eslint consistent-this:0 */\n\n/**\n * This is the base class for all controls and containers. All UI control instances inherit\n * from this one as it has the base logic needed by all of them.\n *\n * @class tinymce.ui.Control\n */\ndefine(\"tinymce/ui/Control\", [\n\t\"tinymce/util/Class\",\n\t\"tinymce/util/Tools\",\n\t\"tinymce/util/EventDispatcher\",\n\t\"tinymce/data/ObservableObject\",\n\t\"tinymce/ui/Collection\",\n\t\"tinymce/ui/DomUtils\",\n\t\"tinymce/dom/DomQuery\",\n\t\"tinymce/ui/BoxUtils\",\n\t\"tinymce/ui/ClassList\",\n\t\"tinymce/ui/ReflowQueue\"\n], function(Class, Tools, EventDispatcher, ObservableObject, Collection, DomUtils, $, BoxUtils, ClassList, ReflowQueue) {\n\t\"use strict\";\n\n\tvar hasMouseWheelEventSupport = \"onmousewheel\" in document;\n\tvar hasWheelEventSupport = false;\n\tvar classPrefix = \"mce-\";\n\tvar Control, idCounter = 0;\n\n\tvar proto = {\n\t\tStatics: {\n\t\t\tclassPrefix: classPrefix\n\t\t},\n\n\t\tisRtl: function() {\n\t\t\treturn Control.rtl;\n\t\t},\n\n\t\t/**\n\t\t * Class/id prefix to use for all controls.\n\t\t *\n\t\t * @final\n\t\t * @field {String} classPrefix\n\t\t */\n\t\tclassPrefix: classPrefix,\n\n\t\t/**\n\t\t * Constructs a new control instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t * @setting {String} style Style CSS properties to add.\n\t\t * @setting {String} border Border box values example: 1 1 1 1\n\t\t * @setting {String} padding Padding box values example: 1 1 1 1\n\t\t * @setting {String} margin Margin box values example: 1 1 1 1\n\t\t * @setting {Number} minWidth Minimal width for the control.\n\t\t * @setting {Number} minHeight Minimal height for the control.\n\t\t * @setting {String} classes Space separated list of classes to add.\n\t\t * @setting {String} role WAI-ARIA role to use for control.\n\t\t * @setting {Boolean} hidden Is the control hidden by default.\n\t\t * @setting {Boolean} disabled Is the control disabled by default.\n\t\t * @setting {String} name Name of the control instance.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this, classes, defaultClasses;\n\n\t\t\tfunction applyClasses(classes) {\n\t\t\t\tvar i;\n\n\t\t\t\tclasses = classes.split(' ');\n\t\t\t\tfor (i = 0; i < classes.length; i++) {\n\t\t\t\t\tself.classes.add(classes[i]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tself.settings = settings = Tools.extend({}, self.Defaults, settings);\n\n\t\t\t// Initial states\n\t\t\tself._id = settings.id || ('mceu_' + (idCounter++));\n\t\t\tself._aria = {role: settings.role};\n\t\t\tself._elmCache = {};\n\t\t\tself.$ = $;\n\n\t\t\tself.state = new ObservableObject({\n\t\t\t\tvisible: true,\n\t\t\t\tactive: false,\n\t\t\t\tdisabled: false,\n\t\t\t\tvalue: ''\n\t\t\t});\n\n\t\t\tself.data = new ObservableObject(settings.data);\n\n\t\t\tself.classes = new ClassList(function() {\n\t\t\t\tif (self.state.get('rendered')) {\n\t\t\t\t\tself.getEl().className = this.toString();\n\t\t\t\t}\n\t\t\t});\n\t\t\tself.classes.prefix = self.classPrefix;\n\n\t\t\t// Setup classes\n\t\t\tclasses = settings.classes;\n\t\t\tif (classes) {\n\t\t\t\tif (self.Defaults) {\n\t\t\t\t\tdefaultClasses = self.Defaults.classes;\n\n\t\t\t\t\tif (defaultClasses && classes != defaultClasses) {\n\t\t\t\t\t\tapplyClasses(defaultClasses);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tapplyClasses(classes);\n\t\t\t}\n\n\t\t\tTools.each('title text name visible disabled active value'.split(' '), function(name) {\n\t\t\t\tif (name in settings) {\n\t\t\t\t\tself[name](settings[name]);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tself.on('click', function() {\n\t\t\t\tif (self.disabled()) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t/**\n\t\t\t * Name/value object with settings for the current control.\n\t\t\t *\n\t\t\t * @field {Object} settings\n\t\t\t */\n\t\t\tself.settings = settings;\n\n\t\t\tself.borderBox = BoxUtils.parseBox(settings.border);\n\t\t\tself.paddingBox = BoxUtils.parseBox(settings.padding);\n\t\t\tself.marginBox = BoxUtils.parseBox(settings.margin);\n\n\t\t\tif (settings.hidden) {\n\t\t\t\tself.hide();\n\t\t\t}\n\t\t},\n\n\t\t// Will generate getter/setter methods for these properties\n\t\tProperties: 'parent,name',\n\n\t\t/**\n\t\t * Returns the root element to render controls into.\n\t\t *\n\t\t * @method getContainerElm\n\t\t * @return {Element} HTML DOM element to render into.\n\t\t */\n\t\tgetContainerElm: function() {\n\t\t\treturn DomUtils.getContainer();\n\t\t},\n\n\t\t/**\n\t\t * Returns a control instance for the current DOM element.\n\t\t *\n\t\t * @method getParentCtrl\n\t\t * @param {Element} elm HTML dom element to get parent control from.\n\t\t * @return {tinymce.ui.Control} Control instance or undefined.\n\t\t */\n\t\tgetParentCtrl: function(elm) {\n\t\t\tvar ctrl, lookup = this.getRoot().controlIdLookup;\n\n\t\t\twhile (elm && lookup) {\n\t\t\t\tctrl = lookup[elm.id];\n\t\t\t\tif (ctrl) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\telm = elm.parentNode;\n\t\t\t}\n\n\t\t\treturn ctrl;\n\t\t},\n\n\t\t/**\n\t\t * Initializes the current controls layout rect.\n\t\t * This will be executed by the layout managers to determine the\n\t\t * default minWidth/minHeight etc.\n\t\t *\n\t\t * @method initLayoutRect\n\t\t * @return {Object} Layout rect instance.\n\t\t */\n\t\tinitLayoutRect: function() {\n\t\t\tvar self = this, settings = self.settings, borderBox, layoutRect;\n\t\t\tvar elm = self.getEl(), width, height, minWidth, minHeight, autoResize;\n\t\t\tvar startMinWidth, startMinHeight, initialSize;\n\n\t\t\t// Measure the current element\n\t\t\tborderBox = self.borderBox = self.borderBox || BoxUtils.measureBox(elm, 'border');\n\t\t\tself.paddingBox = self.paddingBox || BoxUtils.measureBox(elm, 'padding');\n\t\t\tself.marginBox = self.marginBox || BoxUtils.measureBox(elm, 'margin');\n\t\t\tinitialSize = DomUtils.getSize(elm);\n\n\t\t\t// Setup minWidth/minHeight and width/height\n\t\t\tstartMinWidth = settings.minWidth;\n\t\t\tstartMinHeight = settings.minHeight;\n\t\t\tminWidth = startMinWidth || initialSize.width;\n\t\t\tminHeight = startMinHeight || initialSize.height;\n\t\t\twidth = settings.width;\n\t\t\theight = settings.height;\n\t\t\tautoResize = settings.autoResize;\n\t\t\tautoResize = typeof autoResize != \"undefined\" ? autoResize : !width && !height;\n\n\t\t\twidth = width || minWidth;\n\t\t\theight = height || minHeight;\n\n\t\t\tvar deltaW = borderBox.left + borderBox.right;\n\t\t\tvar deltaH = borderBox.top + borderBox.bottom;\n\n\t\t\tvar maxW = settings.maxWidth || 0xFFFF;\n\t\t\tvar maxH = settings.maxHeight || 0xFFFF;\n\n\t\t\t// Setup initial layout rect\n\t\t\tself._layoutRect = layoutRect = {\n\t\t\t\tx: settings.x || 0,\n\t\t\t\ty: settings.y || 0,\n\t\t\t\tw: width,\n\t\t\t\th: height,\n\t\t\t\tdeltaW: deltaW,\n\t\t\t\tdeltaH: deltaH,\n\t\t\t\tcontentW: width - deltaW,\n\t\t\t\tcontentH: height - deltaH,\n\t\t\t\tinnerW: width - deltaW,\n\t\t\t\tinnerH: height - deltaH,\n\t\t\t\tstartMinWidth: startMinWidth || 0,\n\t\t\t\tstartMinHeight: startMinHeight || 0,\n\t\t\t\tminW: Math.min(minWidth, maxW),\n\t\t\t\tminH: Math.min(minHeight, maxH),\n\t\t\t\tmaxW: maxW,\n\t\t\t\tmaxH: maxH,\n\t\t\t\tautoResize: autoResize,\n\t\t\t\tscrollW: 0\n\t\t\t};\n\n\t\t\tself._lastLayoutRect = {};\n\n\t\t\treturn layoutRect;\n\t\t},\n\n\t\t/**\n\t\t * Getter/setter for the current layout rect.\n\t\t *\n\t\t * @method layoutRect\n\t\t * @param {Object} [newRect] Optional new layout rect.\n\t\t * @return {tinymce.ui.Control/Object} Current control or rect object.\n\t\t */\n\t\tlayoutRect: function(newRect) {\n\t\t\tvar self = this, curRect = self._layoutRect, lastLayoutRect, size, deltaWidth, deltaHeight, undef, repaintControls;\n\n\t\t\t// Initialize default layout rect\n\t\t\tif (!curRect) {\n\t\t\t\tcurRect = self.initLayoutRect();\n\t\t\t}\n\n\t\t\t// Set new rect values\n\t\t\tif (newRect) {\n\t\t\t\t// Calc deltas between inner and outer sizes\n\t\t\t\tdeltaWidth = curRect.deltaW;\n\t\t\t\tdeltaHeight = curRect.deltaH;\n\n\t\t\t\t// Set x position\n\t\t\t\tif (newRect.x !== undef) {\n\t\t\t\t\tcurRect.x = newRect.x;\n\t\t\t\t}\n\n\t\t\t\t// Set y position\n\t\t\t\tif (newRect.y !== undef) {\n\t\t\t\t\tcurRect.y = newRect.y;\n\t\t\t\t}\n\n\t\t\t\t// Set minW\n\t\t\t\tif (newRect.minW !== undef) {\n\t\t\t\t\tcurRect.minW = newRect.minW;\n\t\t\t\t}\n\n\t\t\t\t// Set minH\n\t\t\t\tif (newRect.minH !== undef) {\n\t\t\t\t\tcurRect.minH = newRect.minH;\n\t\t\t\t}\n\n\t\t\t\t// Set new width and calculate inner width\n\t\t\t\tsize = newRect.w;\n\t\t\t\tif (size !== undef) {\n\t\t\t\t\tsize = size < curRect.minW ? curRect.minW : size;\n\t\t\t\t\tsize = size > curRect.maxW ? curRect.maxW : size;\n\t\t\t\t\tcurRect.w = size;\n\t\t\t\t\tcurRect.innerW = size - deltaWidth;\n\t\t\t\t}\n\n\t\t\t\t// Set new height and calculate inner height\n\t\t\t\tsize = newRect.h;\n\t\t\t\tif (size !== undef) {\n\t\t\t\t\tsize = size < curRect.minH ? curRect.minH : size;\n\t\t\t\t\tsize = size > curRect.maxH ? curRect.maxH : size;\n\t\t\t\t\tcurRect.h = size;\n\t\t\t\t\tcurRect.innerH = size - deltaHeight;\n\t\t\t\t}\n\n\t\t\t\t// Set new inner width and calculate width\n\t\t\t\tsize = newRect.innerW;\n\t\t\t\tif (size !== undef) {\n\t\t\t\t\tsize = size < curRect.minW - deltaWidth ? curRect.minW - deltaWidth : size;\n\t\t\t\t\tsize = size > curRect.maxW - deltaWidth ? curRect.maxW - deltaWidth : size;\n\t\t\t\t\tcurRect.innerW = size;\n\t\t\t\t\tcurRect.w = size + deltaWidth;\n\t\t\t\t}\n\n\t\t\t\t// Set new height and calculate inner height\n\t\t\t\tsize = newRect.innerH;\n\t\t\t\tif (size !== undef) {\n\t\t\t\t\tsize = size < curRect.minH - deltaHeight ? curRect.minH - deltaHeight : size;\n\t\t\t\t\tsize = size > curRect.maxH - deltaHeight ? curRect.maxH - deltaHeight : size;\n\t\t\t\t\tcurRect.innerH = size;\n\t\t\t\t\tcurRect.h = size + deltaHeight;\n\t\t\t\t}\n\n\t\t\t\t// Set new contentW\n\t\t\t\tif (newRect.contentW !== undef) {\n\t\t\t\t\tcurRect.contentW = newRect.contentW;\n\t\t\t\t}\n\n\t\t\t\t// Set new contentH\n\t\t\t\tif (newRect.contentH !== undef) {\n\t\t\t\t\tcurRect.contentH = newRect.contentH;\n\t\t\t\t}\n\n\t\t\t\t// Compare last layout rect with the current one to see if we need to repaint or not\n\t\t\t\tlastLayoutRect = self._lastLayoutRect;\n\t\t\t\tif (lastLayoutRect.x !== curRect.x || lastLayoutRect.y !== curRect.y ||\n\t\t\t\t\tlastLayoutRect.w !== curRect.w || lastLayoutRect.h !== curRect.h) {\n\t\t\t\t\trepaintControls = Control.repaintControls;\n\n\t\t\t\t\tif (repaintControls) {\n\t\t\t\t\t\tif (repaintControls.map && !repaintControls.map[self._id]) {\n\t\t\t\t\t\t\trepaintControls.push(self);\n\t\t\t\t\t\t\trepaintControls.map[self._id] = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tlastLayoutRect.x = curRect.x;\n\t\t\t\t\tlastLayoutRect.y = curRect.y;\n\t\t\t\t\tlastLayoutRect.w = curRect.w;\n\t\t\t\t\tlastLayoutRect.h = curRect.h;\n\t\t\t\t}\n\n\t\t\t\treturn self;\n\t\t\t}\n\n\t\t\treturn curRect;\n\t\t},\n\n\t\t/**\n\t\t * Repaints the control after a layout operation.\n\t\t *\n\t\t * @method repaint\n\t\t */\n\t\trepaint: function() {\n\t\t\tvar self = this, style, bodyStyle, bodyElm, rect, borderBox;\n\t\t\tvar borderW, borderH, lastRepaintRect, round, value;\n\n\t\t\t// Use Math.round on all values on IE < 9\n\t\t\tround = !document.createRange ? Math.round : function(value) {\n\t\t\t\treturn value;\n\t\t\t};\n\n\t\t\tstyle = self.getEl().style;\n\t\t\trect = self._layoutRect;\n\t\t\tlastRepaintRect = self._lastRepaintRect || {};\n\n\t\t\tborderBox = self.borderBox;\n\t\t\tborderW = borderBox.left + borderBox.right;\n\t\t\tborderH = borderBox.top + borderBox.bottom;\n\n\t\t\tif (rect.x !== lastRepaintRect.x) {\n\t\t\t\tstyle.left = round(rect.x) + 'px';\n\t\t\t\tlastRepaintRect.x = rect.x;\n\t\t\t}\n\n\t\t\tif (rect.y !== lastRepaintRect.y) {\n\t\t\t\tstyle.top = round(rect.y) + 'px';\n\t\t\t\tlastRepaintRect.y = rect.y;\n\t\t\t}\n\n\t\t\tif (rect.w !== lastRepaintRect.w) {\n\t\t\t\tvalue = round(rect.w - borderW);\n\t\t\t\tstyle.width = (value >= 0 ? value : 0) + 'px';\n\t\t\t\tlastRepaintRect.w = rect.w;\n\t\t\t}\n\n\t\t\tif (rect.h !== lastRepaintRect.h) {\n\t\t\t\tvalue = round(rect.h - borderH);\n\t\t\t\tstyle.height = (value >= 0 ? value : 0) + 'px';\n\t\t\t\tlastRepaintRect.h = rect.h;\n\t\t\t}\n\n\t\t\t// Update body if needed\n\t\t\tif (self._hasBody && rect.innerW !== lastRepaintRect.innerW) {\n\t\t\t\tvalue = round(rect.innerW);\n\n\t\t\t\tbodyElm = self.getEl('body');\n\t\t\t\tif (bodyElm) {\n\t\t\t\t\tbodyStyle = bodyElm.style;\n\t\t\t\t\tbodyStyle.width = (value >= 0 ? value : 0) + 'px';\n\t\t\t\t}\n\n\t\t\t\tlastRepaintRect.innerW = rect.innerW;\n\t\t\t}\n\n\t\t\tif (self._hasBody && rect.innerH !== lastRepaintRect.innerH) {\n\t\t\t\tvalue = round(rect.innerH);\n\n\t\t\t\tbodyElm = bodyElm || self.getEl('body');\n\t\t\t\tif (bodyElm) {\n\t\t\t\t\tbodyStyle = bodyStyle || bodyElm.style;\n\t\t\t\t\tbodyStyle.height = (value >= 0 ? value : 0) + 'px';\n\t\t\t\t}\n\n\t\t\t\tlastRepaintRect.innerH = rect.innerH;\n\t\t\t}\n\n\t\t\tself._lastRepaintRect = lastRepaintRect;\n\t\t\tself.fire('repaint', {}, false);\n\t\t},\n\n\t\t/**\n\t\t * Updates the controls layout rect by re-measuing it.\n\t\t */\n\t\tupdateLayoutRect: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.parent()._lastRect = null;\n\n\t\t\tDomUtils.css(self.getEl(), {width: '', height: ''});\n\n\t\t\tself._layoutRect = self._lastRepaintRect = self._lastLayoutRect = null;\n\t\t\tself.initLayoutRect();\n\t\t},\n\n\t\t/**\n\t\t * Binds a callback to the specified event. This event can both be\n\t\t * native browser events like \"click\" or custom ones like PostRender.\n\t\t *\n\t\t * The callback function will be passed a DOM event like object that enables yout do stop propagation.\n\t\t *\n\t\t * @method on\n\t\t * @param {String} name Name of the event to bind. For example \"click\".\n\t\t * @param {String/function} callback Callback function to execute ones the event occurs.\n\t\t * @return {tinymce.ui.Control} Current control object.\n\t\t */\n\t\ton: function(name, callback) {\n\t\t\tvar self = this;\n\n\t\t\tfunction resolveCallbackName(name) {\n\t\t\t\tvar callback, scope;\n\n\t\t\t\tif (typeof name != 'string') {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\n\t\t\t\treturn function(e) {\n\t\t\t\t\tif (!callback) {\n\t\t\t\t\t\tself.parentsAndSelf().each(function(ctrl) {\n\t\t\t\t\t\t\tvar callbacks = ctrl.settings.callbacks;\n\n\t\t\t\t\t\t\tif (callbacks && (callback = callbacks[name])) {\n\t\t\t\t\t\t\t\tscope = ctrl;\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!callback) {\n\t\t\t\t\t\te.action = name;\n\t\t\t\t\t\tthis.fire('execute', e);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn callback.call(scope, e);\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tgetEventDispatcher(self).on(name, resolveCallbackName(callback));\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Unbinds the specified event and optionally a specific callback. If you omit the name\n\t\t * parameter all event handlers will be removed. If you omit the callback all event handles\n\t\t * by the specified name will be removed.\n\t\t *\n\t\t * @method off\n\t\t * @param {String} [name] Name for the event to unbind.\n\t\t * @param {function} [callback] Callback function to unbind.\n\t\t * @return {tinymce.ui.Control} Current control object.\n\t\t */\n\t\toff: function(name, callback) {\n\t\t\tgetEventDispatcher(this).off(name, callback);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Fires the specified event by name and arguments on the control. This will execute all\n\t\t * bound event handlers.\n\t\t *\n\t\t * @method fire\n\t\t * @param {String} name Name of the event to fire.\n\t\t * @param {Object} [args] Arguments to pass to the event.\n\t\t * @param {Boolean} [bubble] Value to control bubbling. Defaults to true.\n\t\t * @return {Object} Current arguments object.\n\t\t */\n\t\tfire: function(name, args, bubble) {\n\t\t\tvar self = this;\n\n\t\t\targs = args || {};\n\n\t\t\tif (!args.control) {\n\t\t\t\targs.control = self;\n\t\t\t}\n\n\t\t\targs = getEventDispatcher(self).fire(name, args);\n\n\t\t\t// Bubble event up to parents\n\t\t\tif (bubble !== false && self.parent) {\n\t\t\t\tvar parent = self.parent();\n\t\t\t\twhile (parent && !args.isPropagationStopped()) {\n\t\t\t\t\tparent.fire(name, args, false);\n\t\t\t\t\tparent = parent.parent();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn args;\n\t\t},\n\n\t\t/**\n\t\t * Returns true/false if the specified event has any listeners.\n\t\t *\n\t\t * @method hasEventListeners\n\t\t * @param {String} name Name of the event to check for.\n\t\t * @return {Boolean} True/false state if the event has listeners.\n\t\t */\n\t\thasEventListeners: function(name) {\n\t\t\treturn getEventDispatcher(this).has(name);\n\t\t},\n\n\t\t/**\n\t\t * Returns a control collection with all parent controls.\n\t\t *\n\t\t * @method parents\n\t\t * @param {String} selector Optional selector expression to find parents.\n\t\t * @return {tinymce.ui.Collection} Collection with all parent controls.\n\t\t */\n\t\tparents: function(selector) {\n\t\t\tvar self = this, ctrl, parents = new Collection();\n\n\t\t\t// Add each parent to collection\n\t\t\tfor (ctrl = self.parent(); ctrl; ctrl = ctrl.parent()) {\n\t\t\t\tparents.add(ctrl);\n\t\t\t}\n\n\t\t\t// Filter away everything that doesn't match the selector\n\t\t\tif (selector) {\n\t\t\t\tparents = parents.filter(selector);\n\t\t\t}\n\n\t\t\treturn parents;\n\t\t},\n\n\t\t/**\n\t\t * Returns the current control and it's parents.\n\t\t *\n\t\t * @method parentsAndSelf\n\t\t * @param {String} selector Optional selector expression to find parents.\n\t\t * @return {tinymce.ui.Collection} Collection with all parent controls.\n\t\t */\n\t\tparentsAndSelf: function(selector) {\n\t\t\treturn new Collection(this).add(this.parents(selector));\n\t\t},\n\n\t\t/**\n\t\t * Returns the control next to the current control.\n\t\t *\n\t\t * @method next\n\t\t * @return {tinymce.ui.Control} Next control instance.\n\t\t */\n\t\tnext: function() {\n\t\t\tvar parentControls = this.parent().items();\n\n\t\t\treturn parentControls[parentControls.indexOf(this) + 1];\n\t\t},\n\n\t\t/**\n\t\t * Returns the control previous to the current control.\n\t\t *\n\t\t * @method prev\n\t\t * @return {tinymce.ui.Control} Previous control instance.\n\t\t */\n\t\tprev: function() {\n\t\t\tvar parentControls = this.parent().items();\n\n\t\t\treturn parentControls[parentControls.indexOf(this) - 1];\n\t\t},\n\n\t\t/**\n\t\t * Sets the inner HTML of the control element.\n\t\t *\n\t\t * @method innerHtml\n\t\t * @param {String} html Html string to set as inner html.\n\t\t * @return {tinymce.ui.Control} Current control object.\n\t\t */\n\t\tinnerHtml: function(html) {\n\t\t\tthis.$el.html(html);\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Returns the control DOM element or sub element.\n\t\t *\n\t\t * @method getEl\n\t\t * @param {String} [suffix] Suffix to get element by.\n\t\t * @return {Element} HTML DOM element for the current control or it's children.\n\t\t */\n\t\tgetEl: function(suffix) {\n\t\t\tvar id = suffix ? this._id + '-' + suffix : this._id;\n\n\t\t\tif (!this._elmCache[id]) {\n\t\t\t\tthis._elmCache[id] = $('#' + id)[0];\n\t\t\t}\n\n\t\t\treturn this._elmCache[id];\n\t\t},\n\n\t\t/**\n\t\t * Sets the visible state to true.\n\t\t *\n\t\t * @method show\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\tshow: function() {\n\t\t\treturn this.visible(true);\n\t\t},\n\n\t\t/**\n\t\t * Sets the visible state to false.\n\t\t *\n\t\t * @method hide\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\thide: function() {\n\t\t\treturn this.visible(false);\n\t\t},\n\n\t\t/**\n\t\t * Focuses the current control.\n\t\t *\n\t\t * @method focus\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\tfocus: function() {\n\t\t\ttry {\n\t\t\t\tthis.getEl().focus();\n\t\t\t} catch (ex) {\n\t\t\t\t// Ignore IE error\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Blurs the current control.\n\t\t *\n\t\t * @method blur\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\tblur: function() {\n\t\t\tthis.getEl().blur();\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Sets the specified aria property.\n\t\t *\n\t\t * @method aria\n\t\t * @param {String} name Name of the aria property to set.\n\t\t * @param {String} value Value of the aria property.\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\taria: function(name, value) {\n\t\t\tvar self = this, elm = self.getEl(self.ariaTarget);\n\n\t\t\tif (typeof value === \"undefined\") {\n\t\t\t\treturn self._aria[name];\n\t\t\t}\n\n\t\t\tself._aria[name] = value;\n\n\t\t\tif (self.state.get('rendered')) {\n\t\t\t\telm.setAttribute(name == 'role' ? name : 'aria-' + name, value);\n\t\t\t}\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Encodes the specified string with HTML entities. It will also\n\t\t * translate the string to different languages.\n\t\t *\n\t\t * @method encode\n\t\t * @param {String/Object/Array} text Text to entity encode.\n\t\t * @param {Boolean} [translate=true] False if the contents shouldn't be translated.\n\t\t * @return {String} Encoded and possible traslated string.\n\t\t */\n\t\tencode: function(text, translate) {\n\t\t\tif (translate !== false) {\n\t\t\t\ttext = this.translate(text);\n\t\t\t}\n\n\t\t\treturn (text || '').replace(/[&<>\"]/g, function(match) {\n\t\t\t\treturn '&#' + match.charCodeAt(0) + ';';\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Returns the translated string.\n\t\t *\n\t\t * @method translate\n\t\t * @param {String} text Text to translate.\n\t\t * @return {String} Translated string or the same as the input.\n\t\t */\n\t\ttranslate: function(text) {\n\t\t\treturn Control.translate ? Control.translate(text) : text;\n\t\t},\n\n\t\t/**\n\t\t * Adds items before the current control.\n\t\t *\n\t\t * @method before\n\t\t * @param {Array/tinymce.ui.Collection} items Array of items to prepend before this control.\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\tbefore: function(items) {\n\t\t\tvar self = this, parent = self.parent();\n\n\t\t\tif (parent) {\n\t\t\t\tparent.insert(items, parent.items().indexOf(self), true);\n\t\t\t}\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Adds items after the current control.\n\t\t *\n\t\t * @method after\n\t\t * @param {Array/tinymce.ui.Collection} items Array of items to append after this control.\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\tafter: function(items) {\n\t\t\tvar self = this, parent = self.parent();\n\n\t\t\tif (parent) {\n\t\t\t\tparent.insert(items, parent.items().indexOf(self));\n\t\t\t}\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Removes the current control from DOM and from UI collections.\n\t\t *\n\t\t * @method remove\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\tremove: function() {\n\t\t\tvar self = this, elm = self.getEl(), parent = self.parent(), newItems, i;\n\n\t\t\tif (self.items) {\n\t\t\t\tvar controls = self.items().toArray();\n\t\t\t\ti = controls.length;\n\t\t\t\twhile (i--) {\n\t\t\t\t\tcontrols[i].remove();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (parent && parent.items) {\n\t\t\t\tnewItems = [];\n\n\t\t\t\tparent.items().each(function(item) {\n\t\t\t\t\tif (item !== self) {\n\t\t\t\t\t\tnewItems.push(item);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tparent.items().set(newItems);\n\t\t\t\tparent._lastRect = null;\n\t\t\t}\n\n\t\t\tif (self._eventsRoot && self._eventsRoot == self) {\n\t\t\t\t$(elm).off();\n\t\t\t}\n\n\t\t\tvar lookup = self.getRoot().controlIdLookup;\n\t\t\tif (lookup) {\n\t\t\t\tdelete lookup[self._id];\n\t\t\t}\n\n\t\t\tif (elm && elm.parentNode) {\n\t\t\t\telm.parentNode.removeChild(elm);\n\t\t\t}\n\n\t\t\tself.state.set('rendered', false);\n\t\t\tself.state.destroy();\n\n\t\t\tself.fire('remove');\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Renders the control before the specified element.\n\t\t *\n\t\t * @method renderBefore\n\t\t * @param {Element} elm Element to render before.\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\trenderBefore: function(elm) {\n\t\t\t$(elm).before(this.renderHtml());\n\t\t\tthis.postRender();\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Renders the control to the specified element.\n\t\t *\n\t\t * @method renderBefore\n\t\t * @param {Element} elm Element to render to.\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\trenderTo: function(elm) {\n\t\t\t$(elm || this.getContainerElm()).append(this.renderHtml());\n\t\t\tthis.postRender();\n\t\t\treturn this;\n\t\t},\n\n\t\tpreRender: function() {\n\t\t},\n\n\t\trender: function() {\n\t\t},\n\n\t\trenderHtml: function() {\n\t\t\treturn '

';\n\t\t},\n\n\t\t/**\n\t\t * Post render method. Called after the control has been rendered to the target.\n\t\t *\n\t\t * @method postRender\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\tpostRender: function() {\n\t\t\tvar self = this, settings = self.settings, elm, box, parent, name, parentEventsRoot;\n\n\t\t\tself.$el = $(self.getEl());\n\t\t\tself.state.set('rendered', true);\n\n\t\t\t// Bind on settings\n\t\t\tfor (name in settings) {\n\t\t\t\tif (name.indexOf(\"on\") === 0) {\n\t\t\t\t\tself.on(name.substr(2), settings[name]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (self._eventsRoot) {\n\t\t\t\tfor (parent = self.parent(); !parentEventsRoot && parent; parent = parent.parent()) {\n\t\t\t\t\tparentEventsRoot = parent._eventsRoot;\n\t\t\t\t}\n\n\t\t\t\tif (parentEventsRoot) {\n\t\t\t\t\tfor (name in parentEventsRoot._nativeEvents) {\n\t\t\t\t\t\tself._nativeEvents[name] = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbindPendingEvents(self);\n\n\t\t\tif (settings.style) {\n\t\t\t\telm = self.getEl();\n\t\t\t\tif (elm) {\n\t\t\t\t\telm.setAttribute('style', settings.style);\n\t\t\t\t\telm.style.cssText = settings.style;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (self.settings.border) {\n\t\t\t\tbox = self.borderBox;\n\t\t\t\tself.$el.css({\n\t\t\t\t\t'border-top-width': box.top,\n\t\t\t\t\t'border-right-width': box.right,\n\t\t\t\t\t'border-bottom-width': box.bottom,\n\t\t\t\t\t'border-left-width': box.left\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Add instance to lookup\n\t\t\tvar root = self.getRoot();\n\t\t\tif (!root.controlIdLookup) {\n\t\t\t\troot.controlIdLookup = {};\n\t\t\t}\n\n\t\t\troot.controlIdLookup[self._id] = self;\n\n\t\t\tfor (var key in self._aria) {\n\t\t\t\tself.aria(key, self._aria[key]);\n\t\t\t}\n\n\t\t\tif (self.state.get('visible') === false) {\n\t\t\t\tself.getEl().style.display = 'none';\n\t\t\t}\n\n\t\t\tself.bindStates();\n\n\t\t\tself.state.on('change:visible', function(e) {\n\t\t\t\tvar state = e.value, parentCtrl;\n\n\t\t\t\tif (self.state.get('rendered')) {\n\t\t\t\t\tself.getEl().style.display = state === false ? 'none' : '';\n\n\t\t\t\t\t// Need to force a reflow here on IE 8\n\t\t\t\t\tself.getEl().getBoundingClientRect();\n\t\t\t\t}\n\n\t\t\t\t// Parent container needs to reflow\n\t\t\t\tparentCtrl = self.parent();\n\t\t\t\tif (parentCtrl) {\n\t\t\t\t\tparentCtrl._lastRect = null;\n\t\t\t\t}\n\n\t\t\t\tself.fire(state ? 'show' : 'hide');\n\n\t\t\t\tReflowQueue.add(self);\n\t\t\t});\n\n\t\t\tself.fire('postrender', {}, false);\n\t\t},\n\n\t\tbindStates: function() {\n\t\t},\n\n\t\t/**\n\t\t * Scrolls the current control into view.\n\t\t *\n\t\t * @method scrollIntoView\n\t\t * @param {String} align Alignment in view top|center|bottom.\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\tscrollIntoView: function(align) {\n\t\t\tfunction getOffset(elm, rootElm) {\n\t\t\t\tvar x, y, parent = elm;\n\n\t\t\t\tx = y = 0;\n\t\t\t\twhile (parent && parent != rootElm && parent.nodeType) {\n\t\t\t\t\tx += parent.offsetLeft || 0;\n\t\t\t\t\ty += parent.offsetTop || 0;\n\t\t\t\t\tparent = parent.offsetParent;\n\t\t\t\t}\n\n\t\t\t\treturn {x: x, y: y};\n\t\t\t}\n\n\t\t\tvar elm = this.getEl(), parentElm = elm.parentNode;\n\t\t\tvar x, y, width, height, parentWidth, parentHeight;\n\t\t\tvar pos = getOffset(elm, parentElm);\n\n\t\t\tx = pos.x;\n\t\t\ty = pos.y;\n\t\t\twidth = elm.offsetWidth;\n\t\t\theight = elm.offsetHeight;\n\t\t\tparentWidth = parentElm.clientWidth;\n\t\t\tparentHeight = parentElm.clientHeight;\n\n\t\t\tif (align == \"end\") {\n\t\t\t\tx -= parentWidth - width;\n\t\t\t\ty -= parentHeight - height;\n\t\t\t} else if (align == \"center\") {\n\t\t\t\tx -= (parentWidth / 2) - (width / 2);\n\t\t\t\ty -= (parentHeight / 2) - (height / 2);\n\t\t\t}\n\n\t\t\tparentElm.scrollLeft = x;\n\t\t\tparentElm.scrollTop = y;\n\n\t\t\treturn this;\n\t\t},\n\n\t\tgetRoot: function() {\n\t\t\tvar ctrl = this, rootControl, parents = [];\n\n\t\t\twhile (ctrl) {\n\t\t\t\tif (ctrl.rootControl) {\n\t\t\t\t\trootControl = ctrl.rootControl;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tparents.push(ctrl);\n\t\t\t\trootControl = ctrl;\n\t\t\t\tctrl = ctrl.parent();\n\t\t\t}\n\n\t\t\tif (!rootControl) {\n\t\t\t\trootControl = this;\n\t\t\t}\n\n\t\t\tvar i = parents.length;\n\t\t\twhile (i--) {\n\t\t\t\tparents[i].rootControl = rootControl;\n\t\t\t}\n\n\t\t\treturn rootControl;\n\t\t},\n\n\t\t/**\n\t\t * Reflows the current control and it's parents.\n\t\t * This should be used after you for example append children to the current control so\n\t\t * that the layout managers know that they need to reposition everything.\n\t\t *\n\t\t * @example\n\t\t * container.append({type: 'button', text: 'My button'}).reflow();\n\t\t *\n\t\t * @method reflow\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\treflow: function() {\n\t\t\tReflowQueue.remove(this);\n\n\t\t\tvar parent = this.parent();\n\t\t\tif (parent._layout && !parent._layout.isNative()) {\n\t\t\t\tparent.reflow();\n\t\t\t}\n\n\t\t\treturn this;\n\t\t}\n\n\t\t/**\n\t\t * Sets/gets the parent container for the control.\n\t\t *\n\t\t * @method parent\n\t\t * @param {tinymce.ui.Container} parent Optional parent to set.\n\t\t * @return {tinymce.ui.Control} Parent control or the current control on a set action.\n\t\t */\n\t\t// parent: function(parent) {} -- Generated\n\n\t\t/**\n\t\t * Sets/gets the text for the control.\n\t\t *\n\t\t * @method text\n\t\t * @param {String} value Value to set to control.\n\t\t * @return {String/tinymce.ui.Control} Current control on a set operation or current value on a get.\n\t\t */\n\t\t// text: function(value) {} -- Generated\n\n\t\t/**\n\t\t * Sets/gets the disabled state on the control.\n\t\t *\n\t\t * @method disabled\n\t\t * @param {Boolean} state Value to set to control.\n\t\t * @return {Boolean/tinymce.ui.Control} Current control on a set operation or current state on a get.\n\t\t */\n\t\t// disabled: function(state) {} -- Generated\n\n\t\t/**\n\t\t * Sets/gets the active for the control.\n\t\t *\n\t\t * @method active\n\t\t * @param {Boolean} state Value to set to control.\n\t\t * @return {Boolean/tinymce.ui.Control} Current control on a set operation or current state on a get.\n\t\t */\n\t\t// active: function(state) {} -- Generated\n\n\t\t/**\n\t\t * Sets/gets the name for the control.\n\t\t *\n\t\t * @method name\n\t\t * @param {String} value Value to set to control.\n\t\t * @return {String/tinymce.ui.Control} Current control on a set operation or current value on a get.\n\t\t */\n\t\t// name: function(value) {} -- Generated\n\n\t\t/**\n\t\t * Sets/gets the title for the control.\n\t\t *\n\t\t * @method title\n\t\t * @param {String} value Value to set to control.\n\t\t * @return {String/tinymce.ui.Control} Current control on a set operation or current value on a get.\n\t\t */\n\t\t// title: function(value) {} -- Generated\n\n\t\t/**\n\t\t * Sets/gets the visible for the control.\n\t\t *\n\t\t * @method visible\n\t\t * @param {Boolean} state Value to set to control.\n\t\t * @return {Boolean/tinymce.ui.Control} Current control on a set operation or current state on a get.\n\t\t */\n\t\t// visible: function(value) {} -- Generated\n\t};\n\n\t/**\n\t * Setup state properties.\n\t */\n\tTools.each('text title visible disabled active value'.split(' '), function(name) {\n\t\tproto[name] = function(value) {\n\t\t\tif (arguments.length === 0) {\n\t\t\t\treturn this.state.get(name);\n\t\t\t}\n\n\t\t\tif (typeof value != \"undefined\") {\n\t\t\t\tthis.state.set(name, value);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t};\n\t});\n\n\tControl = Class.extend(proto);\n\n\tfunction getEventDispatcher(obj) {\n\t\tif (!obj._eventDispatcher) {\n\t\t\tobj._eventDispatcher = new EventDispatcher({\n\t\t\t\tscope: obj,\n\t\t\t\ttoggleEvent: function(name, state) {\n\t\t\t\t\tif (state && EventDispatcher.isNative(name)) {\n\t\t\t\t\t\tif (!obj._nativeEvents) {\n\t\t\t\t\t\t\tobj._nativeEvents = {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tobj._nativeEvents[name] = true;\n\n\t\t\t\t\t\tif (obj.state.get('rendered')) {\n\t\t\t\t\t\t\tbindPendingEvents(obj);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn obj._eventDispatcher;\n\t}\n\n\tfunction bindPendingEvents(eventCtrl) {\n\t\tvar i, l, parents, eventRootCtrl, nativeEvents, name;\n\n\t\tfunction delegate(e) {\n\t\t\tvar control = eventCtrl.getParentCtrl(e.target);\n\n\t\t\tif (control) {\n\t\t\t\tcontrol.fire(e.type, e);\n\t\t\t}\n\t\t}\n\n\t\tfunction mouseLeaveHandler() {\n\t\t\tvar ctrl = eventRootCtrl._lastHoverCtrl;\n\n\t\t\tif (ctrl) {\n\t\t\t\tctrl.fire(\"mouseleave\", {target: ctrl.getEl()});\n\n\t\t\t\tctrl.parents().each(function(ctrl) {\n\t\t\t\t\tctrl.fire(\"mouseleave\", {target: ctrl.getEl()});\n\t\t\t\t});\n\n\t\t\t\teventRootCtrl._lastHoverCtrl = null;\n\t\t\t}\n\t\t}\n\n\t\tfunction mouseEnterHandler(e) {\n\t\t\tvar ctrl = eventCtrl.getParentCtrl(e.target), lastCtrl = eventRootCtrl._lastHoverCtrl, idx = 0, i, parents, lastParents;\n\n\t\t\t// Over on a new control\n\t\t\tif (ctrl !== lastCtrl) {\n\t\t\t\teventRootCtrl._lastHoverCtrl = ctrl;\n\n\t\t\t\tparents = ctrl.parents().toArray().reverse();\n\t\t\t\tparents.push(ctrl);\n\n\t\t\t\tif (lastCtrl) {\n\t\t\t\t\tlastParents = lastCtrl.parents().toArray().reverse();\n\t\t\t\t\tlastParents.push(lastCtrl);\n\n\t\t\t\t\tfor (idx = 0; idx < lastParents.length; idx++) {\n\t\t\t\t\t\tif (parents[idx] !== lastParents[idx]) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (i = lastParents.length - 1; i >= idx; i--) {\n\t\t\t\t\t\tlastCtrl = lastParents[i];\n\t\t\t\t\t\tlastCtrl.fire(\"mouseleave\", {\n\t\t\t\t\t\t\ttarget: lastCtrl.getEl()\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (i = idx; i < parents.length; i++) {\n\t\t\t\t\tctrl = parents[i];\n\t\t\t\t\tctrl.fire(\"mouseenter\", {\n\t\t\t\t\t\ttarget: ctrl.getEl()\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction fixWheelEvent(e) {\n\t\t\te.preventDefault();\n\n\t\t\tif (e.type == \"mousewheel\") {\n\t\t\t\te.deltaY = -1 / 40 * e.wheelDelta;\n\n\t\t\t\tif (e.wheelDeltaX) {\n\t\t\t\t\te.deltaX = -1 / 40 * e.wheelDeltaX;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\te.deltaX = 0;\n\t\t\t\te.deltaY = e.detail;\n\t\t\t}\n\n\t\t\te = eventCtrl.fire(\"wheel\", e);\n\t\t}\n\n\t\tnativeEvents = eventCtrl._nativeEvents;\n\t\tif (nativeEvents) {\n\t\t\t// Find event root element if it exists\n\t\t\tparents = eventCtrl.parents().toArray();\n\t\t\tparents.unshift(eventCtrl);\n\t\t\tfor (i = 0, l = parents.length; !eventRootCtrl && i < l; i++) {\n\t\t\t\teventRootCtrl = parents[i]._eventsRoot;\n\t\t\t}\n\n\t\t\t// Event root wasn't found the use the root control\n\t\t\tif (!eventRootCtrl) {\n\t\t\t\teventRootCtrl = parents[parents.length - 1] || eventCtrl;\n\t\t\t}\n\n\t\t\t// Set the eventsRoot property on children that didn't have it\n\t\t\teventCtrl._eventsRoot = eventRootCtrl;\n\t\t\tfor (l = i, i = 0; i < l; i++) {\n\t\t\t\tparents[i]._eventsRoot = eventRootCtrl;\n\t\t\t}\n\n\t\t\tvar eventRootDelegates = eventRootCtrl._delegates;\n\t\t\tif (!eventRootDelegates) {\n\t\t\t\teventRootDelegates = eventRootCtrl._delegates = {};\n\t\t\t}\n\n\t\t\t// Bind native event delegates\n\t\t\tfor (name in nativeEvents) {\n\t\t\t\tif (!nativeEvents) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (name === \"wheel\" && !hasWheelEventSupport) {\n\t\t\t\t\tif (hasMouseWheelEventSupport) {\n\t\t\t\t\t\t$(eventCtrl.getEl()).on(\"mousewheel\", fixWheelEvent);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(eventCtrl.getEl()).on(\"DOMMouseScroll\", fixWheelEvent);\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Special treatment for mousenter/mouseleave since these doesn't bubble\n\t\t\t\tif (name === \"mouseenter\" || name === \"mouseleave\") {\n\t\t\t\t\t// Fake mousenter/mouseleave\n\t\t\t\t\tif (!eventRootCtrl._hasMouseEnter) {\n\t\t\t\t\t\t$(eventRootCtrl.getEl()).on(\"mouseleave\", mouseLeaveHandler).on(\"mouseover\", mouseEnterHandler);\n\t\t\t\t\t\teventRootCtrl._hasMouseEnter = 1;\n\t\t\t\t\t}\n\t\t\t\t} else if (!eventRootDelegates[name]) {\n\t\t\t\t\t$(eventRootCtrl.getEl()).on(name, delegate);\n\t\t\t\t\teventRootDelegates[name] = true;\n\t\t\t\t}\n\n\t\t\t\t// Remove the event once it's bound\n\t\t\t\tnativeEvents[name] = false;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn Control;\n});\n\n// Included from: js/tinymce/classes/ui/Factory.js\n\n/**\n * Factory.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/*global tinymce:true */\n\n/**\n * This class is a factory for control instances. This enables you\n * to create instances of controls without having to require the UI controls directly.\n *\n * It also allow you to override or add new control types.\n *\n * @class tinymce.ui.Factory\n */\ndefine(\"tinymce/ui/Factory\", [], function() {\n\t\"use strict\";\n\n\tvar types = {}, namespaceInit;\n\n\treturn {\n\t\t/**\n\t\t * Adds a new control instance type to the factory.\n\t\t *\n\t\t * @method add\n\t\t * @param {String} type Type name for example \"button\".\n\t\t * @param {function} typeClass Class type function.\n\t\t */\n\t\tadd: function(type, typeClass) {\n\t\t\ttypes[type.toLowerCase()] = typeClass;\n\t\t},\n\n\t\t/**\n\t\t * Returns true/false if the specified type exists or not.\n\t\t *\n\t\t * @method has\n\t\t * @param {String} type Type to look for.\n\t\t * @return {Boolean} true/false if the control by name exists.\n\t\t */\n\t\thas: function(type) {\n\t\t\treturn !!types[type.toLowerCase()];\n\t\t},\n\n\t\t/**\n\t\t * Creates a new control instance based on the settings provided. The instance created will be\n\t\t * based on the specified type property it can also create whole structures of components out of\n\t\t * the specified JSON object.\n\t\t *\n\t\t * @example\n\t\t * tinymce.ui.Factory.create({\n\t\t * type: 'button',\n\t\t * text: 'Hello world!'\n\t\t * });\n\t\t *\n\t\t * @method create\n\t\t * @param {Object/String} settings Name/Value object with items used to create the type.\n\t\t * @return {tinymce.ui.Control} Control instance based on the specified type.\n\t\t */\n\t\tcreate: function(type, settings) {\n\t\t\tvar ControlType, name, namespace;\n\n\t\t\t// Build type lookup\n\t\t\tif (!namespaceInit) {\n\t\t\t\tnamespace = tinymce.ui;\n\n\t\t\t\tfor (name in namespace) {\n\t\t\t\t\ttypes[name.toLowerCase()] = namespace[name];\n\t\t\t\t}\n\n\t\t\t\tnamespaceInit = true;\n\t\t\t}\n\n\t\t\t// If string is specified then use it as the type\n\t\t\tif (typeof type == 'string') {\n\t\t\t\tsettings = settings || {};\n\t\t\t\tsettings.type = type;\n\t\t\t} else {\n\t\t\t\tsettings = type;\n\t\t\t\ttype = settings.type;\n\t\t\t}\n\n\t\t\t// Find control type\n\t\t\ttype = type.toLowerCase();\n\t\t\tControlType = types[type];\n\n\t\t\t// #if debug\n\n\t\t\tif (!ControlType) {\n\t\t\t\tthrow new Error(\"Could not find control by type: \" + type);\n\t\t\t}\n\n\t\t\t// #endif\n\n\t\t\tControlType = new ControlType(settings);\n\t\t\tControlType.type = type; // Set the type on the instance, this will be used by the Selector engine\n\n\t\t\treturn ControlType;\n\t\t}\n\t};\n});\n\n// Included from: js/tinymce/classes/ui/KeyboardNavigation.js\n\n/**\n * KeyboardNavigation.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class handles keyboard navigation of controls and elements.\n *\n * @class tinymce.ui.KeyboardNavigation\n */\ndefine(\"tinymce/ui/KeyboardNavigation\", [\n], function() {\n\t\"use strict\";\n\n\t/**\n\t * This class handles all keyboard navigation for WAI-ARIA support. Each root container\n\t * gets an instance of this class.\n\t *\n\t * @constructor\n\t */\n\treturn function(settings) {\n\t\tvar root = settings.root, focusedElement, focusedControl;\n\n\t\tfunction isElement(node) {\n\t\t\treturn node && node.nodeType === 1;\n\t\t}\n\n\t\ttry {\n\t\t\tfocusedElement = document.activeElement;\n\t\t} catch (ex) {\n\t\t\t// IE sometimes fails to return a proper element\n\t\t\tfocusedElement = document.body;\n\t\t}\n\n\t\tfocusedControl = root.getParentCtrl(focusedElement);\n\n\t\t/**\n\t\t * Returns the currently focused elements wai aria role of the currently\n\t\t * focused element or specified element.\n\t\t *\n\t\t * @private\n\t\t * @param {Element} elm Optional element to get role from.\n\t\t * @return {String} Role of specified element.\n\t\t */\n\t\tfunction getRole(elm) {\n\t\t\telm = elm || focusedElement;\n\n\t\t\tif (isElement(elm)) {\n\t\t\t\treturn elm.getAttribute('role');\n\t\t\t}\n\n\t\t\treturn null;\n\t\t}\n\n\t\t/**\n\t\t * Returns the wai role of the parent element of the currently\n\t\t * focused element or specified element.\n\t\t *\n\t\t * @private\n\t\t * @param {Element} elm Optional element to get parent role from.\n\t\t * @return {String} Role of the first parent that has a role.\n\t\t */\n\t\tfunction getParentRole(elm) {\n\t\t\tvar role, parent = elm || focusedElement;\n\n\t\t\twhile ((parent = parent.parentNode)) {\n\t\t\t\tif ((role = getRole(parent))) {\n\t\t\t\t\treturn role;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Returns a wai aria property by name for example aria-selected.\n\t\t *\n\t\t * @private\n\t\t * @param {String} name Name of the aria property to get for example \"disabled\".\n\t\t * @return {String} Aria property value.\n\t\t */\n\t\tfunction getAriaProp(name) {\n\t\t\tvar elm = focusedElement;\n\n\t\t\tif (isElement(elm)) {\n\t\t\t\treturn elm.getAttribute('aria-' + name);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Is the element a text input element or not.\n\t\t *\n\t\t * @private\n\t\t * @param {Element} elm Element to check if it's an text input element or not.\n\t\t * @return {Boolean} True/false if the element is a text element or not.\n\t\t */\n\t\tfunction isTextInputElement(elm) {\n\t\t\tvar tagName = elm.tagName.toUpperCase();\n\n\t\t\t// Notice: since type can be \"email\" etc we don't check the type\n\t\t\t// So all input elements gets treated as text input elements\n\t\t\treturn tagName == \"INPUT\" || tagName == \"TEXTAREA\" || tagName == \"SELECT\";\n\t\t}\n\n\t\t/**\n\t\t * Returns true/false if the specified element can be focused or not.\n\t\t *\n\t\t * @private\n\t\t * @param {Element} elm DOM element to check if it can be focused or not.\n\t\t * @return {Boolean} True/false if the element can have focus.\n\t\t */\n\t\tfunction canFocus(elm) {\n\t\t\tif (isTextInputElement(elm) && !elm.hidden) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell|slider)$/.test(getRole(elm))) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\t/**\n\t\t * Returns an array of focusable visible elements within the specified container element.\n\t\t *\n\t\t * @private\n\t\t * @param {Element} elm DOM element to find focusable elements within.\n\t\t * @return {Array} Array of focusable elements.\n\t\t */\n\t\tfunction getFocusElements(elm) {\n\t\t\tvar elements = [];\n\n\t\t\tfunction collect(elm) {\n\t\t\t\tif (elm.nodeType != 1 || elm.style.display == 'none' || elm.disabled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (canFocus(elm)) {\n\t\t\t\t\telements.push(elm);\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0; i < elm.childNodes.length; i++) {\n\t\t\t\t\tcollect(elm.childNodes[i]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcollect(elm || root.getEl());\n\n\t\t\treturn elements;\n\t\t}\n\n\t\t/**\n\t\t * Returns the navigation root control for the specified control. The navigation root\n\t\t * is the control that the keyboard navigation gets scoped to for example a menubar or toolbar group.\n\t\t * It will look for parents of the specified target control or the currently focused control if this option is omitted.\n\t\t *\n\t\t * @private\n\t\t * @param {tinymce.ui.Control} targetControl Optional target control to find root of.\n\t\t * @return {tinymce.ui.Control} Navigation root control.\n\t\t */\n\t\tfunction getNavigationRoot(targetControl) {\n\t\t\tvar navigationRoot, controls;\n\n\t\t\ttargetControl = targetControl || focusedControl;\n\t\t\tcontrols = targetControl.parents().toArray();\n\t\t\tcontrols.unshift(targetControl);\n\n\t\t\tfor (var i = 0; i < controls.length; i++) {\n\t\t\t\tnavigationRoot = controls[i];\n\n\t\t\t\tif (navigationRoot.settings.ariaRoot) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn navigationRoot;\n\t\t}\n\n\t\t/**\n\t\t * Focuses the first item in the specified targetControl element or the last aria index if the\n\t\t * navigation root has the ariaRemember option enabled.\n\t\t *\n\t\t * @private\n\t\t * @param {tinymce.ui.Control} targetControl Target control to focus the first item in.\n\t\t */\n\t\tfunction focusFirst(targetControl) {\n\t\t\tvar navigationRoot = getNavigationRoot(targetControl);\n\t\t\tvar focusElements = getFocusElements(navigationRoot.getEl());\n\n\t\t\tif (navigationRoot.settings.ariaRemember && \"lastAriaIndex\" in navigationRoot) {\n\t\t\t\tmoveFocusToIndex(navigationRoot.lastAriaIndex, focusElements);\n\t\t\t} else {\n\t\t\t\tmoveFocusToIndex(0, focusElements);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Moves the focus to the specified index within the elements list.\n\t\t * This will scope the index to the size of the element list if it changed.\n\t\t *\n\t\t * @private\n\t\t * @param {Number} idx Specified index to move to.\n\t\t * @param {Array} elements Array with dom elements to move focus within.\n\t\t * @return {Number} Input index or a changed index if it was out of range.\n\t\t */\n\t\tfunction moveFocusToIndex(idx, elements) {\n\t\t\tif (idx < 0) {\n\t\t\t\tidx = elements.length - 1;\n\t\t\t} else if (idx >= elements.length) {\n\t\t\t\tidx = 0;\n\t\t\t}\n\n\t\t\tif (elements[idx]) {\n\t\t\t\telements[idx].focus();\n\t\t\t}\n\n\t\t\treturn idx;\n\t\t}\n\n\t\t/**\n\t\t * Moves the focus forwards or backwards.\n\t\t *\n\t\t * @private\n\t\t * @param {Number} dir Direction to move in positive means forward, negative means backwards.\n\t\t * @param {Array} elements Optional array of elements to move within defaults to the current navigation roots elements.\n\t\t */\n\t\tfunction moveFocus(dir, elements) {\n\t\t\tvar idx = -1, navigationRoot = getNavigationRoot();\n\n\t\t\telements = elements || getFocusElements(navigationRoot.getEl());\n\n\t\t\tfor (var i = 0; i < elements.length; i++) {\n\t\t\t\tif (elements[i] === focusedElement) {\n\t\t\t\t\tidx = i;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tidx += dir;\n\t\t\tnavigationRoot.lastAriaIndex = moveFocusToIndex(idx, elements);\n\t\t}\n\n\t\t/**\n\t\t * Moves the focus to the left this is called by the left key.\n\t\t *\n\t\t * @private\n\t\t */\n\t\tfunction left() {\n\t\t\tvar parentRole = getParentRole();\n\n\t\t\tif (parentRole == \"tablist\") {\n\t\t\t\tmoveFocus(-1, getFocusElements(focusedElement.parentNode));\n\t\t\t} else if (focusedControl.parent().submenu) {\n\t\t\t\tcancel();\n\t\t\t} else {\n\t\t\t\tmoveFocus(-1);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Moves the focus to the right this is called by the right key.\n\t\t *\n\t\t * @private\n\t\t */\n\t\tfunction right() {\n\t\t\tvar role = getRole(), parentRole = getParentRole();\n\n\t\t\tif (parentRole == \"tablist\") {\n\t\t\t\tmoveFocus(1, getFocusElements(focusedElement.parentNode));\n\t\t\t} else if (role == \"menuitem\" && parentRole == \"menu\" && getAriaProp('haspopup')) {\n\t\t\t\tenter();\n\t\t\t} else {\n\t\t\t\tmoveFocus(1);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Moves the focus to the up this is called by the up key.\n\t\t *\n\t\t * @private\n\t\t */\n\t\tfunction up() {\n\t\t\tmoveFocus(-1);\n\t\t}\n\n\t\t/**\n\t\t * Moves the focus to the up this is called by the down key.\n\t\t *\n\t\t * @private\n\t\t */\n\t\tfunction down() {\n\t\t\tvar role = getRole(), parentRole = getParentRole();\n\n\t\t\tif (role == \"menuitem\" && parentRole == \"menubar\") {\n\t\t\t\tenter();\n\t\t\t} else if (role == \"button\" && getAriaProp('haspopup')) {\n\t\t\t\tenter({key: 'down'});\n\t\t\t} else {\n\t\t\t\tmoveFocus(1);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Moves the focus to the next item or previous item depending on shift key.\n\t\t *\n\t\t * @private\n\t\t * @param {DOMEvent} e DOM event object.\n\t\t */\n\t\tfunction tab(e) {\n\t\t\tvar parentRole = getParentRole();\n\n\t\t\tif (parentRole == \"tablist\") {\n\t\t\t\tvar elm = getFocusElements(focusedControl.getEl('body'))[0];\n\n\t\t\t\tif (elm) {\n\t\t\t\t\telm.focus();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmoveFocus(e.shiftKey ? -1 : 1);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Calls the cancel event on the currently focused control. This is normally done using the Esc key.\n\t\t *\n\t\t * @private\n\t\t */\n\t\tfunction cancel() {\n\t\t\tfocusedControl.fire('cancel');\n\t\t}\n\n\t\t/**\n\t\t * Calls the click event on the currently focused control. This is normally done using the Enter/Space keys.\n\t\t *\n\t\t * @private\n\t\t * @param {Object} aria Optional aria data to pass along with the enter event.\n\t\t */\n\t\tfunction enter(aria) {\n\t\t\taria = aria || {};\n\t\t\tfocusedControl.fire('click', {target: focusedElement, aria: aria});\n\t\t}\n\n\t\troot.on('keydown', function(e) {\n\t\t\tfunction handleNonTabOrEscEvent(e, handler) {\n\t\t\t\t// Ignore non tab keys for text elements\n\t\t\t\tif (isTextInputElement(focusedElement)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (getRole(focusedElement) === 'slider') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (handler(e) !== false) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (e.isDefaultPrevented()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tswitch (e.keyCode) {\n\t\t\t\tcase 37: // DOM_VK_LEFT\n\t\t\t\t\thandleNonTabOrEscEvent(e, left);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 39: // DOM_VK_RIGHT\n\t\t\t\t\thandleNonTabOrEscEvent(e, right);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 38: // DOM_VK_UP\n\t\t\t\t\thandleNonTabOrEscEvent(e, up);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 40: // DOM_VK_DOWN\n\t\t\t\t\thandleNonTabOrEscEvent(e, down);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 27: // DOM_VK_ESCAPE\n\t\t\t\t\tcancel();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 14: // DOM_VK_ENTER\n\t\t\t\tcase 13: // DOM_VK_RETURN\n\t\t\t\tcase 32: // DOM_VK_SPACE\n\t\t\t\t\thandleNonTabOrEscEvent(e, enter);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 9: // DOM_VK_TAB\n\t\t\t\t\tif (tab(e) !== false) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\n\t\troot.on('focusin', function(e) {\n\t\t\tfocusedElement = e.target;\n\t\t\tfocusedControl = e.control;\n\t\t});\n\n\t\treturn {\n\t\t\tfocusFirst: focusFirst\n\t\t};\n\t};\n});\n\n// Included from: js/tinymce/classes/ui/Container.js\n\n/**\n * Container.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Container control. This is extended by all controls that can have\n * children such as panels etc. You can also use this class directly as an\n * generic container instance. The container doesn't have any specific role or style.\n *\n * @-x-less Container.less\n * @class tinymce.ui.Container\n * @extends tinymce.ui.Control\n */\ndefine(\"tinymce/ui/Container\", [\n\t\"tinymce/ui/Control\",\n\t\"tinymce/ui/Collection\",\n\t\"tinymce/ui/Selector\",\n\t\"tinymce/ui/Factory\",\n\t\"tinymce/ui/KeyboardNavigation\",\n\t\"tinymce/util/Tools\",\n\t\"tinymce/dom/DomQuery\",\n\t\"tinymce/ui/ClassList\",\n\t\"tinymce/ui/ReflowQueue\"\n], function(Control, Collection, Selector, Factory, KeyboardNavigation, Tools, $, ClassList, ReflowQueue) {\n\t\"use strict\";\n\n\tvar selectorCache = {};\n\n\treturn Control.extend({\n\t\t/**\n\t\t * Constructs a new control instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t * @setting {Array} items Items to add to container in JSON format or control instances.\n\t\t * @setting {String} layout Layout manager by name to use.\n\t\t * @setting {Object} defaults Default settings to apply to all items.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this;\n\n\t\t\tself._super(settings);\n\t\t\tsettings = self.settings;\n\n\t\t\tif (settings.fixed) {\n\t\t\t\tself.state.set('fixed', true);\n\t\t\t}\n\n\t\t\tself._items = new Collection();\n\n\t\t\tif (self.isRtl()) {\n\t\t\t\tself.classes.add('rtl');\n\t\t\t}\n\n\t\t\tself.bodyClasses = new ClassList(function() {\n\t\t\t\tif (self.state.get('rendered')) {\n\t\t\t\t\tself.getEl('body').className = this.toString();\n\t\t\t\t}\n\t\t\t});\n\t\t\tself.bodyClasses.prefix = self.classPrefix;\n\n\t\t\tself.classes.add('container');\n\t\t\tself.bodyClasses.add('container-body');\n\n\t\t\tif (settings.containerCls) {\n\t\t\t\tself.classes.add(settings.containerCls);\n\t\t\t}\n\n\t\t\tself._layout = Factory.create((settings.layout || '') + 'layout');\n\n\t\t\tif (self.settings.items) {\n\t\t\t\tself.add(self.settings.items);\n\t\t\t} else {\n\t\t\t\tself.add(self.render());\n\t\t\t}\n\n\t\t\t// TODO: Fix this!\n\t\t\tself._hasBody = true;\n\t\t},\n\n\t\t/**\n\t\t * Returns a collection of child items that the container currently have.\n\t\t *\n\t\t * @method items\n\t\t * @return {tinymce.ui.Collection} Control collection direct child controls.\n\t\t */\n\t\titems: function() {\n\t\t\treturn this._items;\n\t\t},\n\n\t\t/**\n\t\t * Find child controls by selector.\n\t\t *\n\t\t * @method find\n\t\t * @param {String} selector Selector CSS pattern to find children by.\n\t\t * @return {tinymce.ui.Collection} Control collection with child controls.\n\t\t */\n\t\tfind: function(selector) {\n\t\t\tselector = selectorCache[selector] = selectorCache[selector] || new Selector(selector);\n\n\t\t\treturn selector.find(this);\n\t\t},\n\n\t\t/**\n\t\t * Adds one or many items to the current container. This will create instances of\n\t\t * the object representations if needed.\n\t\t *\n\t\t * @method add\n\t\t * @param {Array/Object/tinymce.ui.Control} items Array or item that will be added to the container.\n\t\t * @return {tinymce.ui.Collection} Current collection control.\n\t\t */\n\t\tadd: function(items) {\n\t\t\tvar self = this;\n\n\t\t\tself.items().add(self.create(items)).parent(self);\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Focuses the current container instance. This will look\n\t\t * for the first control in the container and focus that.\n\t\t *\n\t\t * @method focus\n\t\t * @param {Boolean} keyboard Optional true/false if the focus was a keyboard focus or not.\n\t\t * @return {tinymce.ui.Collection} Current instance.\n\t\t */\n\t\tfocus: function(keyboard) {\n\t\t\tvar self = this, focusCtrl, keyboardNav, items;\n\n\t\t\tif (keyboard) {\n\t\t\t\tkeyboardNav = self.keyboardNav || self.parents().eq(-1)[0].keyboardNav;\n\n\t\t\t\tif (keyboardNav) {\n\t\t\t\t\tkeyboardNav.focusFirst(self);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\titems = self.find('*');\n\n\t\t\t// TODO: Figure out a better way to auto focus alert dialog buttons\n\t\t\tif (self.statusbar) {\n\t\t\t\titems.add(self.statusbar.items());\n\t\t\t}\n\n\t\t\titems.each(function(ctrl) {\n\t\t\t\tif (ctrl.settings.autofocus) {\n\t\t\t\t\tfocusCtrl = null;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (ctrl.canFocus) {\n\t\t\t\t\tfocusCtrl = focusCtrl || ctrl;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (focusCtrl) {\n\t\t\t\tfocusCtrl.focus();\n\t\t\t}\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Replaces the specified child control with a new control.\n\t\t *\n\t\t * @method replace\n\t\t * @param {tinymce.ui.Control} oldItem Old item to be replaced.\n\t\t * @param {tinymce.ui.Control} newItem New item to be inserted.\n\t\t */\n\t\treplace: function(oldItem, newItem) {\n\t\t\tvar ctrlElm, items = this.items(), i = items.length;\n\n\t\t\t// Replace the item in collection\n\t\t\twhile (i--) {\n\t\t\t\tif (items[i] === oldItem) {\n\t\t\t\t\titems[i] = newItem;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (i >= 0) {\n\t\t\t\t// Remove new item from DOM\n\t\t\t\tctrlElm = newItem.getEl();\n\t\t\t\tif (ctrlElm) {\n\t\t\t\t\tctrlElm.parentNode.removeChild(ctrlElm);\n\t\t\t\t}\n\n\t\t\t\t// Remove old item from DOM\n\t\t\t\tctrlElm = oldItem.getEl();\n\t\t\t\tif (ctrlElm) {\n\t\t\t\t\tctrlElm.parentNode.removeChild(ctrlElm);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Adopt the item\n\t\t\tnewItem.parent(this);\n\t\t},\n\n\t\t/**\n\t\t * Creates the specified items. If any of the items is plain JSON style objects\n\t\t * it will convert these into real tinymce.ui.Control instances.\n\t\t *\n\t\t * @method create\n\t\t * @param {Array} items Array of items to convert into control instances.\n\t\t * @return {Array} Array with control instances.\n\t\t */\n\t\tcreate: function(items) {\n\t\t\tvar self = this, settings, ctrlItems = [];\n\n\t\t\t// Non array structure, then force it into an array\n\t\t\tif (!Tools.isArray(items)) {\n\t\t\t\titems = [items];\n\t\t\t}\n\n\t\t\t// Add default type to each child control\n\t\t\tTools.each(items, function(item) {\n\t\t\t\tif (item) {\n\t\t\t\t\t// Construct item if needed\n\t\t\t\t\tif (!(item instanceof Control)) {\n\t\t\t\t\t\t// Name only then convert it to an object\n\t\t\t\t\t\tif (typeof item == \"string\") {\n\t\t\t\t\t\t\titem = {type: item};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Create control instance based on input settings and default settings\n\t\t\t\t\t\tsettings = Tools.extend({}, self.settings.defaults, item);\n\t\t\t\t\t\titem.type = settings.type = settings.type || item.type || self.settings.defaultType ||\n\t\t\t\t\t\t\t(settings.defaults ? settings.defaults.type : null);\n\t\t\t\t\t\titem = Factory.create(settings);\n\t\t\t\t\t}\n\n\t\t\t\t\tctrlItems.push(item);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn ctrlItems;\n\t\t},\n\n\t\t/**\n\t\t * Renders new control instances.\n\t\t *\n\t\t * @private\n\t\t */\n\t\trenderNew: function() {\n\t\t\tvar self = this;\n\n\t\t\t// Render any new items\n\t\t\tself.items().each(function(ctrl, index) {\n\t\t\t\tvar containerElm;\n\n\t\t\t\tctrl.parent(self);\n\n\t\t\t\tif (!ctrl.state.get('rendered')) {\n\t\t\t\t\tcontainerElm = self.getEl('body');\n\n\t\t\t\t\t// Insert or append the item\n\t\t\t\t\tif (containerElm.hasChildNodes() && index <= containerElm.childNodes.length - 1) {\n\t\t\t\t\t\t$(containerElm.childNodes[index]).before(ctrl.renderHtml());\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(containerElm).append(ctrl.renderHtml());\n\t\t\t\t\t}\n\n\t\t\t\t\tctrl.postRender();\n\t\t\t\t\tReflowQueue.add(ctrl);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tself._layout.applyClasses(self.items().filter(':visible'));\n\t\t\tself._lastRect = null;\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Appends new instances to the current container.\n\t\t *\n\t\t * @method append\n\t\t * @param {Array/tinymce.ui.Collection} items Array if controls to append.\n\t\t * @return {tinymce.ui.Container} Current container instance.\n\t\t */\n\t\tappend: function(items) {\n\t\t\treturn this.add(items).renderNew();\n\t\t},\n\n\t\t/**\n\t\t * Prepends new instances to the current container.\n\t\t *\n\t\t * @method prepend\n\t\t * @param {Array/tinymce.ui.Collection} items Array if controls to prepend.\n\t\t * @return {tinymce.ui.Container} Current container instance.\n\t\t */\n\t\tprepend: function(items) {\n\t\t\tvar self = this;\n\n\t\t\tself.items().set(self.create(items).concat(self.items().toArray()));\n\n\t\t\treturn self.renderNew();\n\t\t},\n\n\t\t/**\n\t\t * Inserts an control at a specific index.\n\t\t *\n\t\t * @method insert\n\t\t * @param {Array/tinymce.ui.Collection} items Array if controls to insert.\n\t\t * @param {Number} index Index to insert controls at.\n\t\t * @param {Boolean} [before=false] Inserts controls before the index.\n\t\t */\n\t\tinsert: function(items, index, before) {\n\t\t\tvar self = this, curItems, beforeItems, afterItems;\n\n\t\t\titems = self.create(items);\n\t\t\tcurItems = self.items();\n\n\t\t\tif (!before && index < curItems.length - 1) {\n\t\t\t\tindex += 1;\n\t\t\t}\n\n\t\t\tif (index >= 0 && index < curItems.length) {\n\t\t\t\tbeforeItems = curItems.slice(0, index).toArray();\n\t\t\t\tafterItems = curItems.slice(index).toArray();\n\t\t\t\tcurItems.set(beforeItems.concat(items, afterItems));\n\t\t\t}\n\n\t\t\treturn self.renderNew();\n\t\t},\n\n\t\t/**\n\t\t * Populates the form fields from the specified JSON data object.\n\t\t *\n\t\t * Control items in the form that matches the data will have it's value set.\n\t\t *\n\t\t * @method fromJSON\n\t\t * @param {Object} data JSON data object to set control values by.\n\t\t * @return {tinymce.ui.Container} Current form instance.\n\t\t */\n\t\tfromJSON: function(data) {\n\t\t\tvar self = this;\n\n\t\t\tfor (var name in data) {\n\t\t\t\tself.find('#' + name).value(data[name]);\n\t\t\t}\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Serializes the form into a JSON object by getting all items\n\t\t * that has a name and a value.\n\t\t *\n\t\t * @method toJSON\n\t\t * @return {Object} JSON object with form data.\n\t\t */\n\t\ttoJSON: function() {\n\t\t\tvar self = this, data = {};\n\n\t\t\tself.find('*').each(function(ctrl) {\n\t\t\t\tvar name = ctrl.name(), value = ctrl.value();\n\n\t\t\t\tif (name && typeof value != \"undefined\") {\n\t\t\t\t\tdata[name] = value;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn data;\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, layout = self._layout, role = this.settings.role;\n\n\t\t\tself.preRender();\n\t\t\tlayout.preRender(self);\n\n\t\t\treturn (\n\t\t\t\t'
' +\n\t\t\t\t\t'
' +\n\t\t\t\t\t\t(self.settings.html || '') + layout.renderHtml(self) +\n\t\t\t\t\t'
' +\n\t\t\t\t'
'\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Post render method. Called after the control has been rendered to the target.\n\t\t *\n\t\t * @method postRender\n\t\t * @return {tinymce.ui.Container} Current combobox instance.\n\t\t */\n\t\tpostRender: function() {\n\t\t\tvar self = this, box;\n\n\t\t\tself.items().exec('postRender');\n\t\t\tself._super();\n\n\t\t\tself._layout.postRender(self);\n\t\t\tself.state.set('rendered', true);\n\n\t\t\tif (self.settings.style) {\n\t\t\t\tself.$el.css(self.settings.style);\n\t\t\t}\n\n\t\t\tif (self.settings.border) {\n\t\t\t\tbox = self.borderBox;\n\t\t\t\tself.$el.css({\n\t\t\t\t\t'border-top-width': box.top,\n\t\t\t\t\t'border-right-width': box.right,\n\t\t\t\t\t'border-bottom-width': box.bottom,\n\t\t\t\t\t'border-left-width': box.left\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (!self.parent()) {\n\t\t\t\tself.keyboardNav = new KeyboardNavigation({\n\t\t\t\t\troot: self\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Initializes the current controls layout rect.\n\t\t * This will be executed by the layout managers to determine the\n\t\t * default minWidth/minHeight etc.\n\t\t *\n\t\t * @method initLayoutRect\n\t\t * @return {Object} Layout rect instance.\n\t\t */\n\t\tinitLayoutRect: function() {\n\t\t\tvar self = this, layoutRect = self._super();\n\n\t\t\t// Recalc container size by asking layout manager\n\t\t\tself._layout.recalc(self);\n\n\t\t\treturn layoutRect;\n\t\t},\n\n\t\t/**\n\t\t * Recalculates the positions of the controls in the current container.\n\t\t * This is invoked by the reflow method and shouldn't be called directly.\n\t\t *\n\t\t * @method recalc\n\t\t */\n\t\trecalc: function() {\n\t\t\tvar self = this, rect = self._layoutRect, lastRect = self._lastRect;\n\n\t\t\tif (!lastRect || lastRect.w != rect.w || lastRect.h != rect.h) {\n\t\t\t\tself._layout.recalc(self);\n\t\t\t\trect = self.layoutRect();\n\t\t\t\tself._lastRect = {x: rect.x, y: rect.y, w: rect.w, h: rect.h};\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Reflows the current container and it's children and possible parents.\n\t\t * This should be used after you for example append children to the current control so\n\t\t * that the layout managers know that they need to reposition everything.\n\t\t *\n\t\t * @example\n\t\t * container.append({type: 'button', text: 'My button'}).reflow();\n\t\t *\n\t\t * @method reflow\n\t\t * @return {tinymce.ui.Container} Current container instance.\n\t\t */\n\t\treflow: function() {\n\t\t\tvar i;\n\n\t\t\tReflowQueue.remove(this);\n\n\t\t\tif (this.visible()) {\n\t\t\t\tControl.repaintControls = [];\n\t\t\t\tControl.repaintControls.map = {};\n\n\t\t\t\tthis.recalc();\n\t\t\t\ti = Control.repaintControls.length;\n\n\t\t\t\twhile (i--) {\n\t\t\t\t\tControl.repaintControls[i].repaint();\n\t\t\t\t}\n\n\t\t\t\t// TODO: Fix me!\n\t\t\t\tif (this.settings.layout !== \"flow\" && this.settings.layout !== \"stack\") {\n\t\t\t\t\tthis.repaint();\n\t\t\t\t}\n\n\t\t\t\tControl.repaintControls = [];\n\t\t\t}\n\n\t\t\treturn this;\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/DragHelper.js\n\n/**\n * DragHelper.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Drag/drop helper class.\n *\n * @example\n * var dragHelper = new tinymce.ui.DragHelper('mydiv', {\n * start: function(evt) {\n * },\n *\n * drag: function(evt) {\n * },\n *\n * end: function(evt) {\n * }\n * });\n *\n * @class tinymce.ui.DragHelper\n */\ndefine(\"tinymce/ui/DragHelper\", [\n\t\"tinymce/dom/DomQuery\"\n], function($) {\n\t\"use strict\";\n\n\tfunction getDocumentSize(doc) {\n\t\tvar documentElement, body, scrollWidth, clientWidth;\n\t\tvar offsetWidth, scrollHeight, clientHeight, offsetHeight, max = Math.max;\n\n\t\tdocumentElement = doc.documentElement;\n\t\tbody = doc.body;\n\n\t\tscrollWidth = max(documentElement.scrollWidth, body.scrollWidth);\n\t\tclientWidth = max(documentElement.clientWidth, body.clientWidth);\n\t\toffsetWidth = max(documentElement.offsetWidth, body.offsetWidth);\n\n\t\tscrollHeight = max(documentElement.scrollHeight, body.scrollHeight);\n\t\tclientHeight = max(documentElement.clientHeight, body.clientHeight);\n\t\toffsetHeight = max(documentElement.offsetHeight, body.offsetHeight);\n\n\t\treturn {\n\t\t\twidth: scrollWidth < offsetWidth ? clientWidth : scrollWidth,\n\t\t\theight: scrollHeight < offsetHeight ? clientHeight : scrollHeight\n\t\t};\n\t}\n\n\tfunction updateWithTouchData(e) {\n\t\tvar keys, i;\n\n\t\tif (e.changedTouches) {\n\t\t\tkeys = \"screenX screenY pageX pageY clientX clientY\".split(' ');\n\t\t\tfor (i = 0; i < keys.length; i++) {\n\t\t\t\te[keys[i]] = e.changedTouches[0][keys[i]];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn function(id, settings) {\n\t\tvar $eventOverlay, doc = settings.document || document, downButton, start, stop, drag, startX, startY;\n\n\t\tsettings = settings || {};\n\n\t\tfunction getHandleElm() {\n\t\t\treturn doc.getElementById(settings.handle || id);\n\t\t}\n\n\t\tstart = function(e) {\n\t\t\tvar docSize = getDocumentSize(doc), handleElm, cursor;\n\n\t\t\tupdateWithTouchData(e);\n\n\t\t\te.preventDefault();\n\t\t\tdownButton = e.button;\n\t\t\thandleElm = getHandleElm();\n\t\t\tstartX = e.screenX;\n\t\t\tstartY = e.screenY;\n\n\t\t\t// Grab cursor from handle so we can place it on overlay\n\t\t\tif (window.getComputedStyle) {\n\t\t\t\tcursor = window.getComputedStyle(handleElm, null).getPropertyValue(\"cursor\");\n\t\t\t} else {\n\t\t\t\tcursor = handleElm.runtimeStyle.cursor;\n\t\t\t}\n\n\t\t\t$eventOverlay = $('
').css({\n\t\t\t\tposition: \"absolute\",\n\t\t\t\ttop: 0, left: 0,\n\t\t\t\twidth: docSize.width,\n\t\t\t\theight: docSize.height,\n\t\t\t\tzIndex: 0x7FFFFFFF,\n\t\t\t\topacity: 0.0001,\n\t\t\t\tcursor: cursor\n\t\t\t}).appendTo(doc.body);\n\n\t\t\t$(doc).on('mousemove touchmove', drag).on('mouseup touchend', stop);\n\n\t\t\tsettings.start(e);\n\t\t};\n\n\t\tdrag = function(e) {\n\t\t\tupdateWithTouchData(e);\n\n\t\t\tif (e.button !== downButton) {\n\t\t\t\treturn stop(e);\n\t\t\t}\n\n\t\t\te.deltaX = e.screenX - startX;\n\t\t\te.deltaY = e.screenY - startY;\n\n\t\t\te.preventDefault();\n\t\t\tsettings.drag(e);\n\t\t};\n\n\t\tstop = function(e) {\n\t\t\tupdateWithTouchData(e);\n\n\t\t\t$(doc).off('mousemove touchmove', drag).off('mouseup touchend', stop);\n\n\t\t\t$eventOverlay.remove();\n\n\t\t\tif (settings.stop) {\n\t\t\t\tsettings.stop(e);\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Destroys the drag/drop helper instance.\n\t\t *\n\t\t * @method destroy\n\t\t */\n\t\tthis.destroy = function() {\n\t\t\t$(getHandleElm()).off();\n\t\t};\n\n\t\t$(getHandleElm()).on('mousedown touchstart', start);\n\t};\n});\n\n// Included from: js/tinymce/classes/ui/Scrollable.js\n\n/**\n * Scrollable.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This mixin makes controls scrollable using custom scrollbars.\n *\n * @-x-less Scrollable.less\n * @mixin tinymce.ui.Scrollable\n */\ndefine(\"tinymce/ui/Scrollable\", [\n\t\"tinymce/dom/DomQuery\",\n\t\"tinymce/ui/DragHelper\"\n], function($, DragHelper) {\n\t\"use strict\";\n\n\treturn {\n\t\tinit: function() {\n\t\t\tvar self = this;\n\t\t\tself.on('repaint', self.renderScroll);\n\t\t},\n\n\t\trenderScroll: function() {\n\t\t\tvar self = this, margin = 2;\n\n\t\t\tfunction repaintScroll() {\n\t\t\t\tvar hasScrollH, hasScrollV, bodyElm;\n\n\t\t\t\tfunction repaintAxis(axisName, posName, sizeName, contentSizeName, hasScroll, ax) {\n\t\t\t\t\tvar containerElm, scrollBarElm, scrollThumbElm;\n\t\t\t\t\tvar containerSize, scrollSize, ratio, rect;\n\t\t\t\t\tvar posNameLower, sizeNameLower;\n\n\t\t\t\t\tscrollBarElm = self.getEl('scroll' + axisName);\n\t\t\t\t\tif (scrollBarElm) {\n\t\t\t\t\t\tposNameLower = posName.toLowerCase();\n\t\t\t\t\t\tsizeNameLower = sizeName.toLowerCase();\n\n\t\t\t\t\t\t$(self.getEl('absend')).css(posNameLower, self.layoutRect()[contentSizeName] - 1);\n\n\t\t\t\t\t\tif (!hasScroll) {\n\t\t\t\t\t\t\t$(scrollBarElm).css('display', 'none');\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$(scrollBarElm).css('display', 'block');\n\t\t\t\t\t\tcontainerElm = self.getEl('body');\n\t\t\t\t\t\tscrollThumbElm = self.getEl('scroll' + axisName + \"t\");\n\t\t\t\t\t\tcontainerSize = containerElm[\"client\" + sizeName] - (margin * 2);\n\t\t\t\t\t\tcontainerSize -= hasScrollH && hasScrollV ? scrollBarElm[\"client\" + ax] : 0;\n\t\t\t\t\t\tscrollSize = containerElm[\"scroll\" + sizeName];\n\t\t\t\t\t\tratio = containerSize / scrollSize;\n\n\t\t\t\t\t\trect = {};\n\t\t\t\t\t\trect[posNameLower] = containerElm[\"offset\" + posName] + margin;\n\t\t\t\t\t\trect[sizeNameLower] = containerSize;\n\t\t\t\t\t\t$(scrollBarElm).css(rect);\n\n\t\t\t\t\t\trect = {};\n\t\t\t\t\t\trect[posNameLower] = containerElm[\"scroll\" + posName] * ratio;\n\t\t\t\t\t\trect[sizeNameLower] = containerSize * ratio;\n\t\t\t\t\t\t$(scrollThumbElm).css(rect);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbodyElm = self.getEl('body');\n\t\t\t\thasScrollH = bodyElm.scrollWidth > bodyElm.clientWidth;\n\t\t\t\thasScrollV = bodyElm.scrollHeight > bodyElm.clientHeight;\n\n\t\t\t\trepaintAxis(\"h\", \"Left\", \"Width\", \"contentW\", hasScrollH, \"Height\");\n\t\t\t\trepaintAxis(\"v\", \"Top\", \"Height\", \"contentH\", hasScrollV, \"Width\");\n\t\t\t}\n\n\t\t\tfunction addScroll() {\n\t\t\t\tfunction addScrollAxis(axisName, posName, sizeName, deltaPosName, ax) {\n\t\t\t\t\tvar scrollStart, axisId = self._id + '-scroll' + axisName, prefix = self.classPrefix;\n\n\t\t\t\t\t$(self.getEl()).append(\n\t\t\t\t\t\t'
' +\n\t\t\t\t\t\t\t'
' +\n\t\t\t\t\t\t'
'\n\t\t\t\t\t);\n\n\t\t\t\t\tself.draghelper = new DragHelper(axisId + 't', {\n\t\t\t\t\t\tstart: function() {\n\t\t\t\t\t\t\tscrollStart = self.getEl('body')[\"scroll\" + posName];\n\t\t\t\t\t\t\t$('#' + axisId).addClass(prefix + 'active');\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tdrag: function(e) {\n\t\t\t\t\t\t\tvar ratio, hasScrollH, hasScrollV, containerSize, layoutRect = self.layoutRect();\n\n\t\t\t\t\t\t\thasScrollH = layoutRect.contentW > layoutRect.innerW;\n\t\t\t\t\t\t\thasScrollV = layoutRect.contentH > layoutRect.innerH;\n\t\t\t\t\t\t\tcontainerSize = self.getEl('body')[\"client\" + sizeName] - (margin * 2);\n\t\t\t\t\t\t\tcontainerSize -= hasScrollH && hasScrollV ? self.getEl('scroll' + axisName)[\"client\" + ax] : 0;\n\n\t\t\t\t\t\t\tratio = containerSize / self.getEl('body')[\"scroll\" + sizeName];\n\t\t\t\t\t\t\tself.getEl('body')[\"scroll\" + posName] = scrollStart + (e[\"delta\" + deltaPosName] / ratio);\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tstop: function() {\n\t\t\t\t\t\t\t$('#' + axisId).removeClass(prefix + 'active');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tself.classes.add('scroll');\n\n\t\t\t\taddScrollAxis(\"v\", \"Top\", \"Height\", \"Y\", \"Width\");\n\t\t\t\taddScrollAxis(\"h\", \"Left\", \"Width\", \"X\", \"Height\");\n\t\t\t}\n\n\t\t\tif (self.settings.autoScroll) {\n\t\t\t\tif (!self._hasScroll) {\n\t\t\t\t\tself._hasScroll = true;\n\t\t\t\t\taddScroll();\n\n\t\t\t\t\tself.on('wheel', function(e) {\n\t\t\t\t\t\tvar bodyEl = self.getEl('body');\n\n\t\t\t\t\t\tbodyEl.scrollLeft += (e.deltaX || 0) * 10;\n\t\t\t\t\t\tbodyEl.scrollTop += e.deltaY * 10;\n\n\t\t\t\t\t\trepaintScroll();\n\t\t\t\t\t});\n\n\t\t\t\t\t$(self.getEl('body')).on(\"scroll\", repaintScroll);\n\t\t\t\t}\n\n\t\t\t\trepaintScroll();\n\t\t\t}\n\t\t}\n\t};\n});\n\n// Included from: js/tinymce/classes/ui/Panel.js\n\n/**\n * Panel.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Creates a new panel.\n *\n * @-x-less Panel.less\n * @class tinymce.ui.Panel\n * @extends tinymce.ui.Container\n * @mixes tinymce.ui.Scrollable\n */\ndefine(\"tinymce/ui/Panel\", [\n\t\"tinymce/ui/Container\",\n\t\"tinymce/ui/Scrollable\"\n], function(Container, Scrollable) {\n\t\"use strict\";\n\n\treturn Container.extend({\n\t\tDefaults: {\n\t\t\tlayout: 'fit',\n\t\t\tcontainerCls: 'panel'\n\t\t},\n\n\t\tMixins: [Scrollable],\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, layout = self._layout, innerHtml = self.settings.html;\n\n\t\t\tself.preRender();\n\t\t\tlayout.preRender(self);\n\n\t\t\tif (typeof innerHtml == \"undefined\") {\n\t\t\t\tinnerHtml = (\n\t\t\t\t\t'
' +\n\t\t\t\t\t\tlayout.renderHtml(self) +\n\t\t\t\t\t'
'\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tif (typeof innerHtml == 'function') {\n\t\t\t\t\tinnerHtml = innerHtml.call(self);\n\t\t\t\t}\n\n\t\t\t\tself._hasBody = false;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t'
' +\n\t\t\t\t\t(self._preBodyHtml || '') +\n\t\t\t\t\tinnerHtml +\n\t\t\t\t'
'\n\t\t\t);\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/Movable.js\n\n/**\n * Movable.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Movable mixin. Makes controls movable absolute and relative to other elements.\n *\n * @mixin tinymce.ui.Movable\n */\ndefine(\"tinymce/ui/Movable\", [\n\t\"tinymce/ui/DomUtils\"\n], function(DomUtils) {\n\t\"use strict\";\n\n\tfunction calculateRelativePosition(ctrl, targetElm, rel) {\n\t\tvar ctrlElm, pos, x, y, selfW, selfH, targetW, targetH, viewport, size;\n\n\t\tviewport = DomUtils.getViewPort();\n\n\t\t// Get pos of target\n\t\tpos = DomUtils.getPos(targetElm);\n\t\tx = pos.x;\n\t\ty = pos.y;\n\n\t\tif (ctrl.state.get('fixed') && DomUtils.getRuntimeStyle(document.body, 'position') == 'static') {\n\t\t\tx -= viewport.x;\n\t\t\ty -= viewport.y;\n\t\t}\n\n\t\t// Get size of self\n\t\tctrlElm = ctrl.getEl();\n\t\tsize = DomUtils.getSize(ctrlElm);\n\t\tselfW = size.width;\n\t\tselfH = size.height;\n\n\t\t// Get size of target\n\t\tsize = DomUtils.getSize(targetElm);\n\t\ttargetW = size.width;\n\t\ttargetH = size.height;\n\n\t\t// Parse align string\n\t\trel = (rel || '').split('');\n\n\t\t// Target corners\n\t\tif (rel[0] === 'b') {\n\t\t\ty += targetH;\n\t\t}\n\n\t\tif (rel[1] === 'r') {\n\t\t\tx += targetW;\n\t\t}\n\n\t\tif (rel[0] === 'c') {\n\t\t\ty += Math.round(targetH / 2);\n\t\t}\n\n\t\tif (rel[1] === 'c') {\n\t\t\tx += Math.round(targetW / 2);\n\t\t}\n\n\t\t// Self corners\n\t\tif (rel[3] === 'b') {\n\t\t\ty -= selfH;\n\t\t}\n\n\t\tif (rel[4] === 'r') {\n\t\t\tx -= selfW;\n\t\t}\n\n\t\tif (rel[3] === 'c') {\n\t\t\ty -= Math.round(selfH / 2);\n\t\t}\n\n\t\tif (rel[4] === 'c') {\n\t\t\tx -= Math.round(selfW / 2);\n\t\t}\n\n\t\treturn {\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t\tw: selfW,\n\t\t\th: selfH\n\t\t};\n\t}\n\n\treturn {\n\t\t/**\n\t\t * Tests various positions to get the most suitable one.\n\t\t *\n\t\t * @method testMoveRel\n\t\t * @param {DOMElement} elm Element to position against.\n\t\t * @param {Array} rels Array with relative positions.\n\t\t * @return {String} Best suitable relative position.\n\t\t */\n\t\ttestMoveRel: function(elm, rels) {\n\t\t\tvar viewPortRect = DomUtils.getViewPort();\n\n\t\t\tfor (var i = 0; i < rels.length; i++) {\n\t\t\t\tvar pos = calculateRelativePosition(this, elm, rels[i]);\n\n\t\t\t\tif (this.state.get('fixed')) {\n\t\t\t\t\tif (pos.x > 0 && pos.x + pos.w < viewPortRect.w && pos.y > 0 && pos.y + pos.h < viewPortRect.h) {\n\t\t\t\t\t\treturn rels[i];\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (pos.x > viewPortRect.x && pos.x + pos.w < viewPortRect.w + viewPortRect.x &&\n\t\t\t\t\t\tpos.y > viewPortRect.y && pos.y + pos.h < viewPortRect.h + viewPortRect.y) {\n\t\t\t\t\t\treturn rels[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn rels[0];\n\t\t},\n\n\t\t/**\n\t\t * Move relative to the specified element.\n\t\t *\n\t\t * @method moveRel\n\t\t * @param {Element} elm Element to move relative to.\n\t\t * @param {String} rel Relative mode. For example: br-tl.\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\tmoveRel: function(elm, rel) {\n\t\t\tif (typeof rel != 'string') {\n\t\t\t\trel = this.testMoveRel(elm, rel);\n\t\t\t}\n\n\t\t\tvar pos = calculateRelativePosition(this, elm, rel);\n\t\t\treturn this.moveTo(pos.x, pos.y);\n\t\t},\n\n\t\t/**\n\t\t * Move by a relative x, y values.\n\t\t *\n\t\t * @method moveBy\n\t\t * @param {Number} dx Relative x position.\n\t\t * @param {Number} dy Relative y position.\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\tmoveBy: function(dx, dy) {\n\t\t\tvar self = this, rect = self.layoutRect();\n\n\t\t\tself.moveTo(rect.x + dx, rect.y + dy);\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Move to absolute position.\n\t\t *\n\t\t * @method moveTo\n\t\t * @param {Number} x Absolute x position.\n\t\t * @param {Number} y Absolute y position.\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\tmoveTo: function(x, y) {\n\t\t\tvar self = this;\n\n\t\t\t// TODO: Move this to some global class\n\t\t\tfunction constrain(value, max, size) {\n\t\t\t\tif (value < 0) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\tif (value + size > max) {\n\t\t\t\t\tvalue = max - size;\n\t\t\t\t\treturn value < 0 ? 0 : value;\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tif (self.settings.constrainToViewport) {\n\t\t\t\tvar viewPortRect = DomUtils.getViewPort(window);\n\t\t\t\tvar layoutRect = self.layoutRect();\n\n\t\t\t\tx = constrain(x, viewPortRect.w + viewPortRect.x, layoutRect.w);\n\t\t\t\ty = constrain(y, viewPortRect.h + viewPortRect.y, layoutRect.h);\n\t\t\t}\n\n\t\t\tif (self.state.get('rendered')) {\n\t\t\t\tself.layoutRect({x: x, y: y}).repaint();\n\t\t\t} else {\n\t\t\t\tself.settings.x = x;\n\t\t\t\tself.settings.y = y;\n\t\t\t}\n\n\t\t\tself.fire('move', {x: x, y: y});\n\n\t\t\treturn self;\n\t\t}\n\t};\n});\n\n// Included from: js/tinymce/classes/ui/Resizable.js\n\n/**\n * Resizable.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Resizable mixin. Enables controls to be resized.\n *\n * @mixin tinymce.ui.Resizable\n */\ndefine(\"tinymce/ui/Resizable\", [\n\t\"tinymce/ui/DomUtils\"\n], function(DomUtils) {\n\t\"use strict\";\n\n\treturn {\n\t\t/**\n\t\t * Resizes the control to contents.\n\t\t *\n\t\t * @method resizeToContent\n\t\t */\n\t\tresizeToContent: function() {\n\t\t\tthis._layoutRect.autoResize = true;\n\t\t\tthis._lastRect = null;\n\t\t\tthis.reflow();\n\t\t},\n\n\t\t/**\n\t\t * Resizes the control to a specific width/height.\n\t\t *\n\t\t * @method resizeTo\n\t\t * @param {Number} w Control width.\n\t\t * @param {Number} h Control height.\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\tresizeTo: function(w, h) {\n\t\t\t// TODO: Fix hack\n\t\t\tif (w <= 1 || h <= 1) {\n\t\t\t\tvar rect = DomUtils.getWindowSize();\n\n\t\t\t\tw = w <= 1 ? w * rect.w : w;\n\t\t\t\th = h <= 1 ? h * rect.h : h;\n\t\t\t}\n\n\t\t\tthis._layoutRect.autoResize = false;\n\t\t\treturn this.layoutRect({minW: w, minH: h, w: w, h: h}).reflow();\n\t\t},\n\n\t\t/**\n\t\t * Resizes the control to a specific relative width/height.\n\t\t *\n\t\t * @method resizeBy\n\t\t * @param {Number} dw Relative control width.\n\t\t * @param {Number} dh Relative control height.\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\tresizeBy: function(dw, dh) {\n\t\t\tvar self = this, rect = self.layoutRect();\n\n\t\t\treturn self.resizeTo(rect.w + dw, rect.h + dh);\n\t\t}\n\t};\n});\n\n// Included from: js/tinymce/classes/ui/FloatPanel.js\n\n/**\n * FloatPanel.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class creates a floating panel.\n *\n * @-x-less FloatPanel.less\n * @class tinymce.ui.FloatPanel\n * @extends tinymce.ui.Panel\n * @mixes tinymce.ui.Movable\n * @mixes tinymce.ui.Resizable\n */\ndefine(\"tinymce/ui/FloatPanel\", [\n\t\"tinymce/ui/Panel\",\n\t\"tinymce/ui/Movable\",\n\t\"tinymce/ui/Resizable\",\n\t\"tinymce/ui/DomUtils\",\n\t\"tinymce/dom/DomQuery\",\n\t\"tinymce/util/Delay\"\n], function(Panel, Movable, Resizable, DomUtils, $, Delay) {\n\t\"use strict\";\n\n\tvar documentClickHandler, documentScrollHandler, windowResizeHandler, visiblePanels = [];\n\tvar zOrder = [], hasModal;\n\n\tfunction isChildOf(ctrl, parent) {\n\t\twhile (ctrl) {\n\t\t\tif (ctrl == parent) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tctrl = ctrl.parent();\n\t\t}\n\t}\n\n\tfunction skipOrHidePanels(e) {\n\t\t// Hide any float panel when a click/focus out is out side that float panel and the\n\t\t// float panels direct parent for example a click on a menu button\n\t\tvar i = visiblePanels.length;\n\n\t\twhile (i--) {\n\t\t\tvar panel = visiblePanels[i], clickCtrl = panel.getParentCtrl(e.target);\n\n\t\t\tif (panel.settings.autohide) {\n\t\t\t\tif (clickCtrl) {\n\t\t\t\t\tif (isChildOf(clickCtrl, panel) || panel.parent() === clickCtrl) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\te = panel.fire('autohide', {target: e.target});\n\t\t\t\tif (!e.isDefaultPrevented()) {\n\t\t\t\t\tpanel.hide();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction bindDocumentClickHandler() {\n\n\t\tif (!documentClickHandler) {\n\t\t\tdocumentClickHandler = function(e) {\n\t\t\t\t// Gecko fires click event and in the wrong order on Mac so lets normalize\n\t\t\t\tif (e.button == 2) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tskipOrHidePanels(e);\n\t\t\t};\n\n\t\t\t$(document).on('click touchstart', documentClickHandler);\n\t\t}\n\t}\n\n\tfunction bindDocumentScrollHandler() {\n\t\tif (!documentScrollHandler) {\n\t\t\tdocumentScrollHandler = function() {\n\t\t\t\tvar i;\n\n\t\t\t\ti = visiblePanels.length;\n\t\t\t\twhile (i--) {\n\t\t\t\t\trepositionPanel(visiblePanels[i]);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t$(window).on('scroll', documentScrollHandler);\n\t\t}\n\t}\n\n\tfunction bindWindowResizeHandler() {\n\t\tif (!windowResizeHandler) {\n\t\t\tvar docElm = document.documentElement, clientWidth = docElm.clientWidth, clientHeight = docElm.clientHeight;\n\n\t\t\twindowResizeHandler = function() {\n\t\t\t\t// Workaround for #7065 IE 7 fires resize events event though the window wasn't resized\n\t\t\t\tif (!document.all || clientWidth != docElm.clientWidth || clientHeight != docElm.clientHeight) {\n\t\t\t\t\tclientWidth = docElm.clientWidth;\n\t\t\t\t\tclientHeight = docElm.clientHeight;\n\t\t\t\t\tFloatPanel.hideAll();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t$(window).on('resize', windowResizeHandler);\n\t\t}\n\t}\n\n\t/**\n\t * Repositions the panel to the top of page if the panel is outside of the visual viewport. It will\n\t * also reposition all child panels of the current panel.\n\t */\n\tfunction repositionPanel(panel) {\n\t\tvar scrollY = DomUtils.getViewPort().y;\n\n\t\tfunction toggleFixedChildPanels(fixed, deltaY) {\n\t\t\tvar parent;\n\n\t\t\tfor (var i = 0; i < visiblePanels.length; i++) {\n\t\t\t\tif (visiblePanels[i] != panel) {\n\t\t\t\t\tparent = visiblePanels[i].parent();\n\n\t\t\t\t\twhile (parent && (parent = parent.parent())) {\n\t\t\t\t\t\tif (parent == panel) {\n\t\t\t\t\t\t\tvisiblePanels[i].fixed(fixed).moveBy(0, deltaY).repaint();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (panel.settings.autofix) {\n\t\t\tif (!panel.state.get('fixed')) {\n\t\t\t\tpanel._autoFixY = panel.layoutRect().y;\n\n\t\t\t\tif (panel._autoFixY < scrollY) {\n\t\t\t\t\tpanel.fixed(true).layoutRect({y: 0}).repaint();\n\t\t\t\t\ttoggleFixedChildPanels(true, scrollY - panel._autoFixY);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (panel._autoFixY > scrollY) {\n\t\t\t\t\tpanel.fixed(false).layoutRect({y: panel._autoFixY}).repaint();\n\t\t\t\t\ttoggleFixedChildPanels(false, panel._autoFixY - scrollY);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction addRemove(add, ctrl) {\n\t\tvar i, zIndex = FloatPanel.zIndex || 0xFFFF, topModal;\n\n\t\tif (add) {\n\t\t\tzOrder.push(ctrl);\n\t\t} else {\n\t\t\ti = zOrder.length;\n\n\t\t\twhile (i--) {\n\t\t\t\tif (zOrder[i] === ctrl) {\n\t\t\t\t\tzOrder.splice(i, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (zOrder.length) {\n\t\t\tfor (i = 0; i < zOrder.length; i++) {\n\t\t\t\tif (zOrder[i].modal) {\n\t\t\t\t\tzIndex++;\n\t\t\t\t\ttopModal = zOrder[i];\n\t\t\t\t}\n\n\t\t\t\tzOrder[i].getEl().style.zIndex = zIndex;\n\t\t\t\tzOrder[i].zIndex = zIndex;\n\t\t\t\tzIndex++;\n\t\t\t}\n\t\t}\n\n\t\tvar modalBlockEl = $('#' + ctrl.classPrefix + 'modal-block', ctrl.getContainerElm())[0];\n\n\t\tif (topModal) {\n\t\t\t$(modalBlockEl).css('z-index', topModal.zIndex - 1);\n\t\t} else if (modalBlockEl) {\n\t\t\tmodalBlockEl.parentNode.removeChild(modalBlockEl);\n\t\t\thasModal = false;\n\t\t}\n\n\t\tFloatPanel.currentZIndex = zIndex;\n\t}\n\n\tvar FloatPanel = Panel.extend({\n\t\tMixins: [Movable, Resizable],\n\n\t\t/**\n\t\t * Constructs a new control instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t * @setting {Boolean} autohide Automatically hide the panel.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this;\n\n\t\t\tself._super(settings);\n\t\t\tself._eventsRoot = self;\n\n\t\t\tself.classes.add('floatpanel');\n\n\t\t\t// Hide floatpanes on click out side the root button\n\t\t\tif (settings.autohide) {\n\t\t\t\tbindDocumentClickHandler();\n\t\t\t\tbindWindowResizeHandler();\n\t\t\t\tvisiblePanels.push(self);\n\t\t\t}\n\n\t\t\tif (settings.autofix) {\n\t\t\t\tbindDocumentScrollHandler();\n\n\t\t\t\tself.on('move', function() {\n\t\t\t\t\trepositionPanel(this);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tself.on('postrender show', function(e) {\n\t\t\t\tif (e.control == self) {\n\t\t\t\t\tvar $modalBlockEl, prefix = self.classPrefix;\n\n\t\t\t\t\tif (self.modal && !hasModal) {\n\t\t\t\t\t\t$modalBlockEl = $('#' + prefix + 'modal-block', self.getContainerElm());\n\t\t\t\t\t\tif (!$modalBlockEl[0]) {\n\t\t\t\t\t\t\t$modalBlockEl = $(\n\t\t\t\t\t\t\t\t'
'\n\t\t\t\t\t\t\t).appendTo(self.getContainerElm());\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tDelay.setTimeout(function() {\n\t\t\t\t\t\t\t$modalBlockEl.addClass(prefix + 'in');\n\t\t\t\t\t\t\t$(self.getEl()).addClass(prefix + 'in');\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\thasModal = true;\n\t\t\t\t\t}\n\n\t\t\t\t\taddRemove(true, self);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tself.on('show', function() {\n\t\t\t\tself.parents().each(function(ctrl) {\n\t\t\t\t\tif (ctrl.state.get('fixed')) {\n\t\t\t\t\t\tself.fixed(true);\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tif (settings.popover) {\n\t\t\t\tself._preBodyHtml = '
';\n\t\t\t\tself.classes.add('popover').add('bottom').add(self.isRtl() ? 'end' : 'start');\n\t\t\t}\n\n\t\t\tself.aria('label', settings.ariaLabel);\n\t\t\tself.aria('labelledby', self._id);\n\t\t\tself.aria('describedby', self.describedBy || self._id + '-none');\n\t\t},\n\n\t\tfixed: function(state) {\n\t\t\tvar self = this;\n\n\t\t\tif (self.state.get('fixed') != state) {\n\t\t\t\tif (self.state.get('rendered')) {\n\t\t\t\t\tvar viewport = DomUtils.getViewPort();\n\n\t\t\t\t\tif (state) {\n\t\t\t\t\t\tself.layoutRect().y -= viewport.y;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.layoutRect().y += viewport.y;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tself.classes.toggle('fixed', state);\n\t\t\t\tself.state.set('fixed', state);\n\t\t\t}\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Shows the current float panel.\n\t\t *\n\t\t * @method show\n\t\t * @return {tinymce.ui.FloatPanel} Current floatpanel instance.\n\t\t */\n\t\tshow: function() {\n\t\t\tvar self = this, i, state = self._super();\n\n\t\t\ti = visiblePanels.length;\n\t\t\twhile (i--) {\n\t\t\t\tif (visiblePanels[i] === self) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (i === -1) {\n\t\t\t\tvisiblePanels.push(self);\n\t\t\t}\n\n\t\t\treturn state;\n\t\t},\n\n\t\t/**\n\t\t * Hides the current float panel.\n\t\t *\n\t\t * @method hide\n\t\t * @return {tinymce.ui.FloatPanel} Current floatpanel instance.\n\t\t */\n\t\thide: function() {\n\t\t\tremoveVisiblePanel(this);\n\t\t\taddRemove(false, this);\n\n\t\t\treturn this._super();\n\t\t},\n\n\t\t/**\n\t\t * Hide all visible float panels with he autohide setting enabled. This is for\n\t\t * manually hiding floating menus or panels.\n\t\t *\n\t\t * @method hideAll\n\t\t */\n\t\thideAll: function() {\n\t\t\tFloatPanel.hideAll();\n\t\t},\n\n\t\t/**\n\t\t * Closes the float panel. This will remove the float panel from page and fire the close event.\n\t\t *\n\t\t * @method close\n\t\t */\n\t\tclose: function() {\n\t\t\tvar self = this;\n\n\t\t\tif (!self.fire('close').isDefaultPrevented()) {\n\t\t\t\tself.remove();\n\t\t\t\taddRemove(false, self);\n\t\t\t}\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Removes the float panel from page.\n\t\t *\n\t\t * @method remove\n\t\t */\n\t\tremove: function() {\n\t\t\tremoveVisiblePanel(this);\n\t\t\tthis._super();\n\t\t},\n\n\t\tpostRender: function() {\n\t\t\tvar self = this;\n\n\t\t\tif (self.settings.bodyRole) {\n\t\t\t\tthis.getEl('body').setAttribute('role', self.settings.bodyRole);\n\t\t\t}\n\n\t\t\treturn self._super();\n\t\t}\n\t});\n\n\t/**\n\t * Hide all visible float panels with he autohide setting enabled. This is for\n\t * manually hiding floating menus or panels.\n\t *\n\t * @static\n\t * @method hideAll\n\t */\n\tFloatPanel.hideAll = function() {\n\t\tvar i = visiblePanels.length;\n\n\t\twhile (i--) {\n\t\t\tvar panel = visiblePanels[i];\n\n\t\t\tif (panel && panel.settings.autohide) {\n\t\t\t\tpanel.hide();\n\t\t\t\tvisiblePanels.splice(i, 1);\n\t\t\t}\n\t\t}\n\t};\n\n\tfunction removeVisiblePanel(panel) {\n\t\tvar i;\n\n\t\ti = visiblePanels.length;\n\t\twhile (i--) {\n\t\t\tif (visiblePanels[i] === panel) {\n\t\t\t\tvisiblePanels.splice(i, 1);\n\t\t\t}\n\t\t}\n\n\t\ti = zOrder.length;\n\t\twhile (i--) {\n\t\t\tif (zOrder[i] === panel) {\n\t\t\t\tzOrder.splice(i, 1);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn FloatPanel;\n});\n\n// Included from: js/tinymce/classes/ui/Window.js\n\n/**\n * Window.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Creates a new window.\n *\n * @-x-less Window.less\n * @class tinymce.ui.Window\n * @extends tinymce.ui.FloatPanel\n */\ndefine(\"tinymce/ui/Window\", [\n\t\"tinymce/ui/FloatPanel\",\n\t\"tinymce/ui/Panel\",\n\t\"tinymce/ui/DomUtils\",\n\t\"tinymce/dom/DomQuery\",\n\t\"tinymce/ui/DragHelper\",\n\t\"tinymce/ui/BoxUtils\",\n\t\"tinymce/Env\",\n\t\"tinymce/util/Delay\"\n], function(FloatPanel, Panel, DomUtils, $, DragHelper, BoxUtils, Env, Delay) {\n\t\"use strict\";\n\n\tvar windows = [], oldMetaValue = '';\n\n\tfunction toggleFullScreenState(state) {\n\t\tvar noScaleMetaValue = 'width=device-width,initial-scale=1.0,user-scalable=0,minimum-scale=1.0,maximum-scale=1.0',\n\t\t\tviewport = $(\"meta[name=viewport]\")[0],\n\t\t\tcontentValue;\n\n\t\tif (Env.overrideViewPort === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!viewport) {\n\t\t\tviewport = document.createElement('meta');\n\t\t\tviewport.setAttribute('name', 'viewport');\n\t\t\tdocument.getElementsByTagName('head')[0].appendChild(viewport);\n\t\t}\n\n\t\tcontentValue = viewport.getAttribute('content');\n\t\tif (contentValue && typeof oldMetaValue != 'undefined') {\n\t\t\toldMetaValue = contentValue;\n\t\t}\n\n\t\tviewport.setAttribute('content', state ? noScaleMetaValue : oldMetaValue);\n\t}\n\n\tfunction toggleBodyFullScreenClasses(classPrefix, state) {\n\t\tif (checkFullscreenWindows() && state === false) {\n\t\t\t$([document.documentElement, document.body]).removeClass(classPrefix + 'fullscreen');\n\t\t}\n\t}\n\n\tfunction checkFullscreenWindows() {\n\t\tfor (var i = 0; i < windows.length; i++) {\n\t\t\tif (windows[i]._fullscreen) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tfunction handleWindowResize() {\n\t\tif (!Env.desktop) {\n\t\t\tvar lastSize = {\n\t\t\t\tw: window.innerWidth,\n\t\t\t\th: window.innerHeight\n\t\t\t};\n\n\t\t\tDelay.setInterval(function() {\n\t\t\t\tvar w = window.innerWidth,\n\t\t\t\t\th = window.innerHeight;\n\n\t\t\t\tif (lastSize.w != w || lastSize.h != h) {\n\t\t\t\t\tlastSize = {\n\t\t\t\t\t\tw: w,\n\t\t\t\t\t\th: h\n\t\t\t\t\t};\n\n\t\t\t\t\t$(window).trigger('resize');\n\t\t\t\t}\n\t\t\t}, 100);\n\t\t}\n\n\t\tfunction reposition() {\n\t\t\tvar i, rect = DomUtils.getWindowSize(), layoutRect;\n\n\t\t\tfor (i = 0; i < windows.length; i++) {\n\t\t\t\tlayoutRect = windows[i].layoutRect();\n\n\t\t\t\twindows[i].moveTo(\n\t\t\t\t\twindows[i].settings.x || Math.max(0, rect.w / 2 - layoutRect.w / 2),\n\t\t\t\t\twindows[i].settings.y || Math.max(0, rect.h / 2 - layoutRect.h / 2)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t$(window).on('resize', reposition);\n\t}\n\n\tvar Window = FloatPanel.extend({\n\t\tmodal: true,\n\n\t\tDefaults: {\n\t\t\tborder: 1,\n\t\t\tlayout: 'flex',\n\t\t\tcontainerCls: 'panel',\n\t\t\trole: 'dialog',\n\t\t\tcallbacks: {\n\t\t\t\tsubmit: function() {\n\t\t\t\t\tthis.fire('submit', {data: this.toJSON()});\n\t\t\t\t},\n\n\t\t\t\tclose: function() {\n\t\t\t\t\tthis.close();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Constructs a instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this;\n\n\t\t\tself._super(settings);\n\n\t\t\tif (self.isRtl()) {\n\t\t\t\tself.classes.add('rtl');\n\t\t\t}\n\n\t\t\tself.classes.add('window');\n\t\t\tself.bodyClasses.add('window-body');\n\t\t\tself.state.set('fixed', true);\n\n\t\t\t// Create statusbar\n\t\t\tif (settings.buttons) {\n\t\t\t\tself.statusbar = new Panel({\n\t\t\t\t\tlayout: 'flex',\n\t\t\t\t\tborder: '1 0 0 0',\n\t\t\t\t\tspacing: 3,\n\t\t\t\t\tpadding: 10,\n\t\t\t\t\talign: 'center',\n\t\t\t\t\tpack: self.isRtl() ? 'start' : 'end',\n\t\t\t\t\tdefaults: {\n\t\t\t\t\t\ttype: 'button'\n\t\t\t\t\t},\n\t\t\t\t\titems: settings.buttons\n\t\t\t\t});\n\n\t\t\t\tself.statusbar.classes.add('foot');\n\t\t\t\tself.statusbar.parent(self);\n\t\t\t}\n\n\t\t\tself.on('click', function(e) {\n\t\t\t\tvar closeClass = self.classPrefix + 'close';\n\n\t\t\t\tif (DomUtils.hasClass(e.target, closeClass) || DomUtils.hasClass(e.target.parentNode, closeClass)) {\n\t\t\t\t\tself.close();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tself.on('cancel', function() {\n\t\t\t\tself.close();\n\t\t\t});\n\n\t\t\tself.aria('describedby', self.describedBy || self._id + '-none');\n\t\t\tself.aria('label', settings.title);\n\t\t\tself._fullscreen = false;\n\t\t},\n\n\t\t/**\n\t\t * Recalculates the positions of the controls in the current container.\n\t\t * This is invoked by the reflow method and shouldn't be called directly.\n\t\t *\n\t\t * @method recalc\n\t\t */\n\t\trecalc: function() {\n\t\t\tvar self = this, statusbar = self.statusbar, layoutRect, width, x, needsRecalc;\n\n\t\t\tif (self._fullscreen) {\n\t\t\t\tself.layoutRect(DomUtils.getWindowSize());\n\t\t\t\tself.layoutRect().contentH = self.layoutRect().innerH;\n\t\t\t}\n\n\t\t\tself._super();\n\n\t\t\tlayoutRect = self.layoutRect();\n\n\t\t\t// Resize window based on title width\n\t\t\tif (self.settings.title && !self._fullscreen) {\n\t\t\t\twidth = layoutRect.headerW;\n\t\t\t\tif (width > layoutRect.w) {\n\t\t\t\t\tx = layoutRect.x - Math.max(0, width / 2);\n\t\t\t\t\tself.layoutRect({w: width, x: x});\n\t\t\t\t\tneedsRecalc = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Resize window based on statusbar width\n\t\t\tif (statusbar) {\n\t\t\t\tstatusbar.layoutRect({w: self.layoutRect().innerW}).recalc();\n\n\t\t\t\twidth = statusbar.layoutRect().minW + layoutRect.deltaW;\n\t\t\t\tif (width > layoutRect.w) {\n\t\t\t\t\tx = layoutRect.x - Math.max(0, width - layoutRect.w);\n\t\t\t\t\tself.layoutRect({w: width, x: x});\n\t\t\t\t\tneedsRecalc = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Recalc body and disable auto resize\n\t\t\tif (needsRecalc) {\n\t\t\t\tself.recalc();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Initializes the current controls layout rect.\n\t\t * This will be executed by the layout managers to determine the\n\t\t * default minWidth/minHeight etc.\n\t\t *\n\t\t * @method initLayoutRect\n\t\t * @return {Object} Layout rect instance.\n\t\t */\n\t\tinitLayoutRect: function() {\n\t\t\tvar self = this, layoutRect = self._super(), deltaH = 0, headEl;\n\n\t\t\t// Reserve vertical space for title\n\t\t\tif (self.settings.title && !self._fullscreen) {\n\t\t\t\theadEl = self.getEl('head');\n\n\t\t\t\tvar size = DomUtils.getSize(headEl);\n\n\t\t\t\tlayoutRect.headerW = size.width;\n\t\t\t\tlayoutRect.headerH = size.height;\n\n\t\t\t\tdeltaH += layoutRect.headerH;\n\t\t\t}\n\n\t\t\t// Reserve vertical space for statusbar\n\t\t\tif (self.statusbar) {\n\t\t\t\tdeltaH += self.statusbar.layoutRect().h;\n\t\t\t}\n\n\t\t\tlayoutRect.deltaH += deltaH;\n\t\t\tlayoutRect.minH += deltaH;\n\t\t\t//layoutRect.innerH -= deltaH;\n\t\t\tlayoutRect.h += deltaH;\n\n\t\t\tvar rect = DomUtils.getWindowSize();\n\n\t\t\tlayoutRect.x = self.settings.x || Math.max(0, rect.w / 2 - layoutRect.w / 2);\n\t\t\tlayoutRect.y = self.settings.y || Math.max(0, rect.h / 2 - layoutRect.h / 2);\n\n\t\t\treturn layoutRect;\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, layout = self._layout, id = self._id, prefix = self.classPrefix;\n\t\t\tvar settings = self.settings, headerHtml = '', footerHtml = '', html = settings.html;\n\n\t\t\tself.preRender();\n\t\t\tlayout.preRender(self);\n\n\t\t\tif (settings.title) {\n\t\t\t\theaderHtml = (\n\t\t\t\t\t'
' +\n\t\t\t\t\t\t'
' + self.encode(settings.title) + '
' +\n\t\t\t\t\t\t'
' +\n\t\t\t\t\t\t'' +\n\t\t\t\t\t'
'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (settings.url) {\n\t\t\t\thtml = '';\n\t\t\t}\n\n\t\t\tif (typeof html == \"undefined\") {\n\t\t\t\thtml = layout.renderHtml(self);\n\t\t\t}\n\n\t\t\tif (self.statusbar) {\n\t\t\t\tfooterHtml = self.statusbar.renderHtml();\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t'
' +\n\t\t\t\t\t'
' +\n\t\t\t\t\t\theaderHtml +\n\t\t\t\t\t\t'
' +\n\t\t\t\t\t\t\thtml +\n\t\t\t\t\t\t'
' +\n\t\t\t\t\t\tfooterHtml +\n\t\t\t\t\t'
' +\n\t\t\t\t'
'\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Switches the window fullscreen mode.\n\t\t *\n\t\t * @method fullscreen\n\t\t * @param {Boolean} state True/false state.\n\t\t * @return {tinymce.ui.Window} Current window instance.\n\t\t */\n\t\tfullscreen: function(state) {\n\t\t\tvar self = this, documentElement = document.documentElement, slowRendering, prefix = self.classPrefix, layoutRect;\n\n\t\t\tif (state != self._fullscreen) {\n\t\t\t\t$(window).on('resize', function() {\n\t\t\t\t\tvar time;\n\n\t\t\t\t\tif (self._fullscreen) {\n\t\t\t\t\t\t// Time the layout time if it's to slow use a timeout to not hog the CPU\n\t\t\t\t\t\tif (!slowRendering) {\n\t\t\t\t\t\t\ttime = new Date().getTime();\n\n\t\t\t\t\t\t\tvar rect = DomUtils.getWindowSize();\n\t\t\t\t\t\t\tself.moveTo(0, 0).resizeTo(rect.w, rect.h);\n\n\t\t\t\t\t\t\tif ((new Date().getTime()) - time > 50) {\n\t\t\t\t\t\t\t\tslowRendering = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!self._timer) {\n\t\t\t\t\t\t\t\tself._timer = Delay.setTimeout(function() {\n\t\t\t\t\t\t\t\t\tvar rect = DomUtils.getWindowSize();\n\t\t\t\t\t\t\t\t\tself.moveTo(0, 0).resizeTo(rect.w, rect.h);\n\n\t\t\t\t\t\t\t\t\tself._timer = 0;\n\t\t\t\t\t\t\t\t}, 50);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tlayoutRect = self.layoutRect();\n\t\t\t\tself._fullscreen = state;\n\n\t\t\t\tif (!state) {\n\t\t\t\t\tself.borderBox = BoxUtils.parseBox(self.settings.border);\n\t\t\t\t\tself.getEl('head').style.display = '';\n\t\t\t\t\tlayoutRect.deltaH += layoutRect.headerH;\n\t\t\t\t\t$([documentElement, document.body]).removeClass(prefix + 'fullscreen');\n\t\t\t\t\tself.classes.remove('fullscreen');\n\t\t\t\t\tself.moveTo(self._initial.x, self._initial.y).resizeTo(self._initial.w, self._initial.h);\n\t\t\t\t} else {\n\t\t\t\t\tself._initial = {x: layoutRect.x, y: layoutRect.y, w: layoutRect.w, h: layoutRect.h};\n\n\t\t\t\t\tself.borderBox = BoxUtils.parseBox('0');\n\t\t\t\t\tself.getEl('head').style.display = 'none';\n\t\t\t\t\tlayoutRect.deltaH -= layoutRect.headerH + 2;\n\t\t\t\t\t$([documentElement, document.body]).addClass(prefix + 'fullscreen');\n\t\t\t\t\tself.classes.add('fullscreen');\n\n\t\t\t\t\tvar rect = DomUtils.getWindowSize();\n\t\t\t\t\tself.moveTo(0, 0).resizeTo(rect.w, rect.h);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn self.reflow();\n\t\t},\n\n\t\t/**\n\t\t * Called after the control has been rendered.\n\t\t *\n\t\t * @method postRender\n\t\t */\n\t\tpostRender: function() {\n\t\t\tvar self = this, startPos;\n\n\t\t\tsetTimeout(function() {\n\t\t\t\tself.classes.add('in');\n\t\t\t\tself.fire('open');\n\t\t\t}, 0);\n\n\t\t\tself._super();\n\n\t\t\tif (self.statusbar) {\n\t\t\t\tself.statusbar.postRender();\n\t\t\t}\n\n\t\t\tself.focus();\n\n\t\t\tthis.dragHelper = new DragHelper(self._id + '-dragh', {\n\t\t\t\tstart: function() {\n\t\t\t\t\tstartPos = {\n\t\t\t\t\t\tx: self.layoutRect().x,\n\t\t\t\t\t\ty: self.layoutRect().y\n\t\t\t\t\t};\n\t\t\t\t},\n\n\t\t\t\tdrag: function(e) {\n\t\t\t\t\tself.moveTo(startPos.x + e.deltaX, startPos.y + e.deltaY);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tself.on('submit', function(e) {\n\t\t\t\tif (!e.isDefaultPrevented()) {\n\t\t\t\t\tself.close();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\twindows.push(self);\n\t\t\ttoggleFullScreenState(true);\n\t\t},\n\n\t\t/**\n\t\t * Fires a submit event with the serialized form.\n\t\t *\n\t\t * @method submit\n\t\t * @return {Object} Event arguments object.\n\t\t */\n\t\tsubmit: function() {\n\t\t\treturn this.fire('submit', {data: this.toJSON()});\n\t\t},\n\n\t\t/**\n\t\t * Removes the current control from DOM and from UI collections.\n\t\t *\n\t\t * @method remove\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\tremove: function() {\n\t\t\tvar self = this, i;\n\n\t\t\tself.dragHelper.destroy();\n\t\t\tself._super();\n\n\t\t\tif (self.statusbar) {\n\t\t\t\tthis.statusbar.remove();\n\t\t\t}\n\n\t\t\ttoggleBodyFullScreenClasses(self.classPrefix, false);\n\n\t\t\ti = windows.length;\n\t\t\twhile (i--) {\n\t\t\t\tif (windows[i] === self) {\n\t\t\t\t\twindows.splice(i, 1);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttoggleFullScreenState(windows.length > 0);\n\t\t},\n\n\t\t/**\n\t\t * Returns the contentWindow object of the iframe if it exists.\n\t\t *\n\t\t * @method getContentWindow\n\t\t * @return {Window} window object or null.\n\t\t */\n\t\tgetContentWindow: function() {\n\t\t\tvar ifr = this.getEl().getElementsByTagName('iframe')[0];\n\t\t\treturn ifr ? ifr.contentWindow : null;\n\t\t}\n\t});\n\n\thandleWindowResize();\n\n\treturn Window;\n});\n\n// Included from: js/tinymce/classes/ui/MessageBox.js\n\n/**\n * MessageBox.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class is used to create MessageBoxes like alerts/confirms etc.\n *\n * @class tinymce.ui.MessageBox\n * @extends tinymce.ui.FloatPanel\n */\ndefine(\"tinymce/ui/MessageBox\", [\n\t\"tinymce/ui/Window\"\n], function(Window) {\n\t\"use strict\";\n\n\tvar MessageBox = Window.extend({\n\t\t/**\n\t\t * Constructs a instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tsettings = {\n\t\t\t\tborder: 1,\n\t\t\t\tpadding: 20,\n\t\t\t\tlayout: 'flex',\n\t\t\t\tpack: \"center\",\n\t\t\t\talign: \"center\",\n\t\t\t\tcontainerCls: 'panel',\n\t\t\t\tautoScroll: true,\n\t\t\t\tbuttons: {type: \"button\", text: \"Ok\", action: \"ok\"},\n\t\t\t\titems: {\n\t\t\t\t\ttype: \"label\",\n\t\t\t\t\tmultiline: true,\n\t\t\t\t\tmaxWidth: 500,\n\t\t\t\t\tmaxHeight: 200\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis._super(settings);\n\t\t},\n\n\t\tStatics: {\n\t\t\t/**\n\t\t\t * Ok buttons constant.\n\t\t\t *\n\t\t\t * @static\n\t\t\t * @final\n\t\t\t * @field {Number} OK\n\t\t\t */\n\t\t\tOK: 1,\n\n\t\t\t/**\n\t\t\t * Ok/cancel buttons constant.\n\t\t\t *\n\t\t\t * @static\n\t\t\t * @final\n\t\t\t * @field {Number} OK_CANCEL\n\t\t\t */\n\t\t\tOK_CANCEL: 2,\n\n\t\t\t/**\n\t\t\t * yes/no buttons constant.\n\t\t\t *\n\t\t\t * @static\n\t\t\t * @final\n\t\t\t * @field {Number} YES_NO\n\t\t\t */\n\t\t\tYES_NO: 3,\n\n\t\t\t/**\n\t\t\t * yes/no/cancel buttons constant.\n\t\t\t *\n\t\t\t * @static\n\t\t\t * @final\n\t\t\t * @field {Number} YES_NO_CANCEL\n\t\t\t */\n\t\t\tYES_NO_CANCEL: 4,\n\n\t\t\t/**\n\t\t\t * Constructs a new message box and renders it to the body element.\n\t\t\t *\n\t\t\t * @static\n\t\t\t * @method msgBox\n\t\t\t * @param {Object} settings Name/value object with settings.\n\t\t\t */\n\t\t\tmsgBox: function(settings) {\n\t\t\t\tvar buttons, callback = settings.callback || function() {};\n\n\t\t\t\tfunction createButton(text, status, primary) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: \"button\",\n\t\t\t\t\t\ttext: text,\n\t\t\t\t\t\tsubtype: primary ? 'primary' : '',\n\t\t\t\t\t\tonClick: function(e) {\n\t\t\t\t\t\t\te.control.parents()[1].close();\n\t\t\t\t\t\t\tcallback(status);\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tswitch (settings.buttons) {\n\t\t\t\t\tcase MessageBox.OK_CANCEL:\n\t\t\t\t\t\tbuttons = [\n\t\t\t\t\t\t\tcreateButton('Ok', true, true),\n\t\t\t\t\t\t\tcreateButton('Cancel', false)\n\t\t\t\t\t\t];\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase MessageBox.YES_NO:\n\t\t\t\t\tcase MessageBox.YES_NO_CANCEL:\n\t\t\t\t\t\tbuttons = [\n\t\t\t\t\t\t\tcreateButton('Yes', 1, true),\n\t\t\t\t\t\t\tcreateButton('No', 0)\n\t\t\t\t\t\t];\n\n\t\t\t\t\t\tif (settings.buttons == MessageBox.YES_NO_CANCEL) {\n\t\t\t\t\t\t\tbuttons.push(createButton('Cancel', -1));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbuttons = [\n\t\t\t\t\t\t\tcreateButton('Ok', true, true)\n\t\t\t\t\t\t];\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\treturn new Window({\n\t\t\t\t\tpadding: 20,\n\t\t\t\t\tx: settings.x,\n\t\t\t\t\ty: settings.y,\n\t\t\t\t\tminWidth: 300,\n\t\t\t\t\tminHeight: 100,\n\t\t\t\t\tlayout: \"flex\",\n\t\t\t\t\tpack: \"center\",\n\t\t\t\t\talign: \"center\",\n\t\t\t\t\tbuttons: buttons,\n\t\t\t\t\ttitle: settings.title,\n\t\t\t\t\trole: 'alertdialog',\n\t\t\t\t\titems: {\n\t\t\t\t\t\ttype: \"label\",\n\t\t\t\t\t\tmultiline: true,\n\t\t\t\t\t\tmaxWidth: 500,\n\t\t\t\t\t\tmaxHeight: 200,\n\t\t\t\t\t\ttext: settings.text\n\t\t\t\t\t},\n\t\t\t\t\tonPostRender: function() {\n\t\t\t\t\t\tthis.aria('describedby', this.items()[0]._id);\n\t\t\t\t\t},\n\t\t\t\t\tonClose: settings.onClose,\n\t\t\t\t\tonCancel: function() {\n\t\t\t\t\t\tcallback(false);\n\t\t\t\t\t}\n\t\t\t\t}).renderTo(document.body).reflow();\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Creates a new alert dialog.\n\t\t\t *\n\t\t\t * @method alert\n\t\t\t * @param {Object} settings Settings for the alert dialog.\n\t\t\t * @param {function} [callback] Callback to execute when the user makes a choice.\n\t\t\t */\n\t\t\talert: function(settings, callback) {\n\t\t\t\tif (typeof settings == \"string\") {\n\t\t\t\t\tsettings = {text: settings};\n\t\t\t\t}\n\n\t\t\t\tsettings.callback = callback;\n\t\t\t\treturn MessageBox.msgBox(settings);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Creates a new confirm dialog.\n\t\t\t *\n\t\t\t * @method confirm\n\t\t\t * @param {Object} settings Settings for the confirm dialog.\n\t\t\t * @param {function} [callback] Callback to execute when the user makes a choice.\n\t\t\t */\n\t\t\tconfirm: function(settings, callback) {\n\t\t\t\tif (typeof settings == \"string\") {\n\t\t\t\t\tsettings = {text: settings};\n\t\t\t\t}\n\n\t\t\t\tsettings.callback = callback;\n\t\t\t\tsettings.buttons = MessageBox.OK_CANCEL;\n\n\t\t\t\treturn MessageBox.msgBox(settings);\n\t\t\t}\n\t\t}\n\t});\n\n\treturn MessageBox;\n});\n\n// Included from: js/tinymce/classes/WindowManager.js\n\n/**\n * WindowManager.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class handles the creation of native windows and dialogs. This class can be extended to provide for example inline dialogs.\n *\n * @class tinymce.WindowManager\n * @example\n * // Opens a new dialog with the file.htm file and the size 320x240\n * // It also adds a custom parameter this can be retrieved by using tinyMCEPopup.getWindowArg inside the dialog.\n * tinymce.activeEditor.windowManager.open({\n * url: 'file.htm',\n * width: 320,\n * height: 240\n * }, {\n * custom_param: 1\n * });\n *\n * // Displays an alert box using the active editors window manager instance\n * tinymce.activeEditor.windowManager.alert('Hello world!');\n *\n * // Displays an confirm box and an alert message will be displayed depending on what you choose in the confirm\n * tinymce.activeEditor.windowManager.confirm(\"Do you want to do something\", function(s) {\n * if (s)\n * tinymce.activeEditor.windowManager.alert(\"Ok\");\n * else\n * tinymce.activeEditor.windowManager.alert(\"Cancel\");\n * });\n */\ndefine(\"tinymce/WindowManager\", [\n\t\"tinymce/ui/Window\",\n\t\"tinymce/ui/MessageBox\"\n], function(Window, MessageBox) {\n\treturn function(editor) {\n\t\tvar self = this, windows = [];\n\n\t\tfunction getTopMostWindow() {\n\t\t\tif (windows.length) {\n\t\t\t\treturn windows[windows.length - 1];\n\t\t\t}\n\t\t}\n\n\t\tfunction fireOpenEvent(win) {\n\t\t\teditor.fire('OpenWindow', {\n\t\t\t\twin: win\n\t\t\t});\n\t\t}\n\n\t\tfunction fireCloseEvent(win) {\n\t\t\teditor.fire('CloseWindow', {\n\t\t\t\twin: win\n\t\t\t});\n\t\t}\n\n\t\tself.windows = windows;\n\n\t\teditor.on('remove', function() {\n\t\t\tvar i = windows.length;\n\n\t\t\twhile (i--) {\n\t\t\t\twindows[i].close();\n\t\t\t}\n\t\t});\n\n\t\t/**\n\t\t * Opens a new window.\n\t\t *\n\t\t * @method open\n\t\t * @param {Object} args Optional name/value settings collection contains things like width/height/url etc.\n\t\t * @param {Object} params Options like title, file, width, height etc.\n\t\t * @option {String} title Window title.\n\t\t * @option {String} file URL of the file to open in the window.\n\t\t * @option {Number} width Width in pixels.\n\t\t * @option {Number} height Height in pixels.\n\t\t * @option {Boolean} autoScroll Specifies whether the popup window can have scrollbars if required (i.e. content\n\t\t * larger than the popup size specified).\n\t\t */\n\t\tself.open = function(args, params) {\n\t\t\tvar win;\n\n\t\t\teditor.editorManager.setActive(editor);\n\n\t\t\targs.title = args.title || ' ';\n\n\t\t\t// Handle URL\n\t\t\targs.url = args.url || args.file; // Legacy\n\t\t\tif (args.url) {\n\t\t\t\targs.width = parseInt(args.width || 320, 10);\n\t\t\t\targs.height = parseInt(args.height || 240, 10);\n\t\t\t}\n\n\t\t\t// Handle body\n\t\t\tif (args.body) {\n\t\t\t\targs.items = {\n\t\t\t\t\tdefaults: args.defaults,\n\t\t\t\t\ttype: args.bodyType || 'form',\n\t\t\t\t\titems: args.body,\n\t\t\t\t\tdata: args.data,\n\t\t\t\t\tcallbacks: args.commands\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (!args.url && !args.buttons) {\n\t\t\t\targs.buttons = [\n\t\t\t\t\t{text: 'Ok', subtype: 'primary', onclick: function() {\n\t\t\t\t\t\twin.find('form')[0].submit();\n\t\t\t\t\t}},\n\n\t\t\t\t\t{text: 'Cancel', onclick: function() {\n\t\t\t\t\t\twin.close();\n\t\t\t\t\t}}\n\t\t\t\t];\n\t\t\t}\n\n\t\t\twin = new Window(args);\n\t\t\twindows.push(win);\n\n\t\t\twin.on('close', function() {\n\t\t\t\tvar i = windows.length;\n\n\t\t\t\twhile (i--) {\n\t\t\t\t\tif (windows[i] === win) {\n\t\t\t\t\t\twindows.splice(i, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!windows.length) {\n\t\t\t\t\teditor.focus();\n\t\t\t\t}\n\n\t\t\t\tfireCloseEvent(win);\n\t\t\t});\n\n\t\t\t// Handle data\n\t\t\tif (args.data) {\n\t\t\t\twin.on('postRender', function() {\n\t\t\t\t\tthis.find('*').each(function(ctrl) {\n\t\t\t\t\t\tvar name = ctrl.name();\n\n\t\t\t\t\t\tif (name in args.data) {\n\t\t\t\t\t\t\tctrl.value(args.data[name]);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// store args and parameters\n\t\t\twin.features = args || {};\n\t\t\twin.params = params || {};\n\n\t\t\t// Takes a snapshot in the FocusManager of the selection before focus is lost to dialog\n\t\t\tif (windows.length === 1) {\n\t\t\t\teditor.nodeChanged();\n\t\t\t}\n\n\t\t\twin = win.renderTo().reflow();\n\n\t\t\tfireOpenEvent(win);\n\n\t\t\treturn win;\n\t\t};\n\n\t\t/**\n\t\t * Creates a alert dialog. Please don't use the blocking behavior of this\n\t\t * native version use the callback method instead then it can be extended.\n\t\t *\n\t\t * @method alert\n\t\t * @param {String} message Text to display in the new alert dialog.\n\t\t * @param {function} callback Callback function to be executed after the user has selected ok.\n\t\t * @param {Object} scope Optional scope to execute the callback in.\n\t\t * @example\n\t\t * // Displays an alert box using the active editors window manager instance\n\t\t * tinymce.activeEditor.windowManager.alert('Hello world!');\n\t\t */\n\t\tself.alert = function(message, callback, scope) {\n\t\t\tvar win;\n\n\t\t\twin = MessageBox.alert(message, function() {\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback.call(scope || this);\n\t\t\t\t} else {\n\t\t\t\t\teditor.focus();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\twin.on('close', function() {\n\t\t\t\tfireCloseEvent(win);\n\t\t\t});\n\n\t\t\tfireOpenEvent(win);\n\t\t};\n\n\t\t/**\n\t\t * Creates a confirm dialog. Please don't use the blocking behavior of this\n\t\t * native version use the callback method instead then it can be extended.\n\t\t *\n\t\t * @method confirm\n\t\t * @param {String} message Text to display in the new confirm dialog.\n\t\t * @param {function} callback Callback function to be executed after the user has selected ok or cancel.\n\t\t * @param {Object} scope Optional scope to execute the callback in.\n\t\t * @example\n\t\t * // Displays an confirm box and an alert message will be displayed depending on what you choose in the confirm\n\t\t * tinymce.activeEditor.windowManager.confirm(\"Do you want to do something\", function(s) {\n\t\t * if (s)\n\t\t * tinymce.activeEditor.windowManager.alert(\"Ok\");\n\t\t * else\n\t\t * tinymce.activeEditor.windowManager.alert(\"Cancel\");\n\t\t * });\n\t\t */\n\t\tself.confirm = function(message, callback, scope) {\n\t\t\tvar win;\n\n\t\t\twin = MessageBox.confirm(message, function(state) {\n\t\t\t\tcallback.call(scope || this, state);\n\t\t\t});\n\n\t\t\twin.on('close', function() {\n\t\t\t\tfireCloseEvent(win);\n\t\t\t});\n\n\t\t\tfireOpenEvent(win);\n\t\t};\n\n\t\t/**\n\t\t * Closes the top most window.\n\t\t *\n\t\t * @method close\n\t\t */\n\t\tself.close = function() {\n\t\t\tif (getTopMostWindow()) {\n\t\t\t\tgetTopMostWindow().close();\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Returns the params of the last window open call. This can be used in iframe based\n\t\t * dialog to get params passed from the tinymce plugin.\n\t\t *\n\t\t * @example\n\t\t * var dialogArguments = top.tinymce.activeEditor.windowManager.getParams();\n\t\t *\n\t\t * @method getParams\n\t\t * @return {Object} Name/value object with parameters passed from windowManager.open call.\n\t\t */\n\t\tself.getParams = function() {\n\t\t\treturn getTopMostWindow() ? getTopMostWindow().params : null;\n\t\t};\n\n\t\t/**\n\t\t * Sets the params of the last opened window.\n\t\t *\n\t\t * @method setParams\n\t\t * @param {Object} params Params object to set for the last opened window.\n\t\t */\n\t\tself.setParams = function(params) {\n\t\t\tif (getTopMostWindow()) {\n\t\t\t\tgetTopMostWindow().params = params;\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Returns the currently opened window objects.\n\t\t *\n\t\t * @method getWindows\n\t\t * @return {Array} Array of the currently opened windows.\n\t\t */\n\t\tself.getWindows = function() {\n\t\t\treturn windows;\n\t\t};\n\t};\n});\n\n// Included from: js/tinymce/classes/ui/Tooltip.js\n\n/**\n * Tooltip.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Creates a tooltip instance.\n *\n * @-x-less ToolTip.less\n * @class tinymce.ui.ToolTip\n * @extends tinymce.ui.Control\n * @mixes tinymce.ui.Movable\n */\ndefine(\"tinymce/ui/Tooltip\", [\n\t\"tinymce/ui/Control\",\n\t\"tinymce/ui/Movable\"\n], function(Control, Movable) {\n\treturn Control.extend({\n\t\tMixins: [Movable],\n\n\t\tDefaults: {\n\t\t\tclasses: 'widget tooltip tooltip-n'\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, prefix = self.classPrefix;\n\n\t\t\treturn (\n\t\t\t\t'
' +\n\t\t\t\t\t'
' +\n\t\t\t\t\t'
' + self.encode(self.state.get('text')) + '
' +\n\t\t\t\t'
'\n\t\t\t);\n\t\t},\n\n\t\tbindStates: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.state.on('change:text', function(e) {\n\t\t\t\tself.getEl().lastChild.innerHTML = self.encode(e.value);\n\t\t\t});\n\n\t\t\treturn self._super();\n\t\t},\n\n\t\t/**\n\t\t * Repaints the control after a layout operation.\n\t\t *\n\t\t * @method repaint\n\t\t */\n\t\trepaint: function() {\n\t\t\tvar self = this, style, rect;\n\n\t\t\tstyle = self.getEl().style;\n\t\t\trect = self._layoutRect;\n\n\t\t\tstyle.left = rect.x + 'px';\n\t\t\tstyle.top = rect.y + 'px';\n\t\t\tstyle.zIndex = 0xFFFF + 0xFFFF;\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/Widget.js\n\n/**\n * Widget.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Widget base class a widget is a control that has a tooltip and some basic states.\n *\n * @class tinymce.ui.Widget\n * @extends tinymce.ui.Control\n */\ndefine(\"tinymce/ui/Widget\", [\n\t\"tinymce/ui/Control\",\n\t\"tinymce/ui/Tooltip\"\n], function(Control, Tooltip) {\n\t\"use strict\";\n\n\tvar tooltip;\n\n\tvar Widget = Control.extend({\n\t\t/**\n\t\t * Constructs a instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t * @setting {String} tooltip Tooltip text to display when hovering.\n\t\t * @setting {Boolean} autofocus True if the control should be focused when rendered.\n\t\t * @setting {String} text Text to display inside widget.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this;\n\n\t\t\tself._super(settings);\n\t\t\tsettings = self.settings;\n\t\t\tself.canFocus = true;\n\n\t\t\tif (settings.tooltip && Widget.tooltips !== false) {\n\t\t\t\tself.on('mouseenter', function(e) {\n\t\t\t\t\tvar tooltip = self.tooltip().moveTo(-0xFFFF);\n\n\t\t\t\t\tif (e.control == self) {\n\t\t\t\t\t\tvar rel = tooltip.text(settings.tooltip).show().testMoveRel(self.getEl(), ['bc-tc', 'bc-tl', 'bc-tr']);\n\n\t\t\t\t\t\ttooltip.classes.toggle('tooltip-n', rel == 'bc-tc');\n\t\t\t\t\t\ttooltip.classes.toggle('tooltip-nw', rel == 'bc-tl');\n\t\t\t\t\t\ttooltip.classes.toggle('tooltip-ne', rel == 'bc-tr');\n\n\t\t\t\t\t\ttooltip.moveRel(self.getEl(), rel);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttooltip.hide();\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tself.on('mouseleave mousedown click', function() {\n\t\t\t\t\tself.tooltip().hide();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tself.aria('label', settings.ariaLabel || settings.tooltip);\n\t\t},\n\n\t\t/**\n\t\t * Returns the current tooltip instance.\n\t\t *\n\t\t * @method tooltip\n\t\t * @return {tinymce.ui.Tooltip} Tooltip instance.\n\t\t */\n\t\ttooltip: function() {\n\t\t\tif (!tooltip) {\n\t\t\t\ttooltip = new Tooltip({type: 'tooltip'});\n\t\t\t\ttooltip.renderTo();\n\t\t\t}\n\n\t\t\treturn tooltip;\n\t\t},\n\n\t\t/**\n\t\t * Called after the control has been rendered.\n\t\t *\n\t\t * @method postRender\n\t\t */\n\t\tpostRender: function() {\n\t\t\tvar self = this, settings = self.settings;\n\n\t\t\tself._super();\n\n\t\t\tif (!self.parent() && (settings.width || settings.height)) {\n\t\t\t\tself.initLayoutRect();\n\t\t\t\tself.repaint();\n\t\t\t}\n\n\t\t\tif (settings.autofocus) {\n\t\t\t\tself.focus();\n\t\t\t}\n\t\t},\n\n\t\tbindStates: function() {\n\t\t\tvar self = this;\n\n\t\t\tfunction disable(state) {\n\t\t\t\tself.aria('disabled', state);\n\t\t\t\tself.classes.toggle('disabled', state);\n\t\t\t}\n\n\t\t\tfunction active(state) {\n\t\t\t\tself.aria('pressed', state);\n\t\t\t\tself.classes.toggle('active', state);\n\t\t\t}\n\n\t\t\tself.state.on('change:disabled', function(e) {\n\t\t\t\tdisable(e.value);\n\t\t\t});\n\n\t\t\tself.state.on('change:active', function(e) {\n\t\t\t\tactive(e.value);\n\t\t\t});\n\n\t\t\tif (self.state.get('disabled')) {\n\t\t\t\tdisable(true);\n\t\t\t}\n\n\t\t\tif (self.state.get('active')) {\n\t\t\t\tactive(true);\n\t\t\t}\n\n\t\t\treturn self._super();\n\t\t},\n\n\t\t/**\n\t\t * Removes the current control from DOM and from UI collections.\n\t\t *\n\t\t * @method remove\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\tremove: function() {\n\t\t\tthis._super();\n\n\t\t\tif (tooltip) {\n\t\t\t\ttooltip.remove();\n\t\t\t\ttooltip = null;\n\t\t\t}\n\t\t}\n\t});\n\n\treturn Widget;\n});\n\n// Included from: js/tinymce/classes/ui/Progress.js\n\n/**\n * Progress.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Progress control.\n *\n * @-x-less Progress.less\n * @class tinymce.ui.Progress\n * @extends tinymce.ui.Control\n */\ndefine(\"tinymce/ui/Progress\", [\n\t\"tinymce/ui/Widget\"\n], function(Widget) {\n\t\"use strict\";\n\n\treturn Widget.extend({\n\t\tDefaults: {\n\t\t\tvalue: 0\n\t\t},\n\n\t\tinit: function(settings) {\n\t\t\tvar self = this;\n\n\t\t\tself._super(settings);\n\t\t\tself.classes.add('progress');\n\n\t\t\tif (!self.settings.filter) {\n\t\t\t\tself.settings.filter = function(value) {\n\t\t\t\t\treturn Math.round(value);\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\n\t\trenderHtml: function() {\n\t\t\tvar self = this, id = self._id, prefix = this.classPrefix;\n\n\t\t\treturn (\n\t\t\t\t'
' +\n\t\t\t\t\t'
' +\n\t\t\t\t\t\t'
' +\n\t\t\t\t\t'
' +\n\t\t\t\t\t'
0%
' +\n\t\t\t\t'
'\n\t\t\t);\n\t\t},\n\n\t\tpostRender: function() {\n\t\t\tvar self = this;\n\n\t\t\tself._super();\n\t\t\tself.value(self.settings.value);\n\n\t\t\treturn self;\n\t\t},\n\n\t\tbindStates: function() {\n\t\t\tvar self = this;\n\n\t\t\tfunction setValue(value) {\n\t\t\t\tvalue = self.settings.filter(value);\n\t\t\t\tself.getEl().lastChild.innerHTML = value + '%';\n\t\t\t\tself.getEl().firstChild.firstChild.style.width = value + '%';\n\t\t\t}\n\n\t\t\tself.state.on('change:value', function(e) {\n\t\t\t\tsetValue(e.value);\n\t\t\t});\n\n\t\t\tsetValue(self.state.get('value'));\n\n\t\t\treturn self._super();\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/Notification.js\n\n/**\n * Notification.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Creates a notification instance.\n *\n * @-x-less Notification.less\n * @class tinymce.ui.Notification\n * @extends tinymce.ui.Container\n * @mixes tinymce.ui.Movable\n */\ndefine(\"tinymce/ui/Notification\", [\n\t\"tinymce/ui/Control\",\n\t\"tinymce/ui/Movable\",\n\t\"tinymce/ui/Progress\",\n\t\"tinymce/util/Delay\"\n], function(Control, Movable, Progress, Delay) {\n\treturn Control.extend({\n\t\tMixins: [Movable],\n\n\t\tDefaults: {\n\t\t\tclasses: 'widget notification'\n\t\t},\n\n\t\tinit: function(settings) {\n\t\t\tvar self = this;\n\n\t\t\tself._super(settings);\n\n\t\t\tif (settings.text) {\n\t\t\t\tself.text(settings.text);\n\t\t\t}\n\n\t\t\tif (settings.icon) {\n\t\t\t\tself.icon = settings.icon;\n\t\t\t}\n\n\t\t\tif (settings.color) {\n\t\t\t\tself.color = settings.color;\n\t\t\t}\n\n\t\t\tif (settings.type) {\n\t\t\t\tself.classes.add('notification-' + settings.type);\n\t\t\t}\n\n\t\t\tif (settings.timeout && (settings.timeout < 0 || settings.timeout > 0) && !settings.closeButton) {\n\t\t\t\tself.closeButton = false;\n\t\t\t} else {\n\t\t\t\tself.classes.add('has-close');\n\t\t\t\tself.closeButton = true;\n\t\t\t}\n\n\t\t\tif (settings.progressBar) {\n\t\t\t\tself.progressBar = new Progress();\n\t\t\t}\n\n\t\t\tself.on('click', function(e) {\n\t\t\t\tif (e.target.className.indexOf(self.classPrefix + 'close') != -1) {\n\t\t\t\t\tself.close();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, prefix = self.classPrefix, icon = '', closeButton = '', progressBar = '', notificationStyle = '';\n\n\t\t\tif (self.icon) {\n\t\t\t\ticon = '';\n\t\t\t}\n\n\t\t\tif (self.color) {\n\t\t\t\tnotificationStyle = ' style=\"background-color: ' + self.color + '\"';\n\t\t\t}\n\n\t\t\tif (self.closeButton) {\n\t\t\t\tcloseButton = '';\n\t\t\t}\n\n\t\t\tif (self.progressBar) {\n\t\t\t\tprogressBar = self.progressBar.renderHtml();\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t'
' +\n\t\t\t\t\ticon +\n\t\t\t\t\t'
' + self.state.get('text') + '
' +\n\t\t\t\t\tprogressBar +\n\t\t\t\t\tcloseButton +\n\t\t\t\t'
'\n\t\t\t);\n\t\t},\n\n\t\tpostRender: function() {\n\t\t\tvar self = this;\n\n\t\t\tDelay.setTimeout(function() {\n\t\t\t\tself.$el.addClass(self.classPrefix + 'in');\n\t\t\t});\n\n\t\t\treturn self._super();\n\t\t},\n\n\t\tbindStates: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.state.on('change:text', function(e) {\n\t\t\t\tself.getEl().childNodes[1].innerHTML = e.value;\n\t\t\t});\n\t\t\tif (self.progressBar) {\n\t\t\t\tself.progressBar.bindStates();\n\t\t\t}\n\t\t\treturn self._super();\n\t\t},\n\n\t\tclose: function() {\n\t\t\tvar self = this;\n\n\t\t\tif (!self.fire('close').isDefaultPrevented()) {\n\t\t\t\tself.remove();\n\t\t\t}\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Repaints the control after a layout operation.\n\t\t *\n\t\t * @method repaint\n\t\t */\n\t\trepaint: function() {\n\t\t\tvar self = this, style, rect;\n\n\t\t\tstyle = self.getEl().style;\n\t\t\trect = self._layoutRect;\n\n\t\t\tstyle.left = rect.x + 'px';\n\t\t\tstyle.top = rect.y + 'px';\n\n\t\t\t// Hardcoded arbitrary z-value because we want the\n\t\t\t// notifications under the other windows\n\t\t\tstyle.zIndex = 0xFFFF - 1;\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/NotificationManager.js\n\n/**\n * NotificationManager.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class handles the creation of TinyMCE's notifications.\n *\n * @class tinymce.notificationManager\n * @example\n * // Opens a new notification of type \"error\" with text \"An error occurred.\"\n * tinymce.activeEditor.notificationManager.open({\n * text: 'An error occurred.',\n * type: 'error'\n * });\n */\ndefine(\"tinymce/NotificationManager\", [\n\t\"tinymce/ui/Notification\",\n\t\"tinymce/util/Delay\",\n\t\"tinymce/util/Tools\"\n], function(Notification, Delay, Tools) {\n\treturn function(editor) {\n\t\tvar self = this, notifications = [];\n\n\t\tfunction getLastNotification() {\n\t\t\tif (notifications.length) {\n\t\t\t\treturn notifications[notifications.length - 1];\n\t\t\t}\n\t\t}\n\n\t\tself.notifications = notifications;\n\n\t\tfunction resizeWindowEvent() {\n\t\t\tDelay.requestAnimationFrame(function() {\n\t\t\t\tprePositionNotifications();\n\t\t\t\tpositionNotifications();\n\t\t\t});\n\t\t}\n\n\t\t// Since the viewport will change based on the present notifications, we need to move them all to the\n\t\t// top left of the viewport to give an accurate size measurement so we can position them later.\n\t\tfunction prePositionNotifications() {\n\t\t\tfor (var i = 0; i < notifications.length; i++) {\n\t\t\t\tnotifications[i].moveTo(0, 0);\n\t\t\t}\n\t\t}\n\n\t\tfunction positionNotifications() {\n\t\t\tif (notifications.length > 0) {\n\t\t\t\tvar firstItem = notifications.slice(0, 1)[0];\n\t\t\t\tvar container = editor.inline ? editor.getElement() : editor.getContentAreaContainer();\n\t\t\t\tfirstItem.moveRel(container, 'tc-tc');\n\t\t\t\tif (notifications.length > 1) {\n\t\t\t\t\tfor (var i = 1; i < notifications.length; i++) {\n\t\t\t\t\t\tnotifications[i].moveRel(notifications[i - 1].getEl(), 'bc-tc');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\teditor.on('remove', function() {\n\t\t\tvar i = notifications.length;\n\n\t\t\twhile (i--) {\n\t\t\t\tnotifications[i].close();\n\t\t\t}\n\t\t});\n\n\t\teditor.on('ResizeEditor', positionNotifications);\n\t\teditor.on('ResizeWindow', resizeWindowEvent);\n\n\t\t/**\n\t\t * Opens a new notification.\n\t\t *\n\t\t * @method open\n\t\t * @param {Object} args Optional name/value settings collection contains things like timeout/color/message etc.\n\t\t */\n\t\tself.open = function(args) {\n\t\t\t// Never open notification if editor has been removed.\n\t\t\tif (editor.removed) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar notif;\n\n\t\t\teditor.editorManager.setActive(editor);\n\n\t\t\tvar duplicate = findDuplicateMessage(notifications, args);\n\n\t\t\tif (duplicate === null) {\n\t\t\t\tnotif = new Notification(args);\n\t\t\t\tnotifications.push(notif);\n\n\t\t\t\t//If we have a timeout value\n\t\t\t\tif (args.timeout > 0) {\n\t\t\t\t\t\tnotif.timer = setTimeout(function() {\n\t\t\t\t\t\t\tnotif.close();\n\t\t\t\t\t\t}, args.timeout);\n\t\t\t\t}\n\n\t\t\t\tnotif.on('close', function() {\n\t\t\t\t\tvar i = notifications.length;\n\n\t\t\t\t\tif (notif.timer) {\n\t\t\t\t\t\teditor.getWin().clearTimeout(notif.timer);\n\t\t\t\t\t}\n\n\t\t\t\t\twhile (i--) {\n\t\t\t\t\t\tif (notifications[i] === notif) {\n\t\t\t\t\t\t\tnotifications.splice(i, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tpositionNotifications();\n\t\t\t\t});\n\n\t\t\t\tnotif.renderTo();\n\n\t\t\t\tpositionNotifications();\n\t\t\t} else {\n\t\t\t\tnotif = duplicate;\n\t\t\t}\n\n\t\t\treturn notif;\n\t\t};\n\n\t\t/**\n\t\t * Closes the top most notification.\n\t\t *\n\t\t * @method close\n\t\t */\n\t\tself.close = function() {\n\t\t\tif (getLastNotification()) {\n\t\t\t\tgetLastNotification().close();\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Returns the currently opened notification objects.\n\t\t *\n\t\t * @method getNotifications\n\t\t * @return {Array} Array of the currently opened notifications.\n\t\t */\n\t\tself.getNotifications = function() {\n\t\t\treturn notifications;\n\t\t};\n\n\t\teditor.on('SkinLoaded', function() {\n\t\t\tvar serviceMessage = editor.settings.service_message;\n\n\t\t\tif (serviceMessage) {\n\t\t\t\teditor.notificationManager.open({\n\t\t\t\t\ttext: serviceMessage,\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\ttimeout: 0,\n\t\t\t\t\ticon: ''\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\t/**\n\t\t * Finds any existing notification with the same properties as the new one.\n\t\t * Returns either the found notification or null.\n\t\t *\n\t\t * @param {Notification[]} notificationArray - Array of current notifications\n\t\t * @param {type: string, } newNotification - New notification object\n\t\t * @returns {?Notification}\n\t\t */\n\t\tfunction findDuplicateMessage(notificationArray, newNotification) {\n\t\t\tif (!isPlainTextNotification(newNotification)) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tvar filteredNotifications = Tools.grep(notificationArray, function (notification) {\n\t\t\t\treturn isSameNotification(newNotification, notification);\n\t\t\t});\n\n\t\t\treturn filteredNotifications.length === 0 ? null : filteredNotifications[0];\n\t\t}\n\n\t\t/**\n\t\t * Checks if the passed in args object has the same\n\t\t * type and text properties as the sent in notification.\n\t\t *\n\t\t * @param {type: string, text: string} a - New notification args object\n\t\t * @param {Notification} b - Old notification\n\t\t * @returns {boolean}\n\t\t */\n\t\tfunction isSameNotification(a, b) {\n\t\t\treturn a.type === b.settings.type && a.text === b.settings.text;\n\t\t}\n\n\t\t/**\n\t\t * Checks that the notification does not have a progressBar\n\t\t * or timeour property.\n\t\t *\n\t\t * @param {Notification} notification - Notification to check\n\t\t * @returns {boolean}\n\t\t */\n\t\tfunction isPlainTextNotification(notification) {\n\t\t\treturn !notification.progressBar && !notification.timeout;\n\t\t}\n\n\t\t//self.positionNotifications = positionNotifications;\n\t};\n});\n\n// Included from: js/tinymce/classes/dom/NodePath.js\n\n/**\n * NodePath.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Handles paths of nodes within an element.\n *\n * @private\n * @class tinymce.dom.NodePath\n */\ndefine(\"tinymce/dom/NodePath\", [\n\t\"tinymce/dom/DOMUtils\"\n], function(DOMUtils) {\n\tfunction create(rootNode, targetNode, normalized) {\n\t\tvar path = [];\n\n\t\tfor (; targetNode && targetNode != rootNode; targetNode = targetNode.parentNode) {\n\t\t\tpath.push(DOMUtils.nodeIndex(targetNode, normalized));\n\t\t}\n\n\t\treturn path;\n\t}\n\n\tfunction resolve(rootNode, path) {\n\t\tvar i, node, children;\n\n\t\tfor (node = rootNode, i = path.length - 1; i >= 0; i--) {\n\t\t\tchildren = node.childNodes;\n\n\t\t\tif (path[i] > children.length - 1) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tnode = children[path[i]];\n\t\t}\n\n\t\treturn node;\n\t}\n\n\treturn {\n\t\tcreate: create,\n\t\tresolve: resolve\n\t};\n});\n\n// Included from: js/tinymce/classes/util/Quirks.js\n\n/**\n * Quirks.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n *\n * @ignore-file\n */\n\n/**\n * This file includes fixes for various browser quirks it's made to make it easy to add/remove browser specific fixes.\n *\n * @private\n * @class tinymce.util.Quirks\n */\ndefine(\"tinymce/util/Quirks\", [\n\t\"tinymce/util/VK\",\n\t\"tinymce/dom/RangeUtils\",\n\t\"tinymce/dom/TreeWalker\",\n\t\"tinymce/dom/NodePath\",\n\t\"tinymce/html/Node\",\n\t\"tinymce/html/Entities\",\n\t\"tinymce/Env\",\n\t\"tinymce/util/Tools\",\n\t\"tinymce/util/Delay\",\n\t\"tinymce/caret/CaretContainer\",\n\t\"tinymce/caret/CaretPosition\",\n\t\"tinymce/caret/CaretWalker\"\n], function(VK, RangeUtils, TreeWalker, NodePath, Node, Entities, Env, Tools, Delay, CaretContainer, CaretPosition, CaretWalker) {\n\treturn function(editor) {\n\t\tvar each = Tools.each, $ = editor.$;\n\t\tvar BACKSPACE = VK.BACKSPACE, DELETE = VK.DELETE, dom = editor.dom, selection = editor.selection,\n\t\t\tsettings = editor.settings, parser = editor.parser, serializer = editor.serializer;\n\t\tvar isGecko = Env.gecko, isIE = Env.ie, isWebKit = Env.webkit;\n\t\tvar mceInternalUrlPrefix = 'data:text/mce-internal,';\n\t\tvar mceInternalDataType = isIE ? 'Text' : 'URL';\n\n\t\t/**\n\t\t * Executes a command with a specific state this can be to enable/disable browser editing features.\n\t\t */\n\t\tfunction setEditorCommandState(cmd, state) {\n\t\t\ttry {\n\t\t\t\teditor.getDoc().execCommand(cmd, false, state);\n\t\t\t} catch (ex) {\n\t\t\t\t// Ignore\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Returns current IE document mode.\n\t\t */\n\t\tfunction getDocumentMode() {\n\t\t\tvar documentMode = editor.getDoc().documentMode;\n\n\t\t\treturn documentMode ? documentMode : 6;\n\t\t}\n\n\t\t/**\n\t\t * Returns true/false if the event is prevented or not.\n\t\t *\n\t\t * @private\n\t\t * @param {Event} e Event object.\n\t\t * @return {Boolean} true/false if the event is prevented or not.\n\t\t */\n\t\tfunction isDefaultPrevented(e) {\n\t\t\treturn e.isDefaultPrevented();\n\t\t}\n\n\t\t/**\n\t\t * Sets Text/URL data on the event's dataTransfer object to a special data:text/mce-internal url.\n\t\t * This is to workaround the inability to set custom contentType on IE and Safari.\n\t\t * The editor's selected content is encoded into this url so drag and drop between editors will work.\n\t\t *\n\t\t * @private\n\t\t * @param {DragEvent} e Event object\n\t\t */\n\t\tfunction setMceInternalContent(e) {\n\t\t\tvar selectionHtml, internalContent;\n\n\t\t\tif (e.dataTransfer) {\n\t\t\t\tif (editor.selection.isCollapsed() && e.target.tagName == 'IMG') {\n\t\t\t\t\tselection.select(e.target);\n\t\t\t\t}\n\n\t\t\t\tselectionHtml = editor.selection.getContent();\n\n\t\t\t\t// Safari/IE doesn't support custom dataTransfer items so we can only use URL and Text\n\t\t\t\tif (selectionHtml.length > 0) {\n\t\t\t\t\tinternalContent = mceInternalUrlPrefix + escape(editor.id) + ',' + escape(selectionHtml);\n\t\t\t\t\te.dataTransfer.setData(mceInternalDataType, internalContent);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Gets content of special data:text/mce-internal url on the event's dataTransfer object.\n\t\t * This is to workaround the inability to set custom contentType on IE and Safari.\n\t\t * The editor's selected content is encoded into this url so drag and drop between editors will work.\n\t\t *\n\t\t * @private\n\t\t * @param {DragEvent} e Event object\n\t\t * @returns {String} mce-internal content\n\t\t */\n\t\tfunction getMceInternalContent(e) {\n\t\t\tvar internalContent;\n\n\t\t\tif (e.dataTransfer) {\n\t\t\t\tinternalContent = e.dataTransfer.getData(mceInternalDataType);\n\n\t\t\t\tif (internalContent && internalContent.indexOf(mceInternalUrlPrefix) >= 0) {\n\t\t\t\t\tinternalContent = internalContent.substr(mceInternalUrlPrefix.length).split(',');\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: unescape(internalContent[0]),\n\t\t\t\t\t\thtml: unescape(internalContent[1])\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn null;\n\t\t}\n\n\t\t/**\n\t\t * Inserts contents using the paste clipboard command if it's available if it isn't it will fallback\n\t\t * to the core command.\n\t\t *\n\t\t * @private\n\t\t * @param {String} content Content to insert at selection.\n\t\t */\n\t\tfunction insertClipboardContents(content) {\n\t\t\tif (editor.queryCommandSupported('mceInsertClipboardContent')) {\n\t\t\t\teditor.execCommand('mceInsertClipboardContent', false, {content: content});\n\t\t\t} else {\n\t\t\t\teditor.execCommand('mceInsertContent', false, content);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Fixes a WebKit bug when deleting contents using backspace or delete key.\n\t\t * WebKit will produce a span element if you delete across two block elements.\n\t\t *\n\t\t * Example:\n\t\t *

a

|b

\n\t\t *\n\t\t * Will produce this on backspace:\n\t\t *

a\">b

\n\t\t *\n\t\t * This fixes the backspace to produce:\n\t\t *

a|b

\n\t\t *\n\t\t * See bug: https://bugs.webkit.org/show_bug.cgi?id=45784\n\t\t *\n\t\t * This fixes the following delete scenarios:\n\t\t * 1. Delete by pressing backspace key.\n\t\t * 2. Delete by pressing delete key.\n\t\t * 3. Delete by pressing backspace key with ctrl/cmd (Word delete).\n\t\t * 4. Delete by pressing delete key with ctrl/cmd (Word delete).\n\t\t * 5. Delete by drag/dropping contents inside the editor.\n\t\t * 6. Delete by using Cut Ctrl+X/Cmd+X.\n\t\t * 7. Delete by selecting contents and writing a character.\n\t\t *\n\t\t * This code is a ugly hack since writing full custom delete logic for just this bug\n\t\t * fix seemed like a huge task. I hope we can remove this before the year 2030.\n\t\t */\n\t\tfunction cleanupStylesWhenDeleting() {\n\t\t\tvar doc = editor.getDoc(), dom = editor.dom, selection = editor.selection;\n\t\t\tvar MutationObserver = window.MutationObserver, olderWebKit, dragStartRng;\n\n\t\t\t// Add mini polyfill for older WebKits\n\t\t\t// TODO: Remove this when old Safari versions gets updated\n\t\t\tif (!MutationObserver) {\n\t\t\t\tolderWebKit = true;\n\n\t\t\t\tMutationObserver = function() {\n\t\t\t\t\tvar records = [], target;\n\n\t\t\t\t\tfunction nodeInsert(e) {\n\t\t\t\t\t\tvar target = e.relatedNode || e.target;\n\t\t\t\t\t\trecords.push({target: target, addedNodes: [target]});\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction attrModified(e) {\n\t\t\t\t\t\tvar target = e.relatedNode || e.target;\n\t\t\t\t\t\trecords.push({target: target, attributeName: e.attrName});\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.observe = function(node) {\n\t\t\t\t\t\ttarget = node;\n\t\t\t\t\t\ttarget.addEventListener('DOMSubtreeModified', nodeInsert, false);\n\t\t\t\t\t\ttarget.addEventListener('DOMNodeInsertedIntoDocument', nodeInsert, false);\n\t\t\t\t\t\ttarget.addEventListener('DOMNodeInserted', nodeInsert, false);\n\t\t\t\t\t\ttarget.addEventListener('DOMAttrModified', attrModified, false);\n\t\t\t\t\t};\n\n\t\t\t\t\tthis.disconnect = function() {\n\t\t\t\t\t\ttarget.removeEventListener('DOMSubtreeModified', nodeInsert, false);\n\t\t\t\t\t\ttarget.removeEventListener('DOMNodeInsertedIntoDocument', nodeInsert, false);\n\t\t\t\t\t\ttarget.removeEventListener('DOMNodeInserted', nodeInsert, false);\n\t\t\t\t\t\ttarget.removeEventListener('DOMAttrModified', attrModified, false);\n\t\t\t\t\t};\n\n\t\t\t\t\tthis.takeRecords = function() {\n\t\t\t\t\t\treturn records;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tfunction isTrailingBr(node) {\n\t\t\t\tvar blockElements = dom.schema.getBlockElements(), rootNode = editor.getBody();\n\n\t\t\t\tif (node.nodeName != 'BR') {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tfor (; node != rootNode && !blockElements[node.nodeName]; node = node.parentNode) {\n\t\t\t\t\tif (node.nextSibling) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tfunction isSiblingsIgnoreWhiteSpace(node1, node2) {\n\t\t\t\tvar node;\n\n\t\t\t\tfor (node = node1.nextSibling; node && node != node2; node = node.nextSibling) {\n\t\t\t\t\tif (node.nodeType == 3 && $.trim(node.data).length === 0) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (node !== node2) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn node === node2;\n\t\t\t}\n\n\t\t\tfunction findCaretNode(node, forward, startNode) {\n\t\t\t\tvar walker, current, nonEmptyElements;\n\n\t\t\t\t// Protect against the possibility we are asked to find a caret node relative\n\t\t\t\t// to a node that is no longer in the DOM tree. In this case attempting to\n\t\t\t\t// select on any match leads to a scenario where selection is completely removed\n\t\t\t\t// from the editor. This scenario is met in real world at a minimum on\n\t\t\t\t// WebKit browsers when selecting all and Cmd-X cutting to delete content.\n\t\t\t\tif (!dom.isChildOf(node, editor.getBody())) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tnonEmptyElements = dom.schema.getNonEmptyElements();\n\n\t\t\t\twalker = new TreeWalker(startNode || node, node);\n\n\t\t\t\twhile ((current = walker[forward ? 'next' : 'prev']())) {\n\t\t\t\t\tif (nonEmptyElements[current.nodeName] && !isTrailingBr(current)) {\n\t\t\t\t\t\treturn current;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (current.nodeType == 3 && current.data.length > 0) {\n\t\t\t\t\t\treturn current;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction deleteRangeBetweenTextBlocks(rng) {\n\t\t\t\tvar startBlock, endBlock, caretNodeBefore, caretNodeAfter, textBlockElements;\n\n\t\t\t\tif (rng.collapsed) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tstartBlock = dom.getParent(RangeUtils.getNode(rng.startContainer, rng.startOffset), dom.isBlock);\n\t\t\t\tendBlock = dom.getParent(RangeUtils.getNode(rng.endContainer, rng.endOffset), dom.isBlock);\n\t\t\t\ttextBlockElements = editor.schema.getTextBlockElements();\n\n\t\t\t\tif (startBlock == endBlock) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!textBlockElements[startBlock.nodeName] || !textBlockElements[endBlock.nodeName]) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (dom.getContentEditable(startBlock) === \"false\" || dom.getContentEditable(endBlock) === \"false\") {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\trng.deleteContents();\n\n\t\t\t\tcaretNodeBefore = findCaretNode(startBlock, false);\n\t\t\t\tcaretNodeAfter = findCaretNode(endBlock, true);\n\n\t\t\t\tif (!dom.isEmpty(endBlock)) {\n\t\t\t\t\t$(startBlock).append(endBlock.childNodes);\n\t\t\t\t}\n\n\t\t\t\t$(endBlock).remove();\n\n\t\t\t\tif (caretNodeBefore) {\n\t\t\t\t\tif (caretNodeBefore.nodeType == 1) {\n\t\t\t\t\t\tif (caretNodeBefore.nodeName == \"BR\") {\n\t\t\t\t\t\t\trng.setStartBefore(caretNodeBefore);\n\t\t\t\t\t\t\trng.setEndBefore(caretNodeBefore);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trng.setStartAfter(caretNodeBefore);\n\t\t\t\t\t\t\trng.setEndAfter(caretNodeBefore);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\trng.setStart(caretNodeBefore, caretNodeBefore.data.length);\n\t\t\t\t\t\trng.setEnd(caretNodeBefore, caretNodeBefore.data.length);\n\t\t\t\t\t}\n\t\t\t\t} else if (caretNodeAfter) {\n\t\t\t\t\tif (caretNodeAfter.nodeType == 1) {\n\t\t\t\t\t\trng.setStartBefore(caretNodeAfter);\n\t\t\t\t\t\trng.setEndBefore(caretNodeAfter);\n\t\t\t\t\t} else {\n\t\t\t\t\t\trng.setStart(caretNodeAfter, 0);\n\t\t\t\t\t\trng.setEnd(caretNodeAfter, 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tselection.setRng(rng);\n\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tfunction expandBetweenBlocks(rng, isForward) {\n\t\t\t\tvar caretNode, targetCaretNode, textBlock, targetTextBlock, container, offset;\n\n\t\t\t\tif (!rng.collapsed) {\n\t\t\t\t\treturn rng;\n\t\t\t\t}\n\n\t\t\t\tcontainer = rng.startContainer;\n\t\t\t\toffset = rng.startOffset;\n\n\t\t\t\tif (container.nodeType == 3) {\n\t\t\t\t\tif (isForward) {\n\t\t\t\t\t\tif (offset < container.data.length) {\n\t\t\t\t\t\t\treturn rng;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (offset > 0) {\n\t\t\t\t\t\t\treturn rng;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcaretNode = RangeUtils.getNode(container, offset);\n\t\t\t\ttextBlock = dom.getParent(caretNode, dom.isBlock);\n\t\t\t\ttargetCaretNode = findCaretNode(editor.getBody(), isForward, caretNode);\n\t\t\t\ttargetTextBlock = dom.getParent(targetCaretNode, dom.isBlock);\n\t\t\t\tvar isAfter = container.nodeType === 1 && offset > container.childNodes.length - 1;\n\n\t\t\t\tif (!caretNode || !targetCaretNode) {\n\t\t\t\t\treturn rng;\n\t\t\t\t}\n\n\t\t\t\tif (targetTextBlock && textBlock != targetTextBlock) {\n\t\t\t\t\tif (!isForward) {\n\t\t\t\t\t\tif (!isSiblingsIgnoreWhiteSpace(targetTextBlock, textBlock)) {\n\t\t\t\t\t\t\treturn rng;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (targetCaretNode.nodeType == 1) {\n\t\t\t\t\t\t\tif (targetCaretNode.nodeName == \"BR\") {\n\t\t\t\t\t\t\t\trng.setStartBefore(targetCaretNode);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\trng.setStartAfter(targetCaretNode);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trng.setStart(targetCaretNode, targetCaretNode.data.length);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (caretNode.nodeType == 1) {\n\t\t\t\t\t\t\tif (isAfter) {\n\t\t\t\t\t\t\t\trng.setEndAfter(caretNode);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\trng.setEndBefore(caretNode);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trng.setEndBefore(caretNode);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (!isSiblingsIgnoreWhiteSpace(textBlock, targetTextBlock)) {\n\t\t\t\t\t\t\treturn rng;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (caretNode.nodeType == 1) {\n\t\t\t\t\t\t\tif (caretNode.nodeName == \"BR\") {\n\t\t\t\t\t\t\t\trng.setStartBefore(caretNode);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\trng.setStartAfter(caretNode);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trng.setStart(caretNode, caretNode.data.length);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (targetCaretNode.nodeType == 1) {\n\t\t\t\t\t\t\trng.setEnd(targetCaretNode, 0);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trng.setEndBefore(targetCaretNode);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn rng;\n\t\t\t}\n\n\t\t\tfunction handleTextBlockMergeDelete(isForward) {\n\t\t\t\tvar rng = selection.getRng();\n\n\t\t\t\trng = expandBetweenBlocks(rng, isForward);\n\n\t\t\t\tif (deleteRangeBetweenTextBlocks(rng)) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * This retains the formatting if the last character is to be deleted.\n\t\t\t *\n\t\t\t * Backspace on this:

a|

would become

|

in WebKit.\n\t\t\t * With this patch:

|

\n\t\t\t */\n\t\t\tfunction handleLastBlockCharacterDelete(isForward, rng) {\n\t\t\t\tvar path, blockElm, newBlockElm, clonedBlockElm, sibling,\n\t\t\t\t\tcontainer, offset, br, currentFormatNodes;\n\n\t\t\t\tfunction cloneTextBlockWithFormats(blockElm, node) {\n\t\t\t\t\tcurrentFormatNodes = $(node).parents().filter(function(idx, node) {\n\t\t\t\t\t\treturn !!editor.schema.getTextInlineElements()[node.nodeName];\n\t\t\t\t\t});\n\n\t\t\t\t\tnewBlockElm = blockElm.cloneNode(false);\n\n\t\t\t\t\tcurrentFormatNodes = Tools.map(currentFormatNodes, function(formatNode) {\n\t\t\t\t\t\tformatNode = formatNode.cloneNode(false);\n\n\t\t\t\t\t\tif (newBlockElm.hasChildNodes()) {\n\t\t\t\t\t\t\tformatNode.appendChild(newBlockElm.firstChild);\n\t\t\t\t\t\t\tnewBlockElm.appendChild(formatNode);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnewBlockElm.appendChild(formatNode);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tnewBlockElm.appendChild(formatNode);\n\n\t\t\t\t\t\treturn formatNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tif (currentFormatNodes.length) {\n\t\t\t\t\t\tbr = dom.create('br');\n\t\t\t\t\t\tcurrentFormatNodes[0].appendChild(br);\n\t\t\t\t\t\tdom.replace(newBlockElm, blockElm);\n\n\t\t\t\t\t\trng.setStartBefore(br);\n\t\t\t\t\t\trng.setEndBefore(br);\n\t\t\t\t\t\teditor.selection.setRng(rng);\n\n\t\t\t\t\t\treturn br;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tfunction isTextBlock(node) {\n\t\t\t\t\treturn node && editor.schema.getTextBlockElements()[node.tagName];\n\t\t\t\t}\n\n\t\t\t\tif (!rng.collapsed) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tcontainer = rng.startContainer;\n\t\t\t\toffset = rng.startOffset;\n\t\t\t\tblockElm = dom.getParent(container, dom.isBlock);\n\t\t\t\tif (!isTextBlock(blockElm)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (container.nodeType == 1) {\n\t\t\t\t\tcontainer = container.childNodes[offset];\n\t\t\t\t\tif (container && container.tagName != 'BR') {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (isForward) {\n\t\t\t\t\t\tsibling = blockElm.nextSibling;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsibling = blockElm.previousSibling;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (dom.isEmpty(blockElm) && isTextBlock(sibling) && dom.isEmpty(sibling)) {\n\t\t\t\t\t\tif (cloneTextBlockWithFormats(blockElm, container)) {\n\t\t\t\t\t\t\tdom.remove(sibling);\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (container.nodeType == 3) {\n\t\t\t\t\tpath = NodePath.create(blockElm, container);\n\t\t\t\t\tclonedBlockElm = blockElm.cloneNode(true);\n\t\t\t\t\tcontainer = NodePath.resolve(clonedBlockElm, path);\n\n\t\t\t\t\tif (isForward) {\n\t\t\t\t\t\tif (offset >= container.data.length) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontainer.deleteData(offset, 1);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (offset <= 0) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontainer.deleteData(offset - 1, 1);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (dom.isEmpty(clonedBlockElm)) {\n\t\t\t\t\t\treturn cloneTextBlockWithFormats(blockElm, container);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction customDelete(isForward) {\n\t\t\t\tvar mutationObserver, rng, caretElement;\n\n\t\t\t\tif (handleTextBlockMergeDelete(isForward)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tTools.each(editor.getBody().getElementsByTagName('*'), function(elm) {\n\t\t\t\t\t// Mark existing spans\n\t\t\t\t\tif (elm.tagName == 'SPAN') {\n\t\t\t\t\t\telm.setAttribute('mce-data-marked', 1);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Make sure all elements has a data-mce-style attribute\n\t\t\t\t\tif (!elm.hasAttribute('data-mce-style') && elm.hasAttribute('style')) {\n\t\t\t\t\t\teditor.dom.setAttrib(elm, 'style', editor.dom.getAttrib(elm, 'style'));\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Observe added nodes and style attribute changes\n\t\t\t\tmutationObserver = new MutationObserver(function() {});\n\t\t\t\tmutationObserver.observe(editor.getDoc(), {\n\t\t\t\t\tchildList: true,\n\t\t\t\t\tattributes: true,\n\t\t\t\t\tsubtree: true,\n\t\t\t\t\tattributeFilter: ['style']\n\t\t\t\t});\n\n\t\t\t\teditor.getDoc().execCommand(isForward ? 'ForwardDelete' : 'Delete', false, null);\n\n\t\t\t\trng = editor.selection.getRng();\n\t\t\t\tcaretElement = rng.startContainer.parentNode;\n\n\t\t\t\tTools.each(mutationObserver.takeRecords(), function(record) {\n\t\t\t\t\tif (!dom.isChildOf(record.target, editor.getBody())) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Restore style attribute to previous value\n\t\t\t\t\tif (record.attributeName == \"style\") {\n\t\t\t\t\t\tvar oldValue = record.target.getAttribute('data-mce-style');\n\n\t\t\t\t\t\tif (oldValue) {\n\t\t\t\t\t\t\trecord.target.setAttribute(\"style\", oldValue);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trecord.target.removeAttribute(\"style\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove all spans that aren't marked and retain selection\n\t\t\t\t\tTools.each(record.addedNodes, function(node) {\n\t\t\t\t\t\tif (node.nodeName == \"SPAN\" && !node.getAttribute('mce-data-marked')) {\n\t\t\t\t\t\t\tvar offset, container;\n\n\t\t\t\t\t\t\tif (node == caretElement) {\n\t\t\t\t\t\t\t\toffset = rng.startOffset;\n\t\t\t\t\t\t\t\tcontainer = node.firstChild;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tdom.remove(node, true);\n\n\t\t\t\t\t\t\tif (container) {\n\t\t\t\t\t\t\t\trng.setStart(container, offset);\n\t\t\t\t\t\t\t\trng.setEnd(container, offset);\n\t\t\t\t\t\t\t\teditor.selection.setRng(rng);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\tmutationObserver.disconnect();\n\n\t\t\t\t// Remove any left over marks\n\t\t\t\tTools.each(editor.dom.select('span[mce-data-marked]'), function(span) {\n\t\t\t\t\tspan.removeAttribute('mce-data-marked');\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tfunction transactCustomDelete(isForward) {\n\t\t\t\teditor.undoManager.transact(function () {\n\t\t\t\t\tcustomDelete(isForward);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\teditor.on('keydown', function(e) {\n\t\t\t\tvar isForward = e.keyCode == DELETE, isMetaOrCtrl = e.ctrlKey || e.metaKey;\n\n\t\t\t\tif (!isDefaultPrevented(e) && (isForward || e.keyCode == BACKSPACE)) {\n\t\t\t\t\tvar rng = editor.selection.getRng(), container = rng.startContainer, offset = rng.startOffset;\n\n\t\t\t\t\t// Shift+Delete is cut\n\t\t\t\t\tif (isForward && e.shiftKey) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (handleLastBlockCharacterDelete(isForward, rng)) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Ignore non meta delete in the where there is text before/after the caret\n\t\t\t\t\tif (!isMetaOrCtrl && rng.collapsed && container.nodeType == 3) {\n\t\t\t\t\t\tif (isForward ? offset < container.data.length : offset > 0) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\tif (isMetaOrCtrl) {\n\t\t\t\t\t\teditor.selection.getSel().modify(\"extend\", isForward ? \"forward\" : \"backward\", e.metaKey ? \"lineboundary\" : \"word\");\n\t\t\t\t\t}\n\n\t\t\t\t\tcustomDelete(isForward);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Handle case where text is deleted by typing over\n\t\t\teditor.on('keypress', function(e) {\n\t\t\t\tif (!isDefaultPrevented(e) && !selection.isCollapsed() && e.charCode > 31 && !VK.metaKeyPressed(e)) {\n\t\t\t\t\tvar rng, currentFormatNodes, fragmentNode, blockParent, caretNode, charText;\n\n\t\t\t\t\trng = editor.selection.getRng();\n\t\t\t\t\tcharText = String.fromCharCode(e.charCode);\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t// Keep track of current format nodes\n\t\t\t\t\tcurrentFormatNodes = $(rng.startContainer).parents().filter(function(idx, node) {\n\t\t\t\t\t\treturn !!editor.schema.getTextInlineElements()[node.nodeName];\n\t\t\t\t\t});\n\n\t\t\t\t\tcustomDelete(true);\n\n\t\t\t\t\t// Check if the browser removed them\n\t\t\t\t\tcurrentFormatNodes = currentFormatNodes.filter(function(idx, node) {\n\t\t\t\t\t\treturn !$.contains(editor.getBody(), node);\n\t\t\t\t\t});\n\n\t\t\t\t\t// Then re-add them\n\t\t\t\t\tif (currentFormatNodes.length) {\n\t\t\t\t\t\tfragmentNode = dom.createFragment();\n\n\t\t\t\t\t\tcurrentFormatNodes.each(function(idx, formatNode) {\n\t\t\t\t\t\t\tformatNode = formatNode.cloneNode(false);\n\n\t\t\t\t\t\t\tif (fragmentNode.hasChildNodes()) {\n\t\t\t\t\t\t\t\tformatNode.appendChild(fragmentNode.firstChild);\n\t\t\t\t\t\t\t\tfragmentNode.appendChild(formatNode);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcaretNode = formatNode;\n\t\t\t\t\t\t\t\tfragmentNode.appendChild(formatNode);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfragmentNode.appendChild(formatNode);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tcaretNode.appendChild(editor.getDoc().createTextNode(charText));\n\n\t\t\t\t\t\t// Prevent edge case where older WebKit would add an extra BR element\n\t\t\t\t\t\tblockParent = dom.getParent(rng.startContainer, dom.isBlock);\n\t\t\t\t\t\tif (dom.isEmpty(blockParent)) {\n\t\t\t\t\t\t\t$(blockParent).empty().append(fragmentNode);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trng.insertNode(fragmentNode);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\trng.setStart(caretNode.firstChild, 1);\n\t\t\t\t\t\trng.setEnd(caretNode.firstChild, 1);\n\t\t\t\t\t\teditor.selection.setRng(rng);\n\t\t\t\t\t} else {\n\t\t\t\t\t\teditor.selection.setContent(charText);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\teditor.addCommand('Delete', function() {\n\t\t\t\tcustomDelete();\n\t\t\t});\n\n\t\t\teditor.addCommand('ForwardDelete', function() {\n\t\t\t\tcustomDelete(true);\n\t\t\t});\n\n\t\t\t// Older WebKits doesn't properly handle the clipboard so we can't add the rest\n\t\t\tif (olderWebKit) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\teditor.on('dragstart', function(e) {\n\t\t\t\tdragStartRng = selection.getRng();\n\t\t\t\tsetMceInternalContent(e);\n\t\t\t});\n\n\t\t\teditor.on('drop', function(e) {\n\t\t\t\tif (!isDefaultPrevented(e)) {\n\t\t\t\t\tvar internalContent = getMceInternalContent(e);\n\n\t\t\t\t\tif (internalContent) {\n\t\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t\t// Safari has a weird issue where drag/dropping images sometimes\n\t\t\t\t\t\t// produces a green plus icon. When this happens the caretRangeFromPoint\n\t\t\t\t\t\t// will return \"null\" even though the x, y coordinate is correct.\n\t\t\t\t\t\t// But if we detach the insert from the drop event we will get a proper range\n\t\t\t\t\t\tDelay.setEditorTimeout(editor, function() {\n\t\t\t\t\t\t\tvar pointRng = RangeUtils.getCaretRangeFromPoint(e.x, e.y, doc);\n\n\t\t\t\t\t\t\tif (dragStartRng) {\n\t\t\t\t\t\t\t\tselection.setRng(dragStartRng);\n\t\t\t\t\t\t\t\tdragStartRng = null;\n\t\t\t\t\t\t\t\ttransactCustomDelete();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tselection.setRng(pointRng);\n\t\t\t\t\t\t\tinsertClipboardContents(internalContent.html);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\teditor.on('cut', function(e) {\n\t\t\t\tif (!isDefaultPrevented(e) && e.clipboardData && !editor.selection.isCollapsed()) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.clipboardData.clearData();\n\t\t\t\t\te.clipboardData.setData('text/html', editor.selection.getContent());\n\t\t\t\t\te.clipboardData.setData('text/plain', editor.selection.getContent({format: 'text'}));\n\n\t\t\t\t\t// Needed delay for https://code.google.com/p/chromium/issues/detail?id=363288#c3\n\t\t\t\t\t// Nested delete/forwardDelete not allowed on execCommand(\"cut\")\n\t\t\t\t\t// This is ugly but not sure how to work around it otherwise\n\t\t\t\t\tDelay.setEditorTimeout(editor, function() {\n\t\t\t\t\t\ttransactCustomDelete(true);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Makes sure that the editor body becomes empty when backspace or delete is pressed in empty editors.\n\t\t *\n\t\t * For example:\n\t\t *

|

\n\t\t *\n\t\t * Or:\n\t\t *

|

\n\t\t *\n\t\t * Or:\n\t\t * [

]\n\t\t */\n\t\tfunction emptyEditorWhenDeleting() {\n\t\t\tfunction serializeRng(rng) {\n\t\t\t\tvar body = dom.create(\"body\");\n\t\t\t\tvar contents = rng.cloneContents();\n\t\t\t\tbody.appendChild(contents);\n\t\t\t\treturn selection.serializer.serialize(body, {format: 'html'});\n\t\t\t}\n\n\t\t\tfunction allContentsSelected(rng) {\n\t\t\t\tif (!rng.setStart) {\n\t\t\t\t\tif (rng.item) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar bodyRng = rng.duplicate();\n\t\t\t\t\tbodyRng.moveToElementText(editor.getBody());\n\t\t\t\t\treturn RangeUtils.compareRanges(rng, bodyRng);\n\t\t\t\t}\n\n\t\t\t\tvar selection = serializeRng(rng);\n\n\t\t\t\tvar allRng = dom.createRng();\n\t\t\t\tallRng.selectNode(editor.getBody());\n\n\t\t\t\tvar allSelection = serializeRng(allRng);\n\t\t\t\treturn selection === allSelection;\n\t\t\t}\n\n\t\t\teditor.on('keydown', function(e) {\n\t\t\t\tvar keyCode = e.keyCode, isCollapsed, body;\n\n\t\t\t\t// Empty the editor if it's needed for example backspace at

|

\n\t\t\t\tif (!isDefaultPrevented(e) && (keyCode == DELETE || keyCode == BACKSPACE)) {\n\t\t\t\t\tisCollapsed = editor.selection.isCollapsed();\n\t\t\t\t\tbody = editor.getBody();\n\n\t\t\t\t\t// Selection is collapsed but the editor isn't empty\n\t\t\t\t\tif (isCollapsed && !dom.isEmpty(body)) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Selection isn't collapsed but not all the contents is selected\n\t\t\t\t\tif (!isCollapsed && !allContentsSelected(editor.selection.getRng())) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Manually empty the editor\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\teditor.setContent('');\n\n\t\t\t\t\tif (body.firstChild && dom.isBlock(body.firstChild)) {\n\t\t\t\t\t\teditor.selection.setCursorLocation(body.firstChild, 0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\teditor.selection.setCursorLocation(body, 0);\n\t\t\t\t\t}\n\n\t\t\t\t\teditor.nodeChanged();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * WebKit doesn't select all the nodes in the body when you press Ctrl+A.\n\t\t * IE selects more than the contents [

a

] instead of

[a] see bug #6438\n\t\t * This selects the whole body so that backspace/delete logic will delete everything\n\t\t */\n\t\tfunction selectAll() {\n\t\t\teditor.shortcuts.add('meta+a', null, 'SelectAll');\n\t\t}\n\n\t\t/**\n\t\t * WebKit has a weird issue where it some times fails to properly convert keypresses to input method keystrokes.\n\t\t * The IME on Mac doesn't initialize when it doesn't fire a proper focus event.\n\t\t *\n\t\t * This seems to happen when the user manages to click the documentElement element then the window doesn't get proper focus until\n\t\t * you enter a character into the editor.\n\t\t *\n\t\t * It also happens when the first focus in made to the body.\n\t\t *\n\t\t * See: https://bugs.webkit.org/show_bug.cgi?id=83566\n\t\t */\n\t\tfunction inputMethodFocus() {\n\t\t\tif (!editor.settings.content_editable) {\n\t\t\t\t// Case 1 IME doesn't initialize if you focus the document\n\t\t\t\t// Disabled since it was interferring with the cE=false logic\n\t\t\t\t// Also coultn't reproduce the issue on Safari 9\n\t\t\t\t/*dom.bind(editor.getDoc(), 'focusin', function() {\n\t\t\t\t\tselection.setRng(selection.getRng());\n\t\t\t\t});*/\n\n\t\t\t\t// Case 2 IME doesn't initialize if you click the documentElement it also doesn't properly fire the focusin event\n\t\t\t\t// Needs to be both down/up due to weird rendering bug on Chrome Windows\n\t\t\t\tdom.bind(editor.getDoc(), 'mousedown mouseup', function(e) {\n\t\t\t\t\tvar rng;\n\n\t\t\t\t\tif (e.target == editor.getDoc().documentElement) {\n\t\t\t\t\t\trng = selection.getRng();\n\t\t\t\t\t\teditor.getBody().focus();\n\n\t\t\t\t\t\tif (e.type == 'mousedown') {\n\t\t\t\t\t\t\tif (CaretContainer.isCaretContainer(rng.startContainer)) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Edge case for mousedown, drag select and mousedown again within selection on Chrome Windows to render caret\n\t\t\t\t\t\t\tselection.placeCaretAt(e.clientX, e.clientY);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tselection.setRng(rng);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Backspacing in FireFox/IE from a paragraph into a horizontal rule results in a floating text node because the\n\t\t * browser just deletes the paragraph - the browser fails to merge the text node with a horizontal rule so it is\n\t\t * left there. TinyMCE sees a floating text node and wraps it in a paragraph on the key up event (ForceBlocks.js\n\t\t * addRootBlocks), meaning the action does nothing. With this code, FireFox/IE matche the behaviour of other\n\t\t * browsers.\n\t\t *\n\t\t * It also fixes a bug on Firefox where it's impossible to delete HR elements.\n\t\t */\n\t\tfunction removeHrOnBackspace() {\n\t\t\teditor.on('keydown', function(e) {\n\t\t\t\tif (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) {\n\t\t\t\t\t// Check if there is any HR elements this is faster since getRng on IE 7 & 8 is slow\n\t\t\t\t\tif (!editor.getBody().getElementsByTagName('hr').length) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selection.isCollapsed() && selection.getRng(true).startOffset === 0) {\n\t\t\t\t\t\tvar node = selection.getNode();\n\t\t\t\t\t\tvar previousSibling = node.previousSibling;\n\n\t\t\t\t\t\tif (node.nodeName == 'HR') {\n\t\t\t\t\t\t\tdom.remove(node);\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === \"hr\") {\n\t\t\t\t\t\t\tdom.remove(previousSibling);\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Firefox 3.x has an issue where the body element won't get proper focus if you click out\n\t\t * side it's rectangle.\n\t\t */\n\t\tfunction focusBody() {\n\t\t\t// Fix for a focus bug in FF 3.x where the body element\n\t\t\t// wouldn't get proper focus if the user clicked on the HTML element\n\t\t\tif (!window.Range.prototype.getClientRects) { // Detect getClientRects got introduced in FF 4\n\t\t\t\teditor.on('mousedown', function(e) {\n\t\t\t\t\tif (!isDefaultPrevented(e) && e.target.nodeName === \"HTML\") {\n\t\t\t\t\t\tvar body = editor.getBody();\n\n\t\t\t\t\t\t// Blur the body it's focused but not correctly focused\n\t\t\t\t\t\tbody.blur();\n\n\t\t\t\t\t\t// Refocus the body after a little while\n\t\t\t\t\t\tDelay.setEditorTimeout(editor, function() {\n\t\t\t\t\t\t\tbody.focus();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * WebKit has a bug where it isn't possible to select image, hr or anchor elements\n\t\t * by clicking on them so we need to fake that.\n\t\t */\n\t\tfunction selectControlElements() {\n\t\t\teditor.on('click', function(e) {\n\t\t\t\tvar target = e.target;\n\n\t\t\t\t// Workaround for bug, http://bugs.webkit.org/show_bug.cgi?id=12250\n\t\t\t\t// WebKit can't even do simple things like selecting an image\n\t\t\t\tif (/^(IMG|HR)$/.test(target.nodeName) && dom.getContentEditableParent(target) !== \"false\") {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tselection.select(target);\n\t\t\t\t\teditor.nodeChanged();\n\t\t\t\t}\n\n\t\t\t\tif (target.nodeName == 'A' && dom.hasClass(target, 'mce-item-anchor')) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tselection.select(target);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Fixes a Gecko bug where the style attribute gets added to the wrong element when deleting between two block elements.\n\t\t *\n\t\t * Fixes do backspace/delete on this:\n\t\t *

bla[ck

r]ed

\n\t\t *\n\t\t * Would become:\n\t\t *

bla|ed

\n\t\t *\n\t\t * Instead of:\n\t\t *

bla|ed

\n\t\t */\n\t\tfunction removeStylesWhenDeletingAcrossBlockElements() {\n\t\t\tfunction getAttributeApplyFunction() {\n\t\t\t\tvar template = dom.getAttribs(selection.getStart().cloneNode(false));\n\n\t\t\t\treturn function() {\n\t\t\t\t\tvar target = selection.getStart();\n\n\t\t\t\t\tif (target !== editor.getBody()) {\n\t\t\t\t\t\tdom.setAttrib(target, \"style\", null);\n\n\t\t\t\t\t\teach(template, function(attr) {\n\t\t\t\t\t\t\ttarget.setAttributeNode(attr.cloneNode(true));\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tfunction isSelectionAcrossElements() {\n\t\t\t\treturn !selection.isCollapsed() &&\n\t\t\t\t\tdom.getParent(selection.getStart(), dom.isBlock) != dom.getParent(selection.getEnd(), dom.isBlock);\n\t\t\t}\n\n\t\t\teditor.on('keypress', function(e) {\n\t\t\t\tvar applyAttributes;\n\n\t\t\t\tif (!isDefaultPrevented(e) && (e.keyCode == 8 || e.keyCode == 46) && isSelectionAcrossElements()) {\n\t\t\t\t\tapplyAttributes = getAttributeApplyFunction();\n\t\t\t\t\teditor.getDoc().execCommand('delete', false, null);\n\t\t\t\t\tapplyAttributes();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tdom.bind(editor.getDoc(), 'cut', function(e) {\n\t\t\t\tvar applyAttributes;\n\n\t\t\t\tif (!isDefaultPrevented(e) && isSelectionAcrossElements()) {\n\t\t\t\t\tapplyAttributes = getAttributeApplyFunction();\n\n\t\t\t\t\tDelay.setEditorTimeout(editor, function() {\n\t\t\t\t\t\tapplyAttributes();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Screen readers on IE needs to have the role application set on the body.\n\t\t */\n\t\tfunction ensureBodyHasRoleApplication() {\n\t\t\tdocument.body.setAttribute(\"role\", \"application\");\n\t\t}\n\n\t\t/**\n\t\t * Backspacing into a table behaves differently depending upon browser type.\n\t\t * Therefore, disable Backspace when cursor immediately follows a table.\n\t\t */\n\t\tfunction disableBackspaceIntoATable() {\n\t\t\teditor.on('keydown', function(e) {\n\t\t\t\tif (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) {\n\t\t\t\t\tif (selection.isCollapsed() && selection.getRng(true).startOffset === 0) {\n\t\t\t\t\t\tvar previousSibling = selection.getNode().previousSibling;\n\t\t\t\t\t\tif (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === \"table\") {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Old IE versions can't properly render BR elements in PRE tags white in contentEditable mode. So this\n\t\t * logic adds a \\n before the BR so that it will get rendered.\n\t\t */\n\t\tfunction addNewLinesBeforeBrInPre() {\n\t\t\t// IE8+ rendering mode does the right thing with BR in PRE\n\t\t\tif (getDocumentMode() > 7) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Enable display: none in area and add a specific class that hides all BR elements in PRE to\n\t\t\t// avoid the caret from getting stuck at the BR elements while pressing the right arrow key\n\t\t\tsetEditorCommandState('RespectVisibilityInDesign', true);\n\t\t\teditor.contentStyles.push('.mceHideBrInPre pre br {display: none}');\n\t\t\tdom.addClass(editor.getBody(), 'mceHideBrInPre');\n\n\t\t\t// Adds a \\n before all BR elements in PRE to get them visual\n\t\t\tparser.addNodeFilter('pre', function(nodes) {\n\t\t\t\tvar i = nodes.length, brNodes, j, brElm, sibling;\n\n\t\t\t\twhile (i--) {\n\t\t\t\t\tbrNodes = nodes[i].getAll('br');\n\t\t\t\t\tj = brNodes.length;\n\t\t\t\t\twhile (j--) {\n\t\t\t\t\t\tbrElm = brNodes[j];\n\n\t\t\t\t\t\t// Add \\n before BR in PRE elements on older IE:s so the new lines get rendered\n\t\t\t\t\t\tsibling = brElm.prev;\n\t\t\t\t\t\tif (sibling && sibling.type === 3 && sibling.value.charAt(sibling.value - 1) != '\\n') {\n\t\t\t\t\t\t\tsibling.value += '\\n';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbrElm.parent.insert(new Node('#text', 3), brElm, true).value = '\\n';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Removes any \\n before BR elements in PRE since other browsers and in contentEditable=false mode they will be visible\n\t\t\tserializer.addNodeFilter('pre', function(nodes) {\n\t\t\t\tvar i = nodes.length, brNodes, j, brElm, sibling;\n\n\t\t\t\twhile (i--) {\n\t\t\t\t\tbrNodes = nodes[i].getAll('br');\n\t\t\t\t\tj = brNodes.length;\n\t\t\t\t\twhile (j--) {\n\t\t\t\t\t\tbrElm = brNodes[j];\n\t\t\t\t\t\tsibling = brElm.prev;\n\t\t\t\t\t\tif (sibling && sibling.type == 3) {\n\t\t\t\t\t\t\tsibling.value = sibling.value.replace(/\\r?\\n$/, '');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Moves style width/height to attribute width/height when the user resizes an image on IE.\n\t\t */\n\t\tfunction removePreSerializedStylesWhenSelectingControls() {\n\t\t\tdom.bind(editor.getBody(), 'mouseup', function() {\n\t\t\t\tvar value, node = selection.getNode();\n\n\t\t\t\t// Moved styles to attributes on IMG eements\n\t\t\t\tif (node.nodeName == 'IMG') {\n\t\t\t\t\t// Convert style width to width attribute\n\t\t\t\t\tif ((value = dom.getStyle(node, 'width'))) {\n\t\t\t\t\t\tdom.setAttrib(node, 'width', value.replace(/[^0-9%]+/g, ''));\n\t\t\t\t\t\tdom.setStyle(node, 'width', '');\n\t\t\t\t\t}\n\n\t\t\t\t\t// Convert style height to height attribute\n\t\t\t\t\tif ((value = dom.getStyle(node, 'height'))) {\n\t\t\t\t\t\tdom.setAttrib(node, 'height', value.replace(/[^0-9%]+/g, ''));\n\t\t\t\t\t\tdom.setStyle(node, 'height', '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Removes a blockquote when backspace is pressed at the beginning of it.\n\t\t *\n\t\t * For example:\n\t\t *

|x

\n\t\t *\n\t\t * Becomes:\n\t\t *

|x

\n\t\t */\n\t\tfunction removeBlockQuoteOnBackSpace() {\n\t\t\t// Add block quote deletion handler\n\t\t\teditor.on('keydown', function(e) {\n\t\t\t\tvar rng, container, offset, root, parent;\n\n\t\t\t\tif (isDefaultPrevented(e) || e.keyCode != VK.BACKSPACE) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\trng = selection.getRng();\n\t\t\t\tcontainer = rng.startContainer;\n\t\t\t\toffset = rng.startOffset;\n\t\t\t\troot = dom.getRoot();\n\t\t\t\tparent = container;\n\n\t\t\t\tif (!rng.collapsed || offset !== 0) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\twhile (parent && parent.parentNode && parent.parentNode.firstChild == parent && parent.parentNode != root) {\n\t\t\t\t\tparent = parent.parentNode;\n\t\t\t\t}\n\n\t\t\t\t// Is the cursor at the beginning of a blockquote?\n\t\t\t\tif (parent.tagName === 'BLOCKQUOTE') {\n\t\t\t\t\t// Remove the blockquote\n\t\t\t\t\teditor.formatter.toggle('blockquote', null, parent);\n\n\t\t\t\t\t// Move the caret to the beginning of container\n\t\t\t\t\trng = dom.createRng();\n\t\t\t\t\trng.setStart(container, 0);\n\t\t\t\t\trng.setEnd(container, 0);\n\t\t\t\t\tselection.setRng(rng);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Sets various Gecko editing options on mouse down and before a execCommand to disable inline table editing that is broken etc.\n\t\t */\n\t\tfunction setGeckoEditingOptions() {\n\t\t\tfunction setOpts() {\n\t\t\t\trefreshContentEditable();\n\n\t\t\t\tsetEditorCommandState(\"StyleWithCSS\", false);\n\t\t\t\tsetEditorCommandState(\"enableInlineTableEditing\", false);\n\n\t\t\t\tif (!settings.object_resizing) {\n\t\t\t\t\tsetEditorCommandState(\"enableObjectResizing\", false);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!settings.readonly) {\n\t\t\t\teditor.on('BeforeExecCommand MouseDown', setOpts);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Fixes a gecko link bug, when a link is placed at the end of block elements there is\n\t\t * no way to move the caret behind the link. This fix adds a bogus br element after the link.\n\t\t *\n\t\t * For example this:\n\t\t *

x

\n\t\t *\n\t\t * Becomes this:\n\t\t *

x

\n\t\t */\n\t\tfunction addBrAfterLastLinks() {\n\t\t\tfunction fixLinks() {\n\t\t\t\teach(dom.select('a'), function(node) {\n\t\t\t\t\tvar parentNode = node.parentNode, root = dom.getRoot();\n\n\t\t\t\t\tif (parentNode.lastChild === node) {\n\t\t\t\t\t\twhile (parentNode && !dom.isBlock(parentNode)) {\n\t\t\t\t\t\t\tif (parentNode.parentNode.lastChild !== parentNode || parentNode === root) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tparentNode = parentNode.parentNode;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdom.add(parentNode, 'br', {'data-mce-bogus': 1});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\teditor.on('SetContent ExecCommand', function(e) {\n\t\t\t\tif (e.type == \"setcontent\" || e.command === 'mceInsertLink') {\n\t\t\t\t\tfixLinks();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * WebKit will produce DIV elements here and there by default. But since TinyMCE uses paragraphs by\n\t\t * default we want to change that behavior.\n\t\t */\n\t\tfunction setDefaultBlockType() {\n\t\t\tif (settings.forced_root_block) {\n\t\t\t\teditor.on('init', function() {\n\t\t\t\t\tsetEditorCommandState('DefaultParagraphSeparator', settings.forced_root_block);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Deletes the selected image on IE instead of navigating to previous page.\n\t\t */\n\t\tfunction deleteControlItemOnBackSpace() {\n\t\t\teditor.on('keydown', function(e) {\n\t\t\t\tvar rng;\n\n\t\t\t\tif (!isDefaultPrevented(e) && e.keyCode == BACKSPACE) {\n\t\t\t\t\trng = editor.getDoc().selection.createRange();\n\t\t\t\t\tif (rng && rng.item) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\teditor.undoManager.beforeChange();\n\t\t\t\t\t\tdom.remove(rng.item(0));\n\t\t\t\t\t\teditor.undoManager.add();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * IE10 doesn't properly render block elements with the right height until you add contents to them.\n\t\t * This fixes that by adding a padding-right to all empty text block elements.\n\t\t * See: https://connect.microsoft.com/IE/feedback/details/743881\n\t\t */\n\t\tfunction renderEmptyBlocksFix() {\n\t\t\tvar emptyBlocksCSS;\n\n\t\t\t// IE10+\n\t\t\tif (getDocumentMode() >= 10) {\n\t\t\t\temptyBlocksCSS = '';\n\t\t\t\teach('p div h1 h2 h3 h4 h5 h6'.split(' '), function(name, i) {\n\t\t\t\t\temptyBlocksCSS += (i > 0 ? ',' : '') + name + ':empty';\n\t\t\t\t});\n\n\t\t\t\teditor.contentStyles.push(emptyBlocksCSS + '{padding-right: 1px !important}');\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Old IE versions can't retain contents within noscript elements so this logic will store the contents\n\t\t * as a attribute and the insert that value as it's raw text when the DOM is serialized.\n\t\t */\n\t\tfunction keepNoScriptContents() {\n\t\t\tif (getDocumentMode() < 9) {\n\t\t\t\tparser.addNodeFilter('noscript', function(nodes) {\n\t\t\t\t\tvar i = nodes.length, node, textNode;\n\n\t\t\t\t\twhile (i--) {\n\t\t\t\t\t\tnode = nodes[i];\n\t\t\t\t\t\ttextNode = node.firstChild;\n\n\t\t\t\t\t\tif (textNode) {\n\t\t\t\t\t\t\tnode.attr('data-mce-innertext', textNode.value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tserializer.addNodeFilter('noscript', function(nodes) {\n\t\t\t\t\tvar i = nodes.length, node, textNode, value;\n\n\t\t\t\t\twhile (i--) {\n\t\t\t\t\t\tnode = nodes[i];\n\t\t\t\t\t\ttextNode = nodes[i].firstChild;\n\n\t\t\t\t\t\tif (textNode) {\n\t\t\t\t\t\t\ttextNode.value = Entities.decode(textNode.value);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Old IE can't retain noscript value so an attribute is used to store it\n\t\t\t\t\t\t\tvalue = node.attributes.map['data-mce-innertext'];\n\t\t\t\t\t\t\tif (value) {\n\t\t\t\t\t\t\t\tnode.attr('data-mce-innertext', null);\n\t\t\t\t\t\t\t\ttextNode = new Node('#text', 3);\n\t\t\t\t\t\t\t\ttextNode.value = value;\n\t\t\t\t\t\t\t\ttextNode.raw = true;\n\t\t\t\t\t\t\t\tnode.append(textNode);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * IE has an issue where you can't select/move the caret by clicking outside the body if the document is in standards mode.\n\t\t */\n\t\tfunction fixCaretSelectionOfDocumentElementOnIe() {\n\t\t\tvar doc = dom.doc, body = doc.body, started, startRng, htmlElm;\n\n\t\t\t// Return range from point or null if it failed\n\t\t\tfunction rngFromPoint(x, y) {\n\t\t\t\tvar rng = body.createTextRange();\n\n\t\t\t\ttry {\n\t\t\t\t\trng.moveToPoint(x, y);\n\t\t\t\t} catch (ex) {\n\t\t\t\t\t// IE sometimes throws and exception, so lets just ignore it\n\t\t\t\t\trng = null;\n\t\t\t\t}\n\n\t\t\t\treturn rng;\n\t\t\t}\n\n\t\t\t// Fires while the selection is changing\n\t\t\tfunction selectionChange(e) {\n\t\t\t\tvar pointRng;\n\n\t\t\t\t// Check if the button is down or not\n\t\t\t\tif (e.button) {\n\t\t\t\t\t// Create range from mouse position\n\t\t\t\t\tpointRng = rngFromPoint(e.x, e.y);\n\n\t\t\t\t\tif (pointRng) {\n\t\t\t\t\t\t// Check if pointRange is before/after selection then change the endPoint\n\t\t\t\t\t\tif (pointRng.compareEndPoints('StartToStart', startRng) > 0) {\n\t\t\t\t\t\t\tpointRng.setEndPoint('StartToStart', startRng);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpointRng.setEndPoint('EndToEnd', startRng);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tpointRng.select();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tendSelection();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Removes listeners\n\t\t\tfunction endSelection() {\n\t\t\t\tvar rng = doc.selection.createRange();\n\n\t\t\t\t// If the range is collapsed then use the last start range\n\t\t\t\tif (startRng && !rng.item && rng.compareEndPoints('StartToEnd', rng) === 0) {\n\t\t\t\t\tstartRng.select();\n\t\t\t\t}\n\n\t\t\t\tdom.unbind(doc, 'mouseup', endSelection);\n\t\t\t\tdom.unbind(doc, 'mousemove', selectionChange);\n\t\t\t\tstartRng = started = 0;\n\t\t\t}\n\n\t\t\t// Make HTML element unselectable since we are going to handle selection by hand\n\t\t\tdoc.documentElement.unselectable = true;\n\n\t\t\t// Detect when user selects outside BODY\n\t\t\tdom.bind(doc, 'mousedown contextmenu', function(e) {\n\t\t\t\tif (e.target.nodeName === 'HTML') {\n\t\t\t\t\tif (started) {\n\t\t\t\t\t\tendSelection();\n\t\t\t\t\t}\n\n\t\t\t\t\t// Detect vertical scrollbar, since IE will fire a mousedown on the scrollbar and have target set as HTML\n\t\t\t\t\thtmlElm = doc.documentElement;\n\t\t\t\t\tif (htmlElm.scrollHeight > htmlElm.clientHeight) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tstarted = 1;\n\t\t\t\t\t// Setup start position\n\t\t\t\t\tstartRng = rngFromPoint(e.x, e.y);\n\t\t\t\t\tif (startRng) {\n\t\t\t\t\t\t// Listen for selection change events\n\t\t\t\t\t\tdom.bind(doc, 'mouseup', endSelection);\n\t\t\t\t\t\tdom.bind(doc, 'mousemove', selectionChange);\n\n\t\t\t\t\t\tdom.getRoot().focus();\n\t\t\t\t\t\tstartRng.select();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Fixes selection issues where the caret can be placed between two inline elements like a|b\n\t\t * this fix will lean the caret right into the closest inline element.\n\t\t */\n\t\tfunction normalizeSelection() {\n\t\t\t// Normalize selection for example a|a becomes a|a except for Ctrl+A since it selects everything\n\t\t\teditor.on('keyup focusin mouseup', function(e) {\n\t\t\t\tif (e.keyCode != 65 || !VK.metaKeyPressed(e)) {\n\t\t\t\t\tselection.normalize();\n\t\t\t\t}\n\t\t\t}, true);\n\t\t}\n\n\t\t/**\n\t\t * Forces Gecko to render a broken image icon if it fails to load an image.\n\t\t */\n\t\tfunction showBrokenImageIcon() {\n\t\t\teditor.contentStyles.push(\n\t\t\t\t'img:-moz-broken {' +\n\t\t\t\t\t'-moz-force-broken-image-icon:1;' +\n\t\t\t\t\t'min-width:24px;' +\n\t\t\t\t\t'min-height:24px' +\n\t\t\t\t'}'\n\t\t\t);\n\t\t}\n\n\t\t/**\n\t\t * iOS has a bug where it's impossible to type if the document has a touchstart event\n\t\t * bound and the user touches the document while having the on screen keyboard visible.\n\t\t *\n\t\t * The touch event moves the focus to the parent document while having the caret inside the iframe\n\t\t * this fix moves the focus back into the iframe document.\n\t\t */\n\t\tfunction restoreFocusOnKeyDown() {\n\t\t\tif (!editor.inline) {\n\t\t\t\teditor.on('keydown', function() {\n\t\t\t\t\tif (document.activeElement == document.body) {\n\t\t\t\t\t\teditor.getWin().focus();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * IE 11 has an annoying issue where you can't move focus into the editor\n\t\t * by clicking on the white area HTML element. We used to be able to to fix this with\n\t\t * the fixCaretSelectionOfDocumentElementOnIe fix. But since M$ removed the selection\n\t\t * object it's not possible anymore. So we need to hack in a ungly CSS to force the\n\t\t * body to be at least 150px. If the user clicks the HTML element out side this 150px region\n\t\t * we simply move the focus into the first paragraph. Not ideal since you loose the\n\t\t * positioning of the caret but good enough for most cases.\n\t\t */\n\t\tfunction bodyHeight() {\n\t\t\tif (!editor.inline) {\n\t\t\t\teditor.contentStyles.push('body {min-height: 150px}');\n\t\t\t\teditor.on('click', function(e) {\n\t\t\t\t\tvar rng;\n\n\t\t\t\t\tif (e.target.nodeName == 'HTML') {\n\t\t\t\t\t\t// Edge seems to only need focus if we set the range\n\t\t\t\t\t\t// the caret will become invisible and moved out of the iframe!!\n\t\t\t\t\t\tif (Env.ie > 11) {\n\t\t\t\t\t\t\teditor.getBody().focus();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Need to store away non collapsed ranges since the focus call will mess that up see #7382\n\t\t\t\t\t\trng = editor.selection.getRng();\n\t\t\t\t\t\teditor.getBody().focus();\n\t\t\t\t\t\teditor.selection.setRng(rng);\n\t\t\t\t\t\teditor.selection.normalize();\n\t\t\t\t\t\teditor.nodeChanged();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Firefox on Mac OS will move the browser back to the previous page if you press CMD+Left arrow.\n\t\t * You might then loose all your work so we need to block that behavior and replace it with our own.\n\t\t */\n\t\tfunction blockCmdArrowNavigation() {\n\t\t\tif (Env.mac) {\n\t\t\t\teditor.on('keydown', function(e) {\n\t\t\t\t\tif (VK.metaKeyPressed(e) && !e.shiftKey && (e.keyCode == 37 || e.keyCode == 39)) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\teditor.selection.getSel().modify('move', e.keyCode == 37 ? 'backward' : 'forward', 'lineboundary');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Disables the autolinking in IE 9+ this is then re-enabled by the autolink plugin.\n\t\t */\n\t\tfunction disableAutoUrlDetect() {\n\t\t\tsetEditorCommandState(\"AutoUrlDetect\", false);\n\t\t}\n\n\t\t/**\n\t\t * iOS 7.1 introduced two new bugs:\n\t\t * 1) It's possible to open links within a contentEditable area by clicking on them.\n\t\t * 2) If you hold down the finger it will display the link/image touch callout menu.\n\t\t */\n\t\tfunction tapLinksAndImages() {\n\t\t\teditor.on('click', function(e) {\n\t\t\t\tvar elm = e.target;\n\n\t\t\t\tdo {\n\t\t\t\t\tif (elm.tagName === 'A') {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t} while ((elm = elm.parentNode));\n\t\t\t});\n\n\t\t\teditor.contentStyles.push('.mce-content-body {-webkit-touch-callout: none}');\n\t\t}\n\n\t\t/**\n\t\t * iOS Safari and possible other browsers have a bug where it won't fire\n\t\t * a click event when a contentEditable is focused. This function fakes click events\n\t\t * by using touchstart/touchend and measuring the time and distance travelled.\n\t\t */\n\t\t/*\n\t\tfunction touchClickEvent() {\n\t\t\teditor.on('touchstart', function(e) {\n\t\t\t\tvar elm, time, startTouch, changedTouches;\n\n\t\t\t\telm = e.target;\n\t\t\t\ttime = new Date().getTime();\n\t\t\t\tchangedTouches = e.changedTouches;\n\n\t\t\t\tif (!changedTouches || changedTouches.length > 1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tstartTouch = changedTouches[0];\n\n\t\t\t\teditor.once('touchend', function(e) {\n\t\t\t\t\tvar endTouch = e.changedTouches[0], args;\n\n\t\t\t\t\tif (new Date().getTime() - time > 500) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (Math.abs(startTouch.clientX - endTouch.clientX) > 5) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (Math.abs(startTouch.clientY - endTouch.clientY) > 5) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\targs = {\n\t\t\t\t\t\ttarget: elm\n\t\t\t\t\t};\n\n\t\t\t\t\teach('pageX pageY clientX clientY screenX screenY'.split(' '), function(key) {\n\t\t\t\t\t\targs[key] = endTouch[key];\n\t\t\t\t\t});\n\n\t\t\t\t\targs = editor.fire('click', args);\n\n\t\t\t\t\tif (!args.isDefaultPrevented()) {\n\t\t\t\t\t\t// iOS WebKit can't place the caret properly once\n\t\t\t\t\t\t// you bind touch events so we need to do this manually\n\t\t\t\t\t\t// TODO: Expand to the closest word? Touble tap still works.\n\t\t\t\t\t\teditor.selection.placeCaretAt(endTouch.clientX, endTouch.clientY);\n\t\t\t\t\t\teditor.nodeChanged();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\t*/\n\n\t\t/**\n\t\t * WebKit has a bug where it will allow forms to be submitted if they are inside a contentEditable element.\n\t\t * For example this:
';\n\t\t\t\t} else if (/^(UL|OL)$/.test(body.nodeName)) {\n\t\t\t\t\tcontent = '
  • ' + padd + '
  • ';\n\t\t\t\t}\n\n\t\t\t\tforcedRootBlockName = self.settings.forced_root_block;\n\n\t\t\t\t// Check if forcedRootBlock is configured and that the block is a valid child of the body\n\t\t\t\tif (forcedRootBlockName && self.schema.isValidChild(body.nodeName.toLowerCase(), forcedRootBlockName.toLowerCase())) {\n\t\t\t\t\t// Padd with bogus BR elements on modern browsers and IE 7 and 8 since they don't render empty P tags properly\n\t\t\t\t\tcontent = padd;\n\t\t\t\t\tcontent = self.dom.createHTML(forcedRootBlockName, self.settings.forced_root_block_attrs, content);\n\t\t\t\t} else if (!ie && !content) {\n\t\t\t\t\t// We need to add a BR when forced_root_block is disabled on non IE browsers to place the caret\n\t\t\t\t\tcontent = '
    ';\n\t\t\t\t}\n\n\t\t\t\tself.dom.setHTML(body, content);\n\n\t\t\t\tself.fire('SetContent', args);\n\t\t\t} else {\n\t\t\t\t// Parse and serialize the html\n\t\t\t\tif (args.format !== 'raw') {\n\t\t\t\t\tcontent = new Serializer({\n\t\t\t\t\t\tvalidate: self.validate\n\t\t\t\t\t}, self.schema).serialize(\n\t\t\t\t\t\tself.parser.parse(content, {isRootContent: true})\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Set the new cleaned contents to the editor\n\t\t\t\targs.content = trim(content);\n\t\t\t\tself.dom.setHTML(body, args.content);\n\n\t\t\t\t// Do post processing\n\t\t\t\tif (!args.no_events) {\n\t\t\t\t\tself.fire('SetContent', args);\n\t\t\t\t}\n\n\t\t\t\t// Don't normalize selection if the focused element isn't the body in\n\t\t\t\t// content editable mode since it will steal focus otherwise\n\t\t\t\t/*if (!self.settings.content_editable || document.activeElement === self.getBody()) {\n\t\t\t\t\tself.selection.normalize();\n\t\t\t\t}*/\n\t\t\t}\n\n\t\t\treturn args.content;\n\t\t},\n\n\t\t/**\n\t\t * Gets the content from the editor instance, this will cleanup the content before it gets returned using\n\t\t * the different cleanup rules options.\n\t\t *\n\t\t * @method getContent\n\t\t * @param {Object} args Optional content object, this gets passed around through the whole get process.\n\t\t * @return {String} Cleaned content string, normally HTML contents.\n\t\t * @example\n\t\t * // Get the HTML contents of the currently active editor\n\t\t * console.debug(tinymce.activeEditor.getContent());\n\t\t *\n\t\t * // Get the raw contents of the currently active editor\n\t\t * tinymce.activeEditor.getContent({format: 'raw'});\n\t\t *\n\t\t * // Get content of a specific editor:\n\t\t * tinymce.get('content id').getContent()\n\t\t */\n\t\tgetContent: function(args) {\n\t\t\tvar self = this, content, body = self.getBody();\n\n\t\t\t// Setup args object\n\t\t\targs = args || {};\n\t\t\targs.format = args.format || 'html';\n\t\t\targs.get = true;\n\t\t\targs.getInner = true;\n\n\t\t\t// Do preprocessing\n\t\t\tif (!args.no_events) {\n\t\t\t\tself.fire('BeforeGetContent', args);\n\t\t\t}\n\n\t\t\t// Get raw contents or by default the cleaned contents\n\t\t\tif (args.format == 'raw') {\n\t\t\t\tcontent = Tools.trim(self.serializer.getTrimmedContent());\n\t\t\t} else if (args.format == 'text') {\n\t\t\t\tcontent = body.innerText || body.textContent;\n\t\t\t} else {\n\t\t\t\tcontent = self.serializer.serialize(body, args);\n\t\t\t}\n\n\t\t\t// Trim whitespace in beginning/end of HTML\n\t\t\tif (args.format != 'text') {\n\t\t\t\targs.content = trim(content);\n\t\t\t} else {\n\t\t\t\targs.content = content;\n\t\t\t}\n\n\t\t\t// Do post processing\n\t\t\tif (!args.no_events) {\n\t\t\t\tself.fire('GetContent', args);\n\t\t\t}\n\n\t\t\treturn args.content;\n\t\t},\n\n\t\t/**\n\t\t * Inserts content at caret position.\n\t\t *\n\t\t * @method insertContent\n\t\t * @param {String} content Content to insert.\n\t\t * @param {Object} args Optional args to pass to insert call.\n\t\t */\n\t\tinsertContent: function(content, args) {\n\t\t\tif (args) {\n\t\t\t\tcontent = extend({content: content}, args);\n\t\t\t}\n\n\t\t\tthis.execCommand('mceInsertContent', false, content);\n\t\t},\n\n\t\t/**\n\t\t * Returns true/false if the editor is dirty or not. It will get dirty if the user has made modifications to the contents.\n\t\t *\n\t\t * The dirty state is automatically set to true if you do modifications to the content in other\n\t\t * words when new undo levels is created or if you undo/redo to update the contents of the editor. It will also be set\n\t\t * to false if you call editor.save().\n\t\t *\n\t\t * @method isDirty\n\t\t * @return {Boolean} True/false if the editor is dirty or not. It will get dirty if the user has made modifications to the contents.\n\t\t * @example\n\t\t * if (tinymce.activeEditor.isDirty())\n\t\t * alert(\"You must save your contents.\");\n\t\t */\n\t\tisDirty: function() {\n\t\t\treturn !this.isNotDirty;\n\t\t},\n\n\t\t/**\n\t\t * Explicitly sets the dirty state. This will fire the dirty event if the editor dirty state is changed from false to true\n\t\t * by invoking this method.\n\t\t *\n\t\t * @method setDirty\n\t\t * @param {Boolean} state True/false if the editor is considered dirty.\n\t\t * @example\n\t\t * function ajaxSave() {\n\t\t * var editor = tinymce.get('elm1');\n\t\t *\n\t\t * // Save contents using some XHR call\n\t\t * alert(editor.getContent());\n\t\t *\n\t\t * editor.setDirty(false); // Force not dirty state\n\t\t * }\n\t\t */\n\t\tsetDirty: function(state) {\n\t\t\tvar oldState = !this.isNotDirty;\n\n\t\t\tthis.isNotDirty = !state;\n\n\t\t\tif (state && state != oldState) {\n\t\t\t\tthis.fire('dirty');\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Sets the editor mode. Mode can be for example \"design\", \"code\" or \"readonly\".\n\t\t *\n\t\t * @method setMode\n\t\t * @param {String} mode Mode to set the editor in.\n\t\t */\n\t\tsetMode: function(mode) {\n\t\t\tMode.setMode(this, mode);\n\t\t},\n\n\t\t/**\n\t\t * Returns the editors container element. The container element wrappes in\n\t\t * all the elements added to the page for the editor. Such as UI, iframe etc.\n\t\t *\n\t\t * @method getContainer\n\t\t * @return {Element} HTML DOM element for the editor container.\n\t\t */\n\t\tgetContainer: function() {\n\t\t\tvar self = this;\n\n\t\t\tif (!self.container) {\n\t\t\t\tself.container = DOM.get(self.editorContainer || self.id + '_parent');\n\t\t\t}\n\n\t\t\treturn self.container;\n\t\t},\n\n\t\t/**\n\t\t * Returns the editors content area container element. The this element is the one who\n\t\t * holds the iframe or the editable element.\n\t\t *\n\t\t * @method getContentAreaContainer\n\t\t * @return {Element} HTML DOM element for the editor area container.\n\t\t */\n\t\tgetContentAreaContainer: function() {\n\t\t\treturn this.contentAreaContainer;\n\t\t},\n\n\t\t/**\n\t\t * Returns the target element/textarea that got replaced with a TinyMCE editor instance.\n\t\t *\n\t\t * @method getElement\n\t\t * @return {Element} HTML DOM element for the replaced element.\n\t\t */\n\t\tgetElement: function() {\n\t\t\tif (!this.targetElm) {\n\t\t\t\tthis.targetElm = DOM.get(this.id);\n\t\t\t}\n\n\t\t\treturn this.targetElm;\n\t\t},\n\n\t\t/**\n\t\t * Returns the iframes window object.\n\t\t *\n\t\t * @method getWin\n\t\t * @return {Window} Iframe DOM window object.\n\t\t */\n\t\tgetWin: function() {\n\t\t\tvar self = this, elm;\n\n\t\t\tif (!self.contentWindow) {\n\t\t\t\telm = self.iframeElement;\n\n\t\t\t\tif (elm) {\n\t\t\t\t\tself.contentWindow = elm.contentWindow;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn self.contentWindow;\n\t\t},\n\n\t\t/**\n\t\t * Returns the iframes document object.\n\t\t *\n\t\t * @method getDoc\n\t\t * @return {Document} Iframe DOM document object.\n\t\t */\n\t\tgetDoc: function() {\n\t\t\tvar self = this, win;\n\n\t\t\tif (!self.contentDocument) {\n\t\t\t\twin = self.getWin();\n\n\t\t\t\tif (win) {\n\t\t\t\t\tself.contentDocument = win.document;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn self.contentDocument;\n\t\t},\n\n\t\t/**\n\t\t * Returns the root element of the editable area.\n\t\t * For a non-inline iframe-based editor, returns the iframe's body element.\n\t\t *\n\t\t * @method getBody\n\t\t * @return {Element} The root element of the editable area.\n\t\t */\n\t\tgetBody: function() {\n\t\t\tvar doc = this.getDoc();\n\t\t\treturn this.bodyElement || (doc ? doc.body : null);\n\t\t},\n\n\t\t/**\n\t\t * URL converter function this gets executed each time a user adds an img, a or\n\t\t * any other element that has a URL in it. This will be called both by the DOM and HTML\n\t\t * manipulation functions.\n\t\t *\n\t\t * @method convertURL\n\t\t * @param {string} url URL to convert.\n\t\t * @param {string} name Attribute name src, href etc.\n\t\t * @param {string/HTMLElement} elm Tag name or HTML DOM element depending on HTML or DOM insert.\n\t\t * @return {string} Converted URL string.\n\t\t */\n\t\tconvertURL: function(url, name, elm) {\n\t\t\tvar self = this, settings = self.settings;\n\n\t\t\t// Use callback instead\n\t\t\tif (settings.urlconverter_callback) {\n\t\t\t\treturn self.execCallback('urlconverter_callback', url, elm, true, name);\n\t\t\t}\n\n\t\t\t// Don't convert link href since thats the CSS files that gets loaded into the editor also skip local file URLs\n\t\t\tif (!settings.convert_urls || (elm && elm.nodeName == 'LINK') || url.indexOf('file:') === 0 || url.length === 0) {\n\t\t\t\treturn url;\n\t\t\t}\n\n\t\t\t// Convert to relative\n\t\t\tif (settings.relative_urls) {\n\t\t\t\treturn self.documentBaseURI.toRelative(url);\n\t\t\t}\n\n\t\t\t// Convert to absolute\n\t\t\turl = self.documentBaseURI.toAbsolute(url, settings.remove_script_host);\n\n\t\t\treturn url;\n\t\t},\n\n\t\t/**\n\t\t * Adds visual aid for tables, anchors etc so they can be more easily edited inside the editor.\n\t\t *\n\t\t * @method addVisual\n\t\t * @param {Element} elm Optional root element to loop though to find tables etc that needs the visual aid.\n\t\t */\n\t\taddVisual: function(elm) {\n\t\t\tvar self = this, settings = self.settings, dom = self.dom, cls;\n\n\t\t\telm = elm || self.getBody();\n\n\t\t\tif (self.hasVisual === undefined) {\n\t\t\t\tself.hasVisual = settings.visual;\n\t\t\t}\n\n\t\t\teach(dom.select('table,a', elm), function(elm) {\n\t\t\t\tvar value;\n\n\t\t\t\tswitch (elm.nodeName) {\n\t\t\t\t\tcase 'TABLE':\n\t\t\t\t\t\tcls = settings.visual_table_class || 'mce-item-table';\n\t\t\t\t\t\tvalue = dom.getAttrib(elm, 'border');\n\n\t\t\t\t\t\tif ((!value || value == '0') && self.hasVisual) {\n\t\t\t\t\t\t\tdom.addClass(elm, cls);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdom.removeClass(elm, cls);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\tcase 'A':\n\t\t\t\t\t\tif (!dom.getAttrib(elm, 'href', false)) {\n\t\t\t\t\t\t\tvalue = dom.getAttrib(elm, 'name') || elm.id;\n\t\t\t\t\t\t\tcls = settings.visual_anchor_class || 'mce-item-anchor';\n\n\t\t\t\t\t\t\tif (value && self.hasVisual) {\n\t\t\t\t\t\t\t\tdom.addClass(elm, cls);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tdom.removeClass(elm, cls);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tself.fire('VisualAid', {element: elm, hasVisual: self.hasVisual});\n\t\t},\n\n\t\t/**\n\t\t * Removes the editor from the dom and tinymce collection.\n\t\t *\n\t\t * @method remove\n\t\t */\n\t\tremove: function() {\n\t\t\tvar self = this;\n\n\t\t\tif (!self.removed) {\n\t\t\t\tself.save();\n\t\t\t\tself.removed = 1;\n\t\t\t\tself.unbindAllNativeEvents();\n\n\t\t\t\t// Remove any hidden input\n\t\t\t\tif (self.hasHiddenInput) {\n\t\t\t\t\tDOM.remove(self.getElement().nextSibling);\n\t\t\t\t}\n\n\t\t\t\tif (!self.inline) {\n\t\t\t\t\t// IE 9 has a bug where the selection stops working if you place the\n\t\t\t\t\t// caret inside the editor then remove the iframe\n\t\t\t\t\tif (ie && ie < 10) {\n\t\t\t\t\t\tself.getDoc().execCommand('SelectAll', false, null);\n\t\t\t\t\t}\n\n\t\t\t\t\tDOM.setStyle(self.id, 'display', self.orgDisplay);\n\t\t\t\t\tself.getBody().onload = null; // Prevent #6816\n\t\t\t\t}\n\n\t\t\t\tself.fire('remove');\n\n\t\t\t\tself.editorManager.remove(self);\n\t\t\t\tDOM.remove(self.getContainer());\n\t\t\t\tself._selectionOverrides.destroy();\n\t\t\t\tself.editorUpload.destroy();\n\t\t\t\tself.destroy();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Destroys the editor instance by removing all events, element references or other resources\n\t\t * that could leak memory. This method will be called automatically when the page is unloaded\n\t\t * but you can also call it directly if you know what you are doing.\n\t\t *\n\t\t * @method destroy\n\t\t * @param {Boolean} automatic Optional state if the destroy is an automatic destroy or user called one.\n\t\t */\n\t\tdestroy: function(automatic) {\n\t\t\tvar self = this, form;\n\n\t\t\t// One time is enough\n\t\t\tif (self.destroyed) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If user manually calls destroy and not remove\n\t\t\t// Users seems to have logic that calls destroy instead of remove\n\t\t\tif (!automatic && !self.removed) {\n\t\t\t\tself.remove();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!automatic) {\n\t\t\t\tself.editorManager.off('beforeunload', self._beforeUnload);\n\n\t\t\t\t// Manual destroy\n\t\t\t\tif (self.theme && self.theme.destroy) {\n\t\t\t\t\tself.theme.destroy();\n\t\t\t\t}\n\n\t\t\t\t// Destroy controls, selection and dom\n\t\t\t\tself.selection.destroy();\n\t\t\t\tself.dom.destroy();\n\t\t\t}\n\n\t\t\tform = self.formElement;\n\t\t\tif (form) {\n\t\t\t\tif (form._mceOldSubmit) {\n\t\t\t\t\tform.submit = form._mceOldSubmit;\n\t\t\t\t\tform._mceOldSubmit = null;\n\t\t\t\t}\n\n\t\t\t\tDOM.unbind(form, 'submit reset', self.formEventDelegate);\n\t\t\t}\n\n\t\t\tself.contentAreaContainer = self.formElement = self.container = self.editorContainer = null;\n\t\t\tself.bodyElement = self.contentDocument = self.contentWindow = null;\n\t\t\tself.iframeElement = self.targetElm = null;\n\n\t\t\tif (self.selection) {\n\t\t\t\tself.selection = self.selection.win = self.selection.dom = self.selection.dom.doc = null;\n\t\t\t}\n\n\t\t\tself.destroyed = 1;\n\t\t},\n\n\t\t/**\n\t\t * Uploads all data uri/blob uri images in the editor contents to server.\n\t\t *\n\t\t * @method uploadImages\n\t\t * @param {function} callback Optional callback with images and status for each image.\n\t\t * @return {tinymce.util.Promise} Promise instance.\n\t\t */\n\t\tuploadImages: function(callback) {\n\t\t\treturn this.editorUpload.uploadImages(callback);\n\t\t},\n\n\t\t// Internal functions\n\n\t\t_scanForImages: function() {\n\t\t\treturn this.editorUpload.scanForImages();\n\t\t}\n\t};\n\n\textend(Editor.prototype, EditorObservable);\n\n\treturn Editor;\n});\n\n// Included from: js/tinymce/classes/util/I18n.js\n\n/**\n * I18n.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * I18n class that handles translation of TinyMCE UI.\n * Uses po style with csharp style parameters.\n *\n * @class tinymce.util.I18n\n */\ndefine(\"tinymce/util/I18n\", [\n\t\"tinymce/util/Tools\"\n], function(Tools) {\n\t\"use strict\";\n\n\tvar data = {}, code = \"en\";\n\n\treturn {\n\t\t/**\n\t\t * Sets the current language code.\n\t\t *\n\t\t * @method setCode\n\t\t * @param {String} newCode Current language code.\n\t\t */\n\t\tsetCode: function(newCode) {\n\t\t\tif (newCode) {\n\t\t\t\tcode = newCode;\n\t\t\t\tthis.rtl = this.data[newCode] ? this.data[newCode]._dir === 'rtl' : false;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Returns the current language code.\n\t\t *\n\t\t * @method getCode\n\t\t * @return {String} Current language code.\n\t\t */\n\t\tgetCode: function() {\n\t\t\treturn code;\n\t\t},\n\n\t\t/**\n\t\t * Property gets set to true if a RTL language pack was loaded.\n\t\t *\n\t\t * @property rtl\n\t\t * @type Boolean\n\t\t */\n\t\trtl: false,\n\n\t\t/**\n\t\t * Adds translations for a specific language code.\n\t\t *\n\t\t * @method add\n\t\t * @param {String} code Language code like sv_SE.\n\t\t * @param {Array} items Name/value array with English en_US to sv_SE.\n\t\t */\n\t\tadd: function(code, items) {\n\t\t\tvar langData = data[code];\n\n\t\t\tif (!langData) {\n\t\t\t\tdata[code] = langData = {};\n\t\t\t}\n\n\t\t\tfor (var name in items) {\n\t\t\t\tlangData[name] = items[name];\n\t\t\t}\n\n\t\t\tthis.setCode(code);\n\t\t},\n\n\t\t/**\n\t\t * Translates the specified text.\n\t\t *\n\t\t * It has a few formats:\n\t\t * I18n.translate(\"Text\");\n\t\t * I18n.translate([\"Text {0}/{1}\", 0, 1]);\n\t\t * I18n.translate({raw: \"Raw string\"});\n\t\t *\n\t\t * @method translate\n\t\t * @param {String/Object/Array} text Text to translate.\n\t\t * @return {String} String that got translated.\n\t\t */\n\t\ttranslate: function(text) {\n\t\t\tvar langData = data[code] || {};\n\n\t\t\t/**\n\t\t\t * number - string\n\t\t\t * null, undefined and empty string - empty string\n\t\t\t * array - comma-delimited string\n\t\t\t * object - in [object Object]\n\t\t\t * function - in [object Function]\n\t\t\t *\n\t\t\t * @param obj\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\tfunction toString(obj) {\n\t\t\t\tif (Tools.is(obj, 'function')) {\n\t\t\t\t\treturn Object.prototype.toString.call(obj);\n\t\t\t\t}\n\t\t\t\treturn !isEmpty(obj) ? '' + obj : '';\n\t\t\t}\n\n\t\t\tfunction isEmpty(text) {\n\t\t\t\treturn text === '' || text === null || Tools.is(text, 'undefined');\n\t\t\t}\n\n\t\t\tfunction getLangData(text) {\n\t\t\t\t// make sure we work on a string and return a string\n\t\t\t\ttext = toString(text);\n\t\t\t\treturn Tools.hasOwn(langData, text) ? toString(langData[text]) : text;\n\t\t\t}\n\n\n\t\t\tif (isEmpty(text)) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tif (Tools.is(text, 'object') && Tools.hasOwn(text, 'raw')) {\n\t\t\t\treturn toString(text.raw);\n\t\t\t}\n\n\t\t\tif (Tools.is(text, 'array')) {\n\t\t\t\tvar values = text.slice(1);\n\t\t\t\ttext = getLangData(text[0]).replace(/\\{([0-9]+)\\}/g, function($1, $2) {\n\t\t\t\t\treturn Tools.hasOwn(values, $2) ? toString(values[$2]) : $1;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn getLangData(text).replace(/{context:\\w+}$/, '');\n\t\t},\n\n\t\tdata: data\n\t};\n});\n\n// Included from: js/tinymce/classes/FocusManager.js\n\n/**\n * FocusManager.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class manages the focus/blur state of the editor. This class is needed since some\n * browsers fire false focus/blur states when the selection is moved to a UI dialog or similar.\n *\n * This class will fire two events focus and blur on the editor instances that got affected.\n * It will also handle the restore of selection when the focus is lost and returned.\n *\n * @class tinymce.FocusManager\n */\ndefine(\"tinymce/FocusManager\", [\n\t\"tinymce/dom/DOMUtils\",\n\t\"tinymce/util/Delay\",\n\t\"tinymce/Env\"\n], function(DOMUtils, Delay, Env) {\n\tvar selectionChangeHandler, documentFocusInHandler, documentMouseUpHandler, DOM = DOMUtils.DOM;\n\n\tvar isUIElement = function (editor, elm) {\n\t\tvar customSelector = editor ? editor.settings.custom_ui_selector : '';\n\t\tvar parent = DOM.getParent(elm, function (elm) {\n\t\t\treturn (\n\t\t\t\tFocusManager.isEditorUIElement(elm) ||\n\t\t\t\t(customSelector ? editor.dom.is(elm, customSelector) : false)\n\t\t\t);\n\t\t});\n\t\treturn parent !== null;\n\t};\n\n\t/**\n\t * Constructs a new focus manager instance.\n\t *\n\t * @constructor FocusManager\n\t * @param {tinymce.EditorManager} editorManager Editor manager instance to handle focus for.\n\t */\n\tfunction FocusManager(editorManager) {\n\t\tfunction getActiveElement() {\n\t\t\ttry {\n\t\t\t\treturn document.activeElement;\n\t\t\t} catch (ex) {\n\t\t\t\t// IE sometimes fails to get the activeElement when resizing table\n\t\t\t\t// TODO: Investigate this\n\t\t\t\treturn document.body;\n\t\t\t}\n\t\t}\n\n\t\t// We can't store a real range on IE 11 since it gets mutated so we need to use a bookmark object\n\t\t// TODO: Move this to a separate range utils class since it's it's logic is present in Selection as well.\n\t\tfunction createBookmark(dom, rng) {\n\t\t\tif (rng && rng.startContainer) {\n\t\t\t\t// Verify that the range is within the root of the editor\n\t\t\t\tif (!dom.isChildOf(rng.startContainer, dom.getRoot()) || !dom.isChildOf(rng.endContainer, dom.getRoot())) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tstartContainer: rng.startContainer,\n\t\t\t\t\tstartOffset: rng.startOffset,\n\t\t\t\t\tendContainer: rng.endContainer,\n\t\t\t\t\tendOffset: rng.endOffset\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn rng;\n\t\t}\n\n\t\tfunction bookmarkToRng(editor, bookmark) {\n\t\t\tvar rng;\n\n\t\t\tif (bookmark.startContainer) {\n\t\t\t\trng = editor.getDoc().createRange();\n\t\t\t\trng.setStart(bookmark.startContainer, bookmark.startOffset);\n\t\t\t\trng.setEnd(bookmark.endContainer, bookmark.endOffset);\n\t\t\t} else {\n\t\t\t\trng = bookmark;\n\t\t\t}\n\n\t\t\treturn rng;\n\t\t}\n\n\t\tfunction registerEvents(e) {\n\t\t\tvar editor = e.editor;\n\n\t\t\teditor.on('init', function() {\n\t\t\t\t// Gecko/WebKit has ghost selections in iframes and IE only has one selection per browser tab\n\t\t\t\tif (editor.inline || Env.ie) {\n\t\t\t\t\t// Use the onbeforedeactivate event when available since it works better see #7023\n\t\t\t\t\tif (\"onbeforedeactivate\" in document && Env.ie < 9) {\n\t\t\t\t\t\teditor.dom.bind(editor.getBody(), 'beforedeactivate', function(e) {\n\t\t\t\t\t\t\tif (e.target != editor.getBody()) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\teditor.lastRng = editor.selection.getRng();\n\t\t\t\t\t\t\t} catch (ex) {\n\t\t\t\t\t\t\t\t// IE throws \"Unexcpected call to method or property access\" some times so lets ignore it\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// On other browsers take snapshot on nodechange in inline mode since they have Ghost selections for iframes\n\t\t\t\t\t\teditor.on('nodechange mouseup keyup', function(e) {\n\t\t\t\t\t\t\tvar node = getActiveElement();\n\n\t\t\t\t\t\t\t// Only act on manual nodechanges\n\t\t\t\t\t\t\tif (e.type == 'nodechange' && e.selectionChange) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// IE 11 reports active element as iframe not body of iframe\n\t\t\t\t\t\t\tif (node && node.id == editor.id + '_ifr') {\n\t\t\t\t\t\t\t\tnode = editor.getBody();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (editor.dom.isChildOf(node, editor.getBody())) {\n\t\t\t\t\t\t\t\teditor.lastRng = editor.selection.getRng();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t// Handles the issue with WebKit not retaining selection within inline document\n\t\t\t\t\t// If the user releases the mouse out side the body since a mouse up event wont occur on the body\n\t\t\t\t\tif (Env.webkit && !selectionChangeHandler) {\n\t\t\t\t\t\tselectionChangeHandler = function() {\n\t\t\t\t\t\t\tvar activeEditor = editorManager.activeEditor;\n\n\t\t\t\t\t\t\tif (activeEditor && activeEditor.selection) {\n\t\t\t\t\t\t\t\tvar rng = activeEditor.selection.getRng();\n\n\t\t\t\t\t\t\t\t// Store when it's non collapsed\n\t\t\t\t\t\t\t\tif (rng && !rng.collapsed) {\n\t\t\t\t\t\t\t\t\teditor.lastRng = rng;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tDOM.bind(document, 'selectionchange', selectionChangeHandler);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\teditor.on('setcontent', function() {\n\t\t\t\teditor.lastRng = null;\n\t\t\t});\n\n\t\t\t// Remove last selection bookmark on mousedown see #6305\n\t\t\teditor.on('mousedown', function() {\n\t\t\t\teditor.selection.lastFocusBookmark = null;\n\t\t\t});\n\n\t\t\teditor.on('focusin', function() {\n\t\t\t\tvar focusedEditor = editorManager.focusedEditor, lastRng;\n\n\t\t\t\tif (editor.selection.lastFocusBookmark) {\n\t\t\t\t\tlastRng = bookmarkToRng(editor, editor.selection.lastFocusBookmark);\n\t\t\t\t\teditor.selection.lastFocusBookmark = null;\n\t\t\t\t\teditor.selection.setRng(lastRng);\n\t\t\t\t}\n\n\t\t\t\tif (focusedEditor != editor) {\n\t\t\t\t\tif (focusedEditor) {\n\t\t\t\t\t\tfocusedEditor.fire('blur', {focusedEditor: editor});\n\t\t\t\t\t}\n\n\t\t\t\t\teditorManager.setActive(editor);\n\t\t\t\t\teditorManager.focusedEditor = editor;\n\t\t\t\t\teditor.fire('focus', {blurredEditor: focusedEditor});\n\t\t\t\t\teditor.focus(true);\n\t\t\t\t}\n\n\t\t\t\teditor.lastRng = null;\n\t\t\t});\n\n\t\t\teditor.on('focusout', function() {\n\t\t\t\tDelay.setEditorTimeout(editor, function() {\n\t\t\t\t\tvar focusedEditor = editorManager.focusedEditor;\n\n\t\t\t\t\t// Still the same editor the blur was outside any editor UI\n\t\t\t\t\tif (!isUIElement(editor, getActiveElement()) && focusedEditor == editor) {\n\t\t\t\t\t\teditor.fire('blur', {focusedEditor: null});\n\t\t\t\t\t\teditorManager.focusedEditor = null;\n\n\t\t\t\t\t\t// Make sure selection is valid could be invalid if the editor is blured and removed before the timeout occurs\n\t\t\t\t\t\tif (editor.selection) {\n\t\t\t\t\t\t\teditor.selection.lastFocusBookmark = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t// Check if focus is moved to an element outside the active editor by checking if the target node\n\t\t\t// isn't within the body of the activeEditor nor a UI element such as a dialog child control\n\t\t\tif (!documentFocusInHandler) {\n\t\t\t\tdocumentFocusInHandler = function(e) {\n\t\t\t\t\tvar activeEditor = editorManager.activeEditor, target;\n\n\t\t\t\t\ttarget = e.target;\n\n\t\t\t\t\tif (activeEditor && target.ownerDocument == document) {\n\t\t\t\t\t\t// Check to make sure we have a valid selection don't update the bookmark if it's\n\t\t\t\t\t\t// a focusin to the body of the editor see #7025\n\t\t\t\t\t\tif (activeEditor.selection && target != activeEditor.getBody()) {\n\t\t\t\t\t\t\tactiveEditor.selection.lastFocusBookmark = createBookmark(activeEditor.dom, activeEditor.lastRng);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Fire a blur event if the element isn't a UI element\n\t\t\t\t\t\tif (target != document.body && !isUIElement(activeEditor, target) && editorManager.focusedEditor == activeEditor) {\n\t\t\t\t\t\t\tactiveEditor.fire('blur', {focusedEditor: null});\n\t\t\t\t\t\t\teditorManager.focusedEditor = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tDOM.bind(document, 'focusin', documentFocusInHandler);\n\t\t\t}\n\n\t\t\t// Handle edge case when user starts the selection inside the editor and releases\n\t\t\t// the mouse outside the editor producing a new selection. This weird workaround is needed since\n\t\t\t// Gecko doesn't have the \"selectionchange\" event we need to do this. Fixes: #6843\n\t\t\tif (editor.inline && !documentMouseUpHandler) {\n\t\t\t\tdocumentMouseUpHandler = function(e) {\n\t\t\t\t\tvar activeEditor = editorManager.activeEditor, dom = activeEditor.dom;\n\n\t\t\t\t\tif (activeEditor.inline && dom && !dom.isChildOf(e.target, activeEditor.getBody())) {\n\t\t\t\t\t\tvar rng = activeEditor.selection.getRng();\n\n\t\t\t\t\t\tif (!rng.collapsed) {\n\t\t\t\t\t\t\tactiveEditor.lastRng = rng;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tDOM.bind(document, 'mouseup', documentMouseUpHandler);\n\t\t\t}\n\t\t}\n\n\t\tfunction unregisterDocumentEvents(e) {\n\t\t\tif (editorManager.focusedEditor == e.editor) {\n\t\t\t\teditorManager.focusedEditor = null;\n\t\t\t}\n\n\t\t\tif (!editorManager.activeEditor) {\n\t\t\t\tDOM.unbind(document, 'selectionchange', selectionChangeHandler);\n\t\t\t\tDOM.unbind(document, 'focusin', documentFocusInHandler);\n\t\t\t\tDOM.unbind(document, 'mouseup', documentMouseUpHandler);\n\t\t\t\tselectionChangeHandler = documentFocusInHandler = documentMouseUpHandler = null;\n\t\t\t}\n\t\t}\n\n\t\teditorManager.on('AddEditor', registerEvents);\n\t\teditorManager.on('RemoveEditor', unregisterDocumentEvents);\n\t}\n\n\t/**\n\t * Returns true if the specified element is part of the UI for example an button or text input.\n\t *\n\t * @method isEditorUIElement\n\t * @param {Element} elm Element to check if it's part of the UI or not.\n\t * @return {Boolean} True/false state if the element is part of the UI or not.\n\t */\n\tFocusManager.isEditorUIElement = function(elm) {\n\t\t// Needs to be converted to string since svg can have focus: #6776\n\t\treturn elm.className.toString().indexOf('mce-') !== -1;\n\t};\n\n\tFocusManager._isUIElement = isUIElement;\n\n\treturn FocusManager;\n});\n\n// Included from: js/tinymce/classes/EditorManager.js\n\n/**\n * EditorManager.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class used as a factory for manager for tinymce.Editor instances.\n *\n * @example\n * tinymce.EditorManager.init({});\n *\n * @class tinymce.EditorManager\n * @mixes tinymce.util.Observable\n * @static\n */\ndefine(\"tinymce/EditorManager\", [\n\t\"tinymce/Editor\",\n\t\"tinymce/dom/DomQuery\",\n\t\"tinymce/dom/DOMUtils\",\n\t\"tinymce/util/URI\",\n\t\"tinymce/Env\",\n\t\"tinymce/util/Tools\",\n\t\"tinymce/util/Promise\",\n\t\"tinymce/util/Observable\",\n\t\"tinymce/util/I18n\",\n\t\"tinymce/FocusManager\",\n\t\"tinymce/AddOnManager\"\n], function(Editor, $, DOMUtils, URI, Env, Tools, Promise, Observable, I18n, FocusManager, AddOnManager) {\n\tvar DOM = DOMUtils.DOM;\n\tvar explode = Tools.explode, each = Tools.each, extend = Tools.extend;\n\tvar instanceCounter = 0, beforeUnloadDelegate, EditorManager, boundGlobalEvents = false;\n\n\tfunction globalEventDelegate(e) {\n\t\teach(EditorManager.editors, function(editor) {\n\t\t\tif (e.type === 'scroll') {\n\t\t\t\teditor.fire('ScrollWindow', e);\n\t\t\t} else {\n\t\t\t\teditor.fire('ResizeWindow', e);\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction toggleGlobalEvents(editors, state) {\n\t\tif (state !== boundGlobalEvents) {\n\t\t\tif (state) {\n\t\t\t\t$(window).on('resize scroll', globalEventDelegate);\n\t\t\t} else {\n\t\t\t\t$(window).off('resize scroll', globalEventDelegate);\n\t\t\t}\n\n\t\t\tboundGlobalEvents = state;\n\t\t}\n\t}\n\n\tfunction removeEditorFromList(editor) {\n\t\tvar editors = EditorManager.editors, removedFromList;\n\n\t\tdelete editors[editor.id];\n\n\t\tfor (var i = 0; i < editors.length; i++) {\n\t\t\tif (editors[i] == editor) {\n\t\t\t\teditors.splice(i, 1);\n\t\t\t\tremovedFromList = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Select another editor since the active one was removed\n\t\tif (EditorManager.activeEditor == editor) {\n\t\t\tEditorManager.activeEditor = editors[0];\n\t\t}\n\n\t\t// Clear focusedEditor if necessary, so that we don't try to blur the destroyed editor\n\t\tif (EditorManager.focusedEditor == editor) {\n\t\t\tEditorManager.focusedEditor = null;\n\t\t}\n\n\t\treturn removedFromList;\n\t}\n\n\tfunction purgeDestroyedEditor(editor) {\n\t\t// User has manually destroyed the editor lets clean up the mess\n\t\tif (editor && editor.initialized && !(editor.getContainer() || editor.getBody()).parentNode) {\n\t\t\tremoveEditorFromList(editor);\n\t\t\teditor.unbindAllNativeEvents();\n\t\t\teditor.destroy(true);\n\t\t\teditor.removed = true;\n\t\t\teditor = null;\n\t\t}\n\n\t\treturn editor;\n\t}\n\n\tEditorManager = {\n\t\t/**\n\t\t * Dom query instance.\n\t\t *\n\t\t * @property $\n\t\t * @type tinymce.dom.DomQuery\n\t\t */\n\t\t$: $,\n\n\t\t/**\n\t\t * Major version of TinyMCE build.\n\t\t *\n\t\t * @property majorVersion\n\t\t * @type String\n\t\t */\n\t\tmajorVersion: '4',\n\n\t\t/**\n\t\t * Minor version of TinyMCE build.\n\t\t *\n\t\t * @property minorVersion\n\t\t * @type String\n\t\t */\n\t\tminorVersion: '5.12',\n\n\t\t/**\n\t\t * Release date of TinyMCE build.\n\t\t *\n\t\t * @property releaseDate\n\t\t * @type String\n\t\t */\n\t\treleaseDate: '2020-07-03',\n\n\t\t/**\n\t\t * Collection of editor instances.\n\t\t *\n\t\t * @property editors\n\t\t * @type Object\n\t\t * @example\n\t\t * for (edId in tinymce.editors)\n\t\t * tinymce.editors[edId].save();\n\t\t */\n\t\teditors: [],\n\n\t\t/**\n\t\t * Collection of language pack data.\n\t\t *\n\t\t * @property i18n\n\t\t * @type Object\n\t\t */\n\t\ti18n: I18n,\n\n\t\t/**\n\t\t * Currently active editor instance.\n\t\t *\n\t\t * @property activeEditor\n\t\t * @type tinymce.Editor\n\t\t * @example\n\t\t * tinyMCE.activeEditor.selection.getContent();\n\t\t * tinymce.EditorManager.activeEditor.selection.getContent();\n\t\t */\n\t\tactiveEditor: null,\n\n\t\tsetup: function() {\n\t\t\tvar self = this, baseURL, documentBaseURL, suffix = \"\", preInit, src;\n\n\t\t\t// Get base URL for the current document\n\t\t\tdocumentBaseURL = URI.getDocumentBaseUrl(document.location);\n\n\t\t\t// Check if the URL is a document based format like: http://site/dir/file and file:///\n\t\t\t// leave other formats like applewebdata://... intact\n\t\t\tif (/^[^:]+:\\/\\/\\/?[^\\/]+\\//.test(documentBaseURL)) {\n\t\t\t\tdocumentBaseURL = documentBaseURL.replace(/[\\?#].*$/, '').replace(/[\\/\\\\][^\\/]+$/, '');\n\n\t\t\t\tif (!/[\\/\\\\]$/.test(documentBaseURL)) {\n\t\t\t\t\tdocumentBaseURL += '/';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If tinymce is defined and has a base use that or use the old tinyMCEPreInit\n\t\t\tpreInit = window.tinymce || window.tinyMCEPreInit;\n\t\t\tif (preInit) {\n\t\t\t\tbaseURL = preInit.base || preInit.baseURL;\n\t\t\t\tsuffix = preInit.suffix;\n\t\t\t} else {\n\t\t\t\t// Get base where the tinymce script is located\n\t\t\t\tvar scripts = document.getElementsByTagName('script');\n\t\t\t\tfor (var i = 0; i < scripts.length; i++) {\n\t\t\t\t\tsrc = scripts[i].src;\n\n\t\t\t\t\t// Script types supported:\n\t\t\t\t\t// tinymce.js tinymce.min.js tinymce.dev.js\n\t\t\t\t\t// tinymce.jquery.js tinymce.jquery.min.js tinymce.jquery.dev.js\n\t\t\t\t\t// tinymce.full.js tinymce.full.min.js tinymce.full.dev.js\n\t\t\t\t\tvar srcScript = src.substring(src.lastIndexOf('/'));\n\t\t\t\t\tif (/tinymce(\\.full|\\.jquery|)(\\.min|\\.dev|)\\.js/.test(src)) {\n\t\t\t\t\t\tif (srcScript.indexOf('.min') != -1) {\n\t\t\t\t\t\t\tsuffix = '.min';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbaseURL = src.substring(0, src.lastIndexOf('/'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// We didn't find any baseURL by looking at the script elements\n\t\t\t\t// Try to use the document.currentScript as a fallback\n\t\t\t\tif (!baseURL && document.currentScript) {\n\t\t\t\t\tsrc = document.currentScript.src;\n\n\t\t\t\t\tif (src.indexOf('.min') != -1) {\n\t\t\t\t\t\tsuffix = '.min';\n\t\t\t\t\t}\n\n\t\t\t\t\tbaseURL = src.substring(0, src.lastIndexOf('/'));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Base URL where the root directory if TinyMCE is located.\n\t\t\t *\n\t\t\t * @property baseURL\n\t\t\t * @type String\n\t\t\t */\n\t\t\tself.baseURL = new URI(documentBaseURL).toAbsolute(baseURL);\n\n\t\t\t/**\n\t\t\t * Document base URL where the current document is located.\n\t\t\t *\n\t\t\t * @property documentBaseURL\n\t\t\t * @type String\n\t\t\t */\n\t\t\tself.documentBaseURL = documentBaseURL;\n\n\t\t\t/**\n\t\t\t * Absolute baseURI for the installation path of TinyMCE.\n\t\t\t *\n\t\t\t * @property baseURI\n\t\t\t * @type tinymce.util.URI\n\t\t\t */\n\t\t\tself.baseURI = new URI(self.baseURL);\n\n\t\t\t/**\n\t\t\t * Current suffix to add to each plugin/theme that gets loaded for example \".min\".\n\t\t\t *\n\t\t\t * @property suffix\n\t\t\t * @type String\n\t\t\t */\n\t\t\tself.suffix = suffix;\n\n\t\t\tself.focusManager = new FocusManager(self);\n\t\t},\n\n\t\t/**\n\t\t * Overrides the default settings for editor instances.\n\t\t *\n\t\t * @method overrideDefaults\n\t\t * @param {Object} defaultSettings Defaults settings object.\n\t\t */\n\t\toverrideDefaults: function(defaultSettings) {\n\t\t\tvar baseUrl, suffix;\n\n\t\t\tbaseUrl = defaultSettings.base_url;\n\t\t\tif (baseUrl) {\n\t\t\t\tthis.baseURL = new URI(this.documentBaseURL).toAbsolute(baseUrl.replace(/\\/+$/, ''));\n\t\t\t\tthis.baseURI = new URI(this.baseURL);\n\t\t\t}\n\n\t\t\tsuffix = defaultSettings.suffix;\n\t\t\tif (defaultSettings.suffix) {\n\t\t\t\tthis.suffix = suffix;\n\t\t\t}\n\n\t\t\tthis.defaultSettings = defaultSettings;\n\n\t\t\tvar pluginBaseUrls = defaultSettings.plugin_base_urls;\n\t\t\tfor (var name in pluginBaseUrls) {\n\t\t\t\tAddOnManager.PluginManager.urls[name] = pluginBaseUrls[name];\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Initializes a set of editors. This method will create editors based on various settings.\n\t\t *\n\t\t * @method init\n\t\t * @param {Object} settings Settings object to be passed to each editor instance.\n\t\t * @return {tinymce.util.Promise} Promise that gets resolved with an array of editors when all editor instances are initialized.\n\t\t * @example\n\t\t * // Initializes a editor using the longer method\n\t\t * tinymce.EditorManager.init({\n\t\t * some_settings : 'some value'\n\t\t * });\n\t\t *\n\t\t * // Initializes a editor instance using the shorter version and with a promise\n\t\t * tinymce.init({\n\t\t * some_settings : 'some value'\n\t\t * }).then(function(editors) {\n\t\t * ...\n\t\t * });\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this, result, invalidInlineTargets;\n\n\t\t\tinvalidInlineTargets = Tools.makeMap(\n\t\t\t\t'area base basefont br col frame hr img input isindex link meta param embed source wbr track ' +\n\t\t\t\t'colgroup option tbody tfoot thead tr script noscript style textarea video audio iframe object menu',\n\t\t\t\t' '\n\t\t\t);\n\n\t\t\tfunction isInvalidInlineTarget(settings, elm) {\n\t\t\t\treturn settings.inline && elm.tagName.toLowerCase() in invalidInlineTargets;\n\t\t\t}\n\n\t\t\tfunction report(msg, elm) {\n\t\t\t\t// Log in a non test environment\n\t\t\t\tif (window.console && !window.test) {\n\t\t\t\t\twindow.console.log(msg, elm);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction createId(elm) {\n\t\t\t\tvar id = elm.id;\n\n\t\t\t\t// Use element id, or unique name or generate a unique id\n\t\t\t\tif (!id) {\n\t\t\t\t\tid = elm.name;\n\n\t\t\t\t\tif (id && !DOM.get(id)) {\n\t\t\t\t\t\tid = elm.name;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Generate unique name\n\t\t\t\t\t\tid = DOM.uniqueId();\n\t\t\t\t\t}\n\n\t\t\t\t\telm.setAttribute('id', id);\n\t\t\t\t}\n\n\t\t\t\treturn id;\n\t\t\t}\n\n\t\t\tfunction execCallback(name) {\n\t\t\t\tvar callback = settings[name];\n\n\t\t\t\tif (!callback) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\treturn callback.apply(self, Array.prototype.slice.call(arguments, 2));\n\t\t\t}\n\n\t\t\tfunction hasClass(elm, className) {\n\t\t\t\treturn className.constructor === RegExp ? className.test(elm.className) : DOM.hasClass(elm, className);\n\t\t\t}\n\n\t\t\tfunction findTargets(settings) {\n\t\t\t\tvar l, targets = [];\n\n\t\t\t\tif (settings.types) {\n\t\t\t\t\teach(settings.types, function(type) {\n\t\t\t\t\t\ttargets = targets.concat(DOM.select(type.selector));\n\t\t\t\t\t});\n\n\t\t\t\t\treturn targets;\n\t\t\t\t} else if (settings.selector) {\n\t\t\t\t\treturn DOM.select(settings.selector);\n\t\t\t\t} else if (settings.target) {\n\t\t\t\t\treturn [settings.target];\n\t\t\t\t}\n\n\t\t\t\t// Fallback to old setting\n\t\t\t\tswitch (settings.mode) {\n\t\t\t\t\tcase \"exact\":\n\t\t\t\t\t\tl = settings.elements || '';\n\n\t\t\t\t\t\tif (l.length > 0) {\n\t\t\t\t\t\t\teach(explode(l), function(id) {\n\t\t\t\t\t\t\t\tvar elm;\n\n\t\t\t\t\t\t\t\tif ((elm = DOM.get(id))) {\n\t\t\t\t\t\t\t\t\ttargets.push(elm);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\teach(document.forms, function(f) {\n\t\t\t\t\t\t\t\t\t\teach(f.elements, function(e) {\n\t\t\t\t\t\t\t\t\t\t\tif (e.name === id) {\n\t\t\t\t\t\t\t\t\t\t\t\tid = 'mce_editor_' + instanceCounter++;\n\t\t\t\t\t\t\t\t\t\t\t\tDOM.setAttrib(e, 'id', id);\n\t\t\t\t\t\t\t\t\t\t\t\ttargets.push(e);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase \"textareas\":\n\t\t\t\t\tcase \"specific_textareas\":\n\t\t\t\t\t\teach(DOM.select('textarea'), function(elm) {\n\t\t\t\t\t\t\tif (settings.editor_deselector && hasClass(elm, settings.editor_deselector)) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (!settings.editor_selector || hasClass(elm, settings.editor_selector)) {\n\t\t\t\t\t\t\t\ttargets.push(elm);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\treturn targets;\n\t\t\t}\n\n\t\t\tvar provideResults = function(editors) {\n\t\t\t\tresult = editors;\n\t\t\t};\n\n\t\t\tfunction initEditors() {\n\t\t\t\tvar initCount = 0, editors = [], targets;\n\n\t\t\t\tfunction createEditor(id, settings, targetElm) {\n\t\t\t\t\tvar editor = new Editor(id, settings, self);\n\n\t\t\t\t\teditors.push(editor);\n\n\t\t\t\t\teditor.on('init', function() {\n\t\t\t\t\t\tif (++initCount === targets.length) {\n\t\t\t\t\t\t\tprovideResults(editors);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\teditor.targetElm = editor.targetElm || targetElm;\n\t\t\t\t\teditor.render();\n\t\t\t\t}\n\n\t\t\t\tDOM.unbind(window, 'ready', initEditors);\n\t\t\t\texecCallback('onpageload');\n\n\t\t\t\ttargets = $.unique(findTargets(settings));\n\n\t\t\t\t// TODO: Deprecate this one\n\t\t\t\tif (settings.types) {\n\t\t\t\t\teach(settings.types, function(type) {\n\t\t\t\t\t\tTools.each(targets, function(elm) {\n\t\t\t\t\t\t\tif (DOM.is(elm, type.selector)) {\n\t\t\t\t\t\t\t\tcreateEditor(createId(elm), extend({}, settings, type), elm);\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tTools.each(targets, function(elm) {\n\t\t\t\t\tpurgeDestroyedEditor(self.get(elm.id));\n\t\t\t\t});\n\n\t\t\t\ttargets = Tools.grep(targets, function(elm) {\n\t\t\t\t\treturn !self.get(elm.id);\n\t\t\t\t});\n\n\t\t\t\teach(targets, function(elm) {\n\t\t\t\t\tif (isInvalidInlineTarget(settings, elm)) {\n\t\t\t\t\t\treport('Could not initialize inline editor on invalid inline target element', elm);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcreateEditor(createId(elm), settings, elm);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tself.settings = settings;\n\t\t\tDOM.bind(window, 'ready', initEditors);\n\n\t\t\treturn new Promise(function(resolve) {\n\t\t\t\tif (result) {\n\t\t\t\t\tresolve(result);\n\t\t\t\t} else {\n\t\t\t\t\tprovideResults = function(editors) {\n\t\t\t\t\t\tresolve(editors);\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Returns a editor instance by id.\n\t\t *\n\t\t * @method get\n\t\t * @param {String/Number} id Editor instance id or index to return.\n\t\t * @return {tinymce.Editor} Editor instance to return.\n\t\t * @example\n\t\t * // Adds an onclick event to an editor by id (shorter version)\n\t\t * tinymce.get('mytextbox').on('click', function(e) {\n\t\t * ed.windowManager.alert('Hello world!');\n\t\t * });\n\t\t *\n\t\t * // Adds an onclick event to an editor by id (longer version)\n\t\t * tinymce.EditorManager.get('mytextbox').on('click', function(e) {\n\t\t * ed.windowManager.alert('Hello world!');\n\t\t * });\n\t\t */\n\t\tget: function(id) {\n\t\t\tif (!arguments.length) {\n\t\t\t\treturn this.editors;\n\t\t\t}\n\n\t\t\treturn id in this.editors ? this.editors[id] : null;\n\t\t},\n\n\t\t/**\n\t\t * Adds an editor instance to the editor collection. This will also set it as the active editor.\n\t\t *\n\t\t * @method add\n\t\t * @param {tinymce.Editor} editor Editor instance to add to the collection.\n\t\t * @return {tinymce.Editor} The same instance that got passed in.\n\t\t */\n\t\tadd: function(editor) {\n\t\t\tvar self = this, editors = self.editors;\n\n\t\t\t// Add named and index editor instance\n\t\t\teditors[editor.id] = editor;\n\t\t\teditors.push(editor);\n\n\t\t\ttoggleGlobalEvents(editors, true);\n\n\t\t\t// Doesn't call setActive method since we don't want\n\t\t\t// to fire a bunch of activate/deactivate calls while initializing\n\t\t\tself.activeEditor = editor;\n\n\t\t\tself.fire('AddEditor', {editor: editor});\n\n\t\t\tif (!beforeUnloadDelegate) {\n\t\t\t\tbeforeUnloadDelegate = function() {\n\t\t\t\t\tself.fire('BeforeUnload');\n\t\t\t\t};\n\n\t\t\t\tDOM.bind(window, 'beforeunload', beforeUnloadDelegate);\n\t\t\t}\n\n\t\t\treturn editor;\n\t\t},\n\n\t\t/**\n\t\t * Creates an editor instance and adds it to the EditorManager collection.\n\t\t *\n\t\t * @method createEditor\n\t\t * @param {String} id Instance id to use for editor.\n\t\t * @param {Object} settings Editor instance settings.\n\t\t * @return {tinymce.Editor} Editor instance that got created.\n\t\t */\n\t\tcreateEditor: function(id, settings) {\n\t\t\treturn this.add(new Editor(id, settings, this));\n\t\t},\n\n\t\t/**\n\t\t * Removes a editor or editors form page.\n\t\t *\n\t\t * @example\n\t\t * // Remove all editors bound to divs\n\t\t * tinymce.remove('div');\n\t\t *\n\t\t * // Remove all editors bound to textareas\n\t\t * tinymce.remove('textarea');\n\t\t *\n\t\t * // Remove all editors\n\t\t * tinymce.remove();\n\t\t *\n\t\t * // Remove specific instance by id\n\t\t * tinymce.remove('#id');\n\t\t *\n\t\t * @method remove\n\t\t * @param {tinymce.Editor/String/Object} [selector] CSS selector or editor instance to remove.\n\t\t * @return {tinymce.Editor} The editor that got passed in will be return if it was found otherwise null.\n\t\t */\n\t\tremove: function(selector) {\n\t\t\tvar self = this, i, editors = self.editors, editor;\n\n\t\t\t// Remove all editors\n\t\t\tif (!selector) {\n\t\t\t\tfor (i = editors.length - 1; i >= 0; i--) {\n\t\t\t\t\tself.remove(editors[i]);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Remove editors by selector\n\t\t\tif (typeof selector == \"string\") {\n\t\t\t\tselector = selector.selector || selector;\n\n\t\t\t\teach(DOM.select(selector), function(elm) {\n\t\t\t\t\teditor = editors[elm.id];\n\n\t\t\t\t\tif (editor) {\n\t\t\t\t\t\tself.remove(editor);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Remove specific editor\n\t\t\teditor = selector;\n\n\t\t\t// Not in the collection\n\t\t\tif (!editors[editor.id]) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif (removeEditorFromList(editor)) {\n\t\t\t\tself.fire('RemoveEditor', {editor: editor});\n\t\t\t}\n\n\t\t\tif (!editors.length) {\n\t\t\t\tDOM.unbind(window, 'beforeunload', beforeUnloadDelegate);\n\t\t\t}\n\n\t\t\teditor.remove();\n\n\t\t\ttoggleGlobalEvents(editors, editors.length > 0);\n\n\t\t\treturn editor;\n\t\t},\n\n\t\t/**\n\t\t * Executes a specific command on the currently active editor.\n\t\t *\n\t\t * @method execCommand\n\t\t * @param {String} cmd Command to perform for example Bold.\n\t\t * @param {Boolean} ui Optional boolean state if a UI should be presented for the command or not.\n\t\t * @param {String} value Optional value parameter like for example an URL to a link.\n\t\t * @return {Boolean} true/false if the command was executed or not.\n\t\t */\n\t\texecCommand: function(cmd, ui, value) {\n\t\t\tvar self = this, editor = self.get(value);\n\n\t\t\t// Manager commands\n\t\t\tswitch (cmd) {\n\t\t\t\tcase \"mceAddEditor\":\n\t\t\t\t\tif (!self.get(value)) {\n\t\t\t\t\t\tnew Editor(value, self.settings, self).render();\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\n\t\t\t\tcase \"mceRemoveEditor\":\n\t\t\t\t\tif (editor) {\n\t\t\t\t\t\teditor.remove();\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\n\t\t\t\tcase 'mceToggleEditor':\n\t\t\t\t\tif (!editor) {\n\t\t\t\t\t\tself.execCommand('mceAddEditor', 0, value);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (editor.isHidden()) {\n\t\t\t\t\t\teditor.show();\n\t\t\t\t\t} else {\n\t\t\t\t\t\teditor.hide();\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Run command on active editor\n\t\t\tif (self.activeEditor) {\n\t\t\t\treturn self.activeEditor.execCommand(cmd, ui, value);\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\n\t\t/**\n\t\t * Calls the save method on all editor instances in the collection. This can be useful when a form is to be submitted.\n\t\t *\n\t\t * @method triggerSave\n\t\t * @example\n\t\t * // Saves all contents\n\t\t * tinyMCE.triggerSave();\n\t\t */\n\t\ttriggerSave: function() {\n\t\t\teach(this.editors, function(editor) {\n\t\t\t\teditor.save();\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Adds a language pack, this gets called by the loaded language files like en.js.\n\t\t *\n\t\t * @method addI18n\n\t\t * @param {String} code Optional language code.\n\t\t * @param {Object} items Name/value object with translations.\n\t\t */\n\t\taddI18n: function(code, items) {\n\t\t\tI18n.add(code, items);\n\t\t},\n\n\t\t/**\n\t\t * Translates the specified string using the language pack items.\n\t\t *\n\t\t * @method translate\n\t\t * @param {String/Array/Object} text String to translate\n\t\t * @return {String} Translated string.\n\t\t */\n\t\ttranslate: function(text) {\n\t\t\treturn I18n.translate(text);\n\t\t},\n\n\t\t/**\n\t\t * Sets the active editor instance and fires the deactivate/activate events.\n\t\t *\n\t\t * @method setActive\n\t\t * @param {tinymce.Editor} editor Editor instance to set as the active instance.\n\t\t */\n\t\tsetActive: function(editor) {\n\t\t\tvar activeEditor = this.activeEditor;\n\n\t\t\tif (this.activeEditor != editor) {\n\t\t\t\tif (activeEditor) {\n\t\t\t\t\tactiveEditor.fire('deactivate', {relatedTarget: editor});\n\t\t\t\t}\n\n\t\t\t\teditor.fire('activate', {relatedTarget: activeEditor});\n\t\t\t}\n\n\t\t\tthis.activeEditor = editor;\n\t\t}\n\t};\n\n\textend(EditorManager, Observable);\n\n\tEditorManager.setup();\n\n\t// Export EditorManager as tinymce/tinymce in global namespace\n\twindow.tinymce = window.tinyMCE = EditorManager;\n\n\treturn EditorManager;\n});\n\n// Included from: js/tinymce/classes/LegacyInput.js\n\n/**\n * LegacyInput.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Converts legacy input to modern HTML.\n *\n * @class tinymce.LegacyInput\n * @private\n */\ndefine(\"tinymce/LegacyInput\", [\n\t\"tinymce/EditorManager\",\n\t\"tinymce/util/Tools\"\n], function(EditorManager, Tools) {\n\tvar each = Tools.each, explode = Tools.explode;\n\n\tEditorManager.on('AddEditor', function(e) {\n\t\tvar editor = e.editor;\n\n\t\teditor.on('preInit', function() {\n\t\t\tvar filters, fontSizes, dom, settings = editor.settings;\n\n\t\t\tfunction replaceWithSpan(node, styles) {\n\t\t\t\teach(styles, function(value, name) {\n\t\t\t\t\tif (value) {\n\t\t\t\t\t\tdom.setStyle(node, name, value);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tdom.rename(node, 'span');\n\t\t\t}\n\n\t\t\tfunction convert(e) {\n\t\t\t\tdom = editor.dom;\n\n\t\t\t\tif (settings.convert_fonts_to_spans) {\n\t\t\t\t\teach(dom.select('font,u,strike', e.node), function(node) {\n\t\t\t\t\t\tfilters[node.nodeName.toLowerCase()](dom, node);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (settings.inline_styles) {\n\t\t\t\tfontSizes = explode(settings.font_size_legacy_values);\n\n\t\t\t\tfilters = {\n\t\t\t\t\tfont: function(dom, node) {\n\t\t\t\t\t\treplaceWithSpan(node, {\n\t\t\t\t\t\t\tbackgroundColor: node.style.backgroundColor,\n\t\t\t\t\t\t\tcolor: node.color,\n\t\t\t\t\t\t\tfontFamily: node.face,\n\t\t\t\t\t\t\tfontSize: fontSizes[parseInt(node.size, 10) - 1]\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\n\t\t\t\t\tu: function(dom, node) {\n\t\t\t\t\t\t// HTML5 allows U element\n\t\t\t\t\t\tif (editor.settings.schema === \"html4\") {\n\t\t\t\t\t\t\treplaceWithSpan(node, {\n\t\t\t\t\t\t\t\ttextDecoration: 'underline'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\n\t\t\t\t\tstrike: function(dom, node) {\n\t\t\t\t\t\treplaceWithSpan(node, {\n\t\t\t\t\t\t\ttextDecoration: 'line-through'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\teditor.on('PreProcess SetContent', convert);\n\t\t\t}\n\t\t});\n\t});\n});\n\n// Included from: js/tinymce/classes/util/XHR.js\n\n/**\n * XHR.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class enables you to send XMLHTTPRequests cross browser.\n * @class tinymce.util.XHR\n * @mixes tinymce.util.Observable\n * @static\n * @example\n * // Sends a low level Ajax request\n * tinymce.util.XHR.send({\n * url: 'someurl',\n * success: function(text) {\n * console.debug(text);\n * }\n * });\n *\n * // Add custom header to XHR request\n * tinymce.util.XHR.on('beforeSend', function(e) {\n * e.xhr.setRequestHeader('X-Requested-With', 'Something');\n * });\n */\ndefine(\"tinymce/util/XHR\", [\n\t\"tinymce/util/Observable\",\n\t\"tinymce/util/Tools\"\n], function(Observable, Tools) {\n\tvar XHR = {\n\t\t/**\n\t\t * Sends a XMLHTTPRequest.\n\t\t * Consult the Wiki for details on what settings this method takes.\n\t\t *\n\t\t * @method send\n\t\t * @param {Object} settings Object will target URL, callbacks and other info needed to make the request.\n\t\t */\n\t\tsend: function(settings) {\n\t\t\tvar xhr, count = 0;\n\n\t\t\tfunction ready() {\n\t\t\t\tif (!settings.async || xhr.readyState == 4 || count++ > 10000) {\n\t\t\t\t\tif (settings.success && count < 10000 && xhr.status == 200) {\n\t\t\t\t\t\tsettings.success.call(settings.success_scope, '' + xhr.responseText, xhr, settings);\n\t\t\t\t\t} else if (settings.error) {\n\t\t\t\t\t\tsettings.error.call(settings.error_scope, count > 10000 ? 'TIMED_OUT' : 'GENERAL', xhr, settings);\n\t\t\t\t\t}\n\n\t\t\t\t\txhr = null;\n\t\t\t\t} else {\n\t\t\t\t\tsetTimeout(ready, 10);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Default settings\n\t\t\tsettings.scope = settings.scope || this;\n\t\t\tsettings.success_scope = settings.success_scope || settings.scope;\n\t\t\tsettings.error_scope = settings.error_scope || settings.scope;\n\t\t\tsettings.async = settings.async === false ? false : true;\n\t\t\tsettings.data = settings.data || '';\n\n\t\t\tXHR.fire('beforeInitialize', {settings: settings});\n\n\t\t\txhr = new XMLHttpRequest();\n\n\t\t\tif (xhr) {\n\t\t\t\tif (xhr.overrideMimeType) {\n\t\t\t\t\txhr.overrideMimeType(settings.content_type);\n\t\t\t\t}\n\n\t\t\t\txhr.open(settings.type || (settings.data ? 'POST' : 'GET'), settings.url, settings.async);\n\n\t\t\t\tif (settings.crossDomain) {\n\t\t\t\t\txhr.withCredentials = true;\n\t\t\t\t}\n\n\t\t\t\tif (settings.content_type) {\n\t\t\t\t\txhr.setRequestHeader('Content-Type', settings.content_type);\n\t\t\t\t}\n\n\t\t\t\tif (settings.requestheaders) {\n\t\t\t\t\tTools.each(settings.requestheaders, function(header) {\n\t\t\t\t\t\txhr.setRequestHeader(header.key, header.value);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\txhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n\n\t\t\t\txhr = XHR.fire('beforeSend', {xhr: xhr, settings: settings}).xhr;\n\t\t\t\txhr.send(settings.data);\n\n\t\t\t\t// Syncronous request\n\t\t\t\tif (!settings.async) {\n\t\t\t\t\treturn ready();\n\t\t\t\t}\n\n\t\t\t\t// Wait for response, onReadyStateChange can not be used since it leaks memory in IE\n\t\t\t\tsetTimeout(ready, 10);\n\t\t\t}\n\t\t}\n\t};\n\n\tTools.extend(XHR, Observable);\n\n\treturn XHR;\n});\n\n// Included from: js/tinymce/classes/util/JSON.js\n\n/**\n * JSON.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * JSON parser and serializer class.\n *\n * @class tinymce.util.JSON\n * @static\n * @example\n * // JSON parse a string into an object\n * var obj = tinymce.util.JSON.parse(somestring);\n *\n * // JSON serialize a object into an string\n * var str = tinymce.util.JSON.serialize(obj);\n */\ndefine(\"tinymce/util/JSON\", [], function() {\n\tfunction serialize(o, quote) {\n\t\tvar i, v, t, name;\n\n\t\tquote = quote || '\"';\n\n\t\tif (o === null) {\n\t\t\treturn 'null';\n\t\t}\n\n\t\tt = typeof o;\n\n\t\tif (t == 'string') {\n\t\t\tv = '\\bb\\tt\\nn\\ff\\rr\\\"\"\\'\\'\\\\\\\\';\n\n\t\t\t/*eslint no-control-regex:0 */\n\t\t\treturn quote + o.replace(/([\\u0080-\\uFFFF\\x00-\\x1f\\\"\\'\\\\])/g, function(a, b) {\n\t\t\t\t// Make sure single quotes never get encoded inside double quotes for JSON compatibility\n\t\t\t\tif (quote === '\"' && a === \"'\") {\n\t\t\t\t\treturn a;\n\t\t\t\t}\n\n\t\t\t\ti = v.indexOf(b);\n\n\t\t\t\tif (i + 1) {\n\t\t\t\t\treturn '\\\\' + v.charAt(i + 1);\n\t\t\t\t}\n\n\t\t\t\ta = b.charCodeAt().toString(16);\n\n\t\t\t\treturn '\\\\u' + '0000'.substring(a.length) + a;\n\t\t\t}) + quote;\n\t\t}\n\n\t\tif (t == 'object') {\n\t\t\tif (o.hasOwnProperty && Object.prototype.toString.call(o) === '[object Array]') {\n\t\t\t\tfor (i = 0, v = '['; i < o.length; i++) {\n\t\t\t\t\tv += (i > 0 ? ',' : '') + serialize(o[i], quote);\n\t\t\t\t}\n\n\t\t\t\treturn v + ']';\n\t\t\t}\n\n\t\t\tv = '{';\n\n\t\t\tfor (name in o) {\n\t\t\t\tif (o.hasOwnProperty(name)) {\n\t\t\t\t\tv += typeof o[name] != 'function' ? (v.length > 1 ? ',' + quote : quote) + name +\n\t\t\t\t\t\tquote + ':' + serialize(o[name], quote) : '';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn v + '}';\n\t\t}\n\n\t\treturn '' + o;\n\t}\n\n\treturn {\n\t\t/**\n\t\t * Serializes the specified object as a JSON string.\n\t\t *\n\t\t * @method serialize\n\t\t * @param {Object} obj Object to serialize as a JSON string.\n\t\t * @param {String} quote Optional quote string defaults to \".\n\t\t * @return {string} JSON string serialized from input.\n\t\t */\n\t\tserialize: serialize,\n\n\t\t/**\n\t\t * Unserializes/parses the specified JSON string into a object.\n\t\t *\n\t\t * @method parse\n\t\t * @param {string} s JSON String to parse into a JavaScript object.\n\t\t * @return {Object} Object from input JSON string or undefined if it failed.\n\t\t */\n\t\tparse: function(text) {\n\t\t\ttry {\n\t\t\t\t// Trick uglify JS\n\t\t\t\treturn window[String.fromCharCode(101) + 'val']('(' + text + ')');\n\t\t\t} catch (ex) {\n\t\t\t\t// Ignore\n\t\t\t}\n\t\t}\n\n\t\t/**#@-*/\n\t};\n});\n\n// Included from: js/tinymce/classes/util/JSONRequest.js\n\n/**\n * JSONRequest.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class enables you to use JSON-RPC to call backend methods.\n *\n * @class tinymce.util.JSONRequest\n * @example\n * var json = new tinymce.util.JSONRequest({\n * url: 'somebackend.php'\n * });\n *\n * // Send RPC call 1\n * json.send({\n * method: 'someMethod1',\n * params: ['a', 'b'],\n * success: function(result) {\n * console.dir(result);\n * }\n * });\n *\n * // Send RPC call 2\n * json.send({\n * method: 'someMethod2',\n * params: ['a', 'b'],\n * success: function(result) {\n * console.dir(result);\n * }\n * });\n */\ndefine(\"tinymce/util/JSONRequest\", [\n\t\"tinymce/util/JSON\",\n\t\"tinymce/util/XHR\",\n\t\"tinymce/util/Tools\"\n], function(JSON, XHR, Tools) {\n\tvar extend = Tools.extend;\n\n\tfunction JSONRequest(settings) {\n\t\tthis.settings = extend({}, settings);\n\t\tthis.count = 0;\n\t}\n\n\t/**\n\t * Simple helper function to send a JSON-RPC request without the need to initialize an object.\n\t * Consult the Wiki API documentation for more details on what you can pass to this function.\n\t *\n\t * @method sendRPC\n\t * @static\n\t * @param {Object} o Call object where there are three field id, method and params this object should also contain callbacks etc.\n\t */\n\tJSONRequest.sendRPC = function(o) {\n\t\treturn new JSONRequest().send(o);\n\t};\n\n\tJSONRequest.prototype = {\n\t\t/**\n\t\t * Sends a JSON-RPC call. Consult the Wiki API documentation for more details on what you can pass to this function.\n\t\t *\n\t\t * @method send\n\t\t * @param {Object} args Call object where there are three field id, method and params this object should also contain callbacks etc.\n\t\t */\n\t\tsend: function(args) {\n\t\t\tvar ecb = args.error, scb = args.success;\n\n\t\t\targs = extend(this.settings, args);\n\n\t\t\targs.success = function(c, x) {\n\t\t\t\tc = JSON.parse(c);\n\n\t\t\t\tif (typeof c == 'undefined') {\n\t\t\t\t\tc = {\n\t\t\t\t\t\terror: 'JSON Parse error.'\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (c.error) {\n\t\t\t\t\tecb.call(args.error_scope || args.scope, c.error, x);\n\t\t\t\t} else {\n\t\t\t\t\tscb.call(args.success_scope || args.scope, c.result);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\targs.error = function(ty, x) {\n\t\t\t\tif (ecb) {\n\t\t\t\t\tecb.call(args.error_scope || args.scope, ty, x);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\targs.data = JSON.serialize({\n\t\t\t\tid: args.id || 'c' + (this.count++),\n\t\t\t\tmethod: args.method,\n\t\t\t\tparams: args.params\n\t\t\t});\n\n\t\t\t// JSON content type for Ruby on rails. Bug: #1883287\n\t\t\targs.content_type = 'application/json';\n\n\t\t\tXHR.send(args);\n\t\t}\n\t};\n\n\treturn JSONRequest;\n});\n\n// Included from: js/tinymce/classes/util/JSONP.js\n\n/**\n * JSONP.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\ndefine(\"tinymce/util/JSONP\", [\n\t\"tinymce/dom/DOMUtils\"\n], function(DOMUtils) {\n\treturn {\n\t\tcallbacks: {},\n\t\tcount: 0,\n\n\t\tsend: function(settings) {\n\t\t\tvar self = this, dom = DOMUtils.DOM, count = settings.count !== undefined ? settings.count : self.count;\n\t\t\tvar id = 'tinymce_jsonp_' + count;\n\n\t\t\tself.callbacks[count] = function(json) {\n\t\t\t\tdom.remove(id);\n\t\t\t\tdelete self.callbacks[count];\n\n\t\t\t\tsettings.callback(json);\n\t\t\t};\n\n\t\t\tdom.add(dom.doc.body, 'script', {\n\t\t\t\tid: id,\n\t\t\t\tsrc: settings.url,\n\t\t\t\ttype: 'text/javascript'\n\t\t\t});\n\n\t\t\tself.count++;\n\t\t}\n\t};\n});\n\n// Included from: js/tinymce/classes/util/LocalStorage.js\n\n/**\n * LocalStorage.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class will simulate LocalStorage on IE 7 and return the native version on modern browsers.\n * Storage is done using userData on IE 7 and a special serialization format. The format is designed\n * to be as small as possible by making sure that the keys and values doesn't need to be encoded. This\n * makes it possible to store for example HTML data.\n *\n * Storage format for userData:\n * ,,,,...\n *\n * For example this data key1=value1,key2=value2 would be:\n * 4,key1,6,value1,4,key2,6,value2\n *\n * @class tinymce.util.LocalStorage\n * @static\n * @version 4.0\n * @example\n * tinymce.util.LocalStorage.setItem('key', 'value');\n * var value = tinymce.util.LocalStorage.getItem('key');\n */\ndefine(\"tinymce/util/LocalStorage\", [], function() {\n\tvar LocalStorage, storageElm, items, keys, userDataKey, hasOldIEDataSupport;\n\n\t// Check for native support\n\ttry {\n\t\tif (window.localStorage) {\n\t\t\treturn localStorage;\n\t\t}\n\t} catch (ex) {\n\t\t// Ignore\n\t}\n\n\tuserDataKey = \"tinymce\";\n\tstorageElm = document.documentElement;\n\thasOldIEDataSupport = !!storageElm.addBehavior;\n\n\tif (hasOldIEDataSupport) {\n\t\tstorageElm.addBehavior('#default#userData');\n\t}\n\n\t/**\n\t * Gets the keys names and updates LocalStorage.length property. Since IE7 doesn't have any getters/setters.\n\t */\n\tfunction updateKeys() {\n\t\tkeys = [];\n\n\t\tfor (var key in items) {\n\t\t\tkeys.push(key);\n\t\t}\n\n\t\tLocalStorage.length = keys.length;\n\t}\n\n\t/**\n\t * Loads the userData string and parses it into the items structure.\n\t */\n\tfunction load() {\n\t\tvar key, data, value, pos = 0;\n\n\t\titems = {};\n\n\t\t// localStorage can be disabled on WebKit/Gecko so make a dummy storage\n\t\tif (!hasOldIEDataSupport) {\n\t\t\treturn;\n\t\t}\n\n\t\tfunction next(end) {\n\t\t\tvar value, nextPos;\n\n\t\t\tnextPos = end !== undefined ? pos + end : data.indexOf(',', pos);\n\t\t\tif (nextPos === -1 || nextPos > data.length) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tvalue = data.substring(pos, nextPos);\n\t\t\tpos = nextPos + 1;\n\n\t\t\treturn value;\n\t\t}\n\n\t\tstorageElm.load(userDataKey);\n\t\tdata = storageElm.getAttribute(userDataKey) || '';\n\n\t\tdo {\n\t\t\tvar offset = next();\n\t\t\tif (offset === null) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tkey = next(parseInt(offset, 32) || 0);\n\t\t\tif (key !== null) {\n\t\t\t\toffset = next();\n\t\t\t\tif (offset === null) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tvalue = next(parseInt(offset, 32) || 0);\n\n\t\t\t\tif (key) {\n\t\t\t\t\titems[key] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t} while (key !== null);\n\n\t\tupdateKeys();\n\t}\n\n\t/**\n\t * Saves the items structure into a the userData format.\n\t */\n\tfunction save() {\n\t\tvar value, data = '';\n\n\t\t// localStorage can be disabled on WebKit/Gecko so make a dummy storage\n\t\tif (!hasOldIEDataSupport) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (var key in items) {\n\t\t\tvalue = items[key];\n\t\t\tdata += (data ? ',' : '') + key.length.toString(32) + ',' + key + ',' + value.length.toString(32) + ',' + value;\n\t\t}\n\n\t\tstorageElm.setAttribute(userDataKey, data);\n\n\t\ttry {\n\t\t\tstorageElm.save(userDataKey);\n\t\t} catch (ex) {\n\t\t\t// Ignore disk full\n\t\t}\n\n\t\tupdateKeys();\n\t}\n\n\tLocalStorage = {\n\t\t/**\n\t\t * Length of the number of items in storage.\n\t\t *\n\t\t * @property length\n\t\t * @type Number\n\t\t * @return {Number} Number of items in storage.\n\t\t */\n\t\t//length:0,\n\n\t\t/**\n\t\t * Returns the key name by index.\n\t\t *\n\t\t * @method key\n\t\t * @param {Number} index Index of key to return.\n\t\t * @return {String} Key value or null if it wasn't found.\n\t\t */\n\t\tkey: function(index) {\n\t\t\treturn keys[index];\n\t\t},\n\n\t\t/**\n\t\t * Returns the value if the specified key or null if it wasn't found.\n\t\t *\n\t\t * @method getItem\n\t\t * @param {String} key Key of item to retrieve.\n\t\t * @return {String} Value of the specified item or null if it wasn't found.\n\t\t */\n\t\tgetItem: function(key) {\n\t\t\treturn key in items ? items[key] : null;\n\t\t},\n\n\t\t/**\n\t\t * Sets the value of the specified item by it's key.\n\t\t *\n\t\t * @method setItem\n\t\t * @param {String} key Key of the item to set.\n\t\t * @param {String} value Value of the item to set.\n\t\t */\n\t\tsetItem: function(key, value) {\n\t\t\titems[key] = \"\" + value;\n\t\t\tsave();\n\t\t},\n\n\t\t/**\n\t\t * Removes the specified item by key.\n\t\t *\n\t\t * @method removeItem\n\t\t * @param {String} key Key of item to remove.\n\t\t */\n\t\tremoveItem: function(key) {\n\t\t\tdelete items[key];\n\t\t\tsave();\n\t\t},\n\n\t\t/**\n\t\t * Removes all items.\n\t\t *\n\t\t * @method clear\n\t\t */\n\t\tclear: function() {\n\t\t\titems = {};\n\t\t\tsave();\n\t\t}\n\t};\n\n\tload();\n\n\treturn LocalStorage;\n});\n\n// Included from: js/tinymce/classes/Compat.js\n\n/**\n * Compat.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * TinyMCE core class.\n *\n * @static\n * @class tinymce\n * @borrow-members tinymce.EditorManager\n * @borrow-members tinymce.util.Tools\n */\ndefine(\"tinymce/Compat\", [\n\t\"tinymce/dom/DOMUtils\",\n\t\"tinymce/dom/EventUtils\",\n\t\"tinymce/dom/ScriptLoader\",\n\t\"tinymce/AddOnManager\",\n\t\"tinymce/util/Tools\",\n\t\"tinymce/Env\"\n], function(DOMUtils, EventUtils, ScriptLoader, AddOnManager, Tools, Env) {\n\tvar tinymce = window.tinymce;\n\n\t/**\n\t * @property {tinymce.dom.DOMUtils} DOM Global DOM instance.\n\t * @property {tinymce.dom.ScriptLoader} ScriptLoader Global ScriptLoader instance.\n\t * @property {tinymce.AddOnManager} PluginManager Global PluginManager instance.\n\t * @property {tinymce.AddOnManager} ThemeManager Global ThemeManager instance.\n\t */\n\ttinymce.DOM = DOMUtils.DOM;\n\ttinymce.ScriptLoader = ScriptLoader.ScriptLoader;\n\ttinymce.PluginManager = AddOnManager.PluginManager;\n\ttinymce.ThemeManager = AddOnManager.ThemeManager;\n\n\ttinymce.dom = tinymce.dom || {};\n\ttinymce.dom.Event = EventUtils.Event;\n\n\tTools.each(\n\t\t'trim isArray is toArray makeMap each map grep inArray extend create walk createNS resolve explode _addCacheSuffix'.split(' '),\n\t\tfunction(key) {\n\t\t\ttinymce[key] = Tools[key];\n\t\t}\n\t);\n\n\tTools.each('isOpera isWebKit isIE isGecko isMac'.split(' '), function(name) {\n\t\ttinymce[name] = Env[name.substr(2).toLowerCase()];\n\t});\n\n\treturn {};\n});\n\n// Describe the different namespaces\n\n/**\n * Root level namespace this contains classes directly related to the TinyMCE editor.\n *\n * @namespace tinymce\n */\n\n/**\n * Contains classes for handling the browsers DOM.\n *\n * @namespace tinymce.dom\n */\n\n/**\n * Contains html parser and serializer logic.\n *\n * @namespace tinymce.html\n */\n\n/**\n * Contains the different UI types such as buttons, listboxes etc.\n *\n * @namespace tinymce.ui\n */\n\n/**\n * Contains various utility classes such as json parser, cookies etc.\n *\n * @namespace tinymce.util\n */\n\n/**\n * Contains modules to handle data binding.\n *\n * @namespace tinymce.data\n */\n\n// Included from: js/tinymce/classes/ui/Layout.js\n\n/**\n * Layout.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Base layout manager class.\n *\n * @class tinymce.ui.Layout\n */\ndefine(\"tinymce/ui/Layout\", [\n\t\"tinymce/util/Class\",\n\t\"tinymce/util/Tools\"\n], function(Class, Tools) {\n\t\"use strict\";\n\n\treturn Class.extend({\n\t\tDefaults: {\n\t\t\tfirstControlClass: 'first',\n\t\t\tlastControlClass: 'last'\n\t\t},\n\n\t\t/**\n\t\t * Constructs a layout instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tthis.settings = Tools.extend({}, this.Defaults, settings);\n\t\t},\n\n\t\t/**\n\t\t * This method gets invoked before the layout renders the controls.\n\t\t *\n\t\t * @method preRender\n\t\t * @param {tinymce.ui.Container} container Container instance to preRender.\n\t\t */\n\t\tpreRender: function(container) {\n\t\t\tcontainer.bodyClasses.add(this.settings.containerClass);\n\t\t},\n\n\t\t/**\n\t\t * Applies layout classes to the container.\n\t\t *\n\t\t * @private\n\t\t */\n\t\tapplyClasses: function(items) {\n\t\t\tvar self = this, settings = self.settings, firstClass, lastClass, firstItem, lastItem;\n\n\t\t\tfirstClass = settings.firstControlClass;\n\t\t\tlastClass = settings.lastControlClass;\n\n\t\t\titems.each(function(item) {\n\t\t\t\titem.classes.remove(firstClass).remove(lastClass).add(settings.controlClass);\n\n\t\t\t\tif (item.visible()) {\n\t\t\t\t\tif (!firstItem) {\n\t\t\t\t\t\tfirstItem = item;\n\t\t\t\t\t}\n\n\t\t\t\t\tlastItem = item;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (firstItem) {\n\t\t\t\tfirstItem.classes.add(firstClass);\n\t\t\t}\n\n\t\t\tif (lastItem) {\n\t\t\t\tlastItem.classes.add(lastClass);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Renders the specified container and any layout specific HTML.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @param {tinymce.ui.Container} container Container to render HTML for.\n\t\t */\n\t\trenderHtml: function(container) {\n\t\t\tvar self = this, html = '';\n\n\t\t\tself.applyClasses(container.items());\n\n\t\t\tcontainer.items().each(function(item) {\n\t\t\t\thtml += item.renderHtml();\n\t\t\t});\n\n\t\t\treturn html;\n\t\t},\n\n\t\t/**\n\t\t * Recalculates the positions of the controls in the specified container.\n\t\t *\n\t\t * @method recalc\n\t\t * @param {tinymce.ui.Container} container Container instance to recalc.\n\t\t */\n\t\trecalc: function() {\n\t\t},\n\n\t\t/**\n\t\t * This method gets invoked after the layout renders the controls.\n\t\t *\n\t\t * @method postRender\n\t\t * @param {tinymce.ui.Container} container Container instance to postRender.\n\t\t */\n\t\tpostRender: function() {\n\t\t},\n\n\t\tisNative: function() {\n\t\t\treturn false;\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/AbsoluteLayout.js\n\n/**\n * AbsoluteLayout.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * LayoutManager for absolute positioning. This layout manager is more of\n * a base class for other layouts but can be created and used directly.\n *\n * @-x-less AbsoluteLayout.less\n * @class tinymce.ui.AbsoluteLayout\n * @extends tinymce.ui.Layout\n */\ndefine(\"tinymce/ui/AbsoluteLayout\", [\n\t\"tinymce/ui/Layout\"\n], function(Layout) {\n\t\"use strict\";\n\n\treturn Layout.extend({\n\t\tDefaults: {\n\t\t\tcontainerClass: 'abs-layout',\n\t\t\tcontrolClass: 'abs-layout-item'\n\t\t},\n\n\t\t/**\n\t\t * Recalculates the positions of the controls in the specified container.\n\t\t *\n\t\t * @method recalc\n\t\t * @param {tinymce.ui.Container} container Container instance to recalc.\n\t\t */\n\t\trecalc: function(container) {\n\t\t\tcontainer.items().filter(':visible').each(function(ctrl) {\n\t\t\t\tvar settings = ctrl.settings;\n\n\t\t\t\tctrl.layoutRect({\n\t\t\t\t\tx: settings.x,\n\t\t\t\t\ty: settings.y,\n\t\t\t\t\tw: settings.w,\n\t\t\t\t\th: settings.h\n\t\t\t\t});\n\n\t\t\t\tif (ctrl.recalc) {\n\t\t\t\t\tctrl.recalc();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Renders the specified container and any layout specific HTML.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @param {tinymce.ui.Container} container Container to render HTML for.\n\t\t */\n\t\trenderHtml: function(container) {\n\t\t\treturn '
    ' + this._super(container);\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/Button.js\n\n/**\n * Button.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class is used to create buttons. You can create them directly or through the Factory.\n *\n * @example\n * // Create and render a button to the body element\n * tinymce.ui.Factory.create({\n * type: 'button',\n * text: 'My button'\n * }).renderTo(document.body);\n *\n * @-x-less Button.less\n * @class tinymce.ui.Button\n * @extends tinymce.ui.Widget\n */\ndefine(\"tinymce/ui/Button\", [\n\t\"tinymce/ui/Widget\"\n], function(Widget) {\n\t\"use strict\";\n\n\treturn Widget.extend({\n\t\tDefaults: {\n\t\t\tclasses: \"widget btn\",\n\t\t\trole: \"button\"\n\t\t},\n\n\t\t/**\n\t\t * Constructs a new button instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t * @setting {String} size Size of the button small|medium|large.\n\t\t * @setting {String} image Image to use for icon.\n\t\t * @setting {String} icon Icon to use for button.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this, size;\n\n\t\t\tself._super(settings);\n\t\t\tsettings = self.settings;\n\n\t\t\tsize = self.settings.size;\n\n\t\t\tself.on('click mousedown', function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t});\n\n\t\t\tself.on('touchstart', function(e) {\n\t\t\t\tself.fire('click', e);\n\t\t\t\te.preventDefault();\n\t\t\t});\n\n\t\t\tif (settings.subtype) {\n\t\t\t\tself.classes.add(settings.subtype);\n\t\t\t}\n\n\t\t\tif (size) {\n\t\t\t\tself.classes.add('btn-' + size);\n\t\t\t}\n\n\t\t\tif (settings.icon) {\n\t\t\t\tself.icon(settings.icon);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Sets/gets the current button icon.\n\t\t *\n\t\t * @method icon\n\t\t * @param {String} [icon] New icon identifier.\n\t\t * @return {String|tinymce.ui.MenuButton} Current icon or current MenuButton instance.\n\t\t */\n\t\ticon: function(icon) {\n\t\t\tif (!arguments.length) {\n\t\t\t\treturn this.state.get('icon');\n\t\t\t}\n\n\t\t\tthis.state.set('icon', icon);\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Repaints the button for example after it's been resizes by a layout engine.\n\t\t *\n\t\t * @method repaint\n\t\t */\n\t\trepaint: function() {\n\t\t\tvar btnElm = this.getEl().firstChild,\n\t\t\t\tbtnStyle;\n\n\t\t\tif (btnElm) {\n\t\t\t\tbtnStyle = btnElm.style;\n\t\t\t\tbtnStyle.width = btnStyle.height = \"100%\";\n\t\t\t}\n\n\t\t\tthis._super();\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, id = self._id, prefix = self.classPrefix;\n\t\t\tvar icon = self.state.get('icon'), image, text = self.state.get('text'), textHtml = '';\n\n\t\t\timage = self.settings.image;\n\t\t\tif (image) {\n\t\t\t\ticon = 'none';\n\n\t\t\t\t// Support for [high dpi, low dpi] image sources\n\t\t\t\tif (typeof image != \"string\") {\n\t\t\t\t\timage = window.getSelection ? image[0] : image[1];\n\t\t\t\t}\n\n\t\t\t\timage = ' style=\"background-image: url(\\'' + image + '\\')\"';\n\t\t\t} else {\n\t\t\t\timage = '';\n\t\t\t}\n\n\t\t\tif (text) {\n\t\t\t\tself.classes.add('btn-has-text');\n\t\t\t\ttextHtml = '' + self.encode(text) + '';\n\t\t\t}\n\n\t\t\ticon = icon ? prefix + 'ico ' + prefix + 'i-' + icon : '';\n\n\t\t\treturn (\n\t\t\t\t'
    ' +\n\t\t\t\t\t'' +\n\t\t\t\t'
    '\n\t\t\t);\n\t\t},\n\n\t\tbindStates: function() {\n\t\t\tvar self = this, $ = self.$, textCls = self.classPrefix + 'txt';\n\n\t\t\tfunction setButtonText(text) {\n\t\t\t\tvar $span = $('span.' + textCls, self.getEl());\n\n\t\t\t\tif (text) {\n\t\t\t\t\tif (!$span[0]) {\n\t\t\t\t\t\t$('button:first', self.getEl()).append('');\n\t\t\t\t\t\t$span = $('span.' + textCls, self.getEl());\n\t\t\t\t\t}\n\n\t\t\t\t\t$span.html(self.encode(text));\n\t\t\t\t} else {\n\t\t\t\t\t$span.remove();\n\t\t\t\t}\n\n\t\t\t\tself.classes.toggle('btn-has-text', !!text);\n\t\t\t}\n\n\t\t\tself.state.on('change:text', function(e) {\n\t\t\t\tsetButtonText(e.value);\n\t\t\t});\n\n\t\t\tself.state.on('change:icon', function(e) {\n\t\t\t\tvar icon = e.value, prefix = self.classPrefix;\n\n\t\t\t\tself.settings.icon = icon;\n\t\t\t\ticon = icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : '';\n\n\t\t\t\tvar btnElm = self.getEl().firstChild, iconElm = btnElm.getElementsByTagName('i')[0];\n\n\t\t\t\tif (icon) {\n\t\t\t\t\tif (!iconElm || iconElm != btnElm.firstChild) {\n\t\t\t\t\t\ticonElm = document.createElement('i');\n\t\t\t\t\t\tbtnElm.insertBefore(iconElm, btnElm.firstChild);\n\t\t\t\t\t}\n\n\t\t\t\t\ticonElm.className = icon;\n\t\t\t\t} else if (iconElm) {\n\t\t\t\t\tbtnElm.removeChild(iconElm);\n\t\t\t\t}\n\n\t\t\t\tsetButtonText(self.state.get('text'));\n\t\t\t});\n\n\t\t\treturn self._super();\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/ButtonGroup.js\n\n/**\n * ButtonGroup.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This control enables you to put multiple buttons into a group. This is\n * useful when you want to combine similar toolbar buttons into a group.\n *\n * @example\n * // Create and render a buttongroup with two buttons to the body element\n * tinymce.ui.Factory.create({\n * type: 'buttongroup',\n * items: [\n * {text: 'Button A'},\n * {text: 'Button B'}\n * ]\n * }).renderTo(document.body);\n *\n * @-x-less ButtonGroup.less\n * @class tinymce.ui.ButtonGroup\n * @extends tinymce.ui.Container\n */\ndefine(\"tinymce/ui/ButtonGroup\", [\n\t\"tinymce/ui/Container\"\n], function(Container) {\n\t\"use strict\";\n\n\treturn Container.extend({\n\t\tDefaults: {\n\t\t\tdefaultType: 'button',\n\t\t\trole: 'group'\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, layout = self._layout;\n\n\t\t\tself.classes.add('btn-group');\n\t\t\tself.preRender();\n\t\t\tlayout.preRender(self);\n\n\t\t\treturn (\n\t\t\t\t'
    ' +\n\t\t\t\t\t'
    ' +\n\t\t\t\t\t\t(self.settings.html || '') + layout.renderHtml(self) +\n\t\t\t\t\t'
    ' +\n\t\t\t\t'
    '\n\t\t\t);\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/Checkbox.js\n\n/**\n * Checkbox.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This control creates a custom checkbox.\n *\n * @example\n * // Create and render a checkbox to the body element\n * tinymce.ui.Factory.create({\n * type: 'checkbox',\n * checked: true,\n * text: 'My checkbox'\n * }).renderTo(document.body);\n *\n * @-x-less Checkbox.less\n * @class tinymce.ui.Checkbox\n * @extends tinymce.ui.Widget\n */\ndefine(\"tinymce/ui/Checkbox\", [\n\t\"tinymce/ui/Widget\"\n], function(Widget) {\n\t\"use strict\";\n\n\treturn Widget.extend({\n\t\tDefaults: {\n\t\t\tclasses: \"checkbox\",\n\t\t\trole: \"checkbox\",\n\t\t\tchecked: false\n\t\t},\n\n\t\t/**\n\t\t * Constructs a new Checkbox instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t * @setting {Boolean} checked True if the checkbox should be checked by default.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this;\n\n\t\t\tself._super(settings);\n\n\t\t\tself.on('click mousedown', function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t});\n\n\t\t\tself.on('click', function(e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif (!self.disabled()) {\n\t\t\t\t\tself.checked(!self.checked());\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tself.checked(self.settings.checked);\n\t\t},\n\n\t\t/**\n\t\t * Getter/setter function for the checked state.\n\t\t *\n\t\t * @method checked\n\t\t * @param {Boolean} [state] State to be set.\n\t\t * @return {Boolean|tinymce.ui.Checkbox} True/false or checkbox if it's a set operation.\n\t\t */\n\t\tchecked: function(state) {\n\t\t\tif (!arguments.length) {\n\t\t\t\treturn this.state.get('checked');\n\t\t\t}\n\n\t\t\tthis.state.set('checked', state);\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Getter/setter function for the value state.\n\t\t *\n\t\t * @method value\n\t\t * @param {Boolean} [state] State to be set.\n\t\t * @return {Boolean|tinymce.ui.Checkbox} True/false or checkbox if it's a set operation.\n\t\t */\n\t\tvalue: function(state) {\n\t\t\tif (!arguments.length) {\n\t\t\t\treturn this.checked();\n\t\t\t}\n\n\t\t\treturn this.checked(state);\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, id = self._id, prefix = self.classPrefix;\n\n\t\t\treturn (\n\t\t\t\t'
    ' +\n\t\t\t\t\t'' +\n\t\t\t\t\t'' + self.encode(self.state.get('text')) + '' +\n\t\t\t\t'
    '\n\t\t\t);\n\t\t},\n\n\t\tbindStates: function() {\n\t\t\tvar self = this;\n\n\t\t\tfunction checked(state) {\n\t\t\t\tself.classes.toggle(\"checked\", state);\n\t\t\t\tself.aria('checked', state);\n\t\t\t}\n\n\t\t\tself.state.on('change:text', function(e) {\n\t\t\t\tself.getEl('al').firstChild.data = self.translate(e.value);\n\t\t\t});\n\n\t\t\tself.state.on('change:checked change:value', function(e) {\n\t\t\t\tself.fire('change');\n\t\t\t\tchecked(e.value);\n\t\t\t});\n\n\t\t\tself.state.on('change:icon', function(e) {\n\t\t\t\tvar icon = e.value, prefix = self.classPrefix;\n\n\t\t\t\tif (typeof icon == 'undefined') {\n\t\t\t\t\treturn self.settings.icon;\n\t\t\t\t}\n\n\t\t\t\tself.settings.icon = icon;\n\t\t\t\ticon = icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : '';\n\n\t\t\t\tvar btnElm = self.getEl().firstChild, iconElm = btnElm.getElementsByTagName('i')[0];\n\n\t\t\t\tif (icon) {\n\t\t\t\t\tif (!iconElm || iconElm != btnElm.firstChild) {\n\t\t\t\t\t\ticonElm = document.createElement('i');\n\t\t\t\t\t\tbtnElm.insertBefore(iconElm, btnElm.firstChild);\n\t\t\t\t\t}\n\n\t\t\t\t\ticonElm.className = icon;\n\t\t\t\t} else if (iconElm) {\n\t\t\t\t\tbtnElm.removeChild(iconElm);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (self.state.get('checked')) {\n\t\t\t\tchecked(true);\n\t\t\t}\n\n\t\t\treturn self._super();\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/ComboBox.js\n\n/**\n * ComboBox.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class creates a combobox control. Select box that you select a value from or\n * type a value into.\n *\n * @-x-less ComboBox.less\n * @class tinymce.ui.ComboBox\n * @extends tinymce.ui.Widget\n */\ndefine(\"tinymce/ui/ComboBox\", [\n\t\"tinymce/ui/Widget\",\n\t\"tinymce/ui/Factory\",\n\t\"tinymce/ui/DomUtils\",\n\t\"tinymce/dom/DomQuery\",\n\t\"tinymce/util/VK\",\n\t\"tinymce/util/Tools\"\n], function(Widget, Factory, DomUtils, $, VK, Tools) {\n\t\"use strict\";\n\n\treturn Widget.extend({\n\t\t/**\n\t\t * Constructs a new control instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t * @setting {String} placeholder Placeholder text to display.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this;\n\n\t\t\tself._super(settings);\n\t\t\tsettings = self.settings;\n\n\t\t\tself.classes.add('combobox');\n\t\t\tself.subinput = true;\n\t\t\tself.ariaTarget = 'inp'; // TODO: Figure out a better way\n\n\t\t\tsettings.menu = settings.menu || settings.values;\n\n\t\t\tif (settings.menu) {\n\t\t\t\tsettings.icon = 'caret';\n\t\t\t}\n\n\t\t\tself.on('click', function(e) {\n\t\t\t\tvar elm = e.target, root = self.getEl();\n\n\t\t\t\tif (!$.contains(root, elm) && elm != root) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\twhile (elm && elm != root) {\n\t\t\t\t\tif (elm.id && elm.id.indexOf('-open') != -1) {\n\t\t\t\t\t\tself.fire('action');\n\n\t\t\t\t\t\tif (settings.menu) {\n\t\t\t\t\t\t\tself.showMenu();\n\n\t\t\t\t\t\t\tif (e.aria) {\n\t\t\t\t\t\t\t\tself.menu.items()[0].focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telm = elm.parentNode;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// TODO: Rework this\n\t\t\tself.on('keydown', function(e) {\n\t\t\t\tvar rootControl;\n\n\t\t\t\tif (e.keyCode == 13 && e.target.nodeName === 'INPUT') {\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t// Find root control that we can do toJSON on\n\t\t\t\t\tself.parents().reverse().each(function(ctrl) {\n\t\t\t\t\t\tif (ctrl.toJSON) {\n\t\t\t\t\t\t\trootControl = ctrl;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\t// Fire event on current text box with the serialized data of the whole form\n\t\t\t\t\tself.fire('submit', {data: rootControl.toJSON()});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tself.on('keyup', function(e) {\n\t\t\t\tif (e.target.nodeName == \"INPUT\") {\n\t\t\t\t\tvar oldValue = self.state.get('value');\n\t\t\t\t\tvar newValue = e.target.value;\n\n\t\t\t\t\tif (newValue !== oldValue) {\n\t\t\t\t\t\tself.state.set('value', newValue);\n\t\t\t\t\t\tself.fire('autocomplete', e);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tself.on('mouseover', function(e) {\n\t\t\t\tvar tooltip = self.tooltip().moveTo(-0xFFFF);\n\n\t\t\t\tif (self.statusLevel() && e.target.className.indexOf(self.classPrefix + 'status') !== -1) {\n\t\t\t\t\tvar statusMessage = self.statusMessage() || 'Ok';\n\t\t\t\t\tvar rel = tooltip.text(statusMessage).show().testMoveRel(e.target, ['bc-tc', 'bc-tl', 'bc-tr']);\n\n\t\t\t\t\ttooltip.classes.toggle('tooltip-n', rel == 'bc-tc');\n\t\t\t\t\ttooltip.classes.toggle('tooltip-nw', rel == 'bc-tl');\n\t\t\t\t\ttooltip.classes.toggle('tooltip-ne', rel == 'bc-tr');\n\n\t\t\t\t\ttooltip.moveRel(e.target, rel);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tstatusLevel: function (value) {\n\t\t\tif (arguments.length > 0) {\n\t\t\t\tthis.state.set('statusLevel', value);\n\t\t\t}\n\n\t\t\treturn this.state.get('statusLevel');\n\t\t},\n\n\t\tstatusMessage: function (value) {\n\t\t\tif (arguments.length > 0) {\n\t\t\t\tthis.state.set('statusMessage', value);\n\t\t\t}\n\n\t\t\treturn this.state.get('statusMessage');\n\t\t},\n\n\t\tshowMenu: function() {\n\t\t\tvar self = this, settings = self.settings, menu;\n\n\t\t\tif (!self.menu) {\n\t\t\t\tmenu = settings.menu || [];\n\n\t\t\t\t// Is menu array then auto constuct menu control\n\t\t\t\tif (menu.length) {\n\t\t\t\t\tmenu = {\n\t\t\t\t\t\ttype: 'menu',\n\t\t\t\t\t\titems: menu\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tmenu.type = menu.type || 'menu';\n\t\t\t\t}\n\n\t\t\t\tself.menu = Factory.create(menu).parent(self).renderTo(self.getContainerElm());\n\t\t\t\tself.fire('createmenu');\n\t\t\t\tself.menu.reflow();\n\t\t\t\tself.menu.on('cancel', function(e) {\n\t\t\t\t\tif (e.control === self.menu) {\n\t\t\t\t\t\tself.focus();\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tself.menu.on('show hide', function(e) {\n\t\t\t\t\te.control.items().each(function(ctrl) {\n\t\t\t\t\t\tctrl.active(ctrl.value() == self.value());\n\t\t\t\t\t});\n\t\t\t\t}).fire('show');\n\n\t\t\t\tself.menu.on('select', function(e) {\n\t\t\t\t\tself.value(e.control.value());\n\t\t\t\t});\n\n\t\t\t\tself.on('focusin', function(e) {\n\t\t\t\t\tif (e.target.tagName.toUpperCase() == 'INPUT') {\n\t\t\t\t\t\tself.menu.hide();\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tself.aria('expanded', true);\n\t\t\t}\n\n\t\t\tself.menu.show();\n\t\t\tself.menu.layoutRect({w: self.layoutRect().w});\n\t\t\tself.menu.moveRel(self.getEl(), self.isRtl() ? ['br-tr', 'tr-br'] : ['bl-tl', 'tl-bl']);\n\t\t},\n\n\t\t/**\n\t\t * Focuses the input area of the control.\n\t\t *\n\t\t * @method focus\n\t\t */\n\t\tfocus: function() {\n\t\t\tthis.getEl('inp').focus();\n\t\t},\n\n\t\t/**\n\t\t * Repaints the control after a layout operation.\n\t\t *\n\t\t * @method repaint\n\t\t */\n\t\trepaint: function() {\n\t\t\tvar self = this, elm = self.getEl(), openElm = self.getEl('open'), rect = self.layoutRect();\n\t\t\tvar width, lineHeight, innerPadding = 0, inputElm = elm.firstChild;\n\n\t\t\tif (self.statusLevel() && self.statusLevel() !== 'none') {\n\t\t\t\tinnerPadding = (\n\t\t\t\t\tparseInt(DomUtils.getRuntimeStyle(inputElm, 'padding-right'), 10) -\n\t\t\t\t\tparseInt(DomUtils.getRuntimeStyle(inputElm, 'padding-left'), 10)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (openElm) {\n\t\t\t\twidth = rect.w - DomUtils.getSize(openElm).width - 10;\n\t\t\t} else {\n\t\t\t\twidth = rect.w - 10;\n\t\t\t}\n\n\t\t\t// Detect old IE 7+8 add lineHeight to align caret vertically in the middle\n\t\t\tvar doc = document;\n\t\t\tif (doc.all && (!doc.documentMode || doc.documentMode <= 8)) {\n\t\t\t\tlineHeight = (self.layoutRect().h - 2) + 'px';\n\t\t\t}\n\n\t\t\t$(inputElm).css({\n\t\t\t\twidth: width - innerPadding,\n\t\t\t\tlineHeight: lineHeight\n\t\t\t});\n\n\t\t\tself._super();\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Post render method. Called after the control has been rendered to the target.\n\t\t *\n\t\t * @method postRender\n\t\t * @return {tinymce.ui.ComboBox} Current combobox instance.\n\t\t */\n\t\tpostRender: function() {\n\t\t\tvar self = this;\n\n\t\t\t$(this.getEl('inp')).on('change', function(e) {\n\t\t\t\tself.state.set('value', e.target.value);\n\t\t\t\tself.fire('change', e);\n\t\t\t});\n\n\t\t\treturn self._super();\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, id = self._id, settings = self.settings, prefix = self.classPrefix;\n\t\t\tvar value = self.state.get('value') || '';\n\t\t\tvar icon, text, openBtnHtml = '', extraAttrs = '', statusHtml = '';\n\n\t\t\tif (\"spellcheck\" in settings) {\n\t\t\t\textraAttrs += ' spellcheck=\"' + settings.spellcheck + '\"';\n\t\t\t}\n\n\t\t\tif (settings.maxLength) {\n\t\t\t\textraAttrs += ' maxlength=\"' + settings.maxLength + '\"';\n\t\t\t}\n\n\t\t\tif (settings.size) {\n\t\t\t\textraAttrs += ' size=\"' + settings.size + '\"';\n\t\t\t}\n\n\t\t\tif (settings.subtype) {\n\t\t\t\textraAttrs += ' type=\"' + settings.subtype + '\"';\n\t\t\t}\n\n\t\t\tstatusHtml = '';\n\n\t\t\tif (self.disabled()) {\n\t\t\t\textraAttrs += ' disabled=\"disabled\"';\n\t\t\t}\n\n\t\t\ticon = settings.icon;\n\t\t\tif (icon && icon != 'caret') {\n\t\t\t\ticon = prefix + 'ico ' + prefix + 'i-' + settings.icon;\n\t\t\t}\n\n\t\t\ttext = self.state.get('text');\n\n\t\t\tif (icon || text) {\n\t\t\t\topenBtnHtml = (\n\t\t\t\t\t'
    ' +\n\t\t\t\t\t\t'' +\n\t\t\t\t\t'
    '\n\t\t\t\t);\n\n\t\t\t\tself.classes.add('has-open');\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t'
    ' +\n\t\t\t\t\t'' +\n\t\t\t\t\tstatusHtml +\n\t\t\t\t\topenBtnHtml +\n\t\t\t\t'
    '\n\t\t\t);\n\t\t},\n\n\t\tvalue: function(value) {\n\t\t\tif (arguments.length) {\n\t\t\t\tthis.state.set('value', value);\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\t// Make sure the real state is in sync\n\t\t\tif (this.state.get('rendered')) {\n\t\t\t\tthis.state.set('value', this.getEl('inp').value);\n\t\t\t}\n\n\t\t\treturn this.state.get('value');\n\t\t},\n\n\t\tshowAutoComplete: function (items, term) {\n\t\t\tvar self = this;\n\n\t\t\tif (items.length === 0) {\n\t\t\t\tself.hideMenu();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar insert = function (value, title) {\n\t\t\t\treturn function () {\n\t\t\t\t\tself.fire('selectitem', {\n\t\t\t\t\t\ttitle: title,\n\t\t\t\t\t\tvalue: value\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t};\n\n\t\t\tif (self.menu) {\n\t\t\t\tself.menu.items().remove();\n\t\t\t} else {\n\t\t\t\tself.menu = Factory.create({\n\t\t\t\t\ttype: 'menu',\n\t\t\t\t\tclasses: 'combobox-menu',\n\t\t\t\t\tlayout: 'flow'\n\t\t\t\t}).parent(self).renderTo();\n\t\t\t}\n\n\t\t\tTools.each(items, function (item) {\n\t\t\t\tself.menu.add({\n\t\t\t\t\ttext: item.title,\n\t\t\t\t\turl: item.previewUrl,\n\t\t\t\t\tmatch: term,\n\t\t\t\t\tclasses: 'menu-item-ellipsis',\n\t\t\t\t\tonclick: insert(item.value, item.title)\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tself.menu.renderNew();\n\t\t\tself.hideMenu();\n\n\t\t\tself.menu.on('cancel', function(e) {\n\t\t\t\tif (e.control.parent() === self.menu) {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tself.focus();\n\t\t\t\t\tself.hideMenu();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tself.menu.on('select', function() {\n\t\t\t\tself.focus();\n\t\t\t});\n\n\t\t\tvar maxW = self.layoutRect().w;\n\t\t\tself.menu.layoutRect({w: maxW, minW: 0, maxW: maxW});\n\t\t\tself.menu.reflow();\n\t\t\tself.menu.show();\n\t\t\tself.menu.moveRel(self.getEl(), self.isRtl() ? ['br-tr', 'tr-br'] : ['bl-tl', 'tl-bl']);\n\t\t},\n\n\t\thideMenu: function() {\n\t\t\tif (this.menu) {\n\t\t\t\tthis.menu.hide();\n\t\t\t}\n\t\t},\n\n\t\tbindStates: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.state.on('change:value', function(e) {\n\t\t\t\tif (self.getEl('inp').value != e.value) {\n\t\t\t\t\tself.getEl('inp').value = e.value;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tself.state.on('change:disabled', function(e) {\n\t\t\t\tself.getEl('inp').disabled = e.value;\n\t\t\t});\n\n\t\t\tself.state.on('change:statusLevel', function(e) {\n\t\t\t\tvar statusIconElm = self.getEl('status');\n\t\t\t\tvar prefix = self.classPrefix, value = e.value;\n\n\t\t\t\tDomUtils.css(statusIconElm, 'display', value === 'none' ? 'none' : '');\n\t\t\t\tDomUtils.toggleClass(statusIconElm, prefix + 'i-checkmark', value === 'ok');\n\t\t\t\tDomUtils.toggleClass(statusIconElm, prefix + 'i-warning', value === 'warn');\n\t\t\t\tDomUtils.toggleClass(statusIconElm, prefix + 'i-error', value === 'error');\n\t\t\t\tself.classes.toggle('has-status', value !== 'none');\n\t\t\t\tself.repaint();\n\t\t\t});\n\n\t\t\tDomUtils.on(self.getEl('status'), 'mouseleave', function () {\n\t\t\t\tself.tooltip().hide();\n\t\t\t});\n\n\t\t\tself.on('cancel', function (e) {\n\t\t\t\tif (self.menu && self.menu.visible()) {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tself.hideMenu();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tvar focusIdx = function (idx, menu) {\n\t\t\t\tif (menu && menu.items().length > 0) {\n\t\t\t\t\tmenu.items().eq(idx)[0].focus();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tself.on('keydown', function (e) {\n\t\t\t\tvar keyCode = e.keyCode;\n\n\t\t\t\tif (e.target.nodeName === 'INPUT') {\n\t\t\t\t\tif (keyCode === VK.DOWN) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tself.fire('autocomplete');\n\t\t\t\t\t\tfocusIdx(0, self.menu);\n\t\t\t\t\t} else if (keyCode === VK.UP) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tfocusIdx(-1, self.menu);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn self._super();\n\t\t},\n\n\t\tremove: function() {\n\t\t\t$(this.getEl('inp')).off();\n\n\t\t\tif (this.menu) {\n\t\t\t\tthis.menu.remove();\n\t\t\t}\n\n\t\t\tthis._super();\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/ColorBox.js\n\n/**\n * ColorBox.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This widget lets you enter colors and browse for colors by pressing the color button. It also displays\n * a preview of the current color.\n *\n * @-x-less ColorBox.less\n * @class tinymce.ui.ColorBox\n * @extends tinymce.ui.ComboBox\n */\ndefine(\"tinymce/ui/ColorBox\", [\n\t\"tinymce/ui/ComboBox\"\n], function(ComboBox) {\n\t\"use strict\";\n\n\treturn ComboBox.extend({\n\t\t/**\n\t\t * Constructs a new control instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this;\n\n\t\t\tsettings.spellcheck = false;\n\n\t\t\tif (settings.onaction) {\n\t\t\t\tsettings.icon = 'none';\n\t\t\t}\n\n\t\t\tself._super(settings);\n\n\t\t\tself.classes.add('colorbox');\n\t\t\tself.on('change keyup postrender', function() {\n\t\t\t\tself.repaintColor(self.value());\n\t\t\t});\n\t\t},\n\n\t\trepaintColor: function(value) {\n\t\t\tvar openElm = this.getEl('open');\n\t\t\tvar elm = openElm ? openElm.getElementsByTagName('i')[0] : null;\n\n\t\t\tif (elm) {\n\t\t\t\ttry {\n\t\t\t\t\telm.style.background = value;\n\t\t\t\t} catch (ex) {\n\t\t\t\t\t// Ignore\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tbindStates: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.state.on('change:value', function(e) {\n\t\t\t\tif (self.state.get('rendered')) {\n\t\t\t\t\tself.repaintColor(e.value);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn self._super();\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/PanelButton.js\n\n/**\n * PanelButton.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Creates a new panel button.\n *\n * @class tinymce.ui.PanelButton\n * @extends tinymce.ui.Button\n */\ndefine(\"tinymce/ui/PanelButton\", [\n\t\"tinymce/ui/Button\",\n\t\"tinymce/ui/FloatPanel\"\n], function(Button, FloatPanel) {\n\t\"use strict\";\n\n\treturn Button.extend({\n\t\t/**\n\t\t * Shows the panel for the button.\n\t\t *\n\t\t * @method showPanel\n\t\t */\n\t\tshowPanel: function() {\n\t\t\tvar self = this, settings = self.settings;\n\n\t\t\tself.active(true);\n\n\t\t\tif (!self.panel) {\n\t\t\t\tvar panelSettings = settings.panel;\n\n\t\t\t\t// Wrap panel in grid layout if type if specified\n\t\t\t\t// This makes it possible to add forms or other containers directly in the panel option\n\t\t\t\tif (panelSettings.type) {\n\t\t\t\t\tpanelSettings = {\n\t\t\t\t\t\tlayout: 'grid',\n\t\t\t\t\t\titems: panelSettings\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tpanelSettings.role = panelSettings.role || 'dialog';\n\t\t\t\tpanelSettings.popover = true;\n\t\t\t\tpanelSettings.autohide = true;\n\t\t\t\tpanelSettings.ariaRoot = true;\n\n\t\t\t\tself.panel = new FloatPanel(panelSettings).on('hide', function() {\n\t\t\t\t\tself.active(false);\n\t\t\t\t}).on('cancel', function(e) {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tself.focus();\n\t\t\t\t\tself.hidePanel();\n\t\t\t\t}).parent(self).renderTo(self.getContainerElm());\n\n\t\t\t\tself.panel.fire('show');\n\t\t\t\tself.panel.reflow();\n\t\t\t} else {\n\t\t\t\tself.panel.show();\n\t\t\t}\n\n\t\t\tself.panel.moveRel(self.getEl(), settings.popoverAlign || (self.isRtl() ? ['bc-tr', 'bc-tc'] : ['bc-tl', 'bc-tc']));\n\t\t},\n\n\t\t/**\n\t\t * Hides the panel for the button.\n\t\t *\n\t\t * @method hidePanel\n\t\t */\n\t\thidePanel: function() {\n\t\t\tvar self = this;\n\n\t\t\tif (self.panel) {\n\t\t\t\tself.panel.hide();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Called after the control has been rendered.\n\t\t *\n\t\t * @method postRender\n\t\t */\n\t\tpostRender: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.aria('haspopup', true);\n\n\t\t\tself.on('click', function(e) {\n\t\t\t\tif (e.control === self) {\n\t\t\t\t\tif (self.panel && self.panel.visible()) {\n\t\t\t\t\t\tself.hidePanel();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.showPanel();\n\t\t\t\t\t\tself.panel.focus(!!e.aria);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn self._super();\n\t\t},\n\n\t\tremove: function() {\n\t\t\tif (this.panel) {\n\t\t\t\tthis.panel.remove();\n\t\t\t\tthis.panel = null;\n\t\t\t}\n\n\t\t\treturn this._super();\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/ColorButton.js\n\n/**\n * ColorButton.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class creates a color button control. This is a split button in which the main\n * button has a visual representation of the currently selected color. When clicked\n * the caret button displays a color picker, allowing the user to select a new color.\n *\n * @-x-less ColorButton.less\n * @class tinymce.ui.ColorButton\n * @extends tinymce.ui.PanelButton\n */\ndefine(\"tinymce/ui/ColorButton\", [\n\t\"tinymce/ui/PanelButton\",\n\t\"tinymce/dom/DOMUtils\"\n], function(PanelButton, DomUtils) {\n\t\"use strict\";\n\n\tvar DOM = DomUtils.DOM;\n\n\treturn PanelButton.extend({\n\t\t/**\n\t\t * Constructs a new ColorButton instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tthis._super(settings);\n\t\t\tthis.classes.add('colorbutton');\n\t\t},\n\n\t\t/**\n\t\t * Getter/setter for the current color.\n\t\t *\n\t\t * @method color\n\t\t * @param {String} [color] Color to set.\n\t\t * @return {String|tinymce.ui.ColorButton} Current color or current instance.\n\t\t */\n\t\tcolor: function(color) {\n\t\t\tif (color) {\n\t\t\t\tthis._color = color;\n\t\t\t\tthis.getEl('preview').style.backgroundColor = color;\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\treturn this._color;\n\t\t},\n\n\t\t/**\n\t\t * Resets the current color.\n\t\t *\n\t\t * @method resetColor\n\t\t * @return {tinymce.ui.ColorButton} Current instance.\n\t\t */\n\t\tresetColor: function() {\n\t\t\tthis._color = null;\n\t\t\tthis.getEl('preview').style.backgroundColor = null;\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, id = self._id, prefix = self.classPrefix, text = self.state.get('text');\n\t\t\tvar icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : '';\n\t\t\tvar image = self.settings.image ? ' style=\"background-image: url(\\'' + self.settings.image + '\\')\"' : '',\n\t\t\t\ttextHtml = '';\n\n\t\t\tif (text) {\n\t\t\t\tself.classes.add('btn-has-text');\n\t\t\t\ttextHtml = '' + self.encode(text) + '';\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t'
    ' +\n\t\t\t\t\t'' +\n\t\t\t\t\t'' +\n\t\t\t\t'
    '\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Called after the control has been rendered.\n\t\t *\n\t\t * @method postRender\n\t\t */\n\t\tpostRender: function() {\n\t\t\tvar self = this, onClickHandler = self.settings.onclick;\n\n\t\t\tself.on('click', function(e) {\n\t\t\t\tif (e.aria && e.aria.key == 'down') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (e.control == self && !DOM.getParent(e.target, '.' + self.classPrefix + 'open')) {\n\t\t\t\t\te.stopImmediatePropagation();\n\t\t\t\t\tonClickHandler.call(self, e);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tdelete self.settings.onclick;\n\n\t\t\treturn self._super();\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/util/Color.js\n\n/**\n * Color.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class lets you parse/serialize colors and convert rgb/hsb.\n *\n * @class tinymce.util.Color\n * @example\n * var white = new tinymce.util.Color({r: 255, g: 255, b: 255});\n * var red = new tinymce.util.Color('#FF0000');\n *\n * console.log(white.toHex(), red.toHsv());\n */\ndefine(\"tinymce/util/Color\", [], function() {\n\tvar min = Math.min, max = Math.max, round = Math.round;\n\n\t/**\n\t * Constructs a new color instance.\n\t *\n\t * @constructor\n\t * @method Color\n\t * @param {String} value Optional initial value to parse.\n\t */\n\tfunction Color(value) {\n\t\tvar self = this, r = 0, g = 0, b = 0;\n\n\t\tfunction rgb2hsv(r, g, b) {\n\t\t\tvar h, s, v, d, minRGB, maxRGB;\n\n\t\t\th = 0;\n\t\t\ts = 0;\n\t\t\tv = 0;\n\t\t\tr = r / 255;\n\t\t\tg = g / 255;\n\t\t\tb = b / 255;\n\n\t\t\tminRGB = min(r, min(g, b));\n\t\t\tmaxRGB = max(r, max(g, b));\n\n\t\t\tif (minRGB == maxRGB) {\n\t\t\t\tv = minRGB;\n\n\t\t\t\treturn {\n\t\t\t\t\th: 0,\n\t\t\t\t\ts: 0,\n\t\t\t\t\tv: v * 100\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t/*eslint no-nested-ternary:0 */\n\t\t\td = (r == minRGB) ? g - b : ((b == minRGB) ? r - g : b - r);\n\t\t\th = (r == minRGB) ? 3 : ((b == minRGB) ? 1 : 5);\n\t\t\th = 60 * (h - d / (maxRGB - minRGB));\n\t\t\ts = (maxRGB - minRGB) / maxRGB;\n\t\t\tv = maxRGB;\n\n\t\t\treturn {\n\t\t\t\th: round(h),\n\t\t\t\ts: round(s * 100),\n\t\t\t\tv: round(v * 100)\n\t\t\t};\n\t\t}\n\n\t\tfunction hsvToRgb(hue, saturation, brightness) {\n\t\t\tvar side, chroma, x, match;\n\n\t\t\thue = (parseInt(hue, 10) || 0) % 360;\n\t\t\tsaturation = parseInt(saturation, 10) / 100;\n\t\t\tbrightness = parseInt(brightness, 10) / 100;\n\t\t\tsaturation = max(0, min(saturation, 1));\n\t\t\tbrightness = max(0, min(brightness, 1));\n\n\t\t\tif (saturation === 0) {\n\t\t\t\tr = g = b = round(255 * brightness);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tside = hue / 60;\n\t\t\tchroma = brightness * saturation;\n\t\t\tx = chroma * (1 - Math.abs(side % 2 - 1));\n\t\t\tmatch = brightness - chroma;\n\n\t\t\tswitch (Math.floor(side)) {\n\t\t\t\tcase 0:\n\t\t\t\t\tr = chroma;\n\t\t\t\t\tg = x;\n\t\t\t\t\tb = 0;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 1:\n\t\t\t\t\tr = x;\n\t\t\t\t\tg = chroma;\n\t\t\t\t\tb = 0;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 2:\n\t\t\t\t\tr = 0;\n\t\t\t\t\tg = chroma;\n\t\t\t\t\tb = x;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 3:\n\t\t\t\t\tr = 0;\n\t\t\t\t\tg = x;\n\t\t\t\t\tb = chroma;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 4:\n\t\t\t\t\tr = x;\n\t\t\t\t\tg = 0;\n\t\t\t\t\tb = chroma;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 5:\n\t\t\t\t\tr = chroma;\n\t\t\t\t\tg = 0;\n\t\t\t\t\tb = x;\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tr = g = b = 0;\n\t\t\t}\n\n\t\t\tr = round(255 * (r + match));\n\t\t\tg = round(255 * (g + match));\n\t\t\tb = round(255 * (b + match));\n\t\t}\n\n\t\t/**\n\t\t * Returns the hex string of the current color. For example: #ff00ff\n\t\t *\n\t\t * @method toHex\n\t\t * @return {String} Hex string of current color.\n\t\t */\n\t\tfunction toHex() {\n\t\t\tfunction hex(val) {\n\t\t\t\tval = parseInt(val, 10).toString(16);\n\n\t\t\t\treturn val.length > 1 ? val : '0' + val;\n\t\t\t}\n\n\t\t\treturn '#' + hex(r) + hex(g) + hex(b);\n\t\t}\n\n\t\t/**\n\t\t * Returns the r, g, b values of the color. Each channel has a range from 0-255.\n\t\t *\n\t\t * @method toRgb\n\t\t * @return {Object} Object with r, g, b fields.\n\t\t */\n\t\tfunction toRgb() {\n\t\t\treturn {\n\t\t\t\tr: r,\n\t\t\t\tg: g,\n\t\t\t\tb: b\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Returns the h, s, v values of the color. Ranges: h=0-360, s=0-100, v=0-100.\n\t\t *\n\t\t * @method toHsv\n\t\t * @return {Object} Object with h, s, v fields.\n\t\t */\n\t\tfunction toHsv() {\n\t\t\treturn rgb2hsv(r, g, b);\n\t\t}\n\n\t\t/**\n\t\t * Parses the specified value and populates the color instance.\n\t\t *\n\t\t * Supported format examples:\n\t\t * * rbg(255,0,0)\n\t\t * * #ff0000\n\t\t * * #fff\n\t\t * * {r: 255, g: 0, b: 0}\n\t\t * * {h: 360, s: 100, v: 100}\n\t\t *\n\t\t * @method parse\n\t\t * @param {Object/String} value Color value to parse.\n\t\t * @return {tinymce.util.Color} Current color instance.\n\t\t */\n\t\tfunction parse(value) {\n\t\t\tvar matches;\n\n\t\t\tif (typeof value == 'object') {\n\t\t\t\tif (\"r\" in value) {\n\t\t\t\t\tr = value.r;\n\t\t\t\t\tg = value.g;\n\t\t\t\t\tb = value.b;\n\t\t\t\t} else if (\"v\" in value) {\n\t\t\t\t\thsvToRgb(value.h, value.s, value.v);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ((matches = /rgb\\s*\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)[^\\)]*\\)/gi.exec(value))) {\n\t\t\t\t\tr = parseInt(matches[1], 10);\n\t\t\t\t\tg = parseInt(matches[2], 10);\n\t\t\t\t\tb = parseInt(matches[3], 10);\n\t\t\t\t} else if ((matches = /#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(value))) {\n\t\t\t\t\tr = parseInt(matches[1], 16);\n\t\t\t\t\tg = parseInt(matches[2], 16);\n\t\t\t\t\tb = parseInt(matches[3], 16);\n\t\t\t\t} else if ((matches = /#([0-F])([0-F])([0-F])/gi.exec(value))) {\n\t\t\t\t\tr = parseInt(matches[1] + matches[1], 16);\n\t\t\t\t\tg = parseInt(matches[2] + matches[2], 16);\n\t\t\t\t\tb = parseInt(matches[3] + matches[3], 16);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tr = r < 0 ? 0 : (r > 255 ? 255 : r);\n\t\t\tg = g < 0 ? 0 : (g > 255 ? 255 : g);\n\t\t\tb = b < 0 ? 0 : (b > 255 ? 255 : b);\n\n\t\t\treturn self;\n\t\t}\n\n\t\tif (value) {\n\t\t\tparse(value);\n\t\t}\n\n\t\tself.toRgb = toRgb;\n\t\tself.toHsv = toHsv;\n\t\tself.toHex = toHex;\n\t\tself.parse = parse;\n\t}\n\n\treturn Color;\n});\n\n// Included from: js/tinymce/classes/ui/ColorPicker.js\n\n/**\n * ColorPicker.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Color picker widget lets you select colors.\n *\n * @-x-less ColorPicker.less\n * @class tinymce.ui.ColorPicker\n * @extends tinymce.ui.Widget\n */\ndefine(\"tinymce/ui/ColorPicker\", [\n\t\"tinymce/ui/Widget\",\n\t\"tinymce/ui/DragHelper\",\n\t\"tinymce/ui/DomUtils\",\n\t\"tinymce/util/Color\"\n], function(Widget, DragHelper, DomUtils, Color) {\n\t\"use strict\";\n\n\treturn Widget.extend({\n\t\tDefaults: {\n\t\t\tclasses: \"widget colorpicker\"\n\t\t},\n\n\t\t/**\n\t\t * Constructs a new colorpicker instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t * @setting {String} color Initial color value.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tthis._super(settings);\n\t\t},\n\n\t\tpostRender: function() {\n\t\t\tvar self = this, color = self.color(), hsv, hueRootElm, huePointElm, svRootElm, svPointElm;\n\n\t\t\thueRootElm = self.getEl('h');\n\t\t\thuePointElm = self.getEl('hp');\n\t\t\tsvRootElm = self.getEl('sv');\n\t\t\tsvPointElm = self.getEl('svp');\n\n\t\t\tfunction getPos(elm, event) {\n\t\t\t\tvar pos = DomUtils.getPos(elm), x, y;\n\n\t\t\t\tx = event.pageX - pos.x;\n\t\t\t\ty = event.pageY - pos.y;\n\n\t\t\t\tx = Math.max(0, Math.min(x / elm.clientWidth, 1));\n\t\t\t\ty = Math.max(0, Math.min(y / elm.clientHeight, 1));\n\n\t\t\t\treturn {\n\t\t\t\t\tx: x,\n\t\t\t\t\ty: y\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tfunction updateColor(hsv, hueUpdate) {\n\t\t\t\tvar hue = (360 - hsv.h) / 360;\n\n\t\t\t\tDomUtils.css(huePointElm, {\n\t\t\t\t\ttop: (hue * 100) + '%'\n\t\t\t\t});\n\n\t\t\t\tif (!hueUpdate) {\n\t\t\t\t\tDomUtils.css(svPointElm, {\n\t\t\t\t\t\tleft: hsv.s + '%',\n\t\t\t\t\t\ttop: (100 - hsv.v) + '%'\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tsvRootElm.style.background = new Color({s: 100, v: 100, h: hsv.h}).toHex();\n\t\t\t\tself.color().parse({s: hsv.s, v: hsv.v, h: hsv.h});\n\t\t\t}\n\n\t\t\tfunction updateSaturationAndValue(e) {\n\t\t\t\tvar pos;\n\n\t\t\t\tpos = getPos(svRootElm, e);\n\t\t\t\thsv.s = pos.x * 100;\n\t\t\t\thsv.v = (1 - pos.y) * 100;\n\n\t\t\t\tupdateColor(hsv);\n\t\t\t\tself.fire('change');\n\t\t\t}\n\n\t\t\tfunction updateHue(e) {\n\t\t\t\tvar pos;\n\n\t\t\t\tpos = getPos(hueRootElm, e);\n\t\t\t\thsv = color.toHsv();\n\t\t\t\thsv.h = (1 - pos.y) * 360;\n\t\t\t\tupdateColor(hsv, true);\n\t\t\t\tself.fire('change');\n\t\t\t}\n\n\t\t\tself._repaint = function() {\n\t\t\t\thsv = color.toHsv();\n\t\t\t\tupdateColor(hsv);\n\t\t\t};\n\n\t\t\tself._super();\n\n\t\t\tself._svdraghelper = new DragHelper(self._id + '-sv', {\n\t\t\t\tstart: updateSaturationAndValue,\n\t\t\t\tdrag: updateSaturationAndValue\n\t\t\t});\n\n\t\t\tself._hdraghelper = new DragHelper(self._id + '-h', {\n\t\t\t\tstart: updateHue,\n\t\t\t\tdrag: updateHue\n\t\t\t});\n\n\t\t\tself._repaint();\n\t\t},\n\n\t\trgb: function() {\n\t\t\treturn this.color().toRgb();\n\t\t},\n\n\t\tvalue: function(value) {\n\t\t\tvar self = this;\n\n\t\t\tif (arguments.length) {\n\t\t\t\tself.color().parse(value);\n\n\t\t\t\tif (self._rendered) {\n\t\t\t\t\tself._repaint();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn self.color().toHex();\n\t\t\t}\n\t\t},\n\n\t\tcolor: function() {\n\t\t\tif (!this._color) {\n\t\t\t\tthis._color = new Color();\n\t\t\t}\n\n\t\t\treturn this._color;\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, id = self._id, prefix = self.classPrefix, hueHtml;\n\t\t\tvar stops = '#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000';\n\n\t\t\tfunction getOldIeFallbackHtml() {\n\t\t\t\tvar i, l, html = '', gradientPrefix, stopsList;\n\n\t\t\t\tgradientPrefix = 'filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=';\n\t\t\t\tstopsList = stops.split(',');\n\t\t\t\tfor (i = 0, l = stopsList.length - 1; i < l; i++) {\n\t\t\t\t\thtml += (\n\t\t\t\t\t\t'
    '\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn html;\n\t\t\t}\n\n\t\t\tvar gradientCssText = (\n\t\t\t\t'background: -ms-linear-gradient(top,' + stops + ');' +\n\t\t\t\t'background: linear-gradient(to bottom,' + stops + ');'\n\t\t\t);\n\n\t\t\thueHtml = (\n\t\t\t\t'
    ' +\n\t\t\t\t\tgetOldIeFallbackHtml() +\n\t\t\t\t\t'
    ' +\n\t\t\t\t'
    '\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t'
    ' +\n\t\t\t\t\t'
    ' +\n\t\t\t\t\t\t'
    ' +\n\t\t\t\t\t\t\t'
    ' +\n\t\t\t\t\t\t\t\t'
    ' +\n\t\t\t\t\t\t\t\t\t'
    ' +\n\t\t\t\t\t\t\t\t'
    ' +\n\t\t\t\t\t\t\t'
    ' +\n\t\t\t\t\t\t'
    ' +\n\t\t\t\t\t'
    ' +\n\t\t\t\t\thueHtml +\n\t\t\t\t'
    '\n\t\t\t);\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/Path.js\n\n/**\n * Path.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Creates a new path control.\n *\n * @-x-less Path.less\n * @class tinymce.ui.Path\n * @extends tinymce.ui.Widget\n */\ndefine(\"tinymce/ui/Path\", [\n\t\"tinymce/ui/Widget\"\n], function(Widget) {\n\t\"use strict\";\n\n\treturn Widget.extend({\n\t\t/**\n\t\t * Constructs a instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t * @setting {String} delimiter Delimiter to display between row in path.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this;\n\n\t\t\tif (!settings.delimiter) {\n\t\t\t\tsettings.delimiter = '\\u00BB';\n\t\t\t}\n\n\t\t\tself._super(settings);\n\t\t\tself.classes.add('path');\n\t\t\tself.canFocus = true;\n\n\t\t\tself.on('click', function(e) {\n\t\t\t\tvar index, target = e.target;\n\n\t\t\t\tif ((index = target.getAttribute('data-index'))) {\n\t\t\t\t\tself.fire('select', {value: self.row()[index], index: index});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tself.row(self.settings.row);\n\t\t},\n\n\t\t/**\n\t\t * Focuses the current control.\n\t\t *\n\t\t * @method focus\n\t\t * @return {tinymce.ui.Control} Current control instance.\n\t\t */\n\t\tfocus: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.getEl().firstChild.focus();\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Sets/gets the data to be used for the path.\n\t\t *\n\t\t * @method row\n\t\t * @param {Array} row Array with row name is rendered to path.\n\t\t */\n\t\trow: function(row) {\n\t\t\tif (!arguments.length) {\n\t\t\t\treturn this.state.get('row');\n\t\t\t}\n\n\t\t\tthis.state.set('row', row);\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this;\n\n\t\t\treturn (\n\t\t\t\t'
    ' +\n\t\t\t\t\tself._getDataPathHtml(self.state.get('row')) +\n\t\t\t\t'
    '\n\t\t\t);\n\t\t},\n\n\t\tbindStates: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.state.on('change:row', function(e) {\n\t\t\t\tself.innerHtml(self._getDataPathHtml(e.value));\n\t\t\t});\n\n\t\t\treturn self._super();\n\t\t},\n\n\t\t_getDataPathHtml: function(data) {\n\t\t\tvar self = this, parts = data || [], i, l, html = '', prefix = self.classPrefix;\n\n\t\t\tfor (i = 0, l = parts.length; i < l; i++) {\n\t\t\t\thtml += (\n\t\t\t\t\t(i > 0 ? '
    ' + self.settings.delimiter + '
    ' : '') +\n\t\t\t\t\t'
    ' + parts[i].name + '
    '\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (!html) {\n\t\t\t\thtml = '
    \\u00a0
    ';\n\t\t\t}\n\n\t\t\treturn html;\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/ElementPath.js\n\n/**\n * ElementPath.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This control creates an path for the current selections parent elements in TinyMCE.\n *\n * @class tinymce.ui.ElementPath\n * @extends tinymce.ui.Path\n */\ndefine(\"tinymce/ui/ElementPath\", [\n\t\"tinymce/ui/Path\"\n], function(Path) {\n\treturn Path.extend({\n\t\t/**\n\t\t * Post render method. Called after the control has been rendered to the target.\n\t\t *\n\t\t * @method postRender\n\t\t * @return {tinymce.ui.ElementPath} Current combobox instance.\n\t\t */\n\t\tpostRender: function() {\n\t\t\tvar self = this, editor = self.settings.editor;\n\n\t\t\tfunction isHidden(elm) {\n\t\t\t\tif (elm.nodeType === 1) {\n\t\t\t\t\tif (elm.nodeName == \"BR\" || !!elm.getAttribute('data-mce-bogus')) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (elm.getAttribute('data-mce-type') === 'bookmark') {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (editor.settings.elementpath !== false) {\n\t\t\t\tself.on('select', function(e) {\n\t\t\t\t\teditor.focus();\n\t\t\t\t\teditor.selection.select(this.row()[e.index].element);\n\t\t\t\t\teditor.nodeChanged();\n\t\t\t\t});\n\n\t\t\t\teditor.on('nodeChange', function(e) {\n\t\t\t\t\tvar outParents = [], parents = e.parents, i = parents.length;\n\n\t\t\t\t\twhile (i--) {\n\t\t\t\t\t\tif (parents[i].nodeType == 1 && !isHidden(parents[i])) {\n\t\t\t\t\t\t\tvar args = editor.fire('ResolveName', {\n\t\t\t\t\t\t\t\tname: parents[i].nodeName.toLowerCase(),\n\t\t\t\t\t\t\t\ttarget: parents[i]\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (!args.isDefaultPrevented()) {\n\t\t\t\t\t\t\t\toutParents.push({name: args.name, element: parents[i]});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (args.isPropagationStopped()) {\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tself.row(outParents);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn self._super();\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/FormItem.js\n\n/**\n * FormItem.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class is a container created by the form element with\n * a label and control item.\n *\n * @class tinymce.ui.FormItem\n * @extends tinymce.ui.Container\n * @setting {String} label Label to display for the form item.\n */\ndefine(\"tinymce/ui/FormItem\", [\n\t\"tinymce/ui/Container\"\n], function(Container) {\n\t\"use strict\";\n\n\treturn Container.extend({\n\t\tDefaults: {\n\t\t\tlayout: 'flex',\n\t\t\talign: 'center',\n\t\t\tdefaults: {\n\t\t\t\tflex: 1\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, layout = self._layout, prefix = self.classPrefix;\n\n\t\t\tself.classes.add('formitem');\n\t\t\tlayout.preRender(self);\n\n\t\t\treturn (\n\t\t\t\t'
    ' +\n\t\t\t\t\t(self.settings.title ? ('
    ' +\n\t\t\t\t\t\tself.settings.title + '
    ') : '') +\n\t\t\t\t\t'
    ' +\n\t\t\t\t\t\t(self.settings.html || '') + layout.renderHtml(self) +\n\t\t\t\t\t'
    ' +\n\t\t\t\t'
    '\n\t\t\t);\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/Form.js\n\n/**\n * Form.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class creates a form container. A form container has the ability\n * to automatically wrap items in tinymce.ui.FormItem instances.\n *\n * Each FormItem instance is a container for the label and the item.\n *\n * @example\n * tinymce.ui.Factory.create({\n * type: 'form',\n * items: [\n * {type: 'textbox', label: 'My text box'}\n * ]\n * }).renderTo(document.body);\n *\n * @class tinymce.ui.Form\n * @extends tinymce.ui.Container\n */\ndefine(\"tinymce/ui/Form\", [\n\t\"tinymce/ui/Container\",\n\t\"tinymce/ui/FormItem\",\n\t\"tinymce/util/Tools\"\n], function(Container, FormItem, Tools) {\n\t\"use strict\";\n\n\treturn Container.extend({\n\t\tDefaults: {\n\t\t\tcontainerCls: 'form',\n\t\t\tlayout: 'flex',\n\t\t\tdirection: 'column',\n\t\t\talign: 'stretch',\n\t\t\tflex: 1,\n\t\t\tpadding: 20,\n\t\t\tlabelGap: 30,\n\t\t\tspacing: 10,\n\t\t\tcallbacks: {\n\t\t\t\tsubmit: function() {\n\t\t\t\t\tthis.submit();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * This method gets invoked before the control is rendered.\n\t\t *\n\t\t * @method preRender\n\t\t */\n\t\tpreRender: function() {\n\t\t\tvar self = this, items = self.items();\n\n\t\t\tif (!self.settings.formItemDefaults) {\n\t\t\t\tself.settings.formItemDefaults = {\n\t\t\t\t\tlayout: 'flex',\n\t\t\t\t\tautoResize: \"overflow\",\n\t\t\t\t\tdefaults: {flex: 1}\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Wrap any labeled items in FormItems\n\t\t\titems.each(function(ctrl) {\n\t\t\t\tvar formItem, label = ctrl.settings.label;\n\n\t\t\t\tif (label) {\n\t\t\t\t\tformItem = new FormItem(Tools.extend({\n\t\t\t\t\t\titems: {\n\t\t\t\t\t\t\ttype: 'label',\n\t\t\t\t\t\t\tid: ctrl._id + '-l',\n\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\tflex: 0,\n\t\t\t\t\t\t\tforId: ctrl._id,\n\t\t\t\t\t\t\tdisabled: ctrl.disabled()\n\t\t\t\t\t\t}\n\t\t\t\t\t}, self.settings.formItemDefaults));\n\n\t\t\t\t\tformItem.type = 'formitem';\n\t\t\t\t\tctrl.aria('labelledby', ctrl._id + '-l');\n\n\t\t\t\t\tif (typeof ctrl.settings.flex == \"undefined\") {\n\t\t\t\t\t\tctrl.settings.flex = 1;\n\t\t\t\t\t}\n\n\t\t\t\t\tself.replace(ctrl, formItem);\n\t\t\t\t\tformItem.add(ctrl);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Fires a submit event with the serialized form.\n\t\t *\n\t\t * @method submit\n\t\t * @return {Object} Event arguments object.\n\t\t */\n\t\tsubmit: function() {\n\t\t\treturn this.fire('submit', {data: this.toJSON()});\n\t\t},\n\n\t\t/**\n\t\t * Post render method. Called after the control has been rendered to the target.\n\t\t *\n\t\t * @method postRender\n\t\t * @return {tinymce.ui.ComboBox} Current combobox instance.\n\t\t */\n\t\tpostRender: function() {\n\t\t\tvar self = this;\n\n\t\t\tself._super();\n\t\t\tself.fromJSON(self.settings.data);\n\t\t},\n\n\t\tbindStates: function() {\n\t\t\tvar self = this;\n\n\t\t\tself._super();\n\n\t\t\tfunction recalcLabels() {\n\t\t\t\tvar maxLabelWidth = 0, labels = [], i, labelGap, items;\n\n\t\t\t\tif (self.settings.labelGapCalc === false) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (self.settings.labelGapCalc == \"children\") {\n\t\t\t\t\titems = self.find('formitem');\n\t\t\t\t} else {\n\t\t\t\t\titems = self.items();\n\t\t\t\t}\n\n\t\t\t\titems.filter('formitem').each(function(item) {\n\t\t\t\t\tvar labelCtrl = item.items()[0], labelWidth = labelCtrl.getEl().clientWidth;\n\n\t\t\t\t\tmaxLabelWidth = labelWidth > maxLabelWidth ? labelWidth : maxLabelWidth;\n\t\t\t\t\tlabels.push(labelCtrl);\n\t\t\t\t});\n\n\t\t\t\tlabelGap = self.settings.labelGap || 0;\n\n\t\t\t\ti = labels.length;\n\t\t\t\twhile (i--) {\n\t\t\t\t\tlabels[i].settings.minWidth = maxLabelWidth + labelGap;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tself.on('show', recalcLabels);\n\t\t\trecalcLabels();\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/FieldSet.js\n\n/**\n * FieldSet.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class creates fieldset containers.\n *\n * @-x-less FieldSet.less\n * @class tinymce.ui.FieldSet\n * @extends tinymce.ui.Form\n */\ndefine(\"tinymce/ui/FieldSet\", [\n\t\"tinymce/ui/Form\"\n], function(Form) {\n\t\"use strict\";\n\n\treturn Form.extend({\n\t\tDefaults: {\n\t\t\tcontainerCls: 'fieldset',\n\t\t\tlayout: 'flex',\n\t\t\tdirection: 'column',\n\t\t\talign: 'stretch',\n\t\t\tflex: 1,\n\t\t\tpadding: \"25 15 5 15\",\n\t\t\tlabelGap: 30,\n\t\t\tspacing: 10,\n\t\t\tborder: 1\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, layout = self._layout, prefix = self.classPrefix;\n\n\t\t\tself.preRender();\n\t\t\tlayout.preRender(self);\n\n\t\t\treturn (\n\t\t\t\t'
    ' +\n\t\t\t\t\t(self.settings.title ? ('' +\n\t\t\t\t\t\tself.settings.title + '') : '') +\n\t\t\t\t\t'
    ' +\n\t\t\t\t\t\t(self.settings.html || '') + layout.renderHtml(self) +\n\t\t\t\t\t'
    ' +\n\t\t\t\t'
    '\n\t\t\t);\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/content/LinkTargets.js\n\n/**\n * LinkTargets.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2016 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This module is enables you to get anything that you can link to in a element.\n *\n * @private\n * @class tinymce.content.LinkTargets\n */\ndefine('tinymce/content/LinkTargets', [\n\t'tinymce/dom/DOMUtils',\n\t'tinymce/util/Fun',\n\t'tinymce/util/Arr',\n\t'tinymce/util/Uuid',\n\t'tinymce/util/Tools',\n\t'tinymce/dom/NodeType'\n], function(\n\tDOMUtils,\n\tFun,\n\tArr,\n\tUuid,\n\tTools,\n\tNodeType\n) {\n\tvar trim = Tools.trim;\n\n\tvar create = function (type, title, url, level, attach) {\n\t\treturn {\n\t\t\ttype: type,\n\t\t\ttitle: title,\n\t\t\turl: url,\n\t\t\tlevel: level,\n\t\t\tattach: attach\n\t\t};\n\t};\n\n\tvar isChildOfContentEditableTrue = function (node) {\n\t\twhile ((node = node.parentNode)) {\n\t\t\tvar value = node.contentEditable;\n\t\t\tif (value && value !== 'inherit') {\n\t\t\t\treturn NodeType.isContentEditableTrue(node);\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t};\n\n\tvar select = function (selector, root) {\n\t\treturn DOMUtils.DOM.select(selector, root);\n\t};\n\n\tvar getElementText = function (elm) {\n\t\treturn elm.innerText || elm.textContent;\n\t};\n\n\tvar getOrGenerateId = function (elm) {\n\t\treturn elm.id ? elm.id : Uuid.uuid('h');\n\t};\n\n\tvar isAnchor = function (elm) {\n\t\treturn elm && elm.nodeName === 'A' && (elm.id || elm.name);\n\t};\n\n\tvar isValidAnchor = function (elm) {\n\t\treturn isAnchor(elm) && isEditable(elm);\n\t};\n\n\tvar isHeader = function (elm) {\n\t\treturn elm && /^(H[1-6])$/.test(elm.nodeName);\n\t};\n\n\tvar isEditable = function (elm) {\n\t\treturn isChildOfContentEditableTrue(elm) && !NodeType.isContentEditableFalse(elm);\n\t};\n\n\tvar isValidHeader = function (elm) {\n\t\treturn isHeader(elm) && isEditable(elm);\n\t};\n\n\tvar getLevel = function (elm) {\n\t\treturn isHeader(elm) ? parseInt(elm.nodeName.substr(1), 10) : 0;\n\t};\n\n\tvar headerTarget = function (elm) {\n\t\tvar headerId = getOrGenerateId(elm);\n\n\t\tvar attach = function () {\n\t\t\telm.id = headerId;\n\t\t};\n\n\t\treturn create('header', getElementText(elm), '#' + headerId, getLevel(elm), attach);\n\t};\n\n\tvar anchorTarget = function (elm) {\n\t\tvar anchorId = elm.id || elm.name;\n\t\tvar anchorText = getElementText(elm);\n\n\t\treturn create('anchor', anchorText ? anchorText : '#' + anchorId, '#' + anchorId, 0, Fun.noop);\n\t};\n\n\tvar getHeaderTargets = function (elms) {\n\t\treturn Arr.map(Arr.filter(elms, isValidHeader), headerTarget);\n\t};\n\n\tvar getAnchorTargets = function (elms) {\n\t\treturn Arr.map(Arr.filter(elms, isValidAnchor), anchorTarget);\n\t};\n\n\tvar getTargetElements = function (elm) {\n\t\tvar elms = select('h1,h2,h3,h4,h5,h6,a:not([href])', elm);\n\t\treturn elms;\n\t};\n\n\tvar hasTitle = function (target) {\n\t\treturn trim(target.title).length > 0;\n\t};\n\n\tvar find = function (elm) {\n\t\tvar elms = getTargetElements(elm);\n\t\treturn Arr.filter(getHeaderTargets(elms).concat(getAnchorTargets(elms)), hasTitle);\n\t};\n\n\treturn {\n\t\tfind: find\n\t};\n});\n\n// Included from: js/tinymce/classes/ui/FilePicker.js\n\n/**\n * FilePicker.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/*global tinymce:true */\n\n/**\n * This class creates a file picker control.\n *\n * @class tinymce.ui.FilePicker\n * @extends tinymce.ui.ComboBox\n */\ndefine(\"tinymce/ui/FilePicker\", [\n\t\"tinymce/ui/ComboBox\",\n\t\"tinymce/util/Tools\",\n\t\"tinymce/util/Arr\",\n\t\"tinymce/util/Fun\",\n\t\"tinymce/util/VK\",\n\t\"tinymce/content/LinkTargets\"\n], function(ComboBox, Tools, Arr, Fun, VK, LinkTargets) {\n\t\"use strict\";\n\n\tvar history = {};\n\tvar HISTORY_LENGTH = 5;\n\n\tvar toMenuItem = function (target) {\n\t\treturn {\n\t\t\ttitle: target.title,\n\t\t\tvalue: {\n\t\t\t\ttitle: {raw: target.title},\n\t\t\t\turl: target.url,\n\t\t\t\tattach: target.attach\n\t\t\t}\n\t\t};\n\t};\n\n\tvar toMenuItems = function (targets) {\n\t\treturn Tools.map(targets, toMenuItem);\n\t};\n\n\tvar staticMenuItem = function (title, url) {\n\t\treturn {\n\t\t\ttitle: title,\n\t\t\tvalue: {\n\t\t\t\ttitle: title,\n\t\t\t\turl: url,\n\t\t\t\tattach: Fun.noop\n\t\t\t}\n\t\t};\n\t};\n\n\tvar isUniqueUrl = function (url, targets) {\n\t\tvar foundTarget = Arr.find(targets, function (target) {\n\t\t\treturn target.url === url;\n\t\t});\n\n\t\treturn !foundTarget;\n\t};\n\n\tvar getSetting = function (editorSettings, name, defaultValue) {\n\t\tvar value = name in editorSettings ? editorSettings[name] : defaultValue;\n\t\treturn value === false ? null : value;\n\t};\n\n\tvar createMenuItems = function (term, targets, fileType, editorSettings) {\n\t\tvar separator = {title: '-'};\n\n\t\tvar fromHistoryMenuItems = function (history) {\n\t\t\tvar uniqueHistory = Arr.filter(history[fileType], function (url) {\n\t\t\t\treturn isUniqueUrl(url, targets);\n\t\t\t});\n\n\t\t\treturn Tools.map(uniqueHistory, function (url) {\n\t\t\t\treturn {\n\t\t\t\t\ttitle: url,\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\ttitle: url,\n\t\t\t\t\t\turl: url,\n\t\t\t\t\t\tattach: Fun.noop\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t});\n\t\t};\n\n\t\tvar fromMenuItems = function (type) {\n\t\t\tvar filteredTargets = Arr.filter(targets, function (target) {\n\t\t\t\treturn target.type == type;\n\t\t\t});\n\n\t\t\treturn toMenuItems(filteredTargets);\n\t\t};\n\n\t\tvar anchorMenuItems = function () {\n\t\t\tvar anchorMenuItems = fromMenuItems('anchor');\n\t\t\tvar topAnchor = getSetting(editorSettings, 'anchor_top', '#top');\n\t\t\tvar bottomAchor = getSetting(editorSettings, 'anchor_bottom', '#bottom');\n\n\t\t\tif (topAnchor !== null) {\n\t\t\t\tanchorMenuItems.unshift(staticMenuItem('', topAnchor));\n\t\t\t}\n\n\t\t\tif (bottomAchor !== null) {\n\t\t\t\tanchorMenuItems.push(staticMenuItem('', bottomAchor));\n\t\t\t}\n\n\t\t\treturn anchorMenuItems;\n\t\t};\n\n\t\tvar join = function (items) {\n\t\t\treturn Arr.reduce(items, function (a, b) {\n\t\t\t\tvar bothEmpty = a.length === 0 || b.length === 0;\n\t\t\t\treturn bothEmpty ? a.concat(b) : a.concat(separator, b);\n\t\t\t}, []);\n\t\t};\n\n\t\tif (editorSettings.typeahead_urls === false) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn fileType === 'file' ? join([\n\t\t\tfilterByQuery(term, fromHistoryMenuItems(history)),\n\t\t\tfilterByQuery(term, fromMenuItems('header')),\n\t\t\tfilterByQuery(term, anchorMenuItems())\n\t\t]) : filterByQuery(term, fromHistoryMenuItems(history));\n\t};\n\n\tvar addToHistory = function (url, fileType) {\n\t\tvar items = history[fileType];\n\n\t\tif (!/^https?/.test(url)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (items) {\n\t\t\tif (Arr.indexOf(items, url) === -1) {\n\t\t\t\thistory[fileType] = items.slice(0, HISTORY_LENGTH).concat(url);\n\t\t\t}\n\t\t} else {\n\t\t\thistory[fileType] = [url];\n\t\t}\n\t};\n\n\tvar filterByQuery = function (term, menuItems) {\n\t\tvar lowerCaseTerm = term.toLowerCase();\n\t\tvar result = Tools.grep(menuItems, function (item) {\n\t\t\treturn item.title.toLowerCase().indexOf(lowerCaseTerm) !== -1;\n\t\t});\n\n\t\treturn result.length === 1 && result[0].title === term ? [] : result;\n\t};\n\n\tvar getTitle = function (linkDetails) {\n\t\tvar title = linkDetails.title;\n\t\treturn title.raw ? title.raw : title;\n\t};\n\n\tvar setupAutoCompleteHandler = function (ctrl, editorSettings, bodyElm, fileType) {\n\t\tvar autocomplete = function (term) {\n\t\t\tvar linkTargets = LinkTargets.find(bodyElm);\n\t\t\tvar menuItems = createMenuItems(term, linkTargets, fileType, editorSettings);\n\t\t\tctrl.showAutoComplete(menuItems, term);\n\t\t};\n\n\t\tctrl.on('autocomplete', function () {\n\t\t\tautocomplete(ctrl.value());\n\t\t});\n\n\t\tctrl.on('selectitem', function (e) {\n\t\t\tvar linkDetails = e.value;\n\n\t\t\tctrl.value(linkDetails.url);\n\t\t\tvar title = getTitle(linkDetails);\n\n\t\t\tif (fileType === 'image') {\n\t\t\t\tctrl.fire('change', {meta: {alt: title, attach: linkDetails.attach}});\n\t\t\t} else {\n\t\t\t\tctrl.fire('change', {meta: {text: title, attach: linkDetails.attach}});\n\t\t\t}\n\n\t\t\tctrl.focus();\n\t\t});\n\n\t\tctrl.on('click', function (e) {\n\t\t\tif (ctrl.value().length === 0 && e.target.nodeName === 'INPUT') {\n\t\t\t\tautocomplete('');\n\t\t\t}\n\t\t});\n\n\t\tctrl.on('PostRender', function () {\n\t\t\tctrl.getRoot().on('submit', function (e) {\n\t\t\t\tif (!e.isDefaultPrevented()) {\n\t\t\t\t\taddToHistory(ctrl.value(), fileType);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t};\n\n\tvar statusToUiState = function (result) {\n\t\tvar status = result.status, message = result.message;\n\n\t\tif (status === 'valid') {\n\t\t\treturn {status: 'ok', message: message};\n\t\t} else if (status === 'unknown') {\n\t\t\treturn {status: 'warn', message: message};\n\t\t} else if (status === 'invalid') {\n\t\t\treturn {status: 'warn', message: message};\n\t\t} else {\n\t\t\treturn {status: 'none', message: ''};\n\t\t}\n\t};\n\n\tvar setupLinkValidatorHandler = function (ctrl, editorSettings, fileType) {\n\t\tvar validatorHandler = editorSettings.filepicker_validator_handler;\n\t\tif (validatorHandler) {\n\t\t\tvar validateUrl = function (url) {\n\t\t\t\tif (url.length === 0) {\n\t\t\t\t\tctrl.statusLevel('none');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvalidatorHandler({\n\t\t\t\t\turl: url,\n\t\t\t\t\ttype: fileType\n\t\t\t\t}, function (result) {\n\t\t\t\t\tvar uiState = statusToUiState(result);\n\n\t\t\t\t\tctrl.statusMessage(uiState.message);\n\t\t\t\t\tctrl.statusLevel(uiState.status);\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tctrl.state.on('change:value', function (e) {\n\t\t\t\tvalidateUrl(e.value);\n\t\t\t});\n\t\t}\n\t};\n\n\treturn ComboBox.extend({\n\t\t/**\n\t\t * Constructs a new control instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this, editor = tinymce.activeEditor, editorSettings = editor.settings;\n\t\t\tvar actionCallback, fileBrowserCallback, fileBrowserCallbackTypes;\n\t\t\tvar fileType = settings.filetype;\n\n\t\t\tsettings.spellcheck = false;\n\n\t\t\tfileBrowserCallbackTypes = editorSettings.file_picker_types || editorSettings.file_browser_callback_types;\n\t\t\tif (fileBrowserCallbackTypes) {\n\t\t\t\tfileBrowserCallbackTypes = Tools.makeMap(fileBrowserCallbackTypes, /[, ]/);\n\t\t\t}\n\n\t\t\tif (!fileBrowserCallbackTypes || fileBrowserCallbackTypes[fileType]) {\n\t\t\t\tfileBrowserCallback = editorSettings.file_picker_callback;\n\t\t\t\tif (fileBrowserCallback && (!fileBrowserCallbackTypes || fileBrowserCallbackTypes[fileType])) {\n\t\t\t\t\tactionCallback = function() {\n\t\t\t\t\t\tvar meta = self.fire('beforecall').meta;\n\n\t\t\t\t\t\tmeta = Tools.extend({filetype: fileType}, meta);\n\n\t\t\t\t\t\t// file_picker_callback(callback, currentValue, metaData)\n\t\t\t\t\t\tfileBrowserCallback.call(\n\t\t\t\t\t\t\teditor,\n\t\t\t\t\t\t\tfunction(value, meta) {\n\t\t\t\t\t\t\t\tself.value(value).fire('change', {meta: meta});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tself.value(),\n\t\t\t\t\t\t\tmeta\n\t\t\t\t\t\t);\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\t// Legacy callback: file_picker_callback(id, currentValue, filetype, window)\n\t\t\t\t\tfileBrowserCallback = editorSettings.file_browser_callback;\n\t\t\t\t\tif (fileBrowserCallback && (!fileBrowserCallbackTypes || fileBrowserCallbackTypes[fileType])) {\n\t\t\t\t\t\tactionCallback = function() {\n\t\t\t\t\t\t\tfileBrowserCallback(\n\t\t\t\t\t\t\t\tself.getEl('inp').id,\n\t\t\t\t\t\t\t\tself.value(),\n\t\t\t\t\t\t\t\tfileType,\n\t\t\t\t\t\t\t\twindow\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (actionCallback) {\n\t\t\t\tsettings.icon = 'browse';\n\t\t\t\tsettings.onaction = actionCallback;\n\t\t\t}\n\n\t\t\tself._super(settings);\n\n\t\t\tsetupAutoCompleteHandler(self, editorSettings, editor.getBody(), fileType);\n\t\t\tsetupLinkValidatorHandler(self, editorSettings, fileType);\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/FitLayout.js\n\n/**\n * FitLayout.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This layout manager will resize the control to be the size of it's parent container.\n * In other words width: 100% and height: 100%.\n *\n * @-x-less FitLayout.less\n * @class tinymce.ui.FitLayout\n * @extends tinymce.ui.AbsoluteLayout\n */\ndefine(\"tinymce/ui/FitLayout\", [\n\t\"tinymce/ui/AbsoluteLayout\"\n], function(AbsoluteLayout) {\n\t\"use strict\";\n\n\treturn AbsoluteLayout.extend({\n\t\t/**\n\t\t * Recalculates the positions of the controls in the specified container.\n\t\t *\n\t\t * @method recalc\n\t\t * @param {tinymce.ui.Container} container Container instance to recalc.\n\t\t */\n\t\trecalc: function(container) {\n\t\t\tvar contLayoutRect = container.layoutRect(), paddingBox = container.paddingBox;\n\n\t\t\tcontainer.items().filter(':visible').each(function(ctrl) {\n\t\t\t\tctrl.layoutRect({\n\t\t\t\t\tx: paddingBox.left,\n\t\t\t\t\ty: paddingBox.top,\n\t\t\t\t\tw: contLayoutRect.innerW - paddingBox.right - paddingBox.left,\n\t\t\t\t\th: contLayoutRect.innerH - paddingBox.top - paddingBox.bottom\n\t\t\t\t});\n\n\t\t\t\tif (ctrl.recalc) {\n\t\t\t\t\tctrl.recalc();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/FlexLayout.js\n\n/**\n * FlexLayout.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This layout manager works similar to the CSS flex box.\n *\n * @setting {String} direction row|row-reverse|column|column-reverse\n * @setting {Number} flex A positive-number to flex by.\n * @setting {String} align start|end|center|stretch\n * @setting {String} pack start|end|justify\n *\n * @class tinymce.ui.FlexLayout\n * @extends tinymce.ui.AbsoluteLayout\n */\ndefine(\"tinymce/ui/FlexLayout\", [\n\t\"tinymce/ui/AbsoluteLayout\"\n], function(AbsoluteLayout) {\n\t\"use strict\";\n\n\treturn AbsoluteLayout.extend({\n\t\t/**\n\t\t * Recalculates the positions of the controls in the specified container.\n\t\t *\n\t\t * @method recalc\n\t\t * @param {tinymce.ui.Container} container Container instance to recalc.\n\t\t */\n\t\trecalc: function(container) {\n\t\t\t// A ton of variables, needs to be in the same scope for performance\n\t\t\tvar i, l, items, contLayoutRect, contPaddingBox, contSettings, align, pack, spacing, totalFlex, availableSpace, direction;\n\t\t\tvar ctrl, ctrlLayoutRect, ctrlSettings, flex, maxSizeItems = [], size, maxSize, ratio, rect, pos, maxAlignEndPos;\n\t\t\tvar sizeName, minSizeName, posName, maxSizeName, beforeName, innerSizeName, deltaSizeName, contentSizeName;\n\t\t\tvar alignAxisName, alignInnerSizeName, alignSizeName, alignMinSizeName, alignBeforeName, alignAfterName;\n\t\t\tvar alignDeltaSizeName, alignContentSizeName;\n\t\t\tvar max = Math.max, min = Math.min;\n\n\t\t\t// Get container items, properties and settings\n\t\t\titems = container.items().filter(':visible');\n\t\t\tcontLayoutRect = container.layoutRect();\n\t\t\tcontPaddingBox = container.paddingBox;\n\t\t\tcontSettings = container.settings;\n\t\t\tdirection = container.isRtl() ? (contSettings.direction || 'row-reversed') : contSettings.direction;\n\t\t\talign = contSettings.align;\n\t\t\tpack = container.isRtl() ? (contSettings.pack || 'end') : contSettings.pack;\n\t\t\tspacing = contSettings.spacing || 0;\n\n\t\t\tif (direction == \"row-reversed\" || direction == \"column-reverse\") {\n\t\t\t\titems = items.set(items.toArray().reverse());\n\t\t\t\tdirection = direction.split('-')[0];\n\t\t\t}\n\n\t\t\t// Setup axis variable name for row/column direction since the calculations is the same\n\t\t\tif (direction == \"column\") {\n\t\t\t\tposName = \"y\";\n\t\t\t\tsizeName = \"h\";\n\t\t\t\tminSizeName = \"minH\";\n\t\t\t\tmaxSizeName = \"maxH\";\n\t\t\t\tinnerSizeName = \"innerH\";\n\t\t\t\tbeforeName = 'top';\n\t\t\t\tdeltaSizeName = \"deltaH\";\n\t\t\t\tcontentSizeName = \"contentH\";\n\n\t\t\t\talignBeforeName = \"left\";\n\t\t\t\talignSizeName = \"w\";\n\t\t\t\talignAxisName = \"x\";\n\t\t\t\talignInnerSizeName = \"innerW\";\n\t\t\t\talignMinSizeName = \"minW\";\n\t\t\t\talignAfterName = \"right\";\n\t\t\t\talignDeltaSizeName = \"deltaW\";\n\t\t\t\talignContentSizeName = \"contentW\";\n\t\t\t} else {\n\t\t\t\tposName = \"x\";\n\t\t\t\tsizeName = \"w\";\n\t\t\t\tminSizeName = \"minW\";\n\t\t\t\tmaxSizeName = \"maxW\";\n\t\t\t\tinnerSizeName = \"innerW\";\n\t\t\t\tbeforeName = 'left';\n\t\t\t\tdeltaSizeName = \"deltaW\";\n\t\t\t\tcontentSizeName = \"contentW\";\n\n\t\t\t\talignBeforeName = \"top\";\n\t\t\t\talignSizeName = \"h\";\n\t\t\t\talignAxisName = \"y\";\n\t\t\t\talignInnerSizeName = \"innerH\";\n\t\t\t\talignMinSizeName = \"minH\";\n\t\t\t\talignAfterName = \"bottom\";\n\t\t\t\talignDeltaSizeName = \"deltaH\";\n\t\t\t\talignContentSizeName = \"contentH\";\n\t\t\t}\n\n\t\t\t// Figure out total flex, availableSpace and collect any max size elements\n\t\t\tavailableSpace = contLayoutRect[innerSizeName] - contPaddingBox[beforeName] - contPaddingBox[beforeName];\n\t\t\tmaxAlignEndPos = totalFlex = 0;\n\t\t\tfor (i = 0, l = items.length; i < l; i++) {\n\t\t\t\tctrl = items[i];\n\t\t\t\tctrlLayoutRect = ctrl.layoutRect();\n\t\t\t\tctrlSettings = ctrl.settings;\n\t\t\t\tflex = ctrlSettings.flex;\n\t\t\t\tavailableSpace -= (i < l - 1 ? spacing : 0);\n\n\t\t\t\tif (flex > 0) {\n\t\t\t\t\ttotalFlex += flex;\n\n\t\t\t\t\t// Flexed item has a max size then we need to check if we will hit that size\n\t\t\t\t\tif (ctrlLayoutRect[maxSizeName]) {\n\t\t\t\t\t\tmaxSizeItems.push(ctrl);\n\t\t\t\t\t}\n\n\t\t\t\t\tctrlLayoutRect.flex = flex;\n\t\t\t\t}\n\n\t\t\t\tavailableSpace -= ctrlLayoutRect[minSizeName];\n\n\t\t\t\t// Calculate the align end position to be used to check for overflow/underflow\n\t\t\t\tsize = contPaddingBox[alignBeforeName] + ctrlLayoutRect[alignMinSizeName] + contPaddingBox[alignAfterName];\n\t\t\t\tif (size > maxAlignEndPos) {\n\t\t\t\t\tmaxAlignEndPos = size;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Calculate minW/minH\n\t\t\trect = {};\n\t\t\tif (availableSpace < 0) {\n\t\t\t\trect[minSizeName] = contLayoutRect[minSizeName] - availableSpace + contLayoutRect[deltaSizeName];\n\t\t\t} else {\n\t\t\t\trect[minSizeName] = contLayoutRect[innerSizeName] - availableSpace + contLayoutRect[deltaSizeName];\n\t\t\t}\n\n\t\t\trect[alignMinSizeName] = maxAlignEndPos + contLayoutRect[alignDeltaSizeName];\n\n\t\t\trect[contentSizeName] = contLayoutRect[innerSizeName] - availableSpace;\n\t\t\trect[alignContentSizeName] = maxAlignEndPos;\n\t\t\trect.minW = min(rect.minW, contLayoutRect.maxW);\n\t\t\trect.minH = min(rect.minH, contLayoutRect.maxH);\n\t\t\trect.minW = max(rect.minW, contLayoutRect.startMinWidth);\n\t\t\trect.minH = max(rect.minH, contLayoutRect.startMinHeight);\n\n\t\t\t// Resize container container if minSize was changed\n\t\t\tif (contLayoutRect.autoResize && (rect.minW != contLayoutRect.minW || rect.minH != contLayoutRect.minH)) {\n\t\t\t\trect.w = rect.minW;\n\t\t\t\trect.h = rect.minH;\n\n\t\t\t\tcontainer.layoutRect(rect);\n\t\t\t\tthis.recalc(container);\n\n\t\t\t\t// Forced recalc for example if items are hidden/shown\n\t\t\t\tif (container._lastRect === null) {\n\t\t\t\t\tvar parentCtrl = container.parent();\n\t\t\t\t\tif (parentCtrl) {\n\t\t\t\t\t\tparentCtrl._lastRect = null;\n\t\t\t\t\t\tparentCtrl.recalc();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Handle max size elements, check if they will become to wide with current options\n\t\t\tratio = availableSpace / totalFlex;\n\t\t\tfor (i = 0, l = maxSizeItems.length; i < l; i++) {\n\t\t\t\tctrl = maxSizeItems[i];\n\t\t\t\tctrlLayoutRect = ctrl.layoutRect();\n\t\t\t\tmaxSize = ctrlLayoutRect[maxSizeName];\n\t\t\t\tsize = ctrlLayoutRect[minSizeName] + ctrlLayoutRect.flex * ratio;\n\n\t\t\t\tif (size > maxSize) {\n\t\t\t\t\tavailableSpace -= (ctrlLayoutRect[maxSizeName] - ctrlLayoutRect[minSizeName]);\n\t\t\t\t\ttotalFlex -= ctrlLayoutRect.flex;\n\t\t\t\t\tctrlLayoutRect.flex = 0;\n\t\t\t\t\tctrlLayoutRect.maxFlexSize = maxSize;\n\t\t\t\t} else {\n\t\t\t\t\tctrlLayoutRect.maxFlexSize = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Setup new ratio, target layout rect, start position\n\t\t\tratio = availableSpace / totalFlex;\n\t\t\tpos = contPaddingBox[beforeName];\n\t\t\trect = {};\n\n\t\t\t// Handle pack setting moves the start position to end, center\n\t\t\tif (totalFlex === 0) {\n\t\t\t\tif (pack == \"end\") {\n\t\t\t\t\tpos = availableSpace + contPaddingBox[beforeName];\n\t\t\t\t} else if (pack == \"center\") {\n\t\t\t\t\tpos = Math.round(\n\t\t\t\t\t\t(contLayoutRect[innerSizeName] / 2) - ((contLayoutRect[innerSizeName] - availableSpace) / 2)\n\t\t\t\t\t) + contPaddingBox[beforeName];\n\n\t\t\t\t\tif (pos < 0) {\n\t\t\t\t\t\tpos = contPaddingBox[beforeName];\n\t\t\t\t\t}\n\t\t\t\t} else if (pack == \"justify\") {\n\t\t\t\t\tpos = contPaddingBox[beforeName];\n\t\t\t\t\tspacing = Math.floor(availableSpace / (items.length - 1));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Default aligning (start) the other ones needs to be calculated while doing the layout\n\t\t\trect[alignAxisName] = contPaddingBox[alignBeforeName];\n\n\t\t\t// Start laying out controls\n\t\t\tfor (i = 0, l = items.length; i < l; i++) {\n\t\t\t\tctrl = items[i];\n\t\t\t\tctrlLayoutRect = ctrl.layoutRect();\n\t\t\t\tsize = ctrlLayoutRect.maxFlexSize || ctrlLayoutRect[minSizeName];\n\n\t\t\t\t// Align the control on the other axis\n\t\t\t\tif (align === \"center\") {\n\t\t\t\t\trect[alignAxisName] = Math.round((contLayoutRect[alignInnerSizeName] / 2) - (ctrlLayoutRect[alignSizeName] / 2));\n\t\t\t\t} else if (align === \"stretch\") {\n\t\t\t\t\trect[alignSizeName] = max(\n\t\t\t\t\t\tctrlLayoutRect[alignMinSizeName] || 0,\n\t\t\t\t\t\tcontLayoutRect[alignInnerSizeName] - contPaddingBox[alignBeforeName] - contPaddingBox[alignAfterName]\n\t\t\t\t\t);\n\t\t\t\t\trect[alignAxisName] = contPaddingBox[alignBeforeName];\n\t\t\t\t} else if (align === \"end\") {\n\t\t\t\t\trect[alignAxisName] = contLayoutRect[alignInnerSizeName] - ctrlLayoutRect[alignSizeName] - contPaddingBox.top;\n\t\t\t\t}\n\n\t\t\t\t// Calculate new size based on flex\n\t\t\t\tif (ctrlLayoutRect.flex > 0) {\n\t\t\t\t\tsize += ctrlLayoutRect.flex * ratio;\n\t\t\t\t}\n\n\t\t\t\trect[sizeName] = size;\n\t\t\t\trect[posName] = pos;\n\t\t\t\tctrl.layoutRect(rect);\n\n\t\t\t\t// Recalculate containers\n\t\t\t\tif (ctrl.recalc) {\n\t\t\t\t\tctrl.recalc();\n\t\t\t\t}\n\n\t\t\t\t// Move x/y position\n\t\t\t\tpos += size + spacing;\n\t\t\t}\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/FlowLayout.js\n\n/**\n * FlowLayout.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This layout manager will place the controls by using the browsers native layout.\n *\n * @-x-less FlowLayout.less\n * @class tinymce.ui.FlowLayout\n * @extends tinymce.ui.Layout\n */\ndefine(\"tinymce/ui/FlowLayout\", [\n\t\"tinymce/ui/Layout\"\n], function(Layout) {\n\treturn Layout.extend({\n\t\tDefaults: {\n\t\t\tcontainerClass: 'flow-layout',\n\t\t\tcontrolClass: 'flow-layout-item',\n\t\t\tendClass: 'break'\n\t\t},\n\n\t\t/**\n\t\t * Recalculates the positions of the controls in the specified container.\n\t\t *\n\t\t * @method recalc\n\t\t * @param {tinymce.ui.Container} container Container instance to recalc.\n\t\t */\n\t\trecalc: function(container) {\n\t\t\tcontainer.items().filter(':visible').each(function(ctrl) {\n\t\t\t\tif (ctrl.recalc) {\n\t\t\t\t\tctrl.recalc();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tisNative: function() {\n\t\t\treturn true;\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/fmt/FontInfo.js\n\n/**\n * FontInfo.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2016 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Internal class for computing font size for elements.\n *\n * @private\n * @class tinymce.fmt.FontInfo\n */\ndefine(\"tinymce/fmt/FontInfo\", [\n\t\"tinymce/dom/DOMUtils\"\n], function(DOMUtils) {\n\tvar getSpecifiedFontProp = function (propName, rootElm, elm) {\n\t\twhile (elm !== rootElm) {\n\t\t\tif (elm.style[propName]) {\n\t\t\t\treturn elm.style[propName];\n\t\t\t}\n\n\t\t\telm = elm.parentNode;\n\t\t}\n\n\t\treturn '';\n\t};\n\n\tvar toPt = function (fontSize) {\n\t\tif (/[0-9.]+px$/.test(fontSize)) {\n\t\t\treturn Math.round(parseInt(fontSize, 10) * 72 / 96) + 'pt';\n\t\t}\n\n\t\treturn fontSize;\n\t};\n\n\tvar normalizeFontFamily = function (fontFamily) {\n\t\t// 'Font name', Font -> Font name,Font\n\t\treturn fontFamily.replace(/[\\'\\\"]/g, '').replace(/,\\s+/g, ',');\n\t};\n\n\tvar getComputedFontProp = function (propName, elm) {\n\t\treturn DOMUtils.DOM.getStyle(elm, propName, true);\n\t};\n\n\tvar getFontSize = function (rootElm, elm) {\n\t\tvar specifiedFontSize = getSpecifiedFontProp('fontSize', rootElm, elm);\n\t\treturn specifiedFontSize !== '' ? specifiedFontSize : getComputedFontProp('fontSize', elm);\n\t};\n\n\tvar getFontFamily = function (rootElm, elm) {\n\t\tvar specifiedFontSize = getSpecifiedFontProp('fontFamily', rootElm, elm);\n\t\tvar fontValue = specifiedFontSize !== '' ? specifiedFontSize : getComputedFontProp('fontFamily', elm);\n\n\t\treturn fontValue !== undefined ? normalizeFontFamily(fontValue) : '';\n\t};\n\n\treturn {\n\t\tgetFontSize: getFontSize,\n\t\tgetFontFamily: getFontFamily,\n\t\ttoPt: toPt\n\t};\n});\n\n// Included from: js/tinymce/classes/ui/FormatControls.js\n\n/**\n * FormatControls.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Internal class containing all TinyMCE specific control types such as\n * format listboxes, fontlist boxes, toolbar buttons etc.\n *\n * @class tinymce.ui.FormatControls\n */\ndefine(\"tinymce/ui/FormatControls\", [\n\t\"tinymce/ui/Control\",\n\t\"tinymce/ui/Widget\",\n\t\"tinymce/ui/FloatPanel\",\n\t\"tinymce/util/Tools\",\n\t\"tinymce/util/Arr\",\n\t\"tinymce/dom/DOMUtils\",\n\t\"tinymce/EditorManager\",\n\t\"tinymce/Env\",\n\t\"tinymce/fmt/FontInfo\"\n], function(Control, Widget, FloatPanel, Tools, Arr, DOMUtils, EditorManager, Env, FontInfo) {\n\tvar each = Tools.each;\n\n\tvar flatten = function (ar) {\n\t\treturn Arr.reduce(ar, function (result, item) {\n\t\t\treturn result.concat(item);\n\t\t}, []);\n\t};\n\n\tEditorManager.on('AddEditor', function(e) {\n\t\tvar editor = e.editor;\n\n\t\tsetupRtlMode(editor);\n\t\tregisterControls(editor);\n\t\tsetupContainer(editor);\n\t});\n\n\tControl.translate = function(text) {\n\t\treturn EditorManager.translate(text);\n\t};\n\n\tWidget.tooltips = !Env.iOS;\n\n\tfunction setupContainer(editor) {\n\t\tif (editor.settings.ui_container) {\n\t\t\tEnv.container = DOMUtils.DOM.select(editor.settings.ui_container)[0];\n\t\t}\n\t}\n\n\tfunction setupRtlMode(editor) {\n\t\teditor.on('ScriptsLoaded', function () {\n\t\t\tif (editor.rtl) {\n\t\t\t\tControl.rtl = true;\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction registerControls(editor) {\n\t\tvar formatMenu;\n\n\t\tfunction createListBoxChangeHandler(items, formatName) {\n\t\t\treturn function() {\n\t\t\t\tvar self = this;\n\n\t\t\t\teditor.on('nodeChange', function(e) {\n\t\t\t\t\tvar formatter = editor.formatter;\n\t\t\t\t\tvar value = null;\n\n\t\t\t\t\teach(e.parents, function(node) {\n\t\t\t\t\t\teach(items, function(item) {\n\t\t\t\t\t\t\tif (formatName) {\n\t\t\t\t\t\t\t\tif (formatter.matchNode(node, formatName, {value: item.value})) {\n\t\t\t\t\t\t\t\t\tvalue = item.value;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (formatter.matchNode(node, item.value)) {\n\t\t\t\t\t\t\t\t\tvalue = item.value;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (value) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (value) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tself.value(value);\n\t\t\t\t});\n\t\t\t};\n\t\t}\n\n\t\tfunction createFontNameListBoxChangeHandler(items) {\n\t\t\treturn function() {\n\t\t\t\tvar self = this;\n\n\t\t\t\tvar getFirstFont = function (fontFamily) {\n\t\t\t\t\treturn fontFamily ? fontFamily.split(',')[0] : '';\n\t\t\t\t};\n\n\t\t\t\teditor.on('nodeChange', function(e) {\n\t\t\t\t\tvar fontFamily, value = null;\n\n\t\t\t\t\tfontFamily = FontInfo.getFontFamily(editor.getBody(), e.element);\n\n\t\t\t\t\teach(items, function(item) {\n\t\t\t\t\t\tif (item.value.toLowerCase() === fontFamily.toLowerCase()) {\n\t\t\t\t\t\t\tvalue = item.value;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\teach(items, function(item) {\n\t\t\t\t\t\tif (!value && getFirstFont(item.value).toLowerCase() === getFirstFont(fontFamily).toLowerCase()) {\n\t\t\t\t\t\t\tvalue = item.value;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tself.value(value);\n\n\t\t\t\t\tif (!value && fontFamily) {\n\t\t\t\t\t\tself.text(getFirstFont(fontFamily));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t}\n\n\t\tfunction createFontSizeListBoxChangeHandler(items) {\n\t\t\treturn function() {\n\t\t\t\tvar self = this;\n\n\t\t\t\teditor.on('nodeChange', function(e) {\n\t\t\t\t\tvar px, pt, value = null;\n\n\t\t\t\t\tpx = FontInfo.getFontSize(editor.getBody(), e.element);\n\t\t\t\t\tpt = FontInfo.toPt(px);\n\n\t\t\t\t\teach(items, function(item) {\n\t\t\t\t\t\tif (item.value === px) {\n\t\t\t\t\t\t\tvalue = px;\n\t\t\t\t\t\t} else if (item.value === pt) {\n\t\t\t\t\t\t\tvalue = pt;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tself.value(value);\n\n\t\t\t\t\tif (!value) {\n\t\t\t\t\t\tself.text(pt);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t}\n\n\t\tfunction createFormats(formats) {\n\t\t\tformats = formats.replace(/;$/, '').split(';');\n\n\t\t\tvar i = formats.length;\n\t\t\twhile (i--) {\n\t\t\t\tformats[i] = formats[i].split('=');\n\t\t\t}\n\n\t\t\treturn formats;\n\t\t}\n\n\t\tfunction createFormatMenu() {\n\t\t\tvar count = 0, newFormats = [];\n\n\t\t\tvar defaultStyleFormats = [\n\t\t\t\t{title: 'Headings', items: [\n\t\t\t\t\t{title: 'Heading 1', format: 'h1'},\n\t\t\t\t\t{title: 'Heading 2', format: 'h2'},\n\t\t\t\t\t{title: 'Heading 3', format: 'h3'},\n\t\t\t\t\t{title: 'Heading 4', format: 'h4'},\n\t\t\t\t\t{title: 'Heading 5', format: 'h5'},\n\t\t\t\t\t{title: 'Heading 6', format: 'h6'}\n\t\t\t\t]},\n\n\t\t\t\t{title: 'Inline', items: [\n\t\t\t\t\t{title: 'Bold', icon: 'bold', format: 'bold'},\n\t\t\t\t\t{title: 'Italic', icon: 'italic', format: 'italic'},\n\t\t\t\t\t{title: 'Underline', icon: 'underline', format: 'underline'},\n\t\t\t\t\t{title: 'Strikethrough', icon: 'strikethrough', format: 'strikethrough'},\n\t\t\t\t\t{title: 'Superscript', icon: 'superscript', format: 'superscript'},\n\t\t\t\t\t{title: 'Subscript', icon: 'subscript', format: 'subscript'},\n\t\t\t\t\t{title: 'Code', icon: 'code', format: 'code'}\n\t\t\t\t]},\n\n\t\t\t\t{title: 'Blocks', items: [\n\t\t\t\t\t{title: 'Paragraph', format: 'p'},\n\t\t\t\t\t{title: 'Blockquote', format: 'blockquote'},\n\t\t\t\t\t{title: 'Div', format: 'div'},\n\t\t\t\t\t{title: 'Pre', format: 'pre'}\n\t\t\t\t]},\n\n\t\t\t\t{title: 'Alignment', items: [\n\t\t\t\t\t{title: 'Left', icon: 'alignleft', format: 'alignleft'},\n\t\t\t\t\t{title: 'Center', icon: 'aligncenter', format: 'aligncenter'},\n\t\t\t\t\t{title: 'Right', icon: 'alignright', format: 'alignright'},\n\t\t\t\t\t{title: 'Justify', icon: 'alignjustify', format: 'alignjustify'}\n\t\t\t\t]}\n\t\t\t];\n\n\t\t\tfunction createMenu(formats) {\n\t\t\t\tvar menu = [];\n\n\t\t\t\tif (!formats) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\teach(formats, function(format) {\n\t\t\t\t\tvar menuItem = {\n\t\t\t\t\t\ttext: format.title,\n\t\t\t\t\t\ticon: format.icon\n\t\t\t\t\t};\n\n\t\t\t\t\tif (format.items) {\n\t\t\t\t\t\tmenuItem.menu = createMenu(format.items);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar formatName = format.format || \"custom\" + count++;\n\n\t\t\t\t\t\tif (!format.format) {\n\t\t\t\t\t\t\tformat.name = formatName;\n\t\t\t\t\t\t\tnewFormats.push(format);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmenuItem.format = formatName;\n\t\t\t\t\t\tmenuItem.cmd = format.cmd;\n\t\t\t\t\t}\n\n\t\t\t\t\tmenu.push(menuItem);\n\t\t\t\t});\n\n\t\t\t\treturn menu;\n\t\t\t}\n\n\t\t\tfunction createStylesMenu() {\n\t\t\t\tvar menu;\n\n\t\t\t\tif (editor.settings.style_formats_merge) {\n\t\t\t\t\tif (editor.settings.style_formats) {\n\t\t\t\t\t\tmenu = createMenu(defaultStyleFormats.concat(editor.settings.style_formats));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmenu = createMenu(defaultStyleFormats);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmenu = createMenu(editor.settings.style_formats || defaultStyleFormats);\n\t\t\t\t}\n\n\t\t\t\treturn menu;\n\t\t\t}\n\n\t\t\teditor.on('init', function() {\n\t\t\t\teach(newFormats, function(format) {\n\t\t\t\t\teditor.formatter.register(format.name, format);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\ttype: 'menu',\n\t\t\t\titems: createStylesMenu(),\n\t\t\t\tonPostRender: function(e) {\n\t\t\t\t\teditor.fire('renderFormatsMenu', {control: e.control});\n\t\t\t\t},\n\t\t\t\titemDefaults: {\n\t\t\t\t\tpreview: true,\n\n\t\t\t\t\ttextStyle: function() {\n\t\t\t\t\t\tif (this.settings.format) {\n\t\t\t\t\t\t\treturn editor.formatter.getCssText(this.settings.format);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\n\t\t\t\t\tonPostRender: function() {\n\t\t\t\t\t\tvar self = this;\n\n\t\t\t\t\t\tself.parent().on('show', function() {\n\t\t\t\t\t\t\tvar formatName, command;\n\n\t\t\t\t\t\t\tformatName = self.settings.format;\n\t\t\t\t\t\t\tif (formatName) {\n\t\t\t\t\t\t\t\tself.disabled(!editor.formatter.canApply(formatName));\n\t\t\t\t\t\t\t\tself.active(editor.formatter.match(formatName));\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcommand = self.settings.cmd;\n\t\t\t\t\t\t\tif (command) {\n\t\t\t\t\t\t\t\tself.active(editor.queryCommandState(command));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\n\t\t\t\t\tonclick: function() {\n\t\t\t\t\t\tif (this.settings.format) {\n\t\t\t\t\t\t\ttoggleFormat(this.settings.format);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.settings.cmd) {\n\t\t\t\t\t\t\teditor.execCommand(this.settings.cmd);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tformatMenu = createFormatMenu();\n\n\t\tfunction initOnPostRender(name) {\n\t\t\treturn function() {\n\t\t\t\tvar self = this;\n\n\t\t\t\t// TODO: Fix this\n\t\t\t\tif (editor.formatter) {\n\t\t\t\t\teditor.formatter.formatChanged(name, function(state) {\n\t\t\t\t\t\tself.active(state);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\teditor.on('init', function() {\n\t\t\t\t\t\teditor.formatter.formatChanged(name, function(state) {\n\t\t\t\t\t\t\tself.active(state);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// Simple format controls :\n\t\teach({\n\t\t\tbold: 'Bold',\n\t\t\titalic: 'Italic',\n\t\t\tunderline: 'Underline',\n\t\t\tstrikethrough: 'Strikethrough',\n\t\t\tsubscript: 'Subscript',\n\t\t\tsuperscript: 'Superscript'\n\t\t}, function(text, name) {\n\t\t\teditor.addButton(name, {\n\t\t\t\ttooltip: text,\n\t\t\t\tonPostRender: initOnPostRender(name),\n\t\t\t\tonclick: function() {\n\t\t\t\t\ttoggleFormat(name);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\t// Simple command controls :[,]\n\t\teach({\n\t\t\toutdent: ['Decrease indent', 'Outdent'],\n\t\t\tindent: ['Increase indent', 'Indent'],\n\t\t\tcut: ['Cut', 'Cut'],\n\t\t\tcopy: ['Copy', 'Copy'],\n\t\t\tpaste: ['Paste', 'Paste'],\n\t\t\thelp: ['Help', 'mceHelp'],\n\t\t\tselectall: ['Select all', 'SelectAll'],\n\t\t\tremoveformat: ['Clear formatting', 'RemoveFormat'],\n\t\t\tvisualaid: ['Visual aids', 'mceToggleVisualAid'],\n\t\t\tnewdocument: ['New document', 'mceNewDocument']\n\t\t}, function(item, name) {\n\t\t\teditor.addButton(name, {\n\t\t\t\ttooltip: item[0],\n\t\t\t\tcmd: item[1]\n\t\t\t});\n\t\t});\n\n\t\t// Simple command controls with format state\n\t\teach({\n\t\t\tblockquote: ['Blockquote', 'mceBlockQuote'],\n\t\t\tsubscript: ['Subscript', 'Subscript'],\n\t\t\tsuperscript: ['Superscript', 'Superscript'],\n\t\t\talignleft: ['Align left', 'JustifyLeft'],\n\t\t\taligncenter: ['Align center', 'JustifyCenter'],\n\t\t\talignright: ['Align right', 'JustifyRight'],\n\t\t\talignjustify: ['Justify', 'JustifyFull'],\n\t\t\talignnone: ['No alignment', 'JustifyNone']\n\t\t}, function(item, name) {\n\t\t\teditor.addButton(name, {\n\t\t\t\ttooltip: item[0],\n\t\t\t\tcmd: item[1],\n\t\t\t\tonPostRender: initOnPostRender(name)\n\t\t\t});\n\t\t});\n\n\t\tfunction toggleUndoRedoState(type) {\n\t\t\treturn function() {\n\t\t\t\tvar self = this;\n\n\t\t\t\tfunction checkState() {\n\t\t\t\t\tvar typeFn = type == 'redo' ? 'hasRedo' : 'hasUndo';\n\t\t\t\t\treturn editor.undoManager ? editor.undoManager[typeFn]() : false;\n\t\t\t\t}\n\n\t\t\t\tself.disabled(!checkState());\n\t\t\t\teditor.on('Undo Redo AddUndo TypingUndo ClearUndos SwitchMode', function() {\n\t\t\t\t\tself.disabled(editor.readonly || !checkState());\n\t\t\t\t});\n\t\t\t};\n\t\t}\n\n\t\tfunction toggleVisualAidState() {\n\t\t\tvar self = this;\n\n\t\t\teditor.on('VisualAid', function(e) {\n\t\t\t\tself.active(e.hasVisual);\n\t\t\t});\n\n\t\t\tself.active(editor.hasVisual);\n\t\t}\n\n\t\tvar trimMenuItems = function (menuItems) {\n\t\t\tvar outputMenuItems = menuItems;\n\n\t\t\tif (outputMenuItems.length > 0 && outputMenuItems[0].text === '-') {\n\t\t\t\toutputMenuItems = outputMenuItems.slice(1);\n\t\t\t}\n\n\t\t\tif (outputMenuItems.length > 0 && outputMenuItems[outputMenuItems.length - 1].text === '-') {\n\t\t\t\toutputMenuItems = outputMenuItems.slice(0, outputMenuItems.length - 1);\n\t\t\t}\n\n\t\t\treturn outputMenuItems;\n\t\t};\n\n\t\tvar createCustomMenuItems = function (names) {\n\t\t\tvar items, nameList;\n\n\t\t\tif (typeof names === 'string') {\n\t\t\t\tnameList = names.split(' ');\n\t\t\t} else if (Tools.isArray(names)) {\n\t\t\t\treturn flatten(Tools.map(names, createCustomMenuItems));\n\t\t\t}\n\n\t\t\titems = Tools.grep(nameList, function (name) {\n\t\t\t\treturn name === '|' || name in editor.menuItems;\n\t\t\t});\n\n\t\t\treturn Tools.map(items, function (name) {\n\t\t\t\treturn name === '|' ? {text: '-'} : editor.menuItems[name];\n\t\t\t});\n\t\t};\n\n\t\tvar createContextMenuItems = function (context) {\n\t\t\tvar outputMenuItems = [{text: '-'}];\n\t\t\tvar menuItems = Tools.grep(editor.menuItems, function (menuItem) {\n\t\t\t\treturn menuItem.context === context;\n\t\t\t});\n\n\t\t\tTools.each(menuItems, function (menuItem) {\n\t\t\t\tif (menuItem.separator == 'before') {\n\t\t\t\t\toutputMenuItems.push({text: '|'});\n\t\t\t\t}\n\n\t\t\t\tif (menuItem.prependToContext) {\n\t\t\t\t\toutputMenuItems.unshift(menuItem);\n\t\t\t\t} else {\n\t\t\t\t\toutputMenuItems.push(menuItem);\n\t\t\t\t}\n\n\t\t\t\tif (menuItem.separator == 'after') {\n\t\t\t\t\toutputMenuItems.push({text: '|'});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn outputMenuItems;\n\t\t};\n\n\t\tvar createInsertMenu = function (editorSettings) {\n\t\t\tif (editorSettings.insert_button_items) {\n\t\t\t\treturn trimMenuItems(createCustomMenuItems(editorSettings.insert_button_items));\n\t\t\t} else {\n\t\t\t\treturn trimMenuItems(createContextMenuItems('insert'));\n\t\t\t}\n\t\t};\n\n\t\teditor.addButton('undo', {\n\t\t\ttooltip: 'Undo',\n\t\t\tonPostRender: toggleUndoRedoState('undo'),\n\t\t\tcmd: 'undo'\n\t\t});\n\n\t\teditor.addButton('redo', {\n\t\t\ttooltip: 'Redo',\n\t\t\tonPostRender: toggleUndoRedoState('redo'),\n\t\t\tcmd: 'redo'\n\t\t});\n\n\t\teditor.addMenuItem('newdocument', {\n\t\t\ttext: 'New document',\n\t\t\ticon: 'newdocument',\n\t\t\tcmd: 'mceNewDocument'\n\t\t});\n\n\t\teditor.addMenuItem('undo', {\n\t\t\ttext: 'Undo',\n\t\t\ticon: 'undo',\n\t\t\tshortcut: 'Meta+Z',\n\t\t\tonPostRender: toggleUndoRedoState('undo'),\n\t\t\tcmd: 'undo'\n\t\t});\n\n\t\teditor.addMenuItem('redo', {\n\t\t\ttext: 'Redo',\n\t\t\ticon: 'redo',\n\t\t\tshortcut: 'Meta+Y',\n\t\t\tonPostRender: toggleUndoRedoState('redo'),\n\t\t\tcmd: 'redo'\n\t\t});\n\n\t\teditor.addMenuItem('visualaid', {\n\t\t\ttext: 'Visual aids',\n\t\t\tselectable: true,\n\t\t\tonPostRender: toggleVisualAidState,\n\t\t\tcmd: 'mceToggleVisualAid'\n\t\t});\n\n\t\teditor.addButton('remove', {\n\t\t\ttooltip: 'Remove',\n\t\t\ticon: 'remove',\n\t\t\tcmd: 'Delete'\n\t\t});\n\n\t\teditor.addButton('insert', {\n\t\t\ttype: 'menubutton',\n\t\t\ticon: 'insert',\n\t\t\tmenu: [],\n\t\t\toncreatemenu: function () {\n\t\t\t\tthis.menu.add(createInsertMenu(editor.settings));\n\t\t\t\tthis.menu.renderNew();\n\t\t\t}\n\t\t});\n\n\t\teach({\n\t\t\tcut: ['Cut', 'Cut', 'Meta+X'],\n\t\t\tcopy: ['Copy', 'Copy', 'Meta+C'],\n\t\t\tpaste: ['Paste', 'Paste', 'Meta+V'],\n\t\t\tselectall: ['Select all', 'SelectAll', 'Meta+A'],\n\t\t\tbold: ['Bold', 'Bold', 'Meta+B'],\n\t\t\titalic: ['Italic', 'Italic', 'Meta+I'],\n\t\t\tunderline: ['Underline', 'Underline', 'Meta+U'],\n\t\t\tstrikethrough: ['Strikethrough', 'Strikethrough'],\n\t\t\tsubscript: ['Subscript', 'Subscript'],\n\t\t\tsuperscript: ['Superscript', 'Superscript'],\n\t\t\tremoveformat: ['Clear formatting', 'RemoveFormat']\n\t\t}, function(item, name) {\n\t\t\teditor.addMenuItem(name, {\n\t\t\t\ttext: item[0],\n\t\t\t\ticon: name,\n\t\t\t\tshortcut: item[2],\n\t\t\t\tcmd: item[1]\n\t\t\t});\n\t\t});\n\n\t\teditor.on('mousedown', function() {\n\t\t\tFloatPanel.hideAll();\n\t\t});\n\n\t\tfunction toggleFormat(fmt) {\n\t\t\tif (fmt.control) {\n\t\t\t\tfmt = fmt.control.value();\n\t\t\t}\n\n\t\t\tif (fmt) {\n\t\t\t\teditor.execCommand('mceToggleFormat', false, fmt);\n\t\t\t}\n\t\t}\n\n\t\tfunction hideMenuObjects(menu) {\n\t\t\tvar count = menu.length;\n\n\t\t\tTools.each(menu, function (item) {\n\t\t\t\tif (item.menu) {\n\t\t\t\t\titem.hidden = hideMenuObjects(item.menu) === 0;\n\t\t\t\t}\n\n\t\t\t\tvar formatName = item.format;\n\t\t\t\tif (formatName) {\n\t\t\t\t\titem.hidden = !editor.formatter.canApply(formatName);\n\t\t\t\t}\n\n\t\t\t\tif (item.hidden) {\n\t\t\t\t\tcount--;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn count;\n\t\t}\n\n\t\tfunction hideFormatMenuItems(menu) {\n\t\t\tvar count = menu.items().length;\n\n\t\t\tmenu.items().each(function (item) {\n\t\t\t\tif (item.menu) {\n\t\t\t\t\titem.visible(hideFormatMenuItems(item.menu) > 0);\n\t\t\t\t}\n\n\t\t\t\tif (!item.menu && item.settings.menu) {\n\t\t\t\t\titem.visible(hideMenuObjects(item.settings.menu) > 0);\n\t\t\t\t}\n\n\t\t\t\tvar formatName = item.settings.format;\n\t\t\t\tif (formatName) {\n\t\t\t\t\titem.visible(editor.formatter.canApply(formatName));\n\t\t\t\t}\n\n\t\t\t\tif (!item.visible()) {\n\t\t\t\t\tcount--;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn count;\n\t\t}\n\n\t\teditor.addButton('styleselect', {\n\t\t\ttype: 'menubutton',\n\t\t\ttext: 'Formats',\n\t\t\tmenu: formatMenu,\n\t\t\tonShowMenu: function () {\n\t\t\t\tif (editor.settings.style_formats_autohide) {\n\t\t\t\t\thideFormatMenuItems(this.menu);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\teditor.addButton('formatselect', function() {\n\t\t\tvar items = [], blocks = createFormats(editor.settings.block_formats ||\n\t\t\t\t'Paragraph=p;' +\n\t\t\t\t'Heading 1=h1;' +\n\t\t\t\t'Heading 2=h2;' +\n\t\t\t\t'Heading 3=h3;' +\n\t\t\t\t'Heading 4=h4;' +\n\t\t\t\t'Heading 5=h5;' +\n\t\t\t\t'Heading 6=h6;' +\n\t\t\t\t'Preformatted=pre'\n\t\t\t);\n\n\t\t\teach(blocks, function(block) {\n\t\t\t\titems.push({\n\t\t\t\t\ttext: block[0],\n\t\t\t\t\tvalue: block[1],\n\t\t\t\t\ttextStyle: function() {\n\t\t\t\t\t\treturn editor.formatter.getCssText(block[1]);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\ttype: 'listbox',\n\t\t\t\ttext: blocks[0][0],\n\t\t\t\tvalues: items,\n\t\t\t\tfixedWidth: true,\n\t\t\t\tonselect: toggleFormat,\n\t\t\t\tonPostRender: createListBoxChangeHandler(items)\n\t\t\t};\n\t\t});\n\n\t\teditor.addButton('fontselect', function() {\n\t\t\tvar defaultFontsFormats =\n\t\t\t\t'Andale Mono=andale mono,monospace;' +\n\t\t\t\t'Arial=arial,helvetica,sans-serif;' +\n\t\t\t\t'Arial Black=arial black,sans-serif;' +\n\t\t\t\t'Book Antiqua=book antiqua,palatino,serif;' +\n\t\t\t\t'Comic Sans MS=comic sans ms,sans-serif;' +\n\t\t\t\t'Courier New=courier new,courier,monospace;' +\n\t\t\t\t'Georgia=georgia,palatino,serif;' +\n\t\t\t\t'Helvetica=helvetica,arial,sans-serif;' +\n\t\t\t\t'Impact=impact,sans-serif;' +\n\t\t\t\t'Symbol=symbol;' +\n\t\t\t\t'Tahoma=tahoma,arial,helvetica,sans-serif;' +\n\t\t\t\t'Terminal=terminal,monaco,monospace;' +\n\t\t\t\t'Times New Roman=times new roman,times,serif;' +\n\t\t\t\t'Trebuchet MS=trebuchet ms,geneva,sans-serif;' +\n\t\t\t\t'Verdana=verdana,geneva,sans-serif;' +\n\t\t\t\t'Webdings=webdings;' +\n\t\t\t\t'Wingdings=wingdings,zapf dingbats';\n\n\t\t\tvar items = [], fonts = createFormats(editor.settings.font_formats || defaultFontsFormats);\n\n\t\t\teach(fonts, function(font) {\n\t\t\t\titems.push({\n\t\t\t\t\ttext: {raw: font[0]},\n\t\t\t\t\tvalue: font[1],\n\t\t\t\t\ttextStyle: font[1].indexOf('dings') == -1 ? 'font-family:' + font[1] : ''\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\ttype: 'listbox',\n\t\t\t\ttext: 'Font Family',\n\t\t\t\ttooltip: 'Font Family',\n\t\t\t\tvalues: items,\n\t\t\t\tfixedWidth: true,\n\t\t\t\tonPostRender: createFontNameListBoxChangeHandler(items),\n\t\t\t\tonselect: function(e) {\n\t\t\t\t\tif (e.control.settings.value) {\n\t\t\t\t\t\teditor.execCommand('FontName', false, e.control.settings.value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t});\n\n\t\teditor.addButton('fontsizeselect', function() {\n\t\t\tvar items = [], defaultFontsizeFormats = '8pt 10pt 12pt 14pt 18pt 24pt 36pt';\n\t\t\tvar fontsize_formats = editor.settings.fontsize_formats || defaultFontsizeFormats;\n\n\t\t\teach(fontsize_formats.split(' '), function(item) {\n\t\t\t\tvar text = item, value = item;\n\t\t\t\t// Allow text=value font sizes.\n\t\t\t\tvar values = item.split('=');\n\t\t\t\tif (values.length > 1) {\n\t\t\t\t\ttext = values[0];\n\t\t\t\t\tvalue = values[1];\n\t\t\t\t}\n\t\t\t\titems.push({text: text, value: value});\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\ttype: 'listbox',\n\t\t\t\ttext: 'Font Sizes',\n\t\t\t\ttooltip: 'Font Sizes',\n\t\t\t\tvalues: items,\n\t\t\t\tfixedWidth: true,\n\t\t\t\tonPostRender: createFontSizeListBoxChangeHandler(items),\n\t\t\t\tonclick: function(e) {\n\t\t\t\t\tif (e.control.settings.value) {\n\t\t\t\t\t\teditor.execCommand('FontSize', false, e.control.settings.value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t});\n\n\t\teditor.addMenuItem('formats', {\n\t\t\ttext: 'Formats',\n\t\t\tmenu: formatMenu\n\t\t});\n\t}\n});\n\n// Included from: js/tinymce/classes/ui/GridLayout.js\n\n/**\n * GridLayout.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This layout manager places controls in a grid.\n *\n * @setting {Number} spacing Spacing between controls.\n * @setting {Number} spacingH Horizontal spacing between controls.\n * @setting {Number} spacingV Vertical spacing between controls.\n * @setting {Number} columns Number of columns to use.\n * @setting {String/Array} alignH start|end|center|stretch or array of values for each column.\n * @setting {String/Array} alignV start|end|center|stretch or array of values for each column.\n * @setting {String} pack start|end\n *\n * @class tinymce.ui.GridLayout\n * @extends tinymce.ui.AbsoluteLayout\n */\ndefine(\"tinymce/ui/GridLayout\", [\n\t\"tinymce/ui/AbsoluteLayout\"\n], function(AbsoluteLayout) {\n\t\"use strict\";\n\n\treturn AbsoluteLayout.extend({\n\t\t/**\n\t\t * Recalculates the positions of the controls in the specified container.\n\t\t *\n\t\t * @method recalc\n\t\t * @param {tinymce.ui.Container} container Container instance to recalc.\n\t\t */\n\t\trecalc: function(container) {\n\t\t\tvar settings, rows, cols, items, contLayoutRect, width, height, rect,\n\t\t\t\tctrlLayoutRect, ctrl, x, y, posX, posY, ctrlSettings, contPaddingBox, align, spacingH, spacingV, alignH, alignV, maxX, maxY,\n\t\t\t\tcolWidths = [], rowHeights = [], ctrlMinWidth, ctrlMinHeight, availableWidth, availableHeight, reverseRows, idx;\n\n\t\t\t// Get layout settings\n\t\t\tsettings = container.settings;\n\t\t\titems = container.items().filter(':visible');\n\t\t\tcontLayoutRect = container.layoutRect();\n\t\t\tcols = settings.columns || Math.ceil(Math.sqrt(items.length));\n\t\t\trows = Math.ceil(items.length / cols);\n\t\t\tspacingH = settings.spacingH || settings.spacing || 0;\n\t\t\tspacingV = settings.spacingV || settings.spacing || 0;\n\t\t\talignH = settings.alignH || settings.align;\n\t\t\talignV = settings.alignV || settings.align;\n\t\t\tcontPaddingBox = container.paddingBox;\n\t\t\treverseRows = 'reverseRows' in settings ? settings.reverseRows : container.isRtl();\n\n\t\t\tif (alignH && typeof alignH == \"string\") {\n\t\t\t\talignH = [alignH];\n\t\t\t}\n\n\t\t\tif (alignV && typeof alignV == \"string\") {\n\t\t\t\talignV = [alignV];\n\t\t\t}\n\n\t\t\t// Zero padd columnWidths\n\t\t\tfor (x = 0; x < cols; x++) {\n\t\t\t\tcolWidths.push(0);\n\t\t\t}\n\n\t\t\t// Zero padd rowHeights\n\t\t\tfor (y = 0; y < rows; y++) {\n\t\t\t\trowHeights.push(0);\n\t\t\t}\n\n\t\t\t// Calculate columnWidths and rowHeights\n\t\t\tfor (y = 0; y < rows; y++) {\n\t\t\t\tfor (x = 0; x < cols; x++) {\n\t\t\t\t\tctrl = items[y * cols + x];\n\n\t\t\t\t\t// Out of bounds\n\t\t\t\t\tif (!ctrl) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tctrlLayoutRect = ctrl.layoutRect();\n\t\t\t\t\tctrlMinWidth = ctrlLayoutRect.minW;\n\t\t\t\t\tctrlMinHeight = ctrlLayoutRect.minH;\n\n\t\t\t\t\tcolWidths[x] = ctrlMinWidth > colWidths[x] ? ctrlMinWidth : colWidths[x];\n\t\t\t\t\trowHeights[y] = ctrlMinHeight > rowHeights[y] ? ctrlMinHeight : rowHeights[y];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Calculate maxX\n\t\t\tavailableWidth = contLayoutRect.innerW - contPaddingBox.left - contPaddingBox.right;\n\t\t\tfor (maxX = 0, x = 0; x < cols; x++) {\n\t\t\t\tmaxX += colWidths[x] + (x > 0 ? spacingH : 0);\n\t\t\t\tavailableWidth -= (x > 0 ? spacingH : 0) + colWidths[x];\n\t\t\t}\n\n\t\t\t// Calculate maxY\n\t\t\tavailableHeight = contLayoutRect.innerH - contPaddingBox.top - contPaddingBox.bottom;\n\t\t\tfor (maxY = 0, y = 0; y < rows; y++) {\n\t\t\t\tmaxY += rowHeights[y] + (y > 0 ? spacingV : 0);\n\t\t\t\tavailableHeight -= (y > 0 ? spacingV : 0) + rowHeights[y];\n\t\t\t}\n\n\t\t\tmaxX += contPaddingBox.left + contPaddingBox.right;\n\t\t\tmaxY += contPaddingBox.top + contPaddingBox.bottom;\n\n\t\t\t// Calculate minW/minH\n\t\t\trect = {};\n\t\t\trect.minW = maxX + (contLayoutRect.w - contLayoutRect.innerW);\n\t\t\trect.minH = maxY + (contLayoutRect.h - contLayoutRect.innerH);\n\n\t\t\trect.contentW = rect.minW - contLayoutRect.deltaW;\n\t\t\trect.contentH = rect.minH - contLayoutRect.deltaH;\n\t\t\trect.minW = Math.min(rect.minW, contLayoutRect.maxW);\n\t\t\trect.minH = Math.min(rect.minH, contLayoutRect.maxH);\n\t\t\trect.minW = Math.max(rect.minW, contLayoutRect.startMinWidth);\n\t\t\trect.minH = Math.max(rect.minH, contLayoutRect.startMinHeight);\n\n\t\t\t// Resize container container if minSize was changed\n\t\t\tif (contLayoutRect.autoResize && (rect.minW != contLayoutRect.minW || rect.minH != contLayoutRect.minH)) {\n\t\t\t\trect.w = rect.minW;\n\t\t\t\trect.h = rect.minH;\n\n\t\t\t\tcontainer.layoutRect(rect);\n\t\t\t\tthis.recalc(container);\n\n\t\t\t\t// Forced recalc for example if items are hidden/shown\n\t\t\t\tif (container._lastRect === null) {\n\t\t\t\t\tvar parentCtrl = container.parent();\n\t\t\t\t\tif (parentCtrl) {\n\t\t\t\t\t\tparentCtrl._lastRect = null;\n\t\t\t\t\t\tparentCtrl.recalc();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Update contentW/contentH so absEnd moves correctly\n\t\t\tif (contLayoutRect.autoResize) {\n\t\t\t\trect = container.layoutRect(rect);\n\t\t\t\trect.contentW = rect.minW - contLayoutRect.deltaW;\n\t\t\t\trect.contentH = rect.minH - contLayoutRect.deltaH;\n\t\t\t}\n\n\t\t\tvar flexV;\n\n\t\t\tif (settings.packV == 'start') {\n\t\t\t\tflexV = 0;\n\t\t\t} else {\n\t\t\t\tflexV = availableHeight > 0 ? Math.floor(availableHeight / rows) : 0;\n\t\t\t}\n\n\t\t\t// Calculate totalFlex\n\t\t\tvar totalFlex = 0;\n\t\t\tvar flexWidths = settings.flexWidths;\n\t\t\tif (flexWidths) {\n\t\t\t\tfor (x = 0; x < flexWidths.length; x++) {\n\t\t\t\t\ttotalFlex += flexWidths[x];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttotalFlex = cols;\n\t\t\t}\n\n\t\t\t// Calculate new column widths based on flex values\n\t\t\tvar ratio = availableWidth / totalFlex;\n\t\t\tfor (x = 0; x < cols; x++) {\n\t\t\t\tcolWidths[x] += flexWidths ? flexWidths[x] * ratio : ratio;\n\t\t\t}\n\n\t\t\t// Move/resize controls\n\t\t\tposY = contPaddingBox.top;\n\t\t\tfor (y = 0; y < rows; y++) {\n\t\t\t\tposX = contPaddingBox.left;\n\t\t\t\theight = rowHeights[y] + flexV;\n\n\t\t\t\tfor (x = 0; x < cols; x++) {\n\t\t\t\t\tif (reverseRows) {\n\t\t\t\t\t\tidx = y * cols + cols - 1 - x;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tidx = y * cols + x;\n\t\t\t\t\t}\n\n\t\t\t\t\tctrl = items[idx];\n\n\t\t\t\t\t// No more controls to render then break\n\t\t\t\t\tif (!ctrl) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Get control settings and calculate x, y\n\t\t\t\t\tctrlSettings = ctrl.settings;\n\t\t\t\t\tctrlLayoutRect = ctrl.layoutRect();\n\t\t\t\t\twidth = Math.max(colWidths[x], ctrlLayoutRect.startMinWidth);\n\t\t\t\t\tctrlLayoutRect.x = posX;\n\t\t\t\t\tctrlLayoutRect.y = posY;\n\n\t\t\t\t\t// Align control horizontal\n\t\t\t\t\talign = ctrlSettings.alignH || (alignH ? (alignH[x] || alignH[0]) : null);\n\t\t\t\t\tif (align == \"center\") {\n\t\t\t\t\t\tctrlLayoutRect.x = posX + (width / 2) - (ctrlLayoutRect.w / 2);\n\t\t\t\t\t} else if (align == \"right\") {\n\t\t\t\t\t\tctrlLayoutRect.x = posX + width - ctrlLayoutRect.w;\n\t\t\t\t\t} else if (align == \"stretch\") {\n\t\t\t\t\t\tctrlLayoutRect.w = width;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Align control vertical\n\t\t\t\t\talign = ctrlSettings.alignV || (alignV ? (alignV[x] || alignV[0]) : null);\n\t\t\t\t\tif (align == \"center\") {\n\t\t\t\t\t\tctrlLayoutRect.y = posY + (height / 2) - (ctrlLayoutRect.h / 2);\n\t\t\t\t\t} else if (align == \"bottom\") {\n\t\t\t\t\t\tctrlLayoutRect.y = posY + height - ctrlLayoutRect.h;\n\t\t\t\t\t} else if (align == \"stretch\") {\n\t\t\t\t\t\tctrlLayoutRect.h = height;\n\t\t\t\t\t}\n\n\t\t\t\t\tctrl.layoutRect(ctrlLayoutRect);\n\n\t\t\t\t\tposX += width + spacingH;\n\n\t\t\t\t\tif (ctrl.recalc) {\n\t\t\t\t\t\tctrl.recalc();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tposY += height + spacingV;\n\t\t\t}\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/Iframe.js\n\n/**\n * Iframe.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/*jshint scripturl:true */\n\n/**\n * This class creates an iframe.\n *\n * @setting {String} url Url to open in the iframe.\n *\n * @-x-less Iframe.less\n * @class tinymce.ui.Iframe\n * @extends tinymce.ui.Widget\n */\ndefine(\"tinymce/ui/Iframe\", [\n\t\"tinymce/ui/Widget\",\n\t\"tinymce/util/Delay\"\n], function(Widget, Delay) {\n\t\"use strict\";\n\n\treturn Widget.extend({\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.classes.add('iframe');\n\t\t\tself.canFocus = false;\n\n\t\t\t/*eslint no-script-url:0 */\n\t\t\treturn (\n\t\t\t\t''\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Setter for the iframe source.\n\t\t *\n\t\t * @method src\n\t\t * @param {String} src Source URL for iframe.\n\t\t */\n\t\tsrc: function(src) {\n\t\t\tthis.getEl().src = src;\n\t\t},\n\n\t\t/**\n\t\t * Inner HTML for the iframe.\n\t\t *\n\t\t * @method html\n\t\t * @param {String} html HTML string to set as HTML inside the iframe.\n\t\t * @param {function} callback Optional callback to execute when the iframe body is filled with contents.\n\t\t * @return {tinymce.ui.Iframe} Current iframe control.\n\t\t */\n\t\thtml: function(html, callback) {\n\t\t\tvar self = this, body = this.getEl().contentWindow.document.body;\n\n\t\t\t// Wait for iframe to initialize IE 10 takes time\n\t\t\tif (!body) {\n\t\t\t\tDelay.setTimeout(function() {\n\t\t\t\t\tself.html(html);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tbody.innerHTML = html;\n\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this;\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/InfoBox.js\n\n/**\n * InfoBox.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2016 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * ....\n *\n * @-x-less InfoBox.less\n * @class tinymce.ui.InfoBox\n * @extends tinymce.ui.Widget\n */\ndefine(\"tinymce/ui/InfoBox\", [\n\t\"tinymce/ui/Widget\"\n], function(Widget) {\n\t\"use strict\";\n\n\treturn Widget.extend({\n\t\t/**\n\t\t * Constructs a instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t * @setting {Boolean} multiline Multiline label.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this;\n\n\t\t\tself._super(settings);\n\t\t\tself.classes.add('widget').add('infobox');\n\t\t\tself.canFocus = false;\n\t\t},\n\n\t\tseverity: function(level) {\n\t\t\tthis.classes.remove('error');\n\t\t\tthis.classes.remove('warning');\n\t\t\tthis.classes.remove('success');\n\t\t\tthis.classes.add(level);\n\t\t},\n\n\t\thelp: function(state) {\n\t\t\tthis.state.set('help', state);\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, prefix = self.classPrefix;\n\n\t\t\treturn (\n\t\t\t\t'
    ' +\n\t\t\t\t\t'
    ' +\n\t\t\t\t\t\tself.encode(self.state.get('text')) +\n\t\t\t\t\t\t'' +\n\t\t\t\t\t'
    ' +\n\t\t\t\t'
    '\n\t\t\t);\n\t\t},\n\n\t\tbindStates: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.state.on('change:text', function(e) {\n\t\t\t\tself.getEl('body').firstChild.data = self.encode(e.value);\n\n\t\t\t\tif (self.state.get('rendered')) {\n\t\t\t\t\tself.updateLayoutRect();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tself.state.on('change:help', function(e) {\n\t\t\t\tself.classes.toggle('has-help', e.value);\n\n\t\t\t\tif (self.state.get('rendered')) {\n\t\t\t\t\tself.updateLayoutRect();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn self._super();\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/Label.js\n\n/**\n * Label.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class creates a label element. A label is a simple text control\n * that can be bound to other controls.\n *\n * @-x-less Label.less\n * @class tinymce.ui.Label\n * @extends tinymce.ui.Widget\n */\ndefine(\"tinymce/ui/Label\", [\n\t\"tinymce/ui/Widget\",\n\t\"tinymce/ui/DomUtils\"\n], function(Widget, DomUtils) {\n\t\"use strict\";\n\n\treturn Widget.extend({\n\t\t/**\n\t\t * Constructs a instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t * @setting {Boolean} multiline Multiline label.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this;\n\n\t\t\tself._super(settings);\n\t\t\tself.classes.add('widget').add('label');\n\t\t\tself.canFocus = false;\n\n\t\t\tif (settings.multiline) {\n\t\t\t\tself.classes.add('autoscroll');\n\t\t\t}\n\n\t\t\tif (settings.strong) {\n\t\t\t\tself.classes.add('strong');\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Initializes the current controls layout rect.\n\t\t * This will be executed by the layout managers to determine the\n\t\t * default minWidth/minHeight etc.\n\t\t *\n\t\t * @method initLayoutRect\n\t\t * @return {Object} Layout rect instance.\n\t\t */\n\t\tinitLayoutRect: function() {\n\t\t\tvar self = this, layoutRect = self._super();\n\n\t\t\tif (self.settings.multiline) {\n\t\t\t\tvar size = DomUtils.getSize(self.getEl());\n\n\t\t\t\t// Check if the text fits within maxW if not then try word wrapping it\n\t\t\t\tif (size.width > layoutRect.maxW) {\n\t\t\t\t\tlayoutRect.minW = layoutRect.maxW;\n\t\t\t\t\tself.classes.add('multiline');\n\t\t\t\t}\n\n\t\t\t\tself.getEl().style.width = layoutRect.minW + 'px';\n\t\t\t\tlayoutRect.startMinH = layoutRect.h = layoutRect.minH = Math.min(layoutRect.maxH, DomUtils.getSize(self.getEl()).height);\n\t\t\t}\n\n\t\t\treturn layoutRect;\n\t\t},\n\n\t\t/**\n\t\t * Repaints the control after a layout operation.\n\t\t *\n\t\t * @method repaint\n\t\t */\n\t\trepaint: function() {\n\t\t\tvar self = this;\n\n\t\t\tif (!self.settings.multiline) {\n\t\t\t\tself.getEl().style.lineHeight = self.layoutRect().h + 'px';\n\t\t\t}\n\n\t\t\treturn self._super();\n\t\t},\n\n\t\tseverity: function(level) {\n\t\t\tthis.classes.remove('error');\n\t\t\tthis.classes.remove('warning');\n\t\t\tthis.classes.remove('success');\n\t\t\tthis.classes.add(level);\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, targetCtrl, forName, forId = self.settings.forId;\n\n\t\t\tif (!forId && (forName = self.settings.forName)) {\n\t\t\t\ttargetCtrl = self.getRoot().find('#' + forName)[0];\n\n\t\t\t\tif (targetCtrl) {\n\t\t\t\t\tforId = targetCtrl._id;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (forId) {\n\t\t\t\treturn (\n\t\t\t\t\t''\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t'' +\n\t\t\t\t\tself.encode(self.state.get('text')) +\n\t\t\t\t''\n\t\t\t);\n\t\t},\n\n\t\tbindStates: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.state.on('change:text', function(e) {\n\t\t\t\tself.innerHtml(self.encode(e.value));\n\n\t\t\t\tif (self.state.get('rendered')) {\n\t\t\t\t\tself.updateLayoutRect();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn self._super();\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/Toolbar.js\n\n/**\n * Toolbar.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Creates a new toolbar.\n *\n * @class tinymce.ui.Toolbar\n * @extends tinymce.ui.Container\n */\ndefine(\"tinymce/ui/Toolbar\", [\n\t\"tinymce/ui/Container\"\n], function(Container) {\n\t\"use strict\";\n\n\treturn Container.extend({\n\t\tDefaults: {\n\t\t\trole: 'toolbar',\n\t\t\tlayout: 'flow'\n\t\t},\n\n\t\t/**\n\t\t * Constructs a instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this;\n\n\t\t\tself._super(settings);\n\t\t\tself.classes.add('toolbar');\n\t\t},\n\n\t\t/**\n\t\t * Called after the control has been rendered.\n\t\t *\n\t\t * @method postRender\n\t\t */\n\t\tpostRender: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.items().each(function(ctrl) {\n\t\t\t\tctrl.classes.add('toolbar-item');\n\t\t\t});\n\n\t\t\treturn self._super();\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/MenuBar.js\n\n/**\n * MenuBar.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Creates a new menubar.\n *\n * @-x-less MenuBar.less\n * @class tinymce.ui.MenuBar\n * @extends tinymce.ui.Container\n */\ndefine(\"tinymce/ui/MenuBar\", [\n\t\"tinymce/ui/Toolbar\"\n], function(Toolbar) {\n\t\"use strict\";\n\n\treturn Toolbar.extend({\n\t\tDefaults: {\n\t\t\trole: 'menubar',\n\t\t\tcontainerCls: 'menubar',\n\t\t\tariaRoot: true,\n\t\t\tdefaults: {\n\t\t\t\ttype: 'menubutton'\n\t\t\t}\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/MenuButton.js\n\n/**\n * MenuButton.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Creates a new menu button.\n *\n * @-x-less MenuButton.less\n * @class tinymce.ui.MenuButton\n * @extends tinymce.ui.Button\n */\ndefine(\"tinymce/ui/MenuButton\", [\n\t\"tinymce/ui/Button\",\n\t\"tinymce/ui/Factory\",\n\t\"tinymce/ui/MenuBar\"\n], function(Button, Factory, MenuBar) {\n\t\"use strict\";\n\n\t// TODO: Maybe add as some global function\n\tfunction isChildOf(node, parent) {\n\t\twhile (node) {\n\t\t\tif (parent === node) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tnode = node.parentNode;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tvar MenuButton = Button.extend({\n\t\t/**\n\t\t * Constructs a instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this;\n\n\t\t\tself._renderOpen = true;\n\n\t\t\tself._super(settings);\n\t\t\tsettings = self.settings;\n\n\t\t\tself.classes.add('menubtn');\n\n\t\t\tif (settings.fixedWidth) {\n\t\t\t\tself.classes.add('fixed-width');\n\t\t\t}\n\n\t\t\tself.aria('haspopup', true);\n\n\t\t\tself.state.set('menu', settings.menu || self.render());\n\t\t},\n\n\t\t/**\n\t\t * Shows the menu for the button.\n\t\t *\n\t\t * @method showMenu\n\t\t */\n\t\tshowMenu: function(toggle) {\n\t\t\tvar self = this, menu;\n\n\t\t\tif (self.menu && self.menu.visible() && toggle !== false) {\n\t\t\t\treturn self.hideMenu();\n\t\t\t}\n\n\t\t\tif (!self.menu) {\n\t\t\t\tmenu = self.state.get('menu') || [];\n\n\t\t\t\t// Is menu array then auto constuct menu control\n\t\t\t\tif (menu.length) {\n\t\t\t\t\tmenu = {\n\t\t\t\t\t\ttype: 'menu',\n\t\t\t\t\t\titems: menu\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tmenu.type = menu.type || 'menu';\n\t\t\t\t}\n\n\t\t\t\tif (!menu.renderTo) {\n\t\t\t\t\tself.menu = Factory.create(menu).parent(self).renderTo();\n\t\t\t\t} else {\n\t\t\t\t\tself.menu = menu.parent(self).show().renderTo();\n\t\t\t\t}\n\n\t\t\t\tself.fire('createmenu');\n\t\t\t\tself.menu.reflow();\n\t\t\t\tself.menu.on('cancel', function(e) {\n\t\t\t\t\tif (e.control.parent() === self.menu) {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tself.focus();\n\t\t\t\t\t\tself.hideMenu();\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Move focus to button when a menu item is selected/clicked\n\t\t\t\tself.menu.on('select', function() {\n\t\t\t\t\tself.focus();\n\t\t\t\t});\n\n\t\t\t\tself.menu.on('show hide', function(e) {\n\t\t\t\t\tif (e.control == self.menu) {\n\t\t\t\t\t\tself.activeMenu(e.type == 'show');\n\t\t\t\t\t}\n\n\t\t\t\t\tself.aria('expanded', e.type == 'show');\n\t\t\t\t}).fire('show');\n\t\t\t}\n\n\t\t\tself.menu.show();\n\t\t\tself.menu.layoutRect({w: self.layoutRect().w});\n\t\t\tself.menu.moveRel(self.getEl(), self.isRtl() ? ['br-tr', 'tr-br'] : ['bl-tl', 'tl-bl']);\n\t\t\tself.fire('showmenu');\n\t\t},\n\n\t\t/**\n\t\t * Hides the menu for the button.\n\t\t *\n\t\t * @method hideMenu\n\t\t */\n\t\thideMenu: function() {\n\t\t\tvar self = this;\n\n\t\t\tif (self.menu) {\n\t\t\t\tself.menu.items().each(function(item) {\n\t\t\t\t\tif (item.hideMenu) {\n\t\t\t\t\t\titem.hideMenu();\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tself.menu.hide();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Sets the active menu state.\n\t\t *\n\t\t * @private\n\t\t */\n\t\tactiveMenu: function(state) {\n\t\t\tthis.classes.toggle('active', state);\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, id = self._id, prefix = self.classPrefix;\n\t\t\tvar icon = self.settings.icon, image, text = self.state.get('text'),\n\t\t\t\ttextHtml = '';\n\n\t\t\timage = self.settings.image;\n\t\t\tif (image) {\n\t\t\t\ticon = 'none';\n\n\t\t\t\t// Support for [high dpi, low dpi] image sources\n\t\t\t\tif (typeof image != \"string\") {\n\t\t\t\t\timage = window.getSelection ? image[0] : image[1];\n\t\t\t\t}\n\n\t\t\t\timage = ' style=\"background-image: url(\\'' + image + '\\')\"';\n\t\t\t} else {\n\t\t\t\timage = '';\n\t\t\t}\n\n\t\t\tif (text) {\n\t\t\t\tself.classes.add('btn-has-text');\n\t\t\t\ttextHtml = '' + self.encode(text) + '';\n\t\t\t}\n\n\t\t\ticon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + icon : '';\n\n\t\t\tself.aria('role', self.parent() instanceof MenuBar ? 'menuitem' : 'button');\n\n\t\t\treturn (\n\t\t\t\t'
    ' +\n\t\t\t\t\t'' +\n\t\t\t\t'
    '\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Gets invoked after the control has been rendered.\n\t\t *\n\t\t * @method postRender\n\t\t */\n\t\tpostRender: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.on('click', function(e) {\n\t\t\t\tif (e.control === self && isChildOf(e.target, self.getEl())) {\n\t\t\t\t\tself.focus();\n\t\t\t\t\tself.showMenu(!e.aria);\n\n\t\t\t\t\tif (e.aria) {\n\t\t\t\t\t\tself.menu.items().filter(':visible')[0].focus();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tself.on('mouseenter', function(e) {\n\t\t\t\tvar overCtrl = e.control, parent = self.parent(), hasVisibleSiblingMenu;\n\n\t\t\t\tif (overCtrl && parent && overCtrl instanceof MenuButton && overCtrl.parent() == parent) {\n\t\t\t\t\tparent.items().filter('MenuButton').each(function(ctrl) {\n\t\t\t\t\t\tif (ctrl.hideMenu && ctrl != overCtrl) {\n\t\t\t\t\t\t\tif (ctrl.menu && ctrl.menu.visible()) {\n\t\t\t\t\t\t\t\thasVisibleSiblingMenu = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tctrl.hideMenu();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tif (hasVisibleSiblingMenu) {\n\t\t\t\t\t\toverCtrl.focus(); // Fix for: #5887\n\t\t\t\t\t\toverCtrl.showMenu();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn self._super();\n\t\t},\n\n\t\tbindStates: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.state.on('change:menu', function() {\n\t\t\t\tif (self.menu) {\n\t\t\t\t\tself.menu.remove();\n\t\t\t\t}\n\n\t\t\t\tself.menu = null;\n\t\t\t});\n\n\t\t\treturn self._super();\n\t\t},\n\n\t\t/**\n\t\t * Removes the control and it's menus.\n\t\t *\n\t\t * @method remove\n\t\t */\n\t\tremove: function() {\n\t\t\tthis._super();\n\n\t\t\tif (this.menu) {\n\t\t\t\tthis.menu.remove();\n\t\t\t}\n\t\t}\n\t});\n\n\treturn MenuButton;\n});\n\n// Included from: js/tinymce/classes/ui/MenuItem.js\n\n/**\n * MenuItem.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Creates a new menu item.\n *\n * @-x-less MenuItem.less\n * @class tinymce.ui.MenuItem\n * @extends tinymce.ui.Control\n */\ndefine(\"tinymce/ui/MenuItem\", [\n\t\"tinymce/ui/Widget\",\n\t\"tinymce/ui/Factory\",\n\t\"tinymce/Env\",\n\t\"tinymce/util/Delay\"\n], function(Widget, Factory, Env, Delay) {\n\t\"use strict\";\n\n\treturn Widget.extend({\n\t\tDefaults: {\n\t\t\tborder: 0,\n\t\t\trole: 'menuitem'\n\t\t},\n\n\t\t/**\n\t\t * Constructs a instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t * @setting {Boolean} selectable Selectable menu.\n\t\t * @setting {Array} menu Submenu array with items.\n\t\t * @setting {String} shortcut Shortcut to display for menu item. Example: Ctrl+X\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this, text;\n\n\t\t\tself._super(settings);\n\n\t\t\tsettings = self.settings;\n\n\t\t\tself.classes.add('menu-item');\n\n\t\t\tif (settings.menu) {\n\t\t\t\tself.classes.add('menu-item-expand');\n\t\t\t}\n\n\t\t\tif (settings.preview) {\n\t\t\t\tself.classes.add('menu-item-preview');\n\t\t\t}\n\n\t\t\ttext = self.state.get('text');\n\t\t\tif (text === '-' || text === '|') {\n\t\t\t\tself.classes.add('menu-item-sep');\n\t\t\t\tself.aria('role', 'separator');\n\t\t\t\tself.state.set('text', '-');\n\t\t\t}\n\n\t\t\tif (settings.selectable) {\n\t\t\t\tself.aria('role', 'menuitemcheckbox');\n\t\t\t\tself.classes.add('menu-item-checkbox');\n\t\t\t\tsettings.icon = 'selected';\n\t\t\t}\n\n\t\t\tif (!settings.preview && !settings.selectable) {\n\t\t\t\tself.classes.add('menu-item-normal');\n\t\t\t}\n\n\t\t\tself.on('mousedown', function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t});\n\n\t\t\tif (settings.menu && !settings.ariaHideMenu) {\n\t\t\t\tself.aria('haspopup', true);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Returns true/false if the menuitem has sub menu.\n\t\t *\n\t\t * @method hasMenus\n\t\t * @return {Boolean} True/false state if it has submenu.\n\t\t */\n\t\thasMenus: function() {\n\t\t\treturn !!this.settings.menu;\n\t\t},\n\n\t\t/**\n\t\t * Shows the menu for the menu item.\n\t\t *\n\t\t * @method showMenu\n\t\t */\n\t\tshowMenu: function() {\n\t\t\tvar self = this, settings = self.settings, menu, parent = self.parent();\n\n\t\t\tparent.items().each(function(ctrl) {\n\t\t\t\tif (ctrl !== self) {\n\t\t\t\t\tctrl.hideMenu();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (settings.menu) {\n\t\t\t\tmenu = self.menu;\n\n\t\t\t\tif (!menu) {\n\t\t\t\t\tmenu = settings.menu;\n\n\t\t\t\t\t// Is menu array then auto constuct menu control\n\t\t\t\t\tif (menu.length) {\n\t\t\t\t\t\tmenu = {\n\t\t\t\t\t\t\ttype: 'menu',\n\t\t\t\t\t\t\titems: menu\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmenu.type = menu.type || 'menu';\n\t\t\t\t\t}\n\n\t\t\t\t\tif (parent.settings.itemDefaults) {\n\t\t\t\t\t\tmenu.itemDefaults = parent.settings.itemDefaults;\n\t\t\t\t\t}\n\n\t\t\t\t\tmenu = self.menu = Factory.create(menu).parent(self).renderTo();\n\t\t\t\t\tmenu.reflow();\n\t\t\t\t\tmenu.on('cancel', function(e) {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tself.focus();\n\t\t\t\t\t\tmenu.hide();\n\t\t\t\t\t});\n\t\t\t\t\tmenu.on('show hide', function(e) {\n\t\t\t\t\t\tif (e.control.items) {\n\t\t\t\t\t\t\te.control.items().each(function(ctrl) {\n\t\t\t\t\t\t\t\tctrl.active(ctrl.settings.selected);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}).fire('show');\n\n\t\t\t\t\tmenu.on('hide', function(e) {\n\t\t\t\t\t\tif (e.control === menu) {\n\t\t\t\t\t\t\tself.classes.remove('selected');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tmenu.submenu = true;\n\t\t\t\t} else {\n\t\t\t\t\tmenu.show();\n\t\t\t\t}\n\n\t\t\t\tmenu._parentMenu = parent;\n\n\t\t\t\tmenu.classes.add('menu-sub');\n\n\t\t\t\tvar rel = menu.testMoveRel(\n\t\t\t\t\tself.getEl(),\n\t\t\t\t\tself.isRtl() ? ['tl-tr', 'bl-br', 'tr-tl', 'br-bl'] : ['tr-tl', 'br-bl', 'tl-tr', 'bl-br']\n\t\t\t\t);\n\n\t\t\t\tmenu.moveRel(self.getEl(), rel);\n\t\t\t\tmenu.rel = rel;\n\n\t\t\t\trel = 'menu-sub-' + rel;\n\t\t\t\tmenu.classes.remove(menu._lastRel).add(rel);\n\t\t\t\tmenu._lastRel = rel;\n\n\t\t\t\tself.classes.add('selected');\n\t\t\t\tself.aria('expanded', true);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Hides the menu for the menu item.\n\t\t *\n\t\t * @method hideMenu\n\t\t */\n\t\thideMenu: function() {\n\t\t\tvar self = this;\n\n\t\t\tif (self.menu) {\n\t\t\t\tself.menu.items().each(function(item) {\n\t\t\t\t\tif (item.hideMenu) {\n\t\t\t\t\t\titem.hideMenu();\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tself.menu.hide();\n\t\t\t\tself.aria('expanded', false);\n\t\t\t}\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, id = self._id, settings = self.settings, prefix = self.classPrefix, text = self.state.get('text');\n\t\t\tvar icon = self.settings.icon, image = '', shortcut = settings.shortcut;\n\t\t\tvar url = self.encode(settings.url), iconHtml = '';\n\n\t\t\t// Converts shortcut format to Mac/PC variants\n\t\t\tfunction convertShortcut(shortcut) {\n\t\t\t\tvar i, value, replace = {};\n\n\t\t\t\tif (Env.mac) {\n\t\t\t\t\treplace = {\n\t\t\t\t\t\talt: '⌥',\n\t\t\t\t\t\tctrl: '⌘',\n\t\t\t\t\t\tshift: '⇧',\n\t\t\t\t\t\tmeta: '⌘'\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\treplace = {\n\t\t\t\t\t\tmeta: 'Ctrl'\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tshortcut = shortcut.split('+');\n\n\t\t\t\tfor (i = 0; i < shortcut.length; i++) {\n\t\t\t\t\tvalue = replace[shortcut[i].toLowerCase()];\n\n\t\t\t\t\tif (value) {\n\t\t\t\t\t\tshortcut[i] = value;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn shortcut.join('+');\n\t\t\t}\n\n\t\t\tfunction escapeRegExp(str) {\n\t\t\t\treturn str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n\t\t\t}\n\n\t\t\tfunction markMatches(text) {\n\t\t\t\tvar match = settings.match || '';\n\n\t\t\t\treturn match ? text.replace(new RegExp(escapeRegExp(match), 'gi'), function (match) {\n\t\t\t\t\treturn '!mce~match[' + match + ']mce~match!';\n\t\t\t\t}) : text;\n\t\t\t}\n\n\t\t\tfunction boldMatches(text) {\n\t\t\t\treturn text.\n\t\t\t\t\treplace(new RegExp(escapeRegExp('!mce~match['), 'g'), '').\n\t\t\t\t\treplace(new RegExp(escapeRegExp(']mce~match!'), 'g'), '');\n\t\t\t}\n\n\t\t\tif (icon) {\n\t\t\t\tself.parent().classes.add('menu-has-icons');\n\t\t\t}\n\n\t\t\tif (settings.image) {\n\t\t\t\timage = ' style=\"background-image: url(\\'' + settings.image + '\\')\"';\n\t\t\t}\n\n\t\t\tif (shortcut) {\n\t\t\t\tshortcut = convertShortcut(shortcut);\n\t\t\t}\n\n\t\t\ticon = prefix + 'ico ' + prefix + 'i-' + (self.settings.icon || 'none');\n\t\t\ticonHtml = (text !== '-' ? '\\u00a0' : '');\n\n\t\t\ttext = boldMatches(self.encode(markMatches(text)));\n\t\t\turl = boldMatches(self.encode(markMatches(url)));\n\n\t\t\treturn (\n\t\t\t\t'
    ' +\n\t\t\t\t\ticonHtml +\n\t\t\t\t\t(text !== '-' ? '' + text + '' : '') +\n\t\t\t\t\t(shortcut ? '
    ' + shortcut + '
    ' : '') +\n\t\t\t\t\t(settings.menu ? '
    ' : '') +\n\t\t\t\t\t(url ? '
    ' + url + '
    ' : '') +\n\t\t\t\t'
    '\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Gets invoked after the control has been rendered.\n\t\t *\n\t\t * @method postRender\n\t\t */\n\t\tpostRender: function() {\n\t\t\tvar self = this, settings = self.settings;\n\n\t\t\tvar textStyle = settings.textStyle;\n\t\t\tif (typeof textStyle == \"function\") {\n\t\t\t\ttextStyle = textStyle.call(this);\n\t\t\t}\n\n\t\t\tif (textStyle) {\n\t\t\t\tvar textElm = self.getEl('text');\n\t\t\t\tif (textElm) {\n\t\t\t\t\ttextElm.setAttribute('style', textStyle);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tself.on('mouseenter click', function(e) {\n\t\t\t\tif (e.control === self) {\n\t\t\t\t\tif (!settings.menu && e.type === 'click') {\n\t\t\t\t\t\tself.fire('select');\n\n\t\t\t\t\t\t// Edge will crash if you stress it see #2660\n\t\t\t\t\t\tDelay.requestAnimationFrame(function() {\n\t\t\t\t\t\t\tself.parent().hideAll();\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.showMenu();\n\n\t\t\t\t\t\tif (e.aria) {\n\t\t\t\t\t\t\tself.menu.focus(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tself._super();\n\n\t\t\treturn self;\n\t\t},\n\n\t\thover: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.parent().items().each(function(ctrl) {\n\t\t\t\tctrl.classes.remove('selected');\n\t\t\t});\n\n\t\t\tself.classes.toggle('selected', true);\n\n\t\t\treturn self;\n\t\t},\n\n\t\tactive: function(state) {\n\t\t\tif (typeof state != \"undefined\") {\n\t\t\t\tthis.aria('checked', state);\n\t\t\t}\n\n\t\t\treturn this._super(state);\n\t\t},\n\n\t\t/**\n\t\t * Removes the control and it's menus.\n\t\t *\n\t\t * @method remove\n\t\t */\n\t\tremove: function() {\n\t\t\tthis._super();\n\n\t\t\tif (this.menu) {\n\t\t\t\tthis.menu.remove();\n\t\t\t}\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/Throbber.js\n\n/**\n * Throbber.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class enables you to display a Throbber for any element.\n *\n * @-x-less Throbber.less\n * @class tinymce.ui.Throbber\n */\ndefine(\"tinymce/ui/Throbber\", [\n\t\"tinymce/dom/DomQuery\",\n\t\"tinymce/ui/Control\",\n\t\"tinymce/util/Delay\"\n], function($, Control, Delay) {\n\t\"use strict\";\n\n\t/**\n\t * Constructs a new throbber.\n\t *\n\t * @constructor\n\t * @param {Element} elm DOM Html element to display throbber in.\n\t * @param {Boolean} inline Optional true/false state if the throbber should be appended to end of element for infinite scroll.\n\t */\n\treturn function(elm, inline) {\n\t\tvar self = this, state, classPrefix = Control.classPrefix, timer;\n\n\t\t/**\n\t\t * Shows the throbber.\n\t\t *\n\t\t * @method show\n\t\t * @param {Number} [time] Time to wait before showing.\n\t\t * @param {function} [callback] Optional callback to execute when the throbber is shown.\n\t\t * @return {tinymce.ui.Throbber} Current throbber instance.\n\t\t */\n\t\tself.show = function(time, callback) {\n\t\t\tfunction render() {\n\t\t\t\t\tif (state) {\n\t\t\t\t\t\t$(elm).append(\n\t\t\t\t\t\t\t'
    '\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (callback) {\n\t\t\t\t\t\t\tcallback();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t}\n\n\t\t\tself.hide();\n\n\t\t\tstate = true;\n\n\t\t\tif (time) {\n\t\t\t\ttimer = Delay.setTimeout(render, time);\n\t\t\t} else {\n\t\t\t\trender();\n\t\t\t}\n\n\t\t\treturn self;\n\t\t};\n\n\t\t/**\n\t\t * Hides the throbber.\n\t\t *\n\t\t * @method hide\n\t\t * @return {tinymce.ui.Throbber} Current throbber instance.\n\t\t */\n\t\tself.hide = function() {\n\t\t\tvar child = elm.lastChild;\n\n\t\t\tDelay.clearTimeout(timer);\n\n\t\t\tif (child && child.className.indexOf('throbber') != -1) {\n\t\t\t\tchild.parentNode.removeChild(child);\n\t\t\t}\n\n\t\t\tstate = false;\n\n\t\t\treturn self;\n\t\t};\n\t};\n});\n\n// Included from: js/tinymce/classes/ui/Menu.js\n\n/**\n * Menu.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Creates a new menu.\n *\n * @-x-less Menu.less\n * @class tinymce.ui.Menu\n * @extends tinymce.ui.FloatPanel\n */\ndefine(\"tinymce/ui/Menu\", [\n\t\"tinymce/ui/FloatPanel\",\n\t\"tinymce/ui/MenuItem\",\n\t\"tinymce/ui/Throbber\",\n\t\"tinymce/util/Tools\"\n], function(FloatPanel, MenuItem, Throbber, Tools) {\n\t\"use strict\";\n\n\treturn FloatPanel.extend({\n\t\tDefaults: {\n\t\t\tdefaultType: 'menuitem',\n\t\t\tborder: 1,\n\t\t\tlayout: 'stack',\n\t\t\trole: 'application',\n\t\t\tbodyRole: 'menu',\n\t\t\tariaRoot: true\n\t\t},\n\n\t\t/**\n\t\t * Constructs a instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this;\n\n\t\t\tsettings.autohide = true;\n\t\t\tsettings.constrainToViewport = true;\n\n\t\t\tif (typeof settings.items === 'function') {\n\t\t\t\tsettings.itemsFactory = settings.items;\n\t\t\t\tsettings.items = [];\n\t\t\t}\n\n\t\t\tif (settings.itemDefaults) {\n\t\t\t\tvar items = settings.items, i = items.length;\n\n\t\t\t\twhile (i--) {\n\t\t\t\t\titems[i] = Tools.extend({}, settings.itemDefaults, items[i]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tself._super(settings);\n\t\t\tself.classes.add('menu');\n\t\t},\n\n\t\t/**\n\t\t * Repaints the control after a layout operation.\n\t\t *\n\t\t * @method repaint\n\t\t */\n\t\trepaint: function() {\n\t\t\tthis.classes.toggle('menu-align', true);\n\n\t\t\tthis._super();\n\n\t\t\tthis.getEl().style.height = '';\n\t\t\tthis.getEl('body').style.height = '';\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Hides/closes the menu.\n\t\t *\n\t\t * @method cancel\n\t\t */\n\t\tcancel: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.hideAll();\n\t\t\tself.fire('select');\n\t\t},\n\n\t\t/**\n\t\t * Loads new items from the factory items function.\n\t\t *\n\t\t * @method load\n\t\t */\n\t\tload: function() {\n\t\t\tvar self = this, time, factory;\n\n\t\t\tfunction hideThrobber() {\n\t\t\t\tif (self.throbber) {\n\t\t\t\t\tself.throbber.hide();\n\t\t\t\t\tself.throbber = null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfactory = self.settings.itemsFactory;\n\t\t\tif (!factory) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!self.throbber) {\n\t\t\t\tself.throbber = new Throbber(self.getEl('body'), true);\n\n\t\t\t\tif (self.items().length === 0) {\n\t\t\t\t\tself.throbber.show();\n\t\t\t\t\tself.fire('loading');\n\t\t\t\t} else {\n\t\t\t\t\tself.throbber.show(100, function() {\n\t\t\t\t\t\tself.items().remove();\n\t\t\t\t\t\tself.fire('loading');\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tself.on('hide close', hideThrobber);\n\t\t\t}\n\n\t\t\tself.requestTime = time = new Date().getTime();\n\n\t\t\tself.settings.itemsFactory(function(items) {\n\t\t\t\tif (items.length === 0) {\n\t\t\t\t\tself.hide();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (self.requestTime !== time) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tself.getEl().style.width = '';\n\t\t\t\tself.getEl('body').style.width = '';\n\n\t\t\t\thideThrobber();\n\t\t\t\tself.items().remove();\n\t\t\t\tself.getEl('body').innerHTML = '';\n\n\t\t\t\tself.add(items);\n\t\t\t\tself.renderNew();\n\t\t\t\tself.fire('loaded');\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Hide menu and all sub menus.\n\t\t *\n\t\t * @method hideAll\n\t\t */\n\t\thideAll: function() {\n\t\t\tvar self = this;\n\n\t\t\tthis.find('menuitem').exec('hideMenu');\n\n\t\t\treturn self._super();\n\t\t},\n\n\t\t/**\n\t\t * Invoked before the menu is rendered.\n\t\t *\n\t\t * @method preRender\n\t\t */\n\t\tpreRender: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.items().each(function(ctrl) {\n\t\t\t\tvar settings = ctrl.settings;\n\n\t\t\t\tif (settings.icon || settings.image || settings.selectable) {\n\t\t\t\t\tself._hasIcons = true;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (self.settings.itemsFactory) {\n\t\t\t\tself.on('postrender', function() {\n\t\t\t\t\tif (self.settings.itemsFactory) {\n\t\t\t\t\t\tself.load();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn self._super();\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/ListBox.js\n\n/**\n * ListBox.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Creates a new list box control.\n *\n * @-x-less ListBox.less\n * @class tinymce.ui.ListBox\n * @extends tinymce.ui.MenuButton\n */\ndefine(\"tinymce/ui/ListBox\", [\n\t\"tinymce/ui/MenuButton\",\n\t\"tinymce/ui/Menu\"\n], function(MenuButton, Menu) {\n\t\"use strict\";\n\n\treturn MenuButton.extend({\n\t\t/**\n\t\t * Constructs a instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t * @setting {Array} values Array with values to add to list box.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this, values, selected, selectedText, lastItemCtrl;\n\n\t\t\tfunction setSelected(menuValues) {\n\t\t\t\t// Try to find a selected value\n\t\t\t\tfor (var i = 0; i < menuValues.length; i++) {\n\t\t\t\t\tselected = menuValues[i].selected || settings.value === menuValues[i].value;\n\n\t\t\t\t\tif (selected) {\n\t\t\t\t\t\tselectedText = selectedText || menuValues[i].text;\n\t\t\t\t\t\tself.state.set('value', menuValues[i].value);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\t// If the value has a submenu, try to find the selected values in that menu\n\t\t\t\t\tif (menuValues[i].menu) {\n\t\t\t\t\t\tif (setSelected(menuValues[i].menu)) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tself._super(settings);\n\t\t\tsettings = self.settings;\n\n\t\t\tself._values = values = settings.values;\n\t\t\tif (values) {\n\t\t\t\tif (typeof settings.value != \"undefined\") {\n\t\t\t\t\tsetSelected(values);\n\t\t\t\t}\n\n\t\t\t\t// Default with first item\n\t\t\t\tif (!selected && values.length > 0) {\n\t\t\t\t\tselectedText = values[0].text;\n\t\t\t\t\tself.state.set('value', values[0].value);\n\t\t\t\t}\n\n\t\t\t\tself.state.set('menu', values);\n\t\t\t}\n\n\t\t\tself.state.set('text', settings.text || selectedText);\n\n\t\t\tself.classes.add('listbox');\n\n\t\t\tself.on('select', function(e) {\n\t\t\t\tvar ctrl = e.control;\n\n\t\t\t\tif (lastItemCtrl) {\n\t\t\t\t\te.lastControl = lastItemCtrl;\n\t\t\t\t}\n\n\t\t\t\tif (settings.multiple) {\n\t\t\t\t\tctrl.active(!ctrl.active());\n\t\t\t\t} else {\n\t\t\t\t\tself.value(e.control.value());\n\t\t\t\t}\n\n\t\t\t\tlastItemCtrl = ctrl;\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Getter/setter function for the control value.\n\t\t *\n\t\t * @method value\n\t\t * @param {String} [value] Value to be set.\n\t\t * @return {Boolean/tinymce.ui.ListBox} Value or self if it's a set operation.\n\t\t */\n\t\tbindStates: function() {\n\t\t\tvar self = this;\n\n\t\t\tfunction activateMenuItemsByValue(menu, value) {\n\t\t\t\tif (menu instanceof Menu) {\n\t\t\t\t\tmenu.items().each(function(ctrl) {\n\t\t\t\t\t\tif (!ctrl.hasMenus()) {\n\t\t\t\t\t\t\tctrl.active(ctrl.value() === value);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction getSelectedItem(menuValues, value) {\n\t\t\t\tvar selectedItem;\n\n\t\t\t\tif (!menuValues) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0; i < menuValues.length; i++) {\n\t\t\t\t\tif (menuValues[i].value === value) {\n\t\t\t\t\t\treturn menuValues[i];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (menuValues[i].menu) {\n\t\t\t\t\t\tselectedItem = getSelectedItem(menuValues[i].menu, value);\n\t\t\t\t\t\tif (selectedItem) {\n\t\t\t\t\t\t\treturn selectedItem;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tself.on('show', function(e) {\n\t\t\t\tactivateMenuItemsByValue(e.control, self.value());\n\t\t\t});\n\n\t\t\tself.state.on('change:value', function(e) {\n\t\t\t\tvar selectedItem = getSelectedItem(self.state.get('menu'), e.value);\n\n\t\t\t\tif (selectedItem) {\n\t\t\t\t\tself.text(selectedItem.text);\n\t\t\t\t} else {\n\t\t\t\t\tself.text(self.settings.text);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn self._super();\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/Radio.js\n\n/**\n * Radio.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Creates a new radio button.\n *\n * @-x-less Radio.less\n * @class tinymce.ui.Radio\n * @extends tinymce.ui.Checkbox\n */\ndefine(\"tinymce/ui/Radio\", [\n\t\"tinymce/ui/Checkbox\"\n], function(Checkbox) {\n\t\"use strict\";\n\n\treturn Checkbox.extend({\n\t\tDefaults: {\n\t\t\tclasses: \"radio\",\n\t\t\trole: \"radio\"\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/ResizeHandle.js\n\n/**\n * ResizeHandle.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Renders a resize handle that fires ResizeStart, Resize and ResizeEnd events.\n *\n * @-x-less ResizeHandle.less\n * @class tinymce.ui.ResizeHandle\n * @extends tinymce.ui.Widget\n */\ndefine(\"tinymce/ui/ResizeHandle\", [\n\t\"tinymce/ui/Widget\",\n\t\"tinymce/ui/DragHelper\"\n], function(Widget, DragHelper) {\n\t\"use strict\";\n\n\treturn Widget.extend({\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, prefix = self.classPrefix;\n\n\t\t\tself.classes.add('resizehandle');\n\n\t\t\tif (self.settings.direction == \"both\") {\n\t\t\t\tself.classes.add('resizehandle-both');\n\t\t\t}\n\n\t\t\tself.canFocus = false;\n\n\t\t\treturn (\n\t\t\t\t'
    ' +\n\t\t\t\t\t'' +\n\t\t\t\t'
    '\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Called after the control has been rendered.\n\t\t *\n\t\t * @method postRender\n\t\t */\n\t\tpostRender: function() {\n\t\t\tvar self = this;\n\n\t\t\tself._super();\n\n\t\t\tself.resizeDragHelper = new DragHelper(this._id, {\n\t\t\t\tstart: function() {\n\t\t\t\t\tself.fire('ResizeStart');\n\t\t\t\t},\n\n\t\t\t\tdrag: function(e) {\n\t\t\t\t\tif (self.settings.direction != \"both\") {\n\t\t\t\t\t\te.deltaX = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tself.fire('Resize', e);\n\t\t\t\t},\n\n\t\t\t\tstop: function() {\n\t\t\t\t\tself.fire('ResizeEnd');\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tremove: function() {\n\t\t\tif (this.resizeDragHelper) {\n\t\t\t\tthis.resizeDragHelper.destroy();\n\t\t\t}\n\n\t\t\treturn this._super();\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/SelectBox.js\n\n/**\n * SelectBox.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Creates a new select box control.\n *\n * @-x-less SelectBox.less\n * @class tinymce.ui.SelectBox\n * @extends tinymce.ui.Widget\n */\ndefine(\"tinymce/ui/SelectBox\", [\n\t\"tinymce/ui/Widget\"\n], function(Widget) {\n\t\"use strict\";\n\n\tfunction createOptions(options) {\n\t\tvar strOptions = '';\n\t\tif (options) {\n\t\t\tfor (var i = 0; i < options.length; i++) {\n\t\t\t\tstrOptions += '';\n\t\t\t}\n\t\t}\n\t\treturn strOptions;\n\t}\n\n\treturn Widget.extend({\n\t\tDefaults: {\n\t\t\tclasses: \"selectbox\",\n\t\t\trole: \"selectbox\",\n\t\t\toptions: []\n\t\t},\n\t\t/**\n\t\t * Constructs a instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t * @setting {Array} options Array with options to add to the select box.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this;\n\n\t\t\tself._super(settings);\n\n\t\t\tif (self.settings.size) {\n\t\t\t\tself.size = self.settings.size;\n\t\t\t}\n\n\t\t\tif (self.settings.options) {\n\t\t\t\tself._options = self.settings.options;\n\t\t\t}\n\n\t\t\tself.on('keydown', function(e) {\n\t\t\t\tvar rootControl;\n\n\t\t\t\tif (e.keyCode == 13) {\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t// Find root control that we can do toJSON on\n\t\t\t\t\tself.parents().reverse().each(function(ctrl) {\n\t\t\t\t\t\tif (ctrl.toJSON) {\n\t\t\t\t\t\t\trootControl = ctrl;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\t// Fire event on current text box with the serialized data of the whole form\n\t\t\t\t\tself.fire('submit', {data: rootControl.toJSON()});\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Getter/setter function for the options state.\n\t\t *\n\t\t * @method options\n\t\t * @param {Array} [state] State to be set.\n\t\t * @return {Array|tinymce.ui.SelectBox} Array of string options.\n\t\t */\n\t\toptions: function(state) {\n\t\t\tif (!arguments.length) {\n\t\t\t\treturn this.state.get('options');\n\t\t\t}\n\n\t\t\tthis.state.set('options', state);\n\n\t\t\treturn this;\n\t\t},\n\n\t\trenderHtml: function() {\n\t\t\tvar self = this, options, size = '';\n\n\t\t\toptions = createOptions(self._options);\n\n\t\t\tif (self.size) {\n\t\t\t\tsize = ' size = \"' + self.size + '\"';\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t''\n\t\t\t);\n\t\t},\n\n\t\tbindStates: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.state.on('change:options', function(e) {\n\t\t\t\tself.getEl().innerHTML = createOptions(e.value);\n\t\t\t});\n\n\t\t\treturn self._super();\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/Slider.js\n\n/**\n * Slider.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Slider control.\n *\n * @-x-less Slider.less\n * @class tinymce.ui.Slider\n * @extends tinymce.ui.Widget\n */\ndefine(\"tinymce/ui/Slider\", [\n\t\"tinymce/ui/Widget\",\n\t\"tinymce/ui/DragHelper\",\n\t\"tinymce/ui/DomUtils\"\n], function(Widget, DragHelper, DomUtils) {\n\t\"use strict\";\n\n\tfunction constrain(value, minVal, maxVal) {\n\t\tif (value < minVal) {\n\t\t\tvalue = minVal;\n\t\t}\n\n\t\tif (value > maxVal) {\n\t\t\tvalue = maxVal;\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tfunction setAriaProp(el, name, value) {\n\t\tel.setAttribute('aria-' + name, value);\n\t}\n\n\tfunction updateSliderHandle(ctrl, value) {\n\t\tvar maxHandlePos, shortSizeName, sizeName, stylePosName, styleValue, handleEl;\n\n\t\tif (ctrl.settings.orientation == \"v\") {\n\t\t\tstylePosName = \"top\";\n\t\t\tsizeName = \"height\";\n\t\t\tshortSizeName = \"h\";\n\t\t} else {\n\t\t\tstylePosName = \"left\";\n\t\t\tsizeName = \"width\";\n\t\t\tshortSizeName = \"w\";\n\t\t}\n\n\t\thandleEl = ctrl.getEl('handle');\n\t\tmaxHandlePos = (ctrl.layoutRect()[shortSizeName] || 100) - DomUtils.getSize(handleEl)[sizeName];\n\n\t\tstyleValue = (maxHandlePos * ((value - ctrl._minValue) / (ctrl._maxValue - ctrl._minValue))) + 'px';\n\t\thandleEl.style[stylePosName] = styleValue;\n\t\thandleEl.style.height = ctrl.layoutRect().h + 'px';\n\n\t\tsetAriaProp(handleEl, 'valuenow', value);\n\t\tsetAriaProp(handleEl, 'valuetext', '' + ctrl.settings.previewFilter(value));\n\t\tsetAriaProp(handleEl, 'valuemin', ctrl._minValue);\n\t\tsetAriaProp(handleEl, 'valuemax', ctrl._maxValue);\n\t}\n\n\treturn Widget.extend({\n\t\tinit: function(settings) {\n\t\t\tvar self = this;\n\n\t\t\tif (!settings.previewFilter) {\n\t\t\t\tsettings.previewFilter = function(value) {\n\t\t\t\t\treturn Math.round(value * 100) / 100.0;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tself._super(settings);\n\t\t\tself.classes.add('slider');\n\n\t\t\tif (settings.orientation == \"v\") {\n\t\t\t\tself.classes.add('vertical');\n\t\t\t}\n\n\t\t\tself._minValue = settings.minValue || 0;\n\t\t\tself._maxValue = settings.maxValue || 100;\n\t\t\tself._initValue = self.state.get('value');\n\t\t},\n\n\t\trenderHtml: function() {\n\t\t\tvar self = this, id = self._id, prefix = self.classPrefix;\n\n\t\t\treturn (\n\t\t\t\t'
    ' +\n\t\t\t\t\t'
    ' +\n\t\t\t\t'
    '\n\t\t\t);\n\t\t},\n\n\t\treset: function() {\n\t\t\tthis.value(this._initValue).repaint();\n\t\t},\n\n\t\tpostRender: function() {\n\t\t\tvar self = this, minValue, maxValue, screenCordName,\n\t\t\t\t\tstylePosName, sizeName, shortSizeName;\n\n\t\t\tfunction toFraction(min, max, val) {\n\t\t\t\treturn (val + min) / (max - min);\n\t\t\t}\n\n\t\t\tfunction fromFraction(min, max, val) {\n\t\t\t\treturn (val * (max - min)) - min;\n\t\t\t}\n\n\t\t\tfunction handleKeyboard(minValue, maxValue) {\n\t\t\t\tfunction alter(delta) {\n\t\t\t\t\tvar value;\n\n\t\t\t\t\tvalue = self.value();\n\t\t\t\t\tvalue = fromFraction(minValue, maxValue, toFraction(minValue, maxValue, value) + (delta * 0.05));\n\t\t\t\t\tvalue = constrain(value, minValue, maxValue);\n\n\t\t\t\t\tself.value(value);\n\n\t\t\t\t\tself.fire('dragstart', {value: value});\n\t\t\t\t\tself.fire('drag', {value: value});\n\t\t\t\t\tself.fire('dragend', {value: value});\n\t\t\t\t}\n\n\t\t\t\tself.on('keydown', function(e) {\n\t\t\t\t\tswitch (e.keyCode) {\n\t\t\t\t\t\tcase 37:\n\t\t\t\t\t\tcase 38:\n\t\t\t\t\t\t\talter(-1);\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 39:\n\t\t\t\t\t\tcase 40:\n\t\t\t\t\t\t\talter(1);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tfunction handleDrag(minValue, maxValue, handleEl) {\n\t\t\t\tvar startPos, startHandlePos, maxHandlePos, handlePos, value;\n\n\t\t\t\tself._dragHelper = new DragHelper(self._id, {\n\t\t\t\t\thandle: self._id + \"-handle\",\n\n\t\t\t\t\tstart: function(e) {\n\t\t\t\t\t\tstartPos = e[screenCordName];\n\t\t\t\t\t\tstartHandlePos = parseInt(self.getEl('handle').style[stylePosName], 10);\n\t\t\t\t\t\tmaxHandlePos = (self.layoutRect()[shortSizeName] || 100) - DomUtils.getSize(handleEl)[sizeName];\n\t\t\t\t\t\tself.fire('dragstart', {value: value});\n\t\t\t\t\t},\n\n\t\t\t\t\tdrag: function(e) {\n\t\t\t\t\t\tvar delta = e[screenCordName] - startPos;\n\n\t\t\t\t\t\thandlePos = constrain(startHandlePos + delta, 0, maxHandlePos);\n\t\t\t\t\t\thandleEl.style[stylePosName] = handlePos + 'px';\n\n\t\t\t\t\t\tvalue = minValue + (handlePos / maxHandlePos) * (maxValue - minValue);\n\t\t\t\t\t\tself.value(value);\n\n\t\t\t\t\t\tself.tooltip().text('' + self.settings.previewFilter(value)).show().moveRel(handleEl, 'bc tc');\n\n\t\t\t\t\t\tself.fire('drag', {value: value});\n\t\t\t\t\t},\n\n\t\t\t\t\tstop: function() {\n\t\t\t\t\t\tself.tooltip().hide();\n\t\t\t\t\t\tself.fire('dragend', {value: value});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tminValue = self._minValue;\n\t\t\tmaxValue = self._maxValue;\n\n\t\t\tif (self.settings.orientation == \"v\") {\n\t\t\t\tscreenCordName = \"screenY\";\n\t\t\t\tstylePosName = \"top\";\n\t\t\t\tsizeName = \"height\";\n\t\t\t\tshortSizeName = \"h\";\n\t\t\t} else {\n\t\t\t\tscreenCordName = \"screenX\";\n\t\t\t\tstylePosName = \"left\";\n\t\t\t\tsizeName = \"width\";\n\t\t\t\tshortSizeName = \"w\";\n\t\t\t}\n\n\t\t\tself._super();\n\n\t\t\thandleKeyboard(minValue, maxValue, self.getEl('handle'));\n\t\t\thandleDrag(minValue, maxValue, self.getEl('handle'));\n\t\t},\n\n\t\trepaint: function() {\n\t\t\tthis._super();\n\t\t\tupdateSliderHandle(this, this.value());\n\t\t},\n\n\t\tbindStates: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.state.on('change:value', function(e) {\n\t\t\t\tupdateSliderHandle(self, e.value);\n\t\t\t});\n\n\t\t\treturn self._super();\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/Spacer.js\n\n/**\n * Spacer.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Creates a spacer. This control is used in flex layouts for example.\n *\n * @-x-less Spacer.less\n * @class tinymce.ui.Spacer\n * @extends tinymce.ui.Widget\n */\ndefine(\"tinymce/ui/Spacer\", [\n\t\"tinymce/ui/Widget\"\n], function(Widget) {\n\t\"use strict\";\n\n\treturn Widget.extend({\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.classes.add('spacer');\n\t\t\tself.canFocus = false;\n\n\t\t\treturn '
    ';\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/SplitButton.js\n\n/**\n * SplitButton.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Creates a split button.\n *\n * @-x-less SplitButton.less\n * @class tinymce.ui.SplitButton\n * @extends tinymce.ui.Button\n */\ndefine(\"tinymce/ui/SplitButton\", [\n\t\"tinymce/ui/MenuButton\",\n\t\"tinymce/ui/DomUtils\",\n\t\"tinymce/dom/DomQuery\"\n], function(MenuButton, DomUtils, $) {\n\treturn MenuButton.extend({\n\t\tDefaults: {\n\t\t\tclasses: \"widget btn splitbtn\",\n\t\t\trole: \"button\"\n\t\t},\n\n\t\t/**\n\t\t * Repaints the control after a layout operation.\n\t\t *\n\t\t * @method repaint\n\t\t */\n\t\trepaint: function() {\n\t\t\tvar self = this, elm = self.getEl(), rect = self.layoutRect(), mainButtonElm, menuButtonElm;\n\n\t\t\tself._super();\n\n\t\t\tmainButtonElm = elm.firstChild;\n\t\t\tmenuButtonElm = elm.lastChild;\n\n\t\t\t$(mainButtonElm).css({\n\t\t\t\twidth: rect.w - DomUtils.getSize(menuButtonElm).width,\n\t\t\t\theight: rect.h - 2\n\t\t\t});\n\n\t\t\t$(menuButtonElm).css({\n\t\t\t\theight: rect.h - 2\n\t\t\t});\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Sets the active menu state.\n\t\t *\n\t\t * @private\n\t\t */\n\t\tactiveMenu: function(state) {\n\t\t\tvar self = this;\n\n\t\t\t$(self.getEl().lastChild).toggleClass(self.classPrefix + 'active', state);\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, id = self._id, prefix = self.classPrefix, image;\n\t\t\tvar icon = self.state.get('icon'), text = self.state.get('text'),\n\t\t\t\ttextHtml = '';\n\n\t\t\timage = self.settings.image;\n\t\t\tif (image) {\n\t\t\t\ticon = 'none';\n\n\t\t\t\t// Support for [high dpi, low dpi] image sources\n\t\t\t\tif (typeof image != \"string\") {\n\t\t\t\t\timage = window.getSelection ? image[0] : image[1];\n\t\t\t\t}\n\n\t\t\t\timage = ' style=\"background-image: url(\\'' + image + '\\')\"';\n\t\t\t} else {\n\t\t\t\timage = '';\n\t\t\t}\n\n\t\t\ticon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + icon : '';\n\n\t\t\tif (text) {\n\t\t\t\tself.classes.add('btn-has-text');\n\t\t\t\ttextHtml = '' + self.encode(text) + '';\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t'
    ' +\n\t\t\t\t\t'' +\n\t\t\t\t\t'' +\n\t\t\t\t'
    '\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Called after the control has been rendered.\n\t\t *\n\t\t * @method postRender\n\t\t */\n\t\tpostRender: function() {\n\t\t\tvar self = this, onClickHandler = self.settings.onclick;\n\n\t\t\tself.on('click', function(e) {\n\t\t\t\tvar node = e.target;\n\n\t\t\t\tif (e.control == this) {\n\t\t\t\t\t// Find clicks that is on the main button\n\t\t\t\t\twhile (node) {\n\t\t\t\t\t\tif ((e.aria && e.aria.key != 'down') || (node.nodeName == 'BUTTON' && node.className.indexOf('open') == -1)) {\n\t\t\t\t\t\t\te.stopImmediatePropagation();\n\n\t\t\t\t\t\t\tif (onClickHandler) {\n\t\t\t\t\t\t\t\tonClickHandler.call(this, e);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tnode = node.parentNode;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tdelete self.settings.onclick;\n\n\t\t\treturn self._super();\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/StackLayout.js\n\n/**\n * StackLayout.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This layout uses the browsers layout when the items are blocks.\n *\n * @-x-less StackLayout.less\n * @class tinymce.ui.StackLayout\n * @extends tinymce.ui.FlowLayout\n */\ndefine(\"tinymce/ui/StackLayout\", [\n\t\"tinymce/ui/FlowLayout\"\n], function(FlowLayout) {\n\t\"use strict\";\n\n\treturn FlowLayout.extend({\n\t\tDefaults: {\n\t\t\tcontainerClass: 'stack-layout',\n\t\t\tcontrolClass: 'stack-layout-item',\n\t\t\tendClass: 'break'\n\t\t},\n\n\t\tisNative: function() {\n\t\t\treturn true;\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/TabPanel.js\n\n/**\n * TabPanel.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Creates a tab panel control.\n *\n * @-x-less TabPanel.less\n * @class tinymce.ui.TabPanel\n * @extends tinymce.ui.Panel\n *\n * @setting {Number} activeTab Active tab index.\n */\ndefine(\"tinymce/ui/TabPanel\", [\n\t\"tinymce/ui/Panel\",\n\t\"tinymce/dom/DomQuery\",\n\t\"tinymce/ui/DomUtils\"\n], function(Panel, $, DomUtils) {\n\t\"use strict\";\n\n\treturn Panel.extend({\n\t\tDefaults: {\n\t\t\tlayout: 'absolute',\n\t\t\tdefaults: {\n\t\t\t\ttype: 'panel'\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Activates the specified tab by index.\n\t\t *\n\t\t * @method activateTab\n\t\t * @param {Number} idx Index of the tab to activate.\n\t\t */\n\t\tactivateTab: function(idx) {\n\t\t\tvar activeTabElm;\n\n\t\t\tif (this.activeTabId) {\n\t\t\t\tactiveTabElm = this.getEl(this.activeTabId);\n\t\t\t\t$(activeTabElm).removeClass(this.classPrefix + 'active');\n\t\t\t\tactiveTabElm.setAttribute('aria-selected', \"false\");\n\t\t\t}\n\n\t\t\tthis.activeTabId = 't' + idx;\n\n\t\t\tactiveTabElm = this.getEl('t' + idx);\n\t\t\tactiveTabElm.setAttribute('aria-selected', \"true\");\n\t\t\t$(activeTabElm).addClass(this.classPrefix + 'active');\n\n\t\t\tthis.items()[idx].show().fire('showtab');\n\t\t\tthis.reflow();\n\n\t\t\tthis.items().each(function(item, i) {\n\t\t\t\tif (idx != i) {\n\t\t\t\t\titem.hide();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, layout = self._layout, tabsHtml = '', prefix = self.classPrefix;\n\n\t\t\tself.preRender();\n\t\t\tlayout.preRender(self);\n\n\t\t\tself.items().each(function(ctrl, i) {\n\t\t\t\tvar id = self._id + '-t' + i;\n\n\t\t\t\tctrl.aria('role', 'tabpanel');\n\t\t\t\tctrl.aria('labelledby', id);\n\n\t\t\t\ttabsHtml += (\n\t\t\t\t\t'
    ' +\n\t\t\t\t\t\tself.encode(ctrl.settings.title) +\n\t\t\t\t\t'
    '\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn (\n\t\t\t\t'
    ' +\n\t\t\t\t\t'
    ' +\n\t\t\t\t\t\ttabsHtml +\n\t\t\t\t\t'
    ' +\n\t\t\t\t\t'
    ' +\n\t\t\t\t\t\tlayout.renderHtml(self) +\n\t\t\t\t\t'
    ' +\n\t\t\t\t'
    '\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Called after the control has been rendered.\n\t\t *\n\t\t * @method postRender\n\t\t */\n\t\tpostRender: function() {\n\t\t\tvar self = this;\n\n\t\t\tself._super();\n\n\t\t\tself.settings.activeTab = self.settings.activeTab || 0;\n\t\t\tself.activateTab(self.settings.activeTab);\n\n\t\t\tthis.on('click', function(e) {\n\t\t\t\tvar targetParent = e.target.parentNode;\n\n\t\t\t\tif (targetParent && targetParent.id == self._id + '-head') {\n\t\t\t\t\tvar i = targetParent.childNodes.length;\n\n\t\t\t\t\twhile (i--) {\n\t\t\t\t\t\tif (targetParent.childNodes[i] == e.target) {\n\t\t\t\t\t\t\tself.activateTab(i);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Initializes the current controls layout rect.\n\t\t * This will be executed by the layout managers to determine the\n\t\t * default minWidth/minHeight etc.\n\t\t *\n\t\t * @method initLayoutRect\n\t\t * @return {Object} Layout rect instance.\n\t\t */\n\t\tinitLayoutRect: function() {\n\t\t\tvar self = this, rect, minW, minH;\n\n\t\t\tminW = DomUtils.getSize(self.getEl('head')).width;\n\t\t\tminW = minW < 0 ? 0 : minW;\n\t\t\tminH = 0;\n\n\t\t\tself.items().each(function(item) {\n\t\t\t\tminW = Math.max(minW, item.layoutRect().minW);\n\t\t\t\tminH = Math.max(minH, item.layoutRect().minH);\n\t\t\t});\n\n\t\t\tself.items().each(function(ctrl) {\n\t\t\t\tctrl.settings.x = 0;\n\t\t\t\tctrl.settings.y = 0;\n\t\t\t\tctrl.settings.w = minW;\n\t\t\t\tctrl.settings.h = minH;\n\n\t\t\t\tctrl.layoutRect({\n\t\t\t\t\tx: 0,\n\t\t\t\t\ty: 0,\n\t\t\t\t\tw: minW,\n\t\t\t\t\th: minH\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tvar headH = DomUtils.getSize(self.getEl('head')).height;\n\n\t\t\tself.settings.minWidth = minW;\n\t\t\tself.settings.minHeight = minH + headH;\n\n\t\t\trect = self._super();\n\t\t\trect.deltaH += headH;\n\t\t\trect.innerH = rect.h - rect.deltaH;\n\n\t\t\treturn rect;\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/ui/TextBox.js\n\n/**\n * TextBox.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Creates a new textbox.\n *\n * @-x-less TextBox.less\n * @class tinymce.ui.TextBox\n * @extends tinymce.ui.Widget\n */\ndefine(\"tinymce/ui/TextBox\", [\n\t\"tinymce/ui/Widget\",\n\t\"tinymce/util/Tools\",\n\t\"tinymce/ui/DomUtils\"\n], function(Widget, Tools, DomUtils) {\n\treturn Widget.extend({\n\t\t/**\n\t\t * Constructs a instance with the specified settings.\n\t\t *\n\t\t * @constructor\n\t\t * @param {Object} settings Name/value object with settings.\n\t\t * @setting {Boolean} multiline True if the textbox is a multiline control.\n\t\t * @setting {Number} maxLength Max length for the textbox.\n\t\t * @setting {Number} size Size of the textbox in characters.\n\t\t */\n\t\tinit: function(settings) {\n\t\t\tvar self = this;\n\n\t\t\tself._super(settings);\n\n\t\t\tself.classes.add('textbox');\n\n\t\t\tif (settings.multiline) {\n\t\t\t\tself.classes.add('multiline');\n\t\t\t} else {\n\t\t\t\tself.on('keydown', function(e) {\n\t\t\t\t\tvar rootControl;\n\n\t\t\t\t\tif (e.keyCode == 13) {\n\t\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t\t// Find root control that we can do toJSON on\n\t\t\t\t\t\tself.parents().reverse().each(function(ctrl) {\n\t\t\t\t\t\t\tif (ctrl.toJSON) {\n\t\t\t\t\t\t\t\trootControl = ctrl;\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t// Fire event on current text box with the serialized data of the whole form\n\t\t\t\t\t\tself.fire('submit', {data: rootControl.toJSON()});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tself.on('keyup', function(e) {\n\t\t\t\t\tself.state.set('value', e.target.value);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Repaints the control after a layout operation.\n\t\t *\n\t\t * @method repaint\n\t\t */\n\t\trepaint: function() {\n\t\t\tvar self = this, style, rect, borderBox, borderW, borderH = 0, lastRepaintRect;\n\n\t\t\tstyle = self.getEl().style;\n\t\t\trect = self._layoutRect;\n\t\t\tlastRepaintRect = self._lastRepaintRect || {};\n\n\t\t\t// Detect old IE 7+8 add lineHeight to align caret vertically in the middle\n\t\t\tvar doc = document;\n\t\t\tif (!self.settings.multiline && doc.all && (!doc.documentMode || doc.documentMode <= 8)) {\n\t\t\t\tstyle.lineHeight = (rect.h - borderH) + 'px';\n\t\t\t}\n\n\t\t\tborderBox = self.borderBox;\n\t\t\tborderW = borderBox.left + borderBox.right + 8;\n\t\t\tborderH = borderBox.top + borderBox.bottom + (self.settings.multiline ? 8 : 0);\n\n\t\t\tif (rect.x !== lastRepaintRect.x) {\n\t\t\t\tstyle.left = rect.x + 'px';\n\t\t\t\tlastRepaintRect.x = rect.x;\n\t\t\t}\n\n\t\t\tif (rect.y !== lastRepaintRect.y) {\n\t\t\t\tstyle.top = rect.y + 'px';\n\t\t\t\tlastRepaintRect.y = rect.y;\n\t\t\t}\n\n\t\t\tif (rect.w !== lastRepaintRect.w) {\n\t\t\t\tstyle.width = (rect.w - borderW) + 'px';\n\t\t\t\tlastRepaintRect.w = rect.w;\n\t\t\t}\n\n\t\t\tif (rect.h !== lastRepaintRect.h) {\n\t\t\t\tstyle.height = (rect.h - borderH) + 'px';\n\t\t\t\tlastRepaintRect.h = rect.h;\n\t\t\t}\n\n\t\t\tself._lastRepaintRect = lastRepaintRect;\n\t\t\tself.fire('repaint', {}, false);\n\n\t\t\treturn self;\n\t\t},\n\n\t\t/**\n\t\t * Renders the control as a HTML string.\n\t\t *\n\t\t * @method renderHtml\n\t\t * @return {String} HTML representing the control.\n\t\t */\n\t\trenderHtml: function() {\n\t\t\tvar self = this, settings = self.settings, attrs, elm;\n\n\t\t\tattrs = {\n\t\t\t\tid: self._id,\n\t\t\t\thidefocus: '1'\n\t\t\t};\n\n\t\t\tTools.each([\n\t\t\t\t'rows',\t'spellcheck',\t'maxLength', 'size', 'readonly', 'min',\n\t\t\t\t'max', 'step', 'list', 'pattern', 'placeholder', 'required', 'multiple'\n\t\t\t], function(name) {\n\t\t\t\tattrs[name] = settings[name];\n\t\t\t});\n\n\t\t\tif (self.disabled()) {\n\t\t\t\tattrs.disabled = 'disabled';\n\t\t\t}\n\n\t\t\tif (settings.subtype) {\n\t\t\t\tattrs.type = settings.subtype;\n\t\t\t}\n\n\t\t\telm = DomUtils.create(settings.multiline ? 'textarea' : 'input', attrs);\n\t\t\telm.value = self.state.get('value');\n\t\t\telm.className = self.classes;\n\n\t\t\treturn elm.outerHTML;\n\t\t},\n\n\t\tvalue: function(value) {\n\t\t\tif (arguments.length) {\n\t\t\t\tthis.state.set('value', value);\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\t// Make sure the real state is in sync\n\t\t\tif (this.state.get('rendered')) {\n\t\t\t\tthis.state.set('value', this.getEl().value);\n\t\t\t}\n\n\t\t\treturn this.state.get('value');\n\t\t},\n\n\t\t/**\n\t\t * Called after the control has been rendered.\n\t\t *\n\t\t * @method postRender\n\t\t */\n\t\tpostRender: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.getEl().value = self.state.get('value');\n\t\t\tself._super();\n\n\t\t\tself.$el.on('change', function(e) {\n\t\t\t\tself.state.set('value', e.target.value);\n\t\t\t\tself.fire('change', e);\n\t\t\t});\n\t\t},\n\n\t\tbindStates: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.state.on('change:value', function(e) {\n\t\t\t\tif (self.getEl().value != e.value) {\n\t\t\t\t\tself.getEl().value = e.value;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tself.state.on('change:disabled', function(e) {\n\t\t\t\tself.getEl().disabled = e.value;\n\t\t\t});\n\n\t\t\treturn self._super();\n\t\t},\n\n\t\tremove: function() {\n\t\t\tthis.$el.off();\n\t\t\tthis._super();\n\t\t}\n\t});\n});\n\n// Included from: js/tinymce/classes/Register.js\n\n/**\n * Register.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This registers tinymce in common module loaders.\n *\n * @private\n * @class tinymce.Register\n */\ndefine(\"tinymce/Register\", [\n], function() {\n\t/*eslint consistent-this: 0 */\n\tvar context = this || window;\n\n\tvar tinymce = function() {\n\t\treturn context.tinymce;\n\t};\n\n\tif (typeof context.define === \"function\") {\n\t\t// Bolt\n\t\tif (!context.define.amd) {\n\t\t\tcontext.define(\"ephox/tinymce\", [], tinymce);\n\t\t}\n\t}\n\n\tif (typeof module === 'object') {\n\t\t/* global module */\n\t\tmodule.exports = window.tinymce;\n\t}\n\n\treturn {};\n});\n\nexpose([\"tinymce/geom/Rect\",\"tinymce/util/Promise\",\"tinymce/util/Delay\",\"tinymce/Env\",\"tinymce/dom/EventUtils\",\"tinymce/dom/Sizzle\",\"tinymce/util/Tools\",\"tinymce/dom/DomQuery\",\"tinymce/html/Styles\",\"tinymce/dom/TreeWalker\",\"tinymce/html/Entities\",\"tinymce/dom/DOMUtils\",\"tinymce/dom/ScriptLoader\",\"tinymce/AddOnManager\",\"tinymce/dom/RangeUtils\",\"tinymce/html/Node\",\"tinymce/html/Schema\",\"tinymce/html/SaxParser\",\"tinymce/html/DomParser\",\"tinymce/html/Writer\",\"tinymce/html/Serializer\",\"tinymce/dom/Serializer\",\"tinymce/util/VK\",\"tinymce/dom/ControlSelection\",\"tinymce/dom/BookmarkManager\",\"tinymce/dom/Selection\",\"tinymce/Formatter\",\"tinymce/UndoManager\",\"tinymce/EditorCommands\",\"tinymce/util/URI\",\"tinymce/util/Class\",\"tinymce/util/EventDispatcher\",\"tinymce/util/Observable\",\"tinymce/ui/Selector\",\"tinymce/ui/Collection\",\"tinymce/ui/ReflowQueue\",\"tinymce/ui/Control\",\"tinymce/ui/Factory\",\"tinymce/ui/KeyboardNavigation\",\"tinymce/ui/Container\",\"tinymce/ui/DragHelper\",\"tinymce/ui/Scrollable\",\"tinymce/ui/Panel\",\"tinymce/ui/Movable\",\"tinymce/ui/Resizable\",\"tinymce/ui/FloatPanel\",\"tinymce/ui/Window\",\"tinymce/ui/MessageBox\",\"tinymce/WindowManager\",\"tinymce/ui/Tooltip\",\"tinymce/ui/Widget\",\"tinymce/ui/Progress\",\"tinymce/ui/Notification\",\"tinymce/NotificationManager\",\"tinymce/EditorObservable\",\"tinymce/Shortcuts\",\"tinymce/Editor\",\"tinymce/util/I18n\",\"tinymce/FocusManager\",\"tinymce/EditorManager\",\"tinymce/util/XHR\",\"tinymce/util/JSON\",\"tinymce/util/JSONRequest\",\"tinymce/util/JSONP\",\"tinymce/util/LocalStorage\",\"tinymce/Compat\",\"tinymce/ui/Layout\",\"tinymce/ui/AbsoluteLayout\",\"tinymce/ui/Button\",\"tinymce/ui/ButtonGroup\",\"tinymce/ui/Checkbox\",\"tinymce/ui/ComboBox\",\"tinymce/ui/ColorBox\",\"tinymce/ui/PanelButton\",\"tinymce/ui/ColorButton\",\"tinymce/util/Color\",\"tinymce/ui/ColorPicker\",\"tinymce/ui/Path\",\"tinymce/ui/ElementPath\",\"tinymce/ui/FormItem\",\"tinymce/ui/Form\",\"tinymce/ui/FieldSet\",\"tinymce/ui/FilePicker\",\"tinymce/ui/FitLayout\",\"tinymce/ui/FlexLayout\",\"tinymce/ui/FlowLayout\",\"tinymce/ui/FormatControls\",\"tinymce/ui/GridLayout\",\"tinymce/ui/Iframe\",\"tinymce/ui/InfoBox\",\"tinymce/ui/Label\",\"tinymce/ui/Toolbar\",\"tinymce/ui/MenuBar\",\"tinymce/ui/MenuButton\",\"tinymce/ui/MenuItem\",\"tinymce/ui/Throbber\",\"tinymce/ui/Menu\",\"tinymce/ui/ListBox\",\"tinymce/ui/Radio\",\"tinymce/ui/ResizeHandle\",\"tinymce/ui/SelectBox\",\"tinymce/ui/Slider\",\"tinymce/ui/Spacer\",\"tinymce/ui/SplitButton\",\"tinymce/ui/StackLayout\",\"tinymce/ui/TabPanel\",\"tinymce/ui/TextBox\"]);\n})(window);;\r\n/**\n * plugin.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/*global tinymce:true */\n\ntinymce.PluginManager.add('link', function(editor) {\n\tvar attachState = {};\n\n\tfunction isLink(elm) {\n\t\treturn elm && elm.nodeName === 'A' && elm.href;\n\t}\n\n\tfunction hasLinks(elements) {\n\t\treturn tinymce.util.Tools.grep(elements, isLink).length > 0;\n\t}\n\n\tfunction getLink(elm) {\n\t\treturn editor.dom.getParent(elm, 'a[href]');\n\t}\n\n\tfunction getSelectedLink() {\n\t\treturn getLink(editor.selection.getStart());\n\t}\n\n\tfunction getHref(elm) {\n\t\t// Returns the real href value not the resolved a.href value\n\t\tvar href = elm.getAttribute('data-mce-href');\n\t\treturn href ? href : elm.getAttribute('href');\n\t}\n\n\tfunction isContextMenuVisible() {\n\t\tvar contextmenu = editor.plugins.contextmenu;\n\t\treturn contextmenu ? contextmenu.isContextMenuVisible() : false;\n\t}\n\n\tvar hasOnlyAltModifier = function (e) {\n\t\treturn e.altKey === true && e.shiftKey === false && e.ctrlKey === false && e.metaKey === false;\n\t};\n\n\tfunction leftClickedOnAHref(elm) {\n\t\tvar sel, rng, node;\n\t\tif (editor.settings.link_context_toolbar && !isContextMenuVisible() && isLink(elm)) {\n\t\t\tsel = editor.selection;\n\t\t\trng = sel.getRng();\n\t\t\tnode = rng.startContainer;\n\t\t\t// ignore cursor positions at the beginning/end (to make context toolbar less noisy)\n\t\t\tif (node.nodeType == 3 && sel.isCollapsed() && rng.startOffset > 0 && rng.startOffset < node.data.length) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tfunction appendClickRemove(link, evt) {\n\t\tdocument.body.appendChild(link);\n\t\tlink.dispatchEvent(evt);\n\t\tdocument.body.removeChild(link);\n\t}\n\n\tfunction openDetachedWindow(url) {\n\t\t// Chrome and Webkit has implemented noopener and works correctly with/without popup blocker\n\t\t// Firefox has it implemented noopener but when the popup blocker is activated it doesn't work\n\t\t// Edge has only implemented noreferrer and it seems to remove opener as well\n\t\t// Older IE versions pre IE 11 falls back to a window.open approach\n\t\tif (!tinymce.Env.ie || tinymce.Env.ie > 10) {\n\t\t\tvar link = document.createElement('a');\n\t\t\tlink.target = '_blank';\n\t\t\tlink.href = url;\n\t\t\tlink.rel = 'noreferrer noopener';\n\n\t\t\tvar evt = document.createEvent('MouseEvents');\n\t\t\tevt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n\n\t\t\tappendClickRemove(link, evt);\n\t\t} else {\n\t\t\tvar win = window.open('', '_blank');\n\t\t\tif (win) {\n\t\t\t\twin.opener = null;\n\t\t\t\tvar doc = win.document;\n\t\t\t\tdoc.open();\n\t\t\t\tdoc.write('');\n\t\t\t\tdoc.close();\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction gotoLink(a) {\n\t\tif (a) {\n\t\t\tvar href = getHref(a);\n\t\t\tif (/^#/.test(href)) {\n\t\t\t\tvar targetEl = editor.$(href);\n\t\t\t\tif (targetEl.length) {\n\t\t\t\t\teditor.selection.scrollIntoView(targetEl[0], true);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\topenDetachedWindow(a.href);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction gotoSelectedLink() {\n\t\tgotoLink(getSelectedLink());\n\t}\n\n\tfunction toggleViewLinkState() {\n var self = this;\n\n\t\tvar toggleVisibility = function (e) {\n\t\t\tif (hasLinks(e.parents)) {\n\t\t\t\tself.show();\n\t\t\t} else {\n\t\t\t\tself.hide();\n\t\t\t}\n\t\t};\n\n\t\tif (!hasLinks(editor.dom.getParents(editor.selection.getStart()))) {\n\t\t\tself.hide();\n\t\t}\n\n editor.on('nodechange', toggleVisibility);\n\n\t\tself.on('remove', function () {\n\t\t\teditor.off('nodechange', toggleVisibility);\n\t\t});\n\t}\n\n\tfunction createLinkList(callback) {\n\t\treturn function() {\n\t\t\tvar linkList = editor.settings.link_list;\n\n\t\t\tif (typeof linkList == \"string\") {\n\t\t\t\ttinymce.util.XHR.send({\n\t\t\t\t\turl: linkList,\n\t\t\t\t\tsuccess: function(text) {\n\t\t\t\t\t\tcallback(tinymce.util.JSON.parse(text));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else if (typeof linkList == \"function\") {\n\t\t\t\tlinkList(callback);\n\t\t\t} else {\n\t\t\t\tcallback(linkList);\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction buildListItems(inputList, itemCallback, startItems) {\n\t\tfunction appendItems(values, output) {\n\t\t\toutput = output || [];\n\n\t\t\ttinymce.each(values, function(item) {\n\t\t\t\tvar menuItem = {text: item.text || item.title};\n\n\t\t\t\tif (item.menu) {\n\t\t\t\t\tmenuItem.menu = appendItems(item.menu);\n\t\t\t\t} else {\n\t\t\t\t\tmenuItem.value = item.value;\n\n\t\t\t\t\tif (itemCallback) {\n\t\t\t\t\t\titemCallback(menuItem);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\toutput.push(menuItem);\n\t\t\t});\n\n\t\t\treturn output;\n\t\t}\n\n\t\treturn appendItems(inputList, startItems || []);\n\t}\n\n\tfunction showDialog(linkList) {\n\t\tvar data = {}, selection = editor.selection, dom = editor.dom, selectedElm, anchorElm, initialText;\n\t\tvar win, onlyText, textListCtrl, linkListCtrl, relListCtrl, targetListCtrl, classListCtrl, linkTitleCtrl, value;\n\n\t\tfunction linkListChangeHandler(e) {\n\t\t\tvar textCtrl = win.find('#text');\n\n\t\t\tif (!textCtrl.value() || (e.lastControl && textCtrl.value() == e.lastControl.text())) {\n\t\t\t\ttextCtrl.value(e.control.text());\n\t\t\t}\n\n\t\t\twin.find('#href').value(e.control.value());\n\t\t}\n\n\t\tfunction buildAnchorListControl(url) {\n\t\t\tvar anchorList = [];\n\n\t\t\ttinymce.each(editor.dom.select('a:not([href])'), function(anchor) {\n\t\t\t\tvar id = anchor.name || anchor.id;\n\n\t\t\t\tif (id) {\n\t\t\t\t\tanchorList.push({\n\t\t\t\t\t\ttext: id,\n\t\t\t\t\t\tvalue: '#' + id,\n\t\t\t\t\t\tselected: url.indexOf('#' + id) != -1\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (anchorList.length) {\n\t\t\t\tanchorList.unshift({text: 'None', value: ''});\n\n\t\t\t\treturn {\n\t\t\t\t\tname: 'anchor',\n\t\t\t\t\ttype: 'listbox',\n\t\t\t\t\tlabel: 'Anchors',\n\t\t\t\t\tvalues: anchorList,\n\t\t\t\t\tonselect: linkListChangeHandler\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tfunction updateText() {\n\t\t\tif (!initialText && data.text.length === 0 && onlyText) {\n\t\t\t\tthis.parent().parent().find('#text')[0].value(this.value());\n\t\t\t}\n\t\t}\n\n\t\tfunction urlChange(e) {\n\t\t\tvar meta = e.meta || {};\n\n\t\t\tif (linkListCtrl) {\n\t\t\t\tlinkListCtrl.value(editor.convertURL(this.value(), 'href'));\n\t\t\t}\n\n\t\t\ttinymce.each(e.meta, function(value, key) {\n\t\t\t\tvar inp = win.find('#' + key);\n\n\t\t\t\tif (key === 'text') {\n\t\t\t\t\tif (initialText.length === 0) {\n\t\t\t\t\t\tinp.value(value);\n\t\t\t\t\t\tdata.text = value;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tinp.value(value);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (meta.attach) {\n\t\t\t\tattachState = {\n\t\t\t\t\thref: this.value(),\n\t\t\t\t\tattach: meta.attach\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (!meta.text) {\n\t\t\t\tupdateText.call(this);\n\t\t\t}\n\t\t}\n\n\t\tfunction isOnlyTextSelected(anchorElm) {\n\t\t\tvar html = selection.getContent();\n\n\t\t\t// Partial html and not a fully selected anchor element\n\t\t\tif (/]+>[^<]+<\\/a>$/.test(html) || html.indexOf('href=') == -1)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (anchorElm) {\n\t\t\t\tvar nodes = anchorElm.childNodes, i;\n\n\t\t\t\tif (nodes.length === 0) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tfor (i = nodes.length - 1; i >= 0; i--) {\n\t\t\t\t\tif (nodes[i].nodeType != 3) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn true;\n\t\t}\n\n\t\tfunction onBeforeCall(e) {\n\t\t\te.meta = win.toJSON();\n\t\t}\n\n\t\tselectedElm = selection.getNode();\n\t\tanchorElm = dom.getParent(selectedElm, 'a[href]');\n\t\tonlyText = isOnlyTextSelected();\n\n\t\tdata.text = initialText = anchorElm ? (anchorElm.innerText || anchorElm.textContent) : selection.getContent({format: 'text'});\n\t\tdata.href = anchorElm ? dom.getAttrib(anchorElm, 'href') : '';\n\n\t\tif (anchorElm) {\n\t\t\tdata.target = dom.getAttrib(anchorElm, 'target');\n\t\t} else if (editor.settings.default_link_target) {\n\t\t\tdata.target = editor.settings.default_link_target;\n\t\t}\n\n\t\tif ((value = dom.getAttrib(anchorElm, 'rel'))) {\n\t\t\tdata.rel = value;\n\t\t}\n\n\t\tif ((value = dom.getAttrib(anchorElm, 'class'))) {\n\t\t\tdata['class'] = value;\n\t\t}\n\n\t\tif ((value = dom.getAttrib(anchorElm, 'title'))) {\n\t\t\tdata.title = value;\n\t\t}\n\n\t\tif (onlyText) {\n\t\t\ttextListCtrl = {\n\t\t\t\tname: 'text',\n\t\t\t\ttype: 'textbox',\n\t\t\t\tsize: 40,\n\t\t\t\tlabel: 'Text to display',\n\t\t\t\tonchange: function() {\n\t\t\t\t\tdata.text = this.value();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tif (linkList) {\n\t\t\tlinkListCtrl = {\n\t\t\t\ttype: 'listbox',\n\t\t\t\tlabel: 'Link list',\n\t\t\t\tvalues: buildListItems(\n\t\t\t\t\tlinkList,\n\t\t\t\t\tfunction(item) {\n\t\t\t\t\t\titem.value = editor.convertURL(item.value || item.url, 'href');\n\t\t\t\t\t},\n\t\t\t\t\t[{text: 'None', value: ''}]\n\t\t\t\t),\n\t\t\t\tonselect: linkListChangeHandler,\n\t\t\t\tvalue: editor.convertURL(data.href, 'href'),\n\t\t\t\tonPostRender: function() {\n\t\t\t\t\t/*eslint consistent-this:0*/\n\t\t\t\t\tlinkListCtrl = this;\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tif (editor.settings.target_list !== false) {\n\t\t\tif (!editor.settings.target_list) {\n\t\t\t\teditor.settings.target_list = [\n\t\t\t\t\t{text: 'None', value: ''},\n\t\t\t\t\t{text: 'New window', value: '_blank'}\n\t\t\t\t];\n\t\t\t}\n\n\t\t\ttargetListCtrl = {\n\t\t\t\tname: 'target',\n\t\t\t\ttype: 'listbox',\n\t\t\t\tlabel: 'Target',\n\t\t\t\tvalues: buildListItems(editor.settings.target_list)\n\t\t\t};\n\t\t}\n\n\t\tif (editor.settings.rel_list) {\n\t\t\trelListCtrl = {\n\t\t\t\tname: 'rel',\n\t\t\t\ttype: 'listbox',\n\t\t\t\tlabel: 'Rel',\n\t\t\t\tvalues: buildListItems(editor.settings.rel_list)\n\t\t\t};\n\t\t}\n\n\t\tif (editor.settings.link_class_list) {\n\t\t\tclassListCtrl = {\n\t\t\t\tname: 'class',\n\t\t\t\ttype: 'listbox',\n\t\t\t\tlabel: 'Class',\n\t\t\t\tvalues: buildListItems(\n\t\t\t\t\teditor.settings.link_class_list,\n\t\t\t\t\tfunction(item) {\n\t\t\t\t\t\tif (item.value) {\n\t\t\t\t\t\t\titem.textStyle = function() {\n\t\t\t\t\t\t\t\treturn editor.formatter.getCssText({inline: 'a', classes: [item.value]});\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t};\n\t\t}\n\n\t\tif (editor.settings.link_title !== false) {\n\t\t\tlinkTitleCtrl = {\n\t\t\t\tname: 'title',\n\t\t\t\ttype: 'textbox',\n\t\t\t\tlabel: 'Title',\n\t\t\t\tvalue: data.title\n\t\t\t};\n\t\t}\n\n\t\twin = editor.windowManager.open({\n\t\t\ttitle: 'Insert link',\n\t\t\tdata: data,\n\t\t\tbody: [\n\t\t\t\t{\n\t\t\t\t\tname: 'href',\n\t\t\t\t\ttype: 'filepicker',\n\t\t\t\t\tfiletype: 'file',\n\t\t\t\t\tsize: 40,\n\t\t\t\t\tautofocus: true,\n\t\t\t\t\tlabel: 'Url',\n\t\t\t\t\tonchange: urlChange,\n\t\t\t\t\tonkeyup: updateText,\n\t\t\t\t\tonbeforecall: onBeforeCall\n\t\t\t\t},\n\t\t\t\ttextListCtrl,\n\t\t\t\tlinkTitleCtrl,\n\t\t\t\tbuildAnchorListControl(data.href),\n\t\t\t\tlinkListCtrl,\n\t\t\t\trelListCtrl,\n\t\t\t\ttargetListCtrl,\n\t\t\t\tclassListCtrl\n\t\t\t],\n\t\t\tonSubmit: function(e) {\n\t\t\t\t/*eslint dot-notation: 0*/\n\t\t\t\tvar href;\n\n\t\t\t\tdata = tinymce.extend(data, e.data);\n\t\t\t\thref = data.href;\n\n\t\t\t\t// Delay confirm since onSubmit will move focus\n\t\t\t\tfunction delayedConfirm(message, callback) {\n\t\t\t\t\tvar rng = editor.selection.getRng();\n\n\t\t\t\t\ttinymce.util.Delay.setEditorTimeout(editor, function() {\n\t\t\t\t\t\teditor.windowManager.confirm(message, function(state) {\n\t\t\t\t\t\t\teditor.selection.setRng(rng);\n\t\t\t\t\t\t\tcallback(state);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tfunction toggleTargetRules(rel, isUnsafe) {\n\t\t\t\t\tvar rules = 'noopener noreferrer';\n\n\t\t\t\t\tfunction addTargetRules(rel) {\n\t\t\t\t\t\trel = removeTargetRules(rel);\n\t\t\t\t\t\treturn rel ? [rel, rules].join(' ') : rules;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction removeTargetRules(rel) {\n\t\t\t\t\t\tvar regExp = new RegExp('(' + rules.replace(' ', '|') + ')', 'g');\n\t\t\t\t\t\tif (rel) {\n\t\t\t\t\t\t\trel = tinymce.trim(rel.replace(regExp, ''));\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn rel ? rel : null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn isUnsafe ? addTargetRules(rel) : removeTargetRules(rel);\n\t\t\t\t}\n\n\t\t\t\tfunction createLink() {\n\t\t\t\t\tvar linkAttrs = {\n\t\t\t\t\t\thref: href,\n\t\t\t\t\t\ttarget: data.target ? data.target : null,\n\t\t\t\t\t\trel: data.rel ? data.rel : null,\n\t\t\t\t\t\t\"class\": data[\"class\"] ? data[\"class\"] : null,\n\t\t\t\t\t\ttitle: data.title ? data.title : null\n\t\t\t\t\t};\n\n\t\t\t\t\tif (!editor.settings.allow_unsafe_link_target) {\n\t\t\t\t\t\tlinkAttrs.rel = toggleTargetRules(linkAttrs.rel, linkAttrs.target == '_blank');\n\t\t\t\t\t}\n\n\t\t\t\t\tif (href === attachState.href) {\n\t\t\t\t\t\tattachState.attach();\n\t\t\t\t\t\tattachState = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (anchorElm) {\n\t\t\t\t\t\teditor.focus();\n\n\t\t\t\t\t\tif (onlyText && data.text != initialText) {\n\t\t\t\t\t\t\tif (\"innerText\" in anchorElm) {\n\t\t\t\t\t\t\t\tanchorElm.innerText = data.text;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tanchorElm.textContent = data.text;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdom.setAttribs(anchorElm, linkAttrs);\n\n\t\t\t\t\t\tselection.select(anchorElm);\n\t\t\t\t\t\teditor.undoManager.add();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (onlyText) {\n\t\t\t\t\t\t\teditor.insertContent(dom.createHTML('a', linkAttrs, dom.encode(data.text)));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\teditor.execCommand('mceInsertLink', false, linkAttrs);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfunction insertLink() {\n\t\t\t\t\teditor.undoManager.transact(createLink);\n\t\t\t\t}\n\n\t\t\t\tif (!href) {\n\t\t\t\t\teditor.execCommand('unlink');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Is email and not //user@domain.com\n\t\t\t\tif (href.indexOf('@') > 0 && href.indexOf('//') == -1 && href.indexOf('mailto:') == -1) {\n\t\t\t\t\tdelayedConfirm(\n\t\t\t\t\t\t'The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?',\n\t\t\t\t\t\tfunction(state) {\n\t\t\t\t\t\t\tif (state) {\n\t\t\t\t\t\t\t\thref = 'mailto:' + href;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tinsertLink();\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Is not protocol prefixed\n\t\t\t\tif ((editor.settings.link_assume_external_targets && !/^\\w+:/i.test(href)) ||\n\t\t\t\t\t(!editor.settings.link_assume_external_targets && /^\\s*www[\\.|\\d\\.]/i.test(href))) {\n\t\t\t\t\tdelayedConfirm(\n\t\t\t\t\t\t'The URL you entered seems to be an external link. Do you want to add the required http:// prefix?',\n\t\t\t\t\t\tfunction(state) {\n\t\t\t\t\t\t\tif (state) {\n\t\t\t\t\t\t\t\thref = 'http://' + href;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tinsertLink();\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tinsertLink();\n\t\t\t}\n\t\t});\n\t}\n\n\teditor.addButton('link', {\n\t\ticon: 'link',\n\t\ttooltip: 'Insert/edit link',\n\t\tshortcut: 'Meta+K',\n\t\tonclick: createLinkList(showDialog),\n\t\tstateSelector: 'a[href]'\n\t});\n\n\teditor.addButton('unlink', {\n\t\ticon: 'unlink',\n\t\ttooltip: 'Remove link',\n\t\tcmd: 'unlink',\n\t\tstateSelector: 'a[href]'\n\t});\n\n\n\tif (editor.addContextToolbar) {\n\t\teditor.addButton('openlink', {\n\t\t\ticon: 'newtab',\n\t\t\ttooltip: 'Open link',\n\t\t\tonclick: gotoSelectedLink\n\t\t});\n\n\t\teditor.addContextToolbar(\n\t\t\tleftClickedOnAHref,\n\t\t\t'openlink | link unlink'\n\t\t);\n\t}\n\n\n\teditor.addShortcut('Meta+K', '', createLinkList(showDialog));\n\teditor.addCommand('mceLink', createLinkList(showDialog));\n\n\teditor.on('click', function (e) {\n\t\tvar link = getLink(e.target);\n\t\tif (link && tinymce.util.VK.metaKeyPressed(e)) {\n\t\t\te.preventDefault();\n\t\t\tgotoLink(link);\n\t\t}\n\t});\n\n\teditor.on('keydown', function (e) {\n\t\tvar link = getSelectedLink();\n\t\tif (link && e.keyCode === 13 && hasOnlyAltModifier(e)) {\n\t\t\te.preventDefault();\n\t\t\tgotoLink(link);\n\t\t}\n\t});\n\n\tthis.showDialog = showDialog;\n\n\teditor.addMenuItem('openlink', {\n\t\ttext: 'Open link',\n\t\ticon: 'newtab',\n\t\tonclick: gotoSelectedLink,\n\t\tonPostRender: toggleViewLinkState,\n\t\tprependToContext: true\n\t});\n\n\teditor.addMenuItem('link', {\n\t\ticon: 'link',\n\t\ttext: 'Link',\n\t\tshortcut: 'Meta+K',\n\t\tonclick: createLinkList(showDialog),\n\t\tstateSelector: 'a[href]',\n\t\tcontext: 'insert',\n\t\tprependToContext: true\n\t});\n});\n;\r\n/**\n * plugin.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/*global tinymce:true */\n\ntinymce.PluginManager.add('image', function(editor) {\n\tfunction getImageSize(url, callback) {\n\t\tvar img = document.createElement('img');\n\n\t\tfunction done(width, height) {\n\t\t\tif (img.parentNode) {\n\t\t\t\timg.parentNode.removeChild(img);\n\t\t\t}\n\n\t\t\tcallback({width: width, height: height});\n\t\t}\n\n\t\timg.onload = function() {\n\t\t\tdone(Math.max(img.width, img.clientWidth), Math.max(img.height, img.clientHeight));\n\t\t};\n\n\t\timg.onerror = function() {\n\t\t\tdone();\n\t\t};\n\n\t\tvar style = img.style;\n\t\tstyle.visibility = 'hidden';\n\t\tstyle.position = 'fixed';\n\t\tstyle.bottom = style.left = 0;\n\t\tstyle.width = style.height = 'auto';\n\n\t\tdocument.body.appendChild(img);\n\t\timg.src = url;\n\t}\n\n\tfunction buildListItems(inputList, itemCallback, startItems) {\n\t\tfunction appendItems(values, output) {\n\t\t\toutput = output || [];\n\n\t\t\ttinymce.each(values, function(item) {\n\t\t\t\tvar menuItem = {text: item.text || item.title};\n\n\t\t\t\tif (item.menu) {\n\t\t\t\t\tmenuItem.menu = appendItems(item.menu);\n\t\t\t\t} else {\n\t\t\t\t\tmenuItem.value = item.value;\n\t\t\t\t\titemCallback(menuItem);\n\t\t\t\t}\n\n\t\t\t\toutput.push(menuItem);\n\t\t\t});\n\n\t\t\treturn output;\n\t\t}\n\n\t\treturn appendItems(inputList, startItems || []);\n\t}\n\n\tfunction createImageList(callback) {\n\t\treturn function() {\n\t\t\tvar imageList = editor.settings.image_list;\n\n\t\t\tif (typeof imageList == \"string\") {\n\t\t\t\ttinymce.util.XHR.send({\n\t\t\t\t\turl: imageList,\n\t\t\t\t\tsuccess: function(text) {\n\t\t\t\t\t\tcallback(tinymce.util.JSON.parse(text));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else if (typeof imageList == \"function\") {\n\t\t\t\timageList(callback);\n\t\t\t} else {\n\t\t\t\tcallback(imageList);\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction showDialog(imageList) {\n\t\tvar win, data = {}, dom = editor.dom, imgElm, figureElm;\n\t\tvar width, height, imageListCtrl, classListCtrl, imageDimensions = editor.settings.image_dimensions !== false;\n\n\t\tfunction recalcSize() {\n\t\t\tvar widthCtrl, heightCtrl, newWidth, newHeight;\n\n\t\t\twidthCtrl = win.find('#width')[0];\n\t\t\theightCtrl = win.find('#height')[0];\n\n\t\t\tif (!widthCtrl || !heightCtrl) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tnewWidth = widthCtrl.value();\n\t\t\tnewHeight = heightCtrl.value();\n\n\t\t\tif (win.find('#constrain')[0].checked() && width && height && newWidth && newHeight) {\n\t\t\t\tif (width != newWidth) {\n\t\t\t\t\tnewHeight = Math.round((newWidth / width) * newHeight);\n\n\t\t\t\t\tif (!isNaN(newHeight)) {\n\t\t\t\t\t\theightCtrl.value(newHeight);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tnewWidth = Math.round((newHeight / height) * newWidth);\n\n\t\t\t\t\tif (!isNaN(newWidth)) {\n\t\t\t\t\t\twidthCtrl.value(newWidth);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\twidth = newWidth;\n\t\t\theight = newHeight;\n\t\t}\n\n\t\tfunction onSubmitForm() {\n\t\t\tvar figureElm, oldImg;\n\n\t\t\tfunction waitLoad(imgElm) {\n\t\t\t\tfunction selectImage() {\n\t\t\t\t\timgElm.onload = imgElm.onerror = null;\n\n\t\t\t\t\tif (editor.selection) {\n\t\t\t\t\t\teditor.selection.select(imgElm);\n\t\t\t\t\t\teditor.nodeChanged();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\timgElm.onload = function() {\n\t\t\t\t\tif (!data.width && !data.height && imageDimensions) {\n\t\t\t\t\t\tdom.setAttribs(imgElm, {\n\t\t\t\t\t\t\twidth: imgElm.clientWidth,\n\t\t\t\t\t\t\theight: imgElm.clientHeight\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tselectImage();\n\t\t\t\t};\n\n\t\t\t\timgElm.onerror = selectImage;\n\t\t\t}\n\n\t\t\tupdateStyle();\n\t\t\trecalcSize();\n\n\t\t\tdata = tinymce.extend(data, win.toJSON());\n\n\t\t\tif (!data.alt) {\n\t\t\t\tdata.alt = '';\n\t\t\t}\n\n\t\t\tif (!data.title) {\n\t\t\t\tdata.title = '';\n\t\t\t}\n\n\t\t\tif (data.width === '') {\n\t\t\t\tdata.width = null;\n\t\t\t}\n\n\t\t\tif (data.height === '') {\n\t\t\t\tdata.height = null;\n\t\t\t}\n\n\t\t\tif (!data.style) {\n\t\t\t\tdata.style = null;\n\t\t\t}\n\n\t\t\t// Setup new data excluding style properties\n\t\t\t/*eslint dot-notation: 0*/\n\t\t\tdata = {\n\t\t\t\tsrc: data.src,\n\t\t\t\talt: data.alt,\n\t\t\t\ttitle: data.title,\n\t\t\t\twidth: data.width,\n\t\t\t\theight: data.height,\n\t\t\t\tstyle: data.style,\n\t\t\t\tcaption: data.caption,\n\t\t\t\t\"class\": data[\"class\"]\n\t\t\t};\n\n\t\t\teditor.undoManager.transact(function() {\n\t\t\t\tif (!data.src) {\n\t\t\t\t\tif (imgElm) {\n\t\t\t\t\t\tdom.remove(imgElm);\n\t\t\t\t\t\teditor.focus();\n\t\t\t\t\t\teditor.nodeChanged();\n\t\t\t\t\t}\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (data.title === \"\") {\n\t\t\t\t\tdata.title = null;\n\t\t\t\t}\n\n\t\t\t\tif (!imgElm) {\n\t\t\t\t\tdata.id = '__mcenew';\n\t\t\t\t\teditor.focus();\n\t\t\t\t\teditor.selection.setContent(dom.createHTML('img', data));\n\t\t\t\t\timgElm = dom.get('__mcenew');\n\t\t\t\t\tdom.setAttrib(imgElm, 'id', null);\n\t\t\t\t} else {\n\t\t\t\t\tdom.setAttribs(imgElm, data);\n\t\t\t\t}\n\n\t\t\t\teditor.editorUpload.uploadImagesAuto();\n\n\t\t\t\tif (data.caption === false) {\n\t\t\t\t\tif (dom.is(imgElm.parentNode, 'figure.image')) {\n\t\t\t\t\t\tfigureElm = imgElm.parentNode;\n\t\t\t\t\t\tdom.insertAfter(imgElm, figureElm);\n\t\t\t\t\t\tdom.remove(figureElm);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfunction isTextBlock(node) {\n\t\t\t\t\treturn editor.schema.getTextBlockElements()[node.nodeName];\n\t\t\t\t}\n\n\t\t\t\tif (data.caption === true) {\n\t\t\t\t\tif (!dom.is(imgElm.parentNode, 'figure.image')) {\n\t\t\t\t\t\toldImg = imgElm;\n\t\t\t\t\t\timgElm = imgElm.cloneNode(true);\n\t\t\t\t\t\tfigureElm = dom.create('figure', {'class': 'image'});\n\t\t\t\t\t\tfigureElm.appendChild(imgElm);\n\t\t\t\t\t\tfigureElm.appendChild(dom.create('figcaption', {contentEditable: true}, 'Caption'));\n\t\t\t\t\t\tfigureElm.contentEditable = false;\n\n\t\t\t\t\t\tvar textBlock = dom.getParent(oldImg, isTextBlock);\n\t\t\t\t\t\tif (textBlock) {\n\t\t\t\t\t\t\tdom.split(textBlock, oldImg, figureElm);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdom.replace(figureElm, oldImg);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\teditor.selection.select(figureElm);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\twaitLoad(imgElm);\n\t\t\t});\n\t\t}\n\n\t\tfunction removePixelSuffix(value) {\n\t\t\tif (value) {\n\t\t\t\tvalue = value.replace(/px$/, '');\n\t\t\t}\n\n\t\t\treturn value;\n\t\t}\n\n\t\tfunction srcChange(e) {\n\t\t\tvar srcURL, prependURL, absoluteURLPattern, meta = e.meta || {};\n\n\t\t\tif (imageListCtrl) {\n\t\t\t\timageListCtrl.value(editor.convertURL(this.value(), 'src'));\n\t\t\t}\n\n\t\t\ttinymce.each(meta, function(value, key) {\n\t\t\t\twin.find('#' + key).value(value);\n\t\t\t});\n\n\t\t\tif (!meta.width && !meta.height) {\n\t\t\t\tsrcURL = editor.convertURL(this.value(), 'src');\n\n\t\t\t\t// Pattern test the src url and make sure we haven't already prepended the url\n\t\t\t\tprependURL = editor.settings.image_prepend_url;\n\t\t\t\tabsoluteURLPattern = new RegExp('^(?:[a-z]+:)?//', 'i');\n\t\t\t\tif (prependURL && !absoluteURLPattern.test(srcURL) && srcURL.substring(0, prependURL.length) !== prependURL) {\n\t\t\t\t\tsrcURL = prependURL + srcURL;\n\t\t\t\t}\n\n\t\t\t\tthis.value(srcURL);\n\n\t\t\t\tgetImageSize(editor.documentBaseURI.toAbsolute(this.value()), function(data) {\n\t\t\t\t\tif (data.width && data.height && imageDimensions) {\n\t\t\t\t\t\twidth = data.width;\n\t\t\t\t\t\theight = data.height;\n\n\t\t\t\t\t\twin.find('#width').value(width);\n\t\t\t\t\t\twin.find('#height').value(height);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction onBeforeCall(e) {\n\t\t\te.meta = win.toJSON();\n\t\t}\n\n\t\timgElm = editor.selection.getNode();\n\t\tfigureElm = dom.getParent(imgElm, 'figure.image');\n\t\tif (figureElm) {\n\t\t\timgElm = dom.select('img', figureElm)[0];\n\t\t}\n\n\t\tif (imgElm && (imgElm.nodeName != 'IMG' || imgElm.getAttribute('data-mce-object') || imgElm.getAttribute('data-mce-placeholder'))) {\n\t\t\timgElm = null;\n\t\t}\n\n\t\tif (imgElm) {\n\t\t\twidth = dom.getAttrib(imgElm, 'width');\n\t\t\theight = dom.getAttrib(imgElm, 'height');\n\n\t\t\tdata = {\n\t\t\t\tsrc: dom.getAttrib(imgElm, 'src'),\n\t\t\t\talt: dom.getAttrib(imgElm, 'alt'),\n\t\t\t\ttitle: dom.getAttrib(imgElm, 'title'),\n\t\t\t\t\"class\": dom.getAttrib(imgElm, 'class'),\n\t\t\t\twidth: width,\n\t\t\t\theight: height,\n\t\t\t\tcaption: !!figureElm\n\t\t\t};\n\t\t}\n\n\t\tif (imageList) {\n\t\t\timageListCtrl = {\n\t\t\t\ttype: 'listbox',\n\t\t\t\tlabel: 'Image list',\n\t\t\t\tvalues: buildListItems(\n\t\t\t\t\timageList,\n\t\t\t\t\tfunction(item) {\n\t\t\t\t\t\titem.value = editor.convertURL(item.value || item.url, 'src');\n\t\t\t\t\t},\n\t\t\t\t\t[{text: 'None', value: ''}]\n\t\t\t\t),\n\t\t\t\tvalue: data.src && editor.convertURL(data.src, 'src'),\n\t\t\t\tonselect: function(e) {\n\t\t\t\t\tvar altCtrl = win.find('#alt');\n\n\t\t\t\t\tif (!altCtrl.value() || (e.lastControl && altCtrl.value() == e.lastControl.text())) {\n\t\t\t\t\t\taltCtrl.value(e.control.text());\n\t\t\t\t\t}\n\n\t\t\t\t\twin.find('#src').value(e.control.value()).fire('change');\n\t\t\t\t},\n\t\t\t\tonPostRender: function() {\n\t\t\t\t\t/*eslint consistent-this: 0*/\n\t\t\t\t\timageListCtrl = this;\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tif (editor.settings.image_class_list) {\n\t\t\tclassListCtrl = {\n\t\t\t\tname: 'class',\n\t\t\t\ttype: 'listbox',\n\t\t\t\tlabel: 'Class',\n\t\t\t\tvalues: buildListItems(\n\t\t\t\t\teditor.settings.image_class_list,\n\t\t\t\t\tfunction(item) {\n\t\t\t\t\t\tif (item.value) {\n\t\t\t\t\t\t\titem.textStyle = function() {\n\t\t\t\t\t\t\t\treturn editor.formatter.getCssText({inline: 'img', classes: [item.value]});\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t};\n\t\t}\n\n\t\t// General settings shared between simple and advanced dialogs\n\t\tvar generalFormItems = [\n\t\t\t{\n\t\t\t\tname: 'src',\n\t\t\t\ttype: 'filepicker',\n\t\t\t\tfiletype: 'image',\n\t\t\t\tlabel: 'Source',\n\t\t\t\tautofocus: true,\n\t\t\t\tonchange: srcChange,\n\t\t\t\tonbeforecall: onBeforeCall\n\t\t\t},\n\t\t\timageListCtrl\n\t\t];\n\n\t\tif (editor.settings.image_description !== false) {\n\t\t\tgeneralFormItems.push({name: 'alt', type: 'textbox', label: 'Image description'});\n\t\t}\n\n\t\tif (editor.settings.image_title) {\n\t\t\tgeneralFormItems.push({name: 'title', type: 'textbox', label: 'Image Title'});\n\t\t}\n\n\t\tif (imageDimensions) {\n\t\t\tgeneralFormItems.push({\n\t\t\t\ttype: 'container',\n\t\t\t\tlabel: 'Dimensions',\n\t\t\t\tlayout: 'flex',\n\t\t\t\tdirection: 'row',\n\t\t\t\talign: 'center',\n\t\t\t\tspacing: 5,\n\t\t\t\titems: [\n\t\t\t\t\t{name: 'width', type: 'textbox', maxLength: 5, size: 3, onchange: recalcSize, ariaLabel: 'Width'},\n\t\t\t\t\t{type: 'label', text: 'x'},\n\t\t\t\t\t{name: 'height', type: 'textbox', maxLength: 5, size: 3, onchange: recalcSize, ariaLabel: 'Height'},\n\t\t\t\t\t{name: 'constrain', type: 'checkbox', checked: true, text: 'Constrain proportions'}\n\t\t\t\t]\n\t\t\t});\n\t\t}\n\n\t\tgeneralFormItems.push(classListCtrl);\n\n\t\tif (editor.settings.image_caption && tinymce.Env.ceFalse) {\n\t\t\tgeneralFormItems.push({name: 'caption', type: 'checkbox', label: 'Caption'});\n\t\t}\n\n\t\tfunction mergeMargins(css) {\n\t\t\tif (css.margin) {\n\n\t\t\t\tvar splitMargin = css.margin.split(\" \");\n\n\t\t\t\tswitch (splitMargin.length) {\n\t\t\t\t\tcase 1: //margin: toprightbottomleft;\n\t\t\t\t\t\tcss['margin-top'] = css['margin-top'] || splitMargin[0];\n\t\t\t\t\t\tcss['margin-right'] = css['margin-right'] || splitMargin[0];\n\t\t\t\t\t\tcss['margin-bottom'] = css['margin-bottom'] || splitMargin[0];\n\t\t\t\t\t\tcss['margin-left'] = css['margin-left'] || splitMargin[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 2: //margin: topbottom rightleft;\n\t\t\t\t\t\tcss['margin-top'] = css['margin-top'] || splitMargin[0];\n\t\t\t\t\t\tcss['margin-right'] = css['margin-right'] || splitMargin[1];\n\t\t\t\t\t\tcss['margin-bottom'] = css['margin-bottom'] || splitMargin[0];\n\t\t\t\t\t\tcss['margin-left'] = css['margin-left'] || splitMargin[1];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 3: //margin: top rightleft bottom;\n\t\t\t\t\t\tcss['margin-top'] = css['margin-top'] || splitMargin[0];\n\t\t\t\t\t\tcss['margin-right'] = css['margin-right'] || splitMargin[1];\n\t\t\t\t\t\tcss['margin-bottom'] = css['margin-bottom'] || splitMargin[2];\n\t\t\t\t\t\tcss['margin-left'] = css['margin-left'] || splitMargin[1];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 4: //margin: top right bottom left;\n\t\t\t\t\t\tcss['margin-top'] = css['margin-top'] || splitMargin[0];\n\t\t\t\t\t\tcss['margin-right'] = css['margin-right'] || splitMargin[1];\n\t\t\t\t\t\tcss['margin-bottom'] = css['margin-bottom'] || splitMargin[2];\n\t\t\t\t\t\tcss['margin-left'] = css['margin-left'] || splitMargin[3];\n\t\t\t\t}\n\t\t\t\tdelete css.margin;\n\t\t\t}\n\t\t\treturn css;\n\t\t}\n\n\t\tfunction updateStyle() {\n\t\t\tfunction addPixelSuffix(value) {\n\t\t\t\tif (value.length > 0 && /^[0-9]+$/.test(value)) {\n\t\t\t\t\tvalue += 'px';\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tif (!editor.settings.image_advtab) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar data = win.toJSON(),\n\t\t\t\tcss = dom.parseStyle(data.style);\n\n\t\t\tcss = mergeMargins(css);\n\n\t\t\tif (data.vspace) {\n\t\t\t\tcss['margin-top'] = css['margin-bottom'] = addPixelSuffix(data.vspace);\n\t\t\t}\n\t\t\tif (data.hspace) {\n\t\t\t\tcss['margin-left'] = css['margin-right'] = addPixelSuffix(data.hspace);\n\t\t\t}\n\t\t\tif (data.border) {\n\t\t\t\tcss['border-width'] = addPixelSuffix(data.border);\n\t\t\t}\n\n\t\t\twin.find('#style').value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css))));\n\t\t}\n\n\t\tfunction updateVSpaceHSpaceBorder() {\n\t\t\tif (!editor.settings.image_advtab) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar data = win.toJSON(),\n\t\t\t\tcss = dom.parseStyle(data.style);\n\n\t\t\twin.find('#vspace').value(\"\");\n\t\t\twin.find('#hspace').value(\"\");\n\n\t\t\tcss = mergeMargins(css);\n\n\t\t\t//Move opposite equal margins to vspace/hspace field\n\t\t\tif ((css['margin-top'] && css['margin-bottom']) || (css['margin-right'] && css['margin-left'])) {\n\t\t\t\tif (css['margin-top'] === css['margin-bottom']) {\n\t\t\t\t\twin.find('#vspace').value(removePixelSuffix(css['margin-top']));\n\t\t\t\t} else {\n\t\t\t\t\twin.find('#vspace').value('');\n\t\t\t\t}\n\t\t\t\tif (css['margin-right'] === css['margin-left']) {\n\t\t\t\t\twin.find('#hspace').value(removePixelSuffix(css['margin-right']));\n\t\t\t\t} else {\n\t\t\t\t\twin.find('#hspace').value('');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t//Move border-width\n\t\t\tif (css['border-width']) {\n\t\t\t\twin.find('#border').value(removePixelSuffix(css['border-width']));\n\t\t\t}\n\n\t\t\twin.find('#style').value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css))));\n\n\t\t}\n\n\t\tif (editor.settings.image_advtab) {\n\t\t\t// Parse styles from img\n\t\t\tif (imgElm) {\n\t\t\t\tif (imgElm.style.marginLeft && imgElm.style.marginRight && imgElm.style.marginLeft === imgElm.style.marginRight) {\n\t\t\t\t\tdata.hspace = removePixelSuffix(imgElm.style.marginLeft);\n\t\t\t\t}\n\t\t\t\tif (imgElm.style.marginTop && imgElm.style.marginBottom && imgElm.style.marginTop === imgElm.style.marginBottom) {\n\t\t\t\t\tdata.vspace = removePixelSuffix(imgElm.style.marginTop);\n\t\t\t\t}\n\t\t\t\tif (imgElm.style.borderWidth) {\n\t\t\t\t\tdata.border = removePixelSuffix(imgElm.style.borderWidth);\n\t\t\t\t}\n\n\t\t\t\tdata.style = editor.dom.serializeStyle(editor.dom.parseStyle(editor.dom.getAttrib(imgElm, 'style')));\n\t\t\t}\n\n\t\t\t// Advanced dialog shows general+advanced tabs\n\t\t\twin = editor.windowManager.open({\n\t\t\t\ttitle: 'Insert/edit image',\n\t\t\t\tdata: data,\n\t\t\t\tbodyType: 'tabpanel',\n\t\t\t\tbody: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: 'General',\n\t\t\t\t\t\ttype: 'form',\n\t\t\t\t\t\titems: generalFormItems\n\t\t\t\t\t},\n\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: 'Advanced',\n\t\t\t\t\t\ttype: 'form',\n\t\t\t\t\t\tpack: 'start',\n\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Style',\n\t\t\t\t\t\t\t\tname: 'style',\n\t\t\t\t\t\t\t\ttype: 'textbox',\n\t\t\t\t\t\t\t\tonchange: updateVSpaceHSpaceBorder\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'form',\n\t\t\t\t\t\t\t\tlayout: 'grid',\n\t\t\t\t\t\t\t\tpackV: 'start',\n\t\t\t\t\t\t\t\tcolumns: 2,\n\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t\talignH: ['left', 'right'],\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\ttype: 'textbox',\n\t\t\t\t\t\t\t\t\tmaxWidth: 50,\n\t\t\t\t\t\t\t\t\tonchange: updateStyle\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t{label: 'Vertical space', name: 'vspace'},\n\t\t\t\t\t\t\t\t\t{label: 'Horizontal space', name: 'hspace'},\n\t\t\t\t\t\t\t\t\t{label: 'Border', name: 'border'}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tonSubmit: onSubmitForm\n\t\t\t});\n\t\t} else {\n\t\t\t// Simple default dialog\n\t\t\twin = editor.windowManager.open({\n\t\t\t\ttitle: 'Insert/edit image',\n\t\t\t\tdata: data,\n\t\t\t\tbody: generalFormItems,\n\t\t\t\tonSubmit: onSubmitForm\n\t\t\t});\n\t\t}\n\t}\n\n\teditor.on('preInit', function() {\n\t\tfunction hasImageClass(node) {\n\t\t\tvar className = node.attr('class');\n\t\t\treturn className && /\\bimage\\b/.test(className);\n\t\t}\n\n\t\tfunction toggleContentEditableState(state) {\n\t\t\treturn function(nodes) {\n\t\t\t\tvar i = nodes.length, node;\n\n\t\t\t\tfunction toggleContentEditable(node) {\n\t\t\t\t\tnode.attr('contenteditable', state ? 'true' : null);\n\t\t\t\t}\n\n\t\t\t\twhile (i--) {\n\t\t\t\t\tnode = nodes[i];\n\n\t\t\t\t\tif (hasImageClass(node)) {\n\t\t\t\t\t\tnode.attr('contenteditable', state ? 'false' : null);\n\t\t\t\t\t\ttinymce.each(node.getAll('figcaption'), toggleContentEditable);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\teditor.parser.addNodeFilter('figure', toggleContentEditableState(true));\n\t\teditor.serializer.addNodeFilter('figure', toggleContentEditableState(false));\n\t});\n\n\teditor.addButton('image', {\n\t\ticon: 'image',\n\t\ttooltip: 'Insert/edit image',\n\t\tonclick: createImageList(showDialog),\n\t\tstateSelector: 'img:not([data-mce-object],[data-mce-placeholder]),figure.image'\n\t});\n\n\teditor.addMenuItem('image', {\n\t\ticon: 'image',\n\t\ttext: 'Image',\n\t\tonclick: createImageList(showDialog),\n\t\tcontext: 'insert',\n\t\tprependToContext: true\n\t});\n\n\teditor.addCommand('mceImage', createImageList(showDialog));\n});\n;\r\n/**\n * plugin.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/*global tinymce:true */\n\ntinymce.PluginManager.add('print', function(editor) {\n\teditor.addCommand('mcePrint', function() {\n\t\teditor.getWin().print();\n\t});\n\n\teditor.addButton('print', {\n\t\ttitle: 'Print',\n\t\tcmd: 'mcePrint'\n\t});\n\n\teditor.addShortcut('Meta+P', '', 'mcePrint');\n\n\teditor.addMenuItem('print', {\n\t\ttext: 'Print',\n\t\tcmd: 'mcePrint',\n\t\ticon: 'print',\n\t\tshortcut: 'Meta+P',\n\t\tcontext: 'file'\n\t});\n});\n;\r\n/**\n * plugin.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/*global tinymce:true */\n\ntinymce.PluginManager.add('preview', function(editor) {\n\tvar settings = editor.settings, sandbox = !tinymce.Env.ie;\n\n\teditor.addCommand('mcePreview', function() {\n\t\teditor.windowManager.open({\n\t\t\ttitle: 'Preview',\n\t\t\twidth: parseInt(editor.getParam(\"plugin_preview_width\", \"650\"), 10),\n\t\t\theight: parseInt(editor.getParam(\"plugin_preview_height\", \"500\"), 10),\n\t\t\thtml: '',\n\t\t\tbuttons: {\n\t\t\t\ttext: 'Close',\n\t\t\t\tonclick: function() {\n\t\t\t\t\tthis.parent().parent().close();\n\t\t\t\t}\n\t\t\t},\n\t\t\tonPostRender: function() {\n\t\t\t\tvar previewHtml, headHtml = '';\n\n\t\t\t\theadHtml += '';\n\n\t\t\t\ttinymce.each(editor.contentCSS, function(url) {\n\t\t\t\t\theadHtml += '';\n\t\t\t\t});\n\n\t\t\t\tvar bodyId = settings.body_id || 'tinymce';\n\t\t\t\tif (bodyId.indexOf('=') != -1) {\n\t\t\t\t\tbodyId = editor.getParam('body_id', '', 'hash');\n\t\t\t\t\tbodyId = bodyId[editor.id] || bodyId;\n\t\t\t\t}\n\n\t\t\t\tvar bodyClass = settings.body_class || '';\n\t\t\t\tif (bodyClass.indexOf('=') != -1) {\n\t\t\t\t\tbodyClass = editor.getParam('body_class', '', 'hash');\n\t\t\t\t\tbodyClass = bodyClass[editor.id] || '';\n\t\t\t\t}\n\n\t\t\t\tvar preventClicksOnLinksScript = (\n\t\t\t\t\t' '\n\t\t\t\t);\n\n\t\t\t\tvar dirAttr = editor.settings.directionality ? ' dir=\"' + editor.settings.directionality + '\"' : '';\n\n\t\t\t\tpreviewHtml = (\n\t\t\t\t\t'' +\n\t\t\t\t\t'' +\n\t\t\t\t\t'' +\n\t\t\t\t\t\theadHtml +\n\t\t\t\t\t'' +\n\t\t\t\t\t'' +\n\t\t\t\t\t\teditor.getContent() +\n\t\t\t\t\t\tpreventClicksOnLinksScript +\n\t\t\t\t\t'' +\n\t\t\t\t\t''\n\t\t\t\t);\n\n\t\t\t\tif (!sandbox) {\n\t\t\t\t\t// IE 6-11 doesn't support data uris on iframes\n\t\t\t\t\t// so I guess they will have to be less secure since we can't sandbox on those\n\t\t\t\t\t// TODO: Use sandbox if future versions of IE supports iframes with data: uris.\n\t\t\t\t\tvar doc = this.getEl('body').firstChild.contentWindow.document;\n\t\t\t\t\tdoc.open();\n\t\t\t\t\tdoc.write(previewHtml);\n\t\t\t\t\tdoc.close();\n\t\t\t\t} else {\n\t\t\t\t\tthis.getEl('body').firstChild.src = 'data:text/html;charset=utf-8,' + encodeURIComponent(previewHtml);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n\n\teditor.addButton('preview', {\n\t\ttitle: 'Preview',\n\t\tcmd: 'mcePreview'\n\t});\n\n\teditor.addMenuItem('preview', {\n\t\ttext: 'Preview',\n\t\tcmd: 'mcePreview',\n\t\tcontext: 'view'\n\t});\n});\n;\r\n/**\n * Compiled inline version. (Library mode)\n */\n\n/*jshint smarttabs:true, undef:true, latedef:true, curly:true, bitwise:true, camelcase:true */\n/*globals $code */\n\n(function(exports, undefined) {\n\t\"use strict\";\n\n\tvar modules = {};\n\n\tfunction require(ids, callback) {\n\t\tvar module, defs = [];\n\n\t\tfor (var i = 0; i < ids.length; ++i) {\n\t\t\tmodule = modules[ids[i]] || resolve(ids[i]);\n\t\t\tif (!module) {\n\t\t\t\tthrow 'module definition dependecy not found: ' + ids[i];\n\t\t\t}\n\n\t\t\tdefs.push(module);\n\t\t}\n\n\t\tcallback.apply(null, defs);\n\t}\n\n\tfunction define(id, dependencies, definition) {\n\t\tif (typeof id !== 'string') {\n\t\t\tthrow 'invalid module definition, module id must be defined and be a string';\n\t\t}\n\n\t\tif (dependencies === undefined) {\n\t\t\tthrow 'invalid module definition, dependencies must be specified';\n\t\t}\n\n\t\tif (definition === undefined) {\n\t\t\tthrow 'invalid module definition, definition function must be specified';\n\t\t}\n\n\t\trequire(dependencies, function() {\n\t\t\tmodules[id] = definition.apply(null, arguments);\n\t\t});\n\t}\n\n\tfunction defined(id) {\n\t\treturn !!modules[id];\n\t}\n\n\tfunction resolve(id) {\n\t\tvar target = exports;\n\t\tvar fragments = id.split(/[.\\/]/);\n\n\t\tfor (var fi = 0; fi < fragments.length; ++fi) {\n\t\t\tif (!target[fragments[fi]]) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttarget = target[fragments[fi]];\n\t\t}\n\n\t\treturn target;\n\t}\n\n\tfunction expose(ids) {\n\t\tvar i, target, id, fragments, privateModules;\n\n\t\tfor (i = 0; i < ids.length; i++) {\n\t\t\ttarget = exports;\n\t\t\tid = ids[i];\n\t\t\tfragments = id.split(/[.\\/]/);\n\n\t\t\tfor (var fi = 0; fi < fragments.length - 1; ++fi) {\n\t\t\t\tif (target[fragments[fi]] === undefined) {\n\t\t\t\t\ttarget[fragments[fi]] = {};\n\t\t\t\t}\n\n\t\t\t\ttarget = target[fragments[fi]];\n\t\t\t}\n\n\t\t\ttarget[fragments[fragments.length - 1]] = modules[id];\n\t\t}\n\n\t\t// Expose private modules for unit tests\n\t\tif (exports.AMDLC_TESTS) {\n\t\t\tprivateModules = exports.privateModules || {};\n\n\t\t\tfor (id in modules) {\n\t\t\t\tprivateModules[id] = modules[id];\n\t\t\t}\n\n\t\t\tfor (i = 0; i < ids.length; i++) {\n\t\t\t\tdelete privateModules[ids[i]];\n\t\t\t}\n\n\t\t\texports.privateModules = privateModules;\n\t\t}\n\t}\n\n// Included from: js/tinymce/plugins/table/classes/Utils.js\n\n/**\n * Utils.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Various utility functions.\n *\n * @class tinymce.tableplugin.Utils\n * @private\n */\ndefine(\"tinymce/tableplugin/Utils\", [\n\t\"tinymce/Env\"\n], function(Env) {\n\tvar setSpanVal = function (name) {\n\t\treturn function (td, val) {\n\t\t\tif (td) {\n\t\t\t\tval = parseInt(val, 10);\n\n\t\t\t\tif (val === 1 || val === 0) {\n\t\t\t\t\ttd.removeAttribute(name, 1);\n\t\t\t\t} else {\n\t\t\t\t\ttd.setAttribute(name, val, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t};\n\n\tvar getSpanVal = function (name) {\n\t\treturn function (td) {\n\t\t\treturn parseInt(td.getAttribute(name) || 1, 10);\n\t\t};\n\t};\n\n\tfunction paddCell(cell) {\n\t\tif (!Env.ie || Env.ie > 9) {\n\t\t\tif (!cell.hasChildNodes()) {\n\t\t\t\tcell.innerHTML = '
    ';\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tsetColSpan: setSpanVal('colSpan'),\n\t\tsetRowSpan: setSpanVal('rowspan'),\n\t\tgetColSpan: getSpanVal('colSpan'),\n\t\tgetRowSpan: getSpanVal('rowSpan'),\n\t\tsetSpanVal: function (td, name, value) {\n\t\t\tsetSpanVal(name)(td, value);\n\t\t},\n\t\tgetSpanVal: function (td, name) {\n\t\t\treturn getSpanVal(name)(td);\n\t\t},\n\t\tpaddCell: paddCell\n\t};\n});\n\n// Included from: js/tinymce/plugins/table/classes/SplitCols.js\n\n/**\n * SplitCols.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2016 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Contains logic for handling splitting of merged rows.\n *\n * @class tinymce.tableplugin.SplitCols\n * @private\n */\ndefine(\"tinymce/tableplugin/SplitCols\", [\n\t\"tinymce/util/Tools\",\n\t\"tinymce/tableplugin/Utils\"\n], function(Tools, Utils) {\n\tvar getCellAt = function (grid, x, y) {\n\t\treturn grid[y] ? grid[y][x] : null;\n\t};\n\n\tvar getCellElmAt = function (grid, x, y) {\n\t\tvar cell = getCellAt(grid, x, y);\n\t\treturn cell ? cell.elm : null;\n\t};\n\n\tvar countHoles = function (grid, x, y, delta) {\n\t\tvar y2, cell, count = 0, elm = getCellElmAt(grid, x, y);\n\n\t\tfor (y2 = y; delta > 0 ? y2 < grid.length : y2 >= 0; y2 += delta) {\n\t\t\tcell = getCellAt(grid, x, y2);\n\t\t\tif (elm !== cell.elm) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcount++;\n\t\t}\n\n\t\treturn count;\n\t};\n\n\tvar findRealElm = function (grid, x, y) {\n\t\tvar cell, row = grid[y];\n\n\t\tfor (var x2 = x; x2 < row.length; x2++) {\n\t\t\tcell = row[x2];\n\t\t\tif (cell.real) {\n\t\t\t\treturn cell.elm;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t};\n\n\tvar getRowSplitInfo = function (grid, y) {\n\t\tvar cell, result = [], row = grid[y];\n\n\t\tfor (var x = 0; x < row.length; x++) {\n\t\t\tcell = row[x];\n\t\t\tresult.push({\n\t\t\t\telm: cell.elm,\n\t\t\t\tabove: countHoles(grid, x, y, -1) - 1,\n\t\t\t\tbelow: countHoles(grid, x, y, 1) - 1\n\t\t\t});\n\n\t\t\tx += Utils.getColSpan(cell.elm) - 1;\n\t\t}\n\n\t\treturn result;\n\t};\n\n\tvar createCell = function (info, rowSpan) {\n\t\tvar doc = info.elm.ownerDocument;\n\t\tvar newCell = doc.createElement('td');\n\n\t\tUtils.setColSpan(newCell, Utils.getColSpan(info.elm));\n\t\tUtils.setRowSpan(newCell, rowSpan);\n\t\tUtils.paddCell(newCell);\n\n\t\treturn newCell;\n\t};\n\n\tvar insertOrAppendCell = function (grid, newCell, x, y) {\n\t\tvar realCellElm = findRealElm(grid, x + 1, y);\n\n\t\tif (!realCellElm) {\n\t\t\trealCellElm = findRealElm(grid, 0, y);\n\t\t\trealCellElm.parentNode.appendChild(newCell);\n\t\t} else {\n\t\t\trealCellElm.parentNode.insertBefore(newCell, realCellElm);\n\t\t}\n\t};\n\n\tvar splitAbove = function (grid, info, x, y) {\n\t\tif (info.above !== 0) {\n\t\t\tUtils.setRowSpan(info.elm, info.above);\n\t\t\tvar cell = createCell(info, info.below + 1);\n\t\t\tinsertOrAppendCell(grid, cell, x, y);\n\t\t\treturn cell;\n\t\t}\n\n\t\treturn null;\n\t};\n\n\tvar splitBelow = function (grid, info, x, y) {\n\t\tif (info.below !== 0) {\n\t\t\tUtils.setRowSpan(info.elm, info.above + 1);\n\t\t\tvar cell = createCell(info, info.below);\n\t\t\tinsertOrAppendCell(grid, cell, x, y + 1);\n\t\t\treturn cell;\n\t\t}\n\n\t\treturn null;\n\t};\n\n\tvar splitAt = function (grid, x, y, before) {\n\t\tvar rowInfos = getRowSplitInfo(grid, y);\n\t\tvar rowElm = getCellElmAt(grid, x, y).parentNode;\n\t\tvar cells = [];\n\n\t\tTools.each(rowInfos, function (info, x) {\n\t\t\tvar cell = before ? splitAbove(grid, info, x, y) : splitBelow(grid, info, x, y);\n\t\t\tif (cell !== null) {\n\t\t\t\tcells.push(cells);\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tcells: cells,\n\t\t\trow: rowElm\n\t\t};\n\t};\n\n\treturn {\n\t\tsplitAt: splitAt\n\t};\n});\n\n// Included from: js/tinymce/plugins/table/classes/TableGrid.js\n\n/**\n * TableGrid.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class creates a grid out of a table element. This\n * makes it a whole lot easier to handle complex tables with\n * col/row spans.\n *\n * @class tinymce.tableplugin.TableGrid\n * @private\n */\ndefine(\"tinymce/tableplugin/TableGrid\", [\n\t\"tinymce/util/Tools\",\n\t\"tinymce/Env\",\n\t\"tinymce/tableplugin/Utils\",\n\t\"tinymce/tableplugin/SplitCols\"\n], function(Tools, Env, Utils, SplitCols) {\n\tvar each = Tools.each, getSpanVal = Utils.getSpanVal, setSpanVal = Utils.setSpanVal;\n\n\treturn function(editor, table, selectedCell) {\n\t\tvar grid, gridWidth, startPos, endPos, selection = editor.selection, dom = selection.dom;\n\n\t\tfunction removeCellSelection() {\n\t\t\teditor.$('td[data-mce-selected],th[data-mce-selected]').removeAttr('data-mce-selected');\n\t\t}\n\n\t\tfunction isEditorBody(node) {\n\t\t\treturn node === editor.getBody();\n\t\t}\n\n\t\tfunction getChildrenByName(node, names) {\n\t\t\tif (!node) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tnames = Tools.map(names.split(','), function(name) {\n\t\t\t\treturn name.toLowerCase();\n\t\t\t});\n\n\t\t\treturn Tools.grep(node.childNodes, function(node) {\n\t\t\t\treturn Tools.inArray(names, node.nodeName.toLowerCase()) !== -1;\n\t\t\t});\n\t\t}\n\n\t\tfunction buildGrid() {\n\t\t\tvar startY = 0;\n\n\t\t\tgrid = [];\n\t\t\tgridWidth = 0;\n\n\t\t\teach(['thead', 'tbody', 'tfoot'], function(part) {\n\t\t\t\tvar partElm = getChildrenByName(table, part)[0];\n\t\t\t\tvar rows = getChildrenByName(partElm, 'tr');\n\n\t\t\t\teach(rows, function(tr, y) {\n\t\t\t\t\ty += startY;\n\n\t\t\t\t\teach(getChildrenByName(tr, 'td,th'), function(td, x) {\n\t\t\t\t\t\tvar x2, y2, rowspan, colspan;\n\n\t\t\t\t\t\t// Skip over existing cells produced by rowspan\n\t\t\t\t\t\tif (grid[y]) {\n\t\t\t\t\t\t\twhile (grid[y][x]) {\n\t\t\t\t\t\t\t\tx++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Get col/rowspan from cell\n\t\t\t\t\t\trowspan = getSpanVal(td, 'rowspan');\n\t\t\t\t\t\tcolspan = getSpanVal(td, 'colspan');\n\n\t\t\t\t\t\t// Fill out rowspan/colspan right and down\n\t\t\t\t\t\tfor (y2 = y; y2 < y + rowspan; y2++) {\n\t\t\t\t\t\t\tif (!grid[y2]) {\n\t\t\t\t\t\t\t\tgrid[y2] = [];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (x2 = x; x2 < x + colspan; x2++) {\n\t\t\t\t\t\t\t\tgrid[y2][x2] = {\n\t\t\t\t\t\t\t\t\tpart: part,\n\t\t\t\t\t\t\t\t\treal: y2 == y && x2 == x,\n\t\t\t\t\t\t\t\t\telm: td,\n\t\t\t\t\t\t\t\t\trowspan: rowspan,\n\t\t\t\t\t\t\t\t\tcolspan: colspan\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tgridWidth = Math.max(gridWidth, x + 1);\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\tstartY += rows.length;\n\t\t\t});\n\t\t}\n\n\t\tfunction fireNewRow(node) {\n\t\t\teditor.fire('newrow', {\n\t\t\t\tnode: node\n\t\t\t});\n\n\t\t\treturn node;\n\t\t}\n\n\t\tfunction fireNewCell(node) {\n\t\t\teditor.fire('newcell', {\n\t\t\t\tnode: node\n\t\t\t});\n\n\t\t\treturn node;\n\t\t}\n\n\t\tfunction cloneNode(node, children) {\n\t\t\tnode = node.cloneNode(children);\n\t\t\tnode.removeAttribute('id');\n\n\t\t\treturn node;\n\t\t}\n\n\t\tfunction getCell(x, y) {\n\t\t\tvar row;\n\n\t\t\trow = grid[y];\n\t\t\tif (row) {\n\t\t\t\treturn row[x];\n\t\t\t}\n\t\t}\n\n\t\tfunction getRow(grid, y) {\n\t\t\treturn grid[y] ? grid[y] : null;\n\t\t}\n\n\t\tfunction getColumn(grid, x) {\n\t\t\tvar out = [];\n\n\t\t\tfor (var y = 0; y < grid.length; y++) {\n\t\t\t\tout.push(getCell(x, y));\n\t\t\t}\n\n\t\t\treturn out;\n\t\t}\n\n\t\tfunction isCellSelected(cell) {\n\t\t\treturn cell && (!!dom.getAttrib(cell.elm, 'data-mce-selected') || cell == selectedCell);\n\t\t}\n\n\t\tfunction getSelectedRows() {\n\t\t\tvar rows = [];\n\n\t\t\teach(table.rows, function(row) {\n\t\t\t\teach(row.cells, function(cell) {\n\t\t\t\t\tif (dom.getAttrib(cell, 'data-mce-selected') || (selectedCell && cell == selectedCell.elm)) {\n\t\t\t\t\t\trows.push(row);\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn rows;\n\t\t}\n\n\t\tfunction countSelectedCols() {\n\t\t\tvar cols = 0;\n\n\t\t\teach(grid, function(row) {\n\t\t\t\teach(row, function(cell) {\n\t\t\t\t\tif (isCellSelected(cell)) {\n\t\t\t\t\t\tcols++;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif (cols) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn cols;\n\t\t}\n\n\t\tfunction deleteTable() {\n\t\t\tvar rng = dom.createRng();\n\n\t\t\tif (isEditorBody(table)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trng.setStartAfter(table);\n\t\t\trng.setEndAfter(table);\n\n\t\t\tselection.setRng(rng);\n\n\t\t\tdom.remove(table);\n\t\t}\n\n\t\tfunction cloneCell(cell) {\n\t\t\tvar formatNode, cloneFormats = {};\n\n\t\t\tif (editor.settings.table_clone_elements !== false) {\n\t\t\t\tcloneFormats = Tools.makeMap(\n\t\t\t\t\t(editor.settings.table_clone_elements || 'strong em b i span font h1 h2 h3 h4 h5 h6 p div').toUpperCase(),\n\t\t\t\t\t/[ ,]/\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Clone formats\n\t\t\tTools.walk(cell, function(node) {\n\t\t\t\tvar curNode;\n\n\t\t\t\tif (node.nodeType == 3) {\n\t\t\t\t\teach(dom.getParents(node.parentNode, null, cell).reverse(), function(node) {\n\t\t\t\t\t\tif (!cloneFormats[node.nodeName]) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tnode = cloneNode(node, false);\n\n\t\t\t\t\t\tif (!formatNode) {\n\t\t\t\t\t\t\tformatNode = curNode = node;\n\t\t\t\t\t\t} else if (curNode) {\n\t\t\t\t\t\t\tcurNode.appendChild(node);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcurNode = node;\n\t\t\t\t\t});\n\n\t\t\t\t\t// Add something to the inner node\n\t\t\t\t\tif (curNode) {\n\t\t\t\t\t\tcurNode.innerHTML = Env.ie && Env.ie < 10 ? ' ' : '
    ';\n\t\t\t\t\t}\n\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}, 'childNodes');\n\n\t\t\tcell = cloneNode(cell, false);\n\t\t\tfireNewCell(cell);\n\n\t\t\tsetSpanVal(cell, 'rowSpan', 1);\n\t\t\tsetSpanVal(cell, 'colSpan', 1);\n\n\t\t\tif (formatNode) {\n\t\t\t\tcell.appendChild(formatNode);\n\t\t\t} else {\n\t\t\t\tUtils.paddCell(cell);\n\t\t\t}\n\n\t\t\treturn cell;\n\t\t}\n\n\t\tfunction cleanup() {\n\t\t\tvar rng = dom.createRng(), row;\n\n\t\t\t// Empty rows\n\t\t\teach(dom.select('tr', table), function(tr) {\n\t\t\t\tif (tr.cells.length === 0) {\n\t\t\t\t\tdom.remove(tr);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Empty table\n\t\t\tif (dom.select('tr', table).length === 0) {\n\t\t\t\trng.setStartBefore(table);\n\t\t\t\trng.setEndBefore(table);\n\t\t\t\tselection.setRng(rng);\n\t\t\t\tdom.remove(table);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Empty header/body/footer\n\t\t\teach(dom.select('thead,tbody,tfoot', table), function(part) {\n\t\t\t\tif (part.rows.length === 0) {\n\t\t\t\t\tdom.remove(part);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Restore selection to start position if it still exists\n\t\t\tbuildGrid();\n\n\t\t\t// If we have a valid startPos object\n\t\t\tif (startPos) {\n\t\t\t\t// Restore the selection to the closest table position\n\t\t\t\trow = grid[Math.min(grid.length - 1, startPos.y)];\n\t\t\t\tif (row) {\n\t\t\t\t\tselection.select(row[Math.min(row.length - 1, startPos.x)].elm, true);\n\t\t\t\t\tselection.collapse(true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction fillLeftDown(x, y, rows, cols) {\n\t\t\tvar tr, x2, r, c, cell;\n\n\t\t\ttr = grid[y][x].elm.parentNode;\n\t\t\tfor (r = 1; r <= rows; r++) {\n\t\t\t\ttr = dom.getNext(tr, 'tr');\n\n\t\t\t\tif (tr) {\n\t\t\t\t\t// Loop left to find real cell\n\t\t\t\t\tfor (x2 = x; x2 >= 0; x2--) {\n\t\t\t\t\t\tcell = grid[y + r][x2].elm;\n\n\t\t\t\t\t\tif (cell.parentNode == tr) {\n\t\t\t\t\t\t\t// Append clones after\n\t\t\t\t\t\t\tfor (c = 1; c <= cols; c++) {\n\t\t\t\t\t\t\t\tdom.insertAfter(cloneCell(cell), cell);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (x2 == -1) {\n\t\t\t\t\t\t// Insert nodes before first cell\n\t\t\t\t\t\tfor (c = 1; c <= cols; c++) {\n\t\t\t\t\t\t\ttr.insertBefore(cloneCell(tr.cells[0]), tr.cells[0]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction split() {\n\t\t\teach(grid, function(row, y) {\n\t\t\t\teach(row, function(cell, x) {\n\t\t\t\t\tvar colSpan, rowSpan, i;\n\n\t\t\t\t\tif (isCellSelected(cell)) {\n\t\t\t\t\t\tcell = cell.elm;\n\t\t\t\t\t\tcolSpan = getSpanVal(cell, 'colspan');\n\t\t\t\t\t\trowSpan = getSpanVal(cell, 'rowspan');\n\n\t\t\t\t\t\tif (colSpan > 1 || rowSpan > 1) {\n\t\t\t\t\t\t\tsetSpanVal(cell, 'rowSpan', 1);\n\t\t\t\t\t\t\tsetSpanVal(cell, 'colSpan', 1);\n\n\t\t\t\t\t\t\t// Insert cells right\n\t\t\t\t\t\t\tfor (i = 0; i < colSpan - 1; i++) {\n\t\t\t\t\t\t\t\tdom.insertAfter(cloneCell(cell), cell);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfillLeftDown(x, y, rowSpan - 1, colSpan);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tfunction findItemsOutsideOfRange(items, start, end) {\n\t\t\tvar out = [];\n\n\t\t\tfor (var i = 0; i < items.length; i++) {\n\t\t\t\tif (i < start || i > end) {\n\t\t\t\t\tout.push(items[i]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn out;\n\t\t}\n\n\t\tfunction getFakeCells(cells) {\n\t\t\treturn Tools.grep(cells, function (cell) {\n\t\t\t\treturn cell.real === false;\n\t\t\t});\n\t\t}\n\n\t\tfunction getUniqueElms(cells) {\n\t\t\tvar elms = [];\n\n\t\t\tfor (var i = 0; i < cells.length; i++) {\n\t\t\t\tvar elm = cells[i].elm;\n\t\t\t\tif (elms[elms.length - 1] !== elm) {\n\t\t\t\t\telms.push(elm);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn elms;\n\t\t}\n\n\t\tfunction reduceRowSpans(grid, startX, startY, endX, endY) {\n\t\t\tvar count = 0;\n\n\t\t\tif (endY - startY < 1) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tfor (var y = startY + 1; y <= endY; y++) {\n\t\t\t\tvar allCells = findItemsOutsideOfRange(getRow(grid, y), startX, endX);\n\t\t\t\tvar fakeCells = getFakeCells(allCells);\n\n\t\t\t\tif (allCells.length === fakeCells.length) {\n\t\t\t\t\tTools.each(getUniqueElms(fakeCells), function (elm) {\n\t\t\t\t\t\tUtils.setRowSpan(elm, Utils.getRowSpan(elm) - 1);\n\t\t\t\t\t});\n\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn count;\n\t\t}\n\n\t\tfunction reduceColSpans(grid, startX, startY, endX, endY) {\n\t\t\tvar count = 0;\n\n\t\t\tif (endX - startX < 1) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tfor (var x = startX + 1; x <= endX; x++) {\n\t\t\t\tvar allCells = findItemsOutsideOfRange(getColumn(grid, x), startY, endY);\n\t\t\t\tvar fakeCells = getFakeCells(allCells);\n\n\t\t\t\tif (allCells.length === fakeCells.length) {\n\t\t\t\t\tTools.each(getUniqueElms(fakeCells), function (elm) {\n\t\t\t\t\t\tUtils.setColSpan(elm, Utils.getColSpan(elm) - 1);\n\t\t\t\t\t});\n\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn count;\n\t\t}\n\n\t\tfunction merge(cell, cols, rows) {\n\t\t\tvar pos, startX, startY, endX, endY, x, y, startCell, endCell, children, count, reducedRows, reducedCols;\n\n\t\t\t// Use specified cell and cols/rows\n\t\t\tif (cell) {\n\t\t\t\tpos = getPos(cell);\n\t\t\t\tstartX = pos.x;\n\t\t\t\tstartY = pos.y;\n\t\t\t\tendX = startX + (cols - 1);\n\t\t\t\tendY = startY + (rows - 1);\n\t\t\t} else {\n\t\t\t\tstartPos = endPos = null;\n\n\t\t\t\t// Calculate start/end pos by checking for selected cells in grid works better with context menu\n\t\t\t\teach(grid, function(row, y) {\n\t\t\t\t\teach(row, function(cell, x) {\n\t\t\t\t\t\tif (isCellSelected(cell)) {\n\t\t\t\t\t\t\tif (!startPos) {\n\t\t\t\t\t\t\t\tstartPos = {x: x, y: y};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tendPos = {x: x, y: y};\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// Use selection, but make sure startPos is valid before accessing\n\t\t\t\tif (startPos) {\n\t\t\t\t\tstartX = startPos.x;\n\t\t\t\t\tstartY = startPos.y;\n\t\t\t\t\tendX = endPos.x;\n\t\t\t\t\tendY = endPos.y;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Find start/end cells\n\t\t\tstartCell = getCell(startX, startY);\n\t\t\tendCell = getCell(endX, endY);\n\n\t\t\t// Check if the cells exists and if they are of the same part for example tbody = tbody\n\t\t\tif (startCell && endCell && startCell.part == endCell.part) {\n\t\t\t\t// Split and rebuild grid\n\t\t\t\tsplit();\n\t\t\t\tbuildGrid();\n\n\t\t\t\treducedRows = reduceRowSpans(grid, startX, startY, endX, endY);\n\t\t\t\treducedCols = reduceColSpans(grid, startX, startY, endX, endY);\n\n\t\t\t\t// Set row/col span to start cell\n\t\t\t\tstartCell = getCell(startX, startY).elm;\n\t\t\t\tvar colSpan = (endX - startX - reducedCols) + 1;\n\t\t\t\tvar rowSpan = (endY - startY - reducedRows) + 1;\n\n\t\t\t\t// All cells in table selected then just make it a table with one cell\n\t\t\t\tif (colSpan === gridWidth && rowSpan === grid.length) {\n\t\t\t\t\tcolSpan = 1;\n\t\t\t\t\trowSpan = 1;\n\t\t\t\t}\n\n\t\t\t\t// Multiple whole rows selected then just make it one rowSpan\n\t\t\t\tif (colSpan === gridWidth && rowSpan > 1) {\n\t\t\t\t\trowSpan = 1;\n\t\t\t\t}\n\n\t\t\t\tsetSpanVal(startCell, 'colSpan', colSpan);\n\t\t\t\tsetSpanVal(startCell, 'rowSpan', rowSpan);\n\n\t\t\t\t// Remove other cells and add it's contents to the start cell\n\t\t\t\tfor (y = startY; y <= endY; y++) {\n\t\t\t\t\tfor (x = startX; x <= endX; x++) {\n\t\t\t\t\t\tif (!grid[y] || !grid[y][x]) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcell = grid[y][x].elm;\n\n\t\t\t\t\t\t/*jshint loopfunc:true */\n\t\t\t\t\t\t/*eslint no-loop-func:0 */\n\t\t\t\t\t\tif (cell != startCell) {\n\t\t\t\t\t\t\t// Move children to startCell\n\t\t\t\t\t\t\tchildren = Tools.grep(cell.childNodes);\n\t\t\t\t\t\t\teach(children, function(node) {\n\t\t\t\t\t\t\t\tstartCell.appendChild(node);\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t// Remove bogus nodes if there is children in the target cell\n\t\t\t\t\t\t\tif (children.length) {\n\t\t\t\t\t\t\t\tchildren = Tools.grep(startCell.childNodes);\n\t\t\t\t\t\t\t\tcount = 0;\n\t\t\t\t\t\t\t\teach(children, function(node) {\n\t\t\t\t\t\t\t\t\tif (node.nodeName == 'BR' && count++ < children.length - 1) {\n\t\t\t\t\t\t\t\t\t\tstartCell.removeChild(node);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tdom.remove(cell);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Remove empty rows etc and restore caret location\n\t\t\t\tcleanup();\n\t\t\t}\n\t\t}\n\n\t\tfunction insertRow(before) {\n\t\t\tvar posY, cell, lastCell, x, rowElm, newRow, newCell, otherCell, rowSpan, spanValue;\n\n\t\t\t// Find first/last row\n\t\t\teach(grid, function(row, y) {\n\t\t\t\teach(row, function(cell) {\n\t\t\t\t\tif (isCellSelected(cell)) {\n\t\t\t\t\t\tcell = cell.elm;\n\t\t\t\t\t\trowElm = cell.parentNode;\n\t\t\t\t\t\tnewRow = fireNewRow(cloneNode(rowElm, false));\n\t\t\t\t\t\tposY = y;\n\n\t\t\t\t\t\tif (before) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (before) {\n\t\t\t\t\treturn posY === undefined;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// If posY is undefined there is nothing for us to do here...just return to avoid crashing below\n\t\t\tif (posY === undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (x = 0, spanValue = 0; x < grid[0].length; x += spanValue) {\n\t\t\t\t// Cell not found could be because of an invalid table structure\n\t\t\t\tif (!grid[posY][x]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcell = grid[posY][x].elm;\n\t\t\t\tspanValue = getSpanVal(cell, 'colspan');\n\n\t\t\t\tif (cell != lastCell) {\n\t\t\t\t\tif (!before) {\n\t\t\t\t\t\trowSpan = getSpanVal(cell, 'rowspan');\n\t\t\t\t\t\tif (rowSpan > 1) {\n\t\t\t\t\t\t\tsetSpanVal(cell, 'rowSpan', rowSpan + 1);\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Check if cell above can be expanded\n\t\t\t\t\t\tif (posY > 0 && grid[posY - 1][x]) {\n\t\t\t\t\t\t\totherCell = grid[posY - 1][x].elm;\n\t\t\t\t\t\t\trowSpan = getSpanVal(otherCell, 'rowSpan');\n\t\t\t\t\t\t\tif (rowSpan > 1) {\n\t\t\t\t\t\t\t\tsetSpanVal(otherCell, 'rowSpan', rowSpan + 1);\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Insert new cell into new row\n\t\t\t\t\tnewCell = cloneCell(cell);\n\t\t\t\t\tsetSpanVal(newCell, 'colSpan', cell.colSpan);\n\n\t\t\t\t\tnewRow.appendChild(newCell);\n\n\t\t\t\t\tlastCell = cell;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newRow.hasChildNodes()) {\n\t\t\t\tif (!before) {\n\t\t\t\t\tdom.insertAfter(newRow, rowElm);\n\t\t\t\t} else {\n\t\t\t\t\trowElm.parentNode.insertBefore(newRow, rowElm);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction insertRows(before, num) {\n\t\t\tnum = num || getSelectedRows().length || 1;\n\t\t\tfor (var i = 0; i < num; i++) {\n\t\t\t\tinsertRow(before);\n\t\t\t}\n\t\t}\n\n\t\tfunction insertCol(before) {\n\t\t\tvar posX, lastCell;\n\n\t\t\t// Find first/last column\n\t\t\teach(grid, function(row) {\n\t\t\t\teach(row, function(cell, x) {\n\t\t\t\t\tif (isCellSelected(cell)) {\n\t\t\t\t\t\tposX = x;\n\n\t\t\t\t\t\tif (before) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (before) {\n\t\t\t\t\treturn posX === undefined;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\teach(grid, function(row, y) {\n\t\t\t\tvar cell, rowSpan, colSpan;\n\n\t\t\t\tif (!row[posX]) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tcell = row[posX].elm;\n\t\t\t\tif (cell != lastCell) {\n\t\t\t\t\tcolSpan = getSpanVal(cell, 'colspan');\n\t\t\t\t\trowSpan = getSpanVal(cell, 'rowspan');\n\n\t\t\t\t\tif (colSpan == 1) {\n\t\t\t\t\t\tif (!before) {\n\t\t\t\t\t\t\tdom.insertAfter(cloneCell(cell), cell);\n\t\t\t\t\t\t\tfillLeftDown(posX, y, rowSpan - 1, colSpan);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcell.parentNode.insertBefore(cloneCell(cell), cell);\n\t\t\t\t\t\t\tfillLeftDown(posX, y, rowSpan - 1, colSpan);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetSpanVal(cell, 'colSpan', cell.colSpan + 1);\n\t\t\t\t\t}\n\n\t\t\t\t\tlastCell = cell;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tfunction insertCols(before, num) {\n\t\t\tnum = num || countSelectedCols() || 1;\n\t\t\tfor (var i = 0; i < num; i++) {\n\t\t\t\tinsertCol(before);\n\t\t\t}\n\t\t}\n\n\t\tfunction getSelectedCells(grid) {\n\t\t\treturn Tools.grep(getAllCells(grid), isCellSelected);\n\t\t}\n\n\t\tfunction getAllCells(grid) {\n\t\t\tvar cells = [];\n\n\t\t\teach(grid, function(row) {\n\t\t\t\teach(row, function(cell) {\n\t\t\t\t\tcells.push(cell);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn cells;\n\t\t}\n\n\t\tfunction deleteCols() {\n\t\t\tvar cols = [];\n\n\t\t\tif (isEditorBody(table)) {\n\t\t\t\tif (grid[0].length == 1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (getSelectedCells(grid).length == getAllCells(grid).length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Get selected column indexes\n\t\t\teach(grid, function(row) {\n\t\t\t\teach(row, function(cell, x) {\n\t\t\t\t\tif (isCellSelected(cell) && Tools.inArray(cols, x) === -1) {\n\t\t\t\t\t\teach(grid, function(row) {\n\t\t\t\t\t\t\tvar cell = row[x].elm, colSpan;\n\n\t\t\t\t\t\t\tcolSpan = getSpanVal(cell, 'colSpan');\n\n\t\t\t\t\t\t\tif (colSpan > 1) {\n\t\t\t\t\t\t\t\tsetSpanVal(cell, 'colSpan', colSpan - 1);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tdom.remove(cell);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tcols.push(x);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tcleanup();\n\t\t}\n\n\t\tfunction deleteRows() {\n\t\t\tvar rows;\n\n\t\t\tfunction deleteRow(tr) {\n\t\t\t\tvar pos, lastCell;\n\n\t\t\t\t// Move down row spanned cells\n\t\t\t\teach(tr.cells, function(cell) {\n\t\t\t\t\tvar rowSpan = getSpanVal(cell, 'rowSpan');\n\n\t\t\t\t\tif (rowSpan > 1) {\n\t\t\t\t\t\tsetSpanVal(cell, 'rowSpan', rowSpan - 1);\n\t\t\t\t\t\tpos = getPos(cell);\n\t\t\t\t\t\tfillLeftDown(pos.x, pos.y, 1, 1);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Delete cells\n\t\t\t\tpos = getPos(tr.cells[0]);\n\t\t\t\teach(grid[pos.y], function(cell) {\n\t\t\t\t\tvar rowSpan;\n\n\t\t\t\t\tcell = cell.elm;\n\n\t\t\t\t\tif (cell != lastCell) {\n\t\t\t\t\t\trowSpan = getSpanVal(cell, 'rowSpan');\n\n\t\t\t\t\t\tif (rowSpan <= 1) {\n\t\t\t\t\t\t\tdom.remove(cell);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetSpanVal(cell, 'rowSpan', rowSpan - 1);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlastCell = cell;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Get selected rows and move selection out of scope\n\t\t\trows = getSelectedRows();\n\n\t\t\tif (isEditorBody(table) && rows.length == table.rows.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Delete all selected rows\n\t\t\teach(rows.reverse(), function(tr) {\n\t\t\t\tdeleteRow(tr);\n\t\t\t});\n\n\t\t\tcleanup();\n\t\t}\n\n\t\tfunction cutRows() {\n\t\t\tvar rows = getSelectedRows();\n\n\t\t\tif (isEditorBody(table) && rows.length == table.rows.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdom.remove(rows);\n\t\t\tcleanup();\n\n\t\t\treturn rows;\n\t\t}\n\n\t\tfunction copyRows() {\n\t\t\tvar rows = getSelectedRows();\n\n\t\t\teach(rows, function(row, i) {\n\t\t\t\trows[i] = cloneNode(row, true);\n\t\t\t});\n\n\t\t\treturn rows;\n\t\t}\n\n\t\tfunction pasteRows(rows, before) {\n\t\t\tvar splitResult, targetRow, newRows;\n\n\t\t\t// Nothing to paste\n\t\t\tif (!rows) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsplitResult = SplitCols.splitAt(grid, startPos.x, startPos.y, before);\n\t\t\ttargetRow = splitResult.row;\n\t\t\tTools.each(splitResult.cells, fireNewCell);\n\n\t\t\tnewRows = Tools.map(rows, function (row) {\n\t\t\t\treturn row.cloneNode(true);\n\t\t\t});\n\n\t\t\tif (!before) {\n\t\t\t\tnewRows.reverse();\n\t\t\t}\n\n\t\t\teach(newRows, function(row) {\n\t\t\t\tvar i, cellCount = row.cells.length, cell;\n\n\t\t\t\tfireNewRow(row);\n\n\t\t\t\t// Remove col/rowspans\n\t\t\t\tfor (i = 0; i < cellCount; i++) {\n\t\t\t\t\tcell = row.cells[i];\n\n\t\t\t\t\tfireNewCell(cell);\n\t\t\t\t\tsetSpanVal(cell, 'colSpan', 1);\n\t\t\t\t\tsetSpanVal(cell, 'rowSpan', 1);\n\t\t\t\t}\n\n\t\t\t\t// Needs more cells\n\t\t\t\tfor (i = cellCount; i < gridWidth; i++) {\n\t\t\t\t\trow.appendChild(fireNewCell(cloneCell(row.cells[cellCount - 1])));\n\t\t\t\t}\n\n\t\t\t\t// Needs less cells\n\t\t\t\tfor (i = gridWidth; i < cellCount; i++) {\n\t\t\t\t\tdom.remove(row.cells[i]);\n\t\t\t\t}\n\n\t\t\t\t// Add before/after\n\t\t\t\tif (before) {\n\t\t\t\t\ttargetRow.parentNode.insertBefore(row, targetRow);\n\t\t\t\t} else {\n\t\t\t\t\tdom.insertAfter(row, targetRow);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tremoveCellSelection();\n\t\t}\n\n\t\tfunction getPos(target) {\n\t\t\tvar pos;\n\n\t\t\teach(grid, function(row, y) {\n\t\t\t\teach(row, function(cell, x) {\n\t\t\t\t\tif (cell.elm == target) {\n\t\t\t\t\t\tpos = {x: x, y: y};\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn !pos;\n\t\t\t});\n\n\t\t\treturn pos;\n\t\t}\n\n\t\tfunction setStartCell(cell) {\n\t\t\tstartPos = getPos(cell);\n\t\t}\n\n\t\tfunction findEndPos() {\n\t\t\tvar maxX, maxY;\n\n\t\t\tmaxX = maxY = 0;\n\n\t\t\teach(grid, function(row, y) {\n\t\t\t\teach(row, function(cell, x) {\n\t\t\t\t\tvar colSpan, rowSpan;\n\n\t\t\t\t\tif (isCellSelected(cell)) {\n\t\t\t\t\t\tcell = grid[y][x];\n\n\t\t\t\t\t\tif (x > maxX) {\n\t\t\t\t\t\t\tmaxX = x;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (y > maxY) {\n\t\t\t\t\t\t\tmaxY = y;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (cell.real) {\n\t\t\t\t\t\t\tcolSpan = cell.colspan - 1;\n\t\t\t\t\t\t\trowSpan = cell.rowspan - 1;\n\n\t\t\t\t\t\t\tif (colSpan) {\n\t\t\t\t\t\t\t\tif (x + colSpan > maxX) {\n\t\t\t\t\t\t\t\t\tmaxX = x + colSpan;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (rowSpan) {\n\t\t\t\t\t\t\t\tif (y + rowSpan > maxY) {\n\t\t\t\t\t\t\t\t\tmaxY = y + rowSpan;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn {x: maxX, y: maxY};\n\t\t}\n\n\t\tfunction setEndCell(cell) {\n\t\t\tvar startX, startY, endX, endY, maxX, maxY, colSpan, rowSpan, x, y;\n\n\t\t\tendPos = getPos(cell);\n\n\t\t\tif (startPos && endPos) {\n\t\t\t\t// Get start/end positions\n\t\t\t\tstartX = Math.min(startPos.x, endPos.x);\n\t\t\t\tstartY = Math.min(startPos.y, endPos.y);\n\t\t\t\tendX = Math.max(startPos.x, endPos.x);\n\t\t\t\tendY = Math.max(startPos.y, endPos.y);\n\n\t\t\t\t// Expand end position to include spans\n\t\t\t\tmaxX = endX;\n\t\t\t\tmaxY = endY;\n\n\t\t\t\t// This logic tried to expand the selection to always be a rectangle\n\t\t\t\t// Expand startX\n\t\t\t\t/*for (y = startY; y <= maxY; y++) {\n\t\t\t\t\tcell = grid[y][startX];\n\n\t\t\t\t\tif (!cell.real) {\n\t\t\t\t\t\tnewX = startX - (cell.colspan - 1);\n\t\t\t\t\t\tif (newX < startX && newX >= 0) {\n\t\t\t\t\t\t\tstartX = newX;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Expand startY\n\t\t\t\tfor (x = startX; x <= maxX; x++) {\n\t\t\t\t\tcell = grid[startY][x];\n\n\t\t\t\t\tif (!cell.real) {\n\t\t\t\t\t\tnewY = startY - (cell.rowspan - 1);\n\t\t\t\t\t\tif (newY < startY && newY >= 0) {\n\t\t\t\t\t\t\tstartY = newY;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}*/\n\n\t\t\t\t// Find max X, Y\n\t\t\t\tfor (y = startY; y <= endY; y++) {\n\t\t\t\t\tfor (x = startX; x <= endX; x++) {\n\t\t\t\t\t\tcell = grid[y][x];\n\n\t\t\t\t\t\tif (cell.real) {\n\t\t\t\t\t\t\tcolSpan = cell.colspan - 1;\n\t\t\t\t\t\t\trowSpan = cell.rowspan - 1;\n\n\t\t\t\t\t\t\tif (colSpan) {\n\t\t\t\t\t\t\t\tif (x + colSpan > maxX) {\n\t\t\t\t\t\t\t\t\tmaxX = x + colSpan;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (rowSpan) {\n\t\t\t\t\t\t\t\tif (y + rowSpan > maxY) {\n\t\t\t\t\t\t\t\t\tmaxY = y + rowSpan;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tremoveCellSelection();\n\n\t\t\t\t// Add new selection\n\t\t\t\tfor (y = startY; y <= maxY; y++) {\n\t\t\t\t\tfor (x = startX; x <= maxX; x++) {\n\t\t\t\t\t\tif (grid[y][x]) {\n\t\t\t\t\t\t\tdom.setAttrib(grid[y][x].elm, 'data-mce-selected', '1');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction moveRelIdx(cellElm, delta) {\n\t\t\tvar pos, index, cell;\n\n\t\t\tpos = getPos(cellElm);\n\t\t\tindex = pos.y * gridWidth + pos.x;\n\n\t\t\tdo {\n\t\t\t\tindex += delta;\n\t\t\t\tcell = getCell(index % gridWidth, Math.floor(index / gridWidth));\n\n\t\t\t\tif (!cell) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (cell.elm != cellElm) {\n\t\t\t\t\tselection.select(cell.elm, true);\n\n\t\t\t\t\tif (dom.isEmpty(cell.elm)) {\n\t\t\t\t\t\tselection.collapse(true);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} while (cell.elm == cellElm);\n\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction splitCols(before) {\n\t\t\tif (startPos) {\n\t\t\t\tvar splitResult = SplitCols.splitAt(grid, startPos.x, startPos.y, before);\n\t\t\t\tTools.each(splitResult.cells, fireNewCell);\n\t\t\t}\n\t\t}\n\n\t\ttable = table || dom.getParent(selection.getStart(true), 'table');\n\n\t\tbuildGrid();\n\n\t\tselectedCell = selectedCell || dom.getParent(selection.getStart(true), 'th,td');\n\n\t\tif (selectedCell) {\n\t\t\tstartPos = getPos(selectedCell);\n\t\t\tendPos = findEndPos();\n\t\t\tselectedCell = getCell(startPos.x, startPos.y);\n\t\t}\n\n\t\tTools.extend(this, {\n\t\t\tdeleteTable: deleteTable,\n\t\t\tsplit: split,\n\t\t\tmerge: merge,\n\t\t\tinsertRow: insertRow,\n\t\t\tinsertRows: insertRows,\n\t\t\tinsertCol: insertCol,\n\t\t\tinsertCols: insertCols,\n\t\t\tsplitCols: splitCols,\n\t\t\tdeleteCols: deleteCols,\n\t\t\tdeleteRows: deleteRows,\n\t\t\tcutRows: cutRows,\n\t\t\tcopyRows: copyRows,\n\t\t\tpasteRows: pasteRows,\n\t\t\tgetPos: getPos,\n\t\t\tsetStartCell: setStartCell,\n\t\t\tsetEndCell: setEndCell,\n\t\t\tmoveRelIdx: moveRelIdx,\n\t\t\trefresh: buildGrid\n\t\t});\n\t};\n});\n\n// Included from: js/tinymce/plugins/table/classes/Quirks.js\n\n/**\n * Quirks.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class includes fixes for various browser quirks.\n *\n * @class tinymce.tableplugin.Quirks\n * @private\n */\ndefine(\"tinymce/tableplugin/Quirks\", [\n\t\"tinymce/util/VK\",\n\t\"tinymce/util/Delay\",\n\t\"tinymce/Env\",\n\t\"tinymce/util/Tools\",\n\t\"tinymce/tableplugin/Utils\"\n], function(VK, Delay, Env, Tools, Utils) {\n\tvar each = Tools.each, getSpanVal = Utils.getSpanVal;\n\n\treturn function(editor) {\n\t\t/**\n\t\t * Fixed caret movement around tables on WebKit.\n\t\t */\n\t\tfunction moveWebKitSelection() {\n\t\t\tfunction eventHandler(e) {\n\t\t\t\tvar key = e.keyCode;\n\n\t\t\t\tfunction handle(upBool, sourceNode) {\n\t\t\t\t\tvar siblingDirection = upBool ? 'previousSibling' : 'nextSibling';\n\t\t\t\t\tvar currentRow = editor.dom.getParent(sourceNode, 'tr');\n\t\t\t\t\tvar siblingRow = currentRow[siblingDirection];\n\n\t\t\t\t\tif (siblingRow) {\n\t\t\t\t\t\tmoveCursorToRow(editor, sourceNode, siblingRow, upBool);\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tableNode = editor.dom.getParent(currentRow, 'table');\n\t\t\t\t\tvar middleNode = currentRow.parentNode;\n\t\t\t\t\tvar parentNodeName = middleNode.nodeName.toLowerCase();\n\t\t\t\t\tif (parentNodeName === 'tbody' || parentNodeName === (upBool ? 'tfoot' : 'thead')) {\n\t\t\t\t\t\tvar targetParent = getTargetParent(upBool, tableNode, middleNode, 'tbody');\n\t\t\t\t\t\tif (targetParent !== null) {\n\t\t\t\t\t\t\treturn moveToRowInTarget(upBool, targetParent, sourceNode);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn escapeTable(upBool, currentRow, siblingDirection, tableNode);\n\t\t\t\t}\n\n\t\t\t\tfunction getTargetParent(upBool, topNode, secondNode, nodeName) {\n\t\t\t\t\tvar tbodies = editor.dom.select('>' + nodeName, topNode);\n\t\t\t\t\tvar position = tbodies.indexOf(secondNode);\n\t\t\t\t\tif (upBool && position === 0 || !upBool && position === tbodies.length - 1) {\n\t\t\t\t\t\treturn getFirstHeadOrFoot(upBool, topNode);\n\t\t\t\t\t} else if (position === -1) {\n\t\t\t\t\t\tvar topOrBottom = secondNode.tagName.toLowerCase() === 'thead' ? 0 : tbodies.length - 1;\n\t\t\t\t\t\treturn tbodies[topOrBottom];\n\t\t\t\t\t}\n\n\t\t\t\t\treturn tbodies[position + (upBool ? -1 : 1)];\n\t\t\t\t}\n\n\t\t\t\tfunction getFirstHeadOrFoot(upBool, parent) {\n\t\t\t\t\tvar tagName = upBool ? 'thead' : 'tfoot';\n\t\t\t\t\tvar headOrFoot = editor.dom.select('>' + tagName, parent);\n\t\t\t\t\treturn headOrFoot.length !== 0 ? headOrFoot[0] : null;\n\t\t\t\t}\n\n\t\t\t\tfunction moveToRowInTarget(upBool, targetParent, sourceNode) {\n\t\t\t\t\tvar targetRow = getChildForDirection(targetParent, upBool);\n\n\t\t\t\t\tif (targetRow) {\n\t\t\t\t\t\tmoveCursorToRow(editor, sourceNode, targetRow, upBool);\n\t\t\t\t\t}\n\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tfunction escapeTable(upBool, currentRow, siblingDirection, table) {\n\t\t\t\t\tvar tableSibling = table[siblingDirection];\n\n\t\t\t\t\tif (tableSibling) {\n\t\t\t\t\t\tmoveCursorToStartOfElement(tableSibling);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar parentCell = editor.dom.getParent(table, 'td,th');\n\t\t\t\t\tif (parentCell) {\n\t\t\t\t\t\treturn handle(upBool, parentCell, e);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar backUpSibling = getChildForDirection(currentRow, !upBool);\n\t\t\t\t\tmoveCursorToStartOfElement(backUpSibling);\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tfunction getChildForDirection(parent, up) {\n\t\t\t\t\tvar child = parent && parent[up ? 'lastChild' : 'firstChild'];\n\t\t\t\t\t// BR is not a valid table child to return in this case we return the table cell\n\t\t\t\t\treturn child && child.nodeName === 'BR' ? editor.dom.getParent(child, 'td,th') : child;\n\t\t\t\t}\n\n\t\t\t\tfunction moveCursorToStartOfElement(n) {\n\t\t\t\t\teditor.selection.setCursorLocation(n, 0);\n\t\t\t\t}\n\n\t\t\t\tfunction isVerticalMovement() {\n\t\t\t\t\treturn key == VK.UP || key == VK.DOWN;\n\t\t\t\t}\n\n\t\t\t\tfunction isInTable(editor) {\n\t\t\t\t\tvar node = editor.selection.getNode();\n\t\t\t\t\tvar currentRow = editor.dom.getParent(node, 'tr');\n\t\t\t\t\treturn currentRow !== null;\n\t\t\t\t}\n\n\t\t\t\tfunction columnIndex(column) {\n\t\t\t\t\tvar colIndex = 0;\n\t\t\t\t\tvar c = column;\n\t\t\t\t\twhile (c.previousSibling) {\n\t\t\t\t\t\tc = c.previousSibling;\n\t\t\t\t\t\tcolIndex = colIndex + getSpanVal(c, \"colspan\");\n\t\t\t\t\t}\n\t\t\t\t\treturn colIndex;\n\t\t\t\t}\n\n\t\t\t\tfunction findColumn(rowElement, columnIndex) {\n\t\t\t\t\tvar c = 0, r = 0;\n\n\t\t\t\t\teach(rowElement.children, function(cell, i) {\n\t\t\t\t\t\tc = c + getSpanVal(cell, \"colspan\");\n\t\t\t\t\t\tr = i;\n\t\t\t\t\t\tif (c > columnIndex) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\treturn r;\n\t\t\t\t}\n\n\t\t\t\tfunction moveCursorToRow(ed, node, row, upBool) {\n\t\t\t\t\tvar srcColumnIndex = columnIndex(editor.dom.getParent(node, 'td,th'));\n\t\t\t\t\tvar tgtColumnIndex = findColumn(row, srcColumnIndex);\n\t\t\t\t\tvar tgtNode = row.childNodes[tgtColumnIndex];\n\t\t\t\t\tvar rowCellTarget = getChildForDirection(tgtNode, upBool);\n\t\t\t\t\tmoveCursorToStartOfElement(rowCellTarget || tgtNode);\n\t\t\t\t}\n\n\t\t\t\tfunction shouldFixCaret(preBrowserNode) {\n\t\t\t\t\tvar newNode = editor.selection.getNode();\n\t\t\t\t\tvar newParent = editor.dom.getParent(newNode, 'td,th');\n\t\t\t\t\tvar oldParent = editor.dom.getParent(preBrowserNode, 'td,th');\n\n\t\t\t\t\treturn newParent && newParent !== oldParent && checkSameParentTable(newParent, oldParent);\n\t\t\t\t}\n\n\t\t\t\tfunction checkSameParentTable(nodeOne, NodeTwo) {\n\t\t\t\t\treturn editor.dom.getParent(nodeOne, 'TABLE') === editor.dom.getParent(NodeTwo, 'TABLE');\n\t\t\t\t}\n\n\t\t\t\tif (isVerticalMovement() && isInTable(editor)) {\n\t\t\t\t\tvar preBrowserNode = editor.selection.getNode();\n\t\t\t\t\tDelay.setEditorTimeout(editor, function() {\n\t\t\t\t\t\tif (shouldFixCaret(preBrowserNode)) {\n\t\t\t\t\t\t\thandle(!e.shiftKey && key === VK.UP, preBrowserNode, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 0);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\teditor.on('KeyDown', function(e) {\n\t\t\t\teventHandler(e);\n\t\t\t});\n\t\t}\n\n\t\tfunction fixBeforeTableCaretBug() {\n\t\t\t// Checks if the selection/caret is at the start of the specified block element\n\t\t\tfunction isAtStart(rng, par) {\n\t\t\t\tvar doc = par.ownerDocument, rng2 = doc.createRange(), elm;\n\n\t\t\t\trng2.setStartBefore(par);\n\t\t\t\trng2.setEnd(rng.endContainer, rng.endOffset);\n\n\t\t\t\telm = doc.createElement('body');\n\t\t\t\telm.appendChild(rng2.cloneContents());\n\n\t\t\t\t// Check for text characters of other elements that should be treated as content\n\t\t\t\treturn elm.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi, '-').replace(/<[^>]+>/g, '').length === 0;\n\t\t\t}\n\n\t\t\t// Fixes an bug where it's impossible to place the caret before a table in Gecko\n\t\t\t// this fix solves it by detecting when the caret is at the beginning of such a table\n\t\t\t// and then manually moves the caret infront of the table\n\t\t\teditor.on('KeyDown', function(e) {\n\t\t\t\tvar rng, table, dom = editor.dom;\n\n\t\t\t\t// On gecko it's not possible to place the caret before a table\n\t\t\t\tif (e.keyCode == 37 || e.keyCode == 38) {\n\t\t\t\t\trng = editor.selection.getRng();\n\t\t\t\t\ttable = dom.getParent(rng.startContainer, 'table');\n\n\t\t\t\t\tif (table && editor.getBody().firstChild == table) {\n\t\t\t\t\t\tif (isAtStart(rng, table)) {\n\t\t\t\t\t\t\trng = dom.createRng();\n\n\t\t\t\t\t\t\trng.setStartBefore(table);\n\t\t\t\t\t\t\trng.setEndBefore(table);\n\n\t\t\t\t\t\t\teditor.selection.setRng(rng);\n\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Fixes an issue on Gecko where it's impossible to place the caret behind a table\n\t\t// This fix will force a paragraph element after the table but only when the forced_root_block setting is enabled\n\t\tfunction fixTableCaretPos() {\n\t\t\teditor.on('KeyDown SetContent VisualAid', function() {\n\t\t\t\tvar last;\n\n\t\t\t\t// Skip empty text nodes from the end\n\t\t\t\tfor (last = editor.getBody().lastChild; last; last = last.previousSibling) {\n\t\t\t\t\tif (last.nodeType == 3) {\n\t\t\t\t\t\tif (last.nodeValue.length > 0) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (last.nodeType == 1 && (last.tagName == 'BR' || !last.getAttribute('data-mce-bogus'))) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (last && last.nodeName == 'TABLE') {\n\t\t\t\t\tif (editor.settings.forced_root_block) {\n\t\t\t\t\t\teditor.dom.add(\n\t\t\t\t\t\t\teditor.getBody(),\n\t\t\t\t\t\t\teditor.settings.forced_root_block,\n\t\t\t\t\t\t\teditor.settings.forced_root_block_attrs,\n\t\t\t\t\t\t\tEnv.ie && Env.ie < 10 ? ' ' : '
    '\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\teditor.dom.add(editor.getBody(), 'br', {'data-mce-bogus': '1'});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\teditor.on('PreProcess', function(o) {\n\t\t\t\tvar last = o.node.lastChild;\n\n\t\t\t\tif (last && (last.nodeName == \"BR\" || (last.childNodes.length == 1 &&\n\t\t\t\t\t(last.firstChild.nodeName == 'BR' || last.firstChild.nodeValue == '\\u00a0'))) &&\n\t\t\t\t\tlast.previousSibling && last.previousSibling.nodeName == \"TABLE\") {\n\t\t\t\t\teditor.dom.remove(last);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// this nasty hack is here to work around some WebKit selection bugs.\n\t\tfunction fixTableCellSelection() {\n\t\t\tfunction tableCellSelected(ed, rng, n, currentCell) {\n\t\t\t\t// The decision of when a table cell is selected is somewhat involved. The fact that this code is\n\t\t\t\t// required is actually a pointer to the root cause of this bug. A cell is selected when the start\n\t\t\t\t// and end offsets are 0, the start container is a text, and the selection node is either a TR (most cases)\n\t\t\t\t// or the parent of the table (in the case of the selection containing the last cell of a table).\n\t\t\t\tvar TEXT_NODE = 3, table = ed.dom.getParent(rng.startContainer, 'TABLE');\n\t\t\t\tvar tableParent, allOfCellSelected, tableCellSelection;\n\n\t\t\t\tif (table) {\n\t\t\t\t\ttableParent = table.parentNode;\n\t\t\t\t}\n\n\t\t\t\tallOfCellSelected = rng.startContainer.nodeType == TEXT_NODE &&\n\t\t\t\t\trng.startOffset === 0 &&\n\t\t\t\t\trng.endOffset === 0 &&\n\t\t\t\t\tcurrentCell &&\n\t\t\t\t\t(n.nodeName == \"TR\" || n == tableParent);\n\n\t\t\t\ttableCellSelection = (n.nodeName == \"TD\" || n.nodeName == \"TH\") && !currentCell;\n\n\t\t\t\treturn allOfCellSelected || tableCellSelection;\n\t\t\t}\n\n\t\t\tfunction fixSelection() {\n\t\t\t\tvar rng = editor.selection.getRng();\n\t\t\t\tvar n = editor.selection.getNode();\n\t\t\t\tvar currentCell = editor.dom.getParent(rng.startContainer, 'TD,TH');\n\n\t\t\t\tif (!tableCellSelected(editor, rng, n, currentCell)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!currentCell) {\n\t\t\t\t\tcurrentCell = n;\n\t\t\t\t}\n\n\t\t\t\t// Get the very last node inside the table cell\n\t\t\t\tvar end = currentCell.lastChild;\n\t\t\t\twhile (end.lastChild) {\n\t\t\t\t\tend = end.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Select the entire table cell. Nothing outside of the table cell should be selected.\n\t\t\t\tif (end.nodeType == 3) {\n\t\t\t\t\trng.setEnd(end, end.data.length);\n\t\t\t\t\teditor.selection.setRng(rng);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\teditor.on('KeyDown', function() {\n\t\t\t\tfixSelection();\n\t\t\t});\n\n\t\t\teditor.on('MouseDown', function(e) {\n\t\t\t\tif (e.button != 2) {\n\t\t\t\t\tfixSelection();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Delete table if all cells are selected.\n\t\t */\n\t\tfunction deleteTable() {\n\t\t\tfunction placeCaretInCell(cell) {\n\t\t\t\teditor.selection.select(cell, true);\n\t\t\t\teditor.selection.collapse(true);\n\t\t\t}\n\n\t\t\tfunction clearCell(cell) {\n\t\t\t\teditor.$(cell).empty();\n\t\t\t\tUtils.paddCell(cell);\n\t\t\t}\n\n\t\t\teditor.on('keydown', function(e) {\n\t\t\t\tif ((e.keyCode == VK.DELETE || e.keyCode == VK.BACKSPACE) && !e.isDefaultPrevented()) {\n\t\t\t\t\tvar table, tableCells, selectedTableCells, cell;\n\n\t\t\t\t\ttable = editor.dom.getParent(editor.selection.getStart(), 'table');\n\t\t\t\t\tif (table) {\n\t\t\t\t\t\ttableCells = editor.dom.select('td,th', table);\n\t\t\t\t\t\tselectedTableCells = Tools.grep(tableCells, function(cell) {\n\t\t\t\t\t\t\treturn !!editor.dom.getAttrib(cell, 'data-mce-selected');\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (selectedTableCells.length === 0) {\n\t\t\t\t\t\t\t// If caret is within an empty table cell then empty it for real\n\t\t\t\t\t\t\tcell = editor.dom.getParent(editor.selection.getStart(), 'td,th');\n\t\t\t\t\t\t\tif (editor.selection.isCollapsed() && cell && editor.dom.isEmpty(cell)) {\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\tclearCell(cell);\n\t\t\t\t\t\t\t\tplaceCaretInCell(cell);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t\teditor.undoManager.transact(function() {\n\t\t\t\t\t\t\tif (tableCells.length == selectedTableCells.length) {\n\t\t\t\t\t\t\t\teditor.execCommand('mceTableDelete');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tTools.each(selectedTableCells, clearCell);\n\t\t\t\t\t\t\t\tplaceCaretInCell(selectedTableCells[0]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * When caption is empty and we continue to delete, caption gets deleted along with the contents.\n\t\t * So, we take over delete operation (both forward and backward) and once caption is empty, we do\n\t\t * prevent it from disappearing.\n\t\t */\n\t\tfunction handleDeleteInCaption() {\n\t\t\tvar isTableCaptionNode = function(node) {\n\t\t\t\treturn node && node.nodeName == 'CAPTION' && node.parentNode.nodeName == 'TABLE';\n\t\t\t};\n\n\t\t\tvar restoreCaretPlaceholder = function(node, insertCaret) {\n\t\t\t\tvar rng = editor.selection.getRng();\n\t\t\t\tvar caretNode = node.ownerDocument.createTextNode('\\u00a0');\n\n\t\t\t\t// we could always append it, but caretNode somehow gets appended before caret,\n\t\t\t\t// rather then after it, effectively preventing backspace deletion\n\t\t\t\tif (rng.startOffset) {\n\t\t\t\t\tnode.insertBefore(caretNode, node.firstChild);\n\t\t\t\t} else {\n\t\t\t\t\tnode.appendChild(caretNode);\n\t\t\t\t}\n\n\t\t\t\tif (insertCaret) {\n\t\t\t\t\t// put the caret into the placeholder\n\t\t\t\t\teditor.selection.select(caretNode, true);\n\t\t\t\t\teditor.selection.collapse(true);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar deleteBtnPressed = function(e) {\n\t\t\t\treturn (e.keyCode == VK.DELETE || e.keyCode == VK.BACKSPACE) && !e.isDefaultPrevented();\n\t\t\t};\n\n\t\t\tvar getSingleChildNode = function(node) {\n\t\t\t\treturn node.firstChild === node.lastChild && node.firstChild;\n\t\t\t};\n\n\t\t\tvar isTextNode = function(node) {\n\t\t\t\treturn node && node.nodeType === 3;\n\t\t\t};\n\n\t\t\tvar getSingleChr = function(node) {\n\t\t\t\tvar childNode = getSingleChildNode(node);\n\t\t\t\treturn isTextNode(childNode) && childNode.data.length === 1 ? childNode.data : null;\n\t\t\t};\n\n\t\t\tvar hasNoCaretPlaceholder = function(node) {\n\t\t\t\tvar childNode = getSingleChildNode(node);\n\t\t\t\tvar chr = getSingleChr(node);\n\t\t\t\treturn childNode && !isTextNode(childNode) || chr && !isNBSP(chr);\n\t\t\t};\n\n\t\t\tvar isEmptyNode = function(node) {\n\t\t\t\treturn editor.dom.isEmpty(node) || isNBSP(getSingleChr(node));\n\t\t\t};\n\n\t\t\tvar isNBSP = function(chr) {\n\t\t\t\treturn chr === '\\u00a0';\n\t\t\t};\n\n\t\t\teditor.on('keydown', function(e) {\n\t\t\t\tif (!deleteBtnPressed(e)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar container = editor.dom.getParent(editor.selection.getStart(), 'caption');\n\t\t\t\tif (!isTableCaptionNode(container)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// in IE caption collapses if caret placeholder is deleted (and it is very much possible)\n\t\t\t\tif (Env.ie) {\n\t\t\t\t\tif (!editor.selection.isCollapsed()) {\n\t\t\t\t\t\t// if the whole contents are selected, caret placeholder will be deleted too\n\t\t\t\t\t\t// and we take over delete operation here to restore it if this happens\n\t\t\t\t\t\teditor.undoManager.transact(function () {\n\t\t\t\t\t\t\teditor.execCommand('Delete');\n\n\t\t\t\t\t\t\tif (isEmptyNode(container)) {\n\t\t\t\t\t\t\t\t// caret springs off from the caption (to the first td), we need to bring it back as well\n\t\t\t\t\t\t\t\trestoreCaretPlaceholder(container, true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t} else if (hasNoCaretPlaceholder(container)) {\n\t\t\t\t\t\t// if caret placeholder got accidentally deleted and caption will collapse\n\t\t\t\t\t\t// after this operation, we need to put placeholder back\n\t\t\t\t\t\trestoreCaretPlaceholder(container);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// TODO:\n\t\t\t\t// 1. in Chrome it is easily possible to select beyond the boundaries of the caption,\n\t\t\t\t// currently this results in removal of the contents with the whole caption as well;\n\t\t\t\t// 2. we could take over delete operation to address this, but then we will need to adjust\n\t\t\t\t// the selection, otherwise delete operation will remove first row of the table too;\n\t\t\t\t// 3. current behaviour is logical, so it has sense to leave it like that, until a better\n\t\t\t\t// solution\n\n\t\t\t\tif (isEmptyNode(container)) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\n\t\tdeleteTable();\n\t\thandleDeleteInCaption();\n\n\t\tif (Env.webkit) {\n\t\t\tmoveWebKitSelection();\n\t\t\tfixTableCellSelection();\n\t\t}\n\n\t\tif (Env.gecko) {\n\t\t\tfixBeforeTableCaretBug();\n\t\t\tfixTableCaretPos();\n\t\t}\n\n\t\tif (Env.ie > 9) {\n\t\t\tfixBeforeTableCaretBug();\n\t\t\tfixTableCaretPos();\n\t\t}\n\t};\n});\n\n// Included from: js/tinymce/plugins/table/classes/CellSelection.js\n\n/**\n * CellSelection.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class handles table cell selection by faking it using a css class that gets applied\n * to cells when dragging the mouse from one cell to another.\n *\n * @class tinymce.tableplugin.CellSelection\n * @private\n */\ndefine(\"tinymce/tableplugin/CellSelection\", [\n\t\"tinymce/tableplugin/TableGrid\",\n\t\"tinymce/dom/TreeWalker\",\n\t\"tinymce/util/Tools\"\n], function(TableGrid, TreeWalker, Tools) {\n\treturn function(editor, selectionChange) {\n\t\tvar dom = editor.dom, tableGrid, startCell, startTable, lastMouseOverTarget, hasCellSelection = true, resizing, dragging;\n\n\t\tfunction clear(force) {\n\t\t\t// Restore selection possibilities\n\t\t\teditor.getBody().style.webkitUserSelect = '';\n\n\t\t\tif (force || hasCellSelection) {\n\t\t\t\teditor.$('td[data-mce-selected],th[data-mce-selected]').removeAttr('data-mce-selected');\n\t\t\t\thasCellSelection = false;\n\t\t\t}\n\t\t}\n\n\t\tvar endSelection = function () {\n\t\t\tstartCell = tableGrid = startTable = lastMouseOverTarget = null;\n\t\t\tselectionChange(false);\n\t\t};\n\n\t\tfunction isCellInTable(table, cell) {\n\t\t\tif (!table || !cell) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn table === dom.getParent(cell, 'table');\n\t\t}\n\n\t\tfunction cellSelectionHandler(e) {\n\t\t\tvar sel, target = e.target, currentCell;\n\n\t\t\tif (resizing || dragging) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Fake mouse enter by keeping track of last mouse over\n\t\t\tif (target === lastMouseOverTarget) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlastMouseOverTarget = target;\n\n\t\t\tif (startTable && startCell) {\n\t\t\t\tcurrentCell = dom.getParent(target, 'td,th');\n\n\t\t\t\tif (!isCellInTable(startTable, currentCell)) {\n\t\t\t\t\tcurrentCell = dom.getParent(startTable, 'td,th');\n\t\t\t\t}\n\n\t\t\t\t// Selection inside first cell is normal until we have expanted\n\t\t\t\tif (startCell === currentCell && !hasCellSelection) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselectionChange(true);\n\n\t\t\t\tif (isCellInTable(startTable, currentCell)) {\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\tif (!tableGrid) {\n\t\t\t\t\t\ttableGrid = new TableGrid(editor, startTable, startCell);\n\t\t\t\t\t\teditor.getBody().style.webkitUserSelect = 'none';\n\t\t\t\t\t}\n\n\t\t\t\t\ttableGrid.setEndCell(currentCell);\n\t\t\t\t\thasCellSelection = true;\n\n\t\t\t\t\t// Remove current selection\n\t\t\t\t\tsel = editor.selection.getSel();\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif (sel.removeAllRanges) {\n\t\t\t\t\t\t\tsel.removeAllRanges();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsel.empty();\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (ex) {\n\t\t\t\t\t\t// IE9 might throw errors here\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\teditor.on('SelectionChange', function(e) {\n\t\t\tif (hasCellSelection) {\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t}\n\t\t}, true);\n\n\t\t// Add cell selection logic\n\t\teditor.on('MouseDown', function(e) {\n\t\t\tif (e.button != 2 && !resizing && !dragging) {\n\t\t\t\tclear();\n\n\t\t\t\tstartCell = dom.getParent(e.target, 'td,th');\n\t\t\t\tstartTable = dom.getParent(startCell, 'table');\n\t\t\t}\n\t\t});\n\n\t\teditor.on('mouseover', cellSelectionHandler);\n\n\t\teditor.on('remove', function() {\n\t\t\tdom.unbind(editor.getDoc(), 'mouseover', cellSelectionHandler);\n\t\t\tclear();\n\t\t});\n\n\t\teditor.on('MouseUp', function() {\n\t\t\tvar rng, sel = editor.selection, selectedCells, walker, node, lastNode;\n\n\t\t\tfunction setPoint(node, start) {\n\t\t\t\tvar walker = new TreeWalker(node, node);\n\n\t\t\t\tdo {\n\t\t\t\t\t// Text node\n\t\t\t\t\tif (node.nodeType == 3 && Tools.trim(node.nodeValue).length !== 0) {\n\t\t\t\t\t\tif (start) {\n\t\t\t\t\t\t\trng.setStart(node, 0);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trng.setEnd(node, node.nodeValue.length);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// BR element\n\t\t\t\t\tif (node.nodeName == 'BR') {\n\t\t\t\t\t\tif (start) {\n\t\t\t\t\t\t\trng.setStartBefore(node);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trng.setEndBefore(node);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t} while ((node = (start ? walker.next() : walker.prev())));\n\t\t\t}\n\n\t\t\t// Move selection to startCell\n\t\t\tif (startCell) {\n\t\t\t\tif (tableGrid) {\n\t\t\t\t\teditor.getBody().style.webkitUserSelect = '';\n\t\t\t\t}\n\n\t\t\t\t// Try to expand text selection as much as we can only Gecko supports cell selection\n\t\t\t\tselectedCells = dom.select('td[data-mce-selected],th[data-mce-selected]');\n\t\t\t\tif (selectedCells.length > 0) {\n\t\t\t\t\trng = dom.createRng();\n\t\t\t\t\tnode = selectedCells[0];\n\t\t\t\t\trng.setStartBefore(node);\n\t\t\t\t\trng.setEndAfter(node);\n\n\t\t\t\t\tsetPoint(node, 1);\n\t\t\t\t\twalker = new TreeWalker(node, dom.getParent(selectedCells[0], 'table'));\n\n\t\t\t\t\tdo {\n\t\t\t\t\t\tif (node.nodeName == 'TD' || node.nodeName == 'TH') {\n\t\t\t\t\t\t\tif (!dom.getAttrib(node, 'data-mce-selected')) {\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tlastNode = node;\n\t\t\t\t\t\t}\n\t\t\t\t\t} while ((node = walker.next()));\n\n\t\t\t\t\tsetPoint(lastNode);\n\n\t\t\t\t\tsel.setRng(rng);\n\t\t\t\t}\n\n\t\t\t\teditor.nodeChanged();\n\t\t\t\tendSelection();\n\t\t\t}\n\t\t});\n\n\t\teditor.on('KeyUp Drop SetContent', function(e) {\n\t\t\tclear(e.type == 'setcontent');\n\t\t\tendSelection();\n\t\t\tresizing = false;\n\t\t});\n\n\t\teditor.on('ObjectResizeStart ObjectResized', function(e) {\n\t\t\tresizing = e.type != 'objectresized';\n\t\t});\n\n\t\teditor.on('dragstart', function () {\n\t\t\tdragging = true;\n\t\t});\n\n\t\teditor.on('drop dragend', function () {\n\t\t\tdragging = false;\n\t\t});\n\n\t\treturn {\n\t\t\tclear: clear\n\t\t};\n\t};\n});\n\n// Included from: js/tinymce/plugins/table/classes/Dialogs.js\n\n/**\n * Dialogs.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/*eslint dot-notation:0*/\n\n/**\n * ...\n *\n * @class tinymce.tableplugin.Dialogs\n * @private\n */\ndefine(\"tinymce/tableplugin/Dialogs\", [\n\t\"tinymce/util/Tools\",\n\t\"tinymce/Env\"\n], function(Tools, Env) {\n\tvar each = Tools.each;\n\n\treturn function(editor) {\n\t\tvar self = this;\n\n\t\tfunction createColorPickAction() {\n\t\t\tvar colorPickerCallback = editor.settings.color_picker_callback;\n\n\t\t\tif (colorPickerCallback) {\n\t\t\t\treturn function() {\n\t\t\t\t\tvar self = this;\n\n\t\t\t\t\tcolorPickerCallback.call(\n\t\t\t\t\t\teditor,\n\t\t\t\t\t\tfunction(value) {\n\t\t\t\t\t\t\tself.value(value).fire('change');\n\t\t\t\t\t\t},\n\t\t\t\t\t\tself.value()\n\t\t\t\t\t);\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tfunction createStyleForm(dom) {\n\t\t\treturn {\n\t\t\t\ttitle: 'Advanced',\n\t\t\t\ttype: 'form',\n\t\t\t\tdefaults: {\n\t\t\t\t\tonchange: function() {\n\t\t\t\t\t\tupdateStyle(dom, this.parents().reverse()[0], this.name() == \"style\");\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Style',\n\t\t\t\t\t\tname: 'style',\n\t\t\t\t\t\ttype: 'textbox'\n\t\t\t\t\t},\n\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'form',\n\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\tformItemDefaults: {\n\t\t\t\t\t\t\tlayout: 'grid',\n\t\t\t\t\t\t\talignH: ['start', 'right']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\tsize: 7\n\t\t\t\t\t\t},\n\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Border color',\n\t\t\t\t\t\t\t\ttype: 'colorbox',\n\t\t\t\t\t\t\t\tname: 'borderColor',\n\t\t\t\t\t\t\t\tonaction: createColorPickAction()\n\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Background color',\n\t\t\t\t\t\t\t\ttype: 'colorbox',\n\t\t\t\t\t\t\t\tname: 'backgroundColor',\n\t\t\t\t\t\t\t\tonaction: createColorPickAction()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t};\n\t\t}\n\n\t\tfunction removePxSuffix(size) {\n\t\t\treturn size ? size.replace(/px$/, '') : \"\";\n\t\t}\n\n\t\tfunction addSizeSuffix(size) {\n\t\t\tif (/^[0-9]+$/.test(size)) {\n\t\t\t\tsize += \"px\";\n\t\t\t}\n\n\t\t\treturn size;\n\t\t}\n\n\t\tfunction unApplyAlign(elm) {\n\t\t\teach('left center right'.split(' '), function(name) {\n\t\t\t\teditor.formatter.remove('align' + name, {}, elm);\n\t\t\t});\n\t\t}\n\n\t\tfunction unApplyVAlign(elm) {\n\t\t\teach('top middle bottom'.split(' '), function(name) {\n\t\t\t\teditor.formatter.remove('valign' + name, {}, elm);\n\t\t\t});\n\t\t}\n\n\t\tfunction buildListItems(inputList, itemCallback, startItems) {\n\t\t\tfunction appendItems(values, output) {\n\t\t\t\toutput = output || [];\n\n\t\t\t\tTools.each(values, function(item) {\n\t\t\t\t\tvar menuItem = {text: item.text || item.title};\n\n\t\t\t\t\tif (item.menu) {\n\t\t\t\t\t\tmenuItem.menu = appendItems(item.menu);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmenuItem.value = item.value;\n\n\t\t\t\t\t\tif (itemCallback) {\n\t\t\t\t\t\t\titemCallback(menuItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(menuItem);\n\t\t\t\t});\n\n\t\t\t\treturn output;\n\t\t\t}\n\n\t\t\treturn appendItems(inputList, startItems || []);\n\t\t}\n\n\t\tfunction updateStyle(dom, win, isStyleCtrl) {\n\t\t\tvar data = win.toJSON();\n\t\t\tvar css = dom.parseStyle(data.style);\n\n\t\t\tif (isStyleCtrl) {\n\t\t\t\twin.find('#borderColor').value(css[\"border-color\"] || '')[0].fire('change');\n\t\t\t\twin.find('#backgroundColor').value(css[\"background-color\"] || '')[0].fire('change');\n\t\t\t} else {\n\t\t\t\tcss[\"border-color\"] = data.borderColor;\n\t\t\t\tcss[\"background-color\"] = data.backgroundColor;\n\t\t\t}\n\n\t\t\twin.find('#style').value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css))));\n\t\t}\n\n\t\tfunction appendStylesToData(dom, data, elm) {\n\t\t\tvar css = dom.parseStyle(dom.getAttrib(elm, 'style'));\n\n\t\t\tif (css[\"border-color\"]) {\n\t\t\t\tdata.borderColor = css[\"border-color\"];\n\t\t\t}\n\n\t\t\tif (css[\"background-color\"]) {\n\t\t\t\tdata.backgroundColor = css[\"background-color\"];\n\t\t\t}\n\n\t\t\tdata.style = dom.serializeStyle(css);\n\t\t}\n\n\t\tfunction mergeStyles(dom, elm, styles) {\n\t\t\tvar css = dom.parseStyle(dom.getAttrib(elm, 'style'));\n\n\t\t\teach(styles, function(style) {\n\t\t\t\tcss[style.name] = style.value;\n\t\t\t});\n\n\t\t\tdom.setAttrib(elm, 'style', dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css))));\n\t\t}\n\n\t\tself.tableProps = function() {\n\t\t\tself.table(true);\n\t\t};\n\n\t\tself.table = function(isProps) {\n\t\t\tvar dom = editor.dom, tableElm, colsCtrl, rowsCtrl, classListCtrl, data = {}, generalTableForm, stylesToMerge;\n\n\t\t\tfunction onSubmitTableForm() {\n\n\t\t\t\t//Explore the layers of the table till we find the first layer of tds or ths\n\t\t\t\tfunction styleTDTH(elm, name, value) {\n\t\t\t\t\tif (elm.tagName === \"TD\" || elm.tagName === \"TH\") {\n\t\t\t\t\t\tdom.setStyle(elm, name, value);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (elm.children) {\n\t\t\t\t\t\t\tfor (var i = 0; i < elm.children.length; i++) {\n\t\t\t\t\t\t\t\tstyleTDTH(elm.children[i], name, value);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar captionElm;\n\n\t\t\t\tupdateStyle(dom, this);\n\t\t\t\tdata = Tools.extend(data, this.toJSON());\n\n\t\t\t\tif (data[\"class\"] === false) {\n\t\t\t\t\tdelete data[\"class\"];\n\t\t\t\t}\n\n\t\t\t\teditor.undoManager.transact(function() {\n\t\t\t\t\tif (!tableElm) {\n\t\t\t\t\t\ttableElm = editor.plugins.table.insertTable(data.cols || 1, data.rows || 1);\n\t\t\t\t\t}\n\n\t\t\t\t\teditor.dom.setAttribs(tableElm, {\n\t\t\t\t\t\tstyle: data.style,\n\t\t\t\t\t\t'class': data['class']\n\t\t\t\t\t});\n\n\t\t\t\t\tif (editor.settings.table_style_by_css) {\n\t\t\t\t\t\tstylesToMerge = [];\n\t\t\t\t\t\tstylesToMerge.push({name: 'border', value: data.border});\n\t\t\t\t\t\tstylesToMerge.push({name: 'border-spacing', value: addSizeSuffix(data.cellspacing)});\n\t\t\t\t\t\tmergeStyles(dom, tableElm, stylesToMerge);\n\t\t\t\t\t\tdom.setAttribs(tableElm, {\n\t\t\t\t\t\t\t'data-mce-border-color': data.borderColor,\n\t\t\t\t\t\t\t'data-mce-cell-padding': data.cellpadding,\n\t\t\t\t\t\t\t'data-mce-border': data.border\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (tableElm.children) {\n\t\t\t\t\t\t\tfor (var i = 0; i < tableElm.children.length; i++) {\n\t\t\t\t\t\t\t\tstyleTDTH(tableElm.children[i], 'border', data.border);\n\t\t\t\t\t\t\t\tstyleTDTH(tableElm.children[i], 'padding', addSizeSuffix(data.cellpadding));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\teditor.dom.setAttribs(tableElm, {\n\t\t\t\t\t\t\tborder: data.border,\n\t\t\t\t\t\t\tcellpadding: data.cellpadding,\n\t\t\t\t\t\t\tcellspacing: data.cellspacing\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (dom.getAttrib(tableElm, 'width') && !editor.settings.table_style_by_css) {\n\t\t\t\t\t\tdom.setAttrib(tableElm, 'width', removePxSuffix(data.width));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdom.setStyle(tableElm, 'width', addSizeSuffix(data.width));\n\t\t\t\t\t}\n\n\t\t\t\t\tdom.setStyle(tableElm, 'height', addSizeSuffix(data.height));\n\n\t\t\t\t\t// Toggle caption on/off\n\t\t\t\t\tcaptionElm = dom.select('caption', tableElm)[0];\n\n\t\t\t\t\tif (captionElm && !data.caption) {\n\t\t\t\t\t\tdom.remove(captionElm);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!captionElm && data.caption) {\n\t\t\t\t\t\tcaptionElm = dom.create('caption');\n\t\t\t\t\t\tcaptionElm.innerHTML = !Env.ie ? '
    ' : '\\u00a0';\n\t\t\t\t\t\ttableElm.insertBefore(captionElm, tableElm.firstChild);\n\t\t\t\t\t}\n\t\t\t\t\tunApplyAlign(tableElm);\n\t\t\t\t\tif (data.align) {\n\t\t\t\t\t\teditor.formatter.apply('align' + data.align, {}, tableElm);\n\t\t\t\t\t}\n\n\t\t\t\t\teditor.focus();\n\t\t\t\t\teditor.addVisual();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tfunction getTDTHOverallStyle(elm, name) {\n\t\t\t\tvar cells = editor.dom.select(\"td,th\", elm), firstChildStyle;\n\n\t\t\t\tfunction checkChildren(firstChildStyle, elms) {\n\n\t\t\t\t\tfor (var i = 0; i < elms.length; i++) {\n\t\t\t\t\t\tvar currentStyle = dom.getStyle(elms[i], name);\n\t\t\t\t\t\tif (typeof firstChildStyle === \"undefined\") {\n\t\t\t\t\t\t\tfirstChildStyle = currentStyle;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (firstChildStyle != currentStyle) {\n\t\t\t\t\t\t\treturn \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn firstChildStyle;\n\n\t\t\t\t}\n\n\t\t\t\tfirstChildStyle = checkChildren(firstChildStyle, cells);\n\n\t\t\t\treturn firstChildStyle;\n\t\t\t}\n\n\t\t\tif (isProps === true) {\n\t\t\t\ttableElm = dom.getParent(editor.selection.getStart(), 'table');\n\n\t\t\t\tif (tableElm) {\n\t\t\t\t\tdata = {\n\t\t\t\t\t\twidth: removePxSuffix(dom.getStyle(tableElm, 'width') || dom.getAttrib(tableElm, 'width')),\n\t\t\t\t\t\theight: removePxSuffix(dom.getStyle(tableElm, 'height') || dom.getAttrib(tableElm, 'height')),\n\t\t\t\t\t\tcellspacing: removePxSuffix(dom.getStyle(tableElm, 'border-spacing') ||\n\t\t\t\t\t\t\tdom.getAttrib(tableElm, 'cellspacing')),\n\t\t\t\t\t\tcellpadding: dom.getAttrib(tableElm, 'data-mce-cell-padding') || dom.getAttrib(tableElm, 'cellpadding') ||\n\t\t\t\t\t\t\tgetTDTHOverallStyle(tableElm, 'padding'),\n\t\t\t\t\t\tborder: dom.getAttrib(tableElm, 'data-mce-border') || dom.getAttrib(tableElm, 'border') ||\n\t\t\t\t\t\t\tgetTDTHOverallStyle(tableElm, 'border'),\n\t\t\t\t\t\tborderColor: dom.getAttrib(tableElm, 'data-mce-border-color'),\n\t\t\t\t\t\tcaption: !!dom.select('caption', tableElm)[0],\n\t\t\t\t\t\t'class': dom.getAttrib(tableElm, 'class')\n\t\t\t\t\t};\n\n\t\t\t\t\teach('left center right'.split(' '), function(name) {\n\t\t\t\t\t\tif (editor.formatter.matchNode(tableElm, 'align' + name)) {\n\t\t\t\t\t\t\tdata.align = name;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcolsCtrl = {label: 'Cols', name: 'cols'};\n\t\t\t\trowsCtrl = {label: 'Rows', name: 'rows'};\n\t\t\t}\n\n\t\t\tif (editor.settings.table_class_list) {\n\t\t\t\tif (data[\"class\"]) {\n\t\t\t\t\tdata[\"class\"] = data[\"class\"].replace(/\\s*mce\\-item\\-table\\s*/g, '');\n\t\t\t\t}\n\n\t\t\t\tclassListCtrl = {\n\t\t\t\t\tname: 'class',\n\t\t\t\t\ttype: 'listbox',\n\t\t\t\t\tlabel: 'Class',\n\t\t\t\t\tvalues: buildListItems(\n\t\t\t\t\t\teditor.settings.table_class_list,\n\t\t\t\t\t\tfunction(item) {\n\t\t\t\t\t\t\tif (item.value) {\n\t\t\t\t\t\t\t\titem.textStyle = function() {\n\t\t\t\t\t\t\t\t\treturn editor.formatter.getCssText({block: 'table', classes: [item.value]});\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tgeneralTableForm = {\n\t\t\t\ttype: 'form',\n\t\t\t\tlayout: 'flex',\n\t\t\t\tdirection: 'column',\n\t\t\t\tlabelGapCalc: 'children',\n\t\t\t\tpadding: 0,\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'form',\n\t\t\t\t\t\tlabelGapCalc: false,\n\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\tlayout: 'grid',\n\t\t\t\t\t\tcolumns: 2,\n\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\ttype: 'textbox',\n\t\t\t\t\t\t\tmaxWidth: 50\n\t\t\t\t\t\t},\n\t\t\t\t\t\titems: (editor.settings.table_appearance_options !== false) ? [\n\t\t\t\t\t\t\tcolsCtrl,\n\t\t\t\t\t\t\trowsCtrl,\n\t\t\t\t\t\t\t{label: 'Width', name: 'width'},\n\t\t\t\t\t\t\t{label: 'Height', name: 'height'},\n\t\t\t\t\t\t\t{label: 'Cell spacing', name: 'cellspacing'},\n\t\t\t\t\t\t\t{label: 'Cell padding', name: 'cellpadding'},\n\t\t\t\t\t\t\t{label: 'Border', name: 'border'},\n\t\t\t\t\t\t\t{label: 'Caption', name: 'caption', type: 'checkbox'}\n\t\t\t\t\t\t] : [\n\t\t\t\t\t\t\tcolsCtrl,\n\t\t\t\t\t\t\trowsCtrl,\n\t\t\t\t\t\t\t{label: 'Width', name: 'width'},\n\t\t\t\t\t\t\t{label: 'Height', name: 'height'}\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Alignment',\n\t\t\t\t\t\tname: 'align',\n\t\t\t\t\t\ttype: 'listbox',\n\t\t\t\t\t\ttext: 'None',\n\t\t\t\t\t\tvalues: [\n\t\t\t\t\t\t\t{text: 'None', value: ''},\n\t\t\t\t\t\t\t{text: 'Left', value: 'left'},\n\t\t\t\t\t\t\t{text: 'Center', value: 'center'},\n\t\t\t\t\t\t\t{text: 'Right', value: 'right'}\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\n\t\t\t\t\tclassListCtrl\n\t\t\t\t]\n\t\t\t};\n\n\t\t\tif (editor.settings.table_advtab !== false) {\n\t\t\t\tappendStylesToData(dom, data, tableElm);\n\n\t\t\t\teditor.windowManager.open({\n\t\t\t\t\ttitle: \"Table properties\",\n\t\t\t\t\tdata: data,\n\t\t\t\t\tbodyType: 'tabpanel',\n\t\t\t\t\tbody: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: 'General',\n\t\t\t\t\t\t\ttype: 'form',\n\t\t\t\t\t\t\titems: generalTableForm\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcreateStyleForm(dom)\n\t\t\t\t\t],\n\n\t\t\t\t\tonsubmit: onSubmitTableForm\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\teditor.windowManager.open({\n\t\t\t\t\ttitle: \"Table properties\",\n\t\t\t\t\tdata: data,\n\t\t\t\t\tbody: generalTableForm,\n\t\t\t\t\tonsubmit: onSubmitTableForm\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tself.merge = function(grid, cell) {\n\t\t\teditor.windowManager.open({\n\t\t\t\ttitle: \"Merge cells\",\n\t\t\t\tbody: [\n\t\t\t\t\t{label: 'Cols', name: 'cols', type: 'textbox', value: '1', size: 10},\n\t\t\t\t\t{label: 'Rows', name: 'rows', type: 'textbox', value: '1', size: 10}\n\t\t\t\t],\n\t\t\t\tonsubmit: function() {\n\t\t\t\t\tvar data = this.toJSON();\n\n\t\t\t\t\teditor.undoManager.transact(function() {\n\t\t\t\t\t\tgrid.merge(cell, data.cols, data.rows);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\tself.cell = function() {\n\t\t\tvar dom = editor.dom, cellElm, data, classListCtrl, cells = [];\n\n\t\t\tfunction setAttrib(elm, name, value) {\n\t\t\t\tif (cells.length === 1 || value) {\n\t\t\t\t\tdom.setAttrib(elm, name, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction setStyle(elm, name, value) {\n\t\t\t\tif (cells.length === 1 || value) {\n\t\t\t\t\tdom.setStyle(elm, name, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction onSubmitCellForm() {\n\t\t\t\tupdateStyle(dom, this);\n\t\t\t\tdata = Tools.extend(data, this.toJSON());\n\n\t\t\t\teditor.undoManager.transact(function() {\n\t\t\t\t\teach(cells, function(cellElm) {\n\t\t\t\t\t\tsetAttrib(cellElm, 'scope', data.scope);\n\t\t\t\t\t\tsetAttrib(cellElm, 'style', data.style);\n\t\t\t\t\t\tsetAttrib(cellElm, 'class', data['class']);\n\t\t\t\t\t\tsetStyle(cellElm, 'width', addSizeSuffix(data.width));\n\t\t\t\t\t\tsetStyle(cellElm, 'height', addSizeSuffix(data.height));\n\n\t\t\t\t\t\t// Switch cell type\n\t\t\t\t\t\tif (data.type && cellElm.nodeName.toLowerCase() !== data.type) {\n\t\t\t\t\t\t\tcellElm = dom.rename(cellElm, data.type);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Remove alignment\n\t\t\t\t\t\tif (cells.length === 1) {\n\t\t\t\t\t\t\tunApplyAlign(cellElm);\n\t\t\t\t\t\t\tunApplyVAlign(cellElm);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Apply alignment\n\t\t\t\t\t\tif (data.align) {\n\t\t\t\t\t\t\teditor.formatter.apply('align' + data.align, {}, cellElm);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Apply vertical alignment\n\t\t\t\t\t\tif (data.valign) {\n\t\t\t\t\t\t\teditor.formatter.apply('valign' + data.valign, {}, cellElm);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\teditor.focus();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Get selected cells or the current cell\n\t\t\tcells = editor.dom.select('td[data-mce-selected],th[data-mce-selected]');\n\t\t\tcellElm = editor.dom.getParent(editor.selection.getStart(), 'td,th');\n\t\t\tif (!cells.length && cellElm) {\n\t\t\t\tcells.push(cellElm);\n\t\t\t}\n\n\t\t\tcellElm = cellElm || cells[0];\n\n\t\t\tif (!cellElm) {\n\t\t\t\t// If this element is null, return now to avoid crashing.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (cells.length > 1) {\n\t\t\t\tdata = {\n\t\t\t\t\twidth: '',\n\t\t\t\t\theight: '',\n\t\t\t\t\tscope: '',\n\t\t\t\t\t'class': '',\n\t\t\t\t\talign: '',\n\t\t\t\t\tstyle: '',\n\t\t\t\t\ttype: cellElm.nodeName.toLowerCase()\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tdata = {\n\t\t\t\t\twidth: removePxSuffix(dom.getStyle(cellElm, 'width') || dom.getAttrib(cellElm, 'width')),\n\t\t\t\t\theight: removePxSuffix(dom.getStyle(cellElm, 'height') || dom.getAttrib(cellElm, 'height')),\n\t\t\t\t\tscope: dom.getAttrib(cellElm, 'scope'),\n\t\t\t\t\t'class': dom.getAttrib(cellElm, 'class')\n\t\t\t\t};\n\n\t\t\t\tdata.type = cellElm.nodeName.toLowerCase();\n\n\t\t\t\teach('left center right'.split(' '), function(name) {\n\t\t\t\t\tif (editor.formatter.matchNode(cellElm, 'align' + name)) {\n\t\t\t\t\t\tdata.align = name;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\teach('top middle bottom'.split(' '), function(name) {\n\t\t\t\t\tif (editor.formatter.matchNode(cellElm, 'valign' + name)) {\n\t\t\t\t\t\tdata.valign = name;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tappendStylesToData(dom, data, cellElm);\n\t\t\t}\n\n\t\t\tif (editor.settings.table_cell_class_list) {\n\t\t\t\tclassListCtrl = {\n\t\t\t\t\tname: 'class',\n\t\t\t\t\ttype: 'listbox',\n\t\t\t\t\tlabel: 'Class',\n\t\t\t\t\tvalues: buildListItems(\n\t\t\t\t\t\teditor.settings.table_cell_class_list,\n\t\t\t\t\t\tfunction(item) {\n\t\t\t\t\t\t\tif (item.value) {\n\t\t\t\t\t\t\t\titem.textStyle = function() {\n\t\t\t\t\t\t\t\t\treturn editor.formatter.getCssText({block: 'td', classes: [item.value]});\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tvar generalCellForm = {\n\t\t\t\ttype: 'form',\n\t\t\t\tlayout: 'flex',\n\t\t\t\tdirection: 'column',\n\t\t\t\tlabelGapCalc: 'children',\n\t\t\t\tpadding: 0,\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'form',\n\t\t\t\t\t\tlayout: 'grid',\n\t\t\t\t\t\tcolumns: 2,\n\t\t\t\t\t\tlabelGapCalc: false,\n\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\ttype: 'textbox',\n\t\t\t\t\t\t\tmaxWidth: 50\n\t\t\t\t\t\t},\n\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t{label: 'Width', name: 'width'},\n\t\t\t\t\t\t\t{label: 'Height', name: 'height'},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Cell type',\n\t\t\t\t\t\t\t\tname: 'type',\n\t\t\t\t\t\t\t\ttype: 'listbox',\n\t\t\t\t\t\t\t\ttext: 'None',\n\t\t\t\t\t\t\t\tminWidth: 90,\n\t\t\t\t\t\t\t\tmaxWidth: null,\n\t\t\t\t\t\t\t\tvalues: [\n\t\t\t\t\t\t\t\t\t{text: 'Cell', value: 'td'},\n\t\t\t\t\t\t\t\t\t{text: 'Header cell', value: 'th'}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Scope',\n\t\t\t\t\t\t\t\tname: 'scope',\n\t\t\t\t\t\t\t\ttype: 'listbox',\n\t\t\t\t\t\t\t\ttext: 'None',\n\t\t\t\t\t\t\t\tminWidth: 90,\n\t\t\t\t\t\t\t\tmaxWidth: null,\n\t\t\t\t\t\t\t\tvalues: [\n\t\t\t\t\t\t\t\t\t{text: 'None', value: ''},\n\t\t\t\t\t\t\t\t\t{text: 'Row', value: 'row'},\n\t\t\t\t\t\t\t\t\t{text: 'Column', value: 'col'},\n\t\t\t\t\t\t\t\t\t{text: 'Row group', value: 'rowgroup'},\n\t\t\t\t\t\t\t\t\t{text: 'Column group', value: 'colgroup'}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'H Align',\n\t\t\t\t\t\t\t\tname: 'align',\n\t\t\t\t\t\t\t\ttype: 'listbox',\n\t\t\t\t\t\t\t\ttext: 'None',\n\t\t\t\t\t\t\t\tminWidth: 90,\n\t\t\t\t\t\t\t\tmaxWidth: null,\n\t\t\t\t\t\t\t\tvalues: [\n\t\t\t\t\t\t\t\t\t{text: 'None', value: ''},\n\t\t\t\t\t\t\t\t\t{text: 'Left', value: 'left'},\n\t\t\t\t\t\t\t\t\t{text: 'Center', value: 'center'},\n\t\t\t\t\t\t\t\t\t{text: 'Right', value: 'right'}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'V Align',\n\t\t\t\t\t\t\t\tname: 'valign',\n\t\t\t\t\t\t\t\ttype: 'listbox',\n\t\t\t\t\t\t\t\ttext: 'None',\n\t\t\t\t\t\t\t\tminWidth: 90,\n\t\t\t\t\t\t\t\tmaxWidth: null,\n\t\t\t\t\t\t\t\tvalues: [\n\t\t\t\t\t\t\t\t\t{text: 'None', value: ''},\n\t\t\t\t\t\t\t\t\t{text: 'Top', value: 'top'},\n\t\t\t\t\t\t\t\t\t{text: 'Middle', value: 'middle'},\n\t\t\t\t\t\t\t\t\t{text: 'Bottom', value: 'bottom'}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\n\t\t\t\t\tclassListCtrl\n\t\t\t\t]\n\t\t\t};\n\n\t\t\tif (editor.settings.table_cell_advtab !== false) {\n\t\t\t\teditor.windowManager.open({\n\t\t\t\t\ttitle: \"Cell properties\",\n\t\t\t\t\tbodyType: 'tabpanel',\n\t\t\t\t\tdata: data,\n\t\t\t\t\tbody: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: 'General',\n\t\t\t\t\t\t\ttype: 'form',\n\t\t\t\t\t\t\titems: generalCellForm\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tcreateStyleForm(dom)\n\t\t\t\t\t],\n\n\t\t\t\t\tonsubmit: onSubmitCellForm\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\teditor.windowManager.open({\n\t\t\t\t\ttitle: \"Cell properties\",\n\t\t\t\t\tdata: data,\n\t\t\t\t\tbody: generalCellForm,\n\t\t\t\t\tonsubmit: onSubmitCellForm\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tself.row = function() {\n\t\t\tvar dom = editor.dom, tableElm, cellElm, rowElm, classListCtrl, data, rows = [], generalRowForm;\n\n\t\t\tfunction setAttrib(elm, name, value) {\n\t\t\t\tif (rows.length === 1 || value) {\n\t\t\t\t\tdom.setAttrib(elm, name, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction setStyle(elm, name, value) {\n\t\t\t\tif (rows.length === 1 || value) {\n\t\t\t\t\tdom.setStyle(elm, name, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction onSubmitRowForm() {\n\t\t\t\tvar tableElm, oldParentElm, parentElm;\n\n\t\t\t\tupdateStyle(dom, this);\n\t\t\t\tdata = Tools.extend(data, this.toJSON());\n\n\t\t\t\teditor.undoManager.transact(function() {\n\t\t\t\t\tvar toType = data.type;\n\n\t\t\t\t\teach(rows, function(rowElm) {\n\t\t\t\t\t\tsetAttrib(rowElm, 'scope', data.scope);\n\t\t\t\t\t\tsetAttrib(rowElm, 'style', data.style);\n\t\t\t\t\t\tsetAttrib(rowElm, 'class', data['class']);\n\t\t\t\t\t\tsetStyle(rowElm, 'height', addSizeSuffix(data.height));\n\n\t\t\t\t\t\tif (toType !== rowElm.parentNode.nodeName.toLowerCase()) {\n\t\t\t\t\t\t\ttableElm = dom.getParent(rowElm, 'table');\n\n\t\t\t\t\t\t\toldParentElm = rowElm.parentNode;\n\t\t\t\t\t\t\tparentElm = dom.select(toType, tableElm)[0];\n\t\t\t\t\t\t\tif (!parentElm) {\n\t\t\t\t\t\t\t\tparentElm = dom.create(toType);\n\t\t\t\t\t\t\t\tif (tableElm.firstChild) {\n\t\t\t\t\t\t\t\t\ttableElm.insertBefore(parentElm, tableElm.firstChild);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ttableElm.appendChild(parentElm);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tparentElm.appendChild(rowElm);\n\n\t\t\t\t\t\t\tif (!oldParentElm.hasChildNodes()) {\n\t\t\t\t\t\t\t\tdom.remove(oldParentElm);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Apply/remove alignment\n\t\t\t\t\t\tif (rows.length === 1) {\n\t\t\t\t\t\t\tunApplyAlign(rowElm);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (data.align) {\n\t\t\t\t\t\t\teditor.formatter.apply('align' + data.align, {}, rowElm);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\teditor.focus();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\ttableElm = editor.dom.getParent(editor.selection.getStart(), 'table');\n\t\t\tcellElm = editor.dom.getParent(editor.selection.getStart(), 'td,th');\n\n\t\t\teach(tableElm.rows, function(row) {\n\t\t\t\teach(row.cells, function(cell) {\n\t\t\t\t\tif (dom.getAttrib(cell, 'data-mce-selected') || cell == cellElm) {\n\t\t\t\t\t\trows.push(row);\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\trowElm = rows[0];\n\t\t\tif (!rowElm) {\n\t\t\t\t// If this element is null, return now to avoid crashing.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (rows.length > 1) {\n\t\t\t\tdata = {\n\t\t\t\t\theight: '',\n\t\t\t\t\tscope: '',\n\t\t\t\t\t'class': '',\n\t\t\t\t\talign: '',\n\t\t\t\t\ttype: rowElm.parentNode.nodeName.toLowerCase()\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tdata = {\n\t\t\t\t\theight: removePxSuffix(dom.getStyle(rowElm, 'height') || dom.getAttrib(rowElm, 'height')),\n\t\t\t\t\tscope: dom.getAttrib(rowElm, 'scope'),\n\t\t\t\t\t'class': dom.getAttrib(rowElm, 'class')\n\t\t\t\t};\n\n\t\t\t\tdata.type = rowElm.parentNode.nodeName.toLowerCase();\n\n\t\t\t\teach('left center right'.split(' '), function(name) {\n\t\t\t\t\tif (editor.formatter.matchNode(rowElm, 'align' + name)) {\n\t\t\t\t\t\tdata.align = name;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tappendStylesToData(dom, data, rowElm);\n\t\t\t}\n\n\t\t\tif (editor.settings.table_row_class_list) {\n\t\t\t\tclassListCtrl = {\n\t\t\t\t\tname: 'class',\n\t\t\t\t\ttype: 'listbox',\n\t\t\t\t\tlabel: 'Class',\n\t\t\t\t\tvalues: buildListItems(\n\t\t\t\t\t\teditor.settings.table_row_class_list,\n\t\t\t\t\t\tfunction(item) {\n\t\t\t\t\t\t\tif (item.value) {\n\t\t\t\t\t\t\t\titem.textStyle = function() {\n\t\t\t\t\t\t\t\t\treturn editor.formatter.getCssText({block: 'tr', classes: [item.value]});\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tgeneralRowForm = {\n\t\t\t\ttype: 'form',\n\t\t\t\tcolumns: 2,\n\t\t\t\tpadding: 0,\n\t\t\t\tdefaults: {\n\t\t\t\t\ttype: 'textbox'\n\t\t\t\t},\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'listbox',\n\t\t\t\t\t\tname: 'type',\n\t\t\t\t\t\tlabel: 'Row type',\n\t\t\t\t\t\ttext: 'Header',\n\t\t\t\t\t\tmaxWidth: null,\n\t\t\t\t\t\tvalues: [\n\t\t\t\t\t\t\t{text: 'Header', value: 'thead'},\n\t\t\t\t\t\t\t{text: 'Body', value: 'tbody'},\n\t\t\t\t\t\t\t{text: 'Footer', value: 'tfoot'}\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'listbox',\n\t\t\t\t\t\tname: 'align',\n\t\t\t\t\t\tlabel: 'Alignment',\n\t\t\t\t\t\ttext: 'None',\n\t\t\t\t\t\tmaxWidth: null,\n\t\t\t\t\t\tvalues: [\n\t\t\t\t\t\t\t{text: 'None', value: ''},\n\t\t\t\t\t\t\t{text: 'Left', value: 'left'},\n\t\t\t\t\t\t\t{text: 'Center', value: 'center'},\n\t\t\t\t\t\t\t{text: 'Right', value: 'right'}\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{label: 'Height', name: 'height'},\n\t\t\t\t\tclassListCtrl\n\t\t\t\t]\n\t\t\t};\n\n\t\t\tif (editor.settings.table_row_advtab !== false) {\n\t\t\t\teditor.windowManager.open({\n\t\t\t\t\ttitle: \"Row properties\",\n\t\t\t\t\tdata: data,\n\t\t\t\t\tbodyType: 'tabpanel',\n\t\t\t\t\tbody: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: 'General',\n\t\t\t\t\t\t\ttype: 'form',\n\t\t\t\t\t\t\titems: generalRowForm\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcreateStyleForm(dom)\n\t\t\t\t\t],\n\n\t\t\t\t\tonsubmit: onSubmitRowForm\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\teditor.windowManager.open({\n\t\t\t\t\ttitle: \"Row properties\",\n\t\t\t\t\tdata: data,\n\t\t\t\t\tbody: generalRowForm,\n\t\t\t\t\tonsubmit: onSubmitRowForm\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t};\n});\n\n// Included from: js/tinymce/plugins/table/classes/ResizeBars.js\n\n/**\n * ResizeBars.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class handles table column and row resizing by adding divs over the columns and rows of the table.\n * These divs are then manipulated using mouse events to resize the underlying table.\n *\n * @class tinymce.tableplugin.ResizeBars\n * @private\n */\ndefine(\"tinymce/tableplugin/ResizeBars\", [\n\t\"tinymce/util/Tools\",\n\t\"tinymce/util/VK\"\n], function(Tools, VK) {\n\tvar hoverTable;\n\n\treturn function(editor) {\n\t\tvar RESIZE_BAR_CLASS = 'mce-resize-bar',\n\t\t\tRESIZE_BAR_ROW_CLASS = 'mce-resize-bar-row',\n\t\t\tRESIZE_BAR_ROW_CURSOR_STYLE = 'row-resize',\n\t\t\tRESIZE_BAR_ROW_DATA_ATTRIBUTE = 'data-row',\n\t\t\tRESIZE_BAR_ROW_DATA_INITIAL_TOP_ATTRIBUTE = 'data-initial-top',\n\t\t\tRESIZE_BAR_COL_CLASS = 'mce-resize-bar-col',\n\t\t\tRESIZE_BAR_COL_CURSOR_STYLE = 'col-resize',\n\t\t\tRESIZE_BAR_COL_DATA_ATTRIBUTE = 'data-col',\n\t\t\tRESIZE_BAR_COL_DATA_INITIAL_LEFT_ATTRIBUTE = 'data-initial-left',\n\t\t\tRESIZE_BAR_THICKNESS = 4,\n\t\t\tRESIZE_MINIMUM_WIDTH = 10,\n\t\t\tRESIZE_MINIMUM_HEIGHT = 10,\n\t\t\tRESIZE_BAR_DRAGGING_CLASS = 'mce-resize-bar-dragging';\n\n\t\tvar percentageBasedSizeRegex = new RegExp(/(\\d+(\\.\\d+)?%)/),\n\t\t\tpixelBasedSizeRegex = new RegExp(/px|em/);\n\n\t\tvar delayDrop, dragging, blockerElement, dragBar, lastX, lastY;\n\n\t\t// Get the absolute position's top edge.\n\t\tfunction getTopEdge(index, row) {\n\t\t\treturn {\n\t\t\t\tindex: index,\n\t\t\t\ty: editor.dom.getPos(row).y\n\t\t\t};\n\t\t}\n\n\t\t// Get the absolute position's bottom edge.\n\t\tfunction getBottomEdge(index, row) {\n\t\t\treturn {\n\t\t\t\tindex: index,\n\t\t\t\ty: editor.dom.getPos(row).y + row.offsetHeight\n\t\t\t};\n\t\t}\n\n\t\t// Get the absolute position's left edge.\n\t\tfunction getLeftEdge(index, cell) {\n\t\t\treturn {\n\t\t\t\tindex: index,\n\t\t\t\tx: editor.dom.getPos(cell).x\n\t\t\t};\n\t\t}\n\n\t\t// Get the absolute position's right edge.\n\t\tfunction getRightEdge(index, cell) {\n\t\t\treturn {\n\t\t\t\tindex: index,\n\t\t\t\tx: editor.dom.getPos(cell).x + cell.offsetWidth\n\t\t\t};\n\t\t}\n\n\t\tfunction isRtl() {\n\t\t\tvar dir = editor.getBody().dir;\n\t\t\treturn dir === 'rtl';\n\t\t}\n\n\t\tfunction isInline() {\n\t\t\treturn editor.inline;\n\t\t}\n\n\t\tfunction getBody() {\n\t\t\treturn isInline ? editor.getBody().ownerDocument.body : editor.getBody();\n\t\t}\n\n\t\tfunction getInnerEdge(index, cell) {\n\t\t\treturn isRtl() ? getRightEdge(index, cell) : getLeftEdge(index, cell);\n\t\t}\n\n\t\tfunction getOuterEdge(index, cell) {\n\t\t\treturn isRtl() ? getLeftEdge(index, cell) : getRightEdge(index, cell);\n\t\t}\n\n\t\tfunction getPercentageWidthFallback(element, table) {\n\t\t\treturn getComputedStyleSize(element, 'width') / getComputedStyleSize(table, 'width') * 100;\n\t\t}\n\n\t\tfunction getComputedStyleSize(element, property) {\n\t\t\tvar widthString = editor.dom.getStyle(element, property, true);\n\t\t\tvar width = parseInt(widthString, 10);\n\t\t\treturn width;\n\t\t}\n\n\t\tfunction getCurrentTablePercentWidth(table) {\n\t\t\tvar tableWidth = getComputedStyleSize(table, 'width');\n\t\t\tvar tableParentWidth = getComputedStyleSize(table.parentElement, 'width');\n\t\t\treturn tableWidth / tableParentWidth * 100;\n\t\t}\n\n\t\tfunction getCellPercentDelta(table, delta) {\n\t\t\tvar tableWidth = getComputedStyleSize(table, 'width');\n\t\t\treturn delta / tableWidth * 100;\n\t\t}\n\n\t\tfunction getTablePercentDelta(table, delta) {\n\t\t\tvar tableParentWidth = getComputedStyleSize(table.parentElement, 'width');\n\t\t\treturn delta / tableParentWidth * 100;\n\t\t}\n\n\t\t// Find the left/right (ltr/rtl) or top side locations of the cells to measure.\n\t\t// This is the location of the borders we need to draw over.\n\t\tfunction findPositions(getInner, getOuter, thingsToMeasure) {\n\t\t\tvar tablePositions = [];\n\n\t\t\t// Skip the first item in the array = no left (LTR), right (RTL) or top bars\n\t\t\tfor (var i = 1; i < thingsToMeasure.length; i++) {\n\t\t\t\t// Get the element from the details\n\t\t\t\tvar item = thingsToMeasure[i].element;\n\n\t\t\t\t// We need to zero index this again\n\t\t\t\ttablePositions.push(getInner(i - 1, item));\n\t\t\t}\n\n\t\t\tvar lastTableLineToMake = thingsToMeasure[thingsToMeasure.length - 1];\n\t\t\ttablePositions.push(getOuter(thingsToMeasure.length - 1, lastTableLineToMake.element));\n\n\t\t\treturn tablePositions;\n\t\t}\n\n\t\t// Clear the bars.\n\t\tfunction clearBars() {\n\t\t\tvar bars = editor.dom.select('.' + RESIZE_BAR_CLASS, getBody());\n\t\t\tTools.each(bars, function(bar) {\n\t\t\t\teditor.dom.remove(bar);\n\t\t\t});\n\t\t}\n\n\t\t// Refresh the bars.\n\t\tfunction refreshBars(tableElement) {\n\t\t\tclearBars();\n\t\t\tdrawBars(tableElement);\n\t\t}\n\n\t\t// Generates a resize bar object for the editor to add.\n\t\tfunction generateBar(classToAdd, cursor, left, top, height, width, indexAttr, index) {\n\t\t\tvar bar = {\n\t\t\t\t'data-mce-bogus': 'all',\n\t\t\t\t'class': RESIZE_BAR_CLASS + ' ' + classToAdd,\n\t\t\t\t'unselectable': 'on',\n\t\t\t\t'data-mce-resize': false,\n\t\t\t\tstyle: 'cursor: ' + cursor + '; ' +\n\t\t\t\t\t'margin: 0; ' +\n\t\t\t\t\t'padding: 0; ' +\n\t\t\t\t\t'position: absolute; ' +\n\t\t\t\t\t'left: ' + left + 'px; ' +\n\t\t\t\t\t'top: ' + top + 'px; ' +\n\t\t\t\t\t'height: ' + height + 'px; ' +\n\t\t\t\t\t'width: ' + width + 'px; '\n\t\t\t};\n\n\t\t\tbar[indexAttr] = index;\n\n\t\t\treturn bar;\n\t\t}\n\n\t\t// Draw the row bars over the row borders.\n\t\tfunction drawRows(rowPositions, tableWidth, tablePosition) {\n\t\t\tTools.each(rowPositions, function(rowPosition) {\n\t\t\t\tvar left = tablePosition.x,\n\t\t\t\t\ttop = rowPosition.y - RESIZE_BAR_THICKNESS / 2,\n\t\t\t\t\theight = RESIZE_BAR_THICKNESS,\n\t\t\t\t\twidth = tableWidth;\n\n\t\t\t\teditor.dom.add(getBody(), 'div',\n\t\t\t\t\tgenerateBar(RESIZE_BAR_ROW_CLASS, RESIZE_BAR_ROW_CURSOR_STYLE,\n\t\t\t\t\t\tleft, top, height, width, RESIZE_BAR_ROW_DATA_ATTRIBUTE, rowPosition.index));\n\t\t\t});\n\t\t}\n\n\t\t// Draw the column bars over the column borders.\n\t\tfunction drawCols(cellPositions, tableHeight, tablePosition) {\n\t\t\tTools.each(cellPositions, function(cellPosition) {\n\t\t\t\tvar left = cellPosition.x - RESIZE_BAR_THICKNESS / 2,\n\t\t\t\t\ttop = tablePosition.y,\n\t\t\t\t\theight = tableHeight,\n\t\t\t\t\twidth = RESIZE_BAR_THICKNESS;\n\n\t\t\t\teditor.dom.add(getBody(), 'div',\n\t\t\t\t\tgenerateBar(RESIZE_BAR_COL_CLASS, RESIZE_BAR_COL_CURSOR_STYLE,\n\t\t\t\t\t\tleft, top, height, width, RESIZE_BAR_COL_DATA_ATTRIBUTE, cellPosition.index));\n\t\t\t});\n\t\t}\n\n\t\t// Get a matrix of the cells in each row and the rows in the table.\n\t\tfunction getTableDetails(table) {\n\t\t\treturn Tools.map(table.rows, function(row) {\n\n\t\t\t\tvar cells = Tools.map(row.cells, function(cell) {\n\n\t\t\t\t\tvar rowspan = cell.hasAttribute('rowspan') ? parseInt(cell.getAttribute('rowspan'), 10) : 1;\n\t\t\t\t\tvar colspan = cell.hasAttribute('colspan') ? parseInt(cell.getAttribute('colspan'), 10) : 1;\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\telement: cell,\n\t\t\t\t\t\trowspan: rowspan,\n\t\t\t\t\t\tcolspan: colspan\n\t\t\t\t\t};\n\t\t\t\t});\n\n\t\t\t\treturn {\n\t\t\t\t\telement: row,\n\t\t\t\t\tcells: cells\n\t\t\t\t};\n\n\t\t\t});\n\n\t\t}\n\n\t\t// Get a grid model of the table.\n\t\tfunction getTableGrid(tableDetails) {\n\t\t\tfunction key(rowIndex, colIndex) {\n\t\t\t\treturn rowIndex + ',' + colIndex;\n\t\t\t}\n\n\t\t\tfunction getAt(rowIndex, colIndex) {\n\t\t\t\treturn access[key(rowIndex, colIndex)];\n\t\t\t}\n\n\t\t\tfunction getAllCells() {\n\t\t\t\tvar allCells = [];\n\t\t\t\tTools.each(rows, function(row) {\n\t\t\t\t\tallCells = allCells.concat(row.cells);\n\t\t\t\t});\n\t\t\t\treturn allCells;\n\t\t\t}\n\n\t\t\tfunction getAllRows() {\n\t\t\t\treturn rows;\n\t\t\t}\n\n\t\t\tvar access = {};\n\t\t\tvar rows = [];\n\n\t\t\tvar maxRows = 0;\n\t\t\tvar maxCols = 0;\n\n\t\t\tTools.each(tableDetails, function(row, rowIndex) {\n\t\t\t\tvar currentRow = [];\n\n\t\t\t\tTools.each(row.cells, function(cell) {\n\n\t\t\t\t\tvar start = 0;\n\n\t\t\t\t\twhile (access[key(rowIndex, start)] !== undefined) {\n\t\t\t\t\t\tstart++;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar current = {\n\t\t\t\t\t\telement: cell.element,\n\t\t\t\t\t\tcolspan: cell.colspan,\n\t\t\t\t\t\trowspan: cell.rowspan,\n\t\t\t\t\t\trowIndex: rowIndex,\n\t\t\t\t\t\tcolIndex: start\n\t\t\t\t\t};\n\n\t\t\t\t\tfor (var i = 0; i < cell.colspan; i++) {\n\t\t\t\t\t\tfor (var j = 0; j < cell.rowspan; j++) {\n\t\t\t\t\t\t\tvar cr = rowIndex + j;\n\t\t\t\t\t\t\tvar cc = start + i;\n\t\t\t\t\t\t\taccess[key(cr, cc)] = current;\n\t\t\t\t\t\t\tmaxRows = Math.max(maxRows, cr + 1);\n\t\t\t\t\t\t\tmaxCols = Math.max(maxCols, cc + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrentRow.push(current);\n\t\t\t\t});\n\n\t\t\t\trows.push({\n\t\t\t\t\telement: row.element,\n\t\t\t\t\tcells: currentRow\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tgrid: {\n\t\t\t\t\tmaxRows: maxRows,\n\t\t\t\t\tmaxCols: maxCols\n\t\t\t\t},\n\t\t\t\tgetAt: getAt,\n\t\t\t\tgetAllCells: getAllCells,\n\t\t\t\tgetAllRows: getAllRows\n\t\t\t};\n\t\t}\n\n\t\tfunction range(start, end) {\n\t\t\tvar r = [];\n\n\t\t\tfor (var i = start; i < end; i++) {\n\t\t\t\tr.push(i);\n\t\t\t}\n\n\t\t\treturn r;\n\t\t}\n\n\t\t// Attempt to get a representative single block for this column.\n\t\t// If we can't find a single block, all blocks in this row/column are spanned\n\t\t// and we'll need to fallback to getting the first cell in the row/column.\n\t\tfunction decide(getBlock, isSingle, getFallback) {\n\t\t\tvar inBlock = getBlock();\n\t\t\tvar singleInBlock;\n\n\t\t\tfor (var i = 0; i < inBlock.length; i++) {\n\t\t\t\tif (isSingle(inBlock[i])) {\n\t\t\t\t\tsingleInBlock = inBlock[i];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn singleInBlock ? singleInBlock : getFallback();\n\t\t}\n\n\t\t// Attempt to get representative blocks for the width of each column.\n\t\tfunction getColumnBlocks(tableGrid) {\n\t\t\tvar cols = range(0, tableGrid.grid.maxCols);\n\t\t\tvar rows = range(0, tableGrid.grid.maxRows);\n\n\t\t\treturn Tools.map(cols, function(col) {\n\t\t\t\tfunction getBlock() {\n\t\t\t\t\tvar details = [];\n\t\t\t\t\tfor (var i = 0; i < rows.length; i++) {\n\t\t\t\t\t\tvar detail = tableGrid.getAt(i, col);\n\t\t\t\t\t\tif (detail && detail.colIndex === col) {\n\t\t\t\t\t\t\tdetails.push(detail);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn details;\n\t\t\t\t}\n\n\t\t\t\tfunction isSingle(detail) {\n\t\t\t\t\treturn detail.colspan === 1;\n\t\t\t\t}\n\n\t\t\t\tfunction getFallback() {\n\t\t\t\t\tvar item;\n\n\t\t\t\t\tfor (var i = 0; i < rows.length; i++) {\n\t\t\t\t\t\titem = tableGrid.getAt(i, col);\n\t\t\t\t\t\tif (item) {\n\t\t\t\t\t\t\treturn item;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn decide(getBlock, isSingle, getFallback);\n\t\t\t});\n\t\t}\n\n\t\t// Attempt to get representative blocks for the height of each row.\n\t\tfunction getRowBlocks(tableGrid) {\n\t\t\tvar cols = range(0, tableGrid.grid.maxCols);\n\t\t\tvar rows = range(0, tableGrid.grid.maxRows);\n\n\t\t\treturn Tools.map(rows, function(row) {\n\t\t\t\tfunction getBlock() {\n\t\t\t\t\tvar details = [];\n\t\t\t\t\tfor (var i = 0; i < cols.length; i++) {\n\t\t\t\t\t\tvar detail = tableGrid.getAt(row, i);\n\t\t\t\t\t\tif (detail && detail.rowIndex === row) {\n\t\t\t\t\t\t\tdetails.push(detail);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn details;\n\t\t\t\t}\n\n\t\t\t\tfunction isSingle(detail) {\n\t\t\t\t\treturn detail.rowspan === 1;\n\t\t\t\t}\n\n\t\t\t\tfunction getFallback() {\n\t\t\t\t\treturn tableGrid.getAt(row, 0);\n\t\t\t\t}\n\n\t\t\t\treturn decide(getBlock, isSingle, getFallback);\n\t\t\t});\n\t\t}\n\n\t\t// Draw resize bars over the left/right (ltr/rtl) or top side locations of the cells to measure.\n\t\t// This is the location of the borders we need to draw over.\n\t\tfunction drawBars(table) {\n\t\t\tvar tableDetails = getTableDetails(table);\n\t\t\tvar tableGrid = getTableGrid(tableDetails);\n\t\t\tvar rows = getRowBlocks(tableGrid);\n\t\t\tvar cols = getColumnBlocks(tableGrid);\n\n\t\t\tvar tablePosition = editor.dom.getPos(table);\n\t\t\tvar rowPositions = rows.length > 0 ? findPositions(getTopEdge, getBottomEdge, rows) : [];\n\t\t\tvar colPositions = cols.length > 0 ? findPositions(getInnerEdge, getOuterEdge, cols) : [];\n\n\t\t\tdrawRows(rowPositions, table.offsetWidth, tablePosition);\n\t\t\tdrawCols(colPositions, table.offsetHeight, tablePosition);\n\t\t}\n\n\t\t// Attempt to deduce the width/height of a column/row that has more than one cell spanned.\n\t\tfunction deduceSize(deducables, index, isPercentageBased, table) {\n\t\t\tif (index < 0 || index >= deducables.length - 1) {\n\t\t\t\treturn \"\";\n\t\t\t}\n\n\t\t\tvar current = deducables[index];\n\n\t\t\tif (current) {\n\t\t\t\tcurrent = {\n\t\t\t\t\tvalue: current,\n\t\t\t\t\tdelta: 0\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tvar reversedUpToIndex = deducables.slice(0, index).reverse();\n\t\t\t\tfor (var i = 0; i < reversedUpToIndex.length; i++) {\n\t\t\t\t\tif (reversedUpToIndex[i]) {\n\t\t\t\t\t\tcurrent = {\n\t\t\t\t\t\t\tvalue: reversedUpToIndex[i],\n\t\t\t\t\t\t\tdelta: i + 1\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar next = deducables[index + 1];\n\n\t\t\tif (next) {\n\t\t\t\tnext = {\n\t\t\t\t\tvalue: next,\n\t\t\t\t\tdelta: 1\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tvar rest = deducables.slice(index + 1);\n\t\t\t\tfor (var j = 0; j < rest.length; j++) {\n\t\t\t\t\tif (rest[j]) {\n\t\t\t\t\t\tnext = {\n\t\t\t\t\t\t\tvalue: rest[j],\n\t\t\t\t\t\t\tdelta: j + 1\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar extras = next.delta - current.delta;\n\t\t\tvar pixelWidth = Math.abs(next.value - current.value) / extras;\n\t\t\treturn isPercentageBased ? pixelWidth / getComputedStyleSize(table, 'width') * 100 : pixelWidth;\n\t\t}\n\n\t\tfunction getStyleOrAttrib(element, property) {\n\t\t\tvar sizeString = editor.dom.getStyle(element, property);\n\t\t\tif (!sizeString) {\n\t\t\t\tsizeString = editor.dom.getAttrib(element, property);\n\t\t\t}\n\t\t\tif (!sizeString) {\n\t\t\t\tsizeString = editor.dom.getStyle(element, property, true);\n\t\t\t}\n\t\t\treturn sizeString;\n\t\t}\n\n\t\tfunction getWidth(element, isPercentageBased, table) {\n\t\t\tvar widthString = getStyleOrAttrib(element, 'width');\n\n\t\t\tvar widthNumber = parseInt(widthString, 10);\n\n\t\t\tvar getWidthFallback = isPercentageBased ? getPercentageWidthFallback(element, table) : getComputedStyleSize(element, 'width');\n\n\t\t\t// If this is percentage based table, but this cell isn't percentage based.\n\t\t\t// Or if this is a pixel based table, but this cell isn't pixel based.\n\t\t\tif (isPercentageBased && !isPercentageBasedSize(widthString) ||\n\t\t\t!isPercentageBased && !isPixelBasedSize(widthString)) {\n\t\t\t\t// set the widthnumber to 0\n\t\t\t\twidthNumber = 0;\n\t\t\t}\n\n\t\t\treturn !isNaN(widthNumber) && widthNumber > 0 ?\n\t\t\t\twidthNumber : getWidthFallback;\n\t\t}\n\n\t\t// Attempt to get the css width from column representative cells.\n\t\tfunction getWidths(tableGrid, isPercentageBased, table) {\n\n\t\t\tvar cols = getColumnBlocks(tableGrid);\n\n\t\t\tvar backups = Tools.map(cols, function(col) {\n\t\t\t\treturn getInnerEdge(col.colIndex, col.element).x;\n\t\t\t});\n\n\t\t\tvar widths = [];\n\n\t\t\tfor (var i = 0; i < cols.length; i++) {\n\t\t\t\tvar span = cols[i].element.hasAttribute('colspan') ? parseInt(cols[i].element.getAttribute('colspan'), 10) : 1;\n\t\t\t\t// Deduce if the column has colspan of more than 1\n\t\t\t\tvar width = span > 1 ? deduceSize(backups, i) : getWidth(cols[i].element, isPercentageBased, table);\n\t\t\t\t// If everything's failed and we still don't have a width\n\t\t\t\twidth = width ? width : RESIZE_MINIMUM_WIDTH;\n\t\t\t\twidths.push(width);\n\t\t\t}\n\n\t\t\treturn widths;\n\t\t}\n\n\t\t// Attempt to get the pixel height from a cell.\n\t\tfunction getPixelHeight(element) {\n\n\t\t\tvar heightString = getStyleOrAttrib(element, 'height');\n\n\t\t\tvar heightNumber = parseInt(heightString, 10);\n\n\t\t\tif (isPercentageBasedSize(heightString)) {\n\t\t\t\theightNumber = 0;\n\t\t\t}\n\n\t\t\treturn !isNaN(heightNumber) && heightNumber > 0 ?\n\t\t\t\t\t\t\theightNumber : getComputedStyleSize(element, 'height');\n\t\t}\n\n\t\t// Attempt to get the css height from row representative cells.\n\t\tfunction getPixelHeights(tableGrid) {\n\n\t\t\tvar rows = getRowBlocks(tableGrid);\n\n\t\t\tvar backups = Tools.map(rows, function(row) {\n\t\t\t\treturn getTopEdge(row.rowIndex, row.element).y;\n\t\t\t});\n\n\t\t\tvar heights = [];\n\n\t\t\tfor (var i = 0; i < rows.length; i++) {\n\t\t\t\tvar span = rows[i].element.hasAttribute('rowspan') ? parseInt(rows[i].element.getAttribute('rowspan'), 10) : 1;\n\n\t\t\t\tvar height = span > 1 ? deduceSize(backups, i) : getPixelHeight(rows[i].element);\n\n\t\t\t\theight = height ? height : RESIZE_MINIMUM_HEIGHT;\n\t\t\t\theights.push(height);\n\t\t\t}\n\n\t\t\treturn heights;\n\t\t}\n\n\t\t// Determine how much each column's css width will need to change.\n\t\t// Sizes = result = pixels widths OR percentage based widths\n\t\tfunction determineDeltas(sizes, column, step, min, isPercentageBased) {\n\n\t\t\tvar result = sizes.slice(0);\n\n\t\t\tfunction generateZeros(array) {\n\t\t\t\treturn Tools.map(array, function() {\n\t\t\t\t\treturn 0;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tfunction onOneColumn() {\n\t\t\t\tvar deltas;\n\t\t\t\tif (isPercentageBased) {\n\t\t\t\t\t// If we have one column in a percent based table, that column should be 100% of the width of the table.\n\t\t\t\t\tdeltas = [100 - result[0]];\n\t\t\t\t} else {\n\t\t\t\t\tvar newNext = Math.max(min, result[0] + step);\n\t\t\t\t\tdeltas = [newNext - result[0]];\n\t\t\t\t}\n\t\t\t\treturn deltas;\n\t\t\t}\n\n\t\t\tfunction onLeftOrMiddle(index, next) {\n\n\t\t\t\tvar startZeros = generateZeros(result.slice(0, index));\n\t\t\t\tvar endZeros = generateZeros(result.slice(next + 1));\n\t\t\t\tvar deltas;\n\n\t\t\t\tif (step >= 0) {\n\t\t\t\t\tvar newNext = Math.max(min, result[next] - step);\n\t\t\t\t\tdeltas = startZeros.concat([step, newNext - result[next]]).concat(endZeros);\n\t\t\t\t} else {\n\t\t\t\t\tvar newThis = Math.max(min, result[index] + step);\n\t\t\t\t\tvar diffx = result[index] - newThis;\n\t\t\t\t\tdeltas = startZeros.concat([newThis - result[index], diffx]).concat(endZeros);\n\t\t\t\t}\n\n\t\t\t\treturn deltas;\n\t\t\t}\n\n\t\t\tfunction onRight(previous, index) {\n\t\t\t\tvar startZeros = generateZeros(result.slice(0, index));\n\t\t\t\tvar deltas;\n\n\t\t\t\tif (step >= 0) {\n\t\t\t\t\tdeltas = startZeros.concat([step]);\n\t\t\t\t} else {\n\t\t\t\t\tvar size = Math.max(min, result[index] + step);\n\t\t\t\t\tdeltas = startZeros.concat([size - result[index]]);\n\t\t\t\t}\n\n\t\t\t\treturn deltas;\n\n\t\t\t}\n\n\t\t\tvar deltas;\n\n\t\t\tif (sizes.length === 0) { // No Columns\n\t\t\t\tdeltas = [];\n\t\t\t} else if (sizes.length === 1) { // One Column\n\t\t\t\tdeltas = onOneColumn();\n\t\t\t} else if (column === 0) { // Left Column\n\t\t\t\tdeltas = onLeftOrMiddle(0, 1);\n\t\t\t} else if (column > 0 && column < sizes.length - 1) { // Middle Column\n\t\t\t\tdeltas = onLeftOrMiddle(column, column + 1);\n\t\t\t} else if (column === sizes.length - 1) { // Right Column\n\t\t\t\tdeltas = onRight(column - 1, column);\n\t\t\t} else {\n\t\t\t\tdeltas = [];\n\t\t\t}\n\n\t\t\treturn deltas;\n\t\t}\n\n\t\tfunction total(start, end, measures) {\n\t\t\tvar r = 0;\n\t\t\tfor (var i = start; i < end; i++) {\n\t\t\t\tr += measures[i];\n\t\t\t}\n\t\t\treturn r;\n\t\t}\n\n\t\t// Combine cell's css widths to determine widths of colspan'd cells.\n\t\tfunction recalculateWidths(tableGrid, widths) {\n\t\t\tvar allCells = tableGrid.getAllCells();\n\t\t\treturn Tools.map(allCells, function(cell) {\n\t\t\t\tvar width = total(cell.colIndex, cell.colIndex + cell.colspan, widths);\n\t\t\t\treturn {\n\t\t\t\t\telement: cell.element,\n\t\t\t\t\twidth: width,\n\t\t\t\t\tcolspan: cell.colspan\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\t// Combine cell's css heights to determine heights of rowspan'd cells.\n\t\tfunction recalculateCellHeights(tableGrid, heights) {\n\t\t\tvar allCells = tableGrid.getAllCells();\n\t\t\treturn Tools.map(allCells, function(cell) {\n\t\t\t\tvar height = total(cell.rowIndex, cell.rowIndex + cell.rowspan, heights);\n\t\t\t\treturn {\n\t\t\t\t\telement: cell.element,\n\t\t\t\t\theight: height,\n\t\t\t\t\trowspan: cell.rowspan\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\t// Calculate row heights.\n\t\tfunction recalculateRowHeights(tableGrid, heights) {\n\t\t\tvar allRows = tableGrid.getAllRows();\n\t\t\treturn Tools.map(allRows, function(row, i) {\n\t\t\t\treturn {\n\t\t\t\t\telement: row.element,\n\t\t\t\t\theight: heights[i]\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\tfunction isPercentageBasedSize(size) {\n\t\t\treturn percentageBasedSizeRegex.test(size);\n\t\t}\n\n\t\tfunction isPixelBasedSize(size) {\n\t\t\treturn pixelBasedSizeRegex.test(size);\n\t\t}\n\n\t\t// Adjust the width of the column of table at index, with delta.\n\t\tfunction adjustWidth(table, delta, index) {\n\t\t\tvar tableDetails = getTableDetails(table);\n\t\t\tvar tableGrid = getTableGrid(tableDetails);\n\n\t\t\tfunction setSizes(newSizes, styleExtension) {\n\t\t\t\tTools.each(newSizes, function(cell) {\n\t\t\t\t\teditor.dom.setStyle(cell.element, 'width', cell.width + styleExtension);\n\t\t\t\t\teditor.dom.setAttrib(cell.element, 'width', null);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tfunction getNewTablePercentWidth() {\n\t\t\t\treturn index < tableGrid.grid.maxCols - 1 ? getCurrentTablePercentWidth(table) :\n\t\t\t\t\tgetCurrentTablePercentWidth(table) + getTablePercentDelta(table, delta);\n\t\t\t}\n\n\t\t\tfunction getNewTablePixelWidth() {\n\t\t\t\treturn index < tableGrid.grid.maxCols - 1 ? getComputedStyleSize(table, 'width') :\n\t\t\t\t\tgetComputedStyleSize(table, 'width') + delta;\n\t\t\t}\n\n\t\t\tfunction setTableSize(newTableWidth, styleExtension, isPercentBased) {\n\t\t\t\tif (index == tableGrid.grid.maxCols - 1 || !isPercentBased) {\n\t\t\t\t\teditor.dom.setStyle(table, 'width', newTableWidth + styleExtension);\n\t\t\t\t\teditor.dom.setAttrib(table, 'width', null);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar percentageBased = isPercentageBasedSize(table.width) ||\n\t\t\t\tisPercentageBasedSize(table.style.width);\n\n\t\t\tvar widths = getWidths(tableGrid, percentageBased, table);\n\n\t\t\tvar step = percentageBased ? getCellPercentDelta(table, delta) : delta;\n\t\t\t// TODO: change the min for percentage maybe?\n\t\t\tvar deltas = determineDeltas(widths, index, step, RESIZE_MINIMUM_WIDTH, percentageBased, table);\n\t\t\tvar newWidths = [];\n\n\t\t\tfor (var i = 0; i < deltas.length; i++) {\n\t\t\t\tnewWidths.push(deltas[i] + widths[i]);\n\t\t\t}\n\n\t\t\tvar newSizes = recalculateWidths(tableGrid, newWidths);\n\t\t\tvar styleExtension = percentageBased ? '%' : 'px';\n\t\t\tvar newTableWidth = percentageBased ? getNewTablePercentWidth() :\n\t\t\t\tgetNewTablePixelWidth();\n\n\t\t\teditor.undoManager.transact(function() {\n\t\t\t\tsetSizes(newSizes, styleExtension);\n\t\t\t\tsetTableSize(newTableWidth, styleExtension, percentageBased);\n\t\t\t});\n\t\t}\n\n\t\t// Adjust the height of the row of table at index, with delta.\n\t\tfunction adjustHeight(table, delta, index) {\n\t\t\tvar tableDetails = getTableDetails(table);\n\t\t\tvar tableGrid = getTableGrid(tableDetails);\n\n\t\t\tvar heights = getPixelHeights(tableGrid);\n\n\t\t\tvar newHeights = [], newTotalHeight = 0;\n\n\t\t\tfor (var i = 0; i < heights.length; i++) {\n\t\t\t\tnewHeights.push(i === index ? delta + heights[i] : heights[i]);\n\t\t\t\tnewTotalHeight += newTotalHeight[i];\n\t\t\t}\n\n\t\t\tvar newCellSizes = recalculateCellHeights(tableGrid, newHeights);\n\t\t\tvar newRowSizes = recalculateRowHeights(tableGrid, newHeights);\n\n\t\t\teditor.undoManager.transact(function() {\n\n\t\t\t\tTools.each(newRowSizes, function(row) {\n\t\t\t\t\teditor.dom.setStyle(row.element, 'height', row.height + 'px');\n\t\t\t\t\teditor.dom.setAttrib(row.element, 'height', null);\n\t\t\t\t});\n\n\t\t\t\tTools.each(newCellSizes, function(cell) {\n\t\t\t\t\teditor.dom.setStyle(cell.element, 'height', cell.height + 'px');\n\t\t\t\t\teditor.dom.setAttrib(cell.element, 'height', null);\n\t\t\t\t});\n\n\t\t\t\teditor.dom.setStyle(table, 'height', newTotalHeight + 'px');\n\t\t\t\teditor.dom.setAttrib(table, 'height', null);\n\t\t\t});\n\t\t}\n\n\t\tfunction scheduleDelayedDropEvent() {\n\t\t\tdelayDrop = setTimeout(function() {\n\t\t\t\tdrop();\n\t\t\t}, 200);\n\t\t}\n\n\t\tfunction cancelDelayedDropEvent() {\n\t\t\tclearTimeout(delayDrop);\n\t\t}\n\n\t\tfunction getBlockerElement() {\n\t\t\tvar blocker = document.createElement('div');\n\n\t\t\tblocker.setAttribute('style', 'margin: 0; ' +\n\t\t\t\t\t\t'padding: 0; ' +\n\t\t\t\t\t\t'position: fixed; ' +\n\t\t\t\t\t\t'left: 0px; ' +\n\t\t\t\t\t\t'top: 0px; ' +\n\t\t\t\t\t\t'height: 100%; ' +\n\t\t\t\t\t\t'width: 100%;');\n\t\t\tblocker.setAttribute('data-mce-bogus', 'all');\n\n\t\t\treturn blocker;\n\t\t}\n\n\t\tfunction bindBlockerEvents(blocker, dragHandler) {\n\t\t\teditor.dom.bind(blocker, 'mouseup', function() {\n\t\t\t\tdrop();\n\t\t\t});\n\n\t\t\teditor.dom.bind(blocker, 'mousemove', function(e) {\n\t\t\t\tcancelDelayedDropEvent();\n\n\t\t\t\tif (dragging) {\n\t\t\t\t\tdragHandler(e);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\teditor.dom.bind(blocker, 'mouseout', function() {\n\t\t\t\tscheduleDelayedDropEvent();\n\t\t\t});\n\n\t\t}\n\n\t\tfunction drop() {\n\t\t\teditor.dom.remove(blockerElement);\n\n\t\t\tif (dragging) {\n\t\t\t\teditor.dom.removeClass(dragBar, RESIZE_BAR_DRAGGING_CLASS);\n\t\t\t\tdragging = false;\n\n\t\t\t\tvar index, delta;\n\n\t\t\t\tif (isCol(dragBar)) {\n\t\t\t\t\tvar initialLeft = parseInt(editor.dom.getAttrib(dragBar, RESIZE_BAR_COL_DATA_INITIAL_LEFT_ATTRIBUTE), 10);\n\t\t\t\t\tvar newLeft = editor.dom.getPos(dragBar).x;\n\t\t\t\t\tindex = parseInt(editor.dom.getAttrib(dragBar, RESIZE_BAR_COL_DATA_ATTRIBUTE), 10);\n\t\t\t\t\tdelta = isRtl() ? initialLeft - newLeft : newLeft - initialLeft;\n\t\t\t\t\tif (Math.abs(delta) >= 1) {\t\t\t// simple click with no real resize (<1px) must not add CSS properties\n\t\t\t\t\t\tadjustWidth(hoverTable, delta, index);\n\t\t\t\t\t}\n\t\t\t\t} else if (isRow(dragBar)) {\n\t\t\t\t\tvar initialTop = parseInt(editor.dom.getAttrib(dragBar, RESIZE_BAR_ROW_DATA_INITIAL_TOP_ATTRIBUTE), 10);\n\t\t\t\t\tvar newTop = editor.dom.getPos(dragBar).y;\n\t\t\t\t\tindex = parseInt(editor.dom.getAttrib(dragBar, RESIZE_BAR_ROW_DATA_ATTRIBUTE), 10);\n\t\t\t\t\tdelta = newTop - initialTop;\n\t\t\t\t\tif (Math.abs(delta) >= 1) {\t\t\t// simple click with no real resize (<1px) must not add CSS properties\n\t\t\t\t\t\tadjustHeight(hoverTable, delta, index);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trefreshBars(hoverTable);\n\t\t\t\teditor.nodeChanged();\n\t\t\t}\n\t\t}\n\n\t\tfunction setupBaseDrag(bar, dragHandler) {\n\t\t\tblockerElement = blockerElement ? blockerElement : getBlockerElement();\n\t\t\tdragging = true;\n\t\t\teditor.dom.addClass(bar, RESIZE_BAR_DRAGGING_CLASS);\n\t\t\tdragBar = bar;\n\t\t\tbindBlockerEvents(blockerElement, dragHandler);\n\t\t\teditor.dom.add(getBody(), blockerElement);\n\t\t}\n\n\t\tfunction isCol(target) {\n\t\t\treturn editor.dom.hasClass(target, RESIZE_BAR_COL_CLASS);\n\t\t}\n\n\t\tfunction isRow(target) {\n\t\t\treturn editor.dom.hasClass(target, RESIZE_BAR_ROW_CLASS);\n\t\t}\n\n\t\tfunction colDragHandler(event) {\n\t\t\tlastX = lastX !== undefined ? lastX : event.clientX; // we need a firstX\n\t\t\tvar deltaX = event.clientX - lastX;\n\t\t\tlastX = event.clientX;\n\t\t\tvar oldLeft = editor.dom.getPos(dragBar).x;\n\t\t\teditor.dom.setStyle(dragBar, 'left', oldLeft + deltaX + 'px');\n\t\t}\n\n\t\tfunction rowDragHandler(event) {\n\t\t\tlastY = lastY !== undefined ? lastY : event.clientY;\n\t\t\tvar deltaY = event.clientY - lastY;\n\t\t\tlastY = event.clientY;\n\t\t\tvar oldTop = editor.dom.getPos(dragBar).y;\n\t\t\teditor.dom.setStyle(dragBar, 'top', oldTop + deltaY + 'px');\n\t\t}\n\n\t\tfunction setupColDrag(bar) {\n\t\t\tlastX = undefined;\n\t\t\tsetupBaseDrag(bar, colDragHandler);\n\t\t}\n\n\t\tfunction setupRowDrag(bar) {\n\t\t\tlastY = undefined;\n\t\t\tsetupBaseDrag(bar, rowDragHandler);\n\t\t}\n\n\t\tfunction mouseDownHandler(e) {\n\t\t\tvar target = e.target, body = editor.getBody();\n\n\t\t\t// Since this code is working on global events we need to work on a global hoverTable state\n\t\t\t// and make sure that the state is correct according to the events fired\n\t\t\tif (!editor.$.contains(body, hoverTable) && hoverTable !== body) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (isCol(target)) {\n\t\t\t\te.preventDefault();\n\t\t\t\tvar initialLeft = editor.dom.getPos(target).x;\n\t\t\t\teditor.dom.setAttrib(target, RESIZE_BAR_COL_DATA_INITIAL_LEFT_ATTRIBUTE, initialLeft);\n\t\t\t\tsetupColDrag(target);\n\t\t\t} else if (isRow(target)) {\n\t\t\t\te.preventDefault();\n\t\t\t\tvar initialTop = editor.dom.getPos(target).y;\n\t\t\t\teditor.dom.setAttrib(target, RESIZE_BAR_ROW_DATA_INITIAL_TOP_ATTRIBUTE, initialTop);\n\t\t\t\tsetupRowDrag(target);\n\t\t\t} else {\n\t\t\t\tclearBars();\n\t\t\t}\n\t\t}\n\n\t\teditor.on('init', function() {\n\t\t\t// Needs to be like this for inline mode, editor.on does not bind to elements in the document body otherwise\n\t\t\teditor.dom.bind(getBody(), 'mousedown', mouseDownHandler);\n\t\t});\n\n\t\t// If we're updating the table width via the old mechanic, we need to update the constituent cells' widths/heights too.\n\t\teditor.on('ObjectResized', function(e) {\n\t\t\tvar table = e.target;\n\t\t\tif (table.nodeName === 'TABLE') {\n\t\t\t\tvar newCellSizes = [];\n\t\t\t\tTools.each(table.rows, function(row) {\n\t\t\t\t\tTools.each(row.cells, function(cell) {\n\t\t\t\t\t\tvar width = editor.dom.getStyle(cell, 'width', true);\n\t\t\t\t\t\tnewCellSizes.push({\n\t\t\t\t\t\t\tcell: cell,\n\t\t\t\t\t\t\twidth: width\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tTools.each(newCellSizes, function(newCellSize) {\n\t\t\t\t\teditor.dom.setStyle(newCellSize.cell, 'width', newCellSize.width);\n\t\t\t\t\teditor.dom.setAttrib(newCellSize.cell, 'width', null);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\teditor.on('mouseover', function(e) {\n\t\t\tif (!dragging) {\n\t\t\t\tvar tableElement = editor.dom.getParent(e.target, 'table');\n\n\t\t\t\tif (e.target.nodeName === 'TABLE' || tableElement) {\n\t\t\t\t\thoverTable = tableElement;\n\t\t\t\t\trefreshBars(tableElement);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// Prevents the user from moving the caret inside the resize bars on Chrome\n\t\t// Only does it on arrow keys since clearBars might be an epxensive operation\n\t\t// since it's querying the DOM\n\t\teditor.on('keydown', function(e) {\n\t\t\tswitch (e.keyCode) {\n\t\t\t\tcase VK.LEFT:\n\t\t\t\tcase VK.RIGHT:\n\t\t\t\tcase VK.UP:\n\t\t\t\tcase VK.DOWN:\n\t\t\t\t\tclearBars();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\n\t\teditor.on('remove', function() {\n\t\t\tclearBars();\n\t\t\teditor.dom.unbind(getBody(), 'mousedown', mouseDownHandler);\n\t\t});\n\n\t\treturn {\n\t\t\tadjustWidth: adjustWidth,\n\t\t\tadjustHeight: adjustHeight,\n\t\t\tclearBars: clearBars,\n\t\t\tdrawBars: drawBars,\n\t\t\tdetermineDeltas: determineDeltas,\n\t\t\tgetTableGrid: getTableGrid,\n\t\t\tgetTableDetails: getTableDetails,\n\t\t\tgetWidths: getWidths,\n\t\t\tgetPixelHeights: getPixelHeights,\n\t\t\tisPercentageBasedSize: isPercentageBasedSize,\n\t\t\tisPixelBasedSize: isPixelBasedSize,\n\t\t\trecalculateWidths: recalculateWidths,\n\t\t\trecalculateCellHeights: recalculateCellHeights,\n\t\t\trecalculateRowHeights: recalculateRowHeights\n\t\t};\n\t};\n});\n\n// Included from: js/tinymce/plugins/table/classes/Plugin.js\n\n/**\n * Plugin.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class contains all core logic for the table plugin.\n *\n * @class tinymce.tableplugin.Plugin\n * @private\n */\ndefine(\"tinymce/tableplugin/Plugin\", [\n\t\"tinymce/tableplugin/TableGrid\",\n\t\"tinymce/tableplugin/Quirks\",\n\t\"tinymce/tableplugin/CellSelection\",\n\t\"tinymce/tableplugin/Dialogs\",\n\t\"tinymce/tableplugin/ResizeBars\",\n\t\"tinymce/util/Tools\",\n\t\"tinymce/dom/TreeWalker\",\n\t\"tinymce/Env\",\n\t\"tinymce/PluginManager\"\n], function(TableGrid, Quirks, CellSelection, Dialogs, ResizeBars, Tools, TreeWalker, Env, PluginManager) {\n\tvar each = Tools.each;\n\n\tfunction Plugin(editor) {\n\t\tvar clipboardRows, self = this, dialogs = new Dialogs(editor), resizeBars;\n\n\t\tif (editor.settings.object_resizing && editor.settings.table_resize_bars !== false &&\n\t\t\t(editor.settings.object_resizing === true || editor.settings.object_resizing === 'table')) {\n\t\t\tresizeBars = ResizeBars(editor);\n\t\t}\n\n\t\tfunction cmd(command) {\n\t\t\treturn function() {\n\t\t\t\teditor.execCommand(command);\n\t\t\t};\n\t\t}\n\n\t\tfunction insertTable(cols, rows) {\n\t\t\tvar y, x, html, tableElm;\n\n\t\t\thtml = '
    text|text2

    text|text2

    ' + padd + '
    ';\n\n\t\t\tfor (y = 0; y < rows; y++) {\n\t\t\t\thtml += '';\n\n\t\t\t\tfor (x = 0; x < cols; x++) {\n\t\t\t\t\thtml += '';\n\t\t\t\t}\n\n\t\t\t\thtml += '';\n\t\t\t}\n\n\t\t\thtml += '
    ' + (Env.ie && Env.ie < 10 ? ' ' : '
    ') + '
    ';\n\n\t\t\teditor.undoManager.transact(function() {\n\t\t\t\teditor.insertContent(html);\n\n\t\t\t\ttableElm = editor.dom.get('__mce');\n\t\t\t\teditor.dom.setAttrib(tableElm, 'id', null);\n\n\t\t\t\teditor.$('tr', tableElm).each(function(index, row) {\n\t\t\t\t\teditor.fire('newrow', {\n\t\t\t\t\t\tnode: row\n\t\t\t\t\t});\n\n\t\t\t\t\teditor.$('th,td', row).each(function(index, cell) {\n\t\t\t\t\t\teditor.fire('newcell', {\n\t\t\t\t\t\t\tnode: cell\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\teditor.dom.setAttribs(tableElm, editor.settings.table_default_attributes || {});\n\t\t\t\teditor.dom.setStyles(tableElm, editor.settings.table_default_styles || {});\n\t\t\t});\n\n\t\t\treturn tableElm;\n\t\t}\n\n\t\tfunction handleDisabledState(ctrl, selector, sameParts) {\n\t\t\tfunction bindStateListener() {\n\t\t\t\tvar selectedElm, selectedCells, parts = {}, sum = 0, state;\n\n\t\t\t\tselectedCells = editor.dom.select('td[data-mce-selected],th[data-mce-selected]');\n\t\t\t\tselectedElm = selectedCells[0];\n\t\t\t\tif (!selectedElm) {\n\t\t\t\t\tselectedElm = editor.selection.getStart();\n\t\t\t\t}\n\n\t\t\t\t// Make sure that we don't have a selection inside thead and tbody at the same time\n\t\t\t\tif (sameParts && selectedCells.length > 0) {\n\t\t\t\t\teach(selectedCells, function(cell) {\n\t\t\t\t\t\treturn parts[cell.parentNode.parentNode.nodeName] = 1;\n\t\t\t\t\t});\n\n\t\t\t\t\teach(parts, function(value) {\n\t\t\t\t\t\tsum += value;\n\t\t\t\t\t});\n\n\t\t\t\t\tstate = sum !== 1;\n\t\t\t\t} else {\n\t\t\t\t\tstate = !editor.dom.getParent(selectedElm, selector);\n\t\t\t\t}\n\n\t\t\t\tctrl.disabled(state);\n\n\t\t\t\teditor.selection.selectorChanged(selector, function(state) {\n\t\t\t\t\tctrl.disabled(!state);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (editor.initialized) {\n\t\t\t\tbindStateListener();\n\t\t\t} else {\n\t\t\t\teditor.on('init', bindStateListener);\n\t\t\t}\n\t\t}\n\n\t\tfunction postRender() {\n\t\t\t/*jshint validthis:true*/\n\t\t\thandleDisabledState(this, 'table');\n\t\t}\n\n\t\tfunction postRenderCell() {\n\t\t\t/*jshint validthis:true*/\n\t\t\thandleDisabledState(this, 'td,th');\n\t\t}\n\n\t\tfunction postRenderMergeCell() {\n\t\t\t/*jshint validthis:true*/\n\t\t\thandleDisabledState(this, 'td,th', true);\n\t\t}\n\n\t\tfunction generateTableGrid() {\n\t\t\tvar html = '';\n\n\t\t\thtml = '';\n\n\t\t\tfor (var y = 0; y < 10; y++) {\n\t\t\t\thtml += '';\n\n\t\t\t\tfor (var x = 0; x < 10; x++) {\n\t\t\t\t\thtml += '';\n\t\t\t\t}\n\n\t\t\t\thtml += '';\n\t\t\t}\n\n\t\t\thtml += '
    ';\n\n\t\t\thtml += '
    1 x 1
    ';\n\n\t\t\treturn html;\n\t\t}\n\n\t\tfunction selectGrid(tx, ty, control) {\n\t\t\tvar table = control.getEl().getElementsByTagName('table')[0];\n\t\t\tvar x, y, focusCell, cell, active;\n\t\t\tvar rtl = control.isRtl() || control.parent().rel == 'tl-tr';\n\n\t\t\ttable.nextSibling.innerHTML = (tx + 1) + ' x ' + (ty + 1);\n\n\t\t\tif (rtl) {\n\t\t\t\ttx = 9 - tx;\n\t\t\t}\n\n\t\t\tfor (y = 0; y < 10; y++) {\n\t\t\t\tfor (x = 0; x < 10; x++) {\n\t\t\t\t\tcell = table.rows[y].childNodes[x].firstChild;\n\t\t\t\t\tactive = (rtl ? x >= tx : x <= tx) && y <= ty;\n\n\t\t\t\t\teditor.dom.toggleClass(cell, 'mce-active', active);\n\n\t\t\t\t\tif (active) {\n\t\t\t\t\t\tfocusCell = cell;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn focusCell.parentNode;\n\t\t}\n\n\t\tif (editor.settings.table_grid === false) {\n\t\t\teditor.addMenuItem('inserttable', {\n\t\t\t\ttext: 'Table',\n\t\t\t\ticon: 'table',\n\t\t\t\tcontext: 'table',\n\t\t\t\tonclick: dialogs.table\n\t\t\t});\n\t\t} else {\n\t\t\teditor.addMenuItem('inserttable', {\n\t\t\t\ttext: 'Table',\n\t\t\t\ticon: 'table',\n\t\t\t\tcontext: 'table',\n\t\t\t\tariaHideMenu: true,\n\t\t\t\tonclick: function(e) {\n\t\t\t\t\tif (e.aria) {\n\t\t\t\t\t\tthis.parent().hideAll();\n\t\t\t\t\t\te.stopImmediatePropagation();\n\t\t\t\t\t\tdialogs.table();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tonshow: function() {\n\t\t\t\t\tselectGrid(0, 0, this.menu.items()[0]);\n\t\t\t\t},\n\t\t\t\tonhide: function() {\n\t\t\t\t\tvar elements = this.menu.items()[0].getEl().getElementsByTagName('a');\n\t\t\t\t\teditor.dom.removeClass(elements, 'mce-active');\n\t\t\t\t\teditor.dom.addClass(elements[0], 'mce-active');\n\t\t\t\t},\n\t\t\t\tmenu: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'container',\n\t\t\t\t\t\thtml: generateTableGrid(),\n\n\t\t\t\t\t\tonPostRender: function() {\n\t\t\t\t\t\t\tthis.lastX = this.lastY = 0;\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tonmousemove: function(e) {\n\t\t\t\t\t\t\tvar target = e.target, x, y;\n\n\t\t\t\t\t\t\tif (target.tagName.toUpperCase() == 'A') {\n\t\t\t\t\t\t\t\tx = parseInt(target.getAttribute('data-mce-x'), 10);\n\t\t\t\t\t\t\t\ty = parseInt(target.getAttribute('data-mce-y'), 10);\n\n\t\t\t\t\t\t\t\tif (this.isRtl() || this.parent().rel == 'tl-tr') {\n\t\t\t\t\t\t\t\t\tx = 9 - x;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (x !== this.lastX || y !== this.lastY) {\n\t\t\t\t\t\t\t\t\tselectGrid(x, y, e.control);\n\n\t\t\t\t\t\t\t\t\tthis.lastX = x;\n\t\t\t\t\t\t\t\t\tthis.lastY = y;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tonclick: function(e) {\n\t\t\t\t\t\t\tvar self = this;\n\n\t\t\t\t\t\t\tif (e.target.tagName.toUpperCase() == 'A') {\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\tself.parent().cancel();\n\n\t\t\t\t\t\t\t\teditor.undoManager.transact(function() {\n\t\t\t\t\t\t\t\t\tinsertTable(self.lastX + 1, self.lastY + 1);\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\teditor.addVisual();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t});\n\t\t}\n\n\t\teditor.addMenuItem('tableprops', {\n\t\t\ttext: 'Table properties',\n\t\t\tcontext: 'table',\n\t\t\tonPostRender: postRender,\n\t\t\tonclick: dialogs.tableProps\n\t\t});\n\n\t\teditor.addMenuItem('deletetable', {\n\t\t\ttext: 'Delete table',\n\t\t\tcontext: 'table',\n\t\t\tonPostRender: postRender,\n\t\t\tcmd: 'mceTableDelete'\n\t\t});\n\n\t\teditor.addMenuItem('cell', {\n\t\t\tseparator: 'before',\n\t\t\ttext: 'Cell',\n\t\t\tcontext: 'table',\n\t\t\tmenu: [\n\t\t\t\t{text: 'Cell properties', onclick: cmd('mceTableCellProps'), onPostRender: postRenderCell},\n\t\t\t\t{text: 'Merge cells', onclick: cmd('mceTableMergeCells'), onPostRender: postRenderMergeCell},\n\t\t\t\t{text: 'Split cell', onclick: cmd('mceTableSplitCells'), onPostRender: postRenderCell}\n\t\t\t]\n\t\t});\n\n\t\teditor.addMenuItem('row', {\n\t\t\ttext: 'Row',\n\t\t\tcontext: 'table',\n\t\t\tmenu: [\n\t\t\t\t{text: 'Insert row before', onclick: cmd('mceTableInsertRowBefore'), onPostRender: postRenderCell},\n\t\t\t\t{text: 'Insert row after', onclick: cmd('mceTableInsertRowAfter'), onPostRender: postRenderCell},\n\t\t\t\t{text: 'Delete row', onclick: cmd('mceTableDeleteRow'), onPostRender: postRenderCell},\n\t\t\t\t{text: 'Row properties', onclick: cmd('mceTableRowProps'), onPostRender: postRenderCell},\n\t\t\t\t{text: '-'},\n\t\t\t\t{text: 'Cut row', onclick: cmd('mceTableCutRow'), onPostRender: postRenderCell},\n\t\t\t\t{text: 'Copy row', onclick: cmd('mceTableCopyRow'), onPostRender: postRenderCell},\n\t\t\t\t{text: 'Paste row before', onclick: cmd('mceTablePasteRowBefore'), onPostRender: postRenderCell},\n\t\t\t\t{text: 'Paste row after', onclick: cmd('mceTablePasteRowAfter'), onPostRender: postRenderCell}\n\t\t\t]\n\t\t});\n\n\t\teditor.addMenuItem('column', {\n\t\t\ttext: 'Column',\n\t\t\tcontext: 'table',\n\t\t\tmenu: [\n\t\t\t\t{text: 'Insert column before', onclick: cmd('mceTableInsertColBefore'), onPostRender: postRenderCell},\n\t\t\t\t{text: 'Insert column after', onclick: cmd('mceTableInsertColAfter'), onPostRender: postRenderCell},\n\t\t\t\t{text: 'Delete column', onclick: cmd('mceTableDeleteCol'), onPostRender: postRenderCell}\n\t\t\t]\n\t\t});\n\n\t\tvar menuItems = [];\n\t\teach(\"inserttable tableprops deletetable | cell row column\".split(' '), function(name) {\n\t\t\tif (name == '|') {\n\t\t\t\tmenuItems.push({text: '-'});\n\t\t\t} else {\n\t\t\t\tmenuItems.push(editor.menuItems[name]);\n\t\t\t}\n\t\t});\n\n\t\teditor.addButton(\"table\", {\n\t\t\ttype: \"menubutton\",\n\t\t\ttitle: \"Table\",\n\t\t\tmenu: menuItems\n\t\t});\n\n\t\t// Select whole table is a table border is clicked\n\t\tif (!Env.isIE) {\n\t\t\teditor.on('click', function(e) {\n\t\t\t\te = e.target;\n\n\t\t\t\tif (e.nodeName === 'TABLE') {\n\t\t\t\t\teditor.selection.select(e);\n\t\t\t\t\teditor.nodeChanged();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tself.quirks = new Quirks(editor);\n\n\t\teditor.on('Init', function() {\n\t\t\tself.cellSelection = new CellSelection(editor, function (selecting) {\n\t\t\t\tif (selecting && resizeBars) {\n\t\t\t\t\tresizeBars.clearBars();\n\t\t\t\t}\n\t\t\t});\n\t\t\tself.resizeBars = resizeBars;\n\t\t});\n\n\t\teditor.on('PreInit', function() {\n\t\t\t// Remove internal data attributes\n\t\t\teditor.serializer.addAttributeFilter(\n\t\t\t\t'data-mce-cell-padding,data-mce-border,data-mce-border-color',\n\t\t\t\tfunction(nodes, name) {\n\n\t\t\t\t\tvar i = nodes.length;\n\n\t\t\t\t\twhile (i--) {\n\t\t\t\t\t\tnodes[i].attr(name, null);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t});\n\n\t\t// Register action commands\n\t\teach({\n\t\t\tmceTableSplitCells: function(grid) {\n\t\t\t\tgrid.split();\n\t\t\t},\n\n\t\t\tmceTableMergeCells: function(grid) {\n\t\t\t\tvar cell;\n\n\t\t\t\tcell = editor.dom.getParent(editor.selection.getStart(), 'th,td');\n\n\t\t\t\tif (!editor.dom.select('td[data-mce-selected],th[data-mce-selected]').length) {\n\t\t\t\t\tdialogs.merge(grid, cell);\n\t\t\t\t} else {\n\t\t\t\t\tgrid.merge();\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tmceTableInsertRowBefore: function(grid) {\n\t\t\t\tgrid.insertRows(true);\n\t\t\t},\n\n\t\t\tmceTableInsertRowAfter: function(grid) {\n\t\t\t\tgrid.insertRows();\n\t\t\t},\n\n\t\t\tmceTableInsertColBefore: function(grid) {\n\t\t\t\tgrid.insertCols(true);\n\t\t\t},\n\n\t\t\tmceTableInsertColAfter: function(grid) {\n\t\t\t\tgrid.insertCols();\n\t\t\t},\n\n\t\t\tmceTableDeleteCol: function(grid) {\n\t\t\t\tgrid.deleteCols();\n\t\t\t},\n\n\t\t\tmceTableDeleteRow: function(grid) {\n\t\t\t\tgrid.deleteRows();\n\t\t\t},\n\n\t\t\tmceTableCutRow: function(grid) {\n\t\t\t\tclipboardRows = grid.cutRows();\n\t\t\t},\n\n\t\t\tmceTableCopyRow: function(grid) {\n\t\t\t\tclipboardRows = grid.copyRows();\n\t\t\t},\n\n\t\t\tmceTablePasteRowBefore: function(grid) {\n\t\t\t\tgrid.pasteRows(clipboardRows, true);\n\t\t\t},\n\n\t\t\tmceTablePasteRowAfter: function(grid) {\n\t\t\t\tgrid.pasteRows(clipboardRows);\n\t\t\t},\n\n\t\t\tmceSplitColsBefore: function(grid) {\n\t\t\t\tgrid.splitCols(true);\n\t\t\t},\n\n\t\t\tmceSplitColsAfter: function(grid) {\n\t\t\t\tgrid.splitCols(false);\n\t\t\t},\n\n\t\t\tmceTableDelete: function(grid) {\n\t\t\t\tif (resizeBars) {\n\t\t\t\t\tresizeBars.clearBars();\n\t\t\t\t}\n\t\t\t\tgrid.deleteTable();\n\t\t\t}\n\t\t}, function(func, name) {\n\t\t\teditor.addCommand(name, function() {\n\t\t\t\tvar grid = new TableGrid(editor);\n\n\t\t\t\tif (grid) {\n\t\t\t\t\tfunc(grid);\n\t\t\t\t\teditor.execCommand('mceRepaint');\n\t\t\t\t\tself.cellSelection.clear();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\t// Register dialog commands\n\t\teach({\n\t\t\tmceInsertTable: dialogs.table,\n\t\t\tmceTableProps: function() {\n\t\t\t\tdialogs.table(true);\n\t\t\t},\n\t\t\tmceTableRowProps: dialogs.row,\n\t\t\tmceTableCellProps: dialogs.cell\n\t\t}, function(func, name) {\n\t\t\teditor.addCommand(name, function(ui, val) {\n\t\t\t\tfunc(val);\n\t\t\t});\n\t\t});\n\n\t\tfunction addButtons() {\n\t\t\teditor.addButton('tableprops', {\n\t\t\t\ttitle: 'Table properties',\n\t\t\t\tonclick: dialogs.tableProps,\n\t\t\t\ticon: 'table'\n\t\t\t});\n\n\t\t\teditor.addButton('tabledelete', {\n\t\t\t\ttitle: 'Delete table',\n\t\t\t\tonclick: cmd('mceTableDelete')\n\t\t\t});\n\n\t\t\teditor.addButton('tablecellprops', {\n\t\t\t\ttitle: 'Cell properties',\n\t\t\t\tonclick: cmd('mceTableCellProps')\n\t\t\t});\n\n\t\t\teditor.addButton('tablemergecells', {\n\t\t\t\ttitle: 'Merge cells',\n\t\t\t\tonclick: cmd('mceTableMergeCells')\n\t\t\t});\n\n\t\t\teditor.addButton('tablesplitcells', {\n\t\t\t\ttitle: 'Split cell',\n\t\t\t\tonclick: cmd('mceTableSplitCells')\n\t\t\t});\n\n\t\t\teditor.addButton('tableinsertrowbefore', {\n\t\t\t\ttitle: 'Insert row before',\n\t\t\t\tonclick: cmd('mceTableInsertRowBefore')\n\t\t\t});\n\n\t\t\teditor.addButton('tableinsertrowafter', {\n\t\t\t\ttitle: 'Insert row after',\n\t\t\t\tonclick: cmd('mceTableInsertRowAfter')\n\t\t\t});\n\n\t\t\teditor.addButton('tabledeleterow', {\n\t\t\t\ttitle: 'Delete row',\n\t\t\t\tonclick: cmd('mceTableDeleteRow')\n\t\t\t});\n\n\t\t\teditor.addButton('tablerowprops', {\n\t\t\t\ttitle: 'Row properties',\n\t\t\t\tonclick: cmd('mceTableRowProps')\n\t\t\t});\n\n\t\t\teditor.addButton('tablecutrow', {\n\t\t\t\ttitle: 'Cut row',\n\t\t\t\tonclick: cmd('mceTableCutRow')\n\t\t\t});\n\n\t\t\teditor.addButton('tablecopyrow', {\n\t\t\t\ttitle: 'Copy row',\n\t\t\t\tonclick: cmd('mceTableCopyRow')\n\t\t\t});\n\n\t\t\teditor.addButton('tablepasterowbefore', {\n\t\t\t\ttitle: 'Paste row before',\n\t\t\t\tonclick: cmd('mceTablePasteRowBefore')\n\t\t\t});\n\n\t\t\teditor.addButton('tablepasterowafter', {\n\t\t\t\ttitle: 'Paste row after',\n\t\t\t\tonclick: cmd('mceTablePasteRowAfter')\n\t\t\t});\n\n\t\t\teditor.addButton('tableinsertcolbefore', {\n\t\t\t\ttitle: 'Insert column before',\n\t\t\t\tonclick: cmd('mceTableInsertColBefore')\n\t\t\t});\n\n\t\t\teditor.addButton('tableinsertcolafter', {\n\t\t\t\ttitle: 'Insert column after',\n\t\t\t\tonclick: cmd('mceTableInsertColAfter')\n\t\t\t});\n\n\t\t\teditor.addButton('tabledeletecol', {\n\t\t\t\ttitle: 'Delete column',\n\t\t\t\tonclick: cmd('mceTableDeleteCol')\n\t\t\t});\n\n\t\t}\n\n\t\tfunction isTable(table) {\n\n\t\t\tvar selectorMatched = editor.dom.is(table, 'table') && editor.getBody().contains(table);\n\n\t\t\treturn selectorMatched;\n\t\t}\n\n\t\tfunction addToolbars() {\n\t\t\tvar toolbarItems = editor.settings.table_toolbar;\n\n\t\t\tif (toolbarItems === '' || toolbarItems === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!toolbarItems) {\n\t\t\t\ttoolbarItems = 'tableprops tabledelete | ' +\n\t\t\t\t\t'tableinsertrowbefore tableinsertrowafter tabledeleterow | ' +\n\t\t\t\t\t'tableinsertcolbefore tableinsertcolafter tabledeletecol';\n\t\t\t}\n\n\t\t\teditor.addContextToolbar(\n\t\t\t\tisTable,\n\t\t\t\ttoolbarItems\n\t\t\t);\n\t\t}\n\n\t\tfunction getClipboardRows() {\n\t\t\treturn clipboardRows;\n\t\t}\n\n\t\tfunction setClipboardRows(rows) {\n\t\t\tclipboardRows = rows;\n\t\t}\n\n\t\taddButtons();\n\t\taddToolbars();\n\n\t\t// Enable tab key cell navigation\n\t\tif (editor.settings.table_tab_navigation !== false) {\n\t\t\teditor.on('keydown', function(e) {\n\t\t\t\tvar cellElm, grid, delta;\n\n\t\t\t\tif (e.keyCode == 9) {\n\t\t\t\t\tcellElm = editor.dom.getParent(editor.selection.getStart(), 'th,td');\n\n\t\t\t\t\tif (cellElm) {\n\t\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t\tgrid = new TableGrid(editor);\n\t\t\t\t\t\tdelta = e.shiftKey ? -1 : 1;\n\n\t\t\t\t\t\teditor.undoManager.transact(function() {\n\t\t\t\t\t\t\tif (!grid.moveRelIdx(cellElm, delta) && delta > 0) {\n\t\t\t\t\t\t\t\tgrid.insertRow();\n\t\t\t\t\t\t\t\tgrid.refresh();\n\t\t\t\t\t\t\t\tgrid.moveRelIdx(cellElm, delta);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tself.insertTable = insertTable;\n\t\tself.setClipboardRows = setClipboardRows;\n\t\tself.getClipboardRows = getClipboardRows;\n\t}\n\n\tPluginManager.add('table', Plugin);\n});\n})(window);;\r\n/**\n * plugin.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/*global tinymce:true */\n\ntinymce.PluginManager.add('code', function(editor) {\n\tfunction showDialog() {\n\t\tvar win = editor.windowManager.open({\n\t\t\ttitle: \"Source code\",\n\t\t\tbody: {\n\t\t\t\ttype: 'textbox',\n\t\t\t\tname: 'code',\n\t\t\t\tmultiline: true,\n\t\t\t\tminWidth: editor.getParam(\"code_dialog_width\", 600),\n\t\t\t\tminHeight: editor.getParam(\"code_dialog_height\", Math.min(tinymce.DOM.getViewPort().h - 200, 500)),\n\t\t\t\tspellcheck: false,\n\t\t\t\tstyle: 'direction: ltr; text-align: left'\n\t\t\t},\n\t\t\tonSubmit: function(e) {\n\t\t\t\t// We get a lovely \"Wrong document\" error in IE 11 if we\n\t\t\t\t// don't move the focus to the editor before creating an undo\n\t\t\t\t// transation since it tries to make a bookmark for the current selection\n\t\t\t\teditor.focus();\n\n\t\t\t\teditor.undoManager.transact(function() {\n\t\t\t\t\teditor.setContent(e.data.code);\n\t\t\t\t});\n\n\t\t\t\teditor.selection.setCursorLocation();\n\t\t\t\teditor.nodeChanged();\n\t\t\t}\n\t\t});\n\n\t\t// Gecko has a major performance issue with textarea\n\t\t// contents so we need to set it when all reflows are done\n\t\twin.find('#code').value(editor.getContent({source_view: true}));\n\t}\n\n\teditor.addCommand(\"mceCodeEditor\", showDialog);\n\n\teditor.addButton('code', {\n\t\ticon: 'code',\n\t\ttooltip: 'Source code',\n\t\tonclick: showDialog\n\t});\n\n\teditor.addMenuItem('code', {\n\t\ticon: 'code',\n\t\ttext: 'Source code',\n\t\tcontext: 'tools',\n\t\tonclick: showDialog\n\t});\n});;\r\n/**\n * Compiled inline version. (Library mode)\n */\n\n/*jshint smarttabs:true, undef:true, latedef:true, curly:true, bitwise:true, camelcase:true */\n/*globals $code */\n\n(function(exports, undefined) {\n\t\"use strict\";\n\n\tvar modules = {};\n\n\tfunction require(ids, callback) {\n\t\tvar module, defs = [];\n\n\t\tfor (var i = 0; i < ids.length; ++i) {\n\t\t\tmodule = modules[ids[i]] || resolve(ids[i]);\n\t\t\tif (!module) {\n\t\t\t\tthrow 'module definition dependecy not found: ' + ids[i];\n\t\t\t}\n\n\t\t\tdefs.push(module);\n\t\t}\n\n\t\tcallback.apply(null, defs);\n\t}\n\n\tfunction define(id, dependencies, definition) {\n\t\tif (typeof id !== 'string') {\n\t\t\tthrow 'invalid module definition, module id must be defined and be a string';\n\t\t}\n\n\t\tif (dependencies === undefined) {\n\t\t\tthrow 'invalid module definition, dependencies must be specified';\n\t\t}\n\n\t\tif (definition === undefined) {\n\t\t\tthrow 'invalid module definition, definition function must be specified';\n\t\t}\n\n\t\trequire(dependencies, function() {\n\t\t\tmodules[id] = definition.apply(null, arguments);\n\t\t});\n\t}\n\n\tfunction defined(id) {\n\t\treturn !!modules[id];\n\t}\n\n\tfunction resolve(id) {\n\t\tvar target = exports;\n\t\tvar fragments = id.split(/[.\\/]/);\n\n\t\tfor (var fi = 0; fi < fragments.length; ++fi) {\n\t\t\tif (!target[fragments[fi]]) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttarget = target[fragments[fi]];\n\t\t}\n\n\t\treturn target;\n\t}\n\n\tfunction expose(ids) {\n\t\tvar i, target, id, fragments, privateModules;\n\n\t\tfor (i = 0; i < ids.length; i++) {\n\t\t\ttarget = exports;\n\t\t\tid = ids[i];\n\t\t\tfragments = id.split(/[.\\/]/);\n\n\t\t\tfor (var fi = 0; fi < fragments.length - 1; ++fi) {\n\t\t\t\tif (target[fragments[fi]] === undefined) {\n\t\t\t\t\ttarget[fragments[fi]] = {};\n\t\t\t\t}\n\n\t\t\t\ttarget = target[fragments[fi]];\n\t\t\t}\n\n\t\t\ttarget[fragments[fragments.length - 1]] = modules[id];\n\t\t}\n\n\t\t// Expose private modules for unit tests\n\t\tif (exports.AMDLC_TESTS) {\n\t\t\tprivateModules = exports.privateModules || {};\n\n\t\t\tfor (id in modules) {\n\t\t\t\tprivateModules[id] = modules[id];\n\t\t\t}\n\n\t\t\tfor (i = 0; i < ids.length; i++) {\n\t\t\t\tdelete privateModules[ids[i]];\n\t\t\t}\n\n\t\t\texports.privateModules = privateModules;\n\t\t}\n\t}\n\n// Included from: js/tinymce/plugins/paste/classes/Utils.js\n\n/**\n * Utils.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class contails various utility functions for the paste plugin.\n *\n * @class tinymce.pasteplugin.Utils\n */\ndefine(\"tinymce/pasteplugin/Utils\", [\n\t\"tinymce/util/Tools\",\n\t\"tinymce/html/DomParser\",\n\t\"tinymce/html/Schema\"\n], function(Tools, DomParser, Schema) {\n\tfunction filter(content, items) {\n\t\tTools.each(items, function(v) {\n\t\t\tif (v.constructor == RegExp) {\n\t\t\t\tcontent = content.replace(v, '');\n\t\t\t} else {\n\t\t\t\tcontent = content.replace(v[0], v[1]);\n\t\t\t}\n\t\t});\n\n\t\treturn content;\n\t}\n\n\t/**\n\t * Gets the innerText of the specified element. It will handle edge cases\n\t * and works better than textContent on Gecko.\n\t *\n\t * @param {String} html HTML string to get text from.\n\t * @return {String} String of text with line feeds.\n\t */\n\tfunction innerText(html) {\n\t\tvar schema = new Schema(), domParser = new DomParser({}, schema), text = '';\n\t\tvar shortEndedElements = schema.getShortEndedElements();\n\t\tvar ignoreElements = Tools.makeMap('script noscript style textarea video audio iframe object', ' ');\n\t\tvar blockElements = schema.getBlockElements();\n\n\t\tfunction walk(node) {\n\t\t\tvar name = node.name, currentNode = node;\n\n\t\t\tif (name === 'br') {\n\t\t\t\ttext += '\\n';\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// img/input/hr\n\t\t\tif (shortEndedElements[name]) {\n\t\t\t\ttext += ' ';\n\t\t\t}\n\n\t\t\t// Ingore script, video contents\n\t\t\tif (ignoreElements[name]) {\n\t\t\t\ttext += ' ';\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (node.type == 3) {\n\t\t\t\ttext += node.value;\n\t\t\t}\n\n\t\t\t// Walk all children\n\t\t\tif (!node.shortEnded) {\n\t\t\t\tif ((node = node.firstChild)) {\n\t\t\t\t\tdo {\n\t\t\t\t\t\twalk(node);\n\t\t\t\t\t} while ((node = node.next));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add \\n or \\n\\n for blocks or P\n\t\t\tif (blockElements[name] && currentNode.next) {\n\t\t\t\ttext += '\\n';\n\n\t\t\t\tif (name == 'p') {\n\t\t\t\t\ttext += '\\n';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\thtml = filter(html, [\n\t\t\t//g // Conditional comments\n\t\t]);\n\n\t\twalk(domParser.parse(html));\n\n\t\treturn text;\n\t}\n\n\tvar getInnerFragment = function (html) {\n\t\tvar startFragment = '';\n\t\tvar endFragment = '';\n\t\tvar startPos = html.indexOf(startFragment);\n\t\tif (startPos !== -1) {\n\t\t\tvar fragmentHtml = html.substr(startPos + startFragment.length);\n\t\t\tvar endPos = fragmentHtml.indexOf(endFragment);\n\t\t\tif (endPos !== -1 && /^<\\/(p|h[1-6]|li)>/i.test(fragmentHtml.substr(endPos + endFragment.length, 5))) {\n\t\t\t\treturn fragmentHtml.substr(0, endPos);\n\t\t\t}\n\t\t}\n\n\t\treturn html;\n\t};\n\n\t/**\n\t * Trims the specified HTML by removing all WebKit fragments, all elements wrapping the body trailing BR elements etc.\n\t *\n\t * @param {String} html Html string to trim contents on.\n\t * @return {String} Html contents that got trimmed.\n\t */\n\tfunction trimHtml(html) {\n\t\tfunction trimSpaces(all, s1, s2) {\n\t\t\t// WebKit   meant to preserve multiple spaces but instead inserted around all inline tags,\n\t\t\t// including the spans with inline styles created on paste\n\t\t\tif (!s1 && !s2) {\n\t\t\t\treturn ' ';\n\t\t\t}\n\n\t\t\treturn '\\u00a0';\n\t\t}\n\n\t\thtml = filter(getInnerFragment(html), [\n\t\t\t/^[\\s\\S]*]*>\\s*|\\s*<\\/body[^>]*>[\\s\\S]*$/ig, // Remove anything but the contents within the BODY element\n\t\t\t/|/g, // Inner fragments (tables from excel on mac)\n\t\t\t[/( ?)\\u00a0<\\/span>( ?)/g, trimSpaces],\n\t\t\t/
    /g,\n\t\t\t/
    $/i // Trailing BR elements\n\t\t]);\n\n\t\treturn html;\n\t}\n\n\t// TODO: Should be in some global class\n\tfunction createIdGenerator(prefix) {\n\t\tvar count = 0;\n\n\t\treturn function() {\n\t\t\treturn prefix + (count++);\n\t\t};\n\t}\n\n\tvar isMsEdge = function () {\n\t\treturn navigator.userAgent.indexOf(' Edge/') !== -1;\n\t};\n\n\treturn {\n\t\tfilter: filter,\n\t\tinnerText: innerText,\n\t\ttrimHtml: trimHtml,\n\t\tcreateIdGenerator: createIdGenerator,\n\t\tisMsEdge: isMsEdge\n\t};\n});\n\n// Included from: js/tinymce/plugins/paste/classes/SmartPaste.js\n\n/**\n * SmartPaste.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2016 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * Tries to be smart depending on what the user pastes if it looks like an url\n * it will make a link out of the current selection. If it's an image url that looks\n * like an image it will check if it's an image and insert it as an image.\n *\n * @class tinymce.pasteplugin.SmartPaste\n * @private\n */\ndefine(\"tinymce/pasteplugin/SmartPaste\", [\n\t\"tinymce/util/Tools\"\n], function (Tools) {\n\tvar isAbsoluteUrl = function (url) {\n\t\treturn /^https?:\\/\\/[\\w\\?\\-\\/+=.&%@~#]+$/i.test(url);\n\t};\n\n\tvar isImageUrl = function (url) {\n\t\treturn isAbsoluteUrl(url) && /.(gif|jpe?g|png)$/.test(url);\n\t};\n\n\tvar createImage = function (editor, url, pasteHtml) {\n\t\teditor.undoManager.extra(function () {\n\t\t\tpasteHtml(editor, url);\n\t\t}, function () {\n\t\t\teditor.insertContent('');\n\t\t});\n\n\t\treturn true;\n\t};\n\n\tvar createLink = function (editor, url, pasteHtml) {\n\t\teditor.undoManager.extra(function () {\n\t\t\tpasteHtml(editor, url);\n\t\t}, function () {\n\t\t\teditor.execCommand('mceInsertLink', false, url);\n\t\t});\n\n\t\treturn true;\n\t};\n\n\tvar linkSelection = function (editor, html, pasteHtml) {\n\t\treturn editor.selection.isCollapsed() === false && isAbsoluteUrl(html) ? createLink(editor, html, pasteHtml) : false;\n\t};\n\n\tvar insertImage = function (editor, html, pasteHtml) {\n\t\treturn isImageUrl(html) ? createImage(editor, html, pasteHtml) : false;\n\t};\n\n\tvar pasteHtml = function (editor, html) {\n\t\teditor.insertContent(html, {\n\t\t\tmerge: editor.settings.paste_merge_formats !== false,\n\t\t\tpaste: true\n\t\t});\n\n\t\treturn true;\n\t};\n\n\tvar smartInsertContent = function (editor, html) {\n\t\tTools.each([\n\t\t\tlinkSelection,\n\t\t\tinsertImage,\n\t\t\tpasteHtml\n\t\t], function (action) {\n\t\t\treturn action(editor, html, pasteHtml) !== true;\n\t\t});\n\t};\n\n\tvar insertContent = function (editor, html) {\n\t\tif (editor.settings.smart_paste === false) {\n\t\t\tpasteHtml(editor, html);\n\t\t} else {\n\t\t\tsmartInsertContent(editor, html);\n\t\t}\n\t};\n\n\treturn {\n\t\tisImageUrl: isImageUrl,\n\t\tisAbsoluteUrl: isAbsoluteUrl,\n\t\tinsertContent: insertContent\n\t};\n});\n\n// Included from: js/tinymce/plugins/paste/classes/Clipboard.js\n\n/**\n * Clipboard.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class contains logic for getting HTML contents out of the clipboard.\n *\n * We need to make a lot of ugly hacks to get the contents out of the clipboard since\n * the W3C Clipboard API is broken in all browsers that have it: Gecko/WebKit/Blink.\n * We might rewrite this the way those API:s stabilize. Browsers doesn't handle pasting\n * from applications like Word the same way as it does when pasting into a contentEditable area\n * so we need to do lots of extra work to try to get to this clipboard data.\n *\n * Current implementation steps:\n * 1. On keydown with paste keys Ctrl+V or Shift+Insert create\n * a paste bin element and move focus to that element.\n * 2. Wait for the browser to fire a \"paste\" event and get the contents out of the paste bin.\n * 3. Check if the paste was successful if true, process the HTML.\n * (4). If the paste was unsuccessful use IE execCommand, Clipboard API, document.dataTransfer old WebKit API etc.\n *\n * @class tinymce.pasteplugin.Clipboard\n * @private\n */\ndefine(\"tinymce/pasteplugin/Clipboard\", [\n\t\"tinymce/Env\",\n\t\"tinymce/dom/RangeUtils\",\n\t\"tinymce/util/VK\",\n\t\"tinymce/util/Tools\",\n\t\"tinymce/pasteplugin/Utils\",\n\t\"tinymce/pasteplugin/SmartPaste\",\n\t\"tinymce/util/Delay\"\n], function(Env, RangeUtils, VK, Tools, Utils, SmartPaste, Delay) {\n\treturn function(editor) {\n\t\tvar self = this, pasteBinElm, lastRng, keyboardPasteTimeStamp = 0, draggingInternally = false;\n\t\tvar pasteBinDefaultContent = '%MCEPASTEBIN%', keyboardPastePlainTextState;\n\t\tvar mceInternalUrlPrefix = 'data:text/mce-internal,';\n\t\tvar uniqueId = Utils.createIdGenerator(\"mceclip\");\n\n\t\t/**\n\t\t * Pastes the specified HTML. This means that the HTML is filtered and then\n\t\t * inserted at the current selection in the editor. It will also fire paste events\n\t\t * for custom user filtering.\n\t\t *\n\t\t * @param {String} html HTML code to paste into the current selection.\n\t\t */\n\t\tfunction pasteHtml(html) {\n\t\t\tvar args, dom = editor.dom;\n\n\t\t\targs = editor.fire('BeforePastePreProcess', {content: html}); // Internal event used by Quirks\n\t\t\targs = editor.fire('PastePreProcess', args);\n\t\t\thtml = args.content;\n\n\t\t\tif (!args.isDefaultPrevented()) {\n\t\t\t\t// User has bound PastePostProcess events then we need to pass it through a DOM node\n\t\t\t\t// This is not ideal but we don't want to let the browser mess up the HTML for example\n\t\t\t\t// some browsers add   to P tags etc\n\t\t\t\tif (editor.hasEventListeners('PastePostProcess') && !args.isDefaultPrevented()) {\n\t\t\t\t\t// We need to attach the element to the DOM so Sizzle selectors work on the contents\n\t\t\t\t\tvar tempBody = dom.add(editor.getBody(), 'div', {style: 'display:none'}, html);\n\t\t\t\t\targs = editor.fire('PastePostProcess', {node: tempBody});\n\t\t\t\t\tdom.remove(tempBody);\n\t\t\t\t\thtml = args.node.innerHTML;\n\t\t\t\t}\n\n\t\t\t\tif (!args.isDefaultPrevented()) {\n\t\t\t\t\tSmartPaste.insertContent(editor, html);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Pastes the specified text. This means that the plain text is processed\n\t\t * and converted into BR and P elements. It will fire paste events for custom filtering.\n\t\t *\n\t\t * @param {String} text Text to paste as the current selection location.\n\t\t */\n\t\tfunction pasteText(text) {\n\t\t\ttext = editor.dom.encode(text).replace(/\\r\\n/g, '\\n');\n\n\t\t\tvar startBlock = editor.dom.getParent(editor.selection.getStart(), editor.dom.isBlock);\n\n\t\t\t// Create start block html for example

    \n\t\t\tvar forcedRootBlockName = editor.settings.forced_root_block;\n\t\t\tvar forcedRootBlockStartHtml;\n\t\t\tif (forcedRootBlockName) {\n\t\t\t\tforcedRootBlockStartHtml = editor.dom.createHTML(forcedRootBlockName, editor.settings.forced_root_block_attrs);\n\t\t\t\tforcedRootBlockStartHtml = forcedRootBlockStartHtml.substr(0, forcedRootBlockStartHtml.length - 3) + '>';\n\t\t\t}\n\n\t\t\tif ((startBlock && /^(PRE|DIV)$/.test(startBlock.nodeName)) || !forcedRootBlockName) {\n\t\t\t\ttext = Utils.filter(text, [\n\t\t\t\t\t[/\\n/g, \"
    \"]\n\t\t\t\t]);\n\t\t\t} else {\n\t\t\t\ttext = Utils.filter(text, [\n\t\t\t\t\t[/\\n\\n/g, \"

    \" + forcedRootBlockStartHtml],\n\t\t\t\t\t[/^(.*<\\/p>)(

    )$/, forcedRootBlockStartHtml + '$1'],\n\t\t\t\t\t[/\\n/g, \"
    \"]\n\t\t\t\t]);\n\n\t\t\t\tif (text.indexOf('

    ') != -1) {\n\t\t\t\t\ttext = forcedRootBlockStartHtml + text;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tpasteHtml(text);\n\t\t}\n\n\t\t/**\n\t\t * Creates a paste bin element as close as possible to the current caret location and places the focus inside that element\n\t\t * so that when the real paste event occurs the contents gets inserted into this element\n\t\t * instead of the current editor selection element.\n\t\t */\n\t\tfunction createPasteBin() {\n\t\t\tvar dom = editor.dom, body = editor.getBody();\n\t\t\tvar viewport = editor.dom.getViewPort(editor.getWin()), scrollTop = viewport.y, top = 20;\n\t\t\tvar scrollContainer;\n\n\t\t\tlastRng = editor.selection.getRng();\n\n\t\t\tif (editor.inline) {\n\t\t\t\tscrollContainer = editor.selection.getScrollContainer();\n\n\t\t\t\t// Can't always rely on scrollTop returning a useful value.\n\t\t\t\t// It returns 0 if the browser doesn't support scrollTop for the element or is non-scrollable\n\t\t\t\tif (scrollContainer && scrollContainer.scrollTop > 0) {\n\t\t\t\t\tscrollTop = scrollContainer.scrollTop;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Returns the rect of the current caret if the caret is in an empty block before a\n\t\t\t * BR we insert a temporary invisible character that we get the rect this way we always get a proper rect.\n\t\t\t *\n\t\t\t * TODO: This might be useful in core.\n\t\t\t */\n\t\t\tfunction getCaretRect(rng) {\n\t\t\t\tvar rects, textNode, node, container = rng.startContainer;\n\n\t\t\t\trects = rng.getClientRects();\n\t\t\t\tif (rects.length) {\n\t\t\t\t\treturn rects[0];\n\t\t\t\t}\n\n\t\t\t\tif (!rng.collapsed || container.nodeType != 1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tnode = container.childNodes[lastRng.startOffset];\n\n\t\t\t\t// Skip empty whitespace nodes\n\t\t\t\twhile (node && node.nodeType == 3 && !node.data.length) {\n\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t}\n\n\t\t\t\tif (!node) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Check if the location is |
    \n\t\t\t\t// TODO: Might need to expand this to say |\n\t\t\t\tif (node.tagName == 'BR') {\n\t\t\t\t\ttextNode = dom.doc.createTextNode('\\uFEFF');\n\t\t\t\t\tnode.parentNode.insertBefore(textNode, node);\n\n\t\t\t\t\trng = dom.createRng();\n\t\t\t\t\trng.setStartBefore(textNode);\n\t\t\t\t\trng.setEndAfter(textNode);\n\n\t\t\t\t\trects = rng.getClientRects();\n\t\t\t\t\tdom.remove(textNode);\n\t\t\t\t}\n\n\t\t\t\tif (rects.length) {\n\t\t\t\t\treturn rects[0];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Calculate top cordinate this is needed to avoid scrolling to top of document\n\t\t\t// We want the paste bin to be as close to the caret as possible to avoid scrolling\n\t\t\tif (lastRng.getClientRects) {\n\t\t\t\tvar rect = getCaretRect(lastRng);\n\n\t\t\t\tif (rect) {\n\t\t\t\t\t// Client rects gets us closes to the actual\n\t\t\t\t\t// caret location in for example a wrapped paragraph block\n\t\t\t\t\ttop = scrollTop + (rect.top - dom.getPos(body).y);\n\t\t\t\t} else {\n\t\t\t\t\ttop = scrollTop;\n\n\t\t\t\t\t// Check if we can find a closer location by checking the range element\n\t\t\t\t\tvar container = lastRng.startContainer;\n\t\t\t\t\tif (container) {\n\t\t\t\t\t\tif (container.nodeType == 3 && container.parentNode != body) {\n\t\t\t\t\t\t\tcontainer = container.parentNode;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (container.nodeType == 1) {\n\t\t\t\t\t\t\ttop = dom.getPos(container, scrollContainer || body).y;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Create a pastebin\n\t\t\tpasteBinElm = dom.add(editor.getBody(), 'div', {\n\t\t\t\tid: \"mcepastebin\",\n\t\t\t\tcontentEditable: true,\n\t\t\t\t\"data-mce-bogus\": \"all\",\n\t\t\t\tstyle: 'position: absolute; top: ' + top + 'px;' +\n\t\t\t\t\t'width: 10px; height: 10px; overflow: hidden; opacity: 0'\n\t\t\t}, pasteBinDefaultContent);\n\n\t\t\t// Move paste bin out of sight since the controlSelection rect gets displayed otherwise on IE and Gecko\n\t\t\tif (Env.ie || Env.gecko) {\n\t\t\t\tdom.setStyle(pasteBinElm, 'left', dom.getStyle(body, 'direction', true) == 'rtl' ? 0xFFFF : -0xFFFF);\n\t\t\t}\n\n\t\t\t// Prevent focus events from bubbeling fixed FocusManager issues\n\t\t\tdom.bind(pasteBinElm, 'beforedeactivate focusin focusout', function(e) {\n\t\t\t\te.stopPropagation();\n\t\t\t});\n\n\t\t\tpasteBinElm.focus();\n\t\t\teditor.selection.select(pasteBinElm, true);\n\t\t}\n\n\t\t/**\n\t\t * Removes the paste bin if it exists.\n\t\t */\n\t\tfunction removePasteBin() {\n\t\t\tif (pasteBinElm) {\n\t\t\t\tvar pasteBinClone;\n\n\t\t\t\t// WebKit/Blink might clone the div so\n\t\t\t\t// lets make sure we remove all clones\n\t\t\t\t// TODO: Man o man is this ugly. WebKit is the new IE! Remove this if they ever fix it!\n\t\t\t\twhile ((pasteBinClone = editor.dom.get('mcepastebin'))) {\n\t\t\t\t\teditor.dom.remove(pasteBinClone);\n\t\t\t\t\teditor.dom.unbind(pasteBinClone);\n\t\t\t\t}\n\n\t\t\t\tif (lastRng) {\n\t\t\t\t\teditor.selection.setRng(lastRng);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tpasteBinElm = lastRng = null;\n\t\t}\n\n\t\t/**\n\t\t * Returns the contents of the paste bin as a HTML string.\n\t\t *\n\t\t * @return {String} Get the contents of the paste bin.\n\t\t */\n\t\tfunction getPasteBinHtml() {\n\t\t\tvar html = '', pasteBinClones, i, clone, cloneHtml;\n\n\t\t\t// Since WebKit/Chrome might clone the paste bin when pasting\n\t\t\t// for example: we need to check if any of them contains some useful html.\n\t\t\t// TODO: Man o man is this ugly. WebKit is the new IE! Remove this if they ever fix it!\n\t\t\tpasteBinClones = editor.dom.select('div[id=mcepastebin]');\n\t\t\tfor (i = 0; i < pasteBinClones.length; i++) {\n\t\t\t\tclone = pasteBinClones[i];\n\n\t\t\t\t// Pasting plain text produces pastebins in pastebinds makes sence right!?\n\t\t\t\tif (clone.firstChild && clone.firstChild.id == 'mcepastebin') {\n\t\t\t\t\tclone = clone.firstChild;\n\t\t\t\t}\n\n\t\t\t\tcloneHtml = clone.innerHTML;\n\t\t\t\tif (html != pasteBinDefaultContent) {\n\t\t\t\t\thtml += cloneHtml;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn html;\n\t\t}\n\n\t\t/**\n\t\t * Gets various content types out of a datatransfer object.\n\t\t *\n\t\t * @param {DataTransfer} dataTransfer Event fired on paste.\n\t\t * @return {Object} Object with mime types and data for those mime types.\n\t\t */\n\t\tfunction getDataTransferItems(dataTransfer) {\n\t\t\tvar items = {};\n\n\t\t\tif (dataTransfer) {\n\t\t\t\t// Use old WebKit/IE API\n\t\t\t\tif (dataTransfer.getData) {\n\t\t\t\t\tvar legacyText = dataTransfer.getData('Text');\n\t\t\t\t\tif (legacyText && legacyText.length > 0) {\n\t\t\t\t\t\tif (legacyText.indexOf(mceInternalUrlPrefix) == -1) {\n\t\t\t\t\t\t\titems['text/plain'] = legacyText;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (dataTransfer.types) {\n\t\t\t\t\tfor (var i = 0; i < dataTransfer.types.length; i++) {\n\t\t\t\t\t\tvar contentType = dataTransfer.types[i];\n\t\t\t\t\t\titems[contentType] = dataTransfer.getData(contentType);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn items;\n\t\t}\n\n\t\t/**\n\t\t * Gets various content types out of the Clipboard API. It will also get the\n\t\t * plain text using older IE and WebKit API:s.\n\t\t *\n\t\t * @param {ClipboardEvent} clipboardEvent Event fired on paste.\n\t\t * @return {Object} Object with mime types and data for those mime types.\n\t\t */\n\t\tfunction getClipboardContent(clipboardEvent) {\n\t\t\tvar content = getDataTransferItems(clipboardEvent.clipboardData || editor.getDoc().dataTransfer);\n\n\t\t\t// Edge 15 has a broken HTML Clipboard API see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11877517/\n\t\t\treturn Utils.isMsEdge() ? Tools.extend(content, {'text/html': ''}) : content;\n\t\t}\n\n\t\tfunction hasHtmlOrText(content) {\n\t\t\treturn hasContentType(content, 'text/html') || hasContentType(content, 'text/plain');\n\t\t}\n\n\t\tfunction getBase64FromUri(uri) {\n\t\t\tvar idx;\n\n\t\t\tidx = uri.indexOf(',');\n\t\t\tif (idx !== -1) {\n\t\t\t\treturn uri.substr(idx + 1);\n\t\t\t}\n\n\t\t\treturn null;\n\t\t}\n\n\t\tfunction isValidDataUriImage(settings, imgElm) {\n\t\t\treturn settings.images_dataimg_filter ? settings.images_dataimg_filter(imgElm) : true;\n\t\t}\n\n\t\tfunction pasteImage(rng, reader, blob) {\n\t\t\tif (rng) {\n\t\t\t\teditor.selection.setRng(rng);\n\t\t\t\trng = null;\n\t\t\t}\n\n\t\t\tvar dataUri = reader.result;\n\t\t\tvar base64 = getBase64FromUri(dataUri);\n\n\t\t\tvar img = new Image();\n\t\t\timg.src = dataUri;\n\n\t\t\t// TODO: Move the bulk of the cache logic to EditorUpload\n\t\t\tif (isValidDataUriImage(editor.settings, img)) {\n\t\t\t\tvar blobCache = editor.editorUpload.blobCache;\n\t\t\t\tvar blobInfo, existingBlobInfo;\n\n\t\t\t\texistingBlobInfo = blobCache.findFirst(function(cachedBlobInfo) {\n\t\t\t\t\treturn cachedBlobInfo.base64() === base64;\n\t\t\t\t});\n\n\t\t\t\tif (!existingBlobInfo) {\n\t\t\t\t\tblobInfo = blobCache.create(uniqueId(), blob, base64);\n\t\t\t\t\tblobCache.add(blobInfo);\n\t\t\t\t} else {\n\t\t\t\t\tblobInfo = existingBlobInfo;\n\t\t\t\t}\n\n\t\t\t\tpasteHtml('');\n\t\t\t} else {\n\t\t\t\tpasteHtml('');\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Checks if the clipboard contains image data if it does it will take that data\n\t\t * and convert it into a data url image and paste that image at the caret location.\n\t\t *\n\t\t * @param {ClipboardEvent} e Paste/drop event object.\n\t\t * @param {DOMRange} rng Rng object to move selection to.\n\t\t * @return {Boolean} true/false if the image data was found or not.\n\t\t */\n\t\tfunction pasteImageData(e, rng) {\n\t\t\tvar dataTransfer = e.clipboardData || e.dataTransfer;\n\n\t\t\tfunction processItems(items) {\n\t\t\t\tvar i, item, reader, hadImage = false;\n\n\t\t\t\tif (items) {\n\t\t\t\t\tfor (i = 0; i < items.length; i++) {\n\t\t\t\t\t\titem = items[i];\n\n\t\t\t\t\t\tif (/^image\\/(jpeg|png|gif|bmp)$/.test(item.type)) {\n\t\t\t\t\t\t\tvar blob = item.getAsFile ? item.getAsFile() : item;\n\n\t\t\t\t\t\t\treader = new FileReader();\n\t\t\t\t\t\t\treader.onload = pasteImage.bind(null, rng, reader, blob);\n\t\t\t\t\t\t\treader.readAsDataURL(blob);\n\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\thadImage = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn hadImage;\n\t\t\t}\n\n\t\t\tif (editor.settings.paste_data_images && dataTransfer) {\n\t\t\t\treturn processItems(dataTransfer.items) || processItems(dataTransfer.files);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Chrome on Android doesn't support proper clipboard access so we have no choice but to allow the browser default behavior.\n\t\t *\n\t\t * @param {Event} e Paste event object to check if it contains any data.\n\t\t * @return {Boolean} true/false if the clipboard is empty or not.\n\t\t */\n\t\tfunction isBrokenAndroidClipboardEvent(e) {\n\t\t\tvar clipboardData = e.clipboardData;\n\n\t\t\treturn navigator.userAgent.indexOf('Android') != -1 && clipboardData && clipboardData.items && clipboardData.items.length === 0;\n\t\t}\n\n\t\tfunction getCaretRangeFromEvent(e) {\n\t\t\treturn RangeUtils.getCaretRangeFromPoint(e.clientX, e.clientY, editor.getDoc());\n\t\t}\n\n\t\tfunction hasContentType(clipboardContent, mimeType) {\n\t\t\treturn mimeType in clipboardContent && clipboardContent[mimeType].length > 0;\n\t\t}\n\n\t\tfunction isKeyboardPasteEvent(e) {\n\t\t\treturn (VK.metaKeyPressed(e) && e.keyCode == 86) || (e.shiftKey && e.keyCode == 45);\n\t\t}\n\n\t\tfunction registerEventHandlers() {\n\t\t\teditor.on('keydown', function(e) {\n\t\t\t\tfunction removePasteBinOnKeyUp(e) {\n\t\t\t\t\t// Ctrl+V or Shift+Insert\n\t\t\t\t\tif (isKeyboardPasteEvent(e) && !e.isDefaultPrevented()) {\n\t\t\t\t\t\tremovePasteBin();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Ctrl+V or Shift+Insert\n\t\t\t\tif (isKeyboardPasteEvent(e) && !e.isDefaultPrevented()) {\n\t\t\t\t\tkeyboardPastePlainTextState = e.shiftKey && e.keyCode == 86;\n\n\t\t\t\t\t// Edge case on Safari on Mac where it doesn't handle Cmd+Shift+V correctly\n\t\t\t\t\t// it fires the keydown but no paste or keyup so we are left with a paste bin\n\t\t\t\t\tif (keyboardPastePlainTextState && Env.webkit && navigator.userAgent.indexOf('Version/') != -1) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent undoManager keydown handler from making an undo level with the pastebin in it\n\t\t\t\t\te.stopImmediatePropagation();\n\n\t\t\t\t\tkeyboardPasteTimeStamp = new Date().getTime();\n\n\t\t\t\t\t// IE doesn't support Ctrl+Shift+V and it doesn't even produce a paste event\n\t\t\t\t\t// so lets fake a paste event and let IE use the execCommand/dataTransfer methods\n\t\t\t\t\tif (Env.ie && keyboardPastePlainTextState) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\teditor.fire('paste', {ieFake: true});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tremovePasteBin();\n\t\t\t\t\tcreatePasteBin();\n\n\t\t\t\t\t// Remove pastebin if we get a keyup and no paste event\n\t\t\t\t\t// For example pasting a file in IE 11 will not produce a paste event\n\t\t\t\t\teditor.once('keyup', removePasteBinOnKeyUp);\n\t\t\t\t\teditor.once('paste', function() {\n\t\t\t\t\t\teditor.off('keyup', removePasteBinOnKeyUp);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tfunction insertClipboardContent(clipboardContent, isKeyBoardPaste, plainTextMode) {\n\t\t\t\tvar content;\n\n\t\t\t\t// Grab HTML from Clipboard API or paste bin as a fallback\n\t\t\t\tif (hasContentType(clipboardContent, 'text/html')) {\n\t\t\t\t\tcontent = clipboardContent['text/html'];\n\t\t\t\t} else {\n\t\t\t\t\tcontent = getPasteBinHtml();\n\n\t\t\t\t\t// If paste bin is empty try using plain text mode\n\t\t\t\t\t// since that is better than nothing right\n\t\t\t\t\tif (content == pasteBinDefaultContent) {\n\t\t\t\t\t\tplainTextMode = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcontent = Utils.trimHtml(content);\n\n\t\t\t\t// WebKit has a nice bug where it clones the paste bin if you paste from for example notepad\n\t\t\t\t// so we need to force plain text mode in this case\n\t\t\t\tif (pasteBinElm && pasteBinElm.firstChild && pasteBinElm.firstChild.id === 'mcepastebin') {\n\t\t\t\t\tplainTextMode = true;\n\t\t\t\t}\n\n\t\t\t\tremovePasteBin();\n\n\t\t\t\t// If we got nothing from clipboard API and pastebin then we could try the last resort: plain/text\n\t\t\t\tif (!content.length) {\n\t\t\t\t\tplainTextMode = true;\n\t\t\t\t}\n\n\t\t\t\t// Grab plain text from Clipboard API or convert existing HTML to plain text\n\t\t\t\tif (plainTextMode) {\n\t\t\t\t\t// Use plain text contents from Clipboard API unless the HTML contains paragraphs then\n\t\t\t\t\t// we should convert the HTML to plain text since works better when pasting HTML/Word contents as plain text\n\t\t\t\t\tif (hasContentType(clipboardContent, 'text/plain') && content.indexOf('

    ') == -1) {\n\t\t\t\t\t\tcontent = clipboardContent['text/plain'];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontent = Utils.innerText(content);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If the content is the paste bin default HTML then it was\n\t\t\t\t// impossible to get the cliboard data out.\n\t\t\t\tif (content == pasteBinDefaultContent) {\n\t\t\t\t\tif (!isKeyBoardPaste) {\n\t\t\t\t\t\teditor.windowManager.alert('Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.');\n\t\t\t\t\t}\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (plainTextMode) {\n\t\t\t\t\tpasteText(content);\n\t\t\t\t} else {\n\t\t\t\t\tpasteHtml(content);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar getLastRng = function() {\n\t\t\t\treturn lastRng || editor.selection.getRng();\n\t\t\t};\n\n\t\t\teditor.on('paste', function(e) {\n\t\t\t\t// Getting content from the Clipboard can take some time\n\t\t\t\tvar clipboardTimer = new Date().getTime();\n\t\t\t\tvar clipboardContent = getClipboardContent(e);\n\t\t\t\tvar clipboardDelay = new Date().getTime() - clipboardTimer;\n\n\t\t\t\tvar isKeyBoardPaste = (new Date().getTime() - keyboardPasteTimeStamp - clipboardDelay) < 1000;\n\t\t\t\tvar plainTextMode = self.pasteFormat == \"text\" || keyboardPastePlainTextState;\n\n\t\t\t\tkeyboardPastePlainTextState = false;\n\n\t\t\t\tif (e.isDefaultPrevented() || isBrokenAndroidClipboardEvent(e)) {\n\t\t\t\t\tremovePasteBin();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!hasHtmlOrText(clipboardContent) && pasteImageData(e, getLastRng())) {\n\t\t\t\t\tremovePasteBin();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Not a keyboard paste prevent default paste and try to grab the clipboard contents using different APIs\n\t\t\t\tif (!isKeyBoardPaste) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\n\t\t\t\t// Try IE only method if paste isn't a keyboard paste\n\t\t\t\tif (Env.ie && (!isKeyBoardPaste || e.ieFake)) {\n\t\t\t\t\tcreatePasteBin();\n\n\t\t\t\t\teditor.dom.bind(pasteBinElm, 'paste', function(e) {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t});\n\n\t\t\t\t\teditor.getDoc().execCommand('Paste', false, null);\n\t\t\t\t\tclipboardContent[\"text/html\"] = getPasteBinHtml();\n\t\t\t\t}\n\n\t\t\t\t// If clipboard API has HTML then use that directly\n\t\t\t\tif (hasContentType(clipboardContent, 'text/html')) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tinsertClipboardContent(clipboardContent, isKeyBoardPaste, plainTextMode);\n\t\t\t\t} else {\n\t\t\t\t\tDelay.setEditorTimeout(editor, function() {\n\t\t\t\t\t\tinsertClipboardContent(clipboardContent, isKeyBoardPaste, plainTextMode);\n\t\t\t\t\t}, 0);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\teditor.on('dragstart dragend', function(e) {\n\t\t\t\tdraggingInternally = e.type == 'dragstart';\n\t\t\t});\n\n\t\t\tfunction isPlainTextFileUrl(content) {\n\t\t\t\tvar plainTextContent = content['text/plain'];\n\t\t\t\treturn plainTextContent ? plainTextContent.indexOf('file://') === 0 : false;\n\t\t\t}\n\n\t\t\teditor.on('drop', function(e) {\n\t\t\t\tvar dropContent, rng;\n\n\t\t\t\trng = getCaretRangeFromEvent(e);\n\n\t\t\t\tif (e.isDefaultPrevented() || draggingInternally) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tdropContent = getDataTransferItems(e.dataTransfer);\n\n\t\t\t\tif ((!hasHtmlOrText(dropContent) || isPlainTextFileUrl(dropContent)) && pasteImageData(e, rng)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (rng && editor.settings.paste_filter_drop !== false) {\n\t\t\t\t\tvar content = dropContent['mce-internal'] || dropContent['text/html'] || dropContent['text/plain'];\n\n\t\t\t\t\tif (content) {\n\t\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t\t// FF 45 doesn't paint a caret when dragging in text in due to focus call by execCommand\n\t\t\t\t\t\tDelay.setEditorTimeout(editor, function() {\n\t\t\t\t\t\t\teditor.undoManager.transact(function() {\n\t\t\t\t\t\t\t\tif (dropContent['mce-internal']) {\n\t\t\t\t\t\t\t\t\teditor.execCommand('Delete');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\teditor.selection.setRng(rng);\n\n\t\t\t\t\t\t\t\tcontent = Utils.trimHtml(content);\n\n\t\t\t\t\t\t\t\tif (!dropContent['text/html']) {\n\t\t\t\t\t\t\t\t\tpasteText(content);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tpasteHtml(content);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\teditor.on('dragover dragend', function(e) {\n\t\t\t\tif (editor.settings.paste_data_images) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tself.pasteHtml = pasteHtml;\n\t\tself.pasteText = pasteText;\n\t\tself.pasteImageData = pasteImageData;\n\n\t\teditor.on('preInit', function() {\n\t\t\tregisterEventHandlers();\n\n\t\t\t// Remove all data images from paste for example from Gecko\n\t\t\t// except internal images like video elements\n\t\t\teditor.parser.addNodeFilter('img', function(nodes, name, args) {\n\t\t\t\tfunction isPasteInsert(args) {\n\t\t\t\t\treturn args.data && args.data.paste === true;\n\t\t\t\t}\n\n\t\t\t\tfunction remove(node) {\n\t\t\t\t\tif (!node.attr('data-mce-object') && src !== Env.transparentSrc) {\n\t\t\t\t\t\tnode.remove();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfunction isWebKitFakeUrl(src) {\n\t\t\t\t\treturn src.indexOf(\"webkit-fake-url\") === 0;\n\t\t\t\t}\n\n\t\t\t\tfunction isDataUri(src) {\n\t\t\t\t\treturn src.indexOf(\"data:\") === 0;\n\t\t\t\t}\n\n\t\t\t\tif (!editor.settings.paste_data_images && isPasteInsert(args)) {\n\t\t\t\t\tvar i = nodes.length;\n\n\t\t\t\t\twhile (i--) {\n\t\t\t\t\t\tvar src = nodes[i].attributes.map.src;\n\n\t\t\t\t\t\tif (!src) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Safari on Mac produces webkit-fake-url see: https://bugs.webkit.org/show_bug.cgi?id=49141\n\t\t\t\t\t\tif (isWebKitFakeUrl(src)) {\n\t\t\t\t\t\t\tremove(nodes[i]);\n\t\t\t\t\t\t} else if (!editor.settings.allow_html_data_urls && isDataUri(src)) {\n\t\t\t\t\t\t\tremove(nodes[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t};\n});\n\n// Included from: js/tinymce/plugins/paste/classes/WordFilter.js\n\n/**\n * WordFilter.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class parses word HTML into proper TinyMCE markup.\n *\n * @class tinymce.pasteplugin.WordFilter\n * @private\n */\ndefine(\"tinymce/pasteplugin/WordFilter\", [\n\t\"tinymce/util/Tools\",\n\t\"tinymce/html/DomParser\",\n\t\"tinymce/html/Schema\",\n\t\"tinymce/html/Serializer\",\n\t\"tinymce/html/Node\",\n\t\"tinymce/pasteplugin/Utils\"\n], function(Tools, DomParser, Schema, Serializer, Node, Utils) {\n\t/**\n\t * Checks if the specified content is from any of the following sources: MS Word/Office 365/Google docs.\n\t */\n\tfunction isWordContent(content) {\n\t\treturn (\n\t\t\t(/]+id=\"?docs-internal-[^>]*>/gi, '');\n\t\t\tcontent = content.replace(/
    /gi, '');\n\n\t\t\tretainStyleProperties = settings.paste_retain_style_properties;\n\t\t\tif (retainStyleProperties) {\n\t\t\t\tvalidStyles = Tools.makeMap(retainStyleProperties.split(/[, ]/));\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Converts fake bullet and numbered lists to real semantic OL/UL.\n\t\t\t *\n\t\t\t * @param {tinymce.html.Node} node Root node to convert children of.\n\t\t\t */\n\t\t\tfunction convertFakeListsToProperLists(node) {\n\t\t\t\tvar currentListNode, prevListNode, lastLevel = 1;\n\n\t\t\t\tfunction getText(node) {\n\t\t\t\t\tvar txt = '';\n\n\t\t\t\t\tif (node.type === 3) {\n\t\t\t\t\t\treturn node.value;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ((node = node.firstChild)) {\n\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\ttxt += getText(node);\n\t\t\t\t\t\t} while ((node = node.next));\n\t\t\t\t\t}\n\n\t\t\t\t\treturn txt;\n\t\t\t\t}\n\n\t\t\t\tfunction trimListStart(node, regExp) {\n\t\t\t\t\tif (node.type === 3) {\n\t\t\t\t\t\tif (regExp.test(node.value)) {\n\t\t\t\t\t\t\tnode.value = node.value.replace(regExp, '');\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif ((node = node.firstChild)) {\n\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\tif (!trimListStart(node, regExp)) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} while ((node = node.next));\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tfunction removeIgnoredNodes(node) {\n\t\t\t\t\tif (node._listIgnore) {\n\t\t\t\t\t\tnode.remove();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ((node = node.firstChild)) {\n\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\tremoveIgnoredNodes(node);\n\t\t\t\t\t\t} while ((node = node.next));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfunction convertParagraphToLi(paragraphNode, listName, start) {\n\t\t\t\t\tvar level = paragraphNode._listLevel || lastLevel;\n\n\t\t\t\t\t// Handle list nesting\n\t\t\t\t\tif (level != lastLevel) {\n\t\t\t\t\t\tif (level < lastLevel) {\n\t\t\t\t\t\t\t// Move to parent list\n\t\t\t\t\t\t\tif (currentListNode) {\n\t\t\t\t\t\t\t\tcurrentListNode = currentListNode.parent.parent;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Create new list\n\t\t\t\t\t\t\tprevListNode = currentListNode;\n\t\t\t\t\t\t\tcurrentListNode = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!currentListNode || currentListNode.name != listName) {\n\t\t\t\t\t\tprevListNode = prevListNode || currentListNode;\n\t\t\t\t\t\tcurrentListNode = new Node(listName, 1);\n\n\t\t\t\t\t\tif (start > 1) {\n\t\t\t\t\t\t\tcurrentListNode.attr('start', '' + start);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tparagraphNode.wrap(currentListNode);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentListNode.append(paragraphNode);\n\t\t\t\t\t}\n\n\t\t\t\t\tparagraphNode.name = 'li';\n\n\t\t\t\t\t// Append list to previous list if it exists\n\t\t\t\t\tif (level > lastLevel && prevListNode) {\n\t\t\t\t\t\tprevListNode.lastChild.append(currentListNode);\n\t\t\t\t\t}\n\n\t\t\t\t\tlastLevel = level;\n\n\t\t\t\t\t// Remove start of list item \"1. \" or \"· \" etc\n\t\t\t\t\tremoveIgnoredNodes(paragraphNode);\n\t\t\t\t\ttrimListStart(paragraphNode, /^\\u00a0+/);\n\t\t\t\t\ttrimListStart(paragraphNode, /^\\s*([\\u2022\\u00b7\\u00a7\\u25CF]|\\w+\\.)/);\n\t\t\t\t\ttrimListStart(paragraphNode, /^\\u00a0+/);\n\t\t\t\t}\n\n\t\t\t\t// Build a list of all root level elements before we start\n\t\t\t\t// altering them in the loop below.\n\t\t\t\tvar elements = [], child = node.firstChild;\n\t\t\t\twhile (typeof child !== 'undefined' && child !== null) {\n\t\t\t\t\telements.push(child);\n\n\t\t\t\t\tchild = child.walk();\n\t\t\t\t\tif (child !== null) {\n\t\t\t\t\t\twhile (typeof child !== 'undefined' && child.parent !== node) {\n\t\t\t\t\t\t\tchild = child.walk();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0; i < elements.length; i++) {\n\t\t\t\t\tnode = elements[i];\n\n\t\t\t\t\tif (node.name == 'p' && node.firstChild) {\n\t\t\t\t\t\t// Find first text node in paragraph\n\t\t\t\t\t\tvar nodeText = getText(node);\n\n\t\t\t\t\t\t// Detect unordered lists look for bullets\n\t\t\t\t\t\tif (isBulletList(nodeText)) {\n\t\t\t\t\t\t\tconvertParagraphToLi(node, 'ul');\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Detect ordered lists 1., a. or ixv.\n\t\t\t\t\t\tif (isNumericList(nodeText)) {\n\t\t\t\t\t\t\t// Parse OL start number\n\t\t\t\t\t\t\tvar matches = /([0-9]+)\\./.exec(nodeText);\n\t\t\t\t\t\t\tvar start = 1;\n\t\t\t\t\t\t\tif (matches) {\n\t\t\t\t\t\t\t\tstart = parseInt(matches[1], 10);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconvertParagraphToLi(node, 'ol', start);\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Convert paragraphs marked as lists but doesn't look like anything\n\t\t\t\t\t\tif (node._listLevel) {\n\t\t\t\t\t\t\tconvertParagraphToLi(node, 'ul', 1);\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcurrentListNode = null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// If the root level element isn't a p tag which can be\n\t\t\t\t\t\t// processed by convertParagraphToLi, it interrupts the\n\t\t\t\t\t\t// lists, causing a new list to start instead of having\n\t\t\t\t\t\t// elements from the next list inserted above this tag.\n\t\t\t\t\t\tprevListNode = currentListNode;\n\t\t\t\t\t\tcurrentListNode = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction filterStyles(node, styleValue) {\n\t\t\t\tvar outputStyles = {}, matches, styles = editor.dom.parseStyle(styleValue);\n\n\t\t\t\tTools.each(styles, function(value, name) {\n\t\t\t\t\t// Convert various MS styles to W3C styles\n\t\t\t\t\tswitch (name) {\n\t\t\t\t\t\tcase 'mso-list':\n\t\t\t\t\t\t\t// Parse out list indent level for lists\n\t\t\t\t\t\t\tmatches = /\\w+ \\w+([0-9]+)/i.exec(styleValue);\n\t\t\t\t\t\t\tif (matches) {\n\t\t\t\t\t\t\t\tnode._listLevel = parseInt(matches[1], 10);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Remove these nodes o\n\t\t\t\t\t\t\t// Since the span gets removed we mark the text node and the span\n\t\t\t\t\t\t\tif (/Ignore/i.test(value) && node.firstChild) {\n\t\t\t\t\t\t\t\tnode._listIgnore = true;\n\t\t\t\t\t\t\t\tnode.firstChild._listIgnore = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase \"horiz-align\":\n\t\t\t\t\t\t\tname = \"text-align\";\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase \"vert-align\":\n\t\t\t\t\t\t\tname = \"vertical-align\";\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase \"font-color\":\n\t\t\t\t\t\tcase \"mso-foreground\":\n\t\t\t\t\t\t\tname = \"color\";\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase \"mso-background\":\n\t\t\t\t\t\tcase \"mso-highlight\":\n\t\t\t\t\t\t\tname = \"background\";\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase \"font-weight\":\n\t\t\t\t\t\tcase \"font-style\":\n\t\t\t\t\t\t\tif (value != \"normal\") {\n\t\t\t\t\t\t\t\toutputStyles[name] = value;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\tcase \"mso-element\":\n\t\t\t\t\t\t\t// Remove track changes code\n\t\t\t\t\t\t\tif (/^(comment|comment-list)$/i.test(value)) {\n\t\t\t\t\t\t\t\tnode.remove();\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (name.indexOf('mso-comment') === 0) {\n\t\t\t\t\t\tnode.remove();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never allow mso- prefixed names\n\t\t\t\t\tif (name.indexOf('mso-') === 0) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Output only valid styles\n\t\t\t\t\tif (retainStyleProperties == \"all\" || (validStyles && validStyles[name])) {\n\t\t\t\t\t\toutputStyles[name] = value;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Convert bold style to \"b\" element\n\t\t\t\tif (/(bold)/i.test(outputStyles[\"font-weight\"])) {\n\t\t\t\t\tdelete outputStyles[\"font-weight\"];\n\t\t\t\t\tnode.wrap(new Node(\"b\", 1));\n\t\t\t\t}\n\n\t\t\t\t// Convert italic style to \"i\" element\n\t\t\t\tif (/(italic)/i.test(outputStyles[\"font-style\"])) {\n\t\t\t\t\tdelete outputStyles[\"font-style\"];\n\t\t\t\t\tnode.wrap(new Node(\"i\", 1));\n\t\t\t\t}\n\n\t\t\t\t// Serialize the styles and see if there is something left to keep\n\t\t\t\toutputStyles = editor.dom.serializeStyle(outputStyles, node.name);\n\t\t\t\tif (outputStyles) {\n\t\t\t\t\treturn outputStyles;\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif (settings.paste_enable_default_filters === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Detect is the contents is Word junk HTML\n\t\t\tif (isWordContent(e.content)) {\n\t\t\t\te.wordContent = true; // Mark it for other processors\n\n\t\t\t\t// Remove basic Word junk\n\t\t\t\tcontent = Utils.filter(content, [\n\t\t\t\t\t// Word comments like conditional comments etc\n\t\t\t\t\t//gi,\n\n\t\t\t\t\t// Remove comments, scripts (e.g., msoShowComment), XML tag, VML content,\n\t\t\t\t\t// MS Office namespaced tags, and a few other tags\n\t\t\t\t\t/<(!|script[^>]*>.*?<\\/script(?=[>\\s])|\\/?(\\?xml(:\\w+)?|img|meta|link|style|\\w:\\w+)(?=[\\s\\/>]))[^>]*>/gi,\n\n\t\t\t\t\t// Convert into for line-though\n\t\t\t\t\t[/<(\\/?)s>/gi, \"<$1strike>\"],\n\n\t\t\t\t\t// Replace nsbp entites to char since it's easier to handle\n\t\t\t\t\t[/ /gi, \"\\u00a0\"],\n\n\t\t\t\t\t// Convert ___ to string of alternating\n\t\t\t\t\t// breaking/non-breaking spaces of same length\n\t\t\t\t\t[/([\\s\\u00a0]*)<\\/span>/gi,\n\t\t\t\t\t\tfunction(str, spaces) {\n\t\t\t\t\t\t\treturn (spaces.length > 0) ?\n\t\t\t\t\t\t\t\tspaces.replace(/./, \" \").slice(Math.floor(spaces.length / 2)).split(\"\").join(\"\\u00a0\") : \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t]);\n\n\t\t\t\tvar validElements = settings.paste_word_valid_elements;\n\t\t\t\tif (!validElements) {\n\t\t\t\t\tvalidElements = (\n\t\t\t\t\t\t'-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,' +\n\t\t\t\t\t\t'-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,' +\n\t\t\t\t\t\t'td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody'\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Setup strict schema\n\t\t\t\tvar schema = new Schema({\n\t\t\t\t\tvalid_elements: validElements,\n\t\t\t\t\tvalid_children: '-li[p]'\n\t\t\t\t});\n\n\t\t\t\t// Add style/class attribute to all element rules since the user might have removed them from\n\t\t\t\t// paste_word_valid_elements config option and we need to check them for properties\n\t\t\t\tTools.each(schema.elements, function(rule) {\n\t\t\t\t\t/*eslint dot-notation:0*/\n\t\t\t\t\tif (!rule.attributes[\"class\"]) {\n\t\t\t\t\t\trule.attributes[\"class\"] = {};\n\t\t\t\t\t\trule.attributesOrder.push(\"class\");\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!rule.attributes.style) {\n\t\t\t\t\t\trule.attributes.style = {};\n\t\t\t\t\t\trule.attributesOrder.push(\"style\");\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Parse HTML into DOM structure\n\t\t\t\tvar domParser = new DomParser({}, schema);\n\n\t\t\t\t// Filter styles to remove \"mso\" specific styles and convert some of them\n\t\t\t\tdomParser.addAttributeFilter('style', function(nodes) {\n\t\t\t\t\tvar i = nodes.length, node;\n\n\t\t\t\t\twhile (i--) {\n\t\t\t\t\t\tnode = nodes[i];\n\t\t\t\t\t\tnode.attr('style', filterStyles(node, node.attr('style')));\n\n\t\t\t\t\t\t// Remove pointess spans\n\t\t\t\t\t\tif (node.name == 'span' && node.parent && !node.attributes.length) {\n\t\t\t\t\t\t\tnode.unwrap();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Check the class attribute for comments or del items and remove those\n\t\t\t\tdomParser.addAttributeFilter('class', function(nodes) {\n\t\t\t\t\tvar i = nodes.length, node, className;\n\n\t\t\t\t\twhile (i--) {\n\t\t\t\t\t\tnode = nodes[i];\n\n\t\t\t\t\t\tclassName = node.attr('class');\n\t\t\t\t\t\tif (/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(className)) {\n\t\t\t\t\t\t\tnode.remove();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tnode.attr('class', null);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Remove all del elements since we don't want the track changes code in the editor\n\t\t\t\tdomParser.addNodeFilter('del', function(nodes) {\n\t\t\t\t\tvar i = nodes.length;\n\n\t\t\t\t\twhile (i--) {\n\t\t\t\t\t\tnodes[i].remove();\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Keep some of the links and anchors\n\t\t\t\tdomParser.addNodeFilter('a', function(nodes) {\n\t\t\t\t\tvar i = nodes.length, node, href, name;\n\n\t\t\t\t\twhile (i--) {\n\t\t\t\t\t\tnode = nodes[i];\n\t\t\t\t\t\thref = node.attr('href');\n\t\t\t\t\t\tname = node.attr('name');\n\n\t\t\t\t\t\tif (href && href.indexOf('#_msocom_') != -1) {\n\t\t\t\t\t\t\tnode.remove();\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (href && href.indexOf('file://') === 0) {\n\t\t\t\t\t\t\thref = href.split('#')[1];\n\t\t\t\t\t\t\tif (href) {\n\t\t\t\t\t\t\t\thref = '#' + href;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!href && !name) {\n\t\t\t\t\t\t\tnode.unwrap();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Remove all named anchors that aren't specific to TOC, Footnotes or Endnotes\n\t\t\t\t\t\t\tif (name && !/^_?(?:toc|edn|ftn)/i.test(name)) {\n\t\t\t\t\t\t\t\tnode.unwrap();\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tnode.attr({\n\t\t\t\t\t\t\t\thref: href,\n\t\t\t\t\t\t\t\tname: name\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Parse into DOM structure\n\t\t\t\tvar rootNode = domParser.parse(content);\n\n\t\t\t\t// Process DOM\n\t\t\t\tif (settings.paste_convert_word_fake_lists !== false) {\n\t\t\t\t\tconvertFakeListsToProperLists(rootNode);\n\t\t\t\t}\n\n\t\t\t\t// Serialize DOM back to HTML\n\t\t\t\te.content = new Serializer({\n\t\t\t\t\tvalidate: settings.validate\n\t\t\t\t}, schema).serialize(rootNode);\n\t\t\t}\n\t\t});\n\t}\n\n\tWordFilter.isWordContent = isWordContent;\n\n\treturn WordFilter;\n});\n\n// Included from: js/tinymce/plugins/paste/classes/Quirks.js\n\n/**\n * Quirks.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2017 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class contains various fixes for browsers. These issues can not be feature\n * detected since we have no direct control over the clipboard. However we might be able\n * to remove some of these fixes once the browsers gets updated/fixed.\n *\n * @class tinymce.pasteplugin.Quirks\n * @private\n */\ndefine(\"tinymce/pasteplugin/Quirks\", [\n\t\"tinymce/Env\",\n\t\"tinymce/util/Tools\",\n\t\"tinymce/pasteplugin/WordFilter\",\n\t\"tinymce/pasteplugin/Utils\"\n], function(Env, Tools, WordFilter, Utils) {\n\t\"use strict\";\n\n\treturn function(editor) {\n\t\tfunction addPreProcessFilter(filterFunc) {\n\t\t\teditor.on('BeforePastePreProcess', function(e) {\n\t\t\t\te.content = filterFunc(e.content);\n\t\t\t});\n\t\t}\n\n\t\tfunction addPostProcessFilter(filterFunc) {\n\t\t\teditor.on('PastePostProcess', function(e) {\n\t\t\t\tfilterFunc(e.node);\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Removes BR elements after block elements. IE9 has a nasty bug where it puts a BR element after each\n\t\t * block element when pasting from word. This removes those elements.\n\t\t *\n\t\t * This:\n\t\t *

    a


    b

    \n\t\t *\n\t\t * Becomes:\n\t\t *

    a

    b

    \n\t\t */\n\t\tfunction removeExplorerBrElementsAfterBlocks(html) {\n\t\t\t// Only filter word specific content\n\t\t\tif (!WordFilter.isWordContent(html)) {\n\t\t\t\treturn html;\n\t\t\t}\n\n\t\t\t// Produce block regexp based on the block elements in schema\n\t\t\tvar blockElements = [];\n\n\t\t\tTools.each(editor.schema.getBlockElements(), function(block, blockName) {\n\t\t\t\tblockElements.push(blockName);\n\t\t\t});\n\n\t\t\tvar explorerBlocksRegExp = new RegExp(\n\t\t\t\t'(?:
     [\\\\s\\\\r\\\\n]+|
    )*(<\\\\/?(' + blockElements.join('|') + ')[^>]*>)(?:
     [\\\\s\\\\r\\\\n]+|
    )*',\n\t\t\t\t'g'\n\t\t\t);\n\n\t\t\t// Remove BR:s from: X
    \n\t\t\thtml = Utils.filter(html, [\n\t\t\t\t[explorerBlocksRegExp, '$1']\n\t\t\t]);\n\n\t\t\t// IE9 also adds an extra BR element for each soft-linefeed and it also adds a BR for each word wrap break\n\t\t\thtml = Utils.filter(html, [\n\t\t\t\t[/

    /g, '

    '], // Replace multiple BR elements with uppercase BR to keep them intact\n\t\t\t\t[/
    /g, ' '], // Replace single br elements with space since they are word wrap BR:s\n\t\t\t\t[/

    /g, '
    '] // Replace back the double brs but into a single BR\n\t\t\t]);\n\n\t\t\treturn html;\n\t\t}\n\n\t\t/**\n\t\t * WebKit has a nasty bug where the all computed styles gets added to style attributes when copy/pasting contents.\n\t\t * This fix solves that by simply removing the whole style attribute.\n\t\t *\n\t\t * The paste_webkit_styles option can be set to specify what to keep:\n\t\t * paste_webkit_styles: \"none\" // Keep no styles\n\t\t * paste_webkit_styles: \"all\", // Keep all of them\n\t\t * paste_webkit_styles: \"font-weight color\" // Keep specific ones\n\t\t *\n\t\t * @param {String} content Content that needs to be processed.\n\t\t * @return {String} Processed contents.\n\t\t */\n\t\tfunction removeWebKitStyles(content) {\n\t\t\t// Passthrough all styles from Word and let the WordFilter handle that junk\n\t\t\tif (WordFilter.isWordContent(content)) {\n\t\t\t\treturn content;\n\t\t\t}\n\n\t\t\t// Filter away styles that isn't matching the target node\n\t\t\tvar webKitStyles = editor.settings.paste_webkit_styles;\n\n\t\t\tif (editor.settings.paste_remove_styles_if_webkit === false || webKitStyles == \"all\") {\n\t\t\t\treturn content;\n\t\t\t}\n\n\t\t\tif (webKitStyles) {\n\t\t\t\twebKitStyles = webKitStyles.split(/[, ]/);\n\t\t\t}\n\n\t\t\t// Keep specific styles that doesn't match the current node computed style\n\t\t\tif (webKitStyles) {\n\t\t\t\tvar dom = editor.dom, node = editor.selection.getNode();\n\n\t\t\t\tcontent = content.replace(/(<[^>]+) style=\"([^\"]*)\"([^>]*>)/gi, function(all, before, value, after) {\n\t\t\t\t\tvar inputStyles = dom.parseStyle(value, 'span'), outputStyles = {};\n\n\t\t\t\t\tif (webKitStyles === \"none\") {\n\t\t\t\t\t\treturn before + after;\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (var i = 0; i < webKitStyles.length; i++) {\n\t\t\t\t\t\tvar inputValue = inputStyles[webKitStyles[i]], currentValue = dom.getStyle(node, webKitStyles[i], true);\n\n\t\t\t\t\t\tif (/color/.test(webKitStyles[i])) {\n\t\t\t\t\t\t\tinputValue = dom.toHex(inputValue);\n\t\t\t\t\t\t\tcurrentValue = dom.toHex(currentValue);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (currentValue != inputValue) {\n\t\t\t\t\t\t\toutputStyles[webKitStyles[i]] = inputValue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\toutputStyles = dom.serializeStyle(outputStyles, 'span');\n\t\t\t\t\tif (outputStyles) {\n\t\t\t\t\t\treturn before + ' style=\"' + outputStyles + '\"' + after;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn before + after;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Remove all external styles\n\t\t\t\tcontent = content.replace(/(<[^>]+) style=\"([^\"]*)\"([^>]*>)/gi, '$1$3');\n\t\t\t}\n\n\t\t\t// Keep internal styles\n\t\t\tcontent = content.replace(/(<[^>]+) data-mce-style=\"([^\"]+)\"([^>]*>)/gi, function(all, before, value, after) {\n\t\t\t\treturn before + ' style=\"' + value + '\"' + after;\n\t\t\t});\n\n\t\t\treturn content;\n\t\t}\n\n\t\tfunction removeUnderlineAndFontInAnchor(root) {\n\t\t\teditor.$('a', root).find('font,u').each(function(i, node) {\n\t\t\t\teditor.dom.remove(node, true);\n\t\t\t});\n\t\t}\n\n\t\t// Sniff browsers and apply fixes since we can't feature detect\n\t\tif (Env.webkit) {\n\t\t\taddPreProcessFilter(removeWebKitStyles);\n\t\t}\n\n\t\tif (Env.ie) {\n\t\t\taddPreProcessFilter(removeExplorerBrElementsAfterBlocks);\n\t\t\taddPostProcessFilter(removeUnderlineAndFontInAnchor);\n\t\t}\n\t};\n});\n\n// Included from: js/tinymce/plugins/paste/classes/Plugin.js\n\n/**\n * Plugin.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/**\n * This class contains the tinymce plugin logic for the paste plugin.\n *\n * @class tinymce.pasteplugin.Plugin\n * @private\n */\ndefine(\"tinymce/pasteplugin/Plugin\", [\n\t\"tinymce/PluginManager\",\n\t\"tinymce/pasteplugin/Clipboard\",\n\t\"tinymce/pasteplugin/WordFilter\",\n\t\"tinymce/pasteplugin/Quirks\"\n], function(PluginManager, Clipboard, WordFilter, Quirks) {\n\tvar userIsInformed;\n\n\tPluginManager.add('paste', function(editor) {\n\t\tvar self = this, clipboard, settings = editor.settings;\n\n\t\tfunction isUserInformedAboutPlainText() {\n\t\t\treturn userIsInformed || editor.settings.paste_plaintext_inform === false;\n\t\t}\n\n\t\tfunction togglePlainTextPaste() {\n\t\t\tif (clipboard.pasteFormat == \"text\") {\n\t\t\t\tclipboard.pasteFormat = \"html\";\n\t\t\t\teditor.fire('PastePlainTextToggle', {state: false});\n\t\t\t} else {\n\t\t\t\tclipboard.pasteFormat = \"text\";\n\t\t\t\teditor.fire('PastePlainTextToggle', {state: true});\n\n\t\t\t\tif (!isUserInformedAboutPlainText()) {\n\t\t\t\t\tvar message = editor.translate('Paste is now in plain text mode. Contents will now ' +\n\t\t\t\t\t'be pasted as plain text until you toggle this option off.');\n\n\t\t\t\t\teditor.notificationManager.open({\n\t\t\t\t\t\ttext: message,\n\t\t\t\t\t\ttype: 'info'\n\t\t\t\t\t});\n\n\t\t\t\t\tuserIsInformed = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\teditor.focus();\n\t\t}\n\n\t\tfunction stateChange() {\n\t\t\tvar self = this;\n\n\t\t\tself.active(clipboard.pasteFormat === 'text');\n\n\t\t\teditor.on('PastePlainTextToggle', function (e) {\n\t\t\t\tself.active(e.state);\n\t\t\t});\n\t\t}\n\n\t\t// draw back if power version is requested and registered\n\t\tif (/(^|[ ,])powerpaste([, ]|$)/.test(settings.plugins) && PluginManager.get('powerpaste')) {\n\t\t\t/*eslint no-console:0 */\n\t\t\tif (typeof console !== \"undefined\" && console.log) {\n\t\t\t\tconsole.log(\"PowerPaste is incompatible with Paste plugin! Remove 'paste' from the 'plugins' option.\");\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tself.clipboard = clipboard = new Clipboard(editor);\n\t\tself.quirks = new Quirks(editor);\n\t\tself.wordFilter = new WordFilter(editor);\n\n\t\tif (editor.settings.paste_as_text) {\n\t\t\tself.clipboard.pasteFormat = \"text\";\n\t\t}\n\n\t\tif (settings.paste_preprocess) {\n\t\t\teditor.on('PastePreProcess', function(e) {\n\t\t\t\tsettings.paste_preprocess.call(self, self, e);\n\t\t\t});\n\t\t}\n\n\t\tif (settings.paste_postprocess) {\n\t\t\teditor.on('PastePostProcess', function(e) {\n\t\t\t\tsettings.paste_postprocess.call(self, self, e);\n\t\t\t});\n\t\t}\n\n\t\teditor.addCommand('mceInsertClipboardContent', function(ui, value) {\n\t\t\tif (value.content) {\n\t\t\t\tself.clipboard.pasteHtml(value.content);\n\t\t\t}\n\n\t\t\tif (value.text) {\n\t\t\t\tself.clipboard.pasteText(value.text);\n\t\t\t}\n\t\t});\n\n\t\t// Block all drag/drop events\n\t\tif (editor.settings.paste_block_drop) {\n\t\t\teditor.on('dragend dragover draggesture dragdrop drop drag', function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t});\n\t\t}\n\n\t\t// Prevent users from dropping data images on Gecko\n\t\tif (!editor.settings.paste_data_images) {\n\t\t\teditor.on('drop', function(e) {\n\t\t\t\tvar dataTransfer = e.dataTransfer;\n\n\t\t\t\tif (dataTransfer && dataTransfer.files && dataTransfer.files.length > 0) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\teditor.addCommand('mceTogglePlainTextPaste', togglePlainTextPaste);\n\n\t\teditor.addButton('pastetext', {\n\t\t\ticon: 'pastetext',\n\t\t\ttooltip: 'Paste as text',\n\t\t\tonclick: togglePlainTextPaste,\n\t\t\tonPostRender: stateChange\n\t\t});\n\n\t\teditor.addMenuItem('pastetext', {\n\t\t\ttext: 'Paste as text',\n\t\t\tselectable: true,\n\t\t\tactive: clipboard.pasteFormat,\n\t\t\tonclick: togglePlainTextPaste,\n\t\t\tonPostRender: stateChange\n\t\t});\n\t});\n});\n\nexpose([\"tinymce/pasteplugin/Utils\"]);\n})(window);;\r\n/**\n * plugin.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2015 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\n/*global tinymce:true */\n\ntinymce.PluginManager.add('template', function(editor) {\n\tvar each = tinymce.each;\n\n\tfunction createTemplateList(callback) {\n\t\treturn function() {\n\t\t\tvar templateList = editor.settings.templates;\n\n\t\t\tif (typeof templateList == \"function\") {\n\t\t\t\ttemplateList(callback);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof templateList == \"string\") {\n\t\t\t\ttinymce.util.XHR.send({\n\t\t\t\t\turl: templateList,\n\t\t\t\t\tsuccess: function(text) {\n\t\t\t\t\t\tcallback(tinymce.util.JSON.parse(text));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tcallback(templateList);\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction showDialog(templateList) {\n\t\tvar win, values = [], templateHtml;\n\n\t\tif (!templateList || templateList.length === 0) {\n\t\t\tvar message = editor.translate('No templates defined.');\n\t\t\teditor.notificationManager.open({text: message, type: 'info'});\n\t\t\treturn;\n\t\t}\n\n\t\ttinymce.each(templateList, function(template) {\n\t\t\tvalues.push({\n\t\t\t\tselected: !values.length,\n\t\t\t\ttext: template.title,\n\t\t\t\tvalue: {\n\t\t\t\t\turl: template.url,\n\t\t\t\t\tcontent: template.content,\n\t\t\t\t\tdescription: template.description\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tfunction onSelectTemplate(e) {\n\t\t\tvar value = e.control.value();\n\n\t\t\tfunction insertIframeHtml(html) {\n\t\t\t\tif (html.indexOf('') == -1) {\n\t\t\t\t\tvar contentCssLinks = '';\n\n\t\t\t\t\ttinymce.each(editor.contentCSS, function(url) {\n\t\t\t\t\t\tcontentCssLinks += '';\n\t\t\t\t\t});\n\n\t\t\t\t\tvar bodyClass = editor.settings.body_class || '';\n\t\t\t\t\tif (bodyClass.indexOf('=') != -1) {\n\t\t\t\t\t\tbodyClass = editor.getParam('body_class', '', 'hash');\n\t\t\t\t\t\tbodyClass = bodyClass[editor.id] || '';\n\t\t\t\t\t}\n\n\t\t\t\t\thtml = (\n\t\t\t\t\t\t'' +\n\t\t\t\t\t\t'' +\n\t\t\t\t\t\t\t'' +\n\t\t\t\t\t\t\t\tcontentCssLinks +\n\t\t\t\t\t\t\t'' +\n\t\t\t\t\t\t\t'' +\n\t\t\t\t\t\t\t\thtml +\n\t\t\t\t\t\t\t'' +\n\t\t\t\t\t\t''\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\thtml = replaceTemplateValues(html, 'template_preview_replace_values');\n\n\t\t\t\tvar doc = win.find('iframe')[0].getEl().contentWindow.document;\n\t\t\t\tdoc.open();\n\t\t\t\tdoc.write(html);\n\t\t\t\tdoc.close();\n\t\t\t}\n\n\t\t\tif (value.url) {\n\t\t\t\ttinymce.util.XHR.send({\n\t\t\t\t\turl: value.url,\n\t\t\t\t\tsuccess: function(html) {\n\t\t\t\t\t\ttemplateHtml = html;\n\t\t\t\t\t\tinsertIframeHtml(templateHtml);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttemplateHtml = value.content;\n\t\t\t\tinsertIframeHtml(templateHtml);\n\t\t\t}\n\n\t\t\twin.find('#description')[0].text(e.control.value().description);\n\t\t}\n\n\t\twin = editor.windowManager.open({\n\t\t\ttitle: 'Insert template',\n\t\t\tlayout: 'flex',\n\t\t\tdirection: 'column',\n\t\t\talign: 'stretch',\n\t\t\tpadding: 15,\n\t\t\tspacing: 10,\n\n\t\t\titems: [\n\t\t\t\t{type: 'form', flex: 0, padding: 0, items: [\n\t\t\t\t\t{type: 'container', label: 'Templates', items: {\n\t\t\t\t\t\ttype: 'listbox', label: 'Templates', name: 'template', values: values, onselect: onSelectTemplate\n\t\t\t\t\t}}\n\t\t\t\t]},\n\t\t\t\t{type: 'label', name: 'description', label: 'Description', text: '\\u00a0'},\n\t\t\t\t{type: 'iframe', flex: 1, border: 1}\n\t\t\t],\n\n\t\t\tonsubmit: function() {\n\t\t\t\tinsertTemplate(false, templateHtml);\n\t\t\t},\n\n\t\t\tminWidth: Math.min(tinymce.DOM.getViewPort().w, editor.getParam('template_popup_width', 600)),\n\t\t\tminHeight: Math.min(tinymce.DOM.getViewPort().h, editor.getParam('template_popup_height', 500))\n\t\t});\n\n\t\twin.find('listbox')[0].fire('select');\n\t}\n\n\tfunction getDateTime(fmt, date) {\n\t\tvar daysShort = \"Sun Mon Tue Wed Thu Fri Sat Sun\".split(' ');\n\t\tvar daysLong = \"Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday\".split(' ');\n\t\tvar monthsShort = \"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\".split(' ');\n\t\tvar monthsLong = \"January February March April May June July August September October November December\".split(' ');\n\n\t\tfunction addZeros(value, len) {\n\t\t\tvalue = \"\" + value;\n\n\t\t\tif (value.length < len) {\n\t\t\t\tfor (var i = 0; i < (len - value.length); i++) {\n\t\t\t\t\tvalue = \"0\" + value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn value;\n\t\t}\n\n\t\tdate = date || new Date();\n\n\t\tfmt = fmt.replace(\"%D\", \"%m/%d/%Y\");\n\t\tfmt = fmt.replace(\"%r\", \"%I:%M:%S %p\");\n\t\tfmt = fmt.replace(\"%Y\", \"\" + date.getFullYear());\n\t\tfmt = fmt.replace(\"%y\", \"\" + date.getYear());\n\t\tfmt = fmt.replace(\"%m\", addZeros(date.getMonth() + 1, 2));\n\t\tfmt = fmt.replace(\"%d\", addZeros(date.getDate(), 2));\n\t\tfmt = fmt.replace(\"%H\", \"\" + addZeros(date.getHours(), 2));\n\t\tfmt = fmt.replace(\"%M\", \"\" + addZeros(date.getMinutes(), 2));\n\t\tfmt = fmt.replace(\"%S\", \"\" + addZeros(date.getSeconds(), 2));\n\t\tfmt = fmt.replace(\"%I\", \"\" + ((date.getHours() + 11) % 12 + 1));\n\t\tfmt = fmt.replace(\"%p\", \"\" + (date.getHours() < 12 ? \"AM\" : \"PM\"));\n\t\tfmt = fmt.replace(\"%B\", \"\" + editor.translate(monthsLong[date.getMonth()]));\n\t\tfmt = fmt.replace(\"%b\", \"\" + editor.translate(monthsShort[date.getMonth()]));\n\t\tfmt = fmt.replace(\"%A\", \"\" + editor.translate(daysLong[date.getDay()]));\n\t\tfmt = fmt.replace(\"%a\", \"\" + editor.translate(daysShort[date.getDay()]));\n\t\tfmt = fmt.replace(\"%%\", \"%\");\n\n\t\treturn fmt;\n\t}\n\n\tfunction replaceVals(e) {\n\t\tvar dom = editor.dom, vl = editor.getParam('template_replace_values');\n\n\t\teach(dom.select('*', e), function(e) {\n\t\t\teach(vl, function(v, k) {\n\t\t\t\tif (dom.hasClass(e, k)) {\n\t\t\t\t\tif (typeof vl[k] == 'function') {\n\t\t\t\t\t\tvl[k](e);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tfunction replaceTemplateValues(html, templateValuesOptionName) {\n\t\teach(editor.getParam(templateValuesOptionName), function(v, k) {\n\t\t\tif (typeof v == 'function') {\n\t\t\t\tv = v(k);\n\t\t\t}\n\n\t\t\thtml = html.replace(new RegExp('\\\\{\\\\$' + k + '\\\\}', 'g'), v);\n\t\t});\n\n\t\treturn html;\n\t}\n\n\tfunction insertTemplate(ui, html) {\n\t\tvar el, n, dom = editor.dom, sel = editor.selection.getContent();\n\n\t\thtml = replaceTemplateValues(html, 'template_replace_values');\n\t\tel = dom.create('div', null, html);\n\n\t\t// Find template element within div\n\t\tn = dom.select('.mceTmpl', el);\n\t\tif (n && n.length > 0) {\n\t\t\tel = dom.create('div', null);\n\t\t\tel.appendChild(n[0].cloneNode(true));\n\t\t}\n\n\t\tfunction hasClass(n, c) {\n\t\t\treturn new RegExp('\\\\b' + c + '\\\\b', 'g').test(n.className);\n\t\t}\n\n\t\teach(dom.select('*', el), function(n) {\n\t\t\t// Replace cdate\n\t\t\tif (hasClass(n, editor.getParam('template_cdate_classes', 'cdate').replace(/\\s+/g, '|'))) {\n\t\t\t\tn.innerHTML = getDateTime(editor.getParam(\"template_cdate_format\", editor.getLang(\"template.cdate_format\")));\n\t\t\t}\n\n\t\t\t// Replace mdate\n\t\t\tif (hasClass(n, editor.getParam('template_mdate_classes', 'mdate').replace(/\\s+/g, '|'))) {\n\t\t\t\tn.innerHTML = getDateTime(editor.getParam(\"template_mdate_format\", editor.getLang(\"template.mdate_format\")));\n\t\t\t}\n\n\t\t\t// Replace selection\n\t\t\tif (hasClass(n, editor.getParam('template_selected_content_classes', 'selcontent').replace(/\\s+/g, '|'))) {\n\t\t\t\tn.innerHTML = sel;\n\t\t\t}\n\t\t});\n\n\t\treplaceVals(el);\n\n\t\teditor.execCommand('mceInsertContent', false, el.innerHTML);\n\t\teditor.addVisual();\n\t}\n\n\teditor.addCommand('mceInsertTemplate', insertTemplate);\n\n\teditor.addButton('template', {\n\t\ttitle: 'Insert template',\n\t\tonclick: createTemplateList(showDialog)\n\t});\n\n\teditor.addMenuItem('template', {\n\t\ttext: 'Template',\n\t\tonclick: createTemplateList(showDialog),\n\t\tcontext: 'insert'\n\t});\n\n\teditor.on('PreProcess', function(o) {\n\t\tvar dom = editor.dom;\n\n\t\teach(dom.select('div', o.node), function(e) {\n\t\t\tif (dom.hasClass(e, 'mceTmpl')) {\n\t\t\t\teach(dom.select('*', e), function(e) {\n\t\t\t\t\tif (dom.hasClass(e, editor.getParam('template_mdate_classes', 'mdate').replace(/\\s+/g, '|'))) {\n\t\t\t\t\t\te.innerHTML = getDateTime(editor.getParam(\"template_mdate_format\", editor.getLang(\"template.mdate_format\")));\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treplaceVals(e);\n\t\t\t}\n\t\t});\n\t});\n});\n;\r\n(function () {\n\nvar defs = {}; // id -> {dependencies, definition, instance (possibly undefined)}\n\n// Used when there is no 'main' module.\n// The name is probably (hopefully) unique so minification removes for releases.\nvar register_3795 = function (id) {\n var module = dem(id);\n var fragments = id.split('.');\n var target = Function('return this;')();\n for (var i = 0; i < fragments.length - 1; ++i) {\n if (target[fragments[i]] === undefined)\n target[fragments[i]] = {};\n target = target[fragments[i]];\n }\n target[fragments[fragments.length - 1]] = module;\n};\n\nvar instantiate = function (id) {\n var actual = defs[id];\n var dependencies = actual.deps;\n var definition = actual.defn;\n var len = dependencies.length;\n var instances = new Array(len);\n for (var i = 0; i < len; ++i)\n instances[i] = dem(dependencies[i]);\n var defResult = definition.apply(null, instances);\n if (defResult === undefined)\n throw 'module [' + id + '] returned undefined';\n actual.instance = defResult;\n};\n\nvar def = function (id, dependencies, definition) {\n if (typeof id !== 'string')\n throw 'module id must be a string';\n else if (dependencies === undefined)\n throw 'no dependencies for ' + id;\n else if (definition === undefined)\n throw 'no definition function for ' + id;\n defs[id] = {\n deps: dependencies,\n defn: definition,\n instance: undefined\n };\n};\n\nvar dem = function (id) {\n var actual = defs[id];\n if (actual === undefined)\n throw 'module [' + id + '] was undefined';\n else if (actual.instance === undefined)\n instantiate(id);\n return actual.instance;\n};\n\nvar req = function (ids, callback) {\n var len = ids.length;\n var instances = new Array(len);\n for (var i = 0; i < len; ++i)\n instances[i] = dem(ids[i]);\n callback.apply(null, instances);\n};\n\nvar ephox = {};\n\nephox.bolt = {\n module: {\n api: {\n define: def,\n require: req,\n demand: dem\n }\n }\n};\n\nvar define = def;\nvar require = req;\nvar demand = dem;\n// this helps with minification when using a lot of global references\nvar defineGlobal = function (id, ref) {\n define(id, [], function () { return ref; });\n};\n/*jsc\n[\"tinymce.modern.Theme\",\"global!tinymce.Env\",\"global!tinymce.EditorManager\",\"global!tinymce.ThemeManager\",\"tinymce.modern.modes.Iframe\",\"tinymce.modern.modes.Inline\",\"tinymce.modern.ui.Resize\",\"tinymce.modern.ui.ProgressState\",\"global!tinymce.util.Tools\",\"global!tinymce.ui.Factory\",\"global!tinymce.DOM\",\"tinymce.modern.ui.Toolbar\",\"tinymce.modern.ui.Menubar\",\"tinymce.modern.ui.ContextToolbars\",\"tinymce.modern.ui.A11y\",\"tinymce.modern.ui.Sidebar\",\"tinymce.modern.ui.SkinLoaded\",\"global!tinymce.ui.FloatPanel\",\"global!tinymce.ui.Throbber\",\"global!tinymce.util.Delay\",\"global!tinymce.geom.Rect\"]\njsc*/\ndefineGlobal(\"global!tinymce.Env\", tinymce.Env);\ndefineGlobal(\"global!tinymce.EditorManager\", tinymce.EditorManager);\ndefineGlobal(\"global!tinymce.ThemeManager\", tinymce.ThemeManager);\ndefineGlobal(\"global!tinymce.util.Tools\", tinymce.util.Tools);\ndefineGlobal(\"global!tinymce.ui.Factory\", tinymce.ui.Factory);\ndefineGlobal(\"global!tinymce.DOM\", tinymce.DOM);\n/**\n * Toolbar.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2016 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\ndefine('tinymce.modern.ui.Toolbar', [\n\t'global!tinymce.util.Tools',\n\t'global!tinymce.ui.Factory'\n], function (Tools, Factory) {\n\tvar defaultToolbar = \"undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | \" +\n\t\t\"bullist numlist outdent indent | link image\";\n\n\tvar createToolbar = function (editor, items, size) {\n\t\tvar toolbarItems = [], buttonGroup;\n\n\t\tif (!items) {\n\t\t\treturn;\n\t\t}\n\n\t\tTools.each(items.split(/[ ,]/), function(item) {\n\t\t\tvar itemName;\n\n\t\t\tvar bindSelectorChanged = function () {\n\t\t\t\tvar selection = editor.selection;\n\n\t\t\t\tif (item.settings.stateSelector) {\n\t\t\t\t\tselection.selectorChanged(item.settings.stateSelector, function(state) {\n\t\t\t\t\t\titem.active(state);\n\t\t\t\t\t}, true);\n\t\t\t\t}\n\n\t\t\t\tif (item.settings.disabledStateSelector) {\n\t\t\t\t\tselection.selectorChanged(item.settings.disabledStateSelector, function(state) {\n\t\t\t\t\t\titem.disabled(state);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (item == \"|\") {\n\t\t\t\tbuttonGroup = null;\n\t\t\t} else {\n\t\t\t\tif (Factory.has(item)) {\n\t\t\t\t\titem = {type: item, size: size};\n\t\t\t\t\ttoolbarItems.push(item);\n\t\t\t\t\tbuttonGroup = null;\n\t\t\t\t} else {\n\t\t\t\t\tif (!buttonGroup) {\n\t\t\t\t\t\tbuttonGroup = {type: 'buttongroup', items: []};\n\t\t\t\t\t\ttoolbarItems.push(buttonGroup);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (editor.buttons[item]) {\n\t\t\t\t\t\t// TODO: Move control creation to some UI class\n\t\t\t\t\t\titemName = item;\n\t\t\t\t\t\titem = editor.buttons[itemName];\n\n\t\t\t\t\t\tif (typeof item == \"function\") {\n\t\t\t\t\t\t\titem = item();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\titem.type = item.type || 'button';\n\t\t\t\t\t\titem.size = size;\n\n\t\t\t\t\t\titem = Factory.create(item);\n\t\t\t\t\t\tbuttonGroup.items.push(item);\n\n\t\t\t\t\t\tif (editor.initialized) {\n\t\t\t\t\t\t\tbindSelectorChanged();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\teditor.on('init', bindSelectorChanged);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\ttype: 'toolbar',\n\t\t\tlayout: 'flow',\n\t\t\titems: toolbarItems\n\t\t};\n\t};\n\n\t/**\n\t * Creates the toolbars from config and returns a toolbar array.\n\t *\n\t * @param {String} size Optional toolbar item size.\n\t * @return {Array} Array with toolbars.\n\t */\n\tvar createToolbars = function (editor, size) {\n\t\tvar toolbars = [], settings = editor.settings;\n\n\t\tvar addToolbar = function (items) {\n\t\t\tif (items) {\n\t\t\t\ttoolbars.push(createToolbar(editor, items, size));\n\t\t\t\treturn true;\n\t\t\t}\n\t\t};\n\n\t\t// Convert toolbar array to multiple options\n\t\tif (Tools.isArray(settings.toolbar)) {\n\t\t\t// Empty toolbar array is the same as a disabled toolbar\n\t\t\tif (settings.toolbar.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tTools.each(settings.toolbar, function(toolbar, i) {\n\t\t\t\tsettings[\"toolbar\" + (i + 1)] = toolbar;\n\t\t\t});\n\n\t\t\tdelete settings.toolbar;\n\t\t}\n\n\t\t// Generate toolbar\n\t\tfor (var i = 1; i < 10; i++) {\n\t\t\tif (!addToolbar(settings[\"toolbar\" + i])) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Generate toolbar or default toolbar unless it's disabled\n\t\tif (!toolbars.length && settings.toolbar !== false) {\n\t\t\taddToolbar(settings.toolbar || defaultToolbar);\n\t\t}\n\n\t\tif (toolbars.length) {\n\t\t\treturn {\n\t\t\t\ttype: 'panel',\n\t\t\t\tlayout: 'stack',\n\t\t\t\tclasses: \"toolbar-grp\",\n\t\t\t\tariaRoot: true,\n\t\t\t\tariaRemember: true,\n\t\t\t\titems: toolbars\n\t\t\t};\n\t\t}\n\t};\n\n\treturn {\n\t\tcreateToolbar: createToolbar,\n\t\tcreateToolbars: createToolbars\n\t};\n});\n\n/**\n * Menubar.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2016 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\ndefine('tinymce.modern.ui.Menubar', [\n\t'global!tinymce.util.Tools'\n], function (Tools) {\n\tvar defaultMenus = {\n\t\tfile: {title: 'File', items: 'newdocument'},\n\t\tedit: {title: 'Edit', items: 'undo redo | cut copy paste pastetext | selectall'},\n\t\tinsert: {title: 'Insert', items: '|'},\n\t\tview: {title: 'View', items: 'visualaid |'},\n\t\tformat: {title: 'Format', items: 'bold italic underline strikethrough superscript subscript | formats | removeformat'},\n\t\ttable: {title: 'Table'},\n\t\ttools: {title: 'Tools'}\n\t};\n\n\tvar createMenuItem = function (menuItems, name) {\n\t\tvar menuItem;\n\n\t\tif (name == '|') {\n\t\t\treturn {text: '|'};\n\t\t}\n\n\t\tmenuItem = menuItems[name];\n\n\t\treturn menuItem;\n\t};\n\n\tvar createMenu = function (editorMenuItems, settings, context) {\n\t\tvar menuButton, menu, menuItems, isUserDefined, removedMenuItems;\n\n\t\tremovedMenuItems = Tools.makeMap((settings.removed_menuitems || '').split(/[ ,]/));\n\n\t\t// User defined menu\n\t\tif (settings.menu) {\n\t\t\tmenu = settings.menu[context];\n\t\t\tisUserDefined = true;\n\t\t} else {\n\t\t\tmenu = defaultMenus[context];\n\t\t}\n\n\t\tif (menu) {\n\t\t\tmenuButton = {text: menu.title};\n\t\t\tmenuItems = [];\n\n\t\t\t// Default/user defined items\n\t\t\tTools.each((menu.items || '').split(/[ ,]/), function(item) {\n\t\t\t\tvar menuItem = createMenuItem(editorMenuItems, item);\n\n\t\t\t\tif (menuItem && !removedMenuItems[item]) {\n\t\t\t\t\tmenuItems.push(createMenuItem(editorMenuItems, item));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Added though context\n\t\t\tif (!isUserDefined) {\n\t\t\t\tTools.each(editorMenuItems, function(menuItem) {\n\t\t\t\t\tif (menuItem.context == context) {\n\t\t\t\t\t\tif (menuItem.separator == 'before') {\n\t\t\t\t\t\t\tmenuItems.push({text: '|'});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (menuItem.prependToContext) {\n\t\t\t\t\t\t\tmenuItems.unshift(menuItem);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmenuItems.push(menuItem);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (menuItem.separator == 'after') {\n\t\t\t\t\t\t\tmenuItems.push({text: '|'});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < menuItems.length; i++) {\n\t\t\t\tif (menuItems[i].text == '|') {\n\t\t\t\t\tif (i === 0 || i == menuItems.length - 1) {\n\t\t\t\t\t\tmenuItems.splice(i, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tmenuButton.menu = menuItems;\n\n\t\t\tif (!menuButton.menu.length) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\treturn menuButton;\n\t};\n\n\tvar createMenuButtons = function (editor) {\n\t\tvar name, menuButtons = [], settings = editor.settings;\n\n\t\tvar defaultMenuBar = [];\n\t\tif (settings.menu) {\n\t\t\tfor (name in settings.menu) {\n\t\t\t\tdefaultMenuBar.push(name);\n\t\t\t}\n\t\t} else {\n\t\t\tfor (name in defaultMenus) {\n\t\t\t\tdefaultMenuBar.push(name);\n\t\t\t}\n\t\t}\n\n\t\tvar enabledMenuNames = typeof settings.menubar == \"string\" ? settings.menubar.split(/[ ,]/) : defaultMenuBar;\n\t\tfor (var i = 0; i < enabledMenuNames.length; i++) {\n\t\t\tvar menu = enabledMenuNames[i];\n\t\t\tmenu = createMenu(editor.menuItems, editor.settings, menu);\n\n\t\t\tif (menu) {\n\t\t\t\tmenuButtons.push(menu);\n\t\t\t}\n\t\t}\n\n\t\treturn menuButtons;\n\t};\n\n\treturn {\n\t\tcreateMenuButtons: createMenuButtons\n\t};\n});\n\ndefineGlobal(\"global!tinymce.util.Delay\", tinymce.util.Delay);\ndefineGlobal(\"global!tinymce.geom.Rect\", tinymce.geom.Rect);\n/**\n * ContextToolbars.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2016 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\ndefine('tinymce.modern.ui.ContextToolbars', [\n\t'global!tinymce.DOM',\n\t'global!tinymce.util.Tools',\n\t'global!tinymce.util.Delay',\n\t'tinymce.modern.ui.Toolbar',\n\t'global!tinymce.ui.Factory',\n\t'global!tinymce.geom.Rect'\n], function (DOM, Tools, Delay, Toolbar, Factory, Rect) {\n\tvar toClientRect = function (geomRect) {\n\t\treturn {\n\t\t\tleft: geomRect.x,\n\t\t\ttop: geomRect.y,\n\t\t\twidth: geomRect.w,\n\t\t\theight: geomRect.h,\n\t\t\tright: geomRect.x + geomRect.w,\n\t\t\tbottom: geomRect.y + geomRect.h\n\t\t};\n\t};\n\n\tvar hideAllFloatingPanels = function (editor) {\n\t\tTools.each(editor.contextToolbars, function(toolbar) {\n\t\t\tif (toolbar.panel) {\n\t\t\t\ttoolbar.panel.hide();\n\t\t\t}\n\t\t});\n\t};\n\n\tvar movePanelTo = function (panel, pos) {\n\t\tpanel.moveTo(pos.left, pos.top);\n\t};\n\n\tvar togglePositionClass = function (panel, relPos, predicate) {\n\t\trelPos = relPos ? relPos.substr(0, 2) : '';\n\n\t\tTools.each({\n\t\t\tt: 'down',\n\t\t\tb: 'up'\n\t\t}, function(cls, pos) {\n\t\t\tpanel.classes.toggle('arrow-' + cls, predicate(pos, relPos.substr(0, 1)));\n\t\t});\n\n\t\tTools.each({\n\t\t\tl: 'left',\n\t\t\tr: 'right'\n\t\t}, function(cls, pos) {\n\t\t\tpanel.classes.toggle('arrow-' + cls, predicate(pos, relPos.substr(1, 1)));\n\t\t});\n\t};\n\n\tvar userConstrain = function (handler, x, y, elementRect, contentAreaRect, panelRect) {\n\t\tpanelRect = toClientRect({x: x, y: y, w: panelRect.w, h: panelRect.h});\n\n\t\tif (handler) {\n\t\t\tpanelRect = handler({\n\t\t\t\telementRect: toClientRect(elementRect),\n\t\t\t\tcontentAreaRect: toClientRect(contentAreaRect),\n\t\t\t\tpanelRect: panelRect\n\t\t\t});\n\t\t}\n\n\t\treturn panelRect;\n\t};\n\n\tvar addContextualToolbars = function (editor) {\n\t\tvar scrollContainer, settings = editor.settings;\n\n\t\tvar getContextToolbars = function () {\n\t\t\treturn editor.contextToolbars || [];\n\t\t};\n\n\t\tvar getElementRect = function (elm) {\n\t\t\tvar pos, targetRect, root;\n\n\t\t\tpos = DOM.getPos(editor.getContentAreaContainer());\n\t\t\ttargetRect = editor.dom.getRect(elm);\n\t\t\troot = editor.dom.getRoot();\n\n\t\t\t// Adjust targetPos for scrolling in the editor\n\t\t\tif (root.nodeName === 'BODY') {\n\t\t\t\ttargetRect.x -= root.ownerDocument.documentElement.scrollLeft || root.scrollLeft;\n\t\t\t\ttargetRect.y -= root.ownerDocument.documentElement.scrollTop || root.scrollTop;\n\t\t\t}\n\n\t\t\ttargetRect.x += pos.x;\n\t\t\ttargetRect.y += pos.y;\n\n\t\t\treturn targetRect;\n\t\t};\n\n\t\tvar reposition = function (match, shouldShow) {\n\t\t\tvar relPos, panelRect, elementRect, contentAreaRect, panel, relRect, testPositions, smallElementWidthThreshold;\n\t\t\tvar handler = settings.inline_toolbar_position_handler;\n\n\t\t\tif (editor.removed) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!match || !match.toolbar.panel) {\n\t\t\t\thideAllFloatingPanels(editor);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttestPositions = [\n\t\t\t\t'bc-tc', 'tc-bc',\n\t\t\t\t'tl-bl', 'bl-tl',\n\t\t\t\t'tr-br', 'br-tr'\n\t\t\t];\n\n\t\t\tpanel = match.toolbar.panel;\n\n\t\t\t// Only show the panel on some events not for example nodeChange since that fires when context menu is opened\n\t\t\tif (shouldShow) {\n\t\t\t\tpanel.show();\n\t\t\t}\n\n\t\t\telementRect = getElementRect(match.element);\n\t\t\tpanelRect = DOM.getRect(panel.getEl());\n\t\t\tcontentAreaRect = DOM.getRect(editor.getContentAreaContainer() || editor.getBody());\n\t\t\tsmallElementWidthThreshold = 25;\n\n\t\t\tif (DOM.getStyle(match.element, 'display', true) !== 'inline') {\n\t\t\t\t// We need to use these instead of the rect values since the style\n\t\t\t\t// size properites might not be the same as the real size for a table\n\t\t\t\telementRect.w = match.element.clientWidth;\n\t\t\t\telementRect.h = match.element.clientHeight;\n\t\t\t}\n\n\t\t\tif (!editor.inline) {\n\t\t\t\tcontentAreaRect.w = editor.getDoc().documentElement.offsetWidth;\n\t\t\t}\n\n\t\t\t// Inflate the elementRect so it doesn't get placed above resize handles\n\t\t\tif (editor.selection.controlSelection.isResizable(match.element) && elementRect.w < smallElementWidthThreshold) {\n\t\t\t\telementRect = Rect.inflate(elementRect, 0, 8);\n\t\t\t}\n\n\t\t\trelPos = Rect.findBestRelativePosition(panelRect, elementRect, contentAreaRect, testPositions);\n\t\t\telementRect = Rect.clamp(elementRect, contentAreaRect);\n\n\t\t\tif (relPos) {\n\t\t\t\trelRect = Rect.relativePosition(panelRect, elementRect, relPos);\n\t\t\t\tmovePanelTo(panel, userConstrain(handler, relRect.x, relRect.y, elementRect, contentAreaRect, panelRect));\n\t\t\t} else {\n\t\t\t\t// Allow overflow below the editor to avoid placing toolbars ontop of tables\n\t\t\t\tcontentAreaRect.h += panelRect.h;\n\n\t\t\t\telementRect = Rect.intersect(contentAreaRect, elementRect);\n\t\t\t\tif (elementRect) {\n\t\t\t\t\trelPos = Rect.findBestRelativePosition(panelRect, elementRect, contentAreaRect, [\n\t\t\t\t\t\t'bc-tc', 'bl-tl', 'br-tr'\n\t\t\t\t\t]);\n\n\t\t\t\t\tif (relPos) {\n\t\t\t\t\t\trelRect = Rect.relativePosition(panelRect, elementRect, relPos);\n\t\t\t\t\t\tmovePanelTo(panel, userConstrain(handler, relRect.x, relRect.y, elementRect, contentAreaRect, panelRect));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmovePanelTo(panel, userConstrain(handler, elementRect.x, elementRect.y, elementRect, contentAreaRect, panelRect));\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpanel.hide();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttogglePositionClass(panel, relPos, function(pos1, pos2) {\n\t\t\t\treturn pos1 === pos2;\n\t\t\t});\n\n\t\t\t//drawRect(contentAreaRect, 'blue');\n\t\t\t//drawRect(elementRect, 'red');\n\t\t\t//drawRect(panelRect, 'green');\n\t\t};\n\n\t\tvar repositionHandler = function (show) {\n\t\t\treturn function () {\n\t\t\t\tvar execute = function () {\n\t\t\t\t\tif (editor.selection) {\n\t\t\t\t\t\treposition(findFrontMostMatch(editor.selection.getNode()), show);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tDelay.requestAnimationFrame(execute);\n\t\t\t};\n\t\t};\n\n\t\tvar bindScrollEvent = function () {\n\t\t\tif (!scrollContainer) {\n\t\t\t\tscrollContainer = editor.selection.getScrollContainer() || editor.getWin();\n\t\t\t\tDOM.bind(scrollContainer, 'scroll', repositionHandler(true));\n\n\t\t\t\teditor.on('remove', function() {\n\t\t\t\t\tDOM.unbind(scrollContainer, 'scroll');\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tvar showContextToolbar = function (match) {\n\t\t\tvar panel;\n\n\t\t\tif (match.toolbar.panel) {\n\t\t\t\tmatch.toolbar.panel.show();\n\t\t\t\treposition(match);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tbindScrollEvent();\n\n\t\t\tpanel = Factory.create({\n\t\t\t\ttype: 'floatpanel',\n\t\t\t\trole: 'dialog',\n\t\t\t\tclasses: 'tinymce tinymce-inline arrow',\n\t\t\t\tariaLabel: 'Inline toolbar',\n\t\t\t\tlayout: 'flex',\n\t\t\t\tdirection: 'column',\n\t\t\t\talign: 'stretch',\n\t\t\t\tautohide: false,\n\t\t\t\tautofix: true,\n\t\t\t\tfixed: true,\n\t\t\t\tborder: 1,\n\t\t\t\titems: Toolbar.createToolbar(editor, match.toolbar.items),\n\t\t\t\toncancel: function() {\n\t\t\t\t\teditor.focus();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tmatch.toolbar.panel = panel;\n\t\t\tpanel.renderTo(document.body).reflow();\n\t\t\treposition(match);\n\t\t};\n\n\t\tvar hideAllContextToolbars = function () {\n\t\t\tTools.each(getContextToolbars(), function(toolbar) {\n\t\t\t\tif (toolbar.panel) {\n\t\t\t\t\ttoolbar.panel.hide();\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\tvar findFrontMostMatch = function (targetElm) {\n\t\t\tvar i, y, parentsAndSelf, toolbars = getContextToolbars();\n\n\t\t\tparentsAndSelf = editor.$(targetElm).parents().add(targetElm);\n\t\t\tfor (i = parentsAndSelf.length - 1; i >= 0; i--) {\n\t\t\t\tfor (y = toolbars.length - 1; y >= 0; y--) {\n\t\t\t\t\tif (toolbars[y].predicate(parentsAndSelf[i])) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttoolbar: toolbars[y],\n\t\t\t\t\t\t\telement: parentsAndSelf[i]\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn null;\n\t\t};\n\n\t\teditor.on('click keyup setContent ObjectResized', function(e) {\n\t\t\t// Only act on partial inserts\n\t\t\tif (e.type === 'setcontent' && !e.selection) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Needs to be delayed to avoid Chrome img focus out bug\n\t\t\tDelay.setEditorTimeout(editor, function() {\n\t\t\t\tvar match;\n\n\t\t\t\tmatch = findFrontMostMatch(editor.selection.getNode());\n\t\t\t\tif (match) {\n\t\t\t\t\thideAllContextToolbars();\n\t\t\t\t\tshowContextToolbar(match);\n\t\t\t\t} else {\n\t\t\t\t\thideAllContextToolbars();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\teditor.on('blur hide contextmenu', hideAllContextToolbars);\n\n\t\teditor.on('ObjectResizeStart', function() {\n\t\t\tvar match = findFrontMostMatch(editor.selection.getNode());\n\n\t\t\tif (match && match.toolbar.panel) {\n\t\t\t\tmatch.toolbar.panel.hide();\n\t\t\t}\n\t\t});\n\n\t\teditor.on('ResizeEditor ResizeWindow', repositionHandler(true));\n\t\teditor.on('nodeChange', repositionHandler(false));\n\n\t\teditor.on('remove', function() {\n\t\t\tTools.each(getContextToolbars(), function(toolbar) {\n\t\t\t\tif (toolbar.panel) {\n\t\t\t\t\ttoolbar.panel.remove();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\teditor.contextToolbars = {};\n\t\t});\n\n\t\teditor.shortcuts.add('ctrl+F9', '', function() {\n\t\t\tvar match = findFrontMostMatch(editor.selection.getNode());\n\t\t\tif (match && match.toolbar.panel) {\n\t\t\t\tmatch.toolbar.panel.items()[0].focus();\n\t\t\t}\n\t\t});\n\t};\n\n\treturn {\n\t\taddContextualToolbars: addContextualToolbars\n\t};\n});\n\n/**\n * A11y.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2016 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\ndefine('tinymce.modern.ui.A11y', [\n], function () {\n\tvar focus = function (panel, type) {\n\t\treturn function () {\n\t\t\tvar item = panel.find(type)[0];\n\n\t\t\tif (item) {\n\t\t\t\titem.focus(true);\n\t\t\t}\n\t\t};\n\t};\n\n\tvar addKeys = function (editor, panel) {\n\t\teditor.shortcuts.add('Alt+F9', '', focus(panel, 'menubar'));\n\t\teditor.shortcuts.add('Alt+F10,F10', '', focus(panel, 'toolbar'));\n\t\teditor.shortcuts.add('Alt+F11', '', focus(panel, 'elementpath'));\n\t\tpanel.on('cancel', function() {\n\t\t\teditor.focus();\n\t\t});\n\t};\n\n\treturn {\n\t\taddKeys: addKeys\n\t};\n});\n\n/**\n * Sidebar.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2016 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\ndefine('tinymce.modern.ui.Sidebar', [\n\t'global!tinymce.util.Tools',\n\t'global!tinymce.ui.Factory',\n\t'global!tinymce.Env'\n], function (Tools, Factory, Env) {\n\tvar api = function (elm) {\n\t\treturn {\n\t\t\telement: function () {\n\t\t\t\treturn elm;\n\t\t\t}\n\t\t};\n\t};\n\n\tvar trigger = function (sidebar, panel, callbackName) {\n\t\tvar callback = sidebar.settings[callbackName];\n\t\tif (callback) {\n\t\t\tcallback(api(panel.getEl('body')));\n\t\t}\n\t};\n\n\tvar hidePanels = function (name, container, sidebars) {\n\t\tTools.each(sidebars, function (sidebar) {\n\t\t\tvar panel = container.items().filter('#' + sidebar.name)[0];\n\n\t\t\tif (panel && panel.visible() && sidebar.name !== name) {\n\t\t\t\ttrigger(sidebar, panel, 'onhide');\n\t\t\t\tpanel.visible(false);\n\t\t\t}\n\t\t});\n\t};\n\n\tvar deactivateButtons = function (toolbar) {\n\t\ttoolbar.items().each(function (ctrl) {\n\t\t\tctrl.active(false);\n\t\t});\n\t};\n\n\tvar findSidebar = function (sidebars, name) {\n\t\treturn Tools.grep(sidebars, function (sidebar) {\n\t\t\treturn sidebar.name === name;\n\t\t})[0];\n\t};\n\n\tvar showPanel = function (editor, name, sidebars) {\n\t\treturn function (e) {\n\t\t\tvar btnCtrl = e.control;\n\t\t\tvar container = btnCtrl.parents().filter('panel')[0];\n\t\t\tvar panel = container.find('#' + name)[0];\n\t\t\tvar sidebar = findSidebar(sidebars, name);\n\n\t\t\thidePanels(name, container, sidebars);\n\t\t\tdeactivateButtons(btnCtrl.parent());\n\n\t\t\tif (panel && panel.visible()) {\n\t\t\t\ttrigger(sidebar, panel, 'onhide');\n\t\t\t\tpanel.hide();\n\t\t\t\tbtnCtrl.active(false);\n\t\t\t} else {\n\t\t\t\tif (panel) {\n\t\t\t\t\tpanel.show();\n\t\t\t\t\ttrigger(sidebar, panel, 'onshow');\n\t\t\t\t} else {\n\t\t\t\t\tpanel = Factory.create({\n\t\t\t\t\t\ttype: 'container',\n\t\t\t\t\t\tname: name,\n\t\t\t\t\t\tlayout: 'stack',\n\t\t\t\t\t\tclasses: 'sidebar-panel',\n\t\t\t\t\t\thtml: ''\n\t\t\t\t\t});\n\n\t\t\t\t\tcontainer.prepend(panel);\n\t\t\t\t\ttrigger(sidebar, panel, 'onrender');\n\t\t\t\t\ttrigger(sidebar, panel, 'onshow');\n\t\t\t\t}\n\n\t\t\t\tbtnCtrl.active(true);\n\t\t\t}\n\n\t\t\teditor.fire('ResizeEditor');\n\t\t};\n\t};\n\n\tvar isModernBrowser = function () {\n\t\treturn !Env.ie || Env.ie >= 11;\n\t};\n\n\tvar hasSidebar = function (editor) {\n\t\treturn isModernBrowser() && editor.sidebars ? editor.sidebars.length > 0 : false;\n\t};\n\n\tvar createSidebar = function (editor) {\n\t\tvar buttons = Tools.map(editor.sidebars, function (sidebar) {\n\t\t\tvar settings = sidebar.settings;\n\n\t\t\treturn {\n\t\t\t\ttype: 'button',\n\t\t\t\ticon: settings.icon,\n\t\t\t\timage: settings.image,\n\t\t\t\ttooltip: settings.tooltip,\n\t\t\t\tonclick: showPanel(editor, sidebar.name, editor.sidebars)\n\t\t\t};\n\t\t});\n\n\t\treturn {\n\t\t\ttype: 'panel',\n\t\t\tname: 'sidebar',\n\t\t\tlayout: 'stack',\n\t\t\tclasses: 'sidebar',\n\t\t\titems: [\n\t\t\t\t{\n\t\t\t\t\ttype: 'toolbar',\n\t\t\t\t\tlayout: 'stack',\n\t\t\t\t\tclasses: 'sidebar-toolbar',\n\t\t\t\t\titems: buttons\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\t};\n\n\treturn {\n\t\thasSidebar: hasSidebar,\n\t\tcreateSidebar: createSidebar\n\t};\n});\n/**\n * SkinLoaded.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2016 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\ndefine('tinymce.modern.ui.SkinLoaded', [\n], function () {\n\tvar fireSkinLoaded = function (editor) {\n\t\tvar done = function () {\n\t\t\teditor._skinLoaded = true;\n\t\t\teditor.fire('SkinLoaded');\n\t\t};\n\n\t\treturn function() {\n\t\t\tif (editor.initialized) {\n\t\t\t\tdone();\n\t\t\t} else {\n\t\t\t\teditor.on('init', done);\n\t\t\t}\n\t\t};\n\t};\n\n\treturn {\n\t\tfireSkinLoaded: fireSkinLoaded\n\t};\n});\n\n/**\n * Resize.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2016 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\ndefine('tinymce.modern.ui.Resize', [\n\t'global!tinymce.DOM'\n], function (DOM) {\n\tvar getSize = function (elm) {\n\t\treturn {\n\t\t\twidth: elm.clientWidth,\n\t\t\theight: elm.clientHeight\n\t\t};\n\t};\n\n\tvar resizeTo = function (editor, width, height) {\n\t\tvar containerElm, iframeElm, containerSize, iframeSize, settings = editor.settings;\n\n\t\tcontainerElm = editor.getContainer();\n\t\tiframeElm = editor.getContentAreaContainer().firstChild;\n\t\tcontainerSize = getSize(containerElm);\n\t\tiframeSize = getSize(iframeElm);\n\n\t\tif (width !== null) {\n\t\t\twidth = Math.max(settings.min_width || 100, width);\n\t\t\twidth = Math.min(settings.max_width || 0xFFFF, width);\n\n\t\t\tDOM.setStyle(containerElm, 'width', width + (containerSize.width - iframeSize.width));\n\t\t\tDOM.setStyle(iframeElm, 'width', width);\n\t\t}\n\n\t\theight = Math.max(settings.min_height || 100, height);\n\t\theight = Math.min(settings.max_height || 0xFFFF, height);\n\t\tDOM.setStyle(iframeElm, 'height', height);\n\n\t\teditor.fire('ResizeEditor');\n\t};\n\n\tvar resizeBy = function (editor, dw, dh) {\n\t\tvar elm = editor.getContentAreaContainer();\n\t\tresizeTo(editor, elm.clientWidth + dw, elm.clientHeight + dh);\n\t};\n\n\treturn {\n\t\tresizeTo: resizeTo,\n\t\tresizeBy: resizeBy\n\t};\n});\n\n/**\n * Iframe.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2016 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\ndefine('tinymce.modern.modes.Iframe', [\n\t'global!tinymce.util.Tools',\n\t'global!tinymce.ui.Factory',\n\t'global!tinymce.DOM',\n\t'tinymce.modern.ui.Toolbar',\n\t'tinymce.modern.ui.Menubar',\n\t'tinymce.modern.ui.ContextToolbars',\n\t'tinymce.modern.ui.A11y',\n\t'tinymce.modern.ui.Sidebar',\n\t'tinymce.modern.ui.SkinLoaded',\n\t'tinymce.modern.ui.Resize'\n], function (Tools, Factory, DOM, Toolbar, Menubar, ContextToolbars, A11y, Sidebar, SkinLoaded, Resize) {\n\tvar switchMode = function (panel) {\n\t\treturn function(e) {\n\t\t\tpanel.find('*').disabled(e.mode === 'readonly');\n\t\t};\n\t};\n\n\tvar editArea = function (border) {\n\t\treturn {\n\t\t\ttype: 'panel',\n\t\t\tname: 'iframe',\n\t\t\tlayout: 'stack',\n\t\t\tclasses: 'edit-area',\n\t\t\tborder: border,\n\t\t\thtml: ''\n\t\t};\n\t};\n\n\tvar editAreaContainer = function (editor) {\n\t\treturn {\n\t\t\ttype: 'panel',\n\t\t\tlayout: 'stack',\n\t\t\tclasses: 'edit-aria-container',\n\t\t\tborder: '1 0 0 0',\n\t\t\titems: [\n\t\t\t\teditArea('0'),\n\t\t\t\tSidebar.createSidebar(editor)\n\t\t\t]\n\t\t};\n\t};\n\n\tvar render = function (editor, theme, args) {\n\t\tvar panel, resizeHandleCtrl, startSize, settings = editor.settings;\n\n\t\tif (args.skinUiCss) {\n\t\t\tDOM.styleSheetLoader.load(args.skinUiCss, SkinLoaded.fireSkinLoaded(editor));\n\t\t}\n\n\t\tpanel = theme.panel = Factory.create({\n\t\t\ttype: 'panel',\n\t\t\trole: 'application',\n\t\t\tclasses: 'tinymce',\n\t\t\tstyle: 'visibility: hidden',\n\t\t\tlayout: 'stack',\n\t\t\tborder: 1,\n\t\t\titems: [\n\t\t\t\tsettings.menubar === false ? null : {type: 'menubar', border: '0 0 1 0', items: Menubar.createMenuButtons(editor)},\n\t\t\t\tToolbar.createToolbars(editor, settings.toolbar_items_size),\n\t\t\t\tSidebar.hasSidebar(editor) ? editAreaContainer(editor) : editArea('1 0 0 0')\n\t\t\t]\n\t\t});\n\n\t\tif (settings.resize !== false) {\n\t\t\tresizeHandleCtrl = {\n\t\t\t\ttype: 'resizehandle',\n\t\t\t\tdirection: settings.resize,\n\n\t\t\t\tonResizeStart: function() {\n\t\t\t\t\tvar elm = editor.getContentAreaContainer().firstChild;\n\n\t\t\t\t\tstartSize = {\n\t\t\t\t\t\twidth: elm.clientWidth,\n\t\t\t\t\t\theight: elm.clientHeight\n\t\t\t\t\t};\n\t\t\t\t},\n\n\t\t\t\tonResize: function(e) {\n\t\t\t\t\tif (settings.resize === 'both') {\n\t\t\t\t\t\tResize.resizeTo(editor, startSize.width + e.deltaX, startSize.height + e.deltaY);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tResize.resizeTo(editor, null, startSize.height + e.deltaY);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// Add statusbar if needed\n\t\tif (settings.statusbar !== false) {\n\t\t\tpanel.add({type: 'panel', name: 'statusbar', classes: 'statusbar', layout: 'flow', border: '1 0 0 0', ariaRoot: true, items: [\n\t\t\t\t{type: 'elementpath', editor: editor},\n\t\t\t\tresizeHandleCtrl\n\t\t\t]});\n\t\t}\n\n\t\teditor.fire('BeforeRenderUI');\n\t\teditor.on('SwitchMode', switchMode(panel));\n\t\tpanel.renderBefore(args.targetNode).reflow();\n\n\t\tif (settings.readonly) {\n\t\t\teditor.setMode('readonly');\n\t\t}\n\n\t\tif (settings.width) {\n\t\t\tDOM.setStyle(panel.getEl(), 'width', settings.width);\n\t\t}\n\n\t\t// Remove the panel when the editor is removed\n\t\teditor.on('remove', function() {\n\t\t\tpanel.remove();\n\t\t\tpanel = null;\n\t\t});\n\n\t\t// Add accesibility shortcuts\n\t\tA11y.addKeys(editor, panel);\n\t\tContextToolbars.addContextualToolbars(editor);\n\n\t\treturn {\n\t\t\tiframeContainer: panel.find('#iframe')[0].getEl(),\n\t\t\teditorContainer: panel.getEl()\n\t\t};\n\t};\n\n\treturn {\n\t\trender: render\n\t};\n});\n\ndefineGlobal(\"global!tinymce.ui.FloatPanel\", tinymce.ui.FloatPanel);\n/**\n * Inline.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2016 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\ndefine('tinymce.modern.modes.Inline', [\n\t'global!tinymce.util.Tools',\n\t'global!tinymce.ui.Factory',\n\t'global!tinymce.DOM',\n\t'global!tinymce.ui.FloatPanel',\n\t'tinymce.modern.ui.Toolbar',\n\t'tinymce.modern.ui.Menubar',\n\t'tinymce.modern.ui.ContextToolbars',\n\t'tinymce.modern.ui.A11y',\n\t'tinymce.modern.ui.SkinLoaded'\n], function (Tools, Factory, DOM, FloatPanel, Toolbar, Menubar, ContextToolbars, A11y, SkinLoaded) {\n\tvar render = function (editor, theme, args) {\n\t\tvar panel, inlineToolbarContainer, settings = editor.settings;\n\n\t\tif (settings.fixed_toolbar_container) {\n\t\t\tinlineToolbarContainer = DOM.select(settings.fixed_toolbar_container)[0];\n\t\t}\n\n\t\tvar reposition = function () {\n\t\t\tif (panel && panel.moveRel && panel.visible() && !panel._fixed) {\n\t\t\t\t// TODO: This is kind of ugly and doesn't handle multiple scrollable elements\n\t\t\t\tvar scrollContainer = editor.selection.getScrollContainer(), body = editor.getBody();\n\t\t\t\tvar deltaX = 0, deltaY = 0;\n\n\t\t\t\tif (scrollContainer) {\n\t\t\t\t\tvar bodyPos = DOM.getPos(body), scrollContainerPos = DOM.getPos(scrollContainer);\n\n\t\t\t\t\tdeltaX = Math.max(0, scrollContainerPos.x - bodyPos.x);\n\t\t\t\t\tdeltaY = Math.max(0, scrollContainerPos.y - bodyPos.y);\n\t\t\t\t}\n\n\t\t\t\tpanel.fixed(false).moveRel(body, editor.rtl ? ['tr-br', 'br-tr'] : ['tl-bl', 'bl-tl', 'tr-br']).moveBy(deltaX, deltaY);\n\t\t\t}\n\t\t};\n\n\t\tvar show = function () {\n\t\t\tif (panel) {\n\t\t\t\tpanel.show();\n\t\t\t\treposition();\n\t\t\t\tDOM.addClass(editor.getBody(), 'mce-edit-focus');\n\t\t\t}\n\t\t};\n\n\t\tvar hide = function () {\n\t\t\tif (panel) {\n\t\t\t\t// We require two events as the inline float panel based toolbar does not have autohide=true\n\t\t\t\tpanel.hide();\n\n\t\t\t\t// All other autohidden float panels will be closed below.\n\t\t\t\tFloatPanel.hideAll();\n\n\t\t\t\tDOM.removeClass(editor.getBody(), 'mce-edit-focus');\n\t\t\t}\n\t\t};\n\n\t\tvar render = function () {\n\t\t\tif (panel) {\n\t\t\t\tif (!panel.visible()) {\n\t\t\t\t\tshow();\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Render a plain panel inside the inlineToolbarContainer if it's defined\n\t\t\tpanel = theme.panel = Factory.create({\n\t\t\t\ttype: inlineToolbarContainer ? 'panel' : 'floatpanel',\n\t\t\t\trole: 'application',\n\t\t\t\tclasses: 'tinymce tinymce-inline',\n\t\t\t\tlayout: 'flex',\n\t\t\t\tdirection: 'column',\n\t\t\t\talign: 'stretch',\n\t\t\t\tautohide: false,\n\t\t\t\tautofix: true,\n\t\t\t\tfixed: !!inlineToolbarContainer,\n\t\t\t\tborder: 1,\n\t\t\t\titems: [\n\t\t\t\t\tsettings.menubar === false ? null : {type: 'menubar', border: '0 0 1 0', items: Menubar.createMenuButtons(editor)},\n\t\t\t\t\tToolbar.createToolbars(editor, settings.toolbar_items_size)\n\t\t\t\t]\n\t\t\t});\n\n\t\t\t// Add statusbar\n\t\t\t/*if (settings.statusbar !== false) {\n\t\t\t\tpanel.add({type: 'panel', classes: 'statusbar', layout: 'flow', border: '1 0 0 0', items: [\n\t\t\t\t\t{type: 'elementpath'}\n\t\t\t\t]});\n\t\t\t}*/\n\n\t\t\teditor.fire('BeforeRenderUI');\n\t\t\tpanel.renderTo(inlineToolbarContainer || document.body).reflow();\n\n\t\t\tA11y.addKeys(editor, panel);\n\t\t\tshow();\n\t\t\tContextToolbars.addContextualToolbars(editor);\n\n\t\t\teditor.on('nodeChange', reposition);\n\t\t\teditor.on('activate', show);\n\t\t\teditor.on('deactivate', hide);\n\n\t\t\teditor.nodeChanged();\n\t\t};\n\n\t\tsettings.content_editable = true;\n\n\t\teditor.on('focus', function() {\n\t\t\t// Render only when the CSS file has been loaded\n\t\t\tif (args.skinUiCss) {\n\t\t\t\tDOM.styleSheetLoader.load(args.skinUiCss, render, render);\n\t\t\t} else {\n\t\t\t\trender();\n\t\t\t}\n\t\t});\n\n\t\teditor.on('blur hide', hide);\n\n\t\t// Remove the panel when the editor is removed\n\t\teditor.on('remove', function() {\n\t\t\tif (panel) {\n\t\t\t\tpanel.remove();\n\t\t\t\tpanel = null;\n\t\t\t}\n\t\t});\n\n\t\t// Preload skin css\n\t\tif (args.skinUiCss) {\n\t\t\tDOM.styleSheetLoader.load(args.skinUiCss, SkinLoaded.fireSkinLoaded(editor));\n\t\t}\n\n\t\treturn {};\n\t};\n\n\treturn {\n\t\trender: render\n\t};\n});\n\ndefineGlobal(\"global!tinymce.ui.Throbber\", tinymce.ui.Throbber);\n/**\n * ProgressState.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2016 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\ndefine('tinymce.modern.ui.ProgressState', [\n\t'global!tinymce.ui.Throbber'\n], function (Throbber) {\n\tvar setup = function (editor, theme) {\n\t\tvar throbber;\n\n\t\teditor.on('ProgressState', function(e) {\n\t\t\tthrobber = throbber || new Throbber(theme.panel.getEl('body'));\n\n\t\t\tif (e.state) {\n\t\t\t\tthrobber.show(e.time);\n\t\t\t} else {\n\t\t\t\tthrobber.hide();\n\t\t\t}\n\t\t});\n\t};\n\n\treturn {\n\t\tsetup: setup\n\t};\n});\n\n/**\n * Theme.js\n *\n * Released under LGPL License.\n * Copyright (c) 1999-2016 Ephox Corp. All rights reserved\n *\n * License: http://www.tinymce.com/license\n * Contributing: http://www.tinymce.com/contributing\n */\n\ndefine('tinymce.modern.Theme', [\n\t'global!tinymce.Env',\n\t'global!tinymce.EditorManager',\n\t'global!tinymce.ThemeManager',\n\t'tinymce.modern.modes.Iframe',\n\t'tinymce.modern.modes.Inline',\n\t'tinymce.modern.ui.Resize',\n\t'tinymce.modern.ui.ProgressState'\n], function (Env, EditorManager, ThemeManager, Iframe, Inline, Resize, ProgressState) {\n\tvar renderUI = function(editor, theme, args) {\n\t\tvar settings = editor.settings;\n\t\tvar skin = settings.skin !== false ? settings.skin || 'lightgray' : false;\n\n\t\tif (skin) {\n\t\t\tvar skinUrl = settings.skin_url;\n\n\t\t\tif (skinUrl) {\n\t\t\t\tskinUrl = editor.documentBaseURI.toAbsolute(skinUrl);\n\t\t\t} else {\n\t\t\t\tskinUrl = EditorManager.baseURL + '/skins/' + skin;\n\t\t\t}\n\n\t\t\t// Load special skin for IE7\n\t\t\t// TODO: Remove this when we drop IE7 support\n\t\t\tif (Env.documentMode <= 7) {\n\t\t\t\targs.skinUiCss = skinUrl + '/skin.ie7.min.css';\n\t\t\t} else {\n\t\t\t\targs.skinUiCss = skinUrl + '/skin.min.css';\n\t\t\t}\n\n\t\t\t// Load content.min.css or content.inline.min.css\n\t\t\teditor.contentCSS.push(skinUrl + '/content' + (editor.inline ? '.inline' : '') + '.min.css');\n\t\t}\n\n\t\tProgressState.setup(editor, theme);\n\n\t\tif (settings.inline) {\n\t\t\treturn Inline.render(editor, theme, args);\n\t\t}\n\n\t\treturn Iframe.render(editor, theme, args);\n\t};\n\n\tThemeManager.add('modern', function (editor) {\n\t\treturn {\n\t\t\trenderUI: function (args) {\n\t\t\t\treturn renderUI(editor, this, args);\n\t\t\t},\n\t\t\tresizeTo: function (w, h) {\n\t\t\t\treturn Resize.resizeTo(editor, w, h);\n\t\t\t},\n\t\t\tresizeBy: function (dw, dh) {\n\t\t\t\treturn Resize.resizeBy(editor, dw, dh);\n\t\t\t}\n\t\t};\n\t});\n\n\treturn function () {\n\t};\n});\n\ndem('tinymce.modern.Theme')();\n})();\n;\r\n/**\n * Binds a TinyMCE widget to